From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:45360 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751480AbeEVRtz (ORCPT ); Tue, 22 May 2018 13:49:55 -0400 Received: from localhost (67.110.78.66.ptr.us.xo.net [67.110.78.66]) (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 B921F1438139E for ; Tue, 22 May 2018 10:49:53 -0700 (PDT) Date: Tue, 22 May 2018 13:49:52 -0400 (EDT) Message-Id: <20180522.134952.1244102658094722374.davem@davemloft.net> To: stable@vger.kernel.org Subject: [GIT] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_May_22_13_49_52_2018_899)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Tue_May_22_13_49_52_2018_899)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.14 and v4.16 -stable, respectively. Thank you. ----Next_Part(Tue_May_22_13_49_52_2018_899)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_414.mbox" RnJvbSBhMzBkYzlhODQ2ZjZhZjhiOGQ4Y2Q5ZWNhMWUzNDdhN2JlMGViODAxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXJpdGhhIE5hbWJpYXIgPGFtcml0aGEubmFtYmlhckBpbnRl bC5jb20+CkRhdGU6IFRodSwgMTcgTWF5IDIwMTggMTQ6NTA6NDQgLTA3MDAKU3ViamVjdDogW1BB VENIIDAxLzM0XSBuZXQ6IEZpeCBhIGJ1ZyBpbiByZW1vdmluZyBxdWV1ZXMgZnJvbSBYUFMgbWFw CgpbIFVwc3RyZWFtIGNvbW1pdCA2MzU4ZDQ5YWMyMzk5NWZkZmUxNTdjYzg3NDdhYjBmMjc0ZDM5 NTRiIF0KCldoaWxlIHJlbW92aW5nIHF1ZXVlcyBmcm9tIHRoZSBYUFMgbWFwLCB0aGUgaW5kaXZp ZHVhbCBDUFUgSUQKYWxvbmUgd2FzIHVzZWQgdG8gaW5kZXggdGhlIENQVXMgbWFwLCB0aGlzIHNo b3VsZCBiZSBjaGFuZ2VkIHRvIGFsc28KZmFjdG9yIGluIHRoZSB0cmFmZmljIGNsYXNzIG1hcHBp bmcgZm9yIHRoZSBDUFUtdG8tcXVldWUgbG9va3VwLgoKRml4ZXM6IDE4NGM0NDlmOTFmZSAoIm5l dDogQWRkIHN1cHBvcnQgZm9yIFhQUyB3aXRoIFFvUyB2aWEgdHJhZmZpYyBjbGFzc2VzIikKU2ln bmVkLW9mZi1ieTogQW1yaXRoYSBOYW1iaWFyIDxhbXJpdGhhLm5hbWJpYXJAaW50ZWwuY29tPgpB Y2tlZC1ieTogQWxleGFuZGVyIER1eWNrIDxhbGV4YW5kZXIuaC5kdXlja0BpbnRlbC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvY29yZS9kZXYuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMK aW5kZXggZTdkNTZjNWFkZGU2Li42Y2E3NzFmMmYyNWIgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rl di5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMgYm9v bCByZW1vdmVfeHBzX3F1ZXVlX2NwdShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlpbnQgaSwg ajsKIAogCQlmb3IgKGkgPSBjb3VudCwgaiA9IG9mZnNldDsgaS0tOyBqKyspIHsKLQkJCWlmICgh cmVtb3ZlX3hwc19xdWV1ZShkZXZfbWFwcywgY3B1LCBqKSkKKwkJCWlmICghcmVtb3ZlX3hwc19x dWV1ZShkZXZfbWFwcywgdGNpLCBqKSkKIAkJCQlicmVhazsKIAkJfQogCi0tIAoyLjE0LjMKCgpG cm9tIGVjNjNhY2M0OTU1YWQ2NDkxNzViNDU4NWE0YzFkNDVlMmRiOGM1ZGEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFRhcmljayBCZWRlaXIgPHRhcmlja0Bnb29nbGUuY29tPgpEYXRl OiBTdW4sIDEzIE1heSAyMDE4IDE2OjM4OjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMi8zNF0g bmV0L21seDRfY29yZTogRml4IGVycm9yIGhhbmRsaW5nIGluCiBtbHg0X2luaXRfcG9ydF9pbmZv LgoKWyBVcHN0cmVhbSBjb21taXQgNTdmNmY5OWZkYWQ5OTg0ODAxY2RlMDVjMWRiNjhmZTM5YjQ3 NGExMCBdCgpBdm9pZCBleGl0aW5nIHRoZSBmdW5jdGlvbiB3aXRoIGEgbGluZ2VyaW5nIHN5c2Zz IGZpbGUgKGlmIHRoZSBmaXJzdApjYWxsIHRvIGRldmljZV9jcmVhdGVfZmlsZSgpIGZhaWxzIHdo aWxlIHRoZSBzZWNvbmQgc3VjY2VlZHMpLCBhbmQgYXZvaWQKY2FsbGluZyBkZXZsaW5rX3BvcnRf dW5yZWdpc3RlcigpIHR3aWNlLgoKSW4gb3RoZXIgd29yZHMsIGVpdGhlciBtbHg0X2luaXRfcG9y dF9pbmZvKCkgc3VjY2VlZHMgYW5kIHJldHVybnMgemVybywgb3IKaXQgZmFpbHMsIHJldHVybnMg bm9uLXplcm8sIGFuZCByZXF1aXJlcyBubyBjbGVhbnVwLgoKRml4ZXM6IDA5NjMzNWIzZjk4MyAo Im1seDRfY29yZTogQWxsb3cgZHluYW1pYyBNVFUgY29uZmlndXJhdGlvbiBmb3IgSUIgcG9ydHMi KQpTaWduZWQtb2ZmLWJ5OiBUYXJpY2sgQmVkZWlyIDx0YXJpY2tAZ29vZ2xlLmNvbT4KUmV2aWV3 ZWQtYnk6IExlb24gUm9tYW5vdnNreSA8bGVvbnJvQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6 IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDQvbWFpbi5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NC9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0 L21haW4uYwppbmRleCBlNjFjOTllZjc0MWQuLmMyNzNhM2ViYjhlOCAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tYWluLmMKQEAgLTMwMDcsNiArMzAwNyw3IEBAIHN0YXRp YyBpbnQgbWx4NF9pbml0X3BvcnRfaW5mbyhzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgaW50IHBvcnQp CiAJCW1seDRfZXJyKGRldiwgIkZhaWxlZCB0byBjcmVhdGUgZmlsZSBmb3IgcG9ydCAlZFxuIiwg cG9ydCk7CiAJCWRldmxpbmtfcG9ydF91bnJlZ2lzdGVyKCZpbmZvLT5kZXZsaW5rX3BvcnQpOwog CQlpbmZvLT5wb3J0ID0gLTE7CisJCXJldHVybiBlcnI7CiAJfQogCiAJc3ByaW50ZihpbmZvLT5k ZXZfbXR1X25hbWUsICJtbHg0X3BvcnQlZF9tdHUiLCBwb3J0KTsKQEAgLTMwMjgsOSArMzAyOSwx MCBAQCBzdGF0aWMgaW50IG1seDRfaW5pdF9wb3J0X2luZm8oc3RydWN0IG1seDRfZGV2ICpkZXYs IGludCBwb3J0KQogCQkJCSAgICZpbmZvLT5wb3J0X2F0dHIpOwogCQlkZXZsaW5rX3BvcnRfdW5y ZWdpc3RlcigmaW5mby0+ZGV2bGlua19wb3J0KTsKIAkJaW5mby0+cG9ydCA9IC0xOworCQlyZXR1 cm4gZXJyOwogCX0KIAotCXJldHVybiBlcnI7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lk IG1seDRfY2xlYW51cF9wb3J0X2luZm8oc3RydWN0IG1seDRfcG9ydF9pbmZvICppbmZvKQotLSAK Mi4xNC4zCgoKRnJvbSBmZmI1ZjIyNjNiZWNhYWY4ODhmNWExODZlNTUyNWQzNjk5ZDEzYWM2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVk aGF0LmNvbT4KRGF0ZTogV2VkLCAxNiBNYXkgMjAxOCAxMjo1NDoyOSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDMvMzRdIG5ldC9zY2hlZDogZml4IHJlZmNudCBsZWFrIGluIHRoZSBlcnJvciBwYXRo IG9mCiB0Y2Zfdmxhbl9pbml0KCkKClsgVXBzdHJlYW0gY29tbWl0IDVhNDkzMWFlMDE5M2Y4YTRh OTdlODI2MGZkMGRmMWQ3MDVkODMyOTkgXQoKU2ltaWxhcmx5IHRvIHdoYXQgd2FzIGRvbmUgd2l0 aCBjb21taXQgYTUyOTU2ZGZjNTAzICgibmV0IHNjaGVkIGFjdGlvbnM6CmZpeCByZWZjbnQgbGVh ayBpbiBza2Jtb2QiKSwgZml4IHRoZSBlcnJvciBwYXRoIG9mIHRjZl92bGFuX2luaXQoKSB0byBh dm9pZApyZWZjbnQgbGVha3Mgd2hlbiB3cm9uZyB2YWx1ZSBvZiBUQ0FfVkxBTl9QVVNIX1ZMQU5f UFJPVE9DT0wgaXMgZ2l2ZW4uCgpGaXhlczogNTAyNmM5YjFiYWZjICgibmV0IHNjaGVkOiB2bGFu IGFjdGlvbiBmaXggbGF0ZSBiaW5kaW5nIikKQ0M6IFJvbWFuIE1hc2hhayA8bXJ2QG1vamF0YXR1 LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJlZGhhdC5jb20+ CkFja2VkLWJ5OiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVk L2FjdF92bGFuLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF92bGFuLmMgYi9uZXQvc2NoZWQvYWN0X3ZsYW4uYwppbmRl eCAxNmViMDY3YThkOGYuLjVjMTBhMGZjZTM1YiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF92 bGFuLmMKKysrIGIvbmV0L3NjaGVkL2FjdF92bGFuLmMKQEAgLTE1NCw2ICsxNTQsOCBAQCBzdGF0 aWMgaW50IHRjZl92bGFuX2luaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICpubGEs CiAJCQljYXNlIGh0b25zKEVUSF9QXzgwMjFBRCk6CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0Ogor CQkJCWlmIChleGlzdHMpCisJCQkJCXRjZl9pZHJfcmVsZWFzZSgqYSwgYmluZCk7CiAJCQkJcmV0 dXJuIC1FUFJPVE9OT1NVUFBPUlQ7CiAJCQl9CiAJCX0gZWxzZSB7Ci0tIAoyLjE0LjMKCgpGcm9t IDQ5YTFhMjE4NTlhMzBmNjYyMzQyNjY2N2ZhNzY4OTk0ZGNkYzhhNDAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogRnJp LCAxOCBNYXkgMjAxOCAxNDo1MTo0NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMzRdIG5ldDog c2NoZWQ6IHJlZDogYXZvaWQgaGFzaGluZyBOVUxMIGNoaWxkCgpbIFVwc3RyZWFtIGNvbW1pdCA0 NGE2M2IxMzdmN2I2ZTRjN2JkNmM5Y2MyMTYxNTk0MWNiMzY1MDlkIF0KCkhhbmdiaW4gcmVwb3J0 ZWQgYW4gT29wcyB0cmlnZ2VyZWQgYnkgdGhlIHN5emthbGxlciBxZGlzYyBydWxlczoKCiBrYXNh bjogR1BGIGNvdWxkIGJlIGNhdXNlZCBieSBOVUxMLXB0ciBkZXJlZiBvciB1c2VyIG1lbW9yeSBh Y2Nlc3MKIGdlbmVyYWwgcHJvdGVjdGlvbiBmYXVsdDogMDAwMCBbIzFdIFNNUCBLQVNBTiBQVEkK IE1vZHVsZXMgbGlua2VkIGluOiBzY2hfcmVkCiBDUFU6IDAgUElEOiAyODY5OSBDb21tOiBzeXot ZXhlY3V0b3I1IE5vdCB0YWludGVkIDQuMTcuMC1yYzQua2NvdiAjMQogSGFyZHdhcmUgbmFtZTog UmVkIEhhdCBLVk0sIEJJT1MgMC41LjEgMDEvMDEvMjAxMQogUklQOiAwMDEwOnFkaXNjX2hhc2hf YWRkKzB4MjYvMHhhMAogUlNQOiAwMDE4OmZmZmY4ODAwNTg5Y2Y0NzAgRUZMQUdTOiAwMDAxMDIw MwogUkFYOiBkZmZmZmMwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IGZmZmZm ZmZmODI0YWQ5NzEKIFJEWDogMDAwMDAwMDAwMDAwMDAwNyBSU0k6IGZmZmZjOTAwMGNlOWYwMDAg UkRJOiAwMDAwMDAwMDAwMDAwMDNjCiBSQlA6IDAwMDAwMDAwMDAwMDAwMDEgUjA4OiBmZmZmZWQw MDBiMTM5ZWEyIFIwOTogZmZmZjg4MDA1ODljZjRmMAogUjEwOiBmZmZmODgwMDU4OWNmNTBmIFIx MTogZmZmZmVkMDAwYjEzOWVhMiBSMTI6IGZmZmY4ODAwNTQwMTlmYzAKIFIxMzogZmZmZjg4MDA1 NDAxOWZiNCBSMTQ6IGZmZmY4ODAwNWMwYWY2MDAgUjE1OiBmZmZmODgwMDU0MDE5ZmIwCiBGUzog IDAwMDA3ZmE2ZWRjYjE3MDAoMDAwMCkgR1M6ZmZmZjg4MDA1Y2UwMDAwMCgwMDAwKSBrbmxHUzow MDAwMDAwMDAwMDAwMDAwCiBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAw MDgwMDUwMDMzCiBDUjI6IDAwMDAwMDAwMjAwMDA3NDAgQ1IzOiAwMDAwMDAwMDBmYzE2MDAwIENS NDogMDAwMDAwMDAwMDAwMDZmMAogRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAw MDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKIERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6 IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAwCiBDYWxsIFRyYWNlOgogIHJl ZF9jaGFuZ2UrMHgyZDIvMHhlZDAgW3NjaF9yZWRdCiAgcWRpc2NfY3JlYXRlKzB4NTdlLzB4ZWYw CiAgdGNfbW9kaWZ5X3FkaXNjKzB4NDdmLzB4MTRlMAogIHJ0bmV0bGlua19yY3ZfbXNnKzB4NmE4 LzB4OTIwCiAgbmV0bGlua19yY3Zfc2tiKzB4MmEyLzB4M2MwCiAgbmV0bGlua191bmljYXN0KzB4 NTExLzB4NzQwCiAgbmV0bGlua19zZW5kbXNnKzB4ODI1LzB4YzMwCiAgc29ja19zZW5kbXNnKzB4 YzUvMHgxMDAKICBfX19zeXNfc2VuZG1zZysweDc3OC8weDhlMAogIF9fc3lzX3NlbmRtc2crMHhm NS8weDFiMAogIGRvX3N5c2NhbGxfNjQrMHhiZC8weDNiMAogIGVudHJ5X1NZU0NBTExfNjRfYWZ0 ZXJfaHdmcmFtZSsweDQ0LzB4YTkKIFJJUDogMDAzMzoweDQ1MDg2OQogUlNQOiAwMDJiOjAwMDA3 ZmE2ZWRjYjBjNDggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyZQog UkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDdmYTZlZGNiMTZiNCBSQ1g6IDAwMDAwMDAw MDA0NTA4NjkKIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMjAwMDAwYzAgUkRJ OiAwMDAwMDAwMDAwMDAwMDEzCiBSQlA6IDAwMDAwMDAwMDA3MmJlYTAgUjA4OiAwMDAwMDAwMDAw MDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMAogUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTog MDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwZmZmZmZmZmYKIFIxMzogMDAwMDAwMDAwMDAw ODc3OCBSMTQ6IDAwMDAwMDAwMDA3MDI4MzggUjE1OiAwMDAwN2ZhNmVkY2IxNzAwCiBDb2RlOiBl OSAwYiBmZSBmZiBmZiAwZiAxZiA0NCAwMCAwMCA1NSA1MyA0OCA4OSBmYiA4OSBmNSBlOCAzZiAw NyBmMyBmZSA0OCA4ZCA3YiAzYyA0OCBiOCAwMCAwMCAwMCAwMCAwMCBmYyBmZiBkZiA0OCA4OSBm YSA0OCBjMSBlYSAwMyA8MGY+IGI2IDE0IDAyIDQ4IDg5IGY4IDgzIGUwIDA3IDgzIGMwIDAzIDM4 IGQwIDdjIDA0IDg0IGQyIDc1IDUxCiBSSVA6IHFkaXNjX2hhc2hfYWRkKzB4MjYvMHhhMCBSU1A6 IGZmZmY4ODAwNTg5Y2Y0NzAKCldoZW4gYSByZWQgcWRpc2MgaXMgdXBkYXRlZCB3aXRoIGEgMCBs aW1pdCwgdGhlIGNoaWxkIHFkaXNjIGlzIGxlZnQKdW5tb2RpZmllZCwgbm8gYWRkaXRpb25hbCBz Y2hlZHVsZXIgaXMgY3JlYXRlZCBpbiByZWRfY2hhbmdlKCksCnRoZSAnY2hpbGQnIGxvY2FsIHZh cmlhYmxlIGlzIHJpZ2h0ZnVsbHkgTlVMTCBhbmQgbXVzdCBub3QgYWRkIGl0CnRvIHRoZSBoYXNo IHRhYmxlLgoKVGhpcyBjaGFuZ2UgYWRkcmVzc2VzIHRoZSBhYm92ZSBpc3N1ZSBtb3ZpbmcgcWRp c2NfaGFzaF9hZGQoKSByaWdodAphZnRlciB0aGUgY2hpbGQgcWRpc2MgY3JlYXRpb24uIEl0IGFk ZGl0aW9uYWxseSByZW1vdmVzIHVubmVlZGVkIGNoZWNrcwpmb3Igbm9vcF9xZGlzYy4KClJlcG9y dGVkLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+CkZpeGVzOiA0OWI0OTk3 MThmYTEgKCJuZXQ6IHNjaGVkOiBtYWtlIGRlZmF1bHQgZmlmbyBxZGlzY3MgYXBwZWFyIGluIHRo ZSBkdW1wIikKU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpB Y2tlZC1ieTogSmlyaSBLb3NpbmEgPGprb3NpbmFAc3VzZS5jej4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfcmVk LmMgfCA1ICsrKy0tCiBuZXQvc2NoZWQvc2NoX3RiZi5jIHwgNSArKystLQogMiBmaWxlcyBjaGFu Z2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Nj aGVkL3NjaF9yZWQuYyBiL25ldC9zY2hlZC9zY2hfcmVkLmMKaW5kZXggZDg3YzQxZTgyOTE3Li5j NDUzYjhkODFjOWUgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfcmVkLmMKKysrIGIvbmV0L3Nj aGVkL3NjaF9yZWQuYwpAQCAtMTkxLDEwICsxOTEsMTEgQEAgc3RhdGljIGludCByZWRfY2hhbmdl KHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJCWNoaWxkID0gZmlmb19j cmVhdGVfZGZsdChzY2gsICZiZmlmb19xZGlzY19vcHMsIGN0bC0+bGltaXQpOwogCQlpZiAoSVNf RVJSKGNoaWxkKSkKIAkJCXJldHVybiBQVFJfRVJSKGNoaWxkKTsKLQl9CiAKLQlpZiAoY2hpbGQg IT0gJm5vb3BfcWRpc2MpCisJCS8qIGNoaWxkIGlzIGZpZm8sIG5vIG5lZWQgdG8gY2hlY2sgZm9y IG5vb3BfcWRpc2MgKi8KIAkJcWRpc2NfaGFzaF9hZGQoY2hpbGQsIHRydWUpOworCX0KKwogCXNj aF90cmVlX2xvY2soc2NoKTsKIAlxLT5mbGFncyA9IGN0bC0+ZmxhZ3M7CiAJcS0+bGltaXQgPSBj dGwtPmxpbWl0OwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF90YmYuYyBiL25ldC9zY2hlZC9z Y2hfdGJmLmMKaW5kZXggMTIwZjRmMzY1OTY3Li5iMzZlY2I1OGFhNmUgMTAwNjQ0Ci0tLSBhL25l dC9zY2hlZC9zY2hfdGJmLmMKKysrIGIvbmV0L3NjaGVkL3NjaF90YmYuYwpAQCAtMzg4LDYgKzM4 OCw5IEBAIHN0YXRpYyBpbnQgdGJmX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5s YXR0ciAqb3B0KQogCQkJZXJyID0gUFRSX0VSUihjaGlsZCk7CiAJCQlnb3RvIGRvbmU7CiAJCX0K KworCQkvKiBjaGlsZCBpcyBmaWZvLCBubyBuZWVkIHRvIGNoZWNrIGZvciBub29wX3FkaXNjICov CisJCXFkaXNjX2hhc2hfYWRkKGNoaWxkLCB0cnVlKTsKIAl9CiAKIAlzY2hfdHJlZV9sb2NrKHNj aCk7CkBAIC0zOTYsOCArMzk5LDYgQEAgc3RhdGljIGludCB0YmZfY2hhbmdlKHN0cnVjdCBRZGlz YyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQpCiAJCQkJCSAgcS0+cWRpc2MtPnFzdGF0cy5iYWNr bG9nKTsKIAkJcWRpc2NfZGVzdHJveShxLT5xZGlzYyk7CiAJCXEtPnFkaXNjID0gY2hpbGQ7Ci0J CWlmIChjaGlsZCAhPSAmbm9vcF9xZGlzYykKLQkJCXFkaXNjX2hhc2hfYWRkKGNoaWxkLCB0cnVl KTsKIAl9CiAJcS0+bGltaXQgPSBxb3B0LT5saW1pdDsKIAlpZiAodGJbVENBX1RCRl9QQlVSU1Rd KQotLSAKMi4xNC4zCgoKRnJvbSA3NjNmZmI2Njk0ZDE4MTgzZGQ5ZjA4MzBiMmRiNDg4ZTgyNTZi Yzg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIEJpZ2dlcnMgPGViaWdnZXJz QGdvb2dsZS5jb20+CkRhdGU6IFN1biwgMTMgTWF5IDIwMTggMTc6MDE6MzAgLTA3MDAKU3ViamVj dDogW1BBVENIIDA1LzM0XSBuZXQvc21jOiBjaGVjayBmb3IgbWlzc2luZyBubGF0dHJzIGluIFNN Q19QTkVUSUQKIG1lc3NhZ2VzCgpbIFVwc3RyZWFtIGNvbW1pdCBkNDliYWE3ZTEyZWU3MGMwYTdi ODIxZDA4OGE3NzBjOTRjMDJlNDk0IF0KCkl0J3MgcG9zc2libGUgdG8gY3Jhc2ggdGhlIGtlcm5l bCBpbiBzZXZlcmFsIGRpZmZlcmVudCB3YXlzIGJ5IHNlbmRpbmcKbWVzc2FnZXMgdG8gdGhlIFNN Q19QTkVUSUQgZ2VuZXJpYyBuZXRsaW5rIGZhbWlseSB0aGF0IGFyZSBtaXNzaW5nIHRoZQpleHBl Y3RlZCBhdHRyaWJ1dGVzOgoKLSBNaXNzaW5nIFNNQ19QTkVUSURfTkFNRSA9PiBudWxsIHBvaW50 ZXIgZGVyZWZlcmVuY2Ugd2hlbiBjb21wYXJpbmcKICBuYW1lcy4KLSBNaXNzaW5nIFNNQ19QTkVU SURfRVRITkFNRSA9PiBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgYWNjZXNzaW5nCiAgc21jX3Bu ZXRlbnRyeTo6bmRldi4KLSBNaXNzaW5nIFNNQ19QTkVUSURfSUJOQU1FID0+IG51bGwgcG9pbnRl ciBkZXJlZmVyZW5jZSBhY2Nlc3NpbmcKICBzbWNfcG5ldGVudHJ5OjpzbWNpYmRldi4KLSBNaXNz aW5nIFNNQ19QTkVUSURfSUJQT1JUID0+IG91dCBvZiBib3VuZHMgYXJyYXkgYWNjZXNzIHRvCiAg c21jX2liX2RldmljZTo6cGF0dHJbLTFdLgoKRml4IGl0IGJ5IHZhbGlkYXRpbmcgdGhhdCBhbGwg ZXhwZWN0ZWQgYXR0cmlidXRlcyBhcmUgcHJlc2VudCBhbmQgdGhhdApTTUNfUE5FVElEX0lCUE9S VCBpcyBub256ZXJvLgoKUmVwb3J0ZWQtYnk6IHN5emJvdCs1Y2Q2MTAzOWRjOWI4YmZhNmU0N0Bz eXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkZpeGVzOiA2ODEyYmFhYmYyNGQgKCJzbWM6IGVzdGFi bGlzaCBwbmV0IHRhYmxlIG1hbmFnZW1lbnQiKQpDYzogPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ ICMgdjQuMTErClNpZ25lZC1vZmYtYnk6IEVyaWMgQmlnZ2VycyA8ZWJpZ2dlcnNAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9zbWMvc21jX3BuZXQuYyB8IDcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQwIGluc2VydGlvbnMo KyksIDMxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zbWMvc21jX3BuZXQuYyBiL25l dC9zbWMvc21jX3BuZXQuYwppbmRleCA3NDU2OGNkYmNhNzAuLmQ3Yjg4YjJkMWIyMiAxMDA2NDQK LS0tIGEvbmV0L3NtYy9zbWNfcG5ldC5jCisrKyBiL25ldC9zbWMvc21jX3BuZXQuYwpAQCAtMjQ1 LDQwICsyNDUsNDUgQEAgc3RhdGljIHN0cnVjdCBzbWNfaWJfZGV2aWNlICpzbWNfcG5ldF9maW5k X2liKGNoYXIgKmliX25hbWUpCiBzdGF0aWMgaW50IHNtY19wbmV0X2ZpbGxfZW50cnkoc3RydWN0 IG5ldCAqbmV0LCBzdHJ1Y3Qgc21jX3BuZXRlbnRyeSAqcG5ldGVsZW0sCiAJCQkgICAgICAgc3Ry dWN0IG5sYXR0ciAqdGJbXSkKIHsKLQljaGFyICpzdHJpbmcsICppYm5hbWUgPSBOVUxMOwotCWlu dCByYyA9IDA7CisJY2hhciAqc3RyaW5nLCAqaWJuYW1lOworCWludCByYzsKIAogCW1lbXNldChw bmV0ZWxlbSwgMCwgc2l6ZW9mKCpwbmV0ZWxlbSkpOwogCUlOSVRfTElTVF9IRUFEKCZwbmV0ZWxl bS0+bGlzdCk7Ci0JaWYgKHRiW1NNQ19QTkVUSURfTkFNRV0pIHsKLQkJc3RyaW5nID0gKGNoYXIg KilubGFfZGF0YSh0YltTTUNfUE5FVElEX05BTUVdKTsKLQkJaWYgKCFzbWNfcG5ldGlkX3ZhbGlk KHN0cmluZywgcG5ldGVsZW0tPnBuZXRfbmFtZSkpIHsKLQkJCXJjID0gLUVJTlZBTDsKLQkJCWdv dG8gZXJyb3I7Ci0JCX0KLQl9Ci0JaWYgKHRiW1NNQ19QTkVUSURfRVRITkFNRV0pIHsKLQkJc3Ry aW5nID0gKGNoYXIgKilubGFfZGF0YSh0YltTTUNfUE5FVElEX0VUSE5BTUVdKTsKLQkJcG5ldGVs ZW0tPm5kZXYgPSBkZXZfZ2V0X2J5X25hbWUobmV0LCBzdHJpbmcpOwotCQlpZiAoIXBuZXRlbGVt LT5uZGV2KQotCQkJcmV0dXJuIC1FTk9FTlQ7Ci0JfQotCWlmICh0YltTTUNfUE5FVElEX0lCTkFN RV0pIHsKLQkJaWJuYW1lID0gKGNoYXIgKilubGFfZGF0YSh0YltTTUNfUE5FVElEX0lCTkFNRV0p OwotCQlpYm5hbWUgPSBzdHJpbShpYm5hbWUpOwotCQlwbmV0ZWxlbS0+c21jaWJkZXYgPSBzbWNf cG5ldF9maW5kX2liKGlibmFtZSk7Ci0JCWlmICghcG5ldGVsZW0tPnNtY2liZGV2KSB7Ci0JCQly YyA9IC1FTk9FTlQ7Ci0JCQlnb3RvIGVycm9yOwotCQl9Ci0JfQotCWlmICh0YltTTUNfUE5FVElE X0lCUE9SVF0pIHsKLQkJcG5ldGVsZW0tPmliX3BvcnQgPSBubGFfZ2V0X3U4KHRiW1NNQ19QTkVU SURfSUJQT1JUXSk7Ci0JCWlmIChwbmV0ZWxlbS0+aWJfcG9ydCA+IFNNQ19NQVhfUE9SVFMpIHsK LQkJCXJjID0gLUVJTlZBTDsKLQkJCWdvdG8gZXJyb3I7Ci0JCX0KLQl9CisKKwlyYyA9IC1FSU5W QUw7CisJaWYgKCF0YltTTUNfUE5FVElEX05BTUVdKQorCQlnb3RvIGVycm9yOworCXN0cmluZyA9 IChjaGFyICopbmxhX2RhdGEodGJbU01DX1BORVRJRF9OQU1FXSk7CisJaWYgKCFzbWNfcG5ldGlk X3ZhbGlkKHN0cmluZywgcG5ldGVsZW0tPnBuZXRfbmFtZSkpCisJCWdvdG8gZXJyb3I7CisKKwly YyA9IC1FSU5WQUw7CisJaWYgKCF0YltTTUNfUE5FVElEX0VUSE5BTUVdKQorCQlnb3RvIGVycm9y OworCXJjID0gLUVOT0VOVDsKKwlzdHJpbmcgPSAoY2hhciAqKW5sYV9kYXRhKHRiW1NNQ19QTkVU SURfRVRITkFNRV0pOworCXBuZXRlbGVtLT5uZGV2ID0gZGV2X2dldF9ieV9uYW1lKG5ldCwgc3Ry aW5nKTsKKwlpZiAoIXBuZXRlbGVtLT5uZGV2KQorCQlnb3RvIGVycm9yOworCisJcmMgPSAtRUlO VkFMOworCWlmICghdGJbU01DX1BORVRJRF9JQk5BTUVdKQorCQlnb3RvIGVycm9yOworCXJjID0g LUVOT0VOVDsKKwlpYm5hbWUgPSAoY2hhciAqKW5sYV9kYXRhKHRiW1NNQ19QTkVUSURfSUJOQU1F XSk7CisJaWJuYW1lID0gc3RyaW0oaWJuYW1lKTsKKwlwbmV0ZWxlbS0+c21jaWJkZXYgPSBzbWNf cG5ldF9maW5kX2liKGlibmFtZSk7CisJaWYgKCFwbmV0ZWxlbS0+c21jaWJkZXYpCisJCWdvdG8g ZXJyb3I7CisKKwlyYyA9IC1FSU5WQUw7CisJaWYgKCF0YltTTUNfUE5FVElEX0lCUE9SVF0pCisJ CWdvdG8gZXJyb3I7CisJcG5ldGVsZW0tPmliX3BvcnQgPSBubGFfZ2V0X3U4KHRiW1NNQ19QTkVU SURfSUJQT1JUXSk7CisJaWYgKHBuZXRlbGVtLT5pYl9wb3J0IDwgMSB8fCBwbmV0ZWxlbS0+aWJf cG9ydCA+IFNNQ19NQVhfUE9SVFMpCisJCWdvdG8gZXJyb3I7CisKIAlyZXR1cm4gMDsKIAogZXJy b3I6CkBAIC0zMDcsNiArMzEyLDggQEAgc3RhdGljIGludCBzbWNfcG5ldF9nZXQoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAl2b2lkICpoZHI7CiAJaW50IHJj OwogCisJaWYgKCFpbmZvLT5hdHRyc1tTTUNfUE5FVElEX05BTUVdKQorCQlyZXR1cm4gLUVJTlZB TDsKIAlwbmV0ZWxlbSA9IHNtY19wbmV0X2ZpbmRfcG5ldGlkKAogCQkJCShjaGFyICopbmxhX2Rh dGEoaW5mby0+YXR0cnNbU01DX1BORVRJRF9OQU1FXSkpOwogCWlmICghcG5ldGVsZW0pCkBAIC0z NTksNiArMzY2LDggQEAgc3RhdGljIGludCBzbWNfcG5ldF9hZGQoc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAogc3RhdGljIGludCBzbWNfcG5ldF9kZWwoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIHsKKwlpZiAoIWluZm8t PmF0dHJzW1NNQ19QTkVUSURfTkFNRV0pCisJCXJldHVybiAtRUlOVkFMOwogCXJldHVybiBzbWNf cG5ldF9yZW1vdmVfYnlfcG5ldGlkKAogCQkJCShjaGFyICopbmxhX2RhdGEoaW5mby0+YXR0cnNb U01DX1BORVRJRF9OQU1FXSkpOwogfQotLSAKMi4xNC4zCgoKRnJvbSBkN2QyMmYyMWY1ZTVhYjMy NTJhM2Q5ODQ3ZjM3MGY4ZGViYjc0OTNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBX aWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkRhdGU6IFRodSwgMTcgTWF5IDIw MTggMTM6MTM6MjkgLTA0MDAKU3ViamVjdDogW1BBVENIIDA2LzM0XSBuZXQ6IHRlc3QgdGFpbHJv b20gYmVmb3JlIGFwcGVuZGluZyB0byBsaW5lYXIgc2tiCgpbIFVwc3RyZWFtIGNvbW1pdCAxMTNm OTljMzM1ODU2NGEwNjQ3ZDQ0NGMyYWUzNGU4YjFhYmZkNWI5IF0KCkRldmljZSBmZWF0dXJlcyBt YXkgY2hhbmdlIGR1cmluZyB0cmFuc21pc3Npb24uIEluIHBhcnRpY3VsYXIgd2l0aApjb3JraW5n LCBhIGRldmljZSBtYXkgdG9nZ2xlIHNjYXR0ZXItZ2F0aGVyIGluIGJldHdlZW4gYWxsb2NhdGlu ZwphbmQgd3JpdGluZyB0byBhbiBza2IuCgpEbyBub3QgdW5jb25kaXRpb25hbGx5IGFzc3VtZSB0 aGF0ICFORVRJRl9GX1NHIGF0IHdyaXRlIHRpbWUgaW1wbGllcwp0aGF0IHRoZSBzYW1lIGhlbGQg YXQgYWxsb2MgdGltZSBhbmQgdGh1cyB0aGUgc2tiIGhhcyBzdWZmaWNpZW50CnRhaWxyb29tLgoK VGhpcyBpc3N1ZSBwcmVkYXRlcyBnaXQgaGlzdG9yeS4KCkZpeGVzOiAxZGExNzdlNGMzZjQgKCJM aW51eC0yLjYuMTItcmMyIikKUmVwb3J0ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUu Y29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjQvaXBfb3V0cHV0LmMgIHwgMyArKy0KIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyB8IDMgKyst CiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2NC9pcF9vdXRwdXQuYyBiL25ldC9pcHY0L2lwX291dHB1dC5jCmluZGV4 IGU4ZTY3NWJlNjBlYy4uNjNkNWQ2NmUwNDBhIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9vdXRw dXQuYworKysgYi9uZXQvaXB2NC9pcF9vdXRwdXQuYwpAQCAtMTA0MCw3ICsxMDQwLDggQEAgc3Rh dGljIGludCBfX2lwX2FwcGVuZF9kYXRhKHN0cnVjdCBzb2NrICpzaywKIAkJaWYgKGNvcHkgPiBs ZW5ndGgpCiAJCQljb3B5ID0gbGVuZ3RoOwogCi0JCWlmICghKHJ0LT5kc3QuZGV2LT5mZWF0dXJl cyZORVRJRl9GX1NHKSkgeworCQlpZiAoIShydC0+ZHN0LmRldi0+ZmVhdHVyZXMmTkVUSUZfRl9T RykgJiYKKwkJICAgIHNrYl90YWlscm9vbShza2IpID49IGNvcHkpIHsKIAkJCXVuc2lnbmVkIGlu dCBvZmY7CiAKIAkJCW9mZiA9IHNrYi0+bGVuOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X291 dHB1dC5jIGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCmluZGV4IGZmYmI4MTYwOTAxNi4uMGYyZDc0 ODg1YmNiIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjYv aXA2X291dHB1dC5jCkBAIC0xNDg4LDcgKzE0ODgsOCBAQCBzdGF0aWMgaW50IF9faXA2X2FwcGVu ZF9kYXRhKHN0cnVjdCBzb2NrICpzaywKIAkJaWYgKGNvcHkgPiBsZW5ndGgpCiAJCQljb3B5ID0g bGVuZ3RoOwogCi0JCWlmICghKHJ0LT5kc3QuZGV2LT5mZWF0dXJlcyZORVRJRl9GX1NHKSkgewor CQlpZiAoIShydC0+ZHN0LmRldi0+ZmVhdHVyZXMmTkVUSUZfRl9TRykgJiYKKwkJICAgIHNrYl90 YWlscm9vbShza2IpID49IGNvcHkpIHsKIAkJCXVuc2lnbmVkIGludCBvZmY7CiAKIAkJCW9mZiA9 IHNrYi0+bGVuOwotLSAKMi4xNC4zCgoKRnJvbSBkYmZkNTdlZDYwZjQ1MWFhMzJlNWZjZDQ5MDFi YzIwZWY5NTIzOWQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1 aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgMTEgTWF5IDIwMTggMTM6MjQ6MjUg LTA0MDAKU3ViamVjdDogW1BBVENIIDA3LzM0XSBwYWNrZXQ6IGluIHBhY2tldF9zbmQgc3RhcnQg d3JpdGluZyBhdCBsaW5rIGxheWVyCiBhbGxvY2F0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBiODRi YmFmN2E2YzhjY2EyNGY4YWNmMjVhMmM4ZTQ2OTEzYTk0N2JhIF0KClBhY2tldCBzb2NrZXRzIGFs bG93IGNvbnN0cnVjdGlvbiBvZiBwYWNrZXRzIHNob3J0ZXIgdGhhbgpkZXYtPmhhcmRfaGVhZGVy X2xlbiB0byBhY2NvbW1vZGF0ZSBwcm90b2NvbHMgd2l0aCB2YXJpYWJsZSBsZW5ndGgKbGluayBs YXllciBoZWFkZXJzLiBUaGVzZSBwYWNrZXRzIGFyZSBwYWRkZWQgdG8gZGV2LT5oYXJkX2hlYWRl cl9sZW4sCmJlY2F1c2Ugc29tZSBkZXZpY2UgZHJpdmVycyBpbnRlcnByZXQgdGhhdCBhcyBhIG1p bmltdW0gcGFja2V0IHNpemUuCgpwYWNrZXRfc25kIHJlc2VydmVzIGRldi0+aGFyZF9oZWFkZXJf bGVuIGJ5dGVzIG9uIGFsbG9jYXRpb24uClNPQ0tfREdSQU0gc29ja2V0cyBjYWxsIHNrYl9wdXNo IGluIGRldl9oYXJkX2hlYWRlcigpIHRvIGVuc3VyZSB0aGF0CmxpbmsgbGF5ZXIgaGVhZGVycyBh cmUgc3RvcmVkIGluIHRoZSByZXNlcnZlZCByYW5nZS4gU09DS19SQVcgc29ja2V0cwpkbyB0aGUg c2FtZSBpbiB0cGFja2V0X3NuZCwgYnV0IG5vdCBpbiBwYWNrZXRfc25kLgoKU3l6Ym90IHdhcyBh YmxlIHRvIHNlbmQgYSB6ZXJvIGJ5dGUgcGFja2V0IHRvIGEgZGV2aWNlIHdpdGggbWFzc2l2ZQox MTZCIGxpbmsgbGF5ZXIgaGVhZGVyLCBjYXVzaW5nIHBhZGRpbmcgdG8gY3Jvc3Mgb3ZlciBpbnRv IHNrYl9zaGluZm8uCkZpeCB0aGlzIGJ5IHdyaXRpbmcgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGxs aGVhZGVyIHJlc2VydmVkIHJhbmdlIGFsc28KaW4gdGhlIGNhc2Ugb2YgcGFja2V0X3NuZC9TT0NL X1JBVy4KClVwZGF0ZSBza2Jfc2V0X25ldHdvcmtfaGVhZGVyIHRvIHRoZSBuZXcgb2Zmc2V0LiBU aGlzIGFsc28gY29ycmVjdHMKaXQgZm9yIFNPQ0tfREdSQU0sIHdoZXJlIGl0IGluY29ycmVjdGx5 IGRvdWJsZSBjb3VudGVkIHJlc2VydmUgZHVlIHRvCnRoZSBza2JfcHVzaCBpbiBkZXZfaGFyZF9o ZWFkZXIuCgpGaXhlczogOWVkOTg4Y2Q1OTE1ICgicGFja2V0OiB2YWxpZGF0ZSB2YXJpYWJsZSBs ZW5ndGggbGwgaGVhZGVycyIpClJlcG9ydGVkLWJ5OiBzeXpib3QrNzFkNzRhNTQwNmQwMjA1N2Q1 NTlAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1 aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgNCArKyst CiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5k ZXggMzk5NGI3MWY4MTk3Li44MzUxZmFhYmJhNjIgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZf cGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMjkxMiwxMyArMjkxMiwx NSBAQCBzdGF0aWMgaW50IHBhY2tldF9zbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1z Z2hkciAqbXNnLCBzaXplX3QgbGVuKQogCWlmIChza2IgPT0gTlVMTCkKIAkJZ290byBvdXRfdW5s b2NrOwogCi0Jc2tiX3NldF9uZXR3b3JrX2hlYWRlcihza2IsIHJlc2VydmUpOworCXNrYl9yZXNl dF9uZXR3b3JrX2hlYWRlcihza2IpOwogCiAJZXJyID0gLUVJTlZBTDsKIAlpZiAoc29jay0+dHlw ZSA9PSBTT0NLX0RHUkFNKSB7CiAJCW9mZnNldCA9IGRldl9oYXJkX2hlYWRlcihza2IsIGRldiwg bnRvaHMocHJvdG8pLCBhZGRyLCBOVUxMLCBsZW4pOwogCQlpZiAodW5saWtlbHkob2Zmc2V0IDwg MCkpCiAJCQlnb3RvIG91dF9mcmVlOworCX0gZWxzZSBpZiAocmVzZXJ2ZSkgeworCQlza2JfcHVz aChza2IsIHJlc2VydmUpOwogCX0KIAogCS8qIFJldHVybnMgLUVGQVVMVCBvbiBlcnJvciAqLwot LSAKMi4xNC4zCgoKRnJvbSBiN2FmM2M0YTM2YzE3YmRkMjYyNzYxZThiNmFjNjQwMzA0MjE1MTA1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IEZyaSwgMTggTWF5IDIwMTggMDQ6NDc6NTUgLTA3MDAKU3ViamVjdDog W1BBVENIIDA4LzM0XSBzb2NrX2RpYWc6IGZpeCB1c2UtYWZ0ZXItZnJlZSByZWFkIGluIF9fc2tf ZnJlZQoKWyBVcHN0cmVhbSBjb21taXQgOTcwOTAyMGM4NmY2YmY4NDM5Y2EzZWZmYzU4Y2ZjYTQ5 YTVkZTE5MiBdCgpXZSBtdXN0IG5vdCBjYWxsIHNvY2tfZGlhZ19oYXNfZGVzdHJveV9saXN0ZW5l cnMoc2spIG9uIGEgc29ja2V0CnRoYXQgaGFzIG5vIHJlZmVyZW5jZSBvbiBuZXQgc3RydWN0dXJl LgoKQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZyZWUgaW4gc29ja19kaWFnX2hhc19kZXN0cm95X2xp c3RlbmVycyBpbmNsdWRlL2xpbnV4L3NvY2tfZGlhZy5oOjc1IFtpbmxpbmVdCkJVRzogS0FTQU46 IHVzZS1hZnRlci1mcmVlIGluIF9fc2tfZnJlZSsweDMyOS8weDM0MCBuZXQvY29yZS9zb2NrLmM6 MTYwOQpSZWFkIG9mIHNpemUgOCBhdCBhZGRyIGZmZmY4ODAxOGEwMmUzYTAgYnkgdGFzayBzd2Fw cGVyLzEvMAoKQ1BVOiAxIFBJRDogMCBDb21tOiBzd2FwcGVyLzEgTm90IHRhaW50ZWQgNC4xNy4w LXJjNSsgIzU0CkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29v Z2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiA8 SVJRPgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3Rh Y2srMHgxYjkvMHgyOTQgbGliL2R1bXBfc3RhY2suYzoxMTMKIHByaW50X2FkZHJlc3NfZGVzY3Jp cHRpb24rMHg2Yy8weDIwYiBtbS9rYXNhbi9yZXBvcnQuYzoyNTYKIGthc2FuX3JlcG9ydF9lcnJv ciBtbS9rYXNhbi9yZXBvcnQuYzozNTQgW2lubGluZV0KIGthc2FuX3JlcG9ydC5jb2xkLjcrMHgy NDIvMHgyZmUgbW0va2FzYW4vcmVwb3J0LmM6NDEyCiBfX2FzYW5fcmVwb3J0X2xvYWQ4X25vYWJv cnQrMHgxNC8weDIwIG1tL2thc2FuL3JlcG9ydC5jOjQzMwogc29ja19kaWFnX2hhc19kZXN0cm95 X2xpc3RlbmVycyBpbmNsdWRlL2xpbnV4L3NvY2tfZGlhZy5oOjc1IFtpbmxpbmVdCiBfX3NrX2Zy ZWUrMHgzMjkvMHgzNDAgbmV0L2NvcmUvc29jay5jOjE2MDkKIHNrX2ZyZWUrMHg0Mi8weDUwIG5l dC9jb3JlL3NvY2suYzoxNjIzCiBzb2NrX3B1dCBpbmNsdWRlL25ldC9zb2NrLmg6MTY2NCBbaW5s aW5lXQogcmVxc2tfZnJlZSBpbmNsdWRlL25ldC9yZXF1ZXN0X3NvY2suaDoxMTYgW2lubGluZV0K IHJlcXNrX3B1dCBpbmNsdWRlL25ldC9yZXF1ZXN0X3NvY2suaDoxMjQgW2lubGluZV0KIGluZXRf Y3NrX3JlcXNrX3F1ZXVlX2Ryb3BfYW5kX3B1dCBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29j ay5jOjY3MiBbaW5saW5lXQogcmVxc2tfdGltZXJfaGFuZGxlcisweGUyNy8weDEwZTAgbmV0L2lw djQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzo3MzkKIGNhbGxfdGltZXJfZm4rMHgyMzAvMHg5NDAg a2VybmVsL3RpbWUvdGltZXIuYzoxMzI2CiBleHBpcmVfdGltZXJzIGtlcm5lbC90aW1lL3RpbWVy LmM6MTM2MyBbaW5saW5lXQogX19ydW5fdGltZXJzKzB4NzllLzB4YzUwIGtlcm5lbC90aW1lL3Rp bWVyLmM6MTY2NgogcnVuX3RpbWVyX3NvZnRpcnErMHg0Yy8weDcwIGtlcm5lbC90aW1lL3RpbWVy LmM6MTY5MgogX19kb19zb2Z0aXJxKzB4MmUwLzB4YWY1IGtlcm5lbC9zb2Z0aXJxLmM6Mjg1CiBp bnZva2Vfc29mdGlycSBrZXJuZWwvc29mdGlycS5jOjM2NSBbaW5saW5lXQogaXJxX2V4aXQrMHgx ZDEvMHgyMDAga2VybmVsL3NvZnRpcnEuYzo0MDUKIGV4aXRpbmdfaXJxIGFyY2gveDg2L2luY2x1 ZGUvYXNtL2FwaWMuaDo1MjUgW2lubGluZV0KIHNtcF9hcGljX3RpbWVyX2ludGVycnVwdCsweDE3 ZS8weDcxMCBhcmNoL3g4Ni9rZXJuZWwvYXBpYy9hcGljLmM6MTA1MgogYXBpY190aW1lcl9pbnRl cnJ1cHQrMHhmLzB4MjAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzo4NjMKIDwvSVJRPgpSSVA6 IDAwMTA6bmF0aXZlX3NhZmVfaGFsdCsweDYvMHgxMCBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFm bGFncy5oOjU0ClJTUDogMDAxODpmZmZmODgwMWQ5YWU3YzM4IEVGTEFHUzogMDAwMDAyODIgT1JJ R19SQVg6IGZmZmZmZmZmZmZmZmZmMTMKUkFYOiBkZmZmZmMwMDAwMDAwMDAwIFJCWDogMWZmZmYx MDAzYjM1Y2Y4YSBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAKUkRYOiAxZmZmZmZmZmYxMWEzMGQwIFJT STogMDAwMDAwMDAwMDAwMDAwMSBSREk6IGZmZmZmZmZmODhkMTg2ODAKUkJQOiBmZmZmODgwMWQ5 YWU3YzM4IFIwODogZmZmZmVkMDAzYjVlNDZjMyBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAw MDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IDAwMDAwMDAwMDAwMDAw MDEKUjEzOiBmZmZmODgwMWQ5YWU3Y2YwIFIxNDogZmZmZmZmZmY4OTdiZWYyMCBSMTU6IDAwMDAw MDAwMDAwMDAwMDAKIGFyY2hfc2FmZV9oYWx0IGFyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0 Lmg6OTQgW2lubGluZV0KIGRlZmF1bHRfaWRsZSsweGMyLzB4NDQwIGFyY2gveDg2L2tlcm5lbC9w cm9jZXNzLmM6MzU0CiBhcmNoX2NwdV9pZGxlKzB4MTAvMHgyMCBhcmNoL3g4Ni9rZXJuZWwvcHJv Y2Vzcy5jOjM0NQogZGVmYXVsdF9pZGxlX2NhbGwrMHg2ZC8weDkwIGtlcm5lbC9zY2hlZC9pZGxl LmM6OTMKIGNwdWlkbGVfaWRsZV9jYWxsIGtlcm5lbC9zY2hlZC9pZGxlLmM6MTUzIFtpbmxpbmVd CiBkb19pZGxlKzB4Mzk1LzB4NTYwIGtlcm5lbC9zY2hlZC9pZGxlLmM6MjYyCiBjcHVfc3RhcnR1 cF9lbnRyeSsweDEwNC8weDEyMCBrZXJuZWwvc2NoZWQvaWRsZS5jOjM2OAogc3RhcnRfc2Vjb25k YXJ5KzB4NDI2LzB4NWIwIGFyY2gveDg2L2tlcm5lbC9zbXBib290LmM6MjY5CiBzZWNvbmRhcnlf c3RhcnR1cF82NCsweGE1LzB4YjAgYXJjaC94ODYva2VybmVsL2hlYWRfNjQuUzoyNDIKCkFsbG9j YXRlZCBieSB0YXNrIDQ1NTc6CiBzYXZlX3N0YWNrKzB4NDMvMHhkMCBtbS9rYXNhbi9rYXNhbi5j OjQ0OAogc2V0X3RyYWNrIG1tL2thc2FuL2thc2FuLmM6NDYwIFtpbmxpbmVdCiBrYXNhbl9rbWFs bG9jKzB4YzQvMHhlMCBtbS9rYXNhbi9rYXNhbi5jOjU1Mwoga2FzYW5fc2xhYl9hbGxvYysweDEy LzB4MjAgbW0va2FzYW4va2FzYW4uYzo0OTAKIGttZW1fY2FjaGVfYWxsb2MrMHgxMmUvMHg3NjAg bW0vc2xhYi5jOjM1NTQKIGttZW1fY2FjaGVfemFsbG9jIGluY2x1ZGUvbGludXgvc2xhYi5oOjY5 MSBbaW5saW5lXQogbmV0X2FsbG9jIG5ldC9jb3JlL25ldF9uYW1lc3BhY2UuYzozODMgW2lubGlu ZV0KIGNvcHlfbmV0X25zKzB4MTU5LzB4NGMwIG5ldC9jb3JlL25ldF9uYW1lc3BhY2UuYzo0MjMK IGNyZWF0ZV9uZXdfbmFtZXNwYWNlcysweDY5ZC8weDhmMCBrZXJuZWwvbnNwcm94eS5jOjEwNwog dW5zaGFyZV9uc3Byb3h5X25hbWVzcGFjZXMrMHhjMy8weDFmMCBrZXJuZWwvbnNwcm94eS5jOjIw Ngoga3N5c191bnNoYXJlKzB4NzA4LzB4ZjkwIGtlcm5lbC9mb3JrLmM6MjQwOAogX19kb19zeXNf dW5zaGFyZSBrZXJuZWwvZm9yay5jOjI0NzYgW2lubGluZV0KIF9fc2Vfc3lzX3Vuc2hhcmUga2Vy bmVsL2ZvcmsuYzoyNDc0IFtpbmxpbmVdCiBfX3g2NF9zeXNfdW5zaGFyZSsweDMxLzB4NDAga2Vy bmVsL2ZvcmsuYzoyNDc0CiBkb19zeXNjYWxsXzY0KzB4MWIxLzB4ODAwIGFyY2gveDg2L2VudHJ5 L2NvbW1vbi5jOjI4NwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkvMHhiZQoK RnJlZWQgYnkgdGFzayA2OToKIHNhdmVfc3RhY2srMHg0My8weGQwIG1tL2thc2FuL2thc2FuLmM6 NDQ4CiBzZXRfdHJhY2sgbW0va2FzYW4va2FzYW4uYzo0NjAgW2lubGluZV0KIF9fa2FzYW5fc2xh Yl9mcmVlKzB4MTFhLzB4MTcwIG1tL2thc2FuL2thc2FuLmM6NTIxCiBrYXNhbl9zbGFiX2ZyZWUr MHhlLzB4MTAgbW0va2FzYW4va2FzYW4uYzo1MjgKIF9fY2FjaGVfZnJlZSBtbS9zbGFiLmM6MzQ5 OCBbaW5saW5lXQoga21lbV9jYWNoZV9mcmVlKzB4ODYvMHgyZDAgbW0vc2xhYi5jOjM3NTYKIG5l dF9mcmVlIG5ldC9jb3JlL25ldF9uYW1lc3BhY2UuYzozOTkgW2lubGluZV0KIG5ldF9kcm9wX25z LnBhcnQuMTQrMHgxMWEvMHgxMzAgbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jOjQwNgogbmV0X2Ry b3BfbnMgbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jOjQwNSBbaW5saW5lXQogY2xlYW51cF9uZXQr MHg2YTEvMHhiMjAgbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jOjU0MQogcHJvY2Vzc19vbmVfd29y aysweGMxZS8weDFiNTAga2VybmVsL3dvcmtxdWV1ZS5jOjIxNDUKIHdvcmtlcl90aHJlYWQrMHgx Y2MvMHgxNDQwIGtlcm5lbC93b3JrcXVldWUuYzoyMjc5CiBrdGhyZWFkKzB4MzQ1LzB4NDEwIGtl cm5lbC9rdGhyZWFkLmM6MjQwCiByZXRfZnJvbV9mb3JrKzB4M2EvMHg1MCBhcmNoL3g4Ni9lbnRy eS9lbnRyeV82NC5TOjQxMgoKVGhlIGJ1Z2d5IGFkZHJlc3MgYmVsb25ncyB0byB0aGUgb2JqZWN0 IGF0IGZmZmY4ODAxOGEwMmMxNDAKIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIGNhY2hlIG5ldF9uYW1l c3BhY2Ugb2Ygc2l6ZSA4ODMyClRoZSBidWdneSBhZGRyZXNzIGlzIGxvY2F0ZWQgODgwMCBieXRl cyBpbnNpZGUgb2YKIDg4MzItYnl0ZSByZWdpb24gW2ZmZmY4ODAxOGEwMmMxNDAsIGZmZmY4ODAx OGEwMmUzYzApClRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBhZ2U6CnBhZ2U6ZmZm ZmVhMDAwNjI4MGIwMCBjb3VudDoxIG1hcGNvdW50OjAgbWFwcGluZzpmZmZmODgwMThhMDJjMTQw IGluZGV4OjB4MCBjb21wb3VuZF9tYXBjb3VudDogMApmbGFnczogMHgyZmZmYzAwMDAwMDgxMDAo c2xhYnxoZWFkKQpyYXc6IDAyZmZmYzAwMDAwMDgxMDAgZmZmZjg4MDE4YTAyYzE0MCAwMDAwMDAw MDAwMDAwMDAwIDAwMDAwMDAxMDAwMDAwMDEKcmF3OiBmZmZmZWEwMDA2MmExMzIwIGZmZmZlYTAw MDYyNjgwMjAgZmZmZjg4MDFkOWJkZGU0MCAwMDAwMDAwMDAwMDAwMDAwCnBhZ2UgZHVtcGVkIGJl Y2F1c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRldGVjdGVkCgpGaXhlczogYjkyMjYyMmVjNmVmICgi c29ja19kaWFnOiBkb24ndCBicm9hZGNhc3Qga2VybmVsIHNvY2tldHMiKQpTaWduZWQtb2ZmLWJ5 OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBDcmFpZyBHYWxsZWsgPGty YWlnQGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91 cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2NvcmUvc29jay5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc29jay5jIGIvbmV0 L2NvcmUvc29jay5jCmluZGV4IGVjNmViNTQ2YjIyOC4uNjhkMDhlZDU1MjFlIDEwMDY0NAotLS0g YS9uZXQvY29yZS9zb2NrLmMKKysrIGIvbmV0L2NvcmUvc29jay5jCkBAIC0xNTk1LDcgKzE1OTUs NyBAQCB2b2lkIHNrX2Rlc3RydWN0KHN0cnVjdCBzb2NrICpzaykKIAogc3RhdGljIHZvaWQgX19z a19mcmVlKHN0cnVjdCBzb2NrICpzaykKIHsKLQlpZiAodW5saWtlbHkoc29ja19kaWFnX2hhc19k ZXN0cm95X2xpc3RlbmVycyhzaykgJiYgc2stPnNrX25ldF9yZWZjbnQpKQorCWlmICh1bmxpa2Vs eShzay0+c2tfbmV0X3JlZmNudCAmJiBzb2NrX2RpYWdfaGFzX2Rlc3Ryb3lfbGlzdGVuZXJzKHNr KSkpCiAJCXNvY2tfZGlhZ19icm9hZGNhc3RfZGVzdHJveShzayk7CiAJZWxzZQogCQlza19kZXN0 cnVjdChzayk7Ci0tIAoyLjE0LjMKCgpGcm9tIDE2YTQ4N2FjMzAzZGJhZWZlY2E4NDU5ODE2YmE0 NzFiNTZkYTNjODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCAxNCBNYXkgMjAxOCAyMToxNDoyNiAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMDkvMzRdIHRjcDogcHVyZ2Ugd3JpdGUgcXVldWUgaW4gdGNwX2Nv bm5lY3RfaW5pdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZjU4MmIyNDhkMGE4NmJhZTU3ODhjNTQ4 ZDdiYjViY2E2Zjc2OTFhIF0KCnN5emthbGxlciBmb3VuZCBhIHJlbGlhYmxlIHdheSB0byBjcmFz aCB0aGUgaG9zdCwgaGl0dGluZyBhIEJVRygpCmluIF9fdGNwX3JldHJhbnNtaXRfc2tiKCkKCk1h bGljb3VzIE1TR19GQVNUT1BFTiBpcyB0aGUgcm9vdCBjYXVzZS4gV2UgbmVlZCB0byBwdXJnZSB3 cml0ZSBxdWV1ZQppbiB0Y3BfY29ubmVjdF9pbml0KCkgYXQgdGhlIHBvaW50IHdlIGluaXQgc25k X3VuYS93cml0ZV9zZXEuCgpUaGlzIHBhdGNoIGFsc28gcmVwbGFjZXMgdGhlIEJVRygpIGJ5IGEg bGVzcyBpbnRydXNpdmUgV0FSTl9PTl9PTkNFKCkKCmtlcm5lbCBCVUcgYXQgbmV0L2lwdjQvdGNw X291dHB1dC5jOjI4MzchCmludmFsaWQgb3Bjb2RlOiAwMDAwIFsjMV0gU01QIEtBU0FOCkR1bXBp bmcgZnRyYWNlIGJ1ZmZlcjoKICAgKGZ0cmFjZSBidWZmZXIgZW1wdHkpCk1vZHVsZXMgbGlua2Vk IGluOgpDUFU6IDAgUElEOiA1Mjc2IENvbW06IHN5ei1leGVjdXRvcjAgTm90IHRhaW50ZWQgNC4x Ny4wLXJjMysgIzUxCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUv R29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExClJJUDogMDAxMDpf X3RjcF9yZXRyYW5zbWl0X3NrYisweDI5OTIvMHgyZWIwIG5ldC9pcHY0L3RjcF9vdXRwdXQuYzoy ODM3ClJTUDogMDAwMDpmZmZmODgwMWRhZTA2ZmY4IEVGTEFHUzogMDAwMTAyMDYKUkFYOiBmZmZm ODgwMWI5ZmU2MWMwIFJCWDogMDAwMDAwMDBmZmMxOGExNiBSQ1g6IGZmZmZmZmZmODY0ZTFhNDkK UkRYOiAwMDAwMDAwMDAwMDAwMTAwIFJTSTogZmZmZmZmZmY4NjRlMmUxMiBSREk6IDAwMDAwMDAw MDAwMDAwMDUKUkJQOiBmZmZmODgwMWRhZTA3M2EwIFIwODogZmZmZjg4MDFiOWZlNjFjMCBSMDk6 IGZmZmZlZDAwMzljNDBkZDIKUjEwOiBmZmZmZWQwMDM5YzQwZGQyIFIxMTogZmZmZjg4MDFjZTIw NmU5MyBSMTI6IDAwMDAwMDAwNDIxZWVhYWQKUjEzOiBmZmZmODgwMWNlMjA2ZDRlIFIxNDogZmZm Zjg4MDFjZTIwNmNjMCBSMTU6IGZmZmY4ODAxY2Q0ZjRhODAKRlM6ICAwMDAwMDAwMDAwMDAwMDAw KDAwMDApIEdTOmZmZmY4ODAxZGFlMDAwMDAoMDA2Mykga25sR1M6MDAwMDAwMDAwOTZiYzkwMApD UzogIDAwMTAgRFM6IDAwMmIgRVM6IDAwMmIgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAw MDAwMDAyMDAwMDAwMCBDUjM6IDAwMDAwMDAxYzQ3YjYwMDAgQ1I0OiAwMDAwMDAwMDAwMTQwNmYw CkRSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAw MDAwMDAwMDAwCkRSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3 OiAwMDAwMDAwMDAwMDAwNDAwCkNhbGwgVHJhY2U6CiA8SVJRPgogdGNwX3JldHJhbnNtaXRfc2ti KzB4MmUvMHgyNTAgbmV0L2lwdjQvdGNwX291dHB1dC5jOjI5MjMKIHRjcF9yZXRyYW5zbWl0X3Rp bWVyKzB4YzUwLzB4MzA2MCBuZXQvaXB2NC90Y3BfdGltZXIuYzo0ODgKIHRjcF93cml0ZV90aW1l cl9oYW5kbGVyKzB4MzM5LzB4OTYwIG5ldC9pcHY0L3RjcF90aW1lci5jOjU3MwogdGNwX3dyaXRl X3RpbWVyKzB4MTExLzB4MWQwIG5ldC9pcHY0L3RjcF90aW1lci5jOjU5MwogY2FsbF90aW1lcl9m bisweDIzMC8weDk0MCBrZXJuZWwvdGltZS90aW1lci5jOjEzMjYKIGV4cGlyZV90aW1lcnMga2Vy bmVsL3RpbWUvdGltZXIuYzoxMzYzIFtpbmxpbmVdCiBfX3J1bl90aW1lcnMrMHg3OWUvMHhjNTAg a2VybmVsL3RpbWUvdGltZXIuYzoxNjY2CiBydW5fdGltZXJfc29mdGlycSsweDRjLzB4NzAga2Vy bmVsL3RpbWUvdGltZXIuYzoxNjkyCiBfX2RvX3NvZnRpcnErMHgyZTAvMHhhZjUga2VybmVsL3Nv ZnRpcnEuYzoyODUKIGludm9rZV9zb2Z0aXJxIGtlcm5lbC9zb2Z0aXJxLmM6MzY1IFtpbmxpbmVd CiBpcnFfZXhpdCsweDFkMS8weDIwMCBrZXJuZWwvc29mdGlycS5jOjQwNQogZXhpdGluZ19pcnEg YXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5oOjUyNSBbaW5saW5lXQogc21wX2FwaWNfdGltZXJf aW50ZXJydXB0KzB4MTdlLzB4NzEwIGFyY2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYzoxMDUyCiBh cGljX3RpbWVyX2ludGVycnVwdCsweGYvMHgyMCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjg2 MwoKRml4ZXM6IGNmNjBhZjAzY2E0ZSAoIm5ldC10Y3A6IEZhc3QgT3BlbiBjbGllbnQgLSBzZW5k bXNnKE1TR19GQVNUT1BFTikiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkNjOiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KQ2M6IE5l YWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxz eXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KQWNrZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJk d2VsbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX291dHB1dC5jIHwgNyArKysrKy0tCiAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9pcHY0L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwppbmRleCA4M2Qx MWNkMmViNjUuLmFiYWU1MTk2Y2QzYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX291dHB1dC5j CisrKyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwpAQCAtMjgxNCw4ICsyODE0LDEwIEBAIGludCBf X3RjcF9yZXRyYW5zbWl0X3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2Is IGludCBzZWdzKQogCQlyZXR1cm4gLUVCVVNZOwogCiAJaWYgKGJlZm9yZShUQ1BfU0tCX0NCKHNr YiktPnNlcSwgdHAtPnNuZF91bmEpKSB7Ci0JCWlmIChiZWZvcmUoVENQX1NLQl9DQihza2IpLT5l bmRfc2VxLCB0cC0+c25kX3VuYSkpCi0JCQlCVUcoKTsKKwkJaWYgKHVubGlrZWx5KGJlZm9yZShU Q1BfU0tCX0NCKHNrYiktPmVuZF9zZXEsIHRwLT5zbmRfdW5hKSkpIHsKKwkJCVdBUk5fT05fT05D RSgxKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CiAJCWlmICh0Y3BfdHJpbV9oZWFkKHNrLCBz a2IsIHRwLT5zbmRfdW5hIC0gVENQX1NLQl9DQihza2IpLT5zZXEpKQogCQkJcmV0dXJuIC1FTk9N RU07CiAJfQpAQCAtMzMxMiw2ICszMzE0LDcgQEAgc3RhdGljIHZvaWQgdGNwX2Nvbm5lY3RfaW5p dChzdHJ1Y3Qgc29jayAqc2spCiAJc29ja19yZXNldF9mbGFnKHNrLCBTT0NLX0RPTkUpOwogCXRw LT5zbmRfd25kID0gMDsKIAl0Y3BfaW5pdF93bCh0cCwgMCk7CisJdGNwX3dyaXRlX3F1ZXVlX3B1 cmdlKHNrKTsKIAl0cC0+c25kX3VuYSA9IHRwLT53cml0ZV9zZXE7CiAJdHAtPnNuZF9zbWwgPSB0 cC0+d3JpdGVfc2VxOwogCXRwLT5zbmRfdXAgPSB0cC0+d3JpdGVfc2VxOwotLSAKMi4xNC4zCgoK RnJvbSA1MjM3MDIzOWU3YTMyYzY2OWQxODNiZWFmNDU4MzFmZDkxZDVmYWE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiaHByZWdAdm13YXJlLmNvbSIgPGhwcmVnQHZtd2FyZS5jb20+ CkRhdGU6IE1vbiwgMTQgTWF5IDIwMTggMDg6MTQ6MzQgLTA0MDAKU3ViamVjdDogW1BBVENIIDEw LzM0XSB2bXhuZXQzOiBzZXQgdGhlIERNQSBtYXNrIGJlZm9yZSB0aGUgZmlyc3QgRE1BIG1hcAog b3BlcmF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA2MWFlZWNlYTQwYWZiMmI4OTkzM2UyN2NkNGFk YjEwZmMyZTc1Y2ZkIF0KClRoZSBETUEgbWFzayBtdXN0IGJlIHNldCBiZWZvcmUsIG5vdCBhZnRl ciwgdGhlIGZpcnN0IERNQSBtYXAgb3BlcmF0aW9uLCBvcgp0aGUgZmlyc3QgRE1BIG1hcCBvcGVy YXRpb24gY291bGQgaW4gdGhlb3J5IGZhaWwgb24gc29tZSBzeXN0ZW1zLgoKRml4ZXM6IGIwZWI1 N2NiOTdlNzggKCJWTVhORVQzOiBBZGQgc3VwcG9ydCBmb3IgdmlydHVhbCBJT01NVSIpClNpZ25l ZC1vZmYtYnk6IFJlZ2lzIER1Y2hlc25lIDxocHJlZ0B2bXdhcmUuY29tPgpBY2tlZC1ieTogUm9u YWsgRG9zaGkgPGRvc2hpckB2bXdhcmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQz X2Rydi5jIHwgNTAgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2Rydi5jIGIvZHJpdmVycy9uZXQvdm14bmV0 My92bXhuZXQzX2Rydi5jCmluZGV4IGNmOTUyOTBiMTYwYy4uMjNjZDNhM2M0YWIzIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQv dm14bmV0My92bXhuZXQzX2Rydi5jCkBAIC0yNjc1LDcgKzI2NzUsNyBAQCB2bXhuZXQzX3NldF9t YWNfYWRkcihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB2b2lkICpwKQogLyogPT09PT09PT09 PT09PT09PT09PT0gaW5pdGlhbGl6YXRpb24gYW5kIGNsZWFudXAgcm91dGluZXMgPT09PT09PT09 PT09ICovCiAKIHN0YXRpYyBpbnQKLXZteG5ldDNfYWxsb2NfcGNpX3Jlc291cmNlcyhzdHJ1Y3Qg dm14bmV0M19hZGFwdGVyICphZGFwdGVyLCBib29sICpkbWE2NCkKK3ZteG5ldDNfYWxsb2NfcGNp X3Jlc291cmNlcyhzdHJ1Y3Qgdm14bmV0M19hZGFwdGVyICphZGFwdGVyKQogewogCWludCBlcnI7 CiAJdW5zaWduZWQgbG9uZyBtbWlvX3N0YXJ0LCBtbWlvX2xlbjsKQEAgLTI2ODcsMzAgKzI2ODcs MTIgQEAgdm14bmV0M19hbGxvY19wY2lfcmVzb3VyY2VzKHN0cnVjdCB2bXhuZXQzX2FkYXB0ZXIg KmFkYXB0ZXIsIGJvb2wgKmRtYTY0KQogCQlyZXR1cm4gZXJyOwogCX0KIAotCWlmIChwY2lfc2V0 X2RtYV9tYXNrKHBkZXYsIERNQV9CSVRfTUFTSyg2NCkpID09IDApIHsKLQkJaWYgKHBjaV9zZXRf Y29uc2lzdGVudF9kbWFfbWFzayhwZGV2LCBETUFfQklUX01BU0soNjQpKSAhPSAwKSB7Ci0JCQlk ZXZfZXJyKCZwZGV2LT5kZXYsCi0JCQkJInBjaV9zZXRfY29uc2lzdGVudF9kbWFfbWFzayBmYWls ZWRcbiIpOwotCQkJZXJyID0gLUVJTzsKLQkJCWdvdG8gZXJyX3NldF9tYXNrOwotCQl9Ci0JCSpk bWE2NCA9IHRydWU7Ci0JfSBlbHNlIHsKLQkJaWYgKHBjaV9zZXRfZG1hX21hc2socGRldiwgRE1B X0JJVF9NQVNLKDMyKSkgIT0gMCkgewotCQkJZGV2X2VycigmcGRldi0+ZGV2LAotCQkJCSJwY2lf c2V0X2RtYV9tYXNrIGZhaWxlZFxuIik7Ci0JCQllcnIgPSAtRUlPOwotCQkJZ290byBlcnJfc2V0 X21hc2s7Ci0JCX0KLQkJKmRtYTY0ID0gZmFsc2U7Ci0JfQotCiAJZXJyID0gcGNpX3JlcXVlc3Rf c2VsZWN0ZWRfcmVnaW9ucyhwZGV2LCAoMSA8PCAyKSAtIDEsCiAJCQkJCSAgIHZteG5ldDNfZHJp dmVyX25hbWUpOwogCWlmIChlcnIpIHsKIAkJZGV2X2VycigmcGRldi0+ZGV2LAogCQkJIkZhaWxl ZCB0byByZXF1ZXN0IHJlZ2lvbiBmb3IgYWRhcHRlcjogZXJyb3IgJWRcbiIsIGVycik7Ci0JCWdv dG8gZXJyX3NldF9tYXNrOworCQlnb3RvIGVycl9lbmFibGVfZGV2aWNlOwogCX0KIAogCXBjaV9z ZXRfbWFzdGVyKHBkZXYpOwpAQCAtMjczOCw3ICsyNzIwLDcgQEAgdm14bmV0M19hbGxvY19wY2lf cmVzb3VyY2VzKHN0cnVjdCB2bXhuZXQzX2FkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgKmRtYTY0KQog CWlvdW5tYXAoYWRhcHRlci0+aHdfYWRkcjApOwogZXJyX2lvcmVtYXA6CiAJcGNpX3JlbGVhc2Vf c2VsZWN0ZWRfcmVnaW9ucyhwZGV2LCAoMSA8PCAyKSAtIDEpOwotZXJyX3NldF9tYXNrOgorZXJy X2VuYWJsZV9kZXZpY2U6CiAJcGNpX2Rpc2FibGVfZGV2aWNlKHBkZXYpOwogCXJldHVybiBlcnI7 CiB9CkBAIC0zMjQzLDcgKzMyMjUsNyBAQCB2bXhuZXQzX3Byb2JlX2RldmljZShzdHJ1Y3QgcGNp X2RldiAqcGRldiwKICNlbmRpZgogCX07CiAJaW50IGVycjsKLQlib29sIGRtYTY0ID0gZmFsc2U7 IC8qIHN0dXBpZCBnY2MgKi8KKwlib29sIGRtYTY0OwogCXUzMiB2ZXI7CiAJc3RydWN0IG5ldF9k ZXZpY2UgKm5ldGRldjsKIAlzdHJ1Y3Qgdm14bmV0M19hZGFwdGVyICphZGFwdGVyOwpAQCAtMzI4 OSw2ICszMjcxLDI0IEBAIHZteG5ldDNfcHJvYmVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2 LAogCWFkYXB0ZXItPnJ4X3Jpbmdfc2l6ZSA9IFZNWE5FVDNfREVGX1JYX1JJTkdfU0laRTsKIAlh ZGFwdGVyLT5yeF9yaW5nMl9zaXplID0gVk1YTkVUM19ERUZfUlhfUklORzJfU0laRTsKIAorCWlm IChwY2lfc2V0X2RtYV9tYXNrKHBkZXYsIERNQV9CSVRfTUFTSyg2NCkpID09IDApIHsKKwkJaWYg KHBjaV9zZXRfY29uc2lzdGVudF9kbWFfbWFzayhwZGV2LCBETUFfQklUX01BU0soNjQpKSAhPSAw KSB7CisJCQlkZXZfZXJyKCZwZGV2LT5kZXYsCisJCQkJInBjaV9zZXRfY29uc2lzdGVudF9kbWFf bWFzayBmYWlsZWRcbiIpOworCQkJZXJyID0gLUVJTzsKKwkJCWdvdG8gZXJyX3NldF9tYXNrOwor CQl9CisJCWRtYTY0ID0gdHJ1ZTsKKwl9IGVsc2UgeworCQlpZiAocGNpX3NldF9kbWFfbWFzayhw ZGV2LCBETUFfQklUX01BU0soMzIpKSAhPSAwKSB7CisJCQlkZXZfZXJyKCZwZGV2LT5kZXYsCisJ CQkJInBjaV9zZXRfZG1hX21hc2sgZmFpbGVkXG4iKTsKKwkJCWVyciA9IC1FSU87CisJCQlnb3Rv IGVycl9zZXRfbWFzazsKKwkJfQorCQlkbWE2NCA9IGZhbHNlOworCX0KKwogCXNwaW5fbG9ja19p bml0KCZhZGFwdGVyLT5jbWRfbG9jayk7CiAJYWRhcHRlci0+YWRhcHRlcl9wYSA9IGRtYV9tYXBf c2luZ2xlKCZhZGFwdGVyLT5wZGV2LT5kZXYsIGFkYXB0ZXIsCiAJCQkJCSAgICAgc2l6ZW9mKHN0 cnVjdCB2bXhuZXQzX2FkYXB0ZXIpLApAQCAtMzI5Niw3ICszMjk2LDcgQEAgdm14bmV0M19wcm9i ZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKCZh ZGFwdGVyLT5wZGV2LT5kZXYsIGFkYXB0ZXItPmFkYXB0ZXJfcGEpKSB7CiAJCWRldl9lcnIoJnBk ZXYtPmRldiwgIkZhaWxlZCB0byBtYXAgZG1hXG4iKTsKIAkJZXJyID0gLUVGQVVMVDsKLQkJZ290 byBlcnJfZG1hX21hcDsKKwkJZ290byBlcnJfc2V0X21hc2s7CiAJfQogCWFkYXB0ZXItPnNoYXJl ZCA9IGRtYV9hbGxvY19jb2hlcmVudCgKIAkJCQkmYWRhcHRlci0+cGRldi0+ZGV2LApAQCAtMzM0 Nyw3ICszMzQ3LDcgQEAgdm14bmV0M19wcm9iZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYs CiAJfQogI2VuZGlmIC8qIFZNWE5FVDNfUlNTICovCiAKLQllcnIgPSB2bXhuZXQzX2FsbG9jX3Bj aV9yZXNvdXJjZXMoYWRhcHRlciwgJmRtYTY0KTsKKwllcnIgPSB2bXhuZXQzX2FsbG9jX3BjaV9y ZXNvdXJjZXMoYWRhcHRlcik7CiAJaWYgKGVyciA8IDApCiAJCWdvdG8gZXJyX2FsbG9jX3BjaTsK IApAQCAtMzQ5Myw3ICszNDkzLDcgQEAgdm14bmV0M19wcm9iZV9kZXZpY2Uoc3RydWN0IHBjaV9k ZXYgKnBkZXYsCiBlcnJfYWxsb2Nfc2hhcmVkOgogCWRtYV91bm1hcF9zaW5nbGUoJmFkYXB0ZXIt PnBkZXYtPmRldiwgYWRhcHRlci0+YWRhcHRlcl9wYSwKIAkJCSBzaXplb2Yoc3RydWN0IHZteG5l dDNfYWRhcHRlciksIFBDSV9ETUFfVE9ERVZJQ0UpOwotZXJyX2RtYV9tYXA6CitlcnJfc2V0X21h c2s6CiAJZnJlZV9uZXRkZXYobmV0ZGV2KTsKIAlyZXR1cm4gZXJyOwogfQotLSAKMi4xNC4zCgoK RnJvbSA5ZTdiMWRhMjE5ZTFhNmIyNjZkYzA3ZDc5NjBmZmI4NjZjZTE0M2UyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiaHByZWdAdm13YXJlLmNvbSIgPGhwcmVnQHZtd2FyZS5jb20+ CkRhdGU6IE1vbiwgMTQgTWF5IDIwMTggMDg6MTQ6NDkgLTA0MDAKU3ViamVjdDogW1BBVENIIDEx LzM0XSB2bXhuZXQzOiB1c2UgRE1BIG1lbW9yeSBiYXJyaWVycyB3aGVyZSByZXF1aXJlZAoKWyBV cHN0cmVhbSBjb21taXQgZjMwMDJjMTM3NGZiMjM2N2M5ZDhkYmIyODg1Mjc5MWVmOTBkMmJhYyBd CgpUaGUgZ2VuIGJpdHMgbXVzdCBiZSByZWFkIGZpcnN0IGZyb20gKHJlc3AuIHdyaXR0ZW4gbGFz dCB0bykgRE1BIG1lbW9yeS4KVGhlIHByb3BlciB3YXkgdG8gZW5mb3JjZSB0aGlzIG9uIExpbnV4 IGlzIHRvIGNhbGwgZG1hX3JtYigpIChyZXNwLgpkbWFfd21iKCkpLgoKU2lnbmVkLW9mZi1ieTog UmVnaXMgRHVjaGVzbmUgPGhwcmVnQHZtd2FyZS5jb20+CkFja2VkLWJ5OiBSb25hayBEb3NoaSA8 ZG9zaGlyQHZtd2FyZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZHJ2LmMgfCAy MiArKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYuYyBiL2RyaXZl cnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYuYwppbmRleCAyM2NkM2EzYzRhYjMuLjM2MjhmZDdl NjA2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2Rydi5jCisrKyBi L2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYuYwpAQCAtMzY5LDYgKzM2OSwxMSBAQCB2 bXhuZXQzX3RxX3R4X2NvbXBsZXRlKHN0cnVjdCB2bXhuZXQzX3R4X3F1ZXVlICp0cSwKIAogCWdk ZXNjID0gdHEtPmNvbXBfcmluZy5iYXNlICsgdHEtPmNvbXBfcmluZy5uZXh0MnByb2M7CiAJd2hp bGUgKFZNWE5FVDNfVENEX0dFVF9HRU4oJmdkZXNjLT50Y2QpID09IHRxLT5jb21wX3JpbmcuZ2Vu KSB7CisJCS8qIFByZXZlbnQgYW55ICZnZGVzYy0+dGNkIGZpZWxkIGZyb20gYmVpbmcgKHNwZWN1 bGF0aXZlbHkpCisJCSAqIHJlYWQgYmVmb3JlICgmZ2Rlc2MtPnRjZCktPmdlbiBpcyByZWFkLgor CQkgKi8KKwkJZG1hX3JtYigpOworCiAJCWNvbXBsZXRlZCArPSB2bXhuZXQzX3VubWFwX3BrdChW TVhORVQzX1RDRF9HRVRfVFhJRFgoCiAJCQkJCSAgICAgICAmZ2Rlc2MtPnRjZCksIHRxLCBhZGFw dGVyLT5wZGV2LAogCQkJCQkgICAgICAgYWRhcHRlcik7CkBAIC0xMDk5LDYgKzExMDQsMTEgQEAg dm14bmV0M190cV94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB2bXhuZXQzX3R4X3F1 ZXVlICp0cSwKIAkJZ2Rlc2MtPnR4ZC50Y2kgPSBza2Jfdmxhbl90YWdfZ2V0KHNrYik7CiAJfQog CisJLyogRW5zdXJlIHRoYXQgdGhlIHdyaXRlIHRvICgmZ2Rlc2MtPnR4ZCktPmdlbiB3aWxsIGJl IG9ic2VydmVkIGFmdGVyCisJICogYWxsIG90aGVyIHdyaXRlcyB0byAmZ2Rlc2MtPnR4ZC4KKwkg Ki8KKwlkbWFfd21iKCk7CisKIAkvKiBmaW5hbGx5IGZsaXBzIHRoZSBHRU4gYml0IG9mIHRoZSBT T1AgZGVzYy4gKi8KIAlnZGVzYy0+ZHdvcmRbMl0gPSBjcHVfdG9fbGUzMihsZTMyX3RvX2NwdShn ZGVzYy0+ZHdvcmRbMl0pIF4KIAkJCQkJCSAgVk1YTkVUM19UWERfR0VOKTsKQEAgLTEyODYsNiAr MTI5NiwxMiBAQCB2bXhuZXQzX3JxX3J4X2NvbXBsZXRlKHN0cnVjdCB2bXhuZXQzX3J4X3F1ZXVl ICpycSwKIAkJCSAqLwogCQkJYnJlYWs7CiAJCX0KKworCQkvKiBQcmV2ZW50IGFueSByY2QgZmll bGQgZnJvbSBiZWluZyAoc3BlY3VsYXRpdmVseSkgcmVhZCBiZWZvcmUKKwkJICogcmNkLT5nZW4g aXMgcmVhZC4KKwkJICovCisJCWRtYV9ybWIoKTsKKwogCQlCVUdfT04ocmNkLT5ycUlEICE9IHJx LT5xaWQgJiYgcmNkLT5ycUlEICE9IHJxLT5xaWQyICYmCiAJCSAgICAgICByY2QtPnJxSUQgIT0g cnEtPmRhdGFSaW5nUWlkKTsKIAkJaWR4ID0gcmNkLT5yeGRJZHg7CkBAIC0xNTE1LDYgKzE1MzEs MTIgQEAgdm14bmV0M19ycV9yeF9jb21wbGV0ZShzdHJ1Y3Qgdm14bmV0M19yeF9xdWV1ZSAqcnEs CiAJCXJpbmctPm5leHQyY29tcCA9IGlkeDsKIAkJbnVtX3RvX2FsbG9jID0gdm14bmV0M19jbWRf cmluZ19kZXNjX2F2YWlsKHJpbmcpOwogCQlyaW5nID0gcnEtPnJ4X3JpbmcgKyByaW5nX2lkeDsK KworCQkvKiBFbnN1cmUgdGhhdCB0aGUgd3JpdGVzIHRvIHJ4ZC0+Z2VuIGJpdHMgd2lsbCBiZSBv YnNlcnZlZAorCQkgKiBhZnRlciBhbGwgb3RoZXIgd3JpdGVzIHRvIHJ4ZCBvYmplY3RzLgorCQkg Ki8KKwkJZG1hX3dtYigpOworCiAJCXdoaWxlIChudW1fdG9fYWxsb2MpIHsKIAkJCXZteG5ldDNf Z2V0UnhEZXNjKHJ4ZCwgJnJpbmctPmJhc2VbcmluZy0+bmV4dDJmaWxsXS5yeGQsCiAJCQkJCSAg JnJ4Q21kRGVzYyk7Ci0tIAoyLjE0LjMKCgpGcm9tIDMwYmJkMzc4M2RhN2Y0MWQ5ZGYxZTgxMjMy YjkzMjc2NWJiY2ZmYjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhaXlhbmcgWmhh bmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+CkRhdGU6IE1vbiwgMTQgTWF5IDIwMTggMTU6MzI6 MDAgLTA3MDAKU3ViamVjdDogW1BBVENIIDEyLzM0XSBodl9uZXR2c2M6IEZpeCB0aGUgcmVhbCBu dW1iZXIgb2YgcXVldWVzIG9mIG5vbi12UlNTCiBjYXNlcwoKWyBDb21taXQgNjQ1MGY4ZjI2OWE5 MjcxOTg1ZTRhOGMxMzkyMGI3ZTRjZjIxYzBmMyB1cHN0cmVhbS4gXQoKRm9yIG9sZGVyIGhvc3Rz IHdpdGhvdXQgbXVsdGktY2hhbm5lbCAodlJTUykgc3VwcG9ydCwgYW5kIHNvbWUgZXJyb3IKY2Fz ZXMsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHRoZSByZWFsIG51bWJlciBvZiBxdWV1ZXMgdG8gb25l LgpUaGlzIHBhdGNoIGFkZHMgdGhpcyBtaXNzaW5nIHNldHRpbmcuCgpGaXhlczogODE5NWIxMzk2 ZWM4ICgiaHZfbmV0dnNjOiBmaXggZGVhZGxvY2sgb24gaG90cGx1ZyIpClNpZ25lZC1vZmYtYnk6 IEhhaXlhbmcgWmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+ClJldmlld2VkLWJ5OiBTdGVw aGVuIEhlbW1pbmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2h5cGVy di9uZXR2c2NfZHJ2LmMgfCA2ICsrKysrKwogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgYi9kcml2ZXJz L25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IDQ0NGU1NjBkOTI4Yi4uZGZmOTNmNjgyNDM1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCisrKyBiL2RyaXZl cnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTE5MzIsNiArMTkzMiwxMiBAQCBzdGF0aWMg aW50IG5ldHZzY19wcm9iZShzdHJ1Y3QgaHZfZGV2aWNlICpkZXYsCiAJLyogV2UgYWx3YXlzIG5l ZWQgaGVhZHJvb20gZm9yIHJuZGlzIGhlYWRlciAqLwogCW5ldC0+bmVlZGVkX2hlYWRyb29tID0g Uk5ESVNfQU5EX1BQSV9TSVpFOwogCisJLyogSW5pdGlhbGl6ZSB0aGUgbnVtYmVyIG9mIHF1ZXVl cyB0byBiZSAxLCB3ZSBtYXkgY2hhbmdlIGl0IGlmIG1vcmUKKwkgKiBjaGFubmVscyBhcmUgb2Zm ZXJlZCBsYXRlci4KKwkgKi8KKwluZXRpZl9zZXRfcmVhbF9udW1fdHhfcXVldWVzKG5ldCwgMSk7 CisJbmV0aWZfc2V0X3JlYWxfbnVtX3J4X3F1ZXVlcyhuZXQsIDEpOworCiAJLyogTm90aWZ5IHRo ZSBuZXR2c2MgZHJpdmVyIG9mIHRoZSBuZXcgZGV2aWNlICovCiAJbWVtc2V0KCZkZXZpY2VfaW5m bywgMCwgc2l6ZW9mKGRldmljZV9pbmZvKSk7CiAJZGV2aWNlX2luZm8ucmluZ19zaXplID0gcmlu Z19zaXplOwotLSAKMi4xNC4zCgoKRnJvbSA1ZWU0YTg5YjZhZmM2Njg5NDFlZDZiYTY5MjkyOWRk MTA5MDRjMDBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYWl5YW5nIFpoYW5nIDxo YWl5YW5nekBtaWNyb3NvZnQuY29tPgpEYXRlOiBNb24sIDE0IE1heSAyMDE4IDE1OjMyOjAxIC0w NzAwClN1YmplY3Q6IFtQQVRDSCAxMy8zNF0gaHZfbmV0dnNjOiBSZW5hbWUgaW5kX3RhYmxlIHRv IHJ4X3RhYmxlCgpbIENvbW1pdCA0NzM3MTMwMGRmYzI2OWRkOGQxNTBlNWI4NzJiZGJiZGE5OGJh ODA5IHVwc3RyZWFtLiBdCgpSZW5hbWUgdGhpcyB2YXJpYWJsZSBiZWNhdXNlIGl0IGlzIHRoZSBS ZWNlaXZlIGluZGlyZWN0aW9uCnRhYmxlLgoKU2lnbmVkLW9mZi1ieTogSGFpeWFuZyBaaGFuZyA8 aGFpeWFuZ3pAbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0Lmgg ICB8IDIgKy0KIGRyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgICB8IDQgKystLQogZHJp dmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jIHwgNiArKystLS0KIDMgZmlsZXMgY2hhbmdl ZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2h5cGVydi9oeXBlcnZfbmV0LmggYi9kcml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2X25ldC5o CmluZGV4IDRmM2FmY2Y5MmE3Yy4uODE0NGI5Mzg0NjBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9oeXBlcnYvaHlwZXJ2X25ldC5oCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0 LmgKQEAgLTE3OSw3ICsxNzksNyBAQCBzdHJ1Y3Qgcm5kaXNfZGV2aWNlIHsKIAogCXU4IGh3X21h Y19hZHJbRVRIX0FMRU5dOwogCXU4IHJzc19rZXlbTkVUVlNDX0hBU0hfS0VZTEVOXTsKLQl1MTYg aW5kX3RhYmxlW0lUQUJfTlVNXTsKKwl1MTYgcnhfdGFibGVbSVRBQl9OVU1dOwogfTsKIAogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jIGIvZHJpdmVycy9uZXQv aHlwZXJ2L25ldHZzY19kcnYuYwppbmRleCBkZmY5M2Y2ODI0MzUuLjI1Mjc2ZmJmMzFjZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYworKysgYi9kcml2ZXJzL25l dC9oeXBlcnYvbmV0dnNjX2Rydi5jCkBAIC0xMzc4LDcgKzEzNzgsNyBAQCBzdGF0aWMgaW50IG5l dHZzY19nZXRfcnhmaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MzIgKmluZGlyLCB1OCAqa2V5 LAogCXJuZGlzX2RldiA9IG5kZXYtPmV4dGVuc2lvbjsKIAlpZiAoaW5kaXIpIHsKIAkJZm9yIChp ID0gMDsgaSA8IElUQUJfTlVNOyBpKyspCi0JCQlpbmRpcltpXSA9IHJuZGlzX2Rldi0+aW5kX3Rh YmxlW2ldOworCQkJaW5kaXJbaV0gPSBybmRpc19kZXYtPnJ4X3RhYmxlW2ldOwogCX0KIAogCWlm IChrZXkpCkBAIC0xNDA4LDcgKzE0MDgsNyBAQCBzdGF0aWMgaW50IG5ldHZzY19zZXRfcnhmaChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmluZGlyLAogCQkJCXJldHVybiAtRUlO VkFMOwogCiAJCWZvciAoaSA9IDA7IGkgPCBJVEFCX05VTTsgaSsrKQotCQkJcm5kaXNfZGV2LT5p bmRfdGFibGVbaV0gPSBpbmRpcltpXTsKKwkJCXJuZGlzX2Rldi0+cnhfdGFibGVbaV0gPSBpbmRp cltpXTsKIAl9CiAKIAlpZiAoIWtleSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2 L3JuZGlzX2ZpbHRlci5jIGIvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jCmluZGV4 IDA2NWIyMDRkOGUxNy4uYWRkZjlmNjljNThjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBl cnYvcm5kaXNfZmlsdGVyLmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5j CkBAIC03NTksNyArNzU5LDcgQEAgaW50IHJuZGlzX2ZpbHRlcl9zZXRfcnNzX3BhcmFtKHN0cnVj dCBybmRpc19kZXZpY2UgKnJkZXYsCiAJLyogU2V0IGluZGlyZWN0aW9uIHRhYmxlIGVudHJpZXMg Ki8KIAlpdGFiID0gKHUzMiAqKShyc3NwICsgMSk7CiAJZm9yIChpID0gMDsgaSA8IElUQUJfTlVN OyBpKyspCi0JCWl0YWJbaV0gPSByZGV2LT5pbmRfdGFibGVbaV07CisJCWl0YWJbaV0gPSByZGV2 LT5yeF90YWJsZVtpXTsKIAogCS8qIFNldCBoYXNrIGtleSB2YWx1ZXMgKi8KIAlrZXlwID0gKHU4 ICopKCh1bnNpZ25lZCBsb25nKXJzc3AgKyByc3NwLT5rYXNoa2V5X29mZnNldCk7CkBAIC0xMjg0 LDggKzEyODQsOCBAQCBzdHJ1Y3QgbmV0dnNjX2RldmljZSAqcm5kaXNfZmlsdGVyX2RldmljZV9h ZGQoc3RydWN0IGh2X2RldmljZSAqZGV2LAogCW5ldF9kZXZpY2UtPm51bV9jaG4gPSBtaW4obmV0 X2RldmljZS0+bWF4X2NobiwgZGV2aWNlX2luZm8tPm51bV9jaG4pOwogCiAJZm9yIChpID0gMDsg aSA8IElUQUJfTlVNOyBpKyspCi0JCXJuZGlzX2RldmljZS0+aW5kX3RhYmxlW2ldID0gZXRodG9v bF9yeGZoX2luZGlyX2RlZmF1bHQoaSwKLQkJCQkJCQluZXRfZGV2aWNlLT5udW1fY2huKTsKKwkJ cm5kaXNfZGV2aWNlLT5yeF90YWJsZVtpXSA9IGV0aHRvb2xfcnhmaF9pbmRpcl9kZWZhdWx0KAor CQkJCQkJaSwgbmV0X2RldmljZS0+bnVtX2Nobik7CiAKIAlhdG9taWNfc2V0KCZuZXRfZGV2aWNl LT5vcGVuX2NobiwgMSk7CiAJdm1idXNfc2V0X3NjX2NyZWF0ZV9jYWxsYmFjayhkZXYtPmNoYW5u ZWwsIG5ldHZzY19zY19vcGVuKTsKLS0gCjIuMTQuMwoKCkZyb20gMmUzYWEzNjgzM2E4MzYwMGQ0 MTc2Y2RkZWQ1OGM3YmFjNzIyMjQ1NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFp eWFuZyBaaGFuZyA8aGFpeWFuZ3pAbWljcm9zb2Z0LmNvbT4KRGF0ZTogTW9uLCAxNCBNYXkgMjAx OCAxNTozMjowMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMzRdIGh2X25ldHZzYzogUmVuYW1l IHR4X3NlbmRfdGFibGUgdG8gdHhfdGFibGUKClsgQ29tbWl0IDM5ZTkxY2ZiZjZmNWZiMjZiYTY0 Y2MyZTg4NzQzNzJiYWYxNjcxZTcgdXBzdHJlYW0uIF0KClNpbXBsaWZ5IHRoZSB2YXJpYWJsZSBu YW1lOiB0eF9zZW5kX3RhYmxlCgpTaWduZWQtb2ZmLWJ5OiBIYWl5YW5nIFpoYW5nIDxoYWl5YW5n ekBtaWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaCB8IDIgKy0K IGRyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYyAgICAgfCAyICstCiBkcml2ZXJzL25ldC9oeXBl cnYvbmV0dnNjX2Rydi5jIHwgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2 X25ldC5oIGIvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaAppbmRleCA4MTQ0YjkzODQ2 MGYuLjk0ZGU3Y2ExZTUyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9u ZXQuaAorKysgYi9kcml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2X25ldC5oCkBAIC03MzQsNyArNzM0 LDcgQEAgc3RydWN0IG5ldF9kZXZpY2VfY29udGV4dCB7CiAKIAl1MzIgdHhfY2hlY2tzdW1fbWFz azsKIAotCXUzMiB0eF9zZW5kX3RhYmxlW1ZSU1NfU0VORF9UQUJfU0laRV07CisJdTMyIHR4X3Rh YmxlW1ZSU1NfU0VORF9UQUJfU0laRV07CiAKIAkvKiBFdGh0b29sIHNldHRpbmdzICovCiAJYm9v bCB1ZHA0X2w0X2hhc2g7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMg Yi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKaW5kZXggYTZiYWZjZjU1Nzc2Li4wM2I0NGVj ODA1ZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYworKysgYi9kcml2 ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKQEAgLTExMDcsNyArMTEwNyw3IEBAIHN0YXRpYyB2b2lk IG5ldHZzY19zZW5kX3RhYmxlKHN0cnVjdCBodl9kZXZpY2UgKmhkZXYsCiAJCSAgICAgIG52bXNn LT5tc2cudjVfbXNnLnNlbmRfdGFibGUub2Zmc2V0KTsKIAogCWZvciAoaSA9IDA7IGkgPCBjb3Vu dDsgaSsrKQotCQluZXRfZGV2aWNlX2N0eC0+dHhfc2VuZF90YWJsZVtpXSA9IHRhYltpXTsKKwkJ bmV0X2RldmljZV9jdHgtPnR4X3RhYmxlW2ldID0gdGFiW2ldOwogfQogCiBzdGF0aWMgdm9pZCBu ZXR2c2Nfc2VuZF92ZihzdHJ1Y3QgbmV0X2RldmljZV9jb250ZXh0ICpuZXRfZGV2aWNlX2N0eCwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgYi9kcml2ZXJzL25l dC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IDI1Mjc2ZmJmMzFjZC4uZjdjYzJiYjFmM2U1IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCisrKyBiL2RyaXZlcnMv bmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTIzNCw4ICsyMzQsOCBAQCBzdGF0aWMgaW5saW5l IGludCBuZXR2c2NfZ2V0X3R4X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAogCXN0cnVj dCBzb2NrICpzayA9IHNrYi0+c2s7CiAJaW50IHFfaWR4OwogCi0JcV9pZHggPSBuZGMtPnR4X3Nl bmRfdGFibGVbbmV0dnNjX2dldF9oYXNoKHNrYiwgbmRjKSAmCi0JCQkJICAgKFZSU1NfU0VORF9U QUJfU0laRSAtIDEpXTsKKwlxX2lkeCA9IG5kYy0+dHhfdGFibGVbbmV0dnNjX2dldF9oYXNoKHNr YiwgbmRjKSAmCisJCQkgICAgICAoVlJTU19TRU5EX1RBQl9TSVpFIC0gMSldOwogCiAJLyogSWYg cXVldWUgaW5kZXggY2hhbmdlZCByZWNvcmQgdGhlIG5ldyB2YWx1ZSAqLwogCWlmIChxX2lkeCAh PSBvbGRfaWR4ICYmCi0tIAoyLjE0LjMKCgpGcm9tIDIxNzdlMDI0YTY0NGEwMzAxMDhjZGY2MTRm MTdhMjAzNjdjYmE2ZjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhaXlhbmcgWmhh bmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+CkRhdGU6IE1vbiwgMTQgTWF5IDIwMTggMTU6MzI6 MDMgLTA3MDAKU3ViamVjdDogW1BBVENIIDE1LzM0XSBodl9uZXR2c2M6IEFkZCBpbml0aWFsaXph dGlvbiBvZiB0eF90YWJsZSBpbgogbmV0dnNjX2RldmljZV9hZGQoKQoKWyBDb21taXQgNmIwY2Jl MzE1ODY4ZDYxMzEyM2NmMzg3MDUyY2NkYTVmMDlkNDllYSB1cHN0cmVhbS4gXQoKdHhfdGFibGUg aXMgcGFydCBvZiB0aGUgcHJpdmF0ZSBkYXRhIG9mIGtlcm5lbCBuZXRfZGV2aWNlLiBJdCBpcyBv bmx5Cnplcm8tZWQgb3V0IHdoZW4gYWxsb2NhdGluZyBuZXRfZGV2aWNlLgoKV2UgbWF5IHJlY3Jl YXRlIG5ldHZzY19kZXZpY2Ugdy9vIHJlY3JlYXRpbmcgbmV0X2RldmljZSwgc28gdGhlIHByaXZh dGUKbmV0ZGV2IGRhdGEsIGluY2x1ZGluZyB0eF90YWJsZSwgYXJlIG5vdCB6ZXJvZWQuIEl0IG1h eSBjb250YWluIGNoYW5uZWwKbnVtYmVycyBmb3IgdGhlIG9sZGVyIG5ldHZzY19kZXZpY2UuCgpU aGlzIHBhdGNoIGFkZHMgaW5pdGlhbGl6YXRpb24gb2YgdHhfdGFibGUgZWFjaCB0aW1lIHdlIHJl Y3JlYXRlCm5ldHZzY19kZXZpY2UuCgpTaWduZWQtb2ZmLWJ5OiBIYWl5YW5nIFpoYW5nIDxoYWl5 YW5nekBtaWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jIHwgMyArKysK IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9oeXBlcnYvbmV0dnNjLmMgYi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKaW5kZXggMDNi NDRlYzgwNWRiLi43Mzk5OTIxNGQ0NDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9u ZXR2c2MuYworKysgYi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKQEAgLTEyNTIsNiArMTI1 Miw5IEBAIHN0cnVjdCBuZXR2c2NfZGV2aWNlICpuZXR2c2NfZGV2aWNlX2FkZChzdHJ1Y3QgaHZf ZGV2aWNlICpkZXZpY2UsCiAJaWYgKCFuZXRfZGV2aWNlKQogCQlyZXR1cm4gRVJSX1BUUigtRU5P TUVNKTsKIAorCWZvciAoaSA9IDA7IGkgPCBWUlNTX1NFTkRfVEFCX1NJWkU7IGkrKykKKwkJbmV0 X2RldmljZV9jdHgtPnR4X3RhYmxlW2ldID0gMDsKKwogCW5ldF9kZXZpY2UtPnJpbmdfc2l6ZSA9 IHJpbmdfc2l6ZTsKIAogCS8qIEJlY2F1c2UgdGhlIGRldmljZSB1c2VzIE5BUEksIGFsbCB0aGUg aW50ZXJydXB0IGJhdGNoaW5nIGFuZAotLSAKMi4xNC4zCgoKRnJvbSAyZjNlODBjZmU2YzA0N2M0 ZjIwMGQ4Njc1YjE1MTZmOTQ3MzQ1YjllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBI YWl5YW5nIFpoYW5nIDxoYWl5YW5nekBtaWNyb3NvZnQuY29tPgpEYXRlOiBNb24sIDE0IE1heSAy MDE4IDE1OjMyOjA0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNi8zNF0gaHZfbmV0dnNjOiBTZXQg dHhfdGFibGUgdG8gZXF1YWwgd2VpZ2h0IGFmdGVyCiBzdWJjaGFubmVscyBvcGVuCgpbIENvbW1p dCBhNmZiNmFhM2NmYTkwNDdiNjI2NTNkYmNmYzliY2RlNmUyMjcyYjQxIHVwc3RyZWFtLiBdCgpJ biBzb21lIGNhc2VzLCBsaWtlIGludGVybmFsIHZTd2l0Y2gsIHRoZSBob3N0IGRvZXNuJ3QgcHJv dmlkZQpzZW5kIGluZGlyZWN0aW9uIHRhYmxlIHVwZGF0ZXMuIFRoaXMgcGF0Y2ggc2V0cyB0aGUg dGFibGUgdG8gYmUKZXF1YWwgd2VpZ2h0IGFmdGVyIHN1YmNoYW5uZWxzIGFyZSBhbGwgb3Blbi4g T3RoZXJ3aXNlLCBhbGwgd29ya2xvYWQKd2lsbCBiZSBvbiBvbmUgVFggY2hhbm5lbC4KCkFzIHRl c3RlZCwgdGhpcyBwYXRjaCBoYXMgbGFyZ2VseSBpbmNyZWFzZWQgdGhlIHRocm91Z2hwdXQgb3Zl cgppbnRlcm5hbCB2U3dpdGNoLgoKU2lnbmVkLW9mZi1ieTogSGFpeWFuZyBaaGFuZyA8aGFpeWFu Z3pAbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19maWx0ZXIuYyB8IDMg KysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jIGIvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2Zp bHRlci5jCmluZGV4IGFkZGY5ZjY5YzU4Yy4uMDY0OGVlYmRhODI5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L3Ju ZGlzX2ZpbHRlci5jCkBAIC0xMTE0LDYgKzExMTQsOSBAQCB2b2lkIHJuZGlzX3NldF9zdWJjaGFu bmVsKHN0cnVjdCB3b3JrX3N0cnVjdCAqdykKIAluZXRpZl9zZXRfcmVhbF9udW1fdHhfcXVldWVz KG5kZXYsIG52ZGV2LT5udW1fY2huKTsKIAluZXRpZl9zZXRfcmVhbF9udW1fcnhfcXVldWVzKG5k ZXYsIG52ZGV2LT5udW1fY2huKTsKIAorCWZvciAoaSA9IDA7IGkgPCBWUlNTX1NFTkRfVEFCX1NJ WkU7IGkrKykKKwkJbmRldl9jdHgtPnR4X3RhYmxlW2ldID0gaSAlIG52ZGV2LT5udW1fY2huOwor CiAJcnRubF91bmxvY2soKTsKIAlyZXR1cm47CiAKLS0gCjIuMTQuMwoKCkZyb20gNDU4OWE4OTgy NzE1MmI1NjU4MDhmZWYwMjZmMGZjYTc1MjhlODhiMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogVml0YWx5IEt1em5ldHNvdiA8dmt1em5ldHNAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAx NCBNYXkgMjAxOCAxNTozMjowNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMzRdIGh2X25ldHZz YzogbmV0dnNjX3RlYXJkb3duX2dwYWRsKCkgc3BsaXQKClsgQ29tbWl0IDBjZjczNzgwOGFlN2Ni MjVlOTUyYmU2MTlkYjQ2YjkxNDdhOTJmNDYgdXBzdHJlYW0uIF0KCkl0IHdhcyBmb3VuZCB0aGF0 IGluIHNvbWUgY2FzZXMgaG9zdCByZWZ1c2VzIHRvIHRlYXJkb3duIEdQQURMIGZvciBzZW5kLwpy ZWNlaXZlIGJ1ZmZlcnMgKHByb2JhYmx5IHdoZW4gc29tZSB3b3JrIHdpdGggdGhlc2UgYnVmZmVy ZSBpcyBzY2hlZHVsZWQgb3IKb25nb2luZykuIENoYW5nZSB0aGUgdGVhcmRvd24gbG9naWMgdG8g YmU6CjEpIFNlbmQgTlZTUF9NU0cxX1RZUEVfUkVWT0tFXyogbWVzc2FnZXMKMikgQ2xvc2UgdGhl IGNoYW5uZWwKMykgVGVhcmRvd24gR1BBRExzLgpUaGlzIHNlZW1zIHRvIHdvcmsgcmVsaWFibHku CgpTaWduZWQtb2ZmLWJ5OiBWaXRhbHkgS3V6bmV0c292IDx2a3V6bmV0c0ByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jIHwgNjkgKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwg MzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5j IGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jCmluZGV4IDczOTk5MjE0ZDQ0NC4uNGJjOGEx ZDUyOWQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKKysrIGIvZHJp dmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jCkBAIC0xMDAsMTIgKzEwMCwxMSBAQCBzdGF0aWMgdm9p ZCBmcmVlX25ldHZzY19kZXZpY2VfcmN1KHN0cnVjdCBuZXR2c2NfZGV2aWNlICpudmRldikKIAlj YWxsX3JjdSgmbnZkZXYtPnJjdSwgZnJlZV9uZXR2c2NfZGV2aWNlKTsKIH0KIAotc3RhdGljIHZv aWQgbmV0dnNjX2Rlc3Ryb3lfYnVmKHN0cnVjdCBodl9kZXZpY2UgKmRldmljZSkKK3N0YXRpYyB2 b2lkIG5ldHZzY19yZXZva2VfYnVmKHN0cnVjdCBodl9kZXZpY2UgKmRldmljZSwKKwkJCSAgICAg IHN0cnVjdCBuZXR2c2NfZGV2aWNlICpuZXRfZGV2aWNlKQogewogCXN0cnVjdCBudnNwX21lc3Nh Z2UgKnJldm9rZV9wYWNrZXQ7CiAJc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBodl9nZXRfZHJ2 ZGF0YShkZXZpY2UpOwotCXN0cnVjdCBuZXRfZGV2aWNlX2NvbnRleHQgKm5kYyA9IG5ldGRldl9w cml2KG5kZXYpOwotCXN0cnVjdCBuZXR2c2NfZGV2aWNlICpuZXRfZGV2aWNlID0gcnRubF9kZXJl ZmVyZW5jZShuZGMtPm52ZGV2KTsKIAlpbnQgcmV0OwogCiAJLyoKQEAgLTE0OCwyOCArMTQ3LDYg QEAgc3RhdGljIHZvaWQgbmV0dnNjX2Rlc3Ryb3lfYnVmKHN0cnVjdCBodl9kZXZpY2UgKmRldmlj ZSkKIAkJbmV0X2RldmljZS0+cmVjdl9zZWN0aW9uX2NudCA9IDA7CiAJfQogCi0JLyogVGVhcmRv d24gdGhlIGdwYWRsIG9uIHRoZSB2c3AgZW5kICovCi0JaWYgKG5ldF9kZXZpY2UtPnJlY3ZfYnVm X2dwYWRsX2hhbmRsZSkgewotCQlyZXQgPSB2bWJ1c190ZWFyZG93bl9ncGFkbChkZXZpY2UtPmNo YW5uZWwsCi0JCQkJCSAgIG5ldF9kZXZpY2UtPnJlY3ZfYnVmX2dwYWRsX2hhbmRsZSk7Ci0KLQkJ LyogSWYgd2UgZmFpbGVkIGhlcmUsIHdlIG1pZ2h0IGFzIHdlbGwgcmV0dXJuIGFuZCBoYXZlIGEg bGVhawotCQkgKiByYXRoZXIgdGhhbiBjb250aW51ZSBhbmQgYSBidWdjaGsKLQkJICovCi0JCWlm IChyZXQgIT0gMCkgewotCQkJbmV0ZGV2X2VycihuZGV2LAotCQkJCSAgICJ1bmFibGUgdG8gdGVh cmRvd24gcmVjZWl2ZSBidWZmZXIncyBncGFkbFxuIik7Ci0JCQlyZXR1cm47Ci0JCX0KLQkJbmV0 X2RldmljZS0+cmVjdl9idWZfZ3BhZGxfaGFuZGxlID0gMDsKLQl9Ci0KLQlpZiAobmV0X2Rldmlj ZS0+cmVjdl9idWYpIHsKLQkJLyogRnJlZSB1cCB0aGUgcmVjZWl2ZSBidWZmZXIgKi8KLQkJdmZy ZWUobmV0X2RldmljZS0+cmVjdl9idWYpOwotCQluZXRfZGV2aWNlLT5yZWN2X2J1ZiA9IE5VTEw7 Ci0JfQotCiAJLyogRGVhbCB3aXRoIHRoZSBzZW5kIGJ1ZmZlciB3ZSBtYXkgaGF2ZSBzZXR1cC4K IAkgKiBJZiB3ZSBnb3QgYSAgc2VuZCBzZWN0aW9uIHNpemUsIGl0IG1lYW5zIHdlIHJlY2VpdmVk IGEKIAkgKiBOVlNQX01TRzFfVFlQRV9TRU5EX1NFTkRfQlVGX0NPTVBMRVRFIG1zZyAoaWUgc2Vu dApAQCAtMjEwLDcgKzE4NywzNSBAQCBzdGF0aWMgdm9pZCBuZXR2c2NfZGVzdHJveV9idWYoc3Ry dWN0IGh2X2RldmljZSAqZGV2aWNlKQogCQl9CiAJCW5ldF9kZXZpY2UtPnNlbmRfc2VjdGlvbl9j bnQgPSAwOwogCX0KLQkvKiBUZWFyZG93biB0aGUgZ3BhZGwgb24gdGhlIHZzcCBlbmQgKi8KK30K Kworc3RhdGljIHZvaWQgbmV0dnNjX3RlYXJkb3duX2dwYWRsKHN0cnVjdCBodl9kZXZpY2UgKmRl dmljZSwKKwkJCQkgIHN0cnVjdCBuZXR2c2NfZGV2aWNlICpuZXRfZGV2aWNlKQoreworCXN0cnVj dCBuZXRfZGV2aWNlICpuZGV2ID0gaHZfZ2V0X2RydmRhdGEoZGV2aWNlKTsKKwlpbnQgcmV0Owor CisJaWYgKG5ldF9kZXZpY2UtPnJlY3ZfYnVmX2dwYWRsX2hhbmRsZSkgeworCQlyZXQgPSB2bWJ1 c190ZWFyZG93bl9ncGFkbChkZXZpY2UtPmNoYW5uZWwsCisJCQkJCSAgIG5ldF9kZXZpY2UtPnJl Y3ZfYnVmX2dwYWRsX2hhbmRsZSk7CisKKwkJLyogSWYgd2UgZmFpbGVkIGhlcmUsIHdlIG1pZ2h0 IGFzIHdlbGwgcmV0dXJuIGFuZCBoYXZlIGEgbGVhaworCQkgKiByYXRoZXIgdGhhbiBjb250aW51 ZSBhbmQgYSBidWdjaGsKKwkJICovCisJCWlmIChyZXQgIT0gMCkgeworCQkJbmV0ZGV2X2Vycihu ZGV2LAorCQkJCSAgICJ1bmFibGUgdG8gdGVhcmRvd24gcmVjZWl2ZSBidWZmZXIncyBncGFkbFxu Iik7CisJCQlyZXR1cm47CisJCX0KKwkJbmV0X2RldmljZS0+cmVjdl9idWZfZ3BhZGxfaGFuZGxl ID0gMDsKKwl9CisKKwlpZiAobmV0X2RldmljZS0+cmVjdl9idWYpIHsKKwkJLyogRnJlZSB1cCB0 aGUgcmVjZWl2ZSBidWZmZXIgKi8KKwkJdmZyZWUobmV0X2RldmljZS0+cmVjdl9idWYpOworCQlu ZXRfZGV2aWNlLT5yZWN2X2J1ZiA9IE5VTEw7CisJfQorCiAJaWYgKG5ldF9kZXZpY2UtPnNlbmRf YnVmX2dwYWRsX2hhbmRsZSkgewogCQlyZXQgPSB2bWJ1c190ZWFyZG93bl9ncGFkbChkZXZpY2Ut PmNoYW5uZWwsCiAJCQkJCSAgIG5ldF9kZXZpY2UtPnNlbmRfYnVmX2dwYWRsX2hhbmRsZSk7CkBA IC00MjUsNyArNDMwLDggQEAgc3RhdGljIGludCBuZXR2c2NfaW5pdF9idWYoc3RydWN0IGh2X2Rl dmljZSAqZGV2aWNlLAogCWdvdG8gZXhpdDsKIAogY2xlYW51cDoKLQluZXR2c2NfZGVzdHJveV9i dWYoZGV2aWNlKTsKKwluZXR2c2NfcmV2b2tlX2J1ZihkZXZpY2UsIG5ldF9kZXZpY2UpOworCW5l dHZzY190ZWFyZG93bl9ncGFkbChkZXZpY2UsIG5ldF9kZXZpY2UpOwogCiBleGl0OgogCXJldHVy biByZXQ7CkBAIC01NDQsMTEgKzU1MCw2IEBAIHN0YXRpYyBpbnQgbmV0dnNjX2Nvbm5lY3RfdnNw KHN0cnVjdCBodl9kZXZpY2UgKmRldmljZSwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdm9p ZCBuZXR2c2NfZGlzY29ubmVjdF92c3Aoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlKQotewotCW5l dHZzY19kZXN0cm95X2J1ZihkZXZpY2UpOwotfQotCiAvKgogICogbmV0dnNjX2RldmljZV9yZW1v dmUgLSBDYWxsYmFjayB3aGVuIHRoZSByb290IGJ1cyBkZXZpY2UgaXMgcmVtb3ZlZAogICovCkBA IC01NjIsNyArNTYzLDcgQEAgdm9pZCBuZXR2c2NfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgaHZfZGV2 aWNlICpkZXZpY2UpCiAKIAljYW5jZWxfd29ya19zeW5jKCZuZXRfZGV2aWNlLT5zdWJjaGFuX3dv cmspOwogCi0JbmV0dnNjX2Rpc2Nvbm5lY3RfdnNwKGRldmljZSk7CisJbmV0dnNjX3Jldm9rZV9i dWYoZGV2aWNlLCBuZXRfZGV2aWNlKTsKIAogCVJDVV9JTklUX1BPSU5URVIobmV0X2RldmljZV9j dHgtPm52ZGV2LCBOVUxMKTsKIApAQCAtNTc1LDYgKzU3Niw4IEBAIHZvaWQgbmV0dnNjX2Rldmlj ZV9yZW1vdmUoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlKQogCS8qIE5vdywgd2UgY2FuIGNsb3Nl IHRoZSBjaGFubmVsIHNhZmVseSAqLwogCXZtYnVzX2Nsb3NlKGRldmljZS0+Y2hhbm5lbCk7CiAK KwluZXR2c2NfdGVhcmRvd25fZ3BhZGwoZGV2aWNlLCBuZXRfZGV2aWNlKTsKKwogCS8qIEFuZCBk aXNzYXNzb2NpYXRlIE5BUEkgY29udGV4dCBmcm9tIGRldmljZSAqLwogCWZvciAoaSA9IDA7IGkg PCBuZXRfZGV2aWNlLT5udW1fY2huOyBpKyspCiAJCW5ldGlmX25hcGlfZGVsKCZuZXRfZGV2aWNl LT5jaGFuX3RhYmxlW2ldLm5hcGkpOwotLSAKMi4xNC4zCgoKRnJvbSAyZDBlNDQ5MGRlMTk5ZDc0 ZDUwMzgxZGM3NTcyN2M2ZDA0NDUwNTFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBW aXRhbHkgS3V6bmV0c292IDx2a3V6bmV0c0ByZWRoYXQuY29tPgpEYXRlOiBNb24sIDE0IE1heSAy MDE4IDE1OjMyOjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxOC8zNF0gaHZfbmV0dnNjOiBwcmVz ZXJ2ZSBod19mZWF0dXJlcyBvbgogbXR1L2NoYW5uZWxzL3JpbmdwYXJhbSBjaGFuZ2VzCgpbIENv bW1pdCBhZWZkODBlODc0ZTk4YTg2NDkxNWRmNWI3ZDkwODI0YTQzNDBiNDUwIHVwc3RyZWFtLiBd CgpybmRpc19maWx0ZXJfZGV2aWNlX2FkZCgpIGlzIGNhbGxlZCBib3RoIGZyb20gbmV0dnNjX3By b2JlKCkgd2hlbiB3ZQppbml0aWFsbHkgY3JlYXRlIHRoZSBkZXZpY2UgYW5kIGZyb20gc2V0IGNo YW5uZWxzL210dS9yaW5ncGFyYW0Kcm91dGluZXMgd2hlcmUgd2UgYmFzaWNhbGx5IHJlbW92ZSB0 aGUgZGV2aWNlIGFuZCBhZGQgaXQgYmFjay4KCmh3X2ZlYXR1cmVzIGlzIHJlc2V0IGluIHJuZGlz X2ZpbHRlcl9kZXZpY2VfYWRkKCkgYW5kIGZpbGxlZCB3aXRoCmhvc3QgZGF0YS4gSG93ZXZlciwg d2UgbG9zZSBhbGwgYWRkaXRpb25hbCBmbGFncyB3aGljaCBhcmUgc2V0IG91dHNpZGUKb2YgdGhl IGRyaXZlciwgZS5nLiByZWdpc3Rlcl9uZXRkZXZpY2UoKSBhZGRzIE5FVElGX0ZfU09GVF9GRUFU VVJFUyBhbmQKbWFueSBvdGhlcnMuCgpVbmZvcnR1bmF0ZWx5LCBjYWxscyB0byBybmRpc197cXVl cnlfaHdjYXBzKCksIF9zZXRfb2ZmbG9hZF9wYXJhbXMoKX0KY2FsbHMgY2Fubm90IGJlIGF2b2lk ZWQgb24gZXZlcnkgUk5ESVMgcmVzZXQ6IGhvc3QgZXhwZWN0cyB1cyB0byBzZXQKcmVxdWlyZWQg ZmVhdHVyZXMgZXhwbGljaXRseS4gTW9yZW92ZXIsIGluIHRoZW9yeSBoYXJkd2FyZSBjYXBhYmls aXRpZXMKY2FuIGNoYW5nZSBhbmQgd2UgbmVlZCB0byByZWZsZWN0IHRoZSBjaGFuZ2UgaW4gaHdf ZmVhdHVyZXMuCgpSZXNldCBuZXQtPmh3X2ZlYXR1cmVzIGJpdHMgYWNjb3JkaW5nIHRvIGhvc3Qg ZGF0YSBpbgpybmRpc19uZXRkZXZfc2V0X2h3Y2FwcygpLCBjbGVhciBjb3JyZXNwb25kaW5nIGZl YXR1cmUgYml0cwpmcm9tIG5ldC0+ZmVhdHVyZXMgaW4gY2FzZSBzb21lIGZlYXR1cmVzIHdlbnQg bWlzc2luZyAod2lsbCBuZXZlciBoYXBwZW4KaW4gcmVhbCBsaWZlIEkgZ3Vlc3MgYnV0IGxldCdz IGJlIGNvbnNpc3RlbnQpLgoKU2lnbmVkLW9mZi1ieTogVml0YWx5IEt1em5ldHNvdiA8dmt1em5l dHNAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IEhhaXlhbmcgWmhhbmcgPGhhaXlhbmd6QG1pY3Jv c29mdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2X25ldC5oICAgfCAgIDQgKysKIGRy aXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgICB8ICAgMiArLQogZHJpdmVycy9uZXQvaHlw ZXJ2L3JuZGlzX2ZpbHRlci5jIHwgMTM2ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0LmggYi9kcml2ZXJz L25ldC9oeXBlcnYvaHlwZXJ2X25ldC5oCmluZGV4IDk0ZGU3Y2ExZTUyZS4uYTNmNjI4YzNjOWVk IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2X25ldC5oCisrKyBiL2RyaXZl cnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0LmgKQEAgLTY1OSw2ICs2NTksMTAgQEAgc3RydWN0IG52 c3BfbWVzc2FnZSB7CiAjZGVmaW5lIE5FVFZTQ19SRUNFSVZFX0JVRkZFUl9JRAkJMHhjYWZlCiAj ZGVmaW5lIE5FVFZTQ19TRU5EX0JVRkZFUl9JRAkJCTAKIAorI2RlZmluZSBORVRWU0NfU1VQUE9S VEVEX0hXX0ZFQVRVUkVTIChORVRJRl9GX1JYQ1NVTSB8IE5FVElGX0ZfSVBfQ1NVTSB8IFwKKwkJ CQkgICAgICBORVRJRl9GX1RTTyB8IE5FVElGX0ZfSVBWNl9DU1VNIHwgXAorCQkJCSAgICAgIE5F VElGX0ZfVFNPNikKKwogI2RlZmluZSBWUlNTX1NFTkRfVEFCX1NJWkUgMTYgIC8qIG11c3QgYmUg cG93ZXIgb2YgMiAqLwogI2RlZmluZSBWUlNTX0NIQU5ORUxfTUFYIDY0CiAjZGVmaW5lIFZSU1Nf Q0hBTk5FTF9ERUZBVUxUIDgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2Nf ZHJ2LmMgYi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IGY3Y2MyYmIxZjNl NS4uNzE3ODk5OTkzOTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Ry di5jCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTE5NTYsNyArMTk1 Niw3IEBAIHN0YXRpYyBpbnQgbmV0dnNjX3Byb2JlKHN0cnVjdCBodl9kZXZpY2UgKmRldiwKIAog CW1lbWNweShuZXQtPmRldl9hZGRyLCBkZXZpY2VfaW5mby5tYWNfYWRyLCBFVEhfQUxFTik7CiAK LQkvKiBod19mZWF0dXJlcyBjb21wdXRlZCBpbiBybmRpc19maWx0ZXJfZGV2aWNlX2FkZCAqLwor CS8qIGh3X2ZlYXR1cmVzIGNvbXB1dGVkIGluIHJuZGlzX25ldGRldl9zZXRfaHdjYXBzKCkgKi8K IAluZXQtPmZlYXR1cmVzID0gbmV0LT5od19mZWF0dXJlcyB8CiAJCU5FVElGX0ZfSElHSERNQSB8 IE5FVElGX0ZfU0cgfAogCQlORVRJRl9GX0hXX1ZMQU5fQ1RBR19UWCB8IE5FVElGX0ZfSFdfVkxB Tl9DVEFHX1JYOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5j IGIvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jCmluZGV4IDA2NDhlZWJkYTgyOS4u YmU1NzYzOWJlZTI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVy LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jCkBAIC0xMTMxLDY5ICsx MTMxLDIwIEBAIHZvaWQgcm5kaXNfc2V0X3N1YmNoYW5uZWwoc3RydWN0IHdvcmtfc3RydWN0ICp3 KQogCXJ0bmxfdW5sb2NrKCk7CiB9CiAKLXN0cnVjdCBuZXR2c2NfZGV2aWNlICpybmRpc19maWx0 ZXJfZGV2aWNlX2FkZChzdHJ1Y3QgaHZfZGV2aWNlICpkZXYsCi0JCQkJICAgICAgc3RydWN0IG5l dHZzY19kZXZpY2VfaW5mbyAqZGV2aWNlX2luZm8pCitzdGF0aWMgaW50IHJuZGlzX25ldGRldl9z ZXRfaHdjYXBzKHN0cnVjdCBybmRpc19kZXZpY2UgKnJuZGlzX2RldmljZSwKKwkJCQkgICBzdHJ1 Y3QgbmV0dnNjX2RldmljZSAqbnZkZXYpCiB7Ci0Jc3RydWN0IG5ldF9kZXZpY2UgKm5ldCA9IGh2 X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IG5ldF9kZXZpY2UgKm5ldCA9IHJuZGlzX2Rldmlj ZS0+bmRldjsKIAlzdHJ1Y3QgbmV0X2RldmljZV9jb250ZXh0ICpuZXRfZGV2aWNlX2N0eCA9IG5l dGRldl9wcml2KG5ldCk7Ci0Jc3RydWN0IG5ldHZzY19kZXZpY2UgKm5ldF9kZXZpY2U7Ci0Jc3Ry dWN0IHJuZGlzX2RldmljZSAqcm5kaXNfZGV2aWNlOwogCXN0cnVjdCBuZGlzX29mZmxvYWQgaHdj YXBzOwogCXN0cnVjdCBuZGlzX29mZmxvYWRfcGFyYW1zIG9mZmxvYWRzOwotCXN0cnVjdCBuZGlz X3JlY3Zfc2NhbGVfY2FwIHJzc2NhcDsKLQl1MzIgcnNzY2FwX3NpemUgPSBzaXplb2Yoc3RydWN0 IG5kaXNfcmVjdl9zY2FsZV9jYXApOwogCXVuc2lnbmVkIGludCBnc29fbWF4X3NpemUgPSBHU09f TUFYX1NJWkU7Ci0JdTMyIG10dSwgc2l6ZTsKLQljb25zdCBzdHJ1Y3QgY3B1bWFzayAqbm9kZV9j cHVfbWFzazsKLQl1MzIgbnVtX3Bvc3NpYmxlX3Jzc19xczsKLQlpbnQgaSwgcmV0OwotCi0Jcm5k aXNfZGV2aWNlID0gZ2V0X3JuZGlzX2RldmljZSgpOwotCWlmICghcm5kaXNfZGV2aWNlKQotCQly ZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKLQotCS8qCi0JICogTGV0IHRoZSBpbm5lciBkcml2ZXIg aGFuZGxlIHRoaXMgZmlyc3QgdG8gY3JlYXRlIHRoZSBuZXR2c2MgY2hhbm5lbAotCSAqIE5PVEUh IE9uY2UgdGhlIGNoYW5uZWwgaXMgY3JlYXRlZCwgd2UgbWF5IGdldCBhIHJlY2VpdmUgY2FsbGJh Y2sKLQkgKiAoUm5kaXNGaWx0ZXJPblJlY2VpdmUoKSkgYmVmb3JlIHRoaXMgY2FsbCBpcyBjb21w bGV0ZWQKLQkgKi8KLQluZXRfZGV2aWNlID0gbmV0dnNjX2RldmljZV9hZGQoZGV2LCBkZXZpY2Vf aW5mbyk7Ci0JaWYgKElTX0VSUihuZXRfZGV2aWNlKSkgewotCQlrZnJlZShybmRpc19kZXZpY2Up OwotCQlyZXR1cm4gbmV0X2RldmljZTsKLQl9Ci0KLQkvKiBJbml0aWFsaXplIHRoZSBybmRpcyBk ZXZpY2UgKi8KLQluZXRfZGV2aWNlLT5tYXhfY2huID0gMTsKLQluZXRfZGV2aWNlLT5udW1fY2hu ID0gMTsKLQotCW5ldF9kZXZpY2UtPmV4dGVuc2lvbiA9IHJuZGlzX2RldmljZTsKLQlybmRpc19k ZXZpY2UtPm5kZXYgPSBuZXQ7Ci0KLQkvKiBTZW5kIHRoZSBybmRpcyBpbml0aWFsaXphdGlvbiBt ZXNzYWdlICovCi0JcmV0ID0gcm5kaXNfZmlsdGVyX2luaXRfZGV2aWNlKHJuZGlzX2RldmljZSwg bmV0X2RldmljZSk7Ci0JaWYgKHJldCAhPSAwKQotCQlnb3RvIGVycl9kZXZfcmVtdjsKLQotCS8q IEdldCB0aGUgTVRVIGZyb20gdGhlIGhvc3QgKi8KLQlzaXplID0gc2l6ZW9mKHUzMik7Ci0JcmV0 ID0gcm5kaXNfZmlsdGVyX3F1ZXJ5X2RldmljZShybmRpc19kZXZpY2UsIG5ldF9kZXZpY2UsCi0J CQkJCVJORElTX09JRF9HRU5fTUFYSU1VTV9GUkFNRV9TSVpFLAotCQkJCQkmbXR1LCAmc2l6ZSk7 Ci0JaWYgKHJldCA9PSAwICYmIHNpemUgPT0gc2l6ZW9mKHUzMikgJiYgbXR1IDwgbmV0LT5tdHUp Ci0JCW5ldC0+bXR1ID0gbXR1OwotCi0JLyogR2V0IHRoZSBtYWMgYWRkcmVzcyAqLwotCXJldCA9 IHJuZGlzX2ZpbHRlcl9xdWVyeV9kZXZpY2VfbWFjKHJuZGlzX2RldmljZSwgbmV0X2RldmljZSk7 Ci0JaWYgKHJldCAhPSAwKQotCQlnb3RvIGVycl9kZXZfcmVtdjsKLQotCW1lbWNweShkZXZpY2Vf aW5mby0+bWFjX2Fkciwgcm5kaXNfZGV2aWNlLT5od19tYWNfYWRyLCBFVEhfQUxFTik7CisJaW50 IHJldDsKIAogCS8qIEZpbmQgSFcgb2ZmbG9hZCBjYXBhYmlsaXRpZXMgKi8KLQlyZXQgPSBybmRp c19xdWVyeV9od2NhcHMocm5kaXNfZGV2aWNlLCBuZXRfZGV2aWNlLCAmaHdjYXBzKTsKKwlyZXQg PSBybmRpc19xdWVyeV9od2NhcHMocm5kaXNfZGV2aWNlLCBudmRldiwgJmh3Y2Fwcyk7CiAJaWYg KHJldCAhPSAwKQotCQlnb3RvIGVycl9kZXZfcmVtdjsKKwkJcmV0dXJuIHJldDsKIAogCS8qIEEg dmFsdWUgb2YgemVybyBtZWFucyAibm8gY2hhbmdlIjsgbm93IHR1cm4gb24gd2hhdCB3ZSB3YW50 LiAqLwogCW1lbXNldCgmb2ZmbG9hZHMsIDAsIHNpemVvZihzdHJ1Y3QgbmRpc19vZmZsb2FkX3Bh cmFtcykpOwpAQCAtMTIwMSw4ICsxMTUyLDEyIEBAIHN0cnVjdCBuZXR2c2NfZGV2aWNlICpybmRp c19maWx0ZXJfZGV2aWNlX2FkZChzdHJ1Y3QgaHZfZGV2aWNlICpkZXYsCiAJLyogTGludXggZG9l cyBub3QgY2FyZSBhYm91dCBJUCBjaGVja3N1bSwgYWx3YXlzIGRvZXMgaW4ga2VybmVsICovCiAJ b2ZmbG9hZHMuaXBfdjRfY3N1bSA9IE5ESVNfT0ZGTE9BRF9QQVJBTUVURVJTX1RYX1JYX0RJU0FC TEVEOwogCisJLyogUmVzZXQgcHJldmlvdXNseSBzZXQgaHdfZmVhdHVyZXMgZmxhZ3MgKi8KKwlu ZXQtPmh3X2ZlYXR1cmVzICY9IH5ORVRWU0NfU1VQUE9SVEVEX0hXX0ZFQVRVUkVTOworCW5ldF9k ZXZpY2VfY3R4LT50eF9jaGVja3N1bV9tYXNrID0gMDsKKwogCS8qIENvbXB1dGUgdHggb2ZmbG9h ZCBzZXR0aW5ncyBiYXNlZCBvbiBodyBjYXBhYmlsaXRpZXMgKi8KLQluZXQtPmh3X2ZlYXR1cmVz ID0gTkVUSUZfRl9SWENTVU07CisJbmV0LT5od19mZWF0dXJlcyB8PSBORVRJRl9GX1JYQ1NVTTsK IAogCWlmICgoaHdjYXBzLmNzdW0uaXA0X3R4Y3N1bSAmIE5ESVNfVFhDU1VNX0FMTF9UQ1A0KSA9 PSBORElTX1RYQ1NVTV9BTExfVENQNCkgewogCQkvKiBDYW4gY2hlY2tzdW0gVENQICovCkBAIC0x MjQ2LDEwICsxMjAxLDc1IEBAIHN0cnVjdCBuZXR2c2NfZGV2aWNlICpybmRpc19maWx0ZXJfZGV2 aWNlX2FkZChzdHJ1Y3QgaHZfZGV2aWNlICpkZXYsCiAJCX0KIAl9CiAKKwkvKiBJbiBjYXNlIHNv bWUgaHdfZmVhdHVyZXMgZGlzYXBwZWFyZWQgd2UgbmVlZCB0byByZW1vdmUgdGhlbSBmcm9tCisJ ICogbmV0LT5mZWF0dXJlcyBsaXN0IGFzIHRoZXkncmUgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKwkg Ki8KKwluZXQtPmZlYXR1cmVzICY9IH5ORVRWU0NfU1VQUE9SVEVEX0hXX0ZFQVRVUkVTIHwgbmV0 LT5od19mZWF0dXJlczsKKwogCW5ldGlmX3NldF9nc29fbWF4X3NpemUobmV0LCBnc29fbWF4X3Np emUpOwogCi0JcmV0ID0gcm5kaXNfZmlsdGVyX3NldF9vZmZsb2FkX3BhcmFtcyhuZXQsIG5ldF9k ZXZpY2UsICZvZmZsb2Fkcyk7Ci0JaWYgKHJldCkKKwlyZXQgPSBybmRpc19maWx0ZXJfc2V0X29m ZmxvYWRfcGFyYW1zKG5ldCwgbnZkZXYsICZvZmZsb2Fkcyk7CisKKwlyZXR1cm4gcmV0OworfQor CitzdHJ1Y3QgbmV0dnNjX2RldmljZSAqcm5kaXNfZmlsdGVyX2RldmljZV9hZGQoc3RydWN0IGh2 X2RldmljZSAqZGV2LAorCQkJCSAgICAgIHN0cnVjdCBuZXR2c2NfZGV2aWNlX2luZm8gKmRldmlj ZV9pbmZvKQoreworCXN0cnVjdCBuZXRfZGV2aWNlICpuZXQgPSBodl9nZXRfZHJ2ZGF0YShkZXYp OworCXN0cnVjdCBuZXR2c2NfZGV2aWNlICpuZXRfZGV2aWNlOworCXN0cnVjdCBybmRpc19kZXZp Y2UgKnJuZGlzX2RldmljZTsKKwlzdHJ1Y3QgbmRpc19yZWN2X3NjYWxlX2NhcCByc3NjYXA7CisJ dTMyIHJzc2NhcF9zaXplID0gc2l6ZW9mKHN0cnVjdCBuZGlzX3JlY3Zfc2NhbGVfY2FwKTsKKwl1 MzIgbXR1LCBzaXplOworCWNvbnN0IHN0cnVjdCBjcHVtYXNrICpub2RlX2NwdV9tYXNrOworCXUz MiBudW1fcG9zc2libGVfcnNzX3FzOworCWludCBpLCByZXQ7CisKKwlybmRpc19kZXZpY2UgPSBn ZXRfcm5kaXNfZGV2aWNlKCk7CisJaWYgKCFybmRpc19kZXZpY2UpCisJCXJldHVybiBFUlJfUFRS KC1FTk9ERVYpOworCisJLyogTGV0IHRoZSBpbm5lciBkcml2ZXIgaGFuZGxlIHRoaXMgZmlyc3Qg dG8gY3JlYXRlIHRoZSBuZXR2c2MgY2hhbm5lbAorCSAqIE5PVEUhIE9uY2UgdGhlIGNoYW5uZWwg aXMgY3JlYXRlZCwgd2UgbWF5IGdldCBhIHJlY2VpdmUgY2FsbGJhY2sKKwkgKiAoUm5kaXNGaWx0 ZXJPblJlY2VpdmUoKSkgYmVmb3JlIHRoaXMgY2FsbCBpcyBjb21wbGV0ZWQKKwkgKi8KKwluZXRf ZGV2aWNlID0gbmV0dnNjX2RldmljZV9hZGQoZGV2LCBkZXZpY2VfaW5mbyk7CisJaWYgKElTX0VS UihuZXRfZGV2aWNlKSkgeworCQlrZnJlZShybmRpc19kZXZpY2UpOworCQlyZXR1cm4gbmV0X2Rl dmljZTsKKwl9CisKKwkvKiBJbml0aWFsaXplIHRoZSBybmRpcyBkZXZpY2UgKi8KKwluZXRfZGV2 aWNlLT5tYXhfY2huID0gMTsKKwluZXRfZGV2aWNlLT5udW1fY2huID0gMTsKKworCW5ldF9kZXZp Y2UtPmV4dGVuc2lvbiA9IHJuZGlzX2RldmljZTsKKwlybmRpc19kZXZpY2UtPm5kZXYgPSBuZXQ7 CisKKwkvKiBTZW5kIHRoZSBybmRpcyBpbml0aWFsaXphdGlvbiBtZXNzYWdlICovCisJcmV0ID0g cm5kaXNfZmlsdGVyX2luaXRfZGV2aWNlKHJuZGlzX2RldmljZSwgbmV0X2RldmljZSk7CisJaWYg KHJldCAhPSAwKQorCQlnb3RvIGVycl9kZXZfcmVtdjsKKworCS8qIEdldCB0aGUgTVRVIGZyb20g dGhlIGhvc3QgKi8KKwlzaXplID0gc2l6ZW9mKHUzMik7CisJcmV0ID0gcm5kaXNfZmlsdGVyX3F1 ZXJ5X2RldmljZShybmRpc19kZXZpY2UsIG5ldF9kZXZpY2UsCisJCQkJCVJORElTX09JRF9HRU5f TUFYSU1VTV9GUkFNRV9TSVpFLAorCQkJCQkmbXR1LCAmc2l6ZSk7CisJaWYgKHJldCA9PSAwICYm IHNpemUgPT0gc2l6ZW9mKHUzMikgJiYgbXR1IDwgbmV0LT5tdHUpCisJCW5ldC0+bXR1ID0gbXR1 OworCisJLyogR2V0IHRoZSBtYWMgYWRkcmVzcyAqLworCXJldCA9IHJuZGlzX2ZpbHRlcl9xdWVy eV9kZXZpY2VfbWFjKHJuZGlzX2RldmljZSwgbmV0X2RldmljZSk7CisJaWYgKHJldCAhPSAwKQor CQlnb3RvIGVycl9kZXZfcmVtdjsKKworCW1lbWNweShkZXZpY2VfaW5mby0+bWFjX2Fkciwgcm5k aXNfZGV2aWNlLT5od19tYWNfYWRyLCBFVEhfQUxFTik7CisKKwkvKiBRdWVyeSBhbmQgc2V0IGhh cmR3YXJlIGNhcGFiaWxpdGllcyAqLworCXJldCA9IHJuZGlzX25ldGRldl9zZXRfaHdjYXBzKHJu ZGlzX2RldmljZSwgbmV0X2RldmljZSk7CisJaWYgKHJldCAhPSAwKQogCQlnb3RvIGVycl9kZXZf cmVtdjsKIAogCXJuZGlzX2ZpbHRlcl9xdWVyeV9kZXZpY2VfbGlua19zdGF0dXMocm5kaXNfZGV2 aWNlLCBuZXRfZGV2aWNlKTsKLS0gCjIuMTQuMwoKCkZyb20gNGQzMTUyNmM3OTg1MWRkZGEwYWM5 ZjRiYWQ0YjIxMTY3ODA1ZGEzMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlcGhl biBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPgpEYXRlOiBNb24sIDE0IE1h eSAyMDE4IDE1OjMyOjA3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxOS8zNF0gaHZfbmV0dnNjOiBl bXB0eSBjdXJyZW50IHRyYW5zbWl0IGFnZ3JlZ2F0aW9uIGlmIGZsb3cKIGJsb2NrZWQKClsgQ29t bWl0IGNmZDhhZmQ5ODZjZGI1OWVhOWFkYWM4NzNjNTA4MjQ5OGExZWI3YzAgdXBzdHJlYW0uIF0K CklmIHRoZSB0cmFuc21pdCBxdWV1ZSBpcyBrbm93biBmdWxsLCB0aGVuIGRvbid0IGtlZXAgYWdn cmVnYXRpbmcKZGF0YS4gQW5kIHRoZSBjcF9wYXJ0aWFsIGZsYWcgd2hpY2ggaW5kaWNhdGVzIHRo YXQgdGhlIGN1cnJlbnQKYWdncmVnYXRpb24gYnVmZmVyIGlzIGZ1bGwgY2FuIGJlIGZvbGRlZCBp biB0byBhdm9pZCBtb3JlCmNvbmRpdGlvbmFscy4KClNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gSGVt bWluZ2VyIDxzdGhlbW1pbkBtaWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVy dl9uZXQuaCAgIHwgIDIgKy0KIGRyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYyAgICAgICB8IDM2 ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9uZXQvaHlwZXJ2 L25ldHZzY19kcnYuYyAgIHwgIDIgKy0KIGRyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19maWx0ZXIu YyB8ICAzICstLQogNCBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2X25ldC5oIGIvZHJp dmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaAppbmRleCBhM2Y2MjhjM2M5ZWQuLmZkNTFhMzI5 ZTM2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaAorKysgYi9k cml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2X25ldC5oCkBAIC0xOTIsNyArMTkyLDcgQEAgc3RydWN0 IG5ldHZzY19kZXZpY2UgKm5ldHZzY19kZXZpY2VfYWRkKHN0cnVjdCBodl9kZXZpY2UgKmRldmlj ZSwKIAkJCQkJY29uc3Qgc3RydWN0IG5ldHZzY19kZXZpY2VfaW5mbyAqaW5mbyk7CiBpbnQgbmV0 dnNjX2FsbG9jX3JlY3ZfY29tcF9yaW5nKHN0cnVjdCBuZXR2c2NfZGV2aWNlICpuZXRfZGV2aWNl LCB1MzIgcV9pZHgpOwogdm9pZCBuZXR2c2NfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgaHZfZGV2aWNl ICpkZXZpY2UpOwotaW50IG5ldHZzY19zZW5kKHN0cnVjdCBuZXRfZGV2aWNlX2NvbnRleHQgKm5k YywKK2ludCBuZXR2c2Nfc2VuZChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0LAogCQlzdHJ1Y3QgaHZf bmV0dnNjX3BhY2tldCAqcGFja2V0LAogCQlzdHJ1Y3Qgcm5kaXNfbWVzc2FnZSAqcm5kaXNfbXNn LAogCQlzdHJ1Y3QgaHZfcGFnZV9idWZmZXIgKnBhZ2VfYnVmZmVyLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jCmlu ZGV4IDRiYzhhMWQ1MjlkOS4uMjJkYTYzOTliMzdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9o eXBlcnYvbmV0dnNjLmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jCkBAIC03MDAs MTMgKzcwMCwxMyBAQCBzdGF0aWMgdTMyIG5ldHZzY19nZXRfbmV4dF9zZW5kX3NlY3Rpb24oc3Ry dWN0IG5ldHZzY19kZXZpY2UgKm5ldF9kZXZpY2UpCiAJcmV0dXJuIE5FVFZTQ19JTlZBTElEX0lO REVYOwogfQogCi1zdGF0aWMgdTMyIG5ldHZzY19jb3B5X3RvX3NlbmRfYnVmKHN0cnVjdCBuZXR2 c2NfZGV2aWNlICpuZXRfZGV2aWNlLAotCQkJCSAgIHVuc2lnbmVkIGludCBzZWN0aW9uX2luZGV4 LAotCQkJCSAgIHUzMiBwZW5kX3NpemUsCi0JCQkJICAgc3RydWN0IGh2X25ldHZzY19wYWNrZXQg KnBhY2tldCwKLQkJCQkgICBzdHJ1Y3Qgcm5kaXNfbWVzc2FnZSAqcm5kaXNfbXNnLAotCQkJCSAg IHN0cnVjdCBodl9wYWdlX2J1ZmZlciAqcGIsCi0JCQkJICAgc3RydWN0IHNrX2J1ZmYgKnNrYikK K3N0YXRpYyB2b2lkIG5ldHZzY19jb3B5X3RvX3NlbmRfYnVmKHN0cnVjdCBuZXR2c2NfZGV2aWNl ICpuZXRfZGV2aWNlLAorCQkJCSAgICB1bnNpZ25lZCBpbnQgc2VjdGlvbl9pbmRleCwKKwkJCQkg ICAgdTMyIHBlbmRfc2l6ZSwKKwkJCQkgICAgc3RydWN0IGh2X25ldHZzY19wYWNrZXQgKnBhY2tl dCwKKwkJCQkgICAgc3RydWN0IHJuZGlzX21lc3NhZ2UgKnJuZGlzX21zZywKKwkJCQkgICAgc3Ry dWN0IGh2X3BhZ2VfYnVmZmVyICpwYiwKKwkJCQkgICAgYm9vbCB4bWl0X21vcmUpCiB7CiAJY2hh ciAqc3RhcnQgPSBuZXRfZGV2aWNlLT5zZW5kX2J1ZjsKIAljaGFyICpkZXN0ID0gc3RhcnQgKyAo c2VjdGlvbl9pbmRleCAqIG5ldF9kZXZpY2UtPnNlbmRfc2VjdGlvbl9zaXplKQpAQCAtNzE5LDcg KzcxOSw4IEBAIHN0YXRpYyB1MzIgbmV0dnNjX2NvcHlfdG9fc2VuZF9idWYoc3RydWN0IG5ldHZz Y19kZXZpY2UgKm5ldF9kZXZpY2UsCiAJCXBhY2tldC0+cGFnZV9idWZfY250OwogCiAJLyogQWRk IHBhZGRpbmcgKi8KLQlpZiAoc2tiLT54bWl0X21vcmUgJiYgcmVtYWluICYmICFwYWNrZXQtPmNw X3BhcnRpYWwpIHsKKwlyZW1haW4gPSBwYWNrZXQtPnRvdGFsX2RhdGFfYnVmbGVuICYgKG5ldF9k ZXZpY2UtPnBrdF9hbGlnbiAtIDEpOworCWlmICh4bWl0X21vcmUgJiYgcmVtYWluKSB7CiAJCXBh ZGRpbmcgPSBuZXRfZGV2aWNlLT5wa3RfYWxpZ24gLSByZW1haW47CiAJCXJuZGlzX21zZy0+bXNn X2xlbiArPSBwYWRkaW5nOwogCQlwYWNrZXQtPnRvdGFsX2RhdGFfYnVmbGVuICs9IHBhZGRpbmc7 CkBAIC03MzksOCArNzQwLDYgQEAgc3RhdGljIHUzMiBuZXR2c2NfY29weV90b19zZW5kX2J1Zihz dHJ1Y3QgbmV0dnNjX2RldmljZSAqbmV0X2RldmljZSwKIAkJbWVtc2V0KGRlc3QsIDAsIHBhZGRp bmcpOwogCQltc2dfc2l6ZSArPSBwYWRkaW5nOwogCX0KLQotCXJldHVybiBtc2dfc2l6ZTsKIH0K IAogc3RhdGljIGlubGluZSBpbnQgbmV0dnNjX3NlbmRfcGt0KApAQCAtODI4LDEyICs4MjcsMTMg QEAgc3RhdGljIGlubGluZSB2b2lkIG1vdmVfcGt0X21zZChzdHJ1Y3QgaHZfbmV0dnNjX3BhY2tl dCAqKm1zZF9zZW5kLAogfQogCiAvKiBSQ1UgYWxyZWFkeSBoZWxkIGJ5IGNhbGxlciAqLwotaW50 IG5ldHZzY19zZW5kKHN0cnVjdCBuZXRfZGV2aWNlX2NvbnRleHQgKm5kZXZfY3R4LAoraW50IG5l dHZzY19zZW5kKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAogCQlzdHJ1Y3QgaHZfbmV0dnNjX3Bh Y2tldCAqcGFja2V0LAogCQlzdHJ1Y3Qgcm5kaXNfbWVzc2FnZSAqcm5kaXNfbXNnLAogCQlzdHJ1 Y3QgaHZfcGFnZV9idWZmZXIgKnBiLAogCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogeworCXN0cnVj dCBuZXRfZGV2aWNlX2NvbnRleHQgKm5kZXZfY3R4ID0gbmV0ZGV2X3ByaXYobmRldik7CiAJc3Ry dWN0IG5ldHZzY19kZXZpY2UgKm5ldF9kZXZpY2UKIAkJPSByY3VfZGVyZWZlcmVuY2VfYmgobmRl dl9jdHgtPm52ZGV2KTsKIAlzdHJ1Y3QgaHZfZGV2aWNlICpkZXZpY2UgPSBuZGV2X2N0eC0+ZGV2 aWNlX2N0eDsKQEAgLTg0NCw4ICs4NDQsNyBAQCBpbnQgbmV0dnNjX3NlbmQoc3RydWN0IG5ldF9k ZXZpY2VfY29udGV4dCAqbmRldl9jdHgsCiAJc3RydWN0IG11bHRpX3NlbmRfZGF0YSAqbXNkcDsK IAlzdHJ1Y3QgaHZfbmV0dnNjX3BhY2tldCAqbXNkX3NlbmQgPSBOVUxMLCAqY3VyX3NlbmQgPSBO VUxMOwogCXN0cnVjdCBza19idWZmICptc2Rfc2tiID0gTlVMTDsKLQlib29sIHRyeV9iYXRjaDsK LQlib29sIHhtaXRfbW9yZSA9IChza2IgIT0gTlVMTCkgPyBza2ItPnhtaXRfbW9yZSA6IGZhbHNl OworCWJvb2wgdHJ5X2JhdGNoLCB4bWl0X21vcmU7CiAKIAkvKiBJZiBkZXZpY2UgaXMgcmVzY2lu ZGVkLCByZXR1cm4gZXJyb3IgYW5kIHBhY2tldCB3aWxsIGdldCBkcm9wcGVkLiAqLwogCWlmICh1 bmxpa2VseSghbmV0X2RldmljZSB8fCBuZXRfZGV2aWNlLT5kZXN0cm95KSkKQEAgLTg5NiwxMCAr ODk1LDE3IEBAIGludCBuZXR2c2Nfc2VuZChzdHJ1Y3QgbmV0X2RldmljZV9jb250ZXh0ICpuZGV2 X2N0eCwKIAkJfQogCX0KIAorCS8qIEtlZXAgYWdncmVnYXRpbmcgb25seSBpZiBzdGFjayBzYXlz IG1vcmUgZGF0YSBpcyBjb21pbmcKKwkgKiBhbmQgbm90IGRvaW5nIG1peGVkIG1vZGVzIHNlbmQg YW5kIG5vdCBmbG93IGJsb2NrZWQKKwkgKi8KKwl4bWl0X21vcmUgPSBza2ItPnhtaXRfbW9yZSAm JgorCQkhcGFja2V0LT5jcF9wYXJ0aWFsICYmCisJCSFuZXRpZl94bWl0X3N0b3BwZWQobmV0ZGV2 X2dldF90eF9xdWV1ZShuZGV2LCBwYWNrZXQtPnFfaWR4KSk7CisKIAlpZiAoc2VjdGlvbl9pbmRl eCAhPSBORVRWU0NfSU5WQUxJRF9JTkRFWCkgewogCQluZXR2c2NfY29weV90b19zZW5kX2J1Zihu ZXRfZGV2aWNlLAogCQkJCQlzZWN0aW9uX2luZGV4LCBtc2RfbGVuLAotCQkJCQlwYWNrZXQsIHJu ZGlzX21zZywgcGIsIHNrYik7CisJCQkJCXBhY2tldCwgcm5kaXNfbXNnLCBwYiwgeG1pdF9tb3Jl KTsKIAogCQlwYWNrZXQtPnNlbmRfYnVmX2luZGV4ID0gc2VjdGlvbl9pbmRleDsKIApAQCAtOTE5 LDcgKzkyNSw3IEBAIGludCBuZXR2c2Nfc2VuZChzdHJ1Y3QgbmV0X2RldmljZV9jb250ZXh0ICpu ZGV2X2N0eCwKIAkJaWYgKG1zZHAtPnNrYikKIAkJCWRldl9jb25zdW1lX3NrYl9hbnkobXNkcC0+ c2tiKTsKIAotCQlpZiAoeG1pdF9tb3JlICYmICFwYWNrZXQtPmNwX3BhcnRpYWwpIHsKKwkJaWYg KHhtaXRfbW9yZSkgewogCQkJbXNkcC0+c2tiID0gc2tiOwogCQkJbXNkcC0+cGt0ID0gcGFja2V0 OwogCQkJbXNkcC0+Y291bnQrKzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2 c2NfZHJ2LmMgYi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IDcxNzg5OTk5 MzkzMy4uY2M1YmY5NTQ0ZDU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNj X2Rydi5jCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTYxNCw3ICs2 MTQsNyBAQCBzdGF0aWMgaW50IG5ldHZzY19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBuZXRfZGV2aWNlICpuZXQpCiAJLyogdGltZXN0YW1wIHBhY2tldCBpbiBzb2Z0d2Fy ZSAqLwogCXNrYl90eF90aW1lc3RhbXAoc2tiKTsKIAotCXJldCA9IG5ldHZzY19zZW5kKG5ldF9k ZXZpY2VfY3R4LCBwYWNrZXQsIHJuZGlzX21zZywgcGIsIHNrYik7CisJcmV0ID0gbmV0dnNjX3Nl bmQobmV0LCBwYWNrZXQsIHJuZGlzX21zZywgcGIsIHNrYik7CiAJaWYgKGxpa2VseShyZXQgPT0g MCkpCiAJCXJldHVybiBORVRERVZfVFhfT0s7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5 cGVydi9ybmRpc19maWx0ZXIuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19maWx0ZXIuYwpp bmRleCBiZTU3NjM5YmVlMjkuLjBjOTlkOTkyNjA4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv aHlwZXJ2L3JuZGlzX2ZpbHRlci5jCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19maWx0 ZXIuYwpAQCAtMjE3LDcgKzIxNyw2IEBAIHN0YXRpYyBpbnQgcm5kaXNfZmlsdGVyX3NlbmRfcmVx dWVzdChzdHJ1Y3Qgcm5kaXNfZGV2aWNlICpkZXYsCiAJc3RydWN0IGh2X25ldHZzY19wYWNrZXQg KnBhY2tldDsKIAlzdHJ1Y3QgaHZfcGFnZV9idWZmZXIgcGFnZV9idWZbMl07CiAJc3RydWN0IGh2 X3BhZ2VfYnVmZmVyICpwYiA9IHBhZ2VfYnVmOwotCXN0cnVjdCBuZXRfZGV2aWNlX2NvbnRleHQg Km5ldF9kZXZpY2VfY3R4ID0gbmV0ZGV2X3ByaXYoZGV2LT5uZGV2KTsKIAlpbnQgcmV0OwogCiAJ LyogU2V0dXAgdGhlIHBhY2tldCB0byBzZW5kIGl0ICovCkBAIC0yNDUsNyArMjQ0LDcgQEAgc3Rh dGljIGludCBybmRpc19maWx0ZXJfc2VuZF9yZXF1ZXN0KHN0cnVjdCBybmRpc19kZXZpY2UgKmRl diwKIAl9CiAKIAlyY3VfcmVhZF9sb2NrX2JoKCk7Ci0JcmV0ID0gbmV0dnNjX3NlbmQobmV0X2Rl dmljZV9jdHgsIHBhY2tldCwgTlVMTCwgcGIsIE5VTEwpOworCXJldCA9IG5ldHZzY19zZW5kKGRl di0+bmRldiwgcGFja2V0LCBOVUxMLCBwYiwgTlVMTCk7CiAJcmN1X3JlYWRfdW5sb2NrX2JoKCk7 CiAKIAlyZXR1cm4gcmV0OwotLSAKMi4xNC4zCgoKRnJvbSA0OTYyYmNlNWRjZTg1MmI1NWQ0OGQ5 M2JjMGFjNmYxMTVkYjZhNGEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYWl5YW5n IFpoYW5nIDxoYWl5YW5nekBtaWNyb3NvZnQuY29tPgpEYXRlOiBNb24sIDE0IE1heSAyMDE4IDE1 OjMyOjA4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMC8zNF0gaHZfbmV0dnNjOiBVc2UgdGhlIG51 bV9vbmxpbmVfY3B1cygpIGZvciBjaGFubmVsIGxpbWl0CgpbIENvbW1pdCAyNWEzOWY3Zjk3NWMz YzI2YTAwNTJmYmY5YjU5MjAxYzA2NzQ0MzMyIHVwc3RyZWFtLiBdCgpTaW5jZSB3ZSBubyBsb25n ZXIgbG9jYWxpemUgY2hhbm5lbC9DUFUgYWZmaWxpYXRpb24gd2l0aGluIG9uZSBOVU1BCm5vZGUs IG51bV9vbmxpbmVfY3B1cygpIGlzIHVzZWQgYXMgdGhlIG51bWJlciBvZiBjaGFubmVsIGNhcCwg aW5zdGVhZCBvZgp0aGUgbnVtYmVyIG9mIHByb2Nlc3NvcnMgaW4gYSBOVU1BIG5vZGUuCgpUaGlz IHBhdGNoIGFsbG93cyBhIGJpZ2dlciByYW5nZSBmb3IgdHVuaW5nIHRoZSBudW1iZXIgb2YgY2hh bm5lbHMuCgpTaWduZWQtb2ZmLWJ5OiBIYWl5YW5nIFpoYW5nIDxoYWl5YW5nekBtaWNyb3NvZnQu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jIHwgMTEgKystLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jIGIvZHJpdmVycy9uZXQvaHlw ZXJ2L3JuZGlzX2ZpbHRlci5jCmluZGV4IDBjOTlkOTkyNjA4NS4uMDUxMDllZDUzNzdjIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMKKysrIGIvZHJpdmVycy9u ZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jCkBAIC0xMjIxLDcgKzEyMjEsNiBAQCBzdHJ1Y3QgbmV0 dnNjX2RldmljZSAqcm5kaXNfZmlsdGVyX2RldmljZV9hZGQoc3RydWN0IGh2X2RldmljZSAqZGV2 LAogCXN0cnVjdCBuZGlzX3JlY3Zfc2NhbGVfY2FwIHJzc2NhcDsKIAl1MzIgcnNzY2FwX3NpemUg PSBzaXplb2Yoc3RydWN0IG5kaXNfcmVjdl9zY2FsZV9jYXApOwogCXUzMiBtdHUsIHNpemU7Ci0J Y29uc3Qgc3RydWN0IGNwdW1hc2sgKm5vZGVfY3B1X21hc2s7CiAJdTMyIG51bV9wb3NzaWJsZV9y c3NfcXM7CiAJaW50IGksIHJldDsKIApAQCAtMTI5MCwxNCArMTI4OSw4IEBAIHN0cnVjdCBuZXR2 c2NfZGV2aWNlICpybmRpc19maWx0ZXJfZGV2aWNlX2FkZChzdHJ1Y3QgaHZfZGV2aWNlICpkZXYs CiAJaWYgKHJldCB8fCByc3NjYXAubnVtX3JlY3ZfcXVlIDwgMikKIAkJZ290byBvdXQ7CiAKLQkv KgotCSAqIFdlIHdpbGwgbGltaXQgdGhlIFZSU1MgY2hhbm5lbHMgdG8gdGhlIG51bWJlciBDUFVz IGluIHRoZSBOVU1BIG5vZGUKLQkgKiB0aGUgcHJpbWFyeSBjaGFubmVsIGlzIGN1cnJlbnRseSBi b3VuZCB0by4KLQkgKgotCSAqIFRoaXMgYWxzbyBndWFyYW50ZWVzIHRoYXQgbnVtX3Bvc3NpYmxl X3Jzc19xcyA8PSBudW1fb25saW5lX2NwdXMKLQkgKi8KLQlub2RlX2NwdV9tYXNrID0gY3B1bWFz a19vZl9ub2RlKGNwdV90b19ub2RlKGRldi0+Y2hhbm5lbC0+dGFyZ2V0X2NwdSkpOwotCW51bV9w b3NzaWJsZV9yc3NfcXMgPSBtaW5fdCh1MzIsIGNwdW1hc2tfd2VpZ2h0KG5vZGVfY3B1X21hc2sp LAorCS8qIFRoaXMgZ3VhcmFudGVlcyB0aGF0IG51bV9wb3NzaWJsZV9yc3NfcXMgPD0gbnVtX29u bGluZV9jcHVzICovCisJbnVtX3Bvc3NpYmxlX3Jzc19xcyA9IG1pbl90KHUzMiwgbnVtX29ubGlu ZV9jcHVzKCksCiAJCQkJICAgIHJzc2NhcC5udW1fcmVjdl9xdWUpOwogCiAJbmV0X2RldmljZS0+ bWF4X2NobiA9IG1pbl90KHUzMiwgVlJTU19DSEFOTkVMX01BWCwgbnVtX3Bvc3NpYmxlX3Jzc19x cyk7Ci0tIAoyLjE0LjMKCgpGcm9tIDI4ZDVkZmZmNjZjYWFmOTIzNDJjYmViZGM1YjQ2MzE2Mzlj N2RhOWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZXBoZW4gSGVtbWluZ2VyIDxz dGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZz4KRGF0ZTogTW9uLCAxNCBNYXkgMjAxOCAxNTozMjow OSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMzRdIGh2X25ldHZzYzogYXZvaWQgcmV0cnkgb24g c2VuZCBkdXJpbmcgc2h1dGRvd24KClsgQ29tbWl0IDEyZjY5NjYxYTQ5NDQ2ODQwZDc0MmQ4ZmVi NTkzYWNlMDIyZDlmNjYgdXBzdHJlYW0uIF0KCkNoYW5nZSB0aGUgaW5pdGlhbGl6YXRpb24gb3Jk ZXIgc28gdGhhdCB0aGUgZGV2aWNlIGlzIHJlYWR5IHRvIHRyYW5zbWl0CihpZSBjb25uZWN0IHZz cCBpcyBjb21wbGV0ZWQpIGJlZm9yZSBzZXR0aW5nIHRoZSBpbnRlcm5hbCByZWZlcmVuY2UKdG8g dGhlIGRldmljZSB3aXRoIFJDVS4KClRoaXMgYXZvaWRzIGFueSByYWNlcyBvbiBpbml0aWFsaXph dGlvbiBhbmQgcHJldmVudHMgcmV0cnkgaXNzdWVzCm9uIHNodXRkb3duLgoKU2lnbmVkLW9mZi1i eTogU3RlcGhlbiBIZW1taW5nZXIgPHN0aGVtbWluQG1pY3Jvc29mdC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9oeXBlcnYvbmV0dnNjLmMgfCAyNCArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYwpp bmRleCAyMmRhNjM5OWIzN2EuLjgzOWI5ZDZlY2I0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv aHlwZXJ2L25ldHZzYy5jCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYwpAQCAtODUw LDEzICs4NTAsNiBAQCBpbnQgbmV0dnNjX3NlbmQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsCiAJ aWYgKHVubGlrZWx5KCFuZXRfZGV2aWNlIHx8IG5ldF9kZXZpY2UtPmRlc3Ryb3kpKQogCQlyZXR1 cm4gLUVOT0RFVjsKIAotCS8qIFdlIG1heSByYWNlIHdpdGggbmV0dnNjX2Nvbm5lY3RfdnNwKCkv bmV0dnNjX2luaXRfYnVmKCkgYW5kIGdldAotCSAqIGhlcmUgYmVmb3JlIHRoZSBuZWdvdGlhdGlv biB3aXRoIHRoZSBob3N0IGlzIGZpbmlzaGVkIGFuZAotCSAqIHNlbmRfc2VjdGlvbl9tYXAgbWF5 IG5vdCBiZSBhbGxvY2F0ZWQgeWV0LgotCSAqLwotCWlmICh1bmxpa2VseSghbmV0X2RldmljZS0+ c2VuZF9zZWN0aW9uX21hcCkpCi0JCXJldHVybiAtRUFHQUlOOwotCiAJbnZjaGFuID0gJm5ldF9k ZXZpY2UtPmNoYW5fdGFibGVbcGFja2V0LT5xX2lkeF07CiAJcGFja2V0LT5zZW5kX2J1Zl9pbmRl eCA9IE5FVFZTQ19JTlZBTElEX0lOREVYOwogCXBhY2tldC0+Y3BfcGFydGlhbCA9IGZhbHNlOwpA QCAtODY0LDEwICs4NTcsOCBAQCBpbnQgbmV0dnNjX3NlbmQoc3RydWN0IG5ldF9kZXZpY2UgKm5k ZXYsCiAJLyogU2VuZCBjb250cm9sIG1lc3NhZ2UgZGlyZWN0bHkgd2l0aG91dCBhY2Nlc3Npbmcg bXNkIChNdWx0aS1TZW5kCiAJICogRGF0YSkgZmllbGQgd2hpY2ggbWF5IGJlIGNoYW5nZWQgZHVy aW5nIGRhdGEgcGFja2V0IHByb2Nlc3NpbmcuCiAJICovCi0JaWYgKCFza2IpIHsKLQkJY3VyX3Nl bmQgPSBwYWNrZXQ7Ci0JCWdvdG8gc2VuZF9ub3c7Ci0JfQorCWlmICghc2tiKQorCQlyZXR1cm4g bmV0dnNjX3NlbmRfcGt0KGRldmljZSwgcGFja2V0LCBuZXRfZGV2aWNlLCBwYiwgc2tiKTsKIAog CS8qIGJhdGNoIHBhY2tldHMgaW4gc2VuZCBidWZmZXIgaWYgcG9zc2libGUgKi8KIAltc2RwID0g Jm52Y2hhbi0+bXNkOwpAQCAtOTUxLDcgKzk0Miw2IEBAIGludCBuZXR2c2Nfc2VuZChzdHJ1Y3Qg bmV0X2RldmljZSAqbmRldiwKIAkJfQogCX0KIAotc2VuZF9ub3c6CiAJaWYgKGN1cl9zZW5kKQog CQlyZXQgPSBuZXR2c2Nfc2VuZF9wa3QoZGV2aWNlLCBjdXJfc2VuZCwgbmV0X2RldmljZSwgcGIs IHNrYik7CiAKQEAgLTEzMDgsMTEgKzEyOTgsNiBAQCBzdHJ1Y3QgbmV0dnNjX2RldmljZSAqbmV0 dnNjX2RldmljZV9hZGQoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlLAogCiAJbmFwaV9lbmFibGUo Jm5ldF9kZXZpY2UtPmNoYW5fdGFibGVbMF0ubmFwaSk7CiAKLQkvKiBXcml0aW5nIG52ZGV2IHBv aW50ZXIgdW5sb2NrcyBuZXR2c2Nfc2VuZCgpLCBtYWtlIHN1cmUgY2huX3RhYmxlIGlzCi0JICog cG9wdWxhdGVkLgotCSAqLwotCXJjdV9hc3NpZ25fcG9pbnRlcihuZXRfZGV2aWNlX2N0eC0+bnZk ZXYsIG5ldF9kZXZpY2UpOwotCiAJLyogQ29ubmVjdCB3aXRoIHRoZSBOZXRWc3AgKi8KIAlyZXQg PSBuZXR2c2NfY29ubmVjdF92c3AoZGV2aWNlLCBuZXRfZGV2aWNlLCBkZXZpY2VfaW5mbyk7CiAJ aWYgKHJldCAhPSAwKSB7CkBAIC0xMzIxLDYgKzEzMDYsMTEgQEAgc3RydWN0IG5ldHZzY19kZXZp Y2UgKm5ldHZzY19kZXZpY2VfYWRkKHN0cnVjdCBodl9kZXZpY2UgKmRldmljZSwKIAkJZ290byBj bG9zZTsKIAl9CiAKKwkvKiBXcml0aW5nIG52ZGV2IHBvaW50ZXIgdW5sb2NrcyBuZXR2c2Nfc2Vu ZCgpLCBtYWtlIHN1cmUgY2huX3RhYmxlIGlzCisJICogcG9wdWxhdGVkLgorCSAqLworCXJjdV9h c3NpZ25fcG9pbnRlcihuZXRfZGV2aWNlX2N0eC0+bnZkZXYsIG5ldF9kZXZpY2UpOworCiAJcmV0 dXJuIG5ldF9kZXZpY2U7CiAKIGNsb3NlOgotLSAKMi4xNC4zCgoKRnJvbSA2OTY1MGJmMGMyYzg3 MGE4ZTAyNmU3NjQ3ZTZmNjIyOWJlZWE0YzgzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+CkRhdGU6IE1v biwgMTQgTWF5IDIwMTggMTU6MzI6MTAgLTA3MDAKU3ViamVjdDogW1BBVENIIDIyLzM0XSBodl9u ZXR2c2M6IG9ubHkgd2FrZSB0cmFuc21pdCBxdWV1ZSBpZiBsaW5rIGlzIHVwCgpbIENvbW1pdCBm NDk1MGU0NTg2ZGZjOTU3ZTBhMjgyMjZlZWI5OTJkZGMwNDliNWEyIHVwc3RyZWFtLiBdCgpEb24n dCB3YWtlIHRyYW5zbWl0IHF1ZXVlcyBpZiBsaW5rIGlzIG5vdCB1cCB5ZXQuCgpTaWduZWQtb2Zm LWJ5OiBTdGVwaGVuIEhlbW1pbmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgfCA3ICsrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlw ZXJ2L25ldHZzY19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKaW5kZXgg Y2M1YmY5NTQ0ZDU3Li40MGE0NWYxMTU1MGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVy di9uZXR2c2NfZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwpAQCAt ODgsMTIgKzg4LDExIEBAIHN0YXRpYyBpbnQgbmV0dnNjX29wZW4oc3RydWN0IG5ldF9kZXZpY2Ug Km5ldCkKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQluZXRpZl90eF93YWtlX2FsbF9xdWV1ZXMobmV0 KTsKLQogCXJkZXYgPSBudmRldi0+ZXh0ZW5zaW9uOwotCi0JaWYgKCFyZGV2LT5saW5rX3N0YXRl KQorCWlmICghcmRldi0+bGlua19zdGF0ZSkgewogCQluZXRpZl9jYXJyaWVyX29uKG5ldCk7CisJ CW5ldGlmX3R4X3dha2VfYWxsX3F1ZXVlcyhuZXQpOworCX0KIAogCWlmICh2Zl9uZXRkZXYpIHsK IAkJLyogU2V0dGluZyBzeW50aGV0aWMgZGV2aWNlIHVwIHRyYW5zcGFyZW50bHkgc2V0cwotLSAK Mi4xNC4zCgoKRnJvbSBhNGYyOTJmZTc5MzFlNTg4YjQ1MmNmNjkyYzMwY2Y4NmJmODAyZjE0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBu ZXR3b3JrcGx1bWJlci5vcmc+CkRhdGU6IE1vbiwgMTQgTWF5IDIwMTggMTU6MzI6MTEgLTA3MDAK U3ViamVjdDogW1BBVENIIDIzLzM0XSBodl9uZXR2c2M6IGZpeCBlcnJvciB1bndpbmQgaGFuZGxp bmcgaWYgdm1idXNfb3BlbgogZmFpbHMKClsgQ29tbWl0IGZjZmI0YTAwZDFlNTE0ZTgzMTMyNzdh MDFlZjkxOWRlMTExMzAyNWIgdXBzdHJlYW0uIF0KCk5lZWQgdG8gZGVsZXRlIE5BUEkgYXNzb2Np YXRpb24gaWYgdm1idXNfb3BlbiBmYWlscy4KClNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gSGVtbWlu Z2VyIDxzdGhlbW1pbkBtaWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5j IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jIGIvZHJpdmVycy9uZXQvaHlw ZXJ2L25ldHZzYy5jCmluZGV4IDgzOWI5ZDZlY2I0MS4uYjc3MjBiNjVmNWQ2IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25l dHZzYy5jCkBAIC0xMjg4LDcgKzEyODgsNiBAQCBzdHJ1Y3QgbmV0dnNjX2RldmljZSAqbmV0dnNj X2RldmljZV9hZGQoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlLAogCQkJIG5ldF9kZXZpY2UtPmNo YW5fdGFibGUpOwogCiAJaWYgKHJldCAhPSAwKSB7Ci0JCW5ldGlmX25hcGlfZGVsKCZuZXRfZGV2 aWNlLT5jaGFuX3RhYmxlWzBdLm5hcGkpOwogCQluZXRkZXZfZXJyKG5kZXYsICJ1bmFibGUgdG8g b3BlbiBjaGFubmVsOiAlZFxuIiwgcmV0KTsKIAkJZ290byBjbGVhbnVwOwogCX0KQEAgLTEzMjEs NiArMTMyMCw3IEBAIHN0cnVjdCBuZXR2c2NfZGV2aWNlICpuZXR2c2NfZGV2aWNlX2FkZChzdHJ1 Y3QgaHZfZGV2aWNlICpkZXZpY2UsCiAJdm1idXNfY2xvc2UoZGV2aWNlLT5jaGFubmVsKTsKIAog Y2xlYW51cDoKKwluZXRpZl9uYXBpX2RlbCgmbmV0X2RldmljZS0+Y2hhbl90YWJsZVswXS5uYXBp KTsKIAlmcmVlX25ldHZzY19kZXZpY2UoJm5ldF9kZXZpY2UtPnJjdSk7CiAKIAlyZXR1cm4gRVJS X1BUUihyZXQpOwotLSAKMi4xNC4zCgoKRnJvbSBlNWJjYzY2NGYxYzc2YTJjNThiOGY0ZjFiZTI1 ZGIzMGE0NGVjMDQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGVuIEhlbW1p bmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+CkRhdGU6IE1vbiwgMTQgTWF5IDIwMTgg MTU6MzI6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDI0LzM0XSBodl9uZXR2c2M6IGNhbmNlbCBz dWJjaGFubmVsIHNldHVwIGJlZm9yZSBoYWx0aW5nCiBkZXZpY2UKClsgQ29tbWl0IGE3NDgzZWMw MjY3YzY5YjM0ZTgxODczOGRhNjBiMzkyNjIzZGE5NGIgdXBzdHJlYW0uIF0KCkJsb2NrIHNldHVw IG9mIG11bHRpcGxlIGNoYW5uZWxzIGVhcmxpZXIgaW4gdGhlIHRlYXJkb3duCnByb2Nlc3MuIFRo aXMgYXZvaWRzIHBvc3NpYmxlIHJhY2VzIGJldHdlZW4gaGFsdCBhbmQgc3ViY2hhbm5lbAppbml0 aWFsaXphdGlvbi4KClN1Z2dlc3RlZC1ieTogSGFpeWFuZyBaaGFuZyA8aGFpeWFuZ3pAbWljcm9z b2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBIZW1taW5nZXIgPHN0aGVtbWluQG1pY3Jv c29mdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMgfCAzICsrKwogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5 cGVydi9ybmRpc19maWx0ZXIuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19maWx0ZXIuYwpp bmRleCAwNTEwOWVkNTM3N2MuLjVhMzEyYjJkNWE3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv aHlwZXJ2L3JuZGlzX2ZpbHRlci5jCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19maWx0 ZXIuYwpAQCAtMTM0MCw2ICsxMzQwLDkgQEAgdm9pZCBybmRpc19maWx0ZXJfZGV2aWNlX3JlbW92 ZShzdHJ1Y3QgaHZfZGV2aWNlICpkZXYsCiB7CiAJc3RydWN0IHJuZGlzX2RldmljZSAqcm5kaXNf ZGV2ID0gbmV0X2Rldi0+ZXh0ZW5zaW9uOwogCisJLyogRG9uJ3QgdHJ5IGFuZCBzZXR1cCBzdWIg Y2hhbm5lbHMgaWYgYWJvdXQgdG8gaGFsdCAqLworCWNhbmNlbF93b3JrX3N5bmMoJm5ldF9kZXYt PnN1YmNoYW5fd29yayk7CisKIAkvKiBIYWx0IGFuZCByZWxlYXNlIHRoZSBybmRpcyBkZXZpY2Ug Ki8KIAlybmRpc19maWx0ZXJfaGFsdF9kZXZpY2Uocm5kaXNfZGV2KTsKIAotLSAKMi4xNC4zCgoK RnJvbSBlZWY0YTEyYjZjYTA5NTFlMWEwYzc3ZmEzNmJiNmE4MmIzZGVhZDg3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1 bWJlci5vcmc+CkRhdGU6IE1vbiwgMTQgTWF5IDIwMTggMTU6MzI6MTMgLTA3MDAKU3ViamVjdDog W1BBVENIIDI1LzM0XSBodl9uZXR2c2M6IGZpeCByYWNlIGluIG5hcGkgcG9sbCB3aGVuIHJlc2No ZWR1bGluZwoKWyBDb21taXQgZDY0ZTM4YWU2OTBlMzMzN2RiMGQzOGQ5YjE0OWExOTNhMTY0NmM0 YiB1cHN0cmVhbS4gXQoKVGhlcmUgaXMgYSByYWNlIGJldHdlZW4gbmFwaV9yZXNjaGVkdWxlIGFu ZCByZS1lbmFibGluZyBpbnRlcnJ1cHRzCndoaWNoIGNvdWxkIGxlYWQgdG8gbWlzc2VkIGhvc3Qg aW50ZXJycnVwdHMuICBUaGlzIG9jY3VycyB3aGVuCmludGVycnVwdHMgYXJlIHJlLWVuYWJsZWQg KGh2X2VuZF9yZWFkKSBhbmQgdm1idXMgaXJxIGNhbGxiYWNrCihuZXR2c2NfY2hhbm5lbF9jYikg aGFzIGFscmVhZHkgc2NoZWR1bGVkIE5BUEkuCgpTaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEhlbW1p bmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2Mu YyB8IDUgKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jIGIvZHJpdmVycy9u ZXQvaHlwZXJ2L25ldHZzYy5jCmluZGV4IGI3NzIwYjY1ZjVkNi4uN2UwZWI5OTU3MWFmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKKysrIGIvZHJpdmVycy9uZXQvaHlw ZXJ2L25ldHZzYy5jCkBAIC0xMjA1LDkgKzEyMDUsMTAgQEAgaW50IG5ldHZzY19wb2xsKHN0cnVj dCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAlpZiAoc2VuZF9yZWN2X2NvbXBsZXRp b25zKG5kZXYsIG5ldF9kZXZpY2UsIG52Y2hhbikgPT0gMCAmJgogCSAgICB3b3JrX2RvbmUgPCBi dWRnZXQgJiYKIAkgICAgbmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHdvcmtfZG9uZSkgJiYKLQkg ICAgaHZfZW5kX3JlYWQoJmNoYW5uZWwtPmluYm91bmQpKSB7CisJICAgIGh2X2VuZF9yZWFkKCZj aGFubmVsLT5pbmJvdW5kKSAmJgorCSAgICBuYXBpX3NjaGVkdWxlX3ByZXAobmFwaSkpIHsKIAkJ aHZfYmVnaW5fcmVhZCgmY2hhbm5lbC0+aW5ib3VuZCk7Ci0JCW5hcGlfcmVzY2hlZHVsZShuYXBp KTsKKwkJX19uYXBpX3NjaGVkdWxlKG5hcGkpOwogCX0KIAogCS8qIERyaXZlciBtYXkgb3ZlcnNo b290IHNpbmNlIG11bHRpcGxlIHBhY2tldHMgcGVyIGRlc2NyaXB0b3IgKi8KLS0gCjIuMTQuMwoK CkZyb20gZjllZGRlNjM3N2I0YWIwY2E0ODdhZTNiZTAyNGQzZGQ1OTI2OTYyMyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3Bs dW1iZXIub3JnPgpEYXRlOiBNb24sIDE0IE1heSAyMDE4IDE1OjMyOjE0IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAyNi8zNF0gaHZfbmV0dnNjOiBkZWZlciBxdWV1ZSBzZWxlY3Rpb24gdG8gVkYKClsg Q29tbWl0IGIzYmY1NjY2YTUxMDY4YWQ1ZGRkODlhNzZlZDg3NzEwMWVmM2JjMTYgdXBzdHJlYW0u IF0KCldoZW4gVkYgaXMgdXNlZCBmb3IgYWNjZWxlcmF0ZWQgbmV0d29ya2luZyBpdCB3aWxsIGxp a2VseSBoYXZlCm1vcmUgcXVldWVzIChhbmQgZGlmZmVyZW50IHBvbGljeSkgdGhhbiB0aGUgc3lu dGhldGljIE5JQy4KVGhpcyBwYXRjaCBkZWZlcnMgdGhlIHF1ZXVlIHBvbGljeSB0byB0aGUgVkYg c28gdGhhdCBhbGwgdGhlCnF1ZXVlcyBjYW4gYmUgdXNlZC4gVGhpcyBpbXBhY3RzIHdvcmtsb2Fk cyBsaWtlIGxvY2FsIGdlbmVyYXRlIFVEUC4KClNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gSGVtbWlu Z2VyIDxzdGhlbW1pbkBtaWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19k cnYuYyB8IDE1ICsrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZz Y19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKaW5kZXggNDBhNDVmMTE1 NTBjLi42N2YzNzc0NGVlYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2Nf ZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwpAQCAtMjgzLDggKzI4 MywxOSBAQCBzdGF0aWMgdTE2IG5ldHZzY19zZWxlY3RfcXVldWUoc3RydWN0IG5ldF9kZXZpY2Ug Km5kZXYsIHN0cnVjdCBza19idWZmICpza2IsCiAJcmN1X3JlYWRfbG9jaygpOwogCXZmX25ldGRl diA9IHJjdV9kZXJlZmVyZW5jZShuZGMtPnZmX25ldGRldik7CiAJaWYgKHZmX25ldGRldikgewot CQl0eHEgPSBza2JfcnhfcXVldWVfcmVjb3JkZWQoc2tiKSA/IHNrYl9nZXRfcnhfcXVldWUoc2ti KSA6IDA7Ci0JCXFkaXNjX3NrYl9jYihza2IpLT5zbGF2ZV9kZXZfcXVldWVfbWFwcGluZyA9IHNr Yi0+cXVldWVfbWFwcGluZzsKKwkJY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzICp2Zl9vcHMg PSB2Zl9uZXRkZXYtPm5ldGRldl9vcHM7CisKKwkJaWYgKHZmX29wcy0+bmRvX3NlbGVjdF9xdWV1 ZSkKKwkJCXR4cSA9IHZmX29wcy0+bmRvX3NlbGVjdF9xdWV1ZSh2Zl9uZXRkZXYsIHNrYiwKKwkJ CQkJCSAgICAgICBhY2NlbF9wcml2LCBmYWxsYmFjayk7CisJCWVsc2UKKwkJCXR4cSA9IGZhbGxi YWNrKHZmX25ldGRldiwgc2tiKTsKKworCQkvKiBSZWNvcmQgdGhlIHF1ZXVlIHNlbGVjdGVkIGJ5 IFZGIHNvIHRoYXQgaXQgY2FuIGJlCisJCSAqIHVzZWQgZm9yIGNvbW1vbiBjYXNlIHdoZXJlIFZG IGhhcyBtb3JlIHF1ZXVlcyB0aGFuCisJCSAqIHRoZSBzeW50aGV0aWMgZGV2aWNlLgorCQkgKi8K KwkJcWRpc2Nfc2tiX2NiKHNrYiktPnNsYXZlX2Rldl9xdWV1ZV9tYXBwaW5nID0gdHhxOwogCX0g ZWxzZSB7CiAJCXR4cSA9IG5ldHZzY19waWNrX3R4KG5kZXYsIHNrYik7CiAJfQotLSAKMi4xNC4z CgoKRnJvbSBiNDc2OGI2NDVhNTc0MWU1ZDY4OWE5OTQzNWU1ODIzODE3MDViOGMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3Jr cGx1bWJlci5vcmc+CkRhdGU6IE1vbiwgMTQgTWF5IDIwMTggMTU6MzI6MTUgLTA3MDAKU3ViamVj dDogW1BBVENIIDI3LzM0XSBodl9uZXR2c2M6IGRpc2FibGUgTkFQSSBiZWZvcmUgY2hhbm5lbCBj bG9zZQoKWyBDb21taXQgODM0OGUwNDYwYWIxNDczZjA2YzhiODI0Njk5ZGQyZWVkM2MxOTc5ZCB1 cHN0cmVhbS4gXQoKVGhpcyBtYWtlcyBzdXJlIHRoYXQgbm8gQ1BVIGlzIHN0aWxsIHByb2Nlc3Mg cGFja2V0cyB3aGVuCnRoZSBjaGFubmVsIGlzIGNsb3NlZC4KCkZpeGVzOiA3NmJiNWRiNWM3NDkg KCJuZXR2c2M6IGZpeCB1c2UgYWZ0ZXIgZnJlZSBvbiBtb2R1bGUgcmVtb3ZhbCIpClNpZ25lZC1v ZmYtYnk6IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGhlbW1pbkBtaWNyb3NvZnQuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvaHlwZXJ2L25ldHZzYy5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBl cnYvbmV0dnNjLmMgYi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKaW5kZXggN2UwZWI5OTU3 MWFmLi5hODc4OWRjNGZjOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2Mu YworKysgYi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKQEAgLTU2Nyw2ICs1NjcsMTAgQEAg dm9pZCBuZXR2c2NfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgaHZfZGV2aWNlICpkZXZpY2UpCiAKIAlS Q1VfSU5JVF9QT0lOVEVSKG5ldF9kZXZpY2VfY3R4LT5udmRldiwgTlVMTCk7CiAKKwkvKiBBbmQg ZGlzYXNzb2NpYXRlIE5BUEkgY29udGV4dCBmcm9tIGRldmljZSAqLworCWZvciAoaSA9IDA7IGkg PCBuZXRfZGV2aWNlLT5udW1fY2huOyBpKyspCisJCW5ldGlmX25hcGlfZGVsKCZuZXRfZGV2aWNl LT5jaGFuX3RhYmxlW2ldLm5hcGkpOworCiAJLyoKIAkgKiBBdCB0aGlzIHBvaW50LCBubyBvbmUg c2hvdWxkIGJlIGFjY2Vzc2luZyBuZXRfZGV2aWNlCiAJICogZXhjZXB0IGluIGhlcmUKQEAgLTU3 OCwxMCArNTgyLDYgQEAgdm9pZCBuZXR2c2NfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgaHZfZGV2aWNl ICpkZXZpY2UpCiAKIAluZXR2c2NfdGVhcmRvd25fZ3BhZGwoZGV2aWNlLCBuZXRfZGV2aWNlKTsK IAotCS8qIEFuZCBkaXNzYXNzb2NpYXRlIE5BUEkgY29udGV4dCBmcm9tIGRldmljZSAqLwotCWZv ciAoaSA9IDA7IGkgPCBuZXRfZGV2aWNlLT5udW1fY2huOyBpKyspCi0JCW5ldGlmX25hcGlfZGVs KCZuZXRfZGV2aWNlLT5jaGFuX3RhYmxlW2ldLm5hcGkpOwotCiAJLyogUmVsZWFzZSBhbGwgcmVz b3VyY2VzICovCiAJZnJlZV9uZXR2c2NfZGV2aWNlX3JjdShuZXRfZGV2aWNlKTsKIH0KLS0gCjIu MTQuMwoKCkZyb20gOGNjMjRjYTRlZjQ2NjE2ZmM5M2IxMzlhZGRkMjVjZTk1NzM5ZGM2ZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0 d29ya3BsdW1iZXIub3JnPgpEYXRlOiBNb24sIDE0IE1heSAyMDE4IDE1OjMyOjE2IC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAyOC8zNF0gaHZfbmV0dnNjOiB1c2UgUkNVIHRvIGZpeCBjb25jdXJyZW50 IHJ4IGFuZCBxdWV1ZQogY2hhbmdlcwoKWyBDb21taXQgMDI0MDBmY2VlMjU0MmVlMzM0YTIzOTRl MGQ5ZjZlZmQ5NjlmZTc4MiB1cHN0cmVhbS4gXQoKVGhlIHJlY2VpdmUgcHJvY2Vzc2luZyBtYXkg Y29udGludWUgdG8gaGFwcGVuIHdoaWxlIHRoZQppbnRlcm5hbCBuZXR3b3JrIGRldmljZSBzdGF0 ZSBpcyBpbiBSQ1UgZ3JhY2UgcGVyaW9kLgpUaGUgaW50ZXJuYWwgUk5ESVMgc3RydWN0dXJlIGlz IGFzc29jaWF0ZWQgd2l0aCB0aGUKaW50ZXJuYWwgbmV0dnNjX2RldmljZSBzdHJ1Y3R1cmU7IGJv dGggaGF2ZSB0aGUgc2FtZQpSQ1UgbGlmZXRpbWUuCgpEZWZlciBmcmVlaW5nIGFsbCBhc3NvY2lh dGVkIHBhcnRzIHVudGlsIGFmdGVyIGdyYWNlCnBlcmlvZC4KCkZpeGVzOiAwY2Y3Mzc4MDhhZTcg KCJodl9uZXR2c2M6IG5ldHZzY190ZWFyZG93bl9ncGFkbCgpIHNwbGl0IikKU2lnbmVkLW9mZi1i eTogU3RlcGhlbiBIZW1taW5nZXIgPHN0aGVtbWluQG1pY3Jvc29mdC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9oeXBlcnYvbmV0dnNjLmMgICAgICAgfCAxNyArKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9u ZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jIHwgMzkgKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDM0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYyBiL2RyaXZl cnMvbmV0L2h5cGVydi9uZXR2c2MuYwppbmRleCBhODc4OWRjNGZjOWIuLjAzMzI4YTYwMzc3ZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jCisrKyBiL2RyaXZlcnMvbmV0 L2h5cGVydi9uZXR2c2MuYwpAQCAtODksNiArODksMTEgQEAgc3RhdGljIHZvaWQgZnJlZV9uZXR2 c2NfZGV2aWNlKHN0cnVjdCByY3VfaGVhZCAqaGVhZCkKIAkJPSBjb250YWluZXJfb2YoaGVhZCwg c3RydWN0IG5ldHZzY19kZXZpY2UsIHJjdSk7CiAJaW50IGk7CiAKKwlrZnJlZShudmRldi0+ZXh0 ZW5zaW9uKTsKKwl2ZnJlZShudmRldi0+cmVjdl9idWYpOworCXZmcmVlKG52ZGV2LT5zZW5kX2J1 Zik7CisJa2ZyZWUobnZkZXYtPnNlbmRfc2VjdGlvbl9tYXApOworCiAJZm9yIChpID0gMDsgaSA8 IFZSU1NfQ0hBTk5FTF9NQVg7IGkrKykKIAkJdmZyZWUobnZkZXYtPmNoYW5fdGFibGVbaV0ubXJj LnNsb3RzKTsKIApAQCAtMjEwLDEyICsyMTUsNiBAQCBzdGF0aWMgdm9pZCBuZXR2c2NfdGVhcmRv d25fZ3BhZGwoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlLAogCQluZXRfZGV2aWNlLT5yZWN2X2J1 Zl9ncGFkbF9oYW5kbGUgPSAwOwogCX0KIAotCWlmIChuZXRfZGV2aWNlLT5yZWN2X2J1Zikgewot CQkvKiBGcmVlIHVwIHRoZSByZWNlaXZlIGJ1ZmZlciAqLwotCQl2ZnJlZShuZXRfZGV2aWNlLT5y ZWN2X2J1Zik7Ci0JCW5ldF9kZXZpY2UtPnJlY3ZfYnVmID0gTlVMTDsKLQl9Ci0KIAlpZiAobmV0 X2RldmljZS0+c2VuZF9idWZfZ3BhZGxfaGFuZGxlKSB7CiAJCXJldCA9IHZtYnVzX3RlYXJkb3du X2dwYWRsKGRldmljZS0+Y2hhbm5lbCwKIAkJCQkJICAgbmV0X2RldmljZS0+c2VuZF9idWZfZ3Bh ZGxfaGFuZGxlKTsKQEAgLTIzMCwxMiArMjI5LDYgQEAgc3RhdGljIHZvaWQgbmV0dnNjX3RlYXJk b3duX2dwYWRsKHN0cnVjdCBodl9kZXZpY2UgKmRldmljZSwKIAkJfQogCQluZXRfZGV2aWNlLT5z ZW5kX2J1Zl9ncGFkbF9oYW5kbGUgPSAwOwogCX0KLQlpZiAobmV0X2RldmljZS0+c2VuZF9idWYp IHsKLQkJLyogRnJlZSB1cCB0aGUgc2VuZCBidWZmZXIgKi8KLQkJdmZyZWUobmV0X2RldmljZS0+ c2VuZF9idWYpOwotCQluZXRfZGV2aWNlLT5zZW5kX2J1ZiA9IE5VTEw7Ci0JfQotCWtmcmVlKG5l dF9kZXZpY2UtPnNlbmRfc2VjdGlvbl9tYXApOwogfQogCiBpbnQgbmV0dnNjX2FsbG9jX3JlY3Zf Y29tcF9yaW5nKHN0cnVjdCBuZXR2c2NfZGV2aWNlICpuZXRfZGV2aWNlLCB1MzIgcV9pZHgpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMgYi9kcml2ZXJzL25l dC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMKaW5kZXggNWEzMTJiMmQ1YTdiLi4wNTY0OTkwMTRhMWYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19maWx0ZXIuYworKysgYi9kcml2 ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMKQEAgLTI2NiwxMyArMjY2LDIzIEBAIHN0YXRp YyB2b2lkIHJuZGlzX3NldF9saW5rX3N0YXRlKHN0cnVjdCBybmRpc19kZXZpY2UgKnJkZXYsCiAJ fQogfQogCi1zdGF0aWMgdm9pZCBybmRpc19maWx0ZXJfcmVjZWl2ZV9yZXNwb25zZShzdHJ1Y3Qg cm5kaXNfZGV2aWNlICpkZXYsCi0JCQkJICAgICAgIHN0cnVjdCBybmRpc19tZXNzYWdlICpyZXNw KQorc3RhdGljIHZvaWQgcm5kaXNfZmlsdGVyX3JlY2VpdmVfcmVzcG9uc2Uoc3RydWN0IG5ldF9k ZXZpY2UgKm5kZXYsCisJCQkJCSAgc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2LAorCQkJCQkg IGNvbnN0IHN0cnVjdCBybmRpc19tZXNzYWdlICpyZXNwKQogeworCXN0cnVjdCBybmRpc19kZXZp Y2UgKmRldiA9IG52ZGV2LT5leHRlbnNpb247CiAJc3RydWN0IHJuZGlzX3JlcXVlc3QgKnJlcXVl c3QgPSBOVUxMOwogCWJvb2wgZm91bmQgPSBmYWxzZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwot CXN0cnVjdCBuZXRfZGV2aWNlICpuZGV2ID0gZGV2LT5uZGV2OworCisJLyogVGhpcyBzaG91bGQg bmV2ZXIgaGFwcGVuLCBpdCBtZWFucyBjb250cm9sIG1lc3NhZ2UKKwkgKiByZXNwb25zZSByZWNl aXZlZCBhZnRlciBkZXZpY2UgcmVtb3ZlZC4KKwkgKi8KKwlpZiAoZGV2LT5zdGF0ZSA9PSBSTkRJ U19ERVZfVU5JTklUSUFMSVpFRCkgeworCQluZXRkZXZfZXJyKG5kZXYsCisJCQkgICAiZ290IHJu ZGlzIG1lc3NhZ2UgdW5pbml0aWFsaXplZFxuIik7CisJCXJldHVybjsKKwl9CiAKIAlzcGluX2xv Y2tfaXJxc2F2ZSgmZGV2LT5yZXF1ZXN0X2xvY2ssIGZsYWdzKTsKIAlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHJlcXVlc3QsICZkZXYtPnJlcV9saXN0LCBsaXN0X2VudCkgewpAQCAtMzUzLDcgKzM2Myw3 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqcm5kaXNfZ2V0X3BwaShzdHJ1Y3Qgcm5kaXNfcGFja2V0 ICpycGt0LCB1MzIgdHlwZSkKIH0KIAogc3RhdGljIGludCBybmRpc19maWx0ZXJfcmVjZWl2ZV9k YXRhKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAotCQkJCSAgICAgc3RydWN0IHJuZGlzX2Rldmlj ZSAqZGV2LAorCQkJCSAgICAgc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2LAogCQkJCSAgICAg c3RydWN0IHJuZGlzX21lc3NhZ2UgKm1zZywKIAkJCQkgICAgIHN0cnVjdCB2bWJ1c19jaGFubmVs ICpjaGFubmVsLAogCQkJCSAgICAgdm9pZCAqZGF0YSwgdTMyIGRhdGFfYnVmbGVuKQpAQCAtMzcz LDcgKzM4Myw3IEBAIHN0YXRpYyBpbnQgcm5kaXNfZmlsdGVyX3JlY2VpdmVfZGF0YShzdHJ1Y3Qg bmV0X2RldmljZSAqbmRldiwKIAkgKiBzaG91bGQgYmUgdGhlIGRhdGEgcGFja2V0IHNpemUgcGx1 cyB0aGUgdHJhaWxlciBwYWRkaW5nIHNpemUKIAkgKi8KIAlpZiAodW5saWtlbHkoZGF0YV9idWZs ZW4gPCBybmRpc19wa3QtPmRhdGFfbGVuKSkgewotCQluZXRkZXZfZXJyKGRldi0+bmRldiwgInJu ZGlzIG1lc3NhZ2UgYnVmZmVyICIKKwkJbmV0ZGV2X2VycihuZGV2LCAicm5kaXMgbWVzc2FnZSBi dWZmZXIgIgogCQkJICAgIm92ZXJmbG93IGRldGVjdGVkIChnb3QgJXUsIG1pbiAldSkiCiAJCQkg ICAiLi4uZHJvcHBpbmcgdGhpcyBtZXNzYWdlIVxuIiwKIAkJCSAgIGRhdGFfYnVmbGVuLCBybmRp c19wa3QtPmRhdGFfbGVuKTsKQEAgLTQwMSwzNCArNDExLDIwIEBAIGludCBybmRpc19maWx0ZXJf cmVjZWl2ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwKIAkJCSB2b2lkICpkYXRhLCB1MzIgYnVm bGVuKQogewogCXN0cnVjdCBuZXRfZGV2aWNlX2NvbnRleHQgKm5ldF9kZXZpY2VfY3R4ID0gbmV0 ZGV2X3ByaXYobmRldik7Ci0Jc3RydWN0IHJuZGlzX2RldmljZSAqcm5kaXNfZGV2ID0gbmV0X2Rl di0+ZXh0ZW5zaW9uOwogCXN0cnVjdCBybmRpc19tZXNzYWdlICpybmRpc19tc2cgPSBkYXRhOwog Ci0JLyogTWFrZSBzdXJlIHRoZSBybmRpcyBkZXZpY2Ugc3RhdGUgaXMgaW5pdGlhbGl6ZWQgKi8K LQlpZiAodW5saWtlbHkoIXJuZGlzX2RldikpIHsKLQkJbmV0aWZfZXJyKG5ldF9kZXZpY2VfY3R4 LCByeF9lcnIsIG5kZXYsCi0JCQkgICJnb3Qgcm5kaXMgbWVzc2FnZSBidXQgbm8gcm5kaXMgZGV2 aWNlIVxuIik7Ci0JCXJldHVybiBOVlNQX1NUQVRfRkFJTDsKLQl9Ci0KLQlpZiAodW5saWtlbHko cm5kaXNfZGV2LT5zdGF0ZSA9PSBSTkRJU19ERVZfVU5JTklUSUFMSVpFRCkpIHsKLQkJbmV0aWZf ZXJyKG5ldF9kZXZpY2VfY3R4LCByeF9lcnIsIG5kZXYsCi0JCQkgICJnb3Qgcm5kaXMgbWVzc2Fn ZSB1bmluaXRpYWxpemVkXG4iKTsKLQkJcmV0dXJuIE5WU1BfU1RBVF9GQUlMOwotCX0KLQogCWlm IChuZXRpZl9tc2dfcnhfc3RhdHVzKG5ldF9kZXZpY2VfY3R4KSkKIAkJZHVtcF9ybmRpc19tZXNz YWdlKGRldiwgcm5kaXNfbXNnKTsKIAogCXN3aXRjaCAocm5kaXNfbXNnLT5uZGlzX21zZ190eXBl KSB7CiAJY2FzZSBSTkRJU19NU0dfUEFDS0VUOgotCQlyZXR1cm4gcm5kaXNfZmlsdGVyX3JlY2Vp dmVfZGF0YShuZGV2LCBybmRpc19kZXYsIHJuZGlzX21zZywKKwkJcmV0dXJuIHJuZGlzX2ZpbHRl cl9yZWNlaXZlX2RhdGEobmRldiwgbmV0X2Rldiwgcm5kaXNfbXNnLAogCQkJCQkJIGNoYW5uZWws IGRhdGEsIGJ1Zmxlbik7CiAJY2FzZSBSTkRJU19NU0dfSU5JVF9DOgogCWNhc2UgUk5ESVNfTVNH X1FVRVJZX0M6CiAJY2FzZSBSTkRJU19NU0dfU0VUX0M6CiAJCS8qIGNvbXBsZXRpb24gbXNncyAq LwotCQlybmRpc19maWx0ZXJfcmVjZWl2ZV9yZXNwb25zZShybmRpc19kZXYsIHJuZGlzX21zZyk7 CisJCXJuZGlzX2ZpbHRlcl9yZWNlaXZlX3Jlc3BvbnNlKG5kZXYsIG5ldF9kZXYsIHJuZGlzX21z Zyk7CiAJCWJyZWFrOwogCiAJY2FzZSBSTkRJU19NU0dfSU5ESUNBVEU6CkBAIC0xMzQ5LDcgKzEz NDUsNiBAQCB2b2lkIHJuZGlzX2ZpbHRlcl9kZXZpY2VfcmVtb3ZlKHN0cnVjdCBodl9kZXZpY2Ug KmRldiwKIAluZXRfZGV2LT5leHRlbnNpb24gPSBOVUxMOwogCiAJbmV0dnNjX2RldmljZV9yZW1v dmUoZGV2KTsKLQlrZnJlZShybmRpc19kZXYpOwogfQogCiBpbnQgcm5kaXNfZmlsdGVyX29wZW4o c3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2KQotLSAKMi4xNC4zCgoKRnJvbSA5OTcwYmQ2NDg2 ZjAxYjcwZDBiMzRjZGFjZDc4YjRmOTQzZTkzMDQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+CkRhdGU6 IE1vbiwgMTQgTWF5IDIwMTggMTU6MzI6MTcgLTA3MDAKU3ViamVjdDogW1BBVENIIDI5LzM0XSBo dl9uZXR2c2M6IGNoYW5nZSBHUEFEIHRlYXJkb3duIG9yZGVyIG9uIG9sZGVyIHZlcnNpb25zCgpb IENvbW1pdCAwZWY1OGIwYTA1YzEyNzc2MmY5NzVjM2RmZThiOTIyZTRhYTg3YTI5IHVwc3RyZWFt LiBdCgpPbiBvbGRlciB2ZXJzaW9ucyBvZiBXaW5kb3dzLCB0aGUgaG9zdCBpZ25vcmVzIG1lc3Nh Z2VzIGFmdGVyCnZtYnVzIGNoYW5uZWwgaXMgY2xvc2VkLgoKV29ya2Fyb3VuZCB0aGlzIGJ5IGRv aW5nIHdoYXQgV2luZG93cyBkb2VzIGFuZCBzZW5kIHRoZSB0ZWFyZG93bgpiZWZvcmUgY2xvc2Ug b24gb2xkZXIgdmVyc2lvbnMgb2YgTlZTUCBwcm90b2NvbC4KClJlcG9ydGVkLWJ5OiBNb2hhbW1l ZCBHYW1hbCA8bWdhbWFsQHJlZGhhdC5jb20+CkZpeGVzOiAwY2Y3Mzc4MDhhZTcgKCJodl9uZXR2 c2M6IG5ldHZzY190ZWFyZG93bl9ncGFkbCgpIHNwbGl0IikKU2lnbmVkLW9mZi1ieTogU3RlcGhl biBIZW1taW5nZXIgPHN0aGVtbWluQG1pY3Jvc29mdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYv bmV0dnNjLmMgfCA3ICsrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMgYi9k cml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKaW5kZXggMDMzMjhhNjAzNzdlLi4zZjNjNjQ4OWFk ZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYworKysgYi9kcml2ZXJz L25ldC9oeXBlcnYvbmV0dnNjLmMKQEAgLTU3MCwxMCArNTcwLDE1IEBAIHZvaWQgbmV0dnNjX2Rl dmljZV9yZW1vdmUoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlKQogCSAqLwogCW5ldGRldl9kYmco bmRldiwgIm5ldCBkZXZpY2Ugc2FmZSB0byByZW1vdmVcbiIpOwogCisJLyogb2xkZXIgdmVyc2lv bnMgcmVxdWlyZSB0aGF0IGJ1ZmZlciBiZSByZXZva2VkIGJlZm9yZSBjbG9zZSAqLworCWlmIChu ZXRfZGV2aWNlLT5udnNwX3ZlcnNpb24gPCBOVlNQX1BST1RPQ09MX1ZFUlNJT05fNCkKKwkJbmV0 dnNjX3RlYXJkb3duX2dwYWRsKGRldmljZSwgbmV0X2RldmljZSk7CisKIAkvKiBOb3csIHdlIGNh biBjbG9zZSB0aGUgY2hhbm5lbCBzYWZlbHkgKi8KIAl2bWJ1c19jbG9zZShkZXZpY2UtPmNoYW5u ZWwpOwogCi0JbmV0dnNjX3RlYXJkb3duX2dwYWRsKGRldmljZSwgbmV0X2RldmljZSk7CisJaWYg KG5ldF9kZXZpY2UtPm52c3BfdmVyc2lvbiA+PSBOVlNQX1BST1RPQ09MX1ZFUlNJT05fNCkKKwkJ bmV0dnNjX3RlYXJkb3duX2dwYWRsKGRldmljZSwgbmV0X2RldmljZSk7CiAKIAkvKiBSZWxlYXNl IGFsbCByZXNvdXJjZXMgKi8KIAlmcmVlX25ldHZzY19kZXZpY2VfcmN1KG5ldF9kZXZpY2UpOwot LSAKMi4xNC4zCgoKRnJvbSAyYmJiZmZjODY5ZGI3N2FlY2RmNzBhYzZkY2YxMTdmMzQ2Y2Y2YTNj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhl bkBuZXR3b3JrcGx1bWJlci5vcmc+CkRhdGU6IE1vbiwgMTQgTWF5IDIwMTggMTU6MzI6MTggLTA3 MDAKU3ViamVjdDogW1BBVENIIDMwLzM0XSBodl9uZXR2c2M6IGNvbW1vbiBkZXRhY2ggbG9naWMK ClsgQ29tbWl0IDdiMmVlNTBjMGNkNTEzYTE3NmEyNmE3MWYyOTg5ZmFjZGQ3NWJmZWEgdXBzdHJl YW0uIF0KCk1ha2UgY29tbW9uIGZ1bmN0aW9uIGZvciBkZXRhY2hpbmcgaW50ZXJuYWxzIG9mIGRl dmljZQpkdXJpbmcgY2hhbmdlcyB0byBNVFUgYW5kIFJTUy4gTWFrZSBzdXJlIG5vIG1vcmUgcGFj a2V0cwphcmUgdHJhbnNtaXR0ZWQgYW5kIGFsbCBwYWNrZXRzIGhhdmUgYmVlbiByZWNlaXZlZCBi ZWZvcmUKZG9pbmcgZGV2aWNlIHRlYXJkb3duLgoKQ2hhbmdlIHRoZSB3YWl0IGxvZ2ljIHRvIGJl IGNvbW1vbiBhbmQgdXNlIHVzbGVlcF9yYW5nZSgpLgoKQ2hhbmdlcyB0cmFuc21pdCBlbmFibGlu ZyBsb2dpYyBzbyB0aGF0IHRyYW5zbWl0IHF1ZXVlcyBhcmUgZGlzYWJsZWQKZHVyaW5nIHRoZSBw ZXJpb2Qgd2hlbiBsb3dlciBkZXZpY2UgaXMgYmVpbmcgY2hhbmdlZC4gQW5kIGVuYWJsZWQKb25s eSBhZnRlciBzdWIgY2hhbm5lbHMgYXJlIHNldHVwLiBUaGlzIGF2b2lkcyBpc3N1ZSB3aGVyZSBp dCBjb3VsZApiZSB0aGF0IGEgcGFja2V0IHdhcyBiZWluZyBzZW50IHdoaWxlIHN1YmNoYW5uZWwg d2FzIG5vdCBpbml0aWFsaXplZC4KCkZpeGVzOiA4MTk1YjEzOTZlYzggKCJodl9uZXR2c2M6IGZp eCBkZWFkbG9jayBvbiBob3RwbHVnIikKU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBIZW1taW5nZXIg PHN0aGVtbWluQG1pY3Jvc29mdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2X25ldC5o ICAgfCAgIDEgLQogZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jICAgICAgIHwgIDE5ICstLQog ZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYyAgIHwgMjc4ICsrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMg fCAgMTUgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTczIGluc2VydGlvbnMoKyksIDE0MCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2X25ldC5oIGIvZHJp dmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaAppbmRleCBmZDUxYTMyOWUzNmUuLjAxMDE3ZGQ4 ODgwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaAorKysgYi9k cml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2X25ldC5oCkBAIC0yMDgsNyArMjA4LDYgQEAgdm9pZCBu ZXR2c2NfY2hhbm5lbF9jYih2b2lkICpjb250ZXh0KTsKIGludCBuZXR2c2NfcG9sbChzdHJ1Y3Qg bmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpOwogCiB2b2lkIHJuZGlzX3NldF9zdWJjaGFu bmVsKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7Ci1ib29sIHJuZGlzX2ZpbHRlcl9vcGVuZWQoY29u c3Qgc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2KTsKIGludCBybmRpc19maWx0ZXJfb3Blbihz dHJ1Y3QgbmV0dnNjX2RldmljZSAqbnZkZXYpOwogaW50IHJuZGlzX2ZpbHRlcl9jbG9zZShzdHJ1 Y3QgbmV0dnNjX2RldmljZSAqbnZkZXYpOwogc3RydWN0IG5ldHZzY19kZXZpY2UgKnJuZGlzX2Zp bHRlcl9kZXZpY2VfYWRkKHN0cnVjdCBodl9kZXZpY2UgKmRldiwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2h5cGVydi9uZXR2c2MuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYwppbmRl eCAzZjNjNjQ4OWFkZTIuLjBjNTQ4NzQ4ZmJhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaHlw ZXJ2L25ldHZzYy5jCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYwpAQCAtNTU0LDgg KzU1NCw2IEBAIHZvaWQgbmV0dnNjX2RldmljZV9yZW1vdmUoc3RydWN0IGh2X2RldmljZSAqZGV2 aWNlKQogCQk9IHJ0bmxfZGVyZWZlcmVuY2UobmV0X2RldmljZV9jdHgtPm52ZGV2KTsKIAlpbnQg aTsKIAotCWNhbmNlbF93b3JrX3N5bmMoJm5ldF9kZXZpY2UtPnN1YmNoYW5fd29yayk7Ci0KIAlu ZXR2c2NfcmV2b2tlX2J1ZihkZXZpY2UsIG5ldF9kZXZpY2UpOwogCiAJUkNVX0lOSVRfUE9JTlRF UihuZXRfZGV2aWNlX2N0eC0+bnZkZXYsIE5VTEwpOwpAQCAtNjQ0LDEzICs2NDIsMTggQEAgc3Rh dGljIHZvaWQgbmV0dnNjX3NlbmRfdHhfY29tcGxldGUoc3RydWN0IG5ldHZzY19kZXZpY2UgKm5l dF9kZXZpY2UsCiAJcXVldWVfc2VuZHMgPQogCQlhdG9taWNfZGVjX3JldHVybigmbmV0X2Rldmlj ZS0+Y2hhbl90YWJsZVtxX2lkeF0ucXVldWVfc2VuZHMpOwogCi0JaWYgKG5ldF9kZXZpY2UtPmRl c3Ryb3kgJiYgcXVldWVfc2VuZHMgPT0gMCkKLQkJd2FrZV91cCgmbmV0X2RldmljZS0+d2FpdF9k cmFpbik7CisJaWYgKHVubGlrZWx5KG5ldF9kZXZpY2UtPmRlc3Ryb3kpKSB7CisJCWlmIChxdWV1 ZV9zZW5kcyA9PSAwKQorCQkJd2FrZV91cCgmbmV0X2RldmljZS0+d2FpdF9kcmFpbik7CisJfSBl bHNlIHsKKwkJc3RydWN0IG5ldGRldl9xdWV1ZSAqdHhxID0gbmV0ZGV2X2dldF90eF9xdWV1ZShu ZGV2LCBxX2lkeCk7CiAKLQlpZiAobmV0aWZfdHhfcXVldWVfc3RvcHBlZChuZXRkZXZfZ2V0X3R4 X3F1ZXVlKG5kZXYsIHFfaWR4KSkgJiYKLQkgICAgKGh2X3JpbmdidWZfYXZhaWxfcGVyY2VudCgm Y2hhbm5lbC0+b3V0Ym91bmQpID4gUklOR19BVkFJTF9QRVJDRU5UX0hJV0FURVIgfHwKLQkgICAg IHF1ZXVlX3NlbmRzIDwgMSkpCi0JCW5ldGlmX3R4X3dha2VfcXVldWUobmV0ZGV2X2dldF90eF9x dWV1ZShuZGV2LCBxX2lkeCkpOworCQlpZiAobmV0aWZfdHhfcXVldWVfc3RvcHBlZCh0eHEpICYm CisJCSAgICAoaHZfcmluZ2J1Zl9hdmFpbF9wZXJjZW50KCZjaGFubmVsLT5vdXRib3VuZCkgPiBS SU5HX0FWQUlMX1BFUkNFTlRfSElXQVRFUiB8fAorCQkgICAgIHF1ZXVlX3NlbmRzIDwgMSkpIHsK KwkJCW5ldGlmX3R4X3dha2VfcXVldWUodHhxKTsKKwkJfQorCX0KIH0KIAogc3RhdGljIHZvaWQg bmV0dnNjX3NlbmRfY29tcGxldGlvbihzdHJ1Y3QgbmV0dnNjX2RldmljZSAqbmV0X2RldmljZSwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgYi9kcml2ZXJzL25l dC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IDY3ZjM3NzQ0ZWViZS4uMTFiNDZjOGQyZDY3IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCisrKyBiL2RyaXZlcnMv bmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTQ1LDcgKzQ1LDEwIEBACiAKICNpbmNsdWRlICJo eXBlcnZfbmV0LmgiCiAKLSNkZWZpbmUgUklOR19TSVpFX01JTgkJNjQKKyNkZWZpbmUgUklOR19T SVpFX01JTgk2NAorI2RlZmluZSBSRVRSWV9VU19MTwk1MDAwCisjZGVmaW5lIFJFVFJZX1VTX0hJ CTEwMDAwCisjZGVmaW5lIFJFVFJZX01BWAkyMDAwCS8qID4xMCBzZWMgKi8KIAogI2RlZmluZSBM SU5LQ0hBTkdFX0lOVCAoMiAqIEhaKQogI2RlZmluZSBWRl9UQUtFT1ZFUl9JTlQgKEhaIC8gMTAp CkBAIC04OSwxMCArOTIsOCBAQCBzdGF0aWMgaW50IG5ldHZzY19vcGVuKHN0cnVjdCBuZXRfZGV2 aWNlICpuZXQpCiAJfQogCiAJcmRldiA9IG52ZGV2LT5leHRlbnNpb247Ci0JaWYgKCFyZGV2LT5s aW5rX3N0YXRlKSB7CisJaWYgKCFyZGV2LT5saW5rX3N0YXRlKQogCQluZXRpZl9jYXJyaWVyX29u KG5ldCk7Ci0JCW5ldGlmX3R4X3dha2VfYWxsX3F1ZXVlcyhuZXQpOwotCX0KIAogCWlmICh2Zl9u ZXRkZXYpIHsKIAkJLyogU2V0dGluZyBzeW50aGV0aWMgZGV2aWNlIHVwIHRyYW5zcGFyZW50bHkg c2V0cwpAQCAtMTA4LDM2ICsxMDksMjUgQEAgc3RhdGljIGludCBuZXR2c2Nfb3BlbihzdHJ1Y3Qg bmV0X2RldmljZSAqbmV0KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG5ldHZzY19jbG9z ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0KQorc3RhdGljIGludCBuZXR2c2Nfd2FpdF91bnRpbF9l bXB0eShzdHJ1Y3QgbmV0dnNjX2RldmljZSAqbnZkZXYpCiB7Ci0Jc3RydWN0IG5ldF9kZXZpY2Vf Y29udGV4dCAqbmV0X2RldmljZV9jdHggPSBuZXRkZXZfcHJpdihuZXQpOwotCXN0cnVjdCBuZXRf ZGV2aWNlICp2Zl9uZXRkZXYKLQkJPSBydG5sX2RlcmVmZXJlbmNlKG5ldF9kZXZpY2VfY3R4LT52 Zl9uZXRkZXYpOwotCXN0cnVjdCBuZXR2c2NfZGV2aWNlICpudmRldiA9IHJ0bmxfZGVyZWZlcmVu Y2UobmV0X2RldmljZV9jdHgtPm52ZGV2KTsKLQlpbnQgcmV0ID0gMDsKLQl1MzIgYXJlYWQsIGks IG1zZWMgPSAxMCwgcmV0cnkgPSAwLCByZXRyeV9tYXggPSAyMDsKLQlzdHJ1Y3Qgdm1idXNfY2hh bm5lbCAqY2huOwotCi0JbmV0aWZfdHhfZGlzYWJsZShuZXQpOwotCi0JLyogTm8gbmVlZCB0byBj bG9zZSBybmRpcyBmaWx0ZXIgaWYgaXQgaXMgcmVtb3ZlZCBhbHJlYWR5ICovCi0JaWYgKCFudmRl dikKLQkJZ290byBvdXQ7Ci0KLQlyZXQgPSBybmRpc19maWx0ZXJfY2xvc2UobnZkZXYpOwotCWlm IChyZXQgIT0gMCkgewotCQluZXRkZXZfZXJyKG5ldCwgInVuYWJsZSB0byBjbG9zZSBkZXZpY2Ug KHJldCAlZCkuXG4iLCByZXQpOwotCQlyZXR1cm4gcmV0OwotCX0KKwl1bnNpZ25lZCBpbnQgcmV0 cnkgPSAwOworCWludCBpOwogCiAJLyogRW5zdXJlIHBlbmRpbmcgYnl0ZXMgaW4gcmluZyBhcmUg cmVhZCAqLwotCXdoaWxlICh0cnVlKSB7Ci0JCWFyZWFkID0gMDsKKwlmb3IgKDs7KSB7CisJCXUz MiBhcmVhZCA9IDA7CisKIAkJZm9yIChpID0gMDsgaSA8IG52ZGV2LT5udW1fY2huOyBpKyspIHsK LQkJCWNobiA9IG52ZGV2LT5jaGFuX3RhYmxlW2ldLmNoYW5uZWw7CisJCQlzdHJ1Y3Qgdm1idXNf Y2hhbm5lbCAqY2huCisJCQkJPSBudmRldi0+Y2hhbl90YWJsZVtpXS5jaGFubmVsOworCiAJCQlp ZiAoIWNobikKIAkJCQljb250aW51ZTsKIAorCQkJLyogbWFrZSBzdXJlIHJlY2VpdmUgbm90IHJ1 bm5pbmcgbm93ICovCisJCQluYXBpX3N5bmNocm9uaXplKCZudmRldi0+Y2hhbl90YWJsZVtpXS5u YXBpKTsKKwogCQkJYXJlYWQgPSBodl9nZXRfYnl0ZXNfdG9fcmVhZCgmY2huLT5pbmJvdW5kKTsK IAkJCWlmIChhcmVhZCkKIAkJCQlicmVhazsKQEAgLTE0NywyMiArMTM3LDQwIEBAIHN0YXRpYyBp bnQgbmV0dnNjX2Nsb3NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXQpCiAJCQkJYnJlYWs7CiAJCX0K IAotCQlyZXRyeSsrOwotCQlpZiAocmV0cnkgPiByZXRyeV9tYXggfHwgYXJlYWQgPT0gMCkKLQkJ CWJyZWFrOworCQlpZiAoYXJlYWQgPT0gMCkKKwkJCXJldHVybiAwOwogCi0JCW1zbGVlcChtc2Vj KTsKKwkJaWYgKCsrcmV0cnkgPiBSRVRSWV9NQVgpCisJCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAot CQlpZiAobXNlYyA8IDEwMDApCi0JCQltc2VjICo9IDI7CisJCXVzbGVlcF9yYW5nZShSRVRSWV9V U19MTywgUkVUUllfVVNfSEkpOwogCX0KK30KIAotCWlmIChhcmVhZCkgewotCQluZXRkZXZfZXJy KG5ldCwgIlJpbmcgYnVmZmVyIG5vdCBlbXB0eSBhZnRlciBjbG9zaW5nIHJuZGlzXG4iKTsKLQkJ cmV0ID0gLUVUSU1FRE9VVDsKK3N0YXRpYyBpbnQgbmV0dnNjX2Nsb3NlKHN0cnVjdCBuZXRfZGV2 aWNlICpuZXQpCit7CisJc3RydWN0IG5ldF9kZXZpY2VfY29udGV4dCAqbmV0X2RldmljZV9jdHgg PSBuZXRkZXZfcHJpdihuZXQpOworCXN0cnVjdCBuZXRfZGV2aWNlICp2Zl9uZXRkZXYKKwkJPSBy dG5sX2RlcmVmZXJlbmNlKG5ldF9kZXZpY2VfY3R4LT52Zl9uZXRkZXYpOworCXN0cnVjdCBuZXR2 c2NfZGV2aWNlICpudmRldiA9IHJ0bmxfZGVyZWZlcmVuY2UobmV0X2RldmljZV9jdHgtPm52ZGV2 KTsKKwlpbnQgcmV0OworCisJbmV0aWZfdHhfZGlzYWJsZShuZXQpOworCisJLyogTm8gbmVlZCB0 byBjbG9zZSBybmRpcyBmaWx0ZXIgaWYgaXQgaXMgcmVtb3ZlZCBhbHJlYWR5ICovCisJaWYgKCFu dmRldikKKwkJcmV0dXJuIDA7CisKKwlyZXQgPSBybmRpc19maWx0ZXJfY2xvc2UobnZkZXYpOwor CWlmIChyZXQgIT0gMCkgeworCQluZXRkZXZfZXJyKG5ldCwgInVuYWJsZSB0byBjbG9zZSBkZXZp Y2UgKHJldCAlZCkuXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OwogCX0KIAotb3V0OgorCXJldCA9 IG5ldHZzY193YWl0X3VudGlsX2VtcHR5KG52ZGV2KTsKKwlpZiAocmV0KQorCQluZXRkZXZfZXJy KG5ldCwgIlJpbmcgYnVmZmVyIG5vdCBlbXB0eSBhZnRlciBjbG9zaW5nIHJuZGlzXG4iKTsKKwog CWlmICh2Zl9uZXRkZXYpCiAJCWRldl9jbG9zZSh2Zl9uZXRkZXYpOwogCkBAIC04MjAsMTYgKzgy OCw4MSBAQCBzdGF0aWMgdm9pZCBuZXR2c2NfZ2V0X2NoYW5uZWxzKHN0cnVjdCBuZXRfZGV2aWNl ICpuZXQsCiAJfQogfQogCitzdGF0aWMgaW50IG5ldHZzY19kZXRhY2goc3RydWN0IG5ldF9kZXZp Y2UgKm5kZXYsCisJCQkgc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2KQoreworCXN0cnVjdCBu ZXRfZGV2aWNlX2NvbnRleHQgKm5kZXZfY3R4ID0gbmV0ZGV2X3ByaXYobmRldik7CisJc3RydWN0 IGh2X2RldmljZSAqaGRldiA9IG5kZXZfY3R4LT5kZXZpY2VfY3R4OworCWludCByZXQ7CisKKwkv KiBEb24ndCB0cnkgY29udGludWluZyB0byB0cnkgYW5kIHNldHVwIHN1YiBjaGFubmVscyAqLwor CWlmIChjYW5jZWxfd29ya19zeW5jKCZudmRldi0+c3ViY2hhbl93b3JrKSkKKwkJbnZkZXYtPm51 bV9jaG4gPSAxOworCisJLyogSWYgZGV2aWNlIHdhcyB1cCAocmVjZWl2aW5nKSB0aGVuIHNodXRk b3duICovCisJaWYgKG5ldGlmX3J1bm5pbmcobmRldikpIHsKKwkJbmV0aWZfdHhfZGlzYWJsZShu ZGV2KTsKKworCQlyZXQgPSBybmRpc19maWx0ZXJfY2xvc2UobnZkZXYpOworCQlpZiAocmV0KSB7 CisJCQluZXRkZXZfZXJyKG5kZXYsCisJCQkJICAgInVuYWJsZSB0byBjbG9zZSBkZXZpY2UgKHJl dCAlZCkuXG4iLCByZXQpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCXJldCA9IG5ldHZzY193 YWl0X3VudGlsX2VtcHR5KG52ZGV2KTsKKwkJaWYgKHJldCkgeworCQkJbmV0ZGV2X2VycihuZGV2 LAorCQkJCSAgICJSaW5nIGJ1ZmZlciBub3QgZW1wdHkgYWZ0ZXIgY2xvc2luZyBybmRpc1xuIik7 CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCisJbmV0aWZfZGV2aWNlX2RldGFjaChuZGV2KTsK KworCXJuZGlzX2ZpbHRlcl9kZXZpY2VfcmVtb3ZlKGhkZXYsIG52ZGV2KTsKKworCXJldHVybiAw OworfQorCitzdGF0aWMgaW50IG5ldHZzY19hdHRhY2goc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYs CisJCQkgc3RydWN0IG5ldHZzY19kZXZpY2VfaW5mbyAqZGV2X2luZm8pCit7CisJc3RydWN0IG5l dF9kZXZpY2VfY29udGV4dCAqbmRldl9jdHggPSBuZXRkZXZfcHJpdihuZGV2KTsKKwlzdHJ1Y3Qg aHZfZGV2aWNlICpoZGV2ID0gbmRldl9jdHgtPmRldmljZV9jdHg7CisJc3RydWN0IG5ldHZzY19k ZXZpY2UgKm52ZGV2OworCXN0cnVjdCBybmRpc19kZXZpY2UgKnJkZXY7CisJaW50IHJldDsKKwor CW52ZGV2ID0gcm5kaXNfZmlsdGVyX2RldmljZV9hZGQoaGRldiwgZGV2X2luZm8pOworCWlmIChJ U19FUlIobnZkZXYpKQorCQlyZXR1cm4gUFRSX0VSUihudmRldik7CisKKwkvKiBOb3RlOiBlbmFi bGUgYW5kIGF0dGFjaCBoYXBwZW4gd2hlbiBzdWItY2hhbm5lbHMgc2V0dXAgKi8KKworCW5ldGlm X2NhcnJpZXJfb2ZmKG5kZXYpOworCisJaWYgKG5ldGlmX3J1bm5pbmcobmRldikpIHsKKwkJcmV0 ID0gcm5kaXNfZmlsdGVyX29wZW4obnZkZXYpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsK KworCQlyZGV2ID0gbnZkZXYtPmV4dGVuc2lvbjsKKwkJaWYgKCFyZGV2LT5saW5rX3N0YXRlKQor CQkJbmV0aWZfY2Fycmllcl9vbihuZGV2KTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGlj IGludCBuZXR2c2Nfc2V0X2NoYW5uZWxzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXQsCiAJCQkgICAg ICAgc3RydWN0IGV0aHRvb2xfY2hhbm5lbHMgKmNoYW5uZWxzKQogewogCXN0cnVjdCBuZXRfZGV2 aWNlX2NvbnRleHQgKm5ldF9kZXZpY2VfY3R4ID0gbmV0ZGV2X3ByaXYobmV0KTsKLQlzdHJ1Y3Qg aHZfZGV2aWNlICpkZXYgPSBuZXRfZGV2aWNlX2N0eC0+ZGV2aWNlX2N0eDsKIAlzdHJ1Y3QgbmV0 dnNjX2RldmljZSAqbnZkZXYgPSBydG5sX2RlcmVmZXJlbmNlKG5ldF9kZXZpY2VfY3R4LT5udmRl dik7CiAJdW5zaWduZWQgaW50IG9yaWcsIGNvdW50ID0gY2hhbm5lbHMtPmNvbWJpbmVkX2NvdW50 OwogCXN0cnVjdCBuZXR2c2NfZGV2aWNlX2luZm8gZGV2aWNlX2luZm87Ci0JYm9vbCB3YXNfb3Bl bmVkOwotCWludCByZXQgPSAwOworCWludCByZXQ7CiAKIAkvKiBXZSBkbyBub3Qgc3VwcG9ydCBz ZXBhcmF0ZSBjb3VudCBmb3IgcngsIHR4LCBvciBvdGhlciAqLwogCWlmIChjb3VudCA9PSAwIHx8 CkBAIC04NDYsOSArOTE5LDYgQEAgc3RhdGljIGludCBuZXR2c2Nfc2V0X2NoYW5uZWxzKHN0cnVj dCBuZXRfZGV2aWNlICpuZXQsCiAJCXJldHVybiAtRUlOVkFMOwogCiAJb3JpZyA9IG52ZGV2LT5u dW1fY2huOwotCXdhc19vcGVuZWQgPSBybmRpc19maWx0ZXJfb3BlbmVkKG52ZGV2KTsKLQlpZiAo d2FzX29wZW5lZCkKLQkJcm5kaXNfZmlsdGVyX2Nsb3NlKG52ZGV2KTsKIAogCW1lbXNldCgmZGV2 aWNlX2luZm8sIDAsIHNpemVvZihkZXZpY2VfaW5mbykpOwogCWRldmljZV9pbmZvLm51bV9jaG4g PSBjb3VudDsKQEAgLTg1OCwyOCArOTI4LDE3IEBAIHN0YXRpYyBpbnQgbmV0dnNjX3NldF9jaGFu bmVscyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0LAogCWRldmljZV9pbmZvLnJlY3Zfc2VjdGlvbnMg PSBudmRldi0+cmVjdl9zZWN0aW9uX2NudDsKIAlkZXZpY2VfaW5mby5yZWN2X3NlY3Rpb25fc2l6 ZSA9IG52ZGV2LT5yZWN2X3NlY3Rpb25fc2l6ZTsKIAotCXJuZGlzX2ZpbHRlcl9kZXZpY2VfcmVt b3ZlKGRldiwgbnZkZXYpOworCXJldCA9IG5ldHZzY19kZXRhY2gobmV0LCBudmRldik7CisJaWYg KHJldCkKKwkJcmV0dXJuIHJldDsKIAotCW52ZGV2ID0gcm5kaXNfZmlsdGVyX2RldmljZV9hZGQo ZGV2LCAmZGV2aWNlX2luZm8pOwotCWlmIChJU19FUlIobnZkZXYpKSB7Ci0JCXJldCA9IFBUUl9F UlIobnZkZXYpOworCXJldCA9IG5ldHZzY19hdHRhY2gobmV0LCAmZGV2aWNlX2luZm8pOworCWlm IChyZXQpIHsKIAkJZGV2aWNlX2luZm8ubnVtX2NobiA9IG9yaWc7Ci0JCW52ZGV2ID0gcm5kaXNf ZmlsdGVyX2RldmljZV9hZGQoZGV2LCAmZGV2aWNlX2luZm8pOwotCi0JCWlmIChJU19FUlIobnZk ZXYpKSB7Ci0JCQluZXRkZXZfZXJyKG5ldCwgInJlc3RvcmluZyBjaGFubmVsIHNldHRpbmcgZmFp bGVkOiAlbGRcbiIsCi0JCQkJICAgUFRSX0VSUihudmRldikpOwotCQkJcmV0dXJuIHJldDsKLQkJ fQorCQlpZiAobmV0dnNjX2F0dGFjaChuZXQsICZkZXZpY2VfaW5mbykpCisJCQluZXRkZXZfZXJy KG5ldCwgInJlc3RvcmluZyBjaGFubmVsIHNldHRpbmcgZmFpbGVkXG4iKTsKIAl9CiAKLQlpZiAo d2FzX29wZW5lZCkKLQkJcm5kaXNfZmlsdGVyX29wZW4obnZkZXYpOwotCi0JLyogV2UgbWF5IGhh dmUgbWlzc2VkIGxpbmsgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKi8KLQluZXRfZGV2aWNlX2N0eC0+ bGFzdF9yZWNvbmZpZyA9IDA7Ci0Jc2NoZWR1bGVfZGVsYXllZF93b3JrKCZuZXRfZGV2aWNlX2N0 eC0+ZHdvcmssIDApOwotCiAJcmV0dXJuIHJldDsKIH0KIApAQCAtOTQ2LDEwICsxMDA1LDggQEAg c3RhdGljIGludCBuZXR2c2NfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgaW50 IG10dSkKIAlzdHJ1Y3QgbmV0X2RldmljZV9jb250ZXh0ICpuZGV2Y3R4ID0gbmV0ZGV2X3ByaXYo bmRldik7CiAJc3RydWN0IG5ldF9kZXZpY2UgKnZmX25ldGRldiA9IHJ0bmxfZGVyZWZlcmVuY2Uo bmRldmN0eC0+dmZfbmV0ZGV2KTsKIAlzdHJ1Y3QgbmV0dnNjX2RldmljZSAqbnZkZXYgPSBydG5s X2RlcmVmZXJlbmNlKG5kZXZjdHgtPm52ZGV2KTsKLQlzdHJ1Y3QgaHZfZGV2aWNlICpoZGV2ID0g bmRldmN0eC0+ZGV2aWNlX2N0eDsKIAlpbnQgb3JpZ19tdHUgPSBuZGV2LT5tdHU7CiAJc3RydWN0 IG5ldHZzY19kZXZpY2VfaW5mbyBkZXZpY2VfaW5mbzsKLQlib29sIHdhc19vcGVuZWQ7CiAJaW50 IHJldCA9IDA7CiAKIAlpZiAoIW52ZGV2IHx8IG52ZGV2LT5kZXN0cm95KQpAQCAtOTYyLDExICsx MDE5LDYgQEAgc3RhdGljIGludCBuZXR2c2NfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAq bmRldiwgaW50IG10dSkKIAkJCXJldHVybiByZXQ7CiAJfQogCi0JbmV0aWZfZGV2aWNlX2RldGFj aChuZGV2KTsKLQl3YXNfb3BlbmVkID0gcm5kaXNfZmlsdGVyX29wZW5lZChudmRldik7Ci0JaWYg KHdhc19vcGVuZWQpCi0JCXJuZGlzX2ZpbHRlcl9jbG9zZShudmRldik7Ci0KIAltZW1zZXQoJmRl dmljZV9pbmZvLCAwLCBzaXplb2YoZGV2aWNlX2luZm8pKTsKIAlkZXZpY2VfaW5mby5yaW5nX3Np emUgPSByaW5nX3NpemU7CiAJZGV2aWNlX2luZm8ubnVtX2NobiA9IG52ZGV2LT5udW1fY2huOwpA QCAtOTc1LDM1ICsxMDI3LDI3IEBAIHN0YXRpYyBpbnQgbmV0dnNjX2NoYW5nZV9tdHUoc3RydWN0 IG5ldF9kZXZpY2UgKm5kZXYsIGludCBtdHUpCiAJZGV2aWNlX2luZm8ucmVjdl9zZWN0aW9ucyA9 IG52ZGV2LT5yZWN2X3NlY3Rpb25fY250OwogCWRldmljZV9pbmZvLnJlY3Zfc2VjdGlvbl9zaXpl ID0gbnZkZXYtPnJlY3Zfc2VjdGlvbl9zaXplOwogCi0Jcm5kaXNfZmlsdGVyX2RldmljZV9yZW1v dmUoaGRldiwgbnZkZXYpOworCXJldCA9IG5ldHZzY19kZXRhY2gobmRldiwgbnZkZXYpOworCWlm IChyZXQpCisJCWdvdG8gcm9sbGJhY2tfdmY7CiAKIAluZGV2LT5tdHUgPSBtdHU7CiAKLQludmRl diA9IHJuZGlzX2ZpbHRlcl9kZXZpY2VfYWRkKGhkZXYsICZkZXZpY2VfaW5mbyk7Ci0JaWYgKElT X0VSUihudmRldikpIHsKLQkJcmV0ID0gUFRSX0VSUihudmRldik7Ci0KLQkJLyogQXR0ZW1wdCBy b2xsYmFjayB0byBvcmlnaW5hbCBNVFUgKi8KLQkJbmRldi0+bXR1ID0gb3JpZ19tdHU7Ci0JCW52 ZGV2ID0gcm5kaXNfZmlsdGVyX2RldmljZV9hZGQoaGRldiwgJmRldmljZV9pbmZvKTsKLQotCQlp ZiAodmZfbmV0ZGV2KQotCQkJZGV2X3NldF9tdHUodmZfbmV0ZGV2LCBvcmlnX210dSk7Ci0KLQkJ aWYgKElTX0VSUihudmRldikpIHsKLQkJCW5ldGRldl9lcnIobmRldiwgInJlc3RvcmluZyBtdHUg ZmFpbGVkOiAlbGRcbiIsCi0JCQkJICAgUFRSX0VSUihudmRldikpOwotCQkJcmV0dXJuIHJldDsK LQkJfQotCX0KKwlyZXQgPSBuZXR2c2NfYXR0YWNoKG5kZXYsICZkZXZpY2VfaW5mbyk7CisJaWYg KHJldCkKKwkJZ290byByb2xsYmFjazsKIAotCWlmICh3YXNfb3BlbmVkKQotCQlybmRpc19maWx0 ZXJfb3BlbihudmRldik7CisJcmV0dXJuIDA7CiAKLQluZXRpZl9kZXZpY2VfYXR0YWNoKG5kZXYp Oworcm9sbGJhY2s6CisJLyogQXR0ZW1wdCByb2xsYmFjayB0byBvcmlnaW5hbCBNVFUgKi8KKwlu ZGV2LT5tdHUgPSBvcmlnX210dTsKIAotCS8qIFdlIG1heSBoYXZlIG1pc3NlZCBsaW5rIGNoYW5n ZSBub3RpZmljYXRpb25zICovCi0Jc2NoZWR1bGVfZGVsYXllZF93b3JrKCZuZGV2Y3R4LT5kd29y aywgMCk7CisJaWYgKG5ldHZzY19hdHRhY2gobmRldiwgJmRldmljZV9pbmZvKSkKKwkJbmV0ZGV2 X2VycihuZGV2LCAicmVzdG9yaW5nIG10dSBmYWlsZWRcbiIpOworcm9sbGJhY2tfdmY6CisJaWYg KHZmX25ldGRldikKKwkJZGV2X3NldF9tdHUodmZfbmV0ZGV2LCBvcmlnX210dSk7CiAKIAlyZXR1 cm4gcmV0OwogfQpAQCAtMTQ2OSwxMSArMTUxMyw5IEBAIHN0YXRpYyBpbnQgbmV0dnNjX3NldF9y aW5ncGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsCiB7CiAJc3RydWN0IG5ldF9kZXZpY2Vf Y29udGV4dCAqbmRldmN0eCA9IG5ldGRldl9wcml2KG5kZXYpOwogCXN0cnVjdCBuZXR2c2NfZGV2 aWNlICpudmRldiA9IHJ0bmxfZGVyZWZlcmVuY2UobmRldmN0eC0+bnZkZXYpOwotCXN0cnVjdCBo dl9kZXZpY2UgKmhkZXYgPSBuZGV2Y3R4LT5kZXZpY2VfY3R4OwogCXN0cnVjdCBuZXR2c2NfZGV2 aWNlX2luZm8gZGV2aWNlX2luZm87CiAJc3RydWN0IGV0aHRvb2xfcmluZ3BhcmFtIG9yaWc7CiAJ dTMyIG5ld190eCwgbmV3X3J4OwotCWJvb2wgd2FzX29wZW5lZDsKIAlpbnQgcmV0ID0gMDsKIAog CWlmICghbnZkZXYgfHwgbnZkZXYtPmRlc3Ryb3kpCkBAIC0xNDk5LDM0ICsxNTQxLDE4IEBAIHN0 YXRpYyBpbnQgbmV0dnNjX3NldF9yaW5ncGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsCiAJ ZGV2aWNlX2luZm8ucmVjdl9zZWN0aW9ucyA9IG5ld19yeDsKIAlkZXZpY2VfaW5mby5yZWN2X3Nl Y3Rpb25fc2l6ZSA9IG52ZGV2LT5yZWN2X3NlY3Rpb25fc2l6ZTsKIAotCW5ldGlmX2RldmljZV9k ZXRhY2gobmRldik7Ci0Jd2FzX29wZW5lZCA9IHJuZGlzX2ZpbHRlcl9vcGVuZWQobnZkZXYpOwot CWlmICh3YXNfb3BlbmVkKQotCQlybmRpc19maWx0ZXJfY2xvc2UobnZkZXYpOwotCi0Jcm5kaXNf ZmlsdGVyX2RldmljZV9yZW1vdmUoaGRldiwgbnZkZXYpOwotCi0JbnZkZXYgPSBybmRpc19maWx0 ZXJfZGV2aWNlX2FkZChoZGV2LCAmZGV2aWNlX2luZm8pOwotCWlmIChJU19FUlIobnZkZXYpKSB7 Ci0JCXJldCA9IFBUUl9FUlIobnZkZXYpOworCXJldCA9IG5ldHZzY19kZXRhY2gobmRldiwgbnZk ZXYpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKKwlyZXQgPSBuZXR2c2NfYXR0YWNoKG5k ZXYsICZkZXZpY2VfaW5mbyk7CisJaWYgKHJldCkgewogCQlkZXZpY2VfaW5mby5zZW5kX3NlY3Rp b25zID0gb3JpZy50eF9wZW5kaW5nOwogCQlkZXZpY2VfaW5mby5yZWN2X3NlY3Rpb25zID0gb3Jp Zy5yeF9wZW5kaW5nOwotCQludmRldiA9IHJuZGlzX2ZpbHRlcl9kZXZpY2VfYWRkKGhkZXYsICZk ZXZpY2VfaW5mbyk7Ci0JCWlmIChJU19FUlIobnZkZXYpKSB7Ci0JCQluZXRkZXZfZXJyKG5kZXYs ICJyZXN0b3JpbmcgcmluZ3BhcmFtIGZhaWxlZDogJWxkXG4iLAotCQkJCSAgIFBUUl9FUlIobnZk ZXYpKTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQl9Ci0KLQlpZiAod2FzX29wZW5lZCkKLQkJcm5k aXNfZmlsdGVyX29wZW4obnZkZXYpOwotCW5ldGlmX2RldmljZV9hdHRhY2gobmRldik7CiAKLQkv KiBXZSBtYXkgaGF2ZSBtaXNzZWQgbGluayBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAqLwotCW5kZXZj dHgtPmxhc3RfcmVjb25maWcgPSAwOwotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmbmRldmN0eC0+ ZHdvcmssIDApOworCQlpZiAobmV0dnNjX2F0dGFjaChuZGV2LCAmZGV2aWNlX2luZm8pKQorCQkJ bmV0ZGV2X2VycihuZGV2LCAicmVzdG9yaW5nIHJpbmdwYXJhbSBmYWlsZWQiKTsKKwl9CiAKIAly ZXR1cm4gcmV0OwogfQpAQCAtMjAwMyw4ICsyMDI5LDggQEAgc3RhdGljIGludCBuZXR2c2NfcHJv YmUoc3RydWN0IGh2X2RldmljZSAqZGV2LAogc3RhdGljIGludCBuZXR2c2NfcmVtb3ZlKHN0cnVj dCBodl9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgbmV0X2RldmljZV9jb250ZXh0ICpuZGV2X2N0 eDsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqdmZfbmV0ZGV2OwotCXN0cnVjdCBuZXRfZGV2aWNlICpu ZXQ7CisJc3RydWN0IG5ldF9kZXZpY2UgKnZmX25ldGRldiwgKm5ldDsKKwlzdHJ1Y3QgbmV0dnNj X2RldmljZSAqbnZkZXY7CiAKIAluZXQgPSBodl9nZXRfZHJ2ZGF0YShkZXYpOwogCWlmIChuZXQg PT0gTlVMTCkgewpAQCAtMjAxNCwxMCArMjA0MCwxNCBAQCBzdGF0aWMgaW50IG5ldHZzY19yZW1v dmUoc3RydWN0IGh2X2RldmljZSAqZGV2KQogCiAJbmRldl9jdHggPSBuZXRkZXZfcHJpdihuZXQp OwogCi0JbmV0aWZfZGV2aWNlX2RldGFjaChuZXQpOwotCiAJY2FuY2VsX2RlbGF5ZWRfd29ya19z eW5jKCZuZGV2X2N0eC0+ZHdvcmspOwogCisJcmN1X3JlYWRfbG9jaygpOworCW52ZGV2ID0gcmN1 X2RlcmVmZXJlbmNlKG5kZXZfY3R4LT5udmRldik7CisKKwlpZiAgKG52ZGV2KQorCQljYW5jZWxf d29ya19zeW5jKCZudmRldi0+c3ViY2hhbl93b3JrKTsKKwogCS8qCiAJICogQ2FsbCB0byB0aGUg dnNjIGRyaXZlciB0byBsZXQgaXQga25vdyB0aGF0IHRoZSBkZXZpY2UgaXMgYmVpbmcKIAkgKiBy ZW1vdmVkLiBBbHNvIGJsb2NrcyBtdHUgYW5kIGNoYW5uZWwgY2hhbmdlcy4KQEAgLTIwMjcsMTEg KzIwNTcsMTMgQEAgc3RhdGljIGludCBuZXR2c2NfcmVtb3ZlKHN0cnVjdCBodl9kZXZpY2UgKmRl dikKIAlpZiAodmZfbmV0ZGV2KQogCQluZXR2c2NfdW5yZWdpc3Rlcl92Zih2Zl9uZXRkZXYpOwog CisJaWYgKG52ZGV2KQorCQlybmRpc19maWx0ZXJfZGV2aWNlX3JlbW92ZShkZXYsIG52ZGV2KTsK KwogCXVucmVnaXN0ZXJfbmV0ZGV2aWNlKG5ldCk7CiAKLQlybmRpc19maWx0ZXJfZGV2aWNlX3Jl bW92ZShkZXYsCi0JCQkJICAgcnRubF9kZXJlZmVyZW5jZShuZGV2X2N0eC0+bnZkZXYpKTsKIAly dG5sX3VubG9jaygpOworCXJjdV9yZWFkX3VubG9jaygpOwogCiAJaHZfc2V0X2RydmRhdGEoZGV2 LCBOVUxMKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5j IGIvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jCmluZGV4IDA1NjQ5OTAxNGExZi4u M2JmYTU2NTYwMjg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVy LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jCkBAIC0xMTEyLDYgKzEx MTIsNyBAQCB2b2lkIHJuZGlzX3NldF9zdWJjaGFubmVsKHN0cnVjdCB3b3JrX3N0cnVjdCAqdykK IAlmb3IgKGkgPSAwOyBpIDwgVlJTU19TRU5EX1RBQl9TSVpFOyBpKyspCiAJCW5kZXZfY3R4LT50 eF90YWJsZVtpXSA9IGkgJSBudmRldi0+bnVtX2NobjsKIAorCW5ldGlmX2RldmljZV9hdHRhY2go bmRldik7CiAJcnRubF91bmxvY2soKTsKIAlyZXR1cm47CiAKQEAgLTExMjIsNiArMTEyMyw4IEBA IHZvaWQgcm5kaXNfc2V0X3N1YmNoYW5uZWwoc3RydWN0IHdvcmtfc3RydWN0ICp3KQogCiAJbnZk ZXYtPm1heF9jaG4gPSAxOwogCW52ZGV2LT5udW1fY2huID0gMTsKKworCW5ldGlmX2RldmljZV9h dHRhY2gobmRldik7CiB1bmxvY2s6CiAJcnRubF91bmxvY2soKTsKIH0KQEAgLTEzMjQsNiArMTMy NywxMCBAQCBzdHJ1Y3QgbmV0dnNjX2RldmljZSAqcm5kaXNfZmlsdGVyX2RldmljZV9hZGQoc3Ry dWN0IGh2X2RldmljZSAqZGV2LAogCQluZXRfZGV2aWNlLT5udW1fY2huID0gMTsKIAl9CiAKKwkv KiBObyBzdWIgY2hhbm5lbHMsIGRldmljZSBpcyByZWFkeSAqLworCWlmIChuZXRfZGV2aWNlLT5u dW1fY2huID09IDEpCisJCW5ldGlmX2RldmljZV9hdHRhY2gobmV0KTsKKwogCXJldHVybiBuZXRf ZGV2aWNlOwogCiBlcnJfZGV2X3JlbXY6CkBAIC0xMzM2LDkgKzEzNDMsNiBAQCB2b2lkIHJuZGlz X2ZpbHRlcl9kZXZpY2VfcmVtb3ZlKHN0cnVjdCBodl9kZXZpY2UgKmRldiwKIHsKIAlzdHJ1Y3Qg cm5kaXNfZGV2aWNlICpybmRpc19kZXYgPSBuZXRfZGV2LT5leHRlbnNpb247CiAKLQkvKiBEb24n dCB0cnkgYW5kIHNldHVwIHN1YiBjaGFubmVscyBpZiBhYm91dCB0byBoYWx0ICovCi0JY2FuY2Vs X3dvcmtfc3luYygmbmV0X2Rldi0+c3ViY2hhbl93b3JrKTsKLQogCS8qIEhhbHQgYW5kIHJlbGVh c2UgdGhlIHJuZGlzIGRldmljZSAqLwogCXJuZGlzX2ZpbHRlcl9oYWx0X2RldmljZShybmRpc19k ZXYpOwogCkBAIC0xMzY4LDggKzEzNzIsMyBAQCBpbnQgcm5kaXNfZmlsdGVyX2Nsb3NlKHN0cnVj dCBuZXR2c2NfZGV2aWNlICpudmRldikKIAogCXJldHVybiBybmRpc19maWx0ZXJfY2xvc2VfZGV2 aWNlKG52ZGV2LT5leHRlbnNpb24pOwogfQotCi1ib29sIHJuZGlzX2ZpbHRlcl9vcGVuZWQoY29u c3Qgc3RydWN0IG5ldHZzY19kZXZpY2UgKm52ZGV2KQotewotCXJldHVybiBhdG9taWNfcmVhZCgm bnZkZXYtPm9wZW5fY250KSA+IDA7Ci19Ci0tIAoyLjE0LjMKCgpGcm9tIDFmYjQ3NjMxZWNkM2Q4 ZTg4MTFhODUxOWQzODNmMTFlZWE3MjE3NjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IE1vaGFtbWVkIEdhbWFsIDxtZ2FtYWxAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAxNCBNYXkgMjAx OCAxNTozMjoxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzEvMzRdIGh2X25ldHZzYzogVXNlIFdp bmRvd3MgdmVyc2lvbiBpbnN0ZWFkIG9mIE5WU1AgdmVyc2lvbgogb24gR1BBRCB0ZWFyZG93bgoK Y29tbWl0IDJhZmM1ZDYxYTcxOTdkZTI1YTYxZjU0ZWE0ZWNmYjRjYjYyYjFkNDJBIHVwc3RyYW0K CldoZW4gY2hhbmdpbmcgbmV0d29yayBpbnRlcmZhY2Ugc2V0dGluZ3MsIFdpbmRvd3MgZ3Vlc3Rz Cm9sZGVyIHRoYW4gV1MyMDE2IGNhbiBubyBsb25nZXIgc2h1dGRvd24uIFRoaXMgd2FzIGFkZHJl c3NlZApieSBjb21taXQgMGVmNThiMGEwNWMxMiAoImh2X25ldHZzYzogY2hhbmdlIEdQQUQgdGVh cmRvd24gb3JkZXIKb24gb2xkZXIgdmVyc2lvbnMiKSwgaG93ZXZlciB0aGUgaXNzdWUgYWxzbyBv Y2N1cnMgb24gV1MyMDEyCmd1ZXN0cyB0aGF0IHNoYXJlIE5WU1AgcHJvdG9jb2wgdmVyc2lvbnMg d2l0aCBXUzIwMTYgZ3Vlc3RzLgpIZW5jZSB3ZSB1c2UgV2luZG93cyB2ZXJzaW9uIGRpcmVjdGx5 IHRvIGRpZmZlcmVudGlhdGUgdGhlbS4KCkZpeGVzOiAwZWY1OGIwYTA1YzEyICgiaHZfbmV0dnNj OiBjaGFuZ2UgR1BBRCB0ZWFyZG93biBvcmRlciBvbiBvbGRlciB2ZXJzaW9ucyIpClNpZ25lZC1v ZmYtYnk6IE1vaGFtbWVkIEdhbWFsIDxtZ2FtYWxAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2h5 cGVydi9uZXR2c2MuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMg Yi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKaW5kZXggMGM1NDg3NDhmYmE4Li5hYTliN2E5 MTJjMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYworKysgYi9kcml2 ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKQEAgLTU2OSwxMyArNTY5LDEzIEBAIHZvaWQgbmV0dnNj X2RldmljZV9yZW1vdmUoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlKQogCW5ldGRldl9kYmcobmRl diwgIm5ldCBkZXZpY2Ugc2FmZSB0byByZW1vdmVcbiIpOwogCiAJLyogb2xkZXIgdmVyc2lvbnMg cmVxdWlyZSB0aGF0IGJ1ZmZlciBiZSByZXZva2VkIGJlZm9yZSBjbG9zZSAqLwotCWlmIChuZXRf ZGV2aWNlLT5udnNwX3ZlcnNpb24gPCBOVlNQX1BST1RPQ09MX1ZFUlNJT05fNCkKKwlpZiAodm1i dXNfcHJvdG9fdmVyc2lvbiA8IFZFUlNJT05fV0lOMTApCiAJCW5ldHZzY190ZWFyZG93bl9ncGFk bChkZXZpY2UsIG5ldF9kZXZpY2UpOwogCiAJLyogTm93LCB3ZSBjYW4gY2xvc2UgdGhlIGNoYW5u ZWwgc2FmZWx5ICovCiAJdm1idXNfY2xvc2UoZGV2aWNlLT5jaGFubmVsKTsKIAotCWlmIChuZXRf ZGV2aWNlLT5udnNwX3ZlcnNpb24gPj0gTlZTUF9QUk9UT0NPTF9WRVJTSU9OXzQpCisJaWYgKHZt YnVzX3Byb3RvX3ZlcnNpb24gPj0gVkVSU0lPTl9XSU4xMCkKIAkJbmV0dnNjX3RlYXJkb3duX2dw YWRsKGRldmljZSwgbmV0X2RldmljZSk7CiAKIAkvKiBSZWxlYXNlIGFsbCByZXNvdXJjZXMgKi8K LS0gCjIuMTQuMwoKCkZyb20gMmQwNThkZWQ0YjliMDI3MTA0MGQwZmU1YmUwMDg5YTY1Y2I3MmFm MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTW9oYW1tZWQgR2FtYWwgPG1nYW1hbEBy ZWRoYXQuY29tPgpEYXRlOiBNb24sIDE0IE1heSAyMDE4IDE1OjMyOjIwIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAzMi8zNF0gaHZfbmV0dnNjOiBTcGxpdCBuZXR2c2NfcmV2b2tlX2J1ZigpIGFuZAog bmV0dnNjX3RlYXJkb3duX2dwYWRsKCkKClsgQ29tbWl0IDc5OTI4OTRjMzA1ZWFmNTA0ZDAwNTUy OTYzN2ZmODI4M2QwYTg0OWQgdXBzdHJlYW0uIF0KClNwbGl0IGVhY2ggb2YgdGhlIGZ1bmN0aW9u cyBpbnRvIHR3byBmb3IgZWFjaCBvZiBzZW5kL3JlY3YgYnVmZmVycy4KVGhpcyB3aWxsIGJlIG5l ZWRlZCBpbiBvcmRlciB0byBpbXBsZW1lbnQgYSBmaW5lLWdyYWluZWQgbWVzc2FnaW5nCnNlcXVl bmNlIHRvIHRoZSBob3N0IHNvIHRoYXQgd2UgYWNjb21tb2RhdGUgdGhlIHJlcXVpcmVtZW50cyBv ZgpkaWZmZXJlbnQgV2luZG93cyB2ZXJzaW9ucwoKRml4ZXM6IDBlZjU4YjBhMDVjMTIgKCJodl9u ZXR2c2M6IGNoYW5nZSBHUEFEIHRlYXJkb3duIG9yZGVyIG9uIG9sZGVyIHZlcnNpb25zIikKU2ln bmVkLW9mZi1ieTogTW9oYW1tZWQgR2FtYWwgPG1nYW1hbEByZWRoYXQuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvaHlwZXJ2L25ldHZzYy5jIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jIGIvZHJpdmVy cy9uZXQvaHlwZXJ2L25ldHZzYy5jCmluZGV4IGFhOWI3YTkxMmMzMS4uMjVmY2JhNTA2YWM1IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjLmMKKysrIGIvZHJpdmVycy9uZXQv aHlwZXJ2L25ldHZzYy5jCkBAIC0xMDUsMTEgKzEwNSwxMSBAQCBzdGF0aWMgdm9pZCBmcmVlX25l dHZzY19kZXZpY2VfcmN1KHN0cnVjdCBuZXR2c2NfZGV2aWNlICpudmRldikKIAljYWxsX3JjdSgm bnZkZXYtPnJjdSwgZnJlZV9uZXR2c2NfZGV2aWNlKTsKIH0KIAotc3RhdGljIHZvaWQgbmV0dnNj X3Jldm9rZV9idWYoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlLAotCQkJICAgICAgc3RydWN0IG5l dHZzY19kZXZpY2UgKm5ldF9kZXZpY2UpCitzdGF0aWMgdm9pZCBuZXR2c2NfcmV2b2tlX3JlY3Zf YnVmKHN0cnVjdCBodl9kZXZpY2UgKmRldmljZSwKKwkJCQkgICBzdHJ1Y3QgbmV0dnNjX2Rldmlj ZSAqbmV0X2RldmljZSkKIHsKLQlzdHJ1Y3QgbnZzcF9tZXNzYWdlICpyZXZva2VfcGFja2V0Owog CXN0cnVjdCBuZXRfZGV2aWNlICpuZGV2ID0gaHZfZ2V0X2RydmRhdGEoZGV2aWNlKTsKKwlzdHJ1 Y3QgbnZzcF9tZXNzYWdlICpyZXZva2VfcGFja2V0OwogCWludCByZXQ7CiAKIAkvKgpAQCAtMTUx LDYgKzE1MSwxNCBAQCBzdGF0aWMgdm9pZCBuZXR2c2NfcmV2b2tlX2J1ZihzdHJ1Y3QgaHZfZGV2 aWNlICpkZXZpY2UsCiAJCX0KIAkJbmV0X2RldmljZS0+cmVjdl9zZWN0aW9uX2NudCA9IDA7CiAJ fQorfQorCitzdGF0aWMgdm9pZCBuZXR2c2NfcmV2b2tlX3NlbmRfYnVmKHN0cnVjdCBodl9kZXZp Y2UgKmRldmljZSwKKwkJCQkgICBzdHJ1Y3QgbmV0dnNjX2RldmljZSAqbmV0X2RldmljZSkKK3sK KwlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiA9IGh2X2dldF9kcnZkYXRhKGRldmljZSk7CisJc3Ry dWN0IG52c3BfbWVzc2FnZSAqcmV2b2tlX3BhY2tldDsKKwlpbnQgcmV0OwogCiAJLyogRGVhbCB3 aXRoIHRoZSBzZW5kIGJ1ZmZlciB3ZSBtYXkgaGF2ZSBzZXR1cC4KIAkgKiBJZiB3ZSBnb3QgYSAg c2VuZCBzZWN0aW9uIHNpemUsIGl0IG1lYW5zIHdlIHJlY2VpdmVkIGEKQEAgLTE5NCw4ICsyMDIs OCBAQCBzdGF0aWMgdm9pZCBuZXR2c2NfcmV2b2tlX2J1ZihzdHJ1Y3QgaHZfZGV2aWNlICpkZXZp Y2UsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBuZXR2c2NfdGVhcmRvd25fZ3BhZGwoc3RydWN0IGh2 X2RldmljZSAqZGV2aWNlLAotCQkJCSAgc3RydWN0IG5ldHZzY19kZXZpY2UgKm5ldF9kZXZpY2Up CitzdGF0aWMgdm9pZCBuZXR2c2NfdGVhcmRvd25fcmVjdl9ncGFkbChzdHJ1Y3QgaHZfZGV2aWNl ICpkZXZpY2UsCisJCQkJICAgICAgIHN0cnVjdCBuZXR2c2NfZGV2aWNlICpuZXRfZGV2aWNlKQog ewogCXN0cnVjdCBuZXRfZGV2aWNlICpuZGV2ID0gaHZfZ2V0X2RydmRhdGEoZGV2aWNlKTsKIAlp bnQgcmV0OwpAQCAtMjE0LDYgKzIyMiwxMyBAQCBzdGF0aWMgdm9pZCBuZXR2c2NfdGVhcmRvd25f Z3BhZGwoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlLAogCQl9CiAJCW5ldF9kZXZpY2UtPnJlY3Zf YnVmX2dwYWRsX2hhbmRsZSA9IDA7CiAJfQorfQorCitzdGF0aWMgdm9pZCBuZXR2c2NfdGVhcmRv d25fc2VuZF9ncGFkbChzdHJ1Y3QgaHZfZGV2aWNlICpkZXZpY2UsCisJCQkJICAgICAgIHN0cnVj dCBuZXR2c2NfZGV2aWNlICpuZXRfZGV2aWNlKQoreworCXN0cnVjdCBuZXRfZGV2aWNlICpuZGV2 ID0gaHZfZ2V0X2RydmRhdGEoZGV2aWNlKTsKKwlpbnQgcmV0OwogCiAJaWYgKG5ldF9kZXZpY2Ut PnNlbmRfYnVmX2dwYWRsX2hhbmRsZSkgewogCQlyZXQgPSB2bWJ1c190ZWFyZG93bl9ncGFkbChk ZXZpY2UtPmNoYW5uZWwsCkBAIC00MjMsOCArNDM4LDEwIEBAIHN0YXRpYyBpbnQgbmV0dnNjX2lu aXRfYnVmKHN0cnVjdCBodl9kZXZpY2UgKmRldmljZSwKIAlnb3RvIGV4aXQ7CiAKIGNsZWFudXA6 Ci0JbmV0dnNjX3Jldm9rZV9idWYoZGV2aWNlLCBuZXRfZGV2aWNlKTsKLQluZXR2c2NfdGVhcmRv d25fZ3BhZGwoZGV2aWNlLCBuZXRfZGV2aWNlKTsKKwluZXR2c2NfcmV2b2tlX3JlY3ZfYnVmKGRl dmljZSwgbmV0X2RldmljZSk7CisJbmV0dnNjX3Jldm9rZV9zZW5kX2J1ZihkZXZpY2UsIG5ldF9k ZXZpY2UpOworCW5ldHZzY190ZWFyZG93bl9yZWN2X2dwYWRsKGRldmljZSwgbmV0X2RldmljZSk7 CisJbmV0dnNjX3RlYXJkb3duX3NlbmRfZ3BhZGwoZGV2aWNlLCBuZXRfZGV2aWNlKTsKIAogZXhp dDoKIAlyZXR1cm4gcmV0OwpAQCAtNTU0LDcgKzU3MSw4IEBAIHZvaWQgbmV0dnNjX2RldmljZV9y ZW1vdmUoc3RydWN0IGh2X2RldmljZSAqZGV2aWNlKQogCQk9IHJ0bmxfZGVyZWZlcmVuY2UobmV0 X2RldmljZV9jdHgtPm52ZGV2KTsKIAlpbnQgaTsKIAotCW5ldHZzY19yZXZva2VfYnVmKGRldmlj ZSwgbmV0X2RldmljZSk7CisJbmV0dnNjX3Jldm9rZV9yZWN2X2J1ZihkZXZpY2UsIG5ldF9kZXZp Y2UpOworCW5ldHZzY19yZXZva2Vfc2VuZF9idWYoZGV2aWNlLCBuZXRfZGV2aWNlKTsKIAogCVJD VV9JTklUX1BPSU5URVIobmV0X2RldmljZV9jdHgtPm52ZGV2LCBOVUxMKTsKIApAQCAtNTY5LDE0 ICs1ODcsMTggQEAgdm9pZCBuZXR2c2NfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgaHZfZGV2aWNlICpk ZXZpY2UpCiAJbmV0ZGV2X2RiZyhuZGV2LCAibmV0IGRldmljZSBzYWZlIHRvIHJlbW92ZVxuIik7 CiAKIAkvKiBvbGRlciB2ZXJzaW9ucyByZXF1aXJlIHRoYXQgYnVmZmVyIGJlIHJldm9rZWQgYmVm b3JlIGNsb3NlICovCi0JaWYgKHZtYnVzX3Byb3RvX3ZlcnNpb24gPCBWRVJTSU9OX1dJTjEwKQot CQluZXR2c2NfdGVhcmRvd25fZ3BhZGwoZGV2aWNlLCBuZXRfZGV2aWNlKTsKKwlpZiAodm1idXNf cHJvdG9fdmVyc2lvbiA8IFZFUlNJT05fV0lOMTApIHsKKwkJbmV0dnNjX3RlYXJkb3duX3JlY3Zf Z3BhZGwoZGV2aWNlLCBuZXRfZGV2aWNlKTsKKwkJbmV0dnNjX3RlYXJkb3duX3NlbmRfZ3BhZGwo ZGV2aWNlLCBuZXRfZGV2aWNlKTsKKwl9CiAKIAkvKiBOb3csIHdlIGNhbiBjbG9zZSB0aGUgY2hh bm5lbCBzYWZlbHkgKi8KIAl2bWJ1c19jbG9zZShkZXZpY2UtPmNoYW5uZWwpOwogCi0JaWYgKHZt YnVzX3Byb3RvX3ZlcnNpb24gPj0gVkVSU0lPTl9XSU4xMCkKLQkJbmV0dnNjX3RlYXJkb3duX2dw YWRsKGRldmljZSwgbmV0X2RldmljZSk7CisJaWYgKHZtYnVzX3Byb3RvX3ZlcnNpb24gPj0gVkVS U0lPTl9XSU4xMCkgeworCQluZXR2c2NfdGVhcmRvd25fcmVjdl9ncGFkbChkZXZpY2UsIG5ldF9k ZXZpY2UpOworCQluZXR2c2NfdGVhcmRvd25fc2VuZF9ncGFkbChkZXZpY2UsIG5ldF9kZXZpY2Up OworCX0KIAogCS8qIFJlbGVhc2UgYWxsIHJlc291cmNlcyAqLwogCWZyZWVfbmV0dnNjX2Rldmlj ZV9yY3UobmV0X2RldmljZSk7Ci0tIAoyLjE0LjMKCgpGcm9tIDNlMzc3MmE2NzY1NTM1NjI5YWIz OTAxYmU2MzA5ZjlmMDAyYjYwMmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1vaGFt bWVkIEdhbWFsIDxtZ2FtYWxAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAxNCBNYXkgMjAxOCAxNToz MjoyMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzMvMzRdIGh2X25ldHZzYzogRW5zdXJlIGNvcnJl Y3QgdGVhcmRvd24gbWVzc2FnZSBzZXF1ZW5jZQogb3JkZXIKClsgQ29tbWl0IGE1NmQ5OWQ3MTQ2 NjU1OTFmZWQ4NTI3YjkwZWVmMjE1MzBlYTYxZTAgdXBzdHJlYW0uIF0KClByaW9yIHRvIGNvbW1p dCAwY2Y3Mzc4MDhhZTcgKCJodl9uZXR2c2M6IG5ldHZzY190ZWFyZG93bl9ncGFkbCgpIHNwbGl0 IikKdGhlIGNhbGwgc2VxdWVuY2UgaW4gbmV0dnNjX2RldmljZV9yZW1vdmUoKSB3YXMgYXMgZm9s bG93cyAoYXMKaW1wbGVtZW50ZWQgaW4gbmV0dnNjX2Rlc3Ryb3lfYnVmKCkpOgoxLSBTZW5kIE5W U1BfTVNHMV9UWVBFX1JFVk9LRV9SRUNWX0JVRiBtZXNzYWdlCjItIFRlYXJkb3duIHJlY2VpdmUg YnVmZmVyIEdQQURMCjMtIFNlbmQgTlZTUF9NU0cxX1RZUEVfUkVWT0tFX1NFTkRfQlVGIG1lc3Nh Z2UKNC0gVGVhcmRvd24gc2VuZCBidWZmZXIgR1BBREwKNS0gQ2xvc2Ugdm1idXMKClRoaXMgZGlk bid0IHdvcmsgZm9yIFdTMjAxNiBob3N0cy4gQ29tbWl0IDBjZjczNzgwOGFlNwooImh2X25ldHZz YzogbmV0dnNjX3RlYXJkb3duX2dwYWRsKCkgc3BsaXQiKSByZWFycmFuZ2VkIHRoZQp0ZWFyZG93 biBzZXF1ZW5jZSBhcyBmb2xsb3dzOgoxLSBTZW5kIE5WU1BfTVNHMV9UWVBFX1JFVk9LRV9SRUNW X0JVRiBtZXNzYWdlCjItIFNlbmQgTlZTUF9NU0cxX1RZUEVfUkVWT0tFX1NFTkRfQlVGIG1lc3Nh Z2UKMy0gQ2xvc2Ugdm1idXMKNC0gVGVhcmRvd24gcmVjZWl2ZSBidWZmZXIgR1BBREwKNS0gVGVh cmRvd24gc2VuZCBidWZmZXIgR1BBREwKClRoYXQgd29ya2VkIHdlbGwgZm9yIFdTMjAxNiBob3N0 cywgYnV0IGl0IHByZXZlbnRlZCBndWVzdHMgb24gb2xkZXIgaG9zdHMgZnJvbQpzaHV0dGluZyBk b3duIGFmdGVyIGNoYW5naW5nIG5ldHdvcmsgc2V0dGluZ3MuIENvbW1pdCAwZWY1OGIwYTA1YzEK KCJodl9uZXR2c2M6IGNoYW5nZSBHUEFEIHRlYXJkb3duIG9yZGVyIG9uIG9sZGVyIHZlcnNpb25z IikgZW5zdXJlZCB0aGUKZm9sbG93aW5nIG1lc3NhZ2Ugc2VxdWVuY2UgZm9yIG9sZGVyIGhvc3Rz CjEtIFNlbmQgTlZTUF9NU0cxX1RZUEVfUkVWT0tFX1JFQ1ZfQlVGIG1lc3NhZ2UKMi0gU2VuZCBO VlNQX01TRzFfVFlQRV9SRVZPS0VfU0VORF9CVUYgbWVzc2FnZQozLSBUZWFyZG93biByZWNlaXZl IGJ1ZmZlciBHUEFETAo0LSBUZWFyZG93biBzZW5kIGJ1ZmZlciBHUEFETAo1LSBDbG9zZSB2bWJ1 cwoKSG93ZXZlciwgd2l0aCB0aGlzIHNlcXVlbmNlIGNhbGxpbmcgYGlwIGxpbmsgc2V0IGV0aDAg bXR1IDEwMDBgIGhhbmdzIGFuZCB0aGUKcHJvY2VzcyBiZWNvbWVzIHVuaW50ZXJydXB0aWJsZS4g T24gZnV0aGVyIGFuYWx5c2lzIGl0IHR1cm5zIG91dCB0aGF0IG9uIHRlYXJpbmcKZG93biB0aGUg cmVjZWl2ZSBidWZmZXIgR1BBREwgdGhlIGtlcm5lbCBpcyB3YWl0aW5nIGluZGVmaW5pdGVseQpp biB2bWJ1c190ZWFyZG93bl9ncGFkbCgpIGZvciBhIGNvbXBsZXRpb24gdG8gYmUgc2lnbmFsZWQu CgpIZXJlIGlzIGEgc25pcHBldCBvZiB3aGVyZSB0aGlzIG9jY3VyczoKaW50IHZtYnVzX3RlYXJk b3duX2dwYWRsKHN0cnVjdCB2bWJ1c19jaGFubmVsICpjaGFubmVsLCB1MzIgZ3BhZGxfaGFuZGxl KQp7CiAgICAgICAgc3RydWN0IHZtYnVzX2NoYW5uZWxfZ3BhZGxfdGVhcmRvd24gKm1zZzsKICAg ICAgICBzdHJ1Y3Qgdm1idXNfY2hhbm5lbF9tc2dpbmZvICppbmZvOwogICAgICAgIHVuc2lnbmVk IGxvbmcgZmxhZ3M7CiAgICAgICAgaW50IHJldDsKCiAgICAgICAgaW5mbyA9IGttYWxsb2Moc2l6 ZW9mKCppbmZvKSArCiAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCB2bWJ1c19j aGFubmVsX2dwYWRsX3RlYXJkb3duKSwgR0ZQX0tFUk5FTCk7CiAgICAgICAgaWYgKCFpbmZvKQog ICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CgogICAgICAgIGluaXRfY29tcGxldGlvbigm aW5mby0+d2FpdGV2ZW50KTsKICAgICAgICBpbmZvLT53YWl0aW5nX2NoYW5uZWwgPSBjaGFubmVs OwpbLi4uLl0KICAgICAgICByZXQgPSB2bWJ1c19wb3N0X21zZyhtc2csIHNpemVvZihzdHJ1Y3Qg dm1idXNfY2hhbm5lbF9ncGFkbF90ZWFyZG93biksCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHJ1ZSk7CgogICAgICAgIGlmIChyZXQpCiAgICAgICAgICAgICAgICBnb3RvIHBvc3RfbXNn X2VycjsKCiAgICAgICAgd2FpdF9mb3JfY29tcGxldGlvbigmaW5mby0+d2FpdGV2ZW50KTsKWy4u Li5dCn0KClRoZSBjb21wbGV0aW9uIGlzIHNpZ25hbGVkIGZyb20gdm1idXNfb25ncGFkbF90b3Ju ZG93bigpLCB3aGljaCBnZXRzIGNhbGxlZCB3aGVuCnRoZSBjb3JyZXNwb25kaW5nIG1lc3NhZ2Ug aXMgcmVjZWl2ZWQgZnJvbSB0aGUgaG9zdCwgd2hpY2ggYXBwYXJlbnRseSBuZXZlciBoYXBwZW5z CmluIHRoYXQgY2FzZS4KVGhpcyBwYXRjaCB3b3JrcyBhcm91bmQgdGhlIGlzc3VlIGJ5IHJlc3Rv cmluZyB0aGUgZmlyc3QgbWVudGlvbmVkIG1lc3NhZ2Ugc2VxdWVuY2UKZm9yIG9sZGVyIGhvc3Rz CgpGaXhlczogMGVmNThiMGEwNWMxICgiaHZfbmV0dnNjOiBjaGFuZ2UgR1BBRCB0ZWFyZG93biBv cmRlciBvbiBvbGRlciB2ZXJzaW9ucyIpClNpZ25lZC1vZmYtYnk6IE1vaGFtbWVkIEdhbWFsIDxt Z2FtYWxAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYyB8IDE5ICsrKysr KysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYyBiL2RyaXZl cnMvbmV0L2h5cGVydi9uZXR2c2MuYwppbmRleCAyNWZjYmE1MDZhYzUuLjk5YmU2M2VhY2FlYiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jCisrKyBiL2RyaXZlcnMvbmV0 L2h5cGVydi9uZXR2c2MuYwpAQCAtNTcxLDggKzU3MSwxNyBAQCB2b2lkIG5ldHZzY19kZXZpY2Vf cmVtb3ZlKHN0cnVjdCBodl9kZXZpY2UgKmRldmljZSkKIAkJPSBydG5sX2RlcmVmZXJlbmNlKG5l dF9kZXZpY2VfY3R4LT5udmRldik7CiAJaW50IGk7CiAKKwkvKgorCSAqIFJldm9rZSByZWNlaXZl IGJ1ZmZlci4gSWYgaG9zdCBpcyBwcmUtV2luMjAxNiB0aGVuIHRlYXIgZG93bgorCSAqIHJlY2Vp dmUgYnVmZmVyIEdQQURMLiBEbyB0aGUgc2FtZSBmb3Igc2VuZCBidWZmZXIuCisJICovCiAJbmV0 dnNjX3Jldm9rZV9yZWN2X2J1ZihkZXZpY2UsIG5ldF9kZXZpY2UpOworCWlmICh2bWJ1c19wcm90 b192ZXJzaW9uIDwgVkVSU0lPTl9XSU4xMCkKKwkJbmV0dnNjX3RlYXJkb3duX3JlY3ZfZ3BhZGwo ZGV2aWNlLCBuZXRfZGV2aWNlKTsKKwogCW5ldHZzY19yZXZva2Vfc2VuZF9idWYoZGV2aWNlLCBu ZXRfZGV2aWNlKTsKKwlpZiAodm1idXNfcHJvdG9fdmVyc2lvbiA8IFZFUlNJT05fV0lOMTApCisJ CW5ldHZzY190ZWFyZG93bl9zZW5kX2dwYWRsKGRldmljZSwgbmV0X2RldmljZSk7CiAKIAlSQ1Vf SU5JVF9QT0lOVEVSKG5ldF9kZXZpY2VfY3R4LT5udmRldiwgTlVMTCk7CiAKQEAgLTU4NiwxNSAr NTk1LDEzIEBAIHZvaWQgbmV0dnNjX2RldmljZV9yZW1vdmUoc3RydWN0IGh2X2RldmljZSAqZGV2 aWNlKQogCSAqLwogCW5ldGRldl9kYmcobmRldiwgIm5ldCBkZXZpY2Ugc2FmZSB0byByZW1vdmVc biIpOwogCi0JLyogb2xkZXIgdmVyc2lvbnMgcmVxdWlyZSB0aGF0IGJ1ZmZlciBiZSByZXZva2Vk IGJlZm9yZSBjbG9zZSAqLwotCWlmICh2bWJ1c19wcm90b192ZXJzaW9uIDwgVkVSU0lPTl9XSU4x MCkgewotCQluZXR2c2NfdGVhcmRvd25fcmVjdl9ncGFkbChkZXZpY2UsIG5ldF9kZXZpY2UpOwot CQluZXR2c2NfdGVhcmRvd25fc2VuZF9ncGFkbChkZXZpY2UsIG5ldF9kZXZpY2UpOwotCX0KLQog CS8qIE5vdywgd2UgY2FuIGNsb3NlIHRoZSBjaGFubmVsIHNhZmVseSAqLwogCXZtYnVzX2Nsb3Nl KGRldmljZS0+Y2hhbm5lbCk7CiAKKwkvKgorCSAqIElmIGhvc3QgaXMgV2luMjAxNiBvciBoaWdo ZXIgdGhlbiB3ZSBkbyB0aGUgR1BBREwgdGVhciBkb3duCisJICogaGVyZSBhZnRlciBWTUJ1cyBp cyBjbG9zZWQuCisJKi8KIAlpZiAodm1idXNfcHJvdG9fdmVyc2lvbiA+PSBWRVJTSU9OX1dJTjEw KSB7CiAJCW5ldHZzY190ZWFyZG93bl9yZWN2X2dwYWRsKGRldmljZSwgbmV0X2RldmljZSk7CiAJ CW5ldHZzY190ZWFyZG93bl9zZW5kX2dwYWRsKGRldmljZSwgbmV0X2RldmljZSk7Ci0tIAoyLjE0 LjMKCgpGcm9tIGIxMDRhYmRmYWZhYjllNzVjNjdkMmRiZWIxODY3ZDNkMjhkOWFjNzUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1vaGFtbWVkIEdhbWFsIDxtZ2FtYWxAcmVkaGF0LmNv bT4KRGF0ZTogTW9uLCAxNCBNYXkgMjAxOCAxNTozMjoyMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MzQvMzRdIGh2X25ldHZzYzogRml4IG5ldCBkZXZpY2UgYXR0YWNoIG9uIG9sZGVyIFdpbmRvd3Mg aG9zdHMKClsgQ29tbWl0IDU1YmU5ZjI1YmUxY2E1YmRhNzVjMzk4MDhmYzc3ZTQyNjkxYmMwN2Yg dXBzdHJlYW0uIF0KCk9uIG9sZGVyIHdpbmRvd3MgaG9zdHMgdGhlIG5ldF9kZXZpY2UgaW5zdGFu Y2UgaXMgcmV0dXJuZWQgdG8KdGhlIGNhbGxlciBvZiBybmRpc19maWx0ZXJfZGV2aWNlX2FkZCgp IHdpdGhvdXQgaGF2aW5nIHRoZSBwcmVzZW5jZQpiaXQgc2V0IGZpcnN0LiBUaGlzIHdvdWxkIGNh dXNlIGFueSBzdWJzZXF1ZW50IGNhbGxzIHRvIG5ldHdvcmsgZGV2aWNlCm9wZXJhdGlvbnMgKGUu Zy4gTVRVIGNoYW5nZSwgY2hhbm5lbCBjaGFuZ2UpIHRvIGZhaWwgYWZ0ZXIgdGhlIGRldmljZQpp cyBkZXRhY2hlZCBvbmNlLCByZXR1cm5pbmcgLUVOT0RFVi4KCkluc3RlYWQgb2YgcmV0dXJuaW5n IHRoZSBkZXZpY2UgaW5zdGFiY2UsIHdlIHRha2UgdGhlIGV4aXQgcGF0aCB3aGVyZQp3ZSBjYWxs IG5ldGlmX2RldmljZV9hdHRhY2goKQoKRml4ZXM6IDdiMmVlNTBjMGNkNSAoImh2X25ldHZzYzog Y29tbW9uIGRldGFjaCBsb2dpYyIpClNpZ25lZC1vZmYtYnk6IE1vaGFtbWVkIEdhbWFsIDxtZ2Ft YWxAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGhlbW1pbkBt aWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jIGIvZHJpdmVycy9uZXQvaHlwZXJ2 L3JuZGlzX2ZpbHRlci5jCmluZGV4IDNiZmE1NjU2MDI4Ni4uNmRkZTkyYzFjMTEzIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMKKysrIGIvZHJpdmVycy9uZXQv aHlwZXJ2L3JuZGlzX2ZpbHRlci5jCkBAIC0xMjc2LDcgKzEyNzYsNyBAQCBzdHJ1Y3QgbmV0dnNj X2RldmljZSAqcm5kaXNfZmlsdGVyX2RldmljZV9hZGQoc3RydWN0IGh2X2RldmljZSAqZGV2LAog CQkgICBybmRpc19kZXZpY2UtPmxpbmtfc3RhdGUgPyAiZG93biIgOiAidXAiKTsKIAogCWlmIChu ZXRfZGV2aWNlLT5udnNwX3ZlcnNpb24gPCBOVlNQX1BST1RPQ09MX1ZFUlNJT05fNSkKLQkJcmV0 dXJuIG5ldF9kZXZpY2U7CisJCWdvdG8gb3V0OwogCiAJcm5kaXNfZmlsdGVyX3F1ZXJ5X2xpbmtf c3BlZWQocm5kaXNfZGV2aWNlLCBuZXRfZGV2aWNlKTsKIAotLSAKMi4xNC4zCgo= ----Next_Part(Tue_May_22_13_49_52_2018_899)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_416.mbox" RnJvbSBjYWEyYmU3ZDZkNjk3ZTJmZWM0NWM4OGEyY2U2YzVjMDZiYWMyYTA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXJpdGhhIE5hbWJpYXIgPGFtcml0aGEubmFtYmlhckBpbnRl bC5jb20+CkRhdGU6IFRodSwgMTcgTWF5IDIwMTggMTQ6NTA6NDQgLTA3MDAKU3ViamVjdDogW1BB VENIIDAxLzMyXSBuZXQ6IEZpeCBhIGJ1ZyBpbiByZW1vdmluZyBxdWV1ZXMgZnJvbSBYUFMgbWFw CgpbIFVwc3RyZWFtIGNvbW1pdCA2MzU4ZDQ5YWMyMzk5NWZkZmUxNTdjYzg3NDdhYjBmMjc0ZDM5 NTRiIF0KCldoaWxlIHJlbW92aW5nIHF1ZXVlcyBmcm9tIHRoZSBYUFMgbWFwLCB0aGUgaW5kaXZp ZHVhbCBDUFUgSUQKYWxvbmUgd2FzIHVzZWQgdG8gaW5kZXggdGhlIENQVXMgbWFwLCB0aGlzIHNo b3VsZCBiZSBjaGFuZ2VkIHRvIGFsc28KZmFjdG9yIGluIHRoZSB0cmFmZmljIGNsYXNzIG1hcHBp bmcgZm9yIHRoZSBDUFUtdG8tcXVldWUgbG9va3VwLgoKRml4ZXM6IDE4NGM0NDlmOTFmZSAoIm5l dDogQWRkIHN1cHBvcnQgZm9yIFhQUyB3aXRoIFFvUyB2aWEgdHJhZmZpYyBjbGFzc2VzIikKU2ln bmVkLW9mZi1ieTogQW1yaXRoYSBOYW1iaWFyIDxhbXJpdGhhLm5hbWJpYXJAaW50ZWwuY29tPgpB Y2tlZC1ieTogQWxleGFuZGVyIER1eWNrIDxhbGV4YW5kZXIuaC5kdXlja0BpbnRlbC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvY29yZS9kZXYuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMK aW5kZXggM2U1NTA1MDdlOWYwLi5hY2UxM2JlYTNlNTAgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rl di5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC0yMDk3LDcgKzIwOTcsNyBAQCBzdGF0aWMgYm9v bCByZW1vdmVfeHBzX3F1ZXVlX2NwdShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlpbnQgaSwg ajsKIAogCQlmb3IgKGkgPSBjb3VudCwgaiA9IG9mZnNldDsgaS0tOyBqKyspIHsKLQkJCWlmICgh cmVtb3ZlX3hwc19xdWV1ZShkZXZfbWFwcywgY3B1LCBqKSkKKwkJCWlmICghcmVtb3ZlX3hwc19x dWV1ZShkZXZfbWFwcywgdGNpLCBqKSkKIAkJCQlicmVhazsKIAkJfQogCi0tIAoyLjE0LjMKCgpG cm9tIGE5MGZjNjdhMzJkMTdjN2FmYjk3MDM0MDZmNzJlOGRiM2ZjNjRjNDAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFRhcmljayBCZWRlaXIgPHRhcmlja0Bnb29nbGUuY29tPgpEYXRl OiBTdW4sIDEzIE1heSAyMDE4IDE2OjM4OjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMi8zMl0g bmV0L21seDRfY29yZTogRml4IGVycm9yIGhhbmRsaW5nIGluCiBtbHg0X2luaXRfcG9ydF9pbmZv LgoKWyBVcHN0cmVhbSBjb21taXQgNTdmNmY5OWZkYWQ5OTg0ODAxY2RlMDVjMWRiNjhmZTM5YjQ3 NGExMCBdCgpBdm9pZCBleGl0aW5nIHRoZSBmdW5jdGlvbiB3aXRoIGEgbGluZ2VyaW5nIHN5c2Zz IGZpbGUgKGlmIHRoZSBmaXJzdApjYWxsIHRvIGRldmljZV9jcmVhdGVfZmlsZSgpIGZhaWxzIHdo aWxlIHRoZSBzZWNvbmQgc3VjY2VlZHMpLCBhbmQgYXZvaWQKY2FsbGluZyBkZXZsaW5rX3BvcnRf dW5yZWdpc3RlcigpIHR3aWNlLgoKSW4gb3RoZXIgd29yZHMsIGVpdGhlciBtbHg0X2luaXRfcG9y dF9pbmZvKCkgc3VjY2VlZHMgYW5kIHJldHVybnMgemVybywgb3IKaXQgZmFpbHMsIHJldHVybnMg bm9uLXplcm8sIGFuZCByZXF1aXJlcyBubyBjbGVhbnVwLgoKRml4ZXM6IDA5NjMzNWIzZjk4MyAo Im1seDRfY29yZTogQWxsb3cgZHluYW1pYyBNVFUgY29uZmlndXJhdGlvbiBmb3IgSUIgcG9ydHMi KQpTaWduZWQtb2ZmLWJ5OiBUYXJpY2sgQmVkZWlyIDx0YXJpY2tAZ29vZ2xlLmNvbT4KUmV2aWV3 ZWQtYnk6IExlb24gUm9tYW5vdnNreSA8bGVvbnJvQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6 IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDQvbWFpbi5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NC9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0 L21haW4uYwppbmRleCA0ZDg0Y2FiNzcxMDUuLmU4YTNhNDVkMGI1MyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tYWluLmMKQEAgLTMwMDcsNiArMzAwNyw3IEBAIHN0YXRp YyBpbnQgbWx4NF9pbml0X3BvcnRfaW5mbyhzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgaW50IHBvcnQp CiAJCW1seDRfZXJyKGRldiwgIkZhaWxlZCB0byBjcmVhdGUgZmlsZSBmb3IgcG9ydCAlZFxuIiwg cG9ydCk7CiAJCWRldmxpbmtfcG9ydF91bnJlZ2lzdGVyKCZpbmZvLT5kZXZsaW5rX3BvcnQpOwog CQlpbmZvLT5wb3J0ID0gLTE7CisJCXJldHVybiBlcnI7CiAJfQogCiAJc3ByaW50ZihpbmZvLT5k ZXZfbXR1X25hbWUsICJtbHg0X3BvcnQlZF9tdHUiLCBwb3J0KTsKQEAgLTMwMjgsOSArMzAyOSwx MCBAQCBzdGF0aWMgaW50IG1seDRfaW5pdF9wb3J0X2luZm8oc3RydWN0IG1seDRfZGV2ICpkZXYs IGludCBwb3J0KQogCQkJCSAgICZpbmZvLT5wb3J0X2F0dHIpOwogCQlkZXZsaW5rX3BvcnRfdW5y ZWdpc3RlcigmaW5mby0+ZGV2bGlua19wb3J0KTsKIAkJaW5mby0+cG9ydCA9IC0xOworCQlyZXR1 cm4gZXJyOwogCX0KIAotCXJldHVybiBlcnI7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lk IG1seDRfY2xlYW51cF9wb3J0X2luZm8oc3RydWN0IG1seDRfcG9ydF9pbmZvICppbmZvKQotLSAK Mi4xNC4zCgoKRnJvbSA4ZWJhNDE2MGU4OTUzMWNjMmZjZGQzOGNlNzdmMjEzOTk4OGUzYTc0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxh bm94LmNvbT4KRGF0ZTogTW9uLCAxNCBNYXkgMjAxOCAxNTozODoxMCAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMDMvMzJdIG5ldC9tbHg1OiBGaXggYnVpbGQgYnJlYWsgd2hlbiBDT05GSUdfU01QPW4K TUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGUzY2Ez NDg4MDY1MjI1MGY1MjQwMjJhZDg5ZTUxNmY4YmE5YTgwNWIgXQoKQXZvaWQgdXNpbmcgdGhlIGtl cm5lbCdzIGlycV9kZXNjcmlwdG9yIGFuZCByZXR1cm4gSVJRIHZlY3RvciBhZmZpbml0eQpkaXJl Y3RseSBmcm9tIHRoZSBkcml2ZXIuCgpUaGlzIGZpeGVzIHRoZSBmb2xsb3dpbmcgYnVpbGQgYnJl YWsgd2hlbiBDT05GSUdfU01QPW4KCmluY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaDogSW4gZnVu Y3Rpb24g4oCYbWx4NV9nZXRfdmVjdG9yX2FmZmluaXR5X2hpbnTigJk6CmluY2x1ZGUvbGludXgv bWx4NS9kcml2ZXIuaDoxMjk5OjEzOiBlcnJvcjoKICAgICAgICDigJhzdHJ1Y3QgaXJxX2Rlc2Pi gJkgaGFzIG5vIG1lbWJlciBuYW1lZCDigJhhZmZpbml0eV9oaW504oCZCgpGaXhlczogNjA4MmQ5 YzljOTRhICgibmV0L21seDU6IEZpeCBtbHg1X2dldF92ZWN0b3JfYWZmaW5pdHkgZnVuY3Rpb24i KQpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KQ0M6 IFJhbmR5IER1bmxhcCA8cmR1bmxhcEBpbmZyYWRlYWQub3JnPgpDQzogR3VlbnRlciBSb2VjayA8 bGludXhAcm9lY2stdXMubmV0PgpDQzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXgu ZGU+ClRlc3RlZC1ieTogSXNyYWVsIFJ1a3NoaW4gPGlzcmFlbHJAbWVsbGFub3guY29tPgpSZXBv cnRlZC1ieToga2J1aWxkIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+ClJlcG9ydGVkLWJ5OiBS YW5keSBEdW5sYXAgPHJkdW5sYXBAaW5mcmFkZWFkLm9yZz4KVGVzdGVkLWJ5OiBSYW5keSBEdW5s YXAgPHJkdW5sYXBAaW5mcmFkZWFkLm9yZz4KQWNrZWQtYnk6IFRob21hcyBHbGVpeG5lciA8dGds eEBsaW51dHJvbml4LmRlPgpUZXN0ZWQtYnk6IEd1ZW50ZXIgUm9lY2sgPGxpbnV4QHJvZWNrLXVz Lm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGluY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaCB8IDEyICstLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVy LmgKaW5kZXggMTM1MmIxYjk5MGE3Li4zZWJiMmY2YWNlNzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGludXgvbWx4NS9kcml2ZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKQEAg LTEyNzEsMTcgKzEyNzEsNyBAQCBlbnVtIHsKIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGNw dW1hc2sgKgogbWx4NV9nZXRfdmVjdG9yX2FmZmluaXR5X2hpbnQoc3RydWN0IG1seDVfY29yZV9k ZXYgKmRldiwgaW50IHZlY3RvcikKIHsKLQlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2M7Ci0JdW5zaWdu ZWQgaW50IGlycTsKLQlpbnQgZXFuOwotCWludCBlcnI7Ci0KLQllcnIgPSBtbHg1X3ZlY3RvcjJl cW4oZGV2LCB2ZWN0b3IsICZlcW4sICZpcnEpOwotCWlmIChlcnIpCi0JCXJldHVybiBOVUxMOwot Ci0JZGVzYyA9IGlycV90b19kZXNjKGlycSk7Ci0JcmV0dXJuIGRlc2MtPmFmZmluaXR5X2hpbnQ7 CisJcmV0dXJuIGRldi0+cHJpdi5pcnFfaW5mb1t2ZWN0b3JdLm1hc2s7CiB9CiAKICNlbmRpZiAv KiBNTFg1X0RSSVZFUl9IICovCi0tIAoyLjE0LjMKCgpGcm9tIDFiYjUwODRjZDliNDIyNzk4Yzg3 NDczZmFlNTAxMzFjNjMyYThiZmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlk ZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29tPgpEYXRlOiBXZWQsIDE2IE1heSAyMDE4IDEy OjU0OjI5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8zMl0gbmV0L3NjaGVkOiBmaXggcmVmY250 IGxlYWsgaW4gdGhlIGVycm9yIHBhdGggb2YKIHRjZl92bGFuX2luaXQoKQoKWyBVcHN0cmVhbSBj b21taXQgNWE0OTMxYWUwMTkzZjhhNGE5N2U4MjYwZmQwZGYxZDcwNWQ4MzI5OSBdCgpTaW1pbGFy bHkgdG8gd2hhdCB3YXMgZG9uZSB3aXRoIGNvbW1pdCBhNTI5NTZkZmM1MDMgKCJuZXQgc2NoZWQg YWN0aW9uczoKZml4IHJlZmNudCBsZWFrIGluIHNrYm1vZCIpLCBmaXggdGhlIGVycm9yIHBhdGgg b2YgdGNmX3ZsYW5faW5pdCgpIHRvIGF2b2lkCnJlZmNudCBsZWFrcyB3aGVuIHdyb25nIHZhbHVl IG9mIFRDQV9WTEFOX1BVU0hfVkxBTl9QUk9UT0NPTCBpcyBnaXZlbi4KCkZpeGVzOiA1MDI2Yzli MWJhZmMgKCJuZXQgc2NoZWQ6IHZsYW4gYWN0aW9uIGZpeCBsYXRlIGJpbmRpbmciKQpDQzogUm9t YW4gTWFzaGFrIDxtcnZAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZGUgQ2FyYXR0 aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Bt b2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvYWN0X3ZsYW4uYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X3ZsYW4uYyBiL25l dC9zY2hlZC9hY3Rfdmxhbi5jCmluZGV4IGM0OWNiNjFhZGVkZi4uNjRjYTAxN2YyZTAwIDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvYWN0X3ZsYW4uYworKysgYi9uZXQvc2NoZWQvYWN0X3ZsYW4uYwpA QCAtMTYxLDYgKzE2MSw4IEBAIHN0YXRpYyBpbnQgdGNmX3ZsYW5faW5pdChzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAkJCWNhc2UgaHRvbnMoRVRIX1BfODAyMUFEKToKIAkJ CQlicmVhazsKIAkJCWRlZmF1bHQ6CisJCQkJaWYgKGV4aXN0cykKKwkJCQkJdGNmX2lkcl9yZWxl YXNlKCphLCBiaW5kKTsKIAkJCQlyZXR1cm4gLUVQUk9UT05PU1VQUE9SVDsKIAkJCX0KIAkJfSBl bHNlIHsKLS0gCjIuMTQuMwoKCkZyb20gYmJkMGViMjg1MzYzNDM3YmQ0ZjYwMGExZTVjNTJiYTk4 NjBkZWM0NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVu aUByZWRoYXQuY29tPgpEYXRlOiBGcmksIDE4IE1heSAyMDE4IDE0OjUxOjQ0ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwNS8zMl0gbmV0OiBzY2hlZDogcmVkOiBhdm9pZCBoYXNoaW5nIE5VTEwgY2hp bGQKClsgVXBzdHJlYW0gY29tbWl0IDQ0YTYzYjEzN2Y3YjZlNGM3YmQ2YzljYzIxNjE1OTQxY2Iz NjUwOWQgXQoKSGFuZ2JpbiByZXBvcnRlZCBhbiBPb3BzIHRyaWdnZXJlZCBieSB0aGUgc3l6a2Fs bGVyIHFkaXNjIHJ1bGVzOgoKIGthc2FuOiBHUEYgY291bGQgYmUgY2F1c2VkIGJ5IE5VTEwtcHRy IGRlcmVmIG9yIHVzZXIgbWVtb3J5IGFjY2VzcwogZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0OiAw MDAwIFsjMV0gU01QIEtBU0FOIFBUSQogTW9kdWxlcyBsaW5rZWQgaW46IHNjaF9yZWQKIENQVTog MCBQSUQ6IDI4Njk5IENvbW06IHN5ei1leGVjdXRvcjUgTm90IHRhaW50ZWQgNC4xNy4wLXJjNC5r Y292ICMxCiBIYXJkd2FyZSBuYW1lOiBSZWQgSGF0IEtWTSwgQklPUyAwLjUuMSAwMS8wMS8yMDEx CiBSSVA6IDAwMTA6cWRpc2NfaGFzaF9hZGQrMHgyNi8weGEwCiBSU1A6IDAwMTg6ZmZmZjg4MDA1 ODljZjQ3MCBFRkxBR1M6IDAwMDEwMjAzCiBSQVg6IGRmZmZmYzAwMDAwMDAwMDAgUkJYOiAwMDAw MDAwMDAwMDAwMDAwIFJDWDogZmZmZmZmZmY4MjRhZDk3MQogUkRYOiAwMDAwMDAwMDAwMDAwMDA3 IFJTSTogZmZmZmM5MDAwY2U5ZjAwMCBSREk6IDAwMDAwMDAwMDAwMDAwM2MKIFJCUDogMDAwMDAw MDAwMDAwMDAwMSBSMDg6IGZmZmZlZDAwMGIxMzllYTIgUjA5OiBmZmZmODgwMDU4OWNmNGYwCiBS MTA6IGZmZmY4ODAwNTg5Y2Y1MGYgUjExOiBmZmZmZWQwMDBiMTM5ZWEyIFIxMjogZmZmZjg4MDA1 NDAxOWZjMAogUjEzOiBmZmZmODgwMDU0MDE5ZmI0IFIxNDogZmZmZjg4MDA1YzBhZjYwMCBSMTU6 IGZmZmY4ODAwNTQwMTlmYjAKIEZTOiAgMDAwMDdmYTZlZGNiMTcwMCgwMDAwKSBHUzpmZmZmODgw MDVjZTAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKIENTOiAgMDAxMCBEUzogMDAw MCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKIENSMjogMDAwMDAwMDAyMDAwMDc0MCBD UjM6IDAwMDAwMDAwMGZjMTYwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmYwCiBEUjA6IDAwMDAwMDAw MDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMAogRFIz OiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAw MDA0MDAKIENhbGwgVHJhY2U6CiAgcmVkX2NoYW5nZSsweDJkMi8weGVkMCBbc2NoX3JlZF0KICBx ZGlzY19jcmVhdGUrMHg1N2UvMHhlZjAKICB0Y19tb2RpZnlfcWRpc2MrMHg0N2YvMHgxNGUwCiAg cnRuZXRsaW5rX3Jjdl9tc2crMHg2YTgvMHg5MjAKICBuZXRsaW5rX3Jjdl9za2IrMHgyYTIvMHgz YzAKICBuZXRsaW5rX3VuaWNhc3QrMHg1MTEvMHg3NDAKICBuZXRsaW5rX3NlbmRtc2crMHg4MjUv MHhjMzAKICBzb2NrX3NlbmRtc2crMHhjNS8weDEwMAogIF9fX3N5c19zZW5kbXNnKzB4Nzc4LzB4 OGUwCiAgX19zeXNfc2VuZG1zZysweGY1LzB4MWIwCiAgZG9fc3lzY2FsbF82NCsweGJkLzB4M2Iw CiAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQogUklQOiAwMDMzOjB4 NDUwODY5CiBSU1A6IDAwMmI6MDAwMDdmYTZlZGNiMGM0OCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdf UkFYOiAwMDAwMDAwMDAwMDAwMDJlCiBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwN2Zh NmVkY2IxNmI0IFJDWDogMDAwMDAwMDAwMDQ1MDg2OQogUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJT STogMDAwMDAwMDAyMDAwMDBjMCBSREk6IDAwMDAwMDAwMDAwMDAwMTMKIFJCUDogMDAwMDAwMDAw MDcyYmVhMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwCiBSMTA6 IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDBmZmZm ZmZmZgogUjEzOiAwMDAwMDAwMDAwMDA4Nzc4IFIxNDogMDAwMDAwMDAwMDcwMjgzOCBSMTU6IDAw MDA3ZmE2ZWRjYjE3MDAKIENvZGU6IGU5IDBiIGZlIGZmIGZmIDBmIDFmIDQ0IDAwIDAwIDU1IDUz IDQ4IDg5IGZiIDg5IGY1IGU4IDNmIDA3IGYzIGZlIDQ4IDhkIDdiIDNjIDQ4IGI4IDAwIDAwIDAw IDAwIDAwIGZjIGZmIGRmIDQ4IDg5IGZhIDQ4IGMxIGVhIDAzIDwwZj4gYjYgMTQgMDIgNDggODkg ZjggODMgZTAgMDcgODMgYzAgMDMgMzggZDAgN2MgMDQgODQgZDIgNzUgNTEKIFJJUDogcWRpc2Nf aGFzaF9hZGQrMHgyNi8weGEwIFJTUDogZmZmZjg4MDA1ODljZjQ3MAoKV2hlbiBhIHJlZCBxZGlz YyBpcyB1cGRhdGVkIHdpdGggYSAwIGxpbWl0LCB0aGUgY2hpbGQgcWRpc2MgaXMgbGVmdAp1bm1v ZGlmaWVkLCBubyBhZGRpdGlvbmFsIHNjaGVkdWxlciBpcyBjcmVhdGVkIGluIHJlZF9jaGFuZ2Uo KSwKdGhlICdjaGlsZCcgbG9jYWwgdmFyaWFibGUgaXMgcmlnaHRmdWxseSBOVUxMIGFuZCBtdXN0 IG5vdCBhZGQgaXQKdG8gdGhlIGhhc2ggdGFibGUuCgpUaGlzIGNoYW5nZSBhZGRyZXNzZXMgdGhl IGFib3ZlIGlzc3VlIG1vdmluZyBxZGlzY19oYXNoX2FkZCgpIHJpZ2h0CmFmdGVyIHRoZSBjaGls ZCBxZGlzYyBjcmVhdGlvbi4gSXQgYWRkaXRpb25hbGx5IHJlbW92ZXMgdW5uZWVkZWQgY2hlY2tz CmZvciBub29wX3FkaXNjLgoKUmVwb3J0ZWQtYnk6IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdt YWlsLmNvbT4KRml4ZXM6IDQ5YjQ5OTcxOGZhMSAoIm5ldDogc2NoZWQ6IG1ha2UgZGVmYXVsdCBm aWZvIHFkaXNjcyBhcHBlYXIgaW4gdGhlIGR1bXAiKQpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVu aSA8cGFiZW5pQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBKaXJpIEtvc2luYSA8amtvc2luYUBzdXNl LmN6PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L3NjaGVkL3NjaF9yZWQuYyB8IDUgKysrLS0KIG5ldC9zY2hlZC9zY2hfdGJmLmMg fCA1ICsrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX3JlZC5jIGIvbmV0L3NjaGVkL3NjaF9yZWQu YwppbmRleCAxNjY0NGIzZDIzNjIuLjU2YzE4MWMzZmVlYiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVk L3NjaF9yZWQuYworKysgYi9uZXQvc2NoZWQvc2NoX3JlZC5jCkBAIC0yMjIsMTAgKzIyMiwxMSBA QCBzdGF0aWMgaW50IHJlZF9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIg Km9wdCwKIAkJCQkJIGV4dGFjayk7CiAJCWlmIChJU19FUlIoY2hpbGQpKQogCQkJcmV0dXJuIFBU Ul9FUlIoY2hpbGQpOwotCX0KIAotCWlmIChjaGlsZCAhPSAmbm9vcF9xZGlzYykKKwkJLyogY2hp bGQgaXMgZmlmbywgbm8gbmVlZCB0byBjaGVjayBmb3Igbm9vcF9xZGlzYyAqLwogCQlxZGlzY19o YXNoX2FkZChjaGlsZCwgdHJ1ZSk7CisJfQorCiAJc2NoX3RyZWVfbG9jayhzY2gpOwogCXEtPmZs YWdzID0gY3RsLT5mbGFnczsKIAlxLT5saW1pdCA9IGN0bC0+bGltaXQ7CmRpZmYgLS1naXQgYS9u ZXQvc2NoZWQvc2NoX3RiZi5jIGIvbmV0L3NjaGVkL3NjaF90YmYuYwppbmRleCAwMzIyNWE4ZGY5 NzMuLjZmNzRhNDI2ZjE1OSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF90YmYuYworKysgYi9u ZXQvc2NoZWQvc2NoX3RiZi5jCkBAIC0zODMsNiArMzgzLDkgQEAgc3RhdGljIGludCB0YmZfY2hh bmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsCiAJCQllcnIgPSBQVFJf RVJSKGNoaWxkKTsKIAkJCWdvdG8gZG9uZTsKIAkJfQorCisJCS8qIGNoaWxkIGlzIGZpZm8sIG5v IG5lZWQgdG8gY2hlY2sgZm9yIG5vb3BfcWRpc2MgKi8KKwkJcWRpc2NfaGFzaF9hZGQoY2hpbGQs IHRydWUpOwogCX0KIAogCXNjaF90cmVlX2xvY2soc2NoKTsKQEAgLTM5MSw4ICszOTQsNiBAQCBz dGF0aWMgaW50IHRiZl9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9w dCwKIAkJCQkJICBxLT5xZGlzYy0+cXN0YXRzLmJhY2tsb2cpOwogCQlxZGlzY19kZXN0cm95KHEt PnFkaXNjKTsKIAkJcS0+cWRpc2MgPSBjaGlsZDsKLQkJaWYgKGNoaWxkICE9ICZub29wX3FkaXNj KQotCQkJcWRpc2NfaGFzaF9hZGQoY2hpbGQsIHRydWUpOwogCX0KIAlxLT5saW1pdCA9IHFvcHQt PmxpbWl0OwogCWlmICh0YltUQ0FfVEJGX1BCVVJTVF0pCi0tIAoyLjE0LjMKCgpGcm9tIDdkMDkw MThlMTVlNDUzY2JmNjEzODYyMmVmOWFlOTQ1Nzk4NThlNDEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVyaWMgQmlnZ2VycyA8ZWJpZ2dlcnNAZ29vZ2xlLmNvbT4KRGF0ZTogU3VuLCAx MyBNYXkgMjAxOCAxNzowMTozMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzJdIG5ldC9zbWM6 IGNoZWNrIGZvciBtaXNzaW5nIG5sYXR0cnMgaW4gU01DX1BORVRJRAogbWVzc2FnZXMKClsgVXBz dHJlYW0gY29tbWl0IGQ0OWJhYTdlMTJlZTcwYzBhN2I4MjFkMDg4YTc3MGM5NGMwMmU0OTQgXQoK SXQncyBwb3NzaWJsZSB0byBjcmFzaCB0aGUga2VybmVsIGluIHNldmVyYWwgZGlmZmVyZW50IHdh eXMgYnkgc2VuZGluZwptZXNzYWdlcyB0byB0aGUgU01DX1BORVRJRCBnZW5lcmljIG5ldGxpbmsg ZmFtaWx5IHRoYXQgYXJlIG1pc3NpbmcgdGhlCmV4cGVjdGVkIGF0dHJpYnV0ZXM6CgotIE1pc3Np bmcgU01DX1BORVRJRF9OQU1FID0+IG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGNvbXBh cmluZwogIG5hbWVzLgotIE1pc3NpbmcgU01DX1BORVRJRF9FVEhOQU1FID0+IG51bGwgcG9pbnRl ciBkZXJlZmVyZW5jZSBhY2Nlc3NpbmcKICBzbWNfcG5ldGVudHJ5OjpuZGV2LgotIE1pc3Npbmcg U01DX1BORVRJRF9JQk5BTUUgPT4gbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGFjY2Vzc2luZwog IHNtY19wbmV0ZW50cnk6OnNtY2liZGV2LgotIE1pc3NpbmcgU01DX1BORVRJRF9JQlBPUlQgPT4g b3V0IG9mIGJvdW5kcyBhcnJheSBhY2Nlc3MgdG8KICBzbWNfaWJfZGV2aWNlOjpwYXR0clstMV0u CgpGaXggaXQgYnkgdmFsaWRhdGluZyB0aGF0IGFsbCBleHBlY3RlZCBhdHRyaWJ1dGVzIGFyZSBw cmVzZW50IGFuZCB0aGF0ClNNQ19QTkVUSURfSUJQT1JUIGlzIG5vbnplcm8uCgpSZXBvcnRlZC1i eTogc3l6Ym90KzVjZDYxMDM5ZGM5YjhiZmE2ZTQ3QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20K Rml4ZXM6IDY4MTJiYWFiZjI0ZCAoInNtYzogZXN0YWJsaXNoIHBuZXQgdGFibGUgbWFuYWdlbWVu dCIpCkNjOiA8c3RhYmxlQHZnZXIua2VybmVsLm9yZz4gIyB2NC4xMSsKU2lnbmVkLW9mZi1ieTog RXJpYyBCaWdnZXJzIDxlYmlnZ2Vyc0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NtYy9zbWNfcG5ldC5jIHwg NzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L3NtYy9zbWNfcG5ldC5jIGIvbmV0L3NtYy9zbWNfcG5ldC5jCmluZGV4IDc0 NTY4Y2RiY2E3MC4uZDdiODhiMmQxYjIyIDEwMDY0NAotLS0gYS9uZXQvc21jL3NtY19wbmV0LmMK KysrIGIvbmV0L3NtYy9zbWNfcG5ldC5jCkBAIC0yNDUsNDAgKzI0NSw0NSBAQCBzdGF0aWMgc3Ry dWN0IHNtY19pYl9kZXZpY2UgKnNtY19wbmV0X2ZpbmRfaWIoY2hhciAqaWJfbmFtZSkKIHN0YXRp YyBpbnQgc21jX3BuZXRfZmlsbF9lbnRyeShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzbWNfcG5l dGVudHJ5ICpwbmV0ZWxlbSwKIAkJCSAgICAgICBzdHJ1Y3QgbmxhdHRyICp0YltdKQogewotCWNo YXIgKnN0cmluZywgKmlibmFtZSA9IE5VTEw7Ci0JaW50IHJjID0gMDsKKwljaGFyICpzdHJpbmcs ICppYm5hbWU7CisJaW50IHJjOwogCiAJbWVtc2V0KHBuZXRlbGVtLCAwLCBzaXplb2YoKnBuZXRl bGVtKSk7CiAJSU5JVF9MSVNUX0hFQUQoJnBuZXRlbGVtLT5saXN0KTsKLQlpZiAodGJbU01DX1BO RVRJRF9OQU1FXSkgewotCQlzdHJpbmcgPSAoY2hhciAqKW5sYV9kYXRhKHRiW1NNQ19QTkVUSURf TkFNRV0pOwotCQlpZiAoIXNtY19wbmV0aWRfdmFsaWQoc3RyaW5nLCBwbmV0ZWxlbS0+cG5ldF9u YW1lKSkgewotCQkJcmMgPSAtRUlOVkFMOwotCQkJZ290byBlcnJvcjsKLQkJfQotCX0KLQlpZiAo dGJbU01DX1BORVRJRF9FVEhOQU1FXSkgewotCQlzdHJpbmcgPSAoY2hhciAqKW5sYV9kYXRhKHRi W1NNQ19QTkVUSURfRVRITkFNRV0pOwotCQlwbmV0ZWxlbS0+bmRldiA9IGRldl9nZXRfYnlfbmFt ZShuZXQsIHN0cmluZyk7Ci0JCWlmICghcG5ldGVsZW0tPm5kZXYpCi0JCQlyZXR1cm4gLUVOT0VO VDsKLQl9Ci0JaWYgKHRiW1NNQ19QTkVUSURfSUJOQU1FXSkgewotCQlpYm5hbWUgPSAoY2hhciAq KW5sYV9kYXRhKHRiW1NNQ19QTkVUSURfSUJOQU1FXSk7Ci0JCWlibmFtZSA9IHN0cmltKGlibmFt ZSk7Ci0JCXBuZXRlbGVtLT5zbWNpYmRldiA9IHNtY19wbmV0X2ZpbmRfaWIoaWJuYW1lKTsKLQkJ aWYgKCFwbmV0ZWxlbS0+c21jaWJkZXYpIHsKLQkJCXJjID0gLUVOT0VOVDsKLQkJCWdvdG8gZXJy b3I7Ci0JCX0KLQl9Ci0JaWYgKHRiW1NNQ19QTkVUSURfSUJQT1JUXSkgewotCQlwbmV0ZWxlbS0+ aWJfcG9ydCA9IG5sYV9nZXRfdTgodGJbU01DX1BORVRJRF9JQlBPUlRdKTsKLQkJaWYgKHBuZXRl bGVtLT5pYl9wb3J0ID4gU01DX01BWF9QT1JUUykgewotCQkJcmMgPSAtRUlOVkFMOwotCQkJZ290 byBlcnJvcjsKLQkJfQotCX0KKworCXJjID0gLUVJTlZBTDsKKwlpZiAoIXRiW1NNQ19QTkVUSURf TkFNRV0pCisJCWdvdG8gZXJyb3I7CisJc3RyaW5nID0gKGNoYXIgKilubGFfZGF0YSh0YltTTUNf UE5FVElEX05BTUVdKTsKKwlpZiAoIXNtY19wbmV0aWRfdmFsaWQoc3RyaW5nLCBwbmV0ZWxlbS0+ cG5ldF9uYW1lKSkKKwkJZ290byBlcnJvcjsKKworCXJjID0gLUVJTlZBTDsKKwlpZiAoIXRiW1NN Q19QTkVUSURfRVRITkFNRV0pCisJCWdvdG8gZXJyb3I7CisJcmMgPSAtRU5PRU5UOworCXN0cmlu ZyA9IChjaGFyICopbmxhX2RhdGEodGJbU01DX1BORVRJRF9FVEhOQU1FXSk7CisJcG5ldGVsZW0t Pm5kZXYgPSBkZXZfZ2V0X2J5X25hbWUobmV0LCBzdHJpbmcpOworCWlmICghcG5ldGVsZW0tPm5k ZXYpCisJCWdvdG8gZXJyb3I7CisKKwlyYyA9IC1FSU5WQUw7CisJaWYgKCF0YltTTUNfUE5FVElE X0lCTkFNRV0pCisJCWdvdG8gZXJyb3I7CisJcmMgPSAtRU5PRU5UOworCWlibmFtZSA9IChjaGFy ICopbmxhX2RhdGEodGJbU01DX1BORVRJRF9JQk5BTUVdKTsKKwlpYm5hbWUgPSBzdHJpbShpYm5h bWUpOworCXBuZXRlbGVtLT5zbWNpYmRldiA9IHNtY19wbmV0X2ZpbmRfaWIoaWJuYW1lKTsKKwlp ZiAoIXBuZXRlbGVtLT5zbWNpYmRldikKKwkJZ290byBlcnJvcjsKKworCXJjID0gLUVJTlZBTDsK KwlpZiAoIXRiW1NNQ19QTkVUSURfSUJQT1JUXSkKKwkJZ290byBlcnJvcjsKKwlwbmV0ZWxlbS0+ aWJfcG9ydCA9IG5sYV9nZXRfdTgodGJbU01DX1BORVRJRF9JQlBPUlRdKTsKKwlpZiAocG5ldGVs ZW0tPmliX3BvcnQgPCAxIHx8IHBuZXRlbGVtLT5pYl9wb3J0ID4gU01DX01BWF9QT1JUUykKKwkJ Z290byBlcnJvcjsKKwogCXJldHVybiAwOwogCiBlcnJvcjoKQEAgLTMwNyw2ICszMTIsOCBAQCBz dGF0aWMgaW50IHNtY19wbmV0X2dldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9p bmZvICppbmZvKQogCXZvaWQgKmhkcjsKIAlpbnQgcmM7CiAKKwlpZiAoIWluZm8tPmF0dHJzW1NN Q19QTkVUSURfTkFNRV0pCisJCXJldHVybiAtRUlOVkFMOwogCXBuZXRlbGVtID0gc21jX3BuZXRf ZmluZF9wbmV0aWQoCiAJCQkJKGNoYXIgKilubGFfZGF0YShpbmZvLT5hdHRyc1tTTUNfUE5FVElE X05BTUVdKSk7CiAJaWYgKCFwbmV0ZWxlbSkKQEAgLTM1OSw2ICszNjYsOCBAQCBzdGF0aWMgaW50 IHNtY19wbmV0X2FkZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZv KQogCiBzdGF0aWMgaW50IHNtY19wbmV0X2RlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg Z2VubF9pbmZvICppbmZvKQogeworCWlmICghaW5mby0+YXR0cnNbU01DX1BORVRJRF9OQU1FXSkK KwkJcmV0dXJuIC1FSU5WQUw7CiAJcmV0dXJuIHNtY19wbmV0X3JlbW92ZV9ieV9wbmV0aWQoCiAJ CQkJKGNoYXIgKilubGFfZGF0YShpbmZvLT5hdHRyc1tTTUNfUE5FVElEX05BTUVdKSk7CiB9Ci0t IAoyLjE0LjMKCgpGcm9tIDQzZjc4N2E3NTBlOWQ4NDJhZmJjZjU1ODY1MzY1OTg3NmIzOGZhZGIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJA Z29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAxNyBNYXkgMjAxOCAxMzoxMzoyOSAtMDQwMApTdWJqZWN0 OiBbUEFUQ0ggMDcvMzJdIG5ldDogdGVzdCB0YWlscm9vbSBiZWZvcmUgYXBwZW5kaW5nIHRvIGxp bmVhciBza2IKClsgVXBzdHJlYW0gY29tbWl0IDExM2Y5OWMzMzU4NTY0YTA2NDdkNDQ0YzJhZTM0 ZThiMWFiZmQ1YjkgXQoKRGV2aWNlIGZlYXR1cmVzIG1heSBjaGFuZ2UgZHVyaW5nIHRyYW5zbWlz c2lvbi4gSW4gcGFydGljdWxhciB3aXRoCmNvcmtpbmcsIGEgZGV2aWNlIG1heSB0b2dnbGUgc2Nh dHRlci1nYXRoZXIgaW4gYmV0d2VlbiBhbGxvY2F0aW5nCmFuZCB3cml0aW5nIHRvIGFuIHNrYi4K CkRvIG5vdCB1bmNvbmRpdGlvbmFsbHkgYXNzdW1lIHRoYXQgIU5FVElGX0ZfU0cgYXQgd3JpdGUg dGltZSBpbXBsaWVzCnRoYXQgdGhlIHNhbWUgaGVsZCBhdCBhbGxvYyB0aW1lIGFuZCB0aHVzIHRo ZSBza2IgaGFzIHN1ZmZpY2llbnQKdGFpbHJvb20uCgpUaGlzIGlzc3VlIHByZWRhdGVzIGdpdCBo aXN0b3J5LgoKRml4ZXM6IDFkYTE3N2U0YzNmNCAoIkxpbnV4LTIuNi4xMi1yYzIiKQpSZXBvcnRl ZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBX aWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClJldmlld2VkLWJ5OiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcF9vdXRwdXQuYyAgfCAzICsr LQogbmV0L2lwdjYvaXA2X291dHB1dC5jIHwgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX291dHB1 dC5jIGIvbmV0L2lwdjQvaXBfb3V0cHV0LmMKaW5kZXggNjYzNDBhYjc1MGU2Li5lN2RhZWM3Yzc0 MjEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX291dHB1dC5jCisrKyBiL25ldC9pcHY0L2lwX291 dHB1dC5jCkBAIC0xMDQwLDcgKzEwNDAsOCBAQCBzdGF0aWMgaW50IF9faXBfYXBwZW5kX2RhdGEo c3RydWN0IHNvY2sgKnNrLAogCQlpZiAoY29weSA+IGxlbmd0aCkKIAkJCWNvcHkgPSBsZW5ndGg7 CiAKLQkJaWYgKCEocnQtPmRzdC5kZXYtPmZlYXR1cmVzJk5FVElGX0ZfU0cpKSB7CisJCWlmICgh KHJ0LT5kc3QuZGV2LT5mZWF0dXJlcyZORVRJRl9GX1NHKSAmJgorCQkgICAgc2tiX3RhaWxyb29t KHNrYikgPj0gY29weSkgewogCQkJdW5zaWduZWQgaW50IG9mZjsKIAogCQkJb2ZmID0gc2tiLT5s ZW47CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0 cHV0LmMKaW5kZXggNDA2NWFlMGMzMmEwLi4wNzIzMzM3NjBhNTIgMTAwNjQ0Ci0tLSBhL25ldC9p cHY2L2lwNl9vdXRwdXQuYworKysgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKQEAgLTE0ODksNyAr MTQ4OSw4IEBAIHN0YXRpYyBpbnQgX19pcDZfYXBwZW5kX2RhdGEoc3RydWN0IHNvY2sgKnNrLAog CQlpZiAoY29weSA+IGxlbmd0aCkKIAkJCWNvcHkgPSBsZW5ndGg7CiAKLQkJaWYgKCEocnQtPmRz dC5kZXYtPmZlYXR1cmVzJk5FVElGX0ZfU0cpKSB7CisJCWlmICghKHJ0LT5kc3QuZGV2LT5mZWF0 dXJlcyZORVRJRl9GX1NHKSAmJgorCQkgICAgc2tiX3RhaWxyb29tKHNrYikgPj0gY29weSkgewog CQkJdW5zaWduZWQgaW50IG9mZjsKIAogCQkJb2ZmID0gc2tiLT5sZW47Ci0tIAoyLjE0LjMKCgpG cm9tIGE4YWQ3ZDBmZjFjYzk0ZDhiZDQzYzUzMDNlYTU2ZjdlNmViZTM3N2EgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4K RGF0ZTogRnJpLCAxMSBNYXkgMjAxOCAxMzoyNDoyNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDgv MzJdIHBhY2tldDogaW4gcGFja2V0X3NuZCBzdGFydCB3cml0aW5nIGF0IGxpbmsgbGF5ZXIKIGFs bG9jYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IGI4NGJiYWY3YTZjOGNjYTI0ZjhhY2YyNWEyYzhl NDY5MTNhOTQ3YmEgXQoKUGFja2V0IHNvY2tldHMgYWxsb3cgY29uc3RydWN0aW9uIG9mIHBhY2tl dHMgc2hvcnRlciB0aGFuCmRldi0+aGFyZF9oZWFkZXJfbGVuIHRvIGFjY29tbW9kYXRlIHByb3Rv Y29scyB3aXRoIHZhcmlhYmxlIGxlbmd0aApsaW5rIGxheWVyIGhlYWRlcnMuIFRoZXNlIHBhY2tl dHMgYXJlIHBhZGRlZCB0byBkZXYtPmhhcmRfaGVhZGVyX2xlbiwKYmVjYXVzZSBzb21lIGRldmlj ZSBkcml2ZXJzIGludGVycHJldCB0aGF0IGFzIGEgbWluaW11bSBwYWNrZXQgc2l6ZS4KCnBhY2tl dF9zbmQgcmVzZXJ2ZXMgZGV2LT5oYXJkX2hlYWRlcl9sZW4gYnl0ZXMgb24gYWxsb2NhdGlvbi4K U09DS19ER1JBTSBzb2NrZXRzIGNhbGwgc2tiX3B1c2ggaW4gZGV2X2hhcmRfaGVhZGVyKCkgdG8g ZW5zdXJlIHRoYXQKbGluayBsYXllciBoZWFkZXJzIGFyZSBzdG9yZWQgaW4gdGhlIHJlc2VydmVk IHJhbmdlLiBTT0NLX1JBVyBzb2NrZXRzCmRvIHRoZSBzYW1lIGluIHRwYWNrZXRfc25kLCBidXQg bm90IGluIHBhY2tldF9zbmQuCgpTeXpib3Qgd2FzIGFibGUgdG8gc2VuZCBhIHplcm8gYnl0ZSBw YWNrZXQgdG8gYSBkZXZpY2Ugd2l0aCBtYXNzaXZlCjExNkIgbGluayBsYXllciBoZWFkZXIsIGNh dXNpbmcgcGFkZGluZyB0byBjcm9zcyBvdmVyIGludG8gc2tiX3NoaW5mby4KRml4IHRoaXMgYnkg d3JpdGluZyBmcm9tIHRoZSBzdGFydCBvZiB0aGUgbGxoZWFkZXIgcmVzZXJ2ZWQgcmFuZ2UgYWxz bwppbiB0aGUgY2FzZSBvZiBwYWNrZXRfc25kL1NPQ0tfUkFXLgoKVXBkYXRlIHNrYl9zZXRfbmV0 d29ya19oZWFkZXIgdG8gdGhlIG5ldyBvZmZzZXQuIFRoaXMgYWxzbyBjb3JyZWN0cwppdCBmb3Ig U09DS19ER1JBTSwgd2hlcmUgaXQgaW5jb3JyZWN0bHkgZG91YmxlIGNvdW50ZWQgcmVzZXJ2ZSBk dWUgdG8KdGhlIHNrYl9wdXNoIGluIGRldl9oYXJkX2hlYWRlci4KCkZpeGVzOiA5ZWQ5ODhjZDU5 MTUgKCJwYWNrZXQ6IHZhbGlkYXRlIHZhcmlhYmxlIGxlbmd0aCBsbCBoZWFkZXJzIikKUmVwb3J0 ZWQtYnk6IHN5emJvdCs3MWQ3NGE1NDA2ZDAyMDU3ZDU1OUBzeXprYWxsZXIuYXBwc3BvdG1haWwu Y29tClNpZ25lZC1vZmYtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9wYWNrZXQvYWZfcGFja2V0LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tl dC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCAzYjQzYjFmY2Q2MTguLmM2YTJkZDg5 MGRlMyAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFja2V0 L2FmX3BhY2tldC5jCkBAIC0yOTAzLDEzICsyOTAzLDE1IEBAIHN0YXRpYyBpbnQgcGFja2V0X3Nu ZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBsZW4pCiAJ aWYgKHNrYiA9PSBOVUxMKQogCQlnb3RvIG91dF91bmxvY2s7CiAKLQlza2Jfc2V0X25ldHdvcmtf aGVhZGVyKHNrYiwgcmVzZXJ2ZSk7CisJc2tiX3Jlc2V0X25ldHdvcmtfaGVhZGVyKHNrYik7CiAK IAllcnIgPSAtRUlOVkFMOwogCWlmIChzb2NrLT50eXBlID09IFNPQ0tfREdSQU0pIHsKIAkJb2Zm c2V0ID0gZGV2X2hhcmRfaGVhZGVyKHNrYiwgZGV2LCBudG9ocyhwcm90byksIGFkZHIsIE5VTEws IGxlbik7CiAJCWlmICh1bmxpa2VseShvZmZzZXQgPCAwKSkKIAkJCWdvdG8gb3V0X2ZyZWU7CisJ fSBlbHNlIGlmIChyZXNlcnZlKSB7CisJCXNrYl9wdXNoKHNrYiwgcmVzZXJ2ZSk7CiAJfQogCiAJ LyogUmV0dXJucyAtRUZBVUxUIG9uIGVycm9yICovCi0tIAoyLjE0LjMKCgpGcm9tIDM5OWFjNmVm NTMxYjFiNjA5NWY4YmZhMzNkZDBkNzYzMWM2MzEzNzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxOCBN YXkgMjAxOCAwNDo0Nzo1NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMzJdIHNvY2tfZGlhZzog Zml4IHVzZS1hZnRlci1mcmVlIHJlYWQgaW4gX19za19mcmVlCgpbIFVwc3RyZWFtIGNvbW1pdCA5 NzA5MDIwYzg2ZjZiZjg0MzljYTNlZmZjNThjZmNhNDlhNWRlMTkyIF0KCldlIG11c3Qgbm90IGNh bGwgc29ja19kaWFnX2hhc19kZXN0cm95X2xpc3RlbmVycyhzaykgb24gYSBzb2NrZXQKdGhhdCBo YXMgbm8gcmVmZXJlbmNlIG9uIG5ldCBzdHJ1Y3R1cmUuCgpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXIt ZnJlZSBpbiBzb2NrX2RpYWdfaGFzX2Rlc3Ryb3lfbGlzdGVuZXJzIGluY2x1ZGUvbGludXgvc29j a19kaWFnLmg6NzUgW2lubGluZV0KQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZyZWUgaW4gX19za19m cmVlKzB4MzI5LzB4MzQwIG5ldC9jb3JlL3NvY2suYzoxNjA5ClJlYWQgb2Ygc2l6ZSA4IGF0IGFk ZHIgZmZmZjg4MDE4YTAyZTNhMCBieSB0YXNrIHN3YXBwZXIvMS8wCgpDUFU6IDEgUElEOiAwIENv bW06IHN3YXBwZXIvMSBOb3QgdGFpbnRlZCA0LjE3LjAtcmM1KyAjNTQKSGFyZHdhcmUgbmFtZTog R29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1Mg R29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIDxJUlE+CiBfX2R1bXBfc3RhY2sgbGliL2R1 bXBfc3RhY2suYzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDFiOS8weDI5NCBsaWIvZHVtcF9z dGFjay5jOjExMwogcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDZjLzB4MjBiIG1tL2thc2Fu L3JlcG9ydC5jOjI1Ngoga2FzYW5fcmVwb3J0X2Vycm9yIG1tL2thc2FuL3JlcG9ydC5jOjM1NCBb aW5saW5lXQoga2FzYW5fcmVwb3J0LmNvbGQuNysweDI0Mi8weDJmZSBtbS9rYXNhbi9yZXBvcnQu Yzo0MTIKIF9fYXNhbl9yZXBvcnRfbG9hZDhfbm9hYm9ydCsweDE0LzB4MjAgbW0va2FzYW4vcmVw b3J0LmM6NDMzCiBzb2NrX2RpYWdfaGFzX2Rlc3Ryb3lfbGlzdGVuZXJzIGluY2x1ZGUvbGludXgv c29ja19kaWFnLmg6NzUgW2lubGluZV0KIF9fc2tfZnJlZSsweDMyOS8weDM0MCBuZXQvY29yZS9z b2NrLmM6MTYwOQogc2tfZnJlZSsweDQyLzB4NTAgbmV0L2NvcmUvc29jay5jOjE2MjMKIHNvY2tf cHV0IGluY2x1ZGUvbmV0L3NvY2suaDoxNjY0IFtpbmxpbmVdCiByZXFza19mcmVlIGluY2x1ZGUv bmV0L3JlcXVlc3Rfc29jay5oOjExNiBbaW5saW5lXQogcmVxc2tfcHV0IGluY2x1ZGUvbmV0L3Jl cXVlc3Rfc29jay5oOjEyNCBbaW5saW5lXQogaW5ldF9jc2tfcmVxc2tfcXVldWVfZHJvcF9hbmRf cHV0IG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6NjcyIFtpbmxpbmVdCiByZXFza190 aW1lcl9oYW5kbGVyKzB4ZTI3LzB4MTBlMCBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5j OjczOQogY2FsbF90aW1lcl9mbisweDIzMC8weDk0MCBrZXJuZWwvdGltZS90aW1lci5jOjEzMjYK IGV4cGlyZV90aW1lcnMga2VybmVsL3RpbWUvdGltZXIuYzoxMzYzIFtpbmxpbmVdCiBfX3J1bl90 aW1lcnMrMHg3OWUvMHhjNTAga2VybmVsL3RpbWUvdGltZXIuYzoxNjY2CiBydW5fdGltZXJfc29m dGlycSsweDRjLzB4NzAga2VybmVsL3RpbWUvdGltZXIuYzoxNjkyCiBfX2RvX3NvZnRpcnErMHgy ZTAvMHhhZjUga2VybmVsL3NvZnRpcnEuYzoyODUKIGludm9rZV9zb2Z0aXJxIGtlcm5lbC9zb2Z0 aXJxLmM6MzY1IFtpbmxpbmVdCiBpcnFfZXhpdCsweDFkMS8weDIwMCBrZXJuZWwvc29mdGlycS5j OjQwNQogZXhpdGluZ19pcnEgYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5oOjUyNSBbaW5saW5l XQogc21wX2FwaWNfdGltZXJfaW50ZXJydXB0KzB4MTdlLzB4NzEwIGFyY2gveDg2L2tlcm5lbC9h cGljL2FwaWMuYzoxMDUyCiBhcGljX3RpbWVyX2ludGVycnVwdCsweGYvMHgyMCBhcmNoL3g4Ni9l bnRyeS9lbnRyeV82NC5TOjg2MwogPC9JUlE+ClJJUDogMDAxMDpuYXRpdmVfc2FmZV9oYWx0KzB4 Ni8weDEwIGFyY2gveDg2L2luY2x1ZGUvYXNtL2lycWZsYWdzLmg6NTQKUlNQOiAwMDE4OmZmZmY4 ODAxZDlhZTdjMzggRUZMQUdTOiAwMDAwMDI4MiBPUklHX1JBWDogZmZmZmZmZmZmZmZmZmYxMwpS QVg6IGRmZmZmYzAwMDAwMDAwMDAgUkJYOiAxZmZmZjEwMDNiMzVjZjhhIFJDWDogMDAwMDAwMDAw MDAwMDAwMApSRFg6IDFmZmZmZmZmZjExYTMwZDAgUlNJOiAwMDAwMDAwMDAwMDAwMDAxIFJESTog ZmZmZmZmZmY4OGQxODY4MApSQlA6IGZmZmY4ODAxZDlhZTdjMzggUjA4OiBmZmZmZWQwMDNiNWU0 NmMzIFIwOTogMDAwMDAwMDAwMDAwMDAwMApSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAw MDAwMDAwMDAwMDAwIFIxMjogMDAwMDAwMDAwMDAwMDAwMQpSMTM6IGZmZmY4ODAxZDlhZTdjZjAg UjE0OiBmZmZmZmZmZjg5N2JlZjIwIFIxNTogMDAwMDAwMDAwMDAwMDAwMAogYXJjaF9zYWZlX2hh bHQgYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaDo5NCBbaW5saW5lXQogZGVmYXVsdF9p ZGxlKzB4YzIvMHg0NDAgYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYzozNTQKIGFyY2hfY3B1X2lk bGUrMHgxMC8weDIwIGFyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmM6MzQ1CiBkZWZhdWx0X2lkbGVf Y2FsbCsweDZkLzB4OTAga2VybmVsL3NjaGVkL2lkbGUuYzo5MwogY3B1aWRsZV9pZGxlX2NhbGwg a2VybmVsL3NjaGVkL2lkbGUuYzoxNTMgW2lubGluZV0KIGRvX2lkbGUrMHgzOTUvMHg1NjAga2Vy bmVsL3NjaGVkL2lkbGUuYzoyNjIKIGNwdV9zdGFydHVwX2VudHJ5KzB4MTA0LzB4MTIwIGtlcm5l bC9zY2hlZC9pZGxlLmM6MzY4CiBzdGFydF9zZWNvbmRhcnkrMHg0MjYvMHg1YjAgYXJjaC94ODYv a2VybmVsL3NtcGJvb3QuYzoyNjkKIHNlY29uZGFyeV9zdGFydHVwXzY0KzB4YTUvMHhiMCBhcmNo L3g4Ni9rZXJuZWwvaGVhZF82NC5TOjI0MgoKQWxsb2NhdGVkIGJ5IHRhc2sgNDU1NzoKIHNhdmVf c3RhY2srMHg0My8weGQwIG1tL2thc2FuL2thc2FuLmM6NDQ4CiBzZXRfdHJhY2sgbW0va2FzYW4v a2FzYW4uYzo0NjAgW2lubGluZV0KIGthc2FuX2ttYWxsb2MrMHhjNC8weGUwIG1tL2thc2FuL2th c2FuLmM6NTUzCiBrYXNhbl9zbGFiX2FsbG9jKzB4MTIvMHgyMCBtbS9rYXNhbi9rYXNhbi5jOjQ5 MAoga21lbV9jYWNoZV9hbGxvYysweDEyZS8weDc2MCBtbS9zbGFiLmM6MzU1NAoga21lbV9jYWNo ZV96YWxsb2MgaW5jbHVkZS9saW51eC9zbGFiLmg6NjkxIFtpbmxpbmVdCiBuZXRfYWxsb2MgbmV0 L2NvcmUvbmV0X25hbWVzcGFjZS5jOjM4MyBbaW5saW5lXQogY29weV9uZXRfbnMrMHgxNTkvMHg0 YzAgbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jOjQyMwogY3JlYXRlX25ld19uYW1lc3BhY2VzKzB4 NjlkLzB4OGYwIGtlcm5lbC9uc3Byb3h5LmM6MTA3CiB1bnNoYXJlX25zcHJveHlfbmFtZXNwYWNl cysweGMzLzB4MWYwIGtlcm5lbC9uc3Byb3h5LmM6MjA2CiBrc3lzX3Vuc2hhcmUrMHg3MDgvMHhm OTAga2VybmVsL2ZvcmsuYzoyNDA4CiBfX2RvX3N5c191bnNoYXJlIGtlcm5lbC9mb3JrLmM6MjQ3 NiBbaW5saW5lXQogX19zZV9zeXNfdW5zaGFyZSBrZXJuZWwvZm9yay5jOjI0NzQgW2lubGluZV0K IF9feDY0X3N5c191bnNoYXJlKzB4MzEvMHg0MCBrZXJuZWwvZm9yay5jOjI0NzQKIGRvX3N5c2Nh bGxfNjQrMHgxYjEvMHg4MDAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjg3CiBlbnRyeV9TWVND QUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlCgpGcmVlZCBieSB0YXNrIDY5Ogogc2F2ZV9z dGFjaysweDQzLzB4ZDAgbW0va2FzYW4va2FzYW4uYzo0NDgKIHNldF90cmFjayBtbS9rYXNhbi9r YXNhbi5jOjQ2MCBbaW5saW5lXQogX19rYXNhbl9zbGFiX2ZyZWUrMHgxMWEvMHgxNzAgbW0va2Fz YW4va2FzYW4uYzo1MjEKIGthc2FuX3NsYWJfZnJlZSsweGUvMHgxMCBtbS9rYXNhbi9rYXNhbi5j OjUyOAogX19jYWNoZV9mcmVlIG1tL3NsYWIuYzozNDk4IFtpbmxpbmVdCiBrbWVtX2NhY2hlX2Zy ZWUrMHg4Ni8weDJkMCBtbS9zbGFiLmM6Mzc1NgogbmV0X2ZyZWUgbmV0L2NvcmUvbmV0X25hbWVz cGFjZS5jOjM5OSBbaW5saW5lXQogbmV0X2Ryb3BfbnMucGFydC4xNCsweDExYS8weDEzMCBuZXQv Y29yZS9uZXRfbmFtZXNwYWNlLmM6NDA2CiBuZXRfZHJvcF9ucyBuZXQvY29yZS9uZXRfbmFtZXNw YWNlLmM6NDA1IFtpbmxpbmVdCiBjbGVhbnVwX25ldCsweDZhMS8weGIyMCBuZXQvY29yZS9uZXRf bmFtZXNwYWNlLmM6NTQxCiBwcm9jZXNzX29uZV93b3JrKzB4YzFlLzB4MWI1MCBrZXJuZWwvd29y a3F1ZXVlLmM6MjE0NQogd29ya2VyX3RocmVhZCsweDFjYy8weDE0NDAga2VybmVsL3dvcmtxdWV1 ZS5jOjIyNzkKIGt0aHJlYWQrMHgzNDUvMHg0MTAga2VybmVsL2t0aHJlYWQuYzoyNDAKIHJldF9m cm9tX2ZvcmsrMHgzYS8weDUwIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6NDEyCgpUaGUgYnVn Z3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBvYmplY3QgYXQgZmZmZjg4MDE4YTAyYzE0MAogd2hp Y2ggYmVsb25ncyB0byB0aGUgY2FjaGUgbmV0X25hbWVzcGFjZSBvZiBzaXplIDg4MzIKVGhlIGJ1 Z2d5IGFkZHJlc3MgaXMgbG9jYXRlZCA4ODAwIGJ5dGVzIGluc2lkZSBvZgogODgzMi1ieXRlIHJl Z2lvbiBbZmZmZjg4MDE4YTAyYzE0MCwgZmZmZjg4MDE4YTAyZTNjMCkKVGhlIGJ1Z2d5IGFkZHJl c3MgYmVsb25ncyB0byB0aGUgcGFnZToKcGFnZTpmZmZmZWEwMDA2MjgwYjAwIGNvdW50OjEgbWFw Y291bnQ6MCBtYXBwaW5nOmZmZmY4ODAxOGEwMmMxNDAgaW5kZXg6MHgwIGNvbXBvdW5kX21hcGNv dW50OiAwCmZsYWdzOiAweDJmZmZjMDAwMDAwODEwMChzbGFifGhlYWQpCnJhdzogMDJmZmZjMDAw MDAwODEwMCBmZmZmODgwMThhMDJjMTQwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDEwMDAwMDAw MQpyYXc6IGZmZmZlYTAwMDYyYTEzMjAgZmZmZmVhMDAwNjI2ODAyMCBmZmZmODgwMWQ5YmRkZTQw IDAwMDAwMDAwMDAwMDAwMDAKcGFnZSBkdW1wZWQgYmVjYXVzZToga2FzYW46IGJhZCBhY2Nlc3Mg ZGV0ZWN0ZWQKCkZpeGVzOiBiOTIyNjIyZWM2ZWYgKCJzb2NrX2RpYWc6IGRvbid0IGJyb2FkY2Fz dCBrZXJuZWwgc29ja2V0cyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KQ2M6IENyYWlnIEdhbGxlayA8a3JhaWdAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQt Ynk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9zb2NrLmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMKaW5kZXggODViMGI2 NGU3ZjlkLi44MWMyZGY4NGY5NTMgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NvY2suYworKysgYi9u ZXQvY29yZS9zb2NrLmMKQEAgLTE2MDMsNyArMTYwMyw3IEBAIHN0YXRpYyB2b2lkIF9fc2tfZnJl ZShzdHJ1Y3Qgc29jayAqc2spCiAJaWYgKGxpa2VseShzay0+c2tfbmV0X3JlZmNudCkpCiAJCXNv Y2tfaW51c2VfYWRkKHNvY2tfbmV0KHNrKSwgLTEpOwogCi0JaWYgKHVubGlrZWx5KHNvY2tfZGlh Z19oYXNfZGVzdHJveV9saXN0ZW5lcnMoc2spICYmIHNrLT5za19uZXRfcmVmY250KSkKKwlpZiAo dW5saWtlbHkoc2stPnNrX25ldF9yZWZjbnQgJiYgc29ja19kaWFnX2hhc19kZXN0cm95X2xpc3Rl bmVycyhzaykpKQogCQlzb2NrX2RpYWdfYnJvYWRjYXN0X2Rlc3Ryb3koc2spOwogCWVsc2UKIAkJ c2tfZGVzdHJ1Y3Qoc2spOwotLSAKMi4xNC4zCgoKRnJvbSAwYzhiMGIwOGY5MTExYjM0NTY3MDYx MjI5NDRkMDU0ZDhhOWNkODIzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMTQgTWF5IDIwMTggMjE6MTQ6 MjYgLTA3MDAKU3ViamVjdDogW1BBVENIIDEwLzMyXSB0Y3A6IHB1cmdlIHdyaXRlIHF1ZXVlIGlu IHRjcF9jb25uZWN0X2luaXQoKQoKWyBVcHN0cmVhbSBjb21taXQgN2Y1ODJiMjQ4ZDBhODZiYWU1 Nzg4YzU0OGQ3YmI1YmNhNmY3NjkxYSBdCgpzeXprYWxsZXIgZm91bmQgYSByZWxpYWJsZSB3YXkg dG8gY3Jhc2ggdGhlIGhvc3QsIGhpdHRpbmcgYSBCVUcoKQppbiBfX3RjcF9yZXRyYW5zbWl0X3Nr YigpCgpNYWxpY291cyBNU0dfRkFTVE9QRU4gaXMgdGhlIHJvb3QgY2F1c2UuIFdlIG5lZWQgdG8g cHVyZ2Ugd3JpdGUgcXVldWUKaW4gdGNwX2Nvbm5lY3RfaW5pdCgpIGF0IHRoZSBwb2ludCB3ZSBp bml0IHNuZF91bmEvd3JpdGVfc2VxLgoKVGhpcyBwYXRjaCBhbHNvIHJlcGxhY2VzIHRoZSBCVUco KSBieSBhIGxlc3MgaW50cnVzaXZlIFdBUk5fT05fT05DRSgpCgprZXJuZWwgQlVHIGF0IG5ldC9p cHY0L3RjcF9vdXRwdXQuYzoyODM3IQppbnZhbGlkIG9wY29kZTogMDAwMCBbIzFdIFNNUCBLQVNB TgpEdW1waW5nIGZ0cmFjZSBidWZmZXI6CiAgIChmdHJhY2UgYnVmZmVyIGVtcHR5KQpNb2R1bGVz IGxpbmtlZCBpbjoKQ1BVOiAwIFBJRDogNTI3NiBDb21tOiBzeXotZXhlY3V0b3IwIE5vdCB0YWlu dGVkIDQuMTcuMC1yYzMrICM1MQpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUg RW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpSSVA6 IDAwMTA6X190Y3BfcmV0cmFuc21pdF9za2IrMHgyOTkyLzB4MmViMCBuZXQvaXB2NC90Y3Bfb3V0 cHV0LmM6MjgzNwpSU1A6IDAwMDA6ZmZmZjg4MDFkYWUwNmZmOCBFRkxBR1M6IDAwMDEwMjA2ClJB WDogZmZmZjg4MDFiOWZlNjFjMCBSQlg6IDAwMDAwMDAwZmZjMThhMTYgUkNYOiBmZmZmZmZmZjg2 NGUxYTQ5ClJEWDogMDAwMDAwMDAwMDAwMDEwMCBSU0k6IGZmZmZmZmZmODY0ZTJlMTIgUkRJOiAw MDAwMDAwMDAwMDAwMDA1ClJCUDogZmZmZjg4MDFkYWUwNzNhMCBSMDg6IGZmZmY4ODAxYjlmZTYx YzAgUjA5OiBmZmZmZWQwMDM5YzQwZGQyClIxMDogZmZmZmVkMDAzOWM0MGRkMiBSMTE6IGZmZmY4 ODAxY2UyMDZlOTMgUjEyOiAwMDAwMDAwMDQyMWVlYWFkClIxMzogZmZmZjg4MDFjZTIwNmQ0ZSBS MTQ6IGZmZmY4ODAxY2UyMDZjYzAgUjE1OiBmZmZmODgwMWNkNGY0YTgwCkZTOiAgMDAwMDAwMDAw MDAwMDAwMCgwMDAwKSBHUzpmZmZmODgwMWRhZTAwMDAwKDAwNjMpIGtubEdTOjAwMDAwMDAwMDk2 YmM5MDAKQ1M6ICAwMDEwIERTOiAwMDJiIEVTOiAwMDJiIENSMDogMDAwMDAwMDA4MDA1MDAzMwpD UjI6IDAwMDAwMDAwMjAwMDAwMDAgQ1IzOiAwMDAwMDAwMWM0N2I2MDAwIENSNDogMDAwMDAwMDAw MDE0MDZmMApEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjog MDAwMDAwMDAwMDAwMDAwMApEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUw ZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApDYWxsIFRyYWNlOgogPElSUT4KIHRjcF9yZXRyYW5z bWl0X3NrYisweDJlLzB4MjUwIG5ldC9pcHY0L3RjcF9vdXRwdXQuYzoyOTIzCiB0Y3BfcmV0cmFu c21pdF90aW1lcisweGM1MC8weDMwNjAgbmV0L2lwdjQvdGNwX3RpbWVyLmM6NDg4CiB0Y3Bfd3Jp dGVfdGltZXJfaGFuZGxlcisweDMzOS8weDk2MCBuZXQvaXB2NC90Y3BfdGltZXIuYzo1NzMKIHRj cF93cml0ZV90aW1lcisweDExMS8weDFkMCBuZXQvaXB2NC90Y3BfdGltZXIuYzo1OTMKIGNhbGxf dGltZXJfZm4rMHgyMzAvMHg5NDAga2VybmVsL3RpbWUvdGltZXIuYzoxMzI2CiBleHBpcmVfdGlt ZXJzIGtlcm5lbC90aW1lL3RpbWVyLmM6MTM2MyBbaW5saW5lXQogX19ydW5fdGltZXJzKzB4Nzll LzB4YzUwIGtlcm5lbC90aW1lL3RpbWVyLmM6MTY2NgogcnVuX3RpbWVyX3NvZnRpcnErMHg0Yy8w eDcwIGtlcm5lbC90aW1lL3RpbWVyLmM6MTY5MgogX19kb19zb2Z0aXJxKzB4MmUwLzB4YWY1IGtl cm5lbC9zb2Z0aXJxLmM6Mjg1CiBpbnZva2Vfc29mdGlycSBrZXJuZWwvc29mdGlycS5jOjM2NSBb aW5saW5lXQogaXJxX2V4aXQrMHgxZDEvMHgyMDAga2VybmVsL3NvZnRpcnEuYzo0MDUKIGV4aXRp bmdfaXJxIGFyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMuaDo1MjUgW2lubGluZV0KIHNtcF9hcGlj X3RpbWVyX2ludGVycnVwdCsweDE3ZS8weDcxMCBhcmNoL3g4Ni9rZXJuZWwvYXBpYy9hcGljLmM6 MTA1MgogYXBpY190aW1lcl9pbnRlcnJ1cHQrMHhmLzB4MjAgYXJjaC94ODYvZW50cnkvZW50cnlf NjQuUzo4NjMKCkZpeGVzOiBjZjYwYWYwM2NhNGUgKCJuZXQtdGNwOiBGYXN0IE9wZW4gY2xpZW50 IC0gc2VuZG1zZyhNU0dfRkFTVE9QRU4pIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpDYzogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ CkNjOiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5 emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkFja2VkLWJ5OiBOZWFsIENhcmR3ZWxs IDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9vdXRwdXQuYyB8IDcgKysrKyst LQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKaW5k ZXggNjgxODA0MmNkOGE5Li4zYTAyMTE2OTJjMjggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9v dXRwdXQuYworKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKQEAgLTI4NjAsOCArMjg2MCwxMCBA QCBpbnQgX190Y3BfcmV0cmFuc21pdF9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBpbnQgc2VncykKIAkJcmV0dXJuIC1FQlVTWTsKIAogCWlmIChiZWZvcmUoVENQX1NL Ql9DQihza2IpLT5zZXEsIHRwLT5zbmRfdW5hKSkgewotCQlpZiAoYmVmb3JlKFRDUF9TS0JfQ0Io c2tiKS0+ZW5kX3NlcSwgdHAtPnNuZF91bmEpKQotCQkJQlVHKCk7CisJCWlmICh1bmxpa2VseShi ZWZvcmUoVENQX1NLQl9DQihza2IpLT5lbmRfc2VxLCB0cC0+c25kX3VuYSkpKSB7CisJCQlXQVJO X09OX09OQ0UoMSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQogCQlpZiAodGNwX3RyaW1faGVh ZChzaywgc2tiLCB0cC0+c25kX3VuYSAtIFRDUF9TS0JfQ0Ioc2tiKS0+c2VxKSkKIAkJCXJldHVy biAtRU5PTUVNOwogCX0KQEAgLTMzNjksNiArMzM3MSw3IEBAIHN0YXRpYyB2b2lkIHRjcF9jb25u ZWN0X2luaXQoc3RydWN0IHNvY2sgKnNrKQogCXNvY2tfcmVzZXRfZmxhZyhzaywgU09DS19ET05F KTsKIAl0cC0+c25kX3duZCA9IDA7CiAJdGNwX2luaXRfd2wodHAsIDApOworCXRjcF93cml0ZV9x dWV1ZV9wdXJnZShzayk7CiAJdHAtPnNuZF91bmEgPSB0cC0+d3JpdGVfc2VxOwogCXRwLT5zbmRf c21sID0gdHAtPndyaXRlX3NlcTsKIAl0cC0+c25kX3VwID0gdHAtPndyaXRlX3NlcTsKLS0gCjIu MTQuMwoKCkZyb20gZjZkYTE1MmRlMzM1NGU1MmJhNWIxODZjYmU1NDhiMTA5M2Q1MDZiZiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNv bT4KRGF0ZTogRnJpLCAxMSBNYXkgMjAxOCAxMDo0OToyNSArMDgwMApTdWJqZWN0OiBbUEFUQ0gg MTEvMzJdIHR1bjogZml4IHVzZSBhZnRlciBmcmVlIGZvciBwdHJfcmluZwoKWyBVcHN0cmVhbSBj b21taXQgYjE5NmQ4OGFiYThhYzcyYjc3NTEzNzg1NDEyMTA5N2Y0YzRjNjg2MiBdCgpXZSB1c2Vk IHRvIGluaXRpYWxpemUgcHRyX3JpbmcgZHVyaW5nIFRVTlNFVElGRiwgdGhpcyBpcyBiZWNhdXNl IGl0cwpzaXplIGRlcGVuZHMgb24gdGhlIHR4X3F1ZXVlX2xlbiBvZiBuZXRkZXZpY2UuIEFuZCB3 ZSB0cnkgdG8gY2xlYW4gaXQKdXAgd2hlbiBzb2NrZXQgd2VyZSBkZXRhY2hlZCBmcm9tIG5ldGRl dmljZS4gQSByYWNlIHdlcmUgc3BvdHRlZCB3aGVuCnRyeWluZyB0byBkbyB1bmluaXQgZHVyaW5n IGEgcmVhZCB3aGljaCB3aWxsIGxlYWQgYSB1c2UgYWZ0ZXIgZnJlZSBmb3IKcG9pbnRlciByaW5n LiBTb2x2aW5nIHRoaXMgYnkgYWx3YXlzIGluaXRpYWxpemUgYSB6ZXJvIHNpemUgcHRyX3JpbmcK aW4gb3BlbigpIGFuZCBkbyByZXNpemluZyBkdXJpbmcgVFVOU0VUSUZGLCBhbmQgdGhlbiB3ZSBj YW4gc2FmZWx5IGRvCmNsZWFudXAgZHVyaW5nIGNsb3NlKCkuIFdpdGggdGhpcywgdGhlcmUncyBu byBuZWVkIGZvciB0aGUgd29ya2Fyb3VuZAp0aGF0IHdhcyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA0 ZGYwYmZjNzk5MDQgKCJ0dW46IGZpeCBhIG1lbW9yeSBsZWFrCmZvciB0ZmlsZS0+dHhfYXJyYXki KS4KClJlcG9ydGVkLWJ5OiBzeXpib3QrZThiOTAyYzNjM2ZhZGYwYTlkYmFAc3l6a2FsbGVyLmFw cHNwb3RtYWlsLmNvbQpDYzogRXJpYyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPgpD YzogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkNjOiBNaWNoYWVsIFMuIFRz aXJraW4gPG1zdEByZWRoYXQuY29tPgpGaXhlczogMTU3NmQ5ODYwNTk5ICgidHVuOiBzd2l0Y2gg dG8gdXNlIHNrYiBhcnJheSBmb3IgdHgiKQpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBXYW5nIDxqYXNv d2FuZ0ByZWRoYXQuY29tPgpBY2tlZC1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0 LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L3R1bi5jIHwgMjcgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdHVuLmMgYi9kcml2ZXJzL25ldC90dW4uYwppbmRleCA2Yzdi ZGQwYzM2MWEuLmYyZGU1OWQ2ZDU4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHVuLmMKKysr IGIvZHJpdmVycy9uZXQvdHVuLmMKQEAgLTY4MCwxNSArNjgwLDYgQEAgc3RhdGljIHZvaWQgdHVu X3F1ZXVlX3B1cmdlKHN0cnVjdCB0dW5fZmlsZSAqdGZpbGUpCiAJc2tiX3F1ZXVlX3B1cmdlKCZ0 ZmlsZS0+c2suc2tfZXJyb3JfcXVldWUpOwogfQogCi1zdGF0aWMgdm9pZCB0dW5fY2xlYW51cF90 eF9yaW5nKHN0cnVjdCB0dW5fZmlsZSAqdGZpbGUpCi17Ci0JaWYgKHRmaWxlLT50eF9yaW5nLnF1 ZXVlKSB7Ci0JCXB0cl9yaW5nX2NsZWFudXAoJnRmaWxlLT50eF9yaW5nLCB0dW5fcHRyX2ZyZWUp OwotCQl4ZHBfcnhxX2luZm9fdW5yZWcoJnRmaWxlLT54ZHBfcnhxKTsKLQkJbWVtc2V0KCZ0Zmls ZS0+dHhfcmluZywgMCwgc2l6ZW9mKHRmaWxlLT50eF9yaW5nKSk7Ci0JfQotfQotCiBzdGF0aWMg dm9pZCBfX3R1bl9kZXRhY2goc3RydWN0IHR1bl9maWxlICp0ZmlsZSwgYm9vbCBjbGVhbikKIHsK IAlzdHJ1Y3QgdHVuX2ZpbGUgKm50ZmlsZTsKQEAgLTczNSw3ICs3MjYsOCBAQCBzdGF0aWMgdm9p ZCBfX3R1bl9kZXRhY2goc3RydWN0IHR1bl9maWxlICp0ZmlsZSwgYm9vbCBjbGVhbikKIAkJCSAg ICB0dW4tPmRldi0+cmVnX3N0YXRlID09IE5FVFJFR19SRUdJU1RFUkVEKQogCQkJCXVucmVnaXN0 ZXJfbmV0ZGV2aWNlKHR1bi0+ZGV2KTsKIAkJfQotCQl0dW5fY2xlYW51cF90eF9yaW5nKHRmaWxl KTsKKwkJaWYgKHR1bikKKwkJCXhkcF9yeHFfaW5mb191bnJlZygmdGZpbGUtPnhkcF9yeHEpOwog CQlzb2NrX3B1dCgmdGZpbGUtPnNrKTsKIAl9CiB9CkBAIC03NzUsMTQgKzc2NywxNCBAQCBzdGF0 aWMgdm9pZCB0dW5fZGV0YWNoX2FsbChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQl0dW5fbmFw aV9kZWwodHVuLCB0ZmlsZSk7CiAJCS8qIERyb3AgcmVhZCBxdWV1ZSAqLwogCQl0dW5fcXVldWVf cHVyZ2UodGZpbGUpOworCQl4ZHBfcnhxX2luZm9fdW5yZWcoJnRmaWxlLT54ZHBfcnhxKTsKIAkJ c29ja19wdXQoJnRmaWxlLT5zayk7Ci0JCXR1bl9jbGVhbnVwX3R4X3JpbmcodGZpbGUpOwogCX0K IAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodGZpbGUsIHRtcCwgJnR1bi0+ZGlzYWJsZWQsIG5l eHQpIHsKIAkJdHVuX2VuYWJsZV9xdWV1ZSh0ZmlsZSk7CiAJCXR1bl9xdWV1ZV9wdXJnZSh0Zmls ZSk7CisJCXhkcF9yeHFfaW5mb191bnJlZygmdGZpbGUtPnhkcF9yeHEpOwogCQlzb2NrX3B1dCgm dGZpbGUtPnNrKTsKLQkJdHVuX2NsZWFudXBfdHhfcmluZyh0ZmlsZSk7CiAJfQogCUJVR19PTih0 dW4tPm51bWRpc2FibGVkICE9IDApOwogCkBAIC04MjYsNyArODE4LDggQEAgc3RhdGljIGludCB0 dW5fYXR0YWNoKHN0cnVjdCB0dW5fc3RydWN0ICp0dW4sIHN0cnVjdCBmaWxlICpmaWxlLAogCX0K IAogCWlmICghdGZpbGUtPmRldGFjaGVkICYmCi0JICAgIHB0cl9yaW5nX2luaXQoJnRmaWxlLT50 eF9yaW5nLCBkZXYtPnR4X3F1ZXVlX2xlbiwgR0ZQX0tFUk5FTCkpIHsKKwkgICAgcHRyX3Jpbmdf cmVzaXplKCZ0ZmlsZS0+dHhfcmluZywgZGV2LT50eF9xdWV1ZV9sZW4sCisJCQkgICAgR0ZQX0tF Uk5FTCwgdHVuX3B0cl9mcmVlKSkgewogCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIG91dDsKIAl9 CkBAIC0zMTMxLDYgKzMxMjQsMTEgQEAgc3RhdGljIGludCB0dW5fY2hyX29wZW4oc3RydWN0IGlu b2RlICppbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlKQogCQkJCQkgICAgJnR1bl9wcm90bywgMCk7 CiAJaWYgKCF0ZmlsZSkKIAkJcmV0dXJuIC1FTk9NRU07CisJaWYgKHB0cl9yaW5nX2luaXQoJnRm aWxlLT50eF9yaW5nLCAwLCBHRlBfS0VSTkVMKSkgeworCQlza19mcmVlKCZ0ZmlsZS0+c2spOwor CQlyZXR1cm4gLUVOT01FTTsKKwl9CisKIAlSQ1VfSU5JVF9QT0lOVEVSKHRmaWxlLT50dW4sIE5V TEwpOwogCXRmaWxlLT5mbGFncyA9IDA7CiAJdGZpbGUtPmlmaW5kZXggPSAwOwpAQCAtMzE1MSw4 ICszMTQ5LDYgQEAgc3RhdGljIGludCB0dW5fY2hyX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IGZpbGUgKiBmaWxlKQogCiAJc29ja19zZXRfZmxhZygmdGZpbGUtPnNrLCBTT0NLX1pF Uk9DT1BZKTsKIAotCW1lbXNldCgmdGZpbGUtPnR4X3JpbmcsIDAsIHNpemVvZih0ZmlsZS0+dHhf cmluZykpOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTMxNjEsNiArMzE1Nyw3IEBAIHN0YXRpYyBp bnQgdHVuX2Nocl9jbG9zZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkK IAlzdHJ1Y3QgdHVuX2ZpbGUgKnRmaWxlID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCiAJdHVuX2Rl dGFjaCh0ZmlsZSwgdHJ1ZSk7CisJcHRyX3JpbmdfY2xlYW51cCgmdGZpbGUtPnR4X3JpbmcsIHR1 bl9wdHJfZnJlZSk7CiAKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMTQuMwoKCkZyb20gYjMzYzExNGRk NTM2ZjUzMWE5MTdmYjBiNDIzOWJkM2Y0YzI4MDhkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KRGF0ZTogV2VkLCAxNiBNYXkg MjAxOCAyMDozOTozMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzJdIHR1bnRhcDogZml4IHVz ZSBhZnRlciBmcmVlIGR1cmluZyByZWxlYXNlCgpbIFVwc3RyZWFtIGNvbW1pdCA3MDYzZWZkMzNi YjE1YWJjMDE2MDM0N2Y4OWViNWFiYTZiN2QwMDBlIF0KCkFmdGVyIGNvbW1pdCBiMTk2ZDg4YWJh OGEgKCJ0dW46IGZpeCB1c2UgYWZ0ZXIgZnJlZSBmb3IgcHRyX3JpbmciKSB3ZQpuZWVkIGNsZWFu IHVwIHR4IHJpbmcgZHVyaW5nIHJlbGVhc2UoKS4gQnV0IHVuZm9ydHVuYXRlbHksIGl0IHRyaWVz IHRvCmRvIHRoZSBjbGVhbnVwIGJsaW5kbHkgYWZ0ZXIgc29ja2V0IHdlcmUgZGVzdHJveWVkIHdo aWNoIHdpbGwgbGVhZAphbm90aGVyIHVzZS1hZnRlci1mcmVlLiBGaXggdGhpcyBieSBkb2luZyB0 aGUgY2xlYW51cCBiZWZvcmUgZHJvcHBpbmcKdGhlIGxhc3QgcmVmZXJlbmNlIG9mIHRoZSBzb2Nr ZXQgaW4gX190dW5fZGV0YWNoKCkuCgpSZXBvcnRlZC1ieTogQW5kcmVpIFZhZ2luIDxhdmFnaW5A dmlydHVvenpvLmNvbT4KQWNrZWQtYnk6IEFuZHJlaSBWYWdpbiA8YXZhZ2luQHZpcnR1b3p6by5j b20+CkZpeGVzOiBiMTk2ZDg4YWJhOGEgKCJ0dW46IGZpeCB1c2UgYWZ0ZXIgZnJlZSBmb3IgcHRy X3JpbmciKQpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvdHVuLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90dW4uYyBiL2RyaXZlcnMv bmV0L3R1bi5jCmluZGV4IGYyZGU1OWQ2ZDU4Ni4uZmZhZTE5NzE0ZmZkIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC90dW4uYworKysgYi9kcml2ZXJzL25ldC90dW4uYwpAQCAtNzI4LDYgKzcyOCw3 IEBAIHN0YXRpYyB2b2lkIF9fdHVuX2RldGFjaChzdHJ1Y3QgdHVuX2ZpbGUgKnRmaWxlLCBib29s IGNsZWFuKQogCQl9CiAJCWlmICh0dW4pCiAJCQl4ZHBfcnhxX2luZm9fdW5yZWcoJnRmaWxlLT54 ZHBfcnhxKTsKKwkJcHRyX3JpbmdfY2xlYW51cCgmdGZpbGUtPnR4X3JpbmcsIHR1bl9wdHJfZnJl ZSk7CiAJCXNvY2tfcHV0KCZ0ZmlsZS0+c2spOwogCX0KIH0KQEAgLTMxNTcsNyArMzE1OCw2IEBA IHN0YXRpYyBpbnQgdHVuX2Nocl9jbG9zZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmls ZSAqZmlsZSkKIAlzdHJ1Y3QgdHVuX2ZpbGUgKnRmaWxlID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwog CiAJdHVuX2RldGFjaCh0ZmlsZSwgdHJ1ZSk7Ci0JcHRyX3JpbmdfY2xlYW51cCgmdGZpbGUtPnR4 X3JpbmcsIHR1bl9wdHJfZnJlZSk7CiAKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMTQuMwoKCkZyb20g YjhlY2NlODY0ODZhMjg2ODJkZTM5ZWVkMDZmNTJiYWJmMzFjMzUzOSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogS3VtYXIgU2FuZ2h2aSA8a3VtYXJhc0BjaGVsc2lvLmNvbT4KRGF0ZTog TW9uLCAxNCBNYXkgMjAxOCAxNjoyNzozNCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMTMvMzJdIGN4 Z2I0OiBDb3JyZWN0IG50dXBsZSBtYXNrIHZhbGlkYXRpb24gZm9yIGhhc2ggZmlsdGVycwoKWyBV cHN0cmVhbSBjb21taXQgODQ5YTc0MmM1OWEzZDU5NzQ3M2MwMjMyZjljMjUwNmM2OWVlZWYxNCBd CgpFYXJsaWVyIGNvZGUgb2YgZG9pbmcgYml0d2lzZSBBTkQgd2l0aCBmaWVsZCB3aWR0aCBiaXRz IHdhcyB3cm9uZy4KSW5zdGVhZCwgc2ltcGxpZnkgY29kZSB0byBjYWxjdWxhdGUgbnR1cGxlX21h c2sgYmFzZWQgb24gc3VwcGxpZWQKZmllbGRzIGFuZCB0aGVuIGNvbXBhcmUgd2l0aCBtYXNrIGNv bmZpZ3VyZWQgaW4gaHcgLSB3aGljaCBpcyB0aGUKY29ycmVjdCBhbmQgc2ltcGxlciB3YXkgdG8g dmFsaWRhdGUgbnR1cGxlIG1hc2suCgpGaXhlczogM2ViOGI2MmQ1YTI2ICgiY3hnYjQ6IGFkZCBz dXBwb3J0IHRvIGNyZWF0ZSBoYXNoLWZpbHRlcnMgdmlhIHRjLWZsb3dlciBvZmZsb2FkIikKU2ln bmVkLW9mZi1ieTogS3VtYXIgU2FuZ2h2aSA8a3VtYXJhc0BjaGVsc2lvLmNvbT4KU2lnbmVkLW9m Zi1ieTogR2FuZXNoIEdvdWRhciA8Z2FuZXNoZ3JAY2hlbHNpby5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2ZpbHRlci5jIHwgODggKysrKysrKystLS0tLS0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0 X2ZpbHRlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9maWx0 ZXIuYwppbmRleCAzMTc3YjBjOWJkMmQuLjgyOWRjOGM1ZGRmZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9maWx0ZXIuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2ZpbHRlci5jCkBAIC04MzYsNyArODM2 LDcgQEAgYm9vbCBpc19maWx0ZXJfZXhhY3RfbWF0Y2goc3RydWN0IGFkYXB0ZXIgKmFkYXAsCiB7 CiAJc3RydWN0IHRwX3BhcmFtcyAqdHAgPSAmYWRhcC0+cGFyYW1zLnRwOwogCXU2NCBoYXNoX2Zp bHRlcl9tYXNrID0gdHAtPmhhc2hfZmlsdGVyX21hc2s7Ci0JdTMyIG1hc2s7CisJdTY0IG50dXBs ZV9tYXNrID0gMDsKIAogCWlmICghaXNfaGFzaGZpbHRlcihhZGFwKSkKIAkJcmV0dXJuIGZhbHNl OwpAQCAtODY1LDczICs4NjUsNDUgQEAgYm9vbCBpc19maWx0ZXJfZXhhY3RfbWF0Y2goc3RydWN0 IGFkYXB0ZXIgKmFkYXAsCiAJaWYgKCFmcy0+dmFsLmZwb3J0IHx8IGZzLT5tYXNrLmZwb3J0ICE9 IDB4ZmZmZikKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKHRwLT5mY29lX3NoaWZ0ID49IDApIHsK LQkJbWFzayA9IChoYXNoX2ZpbHRlcl9tYXNrID4+IHRwLT5mY29lX3NoaWZ0KSAmIEZUX0ZDT0Vf VzsKLQkJaWYgKG1hc2sgJiYgIWZzLT5tYXNrLmZjb2UpCi0JCQlyZXR1cm4gZmFsc2U7Ci0JfQor CS8qIGNhbGN1bGF0ZSB0dXBsZSBtYXNrIGFuZCBjb21wYXJlIHdpdGggbWFzayBjb25maWd1cmVk IGluIGh3ICovCisJaWYgKHRwLT5mY29lX3NoaWZ0ID49IDApCisJCW50dXBsZV9tYXNrIHw9ICh1 NjQpZnMtPm1hc2suZmNvZSA8PCB0cC0+ZmNvZV9zaGlmdDsKIAotCWlmICh0cC0+cG9ydF9zaGlm dCA+PSAwKSB7Ci0JCW1hc2sgPSAoaGFzaF9maWx0ZXJfbWFzayA+PiB0cC0+cG9ydF9zaGlmdCkg JiBGVF9QT1JUX1c7Ci0JCWlmIChtYXNrICYmICFmcy0+bWFzay5pcG9ydCkKLQkJCXJldHVybiBm YWxzZTsKLQl9CisJaWYgKHRwLT5wb3J0X3NoaWZ0ID49IDApCisJCW50dXBsZV9tYXNrIHw9ICh1 NjQpZnMtPm1hc2suaXBvcnQgPDwgdHAtPnBvcnRfc2hpZnQ7CiAKIAlpZiAodHAtPnZuaWNfc2hp ZnQgPj0gMCkgewotCQltYXNrID0gKGhhc2hfZmlsdGVyX21hc2sgPj4gdHAtPnZuaWNfc2hpZnQp ICYgRlRfVk5JQ19JRF9XOwotCi0JCWlmICgoYWRhcC0+cGFyYW1zLnRwLmluZ3Jlc3NfY29uZmln ICYgVk5JQ19GKSkgewotCQkJaWYgKG1hc2sgJiYgIWZzLT5tYXNrLnBmdmZfdmxkKQotCQkJCXJl dHVybiBmYWxzZTsKLQkJfSBlbHNlIHsKLQkJCWlmIChtYXNrICYmICFmcy0+bWFzay5vdmxhbl92 bGQpCi0JCQkJcmV0dXJuIGZhbHNlOwotCQl9CisJCWlmICgoYWRhcC0+cGFyYW1zLnRwLmluZ3Jl c3NfY29uZmlnICYgVk5JQ19GKSkKKwkJCW50dXBsZV9tYXNrIHw9ICh1NjQpZnMtPm1hc2sucGZ2 Zl92bGQgPDwgdHAtPnZuaWNfc2hpZnQ7CisJCWVsc2UKKwkJCW50dXBsZV9tYXNrIHw9ICh1NjQp ZnMtPm1hc2sub3ZsYW5fdmxkIDw8CisJCQkJdHAtPnZuaWNfc2hpZnQ7CiAJfQogCi0JaWYgKHRw LT52bGFuX3NoaWZ0ID49IDApIHsKLQkJbWFzayA9IChoYXNoX2ZpbHRlcl9tYXNrID4+IHRwLT52 bGFuX3NoaWZ0KSAmIEZUX1ZMQU5fVzsKLQkJaWYgKG1hc2sgJiYgIWZzLT5tYXNrLml2bGFuKQot CQkJcmV0dXJuIGZhbHNlOwotCX0KKwlpZiAodHAtPnZsYW5fc2hpZnQgPj0gMCkKKwkJbnR1cGxl X21hc2sgfD0gKHU2NClmcy0+bWFzay5pdmxhbiA8PCB0cC0+dmxhbl9zaGlmdDsKIAotCWlmICh0 cC0+dG9zX3NoaWZ0ID49IDApIHsKLQkJbWFzayA9IChoYXNoX2ZpbHRlcl9tYXNrID4+IHRwLT50 b3Nfc2hpZnQpICYgRlRfVE9TX1c7Ci0JCWlmIChtYXNrICYmICFmcy0+bWFzay50b3MpCi0JCQly ZXR1cm4gZmFsc2U7Ci0JfQorCWlmICh0cC0+dG9zX3NoaWZ0ID49IDApCisJCW50dXBsZV9tYXNr IHw9ICh1NjQpZnMtPm1hc2sudG9zIDw8IHRwLT50b3Nfc2hpZnQ7CiAKLQlpZiAodHAtPnByb3Rv Y29sX3NoaWZ0ID49IDApIHsKLQkJbWFzayA9IChoYXNoX2ZpbHRlcl9tYXNrID4+IHRwLT5wcm90 b2NvbF9zaGlmdCkgJiBGVF9QUk9UT0NPTF9XOwotCQlpZiAobWFzayAmJiAhZnMtPm1hc2sucHJv dG8pCi0JCQlyZXR1cm4gZmFsc2U7Ci0JfQorCWlmICh0cC0+cHJvdG9jb2xfc2hpZnQgPj0gMCkK KwkJbnR1cGxlX21hc2sgfD0gKHU2NClmcy0+bWFzay5wcm90byA8PCB0cC0+cHJvdG9jb2xfc2hp ZnQ7CiAKLQlpZiAodHAtPmV0aGVydHlwZV9zaGlmdCA+PSAwKSB7Ci0JCW1hc2sgPSAoaGFzaF9m aWx0ZXJfbWFzayA+PiB0cC0+ZXRoZXJ0eXBlX3NoaWZ0KSAmCi0JCQlGVF9FVEhFUlRZUEVfVzsK LQkJaWYgKG1hc2sgJiYgIWZzLT5tYXNrLmV0aHR5cGUpCi0JCQlyZXR1cm4gZmFsc2U7Ci0JfQor CWlmICh0cC0+ZXRoZXJ0eXBlX3NoaWZ0ID49IDApCisJCW50dXBsZV9tYXNrIHw9ICh1NjQpZnMt Pm1hc2suZXRodHlwZSA8PCB0cC0+ZXRoZXJ0eXBlX3NoaWZ0OwogCi0JaWYgKHRwLT5tYWNtYXRj aF9zaGlmdCA+PSAwKSB7Ci0JCW1hc2sgPSAoaGFzaF9maWx0ZXJfbWFzayA+PiB0cC0+bWFjbWF0 Y2hfc2hpZnQpICYgRlRfTUFDTUFUQ0hfVzsKLQkJaWYgKG1hc2sgJiYgIWZzLT5tYXNrLm1hY2lk eCkKLQkJCXJldHVybiBmYWxzZTsKLQl9CisJaWYgKHRwLT5tYWNtYXRjaF9zaGlmdCA+PSAwKQor CQludHVwbGVfbWFzayB8PSAodTY0KWZzLT5tYXNrLm1hY2lkeCA8PCB0cC0+bWFjbWF0Y2hfc2hp ZnQ7CisKKwlpZiAodHAtPm1hdGNodHlwZV9zaGlmdCA+PSAwKQorCQludHVwbGVfbWFzayB8PSAo dTY0KWZzLT5tYXNrLm1hdGNodHlwZSA8PCB0cC0+bWF0Y2h0eXBlX3NoaWZ0OworCisJaWYgKHRw LT5mcmFnX3NoaWZ0ID49IDApCisJCW50dXBsZV9tYXNrIHw9ICh1NjQpZnMtPm1hc2suZnJhZyA8 PCB0cC0+ZnJhZ19zaGlmdDsKKworCWlmIChudHVwbGVfbWFzayAhPSBoYXNoX2ZpbHRlcl9tYXNr KQorCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAodHAtPm1hdGNodHlwZV9zaGlmdCA+PSAwKSB7Ci0J CW1hc2sgPSAoaGFzaF9maWx0ZXJfbWFzayA+PiB0cC0+bWF0Y2h0eXBlX3NoaWZ0KSAmCi0JCQlG VF9NUFNISVRUWVBFX1c7Ci0JCWlmIChtYXNrICYmICFmcy0+bWFzay5tYXRjaHR5cGUpCi0JCQly ZXR1cm4gZmFsc2U7Ci0JfQotCWlmICh0cC0+ZnJhZ19zaGlmdCA+PSAwKSB7Ci0JCW1hc2sgPSAo aGFzaF9maWx0ZXJfbWFzayA+PiB0cC0+ZnJhZ19zaGlmdCkgJgotCQkJRlRfRlJBR01FTlRBVElP Tl9XOwotCQlpZiAobWFzayAmJiAhZnMtPm1hc2suZnJhZykKLQkJCXJldHVybiBmYWxzZTsKLQl9 CiAJcmV0dXJuIHRydWU7CiB9CiAKLS0gCjIuMTQuMwoKCkZyb20gOTg5MmMzODI0N2Y1NmFiODI2 YWVhOWM3OWY5NDgxZjQ5NzE5OTRhNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxv cmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgTWF5IDIw MTggMTY6MDE6MjMgLTA3MDAKU3ViamVjdDogW1BBVENIIDE0LzMyXSBuZXQ6IGRzYTogYmNtX3Nm MjogRml4IFJYX0NMU19MT0NfQU5ZIG92ZXJ3cml0ZSBmb3IKIGxhc3QgcnVsZQoKWyBVcHN0cmVh bSBjb21taXQgNDNhNWUwMGYzOGZlODkzM2ExYzcxNmJmZTViMzBlOTdmNzQ5ZDk0YiBdCgpXaGVu IHdlIGxldCB0aGUga2VybmVsIHBpY2sgdXAgYSBydWxlIGxvY2F0aW9uIHdpdGggUlhfQ0xTX0xP Q19BTlksIHdlCndvdWxkIGJlIGFibGUgdG8gb3ZlcndyaXRlIHRoZSBsYXN0IHJ1bGVzIGJlY2F1 c2Ugb2YgYSBudW1iZXIgb2YgaXNzdWVzLgoKVGhlIElQdjQgY29kZSBwYXRoIHdvdWxkIG5vdCBi ZSBjaGVja2luZyB0aGF0IHJ1bGVfaW5kZXggaXMgd2l0aGluCmJvdW5kcywgYW5kIGl0IHdvdWxk IGFsc28gb25seSBiZSBhbGxvd2VkIHRvIHBpY2sgdXAgcnVsZXMgZnJvbSByYW5nZQowLi4xMjYg aW5zdGVhZCBvZiB0aGUgZnVsbCAwLi4xMjcgcmFuZ2UuIFRoaXMgd291bGQgbGVhZCB1cyB0byBh bGxvdwpvdmVyd3JpdGluZyB0aGUgbGFzdCBydWxlIHdoZW4gd2UgbGV0IHRoZSBrZXJuZWwgcGlj ay11cCB0aGUgbG9jYXRpb24uCgpGaXhlczogMzMwNjE0NTg2NmI2ICgibmV0OiBkc2E6IGJjbV9z ZjI6IE1vdmUgSVB2NCBDRlAgcHJvY2Vzc2luZyB0byBzcGVjaWZpYyBmdW5jdGlvbnMiKQpTaWdu ZWQtb2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2RzYS9iY21fc2YyX2NmcC5jIHwgNSArKysrLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9i Y21fc2YyX2NmcC5jIGIvZHJpdmVycy9uZXQvZHNhL2JjbV9zZjJfY2ZwLmMKaW5kZXggMjNiNDVk YTc4NGNiLi45ZTA0Nzg2ZTMxMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9iY21fc2Yy X2NmcC5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyX2NmcC5jCkBAIC0zNTQsMTAgKzM1 NCwxMyBAQCBzdGF0aWMgaW50IGJjbV9zZjJfY2ZwX2lwdjRfcnVsZV9zZXQoc3RydWN0IGJjbV9z ZjJfcHJpdiAqcHJpdiwgaW50IHBvcnQsCiAJLyogTG9jYXRlIHRoZSBmaXJzdCBydWxlIGF2YWls YWJsZSAqLwogCWlmIChmcy0+bG9jYXRpb24gPT0gUlhfQ0xTX0xPQ19BTlkpCiAJCXJ1bGVfaW5k ZXggPSBmaW5kX2ZpcnN0X3plcm9fYml0KHByaXYtPmNmcC51c2VkLAotCQkJCQkJIGJjbV9zZjJf Y2ZwX3J1bGVfc2l6ZShwcml2KSk7CisJCQkJCQkgcHJpdi0+bnVtX2NmcF9ydWxlcyk7CiAJZWxz ZQogCQlydWxlX2luZGV4ID0gZnMtPmxvY2F0aW9uOwogCisJaWYgKHJ1bGVfaW5kZXggPiBiY21f c2YyX2NmcF9ydWxlX3NpemUocHJpdikpCisJCXJldHVybiAtRU5PU1BDOworCiAJbGF5b3V0ID0g JnVkZl90Y3BpcDRfbGF5b3V0OwogCS8qIFdlIG9ubHkgdXNlIG9uZSBVREYgc2xpY2UgZm9yIG5v dyAqLwogCXNsaWNlX251bSA9IGJjbV9zZjJfZ2V0X3NsaWNlX251bWJlcihsYXlvdXQsIDApOwot LSAKMi4xNC4zCgoKRnJvbSA1OGE3OWUzM2FkMTVkY2E2ZmZkODU4MmNkZmZkZjk5ZDZlN2E4YTUx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5l bGxpQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxNyBNYXkgMjAxOCAxNjo1NTozOSAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMTUvMzJdIG5ldDogZHNhOiBEbyBub3QgcmVnaXN0ZXIgZGV2bGluayBmb3Ig dW51c2VkIHBvcnRzCgpbIFVwc3RyZWFtIGNvbW1pdCA1NDQ3ZDc4NjIzZGEyZWRlZDA2ZDRjZDk0 NjlkMWE3MWViYTQzYmM0IF0KCkV2ZW4gaWYgY29tbWl0IDFkMjc3MzJmNDExZCAoIm5ldDogZHNh OiBzZXR1cCBhbmQgdGVhcmRvd24gcG9ydHMiKSBpbmRpY2F0ZWQKdGhhdCByZWdpc3RlcmluZyBh IGRldmxpbmsgaW5zdGFuY2UgZm9yIHVudXNlZCBwb3J0cyBpcyBub3QgYSBwcm9ibGVtLCBhbmQg dGhpcwppcyB0cnVlLCB0aGlzIGNhbiBiZSBjb25mdXNpbmcgbm9uZXRoZWxlc3MsIHNvIGxldCdz IG5vdCBkbyBpdC4KCkZpeGVzOiAxZDI3NzMyZjQxMWQgKCJuZXQ6IGRzYTogc2V0dXAgYW5kIHRl YXJkb3duIHBvcnRzIikKUmVwb3J0ZWQtYnk6IEppcmkgUGlya28gPGppcmlAcmVzbnVsbGkudXM+ ClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2RzYS9kc2EyLmMgfCA5ICsrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvZHNhL2RzYTIuYyBiL25ldC9k c2EvZHNhMi5jCmluZGV4IGFkZjUwZmJjNGMxMy4uNDc3MjUyNTBiNGNhIDEwMDY0NAotLS0gYS9u ZXQvZHNhL2RzYTIuYworKysgYi9uZXQvZHNhL2RzYTIuYwpAQCAtMjU4LDExICsyNTgsMTMgQEAg c3RhdGljIHZvaWQgZHNhX3RyZWVfdGVhcmRvd25fZGVmYXVsdF9jcHUoc3RydWN0IGRzYV9zd2l0 Y2hfdHJlZSAqZHN0KQogc3RhdGljIGludCBkc2FfcG9ydF9zZXR1cChzdHJ1Y3QgZHNhX3BvcnQg KmRwKQogewogCXN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRwLT5kczsKLQlpbnQgZXJyOworCWlu dCBlcnIgPSAwOwogCiAJbWVtc2V0KCZkcC0+ZGV2bGlua19wb3J0LCAwLCBzaXplb2YoZHAtPmRl dmxpbmtfcG9ydCkpOwogCi0JZXJyID0gZGV2bGlua19wb3J0X3JlZ2lzdGVyKGRzLT5kZXZsaW5r LCAmZHAtPmRldmxpbmtfcG9ydCwgZHAtPmluZGV4KTsKKwlpZiAoZHAtPnR5cGUgIT0gRFNBX1BP UlRfVFlQRV9VTlVTRUQpCisJCWVyciA9IGRldmxpbmtfcG9ydF9yZWdpc3Rlcihkcy0+ZGV2bGlu aywgJmRwLT5kZXZsaW5rX3BvcnQsCisJCQkJCSAgICBkcC0+aW5kZXgpOwogCWlmIChlcnIpCiAJ CXJldHVybiBlcnI7CiAKQEAgLTI5Myw3ICsyOTUsOCBAQCBzdGF0aWMgaW50IGRzYV9wb3J0X3Nl dHVwKHN0cnVjdCBkc2FfcG9ydCAqZHApCiAKIHN0YXRpYyB2b2lkIGRzYV9wb3J0X3RlYXJkb3du KHN0cnVjdCBkc2FfcG9ydCAqZHApCiB7Ci0JZGV2bGlua19wb3J0X3VucmVnaXN0ZXIoJmRwLT5k ZXZsaW5rX3BvcnQpOworCWlmIChkcC0+dHlwZSAhPSBEU0FfUE9SVF9UWVBFX1VOVVNFRCkKKwkJ ZGV2bGlua19wb3J0X3VucmVnaXN0ZXIoJmRwLT5kZXZsaW5rX3BvcnQpOwogCiAJc3dpdGNoIChk cC0+dHlwZSkgewogCWNhc2UgRFNBX1BPUlRfVFlQRV9VTlVTRUQ6Ci0tIAoyLjE0LjMKCgpGcm9t IGU3YTg2NmUzOTlmZDE3MDFkMDM0N2UxMjVhMzhmNjIyNjlhNDFiM2UgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpE YXRlOiBUdWUsIDE1IE1heSAyMDE4IDE2OjAxOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNi8z Ml0gbmV0OiBkc2E6IGJjbV9zZjI6IEZpeCBJUHY2IHJ1bGVzIGFuZCBjaGFpbiBJRAoKWyBVcHN0 cmVhbSBjb21taXQgNmMwNTU2MWM1NDE4NDNiMmJlYzIxODlmNjgwYmVkNmQyMGFmYzI1YiBdCgpX ZSBoYWQgc2V2ZXJhbCBpc3N1ZXMgdGhhdCB3b3VsZCBtYWtlIHRoZSBwcm9ncmFtbWluZyBvZiBJ UHY2IHJ1bGVzIGJvdGgKaW5jb25zaXN0ZW50IGFuZCBlcnJvciBwcm9uZToKCi0gdGhlIGNoYWlu IElEIHRoYXQgd2Ugd291bGQgYmUgYXNraW5nIHRoZSBoYXJkd2FyZSB0byBwdXQgaW4gdGhlCiAg cGFja2V0J3MgQnJvYWRjb20gdGFnIHdvdWxkIGJlIG9mZiBieSBvbmUsIGl0IHdvdWxkIHJldHVy biBvbmUgb2YgdGhlCiAgdHdvIGluZGV4ZXMsIGJ1dCBub3QgdGhlIG9uZSB1c2VyLXNwYWNlIHNw ZWNpZmllZAoKLSB3aGVuIGFuIHVzZXIgc3BlY2lmaWVkIGEgcGFydGljdWxhciBsb2NhdGlvbiB0 byBpbnNlcnQgYSBDRlAgcnVsZSBhdCwKICB3ZSB3b3VsZCBub3QgYmUgcmV0dXJuaW5nIHRoZSBz YW1lIGluZGV4LCB3aGljaCB3b3VsZCBiZSBjb25mdXNpbmcgaWYKICBub3RoaW5nIGVsc2UKCi0g ZmluYWxseSwgbGlrZSBJUHY0LCBpdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBvdmVyZmxvdyB0aGUg bGFzdCBlbnRyeSBieQogIHJlLXByb2dyYW1taW5nIGl0CgpGaXggdGhpcyBieSBzd2FwcGluZyB0 aGUgdXNhZ2Ugb2YgcnVsZV9pbmRleFswXSBhbmQgcnVsZV9pbmRleFsxXSB3aGVyZQpyZWxldmFu dCBpbiBvcmRlciB0byByZXR1cm4gYSBjb25zaXN0ZW50IGFuZCBjb3JyZWN0IHVzZXItc3BhY2UK ZXhwZXJpZW5jZS4KCkZpeGVzOiBiYTA2OTZjMjJlN2MgKCJuZXQ6IGRzYTogYmNtX3NmMjogQWRk IHN1cHBvcnQgZm9yIElQdjYgQ0ZQIHJ1bGVzIikKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWlu ZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvYmNtX3NmMl9jZnAu YyB8IDIwICsrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9u cygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvYmNtX3Nm Ml9jZnAuYyBiL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyX2NmcC5jCmluZGV4IDllMDQ3ODZlMzEz OS4uNmZkMGY4YTEyY2MyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMl9jZnAu YworKysgYi9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMl9jZnAuYwpAQCAtNTY1LDE5ICs1NjUsMjEg QEAgc3RhdGljIGludCBiY21fc2YyX2NmcF9pcHY2X3J1bGVfc2V0KHN0cnVjdCBiY21fc2YyX3By aXYgKnByaXYsIGludCBwb3J0LAogCSAqIGZpcnN0IGhhbGYgYmVjYXVzZSB0aGUgSFcgc2VhcmNo IGlzIGJ5IGluY3JlbWVudGluZyBhZGRyZXNzZXMuCiAJICovCiAJaWYgKGZzLT5sb2NhdGlvbiA9 PSBSWF9DTFNfTE9DX0FOWSkKLQkJcnVsZV9pbmRleFswXSA9IGZpbmRfZmlyc3RfemVyb19iaXQo cHJpdi0+Y2ZwLnVzZWQsCi0JCQkJCQkgICAgYmNtX3NmMl9jZnBfcnVsZV9zaXplKHByaXYpKTsK KwkJcnVsZV9pbmRleFsxXSA9IGZpbmRfZmlyc3RfemVyb19iaXQocHJpdi0+Y2ZwLnVzZWQsCisJ CQkJCQkgICAgcHJpdi0+bnVtX2NmcF9ydWxlcyk7CiAJZWxzZQotCQlydWxlX2luZGV4WzBdID0g ZnMtPmxvY2F0aW9uOworCQlydWxlX2luZGV4WzFdID0gZnMtPmxvY2F0aW9uOworCWlmIChydWxl X2luZGV4WzFdID4gYmNtX3NmMl9jZnBfcnVsZV9zaXplKHByaXYpKQorCQlyZXR1cm4gLUVOT1NQ QzsKIAogCS8qIEZsYWcgaXQgYXMgdXNlZCAoY2xlYXJlZCBvbiBlcnJvciBwYXRoKSBzdWNoIHRo YXQgd2UgY2FuIGltbWVkaWF0ZWx5CiAJICogb2J0YWluIGEgc2Vjb25kIG9uZSB0byBjaGFpbiBm cm9tLgogCSAqLwotCXNldF9iaXQocnVsZV9pbmRleFswXSwgcHJpdi0+Y2ZwLnVzZWQpOworCXNl dF9iaXQocnVsZV9pbmRleFsxXSwgcHJpdi0+Y2ZwLnVzZWQpOwogCi0JcnVsZV9pbmRleFsxXSA9 IGZpbmRfZmlyc3RfemVyb19iaXQocHJpdi0+Y2ZwLnVzZWQsCi0JCQkJCSAgICBiY21fc2YyX2Nm cF9ydWxlX3NpemUocHJpdikpOwotCWlmIChydWxlX2luZGV4WzFdID4gYmNtX3NmMl9jZnBfcnVs ZV9zaXplKHByaXYpKSB7CisJcnVsZV9pbmRleFswXSA9IGZpbmRfZmlyc3RfemVyb19iaXQocHJp di0+Y2ZwLnVzZWQsCisJCQkJCSAgICBwcml2LT5udW1fY2ZwX3J1bGVzKTsKKwlpZiAocnVsZV9p bmRleFswXSA+IGJjbV9zZjJfY2ZwX3J1bGVfc2l6ZShwcml2KSkgewogCQlyZXQgPSAtRU5PU1BD OwogCQlnb3RvIG91dF9lcnI7CiAJfQpAQCAtNzE1LDE0ICs3MTcsMTQgQEAgc3RhdGljIGludCBi Y21fc2YyX2NmcF9pcHY2X3J1bGVfc2V0KHN0cnVjdCBiY21fc2YyX3ByaXYgKnByaXYsIGludCBw b3J0LAogCS8qIEZsYWcgdGhlIHNlY29uZCBoYWxmIHJ1bGUgYXMgYmVpbmcgdXNlZCBub3csIHJl dHVybiBpdCBhcyB0aGUKIAkgKiBsb2NhdGlvbiwgYW5kIGZsYWcgaXQgYXMgdW5pcXVlIHdoaWxl IGR1bXBpbmcgcnVsZXMKIAkgKi8KLQlzZXRfYml0KHJ1bGVfaW5kZXhbMV0sIHByaXYtPmNmcC51 c2VkKTsKKwlzZXRfYml0KHJ1bGVfaW5kZXhbMF0sIHByaXYtPmNmcC51c2VkKTsKIAlzZXRfYml0 KHJ1bGVfaW5kZXhbMV0sIHByaXYtPmNmcC51bmlxdWUpOwogCWZzLT5sb2NhdGlvbiA9IHJ1bGVf aW5kZXhbMV07CiAKIAlyZXR1cm4gcmV0OwogCiBvdXRfZXJyOgotCWNsZWFyX2JpdChydWxlX2lu ZGV4WzBdLCBwcml2LT5jZnAudXNlZCk7CisJY2xlYXJfYml0KHJ1bGVfaW5kZXhbMV0sIHByaXYt PmNmcC51c2VkKTsKIAlyZXR1cm4gcmV0OwogfQogCi0tIAoyLjE0LjMKCgpGcm9tIDgyOWJkNmYy ZTFlNDg1ZTcxNDEzMGRkYmM0Y2E3YTdjOWM1MmU3NWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpEYXRlOiBUdWUs IDE1IE1heSAyMDE4IDE2OjAxOjI1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNy8zMl0gbmV0OiBk c2E6IGJjbV9zZjI6IEZpeCBJUHY2IHJ1bGUgaGFsZiBkZWxldGlvbgoKWyBVcHN0cmVhbSBjb21t aXQgMTk0MmFkZjY0MjE0ZGYzNzAzNTBhYTQ2OTU0YmEyNzY1NDQ1NmY2OCBdCgpJdCB3YXMgcG9z c2libGUgdG8gZGVsZXRlIG9ubHkgb25lIGhhbGYgb2YgYW4gSVB2Niwgd2hpY2ggd291bGQgbGVh dmUKdGhlIHNlY29uZCBoYWxmIHN0aWxsIHByb2dyYW1tZWQgYW5kIHBvc3NpYmx5IGluIHVzZS4g SW5zdGVhZCBvZgpjaGVja2luZyBmb3IgdGhlIHVudXNlZCBiaXRtYXAsIHdlIG5lZWQgdG8gY2hl Y2sgdGhlIHVuaXF1ZSBiaXRtYXAsIGFuZApyZWZ1c2UgYW55IGRlbGV0aW9uIHRoYXQgZG9lcyBu b3QgbWF0Y2ggdGhhdCBjcml0ZXJpYS4gV2UgYWxzbyBuZWVkIHRvCm1vdmUgdGhhdCBjaGVjayBm cm9tIGJjbV9zZjJfY2ZwX3J1bGVfZGVsX29uZSgpIGludG8gaXRzIGNhbGxlcjoKYmNtX3NmMl9j ZnBfcnVsZV9kZWwoKSBvdGhlcndpc2Ugd2Ugd291bGQgbm90IGJlIGFibGUgdG8gZGVsZXRlIHNl Y29uZApoYWx2ZXMgYW55bW9yZSB0aGF0IHdvdWxkIG5vdCBwYXNzIHRoZSBmaXJzdCB0ZXN0LgoK Rml4ZXM6IGJhMDY5NmMyMmU3YyAoIm5ldDogZHNhOiBiY21fc2YyOiBBZGQgc3VwcG9ydCBmb3Ig SVB2NiBDRlAgcnVsZXMiKQpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5l bGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2RzYS9iY21fc2YyX2NmcC5jIHwgMTEgKysrKysr Ky0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL2JjbV9zZjJfY2ZwLmMgYi9kcml2ZXJzL25ldC9k c2EvYmNtX3NmMl9jZnAuYwppbmRleCA2ZmQwZjhhMTJjYzIuLmI4OWFjYWVlMTJkNCAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZHNhL2JjbV9zZjJfY2ZwLmMKKysrIGIvZHJpdmVycy9uZXQvZHNh L2JjbV9zZjJfY2ZwLmMKQEAgLTc5MCwxMCArNzkwLDYgQEAgc3RhdGljIGludCBiY21fc2YyX2Nm cF9ydWxlX2RlbF9vbmUoc3RydWN0IGJjbV9zZjJfcHJpdiAqcHJpdiwgaW50IHBvcnQsCiAJaW50 IHJldDsKIAl1MzIgcmVnOwogCi0JLyogUmVmdXNlIGRlbGV0aW9uIG9mIHVudXNlZCBydWxlcywg YW5kIHRoZSBkZWZhdWx0IHJlc2VydmVkIHJ1bGUgKi8KLQlpZiAoIXRlc3RfYml0KGxvYywgcHJp di0+Y2ZwLnVzZWQpIHx8IGxvYyA9PSAwKQotCQlyZXR1cm4gLUVJTlZBTDsKLQogCS8qIEluZGlj YXRlIHdoaWNoIHJ1bGUgd2Ugd2FudCB0byByZWFkICovCiAJYmNtX3NmMl9jZnBfcnVsZV9hZGRy X3NldChwcml2LCBsb2MpOwogCkBAIC04MzEsNiArODI3LDEzIEBAIHN0YXRpYyBpbnQgYmNtX3Nm Ml9jZnBfcnVsZV9kZWwoc3RydWN0IGJjbV9zZjJfcHJpdiAqcHJpdiwgaW50IHBvcnQsCiAJdTMy IG5leHRfbG9jID0gMDsKIAlpbnQgcmV0OwogCisJLyogUmVmdXNlIGRlbGV0aW5nIHVudXNlZCBy dWxlcywgYW5kIHRob3NlIHRoYXQgYXJlIG5vdCB1bmlxdWUgc2luY2UKKwkgKiB0aGF0IGNvdWxk IGxlYXZlIElQdjYgcnVsZXMgd2l0aCBvbmUgb2YgdGhlIGNoYWluZWQgcnVsZSBpbiB0aGUKKwkg KiB0YWJsZS4KKwkgKi8KKwlpZiAoIXRlc3RfYml0KGxvYywgcHJpdi0+Y2ZwLnVuaXF1ZSkgfHwg bG9jID09IDApCisJCXJldHVybiAtRUlOVkFMOworCiAJcmV0ID0gYmNtX3NmMl9jZnBfcnVsZV9k ZWxfb25lKHByaXYsIHBvcnQsIGxvYywgJm5leHRfbG9jKTsKIAlpZiAocmV0KQogCQlyZXR1cm4g cmV0OwotLSAKMi4xNC4zCgoKRnJvbSA2ODI4M2ZlODcwZmFlMzQzNDcyMDliNTY2ZjA2NjI2YzAy Y2U1NDgwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggSGVsbHdpZyA8 aGNoQGxzdC5kZT4KRGF0ZTogU2F0LCAxMiBNYXkgMjAxOCAxMjoxNjo1MCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMTgvMzJdIDNjNTl4OiBjb252ZXJ0IHRvIGdlbmVyaWMgRE1BIEFQSQoKWyBVcHN0 cmVhbSBjb21taXQgNTVjODI2MTdjM2U4MjIxMGI3NDcxZTkzMzRlOGZjNWRmNmE5OTYxZiBdCgpU aGlzIGRyaXZlciBzdXBwb3J0cyBFSVNBIGRldmljZXMgaW4gYWRkaXRpb24gdG8gUENJIGRldmlj ZXMsIGFuZCByZWxpZWQKb24gdGhlIGxlZ2FjeSBiZWhhdmlvciBvZiB0aGUgcGNpX2RtYSogc2hp bXMgdG8gcGFzcyBvbiBhIE5VTEwgcG9pbnRlcgp0byB0aGUgRE1BIEFQSSwgYW5kIHRoZSBETUEg QVBJIGJlaW5nIGFibGUgdG8gaGFuZGxlIHRoYXQuICBXaGVuIHRoZQpOVUxMIGZvcndhcmRpbmcg YnJva2UgdGhlIEVJU0Egc3VwcG9ydCBnb3QgYnJva2VuLiAgRml4IHRoaXMgYnkgY29udmVydGlu Zwp0byB0aGUgRE1BIEFQSSBpbnN0ZWFkIG9mIHRoZSBsZWdhY3kgUENJIHNoaW1zLgoKRml4ZXM6 IDQxNjdiMmFkICgiUENJOiBSZW1vdmUgTlVMTCBkZXZpY2UgaGFuZGxpbmcgZnJvbSBQQ0kgRE1B IEFQSSIpClJlcG9ydGVkLWJ5OiB0ZWRoZWFkc3RlciA8dGVkaGVhZHN0ZXJAZ21haWwuY29tPgpU ZXN0ZWQtYnk6IHRlZGhlYWRzdGVyIDx0ZWRoZWFkc3RlckBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv M2NvbS8zYzU5eC5jIHwgMTA0ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvM2NvbS8zYzU5eC5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvM2NvbS8zYzU5eC5jCmluZGV4IDM2Yzg5NTBkYmQyZC4uMTc2ODYxYmQyMjUyIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC8zY29tLzNjNTl4LmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvM2NvbS8zYzU5eC5jCkBAIC0xMjEyLDkgKzEyMTIsOSBAQCBzdGF0aWMg aW50IHZvcnRleF9wcm9iZTEoc3RydWN0IGRldmljZSAqZ2VuZGV2LCB2b2lkIF9faW9tZW0gKmlv YWRkciwgaW50IGlycSwKIAl2cC0+bWlpLnJlZ19udW1fbWFzayA9IDB4MWY7CiAKIAkvKiBNYWtl cyBzdXJlIHJpbmdzIGFyZSBhdCBsZWFzdCAxNiBieXRlIGFsaWduZWQuICovCi0JdnAtPnJ4X3Jp bmcgPSBwY2lfYWxsb2NfY29uc2lzdGVudChwZGV2LCBzaXplb2Yoc3RydWN0IGJvb21fcnhfZGVz YykgKiBSWF9SSU5HX1NJWkUKKwl2cC0+cnhfcmluZyA9IGRtYV9hbGxvY19jb2hlcmVudChnZW5k ZXYsIHNpemVvZihzdHJ1Y3QgYm9vbV9yeF9kZXNjKSAqIFJYX1JJTkdfU0laRQogCQkJCQkgICAr IHNpemVvZihzdHJ1Y3QgYm9vbV90eF9kZXNjKSAqIFRYX1JJTkdfU0laRSwKLQkJCQkJICAgJnZw LT5yeF9yaW5nX2RtYSk7CisJCQkJCSAgICZ2cC0+cnhfcmluZ19kbWEsIEdGUF9LRVJORUwpOwog CXJldHZhbCA9IC1FTk9NRU07CiAJaWYgKCF2cC0+cnhfcmluZykKIAkJZ290byBmcmVlX2Rldmlj ZTsKQEAgLTE0NzYsMTEgKzE0NzYsMTAgQEAgc3RhdGljIGludCB2b3J0ZXhfcHJvYmUxKHN0cnVj dCBkZXZpY2UgKmdlbmRldiwgdm9pZCBfX2lvbWVtICppb2FkZHIsIGludCBpcnEsCiAJCXJldHVy biAwOwogCiBmcmVlX3Jpbmc6Ci0JcGNpX2ZyZWVfY29uc2lzdGVudChwZGV2LAotCQkJCQkJc2l6 ZW9mKHN0cnVjdCBib29tX3J4X2Rlc2MpICogUlhfUklOR19TSVpFCi0JCQkJCQkJKyBzaXplb2Yo c3RydWN0IGJvb21fdHhfZGVzYykgKiBUWF9SSU5HX1NJWkUsCi0JCQkJCQl2cC0+cnhfcmluZywK LQkJCQkJCXZwLT5yeF9yaW5nX2RtYSk7CisJZG1hX2ZyZWVfY29oZXJlbnQoJnBkZXYtPmRldiwK KwkJc2l6ZW9mKHN0cnVjdCBib29tX3J4X2Rlc2MpICogUlhfUklOR19TSVpFICsKKwkJc2l6ZW9m KHN0cnVjdCBib29tX3R4X2Rlc2MpICogVFhfUklOR19TSVpFLAorCQl2cC0+cnhfcmluZywgdnAt PnJ4X3JpbmdfZG1hKTsKIGZyZWVfZGV2aWNlOgogCWZyZWVfbmV0ZGV2KGRldik7CiAJcHJfZXJy KFBGWCAidm9ydGV4X3Byb2JlMSBmYWlscy4gIFJldHVybnMgJWRcbiIsIHJldHZhbCk7CkBAIC0x NzUxLDkgKzE3NTAsOSBAQCB2b3J0ZXhfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQkJ CWJyZWFrOwkJCS8qIEJhZCBuZXdzISAgKi8KIAogCQkJc2tiX3Jlc2VydmUoc2tiLCBORVRfSVBf QUxJR04pOwkvKiBBbGlnbiBJUCBvbiAxNiBieXRlIGJvdW5kYXJpZXMgKi8KLQkJCWRtYSA9IHBj aV9tYXBfc2luZ2xlKFZPUlRFWF9QQ0kodnApLCBza2ItPmRhdGEsCi0JCQkJCSAgICAgUEtUX0JV Rl9TWiwgUENJX0RNQV9GUk9NREVWSUNFKTsKLQkJCWlmIChkbWFfbWFwcGluZ19lcnJvcigmVk9S VEVYX1BDSSh2cCktPmRldiwgZG1hKSkKKwkJCWRtYSA9IGRtYV9tYXBfc2luZ2xlKHZwLT5nZW5k ZXYsIHNrYi0+ZGF0YSwKKwkJCQkJICAgICBQS1RfQlVGX1NaLCBETUFfRlJPTV9ERVZJQ0UpOwor CQkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKHZwLT5nZW5kZXYsIGRtYSkpCiAJCQkJYnJlYWs7CiAJ CQl2cC0+cnhfcmluZ1tpXS5hZGRyID0gY3B1X3RvX2xlMzIoZG1hKTsKIAkJfQpAQCAtMjA2Nyw5 ICsyMDY2LDkgQEAgdm9ydGV4X3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKIAlpZiAodnAtPmJ1c19tYXN0ZXIpIHsKIAkJLyogU2V0IHRoZSBi dXMtbWFzdGVyIGNvbnRyb2xsZXIgdG8gdHJhbnNmZXIgdGhlIHBhY2tldC4gKi8KIAkJaW50IGxl biA9IChza2ItPmxlbiArIDMpICYgfjM7Ci0JCXZwLT50eF9za2JfZG1hID0gcGNpX21hcF9zaW5n bGUoVk9SVEVYX1BDSSh2cCksIHNrYi0+ZGF0YSwgbGVuLAotCQkJCQkJUENJX0RNQV9UT0RFVklD RSk7Ci0JCWlmIChkbWFfbWFwcGluZ19lcnJvcigmVk9SVEVYX1BDSSh2cCktPmRldiwgdnAtPnR4 X3NrYl9kbWEpKSB7CisJCXZwLT50eF9za2JfZG1hID0gZG1hX21hcF9zaW5nbGUodnAtPmdlbmRl diwgc2tiLT5kYXRhLCBsZW4sCisJCQkJCQlETUFfVE9fREVWSUNFKTsKKwkJaWYgKGRtYV9tYXBw aW5nX2Vycm9yKHZwLT5nZW5kZXYsIHZwLT50eF9za2JfZG1hKSkgewogCQkJZGV2X2tmcmVlX3Nr Yl9hbnkoc2tiKTsKIAkJCWRldi0+c3RhdHMudHhfZHJvcHBlZCsrOwogCQkJcmV0dXJuIE5FVERF Vl9UWF9PSzsKQEAgLTIxNjgsOSArMjE2Nyw5IEBAIGJvb21lcmFuZ19zdGFydF94bWl0KHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCQl2cC0+dHhfcmluZ1tl bnRyeV0uc3RhdHVzID0gY3B1X3RvX2xlMzIoc2tiLT5sZW4gfCBUeEludHJVcGxvYWRlZCB8IEFk ZFRDUENoa3N1bSB8IEFkZFVEUENoa3N1bSk7CiAKIAlpZiAoIXNrYl9zaGluZm8oc2tiKS0+bnJf ZnJhZ3MpIHsKLQkJZG1hX2FkZHIgPSBwY2lfbWFwX3NpbmdsZShWT1JURVhfUENJKHZwKSwgc2ti LT5kYXRhLCBza2ItPmxlbiwKLQkJCQkJICBQQ0lfRE1BX1RPREVWSUNFKTsKLQkJaWYgKGRtYV9t YXBwaW5nX2Vycm9yKCZWT1JURVhfUENJKHZwKS0+ZGV2LCBkbWFfYWRkcikpCisJCWRtYV9hZGRy ID0gZG1hX21hcF9zaW5nbGUodnAtPmdlbmRldiwgc2tiLT5kYXRhLCBza2ItPmxlbiwKKwkJCQkJ ICBETUFfVE9fREVWSUNFKTsKKwkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKHZwLT5nZW5kZXYsIGRt YV9hZGRyKSkKIAkJCWdvdG8gb3V0X2RtYV9lcnI7CiAKIAkJdnAtPnR4X3JpbmdbZW50cnldLmZy YWdbMF0uYWRkciA9IGNwdV90b19sZTMyKGRtYV9hZGRyKTsKQEAgLTIxNzgsOSArMjE3Nyw5IEBA IGJvb21lcmFuZ19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiAJfSBlbHNlIHsKIAkJaW50IGk7CiAKLQkJZG1hX2FkZHIgPSBwY2lfbWFwX3Np bmdsZShWT1JURVhfUENJKHZwKSwgc2tiLT5kYXRhLAotCQkJCQkgIHNrYl9oZWFkbGVuKHNrYiks IFBDSV9ETUFfVE9ERVZJQ0UpOwotCQlpZiAoZG1hX21hcHBpbmdfZXJyb3IoJlZPUlRFWF9QQ0ko dnApLT5kZXYsIGRtYV9hZGRyKSkKKwkJZG1hX2FkZHIgPSBkbWFfbWFwX3NpbmdsZSh2cC0+Z2Vu ZGV2LCBza2ItPmRhdGEsCisJCQkJCSAgc2tiX2hlYWRsZW4oc2tiKSwgRE1BX1RPX0RFVklDRSk7 CisJCWlmIChkbWFfbWFwcGluZ19lcnJvcih2cC0+Z2VuZGV2LCBkbWFfYWRkcikpCiAJCQlnb3Rv IG91dF9kbWFfZXJyOwogCiAJCXZwLT50eF9yaW5nW2VudHJ5XS5mcmFnWzBdLmFkZHIgPSBjcHVf dG9fbGUzMihkbWFfYWRkcik7CkBAIC0yMTg5LDIxICsyMTg4LDIxIEBAIGJvb21lcmFuZ19zdGFy dF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCWZv ciAoaSA9IDA7IGkgPCBza2Jfc2hpbmZvKHNrYiktPm5yX2ZyYWdzOyBpKyspIHsKIAkJCXNrYl9m cmFnX3QgKmZyYWcgPSAmc2tiX3NoaW5mbyhza2IpLT5mcmFnc1tpXTsKIAotCQkJZG1hX2FkZHIg PSBza2JfZnJhZ19kbWFfbWFwKCZWT1JURVhfUENJKHZwKS0+ZGV2LCBmcmFnLAorCQkJZG1hX2Fk ZHIgPSBza2JfZnJhZ19kbWFfbWFwKHZwLT5nZW5kZXYsIGZyYWcsCiAJCQkJCQkgICAgMCwKIAkJ CQkJCSAgICBmcmFnLT5zaXplLAogCQkJCQkJICAgIERNQV9UT19ERVZJQ0UpOwotCQkJaWYgKGRt YV9tYXBwaW5nX2Vycm9yKCZWT1JURVhfUENJKHZwKS0+ZGV2LCBkbWFfYWRkcikpIHsKKwkJCWlm IChkbWFfbWFwcGluZ19lcnJvcih2cC0+Z2VuZGV2LCBkbWFfYWRkcikpIHsKIAkJCQlmb3IoaSA9 IGktMTsgaSA+PSAwOyBpLS0pCi0JCQkJCWRtYV91bm1hcF9wYWdlKCZWT1JURVhfUENJKHZwKS0+ ZGV2LAorCQkJCQlkbWFfdW5tYXBfcGFnZSh2cC0+Z2VuZGV2LAogCQkJCQkJICAgICAgIGxlMzJf dG9fY3B1KHZwLT50eF9yaW5nW2VudHJ5XS5mcmFnW2krMV0uYWRkciksCiAJCQkJCQkgICAgICAg bGUzMl90b19jcHUodnAtPnR4X3JpbmdbZW50cnldLmZyYWdbaSsxXS5sZW5ndGgpLAogCQkJCQkJ ICAgICAgIERNQV9UT19ERVZJQ0UpOwogCi0JCQkJcGNpX3VubWFwX3NpbmdsZShWT1JURVhfUENJ KHZwKSwKKwkJCQlkbWFfdW5tYXBfc2luZ2xlKHZwLT5nZW5kZXYsCiAJCQkJCQkgbGUzMl90b19j cHUodnAtPnR4X3JpbmdbZW50cnldLmZyYWdbMF0uYWRkciksCiAJCQkJCQkgbGUzMl90b19jcHUo dnAtPnR4X3JpbmdbZW50cnldLmZyYWdbMF0ubGVuZ3RoKSwKLQkJCQkJCSBQQ0lfRE1BX1RPREVW SUNFKTsKKwkJCQkJCSBETUFfVE9fREVWSUNFKTsKIAogCQkJCWdvdG8gb3V0X2RtYV9lcnI7CiAJ CQl9CkBAIC0yMjE4LDggKzIyMTcsOCBAQCBib29tZXJhbmdfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQl9CiAJfQogI2Vsc2UKLQlkbWFf YWRkciA9IHBjaV9tYXBfc2luZ2xlKFZPUlRFWF9QQ0kodnApLCBza2ItPmRhdGEsIHNrYi0+bGVu LCBQQ0lfRE1BX1RPREVWSUNFKTsKLQlpZiAoZG1hX21hcHBpbmdfZXJyb3IoJlZPUlRFWF9QQ0ko dnApLT5kZXYsIGRtYV9hZGRyKSkKKwlkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHZwLT5nZW5k ZXYsIHNrYi0+ZGF0YSwgc2tiLT5sZW4sIERNQV9UT19ERVZJQ0UpOworCWlmIChkbWFfbWFwcGlu Z19lcnJvcih2cC0+Z2VuZGV2LCBkbWFfYWRkcikpCiAJCWdvdG8gb3V0X2RtYV9lcnI7CiAJdnAt PnR4X3JpbmdbZW50cnldLmFkZHIgPSBjcHVfdG9fbGUzMihkbWFfYWRkcik7CiAJdnAtPnR4X3Jp bmdbZW50cnldLmxlbmd0aCA9IGNwdV90b19sZTMyKHNrYi0+bGVuIHwgTEFTVF9GUkFHKTsKQEAg LTIyNTQsNyArMjI1Myw3IEBAIGJvb21lcmFuZ19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiBvdXQ6CiAJcmV0dXJuIE5FVERFVl9UWF9PSzsK IG91dF9kbWFfZXJyOgotCWRldl9lcnIoJlZPUlRFWF9QQ0kodnApLT5kZXYsICJFcnJvciBtYXBw aW5nIGRtYSBidWZmZXJcbiIpOworCWRldl9lcnIodnAtPmdlbmRldiwgIkVycm9yIG1hcHBpbmcg ZG1hIGJ1ZmZlclxuIik7CiAJZ290byBvdXQ7CiB9CiAKQEAgLTIzMjIsNyArMjMyMSw3IEBAIHZv cnRleF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogCQlpZiAoc3RhdHVzICYgRE1B RG9uZSkgewogCQkJaWYgKGlvcmVhZDE2KGlvYWRkciArIFduN19NYXN0ZXJTdGF0dXMpICYgMHgx MDAwKSB7CiAJCQkJaW93cml0ZTE2KDB4MTAwMCwgaW9hZGRyICsgV243X01hc3RlclN0YXR1cyk7 IC8qIEFjayB0aGUgZXZlbnQuICovCi0JCQkJcGNpX3VubWFwX3NpbmdsZShWT1JURVhfUENJKHZw KSwgdnAtPnR4X3NrYl9kbWEsICh2cC0+dHhfc2tiLT5sZW4gKyAzKSAmIH4zLCBQQ0lfRE1BX1RP REVWSUNFKTsKKwkJCQlkbWFfdW5tYXBfc2luZ2xlKHZwLT5nZW5kZXYsIHZwLT50eF9za2JfZG1h LCAodnAtPnR4X3NrYi0+bGVuICsgMykgJiB+MywgRE1BX1RPX0RFVklDRSk7CiAJCQkJcGt0c19j b21wbCsrOwogCQkJCWJ5dGVzX2NvbXBsICs9IHZwLT50eF9za2ItPmxlbjsKIAkJCQlkZXZfa2Zy ZWVfc2tiX2lycSh2cC0+dHhfc2tiKTsgLyogUmVsZWFzZSB0aGUgdHJhbnNmZXJyZWQgYnVmZmVy ICovCkBAIC0yNDU5LDE5ICsyNDU4LDE5IEBAIGJvb21lcmFuZ19pbnRlcnJ1cHQoaW50IGlycSwg dm9pZCAqZGV2X2lkKQogCQkJCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gdnAtPnR4X3NrYnVmZltl bnRyeV07CiAjaWYgRE9fWkVST0NPUFkKIAkJCQkJaW50IGk7Ci0JCQkJCXBjaV91bm1hcF9zaW5n bGUoVk9SVEVYX1BDSSh2cCksCisJCQkJCWRtYV91bm1hcF9zaW5nbGUodnAtPmdlbmRldiwKIAkJ CQkJCQlsZTMyX3RvX2NwdSh2cC0+dHhfcmluZ1tlbnRyeV0uZnJhZ1swXS5hZGRyKSwKIAkJCQkJ CQlsZTMyX3RvX2NwdSh2cC0+dHhfcmluZ1tlbnRyeV0uZnJhZ1swXS5sZW5ndGgpJjB4RkZGLAot CQkJCQkJCVBDSV9ETUFfVE9ERVZJQ0UpOworCQkJCQkJCURNQV9UT19ERVZJQ0UpOwogCiAJCQkJ CWZvciAoaT0xOyBpPD1za2Jfc2hpbmZvKHNrYiktPm5yX2ZyYWdzOyBpKyspCi0JCQkJCQkJcGNp X3VubWFwX3BhZ2UoVk9SVEVYX1BDSSh2cCksCisJCQkJCQkJZG1hX3VubWFwX3BhZ2UodnAtPmdl bmRldiwKIAkJCQkJCQkJCQkJIGxlMzJfdG9fY3B1KHZwLT50eF9yaW5nW2VudHJ5XS5mcmFnW2ld LmFkZHIpLAogCQkJCQkJCQkJCQkgbGUzMl90b19jcHUodnAtPnR4X3JpbmdbZW50cnldLmZyYWdb aV0ubGVuZ3RoKSYweEZGRiwKLQkJCQkJCQkJCQkJIFBDSV9ETUFfVE9ERVZJQ0UpOworCQkJCQkJ CQkJCQkgRE1BX1RPX0RFVklDRSk7CiAjZWxzZQotCQkJCQlwY2lfdW5tYXBfc2luZ2xlKFZPUlRF WF9QQ0kodnApLAotCQkJCQkJbGUzMl90b19jcHUodnAtPnR4X3JpbmdbZW50cnldLmFkZHIpLCBz a2ItPmxlbiwgUENJX0RNQV9UT0RFVklDRSk7CisJCQkJCWRtYV91bm1hcF9zaW5nbGUodnAtPmdl bmRldiwKKwkJCQkJCWxlMzJfdG9fY3B1KHZwLT50eF9yaW5nW2VudHJ5XS5hZGRyKSwgc2tiLT5s ZW4sIERNQV9UT19ERVZJQ0UpOwogI2VuZGlmCiAJCQkJCXBrdHNfY29tcGwrKzsKIAkJCQkJYnl0 ZXNfY29tcGwgKz0gc2tiLT5sZW47CkBAIC0yNTYxLDE0ICsyNTYwLDE0IEBAIHN0YXRpYyBpbnQg dm9ydGV4X3J4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCQkJLyogJ3NrYl9wdXQoKScgcG9p bnRzIHRvIHRoZSBzdGFydCBvZiBza19idWZmIGRhdGEgYXJlYS4gKi8KIAkJCQlpZiAodnAtPmJ1 c19tYXN0ZXIgJiYKIAkJCQkJISAoaW9yZWFkMTYoaW9hZGRyICsgV243X01hc3RlclN0YXR1cykg JiAweDgwMDApKSB7Ci0JCQkJCWRtYV9hZGRyX3QgZG1hID0gcGNpX21hcF9zaW5nbGUoVk9SVEVY X1BDSSh2cCksIHNrYl9wdXQoc2tiLCBwa3RfbGVuKSwKLQkJCQkJCQkJCSAgIHBrdF9sZW4sIFBD SV9ETUFfRlJPTURFVklDRSk7CisJCQkJCWRtYV9hZGRyX3QgZG1hID0gZG1hX21hcF9zaW5nbGUo dnAtPmdlbmRldiwgc2tiX3B1dChza2IsIHBrdF9sZW4pLAorCQkJCQkJCQkJICAgcGt0X2xlbiwg RE1BX0ZST01fREVWSUNFKTsKIAkJCQkJaW93cml0ZTMyKGRtYSwgaW9hZGRyICsgV243X01hc3Rl ckFkZHIpOwogCQkJCQlpb3dyaXRlMTYoKHNrYi0+bGVuICsgMykgJiB+MywgaW9hZGRyICsgV243 X01hc3Rlckxlbik7CiAJCQkJCWlvd3JpdGUxNihTdGFydERNQVVwLCBpb2FkZHIgKyBFTDNfQ01E KTsKIAkJCQkJd2hpbGUgKGlvcmVhZDE2KGlvYWRkciArIFduN19NYXN0ZXJTdGF0dXMpICYgMHg4 MDAwKQogCQkJCQkJOwotCQkJCQlwY2lfdW5tYXBfc2luZ2xlKFZPUlRFWF9QQ0kodnApLCBkbWEs IHBrdF9sZW4sIFBDSV9ETUFfRlJPTURFVklDRSk7CisJCQkJCWRtYV91bm1hcF9zaW5nbGUodnAt PmdlbmRldiwgZG1hLCBwa3RfbGVuLCBETUFfRlJPTV9ERVZJQ0UpOwogCQkJCX0gZWxzZSB7CiAJ CQkJCWlvcmVhZDMyX3JlcChpb2FkZHIgKyBSWF9GSUZPLAogCQkJCQkgICAgICAgICAgICAgc2ti X3B1dChza2IsIHBrdF9sZW4pLApAQCAtMjYzNSwxMSArMjYzNCwxMSBAQCBib29tZXJhbmdfcngo c3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJCWlmIChwa3RfbGVuIDwgcnhfY29weWJyZWFrICYm CiAJCQkgICAgKHNrYiA9IG5ldGRldl9hbGxvY19za2IoZGV2LCBwa3RfbGVuICsgMikpICE9IE5V TEwpIHsKIAkJCQlza2JfcmVzZXJ2ZShza2IsIDIpOwkvKiBBbGlnbiBJUCBvbiAxNiBieXRlIGJv dW5kYXJpZXMgKi8KLQkJCQlwY2lfZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUoVk9SVEVYX1BDSSh2 cCksIGRtYSwgUEtUX0JVRl9TWiwgUENJX0RNQV9GUk9NREVWSUNFKTsKKwkJCQlkbWFfc3luY19z aW5nbGVfZm9yX2NwdSh2cC0+Z2VuZGV2LCBkbWEsIFBLVF9CVUZfU1osIERNQV9GUk9NX0RFVklD RSk7CiAJCQkJLyogJ3NrYl9wdXQoKScgcG9pbnRzIHRvIHRoZSBzdGFydCBvZiBza19idWZmIGRh dGEgYXJlYS4gKi8KIAkJCQlza2JfcHV0X2RhdGEoc2tiLCB2cC0+cnhfc2tidWZmW2VudHJ5XS0+ ZGF0YSwKIAkJCQkJICAgICBwa3RfbGVuKTsKLQkJCQlwY2lfZG1hX3N5bmNfc2luZ2xlX2Zvcl9k ZXZpY2UoVk9SVEVYX1BDSSh2cCksIGRtYSwgUEtUX0JVRl9TWiwgUENJX0RNQV9GUk9NREVWSUNF KTsKKwkJCQlkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZSh2cC0+Z2VuZGV2LCBkbWEsIFBLVF9C VUZfU1osIERNQV9GUk9NX0RFVklDRSk7CiAJCQkJdnAtPnJ4X2NvcHkrKzsKIAkJCX0gZWxzZSB7 CiAJCQkJLyogUHJlLWFsbG9jYXRlIHRoZSByZXBsYWNlbWVudCBza2IuICBJZiBpdCBvciBpdHMK QEAgLTI2NTEsOSArMjY1MCw5IEBAIGJvb21lcmFuZ19yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQogCQkJCQlkZXYtPnN0YXRzLnJ4X2Ryb3BwZWQrKzsKIAkJCQkJZ290byBjbGVhcl9jb21wbGV0 ZTsKIAkJCQl9Ci0JCQkJbmV3ZG1hID0gcGNpX21hcF9zaW5nbGUoVk9SVEVYX1BDSSh2cCksIG5l d3NrYi0+ZGF0YSwKLQkJCQkJCQlQS1RfQlVGX1NaLCBQQ0lfRE1BX0ZST01ERVZJQ0UpOwotCQkJ CWlmIChkbWFfbWFwcGluZ19lcnJvcigmVk9SVEVYX1BDSSh2cCktPmRldiwgbmV3ZG1hKSkgewor CQkJCW5ld2RtYSA9IGRtYV9tYXBfc2luZ2xlKHZwLT5nZW5kZXYsIG5ld3NrYi0+ZGF0YSwKKwkJ CQkJCQlQS1RfQlVGX1NaLCBETUFfRlJPTV9ERVZJQ0UpOworCQkJCWlmIChkbWFfbWFwcGluZ19l cnJvcih2cC0+Z2VuZGV2LCBuZXdkbWEpKSB7CiAJCQkJCWRldi0+c3RhdHMucnhfZHJvcHBlZCsr OwogCQkJCQljb25zdW1lX3NrYihuZXdza2IpOwogCQkJCQlnb3RvIGNsZWFyX2NvbXBsZXRlOwpA QCAtMjY2NCw3ICsyNjYzLDcgQEAgYm9vbWVyYW5nX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp CiAJCQkJdnAtPnJ4X3NrYnVmZltlbnRyeV0gPSBuZXdza2I7CiAJCQkJdnAtPnJ4X3JpbmdbZW50 cnldLmFkZHIgPSBjcHVfdG9fbGUzMihuZXdkbWEpOwogCQkJCXNrYl9wdXQoc2tiLCBwa3RfbGVu KTsKLQkJCQlwY2lfdW5tYXBfc2luZ2xlKFZPUlRFWF9QQ0kodnApLCBkbWEsIFBLVF9CVUZfU1os IFBDSV9ETUFfRlJPTURFVklDRSk7CisJCQkJZG1hX3VubWFwX3NpbmdsZSh2cC0+Z2VuZGV2LCBk bWEsIFBLVF9CVUZfU1osIERNQV9GUk9NX0RFVklDRSk7CiAJCQkJdnAtPnJ4X25vY29weSsrOwog CQkJfQogCQkJc2tiLT5wcm90b2NvbCA9IGV0aF90eXBlX3RyYW5zKHNrYiwgZGV2KTsKQEAgLTI3 NjEsOCArMjc2MCw4IEBAIHZvcnRleF9jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWlm ICh2cC0+ZnVsbF9idXNfbWFzdGVyX3J4KSB7IC8qIEZyZWUgQm9vbWVyYW5nIGJ1cyBtYXN0ZXIg UnggYnVmZmVycy4gKi8KIAkJZm9yIChpID0gMDsgaSA8IFJYX1JJTkdfU0laRTsgaSsrKQogCQkJ aWYgKHZwLT5yeF9za2J1ZmZbaV0pIHsKLQkJCQlwY2lfdW5tYXBfc2luZ2xlKAlWT1JURVhfUENJ KHZwKSwgbGUzMl90b19jcHUodnAtPnJ4X3JpbmdbaV0uYWRkciksCi0JCQkJCQkJCQlQS1RfQlVG X1NaLCBQQ0lfRE1BX0ZST01ERVZJQ0UpOworCQkJCWRtYV91bm1hcF9zaW5nbGUodnAtPmdlbmRl diwgbGUzMl90b19jcHUodnAtPnJ4X3JpbmdbaV0uYWRkciksCisJCQkJCQkJCQlQS1RfQlVGX1Na LCBETUFfRlJPTV9ERVZJQ0UpOwogCQkJCWRldl9rZnJlZV9za2IodnAtPnJ4X3NrYnVmZltpXSk7 CiAJCQkJdnAtPnJ4X3NrYnVmZltpXSA9IE5VTEw7CiAJCQl9CkBAIC0yNzc1LDEyICsyNzc0LDEy IEBAIHZvcnRleF9jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQkJCWludCBrOwogCiAJ CQkJZm9yIChrPTA7IGs8PXNrYl9zaGluZm8oc2tiKS0+bnJfZnJhZ3M7IGsrKykKLQkJCQkJCXBj aV91bm1hcF9zaW5nbGUoVk9SVEVYX1BDSSh2cCksCisJCQkJCQlkbWFfdW5tYXBfc2luZ2xlKHZw LT5nZW5kZXYsCiAJCQkJCQkJCQkJIGxlMzJfdG9fY3B1KHZwLT50eF9yaW5nW2ldLmZyYWdba10u YWRkciksCiAJCQkJCQkJCQkJIGxlMzJfdG9fY3B1KHZwLT50eF9yaW5nW2ldLmZyYWdba10ubGVu Z3RoKSYweEZGRiwKLQkJCQkJCQkJCQkgUENJX0RNQV9UT0RFVklDRSk7CisJCQkJCQkJCQkJIERN QV9UT19ERVZJQ0UpOwogI2Vsc2UKLQkJCQlwY2lfdW5tYXBfc2luZ2xlKFZPUlRFWF9QQ0kodnAp LCBsZTMyX3RvX2NwdSh2cC0+dHhfcmluZ1tpXS5hZGRyKSwgc2tiLT5sZW4sIFBDSV9ETUFfVE9E RVZJQ0UpOworCQkJCWRtYV91bm1hcF9zaW5nbGUodnAtPmdlbmRldiwgbGUzMl90b19jcHUodnAt PnR4X3JpbmdbaV0uYWRkciksIHNrYi0+bGVuLCBETUFfVE9fREVWSUNFKTsKICNlbmRpZgogCQkJ CWRldl9rZnJlZV9za2Ioc2tiKTsKIAkJCQl2cC0+dHhfc2tidWZmW2ldID0gTlVMTDsKQEAgLTMy ODgsMTEgKzMyODcsMTAgQEAgc3RhdGljIHZvaWQgdm9ydGV4X3JlbW92ZV9vbmUoc3RydWN0IHBj aV9kZXYgKnBkZXYpCiAKIAlwY2lfaW91bm1hcChwZGV2LCB2cC0+aW9hZGRyKTsKIAotCXBjaV9m cmVlX2NvbnNpc3RlbnQocGRldiwKLQkJCQkJCXNpemVvZihzdHJ1Y3QgYm9vbV9yeF9kZXNjKSAq IFJYX1JJTkdfU0laRQotCQkJCQkJCSsgc2l6ZW9mKHN0cnVjdCBib29tX3R4X2Rlc2MpICogVFhf UklOR19TSVpFLAotCQkJCQkJdnAtPnJ4X3JpbmcsCi0JCQkJCQl2cC0+cnhfcmluZ19kbWEpOwor CWRtYV9mcmVlX2NvaGVyZW50KCZwZGV2LT5kZXYsCisJCQlzaXplb2Yoc3RydWN0IGJvb21fcnhf ZGVzYykgKiBSWF9SSU5HX1NJWkUgKworCQkJc2l6ZW9mKHN0cnVjdCBib29tX3R4X2Rlc2MpICog VFhfUklOR19TSVpFLAorCQkJdnAtPnJ4X3JpbmcsIHZwLT5yeF9yaW5nX2RtYSk7CiAKIAlwY2lf cmVsZWFzZV9yZWdpb25zKHBkZXYpOwogCi0tIAoyLjE0LjMKCgpGcm9tIGE2MzY4MDA5ZTI3ODBk MTQ0Y2Q5OWVkNjk0ZjFkMGU0NGEzZjE5MjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFJhaHVsIExha2tpcmVkZHkgPHJhaHVsLmxha2tpcmVkZHlAY2hlbHNpby5jb20+CkRhdGU6IEZy aSwgMTggTWF5IDIwMTggMTk6MTM6MzcgKzA1MzAKU3ViamVjdDogW1BBVENIIDE5LzMyXSBjeGdi NDogZml4IG9mZnNldCBpbiBjb2xsZWN0aW5nIFRYIHJhdGUgbGltaXQgaW5mbwoKWyBVcHN0cmVh bSBjb21taXQgZDc3NWYyNmIyOTVhMGEzMDNmN2E3M2Q3ZGE0NmUwNDI5NjQ4NGZlNyBdCgpDb3Jy ZWN0IHRoZSBpbmRpcmVjdCByZWdpc3RlciBvZmZzZXRzIGluIGNvbGxlY3RpbmcgVFggcmF0ZSBs aW1pdCBpbmZvCmluIFVQIENJTSBsb2dzLgoKQWxzbywgVDUgZG9lc24ndCBzdXBwb3J0IHRoZXNl IGluZGlyZWN0IHJlZ2lzdGVyIG9mZnNldHMsIHNvIHJlbW92ZQp0aGVtIGZyb20gY29sbGVjdGlv biBsb2dpYy4KCkZpeGVzOiBiZTZlMzZkOTE2YjEgKCJjeGdiNDogY29sbGVjdCBUWCByYXRlIGxp bWl0IGluZm8gaW4gVVAgQ0lNIGxvZ3MiKQpTaWduZWQtb2ZmLWJ5OiBSYWh1bCBMYWtraXJlZGR5 IDxyYWh1bC5sYWtraXJlZGR5QGNoZWxzaW8uY29tPgpTaWduZWQtb2ZmLWJ5OiBHYW5lc2ggR291 ZGFyIDxnYW5lc2hnckBjaGVsc2lvLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8v Y3hnYjQvY3VkYmdfZW50aXR5LmggfCAyOCArKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19lbnRpdHkuaCBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfZW50aXR5LmgKaW5kZXggYjU3YWNi OGRjMzViLi5kYzI1MDY2YzU5YTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2No ZWxzaW8vY3hnYjQvY3VkYmdfZW50aXR5LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hl bHNpby9jeGdiNC9jdWRiZ19lbnRpdHkuaApAQCAtNDE5LDE1ICs0MTksMTUgQEAgc3RhdGljIGNv bnN0IHUzMiB0Nl91cF9jaW1fcmVnX2FycmF5W11bSVJFR19OVU1fRUxFTSArIDFdID0gewogCXsw eDdiNTAsIDB4N2I1NCwgMHgyODAsIDB4MjAsIDB9LCAvKiB1cF9jaW1fMjgwX3RvXzJmYyAqLwog CXsweDdiNTAsIDB4N2I1NCwgMHgzMDAsIDB4MjAsIDB9LCAvKiB1cF9jaW1fMzAwX3RvXzM3YyAq LwogCXsweDdiNTAsIDB4N2I1NCwgMHgzODAsIDB4MTQsIDB9LCAvKiB1cF9jaW1fMzgwX3RvXzNj YyAqLwotCXsweDdiNTAsIDB4N2I1NCwgMHgyOTAwLCAweDQsIDB4NH0sIC8qIHVwX2NpbV8yOTAw X3RvXzNkNDAgKi8KLQl7MHg3YjUwLCAweDdiNTQsIDB4MjkwNCwgMHg0LCAweDR9LCAvKiB1cF9j aW1fMjkwNF90b18zZDQ0ICovCi0JezB4N2I1MCwgMHg3YjU0LCAweDI5MDgsIDB4NCwgMHg0fSwg LyogdXBfY2ltXzI5MDhfdG9fM2Q0OCAqLwotCXsweDdiNTAsIDB4N2I1NCwgMHgyOTEwLCAweDQs IDB4NH0sIC8qIHVwX2NpbV8yOTEwX3RvXzNkNGMgKi8KLQl7MHg3YjUwLCAweDdiNTQsIDB4Mjkx NCwgMHg0LCAweDR9LCAvKiB1cF9jaW1fMjkxNF90b18zZDUwICovCi0JezB4N2I1MCwgMHg3YjU0 LCAweDI5MjAsIDB4MTAsIDB4MTB9LCAvKiB1cF9jaW1fMjkyMF90b18yYTEwICovCi0JezB4N2I1 MCwgMHg3YjU0LCAweDI5MjQsIDB4MTAsIDB4MTB9LCAvKiB1cF9jaW1fMjkyNF90b18yYTE0ICov Ci0JezB4N2I1MCwgMHg3YjU0LCAweDI5MjgsIDB4MTAsIDB4MTB9LCAvKiB1cF9jaW1fMjkyOF90 b18yYTE4ICovCi0JezB4N2I1MCwgMHg3YjU0LCAweDI5MmMsIDB4MTAsIDB4MTB9LCAvKiB1cF9j aW1fMjkyY190b18yYTFjICovCisJezB4N2I1MCwgMHg3YjU0LCAweDQ5MDAsIDB4NCwgMHg0fSwg LyogdXBfY2ltXzQ5MDBfdG9fNGM2MCAqLworCXsweDdiNTAsIDB4N2I1NCwgMHg0OTA0LCAweDQs IDB4NH0sIC8qIHVwX2NpbV80OTA0X3RvXzRjNjQgKi8KKwl7MHg3YjUwLCAweDdiNTQsIDB4NDkw OCwgMHg0LCAweDR9LCAvKiB1cF9jaW1fNDkwOF90b180YzY4ICovCisJezB4N2I1MCwgMHg3YjU0 LCAweDQ5MTAsIDB4NCwgMHg0fSwgLyogdXBfY2ltXzQ5MTBfdG9fNGM3MCAqLworCXsweDdiNTAs IDB4N2I1NCwgMHg0OTE0LCAweDQsIDB4NH0sIC8qIHVwX2NpbV80OTE0X3RvXzRjNzQgKi8KKwl7 MHg3YjUwLCAweDdiNTQsIDB4NDkyMCwgMHgxMCwgMHgxMH0sIC8qIHVwX2NpbV80OTIwX3RvXzRh MTAgKi8KKwl7MHg3YjUwLCAweDdiNTQsIDB4NDkyNCwgMHgxMCwgMHgxMH0sIC8qIHVwX2NpbV80 OTI0X3RvXzRhMTQgKi8KKwl7MHg3YjUwLCAweDdiNTQsIDB4NDkyOCwgMHgxMCwgMHgxMH0sIC8q IHVwX2NpbV80OTI4X3RvXzRhMTggKi8KKwl7MHg3YjUwLCAweDdiNTQsIDB4NDkyYywgMHgxMCwg MHgxMH0sIC8qIHVwX2NpbV80OTJjX3RvXzRhMWMgKi8KIH07CiAKIHN0YXRpYyBjb25zdCB1MzIg dDVfdXBfY2ltX3JlZ19hcnJheVtdW0lSRUdfTlVNX0VMRU0gKyAxXSA9IHsKQEAgLTQ0NCwxNiAr NDQ0LDYgQEAgc3RhdGljIGNvbnN0IHUzMiB0NV91cF9jaW1fcmVnX2FycmF5W11bSVJFR19OVU1f RUxFTSArIDFdID0gewogCXsweDdiNTAsIDB4N2I1NCwgMHgyODAsIDB4MjAsIDB9LCAvKiB1cF9j aW1fMjgwX3RvXzJmYyAqLwogCXsweDdiNTAsIDB4N2I1NCwgMHgzMDAsIDB4MjAsIDB9LCAvKiB1 cF9jaW1fMzAwX3RvXzM3YyAqLwogCXsweDdiNTAsIDB4N2I1NCwgMHgzODAsIDB4MTQsIDB9LCAv KiB1cF9jaW1fMzgwX3RvXzNjYyAqLwotCXsweDdiNTAsIDB4N2I1NCwgMHgyOTAwLCAweDQsIDB4 NH0sIC8qIHVwX2NpbV8yOTAwX3RvXzNkNDAgKi8KLQl7MHg3YjUwLCAweDdiNTQsIDB4MjkwNCwg MHg0LCAweDR9LCAvKiB1cF9jaW1fMjkwNF90b18zZDQ0ICovCi0JezB4N2I1MCwgMHg3YjU0LCAw eDI5MDgsIDB4NCwgMHg0fSwgLyogdXBfY2ltXzI5MDhfdG9fM2Q0OCAqLwotCXsweDdiNTAsIDB4 N2I1NCwgMHgyOTEwLCAweDQsIDB4NH0sIC8qIHVwX2NpbV8yOTEwX3RvXzNkNGMgKi8KLQl7MHg3 YjUwLCAweDdiNTQsIDB4MjkxNCwgMHg0LCAweDR9LCAvKiB1cF9jaW1fMjkxNF90b18zZDUwICov Ci0JezB4N2I1MCwgMHg3YjU0LCAweDI5MTgsIDB4NCwgMHg0fSwgLyogdXBfY2ltXzI5MThfdG9f M2Q1NCAqLwotCXsweDdiNTAsIDB4N2I1NCwgMHgyOTFjLCAweDQsIDB4NH0sIC8qIHVwX2NpbV8y OTFjX3RvXzNkNTggKi8KLQl7MHg3YjUwLCAweDdiNTQsIDB4MjkyNCwgMHgxMCwgMHgxMH0sIC8q IHVwX2NpbV8yOTI0X3RvXzI5MTQgKi8KLQl7MHg3YjUwLCAweDdiNTQsIDB4MjkyOCwgMHgxMCwg MHgxMH0sIC8qIHVwX2NpbV8yOTI4X3RvXzJhMTggKi8KLQl7MHg3YjUwLCAweDdiNTQsIDB4Mjky YywgMHgxMCwgMHgxMH0sIC8qIHVwX2NpbV8yOTJjX3RvXzJhMWMgKi8KIH07CiAKIHN0YXRpYyBj b25zdCB1MzIgdDZfaG1hX2lyZWdfYXJyYXlbXVtJUkVHX05VTV9FTEVNXSA9IHsKLS0gCjIuMTQu MwoKCkZyb20gMzBiYWJmOGNlMTQ3Yzg2OWFhMjU0NzdlNWVjNzA3MWE0MjZhMDA4OCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogImhwcmVnQHZtd2FyZS5jb20iIDxocHJlZ0B2bXdhcmUu Y29tPgpEYXRlOiBNb24sIDE0IE1heSAyMDE4IDA4OjE0OjM0IC0wNDAwClN1YmplY3Q6IFtQQVRD SCAyMC8zMl0gdm14bmV0Mzogc2V0IHRoZSBETUEgbWFzayBiZWZvcmUgdGhlIGZpcnN0IERNQSBt YXAKIG9wZXJhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgNjFhZWVjZWE0MGFmYjJiODk5MzNlMjdj ZDRhZGIxMGZjMmU3NWNmZCBdCgpUaGUgRE1BIG1hc2sgbXVzdCBiZSBzZXQgYmVmb3JlLCBub3Qg YWZ0ZXIsIHRoZSBmaXJzdCBETUEgbWFwIG9wZXJhdGlvbiwgb3IKdGhlIGZpcnN0IERNQSBtYXAg b3BlcmF0aW9uIGNvdWxkIGluIHRoZW9yeSBmYWlsIG9uIHNvbWUgc3lzdGVtcy4KCkZpeGVzOiBi MGViNTdjYjk3ZTc4ICgiVk1YTkVUMzogQWRkIHN1cHBvcnQgZm9yIHZpcnR1YWwgSU9NTVUiKQpT aWduZWQtb2ZmLWJ5OiBSZWdpcyBEdWNoZXNuZSA8aHByZWdAdm13YXJlLmNvbT4KQWNrZWQtYnk6 IFJvbmFrIERvc2hpIDxkb3NoaXJAdm13YXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14 bmV0M19kcnYuYyB8IDUwICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQog ZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2ludC5oIHwgIDggKysrKy0tLQogMiBmaWxlcyBj aGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZHJ2LmMgYi9kcml2ZXJzL25ldC92bXhuZXQzL3Zt eG5ldDNfZHJ2LmMKaW5kZXggOWViZTJhNjg5OTY2Li5lZDU4Njg1YzM1M2YgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYuYworKysgYi9kcml2ZXJzL25ldC92bXhu ZXQzL3ZteG5ldDNfZHJ2LmMKQEAgLTI2ODgsNyArMjY4OCw3IEBAIHZteG5ldDNfc2V0X21hY19h ZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHZvaWQgKnApCiAvKiA9PT09PT09PT09PT09 PT09PT09PSBpbml0aWFsaXphdGlvbiBhbmQgY2xlYW51cCByb3V0aW5lcyA9PT09PT09PT09PT0g Ki8KIAogc3RhdGljIGludAotdm14bmV0M19hbGxvY19wY2lfcmVzb3VyY2VzKHN0cnVjdCB2bXhu ZXQzX2FkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgKmRtYTY0KQordm14bmV0M19hbGxvY19wY2lfcmVz b3VyY2VzKHN0cnVjdCB2bXhuZXQzX2FkYXB0ZXIgKmFkYXB0ZXIpCiB7CiAJaW50IGVycjsKIAl1 bnNpZ25lZCBsb25nIG1taW9fc3RhcnQsIG1taW9fbGVuOwpAQCAtMjcwMCwzMCArMjcwMCwxMiBA QCB2bXhuZXQzX2FsbG9jX3BjaV9yZXNvdXJjZXMoc3RydWN0IHZteG5ldDNfYWRhcHRlciAqYWRh cHRlciwgYm9vbCAqZG1hNjQpCiAJCXJldHVybiBlcnI7CiAJfQogCi0JaWYgKHBjaV9zZXRfZG1h X21hc2socGRldiwgRE1BX0JJVF9NQVNLKDY0KSkgPT0gMCkgewotCQlpZiAocGNpX3NldF9jb25z aXN0ZW50X2RtYV9tYXNrKHBkZXYsIERNQV9CSVRfTUFTSyg2NCkpICE9IDApIHsKLQkJCWRldl9l cnIoJnBkZXYtPmRldiwKLQkJCQkicGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrIGZhaWxlZFxu Iik7Ci0JCQllcnIgPSAtRUlPOwotCQkJZ290byBlcnJfc2V0X21hc2s7Ci0JCX0KLQkJKmRtYTY0 ID0gdHJ1ZTsKLQl9IGVsc2UgewotCQlpZiAocGNpX3NldF9kbWFfbWFzayhwZGV2LCBETUFfQklU X01BU0soMzIpKSAhPSAwKSB7Ci0JCQlkZXZfZXJyKCZwZGV2LT5kZXYsCi0JCQkJInBjaV9zZXRf ZG1hX21hc2sgZmFpbGVkXG4iKTsKLQkJCWVyciA9IC1FSU87Ci0JCQlnb3RvIGVycl9zZXRfbWFz azsKLQkJfQotCQkqZG1hNjQgPSBmYWxzZTsKLQl9Ci0KIAllcnIgPSBwY2lfcmVxdWVzdF9zZWxl Y3RlZF9yZWdpb25zKHBkZXYsICgxIDw8IDIpIC0gMSwKIAkJCQkJICAgdm14bmV0M19kcml2ZXJf bmFtZSk7CiAJaWYgKGVycikgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsCiAJCQkiRmFpbGVkIHRv IHJlcXVlc3QgcmVnaW9uIGZvciBhZGFwdGVyOiBlcnJvciAlZFxuIiwgZXJyKTsKLQkJZ290byBl cnJfc2V0X21hc2s7CisJCWdvdG8gZXJyX2VuYWJsZV9kZXZpY2U7CiAJfQogCiAJcGNpX3NldF9t YXN0ZXIocGRldik7CkBAIC0yNzUxLDcgKzI3MzMsNyBAQCB2bXhuZXQzX2FsbG9jX3BjaV9yZXNv dXJjZXMoc3RydWN0IHZteG5ldDNfYWRhcHRlciAqYWRhcHRlciwgYm9vbCAqZG1hNjQpCiAJaW91 bm1hcChhZGFwdGVyLT5od19hZGRyMCk7CiBlcnJfaW9yZW1hcDoKIAlwY2lfcmVsZWFzZV9zZWxl Y3RlZF9yZWdpb25zKHBkZXYsICgxIDw8IDIpIC0gMSk7Ci1lcnJfc2V0X21hc2s6CitlcnJfZW5h YmxlX2RldmljZToKIAlwY2lfZGlzYWJsZV9kZXZpY2UocGRldik7CiAJcmV0dXJuIGVycjsKIH0K QEAgLTMyNTQsNyArMzIzNiw3IEBAIHZteG5ldDNfcHJvYmVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2 ICpwZGV2LAogI2VuZGlmCiAJfTsKIAlpbnQgZXJyOwotCWJvb2wgZG1hNjQgPSBmYWxzZTsgLyog c3R1cGlkIGdjYyAqLworCWJvb2wgZG1hNjQ7CiAJdTMyIHZlcjsKIAlzdHJ1Y3QgbmV0X2Rldmlj ZSAqbmV0ZGV2OwogCXN0cnVjdCB2bXhuZXQzX2FkYXB0ZXIgKmFkYXB0ZXI7CkBAIC0zMzAwLDYg KzMyODIsMjQgQEAgdm14bmV0M19wcm9iZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJ YWRhcHRlci0+cnhfcmluZ19zaXplID0gVk1YTkVUM19ERUZfUlhfUklOR19TSVpFOwogCWFkYXB0 ZXItPnJ4X3JpbmcyX3NpemUgPSBWTVhORVQzX0RFRl9SWF9SSU5HMl9TSVpFOwogCisJaWYgKHBj aV9zZXRfZG1hX21hc2socGRldiwgRE1BX0JJVF9NQVNLKDY0KSkgPT0gMCkgeworCQlpZiAocGNp X3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKHBkZXYsIERNQV9CSVRfTUFTSyg2NCkpICE9IDApIHsK KwkJCWRldl9lcnIoJnBkZXYtPmRldiwKKwkJCQkicGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNr IGZhaWxlZFxuIik7CisJCQllcnIgPSAtRUlPOworCQkJZ290byBlcnJfc2V0X21hc2s7CisJCX0K KwkJZG1hNjQgPSB0cnVlOworCX0gZWxzZSB7CisJCWlmIChwY2lfc2V0X2RtYV9tYXNrKHBkZXYs IERNQV9CSVRfTUFTSygzMikpICE9IDApIHsKKwkJCWRldl9lcnIoJnBkZXYtPmRldiwKKwkJCQki cGNpX3NldF9kbWFfbWFzayBmYWlsZWRcbiIpOworCQkJZXJyID0gLUVJTzsKKwkJCWdvdG8gZXJy X3NldF9tYXNrOworCQl9CisJCWRtYTY0ID0gZmFsc2U7CisJfQorCiAJc3Bpbl9sb2NrX2luaXQo JmFkYXB0ZXItPmNtZF9sb2NrKTsKIAlhZGFwdGVyLT5hZGFwdGVyX3BhID0gZG1hX21hcF9zaW5n bGUoJmFkYXB0ZXItPnBkZXYtPmRldiwgYWRhcHRlciwKIAkJCQkJICAgICBzaXplb2Yoc3RydWN0 IHZteG5ldDNfYWRhcHRlciksCkBAIC0zMzA3LDcgKzMzMDcsNyBAQCB2bXhuZXQzX3Byb2JlX2Rl dmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAlpZiAoZG1hX21hcHBpbmdfZXJyb3IoJmFkYXB0 ZXItPnBkZXYtPmRldiwgYWRhcHRlci0+YWRhcHRlcl9wYSkpIHsKIAkJZGV2X2VycigmcGRldi0+ ZGV2LCAiRmFpbGVkIHRvIG1hcCBkbWFcbiIpOwogCQllcnIgPSAtRUZBVUxUOwotCQlnb3RvIGVy cl9kbWFfbWFwOworCQlnb3RvIGVycl9zZXRfbWFzazsKIAl9CiAJYWRhcHRlci0+c2hhcmVkID0g ZG1hX2FsbG9jX2NvaGVyZW50KAogCQkJCSZhZGFwdGVyLT5wZGV2LT5kZXYsCkBAIC0zMzU4LDcg KzMzNTgsNyBAQCB2bXhuZXQzX3Byb2JlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAl9 CiAjZW5kaWYgLyogVk1YTkVUM19SU1MgKi8KIAotCWVyciA9IHZteG5ldDNfYWxsb2NfcGNpX3Jl c291cmNlcyhhZGFwdGVyLCAmZG1hNjQpOworCWVyciA9IHZteG5ldDNfYWxsb2NfcGNpX3Jlc291 cmNlcyhhZGFwdGVyKTsKIAlpZiAoZXJyIDwgMCkKIAkJZ290byBlcnJfYWxsb2NfcGNpOwogCkBA IC0zNTA0LDcgKzM1MDQsNyBAQCB2bXhuZXQzX3Byb2JlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAq cGRldiwKIGVycl9hbGxvY19zaGFyZWQ6CiAJZG1hX3VubWFwX3NpbmdsZSgmYWRhcHRlci0+cGRl di0+ZGV2LCBhZGFwdGVyLT5hZGFwdGVyX3BhLAogCQkJIHNpemVvZihzdHJ1Y3Qgdm14bmV0M19h ZGFwdGVyKSwgUENJX0RNQV9UT0RFVklDRSk7Ci1lcnJfZG1hX21hcDoKK2Vycl9zZXRfbWFzazoK IAlmcmVlX25ldGRldihuZXRkZXYpOwogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfaW50LmggYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5l dDNfaW50LmgKaW5kZXggYTMzMjY0NjNiNzFmLi5iMzc5YmVkNWY1MWQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19pbnQuaAorKysgYi9kcml2ZXJzL25ldC92bXhuZXQz L3ZteG5ldDNfaW50LmgKQEAgLTY5LDEwICs2OSwxMiBAQAogLyoKICAqIFZlcnNpb24gbnVtYmVy cwogICovCi0jZGVmaW5lIFZNWE5FVDNfRFJJVkVSX1ZFUlNJT05fU1RSSU5HICAgIjEuNC4xNC4w LWsiCisjZGVmaW5lIFZNWE5FVDNfRFJJVkVSX1ZFUlNJT05fU1RSSU5HICAgIjEuNC4xNS4wLWsi CiAKLS8qIGEgMzItYml0IGludCwgZWFjaCBieXRlIGVuY29kZSBhIHZlcmlvbiBudW1iZXIgaW4g Vk1YTkVUM19EUklWRVJfVkVSU0lPTiAqLwotI2RlZmluZSBWTVhORVQzX0RSSVZFUl9WRVJTSU9O X05VTSAgICAgIDB4MDEwNDBlMDAKKy8qIEVhY2ggYnl0ZSBvZiB0aGlzIDMyLWJpdCBpbnRlZ2Vy IGVuY29kZXMgYSB2ZXJzaW9uIG51bWJlciBpbgorICogVk1YTkVUM19EUklWRVJfVkVSU0lPTl9T VFJJTkcuCisgKi8KKyNkZWZpbmUgVk1YTkVUM19EUklWRVJfVkVSU0lPTl9OVU0gICAgICAweDAx MDQwZjAwCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0lfTVNJKQogCS8qIFJTUyBvbmx5IG1ha2Vz IHNlbnNlIGlmIE1TSS1YIGlzIHN1cHBvcnRlZC4gKi8KLS0gCjIuMTQuMwoKCkZyb20gMzcyNWZh YzMzNWMwNDI5NDFkN2YwY2FmOTgyZWU5OTAxOTk5OTJiYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogImhwcmVnQHZtd2FyZS5jb20iIDxocHJlZ0B2bXdhcmUuY29tPgpEYXRlOiBNb24s IDE0IE1heSAyMDE4IDA4OjE0OjQ5IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyMS8zMl0gdm14bmV0 MzogdXNlIERNQSBtZW1vcnkgYmFycmllcnMgd2hlcmUgcmVxdWlyZWQKClsgVXBzdHJlYW0gY29t bWl0IGYzMDAyYzEzNzRmYjIzNjdjOWQ4ZGJiMjg4NTI3OTFlZjkwZDJiYWMgXQoKVGhlIGdlbiBi aXRzIG11c3QgYmUgcmVhZCBmaXJzdCBmcm9tIChyZXNwLiB3cml0dGVuIGxhc3QgdG8pIERNQSBt ZW1vcnkuClRoZSBwcm9wZXIgd2F5IHRvIGVuZm9yY2UgdGhpcyBvbiBMaW51eCBpcyB0byBjYWxs IGRtYV9ybWIoKSAocmVzcC4KZG1hX3dtYigpKS4KClNpZ25lZC1vZmYtYnk6IFJlZ2lzIER1Y2hl c25lIDxocHJlZ0B2bXdhcmUuY29tPgpBY2tlZC1ieTogUm9uYWsgRG9zaGkgPGRvc2hpckB2bXdh cmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2Rydi5jIHwgMjIgKysrKysrKysr KysrKysrKysrKysrKwogZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2ludC5oIHwgIDQgKyst LQogMiBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYuYyBiL2RyaXZlcnMvbmV0 L3ZteG5ldDMvdm14bmV0M19kcnYuYwppbmRleCBlZDU4Njg1YzM1M2YuLjI3YTliYjhjOTYxMSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2Rydi5jCisrKyBiL2RyaXZl cnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYuYwpAQCAtMzY5LDYgKzM2OSwxMSBAQCB2bXhuZXQz X3RxX3R4X2NvbXBsZXRlKHN0cnVjdCB2bXhuZXQzX3R4X3F1ZXVlICp0cSwKIAogCWdkZXNjID0g dHEtPmNvbXBfcmluZy5iYXNlICsgdHEtPmNvbXBfcmluZy5uZXh0MnByb2M7CiAJd2hpbGUgKFZN WE5FVDNfVENEX0dFVF9HRU4oJmdkZXNjLT50Y2QpID09IHRxLT5jb21wX3JpbmcuZ2VuKSB7CisJ CS8qIFByZXZlbnQgYW55ICZnZGVzYy0+dGNkIGZpZWxkIGZyb20gYmVpbmcgKHNwZWN1bGF0aXZl bHkpCisJCSAqIHJlYWQgYmVmb3JlICgmZ2Rlc2MtPnRjZCktPmdlbiBpcyByZWFkLgorCQkgKi8K KwkJZG1hX3JtYigpOworCiAJCWNvbXBsZXRlZCArPSB2bXhuZXQzX3VubWFwX3BrdChWTVhORVQz X1RDRF9HRVRfVFhJRFgoCiAJCQkJCSAgICAgICAmZ2Rlc2MtPnRjZCksIHRxLCBhZGFwdGVyLT5w ZGV2LAogCQkJCQkgICAgICAgYWRhcHRlcik7CkBAIC0xMTAzLDYgKzExMDgsMTEgQEAgdm14bmV0 M190cV94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB2bXhuZXQzX3R4X3F1ZXVlICp0 cSwKIAkJZ2Rlc2MtPnR4ZC50Y2kgPSBza2Jfdmxhbl90YWdfZ2V0KHNrYik7CiAJfQogCisJLyog RW5zdXJlIHRoYXQgdGhlIHdyaXRlIHRvICgmZ2Rlc2MtPnR4ZCktPmdlbiB3aWxsIGJlIG9ic2Vy dmVkIGFmdGVyCisJICogYWxsIG90aGVyIHdyaXRlcyB0byAmZ2Rlc2MtPnR4ZC4KKwkgKi8KKwlk bWFfd21iKCk7CisKIAkvKiBmaW5hbGx5IGZsaXBzIHRoZSBHRU4gYml0IG9mIHRoZSBTT1AgZGVz Yy4gKi8KIAlnZGVzYy0+ZHdvcmRbMl0gPSBjcHVfdG9fbGUzMihsZTMyX3RvX2NwdShnZGVzYy0+ ZHdvcmRbMl0pIF4KIAkJCQkJCSAgVk1YTkVUM19UWERfR0VOKTsKQEAgLTEyOTgsNiArMTMwOCwx MiBAQCB2bXhuZXQzX3JxX3J4X2NvbXBsZXRlKHN0cnVjdCB2bXhuZXQzX3J4X3F1ZXVlICpycSwK IAkJCSAqLwogCQkJYnJlYWs7CiAJCX0KKworCQkvKiBQcmV2ZW50IGFueSByY2QgZmllbGQgZnJv bSBiZWluZyAoc3BlY3VsYXRpdmVseSkgcmVhZCBiZWZvcmUKKwkJICogcmNkLT5nZW4gaXMgcmVh ZC4KKwkJICovCisJCWRtYV9ybWIoKTsKKwogCQlCVUdfT04ocmNkLT5ycUlEICE9IHJxLT5xaWQg JiYgcmNkLT5ycUlEICE9IHJxLT5xaWQyICYmCiAJCSAgICAgICByY2QtPnJxSUQgIT0gcnEtPmRh dGFSaW5nUWlkKTsKIAkJaWR4ID0gcmNkLT5yeGRJZHg7CkBAIC0xNTI4LDYgKzE1NDQsMTIgQEAg dm14bmV0M19ycV9yeF9jb21wbGV0ZShzdHJ1Y3Qgdm14bmV0M19yeF9xdWV1ZSAqcnEsCiAJCXJp bmctPm5leHQyY29tcCA9IGlkeDsKIAkJbnVtX3RvX2FsbG9jID0gdm14bmV0M19jbWRfcmluZ19k ZXNjX2F2YWlsKHJpbmcpOwogCQlyaW5nID0gcnEtPnJ4X3JpbmcgKyByaW5nX2lkeDsKKworCQkv KiBFbnN1cmUgdGhhdCB0aGUgd3JpdGVzIHRvIHJ4ZC0+Z2VuIGJpdHMgd2lsbCBiZSBvYnNlcnZl ZAorCQkgKiBhZnRlciBhbGwgb3RoZXIgd3JpdGVzIHRvIHJ4ZCBvYmplY3RzLgorCQkgKi8KKwkJ ZG1hX3dtYigpOworCiAJCXdoaWxlIChudW1fdG9fYWxsb2MpIHsKIAkJCXZteG5ldDNfZ2V0UnhE ZXNjKHJ4ZCwgJnJpbmctPmJhc2VbcmluZy0+bmV4dDJmaWxsXS5yeGQsCiAJCQkJCSAgJnJ4Q21k RGVzYyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfaW50LmggYi9k cml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfaW50LmgKaW5kZXggYjM3OWJlZDVmNTFkLi5hMmM1 NTRmOGE2MWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19pbnQuaAor KysgYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfaW50LmgKQEAgLTY5LDEyICs2OSwxMiBA QAogLyoKICAqIFZlcnNpb24gbnVtYmVycwogICovCi0jZGVmaW5lIFZNWE5FVDNfRFJJVkVSX1ZF UlNJT05fU1RSSU5HICAgIjEuNC4xNS4wLWsiCisjZGVmaW5lIFZNWE5FVDNfRFJJVkVSX1ZFUlNJ T05fU1RSSU5HICAgIjEuNC4xNi4wLWsiCiAKIC8qIEVhY2ggYnl0ZSBvZiB0aGlzIDMyLWJpdCBp bnRlZ2VyIGVuY29kZXMgYSB2ZXJzaW9uIG51bWJlciBpbgogICogVk1YTkVUM19EUklWRVJfVkVS U0lPTl9TVFJJTkcuCiAgKi8KLSNkZWZpbmUgVk1YTkVUM19EUklWRVJfVkVSU0lPTl9OVU0gICAg ICAweDAxMDQwZjAwCisjZGVmaW5lIFZNWE5FVDNfRFJJVkVSX1ZFUlNJT05fTlVNICAgICAgMHgw MTA0MTAwMAogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJX01TSSkKIAkvKiBSU1Mgb25seSBtYWtl cyBzZW5zZSBpZiBNU0ktWCBpcyBzdXBwb3J0ZWQuICovCi0tIAoyLjE0LjMKCgpGcm9tIGQxODJj ZTI0NjU3OWU3NzdhZjZmMzE4NWJhYWYxZDZjMTVkNTVmMWYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFBldHIgTWFjaGF0YSA8cGV0cm1AbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDE3 IE1heSAyMDE4IDE2OjM2OjEwICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMi8zMl0gbmV0OiBpcDZf Z3JlOiBSZXF1ZXN0IGhlYWRyb29tIGluIF9fZ3JlNl94bWl0KCkKClsgVXBzdHJlYW0gY29tbWl0 IDAxYjhkMDY0ZDU4YjRjMWYwZWZmNDdmOGZlOGE4NTA4Y2IzYjM4NDAgXQoKX19ncmU2X3htaXQo KSBwdXNoZXMgR1JFIGhlYWRlcnMgYmVmb3JlIGhhbmRpbmcgb3ZlciB0byBpcDZfdG5sX3htaXQo KQpmb3IgZ2VuZXJpYyBJUC1pbi1JUCBwcm9jZXNzaW5nLiBIb3dldmVyIGl0IGRvZXNuJ3QgbWFr ZSBzdXJlIHRoYXQgdGhlcmUKaXMgZW5vdWdoIGhlYWRyb29tIHRvIHB1c2ggdGhlIGhlYWRlciB0 by4gVGhhdCBjYW4gbGVhZCB0byB0aGUgcGFuaWMKY2l0ZWQgYmVsb3cuIChSZXByb2R1Y2VyIGJl bG93IHRoYXQpLgoKRml4IGJ5IHJlcXVlc3RpbmcgZWl0aGVyIG5lZWRlZF9oZWFkcm9vbSBpZiBh bHJlYWR5IHByaW1lZCwgb3IganVzdCB0aGUKYmFyZSBtaW5pbXVtIG5lZWRlZCBmb3IgdGhlIGhl YWRlciBvdGhlcndpc2UuCgpbICAxNTguNTc2NzI1XSBrZXJuZWwgQlVHIGF0IG5ldC9jb3JlL3Nr YnVmZi5jOjEwNCEKWyAgMTU4LjU4MTUxMF0gaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBQUkVF TVBUIFNNUCBLQVNBTiBQVEkKWyAgMTU4LjU4NzE3NF0gTW9kdWxlcyBsaW5rZWQgaW46IGFjdF9t aXJyZWQgY2xzX21hdGNoYWxsIGlwNl9ncmUgaXA2X3R1bm5lbCB0dW5uZWw2IGdyZSBzY2hfaW5n cmVzcyB2cmYgdmV0aCB4ODZfcGtnX3RlbXBfdGhlcm1hbCBtbHhfcGxhdGZvcm0gbmZzZCBlMTAw MGUgbGVkc19tbHhjcGxkClsgIDE1OC42MDIyNjhdIENQVTogMSBQSUQ6IDE2IENvbW06IGtzb2Z0 aXJxZC8xIE5vdCB0YWludGVkIDQuMTcuMC1yYzQtbmV0X21hc3Rlci1jdXN0b20tMTM5ICMxMApb ICAxNTguNjEwOTM4XSBIYXJkd2FyZSBuYW1lOiBNZWxsYW5veCBUZWNobm9sb2dpZXMgTHRkLiAi TVNOMjQxMC1DQjJGIi8iU0EwMDA4NzQiLCBCSU9TIDQuNi41IDAzLzA4LzIwMTYKWyAgMTU4LjYy MDQyNl0gUklQOiAwMDEwOnNrYl9wYW5pYysweGMzLzB4MTAwClsgIDE1OC42MjQ1ODZdIFJTUDog MDAxODpmZmZmODgwMWQzZjI3MTEwIEVGTEFHUzogMDAwMTAyODYKWyAgMTU4LjYyOTg4Ml0gUkFY OiAwMDAwMDAwMDAwMDAwMDgyIFJCWDogZmZmZjg4MDFjMDJjYzA0MCBSQ1g6IDAwMDAwMDAwMDAw MDAwMDAKWyAgMTU4LjYzNzEyN10gUkRYOiAwMDAwMDAwMDAwMDAwMDgyIFJTSTogZGZmZmZjMDAw MDAwMDAwMCBSREk6IGZmZmZlZDAwM2E3ZTRlMTgKWyAgMTU4LjY0NDM2Nl0gUkJQOiBmZmZmODgw MWJmZWM4MDIwIFIwODogZmZmZmVkMDAzYWFiY2UxOSBSMDk6IGZmZmZlZDAwM2FhYmNlMTkKWyAg MTU4LjY1MTU3NF0gUjEwOiAwMDAwMDAwMDAwMDAwMDBiIFIxMTogZmZmZmVkMDAzYWFiY2UxOCBS MTI6IGZmZmY4ODAxYzM2NGRlNjYKWyAgMTU4LjY1ODc4Nl0gUjEzOiAwMDAwMDAwMDAwMDAwMDJj IFIxNDogMDAwMDAwMDAwMDAwMDBjMCBSMTU6IGZmZmY4ODAxYzM2NGRlNjgKWyAgMTU4LjY2NjAw N10gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODAxZDU0MDAwMDAoMDAwMCkg a25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICAxNTguNjc0MjEyXSBDUzogIDAwMTAgRFM6IDAwMDAg RVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDE1OC42ODAwMzZdIENSMjogMDAwMDdm NGIzNzAyZGNkMCBDUjM6IDAwMDAwMDAwMDMyMjgwMDIgQ1I0OiAwMDAwMDAwMDAwMTYwNmUwClsg IDE1OC42ODcyMjhdIENhbGwgVHJhY2U6ClsgIDE1OC42ODk3NTJdICA/IF9fZ3JlNl94bWl0KzB4 MjQ2LzB4ZDgwIFtpcDZfZ3JlXQpbICAxNTguNjk0NDc1XSAgPyBfX2dyZTZfeG1pdCsweDI0Ni8w eGQ4MCBbaXA2X2dyZV0KWyAgMTU4LjY5OTE0MV0gIHNrYl9wdXNoKzB4NzgvMHg5MApbICAxNTgu NzAyMzQ0XSAgX19ncmU2X3htaXQrMHgyNDYvMHhkODAgW2lwNl9ncmVdClsgIDE1OC43MDY4NzJd ICBpcDZncmVfdHVubmVsX3htaXQrMHgzYmMvMHg2MTAgW2lwNl9ncmVdClsgIDE1OC43MTE5OTJd ICA/IF9fZ3JlNl94bWl0KzB4ZDgwLzB4ZDgwIFtpcDZfZ3JlXQpbICAxNTguNzE2NjY4XSAgPyBk ZWJ1Z19jaGVja19ub19sb2Nrc19mcmVlZCsweDIxMC8weDIxMApbICAxNTguNzIxNzYxXSAgPyBw cmludF9pcnF0cmFjZV9ldmVudHMrMHgxMjAvMHgxMjAKWyAgMTU4LjcyNjQ2MV0gID8gc2NoZWRf Y2xvY2tfY3B1KzB4MTgvMHgyMTAKWyAgMTU4LjczMDU3Ml0gID8gc2NoZWRfY2xvY2tfY3B1KzB4 MTgvMHgyMTAKWyAgMTU4LjczNDY5Ml0gID8gY3ljMm5zX3JlYWRfZW5kKzB4MTAvMHgxMApbICAx NTguNzM4NzA1XSAgPyBza2JfbmV0d29ya19wcm90b2NvbCsweDc2LzB4MjAwClsgIDE1OC43NDMy MTZdICA/IG5ldGlmX3NrYl9mZWF0dXJlcysweDFiMi8weDU1MApbICAxNTguNzQ3NjQ4XSAgZGV2 X2hhcmRfc3RhcnRfeG1pdCsweDEzNy8weDc3MApbICAxNTguNzUyMDEwXSAgc2NoX2RpcmVjdF94 bWl0KzB4MmVmLzB4NWQwClsgIDE1OC43NTU5OTJdICA/IHBmaWZvX2Zhc3RfZGVxdWV1ZSsweDNm YS8weDY3MApbICAxNTguNzYwNDYwXSAgPyBwZmlmb19mYXN0X2NoYW5nZV90eF9xdWV1ZV9sZW4r MHg4MTAvMHg4MTAKWyAgMTU4Ljc2NTk3NV0gID8gX19sb2NrX2lzX2hlbGQrMHhhMC8weDE2MApb ICAxNTguNzcwMDAyXSAgX19xZGlzY19ydW4rMHgzOWUvMHhmYzAKWyAgMTU4Ljc3MzY3M10gID8g X3Jhd19zcGluX3VubG9jaysweDI5LzB4NDAKWyAgMTU4Ljc3Nzc4MV0gID8gcGZpZm9fZmFzdF9l bnF1ZXVlKzB4MjRiLzB4M2UwClsgIDE1OC43ODIxOTFdICA/IHNjaF9kaXJlY3RfeG1pdCsweDVk MC8weDVkMApbICAxNTguNzg2MzcyXSAgPyBwZmlmb19mYXN0X2RlcXVldWUrMHg2NzAvMHg2NzAK WyAgMTU4Ljc5MDgxOF0gID8gX19kZXZfcXVldWVfeG1pdCsweDE3Mi8weDE3NzAKWyAgMTU4Ljc5 NTE5NV0gID8gcHJlZW1wdF9jb3VudF9zdWIrMHhmLzB4ZDAKWyAgMTU4Ljc5OTMxM10gIF9fZGV2 X3F1ZXVlX3htaXQrMHg0MTAvMHgxNzcwClsgIDE1OC44MDM1MTJdICA/IF9fX3NsYWJfYWxsb2Mr MHg2MDUvMHg5MzAKWyAgMTU4LjgwNzUyNV0gID8gX19fc2xhYl9hbGxvYysweDYwNS8weDkzMApb ICAxNTguODExNTQwXSAgPyBtZW1jcHkrMHgzNC8weDUwClsgIDE1OC44MTQ3NjhdICA/IG5ldGRl dl9waWNrX3R4KzB4MWMwLzB4MWMwClsgIDE1OC44MTg4OTVdICA/IF9fc2tiX2Nsb25lKzB4MmZk LzB4M2QwClsgIDE1OC44MjI3MTJdICA/IF9fY29weV9za2JfaGVhZGVyKzB4MjcwLzB4MjcwClsg IDE1OC44MjcwNzldICA/IHJjdV9yZWFkX2xvY2tfc2NoZWRfaGVsZCsweDkzLzB4YTAKWyAgMTU4 LjgzMTkwM10gID8ga21lbV9jYWNoZV9hbGxvYysweDM0NC8weDRkMApbICAxNTguODM2MTk5XSAg PyBza2JfY2xvbmUrMHgxMjMvMHgyMzAKWyAgMTU4LjgzOTg2OV0gID8gc2tiX3NwbGl0KzB4ODIw LzB4ODIwClsgIDE1OC44NDM1MjFdICA/IHRjZl9taXJyZWQrMHg1NTQvMHg5MzAgW2FjdF9taXJy ZWRdClsgIDE1OC44NDg0MDddICB0Y2ZfbWlycmVkKzB4NTU0LzB4OTMwIFthY3RfbWlycmVkXQpb ICAxNTguODUzMTA0XSAgPyB0Y2ZfbWlycmVkX2FjdF93YW50c19pbmdyZXNzLnBhcnQuMisweDEw LzB4MTAgW2FjdF9taXJyZWRdClsgIDE1OC44NjAwMDVdICA/IF9fbG9ja19hY3F1aXJlKzB4NzA2 LzB4MjZlMApbICAxNTguODY0MTYyXSAgPyBtYXJrX2xvY2srMHgxM2QvMHhiNDAKWyAgMTU4Ljg2 NzgzMl0gIHRjZl9hY3Rpb25fZXhlYysweGNmLzB4MmEwClsgIDE1OC44NzE3MzZdICB0Y2ZfY2xh c3NpZnkrMHhmYS8weDM0MApbICAxNTguODc1NDAyXSAgX19uZXRpZl9yZWNlaXZlX3NrYl9jb3Jl KzB4OGUxLzB4MWM2MApbICAxNTguODgwMzM0XSAgPyBuZl9pbmdyZXNzKzB4NTAwLzB4NTAwClsg IDE1OC44ODQwNTldICA/IHByb2Nlc3NfYmFja2xvZysweDM0Ny8weDRiMApbICAxNTguODg4MjQx XSAgPyBsb2NrX2FjcXVpcmUrMHhkOC8weDMyMApbICAxNTguODkyMDUwXSAgPyBwcm9jZXNzX2Jh Y2tsb2crMHgxYjYvMHg0YjAKWyAgMTU4Ljg5NjIyOF0gID8gcHJvY2Vzc19iYWNrbG9nKzB4YzIv MHg0YjAKWyAgMTU4LjkwMDI5MV0gIHByb2Nlc3NfYmFja2xvZysweGMyLzB4NGIwClsgIDE1OC45 MDQyMTBdICBuZXRfcnhfYWN0aW9uKzB4NWNjLzB4OTgwClsgIDE1OC45MDgwNDddICA/IG5hcGlf Y29tcGxldGVfZG9uZSsweDJjMC8weDJjMApbICAxNTguOTEyNTI1XSAgPyByY3VfcmVhZF91bmxv Y2srMHg4MC8weDgwClsgIDE1OC45MTY1MzRdICA/IF9fbG9ja19pc19oZWxkKzB4MzQvMHgxNjAK WyAgMTU4LjkyMDU0MV0gIF9fZG9fc29mdGlycSsweDFkNC8weDlkMgpbICAxNTguOTI0MzA4XSAg PyB0cmFjZV9ldmVudF9yYXdfZXZlbnRfaXJxX2hhbmRsZXJfZXhpdCsweDE0MC8weDE0MApbICAx NTguOTMwNTE1XSAgcnVuX2tzb2Z0aXJxZCsweDFkLzB4NDAKWyAgMTU4LjkzNDE1Ml0gIHNtcGJv b3RfdGhyZWFkX2ZuKzB4MzJiLzB4NjkwClsgIDE1OC45MzgyOTldICA/IHNvcnRfcmFuZ2UrMHgy MC8weDIwClsgIDE1OC45NDE4NDJdICA/IHByZWVtcHRfY291bnRfc3ViKzB4Zi8weGQwClsgIDE1 OC45NDU5NDBdICA/IHNjaGVkdWxlKzB4NWIvMHgxNDAKWyAgMTU4Ljk0OTQxMl0gIGt0aHJlYWQr MHgyMDYvMHgzMDAKWyAgMTU4Ljk1MjY4OV0gID8gc29ydF9yYW5nZSsweDIwLzB4MjAKWyAgMTU4 Ljk1NjI0OV0gID8ga3RocmVhZF9zdG9wKzB4NTcwLzB4NTcwClsgIDE1OC45NjAxNjRdICByZXRf ZnJvbV9mb3JrKzB4M2EvMHg1MApbICAxNTguOTYzODIzXSBDb2RlOiAxNCAzZSBmZiA4YiA0YiA3 OCA1NSA0ZCA4OSBmOSA0MSA1NiA0MSA1NSA0OCBjNyBjNyBhMCBjZiBkYiA4MiA0MSA1NCA0NCA4 YiA0NCAyNCAyYyA0OCA4YiA1NCAyNCAzMCA0OCA4YiA3NCAyNCAyMCBlOCAxNiA5NCAxMyBmZiA8 MGY+IDBiIDQ4IGM3IGM3IDYwIDhlIDFmIDg1IDQ4IDgzIGM0IDIwIGU4IDU1IGVmIGE2IGZmIDg5 IDc0IDI0ClsgIDE1OC45ODMyMzVdIFJJUDogc2tiX3BhbmljKzB4YzMvMHgxMDAgUlNQOiBmZmZm ODgwMWQzZjI3MTEwClsgIDE1OC45ODg5MzVdIC0tLVsgZW5kIHRyYWNlIDVhZjU2ZWU4NDVhYTZj YzggXS0tLQpbICAxNTguOTkzNjQxXSBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogRmF0YWwg ZXhjZXB0aW9uIGluIGludGVycnVwdApbICAxNTkuMDAwMTc2XSBLZXJuZWwgT2Zmc2V0OiBkaXNh YmxlZApbICAxNTkuMDAzNzY3XSAtLS1bIGVuZCBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzog RmF0YWwgZXhjZXB0aW9uIGluIGludGVycnVwdCBdLS0tCgpSZXByb2R1Y2VyOgoKCWlwIGxpbmsg YWRkIGgxIHR5cGUgdmV0aCBwZWVyIG5hbWUgc3dwMQoJaXAgbGluayBhZGQgaDMgdHlwZSB2ZXRo IHBlZXIgbmFtZSBzd3AzCgoJaXAgbGluayBzZXQgZGV2IGgxIHVwCglpcCBhZGRyZXNzIGFkZCAx OTIuMC4yLjEvMjggZGV2IGgxCgoJaXAgbGluayBhZGQgZGV2IHZoMyB0eXBlIHZyZiB0YWJsZSAy MAoJaXAgbGluayBzZXQgZGV2IGgzIG1hc3RlciB2aDMKCWlwIGxpbmsgc2V0IGRldiB2aDMgdXAK CWlwIGxpbmsgc2V0IGRldiBoMyB1cAoKCWlwIGxpbmsgc2V0IGRldiBzd3AzIHVwCglpcCBhZGRy ZXNzIGFkZCBkZXYgc3dwMyAyMDAxOmRiODoyOjoxLzY0CgoJaXAgbGluayBzZXQgZGV2IHN3cDEg dXAKCXRjIHFkaXNjIGFkZCBkZXYgc3dwMSBjbHNhY3QKCglpcCBsaW5rIGFkZCBuYW1lIGd0NiB0 eXBlIGlwNmdyZXRhcCBcCgkJbG9jYWwgMjAwMTpkYjg6Mjo6MSByZW1vdGUgMjAwMTpkYjg6Mjo6 MgoJaXAgbGluayBzZXQgZGV2IGd0NiB1cAoKCXNsZWVwIDEKCgl0YyBmaWx0ZXIgYWRkIGRldiBz d3AxIGluZ3Jlc3MgcHJlZiAxMDAwIG1hdGNoYWxsIHNraXBfaHcgXAoJCWFjdGlvbiBtaXJyZWQg ZWdyZXNzIG1pcnJvciBkZXYgZ3Q2CglwaW5nIC1JIGgxIDE5Mi4wLjIuMgoKRml4ZXM6IGMxMmIz OTVhNDY2NCAoImdyZTogU3VwcG9ydCBHUkUgb3ZlciBJUHY2IikKU2lnbmVkLW9mZi1ieTogUGV0 ciBNYWNoYXRhIDxwZXRybUBtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBXaWxsaWFtIFR1IDx1OTAx MjA2M0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZ3JlLmMgfCAzICsrKwogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25l dC9pcHY2L2lwNl9ncmUuYwppbmRleCAxOTdmY2FlODU1Y2EuLjdhNWVkNDZlMzE2ZCAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtNzAx LDYgKzcwMSw5IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBfX2dyZTZfeG1pdChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLAogCWlmICh0dW5uZWwtPnBhcm1zLm9fZmxhZ3MgJiBUVU5ORUxfU0VRKQogCQl0dW5u ZWwtPm9fc2Vxbm8rKzsKIAorCWlmIChza2JfY293X2hlYWQoc2tiLCBkZXYtPm5lZWRlZF9oZWFk cm9vbSA/OiB0dW5uZWwtPmhsZW4pKQorCQlyZXR1cm4gLUVOT01FTTsKKwogCS8qIFB1c2ggR1JF IGhlYWRlci4gKi8KIAlwcm90b2NvbCA9IChkZXYtPnR5cGUgPT0gQVJQSFJEX0VUSEVSKSA/IGh0 b25zKEVUSF9QX1RFQikgOiBwcm90bzsKIAotLSAKMi4xNC4zCgoKRnJvbSA1OTRhNmFlOTk0NTAx NzkwMWVjMzI0NGFkMzM3MmYxZjhlZDU5MjE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBQZXRyIE1hY2hhdGEgPHBldHJtQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAxNyBNYXkgMjAx OCAxNjozNjoxNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjMvMzJdIG5ldDogaXA2X2dyZTogRml4 IGhlYWRyb29tIHJlcXVlc3QgaW4KIGlwNmVyc3Bhbl90dW5uZWxfeG1pdCgpCgpbIFVwc3RyZWFt IGNvbW1pdCA1NjkxNDg0ZGY5NjFhZmY4OTdkODI0YmNjMjZjZDFhMmFhMDM2YjViIF0KCmRldi0+ bmVlZGVkX2hlYWRyb29tIGlzIG5vdCBwcmltZWQgdW50aWwgaXA2X3RubF94bWl0KCksIHNvIGl0 IHN0YXJ0cwpvdXQgemVyby4gVGh1cyB0aGUgY2FsbCB0byBza2JfY293X2hlYWQoKSBmYWlscyB0 byBhY3R1YWxseSBtYWtlIHN1cmUKdGhlcmUncyBlbm91Z2ggaGVhZHJvb20gdG8gcHVzaCB0aGUg RVJTUEFOIGhlYWRlcnMgdG8uIFRoYXQgY2FuIGxlYWQgdG8KdGhlIHBhbmljIGNpdGVkIGJlbG93 LiAoUmVwcm9kdWNlciBiZWxvdyB0aGF0KS4KCkZpeCBieSByZXF1ZXN0aW5nIGVpdGhlciBuZWVk ZWRfaGVhZHJvb20gaWYgYWxyZWFkeSBwcmltZWQsIG9yIGp1c3QgdGhlCmJhcmUgbWluaW11bSBu ZWVkZWQgZm9yIHRoZSBoZWFkZXIgb3RoZXJ3aXNlLgoKWyAgMTkwLjcwMzU2N10ga2VybmVsIEJV RyBhdCBuZXQvY29yZS9za2J1ZmYuYzoxMDQhClsgIDE5MC43MDgzODRdIGludmFsaWQgb3Bjb2Rl OiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgS0FTQU4gUFRJClsgIDE5MC43MTQwMDddIE1vZHVsZXMg bGlua2VkIGluOiBhY3RfbWlycmVkIGNsc19tYXRjaGFsbCBpcDZfZ3JlIGlwNl90dW5uZWwgdHVu bmVsNiBncmUgc2NoX2luZ3Jlc3MgdnJmIHZldGggeDg2X3BrZ190ZW1wX3RoZXJtYWwgbWx4X3Bs YXRmb3JtIG5mc2QgZTEwMDBlIGxlZHNfbWx4Y3BsZApbICAxOTAuNzI4OTc1XSBDUFU6IDEgUElE OiA5NTkgQ29tbToga3dvcmtlci8xOjIgTm90IHRhaW50ZWQgNC4xNy4wLXJjNC1uZXRfbWFzdGVy LWN1c3RvbS0xMzkgIzEwClsgIDE5MC43Mzc2NDddIEhhcmR3YXJlIG5hbWU6IE1lbGxhbm94IFRl Y2hub2xvZ2llcyBMdGQuICJNU04yNDEwLUNCMkYiLyJTQTAwMDg3NCIsIEJJT1MgNC42LjUgMDMv MDgvMjAxNgpbICAxOTAuNzQ3MDA2XSBXb3JrcXVldWU6IGlwdjZfYWRkcmNvbmYgYWRkcmNvbmZf ZGFkX3dvcmsKWyAgMTkwLjc1MjIyMl0gUklQOiAwMDEwOnNrYl9wYW5pYysweGMzLzB4MTAwClsg IDE5MC43NTYzNThdIFJTUDogMDAxODpmZmZmODgwMWQ1NDA3MmYwIEVGTEFHUzogMDAwMTAyODIK WyAgMTkwLjc2MTYyOV0gUkFYOiAwMDAwMDAwMDAwMDAwMDg1IFJCWDogZmZmZjg4MDFjMWE4ZWNj MCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAKWyAgMTkwLjc2ODgzMF0gUkRYOiAwMDAwMDAwMDAwMDAw MDg1IFJTSTogZGZmZmZjMDAwMDAwMDAwMCBSREk6IGZmZmZlZDAwM2FhODBlNTQKWyAgMTkwLjc3 NjAyNV0gUkJQOiBmZmZmODgwMWJkMWVjNWEwIFIwODogZmZmZmVkMDAzYWFiY2UxOSBSMDk6IGZm ZmZlZDAwM2FhYmNlMTkKWyAgMTkwLjc4MzIyNl0gUjEwOiAwMDAwMDAwMDAwMDAwMDAxIFIxMTog ZmZmZmVkMDAzYWFiY2UxOCBSMTI6IGZmZmY4ODAxYmY2OTVkYmUKWyAgMTkwLjc5MDQxOF0gUjEz OiAwMDAwMDAwMDAwMDAwMDg0IFIxNDogMDAwMDAwMDAwMDAwMDZjMCBSMTU6IGZmZmY4ODAxYmY2 OTVkYzgKWyAgMTkwLjc5NzYyMV0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4 ODAxZDU0MDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICAxOTAuODA1Nzg2XSBD UzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDE5MC44 MTE1ODJdIENSMjogMDAwMDU1ZmE5MjlhY2VkMCBDUjM6IDAwMDAwMDAwMDMyMjgwMDQgQ1I0OiAw MDAwMDAwMDAwMTYwNmUwClsgIDE5MC44MTg3OTBdIENhbGwgVHJhY2U6ClsgIDE5MC44MjEyNjRd ICA8SVJRPgpbICAxOTAuODIzMzE0XSAgPyBpcDZlcnNwYW5fdHVubmVsX3htaXQrMHg1ZTQvMHgx OTgyIFtpcDZfZ3JlXQpbICAxOTAuODI4OTQwXSAgPyBpcDZlcnNwYW5fdHVubmVsX3htaXQrMHg1 ZTQvMHgxOTgyIFtpcDZfZ3JlXQpbICAxOTAuODM0NTYyXSAgc2tiX3B1c2grMHg3OC8weDkwClsg IDE5MC44Mzc3NDldICBpcDZlcnNwYW5fdHVubmVsX3htaXQrMHg1ZTQvMHgxOTgyIFtpcDZfZ3Jl XQpbICAxOTAuODQzMjE5XSAgPyBpcDZncmVfdHVubmVsX2lvY3RsKzB4ZDkwLzB4ZDkwIFtpcDZf Z3JlXQpbICAxOTAuODQ4NTc3XSAgPyBkZWJ1Z19jaGVja19ub19sb2Nrc19mcmVlZCsweDIxMC8w eDIxMApbICAxOTAuODUzNjc5XSAgPyBkZWJ1Z19jaGVja19ub19sb2Nrc19mcmVlZCsweDIxMC8w eDIxMApbICAxOTAuODU4NzgzXSAgPyBwcmludF9pcnF0cmFjZV9ldmVudHMrMHgxMjAvMHgxMjAK WyAgMTkwLjg2MzQ1MV0gID8gc2NoZWRfY2xvY2tfY3B1KzB4MTgvMHgyMTAKWyAgMTkwLjg2NzQ5 Nl0gID8gY3ljMm5zX3JlYWRfZW5kKzB4MTAvMHgxMApbICAxOTAuODcxNDc0XSAgPyBza2JfbmV0 d29ya19wcm90b2NvbCsweDc2LzB4MjAwClsgIDE5MC44NzU5NzddICBkZXZfaGFyZF9zdGFydF94 bWl0KzB4MTM3LzB4NzcwClsgIDE5MC44ODAzMTddICA/IGRvX3Jhd19zcGluX3RyeWxvY2srMHg2 ZC8weGEwClsgIDE5MC44ODQ2MjRdICBzY2hfZGlyZWN0X3htaXQrMHgyZWYvMHg1ZDAKWyAgMTkw Ljg4ODU4OV0gID8gcGZpZm9fZmFzdF9kZXF1ZXVlKzB4M2ZhLzB4NjcwClsgIDE5MC44OTI5OTRd ICA/IHBmaWZvX2Zhc3RfY2hhbmdlX3R4X3F1ZXVlX2xlbisweDgxMC8weDgxMApbICAxOTAuODk4 NDU1XSAgPyBfX2xvY2tfaXNfaGVsZCsweGEwLzB4MTYwClsgIDE5MC45MDI0MjJdICBfX3FkaXNj X3J1bisweDM5ZS8weGZjMApbICAxOTAuOTA2MDQxXSAgPyBfcmF3X3NwaW5fdW5sb2NrKzB4Mjkv MHg0MApbICAxOTAuOTEwMDkwXSAgPyBwZmlmb19mYXN0X2VucXVldWUrMHgyNGIvMHgzZTAKWyAg MTkwLjkxNDUwMV0gID8gc2NoX2RpcmVjdF94bWl0KzB4NWQwLzB4NWQwClsgIDE5MC45MTg2NThd ICA/IHBmaWZvX2Zhc3RfZGVxdWV1ZSsweDY3MC8weDY3MApbICAxOTAuOTIzMDQ3XSAgPyBfX2Rl dl9xdWV1ZV94bWl0KzB4MTcyLzB4MTc3MApbICAxOTAuOTI3MzY1XSAgPyBwcmVlbXB0X2NvdW50 X3N1YisweGYvMHhkMApbICAxOTAuOTMxNDIxXSAgX19kZXZfcXVldWVfeG1pdCsweDQxMC8weDE3 NzAKWyAgMTkwLjkzNTU1M10gID8gX19fc2xhYl9hbGxvYysweDYwNS8weDkzMApbICAxOTAuOTM5 NTI0XSAgPyBwcmludF9pcnF0cmFjZV9ldmVudHMrMHgxMjAvMHgxMjAKWyAgMTkwLjk0NDE4Nl0g ID8gbWVtY3B5KzB4MzQvMHg1MApbICAxOTAuOTQ3MzY0XSAgPyBuZXRkZXZfcGlja190eCsweDFj MC8weDFjMApbICAxOTAuOTUxNDI4XSAgPyBfX3NrYl9jbG9uZSsweDJmZC8weDNkMApbICAxOTAu OTU1MjE4XSAgPyBfX2NvcHlfc2tiX2hlYWRlcisweDI3MC8weDI3MApbICAxOTAuOTU5NTM3XSAg PyByY3VfcmVhZF9sb2NrX3NjaGVkX2hlbGQrMHg5My8weGEwClsgIDE5MC45NjQyODJdICA/IGtt ZW1fY2FjaGVfYWxsb2MrMHgzNDQvMHg0ZDAKWyAgMTkwLjk2ODUyMF0gID8gY3ljMm5zX3JlYWRf ZW5kKzB4MTAvMHgxMApbICAxOTAuOTcyNDk1XSAgPyBza2JfY2xvbmUrMHgxMjMvMHgyMzAKWyAg MTkwLjk3NjExMl0gID8gc2tiX3NwbGl0KzB4ODIwLzB4ODIwClsgIDE5MC45Nzk3NDddICA/IHRj Zl9taXJyZWQrMHg1NTQvMHg5MzAgW2FjdF9taXJyZWRdClsgIDE5MC45ODQ1ODJdICB0Y2ZfbWly cmVkKzB4NTU0LzB4OTMwIFthY3RfbWlycmVkXQpbICAxOTAuOTg5MjUyXSAgPyB0Y2ZfbWlycmVk X2FjdF93YW50c19pbmdyZXNzLnBhcnQuMisweDEwLzB4MTAgW2FjdF9taXJyZWRdClsgIDE5MC45 OTYxMDldICA/IF9fbG9ja19hY3F1aXJlKzB4NzA2LzB4MjZlMApbICAxOTEuMDAwMjM5XSAgPyBz Y2hlZF9jbG9ja19jcHUrMHgxOC8weDIxMApbICAxOTEuMDA0Mjk0XSAgdGNmX2FjdGlvbl9leGVj KzB4Y2YvMHgyYTAKWyAgMTkxLjAwODE3OV0gIHRjZl9jbGFzc2lmeSsweGZhLzB4MzQwClsgIDE5 MS4wMTE3OTRdICBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHg4ZTEvMHgxYzYwClsgIDE5MS4w MTY2MzBdICA/IGRlYnVnX2NoZWNrX25vX2xvY2tzX2ZyZWVkKzB4MjEwLzB4MjEwClsgIDE5MS4w MjE3MzJdICA/IG5mX2luZ3Jlc3MrMHg1MDAvMHg1MDAKWyAgMTkxLjAyNTQ1OF0gID8gcHJvY2Vz c19iYWNrbG9nKzB4MzQ3LzB4NGIwClsgIDE5MS4wMjk2MTldICA/IHByaW50X2lycXRyYWNlX2V2 ZW50cysweDEyMC8weDEyMApbICAxOTEuMDM0MzAyXSAgPyBsb2NrX2FjcXVpcmUrMHhkOC8weDMy MApbICAxOTEuMDM4MDg5XSAgPyBwcm9jZXNzX2JhY2tsb2crMHgxYjYvMHg0YjAKWyAgMTkxLjA0 MjI0Nl0gID8gcHJvY2Vzc19iYWNrbG9nKzB4YzIvMHg0YjAKWyAgMTkxLjA0NjMwM10gIHByb2Nl c3NfYmFja2xvZysweGMyLzB4NGIwClsgIDE5MS4wNTAxODldICBuZXRfcnhfYWN0aW9uKzB4NWNj LzB4OTgwClsgIDE5MS4wNTM5OTFdICA/IG5hcGlfY29tcGxldGVfZG9uZSsweDJjMC8weDJjMApb ICAxOTEuMDU4Mzg2XSAgPyBtYXJrX2xvY2srMHgxM2QvMHhiNDAKWyAgMTkxLjA2MjAwMV0gID8g Y2xvY2tldmVudHNfcHJvZ3JhbV9ldmVudCsweDZiLzB4MWQwClsgIDE5MS4wNjY5MjJdICA/IHBy aW50X2lycXRyYWNlX2V2ZW50cysweDEyMC8weDEyMApbICAxOTEuMDcxNTkzXSAgPyBfX2xvY2tf aXNfaGVsZCsweGEwLzB4MTYwClsgIDE5MS4wNzU1NjZdICBfX2RvX3NvZnRpcnErMHgxZDQvMHg5 ZDIKWyAgMTkxLjA3OTI4Ml0gID8gaXA2X2ZpbmlzaF9vdXRwdXQyKzB4NTI0LzB4MTQ2MApbICAx OTEuMDgzNzcxXSAgZG9fc29mdGlycV9vd25fc3RhY2srMHgyYS8weDQwClsgIDE5MS4wODc5OTRd ICA8L0lSUT4KWyAgMTkxLjA5MDEzMF0gIGRvX3NvZnRpcnEucGFydC4xMysweDM4LzB4NDAKWyAg MTkxLjA5NDE3OF0gIF9fbG9jYWxfYmhfZW5hYmxlX2lwKzB4MTM1LzB4MTkwClsgIDE5MS4wOTg1 OTFdICBpcDZfZmluaXNoX291dHB1dDIrMHg1NGQvMHgxNDYwClsgIDE5MS4xMDI5MTZdICA/IGlw Nl9mb3J3YXJkX2ZpbmlzaCsweDJmMC8weDJmMApbICAxOTEuMTA3MzE0XSAgPyBpcDZfbXR1KzB4 M2MvMHgyYzAKWyAgMTkxLjExMDY3NF0gID8gaXA2X2ZpbmlzaF9vdXRwdXQrMHgyZjgvMHg2NTAK WyAgMTkxLjExNDk5Ml0gID8gaXA2X291dHB1dCsweDEyYS8weDUwMApbICAxOTEuMTE4Njk2XSAg aXA2X291dHB1dCsweDEyYS8weDUwMApbICAxOTEuMTIyMjIzXSAgPyBpcDZfcm91dGVfZGV2X25v dGlmeSsweDViMC8weDViMApbICAxOTEuMTI2ODA3XSAgPyBpcDZfZmluaXNoX291dHB1dCsweDY1 MC8weDY1MApbICAxOTEuMTMxMTIwXSAgPyBpcDZfZnJhZ21lbnQrMHgxYTYwLzB4MWE2MApbICAx OTEuMTM1MTgyXSAgPyBpY21wNl9kc3RfYWxsb2MrMHgyNmUvMHg0NzAKWyAgMTkxLjEzOTMxN10g IG1sZF9zZW5kcGFjaysweDY3Mi8weDgzMApbICAxOTEuMTQzMDIxXSAgPyBpZ21wNl9tY2Zfc2Vx X25leHQrMHgyZjAvMHgyZjAKWyAgMTkxLjE0NzQyOV0gID8gX19sb2NhbF9iaF9lbmFibGVfaXAr MHg3Ny8weDE5MApbICAxOTEuMTUxOTEzXSAgaXB2Nl9tY19kYWRfY29tcGxldGUrMHg0Ny8weDkw ClsgIDE5MS4xNTYxNDRdICBhZGRyY29uZl9kYWRfY29tcGxldGVkKzB4NTYxLzB4NzIwClsgIDE5 MS4xNjA3MzFdICA/IGFkZHJjb25mX3JzX3RpbWVyKzB4M2EwLzB4M2EwClsgIDE5MS4xNjUwMzZd ICA/IG1hcmtfaGVsZF9sb2NrcysweGM5LzB4MTQwClsgIDE5MS4xNjkwOTVdICA/IF9fbG9jYWxf YmhfZW5hYmxlX2lwKzB4NzcvMHgxOTAKWyAgMTkxLjE3MzU3MF0gID8gYWRkcmNvbmZfZGFkX3dv cmsrMHg1MGQvMHhhMjAKWyAgMTkxLjE3Nzg4Nl0gID8gYWRkcmNvbmZfZGFkX3dvcmsrMHg1Mjkv MHhhMjAKWyAgMTkxLjE4MjE5NF0gIGFkZHJjb25mX2RhZF93b3JrKzB4NTI5LzB4YTIwClsgIDE5 MS4xODYzNDJdICA/IGFkZHJjb25mX2RhZF9jb21wbGV0ZWQrMHg3MjAvMHg3MjAKWyAgMTkxLjE5 MTA4OF0gID8gX19sb2NrX2lzX2hlbGQrMHhhMC8weDE2MApbICAxOTEuMTk1MDU5XSAgPyBwcm9j ZXNzX29uZV93b3JrKzB4NDVkLzB4ZTIwClsgIDE5MS4xOTkzMDJdICA/IHByb2Nlc3Nfb25lX3dv cmsrMHg1MWUvMHhlMjAKWyAgMTkxLjIwMzUzMV0gID8gcmN1X3JlYWRfbG9ja19zY2hlZF9oZWxk KzB4OTMvMHhhMApbICAxOTEuMjA4Mjc5XSAgcHJvY2Vzc19vbmVfd29yaysweDUxZS8weGUyMApb ICAxOTEuMjEyMzQwXSAgPyBwd3FfZGVjX25yX2luX2ZsaWdodCsweDIwMC8weDIwMApbICAxOTEu MjE2OTEyXSAgPyBnZXRfbG9ja19zdGF0cysweDRiLzB4ZjAKWyAgMTkxLjIyMDc4OF0gID8gcHJl ZW1wdF9jb3VudF9zdWIrMHhmLzB4ZDAKWyAgMTkxLjIyNDg0NF0gID8gd29ya2VyX3RocmVhZCsw eDIxOS8weDg2MApbICAxOTEuMjI4ODIzXSAgPyBkb19yYXdfc3Bpbl90cnlsb2NrKzB4NmQvMHhh MApbICAxOTEuMjMzMTQyXSAgd29ya2VyX3RocmVhZCsweGViLzB4ODYwClsgIDE5MS4yMzY4NDhd ICA/IHByb2Nlc3Nfb25lX3dvcmsrMHhlMjAvMHhlMjAKWyAgMTkxLjI0MTA5NV0gIGt0aHJlYWQr MHgyMDYvMHgzMDAKWyAgMTkxLjI0NDM1Ml0gID8gcHJvY2Vzc19vbmVfd29yaysweGUyMC8weGUy MApbICAxOTEuMjQ4NTg3XSAgPyBrdGhyZWFkX3N0b3ArMHg1NzAvMHg1NzAKWyAgMTkxLjI1MjQ1 OV0gIHJldF9mcm9tX2ZvcmsrMHgzYS8weDUwClsgIDE5MS4yNTYwODJdIENvZGU6IDE0IDNlIGZm IDhiIDRiIDc4IDU1IDRkIDg5IGY5IDQxIDU2IDQxIDU1IDQ4IGM3IGM3IGEwIGNmIGRiIDgyIDQx IDU0IDQ0IDhiIDQ0IDI0IDJjIDQ4IDhiIDU0IDI0IDMwIDQ4IDhiIDc0IDI0IDIwIGU4IDE2IDk0 IDEzIGZmIDwwZj4gMGIgNDggYzcgYzcgNjAgOGUgMWYgODUgNDggODMgYzQgMjAgZTggNTUgZWYg YTYgZmYgODkgNzQgMjQKWyAgMTkxLjI3NTMyN10gUklQOiBza2JfcGFuaWMrMHhjMy8weDEwMCBS U1A6IGZmZmY4ODAxZDU0MDcyZjAKWyAgMTkxLjI4MTAyNF0gLS0tWyBlbmQgdHJhY2UgN2VhNTEw OTRlMDk5ZTAwNiBdLS0tClsgIDE5MS4yODU3MjRdIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5n OiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0ClsgIDE5MS4yOTIxNjhdIEtlcm5lbCBPZmZz ZXQ6IGRpc2FibGVkClsgIDE5MS4yOTU2OTddIC0tLVsgZW5kIEtlcm5lbCBwYW5pYyAtIG5vdCBz eW5jaW5nOiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0IF0tLS0KClJlcHJvZHVjZXI6CgoJ aXAgbGluayBhZGQgaDEgdHlwZSB2ZXRoIHBlZXIgbmFtZSBzd3AxCglpcCBsaW5rIGFkZCBoMyB0 eXBlIHZldGggcGVlciBuYW1lIHN3cDMKCglpcCBsaW5rIHNldCBkZXYgaDEgdXAKCWlwIGFkZHJl c3MgYWRkIDE5Mi4wLjIuMS8yOCBkZXYgaDEKCglpcCBsaW5rIGFkZCBkZXYgdmgzIHR5cGUgdnJm IHRhYmxlIDIwCglpcCBsaW5rIHNldCBkZXYgaDMgbWFzdGVyIHZoMwoJaXAgbGluayBzZXQgZGV2 IHZoMyB1cAoJaXAgbGluayBzZXQgZGV2IGgzIHVwCgoJaXAgbGluayBzZXQgZGV2IHN3cDMgdXAK CWlwIGFkZHJlc3MgYWRkIGRldiBzd3AzIDIwMDE6ZGI4OjI6OjEvNjQKCglpcCBsaW5rIHNldCBk ZXYgc3dwMSB1cAoJdGMgcWRpc2MgYWRkIGRldiBzd3AxIGNsc2FjdAoKCWlwIGxpbmsgYWRkIG5h bWUgZ3Q2IHR5cGUgaXA2ZXJzcGFuIFwKCQlsb2NhbCAyMDAxOmRiODoyOjoxIHJlbW90ZSAyMDAx OmRiODoyOjoyIG9zZXEgb2tleSAxMjMKCWlwIGxpbmsgc2V0IGRldiBndDYgdXAKCglzbGVlcCAx CgoJdGMgZmlsdGVyIGFkZCBkZXYgc3dwMSBpbmdyZXNzIHByZWYgMTAwMCBtYXRjaGFsbCBza2lw X2h3IFwKCQlhY3Rpb24gbWlycmVkIGVncmVzcyBtaXJyb3IgZGV2IGd0NgoJcGluZyAtSSBoMSAx OTIuMC4yLjIKCkZpeGVzOiBlNDFjN2M2OGVhNzcgKCJpcDZlcnNwYW46IG1ha2Ugc3VyZSBlbm91 Z2ggaGVhZHJvb20gYXQgeG1pdC4iKQpTaWduZWQtb2ZmLWJ5OiBQZXRyIE1hY2hhdGEgPHBldHJt QG1lbGxhbm94LmNvbT4KQWNrZWQtYnk6IFdpbGxpYW0gVHUgPHU5MDEyMDYzQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9pcHY2L2lwNl9ncmUuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25ldC9p cHY2L2lwNl9ncmUuYwppbmRleCA3YTVlZDQ2ZTMxNmQuLmY4OGQ2MTRlMzJmZSAxMDA2NDQKLS0t IGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtOTA4LDcg KzkwOCw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBpcDZlcnNwYW5fdHVubmVsX3htaXQoc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAkJdHJ1bmNhdGUgPSB0cnVlOwogCX0KIAotCWlmIChza2JfY293X2hl YWQoc2tiLCBkZXYtPm5lZWRlZF9oZWFkcm9vbSkpCisJaWYgKHNrYl9jb3dfaGVhZChza2IsIGRl di0+bmVlZGVkX2hlYWRyb29tID86IHQtPmhsZW4pKQogCQlnb3RvIHR4X2VycjsKIAogCXQtPnBh cm1zLm9fZmxhZ3MgJj0gflRVTk5FTF9LRVk7Ci0tIAoyLjE0LjMKCgpGcm9tIGY3OTJiYWMzODE5 NmE2YTY0ZDQ4M2JjOGRkNWVhODJmYzc2ZjI5MzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFBldHIgTWFjaGF0YSA8cGV0cm1AbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDE3IE1heSAy MDE4IDE2OjM2OjI3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNC8zMl0gbmV0OiBpcDZfZ3JlOiBT cGxpdCB1cCBpcDZncmVfdG5sX2xpbmtfY29uZmlnKCkKClsgVXBzdHJlYW0gY29tbWl0IGE0ODMz NzNlYWQ2MWU2MDc5YmM4ZWJlMjdlMmRmZGIyZTNjMTU1OWYgXQoKVGhlIGZ1bmN0aW9uIGlwNmdy ZV90bmxfbGlua19jb25maWcoKSBpcyB1c2VkIGZvciBzZXR0aW5nIHVwCmNvbmZpZ3VyYXRpb24g b2YgYm90aCBpcDZncmV0YXAgYW5kIGlwNmVyc3BhbiB0dW5uZWxzLiBTcGxpdCB0aGUKZnVuY3Rp b24gaW50byB0aGUgY29tbW9uIHBhcnQgYW5kIHRoZSByb3V0ZS1sb29rdXAgcGFydC4gVGhlIGxh dHRlciB0aGVuCnRha2VzIHRoZSBjYWxjdWxhdGVkIGhlYWRlciBsZW5ndGggYXMgYW4gYXJndW1l bnQuIFRoaXMgc3BsaXQgd2lsbCBhbGxvdwp0aGUgcGF0Y2hlcyBkb3duIHRoZSBsaW5lIHRvIHNu ZWFrIGluIGEgY3VzdG9tIGhlYWRlciBsZW5ndGggY29tcHV0YXRpb24KZm9yIHRoZSBFUlNQQU4g dHVubmVsLgoKRml4ZXM6IDVhOTYzZWI2MWI3YyAoImlwNl9ncmU6IEFkZCBFUlNQQU4gbmF0aXZl IHR1bm5lbCBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogUGV0ciBNYWNoYXRhIDxwZXRybUBtZWxs YW5veC5jb20+CkFja2VkLWJ5OiBXaWxsaWFtIFR1IDx1OTAxMjA2M0BnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv aXB2Ni9pcDZfZ3JlLmMgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCBm ODhkNjE0ZTMyZmUuLjlhNDM5ZTU3NDNjZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5j CisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtMTAxOSwxMiArMTAxOSwxMSBAQCBzdGF0aWMg bmV0ZGV2X3R4X3QgaXA2ZXJzcGFuX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJ cmV0dXJuIE5FVERFVl9UWF9PSzsKIH0KIAotc3RhdGljIHZvaWQgaXA2Z3JlX3RubF9saW5rX2Nv bmZpZyhzdHJ1Y3QgaXA2X3RubCAqdCwgaW50IHNldF9tdHUpCitzdGF0aWMgdm9pZCBpcDZncmVf dG5sX2xpbmtfY29uZmlnX2NvbW1vbihzdHJ1Y3QgaXA2X3RubCAqdCkKIHsKIAlzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2ID0gdC0+ZGV2OwogCXN0cnVjdCBfX2lwNl90bmxfcGFybSAqcCA9ICZ0LT5w YXJtczsKIAlzdHJ1Y3QgZmxvd2k2ICpmbDYgPSAmdC0+ZmwudS5pcDY7Ci0JaW50IHRfaGxlbjsK IAogCWlmIChkZXYtPnR5cGUgIT0gQVJQSFJEX0VUSEVSKSB7CiAJCW1lbWNweShkZXYtPmRldl9h ZGRyLCAmcC0+bGFkZHIsIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKTsKQEAgLTEwNTEsMTIgKzEw NTAsMTMgQEAgc3RhdGljIHZvaWQgaXA2Z3JlX3RubF9saW5rX2NvbmZpZyhzdHJ1Y3QgaXA2X3Ru bCAqdCwgaW50IHNldF9tdHUpCiAJCWRldi0+ZmxhZ3MgfD0gSUZGX1BPSU5UT1BPSU5UOwogCWVs c2UKIAkJZGV2LT5mbGFncyAmPSB+SUZGX1BPSU5UT1BPSU5UOworfQogCi0JdC0+dHVuX2hsZW4g PSBncmVfY2FsY19obGVuKHQtPnBhcm1zLm9fZmxhZ3MpOwotCi0JdC0+aGxlbiA9IHQtPmVuY2Fw X2hsZW4gKyB0LT50dW5faGxlbjsKLQotCXRfaGxlbiA9IHQtPmhsZW4gKyBzaXplb2Yoc3RydWN0 IGlwdjZoZHIpOworc3RhdGljIHZvaWQgaXA2Z3JlX3RubF9saW5rX2NvbmZpZ19yb3V0ZShzdHJ1 Y3QgaXA2X3RubCAqdCwgaW50IHNldF9tdHUsCisJCQkJCSBpbnQgdF9obGVuKQoreworCWNvbnN0 IHN0cnVjdCBfX2lwNl90bmxfcGFybSAqcCA9ICZ0LT5wYXJtczsKKwlzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2ID0gdC0+ZGV2OwogCiAJaWYgKHAtPmZsYWdzICYgSVA2X1ROTF9GX0NBUF9YTUlUKSB7 CiAJCWludCBzdHJpY3QgPSAoaXB2Nl9hZGRyX3R5cGUoJnAtPnJhZGRyKSAmCkBAIC0xMDg4LDYg KzEwODgsMjQgQEAgc3RhdGljIHZvaWQgaXA2Z3JlX3RubF9saW5rX2NvbmZpZyhzdHJ1Y3QgaXA2 X3RubCAqdCwgaW50IHNldF9tdHUpCiAJfQogfQogCitzdGF0aWMgaW50IGlwNmdyZV9jYWxjX2hs ZW4oc3RydWN0IGlwNl90bmwgKnR1bm5lbCkKK3sKKwlpbnQgdF9obGVuOworCisJdHVubmVsLT50 dW5faGxlbiA9IGdyZV9jYWxjX2hsZW4odHVubmVsLT5wYXJtcy5vX2ZsYWdzKTsKKwl0dW5uZWwt PmhsZW4gPSB0dW5uZWwtPnR1bl9obGVuICsgdHVubmVsLT5lbmNhcF9obGVuOworCisJdF9obGVu ID0gdHVubmVsLT5obGVuICsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTsKKwl0dW5uZWwtPmRldi0+ aGFyZF9oZWFkZXJfbGVuID0gTExfTUFYX0hFQURFUiArIHRfaGxlbjsKKwlyZXR1cm4gdF9obGVu OworfQorCitzdGF0aWMgdm9pZCBpcDZncmVfdG5sX2xpbmtfY29uZmlnKHN0cnVjdCBpcDZfdG5s ICp0LCBpbnQgc2V0X210dSkKK3sKKwlpcDZncmVfdG5sX2xpbmtfY29uZmlnX2NvbW1vbih0KTsK KwlpcDZncmVfdG5sX2xpbmtfY29uZmlnX3JvdXRlKHQsIHNldF9tdHUsIGlwNmdyZV9jYWxjX2hs ZW4odCkpOworfQorCiBzdGF0aWMgaW50IGlwNmdyZV90bmxfY2hhbmdlKHN0cnVjdCBpcDZfdG5s ICp0LAogCWNvbnN0IHN0cnVjdCBfX2lwNl90bmxfcGFybSAqcCwgaW50IHNldF9tdHUpCiB7CkBA IC0xMzgxLDExICsxMzk5LDcgQEAgc3RhdGljIGludCBpcDZncmVfdHVubmVsX2luaXRfY29tbW9u KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCXJldHVybiByZXQ7CiAJfQogCi0JdHVubmVsLT50 dW5faGxlbiA9IGdyZV9jYWxjX2hsZW4odHVubmVsLT5wYXJtcy5vX2ZsYWdzKTsKLQl0dW5uZWwt PmhsZW4gPSB0dW5uZWwtPnR1bl9obGVuICsgdHVubmVsLT5lbmNhcF9obGVuOwotCXRfaGxlbiA9 IHR1bm5lbC0+aGxlbiArIHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7Ci0KLQlkZXYtPmhhcmRfaGVh ZGVyX2xlbiA9IExMX01BWF9IRUFERVIgKyB0X2hsZW47CisJdF9obGVuID0gaXA2Z3JlX2NhbGNf aGxlbih0dW5uZWwpOwogCWRldi0+bXR1ID0gRVRIX0RBVEFfTEVOIC0gdF9obGVuOwogCWlmIChk ZXYtPnR5cGUgPT0gQVJQSFJEX0VUSEVSKQogCQlkZXYtPm10dSAtPSBFVEhfSExFTjsKLS0gCjIu MTQuMwoKCkZyb20gMTVkMjQ4NzY2MTE2YTNlNWMxMmVjYWZkNzc0ZjY5ZjdmNjIzZjU5YiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGV0ciBNYWNoYXRhIDxwZXRybUBtZWxsYW5veC5j b20+CkRhdGU6IFRodSwgMTcgTWF5IDIwMTggMTY6MzY6MzMgKzAyMDAKU3ViamVjdDogW1BBVENI IDI1LzMyXSBuZXQ6IGlwNl9ncmU6IFNwbGl0IHVwIGlwNmdyZV90bmxfY2hhbmdlKCkKClsgVXBz dHJlYW0gY29tbWl0IGE2NDY1MzUwZWY0OTVmNWNiZDc2YTNlNTA1ZDI1YTAxZDY0ODQ3N2UgXQoK U3BsaXQgYSByZXVzYWJsZSBmdW5jdGlvbiBpcDZncmVfdG5sX2NvcHlfdG5sX3Bhcm0oKSBmcm9t CmlwNmdyZV90bmxfY2hhbmdlKCkuIFRoaXMgd2lsbCBhbGxvdyBFUlNQQU4tc3BlY2lmaWMgY29k ZSB0bwpyZXVzZSB0aGUgY29tbW9uIHBhcnRzIHdoaWxlIGN1c3RvbWl6aW5nIHRoZSBiZWhhdmlv ciBmb3IgRVJTUEFOLgoKRml4ZXM6IDVhOTYzZWI2MWI3YyAoImlwNl9ncmU6IEFkZCBFUlNQQU4g bmF0aXZlIHR1bm5lbCBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogUGV0ciBNYWNoYXRhIDxwZXRy bUBtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBXaWxsaWFtIFR1IDx1OTAxMjA2M0BnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvaXB2Ni9pcDZfZ3JlLmMgfCAxMCArKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgOCBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9n cmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCA5YTQzOWU1NzQzY2UuLjg5Mjg1OGFmMTM5 YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUu YwpAQCAtMTEwNiw4ICsxMTA2LDggQEAgc3RhdGljIHZvaWQgaXA2Z3JlX3RubF9saW5rX2NvbmZp ZyhzdHJ1Y3QgaXA2X3RubCAqdCwgaW50IHNldF9tdHUpCiAJaXA2Z3JlX3RubF9saW5rX2NvbmZp Z19yb3V0ZSh0LCBzZXRfbXR1LCBpcDZncmVfY2FsY19obGVuKHQpKTsKIH0KIAotc3RhdGljIGlu dCBpcDZncmVfdG5sX2NoYW5nZShzdHJ1Y3QgaXA2X3RubCAqdCwKLQljb25zdCBzdHJ1Y3QgX19p cDZfdG5sX3Bhcm0gKnAsIGludCBzZXRfbXR1KQorc3RhdGljIHZvaWQgaXA2Z3JlX3RubF9jb3B5 X3RubF9wYXJtKHN0cnVjdCBpcDZfdG5sICp0LAorCQkJCSAgICAgY29uc3Qgc3RydWN0IF9faXA2 X3RubF9wYXJtICpwKQogewogCXQtPnBhcm1zLmxhZGRyID0gcC0+bGFkZHI7CiAJdC0+cGFybXMu cmFkZHIgPSBwLT5yYWRkcjsKQEAgLTExMjMsNiArMTEyMywxMiBAQCBzdGF0aWMgaW50IGlwNmdy ZV90bmxfY2hhbmdlKHN0cnVjdCBpcDZfdG5sICp0LAogCXQtPnBhcm1zLm9fZmxhZ3MgPSBwLT5v X2ZsYWdzOwogCXQtPnBhcm1zLmZ3bWFyayA9IHAtPmZ3bWFyazsKIAlkc3RfY2FjaGVfcmVzZXQo JnQtPmRzdF9jYWNoZSk7Cit9CisKK3N0YXRpYyBpbnQgaXA2Z3JlX3RubF9jaGFuZ2Uoc3RydWN0 IGlwNl90bmwgKnQsIGNvbnN0IHN0cnVjdCBfX2lwNl90bmxfcGFybSAqcCwKKwkJCSAgICAgaW50 IHNldF9tdHUpCit7CisJaXA2Z3JlX3RubF9jb3B5X3RubF9wYXJtKHQsIHApOwogCWlwNmdyZV90 bmxfbGlua19jb25maWcodCwgc2V0X210dSk7CiAJcmV0dXJuIDA7CiB9Ci0tIAoyLjE0LjMKCgpG cm9tIGY4MzJlZDQ4NTViZTczODdjZGY3Mzc0ZGM4ZmQ3NjJiYmU1ZjlmMWQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFBldHIgTWFjaGF0YSA8cGV0cm1AbWVsbGFub3guY29tPgpEYXRl OiBUaHUsIDE3IE1heSAyMDE4IDE2OjM2OjM5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNi8zMl0g bmV0OiBpcDZfZ3JlOiBTcGxpdCB1cCBpcDZncmVfbmV3bGluaygpCgpbIFVwc3RyZWFtIGNvbW1p dCA3ZmEzOGE3Yzg1MmVjOTllM2E3ZmMzNzVlYjJjMjFjNTBjMmU0NmI4IF0KCkV4dHJhY3QgZnJv bSBpcDZncmVfbmV3bGluaygpIGEgcmV1c2FibGUgZnVuY3Rpb24KaXA2Z3JlX25ld2xpbmtfY29t bW9uKCkuIFRoZSBpcDZncmVfdG5sX2xpbmtfY29uZmlnKCkgY2FsbCBuZWVkcyB0byBiZQptYWRl IGN1c3RvbWl6YWJsZSBmb3IgRVJTUEFOLCB0aHVzIHJlb3JkZXIgaXQgd2l0aCBjYWxscyB0bwpp cDZfdG5sX2NoYW5nZV9tdHUoKSBhbmQgZGV2X2hvbGQoKSwgYW5kIGV4dHJhY3QgdGhlIHdob2xl IHRhaWwgdG8gdGhlCmNhbGxlciwgaXA2Z3JlX25ld2xpbmsoKS4gVGh1cyBlbmFibGUgYW4gRVJT UEFOLXNwZWNpZmljIF9uZXdsaW5rKCkKZnVuY3Rpb24gd2l0aG91dCBhIGxvdCBvZiBkdXBsaWNp dHkuCgpGaXhlczogNWE5NjNlYjYxYjdjICgiaXA2X2dyZTogQWRkIEVSU1BBTiBuYXRpdmUgdHVu bmVsIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBQZXRyIE1hY2hhdGEgPHBldHJtQG1lbGxhbm94 LmNvbT4KQWNrZWQtYnk6IFdpbGxpYW0gVHUgPHU5MDEyMDYzQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2 L2lwNl9ncmUuYyB8IDI0ICsrKysrKysrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDE4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv aXA2X2dyZS5jIGIvbmV0L2lwdjYvaXA2X2dyZS5jCmluZGV4IDg5Mjg1OGFmMTM5YS4uOWEwYjY2 MmIwMDg3IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZ3JlLmMKKysrIGIvbmV0L2lwdjYvaXA2 X2dyZS5jCkBAIC0xODQ4LDkgKzE4NDgsOSBAQCBzdGF0aWMgYm9vbCBpcDZncmVfbmV0bGlua19l bmNhcF9wYXJtcyhzdHJ1Y3QgbmxhdHRyICpkYXRhW10sCiAJcmV0dXJuIHJldDsKIH0KIAotc3Rh dGljIGludCBpcDZncmVfbmV3bGluayhzdHJ1Y3QgbmV0ICpzcmNfbmV0LCBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAotCQkJICBzdHJ1Y3QgbmxhdHRyICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRh W10sCi0JCQkgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKK3N0YXRpYyBpbnQgaXA2 Z3JlX25ld2xpbmtfY29tbW9uKHN0cnVjdCBuZXQgKnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCisJCQkJIHN0cnVjdCBubGF0dHIgKnRiW10sIHN0cnVjdCBubGF0dHIgKmRhdGFbXSwK KwkJCQkgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQogewogCXN0cnVjdCBpcDZfdG5s ICpudDsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0KGRldik7CkBAIC0xODg3LDE4ICsxODg3 LDMwIEBAIHN0YXRpYyBpbnQgaXA2Z3JlX25ld2xpbmsoc3RydWN0IG5ldCAqc3JjX25ldCwgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAotCWlwNmdyZV90 bmxfbGlua19jb25maWcobnQsICF0YltJRkxBX01UVV0pOwotCiAJaWYgKHRiW0lGTEFfTVRVXSkK IAkJaXA2X3RubF9jaGFuZ2VfbXR1KGRldiwgbmxhX2dldF91MzIodGJbSUZMQV9NVFVdKSk7CiAK IAlkZXZfaG9sZChkZXYpOwotCWlwNmdyZV90dW5uZWxfbGluayhpZ24sIG50KTsKIAogb3V0Ogog CXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgaXA2Z3JlX25ld2xpbmsoc3RydWN0IG5ldCAq c3JjX25ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCSAgc3RydWN0IG5sYXR0ciAqdGJb XSwgc3RydWN0IG5sYXR0ciAqZGF0YVtdLAorCQkJICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpl eHRhY2spCit7CisJaW50IGVyciA9IGlwNmdyZV9uZXdsaW5rX2NvbW1vbihzcmNfbmV0LCBkZXYs IHRiLCBkYXRhLCBleHRhY2spOworCXN0cnVjdCBpcDZfdG5sICpudCA9IG5ldGRldl9wcml2KGRl dik7CisJc3RydWN0IG5ldCAqbmV0ID0gZGV2X25ldChkZXYpOworCisJaWYgKCFlcnIpIHsKKwkJ aXA2Z3JlX3RubF9saW5rX2NvbmZpZyhudCwgIXRiW0lGTEFfTVRVXSk7CisJCWlwNmdyZV90dW5u ZWxfbGluayhuZXRfZ2VuZXJpYyhuZXQsIGlwNmdyZV9uZXRfaWQpLCBudCk7CisJfQorCXJldHVy biBlcnI7Cit9CisKIHN0YXRpYyBpbnQgaXA2Z3JlX2NoYW5nZWxpbmsoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgc3RydWN0IG5sYXR0ciAqdGJbXSwKIAkJCSAgICAgc3RydWN0IG5sYXR0ciAqZGF0 YVtdLAogCQkJICAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCi0tIAoyLjE0LjMK CgpGcm9tIDEyMWNjOTE4NTNmYmUwNmU3MTNjNmRiNWVkYjA2YmM3ODQ1MDc4NzAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFBldHIgTWFjaGF0YSA8cGV0cm1AbWVsbGFub3guY29tPgpE YXRlOiBUaHUsIDE3IE1heSAyMDE4IDE2OjM2OjQ1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNy8z Ml0gbmV0OiBpcDZfZ3JlOiBTcGxpdCB1cCBpcDZncmVfY2hhbmdlbGluaygpCgpbIFVwc3RyZWFt IGNvbW1pdCBjODYzMmZjMzBiYjAzYWEwYzNiZDdiY2NlODUzNTVhMTBmZWI4MTQ5IF0KCkV4dHJh Y3QgZnJvbSBpcDZncmVfY2hhbmdlbGluaygpIGEgcmV1c2FibGUgZnVuY3Rpb24KaXA2Z3JlX2No YW5nZWxpbmtfY29tbW9uKCkuIFRoaXMgd2lsbCBhbGxvdyBpbnRyb2R1Y3Rpb24gb2YKRVJTUEFO LXNwZWNpZmljIF9jaGFuZ2VsaW5rKCkgZnVuY3Rpb24gd2l0aCBub3QgYSBsb3Qgb2YgY29kZQpk dXBsaWNhdGlvbi4KCkZpeGVzOiA1YTk2M2ViNjFiN2MgKCJpcDZfZ3JlOiBBZGQgRVJTUEFOIG5h dGl2ZSB0dW5uZWwgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IFBldHIgTWFjaGF0YSA8cGV0cm1A bWVsbGFub3guY29tPgpBY2tlZC1ieTogV2lsbGlhbSBUdSA8dTkwMTIwNjNAZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjYvaXA2X2dyZS5jIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKaW5kZXggOWEw YjY2MmIwMDg3Li42OGVkYjQzOTYzMWYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9ncmUuYwor KysgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTE5MTEsMzcgKzE5MTEsNTIgQEAgc3RhdGljIGlu dCBpcDZncmVfbmV3bGluayhzdHJ1Y3QgbmV0ICpzcmNfbmV0LCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LAogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBpbnQgaXA2Z3JlX2NoYW5nZWxpbmsoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IG5sYXR0ciAqdGJbXSwKLQkJCSAgICAgc3RydWN0 IG5sYXR0ciAqZGF0YVtdLAotCQkJICAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2sp CitzdGF0aWMgc3RydWN0IGlwNl90bmwgKgoraXA2Z3JlX2NoYW5nZWxpbmtfY29tbW9uKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBubGF0dHIgKnRiW10sCisJCQkgc3RydWN0IG5sYXR0 ciAqZGF0YVtdLCBzdHJ1Y3QgX19pcDZfdG5sX3Bhcm0gKnBfcCwKKwkJCSBzdHJ1Y3QgbmV0bGlu a19leHRfYWNrICpleHRhY2spCiB7CiAJc3RydWN0IGlwNl90bmwgKnQsICpudCA9IG5ldGRldl9w cml2KGRldik7CiAJc3RydWN0IG5ldCAqbmV0ID0gbnQtPm5ldDsKIAlzdHJ1Y3QgaXA2Z3JlX25l dCAqaWduID0gbmV0X2dlbmVyaWMobmV0LCBpcDZncmVfbmV0X2lkKTsKLQlzdHJ1Y3QgX19pcDZf dG5sX3Bhcm0gcDsKIAlzdHJ1Y3QgaXBfdHVubmVsX2VuY2FwIGlwZW5jYXA7CiAKIAlpZiAoZGV2 ID09IGlnbi0+ZmJfdHVubmVsX2RldikKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJldHVybiBFUlJf UFRSKC1FSU5WQUwpOwogCiAJaWYgKGlwNmdyZV9uZXRsaW5rX2VuY2FwX3Bhcm1zKGRhdGEsICZp cGVuY2FwKSkgewogCQlpbnQgZXJyID0gaXA2X3RubF9lbmNhcF9zZXR1cChudCwgJmlwZW5jYXAp OwogCiAJCWlmIChlcnIgPCAwKQotCQkJcmV0dXJuIGVycjsKKwkJCXJldHVybiBFUlJfUFRSKGVy cik7CiAJfQogCi0JaXA2Z3JlX25ldGxpbmtfcGFybXMoZGF0YSwgJnApOworCWlwNmdyZV9uZXRs aW5rX3Bhcm1zKGRhdGEsIHBfcCk7CiAKLQl0ID0gaXA2Z3JlX3R1bm5lbF9sb2NhdGUobmV0LCAm cCwgMCk7CisJdCA9IGlwNmdyZV90dW5uZWxfbG9jYXRlKG5ldCwgcF9wLCAwKTsKIAogCWlmICh0 KSB7CiAJCWlmICh0LT5kZXYgIT0gZGV2KQotCQkJcmV0dXJuIC1FRVhJU1Q7CisJCQlyZXR1cm4g RVJSX1BUUigtRUVYSVNUKTsKIAl9IGVsc2UgewogCQl0ID0gbnQ7CiAJfQogCisJcmV0dXJuIHQ7 Cit9CisKK3N0YXRpYyBpbnQgaXA2Z3JlX2NoYW5nZWxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRl diwgc3RydWN0IG5sYXR0ciAqdGJbXSwKKwkJCSAgICAgc3RydWN0IG5sYXR0ciAqZGF0YVtdLAor CQkJICAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCit7CisJc3RydWN0IGlwNmdy ZV9uZXQgKmlnbiA9IG5ldF9nZW5lcmljKGRldl9uZXQoZGV2KSwgaXA2Z3JlX25ldF9pZCk7CisJ c3RydWN0IF9faXA2X3RubF9wYXJtIHA7CisJc3RydWN0IGlwNl90bmwgKnQ7CisKKwl0ID0gaXA2 Z3JlX2NoYW5nZWxpbmtfY29tbW9uKGRldiwgdGIsIGRhdGEsICZwLCBleHRhY2spOworCWlmIChJ U19FUlIodCkpCisJCXJldHVybiBQVFJfRVJSKHQpOworCiAJaXA2Z3JlX3R1bm5lbF91bmxpbmso aWduLCB0KTsKIAlpcDZncmVfdG5sX2NoYW5nZSh0LCAmcCwgIXRiW0lGTEFfTVRVXSk7CiAJaXA2 Z3JlX3R1bm5lbF9saW5rKGlnbiwgdCk7Ci0tIAoyLjE0LjMKCgpGcm9tIGI4MmFiYzg3MWVhMGQz ZDMzY2U3NGM1MDZlZDU1MzA3YzNjYTIxYmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFBldHIgTWFjaGF0YSA8cGV0cm1AbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDE3IE1heSAyMDE4 IDE2OjM2OjUxICswMjAwClN1YmplY3Q6IFtQQVRDSCAyOC8zMl0gbmV0OiBpcDZfZ3JlOiBGaXgg aXA2ZXJzcGFuIGhsZW4gY2FsY3VsYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDJkNjY1MDM0ZjIz OTQxMjkyN2IxZTcxMzI5ZjIwZjAwMWM5MmRhMDkgXQoKRXZlbiB0aG91Z2ggaXA2ZXJzcGFuX3Rh cF9pbml0KCkgc2V0cyB1cCBobGVuIGFuZCB0dW5faGxlbiBhY2NvcmRpbmcgdG8Kd2hhdCBFUlNQ QU4gbmVlZHMsIGl0IGdvZXMgYWhlYWQgdG8gY2FsbCBpcDZncmVfdG5sX2xpbmtfY29uZmlnKCkg d2hpY2gKb3ZlcndyaXRlcyB0aGVzZSBzZXR0aW5ncyB3aXRoIEdSRS1zcGVjaWZpYyBvbmVzLgoK U2ltaWxhcmx5IGZvciBjaGFuZ2VsaW5rIGNhbGxiYWNrcywgd2hpY2ggYXJlIGhhbmRsZWQgYnkK aXA2Z3JlX2NoYW5nZWxpbmsoKSBjYWxscyBpcDZncmVfdG5sX2NoYW5nZSgpIGNhbGxzCmlwNmdy ZV90bmxfbGlua19jb25maWcoKSBhcyB3ZWxsLgoKVGhlIGRpZmZlcmVuY2UgZW5kcyB1cCBiZWlu ZyAxMiB2cy4gMjAgYnl0ZXMsIGFuZCB0aGlzIGlzIGdlbmVyYWxseSBub3QKYSBwcm9ibGVtLCBi ZWNhdXNlIGEgMTItYnl0ZSByZXF1ZXN0IGxpa2VseSBlbmRzIHVwIGFsbG9jYXRpbmcgbW9yZSBh bmQKdGhlIGV4dHJhIDggYnl0ZXMgYXJlIHRodXMgYXZhaWxhYmxlLiBIb3dldmVyIGNvcnJlY3Qg aXQgaXMgbm90LgoKU28gcmVwbGFjZSB0aGUgbmV3bGluayBhbmQgY2hhbmdlbGluayBjYWxsYmFj a3Mgd2l0aCBhbiBFUlNQQU4tc3BlY2lmaWMKb25lcywgcmV1c2luZyB0aGUgbmV3bHktaW50cm9k dWNlZCBfY29tbW9uKCkgZnVuY3Rpb25zLgoKRml4ZXM6IDVhOTYzZWI2MWI3YyAoImlwNl9ncmU6 IEFkZCBFUlNQQU4gbmF0aXZlIHR1bm5lbCBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogUGV0ciBN YWNoYXRhIDxwZXRybUBtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBXaWxsaWFtIFR1IDx1OTAxMjA2 M0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZ3JlLmMgfCA3NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2NSBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9n cmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCA2OGVkYjQzOTYzMWYuLmRjNjczMGE3OWI5 NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUu YwpAQCAtODEsNiArODEsNyBAQCBzdGF0aWMgaW50IGlwNmdyZV90dW5uZWxfaW5pdChzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2KTsKIHN0YXRpYyB2b2lkIGlwNmdyZV90dW5uZWxfc2V0dXAoc3RydWN0 IG5ldF9kZXZpY2UgKmRldik7CiBzdGF0aWMgdm9pZCBpcDZncmVfdHVubmVsX2xpbmsoc3RydWN0 IGlwNmdyZV9uZXQgKmlnbiwgc3RydWN0IGlwNl90bmwgKnQpOwogc3RhdGljIHZvaWQgaXA2Z3Jl X3RubF9saW5rX2NvbmZpZyhzdHJ1Y3QgaXA2X3RubCAqdCwgaW50IHNldF9tdHUpOworc3RhdGlj IHZvaWQgaXA2ZXJzcGFuX3RubF9saW5rX2NvbmZpZyhzdHJ1Y3QgaXA2X3RubCAqdCwgaW50IHNl dF9tdHUpOwogCiAvKiBUdW5uZWwgaGFzaCB0YWJsZSAqLwogCkBAIC0xNzQ2LDYgKzE3NDcsMTkg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBpcDZncmVfdGFwX25ldGRldl9v cHMgPSB7CiAJLm5kb19nZXRfaWZsaW5rID0gaXA2X3RubF9nZXRfaWZsaW5rLAogfTsKIAorc3Rh dGljIGludCBpcDZlcnNwYW5fY2FsY19obGVuKHN0cnVjdCBpcDZfdG5sICp0dW5uZWwpCit7CisJ aW50IHRfaGxlbjsKKworCXR1bm5lbC0+dHVuX2hsZW4gPSA4OworCXR1bm5lbC0+aGxlbiA9IHR1 bm5lbC0+dHVuX2hsZW4gKyB0dW5uZWwtPmVuY2FwX2hsZW4gKworCQkgICAgICAgZXJzcGFuX2hk cl9sZW4odHVubmVsLT5wYXJtcy5lcnNwYW5fdmVyKTsKKworCXRfaGxlbiA9IHR1bm5lbC0+aGxl biArIHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7CisJdHVubmVsLT5kZXYtPmhhcmRfaGVhZGVyX2xl biA9IExMX01BWF9IRUFERVIgKyB0X2hsZW47CisJcmV0dXJuIHRfaGxlbjsKK30KKwogc3RhdGlj IGludCBpcDZlcnNwYW5fdGFwX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1 Y3QgaXA2X3RubCAqdHVubmVsOwpAQCAtMTc2OSwxMiArMTc4Myw3IEBAIHN0YXRpYyBpbnQgaXA2 ZXJzcGFuX3RhcF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCXJldHVybiByZXQ7CiAJ fQogCi0JdHVubmVsLT50dW5faGxlbiA9IDg7Ci0JdHVubmVsLT5obGVuID0gdHVubmVsLT50dW5f aGxlbiArIHR1bm5lbC0+ZW5jYXBfaGxlbiArCi0JCSAgICAgICBlcnNwYW5faGRyX2xlbih0dW5u ZWwtPnBhcm1zLmVyc3Bhbl92ZXIpOwotCXRfaGxlbiA9IHR1bm5lbC0+aGxlbiArIHNpemVvZihz dHJ1Y3QgaXB2Nmhkcik7Ci0KLQlkZXYtPmhhcmRfaGVhZGVyX2xlbiA9IExMX01BWF9IRUFERVIg KyB0X2hsZW47CisJdF9obGVuID0gaXA2ZXJzcGFuX2NhbGNfaGxlbih0dW5uZWwpOwogCWRldi0+ bXR1ID0gRVRIX0RBVEFfTEVOIC0gdF9obGVuOwogCWlmIChkZXYtPnR5cGUgPT0gQVJQSFJEX0VU SEVSKQogCQlkZXYtPm10dSAtPSBFVEhfSExFTjsKQEAgLTE3ODMsNyArMTc5Miw3IEBAIHN0YXRp YyBpbnQgaXA2ZXJzcGFuX3RhcF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKIAlkZXYt PnByaXZfZmxhZ3MgfD0gSUZGX0xJVkVfQUREUl9DSEFOR0U7CiAJdHVubmVsID0gbmV0ZGV2X3By aXYoZGV2KTsKLQlpcDZncmVfdG5sX2xpbmtfY29uZmlnKHR1bm5lbCwgMSk7CisJaXA2ZXJzcGFu X3RubF9saW5rX2NvbmZpZyh0dW5uZWwsIDEpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMTA4LDYg KzIxMTcsNTMgQEAgc3RhdGljIHZvaWQgaXA2ZXJzcGFuX3RhcF9zZXR1cChzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQogCW5ldGlmX2tlZXBfZHN0KGRldik7CiB9CiAKK3N0YXRpYyBpbnQgaXA2ZXJz cGFuX25ld2xpbmsoc3RydWN0IG5ldCAqc3JjX25ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK KwkJCSAgICAgc3RydWN0IG5sYXR0ciAqdGJbXSwgc3RydWN0IG5sYXR0ciAqZGF0YVtdLAorCQkJ ICAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCit7CisJaW50IGVyciA9IGlwNmdy ZV9uZXdsaW5rX2NvbW1vbihzcmNfbmV0LCBkZXYsIHRiLCBkYXRhLCBleHRhY2spOworCXN0cnVj dCBpcDZfdG5sICpudCA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IG5ldCAqbmV0ID0gZGV2 X25ldChkZXYpOworCisJaWYgKCFlcnIpIHsKKwkJaXA2ZXJzcGFuX3RubF9saW5rX2NvbmZpZyhu dCwgIXRiW0lGTEFfTVRVXSk7CisJCWlwNmdyZV90dW5uZWxfbGluayhuZXRfZ2VuZXJpYyhuZXQs IGlwNmdyZV9uZXRfaWQpLCBudCk7CisJfQorCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyB2b2lk IGlwNmVyc3Bhbl90bmxfbGlua19jb25maWcoc3RydWN0IGlwNl90bmwgKnQsIGludCBzZXRfbXR1 KQoreworCWlwNmdyZV90bmxfbGlua19jb25maWdfY29tbW9uKHQpOworCWlwNmdyZV90bmxfbGlu a19jb25maWdfcm91dGUodCwgc2V0X210dSwgaXA2ZXJzcGFuX2NhbGNfaGxlbih0KSk7Cit9CisK K3N0YXRpYyBpbnQgaXA2ZXJzcGFuX3RubF9jaGFuZ2Uoc3RydWN0IGlwNl90bmwgKnQsCisJCQkJ Y29uc3Qgc3RydWN0IF9faXA2X3RubF9wYXJtICpwLCBpbnQgc2V0X210dSkKK3sKKwlpcDZncmVf dG5sX2NvcHlfdG5sX3Bhcm0odCwgcCk7CisJaXA2ZXJzcGFuX3RubF9saW5rX2NvbmZpZyh0LCBz ZXRfbXR1KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpcDZlcnNwYW5fY2hhbmdlbGlu ayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRyICp0YltdLAorCQkJCXN0cnVj dCBubGF0dHIgKmRhdGFbXSwKKwkJCQlzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCit7 CisJc3RydWN0IGlwNmdyZV9uZXQgKmlnbiA9IG5ldF9nZW5lcmljKGRldl9uZXQoZGV2KSwgaXA2 Z3JlX25ldF9pZCk7CisJc3RydWN0IF9faXA2X3RubF9wYXJtIHA7CisJc3RydWN0IGlwNl90bmwg KnQ7CisKKwl0ID0gaXA2Z3JlX2NoYW5nZWxpbmtfY29tbW9uKGRldiwgdGIsIGRhdGEsICZwLCBl eHRhY2spOworCWlmIChJU19FUlIodCkpCisJCXJldHVybiBQVFJfRVJSKHQpOworCisJaXA2Z3Jl X3R1bm5lbF91bmxpbmsoaWduLCB0KTsKKwlpcDZlcnNwYW5fdG5sX2NoYW5nZSh0LCAmcCwgIXRi W0lGTEFfTVRVXSk7CisJaXA2Z3JlX3R1bm5lbF9saW5rKGlnbiwgdCk7CisJcmV0dXJuIDA7Cit9 CisKIHN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyBpcDZncmVfbGlua19vcHMgX19yZWFkX21v c3RseSA9IHsKIAkua2luZAkJPSAiaXA2Z3JlIiwKIAkubWF4dHlwZQk9IElGTEFfR1JFX01BWCwK QEAgLTIxNDQsOCArMjIwMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyBpcDZlcnNw YW5fdGFwX29wcyBfX3JlYWRfbW9zdGx5ID0gewogCS5wcml2X3NpemUJPSBzaXplb2Yoc3RydWN0 IGlwNl90bmwpLAogCS5zZXR1cAkJPSBpcDZlcnNwYW5fdGFwX3NldHVwLAogCS52YWxpZGF0ZQk9 IGlwNmVyc3Bhbl90YXBfdmFsaWRhdGUsCi0JLm5ld2xpbmsJPSBpcDZncmVfbmV3bGluaywKLQku Y2hhbmdlbGluawk9IGlwNmdyZV9jaGFuZ2VsaW5rLAorCS5uZXdsaW5rCT0gaXA2ZXJzcGFuX25l d2xpbmssCisJLmNoYW5nZWxpbmsJPSBpcDZlcnNwYW5fY2hhbmdlbGluaywKIAkuZ2V0X3NpemUJ PSBpcDZncmVfZ2V0X3NpemUsCiAJLmZpbGxfaW5mbwk9IGlwNmdyZV9maWxsX2luZm8sCiAJLmdl dF9saW5rX25ldAk9IGlwNl90bmxfZ2V0X2xpbmtfbmV0LAotLSAKMi4xNC4zCgoKRnJvbSA1YzZj OGFiMDM4YjA3YzcyMGNjM2Q2YzEyOGNhNGFkMTIyMTI0OGYyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBXaWxsaWFtIFR1IDx1OTAxMjA2M0BnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTgg TWF5IDIwMTggMTk6MjI6MjggLTA3MDAKU3ViamVjdDogW1BBVENIIDI5LzMyXSBuZXQ6IGlwNl9n cmU6IGZpeCB0dW5uZWwgbWV0YWRhdGEgZGV2aWNlIHNoYXJpbmcuCgpbIFVwc3RyZWFtIGNvbW1p dCBiODBkMGI5M2I5OTFlNTUxYTMyMTU3ZTBkOWQzOGZjNWJjOTM0OGE3IF0KCkN1cnJlbnRseSBp cDZncmUgYW5kIGlwNmVyc3BhbiBzaGFyZSBzaW5nbGUgbWV0YWRhdGEgbW9kZSBkZXZpY2UsCnVz aW5nICdjb2xsZWN0X21kX3R1bicuICBUaHVzLCB3aGVuIGRvaW5nOgogIGlwIGxpbmsgYWRkIGRl diBpcDZncmUxMSB0eXBlIGlwNmdyZXRhcCBleHRlcm5hbAogIGlwIGxpbmsgYWRkIGRldiBpcDZl cnNwYW4xMiB0eXBlIGlwNmVyc3BhbiBleHRlcm5hbAogIFJUTkVUTElOSyBhbnN3ZXJzOiBGaWxl IGV4aXN0cwpzaW1wbHkgZmFpbHMgZHVlIHRvIHRoZSAybmQgdHJpZXMgdG8gY3JlYXRlIHRoZSBz YW1lIGNvbGxlY3RfbWRfdHVuLgoKVGhlIHBhdGNoIGZpeGVzIGl0IGJ5IGFkZGluZyBhIHNlcGFy YXRlIGNvbGxlY3QgbWQgdHVubmVsIGRldmljZQpmb3IgdGhlIGlwNmVyc3BhbiwgJ2NvbGxlY3Rf bWRfdHVuX2Vyc3BhbicuICBBcyBhIHJlc3VsdCwgYSBjb3VwbGUKb2YgcGxhY2VzIG5lZWQgdG8g cmVmYWN0b3Ivc3BsaXQgdXAgaW4gb3JkZXIgdG8gZGlzdGluZ3Vpc2ggaXA2Z3JlCmFuZCBpcDZl cnNwYW4uCgpGaXJzdCwgbW92ZSB0aGUgY29sbGVjdF9tZCBjaGVjayBhdCBpcDZncmVfdHVubmVs X3t1bmxpbmssbGlua30gYW5kCmNyZWF0ZSBzZXBhcmF0ZSBmdW5jdGlvbiB7aXA2Z3JlLGlwNmVy c2Fwbn1fdHVubmVsX3tsaW5rX21kLHVubGlua19tZH0uClRoZW4gYmVmb3JlIGxpbmsvdW5saW5r LCBtYWtlIHN1cmUgdGhlIGxpbmtfbWQvdW5saW5rX21kIGlzIGNhbGxlZC4KRmluYWxseSwgYSBz ZXBhcmF0ZSBuZG9fdW5pbml0IGlzIGNyZWF0ZWQgZm9yIGlwNmVyc3Bhbi4gIFRlc3RlZCBpdAp1 c2luZyB0aGUgc2FtcGxlcy9icGYvdGVzdF90dW5uZWxfYnBmLnNoLgoKRml4ZXM6IGVmN2JhZjVl MDgzYyAoImlwNl9ncmU6IGFkZCBpcDYgZXJzcGFuIGNvbGxlY3RfbWQgbW9kZSIpClNpZ25lZC1v ZmYtYnk6IFdpbGxpYW0gVHUgPHU5MDEyMDYzQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9ncmUu YyB8IDEwMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRl eCBkYzY3MzBhNzliOTYuLjk1MzliZGIxNWVkYiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dy ZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtNzEsNiArNzEsNyBAQCBzdHJ1Y3QgaXA2 Z3JlX25ldCB7CiAJc3RydWN0IGlwNl90bmwgX19yY3UgKnR1bm5lbHNbNF1bSVA2X0dSRV9IQVNI X1NJWkVdOwogCiAJc3RydWN0IGlwNl90bmwgX19yY3UgKmNvbGxlY3RfbWRfdHVuOworCXN0cnVj dCBpcDZfdG5sIF9fcmN1ICpjb2xsZWN0X21kX3R1bl9lcnNwYW47CiAJc3RydWN0IG5ldF9kZXZp Y2UgKmZiX3R1bm5lbF9kZXY7CiB9OwogCkBAIC0yMzMsNyArMjM0LDEyIEBAIHN0YXRpYyBzdHJ1 Y3QgaXA2X3RubCAqaXA2Z3JlX3R1bm5lbF9sb29rdXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK IAlpZiAoY2FuZCkKIAkJcmV0dXJuIGNhbmQ7CiAKLQl0ID0gcmN1X2RlcmVmZXJlbmNlKGlnbi0+ Y29sbGVjdF9tZF90dW4pOworCWlmIChncmVfcHJvdG8gPT0gaHRvbnMoRVRIX1BfRVJTUEFOKSB8 fAorCSAgICBncmVfcHJvdG8gPT0gaHRvbnMoRVRIX1BfRVJTUEFOMikpCisJCXQgPSByY3VfZGVy ZWZlcmVuY2UoaWduLT5jb2xsZWN0X21kX3R1bl9lcnNwYW4pOworCWVsc2UKKwkJdCA9IHJjdV9k ZXJlZmVyZW5jZShpZ24tPmNvbGxlY3RfbWRfdHVuKTsKKwogCWlmICh0ICYmIHQtPmRldi0+Zmxh Z3MgJiBJRkZfVVApCiAJCXJldHVybiB0OwogCkBAIC0yNjIsNiArMjY4LDMxIEBAIHN0YXRpYyBz dHJ1Y3QgaXA2X3RubCBfX3JjdSAqKl9faXA2Z3JlX2J1Y2tldChzdHJ1Y3QgaXA2Z3JlX25ldCAq aWduLAogCXJldHVybiAmaWduLT50dW5uZWxzW3ByaW9dW2hdOwogfQogCitzdGF0aWMgdm9pZCBp cDZncmVfdHVubmVsX2xpbmtfbWQoc3RydWN0IGlwNmdyZV9uZXQgKmlnbiwgc3RydWN0IGlwNl90 bmwgKnQpCit7CisJaWYgKHQtPnBhcm1zLmNvbGxlY3RfbWQpCisJCXJjdV9hc3NpZ25fcG9pbnRl cihpZ24tPmNvbGxlY3RfbWRfdHVuLCB0KTsKK30KKworc3RhdGljIHZvaWQgaXA2ZXJzcGFuX3R1 bm5lbF9saW5rX21kKHN0cnVjdCBpcDZncmVfbmV0ICppZ24sIHN0cnVjdCBpcDZfdG5sICp0KQor eworCWlmICh0LT5wYXJtcy5jb2xsZWN0X21kKQorCQlyY3VfYXNzaWduX3BvaW50ZXIoaWduLT5j b2xsZWN0X21kX3R1bl9lcnNwYW4sIHQpOworfQorCitzdGF0aWMgdm9pZCBpcDZncmVfdHVubmVs X3VubGlua19tZChzdHJ1Y3QgaXA2Z3JlX25ldCAqaWduLCBzdHJ1Y3QgaXA2X3RubCAqdCkKK3sK KwlpZiAodC0+cGFybXMuY29sbGVjdF9tZCkKKwkJcmN1X2Fzc2lnbl9wb2ludGVyKGlnbi0+Y29s bGVjdF9tZF90dW4sIE5VTEwpOworfQorCitzdGF0aWMgdm9pZCBpcDZlcnNwYW5fdHVubmVsX3Vu bGlua19tZChzdHJ1Y3QgaXA2Z3JlX25ldCAqaWduLAorCQkJCSAgICAgICBzdHJ1Y3QgaXA2X3Ru bCAqdCkKK3sKKwlpZiAodC0+cGFybXMuY29sbGVjdF9tZCkKKwkJcmN1X2Fzc2lnbl9wb2ludGVy KGlnbi0+Y29sbGVjdF9tZF90dW5fZXJzcGFuLCBOVUxMKTsKK30KKwogc3RhdGljIGlubGluZSBz dHJ1Y3QgaXA2X3RubCBfX3JjdSAqKmlwNmdyZV9idWNrZXQoc3RydWN0IGlwNmdyZV9uZXQgKmln biwKIAkJY29uc3Qgc3RydWN0IGlwNl90bmwgKnQpCiB7CkBAIC0yNzIsOSArMzAzLDYgQEAgc3Rh dGljIHZvaWQgaXA2Z3JlX3R1bm5lbF9saW5rKHN0cnVjdCBpcDZncmVfbmV0ICppZ24sIHN0cnVj dCBpcDZfdG5sICp0KQogewogCXN0cnVjdCBpcDZfdG5sIF9fcmN1ICoqdHAgPSBpcDZncmVfYnVj a2V0KGlnbiwgdCk7CiAKLQlpZiAodC0+cGFybXMuY29sbGVjdF9tZCkKLQkJcmN1X2Fzc2lnbl9w b2ludGVyKGlnbi0+Y29sbGVjdF9tZF90dW4sIHQpOwotCiAJcmN1X2Fzc2lnbl9wb2ludGVyKHQt Pm5leHQsIHJ0bmxfZGVyZWZlcmVuY2UoKnRwKSk7CiAJcmN1X2Fzc2lnbl9wb2ludGVyKCp0cCwg dCk7CiB9CkBAIC0yODQsOSArMzEyLDYgQEAgc3RhdGljIHZvaWQgaXA2Z3JlX3R1bm5lbF91bmxp bmsoc3RydWN0IGlwNmdyZV9uZXQgKmlnbiwgc3RydWN0IGlwNl90bmwgKnQpCiAJc3RydWN0IGlw Nl90bmwgX19yY3UgKip0cDsKIAlzdHJ1Y3QgaXA2X3RubCAqaXRlcjsKIAotCWlmICh0LT5wYXJt cy5jb2xsZWN0X21kKQotCQlyY3VfYXNzaWduX3BvaW50ZXIoaWduLT5jb2xsZWN0X21kX3R1biwg TlVMTCk7Ci0KIAlmb3IgKHRwID0gaXA2Z3JlX2J1Y2tldChpZ24sIHQpOwogCSAgICAgKGl0ZXIg PSBydG5sX2RlcmVmZXJlbmNlKCp0cCkpICE9IE5VTEw7CiAJICAgICB0cCA9ICZpdGVyLT5uZXh0 KSB7CkBAIC0zNzUsMTEgKzQwMCwyMyBAQCBzdGF0aWMgc3RydWN0IGlwNl90bmwgKmlwNmdyZV90 dW5uZWxfbG9jYXRlKHN0cnVjdCBuZXQgKm5ldCwKIAlyZXR1cm4gTlVMTDsKIH0KIAorc3RhdGlj IHZvaWQgaXA2ZXJzcGFuX3R1bm5lbF91bmluaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3sK KwlzdHJ1Y3QgaXA2X3RubCAqdCA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IGlwNmdyZV9u ZXQgKmlnbiA9IG5ldF9nZW5lcmljKHQtPm5ldCwgaXA2Z3JlX25ldF9pZCk7CisKKwlpcDZlcnNw YW5fdHVubmVsX3VubGlua19tZChpZ24sIHQpOworCWlwNmdyZV90dW5uZWxfdW5saW5rKGlnbiwg dCk7CisJZHN0X2NhY2hlX3Jlc2V0KCZ0LT5kc3RfY2FjaGUpOworCWRldl9wdXQoZGV2KTsKK30K Kwogc3RhdGljIHZvaWQgaXA2Z3JlX3R1bm5lbF91bmluaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRl dikKIHsKIAlzdHJ1Y3QgaXA2X3RubCAqdCA9IG5ldGRldl9wcml2KGRldik7CiAJc3RydWN0IGlw NmdyZV9uZXQgKmlnbiA9IG5ldF9nZW5lcmljKHQtPm5ldCwgaXA2Z3JlX25ldF9pZCk7CiAKKwlp cDZncmVfdHVubmVsX3VubGlua19tZChpZ24sIHQpOwogCWlwNmdyZV90dW5uZWxfdW5saW5rKGln biwgdCk7CiAJZHN0X2NhY2hlX3Jlc2V0KCZ0LT5kc3RfY2FjaGUpOwogCWRldl9wdXQoZGV2KTsK QEAgLTE3OTksNyArMTgzNiw3IEBAIHN0YXRpYyBpbnQgaXA2ZXJzcGFuX3RhcF9pbml0KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMg aXA2ZXJzcGFuX25ldGRldl9vcHMgPSB7CiAJLm5kb19pbml0ID0JCWlwNmVyc3Bhbl90YXBfaW5p dCwKLQkubmRvX3VuaW5pdCA9CQlpcDZncmVfdHVubmVsX3VuaW5pdCwKKwkubmRvX3VuaW5pdCA9 CQlpcDZlcnNwYW5fdHVubmVsX3VuaW5pdCwKIAkubmRvX3N0YXJ0X3htaXQgPQlpcDZlcnNwYW5f dHVubmVsX3htaXQsCiAJLm5kb19zZXRfbWFjX2FkZHJlc3MgPQlldGhfbWFjX2FkZHIsCiAJLm5k b192YWxpZGF0ZV9hZGRyID0JZXRoX3ZhbGlkYXRlX2FkZHIsCkBAIC0xODYyLDggKzE4OTksNiBA QCBzdGF0aWMgaW50IGlwNmdyZV9uZXdsaW5rX2NvbW1vbihzdHJ1Y3QgbmV0ICpzcmNfbmV0LCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRh Y2spCiB7CiAJc3RydWN0IGlwNl90bmwgKm50OwotCXN0cnVjdCBuZXQgKm5ldCA9IGRldl9uZXQo ZGV2KTsKLQlzdHJ1Y3QgaXA2Z3JlX25ldCAqaWduID0gbmV0X2dlbmVyaWMobmV0LCBpcDZncmVf bmV0X2lkKTsKIAlzdHJ1Y3QgaXBfdHVubmVsX2VuY2FwIGlwZW5jYXA7CiAJaW50IGVycjsKIApA QCAtMTg3NiwxNiArMTkxMSw2IEBAIHN0YXRpYyBpbnQgaXA2Z3JlX25ld2xpbmtfY29tbW9uKHN0 cnVjdCBuZXQgKnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQlyZXR1cm4gZXJy OwogCX0KIAotCWlwNmdyZV9uZXRsaW5rX3Bhcm1zKGRhdGEsICZudC0+cGFybXMpOwotCi0JaWYg KG50LT5wYXJtcy5jb2xsZWN0X21kKSB7Ci0JCWlmIChydG5sX2RlcmVmZXJlbmNlKGlnbi0+Y29s bGVjdF9tZF90dW4pKQotCQkJcmV0dXJuIC1FRVhJU1Q7Ci0JfSBlbHNlIHsKLQkJaWYgKGlwNmdy ZV90dW5uZWxfZmluZChuZXQsICZudC0+cGFybXMsIGRldi0+dHlwZSkpCi0JCQlyZXR1cm4gLUVF WElTVDsKLQl9Ci0KIAlpZiAoZGV2LT50eXBlID09IEFSUEhSRF9FVEhFUiAmJiAhdGJbSUZMQV9B RERSRVNTXSkKIAkJZXRoX2h3X2FkZHJfcmFuZG9tKGRldik7CiAKQEAgLTE5MDksMTIgKzE5MzQs MjYgQEAgc3RhdGljIGludCBpcDZncmVfbmV3bGluayhzdHJ1Y3QgbmV0ICpzcmNfbmV0LCBzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJICBzdHJ1Y3QgbmxhdHRyICp0YltdLCBzdHJ1Y3Qgbmxh dHRyICpkYXRhW10sCiAJCQkgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKIHsKLQlp bnQgZXJyID0gaXA2Z3JlX25ld2xpbmtfY29tbW9uKHNyY19uZXQsIGRldiwgdGIsIGRhdGEsIGV4 dGFjayk7CiAJc3RydWN0IGlwNl90bmwgKm50ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3Qg bmV0ICpuZXQgPSBkZXZfbmV0KGRldik7CisJc3RydWN0IGlwNmdyZV9uZXQgKmlnbjsKKwlpbnQg ZXJyOworCisJaXA2Z3JlX25ldGxpbmtfcGFybXMoZGF0YSwgJm50LT5wYXJtcyk7CisJaWduID0g bmV0X2dlbmVyaWMobmV0LCBpcDZncmVfbmV0X2lkKTsKKworCWlmIChudC0+cGFybXMuY29sbGVj dF9tZCkgeworCQlpZiAocnRubF9kZXJlZmVyZW5jZShpZ24tPmNvbGxlY3RfbWRfdHVuKSkKKwkJ CXJldHVybiAtRUVYSVNUOworCX0gZWxzZSB7CisJCWlmIChpcDZncmVfdHVubmVsX2ZpbmQobmV0 LCAmbnQtPnBhcm1zLCBkZXYtPnR5cGUpKQorCQkJcmV0dXJuIC1FRVhJU1Q7CisJfQogCisJZXJy ID0gaXA2Z3JlX25ld2xpbmtfY29tbW9uKHNyY19uZXQsIGRldiwgdGIsIGRhdGEsIGV4dGFjayk7 CiAJaWYgKCFlcnIpIHsKIAkJaXA2Z3JlX3RubF9saW5rX2NvbmZpZyhudCwgIXRiW0lGTEFfTVRV XSk7CisJCWlwNmdyZV90dW5uZWxfbGlua19tZChpZ24sIG50KTsKIAkJaXA2Z3JlX3R1bm5lbF9s aW5rKG5ldF9nZW5lcmljKG5ldCwgaXA2Z3JlX25ldF9pZCksIG50KTsKIAl9CiAJcmV0dXJuIGVy cjsKQEAgLTE5NjYsOCArMjAwNSwxMCBAQCBzdGF0aWMgaW50IGlwNmdyZV9jaGFuZ2VsaW5rKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBubGF0dHIgKnRiW10sCiAJaWYgKElTX0VSUih0 KSkKIAkJcmV0dXJuIFBUUl9FUlIodCk7CiAKKwlpcDZncmVfdHVubmVsX3VubGlua19tZChpZ24s IHQpOwogCWlwNmdyZV90dW5uZWxfdW5saW5rKGlnbiwgdCk7CiAJaXA2Z3JlX3RubF9jaGFuZ2Uo dCwgJnAsICF0YltJRkxBX01UVV0pOworCWlwNmdyZV90dW5uZWxfbGlua19tZChpZ24sIHQpOwog CWlwNmdyZV90dW5uZWxfbGluayhpZ24sIHQpOwogCXJldHVybiAwOwogfQpAQCAtMjEyMSwxMiAr MjE2MiwyNiBAQCBzdGF0aWMgaW50IGlwNmVyc3Bhbl9uZXdsaW5rKHN0cnVjdCBuZXQgKnNyY19u ZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkgICAgIHN0cnVjdCBubGF0dHIgKnRiW10s IHN0cnVjdCBubGF0dHIgKmRhdGFbXSwKIAkJCSAgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAq ZXh0YWNrKQogewotCWludCBlcnIgPSBpcDZncmVfbmV3bGlua19jb21tb24oc3JjX25ldCwgZGV2 LCB0YiwgZGF0YSwgZXh0YWNrKTsKIAlzdHJ1Y3QgaXA2X3RubCAqbnQgPSBuZXRkZXZfcHJpdihk ZXYpOwogCXN0cnVjdCBuZXQgKm5ldCA9IGRldl9uZXQoZGV2KTsKKwlzdHJ1Y3QgaXA2Z3JlX25l dCAqaWduOworCWludCBlcnI7CisKKwlpcDZncmVfbmV0bGlua19wYXJtcyhkYXRhLCAmbnQtPnBh cm1zKTsKKwlpZ24gPSBuZXRfZ2VuZXJpYyhuZXQsIGlwNmdyZV9uZXRfaWQpOworCisJaWYgKG50 LT5wYXJtcy5jb2xsZWN0X21kKSB7CisJCWlmIChydG5sX2RlcmVmZXJlbmNlKGlnbi0+Y29sbGVj dF9tZF90dW5fZXJzcGFuKSkKKwkJCXJldHVybiAtRUVYSVNUOworCX0gZWxzZSB7CisJCWlmIChp cDZncmVfdHVubmVsX2ZpbmQobmV0LCAmbnQtPnBhcm1zLCBkZXYtPnR5cGUpKQorCQkJcmV0dXJu IC1FRVhJU1Q7CisJfQogCisJZXJyID0gaXA2Z3JlX25ld2xpbmtfY29tbW9uKHNyY19uZXQsIGRl diwgdGIsIGRhdGEsIGV4dGFjayk7CiAJaWYgKCFlcnIpIHsKIAkJaXA2ZXJzcGFuX3RubF9saW5r X2NvbmZpZyhudCwgIXRiW0lGTEFfTVRVXSk7CisJCWlwNmVyc3Bhbl90dW5uZWxfbGlua19tZChp Z24sIG50KTsKIAkJaXA2Z3JlX3R1bm5lbF9saW5rKG5ldF9nZW5lcmljKG5ldCwgaXA2Z3JlX25l dF9pZCksIG50KTsKIAl9CiAJcmV0dXJuIGVycjsKQEAgLTIxNTgsOCArMjIxMywxMCBAQCBzdGF0 aWMgaW50IGlwNmVyc3Bhbl9jaGFuZ2VsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVj dCBubGF0dHIgKnRiW10sCiAJaWYgKElTX0VSUih0KSkKIAkJcmV0dXJuIFBUUl9FUlIodCk7CiAK KwlpcDZncmVfdHVubmVsX3VubGlua19tZChpZ24sIHQpOwogCWlwNmdyZV90dW5uZWxfdW5saW5r KGlnbiwgdCk7CiAJaXA2ZXJzcGFuX3RubF9jaGFuZ2UodCwgJnAsICF0YltJRkxBX01UVV0pOwor CWlwNmVyc3Bhbl90dW5uZWxfbGlua19tZChpZ24sIHQpOwogCWlwNmdyZV90dW5uZWxfbGluayhp Z24sIHQpOwogCXJldHVybiAwOwogfQotLSAKMi4xNC4zCgoKRnJvbSAxZTI4N2Y4NzAwMDY5OWU5 Mzk5ZDIyZDI1MjFkNDgwNjRjOWUwMmQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBN aWNoYWwgS2FsZGVyb24gPE1pY2hhbC5LYWxkZXJvbkBjYXZpdW0uY29tPgpEYXRlOiBXZWQsIDE2 IE1heSAyMDE4IDE0OjQ0OjM4ICswMzAwClN1YmplY3Q6IFtQQVRDSCAzMC8zMl0gcWVkOiBMTDIg Zmx1c2ggaXNsZXMgd2hlbiBjb25uZWN0aW9uIGlzIGNsb3NlZAoKWyBVcHN0cmVhbSBjb21taXQg ZjliY2Q2MDI3NGE1NjU3NTFhYmVmNjIyZjkwMThiYWRkMDFhMTdjOCBdCgpEcml2ZXIgc2hvdWxk IGZyZWUgYWxsIHBlbmRpbmcgaXNsZXMgb25jZSBpdCBnZXRzIGEgRkxVU0ggY3FlIGZyb20gRlcu ClBhcnQgb2YgaVNDU0kgb3V0IG9mIG9yZGVyIGZsb3cuCgpGaXhlczogMWQ2Y2ZmNGZjYTQzNjYg KCJxZWQ6IEFkZCBpU0NTSSBvdXQgb2Ygb3JkZXIgcGFja2V0IGhhbmRsaW5nIikKU2lnbmVkLW9m Zi1ieTogQXJpZWwgRWxpb3IgPEFyaWVsLkVsaW9yQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6 IE1pY2hhbCBLYWxkZXJvbiA8TWljaGFsLkthbGRlcm9uQGNhdml1bS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9sbDIuYyB8IDI2ICsrKysrKysrKysrKysrKysrKysr KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2xsMi5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvcWxvZ2ljL3FlZC9xZWRfbGwyLmMKaW5kZXggYzRmMTRmZGM0ZTc3Li4zOWFhMWVkZGJm ZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2xsMi5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2xsMi5jCkBAIC02MDEs NiArNjAxLDI3IEBAIHN0YXRpYyB1OCBxZWRfbGwyX2NvbnZlcnRfcnhfcGFyc2VfdG9fdHhfZmxh Z3ModTE2IHBhcnNlX2ZsYWdzKQogCXJldHVybiBiZF9mbGFnczsKIH0KIAorc3RhdGljIGJvb2wK K3FlZF9sbDJfbGJfcnhxX2hhbmRsZXJfc2xvd3BhdGgoc3RydWN0IHFlZF9od2ZuICpwX2h3Zm4s CisJCQkJc3RydWN0IGNvcmVfcnhfc2xvd19wYXRoX2NxZSAqcF9jcWUpCit7CisJc3RydWN0IG9v b19vcGFxdWUgKmlzY3NpX29vbzsKKwl1MzIgY2lkOworCisJaWYgKHBfY3FlLT5yYW1yb2RfY21k X2lkICE9IENPUkVfUkFNUk9EX1JYX1FVRVVFX0ZMVVNIKQorCQlyZXR1cm4gZmFsc2U7CisKKwlp c2NzaV9vb28gPSAoc3RydWN0IG9vb19vcGFxdWUgKikmcF9jcWUtPm9wYXF1ZV9kYXRhOworCWlm IChpc2NzaV9vb28tPm9vb19vcGNvZGUgIT0gVENQX0VWRU5UX0RFTEVURV9JU0xFUykKKwkJcmV0 dXJuIGZhbHNlOworCisJLyogTmVlZCB0byBtYWtlIGEgZmx1c2ggKi8KKwljaWQgPSBsZTMyX3Rv X2NwdShpc2NzaV9vb28tPmNpZCk7CisJcWVkX29vb19yZWxlYXNlX2Nvbm5lY3Rpb25faXNsZXMo cF9od2ZuLCBwX2h3Zm4tPnBfb29vX2luZm8sIGNpZCk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwog c3RhdGljIGludCBxZWRfbGwyX2xiX3J4cV9oYW5kbGVyKHN0cnVjdCBxZWRfaHdmbiAqcF9od2Zu LAogCQkJCSAgc3RydWN0IHFlZF9sbDJfaW5mbyAqcF9sbDJfY29ubikKIHsKQEAgLTYyNyw2ICs2 NDgsMTEgQEAgc3RhdGljIGludCBxZWRfbGwyX2xiX3J4cV9oYW5kbGVyKHN0cnVjdCBxZWRfaHdm biAqcF9od2ZuLAogCQljcV9vbGRfaWR4ID0gcWVkX2NoYWluX2dldF9jb25zX2lkeCgmcF9yeC0+ cmNxX2NoYWluKTsKIAkJY3FlX3R5cGUgPSBjcWUtPnJ4X2NxZV9zcC50eXBlOwogCisJCWlmIChj cWVfdHlwZSA9PSBDT1JFX1JYX0NRRV9UWVBFX1NMT1dfUEFUSCkKKwkJCWlmIChxZWRfbGwyX2xi X3J4cV9oYW5kbGVyX3Nsb3dwYXRoKHBfaHdmbiwKKwkJCQkJCQkgICAgJmNxZS0+cnhfY3FlX3Nw KSkKKwkJCQljb250aW51ZTsKKwogCQlpZiAoY3FlX3R5cGUgIT0gQ09SRV9SWF9DUUVfVFlQRV9S RUdVTEFSKSB7CiAJCQlEUF9OT1RJQ0UocF9od2ZuLAogCQkJCSAgIkdvdCBhIG5vbi1yZWd1bGFy IExCIExMMiBjb21wbGV0aW9uIFt0eXBlIDB4JTAyeF1cbiIsCi0tIAoyLjE0LjMKCgpGcm9tIDIw MDZkMWQ1NzRjNWY5Yzc3YjUwMTg5YzA4OTdlNjc2NGYxYjYwMTEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE1pY2hhbCBLYWxkZXJvbiA8TWljaGFsLkthbGRlcm9uQGNhdml1bS5jb20+ CkRhdGU6IFdlZCwgMTYgTWF5IDIwMTggMTQ6NDQ6MzkgKzAzMDAKU3ViamVjdDogW1BBVENIIDMx LzMyXSBxZWQ6IEZpeCBwb3NzaWJpbGl0eSBvZiBsaXN0IGNvcnJ1cHRpb24gZHVyaW5nIHJtbW9k CiBmbG93cwoKWyBVcHN0cmVhbSBjb21taXQgZmZkMmMwZDEyNzUyYTY5ZTQ4MDM2NjAzMWVjN2E3 ZDcyM2RkMjUxMCBdCgpUaGUgbGwyIGZsb3dzIG9mIGZsdXNoaW5nIHRoZSB0eHEvcnhxIG5lZWQg dG8gYmUgc3luY2hyb25pemVkIHdpdGggdGhlCnJlZ3VsYXIgZnAgcHJvY2Vzc2luZy4gQ2F1c2Vk IGxpc3QgY29ycnVwdGlvbiBkdXJpbmcgbG9hZC91bmxvYWQgc3RyZXNzCnRlc3RzLgoKRml4ZXM6 IDBhN2ZiMTFjMjNjMGYgKCJxZWQ6IEFkZCBMaWdodCBMMiBzdXBwb3J0IikKU2lnbmVkLW9mZi1i eTogQXJpZWwgRWxpb3IgPEFyaWVsLkVsaW9yQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6IE1p Y2hhbCBLYWxkZXJvbiA8TWljaGFsLkthbGRlcm9uQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9xbG9naWMvcWVkL3FlZF9sbDIuYyB8IDExICsrKysrKysrKystCiAxIGZpbGUgY2hh bmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2xsMi5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvcWxvZ2ljL3FlZC9xZWRfbGwyLmMKaW5kZXggMzlhYTFlZGRiZmU2Li43NzY0ZTJjYTFkZDkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2xsMi5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2xsMi5jCkBAIC0yOTIsNiAr MjkyLDcgQEAgc3RhdGljIHZvaWQgcWVkX2xsMl90eHFfZmx1c2goc3RydWN0IHFlZF9od2ZuICpw X2h3Zm4sIHU4IGNvbm5lY3Rpb25faGFuZGxlKQogCXN0cnVjdCBxZWRfbGwyX3R4X3BhY2tldCAq cF9wa3QgPSBOVUxMOwogCXN0cnVjdCBxZWRfbGwyX2luZm8gKnBfbGwyX2Nvbm47CiAJc3RydWN0 IHFlZF9sbDJfdHhfcXVldWUgKnBfdHg7CisJdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7CiAJZG1h X2FkZHJfdCB0eF9mcmFnOwogCiAJcF9sbDJfY29ubiA9IHFlZF9sbDJfaGFuZGxlX3Nhbml0eV9p bmFjdGl2ZShwX2h3Zm4sIGNvbm5lY3Rpb25faGFuZGxlKTsKQEAgLTMwMCw2ICszMDEsNyBAQCBz dGF0aWMgdm9pZCBxZWRfbGwyX3R4cV9mbHVzaChzdHJ1Y3QgcWVkX2h3Zm4gKnBfaHdmbiwgdTgg Y29ubmVjdGlvbl9oYW5kbGUpCiAKIAlwX3R4ID0gJnBfbGwyX2Nvbm4tPnR4X3F1ZXVlOwogCisJ c3Bpbl9sb2NrX2lycXNhdmUoJnBfdHgtPmxvY2ssIGZsYWdzKTsKIAl3aGlsZSAoIWxpc3RfZW1w dHkoJnBfdHgtPmFjdGl2ZV9kZXNjcSkpIHsKIAkJcF9wa3QgPSBsaXN0X2ZpcnN0X2VudHJ5KCZw X3R4LT5hY3RpdmVfZGVzY3EsCiAJCQkJCSBzdHJ1Y3QgcWVkX2xsMl90eF9wYWNrZXQsIGxpc3Rf ZW50cnkpOwpAQCAtMzA5LDYgKzMxMSw3IEBAIHN0YXRpYyB2b2lkIHFlZF9sbDJfdHhxX2ZsdXNo KHN0cnVjdCBxZWRfaHdmbiAqcF9od2ZuLCB1OCBjb25uZWN0aW9uX2hhbmRsZSkKIAkJbGlzdF9k ZWwoJnBfcGt0LT5saXN0X2VudHJ5KTsKIAkJYl9sYXN0X3BhY2tldCA9IGxpc3RfZW1wdHkoJnBf dHgtPmFjdGl2ZV9kZXNjcSk7CiAJCWxpc3RfYWRkX3RhaWwoJnBfcGt0LT5saXN0X2VudHJ5LCAm cF90eC0+ZnJlZV9kZXNjcSk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBfdHgtPmxvY2ss IGZsYWdzKTsKIAkJaWYgKHBfbGwyX2Nvbm4tPmlucHV0LmNvbm5fdHlwZSA9PSBRRURfTEwyX1RZ UEVfT09PKSB7CiAJCQlzdHJ1Y3QgcWVkX29vb19idWZmZXIgKnBfYnVmZmVyOwogCkBAIC0zMjgs NyArMzMxLDkgQEAgc3RhdGljIHZvaWQgcWVkX2xsMl90eHFfZmx1c2goc3RydWN0IHFlZF9od2Zu ICpwX2h3Zm4sIHU4IGNvbm5lY3Rpb25faGFuZGxlKQogCQkJCQkJICAgICAgYl9sYXN0X2ZyYWcs CiAJCQkJCQkgICAgICBiX2xhc3RfcGFja2V0KTsKIAkJfQorCQlzcGluX2xvY2tfaXJxc2F2ZSgm cF90eC0+bG9jaywgZmxhZ3MpOwogCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwX3R4LT5s b2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyBpbnQgcWVkX2xsMl90eHFfY29tcGxldGlvbihzdHJ1 Y3QgcWVkX2h3Zm4gKnBfaHdmbiwgdm9pZCAqcF9jb29raWUpCkBAIC01NTYsNiArNTYxLDcgQEAg c3RhdGljIHZvaWQgcWVkX2xsMl9yeHFfZmx1c2goc3RydWN0IHFlZF9od2ZuICpwX2h3Zm4sIHU4 IGNvbm5lY3Rpb25faGFuZGxlKQogCXN0cnVjdCBxZWRfbGwyX2luZm8gKnBfbGwyX2Nvbm4gPSBO VUxMOwogCXN0cnVjdCBxZWRfbGwyX3J4X3BhY2tldCAqcF9wa3QgPSBOVUxMOwogCXN0cnVjdCBx ZWRfbGwyX3J4X3F1ZXVlICpwX3J4OworCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSAwOwogCiAJcF9s bDJfY29ubiA9IHFlZF9sbDJfaGFuZGxlX3Nhbml0eV9pbmFjdGl2ZShwX2h3Zm4sIGNvbm5lY3Rp b25faGFuZGxlKTsKIAlpZiAoIXBfbGwyX2Nvbm4pCkBAIC01NjMsMTMgKzU2OSwxNCBAQCBzdGF0 aWMgdm9pZCBxZWRfbGwyX3J4cV9mbHVzaChzdHJ1Y3QgcWVkX2h3Zm4gKnBfaHdmbiwgdTggY29u bmVjdGlvbl9oYW5kbGUpCiAKIAlwX3J4ID0gJnBfbGwyX2Nvbm4tPnJ4X3F1ZXVlOwogCisJc3Bp bl9sb2NrX2lycXNhdmUoJnBfcngtPmxvY2ssIGZsYWdzKTsKIAl3aGlsZSAoIWxpc3RfZW1wdHko JnBfcngtPmFjdGl2ZV9kZXNjcSkpIHsKIAkJcF9wa3QgPSBsaXN0X2ZpcnN0X2VudHJ5KCZwX3J4 LT5hY3RpdmVfZGVzY3EsCiAJCQkJCSBzdHJ1Y3QgcWVkX2xsMl9yeF9wYWNrZXQsIGxpc3RfZW50 cnkpOwogCQlpZiAoIXBfcGt0KQogCQkJYnJlYWs7Ci0KIAkJbGlzdF9tb3ZlX3RhaWwoJnBfcGt0 LT5saXN0X2VudHJ5LCAmcF9yeC0+ZnJlZV9kZXNjcSk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJnBfcngtPmxvY2ssIGZsYWdzKTsKIAogCQlpZiAocF9sbDJfY29ubi0+aW5wdXQuY29ubl90 eXBlID09IFFFRF9MTDJfVFlQRV9PT08pIHsKIAkJCXN0cnVjdCBxZWRfb29vX2J1ZmZlciAqcF9i dWZmZXI7CkBAIC01ODgsNyArNTk1LDkgQEAgc3RhdGljIHZvaWQgcWVkX2xsMl9yeHFfZmx1c2go c3RydWN0IHFlZF9od2ZuICpwX2h3Zm4sIHU4IGNvbm5lY3Rpb25faGFuZGxlKQogCQkJCQkJICAg ICAgY29va2llLAogCQkJCQkJICAgICAgcnhfYnVmX2FkZHIsIGJfbGFzdCk7CiAJCX0KKwkJc3Bp bl9sb2NrX2lycXNhdmUoJnBfcngtPmxvY2ssIGZsYWdzKTsKIAl9CisJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmcF9yeC0+bG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMgdTggcWVkX2xsMl9jb252 ZXJ0X3J4X3BhcnNlX3RvX3R4X2ZsYWdzKHUxNiBwYXJzZV9mbGFncykKLS0gCjIuMTQuMwoKCkZy b20gNWIxNWQwZTViNzU2NTQzNDhlZTA3ODk4NjBhMGYxMjliOGM2OGM3NyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTWljaGFsIEthbGRlcm9uIDxNaWNoYWwuS2FsZGVyb25AY2F2aXVt LmNvbT4KRGF0ZTogV2VkLCAxNiBNYXkgMjAxOCAxNDo0NDo0MCArMDMwMApTdWJqZWN0OiBbUEFU Q0ggMzIvMzJdIHFlZDogRml4IExMMiByYWNlIGR1cmluZyBjb25uZWN0aW9uIHRlcm1pbmF0ZQoK WyBVcHN0cmVhbSBjb21taXQgNDkwMDY4ZGVhZWYwYzc2ZTQ3YmY4OWM0NTdkZTg5OWI3ZDM5OTVj NyBdCgpTdHJlc3Mgb24gcWVkaS9xZWRyIGxvYWQgdW5sb2FkIGxlYWQgdG8gbGlzdF9kZWwgY29y cnVwdGlvbi4KVGhpcyBpcyBkdWUgdG8gbGwyIGNvbm5lY3Rpb24gdGVybWluYXRlIGZyZWVpbmcg cmVzb3VyY2VzIHdpdGhvdXQKdmVyaWZ5aW5nIHRoYXQgbm8gbW9yZSBsbDIgcHJvY2Vzc2luZyB3 aWxsIG9jY3VyLgoKVGhpcyBwYXRjaCB1bnJlZ2lzdGVycyB0aGUgbGwyIHN0YXR1cyBibG9jayBi ZWZvcmUgdGVybWluYXRpbmcKdGhlIGNvbm5lY3Rpb24gdG8gYXNzdXJlIHRoaXMgcmFjZSBkb2Vz IG5vdCBvY2N1ci4KCkZpeGVzOiAxZDZjZmY0ZmNhNDM2NiAoInFlZDogQWRkIGlTQ1NJIG91dCBv ZiBvcmRlciBwYWNrZXQgaGFuZGxpbmciKQpTaWduZWQtb2ZmLWJ5OiBBcmllbCBFbGlvciA8QXJp ZWwuRWxpb3JAY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogTWljaGFsIEthbGRlcm9uIDxNaWNo YWwuS2FsZGVyb25AY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQv cWVkX2xsMi5jIHwgMjQgKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfbGwyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9x bG9naWMvcWVkL3FlZF9sbDIuYwppbmRleCA3NzY0ZTJjYTFkZDkuLjAxNjFlMDE3NzhmMiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfbGwyLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfbGwyLmMKQEAgLTg0Miw2ICs4NDIs OSBAQCBzdGF0aWMgaW50IHFlZF9sbDJfbGJfcnhxX2NvbXBsZXRpb24oc3RydWN0IHFlZF9od2Zu ICpwX2h3Zm4sIHZvaWQgKnBfY29va2llKQogCXN0cnVjdCBxZWRfbGwyX2luZm8gKnBfbGwyX2Nv bm4gPSAoc3RydWN0IHFlZF9sbDJfaW5mbyAqKXBfY29va2llOwogCWludCByYzsKIAorCWlmICgh UUVEX0xMMl9SWF9SRUdJU1RFUkVEKHBfbGwyX2Nvbm4pKQorCQlyZXR1cm4gMDsKKwogCXJjID0g cWVkX2xsMl9sYl9yeHFfaGFuZGxlcihwX2h3Zm4sIHBfbGwyX2Nvbm4pOwogCWlmIChyYykKIAkJ cmV0dXJuIHJjOwpAQCAtODYyLDYgKzg2NSw5IEBAIHN0YXRpYyBpbnQgcWVkX2xsMl9sYl90eHFf Y29tcGxldGlvbihzdHJ1Y3QgcWVkX2h3Zm4gKnBfaHdmbiwgdm9pZCAqcF9jb29raWUpCiAJdTE2 IG5ld19pZHggPSAwLCBudW1fYmRzID0gMDsKIAlpbnQgcmM7CiAKKwlpZiAoIVFFRF9MTDJfVFhf UkVHSVNURVJFRChwX2xsMl9jb25uKSkKKwkJcmV0dXJuIDA7CisKIAluZXdfaWR4ID0gbGUxNl90 b19jcHUoKnBfdHgtPnBfZndfY29ucyk7CiAJbnVtX2JkcyA9ICgoczE2KW5ld19pZHggLSAoczE2 KXBfdHgtPmJkc19pZHgpOwogCkBAIC0xOTE1LDE3ICsxOTIxLDI1IEBAIGludCBxZWRfbGwyX3Rl cm1pbmF0ZV9jb25uZWN0aW9uKHZvaWQgKmN4dCwgdTggY29ubmVjdGlvbl9oYW5kbGUpCiAKIAkv KiBTdG9wIFR4ICYgUnggb2YgY29ubmVjdGlvbiwgaWYgbmVlZGVkICovCiAJaWYgKFFFRF9MTDJf VFhfUkVHSVNURVJFRChwX2xsMl9jb25uKSkgeworCQlwX2xsMl9jb25uLT50eF9xdWV1ZS5iX2Ni X3JlZ2lzdHJlZCA9IGZhbHNlOworCQlzbXBfd21iKCk7IC8qIE1ha2Ugc3VyZSB0aGlzIGlzIHNl ZW4gYnkgbGwyX2xiX3J4cV9jb21wbGV0aW9uICovCiAJCXJjID0gcWVkX3NwX2xsMl90eF9xdWV1 ZV9zdG9wKHBfaHdmbiwgcF9sbDJfY29ubik7CiAJCWlmIChyYykKIAkJCWdvdG8gb3V0OworCiAJ CXFlZF9sbDJfdHhxX2ZsdXNoKHBfaHdmbiwgY29ubmVjdGlvbl9oYW5kbGUpOworCQlxZWRfaW50 X3VucmVnaXN0ZXJfY2IocF9od2ZuLCBwX2xsMl9jb25uLT50eF9xdWV1ZS50eF9zYl9pbmRleCk7 CiAJfQogCiAJaWYgKFFFRF9MTDJfUlhfUkVHSVNURVJFRChwX2xsMl9jb25uKSkgeworCQlwX2xs Ml9jb25uLT5yeF9xdWV1ZS5iX2NiX3JlZ2lzdHJlZCA9IGZhbHNlOworCQlzbXBfd21iKCk7IC8q IE1ha2Ugc3VyZSB0aGlzIGlzIHNlZW4gYnkgbGwyX2xiX3J4cV9jb21wbGV0aW9uICovCiAJCXJj ID0gcWVkX3NwX2xsMl9yeF9xdWV1ZV9zdG9wKHBfaHdmbiwgcF9sbDJfY29ubik7CiAJCWlmIChy YykKIAkJCWdvdG8gb3V0OworCiAJCXFlZF9sbDJfcnhxX2ZsdXNoKHBfaHdmbiwgY29ubmVjdGlv bl9oYW5kbGUpOworCQlxZWRfaW50X3VucmVnaXN0ZXJfY2IocF9od2ZuLCBwX2xsMl9jb25uLT5y eF9xdWV1ZS5yeF9zYl9pbmRleCk7CiAJfQogCiAJaWYgKHBfbGwyX2Nvbm4tPmlucHV0LmNvbm5f dHlwZSA9PSBRRURfTEwyX1RZUEVfT09PKQpAQCAtMTk3MywxNiArMTk4Nyw2IEBAIHZvaWQgcWVk X2xsMl9yZWxlYXNlX2Nvbm5lY3Rpb24odm9pZCAqY3h0LCB1OCBjb25uZWN0aW9uX2hhbmRsZSkK IAlpZiAoIXBfbGwyX2Nvbm4pCiAJCXJldHVybjsKIAotCWlmIChRRURfTEwyX1JYX1JFR0lTVEVS RUQocF9sbDJfY29ubikpIHsKLQkJcF9sbDJfY29ubi0+cnhfcXVldWUuYl9jYl9yZWdpc3RyZWQg PSBmYWxzZTsKLQkJcWVkX2ludF91bnJlZ2lzdGVyX2NiKHBfaHdmbiwgcF9sbDJfY29ubi0+cnhf cXVldWUucnhfc2JfaW5kZXgpOwotCX0KLQotCWlmIChRRURfTEwyX1RYX1JFR0lTVEVSRUQocF9s bDJfY29ubikpIHsKLQkJcF9sbDJfY29ubi0+dHhfcXVldWUuYl9jYl9yZWdpc3RyZWQgPSBmYWxz ZTsKLQkJcWVkX2ludF91bnJlZ2lzdGVyX2NiKHBfaHdmbiwgcF9sbDJfY29ubi0+dHhfcXVldWUu dHhfc2JfaW5kZXgpOwotCX0KLQogCWtmcmVlKHBfbGwyX2Nvbm4tPnR4X3F1ZXVlLmRlc2NxX21l bSk7CiAJcWVkX2NoYWluX2ZyZWUocF9od2ZuLT5jZGV2LCAmcF9sbDJfY29ubi0+dHhfcXVldWUu dHhxX2NoYWluKTsKIAotLSAKMi4xNC4zCgo= ----Next_Part(Tue_May_22_13_49_52_2018_899)----