From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A9060C28CC0 for ; Thu, 30 May 2019 11:52:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5FEA62420A for ; Thu, 30 May 2019 11:52:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726800AbfE3Lwu (ORCPT ); Thu, 30 May 2019 07:52:50 -0400 Received: from imap1.codethink.co.uk ([176.9.8.82]:51087 "EHLO imap1.codethink.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726792AbfE3Lwu (ORCPT ); Thu, 30 May 2019 07:52:50 -0400 Received: from [167.98.27.226] (helo=xylophone) by imap1.codethink.co.uk with esmtpsa (Exim 4.84_2 #1 (Debian)) id 1hWJbq-0002Z0-5q; Thu, 30 May 2019 12:52:38 +0100 Message-ID: <1559217157.2631.17.camel@codethink.co.uk> Subject: [4.9] Security fixes From: Ben Hutchings To: Greg Kroah-Hartman , Sasha Levin Cc: stable Date: Thu, 30 May 2019 12:52:37 +0100 Organization: Codethink Ltd. Content-Type: multipart/mixed; boundary="=-IRP4Tj/QfnP6iA/vED8E" X-Mailer: Evolution 3.22.6-1+deb9u1 Mime-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org --=-IRP4Tj/QfnP6iA/vED8E Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit I've attached the following fixes to 4.9, as an mbox: - brcmfmac: add length checks in scheduled scan result handler - brcmfmac: assure SSID length from firmware is limited - brcmfmac: add subtype check for event handling in data path - binder: Replace "%p" with "%pK" for stable - binder: replace "%p" with "%pK" - fs: prevent page refcount overflow in pipe_buf_get - mm, gup: remove broken VM_BUG_ON_PAGE compound check for hugepages - mm, gup: ensure real head page is ref-counted when using hugepages - mm: prevent get_user_pages() from overflowing page refcount - mm: make page ref count overflow check tighter and more explicit - coredump: fix race condition between mmget_not_zero()/get_task_mm() and core dumping The first two "mm, gup" commits might not be strictly security fixes but the next one depends on them. Ben. -- Ben Hutchings, Software Developer   Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom --=-IRP4Tj/QfnP6iA/vED8E Content-Type: application/mbox; name="security-4.9.mbox" Content-Disposition: attachment; filename="security-4.9.mbox" Content-Transfer-Encoding: base64 RnJvbSAzNWIxYWM0YTM3Yjc4YmI5MTgyYTQ4ZGJjOTZjNThlMWVmZThiYWY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcmVuZCBWYW4gU3ByaWVsIDxhcmVuZC52YW5zcHJpZWxAYnJv YWRjb20uY29tPgpEYXRlOiBUaHUsIDYgQXByIDIwMTcgMTM6MTQ6NDAgKzAxMDAKU3ViamVjdDog W1BBVENIIDAxLzExXSBicmNtZm1hYzogYWRkIGxlbmd0aCBjaGVja3MgaW4gc2NoZWR1bGVkIHNj YW4gcmVzdWx0CiBoYW5kbGVyCgpjb21taXQgNDgzNWYzN2UzYmFmYzEzOGY4YmZhM2NiZWQyOTIw ZGQ1NmZlZDI4MyB1cHN0cmVhbS4KCkFzc3VyZSB0aGUgZXZlbnQgZGF0YSBidWZmZXIgaXMgbG9u ZyBlbm91Z2ggdG8gaG9sZCB0aGUgYXJyYXkKb2YgbmV0aW5mbyBpdGVtcyBhbmQgdGhhdCBTU0lE IGxlbmd0aCBkb2VzIG5vdCBleGNlZWQgdGhlIG1heGltdW0Kb2YgMzIgY2hhcmFjdGVycyBhcyBw ZXIgODAyLjExIHNwZWMuCgpSZXZpZXdlZC1ieTogSGFudGUgTWV1bGVtYW4gPGhhbnRlLm1ldWxl bWFuQGJyb2FkY29tLmNvbT4KUmV2aWV3ZWQtYnk6IFBpZXRlci1QYXVsIEdpZXNiZXJ0cyA8cGll dGVyLXBhdWwuZ2llc2JlcnRzQGJyb2FkY29tLmNvbT4KUmV2aWV3ZWQtYnk6IEZyYW5reSBMaW4g PGZyYW5reS5saW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBBcmVuZCB2YW4gU3ByaWVs IDxhcmVuZC52YW5zcHJpZWxAYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBLYWxsZSBWYWxv IDxrdmFsb0Bjb2RlYXVyb3JhLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0Ljk6CiAtIE1vdmUg dGhlIGFzc2lnbm1lbnQgdG8gImRhdGEiIGFsb25nIHdpdGggdGhlIGFzc2lnbm1lbnQgdG8gIm5l dGluZm9fc3RhcnQiCiAgIHRoYXQgZGVwZW5kcyBvbiBpdAogLSBBZGp1c3QgY29udGV4dCwgaW5k ZW50YXRpb25dClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbkBkZWNhZGVudC5vcmcu dWs+Ci0tLQogLi4uL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2Zn ODAyMTEuYyAgICB8IDE0ICsrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVz cy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jCmluZGV4IDUzMGY1 MjEyMDk3Mi4uMTNiMmRmZWRhMGQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9i cm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYworKysgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYwpAQCAtMzIyMCw2 ICszMjIwLDcgQEAgYnJjbWZfbm90aWZ5X3NjaGVkX3NjYW5fcmVzdWx0cyhzdHJ1Y3QgYnJjbWZf aWYgKmlmcCwKIAlzdHJ1Y3QgYnJjbWZfcG5vX3NjYW5yZXN1bHRzX2xlICpwZm5fcmVzdWx0Owog CXUzMiByZXN1bHRfY291bnQ7CiAJdTMyIHN0YXR1czsKKwl1MzIgZGF0YWxlbjsKIAogCWJyY21m X2RiZyhTQ0FOLCAiRW50ZXJcbiIpOwogCkBAIC0zMjQ1LDYgKzMyNDYsMTQgQEAgYnJjbWZfbm90 aWZ5X3NjaGVkX3NjYW5fcmVzdWx0cyhzdHJ1Y3QgYnJjbWZfaWYgKmlmcCwKIAlpZiAocmVzdWx0 X2NvdW50ID4gMCkgewogCQlpbnQgaTsKIAorCQlkYXRhICs9IHNpemVvZihzdHJ1Y3QgYnJjbWZf cG5vX3NjYW5yZXN1bHRzX2xlKTsKKwkJbmV0aW5mb19zdGFydCA9IChzdHJ1Y3QgYnJjbWZfcG5v X25ldF9pbmZvX2xlICopZGF0YTsKKwkJZGF0YWxlbiA9IGUtPmRhdGFsZW4gLSAoKHZvaWQgKilu ZXRpbmZvX3N0YXJ0IC0gKHZvaWQgKilwZm5fcmVzdWx0KTsKKwkJaWYgKGRhdGFsZW4gPCByZXN1 bHRfY291bnQgKiBzaXplb2YoKm5ldGluZm8pKSB7CisJCQlicmNtZl9lcnIoImluc3VmZmljaWVu dCBldmVudCBkYXRhXG4iKTsKKwkJCWdvdG8gb3V0X2VycjsKKwkJfQorCiAJCXJlcXVlc3QgPSBr emFsbG9jKHNpemVvZigqcmVxdWVzdCksIEdGUF9LRVJORUwpOwogCQlzc2lkID0ga2NhbGxvYyhy ZXN1bHRfY291bnQsIHNpemVvZigqc3NpZCksIEdGUF9LRVJORUwpOwogCQljaGFubmVsID0ga2Nh bGxvYyhyZXN1bHRfY291bnQsIHNpemVvZigqY2hhbm5lbCksIEdGUF9LRVJORUwpOwpAQCAtMzI1 NCw5ICszMjYzLDYgQEAgYnJjbWZfbm90aWZ5X3NjaGVkX3NjYW5fcmVzdWx0cyhzdHJ1Y3QgYnJj bWZfaWYgKmlmcCwKIAkJfQogCiAJCXJlcXVlc3QtPndpcGh5ID0gd2lwaHk7Ci0JCWRhdGEgKz0g c2l6ZW9mKHN0cnVjdCBicmNtZl9wbm9fc2NhbnJlc3VsdHNfbGUpOwotCQluZXRpbmZvX3N0YXJ0 ID0gKHN0cnVjdCBicmNtZl9wbm9fbmV0X2luZm9fbGUgKilkYXRhOwotCiAJCWZvciAoaSA9IDA7 IGkgPCByZXN1bHRfY291bnQ7IGkrKykgewogCQkJbmV0aW5mbyA9ICZuZXRpbmZvX3N0YXJ0W2ld OwogCQkJaWYgKCFuZXRpbmZvKSB7CkBAIC0zMjY2LDYgKzMyNzIsOCBAQCBicmNtZl9ub3RpZnlf c2NoZWRfc2Nhbl9yZXN1bHRzKHN0cnVjdCBicmNtZl9pZiAqaWZwLAogCQkJCWdvdG8gb3V0X2Vy cjsKIAkJCX0KIAorCQkJaWYgKG5ldGluZm8tPlNTSURfbGVuID4gSUVFRTgwMjExX01BWF9TU0lE X0xFTikKKwkJCQluZXRpbmZvLT5TU0lEX2xlbiA9IElFRUU4MDIxMV9NQVhfU1NJRF9MRU47CiAJ CQlicmNtZl9kYmcoU0NBTiwgIlNTSUQ6JXMgQ2hhbm5lbDolZFxuIiwKIAkJCQkgIG5ldGluZm8t PlNTSUQsIG5ldGluZm8tPmNoYW5uZWwpOwogCQkJbWVtY3B5KHNzaWRbaV0uc3NpZCwgbmV0aW5m by0+U1NJRCwgbmV0aW5mby0+U1NJRF9sZW4pOwotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUg RGV2ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93 d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBT dHJlZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0x IDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIDE4YTBkYzVjZDVhNTJiNzk0YWIwMDQzZDI0ODhm Mzk5YTU5YTUwNzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyZW5kIHZhbiBTcHJp ZWwgPGFyZW5kLnZhbnNwcmllbEBicm9hZGNvbS5jb20+CkRhdGU6IFRodSwgMTQgRmViIDIwMTkg MTM6NDM6NDcgKzAxMDAKU3ViamVjdDogW1BBVENIIDAyLzExXSBicmNtZm1hYzogYXNzdXJlIFNT SUQgbGVuZ3RoIGZyb20gZmlybXdhcmUgaXMgbGltaXRlZAoKY29tbWl0IDFiNWUyNDIzMTY0YjM2 NzBlOGJjOTE3NGU0NzYyZDI5Nzk5MGRlZmYgdXBzdHJlYW0uCgpUaGUgU1NJRCBsZW5ndGggYXMg cmVjZWl2ZWQgZnJvbSBmaXJtd2FyZSBzaG91bGQgbm90IGV4Y2VlZApJRUVFODAyMTFfTUFYX1NT SURfTEVOIGFzIHRoYXQgd291bGQgcmVzdWx0IGluIGhlYXAgb3ZlcmZsb3cuCgpSZXZpZXdlZC1i eTogSGFudGUgTWV1bGVtYW4gPGhhbnRlLm1ldWxlbWFuQGJyb2FkY29tLmNvbT4KUmV2aWV3ZWQt Ynk6IFBpZXRlci1QYXVsIEdpZXNiZXJ0cyA8cGlldGVyLXBhdWwuZ2llc2JlcnRzQGJyb2FkY29t LmNvbT4KUmV2aWV3ZWQtYnk6IEZyYW5reSBMaW4gPGZyYW5reS5saW5AYnJvYWRjb20uY29tPgpT aWduZWQtb2ZmLWJ5OiBBcmVuZCB2YW4gU3ByaWVsIDxhcmVuZC52YW5zcHJpZWxAYnJvYWRjb20u Y29tPgpTaWduZWQtb2ZmLWJ5OiBLYWxsZSBWYWxvIDxrdmFsb0Bjb2RlYXVyb3JhLm9yZz4KW2J3 aDogQmFja3BvcnRlZCB0byA0Ljk6IGFkanVzdCBjb250ZXh0XQpTaWduZWQtb2ZmLWJ5OiBCZW4g SHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0tCiBkcml2ZXJzL25l dC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYyB8IDIgKysK IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jCmlu ZGV4IDEzYjJkZmVkYTBkNC4uMDhkNjRlNTVlODZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYworKysgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYwpA QCAtMzU3OSw2ICszNTc5LDggQEAgYnJjbWZfd293bF9uZF9yZXN1bHRzKHN0cnVjdCBicmNtZl9p ZiAqaWZwLCBjb25zdCBzdHJ1Y3QgYnJjbWZfZXZlbnRfbXNnICplLAogCiAJZGF0YSArPSBzaXpl b2Yoc3RydWN0IGJyY21mX3Bub19zY2FucmVzdWx0c19sZSk7CiAJbmV0aW5mbyA9IChzdHJ1Y3Qg YnJjbWZfcG5vX25ldF9pbmZvX2xlICopZGF0YTsKKwlpZiAobmV0aW5mby0+U1NJRF9sZW4gPiBJ RUVFODAyMTFfTUFYX1NTSURfTEVOKQorCQluZXRpbmZvLT5TU0lEX2xlbiA9IElFRUU4MDIxMV9N QVhfU1NJRF9MRU47CiAJbWVtY3B5KGNmZy0+d293bC5uZC0+c3NpZC5zc2lkLCBuZXRpbmZvLT5T U0lELCBuZXRpbmZvLT5TU0lEX2xlbik7CiAJY2ZnLT53b3dsLm5kLT5zc2lkLnNzaWRfbGVuID0g bmV0aW5mby0+U1NJRF9sZW47CiAJY2ZnLT53b3dsLm5kLT5uX2NoYW5uZWxzID0gMTsKLS0gCkJl biBIdXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBD b2RldGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAg IERhbGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSA0NWJkOTIy YzA4ODkzMWI4ZDEzMGNiYTY2ZjFlZDI5Y2YxZjU1NTEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBBcmVuZCB2YW4gU3ByaWVsIDxhcmVuZC52YW5zcHJpZWxAYnJvYWRjb20uY29tPgpE YXRlOiBUaHUsIDE0IEZlYiAyMDE5IDEzOjQzOjQ4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8x MV0gYnJjbWZtYWM6IGFkZCBzdWJ0eXBlIGNoZWNrIGZvciBldmVudCBoYW5kbGluZyBpbiBkYXRh CiBwYXRoCgpjb21taXQgYTQxNzZlYzM1NmM3M2E0NmMwN2MxODFjNmQwNDAzOWZhZmEzNGE5ZiB1 cHN0cmVhbS4KCkZvciBVU0IgdGhlcmUgaXMgbm8gc2VwYXJhdGUgY2hhbm5lbCBiZWluZyB1c2Vk IHRvIHBhc3MgZXZlbnRzCmZyb20gZmlybXdhcmUgdG8gdGhlIGhvc3QgZHJpdmVyIGFuZCBhcyBz dWNoIGFyZSBwYXNzZWQgb3ZlciB0aGUKZGF0YSBwYXRoLiBJbiBvcmRlciB0byBkZXRlY3QgbW9j ayBldmVudCBtZXNzYWdlcyBhbiBhZGRpdGlvbmFsCmNoZWNrIGlzIG5lZWRlZCBvbiBldmVudCBz dWJ0eXBlLiBUaGlzIGNoZWNrIGlzIGFkZGVkIGNvbmRpdGlvbmFsbHkKdXNpbmcgdW5saWtlbHko KSBrZXl3b3JkLgoKUmV2aWV3ZWQtYnk6IEhhbnRlIE1ldWxlbWFuIDxoYW50ZS5tZXVsZW1hbkBi cm9hZGNvbS5jb20+ClJldmlld2VkLWJ5OiBQaWV0ZXItUGF1bCBHaWVzYmVydHMgPHBpZXRlci1w YXVsLmdpZXNiZXJ0c0Bicm9hZGNvbS5jb20+ClJldmlld2VkLWJ5OiBGcmFua3kgTGluIDxmcmFu a3kubGluQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogQXJlbmQgdmFuIFNwcmllbCA8YXJl bmQudmFuc3ByaWVsQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogS2FsbGUgVmFsbyA8a3Zh bG9AY29kZWF1cm9yYS5vcmc+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRj aGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29t L2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMgIHwgIDUgKysrLS0KIGRyaXZlcnMvbmV0L3dpcmVs ZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmggIHwgMTYgKysrKysrKysrKysr LS0tLQogLi4uL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvbXNnYnVm LmMgICAgfCAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204 MDIxMS9icmNtZm1hYy9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNt ODAyMTEvYnJjbWZtYWMvY29yZS5jCmluZGV4IGY4NzczMDFjOTQ1NC4uZTU0NzY1MWM5YTI5IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZt YWMvY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9i cmNtZm1hYy9jb3JlLmMKQEAgLTMzOSw3ICszMzksOCBAQCB2b2lkIGJyY21mX3J4X2ZyYW1lKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBoYW5kbGVfZXZlbnQp CiAJfSBlbHNlIHsKIAkJLyogUHJvY2VzcyBzcGVjaWFsIGV2ZW50IHBhY2tldHMgKi8KIAkJaWYg KGhhbmRsZV9ldmVudCkKLQkJCWJyY21mX2Z3ZWhfcHJvY2Vzc19za2IoaWZwLT5kcnZyLCBza2Ip OworCQkJYnJjbWZfZndlaF9wcm9jZXNzX3NrYihpZnAtPmRydnIsIHNrYiwKKwkJCQkJICAgICAg IEJDTUlMQ1BfU1VCVFlQRV9WRU5ET1JfTE9ORyk7CiAKIAkJYnJjbWZfbmV0aWZfcngoaWZwLCBz a2IpOwogCX0KQEAgLTM1Niw3ICszNTcsNyBAQCB2b2lkIGJyY21mX3J4X2V2ZW50KHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlpZiAoYnJjbWZfcnhfaGRycHVsbChk cnZyLCBza2IsICZpZnApKQogCQlyZXR1cm47CiAKLQlicmNtZl9md2VoX3Byb2Nlc3Nfc2tiKGlm cC0+ZHJ2ciwgc2tiKTsKKwlicmNtZl9md2VoX3Byb2Nlc3Nfc2tiKGlmcC0+ZHJ2ciwgc2tiLCAw KTsKIAlicmNtdV9wa3RfYnVmX2ZyZWVfc2tiKHNrYik7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmggYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5oCmluZGV4 IDI2ZmY1YTk2NDhmMy4uOWNkMTEyZWY4N2Q3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJl bGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5oCisrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmgKQEAgLTE4MSw3ICsx ODEsNyBAQCBlbnVtIGJyY21mX2Z3ZWhfZXZlbnRfY29kZSB7CiAgKi8KICNkZWZpbmUgQlJDTV9P VUkJCQkJIlx4MDBceDEwXHgxOCIKICNkZWZpbmUgQkNNSUxDUF9CQ01fU1VCVFlQRV9FVkVOVAkJ MQotCisjZGVmaW5lIEJDTUlMQ1BfU1VCVFlQRV9WRU5ET1JfTE9ORwkJMzI3NjkKIAogLyoqCiAg KiBzdHJ1Y3QgYnJjbV9ldGhoZHIgLSBicm9hZGNvbSBzcGVjaWZpYyBldGhlciBoZWFkZXIuCkBA IC0zMDIsMTAgKzMwMiwxMCBAQCB2b2lkIGJyY21mX2Z3ZWhfcHJvY2Vzc19ldmVudChzdHJ1Y3Qg YnJjbWZfcHViICpkcnZyLAogdm9pZCBicmNtZl9md2VoX3AycGRldl9zZXR1cChzdHJ1Y3QgYnJj bWZfaWYgKmlmcCwgYm9vbCBvbmdvaW5nKTsKIAogc3RhdGljIGlubGluZSB2b2lkIGJyY21mX2Z3 ZWhfcHJvY2Vzc19za2Ioc3RydWN0IGJyY21mX3B1YiAqZHJ2ciwKLQkJCQkJICBzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQorCQkJCQkgIHN0cnVjdCBza19idWZmICpza2IsIHUxNiBzdHlwZSkKIHsKIAlz dHJ1Y3QgYnJjbWZfZXZlbnQgKmV2ZW50X3BhY2tldDsKLQl1MTYgdXNyX3N0eXBlOworCXUxNiBz dWJ0eXBlLCB1c3Jfc3R5cGU7CiAKIAkvKiBvbmx5IHByb2Nlc3MgZXZlbnRzIHdoZW4gcHJvdG9j b2wgbWF0Y2hlcyAqLwogCWlmIChza2ItPnByb3RvY29sICE9IGNwdV90b19iZTE2KEVUSF9QX0xJ TktfQ1RMKSkKQEAgLTMxNCw4ICszMTQsMTYgQEAgc3RhdGljIGlubGluZSB2b2lkIGJyY21mX2Z3 ZWhfcHJvY2Vzc19za2Ioc3RydWN0IGJyY21mX3B1YiAqZHJ2ciwKIAlpZiAoKHNrYi0+bGVuICsg RVRIX0hMRU4pIDwgc2l6ZW9mKCpldmVudF9wYWNrZXQpKQogCQlyZXR1cm47CiAKLQkvKiBjaGVj ayBmb3IgQlJDTSBvdWkgbWF0Y2ggKi8KIAlldmVudF9wYWNrZXQgPSAoc3RydWN0IGJyY21mX2V2 ZW50ICopc2tiX21hY19oZWFkZXIoc2tiKTsKKworCS8qIGNoZWNrIHN1YnR5cGUgaWYgbmVlZGVk ICovCisJaWYgKHVubGlrZWx5KHN0eXBlKSkgeworCQlzdWJ0eXBlID0gZ2V0X3VuYWxpZ25lZF9i ZTE2KCZldmVudF9wYWNrZXQtPmhkci5zdWJ0eXBlKTsKKwkJaWYgKHN1YnR5cGUgIT0gc3R5cGUp CisJCQlyZXR1cm47CisJfQorCisJLyogY2hlY2sgZm9yIEJSQ00gb3VpIG1hdGNoICovCiAJaWYg KG1lbWNtcChCUkNNX09VSSwgJmV2ZW50X3BhY2tldC0+aGRyLm91aVswXSwKIAkJICAgc2l6ZW9m KGV2ZW50X3BhY2tldC0+aGRyLm91aSkpKQogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvbXNnYnVmLmMgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvbXNnYnVmLmMKaW5k ZXggMmI5YTJiYzQyOWQ2Li5hYjlmMTM2YzE1OTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9tc2didWYuYworKysgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvbXNnYnVmLmMKQEAgLTEx MTQsNyArMTExNCw3IEBAIHN0YXRpYyB2b2lkIGJyY21mX21zZ2J1Zl9wcm9jZXNzX2V2ZW50KHN0 cnVjdCBicmNtZl9tc2didWYgKm1zZ2J1Ziwgdm9pZCAqYnVmKQogCiAJc2tiLT5wcm90b2NvbCA9 IGV0aF90eXBlX3RyYW5zKHNrYiwgaWZwLT5uZGV2KTsKIAotCWJyY21mX2Z3ZWhfcHJvY2Vzc19z a2IoaWZwLT5kcnZyLCBza2IpOworCWJyY21mX2Z3ZWhfcHJvY2Vzc19za2IoaWZwLT5kcnZyLCBz a2IsIDApOwogCiBleGl0OgogCWJyY211X3BrdF9idWZfZnJlZV9za2Ioc2tiKTsKLS0gCkJlbiBI dXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2Rl dGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERh bGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSA0OTg4ZmJlM2Ez NmFkOWI1OWM4YTkxYTMxM2ZiNWNjOGVjZmNjYWNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KRGF0ZTog V2VkLCAyOSBNYXkgMjAxOSAxODowMjo0NCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTFdIGJp bmRlcjogUmVwbGFjZSAiJXAiIHdpdGggIiVwSyIgZm9yIHN0YWJsZQoKVGhpcyB3YXMgZG9uZSBh cyBwYXJ0IG9mIHVwc3RyZWFtIGNvbW1pdHMgZmRmYjRhOTliNmFiICI4aW5kZXI6CnNlcGFyYXRl IGJpbmRlciBhbGxvY2F0b3Igc3RydWN0dXJlIGZyb20gYmluZGVyIHByb2MiLCAxOWM5ODcyNDFj YTEKImJpbmRlcjogc2VwYXJhdGUgb3V0IGJpbmRlcl9hbGxvYyBmdW5jdGlvbnMiLCBhbmQgN2E0 NDA4YzZiZDNlCiJiaW5kZXI6IG1ha2Ugc3VyZSBhY2Nlc3NlcyB0byBwcm9jL3RocmVhZCBhcmUg c2FmZSIuICBIb3dldmVyLCB0aG9zZQpjb21taXRzIG1hZGUgbG90cyBvZiBvdGhlciBjaGFuZ2Vz IHRoYXQgYXJlIG5vdCBzdWl0YWJsZSBmb3Igc3RhYmxlLgoKU2lnbmVkLW9mZi1ieTogQmVuIEh1 dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZHJpdmVycy9hbmRy b2lkL2JpbmRlci5jIHwgMjggKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvYW5kcm9pZC9iaW5kZXIuYyBiL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXIuYwppbmRleCA4 MDQ5OWY0MjFhMjkuLmI4Y2UwMzU4MzZiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hbmRyb2lkL2Jp bmRlci5jCisrKyBiL2RyaXZlcnMvYW5kcm9pZC9iaW5kZXIuYwpAQCAtNDg4LDcgKzQ4OCw3IEBA IHN0YXRpYyB2b2lkIGJpbmRlcl9pbnNlcnRfZnJlZV9idWZmZXIoc3RydWN0IGJpbmRlcl9wcm9j ICpwcm9jLAogCW5ld19idWZmZXJfc2l6ZSA9IGJpbmRlcl9idWZmZXJfc2l6ZShwcm9jLCBuZXdf YnVmZmVyKTsKIAogCWJpbmRlcl9kZWJ1ZyhCSU5ERVJfREVCVUdfQlVGRkVSX0FMTE9DLAotCQkg ICAgICIlZDogYWRkIGZyZWUgYnVmZmVyLCBzaXplICV6ZCwgYXQgJXBcbiIsCisJCSAgICAgIiVk OiBhZGQgZnJlZSBidWZmZXIsIHNpemUgJXpkLCBhdCAlcEtcbiIsCiAJCSAgICAgIHByb2MtPnBp ZCwgbmV3X2J1ZmZlcl9zaXplLCBuZXdfYnVmZmVyKTsKIAogCXdoaWxlICgqcCkgewpAQCAtNTY2 LDcgKzU2Niw3IEBAIHN0YXRpYyBpbnQgYmluZGVyX3VwZGF0ZV9wYWdlX3JhbmdlKHN0cnVjdCBi aW5kZXJfcHJvYyAqcHJvYywgaW50IGFsbG9jYXRlLAogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOwog CiAJYmluZGVyX2RlYnVnKEJJTkRFUl9ERUJVR19CVUZGRVJfQUxMT0MsCi0JCSAgICAgIiVkOiAl cyBwYWdlcyAlcC0lcFxuIiwgcHJvYy0+cGlkLAorCQkgICAgICIlZDogJXMgcGFnZXMgJXBLLSVw S1xuIiwgcHJvYy0+cGlkLAogCQkgICAgIGFsbG9jYXRlID8gImFsbG9jYXRlIiA6ICJmcmVlIiwg c3RhcnQsIGVuZCk7CiAKIAlpZiAoZW5kIDw9IHN0YXJ0KQpAQCAtNjA2LDcgKzYwNiw3IEBAIHN0 YXRpYyBpbnQgYmluZGVyX3VwZGF0ZV9wYWdlX3JhbmdlKHN0cnVjdCBiaW5kZXJfcHJvYyAqcHJv YywgaW50IGFsbG9jYXRlLAogCQlCVUdfT04oKnBhZ2UpOwogCQkqcGFnZSA9IGFsbG9jX3BhZ2Uo R0ZQX0tFUk5FTCB8IF9fR0ZQX0hJR0hNRU0gfCBfX0dGUF9aRVJPKTsKIAkJaWYgKCpwYWdlID09 IE5VTEwpIHsKLQkJCXByX2VycigiJWQ6IGJpbmRlcl9hbGxvY19idWYgZmFpbGVkIGZvciBwYWdl IGF0ICVwXG4iLAorCQkJcHJfZXJyKCIlZDogYmluZGVyX2FsbG9jX2J1ZiBmYWlsZWQgZm9yIHBh Z2UgYXQgJXBLXG4iLAogCQkJCXByb2MtPnBpZCwgcGFnZV9hZGRyKTsKIAkJCWdvdG8gZXJyX2Fs bG9jX3BhZ2VfZmFpbGVkOwogCQl9CkBAIC02MTUsNyArNjE1LDcgQEAgc3RhdGljIGludCBiaW5k ZXJfdXBkYXRlX3BhZ2VfcmFuZ2Uoc3RydWN0IGJpbmRlcl9wcm9jICpwcm9jLCBpbnQgYWxsb2Nh dGUsCiAJCWZsdXNoX2NhY2hlX3ZtYXAoKHVuc2lnbmVkIGxvbmcpcGFnZV9hZGRyLAogCQkJCSh1 bnNpZ25lZCBsb25nKXBhZ2VfYWRkciArIFBBR0VfU0laRSk7CiAJCWlmIChyZXQgIT0gMSkgewot CQkJcHJfZXJyKCIlZDogYmluZGVyX2FsbG9jX2J1ZiBmYWlsZWQgdG8gbWFwIHBhZ2UgYXQgJXAg aW4ga2VybmVsXG4iLAorCQkJcHJfZXJyKCIlZDogYmluZGVyX2FsbG9jX2J1ZiBmYWlsZWQgdG8g bWFwIHBhZ2UgYXQgJXBLIGluIGtlcm5lbFxuIiwKIAkJCSAgICAgICBwcm9jLT5waWQsIHBhZ2Vf YWRkcik7CiAJCQlnb3RvIGVycl9tYXBfa2VybmVsX2ZhaWxlZDsKIAkJfQpAQCAtNzE5LDcgKzcx OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgYmluZGVyX2J1ZmZlciAqYmluZGVyX2FsbG9jX2J1ZihzdHJ1 Y3QgYmluZGVyX3Byb2MgKnByb2MsCiAJfQogCiAJYmluZGVyX2RlYnVnKEJJTkRFUl9ERUJVR19C VUZGRVJfQUxMT0MsCi0JCSAgICAgIiVkOiBiaW5kZXJfYWxsb2NfYnVmIHNpemUgJXpkIGdvdCBi dWZmZXIgJXAgc2l6ZSAlemRcbiIsCisJCSAgICAgIiVkOiBiaW5kZXJfYWxsb2NfYnVmIHNpemUg JXpkIGdvdCBidWZmZXIgJXBLIHNpemUgJXpkXG4iLAogCQkgICAgICBwcm9jLT5waWQsIHNpemUs IGJ1ZmZlciwgYnVmZmVyX3NpemUpOwogCiAJaGFzX3BhZ2VfYWRkciA9CkBAIC03NDksNyArNzQ5 LDcgQEAgc3RhdGljIHN0cnVjdCBiaW5kZXJfYnVmZmVyICpiaW5kZXJfYWxsb2NfYnVmKHN0cnVj dCBiaW5kZXJfcHJvYyAqcHJvYywKIAkJYmluZGVyX2luc2VydF9mcmVlX2J1ZmZlcihwcm9jLCBu ZXdfYnVmZmVyKTsKIAl9CiAJYmluZGVyX2RlYnVnKEJJTkRFUl9ERUJVR19CVUZGRVJfQUxMT0Ms Ci0JCSAgICAgIiVkOiBiaW5kZXJfYWxsb2NfYnVmIHNpemUgJXpkIGdvdCAlcFxuIiwKKwkJICAg ICAiJWQ6IGJpbmRlcl9hbGxvY19idWYgc2l6ZSAlemQgZ290ICVwS1xuIiwKIAkJICAgICAgcHJv Yy0+cGlkLCBzaXplLCBidWZmZXIpOwogCWJ1ZmZlci0+ZGF0YV9zaXplID0gZGF0YV9zaXplOwog CWJ1ZmZlci0+b2Zmc2V0c19zaXplID0gb2Zmc2V0c19zaXplOwpAQCAtNzg5LDcgKzc4OSw3IEBA IHN0YXRpYyB2b2lkIGJpbmRlcl9kZWxldGVfZnJlZV9idWZmZXIoc3RydWN0IGJpbmRlcl9wcm9j ICpwcm9jLAogCQlpZiAoYnVmZmVyX2VuZF9wYWdlKHByZXYpID09IGJ1ZmZlcl9lbmRfcGFnZShi dWZmZXIpKQogCQkJZnJlZV9wYWdlX2VuZCA9IDA7CiAJCWJpbmRlcl9kZWJ1ZyhCSU5ERVJfREVC VUdfQlVGRkVSX0FMTE9DLAotCQkJICAgICAiJWQ6IG1lcmdlIGZyZWUsIGJ1ZmZlciAlcCBzaGFy ZSBwYWdlIHdpdGggJXBcbiIsCisJCQkgICAgICIlZDogbWVyZ2UgZnJlZSwgYnVmZmVyICVwSyBz aGFyZSBwYWdlIHdpdGggJXBLXG4iLAogCQkJICAgICAgcHJvYy0+cGlkLCBidWZmZXIsIHByZXYp OwogCX0KIApAQCAtODAyLDE0ICs4MDIsMTQgQEAgc3RhdGljIHZvaWQgYmluZGVyX2RlbGV0ZV9m cmVlX2J1ZmZlcihzdHJ1Y3QgYmluZGVyX3Byb2MgKnByb2MsCiAJCQkgICAgYnVmZmVyX3N0YXJ0 X3BhZ2UoYnVmZmVyKSkKIAkJCQlmcmVlX3BhZ2Vfc3RhcnQgPSAwOwogCQkJYmluZGVyX2RlYnVn KEJJTkRFUl9ERUJVR19CVUZGRVJfQUxMT0MsCi0JCQkJICAgICAiJWQ6IG1lcmdlIGZyZWUsIGJ1 ZmZlciAlcCBzaGFyZSBwYWdlIHdpdGggJXBcbiIsCisJCQkJICAgICAiJWQ6IG1lcmdlIGZyZWUs IGJ1ZmZlciAlcEsgc2hhcmUgcGFnZSB3aXRoICVwS1xuIiwKIAkJCQkgICAgICBwcm9jLT5waWQs IGJ1ZmZlciwgcHJldik7CiAJCX0KIAl9CiAJbGlzdF9kZWwoJmJ1ZmZlci0+ZW50cnkpOwogCWlm IChmcmVlX3BhZ2Vfc3RhcnQgfHwgZnJlZV9wYWdlX2VuZCkgewogCQliaW5kZXJfZGVidWcoQklO REVSX0RFQlVHX0JVRkZFUl9BTExPQywKLQkJCSAgICAgIiVkOiBtZXJnZSBmcmVlLCBidWZmZXIg JXAgZG8gbm90IHNoYXJlIHBhZ2UlcyVzIHdpdGggJXAgb3IgJXBcbiIsCisJCQkgICAgICIlZDog bWVyZ2UgZnJlZSwgYnVmZmVyICVwSyBkbyBub3Qgc2hhcmUgcGFnZSVzJXMgd2l0aCAlcEsgb3Ig JXBLXG4iLAogCQkJICAgICBwcm9jLT5waWQsIGJ1ZmZlciwgZnJlZV9wYWdlX3N0YXJ0ID8gIiIg OiAiIGVuZCIsCiAJCQkgICAgIGZyZWVfcGFnZV9lbmQgPyAiIiA6ICIgc3RhcnQiLCBwcmV2LCBu ZXh0KTsKIAkJYmluZGVyX3VwZGF0ZV9wYWdlX3JhbmdlKHByb2MsIDAsIGZyZWVfcGFnZV9zdGFy dCA/CkBAIC04MzAsNyArODMwLDcgQEAgc3RhdGljIHZvaWQgYmluZGVyX2ZyZWVfYnVmKHN0cnVj dCBiaW5kZXJfcHJvYyAqcHJvYywKIAkJQUxJR04oYnVmZmVyLT5vZmZzZXRzX3NpemUsIHNpemVv Zih2b2lkICopKTsKIAogCWJpbmRlcl9kZWJ1ZyhCSU5ERVJfREVCVUdfQlVGRkVSX0FMTE9DLAot CQkgICAgICIlZDogYmluZGVyX2ZyZWVfYnVmICVwIHNpemUgJXpkIGJ1ZmZlcl9zaXplICV6ZFxu IiwKKwkJICAgICAiJWQ6IGJpbmRlcl9mcmVlX2J1ZiAlcEsgc2l6ZSAlemQgYnVmZmVyX3NpemUg JXpkXG4iLAogCQkgICAgICBwcm9jLT5waWQsIGJ1ZmZlciwgc2l6ZSwgYnVmZmVyX3NpemUpOwog CiAJQlVHX09OKGJ1ZmZlci0+ZnJlZSk7CkBAIC0yOTMwLDcgKzI5MzAsNyBAQCBzdGF0aWMgaW50 IGJpbmRlcl9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSkKICNpZmRlZiBDT05GSUdfQ1BVX0NBQ0hFX1ZJUFQKIAlpZiAoY2FjaGVfaXNfdmlwdF9hbGlh c2luZygpKSB7CiAJCXdoaWxlIChDQUNIRV9DT0xPVVIoKHZtYS0+dm1fc3RhcnQgXiAodWludDMy X3QpcHJvYy0+YnVmZmVyKSkpIHsKLQkJCXByX2luZm8oImJpbmRlcl9tbWFwOiAlZCAlbHgtJWx4 IG1hcHMgJXAgYmFkIGFsaWdubWVudFxuIiwgcHJvYy0+cGlkLCB2bWEtPnZtX3N0YXJ0LCB2bWEt PnZtX2VuZCwgcHJvYy0+YnVmZmVyKTsKKwkJCXByX2luZm8oImJpbmRlcl9tbWFwOiAlZCAlbHgt JWx4IG1hcHMgJXBLIGJhZCBhbGlnbm1lbnRcbiIsIHByb2MtPnBpZCwgdm1hLT52bV9zdGFydCwg dm1hLT52bV9lbmQsIHByb2MtPmJ1ZmZlcik7CiAJCQl2bWEtPnZtX3N0YXJ0ICs9IFBBR0VfU0la RTsKIAkJfQogCX0KQEAgLTMxOTEsNyArMzE5MSw3IEBAIHN0YXRpYyB2b2lkIGJpbmRlcl9kZWZl cnJlZF9yZWxlYXNlKHN0cnVjdCBiaW5kZXJfcHJvYyAqcHJvYykKIAogCQkJcGFnZV9hZGRyID0g cHJvYy0+YnVmZmVyICsgaSAqIFBBR0VfU0laRTsKIAkJCWJpbmRlcl9kZWJ1ZyhCSU5ERVJfREVC VUdfQlVGRkVSX0FMTE9DLAotCQkJCSAgICAgIiVzOiAlZDogcGFnZSAlZCBhdCAlcCBub3QgZnJl ZWRcbiIsCisJCQkJICAgICAiJXM6ICVkOiBwYWdlICVkIGF0ICVwSyBub3QgZnJlZWRcbiIsCiAJ CQkJICAgICBfX2Z1bmNfXywgcHJvYy0+cGlkLCBpLCBwYWdlX2FkZHIpOwogCQkJdW5tYXBfa2Vy bmVsX3JhbmdlKCh1bnNpZ25lZCBsb25nKXBhZ2VfYWRkciwgUEFHRV9TSVpFKTsKIAkJCV9fZnJl ZV9wYWdlKHByb2MtPnBhZ2VzW2ldKTsKQEAgLTMyOTQsNyArMzI5NCw3IEBAIHN0YXRpYyB2b2lk IHByaW50X2JpbmRlcl90cmFuc2FjdGlvbihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIg KnByZWZpeCwKIHN0YXRpYyB2b2lkIHByaW50X2JpbmRlcl9idWZmZXIoc3RydWN0IHNlcV9maWxl ICptLCBjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJc3RydWN0IGJpbmRlcl9idWZmZXIgKmJ1ZmZl cikKIHsKLQlzZXFfcHJpbnRmKG0sICIlcyAlZDogJXAgc2l6ZSAlemQ6JXpkICVzXG4iLAorCXNl cV9wcmludGYobSwgIiVzICVkOiAlcEsgc2l6ZSAlemQ6JXpkICVzXG4iLAogCQkgICBwcmVmaXgs IGJ1ZmZlci0+ZGVidWdfaWQsIGJ1ZmZlci0+ZGF0YSwKIAkJICAgYnVmZmVyLT5kYXRhX3NpemUs IGJ1ZmZlci0+b2Zmc2V0c19zaXplLAogCQkgICBidWZmZXItPnRyYW5zYWN0aW9uID8gImFjdGl2 ZSIgOiAiZGVsaXZlcmVkIik7CkBAIC0zMzk3LDcgKzMzOTcsNyBAQCBzdGF0aWMgdm9pZCBwcmlu dF9iaW5kZXJfbm9kZShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBiaW5kZXJfbm9kZSAqbm9k ZSkKIAogc3RhdGljIHZvaWQgcHJpbnRfYmluZGVyX3JlZihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0 cnVjdCBiaW5kZXJfcmVmICpyZWYpCiB7Ci0Jc2VxX3ByaW50ZihtLCAiICByZWYgJWQ6IGRlc2Mg JWQgJXNub2RlICVkIHMgJWQgdyAlZCBkICVwXG4iLAorCXNlcV9wcmludGYobSwgIiAgcmVmICVk OiBkZXNjICVkICVzbm9kZSAlZCBzICVkIHcgJWQgZCAlcEtcbiIsCiAJCSAgIHJlZi0+ZGVidWdf aWQsIHJlZi0+ZGVzYywgcmVmLT5ub2RlLT5wcm9jID8gIiIgOiAiZGVhZCAiLAogCQkgICByZWYt Pm5vZGUtPmRlYnVnX2lkLCByZWYtPnN0cm9uZywgcmVmLT53ZWFrLCByZWYtPmRlYXRoKTsKIH0K LS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAgICAg ICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAg ICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSBm YmZmZGM2MGEzNDY1MDkxZDFmOWM3Nzc5YTQzMDRhMWFhNDQxZDRkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBUb2RkIEtqb3MgPHRram9zQGFuZHJvaWQuY29tPgpEYXRlOiBXZWQsIDcg RmViIDIwMTggMTM6NTc6MzcgLTA4MDAKU3ViamVjdDogW1BBVENIIDA1LzExXSBiaW5kZXI6IHJl cGxhY2UgIiVwIiB3aXRoICIlcEsiCgpjb21taXQgOGNhODZmMTYzOWVjNTg5MGQ0MDBmZmY5MjEx YWNhMjJkMGEzOTJlYiB1cHN0cmVhbS4KClRoZSBmb3JtYXQgc3BlY2lmaWVyICIlcCIgY2FuIGxl YWsga2VybmVsIGFkZHJlc3Nlcy4gVXNlCiIlcEsiIGluc3RlYWQuIFRoZXJlIHdlcmUgNCByZW1h aW5pbmcgY2FzZXMgaW4gYmluZGVyLmMuCgpTaWduZWQtb2ZmLWJ5OiBUb2RkIEtqb3MgPHRram9z QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxp bnV4Zm91bmRhdGlvbi5vcmc+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC45OiBhZGp1c3QgY29udGV4 dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsu Y28udWs+Ci0tLQogZHJpdmVycy9hbmRyb2lkL2JpbmRlci5jIHwgOCArKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2FuZHJvaWQvYmluZGVyLmMgYi9kcml2ZXJzL2FuZHJvaWQvYmluZGVyLmMKaW5kZXgg YjhjZTAzNTgzNmJlLi4yOTYzMmE2ZGQxYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYW5kcm9pZC9i aW5kZXIuYworKysgYi9kcml2ZXJzL2FuZHJvaWQvYmluZGVyLmMKQEAgLTEyNjAsNyArMTI2MCw3 IEBAIHN0YXRpYyB2b2lkIGJpbmRlcl90cmFuc2FjdGlvbl9idWZmZXJfcmVsZWFzZShzdHJ1Y3Qg YmluZGVyX3Byb2MgKnByb2MsCiAJaW50IGRlYnVnX2lkID0gYnVmZmVyLT5kZWJ1Z19pZDsKIAog CWJpbmRlcl9kZWJ1ZyhCSU5ERVJfREVCVUdfVFJBTlNBQ1RJT04sCi0JCSAgICAgIiVkIGJ1ZmZl ciByZWxlYXNlICVkLCBzaXplICV6ZC0lemQsIGZhaWxlZCBhdCAlcFxuIiwKKwkJICAgICAiJWQg YnVmZmVyIHJlbGVhc2UgJWQsIHNpemUgJXpkLSV6ZCwgZmFpbGVkIGF0ICVwS1xuIiwKIAkJICAg ICBwcm9jLT5waWQsIGJ1ZmZlci0+ZGVidWdfaWQsCiAJCSAgICAgYnVmZmVyLT5kYXRhX3NpemUs IGJ1ZmZlci0+b2Zmc2V0c19zaXplLCBmYWlsZWRfYXQpOwogCkBAIC0yMTIzLDcgKzIxMjMsNyBA QCBzdGF0aWMgaW50IGJpbmRlcl90aHJlYWRfd3JpdGUoc3RydWN0IGJpbmRlcl9wcm9jICpwcm9j LAogCQkJCX0KIAkJCX0KIAkJCWJpbmRlcl9kZWJ1ZyhCSU5ERVJfREVCVUdfREVBRF9CSU5ERVIs Ci0JCQkJICAgICAiJWQ6JWQgQkNfREVBRF9CSU5ERVJfRE9ORSAlMDE2bGx4IGZvdW5kICVwXG4i LAorCQkJCSAgICAgIiVkOiVkIEJDX0RFQURfQklOREVSX0RPTkUgJTAxNmxseCBmb3VuZCAlcEtc biIsCiAJCQkJICAgICBwcm9jLT5waWQsIHRocmVhZC0+cGlkLCAodTY0KWNvb2tpZSwKIAkJCQkg ICAgIGRlYXRoKTsKIAkJCWlmIChkZWF0aCA9PSBOVUxMKSB7CkBAIC0zMjcyLDcgKzMyNzIsNyBA QCBzdGF0aWMgdm9pZCBwcmludF9iaW5kZXJfdHJhbnNhY3Rpb24oc3RydWN0IHNlcV9maWxlICpt LCBjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJICAgICBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9u ICp0KQogewogCXNlcV9wcmludGYobSwKLQkJICAgIiVzICVkOiAlcCBmcm9tICVkOiVkIHRvICVk OiVkIGNvZGUgJXggZmxhZ3MgJXggcHJpICVsZCByJWQiLAorCQkgICAiJXMgJWQ6ICVwSyBmcm9t ICVkOiVkIHRvICVkOiVkIGNvZGUgJXggZmxhZ3MgJXggcHJpICVsZCByJWQiLAogCQkgICBwcmVm aXgsIHQtPmRlYnVnX2lkLCB0LAogCQkgICB0LT5mcm9tID8gdC0+ZnJvbS0+cHJvYy0+cGlkIDog MCwKIAkJICAgdC0+ZnJvbSA/IHQtPmZyb20tPnBpZCA6IDAsCkBAIC0zMjg2LDcgKzMyODYsNyBA QCBzdGF0aWMgdm9pZCBwcmludF9iaW5kZXJfdHJhbnNhY3Rpb24oc3RydWN0IHNlcV9maWxlICpt LCBjb25zdCBjaGFyICpwcmVmaXgsCiAJaWYgKHQtPmJ1ZmZlci0+dGFyZ2V0X25vZGUpCiAJCXNl cV9wcmludGYobSwgIiBub2RlICVkIiwKIAkJCSAgIHQtPmJ1ZmZlci0+dGFyZ2V0X25vZGUtPmRl YnVnX2lkKTsKLQlzZXFfcHJpbnRmKG0sICIgc2l6ZSAlemQ6JXpkIGRhdGEgJXBcbiIsCisJc2Vx X3ByaW50ZihtLCAiIHNpemUgJXpkOiV6ZCBkYXRhICVwS1xuIiwKIAkJICAgdC0+YnVmZmVyLT5k YXRhX3NpemUsIHQtPmJ1ZmZlci0+b2Zmc2V0c19zaXplLAogCQkgICB0LT5idWZmZXItPmRhdGEp OwogfQotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAg ICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAg ICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpG cm9tIGZjODY3Mzg0YjIxNWVhNjA3OGYxZDQ4YjVkY2VhNTM2NTYxYmJmNTEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE1hdHRoZXcgV2lsY294IDx3aWxseUBpbmZyYWRlYWQub3JnPgpE YXRlOiBGcmksIDUgQXByIDIwMTkgMTQ6MDI6MTAgLTA3MDAKU3ViamVjdDogW1BBVENIIDA2LzEx XSBmczogcHJldmVudCBwYWdlIHJlZmNvdW50IG92ZXJmbG93IGluIHBpcGVfYnVmX2dldAoKY29t bWl0IDE1ZmFiNjNlMWU1N2JlOWZkYjVlZWMxYmJjNTkxNmU5ODI1ZTlhY2IgdXBzdHJlYW0uCgpD aGFuZ2UgcGlwZV9idWZfZ2V0KCkgdG8gcmV0dXJuIGEgYm9vbCBpbmRpY2F0aW5nIHdoZXRoZXIg aXQgc3VjY2VlZGVkCmluIHJhaXNpbmcgdGhlIHJlZmNvdW50IG9mIHRoZSBwYWdlIChpZiB0aGUg dGhpbmcgaW4gdGhlIHBpcGUgaXMgYSBwYWdlKS4KVGhpcyByZW1vdmVzIGFub3RoZXIgbWVjaGFu aXNtIGZvciBvdmVyZmxvd2luZyB0aGUgcGFnZSByZWZjb3VudC4gIEFsbApjYWxsZXJzIGNvbnZl cnRlZCB0byBoYW5kbGUgYSBmYWlsdXJlLgoKUmVwb3J0ZWQtYnk6IEphbm4gSG9ybiA8amFubmhA Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0dGhldyBXaWxjb3ggPHdpbGx5QGluZnJhZGVh ZC5vcmc+ClNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3Vu ZGF0aW9uLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0Ljk6IGFkanVzdCBjb250ZXh0XQpTaWdu ZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4K LS0tCiBmcy9mdXNlL2Rldi5jICAgICAgICAgICAgIHwgMTIgKysrKysrLS0tLS0tCiBmcy9waXBl LmMgICAgICAgICAgICAgICAgIHwgIDQgKystLQogZnMvc3BsaWNlLmMgICAgICAgICAgICAgICB8 IDEyICsrKysrKysrKystLQogaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaCB8IDEwICsrKysrKy0t LS0KIGtlcm5lbC90cmFjZS90cmFjZS5jICAgICAgfCAgNiArKysrKy0KIDUgZmlsZXMgY2hhbmdl ZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZnVz ZS9kZXYuYyBiL2ZzL2Z1c2UvZGV2LmMKaW5kZXggNDExZjE2MTAxZDFhLi5lYWVkYmMxYTNlOTUg MTAwNjQ0Ci0tLSBhL2ZzL2Z1c2UvZGV2LmMKKysrIGIvZnMvZnVzZS9kZXYuYwpAQCAtMTk3NSwx MCArMTk3NSw4IEBAIHN0YXRpYyBzc2l6ZV90IGZ1c2VfZGV2X3NwbGljZV93cml0ZShzdHJ1Y3Qg cGlwZV9pbm9kZV9pbmZvICpwaXBlLAogCQlyZW0gKz0gcGlwZS0+YnVmc1socGlwZS0+Y3VyYnVm ICsgaWR4KSAmIChwaXBlLT5idWZmZXJzIC0gMSldLmxlbjsKIAogCXJldCA9IC1FSU5WQUw7Ci0J aWYgKHJlbSA8IGxlbikgewotCQlwaXBlX3VubG9jayhwaXBlKTsKLQkJZ290byBvdXQ7Ci0JfQor CWlmIChyZW0gPCBsZW4pCisJCWdvdG8gb3V0X2ZyZWU7CiAKIAlyZW0gPSBsZW47CiAJd2hpbGUg KHJlbSkgewpAQCAtMTk5Niw3ICsxOTk0LDkgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9kZXZfc3Bs aWNlX3dyaXRlKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsCiAJCQlwaXBlLT5jdXJidWYg PSAocGlwZS0+Y3VyYnVmICsgMSkgJiAocGlwZS0+YnVmZmVycyAtIDEpOwogCQkJcGlwZS0+bnJi dWZzLS07CiAJCX0gZWxzZSB7Ci0JCQlwaXBlX2J1Zl9nZXQocGlwZSwgaWJ1Zik7CisJCQlpZiAo IXBpcGVfYnVmX2dldChwaXBlLCBpYnVmKSkKKwkJCQlnb3RvIG91dF9mcmVlOworCiAJCQkqb2J1 ZiA9ICppYnVmOwogCQkJb2J1Zi0+ZmxhZ3MgJj0gflBJUEVfQlVGX0ZMQUdfR0lGVDsKIAkJCW9i dWYtPmxlbiA9IHJlbTsKQEAgLTIwMTksMTEgKzIwMTksMTEgQEAgc3RhdGljIHNzaXplX3QgZnVz ZV9kZXZfc3BsaWNlX3dyaXRlKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsCiAJcmV0ID0g ZnVzZV9kZXZfZG9fd3JpdGUoZnVkLCAmY3MsIGxlbik7CiAKIAlwaXBlX2xvY2socGlwZSk7Citv dXRfZnJlZToKIAlmb3IgKGlkeCA9IDA7IGlkeCA8IG5idWY7IGlkeCsrKQogCQlwaXBlX2J1Zl9y ZWxlYXNlKHBpcGUsICZidWZzW2lkeF0pOwogCXBpcGVfdW5sb2NrKHBpcGUpOwogCi1vdXQ6CiAJ a2ZyZWUoYnVmcyk7CiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2ZzL3BpcGUuYyBiL2Zz L3BpcGUuYwppbmRleCAzODhlMDlhNjg5ZGUuLjM0N2M2ZGM4ODhjOCAxMDA2NDQKLS0tIGEvZnMv cGlwZS5jCisrKyBiL2ZzL3BpcGUuYwpAQCAtMTkzLDkgKzE5Myw5IEBAIEVYUE9SVF9TWU1CT0wo Z2VuZXJpY19waXBlX2J1Zl9zdGVhbCk7CiAgKglpbiB0aGUgdGVlKCkgc3lzdGVtIGNhbGwsIHdo ZW4gd2UgZHVwbGljYXRlIHRoZSBidWZmZXJzIGluIG9uZQogICoJcGlwZSBpbnRvIGFub3RoZXIu CiAgKi8KLXZvaWQgZ2VuZXJpY19waXBlX2J1Zl9nZXQoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAq cGlwZSwgc3RydWN0IHBpcGVfYnVmZmVyICpidWYpCitib29sIGdlbmVyaWNfcGlwZV9idWZfZ2V0 KHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsIHN0cnVjdCBwaXBlX2J1ZmZlciAqYnVmKQog ewotCWdldF9wYWdlKGJ1Zi0+cGFnZSk7CisJcmV0dXJuIHRyeV9nZXRfcGFnZShidWYtPnBhZ2Up OwogfQogRVhQT1JUX1NZTUJPTChnZW5lcmljX3BpcGVfYnVmX2dldCk7CiAKZGlmZiAtLWdpdCBh L2ZzL3NwbGljZS5jIGIvZnMvc3BsaWNlLmMKaW5kZXggMDE5ODNiZWE3NjBjLi44YmZiYzhhNTAx NjQgMTAwNjQ0Ci0tLSBhL2ZzL3NwbGljZS5jCisrKyBiL2ZzL3NwbGljZS5jCkBAIC0xNTg1LDcg KzE1ODUsMTEgQEAgc3RhdGljIGludCBzcGxpY2VfcGlwZV90b19waXBlKHN0cnVjdCBwaXBlX2lu b2RlX2luZm8gKmlwaXBlLAogCQkJICogR2V0IGEgcmVmZXJlbmNlIHRvIHRoaXMgcGlwZSBidWZm ZXIsCiAJCQkgKiBzbyB3ZSBjYW4gY29weSB0aGUgY29udGVudHMgb3Zlci4KIAkJCSAqLwotCQkJ cGlwZV9idWZfZ2V0KGlwaXBlLCBpYnVmKTsKKwkJCWlmICghcGlwZV9idWZfZ2V0KGlwaXBlLCBp YnVmKSkgeworCQkJCWlmIChyZXQgPT0gMCkKKwkJCQkJcmV0ID0gLUVGQVVMVDsKKwkJCQlicmVh azsKKwkJCX0KIAkJCSpvYnVmID0gKmlidWY7CiAKIAkJCS8qCkBAIC0xNjU5LDcgKzE2NjMsMTEg QEAgc3RhdGljIGludCBsaW5rX3BpcGUoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqaXBpcGUsCiAJ CSAqIEdldCBhIHJlZmVyZW5jZSB0byB0aGlzIHBpcGUgYnVmZmVyLAogCQkgKiBzbyB3ZSBjYW4g Y29weSB0aGUgY29udGVudHMgb3Zlci4KIAkJICovCi0JCXBpcGVfYnVmX2dldChpcGlwZSwgaWJ1 Zik7CisJCWlmICghcGlwZV9idWZfZ2V0KGlwaXBlLCBpYnVmKSkgeworCQkJaWYgKHJldCA9PSAw KQorCQkJCXJldCA9IC1FRkFVTFQ7CisJCQlicmVhazsKKwkJfQogCiAJCW9idWYgPSBvcGlwZS0+ YnVmcyArIG5idWY7CiAJCSpvYnVmID0gKmlidWY7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L3BpcGVfZnNfaS5oIGIvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaAppbmRleCA0ZjcxMjkzODk4 NTUuLmM2YWUwZDVlOWYwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaAor KysgYi9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oCkBAIC0xMDcsMTggKzEwNywyMCBAQCBzdHJ1 Y3QgcGlwZV9idWZfb3BlcmF0aW9ucyB7CiAJLyoKIAkgKiBHZXQgYSByZWZlcmVuY2UgdG8gdGhl IHBpcGUgYnVmZmVyLgogCSAqLwotCXZvaWQgKCpnZXQpKHN0cnVjdCBwaXBlX2lub2RlX2luZm8g Kiwgc3RydWN0IHBpcGVfYnVmZmVyICopOworCWJvb2wgKCpnZXQpKHN0cnVjdCBwaXBlX2lub2Rl X2luZm8gKiwgc3RydWN0IHBpcGVfYnVmZmVyICopOwogfTsKIAogLyoqCiAgKiBwaXBlX2J1Zl9n ZXQgLSBnZXQgYSByZWZlcmVuY2UgdG8gYSBwaXBlX2J1ZmZlcgogICogQHBpcGU6CXRoZSBwaXBl IHRoYXQgdGhlIGJ1ZmZlciBiZWxvbmdzIHRvCiAgKiBAYnVmOgl0aGUgYnVmZmVyIHRvIGdldCBh IHJlZmVyZW5jZSB0bworICoKKyAqIFJldHVybjogJXRydWUgaWYgdGhlIHJlZmVyZW5jZSB3YXMg c3VjY2Vzc2Z1bGx5IG9idGFpbmVkLgogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgcGlwZV9idWZf Z2V0KHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsCitzdGF0aWMgaW5saW5lIF9fbXVzdF9j aGVjayBib29sIHBpcGVfYnVmX2dldChzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLAogCQkJ CXN0cnVjdCBwaXBlX2J1ZmZlciAqYnVmKQogewotCWJ1Zi0+b3BzLT5nZXQocGlwZSwgYnVmKTsK KwlyZXR1cm4gYnVmLT5vcHMtPmdldChwaXBlLCBidWYpOwogfQogCiAvKioKQEAgLTE3OCw3ICsx ODAsNyBAQCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICphbGxvY19waXBlX2luZm8odm9pZCk7CiB2 b2lkIGZyZWVfcGlwZV9pbmZvKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKik7CiAKIC8qIEdlbmVy aWMgcGlwZSBidWZmZXIgb3BzIGZ1bmN0aW9ucyAqLwotdm9pZCBnZW5lcmljX3BpcGVfYnVmX2dl dChzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICosIHN0cnVjdCBwaXBlX2J1ZmZlciAqKTsKK2Jvb2wg Z2VuZXJpY19waXBlX2J1Zl9nZXQoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqLCBzdHJ1Y3QgcGlw ZV9idWZmZXIgKik7CiBpbnQgZ2VuZXJpY19waXBlX2J1Zl9jb25maXJtKHN0cnVjdCBwaXBlX2lu b2RlX2luZm8gKiwgc3RydWN0IHBpcGVfYnVmZmVyICopOwogaW50IGdlbmVyaWNfcGlwZV9idWZf c3RlYWwoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqLCBzdHJ1Y3QgcGlwZV9idWZmZXIgKik7CiB2 b2lkIGdlbmVyaWNfcGlwZV9idWZfcmVsZWFzZShzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICosIHN0 cnVjdCBwaXBlX2J1ZmZlciAqKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZS5jIGIv a2VybmVsL3RyYWNlL3RyYWNlLmMKaW5kZXggYTJkOGJkNjhjMTZlLi5mYzU5ZGQxMTA5MGQgMTAw NjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFjZS5jCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZS5j CkBAIC02MTQ1LDEyICs2MTQ1LDE2IEBAIHN0YXRpYyB2b2lkIGJ1ZmZlcl9waXBlX2J1Zl9yZWxl YXNlKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsCiAJYnVmLT5wcml2YXRlID0gMDsKIH0K IAotc3RhdGljIHZvaWQgYnVmZmVyX3BpcGVfYnVmX2dldChzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZv ICpwaXBlLAorc3RhdGljIGJvb2wgYnVmZmVyX3BpcGVfYnVmX2dldChzdHJ1Y3QgcGlwZV9pbm9k ZV9pbmZvICpwaXBlLAogCQkJCXN0cnVjdCBwaXBlX2J1ZmZlciAqYnVmKQogewogCXN0cnVjdCBi dWZmZXJfcmVmICpyZWYgPSAoc3RydWN0IGJ1ZmZlcl9yZWYgKilidWYtPnByaXZhdGU7CiAKKwlp ZiAocmVmLT5yZWYgPiBJTlRfTUFYLzIpCisJCXJldHVybiBmYWxzZTsKKwogCXJlZi0+cmVmKys7 CisJcmV0dXJuIHRydWU7CiB9CiAKIC8qIFBpcGUgYnVmZmVyIG9wZXJhdGlvbnMgZm9yIGEgYnVm ZmVyLiAqLwotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAg ICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAg ICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20K CgpGcm9tIGU4MDMyMGFlMGMyM2U0NTIwMTk2NjQ4YmZhMDIzMzgxOTM4MGRlMGMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFdpbGwgRGVhY29uIDx3aWxsLmRlYWNvbkBhcm0uY29tPgpE YXRlOiBUaHUsIDYgSnVsIDIwMTcgMTU6Mzk6MzYgLTA3MDAKU3ViamVjdDogW1BBVENIIDA3LzEx XSBtbSwgZ3VwOiByZW1vdmUgYnJva2VuIFZNX0JVR19PTl9QQUdFIGNvbXBvdW5kIGNoZWNrCiBm b3IgaHVnZXBhZ2VzCgpjb21taXQgYTNlMzI4NTU2ZDQxYmI2MWM1NWY5ZGZjYzYyZDZhODI2ZWE5 N2I4NSB1cHN0cmVhbS4KCldoZW4gb3BlcmF0aW5nIG9uIGh1Z2VwYWdlcyB3aXRoIERFQlVHX1ZN IGVuYWJsZWQsIHRoZSBHVVAgY29kZSBjaGVja3MKdGhlIGNvbXBvdW5kIGhlYWQgZm9yIGVhY2gg dGFpbCBwYWdlIHByaW9yIHRvIGNhbGxpbmcKcGFnZV9jYWNoZV9hZGRfc3BlY3VsYXRpdmUuICBU aGlzIGlzIGJyb2tlbiwgYmVjYXVzZSBvbiB0aGUgZmFzdC1HVVAKcGF0aCAod2hlcmUgd2UgZG9u J3QgaG9sZCBhbnkgcGFnZSB0YWJsZSBsb2Nrcykgd2UgY2FuIGJlIHJhY2luZyB3aXRoIGEKY29u Y3VycmVudCBpbnZvY2F0aW9uIG9mIHNwbGl0X2h1Z2VfcGFnZV90b19saXN0LgoKc3BsaXRfaHVn ZV9wYWdlX3RvX2xpc3QgZGVhbHMgd2l0aCB0aGlzIHJhY2UgYnkgdXNpbmcgcGFnZV9yZWZfZnJl ZXplIHRvCmZyZWV6ZSB0aGUgcGFnZSBhbmQgZm9yY2UgY29uY3VycmVudCBHVVBzIHRvIGZhaWwg d2hpbHN0IHRoZSBjb21wb25lbnQKcGFnZXMgYXJlIG1vZGlmaWVkLiAgVGhpcyBtb2RpZmljYXRp b24gaW5jbHVkZXMgY2xlYXJpbmcgdGhlCmNvbXBvdW5kX2hlYWQgZmllbGQgZm9yIHRoZSB0YWls IHBhZ2VzLCBzbyBjaGVja2luZyB0aGlzIHByaW9yIHRvIGEKc3VjY2Vzc2Z1bCBjYWxsIHRvIHBh Z2VfY2FjaGVfYWRkX3NwZWN1bGF0aXZlIGNhbiBsZWFkIHRvIGZhbHNlCnBvc2l0aXZlczogSW4g ZmFjdCwgcGFnZV9jYWNoZV9hZGRfc3BlY3VsYXRpdmUgKmFscmVhZHkqIGhhcyB0aGlzIGNoZWNr Cm9uY2UgdGhlIHBhZ2UgcmVmY291bnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQsIHNv IHdlIGNhbiBzaW1wbHkKcmVtb3ZlIHRoZSBicm9rZW4gY2FsbHMgdG8gVk1fQlVHX09OX1BBR0Uu CgpMaW5rOiBodHRwOi8vbGttbC5rZXJuZWwub3JnL3IvMjAxNzA1MjIxMzM2MDQuMTEzOTItMi1w dW5pdC5hZ3Jhd2FsQGFybS5jb20KU2lnbmVkLW9mZi1ieTogV2lsbCBEZWFjb24gPHdpbGwuZGVh Y29uQGFybS5jb20+ClNpZ25lZC1vZmYtYnk6IFB1bml0IEFncmF3YWwgPHB1bml0LmFncmF3YWxA YXJtLmNvbT4KQWNrZWQtYnk6IFN0ZXZlIENhcHBlciA8c3RldmUuY2FwcGVyQGFybS5jb20+CkFj a2VkLWJ5OiBLaXJpbGwgQS4gU2h1dGVtb3YgPGtpcmlsbC5zaHV0ZW1vdkBsaW51eC5pbnRlbC5j b20+CkNjOiBBbmVlc2ggS3VtYXIgSy5WIDxhbmVlc2gua3VtYXJAbGludXgudm5ldC5pYm0uY29t PgpDYzogQ2F0YWxpbiBNYXJpbmFzIDxjYXRhbGluLm1hcmluYXNAYXJtLmNvbT4KQ2M6IE5hb3lh IEhvcmlndWNoaSA8bi1ob3JpZ3VjaGlAYWguanAubmVjLmNvbT4KQ2M6IE1hcmsgUnV0bGFuZCA8 bWFyay5ydXRsYW5kQGFybS5jb20+CkNjOiBIaWxsZiBEYW50b24gPGhpbGxmLnpqQGFsaWJhYmEt aW5jLmNvbT4KQ2M6IE1pY2hhbCBIb2NrbyA8bWhvY2tvQHN1c2UuY29tPgpDYzogTWlrZSBLcmF2 ZXR6IDxtaWtlLmtyYXZldHpAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5kcmV3IE1vcnRv biA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogTGludXMgVG9ydmFs ZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0 Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0tCiBtbS9ndXAuYyB8IDMg LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9tbS9ndXAu YyBiL21tL2d1cC5jCmluZGV4IDk5YzJmMTAxODhjMC4uYTA5MDc2ZWMzMTY4IDEwMDY0NAotLS0g YS9tbS9ndXAuYworKysgYi9tbS9ndXAuYwpAQCAtMTMxNiw3ICsxMzE2LDYgQEAgc3RhdGljIGlu dCBndXBfaHVnZV9wbWQocG1kX3Qgb3JpZywgcG1kX3QgKnBtZHAsIHVuc2lnbmVkIGxvbmcgYWRk ciwKIAloZWFkID0gcG1kX3BhZ2Uob3JpZyk7CiAJcGFnZSA9IGhlYWQgKyAoKGFkZHIgJiB+UE1E X01BU0spID4+IFBBR0VfU0hJRlQpOwogCWRvIHsKLQkJVk1fQlVHX09OX1BBR0UoY29tcG91bmRf aGVhZChwYWdlKSAhPSBoZWFkLCBwYWdlKTsKIAkJcGFnZXNbKm5yXSA9IHBhZ2U7CiAJCSgqbnIp Kys7CiAJCXBhZ2UrKzsKQEAgLTEzNTEsNyArMTM1MCw2IEBAIHN0YXRpYyBpbnQgZ3VwX2h1Z2Vf cHVkKHB1ZF90IG9yaWcsIHB1ZF90ICpwdWRwLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJaGVhZCA9 IHB1ZF9wYWdlKG9yaWcpOwogCXBhZ2UgPSBoZWFkICsgKChhZGRyICYgflBVRF9NQVNLKSA+PiBQ QUdFX1NISUZUKTsKIAlkbyB7Ci0JCVZNX0JVR19PTl9QQUdFKGNvbXBvdW5kX2hlYWQocGFnZSkg IT0gaGVhZCwgcGFnZSk7CiAJCXBhZ2VzWypucl0gPSBwYWdlOwogCQkoKm5yKSsrOwogCQlwYWdl Kys7CkBAIC0xMzg3LDcgKzEzODUsNiBAQCBzdGF0aWMgaW50IGd1cF9odWdlX3BnZChwZ2RfdCBv cmlnLCBwZ2RfdCAqcGdkcCwgdW5zaWduZWQgbG9uZyBhZGRyLAogCWhlYWQgPSBwZ2RfcGFnZShv cmlnKTsKIAlwYWdlID0gaGVhZCArICgoYWRkciAmIH5QR0RJUl9NQVNLKSA+PiBQQUdFX1NISUZU KTsKIAlkbyB7Ci0JCVZNX0JVR19PTl9QQUdFKGNvbXBvdW5kX2hlYWQocGFnZSkgIT0gaGVhZCwg cGFnZSk7CiAJCXBhZ2VzWypucl0gPSBwYWdlOwogCQkoKm5yKSsrOwogCQlwYWdlKys7Ci0tIApC ZW4gSHV0Y2hpbmdzLCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAgICAgICAgICAgICAgICAgICAgICAg Q29kZXRoaW5rIEx0ZApodHRwczovL3d3dy5jb2RldGhpbmsuY28udWsvICAgICAgICAgICAgICAg ICBEYWxlIEhvdXNlLCAzNSBEYWxlIFN0cmVldAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTWFuY2hlc3RlciwgTTEgMkhGLCBVbml0ZWQgS2luZ2RvbQoKCkZyb20gZmVhMmY0 MDA4MjcyNTdjZDI5ZWI0YjM2ODBmZTBiNThiNjg4NmNjOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogUHVuaXQgQWdyYXdhbCA8cHVuaXQuYWdyYXdhbEBhcm0uY29tPgpEYXRlOiBUaHUs IDYgSnVsIDIwMTcgMTU6Mzk6MzkgLTA3MDAKU3ViamVjdDogW1BBVENIIDA4LzExXSBtbSwgZ3Vw OiBlbnN1cmUgcmVhbCBoZWFkIHBhZ2UgaXMgcmVmLWNvdW50ZWQgd2hlbgogdXNpbmcgaHVnZXBh Z2VzCgpjb21taXQgZDYzMjA2ZWUzMmI2ZTY0YjBlMTJkNDZlNWQ2MDA0YWZkOTkxMzcxMyB1cHN0 cmVhbS4KCldoZW4gc3BlY3VsYXRpdmVseSB0YWtpbmcgcmVmZXJlbmNlcyB0byBhIGh1Z2VwYWdl IHVzaW5nCnBhZ2VfY2FjaGVfYWRkX3NwZWN1bGF0aXZlKCkgaW4gZ3VwX2h1Z2VfcG1kKCksIGl0 IGlzIGFzc3VtZWQgdGhhdCB0aGUKcGFnZSByZXR1cm5lZCBieSBwbWRfcGFnZSgpIGlzIHRoZSBo ZWFkIHBhZ2UuICBBbHRob3VnaCBub3JtYWxseSB0cnVlLAp0aGlzIGFzc3VtcHRpb24gZG9lc24n dCBob2xkIHdoZW4gdGhlIGh1Z2VwYWdlIGNvbXByaXNlcyBvZiBzdWNjZXNzaXZlCnBhZ2UgdGFi bGUgZW50cmllcyBzdWNoIGFzIHdoZW4gdXNpbmcgY29udGlndW91cyBiaXQgb24gYXJtNjQgYXQg UFRFIG9yClBNRCBsZXZlbHMuCgpUaGlzIGNhbiBiZSBhZGRyZXNzZWQgYnkgZW5zdXJpbmcgdGhh dCB0aGUgcGFnZSBwYXNzZWQgdG8KcGFnZV9jYWNoZV9hZGRfc3BlY3VsYXRpdmUoKSBpcyB0aGUg cmVhbCBoZWFkIG9yIGJ5IGRlLXJlZmVyZW5jaW5nIHRoZQpoZWFkIHBhZ2Ugd2l0aGluIHRoZSBm dW5jdGlvbi4KCldlIHRha2UgdGhlIGZpcnN0IGFwcHJvYWNoIHRvIGtlZXAgdGhlIHVzYWdlIHBh dHRlcm4gYWxpZ25lZCB3aXRoCnBhZ2VfY2FjaGVfZ2V0X3NwZWN1bGF0aXZlKCkgd2hlcmUgdXNl cnMgYWxyZWFkeSBwYXNzIHRoZSBhcHByb3ByaWF0ZQpwYWdlLCBpLmUuLCB0aGUgZGUtcmVmZXJl bmNlZCBoZWFkLgoKQXBwbHkgdGhlIHNhbWUgbG9naWMgdG8gZml4IGd1cF9odWdlX1twdWR8cGdk XSgpIGFzIHdlbGwuCgpbcHVuaXQuYWdyYXdhbEBhcm0uY29tOiBmaXggYXJtNjQgbHRwIGZhaWx1 cmVdCiAgTGluazogaHR0cDovL2xrbWwua2VybmVsLm9yZy9yLzIwMTcwNjE5MTcwMTQ1LjI1NTc3 LTUtcHVuaXQuYWdyYXdhbEBhcm0uY29tCkxpbms6IGh0dHA6Ly9sa21sLmtlcm5lbC5vcmcvci8y MDE3MDUyMjEzMzYwNC4xMTM5Mi0zLXB1bml0LmFncmF3YWxAYXJtLmNvbQpTaWduZWQtb2ZmLWJ5 OiBQdW5pdCBBZ3Jhd2FsIDxwdW5pdC5hZ3Jhd2FsQGFybS5jb20+CkFja2VkLWJ5OiBTdGV2ZSBD YXBwZXIgPHN0ZXZlLmNhcHBlckBhcm0uY29tPgpDYzogTWljaGFsIEhvY2tvIDxtaG9ja29Ac3Vz ZS5jb20+CkNjOiAiS2lyaWxsIEEuIFNodXRlbW92IiA8a2lyaWxsLnNodXRlbW92QGxpbnV4Lmlu dGVsLmNvbT4KQ2M6IEFuZWVzaCBLdW1hciBLLlYgPGFuZWVzaC5rdW1hckBsaW51eC52bmV0Lmli bS5jb20+CkNjOiBDYXRhbGluIE1hcmluYXMgPGNhdGFsaW4ubWFyaW5hc0Bhcm0uY29tPgpDYzog V2lsbCBEZWFjb24gPHdpbGwuZGVhY29uQGFybS5jb20+CkNjOiBOYW95YSBIb3JpZ3VjaGkgPG4t aG9yaWd1Y2hpQGFoLmpwLm5lYy5jb20+CkNjOiBNYXJrIFJ1dGxhbmQgPG1hcmsucnV0bGFuZEBh cm0uY29tPgpDYzogSGlsbGYgRGFudG9uIDxoaWxsZi56akBhbGliYWJhLWluYy5jb20+CkNjOiBN aWtlIEtyYXZldHogPG1pa2Uua3JhdmV0ekBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRy ZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBMaW51 cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6 IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIG1tL2d1 cC5jIHwgMTIgKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL21tL2d1cC5jIGIvbW0vZ3VwLmMKaW5kZXggYTA5 MDc2ZWMzMTY4Li5hNzM2YWVmNDA4MjMgMTAwNjQ0Ci0tLSBhL21tL2d1cC5jCisrKyBiL21tL2d1 cC5jCkBAIC0xMzEzLDggKzEzMTMsNyBAQCBzdGF0aWMgaW50IGd1cF9odWdlX3BtZChwbWRfdCBv cmlnLCBwbWRfdCAqcG1kcCwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQlyZXR1cm4gMDsKIAogCXJl ZnMgPSAwOwotCWhlYWQgPSBwbWRfcGFnZShvcmlnKTsKLQlwYWdlID0gaGVhZCArICgoYWRkciAm IH5QTURfTUFTSykgPj4gUEFHRV9TSElGVCk7CisJcGFnZSA9IHBtZF9wYWdlKG9yaWcpICsgKChh ZGRyICYgflBNRF9NQVNLKSA+PiBQQUdFX1NISUZUKTsKIAlkbyB7CiAJCXBhZ2VzWypucl0gPSBw YWdlOwogCQkoKm5yKSsrOwpAQCAtMTMyMiw2ICsxMzIxLDcgQEAgc3RhdGljIGludCBndXBfaHVn ZV9wbWQocG1kX3Qgb3JpZywgcG1kX3QgKnBtZHAsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJcmVm cysrOwogCX0gd2hpbGUgKGFkZHIgKz0gUEFHRV9TSVpFLCBhZGRyICE9IGVuZCk7CiAKKwloZWFk ID0gY29tcG91bmRfaGVhZChwbWRfcGFnZShvcmlnKSk7CiAJaWYgKCFwYWdlX2NhY2hlX2FkZF9z cGVjdWxhdGl2ZShoZWFkLCByZWZzKSkgewogCQkqbnIgLT0gcmVmczsKIAkJcmV0dXJuIDA7CkBA IC0xMzQ3LDggKzEzNDcsNyBAQCBzdGF0aWMgaW50IGd1cF9odWdlX3B1ZChwdWRfdCBvcmlnLCBw dWRfdCAqcHVkcCwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQlyZXR1cm4gMDsKIAogCXJlZnMgPSAw OwotCWhlYWQgPSBwdWRfcGFnZShvcmlnKTsKLQlwYWdlID0gaGVhZCArICgoYWRkciAmIH5QVURf TUFTSykgPj4gUEFHRV9TSElGVCk7CisJcGFnZSA9IHB1ZF9wYWdlKG9yaWcpICsgKChhZGRyICYg flBVRF9NQVNLKSA+PiBQQUdFX1NISUZUKTsKIAlkbyB7CiAJCXBhZ2VzWypucl0gPSBwYWdlOwog CQkoKm5yKSsrOwpAQCAtMTM1Niw2ICsxMzU1LDcgQEAgc3RhdGljIGludCBndXBfaHVnZV9wdWQo cHVkX3Qgb3JpZywgcHVkX3QgKnB1ZHAsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJcmVmcysrOwog CX0gd2hpbGUgKGFkZHIgKz0gUEFHRV9TSVpFLCBhZGRyICE9IGVuZCk7CiAKKwloZWFkID0gY29t cG91bmRfaGVhZChwdWRfcGFnZShvcmlnKSk7CiAJaWYgKCFwYWdlX2NhY2hlX2FkZF9zcGVjdWxh dGl2ZShoZWFkLCByZWZzKSkgewogCQkqbnIgLT0gcmVmczsKIAkJcmV0dXJuIDA7CkBAIC0xMzgy LDggKzEzODIsNyBAQCBzdGF0aWMgaW50IGd1cF9odWdlX3BnZChwZ2RfdCBvcmlnLCBwZ2RfdCAq cGdkcCwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQlyZXR1cm4gMDsKIAogCXJlZnMgPSAwOwotCWhl YWQgPSBwZ2RfcGFnZShvcmlnKTsKLQlwYWdlID0gaGVhZCArICgoYWRkciAmIH5QR0RJUl9NQVNL KSA+PiBQQUdFX1NISUZUKTsKKwlwYWdlID0gcGdkX3BhZ2Uob3JpZykgKyAoKGFkZHIgJiB+UEdE SVJfTUFTSykgPj4gUEFHRV9TSElGVCk7CiAJZG8gewogCQlwYWdlc1sqbnJdID0gcGFnZTsKIAkJ KCpucikrKzsKQEAgLTEzOTEsNiArMTM5MCw3IEBAIHN0YXRpYyBpbnQgZ3VwX2h1Z2VfcGdkKHBn ZF90IG9yaWcsIHBnZF90ICpwZ2RwLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJCXJlZnMrKzsKIAl9 IHdoaWxlIChhZGRyICs9IFBBR0VfU0laRSwgYWRkciAhPSBlbmQpOwogCisJaGVhZCA9IGNvbXBv dW5kX2hlYWQocGdkX3BhZ2Uob3JpZykpOwogCWlmICghcGFnZV9jYWNoZV9hZGRfc3BlY3VsYXRp dmUoaGVhZCwgcmVmcykpIHsKIAkJKm5yIC09IHJlZnM7CiAJCXJldHVybiAwOwotLSAKQmVuIEh1 dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0 aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFs ZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIGQ0OWJhYmI4OTQ4 ODVhYWM2YjYzNjViMzFmN2Q0ZDBlODNkNDUxNGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KRGF0ZTog VGh1LCAxMSBBcHIgMjAxOSAxMDo0OToxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMTFdIG1t OiBwcmV2ZW50IGdldF91c2VyX3BhZ2VzKCkgZnJvbSBvdmVyZmxvd2luZyBwYWdlCiByZWZjb3Vu dAoKY29tbWl0IDhmZGUxMmNhNzlhZmY5YjViYTk1MWZjZTFhMjY0MTkwMWI4ZDhlNjQgdXBzdHJl YW0uCgpJZiB0aGUgcGFnZSByZWZjb3VudCB3cmFwcyBhcm91bmQgcGFzdCB6ZXJvLCBpdCB3aWxs IGJlIGZyZWVkIHdoaWxlCnRoZXJlIGFyZSBzdGlsbCBmb3VyIGJpbGxpb24gcmVmZXJlbmNlcyB0 byBpdC4gIE9uZSBvZiB0aGUgcG9zc2libGUKYXZlbnVlcyBmb3IgYW4gYXR0YWNrZXIgdG8gdHJ5 IHRvIG1ha2UgdGhpcyBoYXBwZW4gaXMgYnkgZG9pbmcgZGlyZWN0IElPCm9uIGEgcGFnZSBtdWx0 aXBsZSB0aW1lcy4gIFRoaXMgcGF0Y2ggbWFrZXMgZ2V0X3VzZXJfcGFnZXMoKSByZWZ1c2UgdG8K dGFrZSBhIG5ldyBwYWdlIHJlZmVyZW5jZSBpZiB0aGVyZSBhcmUgYWxyZWFkeSBtb3JlIHRoYW4g dHdvIGJpbGxpb24KcmVmZXJlbmNlcyB0byB0aGUgcGFnZS4KClJlcG9ydGVkLWJ5OiBKYW5uIEhv cm4gPGphbm5oQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBNYXR0aGV3IFdpbGNveCA8d2lsbHlAaW5m cmFkZWFkLm9yZz4KU2lnbmVkLW9mZi1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4 LWZvdW5kYXRpb24ub3JnPgpbYndoOiBCYWNrcG9ydGVkIHRvIDQuOToKIC0gQWRkIHRoZSAiZXJy IiB2YXJpYWJsZSBpbiBmb2xsb3dfaHVnZXRsYl9wYWdlKCkKIC0gQWRqdXN0IGNvbnRleHRdClNp Z25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVr PgotLS0KIG1tL2d1cC5jICAgICB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLQogbW0vaHVnZXRsYi5jIHwgMTYgKysrKysrKysrKysrKysrLQogMiBmaWxl cyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9tbS9ndXAuYyBiL21tL2d1cC5jCmluZGV4IGE3MzZhZWY0MDgyMy4uNmJiN2E4ZWI3ZjgyIDEw MDY0NAotLS0gYS9tbS9ndXAuYworKysgYi9tbS9ndXAuYwpAQCAtMTUzLDcgKzE1MywxMCBAQCBz dGF0aWMgc3RydWN0IHBhZ2UgKmZvbGxvd19wYWdlX3B0ZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg KnZtYSwKIAl9CiAKIAlpZiAoZmxhZ3MgJiBGT0xMX0dFVCkgewotCQlnZXRfcGFnZShwYWdlKTsK KwkJaWYgKHVubGlrZWx5KCF0cnlfZ2V0X3BhZ2UocGFnZSkpKSB7CisJCQlwYWdlID0gRVJSX1BU UigtRU5PTUVNKTsKKwkJCWdvdG8gb3V0OworCQl9CiAKIAkJLyogZHJvcCB0aGUgcGdtYXAgcmVm ZXJlbmNlIG5vdyB0aGF0IHdlIGhvbGQgdGhlIHBhZ2UgKi8KIAkJaWYgKHBnbWFwKSB7CkBAIC0y OTIsNyArMjk1LDEwIEBAIHN0cnVjdCBwYWdlICpmb2xsb3dfcGFnZV9tYXNrKHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLAogCQkJaWYgKHBtZF90cmFuc191bnN0YWJsZShwbWQpKQogCQkJCXJl dCA9IC1FQlVTWTsKIAkJfSBlbHNlIHsKLQkJCWdldF9wYWdlKHBhZ2UpOworCQkJaWYgKHVubGlr ZWx5KCF0cnlfZ2V0X3BhZ2UocGFnZSkpKSB7CisJCQkJc3Bpbl91bmxvY2socHRsKTsKKwkJCQly ZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwkJCX0KIAkJCXNwaW5fdW5sb2NrKHB0bCk7CiAJCQls b2NrX3BhZ2UocGFnZSk7CiAJCQlyZXQgPSBzcGxpdF9odWdlX3BhZ2UocGFnZSk7CkBAIC0zNDgs NyArMzU0LDEwIEBAIHN0YXRpYyBpbnQgZ2V0X2dhdGVfcGFnZShzdHJ1Y3QgbW1fc3RydWN0ICpt bSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAogCQkJZ290byB1bm1hcDsKIAkJKnBhZ2UgPSBwdGVf cGFnZSgqcHRlKTsKIAl9Ci0JZ2V0X3BhZ2UoKnBhZ2UpOworCWlmICh1bmxpa2VseSghdHJ5X2dl dF9wYWdlKCpwYWdlKSkpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byB1bm1hcDsKKwl9CiBv dXQ6CiAJcmV0ID0gMDsKIHVubWFwOgpAQCAtMTIzMSw2ICsxMjQwLDIwIEBAIHN0cnVjdCBwYWdl ICpnZXRfZHVtcF9wYWdlKHVuc2lnbmVkIGxvbmcgYWRkcikKICAqLwogI2lmZGVmIENPTkZJR19I QVZFX0dFTkVSSUNfUkNVX0dVUAogCisvKgorICogUmV0dXJuIHRoZSBjb21wdW5kIGhlYWQgcGFn ZSB3aXRoIHJlZiBhcHByb3ByaWF0ZWx5IGluY3JlbWVudGVkLAorICogb3IgTlVMTCBpZiB0aGF0 IGZhaWxlZC4KKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqdHJ5X2dldF9jb21wb3Vu ZF9oZWFkKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgcmVmcykKK3sKKwlzdHJ1Y3QgcGFnZSAqaGVh ZCA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CisJaWYgKFdBUk5fT05fT05DRShwYWdlX3JlZl9jb3Vu dChoZWFkKSA8IDApKQorCQlyZXR1cm4gTlVMTDsKKwlpZiAodW5saWtlbHkoIXBhZ2VfY2FjaGVf YWRkX3NwZWN1bGF0aXZlKGhlYWQsIHJlZnMpKSkKKwkJcmV0dXJuIE5VTEw7CisJcmV0dXJuIGhl YWQ7Cit9CisKICNpZmRlZiBfX0hBVkVfQVJDSF9QVEVfU1BFQ0lBTAogc3RhdGljIGludCBndXBf cHRlX3JhbmdlKHBtZF90IHBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVu ZCwKIAkJCSBpbnQgd3JpdGUsIHN0cnVjdCBwYWdlICoqcGFnZXMsIGludCAqbnIpCkBAIC0xMjYz LDkgKzEyODYsOSBAQCBzdGF0aWMgaW50IGd1cF9wdGVfcmFuZ2UocG1kX3QgcG1kLCB1bnNpZ25l ZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAogCiAJCVZNX0JVR19PTighcGZuX3ZhbGlk KHB0ZV9wZm4ocHRlKSkpOwogCQlwYWdlID0gcHRlX3BhZ2UocHRlKTsKLQkJaGVhZCA9IGNvbXBv dW5kX2hlYWQocGFnZSk7CiAKLQkJaWYgKCFwYWdlX2NhY2hlX2dldF9zcGVjdWxhdGl2ZShoZWFk KSkKKwkJaGVhZCA9IHRyeV9nZXRfY29tcG91bmRfaGVhZChwYWdlLCAxKTsKKwkJaWYgKCFoZWFk KQogCQkJZ290byBwdGVfdW5tYXA7CiAKIAkJaWYgKHVubGlrZWx5KHB0ZV92YWwocHRlKSAhPSBw dGVfdmFsKCpwdGVwKSkpIHsKQEAgLTEzMjEsOCArMTM0NCw4IEBAIHN0YXRpYyBpbnQgZ3VwX2h1 Z2VfcG1kKHBtZF90IG9yaWcsIHBtZF90ICpwbWRwLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJCXJl ZnMrKzsKIAl9IHdoaWxlIChhZGRyICs9IFBBR0VfU0laRSwgYWRkciAhPSBlbmQpOwogCi0JaGVh ZCA9IGNvbXBvdW5kX2hlYWQocG1kX3BhZ2Uob3JpZykpOwotCWlmICghcGFnZV9jYWNoZV9hZGRf c3BlY3VsYXRpdmUoaGVhZCwgcmVmcykpIHsKKwloZWFkID0gdHJ5X2dldF9jb21wb3VuZF9oZWFk KHBtZF9wYWdlKG9yaWcpLCByZWZzKTsKKwlpZiAoIWhlYWQpIHsKIAkJKm5yIC09IHJlZnM7CiAJ CXJldHVybiAwOwogCX0KQEAgLTEzNTUsOCArMTM3OCw4IEBAIHN0YXRpYyBpbnQgZ3VwX2h1Z2Vf cHVkKHB1ZF90IG9yaWcsIHB1ZF90ICpwdWRwLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJCXJlZnMr KzsKIAl9IHdoaWxlIChhZGRyICs9IFBBR0VfU0laRSwgYWRkciAhPSBlbmQpOwogCi0JaGVhZCA9 IGNvbXBvdW5kX2hlYWQocHVkX3BhZ2Uob3JpZykpOwotCWlmICghcGFnZV9jYWNoZV9hZGRfc3Bl Y3VsYXRpdmUoaGVhZCwgcmVmcykpIHsKKwloZWFkID0gdHJ5X2dldF9jb21wb3VuZF9oZWFkKHB1 ZF9wYWdlKG9yaWcpLCByZWZzKTsKKwlpZiAoIWhlYWQpIHsKIAkJKm5yIC09IHJlZnM7CiAJCXJl dHVybiAwOwogCX0KQEAgLTEzOTAsOCArMTQxMyw4IEBAIHN0YXRpYyBpbnQgZ3VwX2h1Z2VfcGdk KHBnZF90IG9yaWcsIHBnZF90ICpwZ2RwLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJCXJlZnMrKzsK IAl9IHdoaWxlIChhZGRyICs9IFBBR0VfU0laRSwgYWRkciAhPSBlbmQpOwogCi0JaGVhZCA9IGNv bXBvdW5kX2hlYWQocGdkX3BhZ2Uob3JpZykpOwotCWlmICghcGFnZV9jYWNoZV9hZGRfc3BlY3Vs YXRpdmUoaGVhZCwgcmVmcykpIHsKKwloZWFkID0gdHJ5X2dldF9jb21wb3VuZF9oZWFkKHBnZF9w YWdlKG9yaWcpLCByZWZzKTsKKwlpZiAoIWhlYWQpIHsKIAkJKm5yIC09IHJlZnM7CiAJCXJldHVy biAwOwogCX0KZGlmZiAtLWdpdCBhL21tL2h1Z2V0bGIuYyBiL21tL2h1Z2V0bGIuYwppbmRleCA4 YjY4MmRhOThkOTUuLmZmY2NlNzNmNmYxZSAxMDA2NDQKLS0tIGEvbW0vaHVnZXRsYi5jCisrKyBi L21tL2h1Z2V0bGIuYwpAQCAtMzk5Myw2ICszOTkzLDcgQEAgbG9uZyBmb2xsb3dfaHVnZXRsYl9w YWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAl1 bnNpZ25lZCBsb25nIHZhZGRyID0gKnBvc2l0aW9uOwogCXVuc2lnbmVkIGxvbmcgcmVtYWluZGVy ID0gKm5yX3BhZ2VzOwogCXN0cnVjdCBoc3RhdGUgKmggPSBoc3RhdGVfdm1hKHZtYSk7CisJaW50 IGVyciA9IC1FRkFVTFQ7CiAKIAl3aGlsZSAodmFkZHIgPCB2bWEtPnZtX2VuZCAmJiByZW1haW5k ZXIpIHsKIAkJcHRlX3QgKnB0ZTsKQEAgLTQwNjQsNiArNDA2NSwxOSBAQCBsb25nIGZvbGxvd19o dWdldGxiX3BhZ2Uoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hLAogCiAJCXBmbl9vZmZzZXQgPSAodmFkZHIgJiB+aHVnZV9wYWdlX21hc2soaCkpID4+IFBB R0VfU0hJRlQ7CiAJCXBhZ2UgPSBwdGVfcGFnZShodWdlX3B0ZXBfZ2V0KHB0ZSkpOworCisJCS8q CisJCSAqIEluc3RlYWQgb2YgZG9pbmcgJ3RyeV9nZXRfcGFnZSgpJyBiZWxvdyBpbiB0aGUgc2Ft ZV9wYWdlCisJCSAqIGxvb3AsIGp1c3QgY2hlY2sgdGhlIGNvdW50IG9uY2UgaGVyZS4KKwkJICov CisJCWlmICh1bmxpa2VseShwYWdlX2NvdW50KHBhZ2UpIDw9IDApKSB7CisJCQlpZiAocGFnZXMp IHsKKwkJCQlzcGluX3VubG9jayhwdGwpOworCQkJCXJlbWFpbmRlciA9IDA7CisJCQkJZXJyID0g LUVOT01FTTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQogc2FtZV9wYWdlOgogCQlpZiAocGFnZXMp IHsKIAkJCXBhZ2VzW2ldID0gbWVtX21hcF9vZmZzZXQocGFnZSwgcGZuX29mZnNldCk7CkBAIC00 MDkwLDcgKzQxMDQsNyBAQCBsb25nIGZvbGxvd19odWdldGxiX3BhZ2Uoc3RydWN0IG1tX3N0cnVj dCAqbW0sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCSpucl9wYWdlcyA9IHJlbWFpbmRl cjsKIAkqcG9zaXRpb24gPSB2YWRkcjsKIAotCXJldHVybiBpID8gaSA6IC1FRkFVTFQ7CisJcmV0 dXJuIGkgPyBpIDogZXJyOwogfQogCiAjaWZuZGVmIF9fSEFWRV9BUkNIX0ZMVVNIX0hVR0VUTEJf VExCX1JBTkdFCi0tIApCZW4gSHV0Y2hpbmdzLCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAgICAgICAg ICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApodHRwczovL3d3dy5jb2RldGhpbmsuY28udWsv ICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAzNSBEYWxlIFN0cmVldAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hlc3RlciwgTTEgMkhGLCBVbml0ZWQgS2luZ2Rv bQoKCkZyb20gNTgzMDE5NmJiMGU2YTQ2NzZhMTE1ODBhYzVhNTVhYzU2YjY0OTZkYSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZv dW5kYXRpb24ub3JnPgpEYXRlOiBUaHUsIDExIEFwciAyMDE5IDEwOjA2OjIwIC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAxMC8xMV0gbW06IG1ha2UgcGFnZSByZWYgY291bnQgb3ZlcmZsb3cgY2hlY2sg dGlnaHRlciBhbmQgbW9yZQogZXhwbGljaXQKCmNvbW1pdCBmOTU4ZDdiNTI4YjFiNDBjNDRjZmRh NWVhYmUyZDgyNzYwZDg2OGMzIHVwc3RyZWFtLgoKV2UgaGF2ZSBhIFZNX0JVR19PTigpIHRvIGNo ZWNrIHRoYXQgdGhlIHBhZ2UgcmVmZXJlbmNlIGNvdW50IGRvZXNuJ3QKdW5kZXJmbG93IChvciBn ZXQgY2xvc2UgdG8gb3ZlcmZsb3cpIGJ5IGNoZWNraW5nIHRoZSBzaWduIG9mIHRoZSBjb3VudC4K ClRoYXQncyBhbGwgZmluZSwgYnV0IHdlIGFjdHVhbGx5IHdhbnQgdG8gYWxsb3cgcGVvcGxlIHRv IHVzZSBhICJnZXQgcGFnZQpyZWYgdW5sZXNzIGl0J3MgYWxyZWFkeSB2ZXJ5IGhpZ2giIGhlbHBl ciBmdW5jdGlvbiwgYW5kIHdlIHdhbnQgdGhhdCBvbmUKdG8gdXNlIHRoZSBzaWduIG9mIHRoZSBw YWdlIHJlZiAod2l0aG91dCB0cmlnZ2VyaW5nIHRoaXMgVk1fQlVHX09OKS4KCkNoYW5nZSB0aGUg Vk1fQlVHX09OIHRvIG9ubHkgY2hlY2sgZm9yIHNtYWxsIHVuZGVyZmxvd3MgKG9yIF92ZXJ5XyBj bG9zZQp0byBvdmVyZmxvd2luZyksIGFuZCBpZ25vcmUgb3ZlcmZsb3dzIHdoaWNoIGhhdmUgc3Ry YXllZCBpbnRvIG5lZ2F0aXZlCnRlcnJpdG9yeS4KCkFja2VkLWJ5OiBNYXR0aGV3IFdpbGNveCA8 d2lsbHlAaW5mcmFkZWFkLm9yZz4KQ2M6IEphbm4gSG9ybiA8amFubmhAZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3Jn PgpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5j by51az4KLS0tCiBpbmNsdWRlL2xpbnV4L21tLmggfCA2ICsrKysrLQogMSBmaWxlIGNoYW5nZWQs IDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvbW0uaCBiL2luY2x1ZGUvbGludXgvbW0uaAppbmRleCBlM2M4ZDQwYTE4YjUuLjQ3ODQ2NjA4 MTI2NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbS5oCisrKyBiL2luY2x1ZGUvbGludXgv bW0uaApAQCAtNzYzLDYgKzc2MywxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNfem9uZV9kZXZp Y2VfcGFnZShjb25zdCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIH0KICNlbmRpZgogCisvKiAxMjc6IGFy Yml0cmFyeSByYW5kb20gbnVtYmVyLCBzbWFsbCBlbm91Z2ggdG8gYXNzZW1ibGUgd2VsbCAqLwor I2RlZmluZSBwYWdlX3JlZl96ZXJvX29yX2Nsb3NlX3RvX292ZXJmbG93KHBhZ2UpIFwKKwkoKHVu c2lnbmVkIGludCkgcGFnZV9yZWZfY291bnQocGFnZSkgKyAxMjd1IDw9IDEyN3UpCisKIHN0YXRp YyBpbmxpbmUgdm9pZCBnZXRfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkKIHsKIAlwYWdlID0gY29t cG91bmRfaGVhZChwYWdlKTsKQEAgLTc3MCw3ICs3NzQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg Z2V0X3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpCiAJICogR2V0dGluZyBhIG5vcm1hbCBwYWdlIG9y IHRoZSBoZWFkIG9mIGEgY29tcG91bmQgcGFnZQogCSAqIHJlcXVpcmVzIHRvIGFscmVhZHkgaGF2 ZSBhbiBlbGV2YXRlZCBwYWdlLT5fcmVmY291bnQuCiAJICovCi0JVk1fQlVHX09OX1BBR0UocGFn ZV9yZWZfY291bnQocGFnZSkgPD0gMCwgcGFnZSk7CisJVk1fQlVHX09OX1BBR0UocGFnZV9yZWZf emVyb19vcl9jbG9zZV90b19vdmVyZmxvdyhwYWdlKSwgcGFnZSk7CiAJcGFnZV9yZWZfaW5jKHBh Z2UpOwogCiAJaWYgKHVubGlrZWx5KGlzX3pvbmVfZGV2aWNlX3BhZ2UocGFnZSkpKQotLSAKQmVu IEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENv ZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAg RGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIDY1OTBjOTNl NjljYjZkZTYyOGMxNzhkYjgzYjQwOThkY2RjZDZjYWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEFuZHJlYSBBcmNhbmdlbGkgPGFhcmNhbmdlQHJlZGhhdC5jb20+CkRhdGU6IFRodSwg MTggQXByIDIwMTkgMTc6NTA6NTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDExLzExXSBjb3JlZHVt cDogZml4IHJhY2UgY29uZGl0aW9uIGJldHdlZW4KIG1tZ2V0X25vdF96ZXJvKCkvZ2V0X3Rhc2tf bW0oKSBhbmQgY29yZSBkdW1waW5nCgpjb21taXQgMDRmNTg2NmU0MWZiNzA2OTBlMjgzOTc0ODdk OGJkOGVlYTdkNzEyYSB1cHN0cmVhbS4KClRoZSBjb3JlIGR1bXBpbmcgY29kZSBoYXMgYWx3YXlz IHJ1biB3aXRob3V0IGhvbGRpbmcgdGhlIG1tYXBfc2VtIGZvcgp3cml0aW5nLCBkZXNwaXRlIHRo YXQgaXMgdGhlIG9ubHkgd2F5IHRvIGVuc3VyZSB0aGF0IHRoZSBlbnRpcmUgdm1hCmxheW91dCB3 aWxsIG5vdCBjaGFuZ2UgZnJvbSB1bmRlciBpdC4gIE9ubHkgdXNpbmcgc29tZSBzaWduYWwKc2Vy aWFsaXphdGlvbiBvbiB0aGUgcHJvY2Vzc2VzIGJlbG9uZ2luZyB0byB0aGUgbW0gaXMgbm90IG5l YXJseSBlbm91Z2guClRoaXMgd2FzIHBvaW50ZWQgb3V0IGVhcmxpZXIuICBGb3IgZXhhbXBsZSBp biBIdWdoJ3MgcG9zdCBmcm9tIEp1bCAyMDE3OgoKICBodHRwczovL2xrbWwua2VybmVsLm9yZy9y L2FscGluZS5MU1UuMi4xMS4xNzA3MTkxNzE2MDMwLjIwNTVAZWdnbHkuYW52aWxzCgogICJOb3Qg c3RyaWN0bHkgcmVsZXZhbnQgaGVyZSwgYnV0IGEgcmVsYXRlZCBub3RlOiBJIHdhcyB2ZXJ5IHN1 cnByaXNlZAogICB0byBkaXNjb3Zlciwgb25seSBxdWl0ZSByZWNlbnRseSwgaG93IGhhbmRsZV9t bV9mYXVsdCgpIG1heSBiZSBjYWxsZWQKICAgd2l0aG91dCBkb3duX3JlYWQobW1hcF9zZW0pIC0g d2hlbiBjb3JlIGR1bXBpbmcuIFRoYXQgc2VlbXMgYQogICBtaXNndWlkZWQgb3B0aW1pemF0aW9u IHRvIG1lLCB3aGljaCB3b3VsZCBhbHNvIGJlIG5pY2UgdG8gY29ycmVjdCIKCkluIHBhcnRpY3Vs YXIgYmVjYXVzZSB0aGUgZ3Jvd3Nkb3duIGFuZCBncm93c3VwIGNhbiBtb3ZlIHRoZQp2bV9zdGFy dC92bV9lbmQgdGhlIHZhcmlvdXMgbG9vcHMgdGhlIGNvcmUgZHVtcCBkb2VzIGFyb3VuZCB0aGUg dm1hIHdpbGwKbm90IGJlIGNvbnNpc3RlbnQgaWYgcGFnZSBmYXVsdHMgY2FuIGhhcHBlbiBjb25j dXJyZW50bHkuCgpQcmV0dHkgbXVjaCBhbGwgdXNlcnMgY2FsbGluZyBtbWdldF9ub3RfemVybygp L2dldF90YXNrX21tKCkgYW5kIHRoZW4KdGFraW5nIHRoZSBtbWFwX3NlbSBoYWQgdGhlIHBvdGVu dGlhbCB0byBpbnRyb2R1Y2UgdW5leHBlY3RlZCBzaWRlCmVmZmVjdHMgaW4gdGhlIGNvcmUgZHVt cGluZyBjb2RlLgoKQWRkaW5nIG1tYXBfc2VtIGZvciB3cml0aW5nIGFyb3VuZCB0aGUgLT5jb3Jl X2R1bXAgaW52b2NhdGlvbiBpcyBhCnZpYWJsZSBsb25nIHRlcm0gZml4LCBidXQgaXQgcmVxdWly ZXMgcmVtb3ZpbmcgYWxsIGNvcHkgdXNlciBhbmQgcGFnZQpmYXVsdHMgYW5kIHRvIHJlcGxhY2Ug dGhlbSB3aXRoIGdldF9kdW1wX3BhZ2UoKSBmb3IgYWxsIGJpbmFyeSBmb3JtYXRzCndoaWNoIGlz IG5vdCBzdWl0YWJsZSBhcyBhIHNob3J0IHRlcm0gZml4LgoKRm9yIHRoZSB0aW1lIGJlaW5nIHRo aXMgc29sdXRpb24gbWFudWFsbHkgY292ZXJzIHRoZSBwbGFjZXMgdGhhdCBjYW4KY29uZnVzZSB0 aGUgY29yZSBkdW1wIGVpdGhlciBieSBhbHRlcmluZyB0aGUgdm1hIGxheW91dCBvciB0aGUgdm1h IGZsYWdzCndoaWxlIGl0IHJ1bnMuICBPbmNlIC0+Y29yZV9kdW1wIHJ1bnMgdW5kZXIgbW1hcF9z ZW0gZm9yIHdyaXRpbmcgdGhlCmZ1bmN0aW9uIG1tZ2V0X3N0aWxsX3ZhbGlkKCkgY2FuIGJlIGRy b3BwZWQuCgpBbGxvd2luZyBtbWFwX3NlbSBwcm90ZWN0ZWQgc2VjdGlvbnMgdG8gcnVuIGluIHBh cmFsbGVsIHdpdGggdGhlCmNvcmVkdW1wIHByb3ZpZGVzIHNvbWUgbWlub3IgcGFyYWxsZWxpc20g YWR2YW50YWdlIHRvIHRoZSBzd2Fwb2ZmIGNvZGUKKHdoaWNoIHNlZW1zIHRvIGJlIHNhZmUgZW5v dWdoIGJ5IG5ldmVyIG1hbmdsaW5nIGFueSB2bWEgZmllbGQgYW5kIGNhbgprZWVwIGRvaW5nIHN3 YXBpbnMgaW4gcGFyYWxsZWwgdG8gdGhlIGNvcmUgZHVtcGluZykgYW5kIHRvIHNvbWUgb3RoZXIK Y29ybmVyIGNhc2UuCgpJbiBvcmRlciB0byBmYWNpbGl0YXRlIHRoZSBiYWNrcG9ydGluZyBJIGFk ZGVkICJGaXhlczogODYwMzliZDNiNGU2Igpob3dldmVyIHRoZSBzaWRlIGVmZmVjdCBvZiB0aGlz IHNhbWUgcmFjZSBjb25kaXRpb24gaW4gL3Byb2MvcGlkL21lbQpzaG91bGQgYmUgcmVwcm9kdWNp YmxlIHNpbmNlIGJlZm9yZSAyLjYuMTItcmMyIHNvIEkgY291bGRuJ3QgYWRkIGFueQpvdGhlciAi Rml4ZXM6IiBiZWNhdXNlIHRoZXJlJ3Mgbm8gaGFzaCBiZXlvbmQgdGhlIGdpdCBnZW5lc2lzIGNv bW1pdC4KCkJlY2F1c2UgZmluZF9leHRlbmRfdm1hKCkgaXMgdGhlIG9ubHkgbG9jYXRpb24gb3V0 c2lkZSBvZiB0aGUgcHJvY2Vzcwpjb250ZXh0IHRoYXQgY291bGQgbW9kaWZ5IHRoZSAibW0iIHN0 cnVjdHVyZXMgdW5kZXIgbW1hcF9zZW0gZm9yCnJlYWRpbmcsIGJ5IGFkZGluZyB0aGUgbW1nZXRf c3RpbGxfdmFsaWQoKSBjaGVjayB0byBpdCwgYWxsIG90aGVyIGNhc2VzCnRoYXQgdGFrZSB0aGUg bW1hcF9zZW0gZm9yIHJlYWRpbmcgZG9uJ3QgbmVlZCB0aGUgbmV3IGNoZWNrIGFmdGVyCm1tZ2V0 X25vdF96ZXJvKCkvZ2V0X3Rhc2tfbW0oKS4gIFRoZSBleHBhbmRfc3RhY2soKSBpbiBwYWdlIGZh dWx0CmNvbnRleHQgYWxzbyBkb2Vzbid0IG5lZWQgdGhlIG5ldyBjaGVjaywgYmVjYXVzZSBhbGwg dGFza3MgdW5kZXIgY29yZQpkdW1waW5nIGFyZSBmcm96ZW4uCgpMaW5rOiBodHRwOi8vbGttbC5r ZXJuZWwub3JnL3IvMjAxOTAzMjUyMjQ5NDkuMTEwNjgtMS1hYXJjYW5nZUByZWRoYXQuY29tCkZp eGVzOiA4NjAzOWJkM2I0ZTYgKCJ1c2VyZmF1bHRmZDogYWRkIG5ldyBzeXNjYWxsIHRvIHByb3Zp ZGUgbWVtb3J5IGV4dGVybmFsaXphdGlvbiIpClNpZ25lZC1vZmYtYnk6IEFuZHJlYSBBcmNhbmdl bGkgPGFhcmNhbmdlQHJlZGhhdC5jb20+ClJlcG9ydGVkLWJ5OiBKYW5uIEhvcm4gPGphbm5oQGdv b2dsZS5jb20+ClN1Z2dlc3RlZC1ieTogT2xlZyBOZXN0ZXJvdiA8b2xlZ0ByZWRoYXQuY29tPgpB Y2tlZC1ieTogUGV0ZXIgWHUgPHBldGVyeEByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogTWlrZSBS YXBvcG9ydCA8cnBwdEBsaW51eC5pYm0uY29tPgpSZXZpZXdlZC1ieTogT2xlZyBOZXN0ZXJvdiA8 b2xlZ0ByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogSmFubiBIb3JuIDxqYW5uaEBnb29nbGUuY29t PgpBY2tlZC1ieTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgpBY2tlZC1ieTog TWljaGFsIEhvY2tvIDxtaG9ja29Ac3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJldyBNb3J0 b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZh bGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0 Ljk6CiAtIERyb3AgY2hhbmdlcyBpbiBJbmZpbmliYW5kIGFuZCB1c2VyZmF1bHRmZF9ldmVudF93 YWl0X2NvbXBsZXRpb24oKQogLSBBZGp1c3QgZmlsZW5hbWUsIGNvbnRleHRdClNpZ25lZC1vZmYt Ynk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZz L3Byb2MvdGFza19tbXUuYyAgICB8IDE4ICsrKysrKysrKysrKysrKysrKwogZnMvdXNlcmZhdWx0 ZmQuYyAgICAgIHwgIDcgKysrKysrKwogaW5jbHVkZS9saW51eC9zY2hlZC5oIHwgMjEgKysrKysr KysrKysrKysrKysrKysrCiBtbS9tbWFwLmMgICAgICAgICAgICAgfCAgNyArKysrKystCiA0IGZp bGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9mcy9wcm9jL3Rhc2tfbW11LmMgYi9mcy9wcm9jL3Rhc2tfbW11LmMKaW5kZXggNTEzOGU3ODE3 MzdhLi40YjIwN2IxMGRiMDMgMTAwNjQ0Ci0tLSBhL2ZzL3Byb2MvdGFza19tbXUuYworKysgYi9m cy9wcm9jL3Rhc2tfbW11LmMKQEAgLTEwNTcsNiArMTA1NywyNCBAQCBzdGF0aWMgc3NpemVfdCBj bGVhcl9yZWZzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVm LAogCQkJCQljb3VudCA9IC1FSU5UUjsKIAkJCQkJZ290byBvdXRfbW07CiAJCQkJfQorCQkJCS8q CisJCQkJICogQXZvaWQgdG8gbW9kaWZ5IHZtYS0+dm1fZmxhZ3MKKwkJCQkgKiB3aXRob3V0IGxv Y2tlZCBvcHMgd2hpbGUgdGhlCisJCQkJICogY29yZWR1bXAgcmVhZHMgdGhlIHZtX2ZsYWdzLgor CQkJCSAqLworCQkJCWlmICghbW1nZXRfc3RpbGxfdmFsaWQobW0pKSB7CisJCQkJCS8qCisJCQkJ CSAqIFNpbGVudGx5IHJldHVybiAiY291bnQiCisJCQkJCSAqIGxpa2UgaWYgZ2V0X3Rhc2tfbW0o KQorCQkJCQkgKiBmYWlsZWQuIEZJWE1FOiBzaG91bGQgdGhpcworCQkJCQkgKiBmdW5jdGlvbiBo YXZlIHJldHVybmVkCisJCQkJCSAqIC1FU1JDSCBpZiBnZXRfdGFza19tbSgpCisJCQkJCSAqIGZh aWxlZCBsaWtlIGlmCisJCQkJCSAqIGdldF9wcm9jX3Rhc2soKSBmYWlscz8KKwkJCQkJICovCisJ CQkJCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0pOworCQkJCQlnb3RvIG91dF9tbTsKKwkJCQl9CiAJ CQkJZm9yICh2bWEgPSBtbS0+bW1hcDsgdm1hOyB2bWEgPSB2bWEtPnZtX25leHQpIHsKIAkJCQkJ dm1hLT52bV9mbGFncyAmPSB+Vk1fU09GVERJUlRZOwogCQkJCQl2bWFfc2V0X3BhZ2VfcHJvdCh2 bWEpOwpkaWZmIC0tZ2l0IGEvZnMvdXNlcmZhdWx0ZmQuYyBiL2ZzL3VzZXJmYXVsdGZkLmMKaW5k ZXggNzg0ZDY2NzQ3NWFlLi5mMGVhMTk5ODEyOGUgMTAwNjQ0Ci0tLSBhL2ZzL3VzZXJmYXVsdGZk LmMKKysrIGIvZnMvdXNlcmZhdWx0ZmQuYwpAQCAtNDc5LDYgKzQ3OSw4IEBAIHN0YXRpYyBpbnQg dXNlcmZhdWx0ZmRfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmls ZSkKIAkgKiB0YWtpbmcgdGhlIG1tYXBfc2VtIGZvciB3cml0aW5nLgogCSAqLwogCWRvd25fd3Jp dGUoJm1tLT5tbWFwX3NlbSk7CisJaWYgKCFtbWdldF9zdGlsbF92YWxpZChtbSkpCisJCWdvdG8g c2tpcF9tbTsKIAlwcmV2ID0gTlVMTDsKIAlmb3IgKHZtYSA9IG1tLT5tbWFwOyB2bWE7IHZtYSA9 IHZtYS0+dm1fbmV4dCkgewogCQljb25kX3Jlc2NoZWQoKTsKQEAgLTUwMSw2ICs1MDMsNyBAQCBz dGF0aWMgaW50IHVzZXJmYXVsdGZkX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0 IGZpbGUgKmZpbGUpCiAJCXZtYS0+dm1fZmxhZ3MgPSBuZXdfZmxhZ3M7CiAJCXZtYS0+dm1fdXNl cmZhdWx0ZmRfY3R4ID0gTlVMTF9WTV9VRkZEX0NUWDsKIAl9Citza2lwX21tOgogCXVwX3dyaXRl KCZtbS0+bW1hcF9zZW0pOwogCW1tcHV0KG1tKTsKIHdha2V1cDoKQEAgLTgwMiw2ICs4MDUsOCBA QCBzdGF0aWMgaW50IHVzZXJmYXVsdGZkX3JlZ2lzdGVyKHN0cnVjdCB1c2VyZmF1bHRmZF9jdHgg KmN0eCwKIAkJZ290byBvdXQ7CiAKIAlkb3duX3dyaXRlKCZtbS0+bW1hcF9zZW0pOworCWlmICgh bW1nZXRfc3RpbGxfdmFsaWQobW0pKQorCQlnb3RvIG91dF91bmxvY2s7CiAJdm1hID0gZmluZF92 bWFfcHJldihtbSwgc3RhcnQsICZwcmV2KTsKIAlpZiAoIXZtYSkKIAkJZ290byBvdXRfdW5sb2Nr OwpAQCAtOTQ3LDYgKzk1Miw4IEBAIHN0YXRpYyBpbnQgdXNlcmZhdWx0ZmRfdW5yZWdpc3Rlcihz dHJ1Y3QgdXNlcmZhdWx0ZmRfY3R4ICpjdHgsCiAJCWdvdG8gb3V0OwogCiAJZG93bl93cml0ZSgm bW0tPm1tYXBfc2VtKTsKKwlpZiAoIW1tZ2V0X3N0aWxsX3ZhbGlkKG1tKSkKKwkJZ290byBvdXRf dW5sb2NrOwogCXZtYSA9IGZpbmRfdm1hX3ByZXYobW0sIHN0YXJ0LCAmcHJldik7CiAJaWYgKCF2 bWEpCiAJCWdvdG8gb3V0X3VubG9jazsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2NoZWQu aCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaAppbmRleCAxYzQ4N2EzYWJkODQuLjYyMTU0Y2QzNjM2 NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1ZGUvbGludXgv c2NoZWQuaApAQCAtMjkzOCw2ICsyOTM4LDI3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBtbWdldF9u b3RfemVybyhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKIAlyZXR1cm4gYXRvbWljX2luY19ub3RfemVy bygmbW0tPm1tX3VzZXJzKTsKIH0KIAorLyoKKyAqIFRoaXMgaGFzIHRvIGJlIGNhbGxlZCBhZnRl ciBhIGdldF90YXNrX21tKCkvbW1nZXRfbm90X3plcm8oKQorICogZm9sbG93ZWQgYnkgdGFraW5n IHRoZSBtbWFwX3NlbSBmb3Igd3JpdGluZyBiZWZvcmUgbW9kaWZ5aW5nIHRoZQorICogdm1hcyBv ciBhbnl0aGluZyB0aGUgY29yZWR1bXAgcHJldGVuZHMgbm90IHRvIGNoYW5nZSBmcm9tIHVuZGVy IGl0LgorICoKKyAqIE5PVEU6IGZpbmRfZXh0ZW5kX3ZtYSgpIGNhbGxlZCBmcm9tIEdVUCBjb250 ZXh0IGlzIHRoZSBvbmx5IHBsYWNlCisgKiB0aGF0IGNhbiBtb2RpZnkgdGhlICJtbSIgKG5vdGFi bHkgdGhlIHZtX3N0YXJ0L2VuZCkgdW5kZXIgbW1hcF9zZW0KKyAqIGZvciByZWFkaW5nIGFuZCBv dXRzaWRlIHRoZSBjb250ZXh0IG9mIHRoZSBwcm9jZXNzLCBzbyBpdCBpcyBhbHNvCisgKiB0aGUg b25seSBjYXNlIHRoYXQgaG9sZHMgdGhlIG1tYXBfc2VtIGZvciByZWFkaW5nIHRoYXQgbXVzdCBj YWxsCisgKiB0aGlzIGZ1bmN0aW9uLiBHZW5lcmFsbHkgaWYgdGhlIG1tYXBfc2VtIGlzIGhvbGQg Zm9yIHJlYWRpbmcKKyAqIHRoZXJlJ3Mgbm8gbmVlZCBvZiB0aGlzIGNoZWNrIGFmdGVyIGdldF90 YXNrX21tKCkvbW1nZXRfbm90X3plcm8oKS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBv YnNvbGV0ZWQgYW5kIHRoZSBjaGVjayBjYW4gYmUgcmVtb3ZlZCwgYWZ0ZXIKKyAqIHRoZSBjb3Jl ZHVtcCBjb2RlIHdpbGwgaG9sZCB0aGUgbW1hcF9zZW0gZm9yIHdyaXRpbmcgYmVmb3JlCisgKiBp bnZva2luZyB0aGUgLT5jb3JlX2R1bXAgbWV0aG9kcy4KKyAqLworc3RhdGljIGlubGluZSBib29s IG1tZ2V0X3N0aWxsX3ZhbGlkKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQoreworCXJldHVybiBsaWtl bHkoIW1tLT5jb3JlX3N0YXRlKTsKK30KKwogLyogbW1wdXQgZ2V0cyByaWQgb2YgdGhlIG1hcHBp bmdzIGFuZCBhbGwgdXNlci1zcGFjZSAqLwogZXh0ZXJuIHZvaWQgbW1wdXQoc3RydWN0IG1tX3N0 cnVjdCAqKTsKICNpZmRlZiBDT05GSUdfTU1VCmRpZmYgLS1naXQgYS9tbS9tbWFwLmMgYi9tbS9t bWFwLmMKaW5kZXggM2YyMzE0YWQ2YWNkLi44YmM1ZjJiMDY2ZTQgMTAwNjQ0Ci0tLSBhL21tL21t YXAuYworKysgYi9tbS9tbWFwLmMKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlIDxsaW51eC91 c2VyZmF1bHRmZF9rLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRl IDxsaW51eC9wa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAKICNpbmNsdWRlIDxh c20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CkBAIC0yNDQ4LDcgKzI0 NDksOCBAQCBmaW5kX2V4dGVuZF92bWEoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxv bmcgYWRkcikKIAl2bWEgPSBmaW5kX3ZtYV9wcmV2KG1tLCBhZGRyLCAmcHJldik7CiAJaWYgKHZt YSAmJiAodm1hLT52bV9zdGFydCA8PSBhZGRyKSkKIAkJcmV0dXJuIHZtYTsKLQlpZiAoIXByZXYg fHwgZXhwYW5kX3N0YWNrKHByZXYsIGFkZHIpKQorCS8qIGRvbid0IGFsdGVyIHZtX2VuZCBpZiB0 aGUgY29yZWR1bXAgaXMgcnVubmluZyAqLworCWlmICghcHJldiB8fCAhbW1nZXRfc3RpbGxfdmFs aWQobW0pIHx8IGV4cGFuZF9zdGFjayhwcmV2LCBhZGRyKSkKIAkJcmV0dXJuIE5VTEw7CiAJaWYg KHByZXYtPnZtX2ZsYWdzICYgVk1fTE9DS0VEKQogCQlwb3B1bGF0ZV92bWFfcGFnZV9yYW5nZShw cmV2LCBhZGRyLCBwcmV2LT52bV9lbmQsIE5VTEwpOwpAQCAtMjQ3NCw2ICsyNDc2LDkgQEAgZmlu ZF9leHRlbmRfdm1hKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIpCiAJ CXJldHVybiB2bWE7CiAJaWYgKCEodm1hLT52bV9mbGFncyAmIFZNX0dST1dTRE9XTikpCiAJCXJl dHVybiBOVUxMOworCS8qIGRvbid0IGFsdGVyIHZtX3N0YXJ0IGlmIHRoZSBjb3JlZHVtcCBpcyBy dW5uaW5nICovCisJaWYgKCFtbWdldF9zdGlsbF92YWxpZChtbSkpCisJCXJldHVybiBOVUxMOwog CXN0YXJ0ID0gdm1hLT52bV9zdGFydDsKIAlpZiAoZXhwYW5kX3N0YWNrKHZtYSwgYWRkcikpCiAJ CXJldHVybiBOVUxMOwotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAg ICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNv LnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtp bmdkb20KCg== --=-IRP4Tj/QfnP6iA/vED8E--