From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:40578 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751269AbeDZSix (ORCPT ); Thu, 26 Apr 2018 14:38:53 -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 A370C1044E077 for ; Thu, 26 Apr 2018 11:38:50 -0700 (PDT) Date: Thu, 26 Apr 2018 14:38:48 -0400 (EDT) Message-Id: <20180426.143848.775817046303070031.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Apr_26_14_38_48_2018_354)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Thu_Apr_26_14_38_48_2018_354)-- 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(Thu_Apr_26_14_38_48_2018_354)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_414.mbox" RnJvbSAwZjQxYmVkY2Q0ZWJlYTJkNGFmNmUxYWNiMTk2OThlMzJjYjA2YjYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6 IFN1biwgMjIgQXByIDIwMTggMTk6MTE6NTAgKzA4MDAKU3ViamVjdDogW1BBVENIIDAxLzMzXSBi b25kaW5nOiBkbyBub3Qgc2V0IHNsYXZlX2RldiBucGluZm8gYmVmb3JlCiBzbGF2ZV9lbmFibGVf bmV0cG9sbCBpbiBib25kX2Vuc2xhdmUKClsgVXBzdHJlYW0gY29tbWl0IGRkZWE3ODhjNjMwOTRm N2M0ODM3ODMyNjU1NjNkZDViNTAwNTJlMjggXQoKQWZ0ZXIgQ29tbWl0IDhhOGVmYTIyZjUxYiAo ImJvbmRpbmc6IHN5bmMgbmV0cG9sbCBjb2RlIHdpdGggYnJpZGdlIiksIGl0CndvdWxkIHNldCBz bGF2ZV9kZXYgbnBpbmZvIGluIHNsYXZlX2VuYWJsZV9uZXRwb2xsIHdoZW4gZW5zbGF2aW5nIGEg ZGV2CmlmIGJvbmQtPmRldi0+bnBpbmZvIHdhcyBzZXQuCgpIb3dldmVyIG5vdyBzbGF2ZV9kZXYg bnBpbmZvIGlzIHNldCB3aXRoIGJvbmQtPmRldi0+bnBpbmZvIGJlZm9yZSBjYWxsaW5nCnNsYXZl X2VuYWJsZV9uZXRwb2xsLiBXaXRoIHNsYXZlX2RldiBucGluZm8gc2V0LCBfX25ldHBvbGxfc2V0 dXAgY2FsbGVkCmluIHNsYXZlX2VuYWJsZV9uZXRwb2xsIHdpbGwgbm90IGNhbGwgc2xhdmUgZGV2 J3MgLm5kb19uZXRwb2xsX3NldHVwKCkuCkl0IGNhdXNlcyB0aGF0IHRoZSBsb3dlciBkZXYgb2Yg dGhpcyBzbGF2ZSBkZXYgY2FuJ3Qgc2V0IGl0cyBucGluZm8uCgpPbmUgd2F5IHRvIHJlcHJvZHVj ZSBpdDoKCiAgIyBtb2Rwcm9iZSBib25kaW5nCiAgIyBicmN0bCBhZGRiciBicjAKICAjIGJyY3Rs IGFkZGlmIGJyMCBldGgxCiAgIyBpZmNvbmZpZyBib25kMCAxOTIuMTY4LjEyMi4xLzI0IHVwCiAg IyBpZmVuc2xhdmUgYm9uZDAgZXRoMgogICMgc3lzdGVtY3RsIHJlc3RhcnQgbmV0Y29uc29sZQog ICMgaWZlbnNsYXZlIGJvbmQwIGJyMAogICMgaWZjb25maWcgZXRoMiBkb3duCiAgIyBzeXN0ZW1j dGwgcmVzdGFydCBuZXRjb25zb2xlCgpUaGUgbmV0cG9sbCB3b24ndCByZWFsbHkgd29yay4KClRo aXMgcGF0Y2ggaXMgdG8gcmVtb3ZlIHRoYXQgc2xhdmVfZGV2IG5waW5mbyBzZXR0aW5nIGluIGJv bmRfZW5zbGF2ZSgpLgoKRml4ZXM6IDhhOGVmYTIyZjUxYiAoImJvbmRpbmc6IHN5bmMgbmV0cG9s bCBjb2RlIHdpdGggYnJpZGdlIikKU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5A Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyB8IDMgKy0tCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9u ZF9tYWluLmMKaW5kZXggODJmMjhmZmNjZGRmLi5iZjNiZTJlNmQ0YTggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9i b25kX21haW4uYwpAQCAtMTY1Niw4ICsxNjU2LDcgQEAgaW50IGJvbmRfZW5zbGF2ZShzdHJ1Y3Qg bmV0X2RldmljZSAqYm9uZF9kZXYsIHN0cnVjdCBuZXRfZGV2aWNlICpzbGF2ZV9kZXYpCiAJfSAv KiBzd2l0Y2goYm9uZF9tb2RlKSAqLwogCiAjaWZkZWYgQ09ORklHX05FVF9QT0xMX0NPTlRST0xM RVIKLQlzbGF2ZV9kZXYtPm5waW5mbyA9IGJvbmQtPmRldi0+bnBpbmZvOwotCWlmIChzbGF2ZV9k ZXYtPm5waW5mbykgeworCWlmIChib25kLT5kZXYtPm5waW5mbykgewogCQlpZiAoc2xhdmVfZW5h YmxlX25ldHBvbGwobmV3X3NsYXZlKSkgewogCQkJbmV0ZGV2X2luZm8oYm9uZF9kZXYsICJtYXN0 ZXJfZGV2IGlzIHVzaW5nIG5ldHBvbGwsIGJ1dCBuZXcgc2xhdmUgZGV2aWNlIGRvZXMgbm90IHN1 cHBvcnQgbmV0cG9sbFxuIik7CiAJCQlyZXMgPSAtRUJVU1k7Ci0tIAoyLjE0LjMKCgpGcm9tIDBi MGEwM2EzZGRmZjMxOWQ2ZjA1NTY4NjgxMDFhOGZiZjY0OWZhZGMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU3Vu LCAyMiBBcHIgMjAxOCAxODoyOToyMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMzNdIGlwdjY6 IGFkZCBSVEFfVEFCTEUgYW5kIFJUQV9QUkVGU1JDIHRvIHJ0bV9pcHY2X3BvbGljeQoKWyBVcHN0 cmVhbSBjb21taXQgYWE4Zjg3Nzg0OTNjODVmZmY0ODBjZGY4YjM0OWIxZTFkY2I1ZjI0MyBdCgpL TVNBTiByZXBvcnRlZCB1c2Ugb2YgdW5pbml0LXZhbHVlIHRoYXQgSSB0cmFja2VkIHRvIGxhY2sK b2YgcHJvcGVyIHNpemUgY2hlY2sgb24gUlRBX1RBQkxFIGF0dHJpYnV0ZS4KCkkgYWxzbyBiZWxp ZXZlIFJUQV9QUkVGU1JDIGxhY2tzIGEgc2ltaWxhciBjaGVjay4KCkZpeGVzOiA4Njg3MmNiNTc5 MjUgKCJbSVB2Nl0gcm91dGU6IEZJQjYgY29uZmlndXJhdGlvbiB1c2luZyBzdHJ1Y3QgZmliNl9j b25maWciKQpGaXhlczogYzM5NjhhODU3YTZiICgiaXB2NjogUlRBX1BSRUZTUkMgc3VwcG9ydCBm b3IgaXB2NiByb3V0ZSBzb3VyY2UgYWRkcmVzcyBzZWxlY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5 emthbGxlckBnb29nbGVncm91cHMuY29tPgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5A Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjYvcm91dGUuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91 dGUuYwppbmRleCAwMTI2ZDliZmE2NzAuLmUwNGM1MzRiNTczZSAxMDA2NDQKLS0tIGEvbmV0L2lw djYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBAIC0yOTU5LDYgKzI5NTksNyBAQCB2 b2lkIHJ0Nl9tdHVfY2hhbmdlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBt dHUpCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBydG1faXB2Nl9wb2xpY3lbUlRB X01BWCsxXSA9IHsKIAlbUlRBX0dBVEVXQVldICAgICAgICAgICA9IHsgLmxlbiA9IHNpemVvZihz dHJ1Y3QgaW42X2FkZHIpIH0sCisJW1JUQV9QUkVGU1JDXQkJPSB7IC5sZW4gPSBzaXplb2Yoc3Ry dWN0IGluNl9hZGRyKSB9LAogCVtSVEFfT0lGXSAgICAgICAgICAgICAgID0geyAudHlwZSA9IE5M QV9VMzIgfSwKIAlbUlRBX0lJRl0JCT0geyAudHlwZSA9IE5MQV9VMzIgfSwKIAlbUlRBX1BSSU9S SVRZXSAgICAgICAgICA9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCkBAIC0yOTcwLDYgKzI5NzEsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgcnRtX2lwdjZfcG9saWN5W1JUQV9NQVgr MV0gPSB7CiAJW1JUQV9FWFBJUkVTXQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtSVEFfVUlE XQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtSVEFfTUFSS10JCT0geyAudHlwZSA9IE5MQV9V MzIgfSwKKwlbUlRBX1RBQkxFXQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LAogfTsKIAogc3RhdGlj IGludCBydG1fdG9fZmliNl9jb25maWcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNn aGRyICpubGgsCi0tIAoyLjE0LjMKCgpGcm9tIDJjY2IzMzE0NDkxNDBjN2FjMDhlYjkyNDRmYTll ZjNhYTMwNjZmOWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFobWVkIEFiZGVsc2Fs YW0gPGFtc2FsYW0yMEBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjAgQXByIDIwMTggMTU6NTg6MDUg KzAyMDAKU3ViamVjdDogW1BBVENIIDAzLzMzXSBpcHY2OiBzcjogZml4IE5VTEwgcG9pbnRlciBk ZXJlZmVyZW5jZSBpbgogc2VnNl9kb19zcmhfZW5jYXAoKS0gdjQgcGt0cwoKWyBVcHN0cmVhbSBj b21taXQgYTk1N2ZhMTkwYWE5ZDkxNjhiMzNkNDYwYTUyNDFhNmQwODhjNjI2NSBdCgpJbiBjYXNl IG9mIHNlZzYgaW4gZW5jYXAgbW9kZSwgc2VnNl9kb19zcmhfZW5jYXAoKSBjYWxscyBzZXRfdHVu X3NyYygpCmluIG9yZGVyIHRvIHNldCB0aGUgc3JjIGFkZHIgb2Ygb3V0ZXIgSVB2NiBoZWFkZXIu CgpUaGUgbmV0X2RldmljZSBpcyByZXF1aXJlZCBmb3Igc2V0X3R1bl9zcmMoKS4gSG93ZXZlciBj YWxsaW5nIGlwNl9kc3RfaWRldigpCm9uIGRzdF9lbnRyeSBpbiBjYXNlIG9mIElQdjQgdHJhZmZp YyByZXN1bHRzIG9uIHRoZSBmb2xsb3dpbmcgYnVnLgoKVXNpbmcganVzdCBkc3QtPmRldiBzaG91 bGQgZml4IHRoaXMgQlVHLgoKWyAgMTk2LjI0MjQ2MV0gQlVHOiB1bmFibGUgdG8gaGFuZGxlIGtl cm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgMDAwMDAwMDAwMDAwMDAwMApbICAxOTYu MjQyOTc1XSBQR0QgODAwMDAwMDEwZjA3NjA2NyBQNEQgODAwMDAwMDEwZjA3NjA2NyBQVUQgMTBm MDYwMDY3IFBNRCAwClsgIDE5Ni4yNDMzMjldIE9vcHM6IDAwMDAgWyMxXSBTTVAgUFRJClsgIDE5 Ni4yNDM0NjhdIE1vZHVsZXMgbGlua2VkIGluOiBuZnNkIGF1dGhfcnBjZ3NzIG5mc19hY2wgbmZz IGxvY2tkIGdyYWNlIGZzY2FjaGUgc3VucnBjIGNyY3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNsbXVs IGdoYXNoX2NsbXVsbmlfaW50ZWwgcGNiYyBhZXNuaV9pbnRlbCBhZXNfeDg2XzY0IGNyeXB0b19z aW1kIGNyeXB0ZCBpbnB1dF9sZWRzIGdsdWVfaGVscGVyIGxlZF9jbGFzcyBwY3Nwa3Igc2VyaW9f cmF3IG1hY19oaWQgdmlkZW8gYXV0b2ZzNCBoaWRfZ2VuZXJpYyB1c2JoaWQgaGlkIGUxMDAwIGky Y19waWl4NCBhaGNpIHBhdGFfYWNwaSBsaWJhaGNpClsgIDE5Ni4yNDQzNjJdIENQVTogMiBQSUQ6 IDEwODkgQ29tbTogcGluZyBOb3QgdGFpbnRlZCA0LjE2LjArICMxClsgIDE5Ni4yNDQ2MDZdIEhh cmR3YXJlIG5hbWU6IGlubm90ZWsgR21iSCBWaXJ0dWFsQm94L1ZpcnR1YWxCb3gsIEJJT1MgVmly dHVhbEJveCAxMi8wMS8yMDA2ClsgIDE5Ni4yNDQ5NjhdIFJJUDogMDAxMDpzZWc2X2RvX3NyaF9l bmNhcCsweDFhYy8weDMwMApbICAxOTYuMjQ1MjM2XSBSU1A6IDAwMTg6ZmZmZmIyY2UwMGIyM2E2 MCBFRkxBR1M6IDAwMDEwMjAyClsgIDE5Ni4yNDU0NjRdIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBS Qlg6IGZmZmY4YzdmNTNlZWEzMDAgUkNYOiAwMDAwMDAwMDAwMDAwMDAwClsgIDE5Ni4yNDU3NDJd IFJEWDogMDAwMGYxMDAwMDAwMDAwMCBSU0k6IGZmZmY4YzdmNTIwODVhNmMgUkRJOiBmZmZmOGM3 ZjQxMTY2ODUwClsgIDE5Ni4yNDYwMThdIFJCUDogZmZmZmIyY2UwMGIyM2FhOCBSMDg6IDAwMDAw MDAwMDAwMjYxZTAgUjA5OiBmZmZmOGM3ZjQxMTY2ODAwClsgIDE5Ni4yNDYyOTRdIFIxMDogZmZm ZmRjZTUwNDBhYzc4MCBSMTE6IGZmZmY4YzdmNDExNjY4MjggUjEyOiBmZmZmOGM3ZjQxMTY2ODA4 ClsgIDE5Ni4yNDY1NzBdIFIxMzogZmZmZjhjN2Y1MjA4NWE0NCBSMTQ6IGZmZmZmZmZmYjczMjEx YzAgUjE1OiBmZmZmOGM3ZTY5ZTQ0MjAwClsgIDE5Ni4yNDY4NDZdIEZTOiAgMDAwMDdmYzQ0ODc4 OTcwMCgwMDAwKSBHUzpmZmZmOGM3ZjU5ZDAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAw MDAKWyAgMTk2LjI0NzI4Nl0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAw MDA4MDA1MDAzMwpbICAxOTYuMjQ3NTI2XSBDUjI6IDAwMDAwMDAwMDAwMDAwMDAgQ1IzOiAwMDAw MDAwMTBmMDVhMDAwIENSNDogMDAwMDAwMDAwMDA0MDZlMApbICAxOTYuMjQ3ODA0XSBDYWxsIFRy YWNlOgpbICAxOTYuMjQ3OTcyXSAgc2VnNl9kb19zcmgrMHgxNWIvMHgxYzAKWyAgMTk2LjI0ODE1 Nl0gIHNlZzZfb3V0cHV0KzB4M2MvMHgyMjAKWyAgMTk2LjI0ODM0MV0gID8gcHJhbmRvbV91MzIr MHgxNC8weDIwClsgIDE5Ni4yNDg1MjZdICA/IGlwX2lkZW50c19yZXNlcnZlKzB4NmMvMHg4MApb ICAxOTYuMjQ4NzIzXSAgPyBfX2lwX3NlbGVjdF9pZGVudCsweDkwLzB4MTAwClsgIDE5Ni4yNDg5 MjNdICA/IGlwX2FwcGVuZF9kYXRhLnBhcnQuNTArMHg2Yy8weGQwClsgIDE5Ni4yNDkxMzNdICBs d3R1bm5lbF9vdXRwdXQrMHg0NC8weDcwClsgIDE5Ni4yNDkzMjhdICBpcF9zZW5kX3NrYisweDE1 LzB4NDAKWyAgMTk2LjI0OTUxNV0gIHJhd19zZW5kbXNnKzB4OGMzLzB4YWMwClsgIDE5Ni4yNDk3 MDFdICA/IF9jb3B5X2Zyb21fdXNlcisweDJlLzB4NjAKWyAgMTk2LjI0OTg5N10gID8gcndfY29w eV9jaGVja191dmVjdG9yKzB4NTMvMHgxMTAKWyAgMTk2LjI1MDEwNl0gID8gX2NvcHlfZnJvbV91 c2VyKzB4MmUvMHg2MApbICAxOTYuMjUwMjk5XSAgPyBjb3B5X21zZ2hkcl9mcm9tX3VzZXIrMHhj ZS8weDE0MApbICAxOTYuMjUwNTA4XSAgc29ja19zZW5kbXNnKzB4MzYvMHg0MApbICAxOTYuMjUw NjkwXSAgX19fc3lzX3NlbmRtc2crMHgyOTIvMHgyYTAKWyAgMTk2LjI1MDg4MV0gID8gX2NvbmRf cmVzY2hlZCsweDE1LzB4MzAKWyAgMTk2LjI1MTA3NF0gID8gY29weV90ZXJtaW9zKzB4MWUvMHg3 MApbICAxOTYuMjUxMjYxXSAgPyBfY29weV90b191c2VyKzB4MjIvMHgzMApbICAxOTYuMjUxNTc1 XSAgPyB0dHlfbW9kZV9pb2N0bCsweDFjMy8weDRlMApbICAxOTYuMjUxNzgyXSAgPyBfY29uZF9y ZXNjaGVkKzB4MTUvMHgzMApbICAxOTYuMjUxOTcyXSAgPyBtdXRleF9sb2NrKzB4ZS8weDMwClsg IDE5Ni4yNTIxNTJdICA/IHZ2YXJfZmF1bHQrMHhkMi8weDExMApbICAxOTYuMjUyMzM3XSAgPyBf X2RvX2ZhdWx0KzB4MWYvMHhjMApbICAxOTYuMjUyNTIxXSAgPyBfX2hhbmRsZV9tbV9mYXVsdCsw eGMxZi8weDEyZDAKWyAgMTk2LjI1MjcyN10gID8gX19zeXNfc2VuZG1zZysweDYzLzB4YTAKWyAg MTk2LjI1MjkxOV0gIF9fc3lzX3NlbmRtc2crMHg2My8weGEwClsgIDE5Ni4yNTMxMDddICBkb19z eXNjYWxsXzY0KzB4NzIvMHgyMDAKWyAgMTk2LjI1MzMwNV0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0 ZXJfaHdmcmFtZSsweDNkLzB4YTIKWyAgMTk2LjI1MzUzMF0gUklQOiAwMDMzOjB4N2ZjNDQ4MGIw NjkwClsgIDE5Ni4yNTM3MTVdIFJTUDogMDAyYjowMDAwN2ZmZGU5ZjI1MmY4IEVGTEFHUzogMDAw MDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMmUKWyAgMTk2LjI1NDA1M10gUkFYOiBmZmZm ZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDA0MCBSQ1g6IDAwMDA3ZmM0NDgwYjA2OTAK WyAgMTk2LjI1NDMzMV0gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDYwYTM2 MCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKWyAgMTk2LjI1NDYwOF0gUkJQOiAwMDAwN2ZmZGU5ZjI1 M2YwIFIwODogMDAwMDAwMDAwMDJkMWU4MSBSMDk6IDAwMDAwMDAwMDAwMDAwMDIKWyAgMTk2LjI1 NDg4NF0gUjEwOiAwMDAwN2ZmZGU5ZjI1MGMwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAw MDAwMDAwMDBiMjIwNzAKWyAgMTk2LjI1NTIwNV0gUjEzOiAyMGM0OWJhNWUzNTNmN2NmIFIxNDog NDMxYmRlODJkN2I2MzRkYiBSMTU6IDAwMDA3ZmZkZTlmMjc4ZmUKWyAgMTk2LjI1NTQ4NF0gQ29k ZTogYTUgMGYgYjYgNDUgYzAgNDEgODggNDEgMjggNDEgMGYgYjYgNDEgMmMgNDggYzEgZTAgMDQg NDkgOGIgNTQgMDEgMzggNDkgOGIgNDQgMDEgMzAgNDkgODkgNTEgMjAgNDkgODkgNDEgMTggNDgg OGIgODMgYjAgMDAgMDAgMDAgPDQ4PiA4YiAzMCA0OSA4YiA4NiAwOCAwYiAwMCAwMCA0OCA4YiA0 MCAyMCA0OCA4YiA1MCAwOCA0OCAwYiAxMApbICAxOTYuMjU2MTkwXSBSSVA6IHNlZzZfZG9fc3Jo X2VuY2FwKzB4MWFjLzB4MzAwIFJTUDogZmZmZmIyY2UwMGIyM2E2MApbICAxOTYuMjU2NDQ1XSBD UjI6IDAwMDAwMDAwMDAwMDAwMDAKWyAgMTk2LjI1NjY3Nl0gLS0tWyBlbmQgdHJhY2UgNzFhZjdk MDkzNjAzODg1YyBdLS0tCgpGaXhlczogODkzNmVmNzYwNGMxMSAoImlwdjY6IHNyOiBmaXggTlVM TCBwb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gc2V0dGluZyBlbmNhcCBzb3VyY2UgYWRkcmVzcyIp ClNpZ25lZC1vZmYtYnk6IEFobWVkIEFiZGVsc2FsYW0gPGFtc2FsYW0yMEBnbWFpbC5jb20+CkFj a2VkLWJ5OiBEYXZpZCBMZWJydW4gPGRsZWJydW5AZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3NlZzZf aXB0dW5uZWwuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3NlZzZfaXB0dW5uZWwuYyBiL25ldC9pcHY2 L3NlZzZfaXB0dW5uZWwuYwppbmRleCBmMzQzZTZmMGZjOTUuLjVmZTEzOTQ4NDkxOSAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvc2VnNl9pcHR1bm5lbC5jCisrKyBiL25ldC9pcHY2L3NlZzZfaXB0dW5u ZWwuYwpAQCAtMTM2LDcgKzEzNiw3IEBAIGludCBzZWc2X2RvX3NyaF9lbmNhcChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgaXB2Nl9zcl9oZHIgKm9zcmgsIGludCBwcm90bykKIAlpc3JoLT5u ZXh0aGRyID0gcHJvdG87CiAKIAloZHItPmRhZGRyID0gaXNyaC0+c2VnbWVudHNbaXNyaC0+Zmly c3Rfc2VnbWVudF07Ci0Jc2V0X3R1bl9zcmMobmV0LCBpcDZfZHN0X2lkZXYoZHN0KS0+ZGV2LCAm aGRyLT5kYWRkciwgJmhkci0+c2FkZHIpOworCXNldF90dW5fc3JjKG5ldCwgZHN0LT5kZXYsICZo ZHItPmRhZGRyLCAmaGRyLT5zYWRkcik7CiAKICNpZmRlZiBDT05GSUdfSVBWNl9TRUc2X0hNQUMK IAlpZiAoc3JfaGFzX2htYWMoaXNyaCkpIHsKLS0gCjIuMTQuMwoKCkZyb20gYzUyZTkzOGQ3MjNh MDYzZTg5ZTljMGJlZDU5MzY5NGZhYjVmMzY2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRXJpYyBCaWdnZXJzIDxlYmlnZ2Vyc0Bnb29nbGUuY29tPgpEYXRlOiBUdWUsIDE3IEFwciAy MDE4IDEyOjA3OjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNC8zM10gS0VZUzogRE5TOiBsaW1p dCB0aGUgbGVuZ3RoIG9mIG9wdGlvbiBzdHJpbmdzCgpbIFVwc3RyZWFtIGNvbW1pdCA5YzQzOGQ3 YTNhNTJkY2MyYjllZDA5NWNiODdkM2E1ZTgzY2Y3ZTYwIF0KCkFkZGluZyBhIGRuc19yZXNvbHZl ciBrZXkgd2hvc2UgcGF5bG9hZCBjb250YWlucyBhIHZlcnkgbG9uZyBvcHRpb24gbmFtZQpyZXN1 bHRlZCBpbiB0aGF0IHN0cmluZyBiZWluZyBwcmludGVkIGluIGZ1bGwuICBUaGlzIGhpdCB0aGUg V0FSTl9PTkNFKCkKaW4gc2V0X3ByZWNpc2lvbigpIGR1cmluZyB0aGUgcHJpbnRrKCksIGJlY2F1 c2UgcHJpbnRrKCkgb25seSBzdXBwb3J0cyBhCnByZWNpc2lvbiBvZiB1cCB0byAzMjc2NyBieXRl czoKCiAgICBwcmVjaXNpb24gMTAwMDAwMCB0b28gbGFyZ2UKICAgIFdBUk5JTkc6IENQVTogMCBQ SUQ6IDc1MiBhdCBsaWIvdnNwcmludGYuYzoyMTg5IHZzbnByaW50ZisweDRiYy8weDViMAoKRml4 IGl0IGJ5IGxpbWl0aW5nIG9wdGlvbiBzdHJpbmdzIChjb21iaW5lZCBuYW1lICsgdmFsdWUpIHRv IGEgbXVjaCBtb3JlCnJlYXNvbmFibGUgMTI4IGJ5dGVzLiAgVGhlIGV4YWN0IGxpbWl0IGlzIGFy Yml0cmFyeSwgYnV0IGN1cnJlbnRseSB0aGUKb25seSByZWNvZ25pemVkIG9wdGlvbiBpcyBmb3Jt YXR0ZWQgYXMgImRuc2Vycm9yPSVsdSIgd2hpY2ggZml0cyB3ZWxsCndpdGhpbiB0aGlzIGxpbWl0 LgoKQWxzbyByYXRlbGltaXQgdGhlIHByaW50a3MuCgpSZXByb2R1Y2VyOgoKICAgIHBlcmwgLWUg J3ByaW50ICIjIiwgIkEiIHggMTAwMDAwMCwgIlx4MDAiJyB8IGtleWN0bCBwYWRkIGRuc19yZXNv bHZlciBkZXNjIEBzCgpUaGlzIGJ1ZyB3YXMgZm91bmQgdXNpbmcgc3l6a2FsbGVyLgoKUmVwb3J0 ZWQtYnk6IE1hcmsgUnV0bGFuZCA8bWFyay5ydXRsYW5kQGFybS5jb20+CkZpeGVzOiA0YTJkNzg5 MjY3ZTAgKCJETlM6IElmIHRoZSBETlMgc2VydmVyIHJldHVybnMgYW4gZXJyb3IsIGFsbG93IHRo YXQgdG8gYmUgY2FjaGVkIFt2ZXIgIzJdIikKU2lnbmVkLW9mZi1ieTogRXJpYyBCaWdnZXJzIDxl YmlnZ2Vyc0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2Ruc19yZXNvbHZlci9kbnNfa2V5LmMgfCAxMyArKysr KystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9kbnNfcmVzb2x2ZXIvZG5zX2tleS5jIGIvbmV0L2Ruc19yZXNv bHZlci9kbnNfa2V5LmMKaW5kZXggZTFkNGQ4OThhMDA3Li5mMDI1Mjc2OGVjZjQgMTAwNjQ0Ci0t LSBhL25ldC9kbnNfcmVzb2x2ZXIvZG5zX2tleS5jCisrKyBiL25ldC9kbnNfcmVzb2x2ZXIvZG5z X2tleS5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4K ICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5j bHVkZSA8bGludXgvcmF0ZWxpbWl0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5j bHVkZSA8bGludXgva2V5Y3RsLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CkBAIC05MSw5ICs5 Miw5IEBAIGRuc19yZXNvbHZlcl9wcmVwYXJzZShzdHJ1Y3Qga2V5X3ByZXBhcnNlZF9wYXlsb2Fk ICpwcmVwKQogCiAJCQluZXh0X29wdCA9IG1lbWNocihvcHQsICcjJywgZW5kIC0gb3B0KSA/OiBl bmQ7CiAJCQlvcHRfbGVuID0gbmV4dF9vcHQgLSBvcHQ7Ci0JCQlpZiAoIW9wdF9sZW4pIHsKLQkJ CQlwcmludGsoS0VSTl9XQVJOSU5HCi0JCQkJICAgICAgICJFbXB0eSBvcHRpb24gdG8gZG5zX3Jl c29sdmVyIGtleVxuIik7CisJCQlpZiAob3B0X2xlbiA8PSAwIHx8IG9wdF9sZW4gPiAxMjgpIHsK KwkJCQlwcl93YXJuX3JhdGVsaW1pdGVkKCJJbnZhbGlkIG9wdGlvbiBsZW5ndGggKCVkKSBmb3Ig ZG5zX3Jlc29sdmVyIGtleVxuIiwKKwkJCQkJCSAgICBvcHRfbGVuKTsKIAkJCQlyZXR1cm4gLUVJ TlZBTDsKIAkJCX0KIApAQCAtMTI3LDEwICsxMjgsOCBAQCBkbnNfcmVzb2x2ZXJfcHJlcGFyc2Uo c3RydWN0IGtleV9wcmVwYXJzZWRfcGF5bG9hZCAqcHJlcCkKIAkJCX0KIAogCQliYWRfb3B0aW9u X3ZhbHVlOgotCQkJcHJpbnRrKEtFUk5fV0FSTklORwotCQkJICAgICAgICJPcHRpb24gJyUqLipz JyB0byBkbnNfcmVzb2x2ZXIga2V5OiIKLQkJCSAgICAgICAiIGJhZC9taXNzaW5nIHZhbHVlXG4i LAotCQkJICAgICAgIG9wdF9ubGVuLCBvcHRfbmxlbiwgb3B0KTsKKwkJCXByX3dhcm5fcmF0ZWxp bWl0ZWQoIk9wdGlvbiAnJSouKnMnIHRvIGRuc19yZXNvbHZlciBrZXk6IGJhZC9taXNzaW5nIHZh bHVlXG4iLAorCQkJCQkgICAgb3B0X25sZW4sIG9wdF9ubGVuLCBvcHQpOwogCQkJcmV0dXJuIC1F SU5WQUw7CiAJCX0gd2hpbGUgKG9wdCA9IG5leHRfb3B0ICsgMSwgb3B0IDwgZW5kKTsKIAl9Ci0t IAoyLjE0LjMKCgpGcm9tIDJiNTY2ZGNmZWRiYTZhMDRlODViYzcwY2VhY2UwYzQwNzY1ZTM0YzYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBh bHBoYWxpbmsuZnI+CkRhdGU6IE1vbiwgMjMgQXByIDIwMTggMTY6MTU6MTQgKzAyMDAKU3ViamVj dDogW1BBVENIIDA1LzMzXSBsMnRwOiBjaGVjayBzb2NrYWRkciBsZW5ndGggaW4gcHBwb2wydHBf Y29ubmVjdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBlYjFjMjhjMDU4OTRhNGIxZjZiNTZjNWJmMDcy MjA1ZTY0Y2ZhMjgwIF0KCkNoZWNrIHNvY2thZGRyX2xlbiBiZWZvcmUgZGVyZWZlcmVuY2luZyBz cC0+c2FfcHJvdG9jb2wsIHRvIGVuc3VyZSB0aGF0Cml0IGFjdHVhbGx5IHBvaW50cyB0byB2YWxp ZCBkYXRhLgoKRml4ZXM6IGZkNTU4ZDE4NmRmMiAoImwydHA6IFNwbGl0IHBwcG9sMnRwIHBhdGNo IGludG8gc2VwYXJhdGUgbDJ0cCBhbmQgcHBwIHBhcnRzIikKUmVwb3J0ZWQtYnk6IHN5emJvdCth NzBhYzg5MGIyM2IxYmYyOWY1Y0BzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYt Ynk6IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbDJ0cC9sMnRw X3BwcC5jIHwgNyArKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9wcHAuYyBiL25ldC9sMnRwL2wydHBfcHBwLmMKaW5kZXgg MGMyNzM4MzQ5NDQyLi44YmVmMzVhYTg3ODYgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfcHBw LmMKKysrIGIvbmV0L2wydHAvbDJ0cF9wcHAuYwpAQCAtNTkxLDYgKzU5MSwxMyBAQCBzdGF0aWMg aW50IHBwcG9sMnRwX2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRy ICp1c2VydmFkZHIsCiAJbG9ja19zb2NrKHNrKTsKIAogCWVycm9yID0gLUVJTlZBTDsKKworCWlm IChzb2NrYWRkcl9sZW4gIT0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9wcHBvbDJ0cCkgJiYKKwkg ICAgc29ja2FkZHJfbGVuICE9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfcHBwb2wydHB2MykgJiYK KwkgICAgc29ja2FkZHJfbGVuICE9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfcHBwb2wydHBpbjYp ICYmCisJICAgIHNvY2thZGRyX2xlbiAhPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX3BwcG9sMnRw djNpbjYpKQorCQlnb3RvIGVuZDsKKwogCWlmIChzcC0+c2FfcHJvdG9jb2wgIT0gUFhfUFJPVE9f T0wyVFApCiAJCWdvdG8gZW5kOwogCi0tIAoyLjE0LjMKCgpGcm9tIDg5ZTg0YWRmZWRkZWQ5ZmVj ZjZhMzMxODkxZDBmNDJmMDkwZTU2MDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAxMSBBcHIgMjAxOCAx NDo0NjowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzNdIG5ldDogdmFsaWRhdGUgYXR0cmli dXRlIHNpemVzIGluIG5laWdoX2R1bXBfdGFibGUoKQoKWyBVcHN0cmVhbSBjb21taXQgN2RkMDdj MTQzYTRiNTRkMDUwZTc0OGJlZTRiNGI5ZTk0YTdiMTc0NCBdCgpTaW5jZSBuZWlnaF9kdW1wX3Rh YmxlKCkgY2FsbHMgbmxtc2dfcGFyc2UoKSB3aXRob3V0IGdpdmluZyBwb2xpY3kKY29uc3RyYWlu dHMsIGF0dHJpYnV0ZXMgY2FuIGhhdmUgYXJiaXJhcnkgc2l6ZSB0aGF0IHdlIG11c3QgdmFsaWRh dGUKClJlcG9ydGVkIGJ5IHN5emJvdC9LTVNBTiA6CgpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUg aW4gbmVpZ2hfbWFzdGVyX2ZpbHRlcmVkIG5ldC9jb3JlL25laWdoYm91ci5jOjIyOTIgW2lubGlu ZV0KQlVHOiBLTVNBTjogdW5pbml0LXZhbHVlIGluIG5laWdoX2R1bXBfdGFibGUgbmV0L2NvcmUv bmVpZ2hib3VyLmM6MjM0OCBbaW5saW5lXQpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gbmVp Z2hfZHVtcF9pbmZvKzB4MWFmMC8weDIyNTAgbmV0L2NvcmUvbmVpZ2hib3VyLmM6MjQzOApDUFU6 IDEgUElEOiAzNTc1IENvbW06IHN5emthbGxlcjI2ODg5MSBOb3QgdGFpbnRlZCA0LjE2LjArICM4 MwpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21w dXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0 YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxODUvMHgxZDAg bGliL2R1bXBfc3RhY2suYzo1Mwoga21zYW5fcmVwb3J0KzB4MTQyLzB4MjQwIG1tL2ttc2FuL2tt c2FuLmM6MTA2NwogX19tc2FuX3dhcm5pbmdfMzIrMHg2Yy8weGIwIG1tL2ttc2FuL2ttc2FuX2lu c3RyLmM6Njc2CiBuZWlnaF9tYXN0ZXJfZmlsdGVyZWQgbmV0L2NvcmUvbmVpZ2hib3VyLmM6MjI5 MiBbaW5saW5lXQogbmVpZ2hfZHVtcF90YWJsZSBuZXQvY29yZS9uZWlnaGJvdXIuYzoyMzQ4IFtp bmxpbmVdCiBuZWlnaF9kdW1wX2luZm8rMHgxYWYwLzB4MjI1MCBuZXQvY29yZS9uZWlnaGJvdXIu YzoyNDM4CiBuZXRsaW5rX2R1bXArMHg5YWQvMHgxNTQwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsu YzoyMjI1CiBfX25ldGxpbmtfZHVtcF9zdGFydCsweDExNjcvMHgxMmEwIG5ldC9uZXRsaW5rL2Fm X25ldGxpbmsuYzoyMzIyCiBuZXRsaW5rX2R1bXBfc3RhcnQgaW5jbHVkZS9saW51eC9uZXRsaW5r Lmg6MjE0IFtpbmxpbmVdCiBydG5ldGxpbmtfcmN2X21zZysweDE0MzUvMHgxNTYwIG5ldC9jb3Jl L3J0bmV0bGluay5jOjQ1OTgKIG5ldGxpbmtfcmN2X3NrYisweDM1NS8weDVmMCBuZXQvbmV0bGlu ay9hZl9uZXRsaW5rLmM6MjQ0NwogcnRuZXRsaW5rX3JjdisweDUwLzB4NjAgbmV0L2NvcmUvcnRu ZXRsaW5rLmM6NDY1MwogbmV0bGlua191bmljYXN0X2tlcm5lbCBuZXQvbmV0bGluay9hZl9uZXRs aW5rLmM6MTMxMSBbaW5saW5lXQogbmV0bGlua191bmljYXN0KzB4MTY3Mi8weDE3NTAgbmV0L25l dGxpbmsvYWZfbmV0bGluay5jOjEzMzcKIG5ldGxpbmtfc2VuZG1zZysweDEwNDgvMHgxMzEwIG5l dC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxOTAwCiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tl dC5jOjYzMCBbaW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2NDAgW2lubGluZV0K IF9fX3N5c19zZW5kbXNnKzB4ZWMwLzB4MTMxMCBuZXQvc29ja2V0LmM6MjA0NgogX19zeXNfc2Vu ZG1zZyBuZXQvc29ja2V0LmM6MjA4MCBbaW5saW5lXQogU1lTQ19zZW5kbXNnKzB4MmEzLzB4M2Qw IG5ldC9zb2NrZXQuYzoyMDkxCiBTeVNfc2VuZG1zZysweDU0LzB4ODAgbmV0L3NvY2tldC5jOjIw ODcKIGRvX3N5c2NhbGxfNjQrMHgzMDkvMHg0MzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjg3 CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHgzZC8weGEyClJJUDogMDAzMzoweDQz ZmVkOQpSU1A6IDAwMmI6MDAwMDdmZmRkYmVlMjc5OCBFRkxBR1M6IDAwMDAwMjEzIE9SSUdfUkFY OiAwMDAwMDAwMDAwMDAwMDJlClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDA0 MDAyYzggUkNYOiAwMDAwMDAwMDAwNDNmZWQ5ClJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAw MDAwMDAwMjAwMDUwMDAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClJCUDogMDAwMDAwMDAwMDZjYTAx OCBSMDg6IDAwMDAwMDAwMDA0MDAyYzggUjA5OiAwMDAwMDAwMDAwNDAwMmM4ClIxMDogMDAwMDAw MDAwMDQwMDJjOCBSMTE6IDAwMDAwMDAwMDAwMDAyMTMgUjEyOiAwMDAwMDAwMDAwNDAxODAwClIx MzogMDAwMDAwMDAwMDQwMTg5MCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAw MDAwMDAwCgpVbmluaXQgd2FzIGNyZWF0ZWQgYXQ6CiBrbXNhbl9zYXZlX3N0YWNrX3dpdGhfZmxh Z3MgbW0va21zYW4va21zYW4uYzoyNzggW2lubGluZV0KIGttc2FuX2ludGVybmFsX3BvaXNvbl9z aGFkb3crMHhiOC8weDFiMCBtbS9rbXNhbi9rbXNhbi5jOjE4OAoga21zYW5fa21hbGxvYysweDk0 LzB4MTAwIG1tL2ttc2FuL2ttc2FuLmM6MzE0CiBrbXNhbl9zbGFiX2FsbG9jKzB4MTEvMHgyMCBt bS9rbXNhbi9rbXNhbi5jOjMyMQogc2xhYl9wb3N0X2FsbG9jX2hvb2sgbW0vc2xhYi5oOjQ0NSBb aW5saW5lXQogc2xhYl9hbGxvY19ub2RlIG1tL3NsdWIuYzoyNzM3IFtpbmxpbmVdCiBfX2ttYWxs b2Nfbm9kZV90cmFja19jYWxsZXIrMHhhZWQvMHgxMWMwIG1tL3NsdWIuYzo0MzY5CiBfX2ttYWxs b2NfcmVzZXJ2ZSBuZXQvY29yZS9za2J1ZmYuYzoxMzggW2lubGluZV0KIF9fYWxsb2Nfc2tiKzB4 MmNmLzB4OWYwIG5ldC9jb3JlL3NrYnVmZi5jOjIwNgogYWxsb2Nfc2tiIGluY2x1ZGUvbGludXgv c2tidWZmLmg6OTg0IFtpbmxpbmVdCiBuZXRsaW5rX2FsbG9jX2xhcmdlX3NrYiBuZXQvbmV0bGlu ay9hZl9uZXRsaW5rLmM6MTE4MyBbaW5saW5lXQogbmV0bGlua19zZW5kbXNnKzB4OWE2LzB4MTMx MCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MTg3NQogc29ja19zZW5kbXNnX25vc2VjIG5ldC9z b2NrZXQuYzo2MzAgW2lubGluZV0KIHNvY2tfc2VuZG1zZyBuZXQvc29ja2V0LmM6NjQwIFtpbmxp bmVdCiBfX19zeXNfc2VuZG1zZysweGVjMC8weDEzMTAgbmV0L3NvY2tldC5jOjIwNDYKIF9fc3lz X3NlbmRtc2cgbmV0L3NvY2tldC5jOjIwODAgW2lubGluZV0KIFNZU0Nfc2VuZG1zZysweDJhMy8w eDNkMCBuZXQvc29ja2V0LmM6MjA5MQogU3lTX3NlbmRtc2crMHg1NC8weDgwIG5ldC9zb2NrZXQu YzoyMDg3CiBkb19zeXNjYWxsXzY0KzB4MzA5LzB4NDMwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5j OjI4NwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4M2QvMHhhMgoKRml4ZXM6IDIx ZmRkMDkyYWNjNyAoIm5ldDogQWRkIHN1cHBvcnQgZm9yIGZpbHRlcmluZyBuZWlnaCBkdW1wIGJ5 IG1hc3RlciBkZXZpY2UiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkNjOiBEYXZpZCBBaGVybiA8ZHNhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClJlcG9y dGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpBY2tlZC1ieTogRGF2 aWQgQWhlcm4gPGRzYUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvbmVpZ2hib3VyLmMg fCAxMiArKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvbmVpZ2hib3VyLmMgYi9uZXQvY29yZS9u ZWlnaGJvdXIuYwppbmRleCA3NDFhZTI1NTQxOTAuLmEyMDlkODM0ZGFhMiAxMDA2NDQKLS0tIGEv bmV0L2NvcmUvbmVpZ2hib3VyLmMKKysrIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKQEAgLTIzMjMs MTIgKzIzMjMsMTYgQEAgc3RhdGljIGludCBuZWlnaF9kdW1wX3RhYmxlKHN0cnVjdCBuZWlnaF90 YWJsZSAqdGJsLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJZXJyID0gbmxtc2dfcGFyc2Uobmxo LCBzaXplb2Yoc3RydWN0IG5kbXNnKSwgdGIsIE5EQV9NQVgsIE5VTEwsIE5VTEwpOwogCWlmICgh ZXJyKSB7Ci0JCWlmICh0YltOREFfSUZJTkRFWF0pCisJCWlmICh0YltOREFfSUZJTkRFWF0pIHsK KwkJCWlmIChubGFfbGVuKHRiW05EQV9JRklOREVYXSkgIT0gc2l6ZW9mKHUzMikpCisJCQkJcmV0 dXJuIC1FSU5WQUw7CiAJCQlmaWx0ZXJfaWR4ID0gbmxhX2dldF91MzIodGJbTkRBX0lGSU5ERVhd KTsKLQotCQlpZiAodGJbTkRBX01BU1RFUl0pCisJCX0KKwkJaWYgKHRiW05EQV9NQVNURVJdKSB7 CisJCQlpZiAobmxhX2xlbih0YltOREFfTUFTVEVSXSkgIT0gc2l6ZW9mKHUzMikpCisJCQkJcmV0 dXJuIC1FSU5WQUw7CiAJCQlmaWx0ZXJfbWFzdGVyX2lkeCA9IG5sYV9nZXRfdTMyKHRiW05EQV9N QVNURVJdKTsKLQorCQl9CiAJCWlmIChmaWx0ZXJfaWR4IHx8IGZpbHRlcl9tYXN0ZXJfaWR4KQog CQkJZmxhZ3MgfD0gTkxNX0ZfRFVNUF9GSUxURVJFRDsKIAl9Ci0tIAoyLjE0LjMKCgpGcm9tIDk5 YTQwZTMxYTdjMjQ1NDUyZjE3YmZjNDNlZmNmMTRlZTQzNjkxMmIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBU aHUsIDE5IEFwciAyMDE4IDEyOjI1OjM4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNy8zM10gbGxj OiBkZWxldGUgdGltZXJzIHN5bmNocm9ub3VzbHkgaW4gbGxjX3NrX2ZyZWUoKQoKWyBVcHN0cmVh bSBjb21taXQgYjkwNWVmOWFiOTAxMTVkMDAxYzE2NTgyNTlhZjRiMWM2NTA4ODc3OSBdCgpUaGUg Y29ubmVjdGlvbiB0aW1lcnMgb2YgYW4gbGxjIHNvY2sgY291bGQgYmUgc3RpbGwgZmx5aW5nCmFm dGVyIHdlIGRlbGV0ZSB0aGVtIGluIGxsY19za19mcmVlKCksIGFuZCBldmVuIHBvc3NpYmx5CmFm dGVyIHdlIGZyZWUgdGhlIHNvY2suIFdlIGNvdWxkIGp1c3Qgd2FpdCBzeW5jaHJvbm91c2x5Cmhl cmUgaW4gY2FzZSBvZiB0cm91Ymxlcy4KCk5vdGUsIEkgbGVhdmUgb3RoZXIgY2FsbCBwYXRocyBh cyB0aGV5IGFyZSwgc2luY2UgdGhleSBtYXkKbm90IGhhdmUgdG8gd2FpdCwgYXQgbGVhc3Qgd2Ug Y2FuIGNoYW5nZSB0aGVtIHRvIHN5bmNocm9ub3VzbHkKd2hlbiBuZWVkZWQuCgpBbHNvLCBtb3Zl IHRoZSBjb2RlIHRvIG5ldC9sbGMvbGxjX2Nvbm4uYywgd2hpY2ggaXMgYXBwYXJlbnRseQphIGJl dHRlciBwbGFjZS4KClJlcG9ydGVkLWJ5OiA8c3l6Ym90K2Y5MjIyODRjMThlYTIzYThlNDU3QHN5 emthbGxlci5hcHBzcG90bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uu d2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvbGxjX2Nvbm4uaCB8ICAxICsKIG5ldC9s bGMvbGxjX2NfYWMuYyAgICAgfCAgOSArLS0tLS0tLS0KIG5ldC9sbGMvbGxjX2Nvbm4uYyAgICAg fCAyMiArKysrKysrKysrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbGxjX2Nvbm4u aCBiL2luY2x1ZGUvbmV0L2xsY19jb25uLmgKaW5kZXggZmU5OTRkMmU1Mjg2Li5lYTk4NWFhN2E2 YzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2xsY19jb25uLmgKKysrIGIvaW5jbHVkZS9uZXQv bGxjX2Nvbm4uaApAQCAtOTcsNiArOTcsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBjaGFyIGxsY19i YWNrbG9nX3R5cGUoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogc3RydWN0IHNvY2sgKmxsY19za19h bGxvYyhzdHJ1Y3QgbmV0ICpuZXQsIGludCBmYW1pbHksIGdmcF90IHByaW9yaXR5LAogCQkJICBz dHJ1Y3QgcHJvdG8gKnByb3QsIGludCBrZXJuKTsKK3ZvaWQgbGxjX3NrX3N0b3BfYWxsX3RpbWVy cyhzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgc3luYyk7CiB2b2lkIGxsY19za19mcmVlKHN0cnVjdCBz b2NrICpzayk7CiAKIHZvaWQgbGxjX3NrX3Jlc2V0KHN0cnVjdCBzb2NrICpzayk7CmRpZmYgLS1n aXQgYS9uZXQvbGxjL2xsY19jX2FjLmMgYi9uZXQvbGxjL2xsY19jX2FjLmMKaW5kZXggZWEyMjVi ZDI2NzJjLi5mOGQ0YWI4Y2ExYTUgMTAwNjQ0Ci0tLSBhL25ldC9sbGMvbGxjX2NfYWMuYworKysg Yi9uZXQvbGxjL2xsY19jX2FjLmMKQEAgLTEwOTYsMTQgKzEwOTYsNyBAQCBpbnQgbGxjX2Nvbm5f YWNfaW5jX3R4X3dpbl9zaXplKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikK IAogaW50IGxsY19jb25uX2FjX3N0b3BfYWxsX3RpbWVycyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCBza19idWZmICpza2IpCiB7Ci0Jc3RydWN0IGxsY19zb2NrICpsbGMgPSBsbGNfc2soc2spOwot Ci0JZGVsX3RpbWVyKCZsbGMtPnBmX2N5Y2xlX3RpbWVyLnRpbWVyKTsKLQlkZWxfdGltZXIoJmxs Yy0+YWNrX3RpbWVyLnRpbWVyKTsKLQlkZWxfdGltZXIoJmxsYy0+cmVqX3NlbnRfdGltZXIudGlt ZXIpOwotCWRlbF90aW1lcigmbGxjLT5idXN5X3N0YXRlX3RpbWVyLnRpbWVyKTsKLQlsbGMtPmFj a19tdXN0X2JlX3NlbmQgPSAwOwotCWxsYy0+YWNrX3BmID0gMDsKKwlsbGNfc2tfc3RvcF9hbGxf dGltZXJzKHNrLCBmYWxzZSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9sbGMv bGxjX2Nvbm4uYyBiL25ldC9sbGMvbGxjX2Nvbm4uYwppbmRleCA1ZTkxYjQ3ZjBkMmEuLjlhNDI0 NDhlYjE4MiAxMDA2NDQKLS0tIGEvbmV0L2xsYy9sbGNfY29ubi5jCisrKyBiL25ldC9sbGMvbGxj X2Nvbm4uYwpAQCAtOTUxLDYgKzk1MSwyNiBAQCBzdHJ1Y3Qgc29jayAqbGxjX3NrX2FsbG9jKHN0 cnVjdCBuZXQgKm5ldCwgaW50IGZhbWlseSwgZ2ZwX3QgcHJpb3JpdHksIHN0cnVjdCBwcgogCXJl dHVybiBzazsKIH0KIAordm9pZCBsbGNfc2tfc3RvcF9hbGxfdGltZXJzKHN0cnVjdCBzb2NrICpz aywgYm9vbCBzeW5jKQoreworCXN0cnVjdCBsbGNfc29jayAqbGxjID0gbGxjX3NrKHNrKTsKKwor CWlmIChzeW5jKSB7CisJCWRlbF90aW1lcl9zeW5jKCZsbGMtPnBmX2N5Y2xlX3RpbWVyLnRpbWVy KTsKKwkJZGVsX3RpbWVyX3N5bmMoJmxsYy0+YWNrX3RpbWVyLnRpbWVyKTsKKwkJZGVsX3RpbWVy X3N5bmMoJmxsYy0+cmVqX3NlbnRfdGltZXIudGltZXIpOworCQlkZWxfdGltZXJfc3luYygmbGxj LT5idXN5X3N0YXRlX3RpbWVyLnRpbWVyKTsKKwl9IGVsc2UgeworCQlkZWxfdGltZXIoJmxsYy0+ cGZfY3ljbGVfdGltZXIudGltZXIpOworCQlkZWxfdGltZXIoJmxsYy0+YWNrX3RpbWVyLnRpbWVy KTsKKwkJZGVsX3RpbWVyKCZsbGMtPnJlal9zZW50X3RpbWVyLnRpbWVyKTsKKwkJZGVsX3RpbWVy KCZsbGMtPmJ1c3lfc3RhdGVfdGltZXIudGltZXIpOworCX0KKworCWxsYy0+YWNrX211c3RfYmVf c2VuZCA9IDA7CisJbGxjLT5hY2tfcGYgPSAwOworfQorCiAvKioKICAqCWxsY19za19mcmVlIC0g RnJlZXMgYSBMTEMgc29ja2V0CiAgKglAc2sgLSBzb2NrZXQgdG8gZnJlZQpAQCAtOTYzLDcgKzk4 Myw3IEBAIHZvaWQgbGxjX3NrX2ZyZWUoc3RydWN0IHNvY2sgKnNrKQogCiAJbGxjLT5zdGF0ZSA9 IExMQ19DT05OX09VVF9PRl9TVkM7CiAJLyogU3RvcCBhbGwgKHBvc3NpYmx5KSBydW5uaW5nIHRp bWVycyAqLwotCWxsY19jb25uX2FjX3N0b3BfYWxsX3RpbWVycyhzaywgTlVMTCk7CisJbGxjX3Nr X3N0b3BfYWxsX3RpbWVycyhzaywgdHJ1ZSk7CiAjaWZkZWYgREVCVUdfTExDX0NPTk5fQUxMT0MK IAlwcmludGsoS0VSTl9JTkZPICIlczogdW5hY2txPSVkLCB0eHE9JWRcbiIsIF9fZnVuY19fLAog CQlza2JfcXVldWVfbGVuKCZsbGMtPnBkdV91bmFja19xKSwKLS0gCjIuMTQuMwoKCkZyb20gNGY2 MmY1OWY3OTJmYTljZWExNDA0ODZlM2JhYTU1MWQ5Mjk3ZWFmOCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSmFubiBIb3JuIDxqYW5uaEBnb29nbGUuY29tPgpEYXRlOiBGcmksIDIwIEFw ciAyMDE4IDE1OjU3OjMwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOC8zM10gdGNwOiBkb24ndCBy ZWFkIG91dC1vZi1ib3VuZHMgb3BzaXplCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZTVhMjA2YWI2ODZm MDk4MzY3YjYxYWNhOTg5ZjVjZGZhODExNGEzIF0KClRoZSBvbGQgY29kZSByZWFkcyB0aGUgIm9w c2l6ZSIgdmFyaWFibGUgZnJvbSBvdXQtb2YtYm91bmRzIG1lbW9yeSAoZmlyc3QKYnl0ZSBiZWhp bmQgdGhlIHNlZ21lbnQpIGlmIGEgYnJva2VuIFRDUCBzZWdtZW50IGVuZHMgZGlyZWN0bHkgYWZ0 ZXIgYW4Kb3Bjb2RlIHRoYXQgaXMgbmVpdGhlciBFT0wgbm9yIE5PUC4KClRoZSByZXN1bHQgb2Yg dGhlIHJlYWQgaXNuJ3QgdXNlZCBmb3IgYW55dGhpbmcsIHNvIHRoZSB3b3JzdCB0aGluZyB0aGF0 CmNvdWxkIHRoZW9yZXRpY2FsbHkgaGFwcGVuIGlzIGEgcGFnZWZhdWx0OyBhbmQgc2luY2UgdGhl IHBoeXNtYXAgaXMgdXN1YWxseQptb3N0bHkgY29udGlndW91cywgZXZlbiB0aGF0IHNlZW1zIHBy ZXR0eSB1bmxpa2VseS4KClRoZSBmb2xsb3dpbmcgQyByZXByb2R1Y2VyIHRyaWdnZXJzIHRoZSB1 bmluaXRpYWxpemVkIHJlYWQgLSBob3dldmVyLCB5b3UKY2FuJ3QgYWN0dWFsbHkgc2VlIGFueXRo aW5nIGhhcHBlbiB1bmxlc3MgeW91IHB1dCBzb21ldGhpbmcgbGlrZSBhCnByX3dhcm4oKSBpbiB0 Y3BfcGFyc2VfbWQ1c2lnX29wdGlvbigpIHRvIHByaW50IHRoZSBvcHNpemUuCgo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KI2RlZmluZSBfR05VX1NPVVJDRQojaW5jbHVkZSA8 YXJwYS9pbmV0Lmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPGVycm5vLmg+CiNpbmNs dWRlIDxzdGRhcmcuaD4KI2luY2x1ZGUgPG5ldC9pZi5oPgojaW5jbHVkZSA8bGludXgvaWYuaD4K I2luY2x1ZGUgPGxpbnV4L2lwLmg+CiNpbmNsdWRlIDxsaW51eC90Y3AuaD4KI2luY2x1ZGUgPGxp bnV4L2luLmg+CiNpbmNsdWRlIDxsaW51eC9pZl90dW4uaD4KI2luY2x1ZGUgPGVyci5oPgojaW5j bHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMvc3RhdC5oPgojaW5jbHVkZSA8ZmNudGwu aD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHVuaXN0 ZC5oPgojaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiNpbmNsdWRlIDxhc3NlcnQuaD4KCnZvaWQgc3lz dGVtZihjb25zdCBjaGFyICpjb21tYW5kLCAuLi4pIHsKICBjaGFyICpmdWxsX2NvbW1hbmQ7CiAg dmFfbGlzdCBhcDsKICB2YV9zdGFydChhcCwgY29tbWFuZCk7CiAgaWYgKHZhc3ByaW50ZigmZnVs bF9jb21tYW5kLCBjb21tYW5kLCBhcCkgPT0gLTEpCiAgICBlcnIoMSwgInZhc3ByaW50ZiIpOwog IHZhX2VuZChhcCk7CiAgcHJpbnRmKCJzeXN0ZW1mOiA8PDwlcz4+PlxuIiwgZnVsbF9jb21tYW5k KTsKICBzeXN0ZW0oZnVsbF9jb21tYW5kKTsKfQoKY2hhciAqZGV2bmFtZTsKCmludCB0dW5fYWxs b2MoY2hhciAqbmFtZSkgewogIGludCBmZCA9IG9wZW4oIi9kZXYvbmV0L3R1biIsIE9fUkRXUik7 CiAgaWYgKGZkID09IC0xKQogICAgZXJyKDEsICJvcGVuIHR1biBkZXYiKTsKICBzdGF0aWMgc3Ry dWN0IGlmcmVxIHJlcSA9IHsgLmlmcl9mbGFncyA9IElGRl9UVU58SUZGX05PX1BJIH07CiAgc3Ry Y3B5KHJlcS5pZnJfbmFtZSwgbmFtZSk7CiAgaWYgKGlvY3RsKGZkLCBUVU5TRVRJRkYsICZyZXEp KQogICAgZXJyKDEsICJUVU5TRVRJRkYiKTsKICBkZXZuYW1lID0gcmVxLmlmcl9uYW1lOwogIHBy aW50ZigiZGV2aWNlIG5hbWU6ICVzXG4iLCBkZXZuYW1lKTsKICByZXR1cm4gZmQ7Cn0KCiNkZWZp bmUgSVBBRERSKGEsYixjLGQpICgoKGEpPDwwKSsoKGIpPDw4KSsoKGMpPDwxNikrKChkKTw8MjQp KQoKdm9pZCBzdW1fYWNjdW11bGF0ZSh1bnNpZ25lZCBpbnQgKnN1bSwgdm9pZCAqZGF0YSwgaW50 IGxlbikgewogIGFzc2VydCgobGVuJjIpPT0wKTsKICBmb3IgKGludCBpPTA7IGk8bGVuLzI7IGkr KykgewogICAgKnN1bSArPSBudG9ocygoKHVuc2lnbmVkIHNob3J0ICopZGF0YSlbaV0pOwogIH0K fQoKdW5zaWduZWQgc2hvcnQgc3VtX2ZpbmFsKHVuc2lnbmVkIGludCBzdW0pIHsKICBzdW0gPSAo c3VtID4+IDE2KSArIChzdW0gJiAweGZmZmYpOwogIHN1bSA9IChzdW0gPj4gMTYpICsgKHN1bSAm IDB4ZmZmZik7CiAgcmV0dXJuIGh0b25zKH5zdW0pOwp9Cgp2b2lkIGZpeF9pcF9zdW0oc3RydWN0 IGlwaGRyICppcCkgewogIHVuc2lnbmVkIGludCBzdW0gPSAwOwogIHN1bV9hY2N1bXVsYXRlKCZz dW0sIGlwLCBzaXplb2YoKmlwKSk7CiAgaXAtPmNoZWNrID0gc3VtX2ZpbmFsKHN1bSk7Cn0KCnZv aWQgZml4X3RjcF9zdW0oc3RydWN0IGlwaGRyICppcCwgc3RydWN0IHRjcGhkciAqdGNwKSB7CiAg dW5zaWduZWQgaW50IHN1bSA9IDA7CiAgc3RydWN0IHsKICAgIHVuc2lnbmVkIGludCBzYWRkcjsK ICAgIHVuc2lnbmVkIGludCBkYWRkcjsKICAgIHVuc2lnbmVkIGNoYXIgcGFkOwogICAgdW5zaWdu ZWQgY2hhciBwcm90b19udW07CiAgICB1bnNpZ25lZCBzaG9ydCB0Y3BfbGVuOwogIH0gZmFrZWhk ciA9IHsKICAgIC5zYWRkciA9IGlwLT5zYWRkciwKICAgIC5kYWRkciA9IGlwLT5kYWRkciwKICAg IC5wcm90b19udW0gPSBpcC0+cHJvdG9jb2wsCiAgICAudGNwX2xlbiA9IGh0b25zKG50b2hzKGlw LT50b3RfbGVuKSAtIGlwLT5paGwqNCkKICB9OwogIHN1bV9hY2N1bXVsYXRlKCZzdW0sICZmYWtl aGRyLCBzaXplb2YoZmFrZWhkcikpOwogIHN1bV9hY2N1bXVsYXRlKCZzdW0sIHRjcCwgdGNwLT5k b2ZmKjQpOwogIHRjcC0+Y2hlY2sgPSBzdW1fZmluYWwoc3VtKTsKfQoKaW50IG1haW4odm9pZCkg ewogIGludCB0dW5fZmQgPSB0dW5fYWxsb2MoImluamVjdF9kZXYlZCIpOwogIHN5c3RlbWYoImlw IGxpbmsgc2V0ICVzIHVwIiwgZGV2bmFtZSk7CiAgc3lzdGVtZigiaXAgYWRkciBhZGQgMTkyLjE2 OC40Mi4xLzI0IGRldiAlcyIsIGRldm5hbWUpOwoKICBzdHJ1Y3QgewogICAgc3RydWN0IGlwaGRy IGlwOwogICAgc3RydWN0IHRjcGhkciB0Y3A7CiAgICB1bnNpZ25lZCBjaGFyIHRjcF9vcHRzWzIw XTsKICB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHN5bl9wYWNrZXQgPSB7CiAgICAuaXAgPSB7 CiAgICAgIC5paGwgPSBzaXplb2Yoc3RydWN0IGlwaGRyKS80LAogICAgICAudmVyc2lvbiA9IDQs CiAgICAgIC50b3RfbGVuID0gaHRvbnMoc2l6ZW9mKHN5bl9wYWNrZXQpKSwKICAgICAgLnR0bCA9 IDMwLAogICAgICAucHJvdG9jb2wgPSBJUFBST1RPX1RDUCwKICAgICAgLyogRklYVVAgY2hlY2sg Ki8KICAgICAgLnNhZGRyID0gSVBBRERSKDE5MiwxNjgsNDIsMiksCiAgICAgIC5kYWRkciA9IElQ QUREUigxOTIsMTY4LDQyLDEpCiAgICB9LAogICAgLnRjcCA9IHsKICAgICAgLnNvdXJjZSA9IGh0 b25zKDEpLAogICAgICAuZGVzdCA9IGh0b25zKDEzMzcpLAogICAgICAuc2VxID0gMHgxMjM0NTY3 OCwKICAgICAgLmRvZmYgPSAoc2l6ZW9mKHN5bl9wYWNrZXQudGNwKStzaXplb2Yoc3luX3BhY2tl dC50Y3Bfb3B0cykpLzQsCiAgICAgIC5zeW4gPSAxLAogICAgICAud2luZG93ID0gaHRvbnMoNjQp LAogICAgICAuY2hlY2sgPSAwIC8qRklYVVAqLwogICAgfSwKICAgIC50Y3Bfb3B0cyA9IHsKICAg ICAgLyogSU5WQUxJRDogdHJhaWxpbmcgTUQ1U0lHIG9wY29kZSBhZnRlciBOT1BzICovCiAgICAg IDEsIDEsIDEsIDEsIDEsCiAgICAgIDEsIDEsIDEsIDEsIDEsCiAgICAgIDEsIDEsIDEsIDEsIDEs CiAgICAgIDEsIDEsIDEsIDEsIDE5CiAgICB9CiAgfTsKICBmaXhfaXBfc3VtKCZzeW5fcGFja2V0 LmlwKTsKICBmaXhfdGNwX3N1bSgmc3luX3BhY2tldC5pcCwgJnN5bl9wYWNrZXQudGNwKTsKICB3 aGlsZSAoMSkgewogICAgaW50IHdyaXRlX3JlcyA9IHdyaXRlKHR1bl9mZCwgJnN5bl9wYWNrZXQs IHNpemVvZihzeW5fcGFja2V0KSk7CiAgICBpZiAod3JpdGVfcmVzICE9IHNpemVvZihzeW5fcGFj a2V0KSkKICAgICAgZXJyKDEsICJwYWNrZXQgd3JpdGUgZmFpbGVkIik7CiAgfQp9Cj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKRml4ZXM6IGNmYjZlZWI0Yzg2MCAoIltUQ1Bd OiBNRDUgU2lnbmF0dXJlIE9wdGlvbiAoUkZDMjM4NSkgc3VwcG9ydC4iKQpTaWduZWQtb2ZmLWJ5 OiBKYW5uIEhvcm4gPGphbm5oQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfaW5wdXQuYyB8IDcg KystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5j CmluZGV4IDE0NDc0YWNlYTBiYi4uZWJiYjU0YmNiY2FjIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90 Y3BfaW5wdXQuYworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAtMzg5MiwxMSArMzg5Miw4 IEBAIGNvbnN0IHU4ICp0Y3BfcGFyc2VfbWQ1c2lnX29wdGlvbihjb25zdCBzdHJ1Y3QgdGNwaGRy ICp0aCkKIAlpbnQgbGVuZ3RoID0gKHRoLT5kb2ZmIDw8IDIpIC0gc2l6ZW9mKCp0aCk7CiAJY29u c3QgdTggKnB0ciA9IChjb25zdCB1OCAqKSh0aCArIDEpOwogCi0JLyogSWYgdGhlIFRDUCBvcHRp b24gaXMgdG9vIHNob3J0LCB3ZSBjYW4gc2hvcnQgY3V0ICovCi0JaWYgKGxlbmd0aCA8IFRDUE9M RU5fTUQ1U0lHKQotCQlyZXR1cm4gTlVMTDsKLQotCXdoaWxlIChsZW5ndGggPiAwKSB7CisJLyog SWYgbm90IGVub3VnaCBkYXRhIHJlbWFpbmluZywgd2UgY2FuIHNob3J0IGN1dCAqLworCXdoaWxl IChsZW5ndGggPj0gVENQT0xFTl9NRDVTSUcpIHsKIAkJaW50IG9wY29kZSA9ICpwdHIrKzsKIAkJ aW50IG9wc2l6ZTsKIAotLSAKMi4xNC4zCgoKRnJvbSA4MjNiNTcyZmQyNjgzODBhZGNmNjAyMDdi ZTVhNzc5N2JmZTcwNjVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFN1biwgMTUgQXByIDIwMTggMTc6NTI6MDQg LTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzMzXSBuZXQ6IGFmX3BhY2tldDogZml4IHJhY2UgaW4g UEFDS0VUX3tSfFR9WF9SSU5HCgpbIFVwc3RyZWFtIGNvbW1pdCA1MTcxYjM3ZDk1OTY0MWJiYzYx OTc4MWNhZjYyZTYxZjdiOTQwODcxIF0KCkluIG9yZGVyIHRvIHJlbW92ZSB0aGUgcmFjZSBjYXVn aHQgYnkgc3l6Ym90IFsxXSwgd2UgbmVlZAp0byBsb2NrIHRoZSBzb2NrZXQgYmVmb3JlIHVzaW5n IHBvLT50cF92ZXJzaW9uIGFzIHRoaXMgY291bGQKY2hhbmdlIHVuZGVyIHVzIG90aGVyd2lzZS4K ClRoaXMgbWVhbnMgbG9ja19zb2NrKCkgYW5kIHJlbGVhc2Vfc29jaygpIG11c3QgYmUgZG9uZSBi eQpwYWNrZXRfc2V0X3JpbmcoKSBjYWxsZXJzLgoKWzFdIDoKQlVHOiBLTVNBTjogdW5pbml0LXZh bHVlIGluIHBhY2tldF9zZXRfcmluZysweDEyNTQvMHgzODcwIG5ldC9wYWNrZXQvYWZfcGFja2V0 LmM6NDI0OQpDUFU6IDAgUElEOiAyMDE5NSBDb21tOiBzeXprYWxsZXI3MDc2MzIgTm90IHRhaW50 ZWQgNC4xNi4wKyAjODMKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2lu ZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFj ZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjE3IFtpbmxpbmVdCiBkdW1wX3N0YWNr KzB4MTg1LzB4MWQwIGxpYi9kdW1wX3N0YWNrLmM6NTMKIGttc2FuX3JlcG9ydCsweDE0Mi8weDI0 MCBtbS9rbXNhbi9rbXNhbi5jOjEwNjcKIF9fbXNhbl93YXJuaW5nXzMyKzB4NmMvMHhiMCBtbS9r bXNhbi9rbXNhbl9pbnN0ci5jOjY3NgogcGFja2V0X3NldF9yaW5nKzB4MTI1NC8weDM4NzAgbmV0 L3BhY2tldC9hZl9wYWNrZXQuYzo0MjQ5CiBwYWNrZXRfc2V0c29ja29wdCsweDEyYzYvMHg1YTkw IG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6MzY2MgogU1lTQ19zZXRzb2Nrb3B0KzB4NGI4LzB4NTcw IG5ldC9zb2NrZXQuYzoxODQ5CiBTeVNfc2V0c29ja29wdCsweDc2LzB4YTAgbmV0L3NvY2tldC5j OjE4MjgKIGRvX3N5c2NhbGxfNjQrMHgzMDkvMHg0MzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6 Mjg3CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHgzZC8weGEyClJJUDogMDAzMzow eDQ0OTA5OQpSU1A6IDAwMmI6MDAwMDdmNDJiNTMwN2NlOCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdf UkFYOiAwMDAwMDAwMDAwMDAwMDM2ClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAw MDA3MDAwM2MgUkNYOiAwMDAwMDAwMDAwNDQ5MDk5ClJEWDogMDAwMDAwMDAwMDAwMDAwNSBSU0k6 IDAwMDAwMDAwMDAwMDAxMDcgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClJCUDogMDAwMDAwMDAwMDcw MDAzOCBSMDg6IDAwMDAwMDAwMDAwMDAwMWMgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClIxMDogMDAw MDAwMDAyMDAwMDBjMCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMDAwMDAwMDAw ClIxMzogMDAwMDAwMDAwMDgwZWVjZiBSMTQ6IDAwMDA3ZjQyYjUzMDg5YzAgUjE1OiAwMDAwMDAw MDAwMDAwMDAxCgpMb2NhbCB2YXJpYWJsZSBkZXNjcmlwdGlvbjogLS0tLXJlcV91QHBhY2tldF9z ZXRzb2Nrb3B0ClZhcmlhYmxlIHdhcyBjcmVhdGVkIGF0OgogcGFja2V0X3NldHNvY2tvcHQrMHgx M2YvMHg1YTkwIG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6MzYxMgogU1lTQ19zZXRzb2Nrb3B0KzB4 NGI4LzB4NTcwIG5ldC9zb2NrZXQuYzoxODQ5CgpGaXhlczogZjZmYjhmMTAwYjgwICgiYWYtcGFj a2V0OiBUUEFDS0VUX1YzIGZsZXhpYmxlIGJ1ZmZlciBpbXBsZW1lbnRhdGlvbi4iKQpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBz eXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQu YyB8IDIzICsrKysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0 aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tl dC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCBmNGEwNTg3YjdkNWUuLmU4MjlmNDA2 NWRiZiAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFja2V0 L2FmX3BhY2tldC5jCkBAIC0zMDE3LDYgKzMwMTcsNyBAQCBzdGF0aWMgaW50IHBhY2tldF9yZWxl YXNlKHN0cnVjdCBzb2NrZXQgKnNvY2spCiAKIAlwYWNrZXRfZmx1c2hfbWNsaXN0KHNrKTsKIAor CWxvY2tfc29jayhzayk7CiAJaWYgKHBvLT5yeF9yaW5nLnBnX3ZlYykgewogCQltZW1zZXQoJnJl cV91LCAwLCBzaXplb2YocmVxX3UpKTsKIAkJcGFja2V0X3NldF9yaW5nKHNrLCAmcmVxX3UsIDEs IDApOwpAQCAtMzAyNiw2ICszMDI3LDcgQEAgc3RhdGljIGludCBwYWNrZXRfcmVsZWFzZShzdHJ1 Y3Qgc29ja2V0ICpzb2NrKQogCQltZW1zZXQoJnJlcV91LCAwLCBzaXplb2YocmVxX3UpKTsKIAkJ cGFja2V0X3NldF9yaW5nKHNrLCAmcmVxX3UsIDEsIDEpOwogCX0KKwlyZWxlYXNlX3NvY2soc2sp OwogCiAJZiA9IGZhbm91dF9yZWxlYXNlKHNrKTsKIApAQCAtMzY1NCw2ICszNjU2LDcgQEAgcGFj a2V0X3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFt ZSwgY2hhciBfX3VzZXIgKm9wdHYKIAkJdW5pb24gdHBhY2tldF9yZXFfdSByZXFfdTsKIAkJaW50 IGxlbjsKIAorCQlsb2NrX3NvY2soc2spOwogCQlzd2l0Y2ggKHBvLT50cF92ZXJzaW9uKSB7CiAJ CWNhc2UgVFBBQ0tFVF9WMToKIAkJY2FzZSBUUEFDS0VUX1YyOgpAQCAtMzY2NCwxMiArMzY2Nywx NyBAQCBwYWNrZXRfc2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGlu dCBvcHRuYW1lLCBjaGFyIF9fdXNlciAqb3B0dgogCQkJbGVuID0gc2l6ZW9mKHJlcV91LnJlcTMp OwogCQkJYnJlYWs7CiAJCX0KLQkJaWYgKG9wdGxlbiA8IGxlbikKLQkJCXJldHVybiAtRUlOVkFM OwotCQlpZiAoY29weV9mcm9tX3VzZXIoJnJlcV91LnJlcSwgb3B0dmFsLCBsZW4pKQotCQkJcmV0 dXJuIC1FRkFVTFQ7Ci0JCXJldHVybiBwYWNrZXRfc2V0X3Jpbmcoc2ssICZyZXFfdSwgMCwKLQkJ CW9wdG5hbWUgPT0gUEFDS0VUX1RYX1JJTkcpOworCQlpZiAob3B0bGVuIDwgbGVuKSB7CisJCQly ZXQgPSAtRUlOVkFMOworCQl9IGVsc2UgeworCQkJaWYgKGNvcHlfZnJvbV91c2VyKCZyZXFfdS5y ZXEsIG9wdHZhbCwgbGVuKSkKKwkJCQlyZXQgPSAtRUZBVUxUOworCQkJZWxzZQorCQkJCXJldCA9 IHBhY2tldF9zZXRfcmluZyhzaywgJnJlcV91LCAwLAorCQkJCQkJICAgIG9wdG5hbWUgPT0gUEFD S0VUX1RYX1JJTkcpOworCQl9CisJCXJlbGVhc2Vfc29jayhzayk7CisJCXJldHVybiByZXQ7CiAJ fQogCWNhc2UgUEFDS0VUX0NPUFlfVEhSRVNIOgogCXsKQEAgLTQyMTksOCArNDIyNyw2IEBAIHN0 YXRpYyBpbnQgcGFja2V0X3NldF9yaW5nKHN0cnVjdCBzb2NrICpzaywgdW5pb24gdHBhY2tldF9y ZXFfdSAqcmVxX3UsCiAJLyogQWRkZWQgdG8gYXZvaWQgbWluaW1hbCBjb2RlIGNodXJuICovCiAJ c3RydWN0IHRwYWNrZXRfcmVxICpyZXEgPSAmcmVxX3UtPnJlcTsKIAotCWxvY2tfc29jayhzayk7 Ci0KIAlyYiA9IHR4X3JpbmcgPyAmcG8tPnR4X3JpbmcgOiAmcG8tPnJ4X3Jpbmc7CiAJcmJfcXVl dWUgPSB0eF9yaW5nID8gJnNrLT5za193cml0ZV9xdWV1ZSA6ICZzay0+c2tfcmVjZWl2ZV9xdWV1 ZTsKIApAQCAtNDM1OCw3ICs0MzY0LDYgQEAgc3RhdGljIGludCBwYWNrZXRfc2V0X3Jpbmcoc3Ry dWN0IHNvY2sgKnNrLCB1bmlvbiB0cGFja2V0X3JlcV91ICpyZXFfdSwKIAlpZiAocGdfdmVjKQog CQlmcmVlX3BnX3ZlYyhwZ192ZWMsIG9yZGVyLCByZXEtPnRwX2Jsb2NrX25yKTsKIG91dDoKLQly ZWxlYXNlX3NvY2soc2spOwogCXJldHVybiBlcnI7CiB9CiAKLS0gCjIuMTQuMwoKCkZyb20gODA0 MjBkOGYyNTNkMDc1MzJlNjQ1NjQyZGYxN2JhYmU5NTBhNzM0YSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQs IDExIEFwciAyMDE4IDE0OjM2OjI4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMC8zM10gdGNwOiBt ZDU6IHJlamVjdCBUQ1BfTUQ1U0lHIG9yIFRDUF9NRDVTSUdfRVhUIG9uCiBlc3RhYmxpc2hlZCBz b2NrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCA3MjEyMzAzMjY4OTE4YjlhMjAzYWViZWFjZmRiZDgz YjVlODdiMjBkIF0KCnN5emJvdC9LTVNBTiByZXBvcnRlZCBhbiB1bmluaXQtdmFsdWUgaW4gdGNw X3BhcnNlX29wdGlvbnMoKSBbMV0KCkkgYmVsaWV2ZSB0aGlzIHdhcyBjYXVzZWQgYnkgYSBUQ1Bf TUQ1U0lHIGJlaW5nIHNldCBvbiBsaXZlCmZsb3cuCgpUaGlzIGlzIGhpZ2hseSB1bmV4cGVjdGVk LCBzaW5jZSBUQ1Agb3B0aW9uIHNwYWNlIGlzIGxpbWl0ZWQuCgpGb3IgaW5zdGFuY2UsIHByZXNl bmNlIG9mIFRDUCBNRDUgb3B0aW9uIGF1dG9tYXRpY2FsbHkgZGlzYWJsZXMKVENQIFRpbWVTdGFt cCBvcHRpb24gYXQgU1lOL1NZTkFDSyB0aW1lLCB3aGljaCB3ZSBjYW4gbm90IGRvCm9uY2UgZmxv dyBoYXMgYmVlbiBlc3RhYmxpc2hlZC4KClJlYWxseSwgYWRkaW5nL2RlbGV0aW5nIGFuIE1ENSBr ZXkgb25seSBtYWtlcyBzZW5zZSBvbiBzb2NrZXRzCmluIENMT1NFIG9yIExJU1RFTiBzdGF0ZS4K ClsxXQpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gdGNwX3BhcnNlX29wdGlvbnMrMHhkNzQv MHgxYTMwIG5ldC9pcHY0L3RjcF9pbnB1dC5jOjM3MjAKQ1BVOiAxIFBJRDogNjE3NyBDb21tOiBz eXprYWxsZXIxOTIwMDQgTm90IHRhaW50ZWQgNC4xNi4wKyAjODMKSGFyZHdhcmUgbmFtZTogR29v Z2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29v Z2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5j OjE3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTg1LzB4MWQwIGxpYi9kdW1wX3N0YWNrLmM6NTMK IGttc2FuX3JlcG9ydCsweDE0Mi8weDI0MCBtbS9rbXNhbi9rbXNhbi5jOjEwNjcKIF9fbXNhbl93 YXJuaW5nXzMyKzB4NmMvMHhiMCBtbS9rbXNhbi9rbXNhbl9pbnN0ci5jOjY3NgogdGNwX3BhcnNl X29wdGlvbnMrMHhkNzQvMHgxYTMwIG5ldC9pcHY0L3RjcF9pbnB1dC5jOjM3MjAKIHRjcF9mYXN0 X3BhcnNlX29wdGlvbnMgbmV0L2lwdjQvdGNwX2lucHV0LmM6Mzg1OCBbaW5saW5lXQogdGNwX3Zh bGlkYXRlX2luY29taW5nKzB4NGYxLzB4Mjc5MCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo1MTg0CiB0 Y3BfcmN2X2VzdGFibGlzaGVkKzB4ZjYwLzB4MmJiMCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo1NDUz CiB0Y3BfdjRfZG9fcmN2KzB4NmNkLzB4ZDkwIG5ldC9pcHY0L3RjcF9pcHY0LmM6MTQ2OQogc2tf YmFja2xvZ19yY3YgaW5jbHVkZS9uZXQvc29jay5oOjkwOCBbaW5saW5lXQogX19yZWxlYXNlX3Nv Y2srMHgyZDYvMHg2ODAgbmV0L2NvcmUvc29jay5jOjIyNzEKIHJlbGVhc2Vfc29jaysweDk3LzB4 MmEwIG5ldC9jb3JlL3NvY2suYzoyNzg2CiB0Y3Bfc2VuZG1zZysweGQ2LzB4MTAwIG5ldC9pcHY0 L3RjcC5jOjE0NjQKIGluZXRfc2VuZG1zZysweDQ4ZC8weDc0MCBuZXQvaXB2NC9hZl9pbmV0LmM6 NzY0CiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjYzMCBbaW5saW5lXQogc29ja19z ZW5kbXNnIG5ldC9zb2NrZXQuYzo2NDAgW2lubGluZV0KIFNZU0Nfc2VuZHRvKzB4NmMzLzB4N2Uw IG5ldC9zb2NrZXQuYzoxNzQ3CiBTeVNfc2VuZHRvKzB4OGEvMHhiMCBuZXQvc29ja2V0LmM6MTcx NQogZG9fc3lzY2FsbF82NCsweDMwOS8weDQzMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyODcK IGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDNkLzB4YTIKUklQOiAwMDMzOjB4NDQ4 ZmU5ClJTUDogMDAyYjowMDAwN2ZkNDcyYzY0ZDM4IEVGTEFHUzogMDAwMDAyMTYgT1JJR19SQVg6 IDAwMDAwMDAwMDAwMDAwMmMKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDZl NWEzMCBSQ1g6IDAwMDAwMDAwMDA0NDhmZTkKUkRYOiAwMDAwMDAwMDAwMDAwMjlmIFJTSTogMDAw MDAwMDAyMGE4OGY4OCBSREk6IDAwMDAwMDAwMDAwMDAwMDQKUkJQOiAwMDAwMDAwMDAwNmU1YTM0 IFIwODogMDAwMDAwMDAyMGU2ODAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMTAKUjEwOiAwMDAwMDAw MDIwMDAwN2ZkIFIxMTogMDAwMDAwMDAwMDAwMDIxNiBSMTI6IDAwMDAwMDAwMDAwMDAwMDAKUjEz OiAwMDAwN2ZmZjA3NDg5OWVmIFIxNDogMDAwMDdmZDQ3MmM2NTljMCBSMTU6IDAwMDAwMDAwMDAw MDAwMDkKClVuaW5pdCB3YXMgY3JlYXRlZCBhdDoKIGttc2FuX3NhdmVfc3RhY2tfd2l0aF9mbGFn cyBtbS9rbXNhbi9rbXNhbi5jOjI3OCBbaW5saW5lXQoga21zYW5faW50ZXJuYWxfcG9pc29uX3No YWRvdysweGI4LzB4MWIwIG1tL2ttc2FuL2ttc2FuLmM6MTg4CiBrbXNhbl9rbWFsbG9jKzB4OTQv MHgxMDAgbW0va21zYW4va21zYW4uYzozMTQKIGttc2FuX3NsYWJfYWxsb2MrMHgxMS8weDIwIG1t L2ttc2FuL2ttc2FuLmM6MzIxCiBzbGFiX3Bvc3RfYWxsb2NfaG9vayBtbS9zbGFiLmg6NDQ1IFtp bmxpbmVdCiBzbGFiX2FsbG9jX25vZGUgbW0vc2x1Yi5jOjI3MzcgW2lubGluZV0KIF9fa21hbGxv Y19ub2RlX3RyYWNrX2NhbGxlcisweGFlZC8weDExYzAgbW0vc2x1Yi5jOjQzNjkKIF9fa21hbGxv Y19yZXNlcnZlIG5ldC9jb3JlL3NrYnVmZi5jOjEzOCBbaW5saW5lXQogX19hbGxvY19za2IrMHgy Y2YvMHg5ZjAgbmV0L2NvcmUvc2tidWZmLmM6MjA2CiBhbGxvY19za2IgaW5jbHVkZS9saW51eC9z a2J1ZmYuaDo5ODQgW2lubGluZV0KIHRjcF9zZW5kX2FjaysweDE4Yy8weDkxMCBuZXQvaXB2NC90 Y3Bfb3V0cHV0LmM6MzYyNAogX190Y3BfYWNrX3NuZF9jaGVjayBuZXQvaXB2NC90Y3BfaW5wdXQu Yzo1MDQwIFtpbmxpbmVdCiB0Y3BfYWNrX3NuZF9jaGVjayBuZXQvaXB2NC90Y3BfaW5wdXQuYzo1 MDUzIFtpbmxpbmVdCiB0Y3BfcmN2X2VzdGFibGlzaGVkKzB4MjEwMy8weDJiYjAgbmV0L2lwdjQv dGNwX2lucHV0LmM6NTQ2OQogdGNwX3Y0X2RvX3JjdisweDZjZC8weGQ5MCBuZXQvaXB2NC90Y3Bf aXB2NC5jOjE0NjkKIHNrX2JhY2tsb2dfcmN2IGluY2x1ZGUvbmV0L3NvY2suaDo5MDggW2lubGlu ZV0KIF9fcmVsZWFzZV9zb2NrKzB4MmQ2LzB4NjgwIG5ldC9jb3JlL3NvY2suYzoyMjcxCiByZWxl YXNlX3NvY2srMHg5Ny8weDJhMCBuZXQvY29yZS9zb2NrLmM6Mjc4NgogdGNwX3NlbmRtc2crMHhk Ni8weDEwMCBuZXQvaXB2NC90Y3AuYzoxNDY0CiBpbmV0X3NlbmRtc2crMHg0OGQvMHg3NDAgbmV0 L2lwdjQvYWZfaW5ldC5jOjc2NAogc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2MzAg W2lubGluZV0KIHNvY2tfc2VuZG1zZyBuZXQvc29ja2V0LmM6NjQwIFtpbmxpbmVdCiBTWVNDX3Nl bmR0bysweDZjMy8weDdlMCBuZXQvc29ja2V0LmM6MTc0NwogU3lTX3NlbmR0bysweDhhLzB4YjAg bmV0L3NvY2tldC5jOjE3MTUKIGRvX3N5c2NhbGxfNjQrMHgzMDkvMHg0MzAgYXJjaC94ODYvZW50 cnkvY29tbW9uLmM6Mjg3CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHgzZC8weGEy CgpGaXhlczogY2ZiNmVlYjRjODYwICgiW1RDUF06IE1ENSBTaWduYXR1cmUgT3B0aW9uIChSRkMy Mzg1KSBzdXBwb3J0LiIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ CkFja2VkLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3Rj cC5jIHwgNiArKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRl eCAzOGI5YTYyNzZhOWQuLmU4ZDgxNDBjZDMzZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMK KysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTI3NDIsOCArMjc0MiwxMCBAQCBzdGF0aWMgaW50IGRv X3RjcF9zZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLAogI2lmZGVmIENPTkZJ R19UQ1BfTUQ1U0lHCiAJY2FzZSBUQ1BfTUQ1U0lHOgogCWNhc2UgVENQX01ENVNJR19FWFQ6Ci0J CS8qIFJlYWQgdGhlIElQLT5LZXkgbWFwcGluZ3MgZnJvbSB1c2Vyc3BhY2UgKi8KLQkJZXJyID0g dHAtPmFmX3NwZWNpZmljLT5tZDVfcGFyc2Uoc2ssIG9wdG5hbWUsIG9wdHZhbCwgb3B0bGVuKTsK KwkJaWYgKCgxIDw8IHNrLT5za19zdGF0ZSkgJiAoVENQRl9DTE9TRSB8IFRDUEZfTElTVEVOKSkK KwkJCWVyciA9IHRwLT5hZl9zcGVjaWZpYy0+bWQ1X3BhcnNlKHNrLCBvcHRuYW1lLCBvcHR2YWws IG9wdGxlbik7CisJCWVsc2UKKwkJCWVyciA9IC1FSU5WQUw7CiAJCWJyZWFrOwogI2VuZGlmCiAJ Y2FzZSBUQ1BfVVNFUl9USU1FT1VUOgotLSAKMi4xNC4zCgoKRnJvbSA1Mzk3OWIzNzZlNjBmOGNl ZGZhZDdhOGFkZWZmNmVmYTMzZmMwMjJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBX b2xmZ2FuZyBCdW1pbGxlciA8dy5idW1pbGxlckBwcm94bW94LmNvbT4KRGF0ZTogVGh1LCAxMiBB cHIgMjAxOCAxMDo0Njo1NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMzNdIG5ldDogZml4IGRl YWRsb2NrIHdoaWxlIGNsZWFyaW5nIG5laWdoYm9yIHByb3h5IHRhYmxlCgpbIFVwc3RyZWFtIGNv bW1pdCA1M2I3NmNkZjdlOGZlY2VjMWQwOWUzOGFhZDJmODU3OTg4MjU5MWE4IF0KCldoZW4gY29t aW5nIGZyb20gbmRpc2NfbmV0ZGV2X2V2ZW50KCkgaW4gbmV0L2lwdjYvbmRpc2MuYywKbmVpZ2hf aWZkb3duKCkgaXMgY2FsbGVkIHdpdGggJm5kX3RibCwgbG9ja2luZyB0aGlzIHdoaWxlCmNsZWFy aW5nIHRoZSBwcm94eSBuZWlnaGJvciBlbnRyaWVzIHdoZW4gZWcuIGRlbGV0aW5nIGFuCmludGVy ZmFjZS4gQ2FsbGluZyB0aGUgdGFibGUncyBwbmRpc2NfZGVzdHJ1Y3RvcigpIHdpdGggdGhlCmxv Y2sgc3RpbGwgaGVsZCwgaG93ZXZlciwgY2FuIGNhdXNlIGEgZGVhZGxvY2s6IFdoZW4gYQptdWx0 aWNhc3QgbGlzdGVuZXIgaXMgYXZhaWxhYmxlIGFuIElHTVAgcGFja2V0IG9mIHR5cGUKSUNNUFY2 X01HTV9SRURVQ1RJT04gbWF5IGJlIHNlbnQgb3V0LiBXaGVuIHJlYWNoaW5nCmlwNl9maW5pc2hf b3V0cHV0MigpLCBpZiBubyBuZWlnaGJvciBlbnRyeSBmb3IgdGhlIHRhcmdldAphZGRyZXNzIGlz IGZvdW5kLCBfX25laWdoX2NyZWF0ZSgpIGlzIGNhbGxlZCB3aXRoICZuZF90YmwsCndoaWNoIGl0 J2xsIHdhbnQgdG8gbG9jay4KCk1vdmUgdGhlIGVsZW1lbnRzIGludG8gdGhlaXIgb3duIGxpc3Qs IHRoZW4gdW5sb2NrIHRoZSB0YWJsZQphbmQgcGVyZm9ybSB0aGUgZGVzdHJ1Y3Rpb24uCgpCdWd6 aWxsYTogaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkyODkK Rml4ZXM6IDZmZDZjZTIwNTZkZSAoImlwdjY6IERvIG5vdCBkZXBlbmQgb24gcnQtPm4gaW4gaXA2 X2ZpbmlzaF9vdXRwdXQyKCkuIikKU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgQnVtaWxsZXIgPHcu YnVtaWxsZXJAcHJveG1veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9uZWlnaGJvdXIuYyB8IDI4ICsrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAx MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZWlnaGJvdXIuYyBiL25ldC9j b3JlL25laWdoYm91ci5jCmluZGV4IGEyMDlkODM0ZGFhMi4uNTE0ZDY5N2Q0NjkxIDEwMDY0NAot LS0gYS9uZXQvY29yZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29yZS9uZWlnaGJvdXIuYwpAQCAt NTUsNyArNTUsOCBAQCBzdGF0aWMgdm9pZCBuZWlnaF90aW1lcl9oYW5kbGVyKHVuc2lnbmVkIGxv bmcgYXJnKTsKIHN0YXRpYyB2b2lkIF9fbmVpZ2hfbm90aWZ5KHN0cnVjdCBuZWlnaGJvdXIgKm4s IGludCB0eXBlLCBpbnQgZmxhZ3MsCiAJCQkgICB1MzIgcGlkKTsKIHN0YXRpYyB2b2lkIG5laWdo X3VwZGF0ZV9ub3RpZnkoc3RydWN0IG5laWdoYm91ciAqbmVpZ2gsIHUzMiBubG1zZ19waWQpOwot c3RhdGljIGludCBwbmVpZ2hfaWZkb3duKHN0cnVjdCBuZWlnaF90YWJsZSAqdGJsLCBzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2KTsKK3N0YXRpYyBpbnQgcG5laWdoX2lmZG93bl9hbmRfdW5sb2NrKHN0 cnVjdCBuZWlnaF90YWJsZSAqdGJsLAorCQkJCSAgICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsK IAogI2lmZGVmIENPTkZJR19QUk9DX0ZTCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0 aW9ucyBuZWlnaF9zdGF0X3NlcV9mb3BzOwpAQCAtMjkxLDggKzI5Miw3IEBAIGludCBuZWlnaF9p ZmRvd24oc3RydWN0IG5laWdoX3RhYmxlICp0YmwsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7 CiAJd3JpdGVfbG9ja19iaCgmdGJsLT5sb2NrKTsKIAluZWlnaF9mbHVzaF9kZXYodGJsLCBkZXYp OwotCXBuZWlnaF9pZmRvd24odGJsLCBkZXYpOwotCXdyaXRlX3VubG9ja19iaCgmdGJsLT5sb2Nr KTsKKwlwbmVpZ2hfaWZkb3duX2FuZF91bmxvY2sodGJsLCBkZXYpOwogCiAJZGVsX3RpbWVyX3N5 bmMoJnRibC0+cHJveHlfdGltZXIpOwogCXBuZWlnaF9xdWV1ZV9wdXJnZSgmdGJsLT5wcm94eV9x dWV1ZSk7CkBAIC02ODEsOSArNjgxLDEwIEBAIGludCBwbmVpZ2hfZGVsZXRlKHN0cnVjdCBuZWln aF90YWJsZSAqdGJsLCBzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHZvaWQgKnBrZXksCiAJcmV0dXJu IC1FTk9FTlQ7CiB9CiAKLXN0YXRpYyBpbnQgcG5laWdoX2lmZG93bihzdHJ1Y3QgbmVpZ2hfdGFi bGUgKnRibCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgcG5laWdoX2lmZG93 bl9hbmRfdW5sb2NrKHN0cnVjdCBuZWlnaF90YWJsZSAqdGJsLAorCQkJCSAgICBzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogewotCXN0cnVjdCBwbmVpZ2hfZW50cnkgKm4sICoqbnA7CisJc3RydWN0 IHBuZWlnaF9lbnRyeSAqbiwgKipucCwgKmZyZWVsaXN0ID0gTlVMTDsKIAl1MzIgaDsKIAogCWZv ciAoaCA9IDA7IGggPD0gUE5FSUdIX0hBU0hNQVNLOyBoKyspIHsKQEAgLTY5MSwxNiArNjkyLDIz IEBAIHN0YXRpYyBpbnQgcG5laWdoX2lmZG93bihzdHJ1Y3QgbmVpZ2hfdGFibGUgKnRibCwgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIAkJd2hpbGUgKChuID0gKm5wKSAhPSBOVUxMKSB7CiAJCQlp ZiAoIWRldiB8fCBuLT5kZXYgPT0gZGV2KSB7CiAJCQkJKm5wID0gbi0+bmV4dDsKLQkJCQlpZiAo dGJsLT5wZGVzdHJ1Y3RvcikKLQkJCQkJdGJsLT5wZGVzdHJ1Y3RvcihuKTsKLQkJCQlpZiAobi0+ ZGV2KQotCQkJCQlkZXZfcHV0KG4tPmRldik7Ci0JCQkJa2ZyZWUobik7CisJCQkJbi0+bmV4dCA9 IGZyZWVsaXN0OworCQkJCWZyZWVsaXN0ID0gbjsKIAkJCQljb250aW51ZTsKIAkJCX0KIAkJCW5w ID0gJm4tPm5leHQ7CiAJCX0KIAl9CisJd3JpdGVfdW5sb2NrX2JoKCZ0YmwtPmxvY2spOworCXdo aWxlICgobiA9IGZyZWVsaXN0KSkgeworCQlmcmVlbGlzdCA9IG4tPm5leHQ7CisJCW4tPm5leHQg PSBOVUxMOworCQlpZiAodGJsLT5wZGVzdHJ1Y3RvcikKKwkJCXRibC0+cGRlc3RydWN0b3Iobik7 CisJCWlmIChuLT5kZXYpCisJCQlkZXZfcHV0KG4tPmRldik7CisJCWtmcmVlKG4pOworCX0KIAly ZXR1cm4gLUVOT0VOVDsKIH0KIAotLSAKMi4xNC4zCgoKRnJvbSBkNTBiZGM1MzE1MWUzM2VkZTMw NjhhZWFiYWI2NTFlOTZkYmNjYzgxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9s byBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkRhdGU6IEZyaSwgMTMgQXByIDIwMTggMTM6NTk6 MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzMzXSB0ZWFtOiBhdm9pZCBhZGRpbmcgdHdpY2Ug dGhlIHNhbWUgb3B0aW9uIHRvIHRoZSBldmVudAogbGlzdAoKWyBVcHN0cmVhbSBjb21taXQgNGZi MDUzNGZiN2JiYzIzNDZiYTdkM2EwNzJiNTM4MDA3ZjQxMzVhNSBdCgpXaGVuIHBhcnNpbmcgdGhl IG9wdGlvbnMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgc3BhY2UsCnRlYW1fbmxfY21kX29wdGlvbnNf c2V0KCkgaW5zZXJ0IHRoZW0gaW4gYSB0ZW1wb3JhcnkgbGlzdCB0byBzZW5kCm11bHRpcGxlIGV2 ZW50cyB3aXRoIGEgc2luZ2xlIG1lc3NhZ2UuCldoaWxlIGVhY2ggb3B0aW9uJ3MgYXR0cmlidXRl IGlzIGNvcnJlY3RseSB2YWxpZGF0ZWQsIHRoZSBjb2RlIGRvZXMKbm90IGNoZWNrIGZvciBkdXBs aWNhdGUgZW50cmllcyBiZWZvcmUgaW5zZXJ0aW5nIGludG8gdGhlIGV2ZW50Cmxpc3QuCgpFeHBs b2l0aW5nIHRoZSBhYm92ZSwgdGhlIHN5emJvdCB3YXMgYWJsZSB0byB0cmlnZ2VyIHRoZSBmb2xs b3dpbmcKc3BsYXQ6CgprZXJuZWwgQlVHIGF0IGxpYi9saXN0X2RlYnVnLmM6MzEhCmludmFsaWQg b3Bjb2RlOiAwMDAwIFsjMV0gU01QIEtBU0FOCkR1bXBpbmcgZnRyYWNlIGJ1ZmZlcjoKICAgIChm dHJhY2UgYnVmZmVyIGVtcHR5KQpNb2R1bGVzIGxpbmtlZCBpbjoKQ1BVOiAwIFBJRDogNDQ2NiBD b21tOiBzeXprYWxsZXI1NTY4MzUgTm90IHRhaW50ZWQgNC4xNi4wKyAjMTcKSGFyZHdhcmUgbmFt ZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJ T1MKR29vZ2xlIDAxLzAxLzIwMTEKUklQOiAwMDEwOl9fbGlzdF9hZGRfdmFsaWQrMHhhYS8weGIw IGxpYi9saXN0X2RlYnVnLmM6MjkKUlNQOiAwMDE4OmZmZmY4ODAxYjA0YmYyNDggRUZMQUdTOiAw MDAxMDI4NgpSQVg6IDAwMDAwMDAwMDAwMDAwNTggUkJYOiBmZmZmODgwMWM4ZmM3YTkwIFJDWDog MDAwMDAwMDAwMDAwMDAwMApSRFg6IDAwMDAwMDAwMDAwMDAwNTggUlNJOiBmZmZmZmZmZjgxNWZi ZjQxIFJESTogZmZmZmVkMDAzNjA5N2UzZgpSQlA6IGZmZmY4ODAxYjA0YmYyNjAgUjA4OiBmZmZm ODgwMWIwYjJhNzAwIFIwOTogZmZmZmVkMDAzYjYwNGY5MApSMTA6IGZmZmZlZDAwM2I2MDRmOTAg UjExOiBmZmZmODgwMWRiMDI3Yzg3IFIxMjogZmZmZjg4MDFjOGZjN2E5MApSMTM6IGZmZmY4ODAx YzhmYzdhOTAgUjE0OiBkZmZmZmMwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMApGUzog IDAwMDAwMDAwMDBiOTg4ODAoMDAwMCkgR1M6ZmZmZjg4MDFkYjAwMDAwMCgwMDAwKSBrbmxHUzow MDAwMDAwMDAwMDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAw ODAwNTAwMzMKQ1IyOiAwMDAwMDAwMDAwNDNmYzMwIENSMzogMDAwMDAwMDFhZmU4ZTAwMCBDUjQ6 IDAwMDAwMDAwMDAxNDA2ZjAKRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAw MDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAw MDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKQ2FsbCBUcmFjZToKICBfX2xpc3Rf YWRkIGluY2x1ZGUvbGludXgvbGlzdC5oOjYwIFtpbmxpbmVdCiAgbGlzdF9hZGQgaW5jbHVkZS9s aW51eC9saXN0Lmg6NzkgW2lubGluZV0KICB0ZWFtX25sX2NtZF9vcHRpb25zX3NldCsweDlmZi8w eDEyYjAgZHJpdmVycy9uZXQvdGVhbS90ZWFtLmM6MjU3MQogIGdlbmxfZmFtaWx5X3Jjdl9tc2cr MHg4ODkvMHgxMTIwIG5ldC9uZXRsaW5rL2dlbmV0bGluay5jOjU5OQogIGdlbmxfcmN2X21zZysw eGM2LzB4MTcwIG5ldC9uZXRsaW5rL2dlbmV0bGluay5jOjYyNAogIG5ldGxpbmtfcmN2X3NrYisw eDE3Mi8weDQ0MCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MjQ0OAogIGdlbmxfcmN2KzB4Mjgv MHg0MCBuZXQvbmV0bGluay9nZW5ldGxpbmsuYzo2MzUKICBuZXRsaW5rX3VuaWNhc3Rfa2VybmVs IG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxMzEwIFtpbmxpbmVdCiAgbmV0bGlua191bmljYXN0 KzB4NThiLzB4NzQwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxMzM2CiAgbmV0bGlua19zZW5k bXNnKzB4OWYwLzB4ZmEwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxOTAxCiAgc29ja19zZW5k bXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2MjkgW2lubGluZV0KICBzb2NrX3NlbmRtc2crMHhkNS8w eDEyMCBuZXQvc29ja2V0LmM6NjM5CiAgX19fc3lzX3NlbmRtc2crMHg4MDUvMHg5NDAgbmV0L3Nv Y2tldC5jOjIxMTcKICBfX3N5c19zZW5kbXNnKzB4MTE1LzB4MjcwIG5ldC9zb2NrZXQuYzoyMTU1 CiAgU1lTQ19zZW5kbXNnIG5ldC9zb2NrZXQuYzoyMTY0IFtpbmxpbmVdCiAgU3lTX3NlbmRtc2cr MHgyOS8weDMwIG5ldC9zb2NrZXQuYzoyMTYyCiAgZG9fc3lzY2FsbF82NCsweDI5ZS8weDlkMCBh cmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyODcKICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJh bWUrMHg0Mi8weGI3ClJJUDogMDAzMzoweDQ0NThiOQpSU1A6IDAwMmI6MDAwMDdmZmQxZDRhNzI3 OCBFRkxBR1M6IDAwMDAwMjEzIE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDJlClJBWDogZmZmZmZm ZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDAwMDAwMWIgUkNYOiAwMDAwMDAwMDAwNDQ1OGI5ClJE WDogMDAwMDAwMDAwMDAwMDAxMCBSU0k6IDAwMDAwMDAwMjAwMDBkMDAgUkRJOiAwMDAwMDAwMDAw MDAwMDA0ClJCUDogMDAwMDAwMDAwMDRhNzRlZCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAw MDAwMDAwMDAwMDAwMDAwClIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAy MTMgUjEyOiAwMDAwN2ZmZDFkNGE3MzQ4ClIxMzogMDAwMDAwMDAwMDQwMmE2MCBSMTQ6IDAwMDAw MDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwCkNvZGU6IDc1IGU4IGViIGE5IDQ4IDg5 IGY3IDQ4IDg5IDc1IGU4IGU4IGQxIDg1IDdiIGZlIDQ4IDhiIDc1IGU4IGViIGJiIDQ4Cjg5IGYy IDQ4IDg5IGQ5IDRjIDg5IGU2IDQ4IGM3IGM3IGEwIDg0IGQ4IDg3IGU4IGVhIDY3IDI4IGZlIDww Zj4gMGIgMGYgMWYKNDAgMDAgNDggYjggMDAgMDAgMDAgMDAgMDAgZmMgZmYgZGYgNTUgNDggODkg ZTUgNDEKUklQOiBfX2xpc3RfYWRkX3ZhbGlkKzB4YWEvMHhiMCBsaWIvbGlzdF9kZWJ1Zy5jOjI5 IFJTUDogZmZmZjg4MDFiMDRiZjI0OAoKVGhpcyBjaGFuZ2VzZXQgYWRkcmVzc2VzIHRoZSBhdm9p ZGluZyBsaXN0X2FkZCgpIGlmIHRoZSBjdXJyZW50Cm9wdGlvbiBpcyBhbHJlYWR5IHByZXNlbnQg aW4gdGhlIGV2ZW50IGxpc3QuCgpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBzeXpib3QrNGQ0YWY2 ODU0MzJkYzBlNTZjOTFAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBQ YW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkZpeGVzOiAyZmNkYjJjOWU2NTkgKCJ0ZWFt OiBhbGxvdyB0byBzZW5kIG11bHRpcGxlIHNldCBldmVudHMgaW4gb25lIG1lc3NhZ2UiKQpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvdGVhbS90ZWFtLmMgfCAxOSArKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hh bmdlZCwgMTkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0vdGVh bS5jIGIvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKaW5kZXggMmEzNjY1NTRjNTAzLi45MWEwMjA5 NzU2ZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCisrKyBiL2RyaXZlcnMv bmV0L3RlYW0vdGVhbS5jCkBAIC0yNjEsNiArMjYxLDE3IEBAIHN0YXRpYyB2b2lkIF9fdGVhbV9v cHRpb25faW5zdF9tYXJrX3JlbW92ZWRfcG9ydChzdHJ1Y3QgdGVhbSAqdGVhbSwKIAl9CiB9CiAK K3N0YXRpYyBib29sIF9fdGVhbV9vcHRpb25faW5zdF90bXBfZmluZChjb25zdCBzdHJ1Y3QgbGlz dF9oZWFkICpvcHRzLAorCQkJCQljb25zdCBzdHJ1Y3QgdGVhbV9vcHRpb25faW5zdCAqbmVlZGxl KQoreworCXN0cnVjdCB0ZWFtX29wdGlvbl9pbnN0ICpvcHRfaW5zdDsKKworCWxpc3RfZm9yX2Vh Y2hfZW50cnkob3B0X2luc3QsIG9wdHMsIHRtcF9saXN0KQorCQlpZiAob3B0X2luc3QgPT0gbmVl ZGxlKQorCQkJcmV0dXJuIHRydWU7CisJcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgaW50IF9f dGVhbV9vcHRpb25zX3JlZ2lzdGVyKHN0cnVjdCB0ZWFtICp0ZWFtLAogCQkJCSAgIGNvbnN0IHN0 cnVjdCB0ZWFtX29wdGlvbiAqb3B0aW9uLAogCQkJCSAgIHNpemVfdCBvcHRpb25fY291bnQpCkBA IC0yNTYxLDYgKzI1NzIsMTQgQEAgc3RhdGljIGludCB0ZWFtX25sX2NtZF9vcHRpb25zX3NldChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCQkJaWYgKGVycikK IAkJCQlnb3RvIHRlYW1fcHV0OwogCQkJb3B0X2luc3QtPmNoYW5nZWQgPSB0cnVlOworCisJCQkv KiBkdW1iL2V2aWwgdXNlci1zcGFjZSBjYW4gc2VuZCB1cyBkdXBsaWNhdGUgb3B0LAorCQkJICog a2VlcCBvbmx5IHRoZSBsYXN0IG9uZQorCQkJICovCisJCQlpZiAoX190ZWFtX29wdGlvbl9pbnN0 X3RtcF9maW5kKCZvcHRfaW5zdF9saXN0LAorCQkJCQkJCW9wdF9pbnN0KSkKKwkJCQljb250aW51 ZTsKKwogCQkJbGlzdF9hZGQoJm9wdF9pbnN0LT50bXBfbGlzdCwgJm9wdF9pbnN0X2xpc3QpOwog CQl9CiAJCWlmICghb3B0X2ZvdW5kKSB7Ci0tIAoyLjE0LjMKCgpGcm9tIDg2ZWJiZDQ5OTIzYTE1 NTgyOTVmNWYyNmQwODI3NGUzNTMwMzQyY2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFVyc3VsYSBCcmF1biA8dWJyYXVuQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogVGh1LCAxOSBB cHIgMjAxOCAxNTo1Njo0MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMzNdIG5ldC9zbWM6IGZp eCBzaHV0ZG93biBpbiBzdGF0ZSBTTUNfTElTVEVOCgpbIFVwc3RyZWFtIGNvbW1pdCAxMjU1ZmNi MmE2NTVmMDVlMDJmM2E3NDY3NWE2ZDY1MjVmMTg3YWZkIF0KCkNhbGxpbmcgc2h1dGRvd24gd2l0 aCBTSFVUX1JEIGFuZCBTSFVUX1JEV1IgZm9yIGEgbGlzdGVuaW5nIFNNQyBzb2NrZXQKY3Jhc2hl cywgYmVjYXVzZQogICBjb21taXQgMTI3ZjQ5NzA1ODIzICgibmV0L3NtYzogcmVsZWFzZSBjbGNz b2NrIGZyb20gdGNwX2xpc3Rlbl93b3JrZXIiKQpyZWxlYXNlcyB0aGUgaW50ZXJuYWwgY2xjc29j ayBpbiBzbWNfY2xvc2VfYWN0aXZlKCkgYW5kIHNldHMgc21jLT5jbGNzb2NrCnRvIE5VTEwuCkZv ciBTSFVUX1JEIHRoZSBzbWNfY2xvc2VfYWN0aXZlKCkgY2FsbCBpcyByZW1vdmVkLgpGb3IgU0hV VF9SRFdSIHRoZSBrZXJuZWxfc29ja19zaHV0ZG93bigpIGNhbGwgaXMgb21pdHRlZCwgc2luY2Ug dGhlCmNsY3NvY2sgaXMgYWxyZWFkeSByZWxlYXNlZC4KCkZpeGVzOiAxMjdmNDk3MDU4MjMgKCJu ZXQvc21jOiByZWxlYXNlIGNsY3NvY2sgZnJvbSB0Y3BfbGlzdGVuX3dvcmtlciIpClNpZ25lZC1v ZmYtYnk6IFVyc3VsYSBCcmF1biA8dWJyYXVuQGxpbnV4LnZuZXQuaWJtLmNvbT4KUmVwb3J0ZWQt Ynk6IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZz4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9z bWMvYWZfc21jLmMgfCAxMCArKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zbWMvYWZfc21jLmMgYi9uZXQv c21jL2FmX3NtYy5jCmluZGV4IGE2ZDYwNGZkOTY5NS4uZjljMjg5ZTA1NzA3IDEwMDY0NAotLS0g YS9uZXQvc21jL2FmX3NtYy5jCisrKyBiL25ldC9zbWMvYWZfc21jLmMKQEAgLTEyMDMsMTQgKzEy MDMsMTIgQEAgc3RhdGljIGludCBzbWNfc2h1dGRvd24oc3RydWN0IHNvY2tldCAqc29jaywgaW50 IGhvdykKIAkJcmMgPSBzbWNfY2xvc2Vfc2h1dGRvd25fd3JpdGUoc21jKTsKIAkJYnJlYWs7CiAJ Y2FzZSBTSFVUX1JEOgotCQlpZiAoc2stPnNrX3N0YXRlID09IFNNQ19MSVNURU4pCi0JCQlyYyA9 IHNtY19jbG9zZV9hY3RpdmUoc21jKTsKLQkJZWxzZQotCQkJcmMgPSAwOwotCQkJLyogbm90aGlu ZyBtb3JlIHRvIGRvIGJlY2F1c2UgcGVlciBpcyBub3QgaW52b2x2ZWQgKi8KKwkJcmMgPSAwOwor CQkvKiBub3RoaW5nIG1vcmUgdG8gZG8gYmVjYXVzZSBwZWVyIGlzIG5vdCBpbnZvbHZlZCAqLwog CQlicmVhazsKIAl9Ci0JcmMxID0ga2VybmVsX3NvY2tfc2h1dGRvd24oc21jLT5jbGNzb2NrLCBo b3cpOworCWlmIChzbWMtPmNsY3NvY2spCisJCXJjMSA9IGtlcm5lbF9zb2NrX3NodXRkb3duKHNt Yy0+Y2xjc29jaywgaG93KTsKIAkvKiBtYXAgc29ja19zaHV0ZG93bl9jbWQgY29uc3RhbnRzIHRv IHNrX3NodXRkb3duIHZhbHVlIHJhbmdlICovCiAJc2stPnNrX3NodXRkb3duIHw9IGhvdyArIDE7 CiAKLS0gCjIuMTQuMwoKCkZyb20gY2U0OGE5Yzc2MzU5ZDQzYTdmYTAxMTUwMmEyZjAzMmNhZjJl YTQ3ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5A Z21haWwuY29tPgpEYXRlOiBUdWUsIDI0IEFwciAyMDE4IDE0OjMzOjM3ICswODAwClN1YmplY3Q6 IFtQQVRDSCAxNC8zM10gdGVhbTogZml4IG5ldGNvbnNvbGUgc2V0dXAgb3ZlciB0ZWFtCk1JTUUt VmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250 ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA5Y2YyZjQzN2Nh NWIzOTgyODk4NDA2NGZhZDIxM2U2OGZjMTdlZjExIF0KClRoZSBzYW1lIGZpeCBpbiBDb21taXQg ZGJlMTczMDc5YWI1ICgiYnJpZGdlOiBmaXggbmV0Y29uc29sZQpzZXR1cCBvdmVyIGJyaWRnZSIp IGlzIGFsc28gbmVlZGVkIGZvciB0ZWFtIGRyaXZlci4KCldoaWxlIGF0IGl0LCByZW1vdmUgdGhl IHVubmVjZXNzYXJ5IHBhcmFtZXRlciAqdGVhbSBmcm9tCnRlYW1fcG9ydF9lbmFibGVfbmV0cG9s bCgpLgoKdjEtPnYyOgogIC0gZml4IGl0IGluIGEgYmV0dGVyIHdheSwgYXMgZG9lcyBicmlkZ2Uu CgpGaXhlczogMGZiNTJhMjdhMDRhICgidGVhbTogY2xlYW51cCBuZXRwb2xsIGNsb2RlIikKUmVw b3J0ZWQtYnk6IEpvw6NvIEF2ZWxpbm8gQmVsbG9tbyBGaWxobyA8amJlbGxvbW9AcmVkaGF0LmNv bT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvdGVhbS90ZWFtLmMgfCAxOSArKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTIgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC90ZWFtL3RlYW0uYyBiL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCmluZGV4IDkxYTAyMDk3 NTZkNS4uOGEyMjJhZTU5NTBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYwor KysgYi9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYwpAQCAtMTA3MiwxNCArMTA3MiwxMSBAQCBzdGF0 aWMgdm9pZCB0ZWFtX3BvcnRfbGVhdmUoc3RydWN0IHRlYW0gKnRlYW0sIHN0cnVjdCB0ZWFtX3Bv cnQgKnBvcnQpCiB9CiAKICNpZmRlZiBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUgotc3RhdGlj IGludCB0ZWFtX3BvcnRfZW5hYmxlX25ldHBvbGwoc3RydWN0IHRlYW0gKnRlYW0sIHN0cnVjdCB0 ZWFtX3BvcnQgKnBvcnQpCitzdGF0aWMgaW50IF9fdGVhbV9wb3J0X2VuYWJsZV9uZXRwb2xsKHN0 cnVjdCB0ZWFtX3BvcnQgKnBvcnQpCiB7CiAJc3RydWN0IG5ldHBvbGwgKm5wOwogCWludCBlcnI7 CiAKLQlpZiAoIXRlYW0tPmRldi0+bnBpbmZvKQotCQlyZXR1cm4gMDsKLQogCW5wID0ga3phbGxv YyhzaXplb2YoKm5wKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFucCkKIAkJcmV0dXJuIC1FTk9NRU07 CkBAIC0xMDkzLDYgKzEwOTAsMTQgQEAgc3RhdGljIGludCB0ZWFtX3BvcnRfZW5hYmxlX25ldHBv bGwoc3RydWN0IHRlYW0gKnRlYW0sIHN0cnVjdCB0ZWFtX3BvcnQgKnBvcnQpCiAJcmV0dXJuIGVy cjsKIH0KIAorc3RhdGljIGludCB0ZWFtX3BvcnRfZW5hYmxlX25ldHBvbGwoc3RydWN0IHRlYW1f cG9ydCAqcG9ydCkKK3sKKwlpZiAoIXBvcnQtPnRlYW0tPmRldi0+bnBpbmZvKQorCQlyZXR1cm4g MDsKKworCXJldHVybiBfX3RlYW1fcG9ydF9lbmFibGVfbmV0cG9sbChwb3J0KTsKK30KKwogc3Rh dGljIHZvaWQgdGVhbV9wb3J0X2Rpc2FibGVfbmV0cG9sbChzdHJ1Y3QgdGVhbV9wb3J0ICpwb3J0 KQogewogCXN0cnVjdCBuZXRwb2xsICpucCA9IHBvcnQtPm5wOwpAQCAtMTEwNyw3ICsxMTEyLDcg QEAgc3RhdGljIHZvaWQgdGVhbV9wb3J0X2Rpc2FibGVfbmV0cG9sbChzdHJ1Y3QgdGVhbV9wb3J0 ICpwb3J0KQogCWtmcmVlKG5wKTsKIH0KICNlbHNlCi1zdGF0aWMgaW50IHRlYW1fcG9ydF9lbmFi bGVfbmV0cG9sbChzdHJ1Y3QgdGVhbSAqdGVhbSwgc3RydWN0IHRlYW1fcG9ydCAqcG9ydCkKK3N0 YXRpYyBpbnQgdGVhbV9wb3J0X2VuYWJsZV9uZXRwb2xsKHN0cnVjdCB0ZWFtX3BvcnQgKnBvcnQp CiB7CiAJcmV0dXJuIDA7CiB9CkBAIC0xMjE1LDcgKzEyMjAsNyBAQCBzdGF0aWMgaW50IHRlYW1f cG9ydF9hZGQoc3RydWN0IHRlYW0gKnRlYW0sIHN0cnVjdCBuZXRfZGV2aWNlICpwb3J0X2RldikK IAkJZ290byBlcnJfdmlkc19hZGQ7CiAJfQogCi0JZXJyID0gdGVhbV9wb3J0X2VuYWJsZV9uZXRw b2xsKHRlYW0sIHBvcnQpOworCWVyciA9IHRlYW1fcG9ydF9lbmFibGVfbmV0cG9sbChwb3J0KTsK IAlpZiAoZXJyKSB7CiAJCW5ldGRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSBuZXRwb2xs IG9uIGRldmljZSAlc1xuIiwKIAkJCSAgIHBvcnRuYW1lKTsKQEAgLTE5MTIsNyArMTkxNyw3IEBA IHN0YXRpYyBpbnQgdGVhbV9uZXRwb2xsX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAK IAltdXRleF9sb2NrKCZ0ZWFtLT5sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBvcnQsICZ0 ZWFtLT5wb3J0X2xpc3QsIGxpc3QpIHsKLQkJZXJyID0gdGVhbV9wb3J0X2VuYWJsZV9uZXRwb2xs KHRlYW0sIHBvcnQpOworCQllcnIgPSBfX3RlYW1fcG9ydF9lbmFibGVfbmV0cG9sbChwb3J0KTsK IAkJaWYgKGVycikgewogCQkJX190ZWFtX25ldHBvbGxfY2xlYW51cCh0ZWFtKTsKIAkJCWJyZWFr OwotLSAKMi4xNC4zCgoKRnJvbSBlOGQ1ZDI1N2M3ZDE0YzU2MmZjYjhhMTFlMjk4MjJkMjVjNDIx YmVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxs ZW1iQGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMjMgQXByIDIwMTggMTc6Mzc6MDMgLTA0MDAKU3Vi amVjdDogW1BBVENIIDE1LzMzXSBwYWNrZXQ6IGZpeCBiaXRmaWVsZCB1cGRhdGUgcmFjZQoKWyBV cHN0cmVhbSBjb21taXQgYTYzNjFmMGNhNGIyNTQ2MGYyY2RmMzIzNWViZTgxMTVmNjIyOTAxZSBd CgpVcGRhdGVzIHRvIHRoZSBiaXRmaWVsZHMgaW4gc3RydWN0IHBhY2tldF9zb2NrIGFyZSBub3Qg YXRvbWljLgpTZXJpYWxpemUgdGhlc2UgcmVhZC1tb2RpZnktd3JpdGUgY3ljbGVzLgoKTW92ZSBw by0+cnVubmluZyBpbnRvIGEgc2VwYXJhdGUgdmFyaWFibGUuIEl0cyB3cml0ZXMgYXJlIHByb3Rl Y3RlZCBieQpwby0+YmluZF9sb2NrIChleGNlcHQgZm9yIG9uZSBzdGFydHVwIGNhc2UgYXQgcGFj a2V0X2NyZWF0ZSkuIEFsc28KcmVwbGFjZSBhIHRleHR1YWwgcHJlY29uZGl0aW9uIHdhcm5pbmcg d2l0aCBsb2NrZGVwIGFubm90YXRpb24uCgpBbGwgb3RoZXJzIGFyZSBzZXQgb25seSBpbiBwYWNr ZXRfc2V0c29ja29wdC4gU2VyaWFsaXplIHRoZXNlCnVwZGF0ZXMgYnkgaG9sZGluZyB0aGUgc29j a2V0IGxvY2suIEFuYWxvZ291cyB0byBvdGhlciBmaWVsZCB1cGRhdGVzLAphbHNvIGhvbGQgdGhl IGxvY2sgd2hlbiB0ZXN0aW5nIHdoZXRoZXIgYSByaW5nIGlzIGFjdGl2ZSAocGdfdmVjKS4KCkZp eGVzOiA4ZGM0MTk0NDc0MTUgKCJbUEFDS0VUXTogQWRkIG9wdGlvbmFsIGNoZWNrc3VtIGNvbXB1 dGF0aW9uIGZvciByZWN2bXNnIikKUmVwb3J0ZWQtYnk6IERhZVJ5b25nIEplb25nIDx0aHJlZWVh cmNhdEBnbWFpbC5jb20+ClJlcG9ydGVkLWJ5OiBCeW91bmd5b3VuZyBMZWUgPGJ5b3VuZ3lvdW5n QHB1cmR1ZS5lZHU+ClNpZ25lZC1vZmYtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9wYWNrZXQvYWZfcGFja2V0LmMgfCA2MCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogbmV0L3BhY2tldC9pbnRlcm5hbC5oICB8 IDEwICsrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAyMSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tl dC9hZl9wYWNrZXQuYwppbmRleCBlODI5ZjQwNjVkYmYuLjM5OTRiNzFmODE5NyAxMDA2NDQKLS0t IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBA IC0zMzEsMTEgKzMzMSwxMSBAQCBzdGF0aWMgdm9pZCBwYWNrZXRfcGlja190eF9xdWV1ZShzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXNrYl9zZXRfcXVldWVf bWFwcGluZyhza2IsIHF1ZXVlX2luZGV4KTsKIH0KIAotLyogcmVnaXN0ZXJfcHJvdF9ob29rIG11 c3QgYmUgaW52b2tlZCB3aXRoIHRoZSBwby0+YmluZF9sb2NrIGhlbGQsCisvKiBfX3JlZ2lzdGVy X3Byb3RfaG9vayBtdXN0IGJlIGludm9rZWQgdGhyb3VnaCByZWdpc3Rlcl9wcm90X2hvb2sKICAq IG9yIGZyb20gYSBjb250ZXh0IGluIHdoaWNoIGFzeW5jaHJvbm91cyBhY2Nlc3NlcyB0byB0aGUg cGFja2V0CiAgKiBzb2NrZXQgaXMgbm90IHBvc3NpYmxlIChwYWNrZXRfY3JlYXRlKCkpLgogICov Ci1zdGF0aWMgdm9pZCByZWdpc3Rlcl9wcm90X2hvb2soc3RydWN0IHNvY2sgKnNrKQorc3RhdGlj IHZvaWQgX19yZWdpc3Rlcl9wcm90X2hvb2soc3RydWN0IHNvY2sgKnNrKQogewogCXN0cnVjdCBw YWNrZXRfc29jayAqcG8gPSBwa3Rfc2soc2spOwogCkBAIC0zNTAsOCArMzUwLDEzIEBAIHN0YXRp YyB2b2lkIHJlZ2lzdGVyX3Byb3RfaG9vayhzdHJ1Y3Qgc29jayAqc2spCiAJfQogfQogCi0vKiB7 LF9ffXVucmVnaXN0ZXJfcHJvdF9ob29rKCkgbXVzdCBiZSBpbnZva2VkIHdpdGggdGhlIHBvLT5i aW5kX2xvY2sKLSAqIGhlbGQuICAgSWYgdGhlIHN5bmMgcGFyYW1ldGVyIGlzIHRydWUsIHdlIHdp bGwgdGVtcG9yYXJpbHkgZHJvcAorc3RhdGljIHZvaWQgcmVnaXN0ZXJfcHJvdF9ob29rKHN0cnVj dCBzb2NrICpzaykKK3sKKwlsb2NrZGVwX2Fzc2VydF9oZWxkX29uY2UoJnBrdF9zayhzayktPmJp bmRfbG9jayk7CisJX19yZWdpc3Rlcl9wcm90X2hvb2soc2spOworfQorCisvKiBJZiB0aGUgc3lu YyBwYXJhbWV0ZXIgaXMgdHJ1ZSwgd2Ugd2lsbCB0ZW1wb3JhcmlseSBkcm9wCiAgKiB0aGUgcG8t PmJpbmRfbG9jayBhbmQgZG8gYSBzeW5jaHJvbml6ZV9uZXQgdG8gbWFrZSBzdXJlIG5vCiAgKiBh c3luY2hyb25vdXMgcGFja2V0IHByb2Nlc3NpbmcgcGF0aHMgc3RpbGwgcmVmZXIgdG8gdGhlIGVs ZW1lbnRzCiAgKiBvZiBwby0+cHJvdF9ob29rLiAgSWYgdGhlIHN5bmMgcGFyYW1ldGVyIGlzIGZh bHNlLCBpdCBpcyB0aGUKQEAgLTM2MSw2ICszNjYsOCBAQCBzdGF0aWMgdm9pZCBfX3VucmVnaXN0 ZXJfcHJvdF9ob29rKHN0cnVjdCBzb2NrICpzaywgYm9vbCBzeW5jKQogewogCXN0cnVjdCBwYWNr ZXRfc29jayAqcG8gPSBwa3Rfc2soc2spOwogCisJbG9ja2RlcF9hc3NlcnRfaGVsZF9vbmNlKCZw by0+YmluZF9sb2NrKTsKKwogCXBvLT5ydW5uaW5nID0gMDsKIAogCWlmIChwby0+ZmFub3V0KQpA QCAtMzI2MSw3ICszMjY4LDcgQEAgc3RhdGljIGludCBwYWNrZXRfY3JlYXRlKHN0cnVjdCBuZXQg Km5ldCwgc3RydWN0IHNvY2tldCAqc29jaywgaW50IHByb3RvY29sLAogCiAJaWYgKHByb3RvKSB7 CiAJCXBvLT5wcm90X2hvb2sudHlwZSA9IHByb3RvOwotCQlyZWdpc3Rlcl9wcm90X2hvb2soc2sp OworCQlfX3JlZ2lzdGVyX3Byb3RfaG9vayhzayk7CiAJfQogCiAJbXV0ZXhfbG9jaygmbmV0LT5w YWNrZXQuc2tsaXN0X2xvY2spOwpAQCAtMzc0MywxMiArMzc1MCwxOCBAQCBwYWNrZXRfc2V0c29j a29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLCBjaGFyIF9f dXNlciAqb3B0dgogCiAJCWlmIChvcHRsZW4gIT0gc2l6ZW9mKHZhbCkpCiAJCQlyZXR1cm4gLUVJ TlZBTDsKLQkJaWYgKHBvLT5yeF9yaW5nLnBnX3ZlYyB8fCBwby0+dHhfcmluZy5wZ192ZWMpCi0J CQlyZXR1cm4gLUVCVVNZOwogCQlpZiAoY29weV9mcm9tX3VzZXIoJnZhbCwgb3B0dmFsLCBzaXpl b2YodmFsKSkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKLQkJcG8tPnRwX2xvc3MgPSAhIXZhbDsKLQkJ cmV0dXJuIDA7CisKKwkJbG9ja19zb2NrKHNrKTsKKwkJaWYgKHBvLT5yeF9yaW5nLnBnX3ZlYyB8 fCBwby0+dHhfcmluZy5wZ192ZWMpIHsKKwkJCXJldCA9IC1FQlVTWTsKKwkJfSBlbHNlIHsKKwkJ CXBvLT50cF9sb3NzID0gISF2YWw7CisJCQlyZXQgPSAwOworCQl9CisJCXJlbGVhc2Vfc29jayhz ayk7CisJCXJldHVybiByZXQ7CiAJfQogCWNhc2UgUEFDS0VUX0FVWERBVEE6CiAJewpAQCAtMzc1 OSw3ICszNzcyLDkgQEAgcGFja2V0X3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50 IGxldmVsLCBpbnQgb3B0bmFtZSwgY2hhciBfX3VzZXIgKm9wdHYKIAkJaWYgKGNvcHlfZnJvbV91 c2VyKCZ2YWwsIG9wdHZhbCwgc2l6ZW9mKHZhbCkpKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAKKwkJ bG9ja19zb2NrKHNrKTsKIAkJcG8tPmF1eGRhdGEgPSAhIXZhbDsKKwkJcmVsZWFzZV9zb2NrKHNr KTsKIAkJcmV0dXJuIDA7CiAJfQogCWNhc2UgUEFDS0VUX09SSUdERVY6CkBAIC0zNzcxLDcgKzM3 ODYsOSBAQCBwYWNrZXRfc2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWws IGludCBvcHRuYW1lLCBjaGFyIF9fdXNlciAqb3B0dgogCQlpZiAoY29weV9mcm9tX3VzZXIoJnZh bCwgb3B0dmFsLCBzaXplb2YodmFsKSkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAorCQlsb2NrX3Nv Y2soc2spOwogCQlwby0+b3JpZ2RldiA9ICEhdmFsOworCQlyZWxlYXNlX3NvY2soc2spOwogCQly ZXR1cm4gMDsKIAl9CiAJY2FzZSBQQUNLRVRfVk5FVF9IRFI6CkBAIC0zNzgwLDE1ICszNzk3LDIw IEBAIHBhY2tldF9zZXRzb2Nrb3B0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50 IG9wdG5hbWUsIGNoYXIgX191c2VyICpvcHR2CiAKIAkJaWYgKHNvY2stPnR5cGUgIT0gU09DS19S QVcpCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJaWYgKHBvLT5yeF9yaW5nLnBnX3ZlYyB8fCBwby0+ dHhfcmluZy5wZ192ZWMpCi0JCQlyZXR1cm4gLUVCVVNZOwogCQlpZiAob3B0bGVuIDwgc2l6ZW9m KHZhbCkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZ2YWwsIG9w dHZhbCwgc2l6ZW9mKHZhbCkpKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAKLQkJcG8tPmhhc192bmV0 X2hkciA9ICEhdmFsOwotCQlyZXR1cm4gMDsKKwkJbG9ja19zb2NrKHNrKTsKKwkJaWYgKHBvLT5y eF9yaW5nLnBnX3ZlYyB8fCBwby0+dHhfcmluZy5wZ192ZWMpIHsKKwkJCXJldCA9IC1FQlVTWTsK KwkJfSBlbHNlIHsKKwkJCXBvLT5oYXNfdm5ldF9oZHIgPSAhIXZhbDsKKwkJCXJldCA9IDA7CisJ CX0KKwkJcmVsZWFzZV9zb2NrKHNrKTsKKwkJcmV0dXJuIHJldDsKIAl9CiAJY2FzZSBQQUNLRVRf VElNRVNUQU1QOgogCXsKQEAgLTM4MjYsMTEgKzM4NDgsMTcgQEAgcGFja2V0X3NldHNvY2tvcHQo c3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwgY2hhciBfX3VzZXIg Km9wdHYKIAogCQlpZiAob3B0bGVuICE9IHNpemVvZih2YWwpKQogCQkJcmV0dXJuIC1FSU5WQUw7 Ci0JCWlmIChwby0+cnhfcmluZy5wZ192ZWMgfHwgcG8tPnR4X3JpbmcucGdfdmVjKQotCQkJcmV0 dXJuIC1FQlVTWTsKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZ2YWwsIG9wdHZhbCwgc2l6ZW9mKHZh bCkpKQogCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCXBvLT50cF90eF9oYXNfb2ZmID0gISF2YWw7CisK KwkJbG9ja19zb2NrKHNrKTsKKwkJaWYgKHBvLT5yeF9yaW5nLnBnX3ZlYyB8fCBwby0+dHhfcmlu Zy5wZ192ZWMpIHsKKwkJCXJldCA9IC1FQlVTWTsKKwkJfSBlbHNlIHsKKwkJCXBvLT50cF90eF9o YXNfb2ZmID0gISF2YWw7CisJCQlyZXQgPSAwOworCQl9CisJCXJlbGVhc2Vfc29jayhzayk7CiAJ CXJldHVybiAwOwogCX0KIAljYXNlIFBBQ0tFVF9RRElTQ19CWVBBU1M6CmRpZmYgLS1naXQgYS9u ZXQvcGFja2V0L2ludGVybmFsLmggYi9uZXQvcGFja2V0L2ludGVybmFsLmgKaW5kZXggYTFkMmIy MzE5YWU5Li4zYmI3YzVmYjNiZmYgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvaW50ZXJuYWwuaAor KysgYi9uZXQvcGFja2V0L2ludGVybmFsLmgKQEAgLTExMiwxMCArMTEyLDEyIEBAIHN0cnVjdCBw YWNrZXRfc29jayB7CiAJaW50CQkJY29weV90aHJlc2g7CiAJc3BpbmxvY2tfdAkJYmluZF9sb2Nr OwogCXN0cnVjdCBtdXRleAkJcGdfdmVjX2xvY2s7Ci0JdW5zaWduZWQgaW50CQlydW5uaW5nOjEs CS8qIHByb3RfaG9vayBpcyBhdHRhY2hlZCovCi0JCQkJYXV4ZGF0YToxLAorCXVuc2lnbmVkIGlu dAkJcnVubmluZzsJLyogYmluZF9sb2NrIG11c3QgYmUgaGVsZCAqLworCXVuc2lnbmVkIGludAkJ YXV4ZGF0YToxLAkvKiB3cml0ZXIgbXVzdCBob2xkIHNvY2sgbG9jayAqLwogCQkJCW9yaWdkZXY6 MSwKLQkJCQloYXNfdm5ldF9oZHI6MTsKKwkJCQloYXNfdm5ldF9oZHI6MSwKKwkJCQl0cF9sb3Nz OjEsCisJCQkJdHBfdHhfaGFzX29mZjoxOwogCWludAkJCXByZXNzdXJlOwogCWludAkJCWlmaW5k ZXg7CS8qIGJvdW5kIGRldmljZQkJKi8KIAlfX2JlMTYJCQludW07CkBAIC0xMjUsOCArMTI3LDYg QEAgc3RydWN0IHBhY2tldF9zb2NrIHsKIAllbnVtIHRwYWNrZXRfdmVyc2lvbnMJdHBfdmVyc2lv bjsKIAl1bnNpZ25lZCBpbnQJCXRwX2hkcmxlbjsKIAl1bnNpZ25lZCBpbnQJCXRwX3Jlc2VydmU7 Ci0JdW5zaWduZWQgaW50CQl0cF9sb3NzOjE7Ci0JdW5zaWduZWQgaW50CQl0cF90eF9oYXNfb2Zm OjE7CiAJdW5zaWduZWQgaW50CQl0cF90c3RhbXA7CiAJc3RydWN0IG5ldF9kZXZpY2UgX19yY3UJ KmNhY2hlZF9kZXY7CiAJaW50CQkJKCp4bWl0KShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKLS0gCjIu MTQuMwoKCkZyb20gODY4OWEyZjI3MmYzOTc1ZTZmNDVhYTkxODI1NjA3MjIzOTYxOTVlMSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpEYXRlOiBNb24sIDE2IEFwciAyMDE4IDA4OjI5OjQyIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAxNi8zM10gdGlwYzogYWRkIHBvbGljeSBmb3IgVElQQ19OTEFfTkVUX0FERFIKClsgVXBzdHJl YW0gY29tbWl0IGVjNTE4ZjIxY2IxYTFiMWY4YTUxNjQ5OWVhMDVjNjAyOTllMDQ5NjMgXQoKQmVm b3JlIHN5emJvdC9LTVNBTiBiaXRlcywgYWRkIHRoZSBtaXNzaW5nIHBvbGljeSBmb3IgVElQQ19O TEFfTkVUX0FERFIKCkZpeGVzOiAyN2MyMTQxNjcyN2EgKCJ0aXBjOiBhZGQgbmV0IHNldCB0byBu ZXcgbmV0bGluayBhcGkiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkNjOiBKb24gTWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+CkNjOiBZaW5n IFh1ZSA8eWluZy54dWVAd2luZHJpdmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL25ldGxpbmsuYyB8IDMgKyst CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L3RpcGMvbmV0bGluay5jIGIvbmV0L3RpcGMvbmV0bGluay5jCmluZGV4IGI3NmYx M2Y2ZmVhMS4uZDRlMGJiZWVlNzI3IDEwMDY0NAotLS0gYS9uZXQvdGlwYy9uZXRsaW5rLmMKKysr IGIvbmV0L3RpcGMvbmV0bGluay5jCkBAIC03OSw3ICs3OSw4IEBAIGNvbnN0IHN0cnVjdCBubGFf cG9saWN5IHRpcGNfbmxfc29ja19wb2xpY3lbVElQQ19OTEFfU09DS19NQVggKyAxXSA9IHsKIAog Y29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdGlwY19ubF9uZXRfcG9saWN5W1RJUENfTkxBX05FVF9N QVggKyAxXSA9IHsKIAlbVElQQ19OTEFfTkVUX1VOU1BFQ10JCT0geyAudHlwZSA9IE5MQV9VTlNQ RUMgfSwKLQlbVElQQ19OTEFfTkVUX0lEXQkJPSB7IC50eXBlID0gTkxBX1UzMiB9CisJW1RJUENf TkxBX05FVF9JRF0JCT0geyAudHlwZSA9IE5MQV9VMzIgfSwKKwlbVElQQ19OTEFfTkVUX0FERFJd CQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCiB9OwogCiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB0 aXBjX25sX2xpbmtfcG9saWN5W1RJUENfTkxBX0xJTktfTUFYICsgMV0gPSB7Ci0tIAoyLjE0LjMK CgpGcm9tIDY5ZjBiMDFiYzM1Y2E5MThjYzg5N2RhZmU5ZDUwMmNjMGZkNDI0NTggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsu ZnI+CkRhdGU6IE1vbiwgMjMgQXByIDIwMTggMTY6Mzg6MjcgKzAyMDAKU3ViamVjdDogW1BBVENI IDE3LzMzXSBwcHBvZTogY2hlY2sgc29ja2FkZHIgbGVuZ3RoIGluIHBwcG9lX2Nvbm5lY3QoKQoK WyBVcHN0cmVhbSBjb21taXQgYTQ5ZTJmNWQ1ZmIxNDE4ODQ0NTJkZGI0MjhmNTUxYjEyM2Q0MzZi NSBdCgpXZSBtdXN0IHZhbGlkYXRlIHNvY2thZGRyX2xlbiwgb3RoZXJ3aXNlIHVzZXJzcGFjZSBj YW4gcGFzcyBmZXdlciBkYXRhCnRoYW4gd2UgZXhwZWN0IGFuZCB3ZSBlbmQgdXAgYWNjZXNzaW5n IGludmFsaWQgZGF0YS4KCkZpeGVzOiAyMjRjZjVhZDE0YzAgKCJwcHA6IE1vdmUgdGhlIFBQUCBk cml2ZXJzIikKUmVwb3J0ZWQtYnk6IHN5emJvdCs0ZjAzYmRmOTJmZGY5ZWY1ZGRhYkBzeXprYWxs ZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVs dEBhbHBoYWxpbmsuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9wcHAvcHBwb2UuYyB8IDQgKysrKwogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9w cHBvZS5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMKaW5kZXggNWFhNTlmNDFiZjhjLi43MWUy YWVmNmI3YTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCisrKyBiL2RyaXZl cnMvbmV0L3BwcC9wcHBvZS5jCkBAIC02MjAsNiArNjIwLDEwIEBAIHN0YXRpYyBpbnQgcHBwb2Vf Y29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVzZXJ2YWRkciwK IAlsb2NrX3NvY2soc2spOwogCiAJZXJyb3IgPSAtRUlOVkFMOworCisJaWYgKHNvY2thZGRyX2xl biAhPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX3BwcG94KSkKKwkJZ290byBlbmQ7CisKIAlpZiAo c3AtPnNhX3Byb3RvY29sICE9IFBYX1BST1RPX09FKQogCQlnb3RvIGVuZDsKIAotLSAKMi4xNC4z CgoKRnJvbSBkOWY1Nzc1OWYxYmUwNzc1NzllZGIxNGM1NDI2NWEzODI4OGE3MmZlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb3NoaWFraSBNYWtpdGEgPG1ha2l0YS50b3NoaWFraUBs YWIubnR0LmNvLmpwPgpEYXRlOiBUdWUsIDE3IEFwciAyMDE4IDE4OjQ2OjE0ICswOTAwClN1Ympl Y3Q6IFtQQVRDSCAxOC8zM10gdmxhbjogRml4IHJlYWRpbmcgbWVtb3J5IGJleW9uZCBza2ItPnRh aWwgaW4KIHNrYl92bGFuX3RhZ2dlZF9tdWx0aQoKWyBVcHN0cmVhbSBjb21taXQgN2NlMjM2NzI1 NGU4NDc1M2JjZWIwNzMyN2FhZjVjOTUzY2ZjZTExNyBdCgpTeXprYWxsZXIgc3BvdHRlZCBhbiBv bGQgYnVnIHdoaWNoIGxlYWRzIHRvIHJlYWRpbmcgc2tiIGJleW9uZCB0YWlsIGJ5IDQKYnl0ZXMg b24gdmxhbiB0YWdnZWQgcGFja2V0cy4KVGhpcyBpcyBjYXVzZWQgYmVjYXVzZSBza2Jfdmxhbl90 YWdnZWRfbXVsdGkoKSBkaWQgbm90IGNoZWNrCnNrYl9oZWFkbGVuLgoKQlVHOiBLTVNBTjogdW5p bml0LXZhbHVlIGluIGV0aF90eXBlX3ZsYW4gaW5jbHVkZS9saW51eC9pZl92bGFuLmg6MjgzIFtp bmxpbmVdCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBza2Jfdmxhbl90YWdnZWRfbXVsdGkg aW5jbHVkZS9saW51eC9pZl92bGFuLmg6NjU2IFtpbmxpbmVdCkJVRzogS01TQU46IHVuaW5pdC12 YWx1ZSBpbiB2bGFuX2ZlYXR1cmVzX2NoZWNrIGluY2x1ZGUvbGludXgvaWZfdmxhbi5oOjY3MiBb aW5saW5lXQpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gZGZsdF9mZWF0dXJlc19jaGVjayBu ZXQvY29yZS9kZXYuYzoyOTQ5IFtpbmxpbmVdCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBu ZXRpZl9za2JfZmVhdHVyZXMrMHhkMWIvMHhkYzAgbmV0L2NvcmUvZGV2LmM6MzAwOQpDUFU6IDEg UElEOiAzNTgyIENvbW06IHN5emthbGxlcjQzNTE0OSBOb3QgdGFpbnRlZCA0LjE2LjArICM4MgpI YXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRl IEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogIF9fZHVtcF9zdGFj ayBsaWIvZHVtcF9zdGFjay5jOjE3IFtpbmxpbmVdCiAgZHVtcF9zdGFjaysweDE4NS8weDFkMCBs aWIvZHVtcF9zdGFjay5jOjUzCiAga21zYW5fcmVwb3J0KzB4MTQyLzB4MjQwIG1tL2ttc2FuL2tt c2FuLmM6MTA2NwogIF9fbXNhbl93YXJuaW5nXzMyKzB4NmMvMHhiMCBtbS9rbXNhbi9rbXNhbl9p bnN0ci5jOjY3NgogIGV0aF90eXBlX3ZsYW4gaW5jbHVkZS9saW51eC9pZl92bGFuLmg6MjgzIFtp bmxpbmVdCiAgc2tiX3ZsYW5fdGFnZ2VkX211bHRpIGluY2x1ZGUvbGludXgvaWZfdmxhbi5oOjY1 NiBbaW5saW5lXQogIHZsYW5fZmVhdHVyZXNfY2hlY2sgaW5jbHVkZS9saW51eC9pZl92bGFuLmg6 NjcyIFtpbmxpbmVdCiAgZGZsdF9mZWF0dXJlc19jaGVjayBuZXQvY29yZS9kZXYuYzoyOTQ5IFtp bmxpbmVdCiAgbmV0aWZfc2tiX2ZlYXR1cmVzKzB4ZDFiLzB4ZGMwIG5ldC9jb3JlL2Rldi5jOjMw MDkKICB2YWxpZGF0ZV94bWl0X3NrYisweDg5LzB4MTMyMCBuZXQvY29yZS9kZXYuYzozMDg0CiAg X19kZXZfcXVldWVfeG1pdCsweDFjYjIvMHgyYjYwIG5ldC9jb3JlL2Rldi5jOjM1NDkKICBkZXZf cXVldWVfeG1pdCsweDRiLzB4NjAgbmV0L2NvcmUvZGV2LmM6MzU5MAogIHBhY2tldF9zbmQgbmV0 L3BhY2tldC9hZl9wYWNrZXQuYzoyOTQ0IFtpbmxpbmVdCiAgcGFja2V0X3NlbmRtc2crMHg3YzU3 LzB4OGExMCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjI5NjkKICBzb2NrX3NlbmRtc2dfbm9zZWMg bmV0L3NvY2tldC5jOjYzMCBbaW5saW5lXQogIHNvY2tfc2VuZG1zZyBuZXQvc29ja2V0LmM6NjQw IFtpbmxpbmVdCiAgc29ja193cml0ZV9pdGVyKzB4M2I5LzB4NDcwIG5ldC9zb2NrZXQuYzo5MDkK ICBkb19pdGVyX3JlYWR2X3dyaXRldisweDdiYi8weDk3MCBpbmNsdWRlL2xpbnV4L2ZzLmg6MTc3 NgogIGRvX2l0ZXJfd3JpdGUrMHgzMGQvMHhkNDAgZnMvcmVhZF93cml0ZS5jOjkzMgogIHZmc193 cml0ZXYgZnMvcmVhZF93cml0ZS5jOjk3NyBbaW5saW5lXQogIGRvX3dyaXRldisweDNjOS8weDgz MCBmcy9yZWFkX3dyaXRlLmM6MTAxMgogIFNZU0Nfd3JpdGV2KzB4OWIvMHhiMCBmcy9yZWFkX3dy aXRlLmM6MTA4NQogIFN5U193cml0ZXYrMHg1Ni8weDgwIGZzL3JlYWRfd3JpdGUuYzoxMDgyCiAg ZG9fc3lzY2FsbF82NCsweDMwOS8weDQzMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyODcKICBl bnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHgzZC8weGEyClJJUDogMDAzMzoweDQzZmZh OQpSU1A6IDAwMmI6MDAwMDdmZmYyY2ZmMzk0OCBFRkxBR1M6IDAwMDAwMjE3IE9SSUdfUkFYOiAw MDAwMDAwMDAwMDAwMDE0ClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDA0MDAy YzggUkNYOiAwMDAwMDAwMDAwNDNmZmE5ClJEWDogMDAwMDAwMDAwMDAwMDAwMSBSU0k6IDAwMDAw MDAwMjAwMDAwODAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClJCUDogMDAwMDAwMDAwMDZjYjAxOCBS MDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClIxMDogMDAwMDAwMDAw MDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAyMTcgUjEyOiAwMDAwMDAwMDAwNDAxOGQwClIxMzog MDAwMDAwMDAwMDQwMTk2MCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAw MDAwCgpVbmluaXQgd2FzIGNyZWF0ZWQgYXQ6CiAga21zYW5fc2F2ZV9zdGFja193aXRoX2ZsYWdz IG1tL2ttc2FuL2ttc2FuLmM6Mjc4IFtpbmxpbmVdCiAga21zYW5faW50ZXJuYWxfcG9pc29uX3No YWRvdysweGI4LzB4MWIwIG1tL2ttc2FuL2ttc2FuLmM6MTg4CiAga21zYW5fa21hbGxvYysweDk0 LzB4MTAwIG1tL2ttc2FuL2ttc2FuLmM6MzE0CiAga21zYW5fc2xhYl9hbGxvYysweDExLzB4MjAg bW0va21zYW4va21zYW4uYzozMjEKICBzbGFiX3Bvc3RfYWxsb2NfaG9vayBtbS9zbGFiLmg6NDQ1 IFtpbmxpbmVdCiAgc2xhYl9hbGxvY19ub2RlIG1tL3NsdWIuYzoyNzM3IFtpbmxpbmVdCiAgX19r bWFsbG9jX25vZGVfdHJhY2tfY2FsbGVyKzB4YWVkLzB4MTFjMCBtbS9zbHViLmM6NDM2OQogIF9f a21hbGxvY19yZXNlcnZlIG5ldC9jb3JlL3NrYnVmZi5jOjEzOCBbaW5saW5lXQogIF9fYWxsb2Nf c2tiKzB4MmNmLzB4OWYwIG5ldC9jb3JlL3NrYnVmZi5jOjIwNgogIGFsbG9jX3NrYiBpbmNsdWRl L2xpbnV4L3NrYnVmZi5oOjk4NCBbaW5saW5lXQogIGFsbG9jX3NrYl93aXRoX2ZyYWdzKzB4MWQ0 LzB4YjIwIG5ldC9jb3JlL3NrYnVmZi5jOjUyMzQKICBzb2NrX2FsbG9jX3NlbmRfcHNrYisweGI1 Ni8weDExOTAgbmV0L2NvcmUvc29jay5jOjIwODUKICBwYWNrZXRfYWxsb2Nfc2tiIG5ldC9wYWNr ZXQvYWZfcGFja2V0LmM6MjgwMyBbaW5saW5lXQogIHBhY2tldF9zbmQgbmV0L3BhY2tldC9hZl9w YWNrZXQuYzoyODk0IFtpbmxpbmVdCiAgcGFja2V0X3NlbmRtc2crMHg2NDQ0LzB4OGExMCBuZXQv cGFja2V0L2FmX3BhY2tldC5jOjI5NjkKICBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5j OjYzMCBbaW5saW5lXQogIHNvY2tfc2VuZG1zZyBuZXQvc29ja2V0LmM6NjQwIFtpbmxpbmVdCiAg c29ja193cml0ZV9pdGVyKzB4M2I5LzB4NDcwIG5ldC9zb2NrZXQuYzo5MDkKICBkb19pdGVyX3Jl YWR2X3dyaXRldisweDdiYi8weDk3MCBpbmNsdWRlL2xpbnV4L2ZzLmg6MTc3NgogIGRvX2l0ZXJf d3JpdGUrMHgzMGQvMHhkNDAgZnMvcmVhZF93cml0ZS5jOjkzMgogIHZmc193cml0ZXYgZnMvcmVh ZF93cml0ZS5jOjk3NyBbaW5saW5lXQogIGRvX3dyaXRldisweDNjOS8weDgzMCBmcy9yZWFkX3dy aXRlLmM6MTAxMgogIFNZU0Nfd3JpdGV2KzB4OWIvMHhiMCBmcy9yZWFkX3dyaXRlLmM6MTA4NQog IFN5U193cml0ZXYrMHg1Ni8weDgwIGZzL3JlYWRfd3JpdGUuYzoxMDgyCiAgZG9fc3lzY2FsbF82 NCsweDMwOS8weDQzMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyODcKICBlbnRyeV9TWVNDQUxM XzY0X2FmdGVyX2h3ZnJhbWUrMHgzZC8weGEyCgpGaXhlczogNThlOTk4YzZkMjM5ICgib2ZmbG9h ZGluZzogRm9yY2Ugc29mdHdhcmUgR1NPIGZvciBtdWx0aXBsZSB2bGFuIHRhZ3MuIikKUmVwb3J0 ZWQtYW5kLXRlc3RlZC1ieTogc3l6Ym90KzBiYmU0MmM3NjRmZWFmYTgyYzVhQHN5emthbGxlci5h cHBzcG90bWFpbC5jb20KU2lnbmVkLW9mZi1ieTogVG9zaGlha2kgTWFraXRhIDxtYWtpdGEudG9z aGlha2lAbGFiLm50dC5jby5qcD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvaWZfdmxhbi5oIHwgNyArKysrKy0t CiBuZXQvY29yZS9kZXYuYyAgICAgICAgICB8IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaWZf dmxhbi5oIGIvaW5jbHVkZS9saW51eC9pZl92bGFuLmgKaW5kZXggNWU2YTJkNGRjMzY2Li5hYjky NzM4M2M5OWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaWZfdmxhbi5oCisrKyBiL2luY2x1 ZGUvbGludXgvaWZfdmxhbi5oCkBAIC01ODQsNyArNTg0LDcgQEAgc3RhdGljIGlubGluZSBib29s IHNrYl92bGFuX3RhZ2dlZChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogICogUmV0dXJucyB0 cnVlIGlmIHRoZSBza2IgaXMgdGFnZ2VkIHdpdGggbXVsdGlwbGUgdmxhbiBoZWFkZXJzLCByZWdh cmRsZXNzCiAgKiBvZiB3aGV0aGVyIGl0IGlzIGhhcmR3YXJlIGFjY2VsZXJhdGVkIG9yIG5vdC4K ICAqLwotc3RhdGljIGlubGluZSBib29sIHNrYl92bGFuX3RhZ2dlZF9tdWx0aShjb25zdCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQorc3RhdGljIGlubGluZSBib29sIHNrYl92bGFuX3RhZ2dlZF9tdWx0 aShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCV9fYmUxNiBwcm90b2NvbCA9IHNrYi0+cHJvdG9j b2w7CiAKQEAgLTU5NCw2ICs1OTQsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2tiX3ZsYW5fdGFn Z2VkX211bHRpKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCiAJCWlmIChsaWtlbHkoIWV0aF90 eXBlX3ZsYW4ocHJvdG9jb2wpKSkKIAkJCXJldHVybiBmYWxzZTsKIAorCQlpZiAodW5saWtlbHko IXBza2JfbWF5X3B1bGwoc2tiLCBWTEFOX0VUSF9ITEVOKSkpCisJCQlyZXR1cm4gZmFsc2U7CisK IAkJdmVoID0gKHN0cnVjdCB2bGFuX2V0aGhkciAqKXNrYi0+ZGF0YTsKIAkJcHJvdG9jb2wgPSB2 ZWgtPmhfdmxhbl9lbmNhcHN1bGF0ZWRfcHJvdG87CiAJfQpAQCAtNjExLDcgKzYxNCw3IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCBza2Jfdmxhbl90YWdnZWRfbXVsdGkoY29uc3Qgc3RydWN0IHNrX2J1 ZmYgKnNrYikKICAqCiAgKiBSZXR1cm5zIGZlYXR1cmVzIHdpdGhvdXQgdW5zYWZlIG9uZXMgaWYg dGhlIHNrYiBoYXMgbXVsdGlwbGUgdGFncy4KICAqLwotc3RhdGljIGlubGluZSBuZXRkZXZfZmVh dHVyZXNfdCB2bGFuX2ZlYXR1cmVzX2NoZWNrKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCitz dGF0aWMgaW5saW5lIG5ldGRldl9mZWF0dXJlc190IHZsYW5fZmVhdHVyZXNfY2hlY2soc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAkJCQkJCSAgICBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcykKIHsK IAlpZiAoc2tiX3ZsYW5fdGFnZ2VkX211bHRpKHNrYikpIHsKZGlmZiAtLWdpdCBhL25ldC9jb3Jl L2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggNGJlMmE0MDQ3NjQwLi5lN2Q1NmM1YWRkZTYg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC0yOTAz LDcgKzI5MDMsNyBAQCBuZXRkZXZfZmVhdHVyZXNfdCBwYXNzdGhydV9mZWF0dXJlc19jaGVjayhz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAogfQogRVhQT1JUX1NZTUJPTChwYXNzdGhydV9mZWF0dXJlc19j aGVjayk7CiAKLXN0YXRpYyBuZXRkZXZfZmVhdHVyZXNfdCBkZmx0X2ZlYXR1cmVzX2NoZWNrKGNv bnN0IHN0cnVjdCBza19idWZmICpza2IsCitzdGF0aWMgbmV0ZGV2X2ZlYXR1cmVzX3QgZGZsdF9m ZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCQkgICAgIHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsCiAJCQkJCSAgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCiB7Ci0t IAoyLjE0LjMKCgpGcm9tIGZiZTE1OTY4YTg1MGY2ZGYzZmIxYzcyMDJiNjlmNGVhMmZmYWIxN2Ig TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRh Y2t5QGFtZC5jb20+CkRhdGU6IE1vbiwgMjMgQXByIDIwMTggMTE6NDM6MDggLTA1MDAKU3ViamVj dDogW1BBVENIIDE5LzMzXSBhbWQteGdiZTogQWRkIHByZS9wb3N0IGF1dG8tbmVnb3RpYXRpb24g cGh5IGhvb2tzCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZDk0NTY2M2E2YTBhY2YzY2JlNDU5NDA1MDNm MmViOTU4NGJmZWU3IF0KCkFkZCBob29rcyB0byB0aGUgZHJpdmVyIGF1dG8tbmVnb3RpYXRpb24g KEFOKSBmbG93IHRvIGFsbG93IHRoZSBkaWZmZXJlbnQKcGh5IGltcGxlbWVudGF0aW9ucyB0byBw ZXJmb3JtIGFueSBzdGVwcyBuZWNlc3NhcnkgdG8gaW1wcm92ZSBBTi4KClNpZ25lZC1vZmYtYnk6 IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9hbWQveGdiZS94Z2JlLW1kaW8uYyB8IDE2ICsrKysrKysrKysrKysrLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUuaCAgICAgIHwgIDUgKysrKysKIDIgZmlsZXMgY2hh bmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLW1kaW8uYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2FtZC94Z2JlL3hnYmUtbWRpby5jCmluZGV4IDA3MmI5ZjY2NDU5Ny4uZTNkMzYxZTI0MmFh IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLW1kaW8uYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLW1kaW8uYwpAQCAtNDM3LDYg KzQzNyw5IEBAIHN0YXRpYyB2b2lkIHhnYmVfYW43M19kaXNhYmxlKHN0cnVjdCB4Z2JlX3Bydl9k YXRhICpwZGF0YSkKIAogc3RhdGljIHZvaWQgeGdiZV9hbl9yZXN0YXJ0KHN0cnVjdCB4Z2JlX3By dl9kYXRhICpwZGF0YSkKIHsKKwlpZiAocGRhdGEtPnBoeV9pZi5waHlfaW1wbC5hbl9wcmUpCisJ CXBkYXRhLT5waHlfaWYucGh5X2ltcGwuYW5fcHJlKHBkYXRhKTsKKwogCXN3aXRjaCAocGRhdGEt PmFuX21vZGUpIHsKIAljYXNlIFhHQkVfQU5fTU9ERV9DTDczOgogCWNhc2UgWEdCRV9BTl9NT0RF X0NMNzNfUkVEUlY6CkBAIC00NTMsNiArNDU2LDkgQEAgc3RhdGljIHZvaWQgeGdiZV9hbl9yZXN0 YXJ0KHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIAogc3RhdGljIHZvaWQgeGdiZV9hbl9k aXNhYmxlKHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIHsKKwlpZiAocGRhdGEtPnBoeV9p Zi5waHlfaW1wbC5hbl9wb3N0KQorCQlwZGF0YS0+cGh5X2lmLnBoeV9pbXBsLmFuX3Bvc3QocGRh dGEpOworCiAJc3dpdGNoIChwZGF0YS0+YW5fbW9kZSkgewogCWNhc2UgWEdCRV9BTl9NT0RFX0NM NzM6CiAJY2FzZSBYR0JFX0FOX01PREVfQ0w3M19SRURSVjoKQEAgLTYzNywxMSArNjQzLDExIEBA IHN0YXRpYyBlbnVtIHhnYmVfYW4geGdiZV9hbjczX2luY29tcGF0X2xpbmsoc3RydWN0IHhnYmVf cHJ2X2RhdGEgKnBkYXRhKQogCQkJcmV0dXJuIFhHQkVfQU5fTk9fTElOSzsKIAl9CiAKLQl4Z2Jl X2FuNzNfZGlzYWJsZShwZGF0YSk7CisJeGdiZV9hbl9kaXNhYmxlKHBkYXRhKTsKIAogCXhnYmVf c3dpdGNoX21vZGUocGRhdGEpOwogCi0JeGdiZV9hbjczX3Jlc3RhcnQocGRhdGEpOworCXhnYmVf YW5fcmVzdGFydChwZGF0YSk7CiAKIAlyZXR1cm4gWEdCRV9BTl9JTkNPTVBBVF9MSU5LOwogfQpA QCAtODIwLDYgKzgyNiw5IEBAIHN0YXRpYyB2b2lkIHhnYmVfYW4zN19zdGF0ZV9tYWNoaW5lKHN0 cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIAkJcGRhdGEtPmFuX3Jlc3VsdCA9IHBkYXRhLT5h bl9zdGF0ZTsKIAkJcGRhdGEtPmFuX3N0YXRlID0gWEdCRV9BTl9SRUFEWTsKIAorCQlpZiAocGRh dGEtPnBoeV9pZi5waHlfaW1wbC5hbl9wb3N0KQorCQkJcGRhdGEtPnBoeV9pZi5waHlfaW1wbC5h bl9wb3N0KHBkYXRhKTsKKwogCQluZXRpZl9kYmcocGRhdGEsIGxpbmssIHBkYXRhLT5uZXRkZXYs ICJDTDM3IEFOIHJlc3VsdDogJXNcbiIsCiAJCQkgIHhnYmVfc3RhdGVfYXNfc3RyaW5nKHBkYXRh LT5hbl9yZXN1bHQpKTsKIAl9CkBAIC05MDMsNiArOTEyLDkgQEAgc3RhdGljIHZvaWQgeGdiZV9h bjczX3N0YXRlX21hY2hpbmUoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQogCQlwZGF0YS0+ a3hfc3RhdGUgPSBYR0JFX1JYX0JQQTsKIAkJcGRhdGEtPmFuX3N0YXJ0ID0gMDsKIAorCQlpZiAo cGRhdGEtPnBoeV9pZi5waHlfaW1wbC5hbl9wb3N0KQorCQkJcGRhdGEtPnBoeV9pZi5waHlfaW1w bC5hbl9wb3N0KHBkYXRhKTsKKwogCQluZXRpZl9kYmcocGRhdGEsIGxpbmssIHBkYXRhLT5uZXRk ZXYsICJDTDczIEFOIHJlc3VsdDogJXNcbiIsCiAJCQkgIHhnYmVfc3RhdGVfYXNfc3RyaW5nKHBk YXRhLT5hbl9yZXN1bHQpKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9h bWQveGdiZS94Z2JlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLmgKaW5k ZXggYWQxMDJjOGJhYzdiLi5mYTBiNTFlYTFiOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2FtZC94Z2JlL3hnYmUuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdi ZS94Z2JlLmgKQEAgLTgzMyw2ICs4MzMsNyBAQCBzdHJ1Y3QgeGdiZV9od19pZiB7CiAvKiBUaGlz IHN0cnVjdHVyZSByZXByZXNlbnRzIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHJvdXRpbmVzIGZv ciBhbgogICogaW1wbGVtZW50YXRpb24gb2YgYSBQSFkuIEFsbCByb3V0aW5lcyBhcmUgcmVxdWly ZWQgdW5sZXNzIG5vdGVkIGJlbG93LgogICogICBPcHRpb25hbCByb3V0aW5lczoKKyAqICAgICBh bl9wcmUsIGFuX3Bvc3QKICAqICAgICBrcl90cmFpbmluZ19wcmUsIGtyX3RyYWluaW5nX3Bvc3QK ICAqLwogc3RydWN0IHhnYmVfcGh5X2ltcGxfaWYgewpAQCAtODc1LDYgKzg3NiwxMCBAQCBzdHJ1 Y3QgeGdiZV9waHlfaW1wbF9pZiB7CiAJLyogUHJvY2VzcyByZXN1bHRzIG9mIGF1dG8tbmVnb3Rp YXRpb24gKi8KIAllbnVtIHhnYmVfbW9kZSAoKmFuX291dGNvbWUpKHN0cnVjdCB4Z2JlX3Bydl9k YXRhICopOwogCisJLyogUHJlL1Bvc3QgYXV0by1uZWdvdGlhdGlvbiBzdXBwb3J0ICovCisJdm9p ZCAoKmFuX3ByZSkoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKik7CisJdm9pZCAoKmFuX3Bvc3QpKHN0 cnVjdCB4Z2JlX3Bydl9kYXRhICopOworCiAJLyogUHJlL1Bvc3QgS1IgdHJhaW5pbmcgZW5hYmxl bWVudCBzdXBwb3J0ICovCiAJdm9pZCAoKmtyX3RyYWluaW5nX3ByZSkoc3RydWN0IHhnYmVfcHJ2 X2RhdGEgKik7CiAJdm9pZCAoKmtyX3RyYWluaW5nX3Bvc3QpKHN0cnVjdCB4Z2JlX3Bydl9kYXRh ICopOwotLSAKMi4xNC4zCgoKRnJvbSAwNDA3ZWU0ZGJiNzUzYTk3NDU5NDg4MDgzZjdkMDBlYWQ3 YTdkNzc2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhp bkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTIgQXByIDIwMTggMTQ6MjQ6MzEgKzA4MDAKU3ViamVj dDogW1BBVENIIDIwLzMzXSBzY3RwOiBkbyBub3QgY2hlY2sgcG9ydCBpbiBzY3RwX2luZXQ2X2Nt cF9hZGRyCgpbIFVwc3RyZWFtIGNvbW1pdCAxMDcxZWM5ZDQ1M2EzODAyMzU3OTcxNGI2NGE5NTFh MmZiOTgyMDcxIF0KCnBmLT5jbXBfYWRkcigpIGlzIGNhbGxlZCBiZWZvcmUgYmluZGluZyBhIHY2 IGFkZHJlc3MgdG8gdGhlIHNvY2suIEl0CnNob3VsZCBub3QgY2hlY2sgcG9ydHMsIGxpa2UgaW4g c2N0cF9pbmV0X2NtcF9hZGRyLgoKQnV0IHNjdHBfaW5ldDZfY21wX2FkZHIgY2hlY2tzIHRoZSBh ZGRyIGJ5IGludm9raW5nIGFmKDYpLT5jbXBfYWRkciwKc2N0cF92Nl9jbXBfYWRkciB3aGVyZSBp dCBhbHNvIGNvbXBhcmVzIHRoZSBwb3J0cy4KClRoaXMgd291bGQgY2F1c2UgdGhhdCBzZXRzb2Nr b3B0KFNDVFBfU09DS09QVF9CSU5EWF9BREQpIGNvdWxkIGJpbmQKbXVsdGlwbGUgZHVwbGljYXRl ZCBJUHY2IGFkZHJlc3NlcyBhZnRlciBDb21taXQgNDBiNGYwZmQ3NGU0ICgic2N0cDoKbGFjayB0 aGUgY2hlY2sgZm9yIHBvcnRzIGluIHNjdHBfdjZfY21wX2FkZHIiKS4KClRoaXMgcGF0Y2ggaXMg dG8gcmVtb3ZlIGFmLT5jbXBfYWRkciBjYWxsZWQgaW4gc2N0cF9pbmV0Nl9jbXBfYWRkciwKYnV0 IGRvIHRoZSBwcm9wZXIgY2hlY2sgZm9yIGJvdGggdjYgYWRkcnMgYW5kIHY0bWFwcGVkIGFkZHJz LgoKdjEtPnYyOgogIC0gZGVmaW5lIF9fc2N0cF92Nl9jbXBfYWRkciB0byBkbyB0aGUgY29tbW9u IGFkZHJlc3MgY29tcGFyaXNvbgogICAgdXNlZCBmb3IgYm90aCBwZiBhbmQgYWYgdjYgY21wX2Fk ZHIuCgpGaXhlczogNDBiNGYwZmQ3NGU0ICgic2N0cDogbGFjayB0aGUgY2hlY2sgZm9yIHBvcnRz IGluIHNjdHBfdjZfY21wX2FkZHIiKQpSZXBvcnRlZC1ieTogSmlhbndlbiBKaSA8amlqaUByZWRo YXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkFj a2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvaXB2 Ni5jIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvaXB2Ni5jIGIvbmV0L3NjdHAvaXB2Ni5jCmluZGV4 IDA4YjU3MDVlNzM4MS4uNzIxOWExYzA0MWY3IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9pcHY2LmMK KysrIGIvbmV0L3NjdHAvaXB2Ni5jCkBAIC01MjEsNDYgKzUyMSw0OSBAQCBzdGF0aWMgdm9pZCBz Y3RwX3Y2X3RvX2FkZHIodW5pb24gc2N0cF9hZGRyICphZGRyLCBzdHJ1Y3QgaW42X2FkZHIgKnNh ZGRyLAogCWFkZHItPnY2LnNpbjZfc2NvcGVfaWQgPSAwOwogfQogCi0vKiBDb21wYXJlIGFkZHJl c3NlcyBleGFjdGx5LgotICogdjQtbWFwcGVkLXY2IGlzIGFsc28gaW4gY29uc2lkZXJhdGlvbi4K LSAqLwotc3RhdGljIGludCBzY3RwX3Y2X2NtcF9hZGRyKGNvbnN0IHVuaW9uIHNjdHBfYWRkciAq YWRkcjEsCi0JCQkgICAgY29uc3QgdW5pb24gc2N0cF9hZGRyICphZGRyMikKK3N0YXRpYyBpbnQg X19zY3RwX3Y2X2NtcF9hZGRyKGNvbnN0IHVuaW9uIHNjdHBfYWRkciAqYWRkcjEsCisJCQkgICAg ICBjb25zdCB1bmlvbiBzY3RwX2FkZHIgKmFkZHIyKQogewogCWlmIChhZGRyMS0+c2Euc2FfZmFt aWx5ICE9IGFkZHIyLT5zYS5zYV9mYW1pbHkpIHsKIAkJaWYgKGFkZHIxLT5zYS5zYV9mYW1pbHkg PT0gQUZfSU5FVCAmJgogCQkgICAgYWRkcjItPnNhLnNhX2ZhbWlseSA9PSBBRl9JTkVUNiAmJgot CQkgICAgaXB2Nl9hZGRyX3Y0bWFwcGVkKCZhZGRyMi0+djYuc2luNl9hZGRyKSkgewotCQkJaWYg KGFkZHIyLT52Ni5zaW42X3BvcnQgPT0gYWRkcjEtPnY0LnNpbl9wb3J0ICYmCi0JCQkgICAgYWRk cjItPnY2LnNpbjZfYWRkci5zNl9hZGRyMzJbM10gPT0KLQkJCSAgICBhZGRyMS0+djQuc2luX2Fk ZHIuc19hZGRyKQotCQkJCXJldHVybiAxOwotCQl9CisJCSAgICBpcHY2X2FkZHJfdjRtYXBwZWQo JmFkZHIyLT52Ni5zaW42X2FkZHIpICYmCisJCSAgICBhZGRyMi0+djYuc2luNl9hZGRyLnM2X2Fk ZHIzMlszXSA9PQorCQkgICAgYWRkcjEtPnY0LnNpbl9hZGRyLnNfYWRkcikKKwkJCXJldHVybiAx OworCiAJCWlmIChhZGRyMi0+c2Euc2FfZmFtaWx5ID09IEFGX0lORVQgJiYKIAkJICAgIGFkZHIx LT5zYS5zYV9mYW1pbHkgPT0gQUZfSU5FVDYgJiYKLQkJICAgIGlwdjZfYWRkcl92NG1hcHBlZCgm YWRkcjEtPnY2LnNpbjZfYWRkcikpIHsKLQkJCWlmIChhZGRyMS0+djYuc2luNl9wb3J0ID09IGFk ZHIyLT52NC5zaW5fcG9ydCAmJgotCQkJICAgIGFkZHIxLT52Ni5zaW42X2FkZHIuczZfYWRkcjMy WzNdID09Ci0JCQkgICAgYWRkcjItPnY0LnNpbl9hZGRyLnNfYWRkcikKLQkJCQlyZXR1cm4gMTsK LQkJfQorCQkgICAgaXB2Nl9hZGRyX3Y0bWFwcGVkKCZhZGRyMS0+djYuc2luNl9hZGRyKSAmJgor CQkgICAgYWRkcjEtPnY2LnNpbjZfYWRkci5zNl9hZGRyMzJbM10gPT0KKwkJICAgIGFkZHIyLT52 NC5zaW5fYWRkci5zX2FkZHIpCisJCQlyZXR1cm4gMTsKKwogCQlyZXR1cm4gMDsKIAl9Ci0JaWYg KGFkZHIxLT52Ni5zaW42X3BvcnQgIT0gYWRkcjItPnY2LnNpbjZfcG9ydCkKLQkJcmV0dXJuIDA7 CisKIAlpZiAoIWlwdjZfYWRkcl9lcXVhbCgmYWRkcjEtPnY2LnNpbjZfYWRkciwgJmFkZHIyLT52 Ni5zaW42X2FkZHIpKQogCQlyZXR1cm4gMDsKKwogCS8qIElmIHRoaXMgaXMgYSBsaW5rbG9jYWwg YWRkcmVzcywgY29tcGFyZSB0aGUgc2NvcGVfaWQuICovCi0JaWYgKGlwdjZfYWRkcl90eXBlKCZh ZGRyMS0+djYuc2luNl9hZGRyKSAmIElQVjZfQUREUl9MSU5LTE9DQUwpIHsKLQkJaWYgKGFkZHIx LT52Ni5zaW42X3Njb3BlX2lkICYmIGFkZHIyLT52Ni5zaW42X3Njb3BlX2lkICYmCi0JCSAgICAo YWRkcjEtPnY2LnNpbjZfc2NvcGVfaWQgIT0gYWRkcjItPnY2LnNpbjZfc2NvcGVfaWQpKSB7Ci0J CQlyZXR1cm4gMDsKLQkJfQotCX0KKwlpZiAoKGlwdjZfYWRkcl90eXBlKCZhZGRyMS0+djYuc2lu Nl9hZGRyKSAmIElQVjZfQUREUl9MSU5LTE9DQUwpICYmCisJICAgIGFkZHIxLT52Ni5zaW42X3Nj b3BlX2lkICYmIGFkZHIyLT52Ni5zaW42X3Njb3BlX2lkICYmCisJICAgIGFkZHIxLT52Ni5zaW42 X3Njb3BlX2lkICE9IGFkZHIyLT52Ni5zaW42X3Njb3BlX2lkKQorCQlyZXR1cm4gMDsKIAogCXJl dHVybiAxOwogfQogCisvKiBDb21wYXJlIGFkZHJlc3NlcyBleGFjdGx5LgorICogdjQtbWFwcGVk LXY2IGlzIGFsc28gaW4gY29uc2lkZXJhdGlvbi4KKyAqLworc3RhdGljIGludCBzY3RwX3Y2X2Nt cF9hZGRyKGNvbnN0IHVuaW9uIHNjdHBfYWRkciAqYWRkcjEsCisJCQkgICAgY29uc3QgdW5pb24g c2N0cF9hZGRyICphZGRyMikKK3sKKwlyZXR1cm4gX19zY3RwX3Y2X2NtcF9hZGRyKGFkZHIxLCBh ZGRyMikgJiYKKwkgICAgICAgYWRkcjEtPnY2LnNpbjZfcG9ydCA9PSBhZGRyMi0+djYuc2luNl9w b3J0OworfQorCiAvKiBJbml0aWFsaXplIGFkZHIgc3RydWN0IHRvIElOQUREUl9BTlkuICovCiBz dGF0aWMgdm9pZCBzY3RwX3Y2X2luYWRkcl9hbnkodW5pb24gc2N0cF9hZGRyICphZGRyLCBfX2Jl MTYgcG9ydCkKIHsKQEAgLTg0NSw4ICs4NDgsOCBAQCBzdGF0aWMgaW50IHNjdHBfaW5ldDZfY21w X2FkZHIoY29uc3QgdW5pb24gc2N0cF9hZGRyICphZGRyMSwKIAkJCSAgICAgICBjb25zdCB1bmlv biBzY3RwX2FkZHIgKmFkZHIyLAogCQkJICAgICAgIHN0cnVjdCBzY3RwX3NvY2sgKm9wdCkKIHsK LQlzdHJ1Y3Qgc2N0cF9hZiAqYWYxLCAqYWYyOwogCXN0cnVjdCBzb2NrICpzayA9IHNjdHBfb3B0 MnNrKG9wdCk7CisJc3RydWN0IHNjdHBfYWYgKmFmMSwgKmFmMjsKIAogCWFmMSA9IHNjdHBfZ2V0 X2FmX3NwZWNpZmljKGFkZHIxLT5zYS5zYV9mYW1pbHkpOwogCWFmMiA9IHNjdHBfZ2V0X2FmX3Nw ZWNpZmljKGFkZHIyLT5zYS5zYV9mYW1pbHkpOwpAQCAtODYyLDEwICs4NjUsNyBAQCBzdGF0aWMg aW50IHNjdHBfaW5ldDZfY21wX2FkZHIoY29uc3QgdW5pb24gc2N0cF9hZGRyICphZGRyMSwKIAlp ZiAoc2N0cF9pc19hbnkoc2ssIGFkZHIxKSB8fCBzY3RwX2lzX2FueShzaywgYWRkcjIpKQogCQly ZXR1cm4gMTsKIAotCWlmIChhZGRyMS0+c2Euc2FfZmFtaWx5ICE9IGFkZHIyLT5zYS5zYV9mYW1p bHkpCi0JCXJldHVybiAwOwotCi0JcmV0dXJuIGFmMS0+Y21wX2FkZHIoYWRkcjEsIGFkZHIyKTsK KwlyZXR1cm4gX19zY3RwX3Y2X2NtcF9hZGRyKGFkZHIxLCBhZGRyMik7CiB9CiAKIC8qIFZlcmlm eSB0aGF0IHRoZSBwcm92aWRlZCBzb2NrYWRkciBsb29rcyBiaW5kYWJsZS4gICBDb21tb24gdmVy aWZpY2F0aW9uLAotLSAKMi4xNC4zCgoKRnJvbSA2ZWY1YWU4ZmYwN2NiNGI4MDgxODg4NzkxN2Q4 MTc4Y2I2OTljOWI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gTGVuZGFja3kg PHRob21hcy5sZW5kYWNreUBhbWQuY29tPgpEYXRlOiBNb24sIDIzIEFwciAyMDE4IDExOjQzOjE3 IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAyMS8zM10gYW1kLXhnYmU6IEltcHJvdmUgS1IgYXV0by1u ZWdvdGlhdGlvbiBhbmQgdHJhaW5pbmcKClsgVXBzdHJlYW0gY29tbWl0IDk2ZjRkNDMwYzUwN2Vk NDg1NjA0OGMyZGM5YzFhMmVhNWI1ZTc0ZTQgXQoKVXBkYXRlIHhnYmUtcGh5LXYyLmMgdG8gbWFr ZSB1c2Ugb2YgdGhlIGF1dG8tbmVnb3RpYXRpb24gKEFOKSBwaHkgaG9va3MKdG8gaW1wcm92ZSB0 aGUgYWJpbGl0eSB0byBzdWNjZXNzZnVsbHkgY29tcGxldGUgQ2xhdXNlIDczIEFOIHdoZW4gcnVu bmluZwphdCAxMGdicHMuICBIYXJkd2FyZSBjYW4gc29tZXRpbWVzIGhhdmUgaXNzdWVzIHdpdGgg Q0RSIGxvY2sgd2hlbiB0aGUKQU4gRE1FIHBhZ2UgZXhjaGFuZ2UgaXMgYmVpbmcgcGVyZm9ybWVk LgoKVGhlIEFOIGFuZCBLUiB0cmFpbmluZyBob29rcyBhcmUgdXNlZCBhcyBmb2xsb3dzOgotIFRo ZSBwcmUgQU4gaG9vayBpcyB1c2VkIHRvIGRpc2FibGUgQ0RSIHRyYWNraW5nIGluIHRoZSBQSFkg c28gdGhhdCB0aGUKICBETUUgcGFnZSBleGNoYW5nZSBjYW4gYmUgc3VjY2Vzc2Z1bGx5IGFuZCBj b25zaXN0ZW50bHkgY29tcGxldGVkLgotIFRoZSBwb3N0IEtSIHRyYWluaW5nIGhvb2sgaXMgdXNl ZCB0byByZS1lbmFibGUgdGhlIENEUiB0cmFja2luZyBzbyB0aGF0CiAgS1IgdHJhaW5pbmcgY2Fu IHN1Y2Nlc3NmdWxseSBjb21wbGV0ZS4KLSBUaGUgcG9zdCBBTiBob29rIGlzIHVzZWQgdG8gY2hl Y2sgZm9yIGFuIHVuc3VjY2Vzc2Z1bCBBTiB3aGljaCB3aWxsCiAgaW5jcmVhc2UgYSBDRFIgdHJh Y2tpbmcgZW5hYmxlbWVudCBkZWxheSAodXAgdG8gYSBtYXhpbXVtIHZhbHVlKS4KCkFkZCB0d28g ZGVidWdmcyBlbnRyaWVzIHRvIGFsbG93IGNvbnRyb2wgb3ZlciB1c2Ugb2YgdGhlIENEUiB0cmFj a2luZwp3b3JrYXJvdW5kLiAgVGhlIGRlYnVnZnMgZW50cmllcyBhbGxvdyB0aGUgQ0RSIHRyYWNr aW5nIHdvcmthcm91bmQgdG8KYmUgZGlzYWJsZWQgYW5kIGRldGVybWluZSB3aGV0aGVyIHRvIHJl LWVuYWJsZSBDRFIgdHJhY2tpbmcgYmVmb3JlIG9yCmFmdGVyIGxpbmsgdHJhaW5pbmcgaGFzIGJl ZW4gaW5pdGlhdGVkLgoKQWxzbywgd2l0aCB0aGVzZSBjaGFuZ2VzIHRoZSByZWNlaXZlciByZXNl dCBjeWNsZSB0aGF0IGlzIHBlcmZvcm1lZCBkdXJpbmcKdGhlIGxpbmsgc3RhdHVzIGNoZWNrIGNh biBiZSBwZXJmb3JtZWQgbGVzcyBvZnRlbi4KClNpZ25lZC1vZmYtYnk6IFRvbSBMZW5kYWNreSA8 dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94 Z2JlLWNvbW1vbi5oICB8ICAgOCArKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdi ZS1kZWJ1Z2ZzLmMgfCAgMTYgKysrKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdi ZS1tYWluLmMgICAgfCAgIDEgKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1t ZGlvLmMgICAgfCAgIDggKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGNp LmMgICAgIHwgICAyICsKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGh5LXYy LmMgIHwgMTI1ICsrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvYW1kL3hnYmUveGdiZS5oICAgICAgICAgfCAgIDQgKwogNyBmaWxlcyBjaGFuZ2VkLCAxNjAg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9hbWQveGdiZS94Z2JlLWNvbW1vbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1k L3hnYmUveGdiZS1jb21tb24uaAppbmRleCA3ZWE3MmVmMTFhNTUuLmQyNzJkYzY5ODRhYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1jb21tb24uaAorKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWNvbW1vbi5oCkBAIC0xMzIxLDYg KzEzMjEsMTAgQEAKICNkZWZpbmUgTURJT19WRU5EMl9BTl9TVEFUCQkweDgwMDIKICNlbmRpZgog CisjaWZuZGVmIE1ESU9fVkVORDJfUE1BX0NEUl9DT05UUk9MCisjZGVmaW5lIE1ESU9fVkVORDJf UE1BX0NEUl9DT05UUk9MCTB4ODA1NgorI2VuZGlmCisKICNpZm5kZWYgTURJT19DVFJMMV9TUEVF RDFHCiAjZGVmaW5lIE1ESU9fQ1RSTDFfU1BFRUQxRwkJKE1ESU9fQ1RSTDFfU1BFRUQxMEcgJiB+ Qk1DUl9TUEVFRDEwMCkKICNlbmRpZgpAQCAtMTM2OSw2ICsxMzczLDEwIEBACiAjZGVmaW5lIFhH QkVfQU5fQ0wzN19UWF9DT05GSUdfTUFTSwkweDA4CiAjZGVmaW5lIFhHQkVfQU5fQ0wzN19NSUlf Q1RSTF84QklUCTB4MDEwMAogCisjZGVmaW5lIFhHQkVfUE1BX0NEUl9UUkFDS19FTl9NQVNLCTB4 MDEKKyNkZWZpbmUgWEdCRV9QTUFfQ0RSX1RSQUNLX0VOX09GRgkweDAwCisjZGVmaW5lIFhHQkVf UE1BX0NEUl9UUkFDS19FTl9PTgkweDAxCisKIC8qIEJpdCBzZXR0aW5nIGFuZCBnZXR0aW5nIG1h Y3JvcwogICogIFRoZSBnZXQgbWFjcm8gd2lsbCBleHRyYWN0IHRoZSBjdXJyZW50IGJpdCBmaWVs ZCB2YWx1ZSBmcm9tIHdpdGhpbgogICogIHRoZSB2YXJpYWJsZQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZWJ1Z2ZzLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9hbWQveGdiZS94Z2JlLWRlYnVnZnMuYwppbmRleCA3ZDEyOGJlNjEzMTAuLmI5MTE0Mzk0 N2VkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZWJ1 Z2ZzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZWJ1Z2ZzLmMK QEAgLTUxOSw2ICs1MTksMjIgQEAgdm9pZCB4Z2JlX2RlYnVnZnNfaW5pdChzdHJ1Y3QgeGdiZV9w cnZfZGF0YSAqcGRhdGEpCiAJCQkJICAgImRlYnVnZnNfY3JlYXRlX2ZpbGUgZmFpbGVkXG4iKTsK IAl9CiAKKwlpZiAocGRhdGEtPnZkYXRhLT5hbl9jZHJfd29ya2Fyb3VuZCkgeworCQlwZmlsZSA9 IGRlYnVnZnNfY3JlYXRlX2Jvb2woImFuX2Nkcl93b3JrYXJvdW5kIiwgMDYwMCwKKwkJCQkJICAg IHBkYXRhLT54Z2JlX2RlYnVnZnMsCisJCQkJCSAgICAmcGRhdGEtPmRlYnVnZnNfYW5fY2RyX3dv cmthcm91bmQpOworCQlpZiAoIXBmaWxlKQorCQkJbmV0ZGV2X2VycihwZGF0YS0+bmV0ZGV2LAor CQkJCSAgICJkZWJ1Z2ZzX2NyZWF0ZV9ib29sIGZhaWxlZFxuIik7CisKKwkJcGZpbGUgPSBkZWJ1 Z2ZzX2NyZWF0ZV9ib29sKCJhbl9jZHJfdHJhY2tfZWFybHkiLCAwNjAwLAorCQkJCQkgICAgcGRh dGEtPnhnYmVfZGVidWdmcywKKwkJCQkJICAgICZwZGF0YS0+ZGVidWdmc19hbl9jZHJfdHJhY2tf ZWFybHkpOworCQlpZiAoIXBmaWxlKQorCQkJbmV0ZGV2X2VycihwZGF0YS0+bmV0ZGV2LAorCQkJ CSAgICJkZWJ1Z2ZzX2NyZWF0ZV9ib29sIGZhaWxlZFxuIik7CisJfQorCiAJa2ZyZWUoYnVmKTsK IH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1tYWlu LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLW1haW4uYwppbmRleCBkOTFm YTU5NWJlOTguLmUzMWQ5ZDFmYjZhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YW1kL3hnYmUveGdiZS1tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUv eGdiZS1tYWluLmMKQEAgLTM0OSw2ICszNDksNyBAQCBpbnQgeGdiZV9jb25maWdfbmV0ZGV2KHN0 cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIAlYR01BQ19TRVRfQklUUyhwZGF0YS0+cnNzX29w dGlvbnMsIE1BQ19SU1NDUiwgVURQNFRFLCAxKTsKIAogCS8qIENhbGwgTURJTy9QSFkgaW5pdGlh bGl6YXRpb24gcm91dGluZSAqLworCXBkYXRhLT5kZWJ1Z2ZzX2FuX2Nkcl93b3JrYXJvdW5kID0g cGRhdGEtPnZkYXRhLT5hbl9jZHJfd29ya2Fyb3VuZDsKIAlyZXQgPSBwZGF0YS0+cGh5X2lmLnBo eV9pbml0KHBkYXRhKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1tZGlvLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9hbWQveGdiZS94Z2JlLW1kaW8uYwppbmRleCBlM2QzNjFlMjQyYWEuLjFiNDVjZDczYTI1 OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1tZGlvLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1tZGlvLmMKQEAgLTQzMiw2 ICs0MzIsOCBAQCBzdGF0aWMgdm9pZCB4Z2JlX2FuNzNfZGlzYWJsZShzdHJ1Y3QgeGdiZV9wcnZf ZGF0YSAqcGRhdGEpCiAJeGdiZV9hbjczX3NldChwZGF0YSwgZmFsc2UsIGZhbHNlKTsKIAl4Z2Jl X2FuNzNfZGlzYWJsZV9pbnRlcnJ1cHRzKHBkYXRhKTsKIAorCXBkYXRhLT5hbl9zdGFydCA9IDA7 CisKIAluZXRpZl9kYmcocGRhdGEsIGxpbmssIHBkYXRhLT5uZXRkZXYsICJDTDczIEFOIGRpc2Fi bGVkXG4iKTsKIH0KIApAQCAtNTExLDExICs1MTMsMTEgQEAgc3RhdGljIGVudW0geGdiZV9hbiB4 Z2JlX2FuNzNfdHhfdHJhaW5pbmcoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhLAogCQlYTURJ T19XUklURShwZGF0YSwgTURJT19NTURfUE1BUE1ELCBNRElPX1BNQV8xMEdCUl9QTURfQ1RSTCwK IAkJCSAgICByZWcpOwogCi0JCWlmIChwZGF0YS0+cGh5X2lmLnBoeV9pbXBsLmtyX3RyYWluaW5n X3Bvc3QpCi0JCQlwZGF0YS0+cGh5X2lmLnBoeV9pbXBsLmtyX3RyYWluaW5nX3Bvc3QocGRhdGEp OwotCiAJCW5ldGlmX2RiZyhwZGF0YSwgbGluaywgcGRhdGEtPm5ldGRldiwKIAkJCSAgIktSIHRy YWluaW5nIGluaXRpYXRlZFxuIik7CisKKwkJaWYgKHBkYXRhLT5waHlfaWYucGh5X2ltcGwua3Jf dHJhaW5pbmdfcG9zdCkKKwkJCXBkYXRhLT5waHlfaWYucGh5X2ltcGwua3JfdHJhaW5pbmdfcG9z dChwZGF0YSk7CiAJfQogCiAJcmV0dXJuIFhHQkVfQU5fUEFHRV9SRUNFSVZFRDsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGNpLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBjaS5jCmluZGV4IGViMjNmOWJhMWE5YS4uODJkMWY0 MTZlZTJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBj aS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGNpLmMKQEAgLTQ1 Niw2ICs0NTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHhnYmVfdmVyc2lvbl9kYXRhIHhnYmVf djJhID0gewogCS5pcnFfcmVpc3N1ZV9zdXBwb3J0CQk9IDEsCiAJLnR4X2Rlc2NfcHJlZmV0Y2gJ CT0gNSwKIAkucnhfZGVzY19wcmVmZXRjaAkJPSA1LAorCS5hbl9jZHJfd29ya2Fyb3VuZAkJPSAx LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB4Z2JlX3ZlcnNpb25fZGF0YSB4Z2JlX3YyYiA9 IHsKQEAgLTQ3MCw2ICs0NzEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHhnYmVfdmVyc2lvbl9k YXRhIHhnYmVfdjJiID0gewogCS5pcnFfcmVpc3N1ZV9zdXBwb3J0CQk9IDEsCiAJLnR4X2Rlc2Nf cHJlZmV0Y2gJCT0gNSwKIAkucnhfZGVzY19wcmVmZXRjaAkJPSA1LAorCS5hbl9jZHJfd29ya2Fy b3VuZAkJPSAxLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHhnYmVf cGNpX3RhYmxlW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdi ZS94Z2JlLXBoeS12Mi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1waHkt djIuYwppbmRleCAzMzA0YTI5MWFhOTYuLmI0OGVmYzA0YzRkYSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1waHktdjIuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jCkBAIC0xNDcsNiArMTQ3LDE0IEBACiAvKiBS YXRlLWNoYW5nZSBjb21wbGV0ZSB3YWl0L3JldHJ5IGNvdW50ICovCiAjZGVmaW5lIFhHQkVfUkFU RUNIQU5HRV9DT1VOVAkJNTAwCiAKKy8qIENEUiBkZWxheSB2YWx1ZXMgZm9yIEtSIHN1cHBvcnQg KGluIHVzZWMpICovCisjZGVmaW5lIFhHQkVfQ0RSX0RFTEFZX0lOSVQJCTEwMDAwCisjZGVmaW5l IFhHQkVfQ0RSX0RFTEFZX0lOQwkJMTAwMDAKKyNkZWZpbmUgWEdCRV9DRFJfREVMQVlfTUFYCQkx MDAwMDAKKworLyogUlJDIGZyZXF1ZW5jeSBkdXJpbmcgbGluayBzdGF0dXMgY2hlY2sgKi8KKyNk ZWZpbmUgWEdCRV9SUkNfRlJFUVVFTkNZCQkxMAorCiBlbnVtIHhnYmVfcG9ydF9tb2RlIHsKIAlY R0JFX1BPUlRfTU9ERV9SU1ZEID0gMCwKIAlYR0JFX1BPUlRfTU9ERV9CQUNLUExBTkUsCkBAIC0z NTUsNiArMzYzLDEwIEBAIHN0cnVjdCB4Z2JlX3BoeV9kYXRhIHsKIAl1bnNpZ25lZCBpbnQgcmVk cnZfYWRkcjsKIAl1bnNpZ25lZCBpbnQgcmVkcnZfbGFuZTsKIAl1bnNpZ25lZCBpbnQgcmVkcnZf bW9kZWw7CisKKwkvKiBLUiBBTiBzdXBwb3J0ICovCisJdW5zaWduZWQgaW50IHBoeV9jZHJfbm90 cmFjazsKKwl1bnNpZ25lZCBpbnQgcGh5X2Nkcl9kZWxheTsKIH07CiAKIC8qIEkyQywgTURJTyBh bmQgR1BJTyBsaW5lcyBhcmUgbXV4ZWQsIHNvIG9ubHkgb25lIGRldmljZSBhdCBhIHRpbWUgKi8K QEAgLTIzNjEsNyArMjM3Myw3IEBAIHN0YXRpYyBpbnQgeGdiZV9waHlfbGlua19zdGF0dXMoc3Ry dWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhLCBpbnQgKmFuX3Jlc3RhcnQpCiAJCXJldHVybiAxOwog CiAJLyogTm8gbGluaywgYXR0ZW1wdCBhIHJlY2VpdmVyIHJlc2V0IGN5Y2xlICovCi0JaWYgKHBo eV9kYXRhLT5ycmNfY291bnQrKykgeworCWlmIChwaHlfZGF0YS0+cnJjX2NvdW50KysgPiBYR0JF X1JSQ19GUkVRVUVOQ1kpIHsKIAkJcGh5X2RhdGEtPnJyY19jb3VudCA9IDA7CiAJCXhnYmVfcGh5 X3JyYyhwZGF0YSk7CiAJfQpAQCAtMjY2OSw2ICsyNjgxLDEwMyBAQCBzdGF0aWMgYm9vbCB4Z2Jl X3BoeV9wb3J0X2VuYWJsZWQoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQogCXJldHVybiB0 cnVlOwogfQogCitzdGF0aWMgdm9pZCB4Z2JlX3BoeV9jZHJfdHJhY2soc3RydWN0IHhnYmVfcHJ2 X2RhdGEgKnBkYXRhKQoreworCXN0cnVjdCB4Z2JlX3BoeV9kYXRhICpwaHlfZGF0YSA9IHBkYXRh LT5waHlfZGF0YTsKKworCWlmICghcGRhdGEtPmRlYnVnZnNfYW5fY2RyX3dvcmthcm91bmQpCisJ CXJldHVybjsKKworCWlmICghcGh5X2RhdGEtPnBoeV9jZHJfbm90cmFjaykKKwkJcmV0dXJuOwor CisJdXNsZWVwX3JhbmdlKHBoeV9kYXRhLT5waHlfY2RyX2RlbGF5LAorCQkgICAgIHBoeV9kYXRh LT5waHlfY2RyX2RlbGF5ICsgNTAwKTsKKworCVhNRElPX1dSSVRFX0JJVFMocGRhdGEsIE1ESU9f TU1EX1BNQVBNRCwgTURJT19WRU5EMl9QTUFfQ0RSX0NPTlRST0wsCisJCQkgWEdCRV9QTUFfQ0RS X1RSQUNLX0VOX01BU0ssCisJCQkgWEdCRV9QTUFfQ0RSX1RSQUNLX0VOX09OKTsKKworCXBoeV9k YXRhLT5waHlfY2RyX25vdHJhY2sgPSAwOworfQorCitzdGF0aWMgdm9pZCB4Z2JlX3BoeV9jZHJf bm90cmFjayhzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCit7CisJc3RydWN0IHhnYmVfcGh5 X2RhdGEgKnBoeV9kYXRhID0gcGRhdGEtPnBoeV9kYXRhOworCisJaWYgKCFwZGF0YS0+ZGVidWdm c19hbl9jZHJfd29ya2Fyb3VuZCkKKwkJcmV0dXJuOworCisJaWYgKHBoeV9kYXRhLT5waHlfY2Ry X25vdHJhY2spCisJCXJldHVybjsKKworCVhNRElPX1dSSVRFX0JJVFMocGRhdGEsIE1ESU9fTU1E X1BNQVBNRCwgTURJT19WRU5EMl9QTUFfQ0RSX0NPTlRST0wsCisJCQkgWEdCRV9QTUFfQ0RSX1RS QUNLX0VOX01BU0ssCisJCQkgWEdCRV9QTUFfQ0RSX1RSQUNLX0VOX09GRik7CisKKwl4Z2JlX3Bo eV9ycmMocGRhdGEpOworCisJcGh5X2RhdGEtPnBoeV9jZHJfbm90cmFjayA9IDE7Cit9CisKK3N0 YXRpYyB2b2lkIHhnYmVfcGh5X2tyX3RyYWluaW5nX3Bvc3Qoc3RydWN0IHhnYmVfcHJ2X2RhdGEg KnBkYXRhKQoreworCWlmICghcGRhdGEtPmRlYnVnZnNfYW5fY2RyX3RyYWNrX2Vhcmx5KQorCQl4 Z2JlX3BoeV9jZHJfdHJhY2socGRhdGEpOworfQorCitzdGF0aWMgdm9pZCB4Z2JlX3BoeV9rcl90 cmFpbmluZ19wcmUoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQoreworCWlmIChwZGF0YS0+ ZGVidWdmc19hbl9jZHJfdHJhY2tfZWFybHkpCisJCXhnYmVfcGh5X2Nkcl90cmFjayhwZGF0YSk7 Cit9CisKK3N0YXRpYyB2b2lkIHhnYmVfcGh5X2FuX3Bvc3Qoc3RydWN0IHhnYmVfcHJ2X2RhdGEg KnBkYXRhKQoreworCXN0cnVjdCB4Z2JlX3BoeV9kYXRhICpwaHlfZGF0YSA9IHBkYXRhLT5waHlf ZGF0YTsKKworCXN3aXRjaCAocGRhdGEtPmFuX21vZGUpIHsKKwljYXNlIFhHQkVfQU5fTU9ERV9D TDczOgorCWNhc2UgWEdCRV9BTl9NT0RFX0NMNzNfUkVEUlY6CisJCWlmIChwaHlfZGF0YS0+Y3Vy X21vZGUgIT0gWEdCRV9NT0RFX0tSKQorCQkJYnJlYWs7CisKKwkJeGdiZV9waHlfY2RyX3RyYWNr KHBkYXRhKTsKKworCQlzd2l0Y2ggKHBkYXRhLT5hbl9yZXN1bHQpIHsKKwkJY2FzZSBYR0JFX0FO X1JFQURZOgorCQljYXNlIFhHQkVfQU5fQ09NUExFVEU6CisJCQlicmVhazsKKwkJZGVmYXVsdDoK KwkJCWlmIChwaHlfZGF0YS0+cGh5X2Nkcl9kZWxheSA8IFhHQkVfQ0RSX0RFTEFZX01BWCkKKwkJ CQlwaHlfZGF0YS0+cGh5X2Nkcl9kZWxheSArPSBYR0JFX0NEUl9ERUxBWV9JTkM7CisJCQllbHNl CisJCQkJcGh5X2RhdGEtPnBoeV9jZHJfZGVsYXkgPSBYR0JFX0NEUl9ERUxBWV9JTklUOworCQkJ YnJlYWs7CisJCX0KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorfQorCitzdGF0 aWMgdm9pZCB4Z2JlX3BoeV9hbl9wcmUoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQorewor CXN0cnVjdCB4Z2JlX3BoeV9kYXRhICpwaHlfZGF0YSA9IHBkYXRhLT5waHlfZGF0YTsKKworCXN3 aXRjaCAocGRhdGEtPmFuX21vZGUpIHsKKwljYXNlIFhHQkVfQU5fTU9ERV9DTDczOgorCWNhc2Ug WEdCRV9BTl9NT0RFX0NMNzNfUkVEUlY6CisJCWlmIChwaHlfZGF0YS0+Y3VyX21vZGUgIT0gWEdC RV9NT0RFX0tSKQorCQkJYnJlYWs7CisKKwkJeGdiZV9waHlfY2RyX25vdHJhY2socGRhdGEpOwor CQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIHhnYmVf cGh5X3N0b3Aoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQogewogCXN0cnVjdCB4Z2JlX3Bo eV9kYXRhICpwaHlfZGF0YSA9IHBkYXRhLT5waHlfZGF0YTsKQEAgLTI2ODAsNiArMjc4OSw5IEBA IHN0YXRpYyB2b2lkIHhnYmVfcGh5X3N0b3Aoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQog CXhnYmVfcGh5X3NmcF9yZXNldChwaHlfZGF0YSk7CiAJeGdiZV9waHlfc2ZwX21vZF9hYnNlbnQo cGRhdGEpOwogCisJLyogUmVzZXQgQ0RSIHN1cHBvcnQgKi8KKwl4Z2JlX3BoeV9jZHJfdHJhY2so cGRhdGEpOworCiAJLyogUG93ZXIgb2ZmIHRoZSBQSFkgKi8KIAl4Z2JlX3BoeV9wb3dlcl9vZmYo cGRhdGEpOwogCkBAIC0yNzEyLDYgKzI4MjQsOSBAQCBzdGF0aWMgaW50IHhnYmVfcGh5X3N0YXJ0 KHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIAkvKiBTdGFydCBpbiBoaWdoZXN0IHN1cHBv cnRlZCBtb2RlICovCiAJeGdiZV9waHlfc2V0X21vZGUocGRhdGEsIHBoeV9kYXRhLT5zdGFydF9t b2RlKTsKIAorCS8qIFJlc2V0IENEUiBzdXBwb3J0ICovCisJeGdiZV9waHlfY2RyX3RyYWNrKHBk YXRhKTsKKwogCS8qIEFmdGVyIHN0YXJ0aW5nIHRoZSBJMkMgY29udHJvbGxlciwgd2UgY2FuIGNo ZWNrIGZvciBhbiBTRlAgKi8KIAlzd2l0Y2ggKHBoeV9kYXRhLT5wb3J0X21vZGUpIHsKIAljYXNl IFhHQkVfUE9SVF9NT0RFX1NGUDoKQEAgLTMwMTksNiArMzEzNCw4IEBAIHN0YXRpYyBpbnQgeGdi ZV9waHlfaW5pdChzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCiAJCX0KIAl9CiAKKwlwaHlf ZGF0YS0+cGh5X2Nkcl9kZWxheSA9IFhHQkVfQ0RSX0RFTEFZX0lOSVQ7CisKIAkvKiBSZWdpc3Rl ciBmb3IgZHJpdmluZyBleHRlcm5hbCBQSFlzICovCiAJbWlpID0gZGV2bV9tZGlvYnVzX2FsbG9j KHBkYXRhLT5kZXYpOwogCWlmICghbWlpKSB7CkBAIC0zMDcxLDQgKzMxODgsMTAgQEAgdm9pZCB4 Z2JlX2luaXRfZnVuY3Rpb25fcHRyc19waHlfdjIoc3RydWN0IHhnYmVfcGh5X2lmICpwaHlfaWYp CiAJcGh5X2ltcGwtPmFuX2FkdmVydGlzaW5nCT0geGdiZV9waHlfYW5fYWR2ZXJ0aXNpbmc7CiAK IAlwaHlfaW1wbC0+YW5fb3V0Y29tZQkJPSB4Z2JlX3BoeV9hbl9vdXRjb21lOworCisJcGh5X2lt cGwtPmFuX3ByZQkJPSB4Z2JlX3BoeV9hbl9wcmU7CisJcGh5X2ltcGwtPmFuX3Bvc3QJCT0geGdi ZV9waHlfYW5fcG9zdDsKKworCXBoeV9pbXBsLT5rcl90cmFpbmluZ19wcmUJPSB4Z2JlX3BoeV9r cl90cmFpbmluZ19wcmU7CisJcGh5X2ltcGwtPmtyX3RyYWluaW5nX3Bvc3QJPSB4Z2JlX3BoeV9r cl90cmFpbmluZ19wb3N0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1k L3hnYmUveGdiZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS5oCmluZGV4 IGZhMGI1MWVhMWI5NS4uOTVkNGI1NjQ0OGM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9hbWQveGdiZS94Z2JlLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUv eGdiZS5oCkBAIC05OTQsNiArOTk0LDcgQEAgc3RydWN0IHhnYmVfdmVyc2lvbl9kYXRhIHsKIAl1 bnNpZ25lZCBpbnQgaXJxX3JlaXNzdWVfc3VwcG9ydDsKIAl1bnNpZ25lZCBpbnQgdHhfZGVzY19w cmVmZXRjaDsKIAl1bnNpZ25lZCBpbnQgcnhfZGVzY19wcmVmZXRjaDsKKwl1bnNpZ25lZCBpbnQg YW5fY2RyX3dvcmthcm91bmQ7CiB9OwogCiBzdHJ1Y3QgeGdiZV92eGxhbl9kYXRhIHsKQEAgLTEy NjIsNiArMTI2Myw5IEBAIHN0cnVjdCB4Z2JlX3Bydl9kYXRhIHsKIAl1bnNpZ25lZCBpbnQgZGVi dWdmc194cHJvcF9yZWc7CiAKIAl1bnNpZ25lZCBpbnQgZGVidWdmc194aTJjX3JlZzsKKworCWJv b2wgZGVidWdmc19hbl9jZHJfd29ya2Fyb3VuZDsKKwlib29sIGRlYnVnZnNfYW5fY2RyX3RyYWNr X2Vhcmx5OwogfTsKIAogLyogRnVuY3Rpb24gcHJvdG90eXBlcyovCi0tIAoyLjE0LjMKCgpGcm9t IGIzNjNmZjUzMTZmMzM0Nzc3MjM2ZTdkZDQyOGM1Zjg4NWIxYjg5YmYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERvcm9uIFJvYmVydHMtS2VkZXMgPGRvcm9ucmtAZmIuY29tPgpEYXRl OiBGcmksIDIwIEFwciAyMDE4IDEyOjExOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMi8zM10g c3RycGFyc2VyOiBEbyBub3QgY2FsbCBtb2RfZGVsYXllZF93b3JrIHdpdGggYSB0aW1lb3V0CiBv ZiBMT05HX01BWAoKWyBVcHN0cmVhbSBjb21taXQgN2M1YWJhMjExZGQ2MWY0MWQ3MzdhMmM1MTcy OWViOWZkY2QzZWRmNCBdCgpzdHJ1Y3Qgc29jaydzIHNrX3JjdnRpbWVvIGlzIGluaXRpYWxpemVk IHRvCkxPTkdfTUFYL01BWF9TQ0hFRFVMRV9USU1FT1VUIGluIHNvY2tfaW5pdF9kYXRhLiBDYWxs aW5nCm1vZF9kZWxheWVkX3dvcmsgd2l0aCBhIHRpbWVvdXQgb2YgTE9OR19NQVggY2F1c2VzIHNw dXJpb3VzIGV4ZWN1dGlvbiBvZgp0aGUgd29yayBmdW5jdGlvbi4gdGltZXItPmV4cGlyZXMgaXMg c2V0IGVxdWFsIHRvIGppZmZpZXMgKyBMT05HX01BWC4KV2hlbiB0aW1lcl9iYXNlLT5jbGsgZmFs bHMgYmVoaW5kIHRoZSBjdXJyZW50IHZhbHVlIG9mIGppZmZpZXMsCnRoZSBkZWx0YSBiZXR3ZWVu IHRpbWVyX2Jhc2UtPmNsayBhbmQgamlmZmllcyArIExPTkdfTUFYIGNhdXNlcyB0aGUKZXhwaXJh dGlvbiB0byBiZSBpbiB0aGUgcGFzdC4gUmV0dXJuaW5nIGVhcmx5IGZyb20gc3RycF9zdGFydF90 aW1lciBpZgp0aW1lbyA9PSBMT05HX01BWCBzb2x2ZXMgdGhpcyBwcm9ibGVtLgoKRm91bmQgd2hp bGUgdGVzdGluZyBuZXQvdGxzX3N3IHJlY3YgcGF0aC4KCkZpeGVzOiA0M2EwYzY3NTFhMzIyODQ3 ICgic3RycGFyc2VyOiBTdHJlYW0gcGFyc2VyIGZvciBtZXNzYWdlcyIpClJldmlld2VkLWJ5OiBU ZWp1biBIZW8gPHRqQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERvcm9uIFJvYmVydHMtS2Vk ZXMgPGRvcm9ucmtAZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3N0cnBhcnNlci9zdHJwYXJzZXIuYyB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L25ldC9zdHJwYXJzZXIvc3RycGFyc2VyLmMgYi9uZXQvc3RycGFyc2VyL3N0cnBhcnNlci5jCmlu ZGV4IDRhM2EzZjEzMzFlZS4uNmI1YTdmZmZjNjJjIDEwMDY0NAotLS0gYS9uZXQvc3RycGFyc2Vy L3N0cnBhcnNlci5jCisrKyBiL25ldC9zdHJwYXJzZXIvc3RycGFyc2VyLmMKQEAgLTY3LDcgKzY3 LDcgQEAgc3RhdGljIHZvaWQgc3RycF9hYm9ydF9zdHJwKHN0cnVjdCBzdHJwYXJzZXIgKnN0cnAs IGludCBlcnIpCiAKIHN0YXRpYyB2b2lkIHN0cnBfc3RhcnRfdGltZXIoc3RydWN0IHN0cnBhcnNl ciAqc3RycCwgbG9uZyB0aW1lbykKIHsKLQlpZiAodGltZW8pCisJaWYgKHRpbWVvICYmIHRpbWVv ICE9IExPTkdfTUFYKQogCQltb2RfZGVsYXllZF93b3JrKHN0cnBfd3EsICZzdHJwLT5tc2dfdGlt ZXJfd29yaywgdGltZW8pOwogfQogCi0tIAoyLjE0LjMKCgpGcm9tIDhiNTQ5ZDRmYzE1YjRkOWQ4 M2IzODdhZGU1NzUwNjYxNWU4MGY1NDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRv bSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+CkRhdGU6IE1vbiwgMjMgQXByIDIw MTggMTE6NDM6MzQgLTA1MDAKU3ViamVjdDogW1BBVENIIDIzLzMzXSBhbWQteGdiZTogT25seSB1 c2UgdGhlIFNGUCBzdXBwb3J0ZWQgdHJhbnNjZWl2ZXIKIHNpZ25hbHMKClsgVXBzdHJlYW0gY29t bWl0IDExN2RmNjU1ZjhlZDUxYWRiNmU2YjE2MzgxMmEwNmViZWFlOWY0NTMgXQoKVGhlIFNGUCBl ZXByb20gaW5kaWNhdGVzIHRoZSB0cmFuc2NlaXZlciBzaWduYWxzIChSeCBMT1MsIFR4IEZhdWx0 LCBldGMuKQp0aGF0IGl0IHN1cHBvcnRzLiAgVXBkYXRlIHRoZSBkcml2ZXIgdG8gaW5jbHVkZSBj aGVja2luZyB0aGUgZWVwcm9tIGRhdGEKd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvIHVzZSBhIHRy YW5zY2VpdmVyIHNpZ25hbC4KClNpZ25lZC1vZmYtYnk6IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxl bmRhY2t5QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12 Mi5jIHwgNzEgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1 NCBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YW1kL3hnYmUveGdiZS1waHktdjIuYwppbmRleCBiNDhlZmMwNGM0ZGEuLmFhYzg4NDMxNDAwMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1waHktdjIuYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jCkBAIC0yNTMs NiArMjUzLDEwIEBAIGVudW0geGdiZV9zZnBfc3BlZWQgewogI2RlZmluZSBYR0JFX1NGUF9CQVNF X1ZFTkRPUl9TTgkJCTQKICNkZWZpbmUgWEdCRV9TRlBfQkFTRV9WRU5ET1JfU05fTEVOCQkxNgog CisjZGVmaW5lIFhHQkVfU0ZQX0VYVERfT1BUMQkJCTEKKyNkZWZpbmUgWEdCRV9TRlBfRVhURF9P UFQxX1JYX0xPUwkJQklUKDEpCisjZGVmaW5lIFhHQkVfU0ZQX0VYVERfT1BUMV9UWF9GQVVMVAkJ QklUKDMpCisKICNkZWZpbmUgWEdCRV9TRlBfRVhURF9ESUFHCQkJMjgKICNkZWZpbmUgWEdCRV9T RlBfRVhURF9ESUFHX0FERFJfQ0hBTkdFCQlCSVQoMikKIApAQCAtMzMyLDYgKzMzNiw3IEBAIHN0 cnVjdCB4Z2JlX3BoeV9kYXRhIHsKIAogCXVuc2lnbmVkIGludCBzZnBfZ3Bpb19hZGRyZXNzOwog CXVuc2lnbmVkIGludCBzZnBfZ3Bpb19tYXNrOworCXVuc2lnbmVkIGludCBzZnBfZ3Bpb19pbnB1 dHM7CiAJdW5zaWduZWQgaW50IHNmcF9ncGlvX3J4X2xvczsKIAl1bnNpZ25lZCBpbnQgc2ZwX2dw aW9fdHhfZmF1bHQ7CiAJdW5zaWduZWQgaW50IHNmcF9ncGlvX21vZF9hYnNlbnQ7CkBAIC05ODYs NiArOTkxLDQ5IEBAIHN0YXRpYyB2b2lkIHhnYmVfcGh5X3NmcF9leHRlcm5hbF9waHkoc3RydWN0 IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQogCXBoeV9kYXRhLT5zZnBfcGh5X2F2YWlsID0gMTsKIH0K IAorc3RhdGljIGJvb2wgeGdiZV9waHlfY2hlY2tfc2ZwX3J4X2xvcyhzdHJ1Y3QgeGdiZV9waHlf ZGF0YSAqcGh5X2RhdGEpCit7CisJdTggKnNmcF9leHRkID0gcGh5X2RhdGEtPnNmcF9lZXByb20u ZXh0ZDsKKworCWlmICghKHNmcF9leHRkW1hHQkVfU0ZQX0VYVERfT1BUMV0gJiBYR0JFX1NGUF9F WFREX09QVDFfUlhfTE9TKSkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKHBoeV9kYXRhLT5zZnBf Z3Bpb19tYXNrICYgWEdCRV9HUElPX05PX1JYX0xPUykKKwkJcmV0dXJuIGZhbHNlOworCisJaWYg KHBoeV9kYXRhLT5zZnBfZ3Bpb19pbnB1dHMgJiAoMSA8PCBwaHlfZGF0YS0+c2ZwX2dwaW9fcnhf bG9zKSkKKwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29s IHhnYmVfcGh5X2NoZWNrX3NmcF90eF9mYXVsdChzdHJ1Y3QgeGdiZV9waHlfZGF0YSAqcGh5X2Rh dGEpCit7CisJdTggKnNmcF9leHRkID0gcGh5X2RhdGEtPnNmcF9lZXByb20uZXh0ZDsKKworCWlm ICghKHNmcF9leHRkW1hHQkVfU0ZQX0VYVERfT1BUMV0gJiBYR0JFX1NGUF9FWFREX09QVDFfVFhf RkFVTFQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAocGh5X2RhdGEtPnNmcF9ncGlvX21hc2sg JiBYR0JFX0dQSU9fTk9fVFhfRkFVTFQpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChwaHlfZGF0 YS0+c2ZwX2dwaW9faW5wdXRzICYgKDEgPDwgcGh5X2RhdGEtPnNmcF9ncGlvX3R4X2ZhdWx0KSkK KwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIHhnYmVf cGh5X2NoZWNrX3NmcF9tb2RfYWJzZW50KHN0cnVjdCB4Z2JlX3BoeV9kYXRhICpwaHlfZGF0YSkK K3sKKwlpZiAocGh5X2RhdGEtPnNmcF9ncGlvX21hc2sgJiBYR0JFX0dQSU9fTk9fTU9EX0FCU0VO VCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKHBoeV9kYXRhLT5zZnBfZ3Bpb19pbnB1dHMgJiAo MSA8PCBwaHlfZGF0YS0+c2ZwX2dwaW9fbW9kX2Fic2VudCkpCisJCXJldHVybiB0cnVlOworCisJ cmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgYm9vbCB4Z2JlX3BoeV9iZWxmdXNlX3BhcnNlX3F1 aXJrcyhzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCiB7CiAJc3RydWN0IHhnYmVfcGh5X2Rh dGEgKnBoeV9kYXRhID0gcGRhdGEtPnBoeV9kYXRhOwpAQCAtMTAzMSw2ICsxMDc5LDEwIEBAIHN0 YXRpYyB2b2lkIHhnYmVfcGh5X3NmcF9wYXJzZV9lZXByb20oc3RydWN0IHhnYmVfcHJ2X2RhdGEg KnBkYXRhKQogCWlmIChzZnBfYmFzZVtYR0JFX1NGUF9CQVNFX0VYVF9JRF0gIT0gWEdCRV9TRlBf RVhUX0lEX1NGUCkKIAkJcmV0dXJuOwogCisJLyogVXBkYXRlIHRyYW5zY2VpdmVyIHNpZ25hbHMg KGVlcHJvbSBleHRkL29wdGlvbnMpICovCisJcGh5X2RhdGEtPnNmcF90eF9mYXVsdCA9IHhnYmVf cGh5X2NoZWNrX3NmcF90eF9mYXVsdChwaHlfZGF0YSk7CisJcGh5X2RhdGEtPnNmcF9yeF9sb3Mg PSB4Z2JlX3BoeV9jaGVja19zZnBfcnhfbG9zKHBoeV9kYXRhKTsKKwogCWlmICh4Z2JlX3BoeV9z ZnBfcGFyc2VfcXVpcmtzKHBkYXRhKSkKIAkJcmV0dXJuOwogCkBAIC0xMTk2LDcgKzEyNDgsNiBA QCBzdGF0aWMgaW50IHhnYmVfcGh5X3NmcF9yZWFkX2VlcHJvbShzdHJ1Y3QgeGdiZV9wcnZfZGF0 YSAqcGRhdGEpCiBzdGF0aWMgdm9pZCB4Z2JlX3BoeV9zZnBfc2lnbmFscyhzdHJ1Y3QgeGdiZV9w cnZfZGF0YSAqcGRhdGEpCiB7CiAJc3RydWN0IHhnYmVfcGh5X2RhdGEgKnBoeV9kYXRhID0gcGRh dGEtPnBoeV9kYXRhOwotCXVuc2lnbmVkIGludCBncGlvX2lucHV0OwogCXU4IGdwaW9fcmVnLCBn cGlvX3BvcnRzWzJdOwogCWludCByZXQ7CiAKQEAgLTEyMTEsMjMgKzEyNjIsOSBAQCBzdGF0aWMg dm9pZCB4Z2JlX3BoeV9zZnBfc2lnbmFscyhzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCiAJ CXJldHVybjsKIAl9CiAKLQlncGlvX2lucHV0ID0gKGdwaW9fcG9ydHNbMV0gPDwgOCkgfCBncGlv X3BvcnRzWzBdOwotCi0JaWYgKHBoeV9kYXRhLT5zZnBfZ3Bpb19tYXNrICYgWEdCRV9HUElPX05P X01PRF9BQlNFTlQpIHsKLQkJLyogTm8gR1BJTywganVzdCBhc3N1bWUgdGhlIG1vZHVsZSBpcyBw cmVzZW50IGZvciBub3cgKi8KLQkJcGh5X2RhdGEtPnNmcF9tb2RfYWJzZW50ID0gMDsKLQl9IGVs c2UgewotCQlpZiAoIShncGlvX2lucHV0ICYgKDEgPDwgcGh5X2RhdGEtPnNmcF9ncGlvX21vZF9h YnNlbnQpKSkKLQkJCXBoeV9kYXRhLT5zZnBfbW9kX2Fic2VudCA9IDA7Ci0JfQotCi0JaWYgKCEo cGh5X2RhdGEtPnNmcF9ncGlvX21hc2sgJiBYR0JFX0dQSU9fTk9fUlhfTE9TKSAmJgotCSAgICAo Z3Bpb19pbnB1dCAmICgxIDw8IHBoeV9kYXRhLT5zZnBfZ3Bpb19yeF9sb3MpKSkKLQkJcGh5X2Rh dGEtPnNmcF9yeF9sb3MgPSAxOworCXBoeV9kYXRhLT5zZnBfZ3Bpb19pbnB1dHMgPSAoZ3Bpb19w b3J0c1sxXSA8PCA4KSB8IGdwaW9fcG9ydHNbMF07CiAKLQlpZiAoIShwaHlfZGF0YS0+c2ZwX2dw aW9fbWFzayAmIFhHQkVfR1BJT19OT19UWF9GQVVMVCkgJiYKLQkgICAgKGdwaW9faW5wdXQgJiAo MSA8PCBwaHlfZGF0YS0+c2ZwX2dwaW9fdHhfZmF1bHQpKSkKLQkJcGh5X2RhdGEtPnNmcF90eF9m YXVsdCA9IDE7CisJcGh5X2RhdGEtPnNmcF9tb2RfYWJzZW50ID0geGdiZV9waHlfY2hlY2tfc2Zw X21vZF9hYnNlbnQocGh5X2RhdGEpOwogfQogCiBzdGF0aWMgdm9pZCB4Z2JlX3BoeV9zZnBfbW9k X2Fic2VudChzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCi0tIAoyLjE0LjMKCgpGcm9tIDc5 ZDhiM2M2MWUyZGQ3YzZiNTAwZDAxNDVjYjQ1Mzc5ZWJjYjA2YTEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERvcm9uIFJvYmVydHMtS2VkZXMgPGRvcm9ucmtAZmIuY29tPgpEYXRlOiBX ZWQsIDExIEFwciAyMDE4IDE1OjA1OjE2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNC8zM10gc3Ry cGFyc2VyOiBGaXggaW5jb3JyZWN0IHN0cnAtPm5lZWRfYnl0ZXMgdmFsdWUuCgpbIFVwc3RyZWFt IGNvbW1pdCA5ZDBjNzViZjZlMDNkOWJmODBjNTViMGY2NzdkYzliOTgyOTU4ZmQ1IF0KCnN0cnBf ZGF0YV9yZWFkeSByZXNldHMgc3RycC0+bmVlZF9ieXRlcyB0byAwIGlmIHN0cnBfcGVla19sZW4g aW5kaWNhdGVzCnRoYXQgdGhlIHJlbWFpbmRlciBvZiB0aGUgbWVzc2FnZSBoYXMgYmVlbiByZWNl aXZlZC4gSG93ZXZlciwKZG9fc3RycF93b3JrIGRvZXMgbm90IHJlc2V0IHN0cnAtPm5lZWRfYnl0 ZXMgdG8gMC4gSWYgZG9fc3RycF93b3JrCmNvbXBsZXRlcyBhIHBhcnRpYWwgbWVzc2FnZSwgdGhl IHZhbHVlIG9mIHN0cnAtPm5lZWRfYnl0ZXMgd2lsbCBjb250aW51ZQp0byByZWZsZWN0IHRoZSBu ZWVkZWQgYnl0ZXMgb2YgdGhlIHByZXZpb3VzIG1lc3NhZ2UsIGNhdXNpbmcKZnV0dXJlIGludm9j YXRpb25zIG9mIHN0cnBfZGF0YV9yZWFkeSB0byByZXR1cm4gZWFybHkgaWYKc3RycC0+bmVlZF9i eXRlcyBpcyBsZXNzIHRoYW4gc3RycF9wZWVrX2xlbi4gUmVzZXR0aW5nIHN0cnAtPm5lZWRfYnl0 ZXMKdG8gMCBpbiBfX3N0cnBfcmVjdiBvbiBoYW5kaW5nIGEgZnVsbCBtZXNzYWdlIHRvIHRoZSB1 cHBlciBsYXllciBzb2x2ZXMKdGhpcyBwcm9ibGVtLgoKX19zdHJwX3JlY3YgYWxzbyBjYWxjdWxh dGVzIHN0cnAtPm5lZWRfYnl0ZXMgdXNpbmcgc3RtLT5hY2N1bV9sZW4gYmVmb3JlCnN0bS0+YWNj dW1fbGVuIGhhcyBiZWVuIGluY3JlbWVudGVkIGJ5IGNhbmRfbGVuLiBUaGlzIGNhbiBjYXVzZQpz dHJwLT5uZWVkX2J5dGVzIHRvIGJlIGVxdWFsIHRvIHRoZSBmdWxsIGxlbmd0aCBvZiB0aGUgbWVz c2FnZSBpbnN0ZWFkCm9mIHRoZSBmdWxsIGxlbmd0aCBtaW51cyB0aGUgYWNjdW11bGF0ZWQgbGVu Z3RoLiBUaGlzLCBpbiB0dXJuLCBjYXVzZXMKc3RycF9kYXRhX3JlYWR5IHRvIHJldHVybiBlYXJs eSwgZXZlbiB3aGVuIHRoZXJlIGlzIHN1ZmZpY2llbnQgZGF0YSB0bwpjb21wbGV0ZSB0aGUgcGFy dGlhbCBtZXNzYWdlLiBJbmNyZW1lbnRpbmcgc3RtLT5hY2N1bV9sZW4gYmVmb3JlIHVzaW5nCml0 IHRvIGNhbGN1bGF0ZSBzdHJwLT5uZWVkX2J5dGVzIHNvbHZlcyB0aGlzIHByb2JsZW0uCgpGb3Vu ZCB3aGlsZSB0ZXN0aW5nIG5ldC90bHNfc3cgcmVjdiBwYXRoLgoKRml4ZXM6IDQzYTBjNjc1MWEz MjI4NDcgKCJzdHJwYXJzZXI6IFN0cmVhbSBwYXJzZXIgZm9yIG1lc3NhZ2VzIikKU2lnbmVkLW9m Zi1ieTogRG9yb24gUm9iZXJ0cy1LZWRlcyA8ZG9yb25ya0BmYi5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc3RycGFyc2Vy L3N0cnBhcnNlci5jIHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zdHJwYXJzZXIvc3RycGFyc2VyLmMg Yi9uZXQvc3RycGFyc2VyL3N0cnBhcnNlci5jCmluZGV4IDZiNWE3ZmZmYzYyYy4uYzc0MTM2NWY3 N2RhIDEwMDY0NAotLS0gYS9uZXQvc3RycGFyc2VyL3N0cnBhcnNlci5jCisrKyBiL25ldC9zdHJw YXJzZXIvc3RycGFyc2VyLmMKQEAgLTI5Niw5ICsyOTYsOSBAQCBzdGF0aWMgaW50IF9fc3RycF9y ZWN2KHJlYWRfZGVzY3JpcHRvcl90ICpkZXNjLCBzdHJ1Y3Qgc2tfYnVmZiAqb3JpZ19za2IsCiAJ CQkJCXN0cnBfc3RhcnRfdGltZXIoc3RycCwgdGltZW8pOwogCQkJCX0KIAorCQkJCXN0bS0+YWNj dW1fbGVuICs9IGNhbmRfbGVuOwogCQkJCXN0cnAtPm5lZWRfYnl0ZXMgPSBzdG0tPnN0cnAuZnVs bF9sZW4gLQogCQkJCQkJICAgICAgIHN0bS0+YWNjdW1fbGVuOwotCQkJCXN0bS0+YWNjdW1fbGVu ICs9IGNhbmRfbGVuOwogCQkJCXN0bS0+ZWFybHlfZWF0ZW4gPSBjYW5kX2xlbjsKIAkJCQlTVFJQ X1NUQVRTX0FERChzdHJwLT5zdGF0cy5ieXRlcywgY2FuZF9sZW4pOwogCQkJCWRlc2MtPmNvdW50 ID0gMDsgLyogU3RvcCByZWFkaW5nIHNvY2tldCAqLwpAQCAtMzIxLDYgKzMyMSw3IEBAIHN0YXRp YyBpbnQgX19zdHJwX3JlY3YocmVhZF9kZXNjcmlwdG9yX3QgKmRlc2MsIHN0cnVjdCBza19idWZm ICpvcmlnX3NrYiwKIAkJLyogSHVycmF5LCB3ZSBoYXZlIGEgbmV3IG1lc3NhZ2UhICovCiAJCWNh bmNlbF9kZWxheWVkX3dvcmsoJnN0cnAtPm1zZ190aW1lcl93b3JrKTsKIAkJc3RycC0+c2tiX2hl YWQgPSBOVUxMOworCQlzdHJwLT5uZWVkX2J5dGVzID0gMDsKIAkJU1RSUF9TVEFUU19JTkNSKHN0 cnAtPnN0YXRzLm1zZ3MpOwogCiAJCS8qIEdpdmUgc2tiIHRvIHVwcGVyIGxheWVyICovCkBAIC00 MTAsOSArNDExLDcgQEAgdm9pZCBzdHJwX2RhdGFfcmVhZHkoc3RydWN0IHN0cnBhcnNlciAqc3Ry cCkKIAkJcmV0dXJuOwogCiAJaWYgKHN0cnAtPm5lZWRfYnl0ZXMpIHsKLQkJaWYgKHN0cnBfcGVl a19sZW4oc3RycCkgPj0gc3RycC0+bmVlZF9ieXRlcykKLQkJCXN0cnAtPm5lZWRfYnl0ZXMgPSAw OwotCQllbHNlCisJCWlmIChzdHJwX3BlZWtfbGVuKHN0cnApIDwgc3RycC0+bmVlZF9ieXRlcykK IAkJCXJldHVybjsKIAl9CiAKLS0gCjIuMTQuMwoKCkZyb20gYjVlMTZkODY0YmRmZjRiYWRiMjZi NmU5ZWVjYTQ0M2U3OTdiMGMyYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGFu ZGVyIEFyaW5nIDxhcmluZ0Btb2phdGF0dS5jb20+CkRhdGU6IEZyaSwgMjAgQXByIDIwMTggMTU6 MTU6MDMgLTA0MDAKU3ViamVjdDogW1BBVENIIDI1LzMzXSBuZXQ6IHNjaGVkOiBpZmU6IHNpZ25h bCBub3QgZmluZGluZyBtZXRhaWQKClsgVXBzdHJlYW0gY29tbWl0IGY2Y2QxNDUzN2ZmOTkxOTA4 MWJlMTliOWM1M2I5YjE5YzBkM2VhOTcgXQoKV2UgbmVlZCB0byByZWNvcmQgc3RhdHMgZm9yIHJl Y2VpdmVkIG1ldGFkYXRhIHRoYXQgd2UgZG9udCBrbm93IGhvdwp0byBwcm9jZXNzLiBIYXZlIGZp bmRfZGVjb2RlX21ldGFpZCgpIHJldHVybiAtRU5PRU5UIHRvIGNhcHR1cmUgdGhpcy4KClNpZ25l ZC1vZmYtYnk6IEFsZXhhbmRlciBBcmluZyA8YXJpbmdAbW9qYXRhdHUuY29tPgpSZXZpZXdlZC1i eTogWW90YW0gR2lnaSA8eW90YW0uZ2lAZ21haWwuY29tPgpBY2tlZC1ieTogSmFtYWwgSGFkaSBT YWxpbSA8amhzQG1vamF0YXR1LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfaWZlLmMgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvc2NoZWQvYWN0X2lmZS5jIGIvbmV0L3NjaGVkL2FjdF9pZmUuYwppbmRleCA4Y2NkMzU4MjVi NmIuLjRiNGU0ZDQ5MGY0MiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9pZmUuYworKysgYi9u ZXQvc2NoZWQvYWN0X2lmZS5jCkBAIC02MDUsNyArNjA1LDcgQEAgc3RhdGljIGludCBmaW5kX2Rl Y29kZV9tZXRhaWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZl LAogCQl9CiAJfQogCi0JcmV0dXJuIDA7CisJcmV0dXJuIC1FTk9FTlQ7CiB9CiAKIHN0YXRpYyBp bnQgdGNmX2lmZV9kZWNvZGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjX2Fj dGlvbiAqYSwKLS0gCjIuMTQuMwoKCkZyb20gNTg5MjgyYWJhZjc5ZDJlMDMxODM1ZTVjNzgzODEx NjNkN2U0M2I2OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU29oZWlsIEhhc3NhcyBZ ZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAxNCBBcHIgMjAxOCAyMDo0NToy MCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMzNdIHRjcDogY2xlYXIgdHAtPnBhY2tldHNfb3V0 IHdoZW4gcHVyZ2luZyB3cml0ZSBxdWV1ZQoKQ2xlYXIgdHAtPnBhY2tldHNfb3V0IHdoZW4gcHVy Z2luZyB0aGUgd3JpdGUgcXVldWUsIG90aGVyd2lzZQp0Y3BfcmVhcm1fcnRvKCkgbWlzdGFrZW5s eSBhc3N1bWVzIFRDUCB3cml0ZSBxdWV1ZSBpcyBub3QgZW1wdHkuClRoaXMgcmVzdWx0cyBpbiBO VUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuCgpBbHNvLCByZW1vdmUgdGhlIHJlZHVuZGFudCBgdHAt PnBhY2tldHNfb3V0ID0gMGAgZnJvbQp0Y3BfZGlzY29ubmVjdCgpLCBzaW5jZSB0Y3BfZGlzY29u bmVjdCgpIGNhbGxzCnRjcF93cml0ZV9xdWV1ZV9wdXJnZSgpLgoKRml4ZXM6IGEyN2ZkN2E4ZWQz OCAodGNwOiBwdXJnZSB3cml0ZSBxdWV1ZSB1cG9uIFJTVCkKUmVwb3J0ZWQtYnk6IFN1YmFzaCBB Ymhpbm92IEthc2l2aXN3YW5hdGhhbiA8c3ViYXNoYWJAY29kZWF1cm9yYS5vcmc+ClJlcG9ydGVk LWJ5OiBTYW1pIEZhcmluIDxodnRhaWZ3a2JnZWZiYWVpQGdtYWlsLmNvbT4KVGVzdGVkLWJ5OiBT YW1pIEZhcmluIDxodnRhaWZ3a2JnZWZiYWVpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBTb2hlaWwgSGFz c2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpBY2tlZC1ieTogWXVjaHVuZyBDaGVuZyA8 eWNoZW5nQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29v Z2xlLmNvbT4KLS0tCiBpbmNsdWRlL25ldC90Y3AuaCB8IDEgKwogbmV0L2lwdjQvdGNwLmMgICAg fCAxIC0KIDIgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9pbmNsdWRlL25ldC90Y3AuaCBiL2luY2x1ZGUvbmV0L3RjcC5oCmluZGV4IGQz MjNkNGZhNzQyYy4uZmI2NTM3MzZmMzM1IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90Y3AuaAor KysgYi9pbmNsdWRlL25ldC90Y3AuaApAQCAtMTYxNiw2ICsxNjE2LDcgQEAgc3RhdGljIGlubGlu ZSB2b2lkIHRjcF93cml0ZV9xdWV1ZV9wdXJnZShzdHJ1Y3Qgc29jayAqc2spCiAJc2tfbWVtX3Jl Y2xhaW0oc2spOwogCXRjcF9jbGVhcl9hbGxfcmV0cmFuc19oaW50cyh0Y3Bfc2soc2spKTsKIAl0 Y3BfaW5pdF9zZW5kX2hlYWQoc2spOworCXRjcF9zayhzayktPnBhY2tldHNfb3V0ID0gMDsKIH0K IAogc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2tfYnVmZiAqdGNwX3dyaXRlX3F1ZXVlX2hlYWQoY29u c3Qgc3RydWN0IHNvY2sgKnNrKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2 NC90Y3AuYwppbmRleCBlOGQ4MTQwY2QzM2YuLmQwMjNmODc5ZTdiYiAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTIzNTQsNyArMjM1NCw2IEBAIGlu dCB0Y3BfZGlzY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIGludCBmbGFncykKIAlpY3NrLT5pY3Nr X2JhY2tvZmYgPSAwOwogCXRwLT5zbmRfY3duZCA9IDI7CiAJaWNzay0+aWNza19wcm9iZXNfb3V0 ID0gMDsKLQl0cC0+cGFja2V0c19vdXQgPSAwOwogCXRwLT5zbmRfc3N0aHJlc2ggPSBUQ1BfSU5G SU5JVEVfU1NUSFJFU0g7CiAJdHAtPnNuZF9jd25kX2NudCA9IDA7CiAJdHAtPndpbmRvd19jbGFt cCA9IDA7Ci0tIAoyLjE0LjMKCgpGcm9tIDhkZTFjMDBiMmY2Mzg0MDZmODMxZTE4N2Y5YTJkNGUx OTRhNDIzY2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhhbmRlciBBcmluZyA8 YXJpbmdAbW9qYXRhdHUuY29tPgpEYXRlOiBGcmksIDIwIEFwciAyMDE4IDE1OjE1OjA0IC0wNDAw ClN1YmplY3Q6IFtQQVRDSCAyNy8zM10gbmV0OiBzY2hlZDogaWZlOiBoYW5kbGUgbWFsZm9ybWVk IHRsdiBsZW5ndGgKClsgVXBzdHJlYW0gY29tbWl0IGNjNzRlZGRkMGZmMzI1ZDU3MzczY2VhOTlm NjQyYjc4N2Q3Zjc2ZjUgXQoKVGhlcmUgaXMgY3VycmVudGx5IG5vIGhhbmRsaW5nIHRvIGNoZWNr IG9uIGEgaW52YWxpZCB0bHYgbGVuZ3RoLiBUaGlzCnBhdGNoIGFkZHMgc3VjaCBoYW5kbGluZyB0 byBhdm9pZCBraWxsaW5nIHRoZSBrZXJuZWwgd2l0aCBhIG1hbGZvcm1lZAppZmUgcGFja2V0LgoK U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEFyaW5nIDxhcmluZ0Btb2phdGF0dS5jb20+ClJldmll d2VkLWJ5OiBZb3RhbSBHaWdpIDx5b3RhbS5naUBnbWFpbC5jb20+CkFja2VkLWJ5OiBKYW1hbCBI YWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaWZlLmggICB8ICAzICsr LQogbmV0L2lmZS9pZmUuYyAgICAgICB8IDM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tCiBuZXQvc2NoZWQvYWN0X2lmZS5jIHwgIDcgKysrKysrLQogMyBmaWxlcyBjaGFuZ2Vk LCA0MSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bmV0L2lmZS5oIGIvaW5jbHVkZS9uZXQvaWZlLmgKaW5kZXggNDRiOWMwMGY3MjIzLi5lMTE3NjE3 ZTNjMzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lmZS5oCisrKyBiL2luY2x1ZGUvbmV0L2lm ZS5oCkBAIC0xMiw3ICsxMiw4IEBACiB2b2lkICppZmVfZW5jb2RlKHN0cnVjdCBza19idWZmICpz a2IsIHUxNiBtZXRhbGVuKTsKIHZvaWQgKmlmZV9kZWNvZGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwg dTE2ICptZXRhbGVuKTsKIAotdm9pZCAqaWZlX3Rsdl9tZXRhX2RlY29kZSh2b2lkICpza2JkYXRh LCB1MTYgKmF0dHJ0eXBlLCB1MTYgKmRsZW4sIHUxNiAqdG90bGVuKTsKK3ZvaWQgKmlmZV90bHZf bWV0YV9kZWNvZGUodm9pZCAqc2tiZGF0YSwgY29uc3Qgdm9pZCAqaWZlaGRyX2VuZCwgdTE2ICph dHRydHlwZSwKKwkJCSAgdTE2ICpkbGVuLCB1MTYgKnRvdGxlbik7CiBpbnQgaWZlX3Rsdl9tZXRh X2VuY29kZSh2b2lkICpza2JkYXRhLCB1MTYgYXR0cnR5cGUsIHUxNiBkbGVuLAogCQkJY29uc3Qg dm9pZCAqZHZhbCk7CiAKZGlmZiAtLWdpdCBhL25ldC9pZmUvaWZlLmMgYi9uZXQvaWZlL2lmZS5j CmluZGV4IDdkMWVjNzZlN2Y0My4uN2ZiZTcwYTBhZjRiIDEwMDY0NAotLS0gYS9uZXQvaWZlL2lm ZS5jCisrKyBiL25ldC9pZmUvaWZlLmMKQEAgLTkyLDEyICs5Miw0MyBAQCBzdHJ1Y3QgbWV0YV90 bHZoZHIgewogCV9fYmUxNiBsZW47CiB9OwogCitzdGF0aWMgYm9vbCBfX2lmZV90bHZfbWV0YV92 YWxpZChjb25zdCB1bnNpZ25lZCBjaGFyICpza2JkYXRhLAorCQkJCSBjb25zdCB1bnNpZ25lZCBj aGFyICppZmVoZHJfZW5kKQoreworCWNvbnN0IHN0cnVjdCBtZXRhX3RsdmhkciAqdGx2OworCXUx NiB0bHZsZW47CisKKwlpZiAodW5saWtlbHkoc2tiZGF0YSArIHNpemVvZigqdGx2KSA+IGlmZWhk cl9lbmQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwl0bHYgPSAoY29uc3Qgc3RydWN0IG1ldGFfdGx2 aGRyICopc2tiZGF0YTsKKwl0bHZsZW4gPSBudG9ocyh0bHYtPmxlbik7CisKKwkvKiB0bHYgbGVu Z3RoIGZpZWxkIGlzIGluYyBoZWFkZXIsIGNoZWNrIG9uIG1pbmltdW0gKi8KKwlpZiAodGx2bGVu IDwgTkxBX0hEUkxFTikKKwkJcmV0dXJuIGZhbHNlOworCisJLyogb3ZlcmZsb3cgYnkgTkxBX0FM SUdOIGNoZWNrICovCisJaWYgKE5MQV9BTElHTih0bHZsZW4pIDwgdGx2bGVuKQorCQlyZXR1cm4g ZmFsc2U7CisKKwlpZiAodW5saWtlbHkoc2tiZGF0YSArIE5MQV9BTElHTih0bHZsZW4pID4gaWZl aGRyX2VuZCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQorCiAvKiBDYWxs ZXIgdGFrZXMgY2FyZSBvZiBwcmVzZW50aW5nIGRhdGEgaW4gbmV0d29yayBvcmRlcgogICovCi12 b2lkICppZmVfdGx2X21ldGFfZGVjb2RlKHZvaWQgKnNrYmRhdGEsIHUxNiAqYXR0cnR5cGUsIHUx NiAqZGxlbiwgdTE2ICp0b3RsZW4pCit2b2lkICppZmVfdGx2X21ldGFfZGVjb2RlKHZvaWQgKnNr YmRhdGEsIGNvbnN0IHZvaWQgKmlmZWhkcl9lbmQsIHUxNiAqYXR0cnR5cGUsCisJCQkgIHUxNiAq ZGxlbiwgdTE2ICp0b3RsZW4pCiB7Ci0Jc3RydWN0IG1ldGFfdGx2aGRyICp0bHYgPSAoc3RydWN0 IG1ldGFfdGx2aGRyICopIHNrYmRhdGE7CisJc3RydWN0IG1ldGFfdGx2aGRyICp0bHY7CisKKwlp ZiAoIV9faWZlX3Rsdl9tZXRhX3ZhbGlkKHNrYmRhdGEsIGlmZWhkcl9lbmQpKQorCQlyZXR1cm4g TlVMTDsKIAorCXRsdiA9IChzdHJ1Y3QgbWV0YV90bHZoZHIgKilza2JkYXRhOwogCSpkbGVuID0g bnRvaHModGx2LT5sZW4pIC0gTkxBX0hEUkxFTjsKIAkqYXR0cnR5cGUgPSBudG9ocyh0bHYtPnR5 cGUpOwogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X2lmZS5jIGIvbmV0L3NjaGVkL2FjdF9p ZmUuYwppbmRleCA0YjRlNGQ0OTBmNDIuLjg1NzU3YWY3ZjE1MCAxMDA2NDQKLS0tIGEvbmV0L3Nj aGVkL2FjdF9pZmUuYworKysgYi9uZXQvc2NoZWQvYWN0X2lmZS5jCkBAIC02MzksNyArNjM5LDEy IEBAIHN0YXRpYyBpbnQgdGNmX2lmZV9kZWNvZGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qg c3RydWN0IHRjX2FjdGlvbiAqYSwKIAkJdTE2IG10eXBlOwogCQl1MTYgZGxlbjsKIAotCQljdXJy X2RhdGEgPSBpZmVfdGx2X21ldGFfZGVjb2RlKHRsdl9kYXRhLCAmbXR5cGUsICZkbGVuLCBOVUxM KTsKKwkJY3Vycl9kYXRhID0gaWZlX3Rsdl9tZXRhX2RlY29kZSh0bHZfZGF0YSwgaWZlaGRyX2Vu ZCwgJm10eXBlLAorCQkJCQkJJmRsZW4sIE5VTEwpOworCQlpZiAoIWN1cnJfZGF0YSkgeworCQkJ cXN0YXRzX2Ryb3BfaW5jKHRoaXNfY3B1X3B0cihpZmUtPmNvbW1vbi5jcHVfcXN0YXRzKSk7CisJ CQlyZXR1cm4gVENfQUNUX1NIT1Q7CisJCX0KIAogCQlpZiAoZmluZF9kZWNvZGVfbWV0YWlkKHNr YiwgaWZlLCBtdHlwZSwgZGxlbiwgY3Vycl9kYXRhKSkgewogCQkJLyogYWJ1c2Ugb3ZlcmxpbWl0 cyB0byBjb3VudCB3aGVuIHdlIHJlY2VpdmUgbWV0YWRhdGEKLS0gCjIuMTQuMwoKCkZyb20gNGZj YmM0NzIzMTc2NGFmZmI3YzRhNGYyOTc0YzIxODlkYWMwMzdlNCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQWxleGFuZGVyIEFyaW5nIDxhcmluZ0Btb2phdGF0dS5jb20+CkRhdGU6IEZy aSwgMjAgQXByIDIwMTggMTU6MTU6MDUgLTA0MDAKU3ViamVjdDogW1BBVENIIDI4LzMzXSBuZXQ6 IHNjaGVkOiBpZmU6IGNoZWNrIG9uIG1ldGFkYXRhIGxlbmd0aAoKWyBVcHN0cmVhbSBjb21taXQg ZDU3NDkzZDZkMWJlMjZjOGFjODUxNmE0NDYzYmZlMjQ5NTY5NzhlYiBdCgpUaGlzIHBhdGNoIGNo ZWNrcyBpZiBzayBidWZmZXIgaXMgYXZhaWxhYmxlIHRvIGRlcmVyZW5jZSBpZmUgaGVhZGVyLiBJ Zgpub3QgdGhlbiBOVUxMIHdpbGwgcmV0dXJuZWQgdG8gc2lnbmFsIGFuIG1hbGZvcm1lZCBpZmUg cGFja2V0LiBUaGlzCmF2b2lkcyB0byBjcmFzaGluZyB0aGUga2VybmVsIGZyb20gb3V0c2lkZS4K ClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBBcmluZyA8YXJpbmdAbW9qYXRhdHUuY29tPgpSZXZp ZXdlZC1ieTogWW90YW0gR2lnaSA8eW90YW0uZ2lAZ21haWwuY29tPgpBY2tlZC1ieTogSmFtYWwg SGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pZmUvaWZlLmMgfCAzICsrKwogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pZmUvaWZlLmMg Yi9uZXQvaWZlL2lmZS5jCmluZGV4IDdmYmU3MGEwYWY0Yi4uMTNiYmY4Y2I2YTM5IDEwMDY0NAot LS0gYS9uZXQvaWZlL2lmZS5jCisrKyBiL25ldC9pZmUvaWZlLmMKQEAgLTY5LDYgKzY5LDkgQEAg dm9pZCAqaWZlX2RlY29kZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgKm1ldGFsZW4pCiAJaW50 IHRvdGFsX3B1bGw7CiAJdTE2IGlmZWhkcmxuOwogCisJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwg c2tiLT5kZXYtPmhhcmRfaGVhZGVyX2xlbiArIElGRV9NRVRBSERSTEVOKSkKKwkJcmV0dXJuIE5V TEw7CisKIAlpZmVoZHIgPSAoc3RydWN0IGlmZWhlYWRyICopIChza2ItPmRhdGEgKyBza2ItPmRl di0+aGFyZF9oZWFkZXJfbGVuKTsKIAlpZmVoZHJsbiA9IG50b2hzKGlmZWhkci0+bWV0YWxlbik7 CiAJdG90YWxfcHVsbCA9IHNrYi0+ZGV2LT5oYXJkX2hlYWRlcl9sZW4gKyBpZmVoZHJsbjsKLS0g CjIuMTQuMwoKCkZyb20gNjFiMTMzYmNkZmYwZTM1NTk4Zjg1NWZmMWQxYjI2NDdiZTk0Y2M4NSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0Bn bWFpbC5jb20+CkRhdGU6IFdlZCwgMTggQXByIDIwMTggMTE6NTE6NTYgLTA3MDAKU3ViamVjdDog W1BBVENIIDI5LzMzXSBsbGM6IGhvbGQgbGxjX3NhcCBiZWZvcmUgcmVsZWFzZV9zb2NrKCkKClsg VXBzdHJlYW0gY29tbWl0IGY3ZTQzNjcyNjgzYjA5N2JiMDc0YThmZTdhZjliYzYwMGEyM2YyMzEg XQoKc3l6Ym90IHJlcG9ydGVkIHdlIHN0aWxsIGFjY2VzcyBsbGMtPnNhcCBpbiBsbGNfYmFja2xv Z19yY3YoKQphZnRlciBpdCBpcyBmcmVlZCBpbiBsbGNfc2FwX3JlbW92ZV9zb2NrZXQoKToKCkNh bGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQogZHVt cF9zdGFjaysweDFiOS8weDI5NCBsaWIvZHVtcF9zdGFjay5jOjExMwogcHJpbnRfYWRkcmVzc19k ZXNjcmlwdGlvbisweDZjLzB4MjBiIG1tL2thc2FuL3JlcG9ydC5jOjI1Ngoga2FzYW5fcmVwb3J0 X2Vycm9yIG1tL2thc2FuL3JlcG9ydC5jOjM1NCBbaW5saW5lXQoga2FzYW5fcmVwb3J0LmNvbGQu NysweDI0Mi8weDJmZSBtbS9rYXNhbi9yZXBvcnQuYzo0MTIKIF9fYXNhbl9yZXBvcnRfbG9hZDFf bm9hYm9ydCsweDE0LzB4MjAgbW0va2FzYW4vcmVwb3J0LmM6NDMwCiBsbGNfY29ubl9hY19zZW5k X3NhYm1lX2NtZF9wX3NldF94KzB4M2E4LzB4NDYwIG5ldC9sbGMvbGxjX2NfYWMuYzo3ODUKIGxs Y19leGVjX2Nvbm5fdHJhbnNfYWN0aW9ucyBuZXQvbGxjL2xsY19jb25uLmM6NDc1IFtpbmxpbmVd CiBsbGNfY29ubl9zZXJ2aWNlIG5ldC9sbGMvbGxjX2Nvbm4uYzo0MDAgW2lubGluZV0KIGxsY19j b25uX3N0YXRlX3Byb2Nlc3MrMHg0ZTEvMHgxM2EwIG5ldC9sbGMvbGxjX2Nvbm4uYzo3NQogbGxj X2JhY2tsb2dfcmN2KzB4MTk1LzB4MWUwIG5ldC9sbGMvbGxjX2Nvbm4uYzo4OTEKIHNrX2JhY2ts b2dfcmN2IGluY2x1ZGUvbmV0L3NvY2suaDo5MDkgW2lubGluZV0KIF9fcmVsZWFzZV9zb2NrKzB4 MTJmLzB4M2EwIG5ldC9jb3JlL3NvY2suYzoyMzM1CiByZWxlYXNlX3NvY2srMHhhNC8weDJiMCBu ZXQvY29yZS9zb2NrLmM6Mjg1MAogbGxjX3VpX3JlbGVhc2UrMHhjOC8weDIyMCBuZXQvbGxjL2Fm X2xsYy5jOjIwNAoKbGxjLT5zYXAgaXMgcmVmY291bnQnZWQgYW5kIGxsY19zYXBfcmVtb3ZlX3Nv Y2tldCgpIGlzIHBhaXJlZAp3aXRoIGxsY19zYXBfYWRkX3NvY2tldCgpLiBUaGlzIGNhbiBiZSBh bWVuZGVkIGJ5IGhvbGRpbmcgaXRzIHJlZmNvdW50CmJlZm9yZSBsbGNfc2FwX3JlbW92ZV9zb2Nr ZXQoKSBhbmQgcmVsZWFzaW5nIGl0IGFmdGVyIHJlbGVhc2Vfc29jaygpLgoKUmVwb3J0ZWQtYnk6 IDxzeXpib3QrNmUxODFmYzk1MDgxYzJjZjkwNTFAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv bGxjL2FmX2xsYy5jIHwgNyArKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvbmV0L2xsYy9hZl9sbGMuYyBiL25ldC9sbGMvYWZfbGxjLmMKaW5kZXgg YzM4ZDE2ZjIyZDJhLi5jODk1MGQ4OGE2OTUgMTAwNjQ0Ci0tLSBhL25ldC9sbGMvYWZfbGxjLmMK KysrIGIvbmV0L2xsYy9hZl9sbGMuYwpAQCAtMTg5LDYgKzE4OSw3IEBAIHN0YXRpYyBpbnQgbGxj X3VpX3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKIHsKIAlzdHJ1Y3Qgc29jayAqc2sgPSBz b2NrLT5zazsKIAlzdHJ1Y3QgbGxjX3NvY2sgKmxsYzsKKwlzdHJ1Y3QgbGxjX3NhcCAqc2FwOwog CiAJaWYgKHVubGlrZWx5KHNrID09IE5VTEwpKQogCQlnb3RvIG91dDsKQEAgLTE5OSw5ICsyMDAs MTUgQEAgc3RhdGljIGludCBsbGNfdWlfcmVsZWFzZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogCQls bGMtPmxhZGRyLmxzYXAsIGxsYy0+ZGFkZHIubHNhcCk7CiAJaWYgKCFsbGNfc2VuZF9kaXNjKHNr KSkKIAkJbGxjX3VpX3dhaXRfZm9yX2Rpc2Moc2ssIHNrLT5za19yY3Z0aW1lbyk7CisJc2FwID0g bGxjLT5zYXA7CisJLyogSG9sZCB0aGlzIGZvciByZWxlYXNlX3NvY2soKSwgc28gdGhhdCBsbGNf YmFja2xvZ19yY3YoKSBjb3VsZCBzdGlsbAorCSAqIHVzZSBpdC4KKwkgKi8KKwlsbGNfc2FwX2hv bGQoc2FwKTsKIAlpZiAoIXNvY2tfZmxhZyhzaywgU09DS19aQVBQRUQpKQogCQlsbGNfc2FwX3Jl bW92ZV9zb2NrZXQobGxjLT5zYXAsIHNrKTsKIAlyZWxlYXNlX3NvY2soc2spOworCWxsY19zYXBf cHV0KHNhcCk7CiAJaWYgKGxsYy0+ZGV2KQogCQlkZXZfcHV0KGxsYy0+ZGV2KTsKIAlzb2NrX3B1 dChzayk7Ci0tIAoyLjE0LjMKCgpGcm9tIGI5ZGNmYjU3NTAxMDUzYTRlYWExODJmYTRiNzhiYmIw MWI0MzllMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uu d2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE5IEFwciAyMDE4IDIxOjU0OjM0IC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAzMC8zM10gbGxjOiBmaXggTlVMTCBwb2ludGVyIGRlcmVmIGZvciBT T0NLX1pBUFBFRAoKWyBVcHN0cmVhbSBjb21taXQgM2EwNGNlNzEzMGE3ZTVkYWQ0ZTc4ZDQ1ZDUw MzEzNzQ3ZjhjODMwZiBdCgpGb3IgU09DS19aQVBQRUQgc29ja2V0LCB3ZSBkb24ndCBuZWVkIHRv IGNhcmUgYWJvdXQgbGxjLT5zYXAsCnNvIHdlIHNob3VsZCBqdXN0IHNraXAgdGhlc2UgcmVmY291 bnQgZnVuY3Rpb25zIGluIHRoaXMgY2FzZS4KCkZpeGVzOiBmN2U0MzY3MjY4M2IgKCJsbGM6IGhv bGQgbGxjX3NhcCBiZWZvcmUgcmVsZWFzZV9zb2NrKCkiKQpSZXBvcnRlZC1ieToga2VybmVsIHRl c3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uu d2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2xsYy9hZl9sbGMuYyB8IDIxICsrKysrKysrKysrKy0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2xsYy9hZl9sbGMuYyBiL25ldC9sbGMvYWZfbGxjLmMKaW5kZXgg Yzg5NTBkODhhNjk1Li5jZjQxZDliNGEwYjggMTAwNjQ0Ci0tLSBhL25ldC9sbGMvYWZfbGxjLmMK KysrIGIvbmV0L2xsYy9hZl9sbGMuYwpAQCAtMTg5LDcgKzE4OSw2IEBAIHN0YXRpYyBpbnQgbGxj X3VpX3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKIHsKIAlzdHJ1Y3Qgc29jayAqc2sgPSBz b2NrLT5zazsKIAlzdHJ1Y3QgbGxjX3NvY2sgKmxsYzsKLQlzdHJ1Y3QgbGxjX3NhcCAqc2FwOwog CiAJaWYgKHVubGlrZWx5KHNrID09IE5VTEwpKQogCQlnb3RvIG91dDsKQEAgLTIwMCwxNSArMTk5 LDE5IEBAIHN0YXRpYyBpbnQgbGxjX3VpX3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKIAkJ bGxjLT5sYWRkci5sc2FwLCBsbGMtPmRhZGRyLmxzYXApOwogCWlmICghbGxjX3NlbmRfZGlzYyhz aykpCiAJCWxsY191aV93YWl0X2Zvcl9kaXNjKHNrLCBzay0+c2tfcmN2dGltZW8pOwotCXNhcCA9 IGxsYy0+c2FwOwotCS8qIEhvbGQgdGhpcyBmb3IgcmVsZWFzZV9zb2NrKCksIHNvIHRoYXQgbGxj X2JhY2tsb2dfcmN2KCkgY291bGQgc3RpbGwKLQkgKiB1c2UgaXQuCi0JICovCi0JbGxjX3NhcF9o b2xkKHNhcCk7Ci0JaWYgKCFzb2NrX2ZsYWcoc2ssIFNPQ0tfWkFQUEVEKSkKKwlpZiAoIXNvY2tf ZmxhZyhzaywgU09DS19aQVBQRUQpKSB7CisJCXN0cnVjdCBsbGNfc2FwICpzYXAgPSBsbGMtPnNh cDsKKworCQkvKiBIb2xkIHRoaXMgZm9yIHJlbGVhc2Vfc29jaygpLCBzbyB0aGF0IGxsY19iYWNr bG9nX3JjdigpCisJCSAqIGNvdWxkIHN0aWxsIHVzZSBpdC4KKwkJICovCisJCWxsY19zYXBfaG9s ZChzYXApOwogCQlsbGNfc2FwX3JlbW92ZV9zb2NrZXQobGxjLT5zYXAsIHNrKTsKLQlyZWxlYXNl X3NvY2soc2spOwotCWxsY19zYXBfcHV0KHNhcCk7CisJCXJlbGVhc2Vfc29jayhzayk7CisJCWxs Y19zYXBfcHV0KHNhcCk7CisJfSBlbHNlIHsKKwkJcmVsZWFzZV9zb2NrKHNrKTsKKwl9CiAJaWYg KGxsYy0+ZGV2KQogCQlkZXZfcHV0KGxsYy0+ZGV2KTsKIAlzb2NrX3B1dChzayk7Ci0tIAoyLjE0 LjMKCgpGcm9tIGY0MjQ0MmFlNTYyOGNkN2ZkNmI1MmRlZmY3YTk1MjM1NWE4MWJlOWUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEl2YW4gS2hvcm9uemh1ayA8aXZhbi5raG9yb256aHVr QGxpbmFyby5vcmc+CkRhdGU6IFRodSwgMTkgQXByIDIwMTggMjI6NDk6MDkgKzAzMDAKU3ViamVj dDogW1BBVENIIDMxLzMzXSBuZXQ6IGV0aGVybmV0OiB0aTogY3BzdzogZml4IHR4IHZsYW4gcHJp b3JpdHkgbWFwcGluZwoKWyBVcHN0cmVhbSBjb21taXQgNWUzOTFkYzVhOGQ4MDFhMjQxMGQwMDMy YWQ0YTQyOGQxZDYxODAwYyBdCgpUaGUgQ1BETUFfVFhfUFJJT1JJVFlfTUFQIGluIHJlYWwgaXMg dmxhbiBwY3AgZmllbGQgcHJpb3JpdHkgbWFwcGluZwpyZWdpc3RlciBhbmQgYmFzaWNhbGx5IHJl cGxhY2VzIHZsYW4gcGNwIGZpZWxkIGZvciB0YWdnZWQgcGFja2V0cy4KU28sIHNldCBpdCB0byBi ZSAxOjEgbWFwcGluZy4gT3RoZXJ3aXNlLCBpdCB3aWxsIGNhdXNlIHVuZXhwZWN0ZWQKY2hhbmdl IG9mIGVncmVzcyB2bGFuIHRhZ2dlZCBwYWNrZXRzLCBsaWtlIHByaW8gMiAtPiBwcmlvIDUuCgpG aXhlczogZTA1MTA3ZTZiNzQ3ICgibmV0OiBldGhlcm5ldDogdGk6IGNwc3c6IGFkZCBtdWx0aSBx dWV1ZSBzdXBwb3J0IikKUmV2aWV3ZWQtYnk6IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaS5z dHJhc2hrb0B0aS5jb20+ClNpZ25lZC1vZmYtYnk6IEl2YW4gS2hvcm9uemh1ayA8aXZhbi5raG9y b256aHVrQGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC90aS9jcHN3LmMKaW5kZXggYTViYjdiMTkwNDBlLi45OTJjNDNiMTg2OGYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC90aS9jcHN3LmMKQEAgLTEyNCw3ICsxMjQsNyBAQCBkbyB7CQkJCQkJCQlcCiAKICNkZWZpbmUg UlhfUFJJT1JJVFlfTUFQUElORwkweDc2NTQzMjEwCiAjZGVmaW5lIFRYX1BSSU9SSVRZX01BUFBJ TkcJMHgzMzIyMTEwMAotI2RlZmluZSBDUERNQV9UWF9QUklPUklUWV9NQVAJMHgwMTIzNDU2Nwor I2RlZmluZSBDUERNQV9UWF9QUklPUklUWV9NQVAJMHg3NjU0MzIxMAogCiAjZGVmaW5lIENQU1df VkxBTl9BV0FSRQkJQklUKDEpCiAjZGVmaW5lIENQU1dfQUxFX1ZMQU5fQVdBUkUJMQotLSAKMi4x NC4zCgoKRnJvbSBkZGFkNGVmODkwNGNhYmQ3MjVhM2IwNWY4Y2U2ZjMyMDUzNjg4ZjM2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiTWljaGFlbCBTLiBUc2lya2luIiA8bXN0QHJlZGhh dC5jb20+CkRhdGU6IFRodSwgMTkgQXByIDIwMTggMDg6MzA6NDggKzAzMDAKU3ViamVjdDogW1BB VENIIDMyLzMzXSB2aXJ0aW9fbmV0OiBzcGxpdCBvdXQgY3RybCBidWZmZXIKClsgVXBzdHJlYW0g Y29tbWl0IDEyZTU3MTY5MzgzN2Q2MTY0YmRhNjFlMzE2YjE5NDQ5NzJlZTBkOTcgXQoKV2hlbiBz ZW5kaW5nIGNvbnRyb2wgY29tbWFuZHMsIHZpcnRpbyBuZXQgc2V0cyB1cCBzZXZlcmFsIGJ1ZmZl cnMgZm9yCkRNQS4gVGhlIGJ1ZmZlcnMgYXJlIGFsbCBwYXJ0IG9mIHRoZSBuZXQgZGV2aWNlIHdo aWNoIG1lYW5zIGl0J3MKYWN0dWFsbHkgYWxsb2NhdGVkIGJ5IGt2bWFsbG9jIHNvIGl0J3MgaW4g dGhlb3J5IChvbiBleHRyZW1lIG1lbW9yeQpwcmVzc3VyZSkgcG9zc2libGUgdG8gZ2V0IGEgdm1h bGxvYydlZCBidWZmZXIgd2hpY2ggb24gc29tZSBwbGF0Zm9ybXMKbWVhbnMgd2UgY2FuJ3QgRE1B IHRoZXJlLgoKRml4IHVwIGJ5IG1vdmluZyB0aGUgRE1BIGJ1ZmZlcnMgaW50byBhIHNlcGFyYXRl IHN0cnVjdHVyZS4KClJlcG9ydGVkLWJ5OiBNaWt1bGFzIFBhdG9ja2EgPG1wYXRvY2thQHJlZGhh dC5jb20+ClN1Z2dlc3RlZC1ieTogRXJpYyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpBY2tl ZC1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZpcnRp b19uZXQuYyB8IDY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyBiL2RyaXZlcnMvbmV0L3ZpcnRp b19uZXQuYwppbmRleCBiMGEwMzhlNmZkYTAuLjYzYjA5NmM0N2YxZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvdmlydGlvX25ldC5jCisrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwpAQCAt MTE2LDYgKzExNiwxNyBAQCBzdHJ1Y3QgcmVjZWl2ZV9xdWV1ZSB7CiAJY2hhciBuYW1lWzQwXTsK IH07CiAKKy8qIENvbnRyb2wgVlEgYnVmZmVyczogcHJvdGVjdGVkIGJ5IHRoZSBydG5sIGxvY2sg Ki8KK3N0cnVjdCBjb250cm9sX2J1ZiB7CisJc3RydWN0IHZpcnRpb19uZXRfY3RybF9oZHIgaGRy OworCXZpcnRpb19uZXRfY3RybF9hY2sgc3RhdHVzOworCXN0cnVjdCB2aXJ0aW9fbmV0X2N0cmxf bXEgbXE7CisJdTggcHJvbWlzYzsKKwl1OCBhbGxtdWx0aTsKKwl1MTYgdmlkOworCXU2NCBvZmZs b2FkczsKK307CisKIHN0cnVjdCB2aXJ0bmV0X2luZm8gewogCXN0cnVjdCB2aXJ0aW9fZGV2aWNl ICp2ZGV2OwogCXN0cnVjdCB2aXJ0cXVldWUgKmN2cTsKQEAgLTE2NCwxNCArMTc1LDcgQEAgc3Ry dWN0IHZpcnRuZXRfaW5mbyB7CiAJc3RydWN0IGhsaXN0X25vZGUgbm9kZTsKIAlzdHJ1Y3QgaGxp c3Rfbm9kZSBub2RlX2RlYWQ7CiAKLQkvKiBDb250cm9sIFZRIGJ1ZmZlcnM6IHByb3RlY3RlZCBi eSB0aGUgcnRubCBsb2NrICovCi0Jc3RydWN0IHZpcnRpb19uZXRfY3RybF9oZHIgY3RybF9oZHI7 Ci0JdmlydGlvX25ldF9jdHJsX2FjayBjdHJsX3N0YXR1czsKLQlzdHJ1Y3QgdmlydGlvX25ldF9j dHJsX21xIGN0cmxfbXE7Ci0JdTggY3RybF9wcm9taXNjOwotCXU4IGN0cmxfYWxsbXVsdGk7Ci0J dTE2IGN0cmxfdmlkOwotCXU2NCBjdHJsX29mZmxvYWRzOworCXN0cnVjdCBjb250cm9sX2J1ZiAq Y3RybDsKIAogCS8qIEV0aHRvb2wgc2V0dGluZ3MgKi8KIAl1OCBkdXBsZXg7CkBAIC0xMzQwLDI1 ICsxMzQ0LDI1IEBAIHN0YXRpYyBib29sIHZpcnRuZXRfc2VuZF9jb21tYW5kKHN0cnVjdCB2aXJ0 bmV0X2luZm8gKnZpLCB1OCBjbGFzcywgdTggY21kLAogCS8qIENhbGxlciBzaG91bGQga25vdyBi ZXR0ZXIgKi8KIAlCVUdfT04oIXZpcnRpb19oYXNfZmVhdHVyZSh2aS0+dmRldiwgVklSVElPX05F VF9GX0NUUkxfVlEpKTsKIAotCXZpLT5jdHJsX3N0YXR1cyA9IH4wOwotCXZpLT5jdHJsX2hkci5j bGFzcyA9IGNsYXNzOwotCXZpLT5jdHJsX2hkci5jbWQgPSBjbWQ7CisJdmktPmN0cmwtPnN0YXR1 cyA9IH4wOworCXZpLT5jdHJsLT5oZHIuY2xhc3MgPSBjbGFzczsKKwl2aS0+Y3RybC0+aGRyLmNt ZCA9IGNtZDsKIAkvKiBBZGQgaGVhZGVyICovCi0Jc2dfaW5pdF9vbmUoJmhkciwgJnZpLT5jdHJs X2hkciwgc2l6ZW9mKHZpLT5jdHJsX2hkcikpOworCXNnX2luaXRfb25lKCZoZHIsICZ2aS0+Y3Ry bC0+aGRyLCBzaXplb2YodmktPmN0cmwtPmhkcikpOwogCXNnc1tvdXRfbnVtKytdID0gJmhkcjsK IAogCWlmIChvdXQpCiAJCXNnc1tvdXRfbnVtKytdID0gb3V0OwogCiAJLyogQWRkIHJldHVybiBz dGF0dXMuICovCi0Jc2dfaW5pdF9vbmUoJnN0YXQsICZ2aS0+Y3RybF9zdGF0dXMsIHNpemVvZih2 aS0+Y3RybF9zdGF0dXMpKTsKKwlzZ19pbml0X29uZSgmc3RhdCwgJnZpLT5jdHJsLT5zdGF0dXMs IHNpemVvZih2aS0+Y3RybC0+c3RhdHVzKSk7CiAJc2dzW291dF9udW1dID0gJnN0YXQ7CiAKIAlC VUdfT04ob3V0X251bSArIDEgPiBBUlJBWV9TSVpFKHNncykpOwogCXZpcnRxdWV1ZV9hZGRfc2dz KHZpLT5jdnEsIHNncywgb3V0X251bSwgMSwgdmksIEdGUF9BVE9NSUMpOwogCiAJaWYgKHVubGlr ZWx5KCF2aXJ0cXVldWVfa2ljayh2aS0+Y3ZxKSkpCi0JCXJldHVybiB2aS0+Y3RybF9zdGF0dXMg PT0gVklSVElPX05FVF9PSzsKKwkJcmV0dXJuIHZpLT5jdHJsLT5zdGF0dXMgPT0gVklSVElPX05F VF9PSzsKIAogCS8qIFNwaW4gZm9yIGEgcmVzcG9uc2UsIHRoZSBraWNrIGNhdXNlcyBhbiBpb3Bv cnQgd3JpdGUsIHRyYXBwaW5nCiAJICogaW50byB0aGUgaHlwZXJ2aXNvciwgc28gdGhlIHJlcXVl c3Qgc2hvdWxkIGJlIGhhbmRsZWQgaW1tZWRpYXRlbHkuCkBAIC0xMzY3LDcgKzEzNzEsNyBAQCBz dGF0aWMgYm9vbCB2aXJ0bmV0X3NlbmRfY29tbWFuZChzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSwg dTggY2xhc3MsIHU4IGNtZCwKIAkgICAgICAgIXZpcnRxdWV1ZV9pc19icm9rZW4odmktPmN2cSkp CiAJCWNwdV9yZWxheCgpOwogCi0JcmV0dXJuIHZpLT5jdHJsX3N0YXR1cyA9PSBWSVJUSU9fTkVU X09LOworCXJldHVybiB2aS0+Y3RybC0+c3RhdHVzID09IFZJUlRJT19ORVRfT0s7CiB9CiAKIHN0 YXRpYyBpbnQgdmlydG5ldF9zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg dm9pZCAqcCkKQEAgLTE0NzgsOCArMTQ4Miw4IEBAIHN0YXRpYyBpbnQgX3ZpcnRuZXRfc2V0X3F1 ZXVlcyhzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSwgdTE2IHF1ZXVlX3BhaXJzKQogCWlmICghdmkt Pmhhc19jdnEgfHwgIXZpcnRpb19oYXNfZmVhdHVyZSh2aS0+dmRldiwgVklSVElPX05FVF9GX01R KSkKIAkJcmV0dXJuIDA7CiAKLQl2aS0+Y3RybF9tcS52aXJ0cXVldWVfcGFpcnMgPSBjcHVfdG9f dmlydGlvMTYodmktPnZkZXYsIHF1ZXVlX3BhaXJzKTsKLQlzZ19pbml0X29uZSgmc2csICZ2aS0+ Y3RybF9tcSwgc2l6ZW9mKHZpLT5jdHJsX21xKSk7CisJdmktPmN0cmwtPm1xLnZpcnRxdWV1ZV9w YWlycyA9IGNwdV90b192aXJ0aW8xNih2aS0+dmRldiwgcXVldWVfcGFpcnMpOworCXNnX2luaXRf b25lKCZzZywgJnZpLT5jdHJsLT5tcSwgc2l6ZW9mKHZpLT5jdHJsLT5tcSkpOwogCiAJaWYgKCF2 aXJ0bmV0X3NlbmRfY29tbWFuZCh2aSwgVklSVElPX05FVF9DVFJMX01RLAogCQkJCSAgVklSVElP X05FVF9DVFJMX01RX1ZRX1BBSVJTX1NFVCwgJnNnKSkgewpAQCAtMTUzNywyMiArMTU0MSwyMiBA QCBzdGF0aWMgdm9pZCB2aXJ0bmV0X3NldF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp CiAJaWYgKCF2aXJ0aW9faGFzX2ZlYXR1cmUodmktPnZkZXYsIFZJUlRJT19ORVRfRl9DVFJMX1JY KSkKIAkJcmV0dXJuOwogCi0JdmktPmN0cmxfcHJvbWlzYyA9ICgoZGV2LT5mbGFncyAmIElGRl9Q Uk9NSVNDKSAhPSAwKTsKLQl2aS0+Y3RybF9hbGxtdWx0aSA9ICgoZGV2LT5mbGFncyAmIElGRl9B TExNVUxUSSkgIT0gMCk7CisJdmktPmN0cmwtPnByb21pc2MgPSAoKGRldi0+ZmxhZ3MgJiBJRkZf UFJPTUlTQykgIT0gMCk7CisJdmktPmN0cmwtPmFsbG11bHRpID0gKChkZXYtPmZsYWdzICYgSUZG X0FMTE1VTFRJKSAhPSAwKTsKIAotCXNnX2luaXRfb25lKHNnLCAmdmktPmN0cmxfcHJvbWlzYywg c2l6ZW9mKHZpLT5jdHJsX3Byb21pc2MpKTsKKwlzZ19pbml0X29uZShzZywgJnZpLT5jdHJsLT5w cm9taXNjLCBzaXplb2YodmktPmN0cmwtPnByb21pc2MpKTsKIAogCWlmICghdmlydG5ldF9zZW5k X2NvbW1hbmQodmksIFZJUlRJT19ORVRfQ1RSTF9SWCwKIAkJCQkgIFZJUlRJT19ORVRfQ1RSTF9S WF9QUk9NSVNDLCBzZykpCiAJCWRldl93YXJuKCZkZXYtPmRldiwgIkZhaWxlZCB0byAlc2FibGUg cHJvbWlzYyBtb2RlLlxuIiwKLQkJCSB2aS0+Y3RybF9wcm9taXNjID8gImVuIiA6ICJkaXMiKTsK KwkJCSB2aS0+Y3RybC0+cHJvbWlzYyA/ICJlbiIgOiAiZGlzIik7CiAKLQlzZ19pbml0X29uZShz ZywgJnZpLT5jdHJsX2FsbG11bHRpLCBzaXplb2YodmktPmN0cmxfYWxsbXVsdGkpKTsKKwlzZ19p bml0X29uZShzZywgJnZpLT5jdHJsLT5hbGxtdWx0aSwgc2l6ZW9mKHZpLT5jdHJsLT5hbGxtdWx0 aSkpOwogCiAJaWYgKCF2aXJ0bmV0X3NlbmRfY29tbWFuZCh2aSwgVklSVElPX05FVF9DVFJMX1JY LAogCQkJCSAgVklSVElPX05FVF9DVFJMX1JYX0FMTE1VTFRJLCBzZykpCiAJCWRldl93YXJuKCZk ZXYtPmRldiwgIkZhaWxlZCB0byAlc2FibGUgYWxsbXVsdGkgbW9kZS5cbiIsCi0JCQkgdmktPmN0 cmxfYWxsbXVsdGkgPyAiZW4iIDogImRpcyIpOworCQkJIHZpLT5jdHJsLT5hbGxtdWx0aSA/ICJl biIgOiAiZGlzIik7CiAKIAl1Y19jb3VudCA9IG5ldGRldl91Y19jb3VudChkZXYpOwogCW1jX2Nv dW50ID0gbmV0ZGV2X21jX2NvdW50KGRldik7CkBAIC0xNTk4LDggKzE2MDIsOCBAQCBzdGF0aWMg aW50IHZpcnRuZXRfdmxhbl9yeF9hZGRfdmlkKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJc3Ry dWN0IHZpcnRuZXRfaW5mbyAqdmkgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCBzY2F0dGVy bGlzdCBzZzsKIAotCXZpLT5jdHJsX3ZpZCA9IHZpZDsKLQlzZ19pbml0X29uZSgmc2csICZ2aS0+ Y3RybF92aWQsIHNpemVvZih2aS0+Y3RybF92aWQpKTsKKwl2aS0+Y3RybC0+dmlkID0gdmlkOwor CXNnX2luaXRfb25lKCZzZywgJnZpLT5jdHJsLT52aWQsIHNpemVvZih2aS0+Y3RybC0+dmlkKSk7 CiAKIAlpZiAoIXZpcnRuZXRfc2VuZF9jb21tYW5kKHZpLCBWSVJUSU9fTkVUX0NUUkxfVkxBTiwK IAkJCQkgIFZJUlRJT19ORVRfQ1RSTF9WTEFOX0FERCwgJnNnKSkKQEAgLTE2MTMsOCArMTYxNyw4 IEBAIHN0YXRpYyBpbnQgdmlydG5ldF92bGFuX3J4X2tpbGxfdmlkKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCiAJc3RydWN0IHZpcnRuZXRfaW5mbyAqdmkgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0 cnVjdCBzY2F0dGVybGlzdCBzZzsKIAotCXZpLT5jdHJsX3ZpZCA9IHZpZDsKLQlzZ19pbml0X29u ZSgmc2csICZ2aS0+Y3RybF92aWQsIHNpemVvZih2aS0+Y3RybF92aWQpKTsKKwl2aS0+Y3RybC0+ dmlkID0gdmlkOworCXNnX2luaXRfb25lKCZzZywgJnZpLT5jdHJsLT52aWQsIHNpemVvZih2aS0+ Y3RybC0+dmlkKSk7CiAKIAlpZiAoIXZpcnRuZXRfc2VuZF9jb21tYW5kKHZpLCBWSVJUSU9fTkVU X0NUUkxfVkxBTiwKIAkJCQkgIFZJUlRJT19ORVRfQ1RSTF9WTEFOX0RFTCwgJnNnKSkKQEAgLTE5 MTIsOSArMTkxNiw5IEBAIHN0YXRpYyBpbnQgdmlydG5ldF9yZXN0b3JlX3VwKHN0cnVjdCB2aXJ0 aW9fZGV2aWNlICp2ZGV2KQogc3RhdGljIGludCB2aXJ0bmV0X3NldF9ndWVzdF9vZmZsb2Fkcyhz dHJ1Y3QgdmlydG5ldF9pbmZvICp2aSwgdTY0IG9mZmxvYWRzKQogewogCXN0cnVjdCBzY2F0dGVy bGlzdCBzZzsKLQl2aS0+Y3RybF9vZmZsb2FkcyA9IGNwdV90b192aXJ0aW82NCh2aS0+dmRldiwg b2ZmbG9hZHMpOworCXZpLT5jdHJsLT5vZmZsb2FkcyA9IGNwdV90b192aXJ0aW82NCh2aS0+dmRl diwgb2ZmbG9hZHMpOwogCi0Jc2dfaW5pdF9vbmUoJnNnLCAmdmktPmN0cmxfb2ZmbG9hZHMsIHNp emVvZih2aS0+Y3RybF9vZmZsb2FkcykpOworCXNnX2luaXRfb25lKCZzZywgJnZpLT5jdHJsLT5v ZmZsb2Fkcywgc2l6ZW9mKHZpLT5jdHJsLT5vZmZsb2FkcykpOwogCiAJaWYgKCF2aXJ0bmV0X3Nl bmRfY29tbWFuZCh2aSwgVklSVElPX05FVF9DVFJMX0dVRVNUX09GRkxPQURTLAogCQkJCSAgVklS VElPX05FVF9DVFJMX0dVRVNUX09GRkxPQURTX1NFVCwgJnNnKSkgewpAQCAtMjEzNCw2ICsyMTM4 LDcgQEAgc3RhdGljIHZvaWQgdmlydG5ldF9mcmVlX3F1ZXVlcyhzdHJ1Y3QgdmlydG5ldF9pbmZv ICp2aSkKIAogCWtmcmVlKHZpLT5ycSk7CiAJa2ZyZWUodmktPnNxKTsKKwlrZnJlZSh2aS0+Y3Ry bCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9mcmVlX3JlY2VpdmVfYnVmcyhzdHJ1Y3QgdmlydG5ldF9p bmZvICp2aSkKQEAgLTIzMjYsNiArMjMzMSw5IEBAIHN0YXRpYyBpbnQgdmlydG5ldF9hbGxvY19x dWV1ZXMoc3RydWN0IHZpcnRuZXRfaW5mbyAqdmkpCiB7CiAJaW50IGk7CiAKKwl2aS0+Y3RybCA9 IGt6YWxsb2Moc2l6ZW9mKCp2aS0+Y3RybCksIEdGUF9LRVJORUwpOworCWlmICghdmktPmN0cmwp CisJCWdvdG8gZXJyX2N0cmw7CiAJdmktPnNxID0ga3phbGxvYyhzaXplb2YoKnZpLT5zcSkgKiB2 aS0+bWF4X3F1ZXVlX3BhaXJzLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXZpLT5zcSkKIAkJZ290byBl cnJfc3E7CkBAIC0yMzUxLDYgKzIzNTksOCBAQCBzdGF0aWMgaW50IHZpcnRuZXRfYWxsb2NfcXVl dWVzKHN0cnVjdCB2aXJ0bmV0X2luZm8gKnZpKQogZXJyX3JxOgogCWtmcmVlKHZpLT5zcSk7CiBl cnJfc3E6CisJa2ZyZWUodmktPmN0cmwpOworZXJyX2N0cmw6CiAJcmV0dXJuIC1FTk9NRU07CiB9 CiAKLS0gCjIuMTQuMwoKCkZyb20gN2ZlYjM2ZDMwOGFlNjI5Yjk0NzA0NTg1OTBiNGExYzAzNjJk MjMxNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIk1pY2hhZWwgUy4gVHNpcmtpbiIg PG1zdEByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDE5IEFwciAyMDE4IDA4OjMwOjQ5ICswMzAwClN1 YmplY3Q6IFtQQVRDSCAzMy8zM10gdmlydGlvX25ldDogZml4IGFkZGluZyB2aWRzIG9uIGJpZy1l bmRpYW4KClsgVXBzdHJlYW0gY29tbWl0IGQ3ZmFkNGM4NDBmMzNhNmJkMzMzZGQ3ZmJiMzAwNmVk YmNmMDAxN2EgXQoKUHJvZ3JhbW1pbmcgdmlkcyAoYWRkaW5nIG9yIHJlbW92aW5nIHRoZW0pIHN0 aWxsIHBhc3NlcwpndWVzdC1lbmRpYW4gdmFsdWVzIGluIHRoZSBETUEgYnVmZmVyLiBUaGF0J3Mg d3JvbmcKaWYgZ3Vlc3QgaXMgYmlnLWVuZGlhbiBhbmQgd2hlbiB2aXJ0aW8gMSBpcyBlbmFibGVk LgoKTm90ZTogdGhpcyBpcyBvbiB0b3Agb2YgYSBwcmV2aW91cyBwYXRjaDoKCXZpcnRpb19uZXQ6 IHNwbGl0IG91dCBjdHJsIGJ1ZmZlcgoKRml4ZXM6IDk0NjVhN2E2ZiAoInZpcnRpb19uZXQ6IGVu YWJsZSB2MS4wIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1z dEByZWRoYXQuY29tPgpBY2tlZC1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Zp cnRpb19uZXQuYyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwppbmRleCA2M2IwOTZjNDdmMWUu LmJiMTViMzAxMmFhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCisrKyBi L2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwpAQCAtMTIzLDcgKzEyMyw3IEBAIHN0cnVjdCBjb250 cm9sX2J1ZiB7CiAJc3RydWN0IHZpcnRpb19uZXRfY3RybF9tcSBtcTsKIAl1OCBwcm9taXNjOwog CXU4IGFsbG11bHRpOwotCXUxNiB2aWQ7CisJX192aXJ0aW8xNiB2aWQ7CiAJdTY0IG9mZmxvYWRz OwogfTsKIApAQCAtMTYwMiw3ICsxNjAyLDcgQEAgc3RhdGljIGludCB2aXJ0bmV0X3ZsYW5fcnhf YWRkX3ZpZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXN0cnVjdCB2aXJ0bmV0X2luZm8gKnZp ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2c7CiAKLQl2aS0+Y3Ry bC0+dmlkID0gdmlkOworCXZpLT5jdHJsLT52aWQgPSBjcHVfdG9fdmlydGlvMTYodmktPnZkZXYs IHZpZCk7CiAJc2dfaW5pdF9vbmUoJnNnLCAmdmktPmN0cmwtPnZpZCwgc2l6ZW9mKHZpLT5jdHJs LT52aWQpKTsKIAogCWlmICghdmlydG5ldF9zZW5kX2NvbW1hbmQodmksIFZJUlRJT19ORVRfQ1RS TF9WTEFOLApAQCAtMTYxNyw3ICsxNjE3LDcgQEAgc3RhdGljIGludCB2aXJ0bmV0X3ZsYW5fcnhf a2lsbF92aWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgdmlydG5ldF9pbmZvICp2 aSA9IG5ldGRldl9wcml2KGRldik7CiAJc3RydWN0IHNjYXR0ZXJsaXN0IHNnOwogCi0JdmktPmN0 cmwtPnZpZCA9IHZpZDsKKwl2aS0+Y3RybC0+dmlkID0gY3B1X3RvX3ZpcnRpbzE2KHZpLT52ZGV2 LCB2aWQpOwogCXNnX2luaXRfb25lKCZzZywgJnZpLT5jdHJsLT52aWQsIHNpemVvZih2aS0+Y3Ry bC0+dmlkKSk7CiAKIAlpZiAoIXZpcnRuZXRfc2VuZF9jb21tYW5kKHZpLCBWSVJUSU9fTkVUX0NU UkxfVkxBTiwKLS0gCjIuMTQuMwoK ----Next_Part(Thu_Apr_26_14_38_48_2018_354)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_416.mbox" RnJvbSBlODZmODcxNzkwNzI3NGZiYTE0ZmJjMGQzMWJlZWM3ZTkwN2QxZjgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6 IFN1biwgMjIgQXByIDIwMTggMTk6MTE6NTAgKzA4MDAKU3ViamVjdDogW1BBVENIIDAxLzUyXSBi b25kaW5nOiBkbyBub3Qgc2V0IHNsYXZlX2RldiBucGluZm8gYmVmb3JlCiBzbGF2ZV9lbmFibGVf bmV0cG9sbCBpbiBib25kX2Vuc2xhdmUKClsgVXBzdHJlYW0gY29tbWl0IGRkZWE3ODhjNjMwOTRm N2M0ODM3ODMyNjU1NjNkZDViNTAwNTJlMjggXQoKQWZ0ZXIgQ29tbWl0IDhhOGVmYTIyZjUxYiAo ImJvbmRpbmc6IHN5bmMgbmV0cG9sbCBjb2RlIHdpdGggYnJpZGdlIiksIGl0CndvdWxkIHNldCBz bGF2ZV9kZXYgbnBpbmZvIGluIHNsYXZlX2VuYWJsZV9uZXRwb2xsIHdoZW4gZW5zbGF2aW5nIGEg ZGV2CmlmIGJvbmQtPmRldi0+bnBpbmZvIHdhcyBzZXQuCgpIb3dldmVyIG5vdyBzbGF2ZV9kZXYg bnBpbmZvIGlzIHNldCB3aXRoIGJvbmQtPmRldi0+bnBpbmZvIGJlZm9yZSBjYWxsaW5nCnNsYXZl X2VuYWJsZV9uZXRwb2xsLiBXaXRoIHNsYXZlX2RldiBucGluZm8gc2V0LCBfX25ldHBvbGxfc2V0 dXAgY2FsbGVkCmluIHNsYXZlX2VuYWJsZV9uZXRwb2xsIHdpbGwgbm90IGNhbGwgc2xhdmUgZGV2 J3MgLm5kb19uZXRwb2xsX3NldHVwKCkuCkl0IGNhdXNlcyB0aGF0IHRoZSBsb3dlciBkZXYgb2Yg dGhpcyBzbGF2ZSBkZXYgY2FuJ3Qgc2V0IGl0cyBucGluZm8uCgpPbmUgd2F5IHRvIHJlcHJvZHVj ZSBpdDoKCiAgIyBtb2Rwcm9iZSBib25kaW5nCiAgIyBicmN0bCBhZGRiciBicjAKICAjIGJyY3Rs IGFkZGlmIGJyMCBldGgxCiAgIyBpZmNvbmZpZyBib25kMCAxOTIuMTY4LjEyMi4xLzI0IHVwCiAg IyBpZmVuc2xhdmUgYm9uZDAgZXRoMgogICMgc3lzdGVtY3RsIHJlc3RhcnQgbmV0Y29uc29sZQog ICMgaWZlbnNsYXZlIGJvbmQwIGJyMAogICMgaWZjb25maWcgZXRoMiBkb3duCiAgIyBzeXN0ZW1j dGwgcmVzdGFydCBuZXRjb25zb2xlCgpUaGUgbmV0cG9sbCB3b24ndCByZWFsbHkgd29yay4KClRo aXMgcGF0Y2ggaXMgdG8gcmVtb3ZlIHRoYXQgc2xhdmVfZGV2IG5waW5mbyBzZXR0aW5nIGluIGJv bmRfZW5zbGF2ZSgpLgoKRml4ZXM6IDhhOGVmYTIyZjUxYiAoImJvbmRpbmc6IHN5bmMgbmV0cG9s bCBjb2RlIHdpdGggYnJpZGdlIikKU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5A Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyB8IDMgKy0tCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9u ZF9tYWluLmMKaW5kZXggYjdiMTEzMDE4ODUzLi43MThlNDkxNGUzYTAgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9i b25kX21haW4uYwpAQCAtMTY2MCw4ICsxNjYwLDcgQEAgaW50IGJvbmRfZW5zbGF2ZShzdHJ1Y3Qg bmV0X2RldmljZSAqYm9uZF9kZXYsIHN0cnVjdCBuZXRfZGV2aWNlICpzbGF2ZV9kZXYsCiAJfSAv KiBzd2l0Y2goYm9uZF9tb2RlKSAqLwogCiAjaWZkZWYgQ09ORklHX05FVF9QT0xMX0NPTlRST0xM RVIKLQlzbGF2ZV9kZXYtPm5waW5mbyA9IGJvbmQtPmRldi0+bnBpbmZvOwotCWlmIChzbGF2ZV9k ZXYtPm5waW5mbykgeworCWlmIChib25kLT5kZXYtPm5waW5mbykgewogCQlpZiAoc2xhdmVfZW5h YmxlX25ldHBvbGwobmV3X3NsYXZlKSkgewogCQkJbmV0ZGV2X2luZm8oYm9uZF9kZXYsICJtYXN0 ZXJfZGV2IGlzIHVzaW5nIG5ldHBvbGwsIGJ1dCBuZXcgc2xhdmUgZGV2aWNlIGRvZXMgbm90IHN1 cHBvcnQgbmV0cG9sbFxuIik7CiAJCQlyZXMgPSAtRUJVU1k7Ci0tIAoyLjE0LjMKCgpGcm9tIDMy YTRjMjNkMjI2MzYyNDI1OGIwNGEyM2I1ODhlYmRiZmFhNDZkMTUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE9saXZpZXIgR2F5b3QgPG9saXZpZXIuZ2F5b3RAc2lnZXhlYy5jb20+CkRh dGU6IFdlZCwgMTggQXByIDIwMTggMjI6MDM6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyLzUy XSBkb2NzOiBpcC1zeXNjdGwudHh0OiBmaXggbmFtZSBvZiBzb21lIGlwdjYgdmFyaWFibGVzCgpb IFVwc3RyZWFtIGNvbW1pdCBhYjkxMzQ1NWRkNTliODEyMDRiNmEwZDM4N2E0NDY5N2IwZTBiZDg1 IF0KClRoZSBuYW1lIG9mIHRoZSBmb2xsb3dpbmcgcHJvYy9zeXNjdGwgZW50cmllcyB3ZXJlIGlu Y29ycmVjdGx5CmRvY3VtZW50ZWQ6CgogICAgL3Byb2Mvc3lzL25ldC9pcHY2L2NvbmYvPGludGVy ZmFjZT4vbWF4X2RzdF9vcHRzX251bWJlcgogICAgL3Byb2Mvc3lzL25ldC9pcHY2L2NvbmYvPGlu dGVyZmFjZT4vbWF4X2hidF9vcHRzX251bWJlcgogICAgL3Byb2Mvc3lzL25ldC9pcHY2L2NvbmYv PGludGVyZmFjZT4vbWF4X2RzdF9vcHRzX2xlbmd0aAogICAgL3Byb2Mvc3lzL25ldC9pcHY2L2Nv bmYvPGludGVyZmFjZT4vbWF4X2hidF9sZW5ndGgKClRoZWlyIG5hbWUgd2FzIHNldCB0byB0aGUg bmFtZSBvZiB0aGUgc3ltYm9sIGluIHRoZSAuZGF0YSBmaWVsZCBvZiB0aGUKY29udHJvbCB0YWJs ZSBpbnN0ZWFkIG9mIHRoZWlyIC5wcm9jIG5hbWUuCgpTaWduZWQtb2ZmLWJ5OiBPbGl2aWVyIEdh eW90IDxvbGl2aWVyLmdheW90QHNpZ2V4ZWMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5n L2lwLXN5c2N0bC50eHQgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0d29ya2lu Zy9pcC1zeXNjdGwudHh0IGIvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2lwLXN5c2N0bC50eHQK aW5kZXggYTU1M2Q0ZTRhMGZiLi5mNzc4OTAxYzQyOTcgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRp b24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vbmV0d29ya2lu Zy9pcC1zeXNjdGwudHh0CkBAIC0xMzg2LDI2ICsxMzg2LDI2IEBAIG1sZF9xcnYgLSBJTlRFR0VS CiAJRGVmYXVsdDogMiAoYXMgc3BlY2lmaWVkIGJ5IFJGQzM4MTAgOS4xKQogCU1pbmltdW06IDEg KGFzIHNwZWNpZmllZCBieSBSRkM2NjM2IDQuNSkKIAotbWF4X2RzdF9vcHRzX2NudCAtIElOVEVH RVIKK21heF9kc3Rfb3B0c19udW1iZXIgLSBJTlRFR0VSCiAJTWF4aW11bSBudW1iZXIgb2Ygbm9u LXBhZGRpbmcgVExWcyBhbGxvd2VkIGluIGEgRGVzdGluYXRpb24KIAlvcHRpb25zIGV4dGVuc2lv biBoZWFkZXIuIElmIHRoaXMgdmFsdWUgaXMgbGVzcyB0aGFuIHplcm8KIAl0aGVuIHVua25vd24g b3B0aW9ucyBhcmUgZGlzYWxsb3dlZCBhbmQgdGhlIG51bWJlciBvZiBrbm93bgogCVRMVnMgYWxs b3dlZCBpcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhpcyBudW1iZXIuCiAJRGVmYXVsdDogOAog Ci1tYXhfaGJoX29wdHNfY250IC0gSU5URUdFUgorbWF4X2hiaF9vcHRzX251bWJlciAtIElOVEVH RVIKIAlNYXhpbXVtIG51bWJlciBvZiBub24tcGFkZGluZyBUTFZzIGFsbG93ZWQgaW4gYSBIb3At YnktSG9wCiAJb3B0aW9ucyBleHRlbnNpb24gaGVhZGVyLiBJZiB0aGlzIHZhbHVlIGlzIGxlc3Mg dGhhbiB6ZXJvCiAJdGhlbiB1bmtub3duIG9wdGlvbnMgYXJlIGRpc2FsbG93ZWQgYW5kIHRoZSBu dW1iZXIgb2Yga25vd24KIAlUTFZzIGFsbG93ZWQgaXMgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRo aXMgbnVtYmVyLgogCURlZmF1bHQ6IDgKIAotbWF4IGRzdF9vcHRzX2xlbiAtIElOVEVHRVIKK21h eF9kc3Rfb3B0c19sZW5ndGggLSBJTlRFR0VSCiAJTWF4aW11bSBsZW5ndGggYWxsb3dlZCBmb3Ig YSBEZXN0aW5hdGlvbiBvcHRpb25zIGV4dGVuc2lvbgogCWhlYWRlci4KIAlEZWZhdWx0OiBJTlRf TUFYICh1bmxpbWl0ZWQpCiAKLW1heCBoYmhfb3B0c19sZW4gLSBJTlRFR0VSCittYXhfaGJoX2xl bmd0aCAtIElOVEVHRVIKIAlNYXhpbXVtIGxlbmd0aCBhbGxvd2VkIGZvciBhIEhvcC1ieS1Ib3Ag b3B0aW9ucyBleHRlbnNpb24KIAloZWFkZXIuCiAJRGVmYXVsdDogSU5UX01BWCAodW5saW1pdGVk KQotLSAKMi4xNC4zCgoKRnJvbSAyZmJlYTczMzdiZTczNmU3MGYwYTIwNDc3NGY2NjdhMjlmNDE0 NjRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkRhdGU6IFN1biwgMjIgQXByIDIwMTggMTg6Mjk6MjMgLTA3MDAKU3ViamVj dDogW1BBVENIIDAzLzUyXSBpcHY2OiBhZGQgUlRBX1RBQkxFIGFuZCBSVEFfUFJFRlNSQyB0byBy dG1faXB2Nl9wb2xpY3kKClsgVXBzdHJlYW0gY29tbWl0IGFhOGY4Nzc4NDkzYzg1ZmZmNDgwY2Rm OGIzNDliMWUxZGNiNWYyNDMgXQoKS01TQU4gcmVwb3J0ZWQgdXNlIG9mIHVuaW5pdC12YWx1ZSB0 aGF0IEkgdHJhY2tlZCB0byBsYWNrCm9mIHByb3BlciBzaXplIGNoZWNrIG9uIFJUQV9UQUJMRSBh dHRyaWJ1dGUuCgpJIGFsc28gYmVsaWV2ZSBSVEFfUFJFRlNSQyBsYWNrcyBhIHNpbWlsYXIgY2hl Y2suCgpGaXhlczogODY4NzJjYjU3OTI1ICgiW0lQdjZdIHJvdXRlOiBGSUI2IGNvbmZpZ3VyYXRp b24gdXNpbmcgc3RydWN0IGZpYjZfY29uZmlnIikKRml4ZXM6IGMzOTY4YTg1N2E2YiAoImlwdjY6 IFJUQV9QUkVGU1JDIHN1cHBvcnQgZm9yIGlwdjYgcm91dGUgc291cmNlIGFkZHJlc3Mgc2VsZWN0 aW9uIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpS ZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KQWNrZWQtYnk6 IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3JvdXRlLmMgfCAyICsr CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv cm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggZmM3NDM1MmZhYzEyLi43NGEyZTM3NDEy YjIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpA QCAtMzg2Miw2ICszODYyLDcgQEAgdm9pZCBydDZfbXR1X2NoYW5nZShzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCB1bnNpZ25lZCBpbnQgbXR1KQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xp Y3kgcnRtX2lwdjZfcG9saWN5W1JUQV9NQVgrMV0gPSB7CiAJW1JUQV9HQVRFV0FZXSAgICAgICAg ICAgPSB7IC5sZW4gPSBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSB9LAorCVtSVEFfUFJFRlNSQ10J CT0geyAubGVuID0gc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcikgfSwKIAlbUlRBX09JRl0gICAgICAg ICAgICAgICA9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCiAJW1JUQV9JSUZdCQk9IHsgLnR5cGUgPSBO TEFfVTMyIH0sCiAJW1JUQV9QUklPUklUWV0gICAgICAgICAgPSB7IC50eXBlID0gTkxBX1UzMiB9 LApAQCAtMzg3Myw2ICszODc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IHJ0 bV9pcHY2X3BvbGljeVtSVEFfTUFYKzFdID0gewogCVtSVEFfRVhQSVJFU10JCT0geyAudHlwZSA9 IE5MQV9VMzIgfSwKIAlbUlRBX1VJRF0JCT0geyAudHlwZSA9IE5MQV9VMzIgfSwKIAlbUlRBX01B UktdCQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCisJW1JUQV9UQUJMRV0JCT0geyAudHlwZSA9IE5M QV9VMzIgfSwKIH07CiAKIHN0YXRpYyBpbnQgcnRtX3RvX2ZpYjZfY29uZmlnKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAotLSAKMi4xNC4zCgoKRnJvbSA3ZmZhZjQ1 ZDM0NjIxY2FkMzQwYzY1YTg3MTA0YTAxMjc3NTI1ZTIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBBaG1lZCBBYmRlbHNhbGFtIDxhbXNhbGFtMjBAZ21haWwuY29tPgpEYXRlOiBGcmks IDIwIEFwciAyMDE4IDE1OjU4OjA1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC81Ml0gaXB2Njog c3I6IGZpeCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4KIHNlZzZfZG9fc3JoX2VuY2FwKCkt IHY0IHBrdHMKClsgVXBzdHJlYW0gY29tbWl0IGE5NTdmYTE5MGFhOWQ5MTY4YjMzZDQ2MGE1MjQx YTZkMDg4YzYyNjUgXQoKSW4gY2FzZSBvZiBzZWc2IGluIGVuY2FwIG1vZGUsIHNlZzZfZG9fc3Jo X2VuY2FwKCkgY2FsbHMgc2V0X3R1bl9zcmMoKQppbiBvcmRlciB0byBzZXQgdGhlIHNyYyBhZGRy IG9mIG91dGVyIElQdjYgaGVhZGVyLgoKVGhlIG5ldF9kZXZpY2UgaXMgcmVxdWlyZWQgZm9yIHNl dF90dW5fc3JjKCkuIEhvd2V2ZXIgY2FsbGluZyBpcDZfZHN0X2lkZXYoKQpvbiBkc3RfZW50cnkg aW4gY2FzZSBvZiBJUHY0IHRyYWZmaWMgcmVzdWx0cyBvbiB0aGUgZm9sbG93aW5nIGJ1Zy4KClVz aW5nIGp1c3QgZHN0LT5kZXYgc2hvdWxkIGZpeCB0aGlzIEJVRy4KClsgIDE5Ni4yNDI0NjFdIEJV RzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IDAw MDAwMDAwMDAwMDAwMDAKWyAgMTk2LjI0Mjk3NV0gUEdEIDgwMDAwMDAxMGYwNzYwNjcgUDREIDgw MDAwMDAxMGYwNzYwNjcgUFVEIDEwZjA2MDA2NyBQTUQgMApbICAxOTYuMjQzMzI5XSBPb3BzOiAw MDAwIFsjMV0gU01QIFBUSQpbICAxOTYuMjQzNDY4XSBNb2R1bGVzIGxpbmtlZCBpbjogbmZzZCBh dXRoX3JwY2dzcyBuZnNfYWNsIG5mcyBsb2NrZCBncmFjZSBmc2NhY2hlIHN1bnJwYyBjcmN0MTBk aWZfcGNsbXVsIGNyYzMyX3BjbG11bCBnaGFzaF9jbG11bG5pX2ludGVsIHBjYmMgYWVzbmlfaW50 ZWwgYWVzX3g4Nl82NCBjcnlwdG9fc2ltZCBjcnlwdGQgaW5wdXRfbGVkcyBnbHVlX2hlbHBlciBs ZWRfY2xhc3MgcGNzcGtyIHNlcmlvX3JhdyBtYWNfaGlkIHZpZGVvIGF1dG9mczQgaGlkX2dlbmVy aWMgdXNiaGlkIGhpZCBlMTAwMCBpMmNfcGlpeDQgYWhjaSBwYXRhX2FjcGkgbGliYWhjaQpbICAx OTYuMjQ0MzYyXSBDUFU6IDIgUElEOiAxMDg5IENvbW06IHBpbmcgTm90IHRhaW50ZWQgNC4xNi4w KyAjMQpbICAxOTYuMjQ0NjA2XSBIYXJkd2FyZSBuYW1lOiBpbm5vdGVrIEdtYkggVmlydHVhbEJv eC9WaXJ0dWFsQm94LCBCSU9TIFZpcnR1YWxCb3ggMTIvMDEvMjAwNgpbICAxOTYuMjQ0OTY4XSBS SVA6IDAwMTA6c2VnNl9kb19zcmhfZW5jYXArMHgxYWMvMHgzMDAKWyAgMTk2LjI0NTIzNl0gUlNQ OiAwMDE4OmZmZmZiMmNlMDBiMjNhNjAgRUZMQUdTOiAwMDAxMDIwMgpbICAxOTYuMjQ1NDY0XSBS QVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmOGM3ZjUzZWVhMzAwIFJDWDogMDAwMDAwMDAw MDAwMDAwMApbICAxOTYuMjQ1NzQyXSBSRFg6IDAwMDBmMTAwMDAwMDAwMDAgUlNJOiBmZmZmOGM3 ZjUyMDg1YTZjIFJESTogZmZmZjhjN2Y0MTE2Njg1MApbICAxOTYuMjQ2MDE4XSBSQlA6IGZmZmZi MmNlMDBiMjNhYTggUjA4OiAwMDAwMDAwMDAwMDI2MWUwIFIwOTogZmZmZjhjN2Y0MTE2NjgwMApb ICAxOTYuMjQ2Mjk0XSBSMTA6IGZmZmZkY2U1MDQwYWM3ODAgUjExOiBmZmZmOGM3ZjQxMTY2ODI4 IFIxMjogZmZmZjhjN2Y0MTE2NjgwOApbICAxOTYuMjQ2NTcwXSBSMTM6IGZmZmY4YzdmNTIwODVh NDQgUjE0OiBmZmZmZmZmZmI3MzIxMWMwIFIxNTogZmZmZjhjN2U2OWU0NDIwMApbICAxOTYuMjQ2 ODQ2XSBGUzogIDAwMDA3ZmM0NDg3ODk3MDAoMDAwMCkgR1M6ZmZmZjhjN2Y1OWQwMDAwMCgwMDAw KSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgIDE5Ni4yNDcyODZdIENTOiAgMDAxMCBEUzogMDAw MCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgMTk2LjI0NzUyNl0gQ1IyOiAwMDAw MDAwMDAwMDAwMDAwIENSMzogMDAwMDAwMDEwZjA1YTAwMCBDUjQ6IDAwMDAwMDAwMDAwNDA2ZTAK WyAgMTk2LjI0NzgwNF0gQ2FsbCBUcmFjZToKWyAgMTk2LjI0Nzk3Ml0gIHNlZzZfZG9fc3JoKzB4 MTViLzB4MWMwClsgIDE5Ni4yNDgxNTZdICBzZWc2X291dHB1dCsweDNjLzB4MjIwClsgIDE5Ni4y NDgzNDFdICA/IHByYW5kb21fdTMyKzB4MTQvMHgyMApbICAxOTYuMjQ4NTI2XSAgPyBpcF9pZGVu dHNfcmVzZXJ2ZSsweDZjLzB4ODAKWyAgMTk2LjI0ODcyM10gID8gX19pcF9zZWxlY3RfaWRlbnQr MHg5MC8weDEwMApbICAxOTYuMjQ4OTIzXSAgPyBpcF9hcHBlbmRfZGF0YS5wYXJ0LjUwKzB4NmMv MHhkMApbICAxOTYuMjQ5MTMzXSAgbHd0dW5uZWxfb3V0cHV0KzB4NDQvMHg3MApbICAxOTYuMjQ5 MzI4XSAgaXBfc2VuZF9za2IrMHgxNS8weDQwClsgIDE5Ni4yNDk1MTVdICByYXdfc2VuZG1zZysw eDhjMy8weGFjMApbICAxOTYuMjQ5NzAxXSAgPyBfY29weV9mcm9tX3VzZXIrMHgyZS8weDYwClsg IDE5Ni4yNDk4OTddICA/IHJ3X2NvcHlfY2hlY2tfdXZlY3RvcisweDUzLzB4MTEwClsgIDE5Ni4y NTAxMDZdICA/IF9jb3B5X2Zyb21fdXNlcisweDJlLzB4NjAKWyAgMTk2LjI1MDI5OV0gID8gY29w eV9tc2doZHJfZnJvbV91c2VyKzB4Y2UvMHgxNDAKWyAgMTk2LjI1MDUwOF0gIHNvY2tfc2VuZG1z ZysweDM2LzB4NDAKWyAgMTk2LjI1MDY5MF0gIF9fX3N5c19zZW5kbXNnKzB4MjkyLzB4MmEwClsg IDE5Ni4yNTA4ODFdICA/IF9jb25kX3Jlc2NoZWQrMHgxNS8weDMwClsgIDE5Ni4yNTEwNzRdICA/ IGNvcHlfdGVybWlvcysweDFlLzB4NzAKWyAgMTk2LjI1MTI2MV0gID8gX2NvcHlfdG9fdXNlcisw eDIyLzB4MzAKWyAgMTk2LjI1MTU3NV0gID8gdHR5X21vZGVfaW9jdGwrMHgxYzMvMHg0ZTAKWyAg MTk2LjI1MTc4Ml0gID8gX2NvbmRfcmVzY2hlZCsweDE1LzB4MzAKWyAgMTk2LjI1MTk3Ml0gID8g bXV0ZXhfbG9jaysweGUvMHgzMApbICAxOTYuMjUyMTUyXSAgPyB2dmFyX2ZhdWx0KzB4ZDIvMHgx MTAKWyAgMTk2LjI1MjMzN10gID8gX19kb19mYXVsdCsweDFmLzB4YzAKWyAgMTk2LjI1MjUyMV0g ID8gX19oYW5kbGVfbW1fZmF1bHQrMHhjMWYvMHgxMmQwClsgIDE5Ni4yNTI3MjddICA/IF9fc3lz X3NlbmRtc2crMHg2My8weGEwClsgIDE5Ni4yNTI5MTldICBfX3N5c19zZW5kbXNnKzB4NjMvMHhh MApbICAxOTYuMjUzMTA3XSAgZG9fc3lzY2FsbF82NCsweDcyLzB4MjAwClsgIDE5Ni4yNTMzMDVd ICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHgzZC8weGEyClsgIDE5Ni4yNTM1MzBd IFJJUDogMDAzMzoweDdmYzQ0ODBiMDY5MApbICAxOTYuMjUzNzE1XSBSU1A6IDAwMmI6MDAwMDdm ZmRlOWYyNTJmOCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDJlClsg IDE5Ni4yNTQwNTNdIFJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDAwMDAwNDAg UkNYOiAwMDAwN2ZjNDQ4MGIwNjkwClsgIDE5Ni4yNTQzMzFdIFJEWDogMDAwMDAwMDAwMDAwMDAw MCBSU0k6IDAwMDAwMDAwMDA2MGEzNjAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClsgIDE5Ni4yNTQ2 MDhdIFJCUDogMDAwMDdmZmRlOWYyNTNmMCBSMDg6IDAwMDAwMDAwMDAyZDFlODEgUjA5OiAwMDAw MDAwMDAwMDAwMDAyClsgIDE5Ni4yNTQ4ODRdIFIxMDogMDAwMDdmZmRlOWYyNTBjMCBSMTE6IDAw MDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMDAwYjIyMDcwClsgIDE5Ni4yNTUyMDVdIFIxMzog MjBjNDliYTVlMzUzZjdjZiBSMTQ6IDQzMWJkZTgyZDdiNjM0ZGIgUjE1OiAwMDAwN2ZmZGU5ZjI3 OGZlClsgIDE5Ni4yNTU0ODRdIENvZGU6IGE1IDBmIGI2IDQ1IGMwIDQxIDg4IDQxIDI4IDQxIDBm IGI2IDQxIDJjIDQ4IGMxIGUwIDA0IDQ5IDhiIDU0IDAxIDM4IDQ5IDhiIDQ0IDAxIDMwIDQ5IDg5 IDUxIDIwIDQ5IDg5IDQxIDE4IDQ4IDhiIDgzIGIwIDAwIDAwIDAwIDw0OD4gOGIgMzAgNDkgOGIg ODYgMDggMGIgMDAgMDAgNDggOGIgNDAgMjAgNDggOGIgNTAgMDggNDggMGIgMTAKWyAgMTk2LjI1 NjE5MF0gUklQOiBzZWc2X2RvX3NyaF9lbmNhcCsweDFhYy8weDMwMCBSU1A6IGZmZmZiMmNlMDBi MjNhNjAKWyAgMTk2LjI1NjQ0NV0gQ1IyOiAwMDAwMDAwMDAwMDAwMDAwClsgIDE5Ni4yNTY2NzZd IC0tLVsgZW5kIHRyYWNlIDcxYWY3ZDA5MzYwMzg4NWMgXS0tLQoKRml4ZXM6IDg5MzZlZjc2MDRj MTEgKCJpcHY2OiBzcjogZml4IE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIHNldHRpbmcg ZW5jYXAgc291cmNlIGFkZHJlc3MiKQpTaWduZWQtb2ZmLWJ5OiBBaG1lZCBBYmRlbHNhbGFtIDxh bXNhbGFtMjBAZ21haWwuY29tPgpBY2tlZC1ieTogRGF2aWQgTGVicnVuIDxkbGVicnVuQGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2Ni9zZWc2X2lwdHVubmVsLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9zZWc2 X2lwdHVubmVsLmMgYi9uZXQvaXB2Ni9zZWc2X2lwdHVubmVsLmMKaW5kZXggZjM0M2U2ZjBmYzk1 Li41ZmUxMzk0ODQ5MTkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3NlZzZfaXB0dW5uZWwuYworKysg Yi9uZXQvaXB2Ni9zZWc2X2lwdHVubmVsLmMKQEAgLTEzNiw3ICsxMzYsNyBAQCBpbnQgc2VnNl9k b19zcmhfZW5jYXAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGlwdjZfc3JfaGRyICpvc3Jo LCBpbnQgcHJvdG8pCiAJaXNyaC0+bmV4dGhkciA9IHByb3RvOwogCiAJaGRyLT5kYWRkciA9IGlz cmgtPnNlZ21lbnRzW2lzcmgtPmZpcnN0X3NlZ21lbnRdOwotCXNldF90dW5fc3JjKG5ldCwgaXA2 X2RzdF9pZGV2KGRzdCktPmRldiwgJmhkci0+ZGFkZHIsICZoZHItPnNhZGRyKTsKKwlzZXRfdHVu X3NyYyhuZXQsIGRzdC0+ZGV2LCAmaGRyLT5kYWRkciwgJmhkci0+c2FkZHIpOwogCiAjaWZkZWYg Q09ORklHX0lQVjZfU0VHNl9ITUFDCiAJaWYgKHNyX2hhc19obWFjKGlzcmgpKSB7Ci0tIAoyLjE0 LjMKCgpGcm9tIDdjMjE4ZTMzZTgxOWMxYzg2Zjk4OTEzNzc5ZDQ3YjhlZjFkZjk2YjAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgQmlnZ2VycyA8ZWJpZ2dlcnNAZ29vZ2xlLmNv bT4KRGF0ZTogVHVlLCAxNyBBcHIgMjAxOCAxMjowNzowNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MDUvNTJdIEtFWVM6IEROUzogbGltaXQgdGhlIGxlbmd0aCBvZiBvcHRpb24gc3RyaW5ncwoKWyBV cHN0cmVhbSBjb21taXQgOWM0MzhkN2EzYTUyZGNjMmI5ZWQwOTVjYjg3ZDNhNWU4M2NmN2U2MCBd CgpBZGRpbmcgYSBkbnNfcmVzb2x2ZXIga2V5IHdob3NlIHBheWxvYWQgY29udGFpbnMgYSB2ZXJ5 IGxvbmcgb3B0aW9uIG5hbWUKcmVzdWx0ZWQgaW4gdGhhdCBzdHJpbmcgYmVpbmcgcHJpbnRlZCBp biBmdWxsLiAgVGhpcyBoaXQgdGhlIFdBUk5fT05DRSgpCmluIHNldF9wcmVjaXNpb24oKSBkdXJp bmcgdGhlIHByaW50aygpLCBiZWNhdXNlIHByaW50aygpIG9ubHkgc3VwcG9ydHMgYQpwcmVjaXNp b24gb2YgdXAgdG8gMzI3NjcgYnl0ZXM6CgogICAgcHJlY2lzaW9uIDEwMDAwMDAgdG9vIGxhcmdl CiAgICBXQVJOSU5HOiBDUFU6IDAgUElEOiA3NTIgYXQgbGliL3ZzcHJpbnRmLmM6MjE4OSB2c25w cmludGYrMHg0YmMvMHg1YjAKCkZpeCBpdCBieSBsaW1pdGluZyBvcHRpb24gc3RyaW5ncyAoY29t YmluZWQgbmFtZSArIHZhbHVlKSB0byBhIG11Y2ggbW9yZQpyZWFzb25hYmxlIDEyOCBieXRlcy4g IFRoZSBleGFjdCBsaW1pdCBpcyBhcmJpdHJhcnksIGJ1dCBjdXJyZW50bHkgdGhlCm9ubHkgcmVj b2duaXplZCBvcHRpb24gaXMgZm9ybWF0dGVkIGFzICJkbnNlcnJvcj0lbHUiIHdoaWNoIGZpdHMg d2VsbAp3aXRoaW4gdGhpcyBsaW1pdC4KCkFsc28gcmF0ZWxpbWl0IHRoZSBwcmludGtzLgoKUmVw cm9kdWNlcjoKCiAgICBwZXJsIC1lICdwcmludCAiIyIsICJBIiB4IDEwMDAwMDAsICJceDAwIicg fCBrZXljdGwgcGFkZCBkbnNfcmVzb2x2ZXIgZGVzYyBAcwoKVGhpcyBidWcgd2FzIGZvdW5kIHVz aW5nIHN5emthbGxlci4KClJlcG9ydGVkLWJ5OiBNYXJrIFJ1dGxhbmQgPG1hcmsucnV0bGFuZEBh cm0uY29tPgpGaXhlczogNGEyZDc4OTI2N2UwICgiRE5TOiBJZiB0aGUgRE5TIHNlcnZlciByZXR1 cm5zIGFuIGVycm9yLCBhbGxvdyB0aGF0IHRvIGJlIGNhY2hlZCBbdmVyICMyXSIpClNpZ25lZC1v ZmYtYnk6IEVyaWMgQmlnZ2VycyA8ZWJpZ2dlcnNAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kbnNfcmVzb2x2 ZXIvZG5zX2tleS5jIHwgMTIgKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9kbnNfcmVzb2x2ZXIvZG5z X2tleS5jIGIvbmV0L2Ruc19yZXNvbHZlci9kbnNfa2V5LmMKaW5kZXggZTFkNGQ4OThhMDA3Li5l ZDM3MmQ1NTAxMzcgMTAwNjQ0Ci0tLSBhL25ldC9kbnNfcmVzb2x2ZXIvZG5zX2tleS5jCisrKyBi L25ldC9kbnNfcmVzb2x2ZXIvZG5zX2tleS5jCkBAIC05MSw5ICs5MSw5IEBAIGRuc19yZXNvbHZl cl9wcmVwYXJzZShzdHJ1Y3Qga2V5X3ByZXBhcnNlZF9wYXlsb2FkICpwcmVwKQogCiAJCQluZXh0 X29wdCA9IG1lbWNocihvcHQsICcjJywgZW5kIC0gb3B0KSA/OiBlbmQ7CiAJCQlvcHRfbGVuID0g bmV4dF9vcHQgLSBvcHQ7Ci0JCQlpZiAoIW9wdF9sZW4pIHsKLQkJCQlwcmludGsoS0VSTl9XQVJO SU5HCi0JCQkJICAgICAgICJFbXB0eSBvcHRpb24gdG8gZG5zX3Jlc29sdmVyIGtleVxuIik7CisJ CQlpZiAob3B0X2xlbiA8PSAwIHx8IG9wdF9sZW4gPiAxMjgpIHsKKwkJCQlwcl93YXJuX3JhdGVs aW1pdGVkKCJJbnZhbGlkIG9wdGlvbiBsZW5ndGggKCVkKSBmb3IgZG5zX3Jlc29sdmVyIGtleVxu IiwKKwkJCQkJCSAgICBvcHRfbGVuKTsKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCX0KIApAQCAt MTI3LDEwICsxMjcsOCBAQCBkbnNfcmVzb2x2ZXJfcHJlcGFyc2Uoc3RydWN0IGtleV9wcmVwYXJz ZWRfcGF5bG9hZCAqcHJlcCkKIAkJCX0KIAogCQliYWRfb3B0aW9uX3ZhbHVlOgotCQkJcHJpbnRr KEtFUk5fV0FSTklORwotCQkJICAgICAgICJPcHRpb24gJyUqLipzJyB0byBkbnNfcmVzb2x2ZXIg a2V5OiIKLQkJCSAgICAgICAiIGJhZC9taXNzaW5nIHZhbHVlXG4iLAotCQkJICAgICAgIG9wdF9u bGVuLCBvcHRfbmxlbiwgb3B0KTsKKwkJCXByX3dhcm5fcmF0ZWxpbWl0ZWQoIk9wdGlvbiAnJSou KnMnIHRvIGRuc19yZXNvbHZlciBrZXk6IGJhZC9taXNzaW5nIHZhbHVlXG4iLAorCQkJCQkgICAg b3B0X25sZW4sIG9wdF9ubGVuLCBvcHQpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0gd2hpbGUg KG9wdCA9IG5leHRfb3B0ICsgMSwgb3B0IDwgZW5kKTsKIAl9Ci0tIAoyLjE0LjMKCgpGcm9tIGM5 ZjkxNGM4MmYwNDdiYmRlYzM0YzgxMGUxZDk0M2RjMjRlZjQ3ODMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+CkRhdGU6 IE1vbiwgMjMgQXByIDIwMTggMTY6MTU6MTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA2LzUyXSBs MnRwOiBjaGVjayBzb2NrYWRkciBsZW5ndGggaW4gcHBwb2wydHBfY29ubmVjdCgpCgpbIFVwc3Ry ZWFtIGNvbW1pdCBlYjFjMjhjMDU4OTRhNGIxZjZiNTZjNWJmMDcyMjA1ZTY0Y2ZhMjgwIF0KCkNo ZWNrIHNvY2thZGRyX2xlbiBiZWZvcmUgZGVyZWZlcmVuY2luZyBzcC0+c2FfcHJvdG9jb2wsIHRv IGVuc3VyZSB0aGF0Cml0IGFjdHVhbGx5IHBvaW50cyB0byB2YWxpZCBkYXRhLgoKRml4ZXM6IGZk NTU4ZDE4NmRmMiAoImwydHA6IFNwbGl0IHBwcG9sMnRwIHBhdGNoIGludG8gc2VwYXJhdGUgbDJ0 cCBhbmQgcHBwIHBhcnRzIikKUmVwb3J0ZWQtYnk6IHN5emJvdCthNzBhYzg5MGIyM2IxYmYyOWY1 Y0BzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBOYXVs dCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbDJ0cC9sMnRwX3BwcC5jIHwgNyArKysrKysr CiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2wydHAv bDJ0cF9wcHAuYyBiL25ldC9sMnRwL2wydHBfcHBwLmMKaW5kZXggM2Q3ODg3Y2M1OTliLi5mYzNi OGI4ZmUxYzQgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfcHBwLmMKKysrIGIvbmV0L2wydHAv bDJ0cF9wcHAuYwpAQCAtNjE5LDYgKzYxOSwxMyBAQCBzdGF0aWMgaW50IHBwcG9sMnRwX2Nvbm5l Y3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICp1c2VydmFkZHIsCiAJbG9j a19zb2NrKHNrKTsKIAogCWVycm9yID0gLUVJTlZBTDsKKworCWlmIChzb2NrYWRkcl9sZW4gIT0g c2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9wcHBvbDJ0cCkgJiYKKwkgICAgc29ja2FkZHJfbGVuICE9 IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfcHBwb2wydHB2MykgJiYKKwkgICAgc29ja2FkZHJfbGVu ICE9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfcHBwb2wydHBpbjYpICYmCisJICAgIHNvY2thZGRy X2xlbiAhPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX3BwcG9sMnRwdjNpbjYpKQorCQlnb3RvIGVu ZDsKKwogCWlmIChzcC0+c2FfcHJvdG9jb2wgIT0gUFhfUFJPVE9fT0wyVFApCiAJCWdvdG8gZW5k OwogCi0tIAoyLjE0LjMKCgpGcm9tIDA2MTY1ZGM2MzM0NzBlM2MwNWU1YTEyZmI3YTczNWNiNTdm YWRiMWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2Fu Z2NvbmdAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE5IEFwciAyMDE4IDEyOjI1OjM4IC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAwNy81Ml0gbGxjOiBkZWxldGUgdGltZXJzIHN5bmNocm9ub3VzbHkgaW4g bGxjX3NrX2ZyZWUoKQoKWyBVcHN0cmVhbSBjb21taXQgYjkwNWVmOWFiOTAxMTVkMDAxYzE2NTgy NTlhZjRiMWM2NTA4ODc3OSBdCgpUaGUgY29ubmVjdGlvbiB0aW1lcnMgb2YgYW4gbGxjIHNvY2sg Y291bGQgYmUgc3RpbGwgZmx5aW5nCmFmdGVyIHdlIGRlbGV0ZSB0aGVtIGluIGxsY19za19mcmVl KCksIGFuZCBldmVuIHBvc3NpYmx5CmFmdGVyIHdlIGZyZWUgdGhlIHNvY2suIFdlIGNvdWxkIGp1 c3Qgd2FpdCBzeW5jaHJvbm91c2x5CmhlcmUgaW4gY2FzZSBvZiB0cm91Ymxlcy4KCk5vdGUsIEkg bGVhdmUgb3RoZXIgY2FsbCBwYXRocyBhcyB0aGV5IGFyZSwgc2luY2UgdGhleSBtYXkKbm90IGhh dmUgdG8gd2FpdCwgYXQgbGVhc3Qgd2UgY2FuIGNoYW5nZSB0aGVtIHRvIHN5bmNocm9ub3VzbHkK d2hlbiBuZWVkZWQuCgpBbHNvLCBtb3ZlIHRoZSBjb2RlIHRvIG5ldC9sbGMvbGxjX2Nvbm4uYywg d2hpY2ggaXMgYXBwYXJlbnRseQphIGJldHRlciBwbGFjZS4KClJlcG9ydGVkLWJ5OiA8c3l6Ym90 K2Y5MjIyODRjMThlYTIzYThlNDU3QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQv bGxjX2Nvbm4uaCB8ICAxICsKIG5ldC9sbGMvbGxjX2NfYWMuYyAgICAgfCAgOSArLS0tLS0tLS0K IG5ldC9sbGMvbGxjX2Nvbm4uYyAgICAgfCAyMiArKysrKysrKysrKysrKysrKysrKystCiAzIGZp bGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9uZXQvbGxjX2Nvbm4uaCBiL2luY2x1ZGUvbmV0L2xsY19jb25uLmgKaW5kZXgg NWM0MGYxMThjMGZhLi5kZjUyOGE2MjM1NDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2xsY19j b25uLmgKKysrIGIvaW5jbHVkZS9uZXQvbGxjX2Nvbm4uaApAQCAtOTcsNiArOTcsNyBAQCBzdGF0 aWMgX19pbmxpbmVfXyBjaGFyIGxsY19iYWNrbG9nX3R5cGUoc3RydWN0IHNrX2J1ZmYgKnNrYikK IAogc3RydWN0IHNvY2sgKmxsY19za19hbGxvYyhzdHJ1Y3QgbmV0ICpuZXQsIGludCBmYW1pbHks IGdmcF90IHByaW9yaXR5LAogCQkJICBzdHJ1Y3QgcHJvdG8gKnByb3QsIGludCBrZXJuKTsKK3Zv aWQgbGxjX3NrX3N0b3BfYWxsX3RpbWVycyhzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgc3luYyk7CiB2 b2lkIGxsY19za19mcmVlKHN0cnVjdCBzb2NrICpzayk7CiAKIHZvaWQgbGxjX3NrX3Jlc2V0KHN0 cnVjdCBzb2NrICpzayk7CmRpZmYgLS1naXQgYS9uZXQvbGxjL2xsY19jX2FjLmMgYi9uZXQvbGxj L2xsY19jX2FjLmMKaW5kZXggMTYzMTIxMTkyYWNhLi40ZDc4Mzc1Zjk4NzIgMTAwNjQ0Ci0tLSBh L25ldC9sbGMvbGxjX2NfYWMuYworKysgYi9uZXQvbGxjL2xsY19jX2FjLmMKQEAgLTEwOTksMTQg KzEwOTksNyBAQCBpbnQgbGxjX2Nvbm5fYWNfaW5jX3R4X3dpbl9zaXplKHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogaW50IGxsY19jb25uX2FjX3N0b3BfYWxsX3RpbWVy cyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0Jc3RydWN0IGxsY19z b2NrICpsbGMgPSBsbGNfc2soc2spOwotCi0JZGVsX3RpbWVyKCZsbGMtPnBmX2N5Y2xlX3RpbWVy LnRpbWVyKTsKLQlkZWxfdGltZXIoJmxsYy0+YWNrX3RpbWVyLnRpbWVyKTsKLQlkZWxfdGltZXIo JmxsYy0+cmVqX3NlbnRfdGltZXIudGltZXIpOwotCWRlbF90aW1lcigmbGxjLT5idXN5X3N0YXRl X3RpbWVyLnRpbWVyKTsKLQlsbGMtPmFja19tdXN0X2JlX3NlbmQgPSAwOwotCWxsYy0+YWNrX3Bm ID0gMDsKKwlsbGNfc2tfc3RvcF9hbGxfdGltZXJzKHNrLCBmYWxzZSk7CiAJcmV0dXJuIDA7CiB9 CiAKZGlmZiAtLWdpdCBhL25ldC9sbGMvbGxjX2Nvbm4uYyBiL25ldC9sbGMvbGxjX2Nvbm4uYwpp bmRleCAxMTBlMzJiY2IzOTkuLmMwYWM1MjJiNDhhMSAxMDA2NDQKLS0tIGEvbmV0L2xsYy9sbGNf Y29ubi5jCisrKyBiL25ldC9sbGMvbGxjX2Nvbm4uYwpAQCAtOTYxLDYgKzk2MSwyNiBAQCBzdHJ1 Y3Qgc29jayAqbGxjX3NrX2FsbG9jKHN0cnVjdCBuZXQgKm5ldCwgaW50IGZhbWlseSwgZ2ZwX3Qg cHJpb3JpdHksIHN0cnVjdCBwcgogCXJldHVybiBzazsKIH0KIAordm9pZCBsbGNfc2tfc3RvcF9h bGxfdGltZXJzKHN0cnVjdCBzb2NrICpzaywgYm9vbCBzeW5jKQoreworCXN0cnVjdCBsbGNfc29j ayAqbGxjID0gbGxjX3NrKHNrKTsKKworCWlmIChzeW5jKSB7CisJCWRlbF90aW1lcl9zeW5jKCZs bGMtPnBmX2N5Y2xlX3RpbWVyLnRpbWVyKTsKKwkJZGVsX3RpbWVyX3N5bmMoJmxsYy0+YWNrX3Rp bWVyLnRpbWVyKTsKKwkJZGVsX3RpbWVyX3N5bmMoJmxsYy0+cmVqX3NlbnRfdGltZXIudGltZXIp OworCQlkZWxfdGltZXJfc3luYygmbGxjLT5idXN5X3N0YXRlX3RpbWVyLnRpbWVyKTsKKwl9IGVs c2UgeworCQlkZWxfdGltZXIoJmxsYy0+cGZfY3ljbGVfdGltZXIudGltZXIpOworCQlkZWxfdGlt ZXIoJmxsYy0+YWNrX3RpbWVyLnRpbWVyKTsKKwkJZGVsX3RpbWVyKCZsbGMtPnJlal9zZW50X3Rp bWVyLnRpbWVyKTsKKwkJZGVsX3RpbWVyKCZsbGMtPmJ1c3lfc3RhdGVfdGltZXIudGltZXIpOwor CX0KKworCWxsYy0+YWNrX211c3RfYmVfc2VuZCA9IDA7CisJbGxjLT5hY2tfcGYgPSAwOworfQor CiAvKioKICAqCWxsY19za19mcmVlIC0gRnJlZXMgYSBMTEMgc29ja2V0CiAgKglAc2sgLSBzb2Nr ZXQgdG8gZnJlZQpAQCAtOTczLDcgKzk5Myw3IEBAIHZvaWQgbGxjX3NrX2ZyZWUoc3RydWN0IHNv Y2sgKnNrKQogCiAJbGxjLT5zdGF0ZSA9IExMQ19DT05OX09VVF9PRl9TVkM7CiAJLyogU3RvcCBh bGwgKHBvc3NpYmx5KSBydW5uaW5nIHRpbWVycyAqLwotCWxsY19jb25uX2FjX3N0b3BfYWxsX3Rp bWVycyhzaywgTlVMTCk7CisJbGxjX3NrX3N0b3BfYWxsX3RpbWVycyhzaywgdHJ1ZSk7CiAjaWZk ZWYgREVCVUdfTExDX0NPTk5fQUxMT0MKIAlwcmludGsoS0VSTl9JTkZPICIlczogdW5hY2txPSVk LCB0eHE9JWRcbiIsIF9fZnVuY19fLAogCQlza2JfcXVldWVfbGVuKCZsbGMtPnBkdV91bmFja19x KSwKLS0gCjIuMTQuMwoKCkZyb20gMmE4Nzc4ZGNhNmRiYjYxOWJmNGI4NzdlMjZmNzIyYWFhNWY4 ZTczZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpEYXRlOiBTdW4sIDE1IEFwciAyMDE4IDE3OjUyOjA0IC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAwOC81Ml0gbmV0OiBhZl9wYWNrZXQ6IGZpeCByYWNlIGluIFBBQ0tFVF97UnxU fVhfUklORwoKWyBVcHN0cmVhbSBjb21taXQgNTE3MWIzN2Q5NTk2NDFiYmM2MTk3ODFjYWY2MmU2 MWY3Yjk0MDg3MSBdCgpJbiBvcmRlciB0byByZW1vdmUgdGhlIHJhY2UgY2F1Z2h0IGJ5IHN5emJv dCBbMV0sIHdlIG5lZWQKdG8gbG9jayB0aGUgc29ja2V0IGJlZm9yZSB1c2luZyBwby0+dHBfdmVy c2lvbiBhcyB0aGlzIGNvdWxkCmNoYW5nZSB1bmRlciB1cyBvdGhlcndpc2UuCgpUaGlzIG1lYW5z IGxvY2tfc29jaygpIGFuZCByZWxlYXNlX3NvY2soKSBtdXN0IGJlIGRvbmUgYnkKcGFja2V0X3Nl dF9yaW5nKCkgY2FsbGVycy4KClsxXSA6CkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBwYWNr ZXRfc2V0X3JpbmcrMHgxMjU0LzB4Mzg3MCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjQyNDkKQ1BV OiAwIFBJRDogMjAxOTUgQ29tbTogc3l6a2FsbGVyNzA3NjMyIE5vdCB0YWludGVkIDQuMTYuMCsg IzgzCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENv bXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBf c3RhY2sgbGliL2R1bXBfc3RhY2suYzoxNyBbaW5saW5lXQogZHVtcF9zdGFjaysweDE4NS8weDFk MCBsaWIvZHVtcF9zdGFjay5jOjUzCiBrbXNhbl9yZXBvcnQrMHgxNDIvMHgyNDAgbW0va21zYW4v a21zYW4uYzoxMDY3CiBfX21zYW5fd2FybmluZ18zMisweDZjLzB4YjAgbW0va21zYW4va21zYW5f aW5zdHIuYzo2NzYKIHBhY2tldF9zZXRfcmluZysweDEyNTQvMHgzODcwIG5ldC9wYWNrZXQvYWZf cGFja2V0LmM6NDI0OQogcGFja2V0X3NldHNvY2tvcHQrMHgxMmM2LzB4NWE5MCBuZXQvcGFja2V0 L2FmX3BhY2tldC5jOjM2NjIKIFNZU0Nfc2V0c29ja29wdCsweDRiOC8weDU3MCBuZXQvc29ja2V0 LmM6MTg0OQogU3lTX3NldHNvY2tvcHQrMHg3Ni8weGEwIG5ldC9zb2NrZXQuYzoxODI4CiBkb19z eXNjYWxsXzY0KzB4MzA5LzB4NDMwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI4NwogZW50cnlf U1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4M2QvMHhhMgpSSVA6IDAwMzM6MHg0NDkwOTkKUlNQ OiAwMDJiOjAwMDA3ZjQyYjUzMDdjZTggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAw MDAwMDAwMDAzNgpSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwNzAwMDNjIFJD WDogMDAwMDAwMDAwMDQ0OTA5OQpSRFg6IDAwMDAwMDAwMDAwMDAwMDUgUlNJOiAwMDAwMDAwMDAw MDAwMTA3IFJESTogMDAwMDAwMDAwMDAwMDAwMwpSQlA6IDAwMDAwMDAwMDA3MDAwMzggUjA4OiAw MDAwMDAwMDAwMDAwMDFjIFIwOTogMDAwMDAwMDAwMDAwMDAwMApSMTA6IDAwMDAwMDAwMjAwMDAw YzAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDAwMApSMTM6IDAwMDAw MDAwMDA4MGVlY2YgUjE0OiAwMDAwN2Y0MmI1MzA4OWMwIFIxNTogMDAwMDAwMDAwMDAwMDAwMQoK TG9jYWwgdmFyaWFibGUgZGVzY3JpcHRpb246IC0tLS1yZXFfdUBwYWNrZXRfc2V0c29ja29wdApW YXJpYWJsZSB3YXMgY3JlYXRlZCBhdDoKIHBhY2tldF9zZXRzb2Nrb3B0KzB4MTNmLzB4NWE5MCBu ZXQvcGFja2V0L2FmX3BhY2tldC5jOjM2MTIKIFNZU0Nfc2V0c29ja29wdCsweDRiOC8weDU3MCBu ZXQvc29ja2V0LmM6MTg0OQoKRml4ZXM6IGY2ZmI4ZjEwMGI4MCAoImFmLXBhY2tldDogVFBBQ0tF VF9WMyBmbGV4aWJsZSBidWZmZXIgaW1wbGVtZW50YXRpb24uIikKU2lnbmVkLW9mZi1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXpr YWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9wYWNrZXQvYWZfcGFja2V0LmMgfCAyMyArKysr KysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9w YWNrZXQvYWZfcGFja2V0LmMKaW5kZXggZTBmM2Y0YWVlYjRmLi4xOWU1ODc1ZmNlODkgMTAwNjQ0 Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQu YwpAQCAtMzAwOCw2ICszMDA4LDcgQEAgc3RhdGljIGludCBwYWNrZXRfcmVsZWFzZShzdHJ1Y3Qg c29ja2V0ICpzb2NrKQogCiAJcGFja2V0X2ZsdXNoX21jbGlzdChzayk7CiAKKwlsb2NrX3NvY2so c2spOwogCWlmIChwby0+cnhfcmluZy5wZ192ZWMpIHsKIAkJbWVtc2V0KCZyZXFfdSwgMCwgc2l6 ZW9mKHJlcV91KSk7CiAJCXBhY2tldF9zZXRfcmluZyhzaywgJnJlcV91LCAxLCAwKTsKQEAgLTMw MTcsNiArMzAxOCw3IEBAIHN0YXRpYyBpbnQgcGFja2V0X3JlbGVhc2Uoc3RydWN0IHNvY2tldCAq c29jaykKIAkJbWVtc2V0KCZyZXFfdSwgMCwgc2l6ZW9mKHJlcV91KSk7CiAJCXBhY2tldF9zZXRf cmluZyhzaywgJnJlcV91LCAxLCAxKTsKIAl9CisJcmVsZWFzZV9zb2NrKHNrKTsKIAogCWYgPSBm YW5vdXRfcmVsZWFzZShzayk7CiAKQEAgLTM2NDUsNiArMzY0Nyw3IEBAIHBhY2tldF9zZXRzb2Nr b3B0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsIGNoYXIgX191 c2VyICpvcHR2CiAJCXVuaW9uIHRwYWNrZXRfcmVxX3UgcmVxX3U7CiAJCWludCBsZW47CiAKKwkJ bG9ja19zb2NrKHNrKTsKIAkJc3dpdGNoIChwby0+dHBfdmVyc2lvbikgewogCQljYXNlIFRQQUNL RVRfVjE6CiAJCWNhc2UgVFBBQ0tFVF9WMjoKQEAgLTM2NTUsMTIgKzM2NTgsMTcgQEAgcGFja2V0 X3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwg Y2hhciBfX3VzZXIgKm9wdHYKIAkJCWxlbiA9IHNpemVvZihyZXFfdS5yZXEzKTsKIAkJCWJyZWFr OwogCQl9Ci0JCWlmIChvcHRsZW4gPCBsZW4pCi0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJaWYgKGNv cHlfZnJvbV91c2VyKCZyZXFfdS5yZXEsIG9wdHZhbCwgbGVuKSkKLQkJCXJldHVybiAtRUZBVUxU OwotCQlyZXR1cm4gcGFja2V0X3NldF9yaW5nKHNrLCAmcmVxX3UsIDAsCi0JCQlvcHRuYW1lID09 IFBBQ0tFVF9UWF9SSU5HKTsKKwkJaWYgKG9wdGxlbiA8IGxlbikgeworCQkJcmV0ID0gLUVJTlZB TDsKKwkJfSBlbHNlIHsKKwkJCWlmIChjb3B5X2Zyb21fdXNlcigmcmVxX3UucmVxLCBvcHR2YWws IGxlbikpCisJCQkJcmV0ID0gLUVGQVVMVDsKKwkJCWVsc2UKKwkJCQlyZXQgPSBwYWNrZXRfc2V0 X3Jpbmcoc2ssICZyZXFfdSwgMCwKKwkJCQkJCSAgICBvcHRuYW1lID09IFBBQ0tFVF9UWF9SSU5H KTsKKwkJfQorCQlyZWxlYXNlX3NvY2soc2spOworCQlyZXR1cm4gcmV0OwogCX0KIAljYXNlIFBB Q0tFVF9DT1BZX1RIUkVTSDoKIAl7CkBAIC00MjEwLDggKzQyMTgsNiBAQCBzdGF0aWMgaW50IHBh Y2tldF9zZXRfcmluZyhzdHJ1Y3Qgc29jayAqc2ssIHVuaW9uIHRwYWNrZXRfcmVxX3UgKnJlcV91 LAogCS8qIEFkZGVkIHRvIGF2b2lkIG1pbmltYWwgY29kZSBjaHVybiAqLwogCXN0cnVjdCB0cGFj a2V0X3JlcSAqcmVxID0gJnJlcV91LT5yZXE7CiAKLQlsb2NrX3NvY2soc2spOwotCiAJcmIgPSB0 eF9yaW5nID8gJnBvLT50eF9yaW5nIDogJnBvLT5yeF9yaW5nOwogCXJiX3F1ZXVlID0gdHhfcmlu ZyA/ICZzay0+c2tfd3JpdGVfcXVldWUgOiAmc2stPnNrX3JlY2VpdmVfcXVldWU7CiAKQEAgLTQz NDksNyArNDM1NSw2IEBAIHN0YXRpYyBpbnQgcGFja2V0X3NldF9yaW5nKHN0cnVjdCBzb2NrICpz aywgdW5pb24gdHBhY2tldF9yZXFfdSAqcmVxX3UsCiAJaWYgKHBnX3ZlYykKIAkJZnJlZV9wZ192 ZWMocGdfdmVjLCBvcmRlciwgcmVxLT50cF9ibG9ja19ucik7CiBvdXQ6Ci0JcmVsZWFzZV9zb2Nr KHNrKTsKIAlyZXR1cm4gZXJyOwogfQogCi0tIAoyLjE0LjMKCgpGcm9tIDc0NGEyNjVlMDhmMDg1 Y2JmMzFjN2Q4MzM3ZGUyNmIyYzNkZGRmZWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFdvbGZnYW5nIEJ1bWlsbGVyIDx3LmJ1bWlsbGVyQHByb3htb3guY29tPgpEYXRlOiBUaHUsIDEy IEFwciAyMDE4IDEwOjQ2OjU1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOS81Ml0gbmV0OiBmaXgg ZGVhZGxvY2sgd2hpbGUgY2xlYXJpbmcgbmVpZ2hib3IgcHJveHkgdGFibGUKClsgVXBzdHJlYW0g Y29tbWl0IDUzYjc2Y2RmN2U4ZmVjZWMxZDA5ZTM4YWFkMmY4NTc5ODgyNTkxYTggXQoKV2hlbiBj b21pbmcgZnJvbSBuZGlzY19uZXRkZXZfZXZlbnQoKSBpbiBuZXQvaXB2Ni9uZGlzYy5jLApuZWln aF9pZmRvd24oKSBpcyBjYWxsZWQgd2l0aCAmbmRfdGJsLCBsb2NraW5nIHRoaXMgd2hpbGUKY2xl YXJpbmcgdGhlIHByb3h5IG5laWdoYm9yIGVudHJpZXMgd2hlbiBlZy4gZGVsZXRpbmcgYW4KaW50 ZXJmYWNlLiBDYWxsaW5nIHRoZSB0YWJsZSdzIHBuZGlzY19kZXN0cnVjdG9yKCkgd2l0aCB0aGUK bG9jayBzdGlsbCBoZWxkLCBob3dldmVyLCBjYW4gY2F1c2UgYSBkZWFkbG9jazogV2hlbiBhCm11 bHRpY2FzdCBsaXN0ZW5lciBpcyBhdmFpbGFibGUgYW4gSUdNUCBwYWNrZXQgb2YgdHlwZQpJQ01Q VjZfTUdNX1JFRFVDVElPTiBtYXkgYmUgc2VudCBvdXQuIFdoZW4gcmVhY2hpbmcKaXA2X2Zpbmlz aF9vdXRwdXQyKCksIGlmIG5vIG5laWdoYm9yIGVudHJ5IGZvciB0aGUgdGFyZ2V0CmFkZHJlc3Mg aXMgZm91bmQsIF9fbmVpZ2hfY3JlYXRlKCkgaXMgY2FsbGVkIHdpdGggJm5kX3RibCwKd2hpY2gg aXQnbGwgd2FudCB0byBsb2NrLgoKTW92ZSB0aGUgZWxlbWVudHMgaW50byB0aGVpciBvd24gbGlz dCwgdGhlbiB1bmxvY2sgdGhlIHRhYmxlCmFuZCBwZXJmb3JtIHRoZSBkZXN0cnVjdGlvbi4KCkJ1 Z3ppbGxhOiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTI4 OQpGaXhlczogNmZkNmNlMjA1NmRlICgiaXB2NjogRG8gbm90IGRlcGVuZCBvbiBydC0+biBpbiBp cDZfZmluaXNoX291dHB1dDIoKS4iKQpTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBCdW1pbGxlciA8 dy5idW1pbGxlckBwcm94bW94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL25laWdoYm91ci5jIHwgMjggKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyks IDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25laWdoYm91ci5jIGIvbmV0 L2NvcmUvbmVpZ2hib3VyLmMKaW5kZXggN2I3YTE0YWJiYTI4Li5lMjJkMmFlZmJkNzggMTAwNjQ0 Ci0tLSBhL25ldC9jb3JlL25laWdoYm91ci5jCisrKyBiL25ldC9jb3JlL25laWdoYm91ci5jCkBA IC01NSw3ICs1NSw4IEBAIHN0YXRpYyB2b2lkIG5laWdoX3RpbWVyX2hhbmRsZXIoc3RydWN0IHRp bWVyX2xpc3QgKnQpOwogc3RhdGljIHZvaWQgX19uZWlnaF9ub3RpZnkoc3RydWN0IG5laWdoYm91 ciAqbiwgaW50IHR5cGUsIGludCBmbGFncywKIAkJCSAgIHUzMiBwaWQpOwogc3RhdGljIHZvaWQg bmVpZ2hfdXBkYXRlX25vdGlmeShzdHJ1Y3QgbmVpZ2hib3VyICpuZWlnaCwgdTMyIG5sbXNnX3Bp ZCk7Ci1zdGF0aWMgaW50IHBuZWlnaF9pZmRvd24oc3RydWN0IG5laWdoX3RhYmxlICp0YmwsIHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpOworc3RhdGljIGludCBwbmVpZ2hfaWZkb3duX2FuZF91bmxv Y2soc3RydWN0IG5laWdoX3RhYmxlICp0YmwsCisJCQkJICAgIHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpOwogCiAjaWZkZWYgQ09ORklHX1BST0NfRlMKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9v cGVyYXRpb25zIG5laWdoX3N0YXRfc2VxX2ZvcHM7CkBAIC0yOTEsOCArMjkyLDcgQEAgaW50IG5l aWdoX2lmZG93bihzdHJ1Y3QgbmVpZ2hfdGFibGUgKnRibCwgc3RydWN0IG5ldF9kZXZpY2UgKmRl dikKIHsKIAl3cml0ZV9sb2NrX2JoKCZ0YmwtPmxvY2spOwogCW5laWdoX2ZsdXNoX2Rldih0Ymws IGRldik7Ci0JcG5laWdoX2lmZG93bih0YmwsIGRldik7Ci0Jd3JpdGVfdW5sb2NrX2JoKCZ0Ymwt PmxvY2spOworCXBuZWlnaF9pZmRvd25fYW5kX3VubG9jayh0YmwsIGRldik7CiAKIAlkZWxfdGlt ZXJfc3luYygmdGJsLT5wcm94eV90aW1lcik7CiAJcG5laWdoX3F1ZXVlX3B1cmdlKCZ0YmwtPnBy b3h5X3F1ZXVlKTsKQEAgLTY4MSw5ICs2ODEsMTAgQEAgaW50IHBuZWlnaF9kZWxldGUoc3RydWN0 IG5laWdoX3RhYmxlICp0YmwsIHN0cnVjdCBuZXQgKm5ldCwgY29uc3Qgdm9pZCAqcGtleSwKIAly ZXR1cm4gLUVOT0VOVDsKIH0KIAotc3RhdGljIGludCBwbmVpZ2hfaWZkb3duKHN0cnVjdCBuZWln aF90YWJsZSAqdGJsLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQorc3RhdGljIGludCBwbmVpZ2hf aWZkb3duX2FuZF91bmxvY2soc3RydWN0IG5laWdoX3RhYmxlICp0YmwsCisJCQkJICAgIHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHBuZWlnaF9lbnRyeSAqbiwgKipucDsKKwlz dHJ1Y3QgcG5laWdoX2VudHJ5ICpuLCAqKm5wLCAqZnJlZWxpc3QgPSBOVUxMOwogCXUzMiBoOwog CiAJZm9yIChoID0gMDsgaCA8PSBQTkVJR0hfSEFTSE1BU0s7IGgrKykgewpAQCAtNjkxLDE2ICs2 OTIsMjMgQEAgc3RhdGljIGludCBwbmVpZ2hfaWZkb3duKHN0cnVjdCBuZWlnaF90YWJsZSAqdGJs LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQl3aGlsZSAoKG4gPSAqbnApICE9IE5VTEwpIHsK IAkJCWlmICghZGV2IHx8IG4tPmRldiA9PSBkZXYpIHsKIAkJCQkqbnAgPSBuLT5uZXh0OwotCQkJ CWlmICh0YmwtPnBkZXN0cnVjdG9yKQotCQkJCQl0YmwtPnBkZXN0cnVjdG9yKG4pOwotCQkJCWlm IChuLT5kZXYpCi0JCQkJCWRldl9wdXQobi0+ZGV2KTsKLQkJCQlrZnJlZShuKTsKKwkJCQluLT5u ZXh0ID0gZnJlZWxpc3Q7CisJCQkJZnJlZWxpc3QgPSBuOwogCQkJCWNvbnRpbnVlOwogCQkJfQog CQkJbnAgPSAmbi0+bmV4dDsKIAkJfQogCX0KKwl3cml0ZV91bmxvY2tfYmgoJnRibC0+bG9jayk7 CisJd2hpbGUgKChuID0gZnJlZWxpc3QpKSB7CisJCWZyZWVsaXN0ID0gbi0+bmV4dDsKKwkJbi0+ bmV4dCA9IE5VTEw7CisJCWlmICh0YmwtPnBkZXN0cnVjdG9yKQorCQkJdGJsLT5wZGVzdHJ1Y3Rv cihuKTsKKwkJaWYgKG4tPmRldikKKwkJCWRldl9wdXQobi0+ZGV2KTsKKwkJa2ZyZWUobik7CisJ fQogCXJldHVybiAtRU5PRU5UOwogfQogCi0tIAoyLjE0LjMKCgpGcm9tIDMwMWNkMmU4OTAxNjg4 ODZlNmFhZjVjNDEyMmM1YTk2ZTAxZjQyNTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IE1heGltZSBDaGV2YWxsaWVyIDxtYXhpbWUuY2hldmFsbGllckBib290bGluLmNvbT4KRGF0ZTog V2VkLCAxOCBBcHIgMjAxOCAxMToxNDo0NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAvNTJdIG5l dDogbXZwcDI6IEZpeCBETUEgYWRkcmVzcyBtYXNrIHNpemUKClsgVXBzdHJlYW0gY29tbWl0IGRh NDJiYjI3MTMwNWQ2OGRmNmNiZjk5ZWVkOTA1NDJmMWYxZWUxYzkgXQoKUFB2MiBUWC9SWCBkZXNj cmlwdG9ycyB1c2VzIDQwYml0cyBETUEgYWRkcmVzc2VzLCBidXQgNDEgYml0cyBtYXNrcyB3ZXJl CnVzZWQgKEdFTk1BU0tfVUxMKDQwLCAwKSkuCgpUaGlzIGNvbW1pdCBmaXhlcyB0aGF0IGJ5IHVz aW5nIHRoZSBjb3JyZWN0IG1hc2suCgpGaXhlczogZTdjNTM1OWYyZWVkICgibmV0OiBtdnBwMjog aW50cm9kdWNlIFBQdjIuMiBIVyBkZXNjcmlwdG9ycyBhbmQgYWRhcHQgYWNjZXNzb3JzIikKU2ln bmVkLW9mZi1ieTogTWF4aW1lIENoZXZhbGxpZXIgPG1heGltZS5jaGV2YWxsaWVyQGJvb3RsaW4u Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi5jIHwgMTIgKysrKysrKy0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIuYwppbmRleCA1YTE2NjhjZGI0NjEuLjdmMTA4M2Nl MjNkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIuYwpAQCAtODM4LDYgKzgzOCw4 IEBAIGVudW0gbXZwcDJfYm1fdHlwZSB7CiAKICNkZWZpbmUgTVZQUDJfTUlCX0NPVU5URVJTX1NU QVRTX0RFTEFZCQkoMSAqIEhaKQogCisjZGVmaW5lIE1WUFAyX0RFU0NfRE1BX01BU0sJRE1BX0JJ VF9NQVNLKDQwKQorCiAvKiBEZWZpbml0aW9ucyAqLwogCiAvKiBTaGFyZWQgUGFja2V0IFByb2Nl c3NvciByZXNvdXJjZXMgKi8KQEAgLTEzMzYsNyArMTMzOCw3IEBAIHN0YXRpYyBkbWFfYWRkcl90 IG12cHAyX3R4ZGVzY19kbWFfYWRkcl9nZXQoc3RydWN0IG12cHAyX3BvcnQgKnBvcnQsCiAJaWYg KHBvcnQtPnByaXYtPmh3X3ZlcnNpb24gPT0gTVZQUDIxKQogCQlyZXR1cm4gdHhfZGVzYy0+cHAy MS5idWZfZG1hX2FkZHI7CiAJZWxzZQotCQlyZXR1cm4gdHhfZGVzYy0+cHAyMi5idWZfZG1hX2Fk ZHJfcHRwICYgR0VOTUFTS19VTEwoNDAsIDApOworCQlyZXR1cm4gdHhfZGVzYy0+cHAyMi5idWZf ZG1hX2FkZHJfcHRwICYgTVZQUDJfREVTQ19ETUFfTUFTSzsKIH0KIAogc3RhdGljIHZvaWQgbXZw cDJfdHhkZXNjX2RtYV9hZGRyX3NldChzdHJ1Y3QgbXZwcDJfcG9ydCAqcG9ydCwKQEAgLTEzNTQs NyArMTM1Niw3IEBAIHN0YXRpYyB2b2lkIG12cHAyX3R4ZGVzY19kbWFfYWRkcl9zZXQoc3RydWN0 IG12cHAyX3BvcnQgKnBvcnQsCiAJfSBlbHNlIHsKIAkJdTY0IHZhbCA9ICh1NjQpYWRkcjsKIAot CQl0eF9kZXNjLT5wcDIyLmJ1Zl9kbWFfYWRkcl9wdHAgJj0gfkdFTk1BU0tfVUxMKDQwLCAwKTsK KwkJdHhfZGVzYy0+cHAyMi5idWZfZG1hX2FkZHJfcHRwICY9IH5NVlBQMl9ERVNDX0RNQV9NQVNL OwogCQl0eF9kZXNjLT5wcDIyLmJ1Zl9kbWFfYWRkcl9wdHAgfD0gdmFsOwogCQl0eF9kZXNjLT5w cDIyLnBhY2tldF9vZmZzZXQgPSBvZmZzZXQ7CiAJfQpAQCAtMTQxNCw3ICsxNDE2LDcgQEAgc3Rh dGljIGRtYV9hZGRyX3QgbXZwcDJfcnhkZXNjX2RtYV9hZGRyX2dldChzdHJ1Y3QgbXZwcDJfcG9y dCAqcG9ydCwKIAlpZiAocG9ydC0+cHJpdi0+aHdfdmVyc2lvbiA9PSBNVlBQMjEpCiAJCXJldHVy biByeF9kZXNjLT5wcDIxLmJ1Zl9kbWFfYWRkcjsKIAllbHNlCi0JCXJldHVybiByeF9kZXNjLT5w cDIyLmJ1Zl9kbWFfYWRkcl9rZXlfaGFzaCAmIEdFTk1BU0tfVUxMKDQwLCAwKTsKKwkJcmV0dXJu IHJ4X2Rlc2MtPnBwMjIuYnVmX2RtYV9hZGRyX2tleV9oYXNoICYgTVZQUDJfREVTQ19ETUFfTUFT SzsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgbXZwcDJfcnhkZXNjX2Nvb2tpZV9nZXQoc3Ry dWN0IG12cHAyX3BvcnQgKnBvcnQsCkBAIC0xNDIzLDcgKzE0MjUsNyBAQCBzdGF0aWMgdW5zaWdu ZWQgbG9uZyBtdnBwMl9yeGRlc2NfY29va2llX2dldChzdHJ1Y3QgbXZwcDJfcG9ydCAqcG9ydCwK IAlpZiAocG9ydC0+cHJpdi0+aHdfdmVyc2lvbiA9PSBNVlBQMjEpCiAJCXJldHVybiByeF9kZXNj LT5wcDIxLmJ1Zl9jb29raWU7CiAJZWxzZQotCQlyZXR1cm4gcnhfZGVzYy0+cHAyMi5idWZfY29v a2llX21pc2MgJiBHRU5NQVNLX1VMTCg0MCwgMCk7CisJCXJldHVybiByeF9kZXNjLT5wcDIyLmJ1 Zl9jb29raWVfbWlzYyAmIE1WUFAyX0RFU0NfRE1BX01BU0s7CiB9CiAKIHN0YXRpYyBzaXplX3Qg bXZwcDJfcnhkZXNjX3NpemVfZ2V0KHN0cnVjdCBtdnBwMl9wb3J0ICpwb3J0LApAQCAtODM0Nyw3 ICs4MzQ5LDcgQEAgc3RhdGljIGludCBtdnBwMl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQogCX0KIAogCWlmIChwcml2LT5od192ZXJzaW9uID09IE1WUFAyMikgewotCQllcnIg PSBkbWFfc2V0X21hc2soJnBkZXYtPmRldiwgRE1BX0JJVF9NQVNLKDQwKSk7CisJCWVyciA9IGRt YV9zZXRfbWFzaygmcGRldi0+ZGV2LCBNVlBQMl9ERVNDX0RNQV9NQVNLKTsKIAkJaWYgKGVycikK IAkJCWdvdG8gZXJyX21nX2NsazsKIAkJLyogU2FkbHksIHRoZSBCTSBwb29scyBhbGwgc2hhcmUg dGhlIHNhbWUgcmVnaXN0ZXIgdG8KLS0gCjIuMTQuMwoKCkZyb20gZDMzMzc0ODMzZThmOTU1Njkw NGE0ZTEzZWQyNmYxMjU5YWU5M2NlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGF3 ZWwgRGVtYmlja2kgPHBhd2VsZGVtYmlja2lAZ21haWwuY29tPgpEYXRlOiBXZWQsIDE4IEFwciAy MDE4IDE2OjAzOjI0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMS81Ml0gbmV0OiBxbWlfd3dhbjog YWRkIFdpc3Ryb24gTmV3ZWIgRDE5UTEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK ClsgVXBzdHJlYW0gY29tbWl0IDRlYzdlYjNmZjZlYjVjOWFmM2E4NDI4OGE4ZDgwOGE4NTdmYmMy MmIgXQoKVGhpcyBtb2RlbSBpcyBlbWJlZGRlZCBvbiBkbGluayBkd3ItOTYwIHJvdXRlci4KVGhl IG9lbSBjb25maWd1cmF0aW9uIHN0YXRlczoKClQ6IEJ1cz0wMSBMZXY9MDEgUHJudD0wMSBQb3J0 PTAwIENudD0wMSBEZXYjPSAyIFNwZD00ODAgTXhDaD0gMApEOiBWZXI9IDIuMTAgQ2xzPTAwKD5p ZmMgKSBTdWI9MDAgUHJvdD0wMCBNeFBTPTY0ICNDZmdzPSAxClA6IFZlbmRvcj0xNDM1IFByb2RJ RD1kMTkxIFJldj1mZi5mZgpTOiBNYW51ZmFjdHVyZXI9QW5kcm9pZApTOiBQcm9kdWN0PUFuZHJv aWQKUzogU2VyaWFsTnVtYmVyPTAxMjM0NTY3ODlBQkNERUYKQzoqICNJZnM9IDYgQ2ZnIz0gMSBB dHI9ODAgTXhQd3I9NTAwbUEKSToqIElmIz0gMCBBbHQ9IDAgI0VQcz0gMiBDbHM9ZmYodmVuZC4p IFN1Yj1mZiBQcm90PWZmIERyaXZlcj0obm9uZSkKRTogQWQ9ODEoSSkgQXRyPTAyKEJ1bGspIE14 UFM9IDUxMiBJdmw9MG1zCkU6IEFkPTAxKE8pIEF0cj0wMihCdWxrKSBNeFBTPSA1MTIgSXZsPTBt cwpJOiogSWYjPSAxIEFsdD0gMCAjRVBzPSAyIENscz1mZih2ZW5kLikgU3ViPTQyIFByb3Q9MDEg RHJpdmVyPShub25lKQpFOiBBZD0wMihPKSBBdHI9MDIoQnVsaykgTXhQUz0gNTEyIEl2bD0wbXMK RTogQWQ9ODIoSSkgQXRyPTAyKEJ1bGspIE14UFM9IDUxMiBJdmw9MG1zCkk6KiBJZiM9IDIgQWx0 PSAwICNFUHM9IDMgQ2xzPWZmKHZlbmQuKSBTdWI9MDAgUHJvdD0wMCBEcml2ZXI9KG5vbmUpCkU6 IEFkPTg0KEkpIEF0cj0wMyhJbnQuKSBNeFBTPSAxMCBJdmw9MzJtcwpFOiBBZD04MyhJKSBBdHI9 MDIoQnVsaykgTXhQUz0gNTEyIEl2bD0wbXMKRTogQWQ9MDMoTykgQXRyPTAyKEJ1bGspIE14UFM9 IDUxMiBJdmw9MG1zCkk6KiBJZiM9IDMgQWx0PSAwICNFUHM9IDMgQ2xzPWZmKHZlbmQuKSBTdWI9 MDAgUHJvdD0wMCBEcml2ZXI9KG5vbmUpCkU6IEFkPTg2KEkpIEF0cj0wMyhJbnQuKSBNeFBTPSAx MCBJdmw9MzJtcwpFOiBBZD04NShJKSBBdHI9MDIoQnVsaykgTXhQUz0gNTEyIEl2bD0wbXMKRTog QWQ9MDQoTykgQXRyPTAyKEJ1bGspIE14UFM9IDUxMiBJdmw9MG1zCkk6KiBJZiM9IDQgQWx0PSAw ICNFUHM9IDMgQ2xzPWZmKHZlbmQuKSBTdWI9ZmYgUHJvdD1mZiBEcml2ZXI9cW1pX3d3YW4KRTog QWQ9ODgoSSkgQXRyPTAzKEludC4pIE14UFM9IDggSXZsPTMybXMKRTogQWQ9ODcoSSkgQXRyPTAy KEJ1bGspIE14UFM9IDUxMiBJdmw9MG1zCkU6IEFkPTA1KE8pIEF0cj0wMihCdWxrKSBNeFBTPSA1 MTIgSXZsPTBtcwpJOiogSWYjPSA1IEFsdD0gMCAjRVBzPSAyIENscz0wOChzdG9yLikgU3ViPTA2 IFByb3Q9NTAgRHJpdmVyPShub25lKQpFOiBBZD04OShJKSBBdHI9MDIoQnVsaykgTXhQUz0gNTEy IEl2bD0wbXMKRTogQWQ9MDYoTykgQXRyPTAyKEJ1bGspIE14UFM9IDUxMiBJdmw9MTI1dXMKClRl c3RlZCBvbiBvcGVud3J0IGRpc3RyaWJ1dGlvbgoKU2lnbmVkLW9mZi1ieTogUGF3ZWwgRGVtYmlj a2kgPHBhd2VsZGVtYmlja2lAZ21haWwuY29tPgpBY2tlZC1ieTogQmrDuHJuIE1vcmsgPGJqb3Ju QG1vcmsubm8+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyB8IDEgKwogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2Fu LmMgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwppbmRleCBjYTA2NmI3ODVlOWYuLmM4NTNl NzQxMGY1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKKysrIGIvZHJp dmVycy9uZXQvdXNiL3FtaV93d2FuLmMKQEAgLTExMDcsNiArMTEwNyw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBwcm9kdWN0c1tdID0gewogCXtRTUlfRklYRURfSU5URigw eDE0MzUsIDB4ZDE4MSwgMyl9LAkvKiBXaXN0cm9uIE5lV2ViIEQxOFExICovCiAJe1FNSV9GSVhF RF9JTlRGKDB4MTQzNSwgMHhkMTgxLCA0KX0sCS8qIFdpc3Ryb24gTmVXZWIgRDE4UTEgKi8KIAl7 UU1JX0ZJWEVEX0lOVEYoMHgxNDM1LCAweGQxODEsIDUpfSwJLyogV2lzdHJvbiBOZVdlYiBEMThR MSAqLworCXtRTUlfRklYRURfSU5URigweDE0MzUsIDB4ZDE5MSwgNCl9LAkvKiBXaXN0cm9uIE5l V2ViIEQxOVExICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MTZkOCwgMHg2MDAzLCAwKX0sCS8qIENN T1RlY2ggNjAwMyAqLwogCXtRTUlfRklYRURfSU5URigweDE2ZDgsIDB4NjAwNywgMCl9LAkvKiBD TU9UZWNoIENIRS02MjhTICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MTZkOCwgMHg2MDA4LCAwKX0s CS8qIENNT1RlY2ggQ01VLTMwMSAqLwotLSAKMi4xNC4zCgoKRnJvbSBhMWFlMTA3MWNjODMzNzgy YzJkMTFjMDM0MzBmMGFjMWRiYTQwYjc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBV cnN1bGEgQnJhdW4gPHVicmF1bkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6IFRodSwgMTkgQXBy IDIwMTggMTU6NTY6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzUyXSBuZXQvc21jOiBmaXgg c2h1dGRvd24gaW4gc3RhdGUgU01DX0xJU1RFTgoKWyBVcHN0cmVhbSBjb21taXQgMTI1NWZjYjJh NjU1ZjA1ZTAyZjNhNzQ2NzVhNmQ2NTI1ZjE4N2FmZCBdCgpDYWxsaW5nIHNodXRkb3duIHdpdGgg U0hVVF9SRCBhbmQgU0hVVF9SRFdSIGZvciBhIGxpc3RlbmluZyBTTUMgc29ja2V0CmNyYXNoZXMs IGJlY2F1c2UKICAgY29tbWl0IDEyN2Y0OTcwNTgyMyAoIm5ldC9zbWM6IHJlbGVhc2UgY2xjc29j ayBmcm9tIHRjcF9saXN0ZW5fd29ya2VyIikKcmVsZWFzZXMgdGhlIGludGVybmFsIGNsY3NvY2sg aW4gc21jX2Nsb3NlX2FjdGl2ZSgpIGFuZCBzZXRzIHNtYy0+Y2xjc29jawp0byBOVUxMLgpGb3Ig U0hVVF9SRCB0aGUgc21jX2Nsb3NlX2FjdGl2ZSgpIGNhbGwgaXMgcmVtb3ZlZC4KRm9yIFNIVVRf UkRXUiB0aGUga2VybmVsX3NvY2tfc2h1dGRvd24oKSBjYWxsIGlzIG9taXR0ZWQsIHNpbmNlIHRo ZQpjbGNzb2NrIGlzIGFscmVhZHkgcmVsZWFzZWQuCgpGaXhlczogMTI3ZjQ5NzA1ODIzICgibmV0 L3NtYzogcmVsZWFzZSBjbGNzb2NrIGZyb20gdGNwX2xpc3Rlbl93b3JrZXIiKQpTaWduZWQtb2Zm LWJ5OiBVcnN1bGEgQnJhdW4gPHVicmF1bkBsaW51eC52bmV0LmlibS5jb20+ClJlcG9ydGVkLWJ5 OiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc21j L2FmX3NtYy5jIHwgMTAgKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc21jL2FmX3NtYy5jIGIvbmV0L3Nt Yy9hZl9zbWMuYwppbmRleCAxZTBkNzgwODU1YzMuLmFmZDVhOTM1YmJjYiAxMDA2NDQKLS0tIGEv bmV0L3NtYy9hZl9zbWMuYworKysgYi9uZXQvc21jL2FmX3NtYy5jCkBAIC0xMjU0LDE0ICsxMjU0 LDEyIEBAIHN0YXRpYyBpbnQgc21jX3NodXRkb3duKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBo b3cpCiAJCXJjID0gc21jX2Nsb3NlX3NodXRkb3duX3dyaXRlKHNtYyk7CiAJCWJyZWFrOwogCWNh c2UgU0hVVF9SRDoKLQkJaWYgKHNrLT5za19zdGF0ZSA9PSBTTUNfTElTVEVOKQotCQkJcmMgPSBz bWNfY2xvc2VfYWN0aXZlKHNtYyk7Ci0JCWVsc2UKLQkJCXJjID0gMDsKLQkJCS8qIG5vdGhpbmcg bW9yZSB0byBkbyBiZWNhdXNlIHBlZXIgaXMgbm90IGludm9sdmVkICovCisJCXJjID0gMDsKKwkJ Lyogbm90aGluZyBtb3JlIHRvIGRvIGJlY2F1c2UgcGVlciBpcyBub3QgaW52b2x2ZWQgKi8KIAkJ YnJlYWs7CiAJfQotCXJjMSA9IGtlcm5lbF9zb2NrX3NodXRkb3duKHNtYy0+Y2xjc29jaywgaG93 KTsKKwlpZiAoc21jLT5jbGNzb2NrKQorCQlyYzEgPSBrZXJuZWxfc29ja19zaHV0ZG93bihzbWMt PmNsY3NvY2ssIGhvdyk7CiAJLyogbWFwIHNvY2tfc2h1dGRvd25fY21kIGNvbnN0YW50cyB0byBz a19zaHV0ZG93biB2YWx1ZSByYW5nZSAqLwogCXNrLT5za19zaHV0ZG93biB8PSBob3cgKyAxOwog Ci0tIAoyLjE0LjMKCgpGcm9tIGRlNTA4ZTllODNmNzU4ZmVmYTBmMzNiOGMxMzhkOWJmMzJmNWM0 ODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvc2UgQWJyZXUgPEpvc2UuQWJyZXVA c3lub3BzeXMuY29tPgpEYXRlOiBXZWQsIDE4IEFwciAyMDE4IDEwOjU3OjU1ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAxMy81Ml0gbmV0OiBzdG1tYWM6IERpc2FibGUgQUNTIEZlYXR1cmUgZm9yIEdN QUMgPj0gNAoKWyBVcHN0cmVhbSBjb21taXQgNTY1MDIwYWFlZWJmYTdjOGIzZWMwNzdiZWUzOGY0 YzE1YWNjOTkwNSBdCgpBQ1MgRmVhdHVyZSBpcyBjdXJyZW50bHkgZW5hYmxlZCBmb3IgR01BQyA+ PSA0IGJ1dCB0aGUgbGxjX3NuYXAgc3RhdHVzCmlzIG5ldmVyIGNoZWNrZWQgaW4gZGVzY3JpcHRv ciByeF9zdGF0dXMgY2FsbGJhY2suIFRoaXMgd2lsbCBjYXVzZQpzdG1tYWMgdG8gYWx3YXlzIHN0 cmlwIHBhY2tldHMgZXZlbiB0aGF0IEFDUyBmZWF0dXJlIGlzIGFscmVhZHkKc3RyaXBwaW5nIHRo ZW0uCgpMZXRzIGJlIHNhZmUgYW5kIGRpc2FibGUgdGhlIEFDUyBmZWF0dXJlIGZvciBHTUFDID49 IDQgYW5kIGFsd2F5cyBzdHJpcAp0aGUgcGFja2V0cyBmb3IgdGhpcyBHTUFDIHZlcnNpb24uCgpG aXhlczogNDc3Mjg2YjUzZjU1ICgic3RtbWFjOiBhZGQgR01BQzQgY29yZSBzdXBwb3J0IikKU2ln bmVkLW9mZi1ieTogSm9zZSBBYnJldSA8am9hYnJldUBzeW5vcHN5cy5jb20+CkNjOiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkNjOiBKb2FvIFBpbnRvIDxqcGludG9Ac3lu b3BzeXMuY29tPgpDYzogR2l1c2VwcGUgQ2F2YWxsYXJvIDxwZXBwZS5jYXZhbGxhcm9Ac3QuY29t PgpDYzogQWxleGFuZHJlIFRvcmd1ZSA8YWxleGFuZHJlLnRvcmd1ZUBzdC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzQuaCAgICAgIHwgMiArLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuYyB8IDcgLS0tLS0tLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyB8IDcgKysr KysrLQogMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0Lmgg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzQuaAppbmRleCA3NzYx YTI2ZWM5YzUuLmU3NTY1NDE2NjM5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvZHdtYWM0LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNy by9zdG1tYWMvZHdtYWM0LmgKQEAgLTM0Myw3ICszNDMsNyBAQCBlbnVtIHBvd2VyX2V2ZW50IHsK ICNkZWZpbmUgTVRMX1JYX09WRVJGTE9XX0lOVAkJQklUKDE2KQogCiAvKiBEZWZhdWx0IG9wZXJh dGluZyBtb2RlIG9mIHRoZSBNQUMgKi8KLSNkZWZpbmUgR01BQ19DT1JFX0lOSVQgKEdNQUNfQ09O RklHX0pEIHwgR01BQ19DT05GSUdfUFMgfCBHTUFDX0NPTkZJR19BQ1MgfCBcCisjZGVmaW5lIEdN QUNfQ09SRV9JTklUIChHTUFDX0NPTkZJR19KRCB8IEdNQUNfQ09ORklHX1BTIHwgXAogCQkJR01B Q19DT05GSUdfQkUgfCBHTUFDX0NPTkZJR19EQ1JTKQogCiAvKiBUbyBkdW1wIHRoZSBjb3JlIHJl Z3MgZXhjbHVkaW5nICB0aGUgQWRkcmVzcyBSZWdpc3RlcnMgKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jCmluZGV4IDYzNzk1ZWNhZmM4 ZC4uMjZkZmI3NWU5MjdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9kd21hYzRfY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL2R3bWFjNF9jb3JlLmMKQEAgLTMwLDEzICszMCw2IEBAIHN0YXRpYyB2b2lkIGR3bWFj NF9jb3JlX2luaXQoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsCiAKIAl2YWx1ZSB8PSBHTUFD X0NPUkVfSU5JVDsKIAotCS8qIENsZWFyIEFDUyBiaXQgYmVjYXVzZSBFdGhlcm5ldCBzd2l0Y2gg dGFnZ2luZyBmb3JtYXRzIHN1Y2ggYXMKLQkgKiBCcm9hZGNvbSB0YWdzIGNhbiBsb29rIGxpa2Ug aW52YWxpZCBMTEMvU05BUCBwYWNrZXRzIGFuZCBjYXVzZSB0aGUKLQkgKiBoYXJkd2FyZSB0byB0 cnVuY2F0ZSBwYWNrZXRzIG9uIHJlY2VwdGlvbi4KLQkgKi8KLQlpZiAobmV0ZGV2X3VzZXNfZHNh KGRldikpCi0JCXZhbHVlICY9IH5HTUFDX0NPTkZJR19BQ1M7Ci0KIAlpZiAobXR1ID4gMTUwMCkK IAkJdmFsdWUgfD0gR01BQ19DT05GSUdfMks7CiAJaWYgKG10dSA+IDIwMDApCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwppbmRleCA3YWQ4 NDE0MzRlYzguLjNlYTM0M2I0NWQ5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9z dG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCkBAIC0zNDM1LDggKzM0MzUsMTMgQEAgc3RhdGlj IGludCBzdG1tYWNfcngoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBpbnQgbGltaXQsIHUzMiBx dWV1ZSkKIAogCQkJLyogQUNTIGlzIHNldDsgR01BQyBjb3JlIHN0cmlwcyBQQUQvRkNTIGZvciBJ RUVFIDgwMi4zCiAJCQkgKiBUeXBlIGZyYW1lcyAoTExDL0xMQy1TTkFQKQorCQkJICoKKwkJCSAq IGxsY19zbmFwIGlzIG5ldmVyIGNoZWNrZWQgaW4gR01BQyA+PSA0LCBzbyB0aGlzIEFDUworCQkJ ICogZmVhdHVyZSBpcyBhbHdheXMgZGlzYWJsZWQgYW5kIHBhY2tldHMgbmVlZCB0byBiZQorCQkJ ICogc3RyaXBwZWQgbWFudWFsbHkuCiAJCQkgKi8KLQkJCWlmICh1bmxpa2VseShzdGF0dXMgIT0g bGxjX3NuYXApKQorCQkJaWYgKHVubGlrZWx5KHByaXYtPnN5bm9wc3lzX2lkID49IERXTUFDX0NP UkVfNF8wMCkgfHwKKwkJCSAgICB1bmxpa2VseShzdGF0dXMgIT0gbGxjX3NuYXApKQogCQkJCWZy YW1lX2xlbiAtPSBFVEhfRkNTX0xFTjsKIAogCQkJaWYgKG5ldGlmX21zZ19yeF9zdGF0dXMocHJp dikpIHsKLS0gCjIuMTQuMwoKCkZyb20gNDk4NTA3YWU0YjkyYTc4M2JlNjgwZWY5ZGYzZDEwYTcz N2E4MjUzYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2lsbGVtIGRlIEJydWlqbiA8 d2lsbGVtYkBnb29nbGUuY29tPgpEYXRlOiBNb24sIDIzIEFwciAyMDE4IDE3OjM3OjAzIC0wNDAw ClN1YmplY3Q6IFtQQVRDSCAxNC81Ml0gcGFja2V0OiBmaXggYml0ZmllbGQgdXBkYXRlIHJhY2UK ClsgVXBzdHJlYW0gY29tbWl0IGE2MzYxZjBjYTRiMjU0NjBmMmNkZjMyMzVlYmU4MTE1ZjYyMjkw MWUgXQoKVXBkYXRlcyB0byB0aGUgYml0ZmllbGRzIGluIHN0cnVjdCBwYWNrZXRfc29jayBhcmUg bm90IGF0b21pYy4KU2VyaWFsaXplIHRoZXNlIHJlYWQtbW9kaWZ5LXdyaXRlIGN5Y2xlcy4KCk1v dmUgcG8tPnJ1bm5pbmcgaW50byBhIHNlcGFyYXRlIHZhcmlhYmxlLiBJdHMgd3JpdGVzIGFyZSBw cm90ZWN0ZWQgYnkKcG8tPmJpbmRfbG9jayAoZXhjZXB0IGZvciBvbmUgc3RhcnR1cCBjYXNlIGF0 IHBhY2tldF9jcmVhdGUpLiBBbHNvCnJlcGxhY2UgYSB0ZXh0dWFsIHByZWNvbmRpdGlvbiB3YXJu aW5nIHdpdGggbG9ja2RlcCBhbm5vdGF0aW9uLgoKQWxsIG90aGVycyBhcmUgc2V0IG9ubHkgaW4g cGFja2V0X3NldHNvY2tvcHQuIFNlcmlhbGl6ZSB0aGVzZQp1cGRhdGVzIGJ5IGhvbGRpbmcgdGhl IHNvY2tldCBsb2NrLiBBbmFsb2dvdXMgdG8gb3RoZXIgZmllbGQgdXBkYXRlcywKYWxzbyBob2xk IHRoZSBsb2NrIHdoZW4gdGVzdGluZyB3aGV0aGVyIGEgcmluZyBpcyBhY3RpdmUgKHBnX3ZlYyku CgpGaXhlczogOGRjNDE5NDQ3NDE1ICgiW1BBQ0tFVF06IEFkZCBvcHRpb25hbCBjaGVja3N1bSBj b21wdXRhdGlvbiBmb3IgcmVjdm1zZyIpClJlcG9ydGVkLWJ5OiBEYWVSeW9uZyBKZW9uZyA8dGhy ZWVlYXJjYXRAZ21haWwuY29tPgpSZXBvcnRlZC1ieTogQnlvdW5neW91bmcgTGVlIDxieW91bmd5 b3VuZ0BwdXJkdWUuZWR1PgpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1i QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgNjAgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIG5ldC9wYWNrZXQvaW50ZXJuYWwu aCAgfCAxMCArKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMjEg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9w YWNrZXQvYWZfcGFja2V0LmMKaW5kZXggMTllNTg3NWZjZTg5Li4zYjQzYjFmY2Q2MTggMTAwNjQ0 Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQu YwpAQCAtMzI5LDExICszMjksMTEgQEAgc3RhdGljIHZvaWQgcGFja2V0X3BpY2tfdHhfcXVldWUo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlza2Jfc2V0X3F1 ZXVlX21hcHBpbmcoc2tiLCBxdWV1ZV9pbmRleCk7CiB9CiAKLS8qIHJlZ2lzdGVyX3Byb3RfaG9v ayBtdXN0IGJlIGludm9rZWQgd2l0aCB0aGUgcG8tPmJpbmRfbG9jayBoZWxkLAorLyogX19yZWdp c3Rlcl9wcm90X2hvb2sgbXVzdCBiZSBpbnZva2VkIHRocm91Z2ggcmVnaXN0ZXJfcHJvdF9ob29r CiAgKiBvciBmcm9tIGEgY29udGV4dCBpbiB3aGljaCBhc3luY2hyb25vdXMgYWNjZXNzZXMgdG8g dGhlIHBhY2tldAogICogc29ja2V0IGlzIG5vdCBwb3NzaWJsZSAocGFja2V0X2NyZWF0ZSgpKS4K ICAqLwotc3RhdGljIHZvaWQgcmVnaXN0ZXJfcHJvdF9ob29rKHN0cnVjdCBzb2NrICpzaykKK3N0 YXRpYyB2b2lkIF9fcmVnaXN0ZXJfcHJvdF9ob29rKHN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1 Y3QgcGFja2V0X3NvY2sgKnBvID0gcGt0X3NrKHNrKTsKIApAQCAtMzQ4LDggKzM0OCwxMyBAQCBz dGF0aWMgdm9pZCByZWdpc3Rlcl9wcm90X2hvb2soc3RydWN0IHNvY2sgKnNrKQogCX0KIH0KIAot LyogeyxfX311bnJlZ2lzdGVyX3Byb3RfaG9vaygpIG11c3QgYmUgaW52b2tlZCB3aXRoIHRoZSBw by0+YmluZF9sb2NrCi0gKiBoZWxkLiAgIElmIHRoZSBzeW5jIHBhcmFtZXRlciBpcyB0cnVlLCB3 ZSB3aWxsIHRlbXBvcmFyaWx5IGRyb3AKK3N0YXRpYyB2b2lkIHJlZ2lzdGVyX3Byb3RfaG9vayhz dHJ1Y3Qgc29jayAqc2spCit7CisJbG9ja2RlcF9hc3NlcnRfaGVsZF9vbmNlKCZwa3Rfc2soc2sp LT5iaW5kX2xvY2spOworCV9fcmVnaXN0ZXJfcHJvdF9ob29rKHNrKTsKK30KKworLyogSWYgdGhl IHN5bmMgcGFyYW1ldGVyIGlzIHRydWUsIHdlIHdpbGwgdGVtcG9yYXJpbHkgZHJvcAogICogdGhl IHBvLT5iaW5kX2xvY2sgYW5kIGRvIGEgc3luY2hyb25pemVfbmV0IHRvIG1ha2Ugc3VyZSBubwog ICogYXN5bmNocm9ub3VzIHBhY2tldCBwcm9jZXNzaW5nIHBhdGhzIHN0aWxsIHJlZmVyIHRvIHRo ZSBlbGVtZW50cwogICogb2YgcG8tPnByb3RfaG9vay4gIElmIHRoZSBzeW5jIHBhcmFtZXRlciBp cyBmYWxzZSwgaXQgaXMgdGhlCkBAIC0zNTksNiArMzY0LDggQEAgc3RhdGljIHZvaWQgX191bnJl Z2lzdGVyX3Byb3RfaG9vayhzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgc3luYykKIHsKIAlzdHJ1Y3Qg cGFja2V0X3NvY2sgKnBvID0gcGt0X3NrKHNrKTsKIAorCWxvY2tkZXBfYXNzZXJ0X2hlbGRfb25j ZSgmcG8tPmJpbmRfbG9jayk7CisKIAlwby0+cnVubmluZyA9IDA7CiAKIAlpZiAocG8tPmZhbm91 dCkKQEAgLTMyNTIsNyArMzI1OSw3IEBAIHN0YXRpYyBpbnQgcGFja2V0X2NyZWF0ZShzdHJ1Y3Qg bmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBwcm90b2NvbCwKIAogCWlmIChwcm90 bykgewogCQlwby0+cHJvdF9ob29rLnR5cGUgPSBwcm90bzsKLQkJcmVnaXN0ZXJfcHJvdF9ob29r KHNrKTsKKwkJX19yZWdpc3Rlcl9wcm90X2hvb2soc2spOwogCX0KIAogCW11dGV4X2xvY2soJm5l dC0+cGFja2V0LnNrbGlzdF9sb2NrKTsKQEAgLTM3MzQsMTIgKzM3NDEsMTggQEAgcGFja2V0X3Nl dHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwgY2hh ciBfX3VzZXIgKm9wdHYKIAogCQlpZiAob3B0bGVuICE9IHNpemVvZih2YWwpKQogCQkJcmV0dXJu IC1FSU5WQUw7Ci0JCWlmIChwby0+cnhfcmluZy5wZ192ZWMgfHwgcG8tPnR4X3JpbmcucGdfdmVj KQotCQkJcmV0dXJuIC1FQlVTWTsKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZ2YWwsIG9wdHZhbCwg c2l6ZW9mKHZhbCkpKQogCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCXBvLT50cF9sb3NzID0gISF2YWw7 Ci0JCXJldHVybiAwOworCisJCWxvY2tfc29jayhzayk7CisJCWlmIChwby0+cnhfcmluZy5wZ192 ZWMgfHwgcG8tPnR4X3JpbmcucGdfdmVjKSB7CisJCQlyZXQgPSAtRUJVU1k7CisJCX0gZWxzZSB7 CisJCQlwby0+dHBfbG9zcyA9ICEhdmFsOworCQkJcmV0ID0gMDsKKwkJfQorCQlyZWxlYXNlX3Nv Y2soc2spOworCQlyZXR1cm4gcmV0OwogCX0KIAljYXNlIFBBQ0tFVF9BVVhEQVRBOgogCXsKQEAg LTM3NTAsNyArMzc2Myw5IEBAIHBhY2tldF9zZXRzb2Nrb3B0KHN0cnVjdCBzb2NrZXQgKnNvY2ss IGludCBsZXZlbCwgaW50IG9wdG5hbWUsIGNoYXIgX191c2VyICpvcHR2CiAJCWlmIChjb3B5X2Zy b21fdXNlcigmdmFsLCBvcHR2YWwsIHNpemVvZih2YWwpKSkKIAkJCXJldHVybiAtRUZBVUxUOwog CisJCWxvY2tfc29jayhzayk7CiAJCXBvLT5hdXhkYXRhID0gISF2YWw7CisJCXJlbGVhc2Vfc29j ayhzayk7CiAJCXJldHVybiAwOwogCX0KIAljYXNlIFBBQ0tFVF9PUklHREVWOgpAQCAtMzc2Miw3 ICszNzc3LDkgQEAgcGFja2V0X3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxl dmVsLCBpbnQgb3B0bmFtZSwgY2hhciBfX3VzZXIgKm9wdHYKIAkJaWYgKGNvcHlfZnJvbV91c2Vy KCZ2YWwsIG9wdHZhbCwgc2l6ZW9mKHZhbCkpKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAKKwkJbG9j a19zb2NrKHNrKTsKIAkJcG8tPm9yaWdkZXYgPSAhIXZhbDsKKwkJcmVsZWFzZV9zb2NrKHNrKTsK IAkJcmV0dXJuIDA7CiAJfQogCWNhc2UgUEFDS0VUX1ZORVRfSERSOgpAQCAtMzc3MSwxNSArMzc4 OCwyMCBAQCBwYWNrZXRfc2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWws IGludCBvcHRuYW1lLCBjaGFyIF9fdXNlciAqb3B0dgogCiAJCWlmIChzb2NrLT50eXBlICE9IFNP Q0tfUkFXKQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCWlmIChwby0+cnhfcmluZy5wZ192ZWMgfHwg cG8tPnR4X3JpbmcucGdfdmVjKQotCQkJcmV0dXJuIC1FQlVTWTsKIAkJaWYgKG9wdGxlbiA8IHNp emVvZih2YWwpKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCWlmIChjb3B5X2Zyb21fdXNlcigmdmFs LCBvcHR2YWwsIHNpemVvZih2YWwpKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCi0JCXBvLT5oYXNf dm5ldF9oZHIgPSAhIXZhbDsKLQkJcmV0dXJuIDA7CisJCWxvY2tfc29jayhzayk7CisJCWlmIChw by0+cnhfcmluZy5wZ192ZWMgfHwgcG8tPnR4X3JpbmcucGdfdmVjKSB7CisJCQlyZXQgPSAtRUJV U1k7CisJCX0gZWxzZSB7CisJCQlwby0+aGFzX3ZuZXRfaGRyID0gISF2YWw7CisJCQlyZXQgPSAw OworCQl9CisJCXJlbGVhc2Vfc29jayhzayk7CisJCXJldHVybiByZXQ7CiAJfQogCWNhc2UgUEFD S0VUX1RJTUVTVEFNUDoKIAl7CkBAIC0zODE3LDExICszODM5LDE3IEBAIHBhY2tldF9zZXRzb2Nr b3B0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsIGNoYXIgX191 c2VyICpvcHR2CiAKIAkJaWYgKG9wdGxlbiAhPSBzaXplb2YodmFsKSkKIAkJCXJldHVybiAtRUlO VkFMOwotCQlpZiAocG8tPnJ4X3JpbmcucGdfdmVjIHx8IHBvLT50eF9yaW5nLnBnX3ZlYykKLQkJ CXJldHVybiAtRUJVU1k7CiAJCWlmIChjb3B5X2Zyb21fdXNlcigmdmFsLCBvcHR2YWwsIHNpemVv Zih2YWwpKSkKIAkJCXJldHVybiAtRUZBVUxUOwotCQlwby0+dHBfdHhfaGFzX29mZiA9ICEhdmFs OworCisJCWxvY2tfc29jayhzayk7CisJCWlmIChwby0+cnhfcmluZy5wZ192ZWMgfHwgcG8tPnR4 X3JpbmcucGdfdmVjKSB7CisJCQlyZXQgPSAtRUJVU1k7CisJCX0gZWxzZSB7CisJCQlwby0+dHBf dHhfaGFzX29mZiA9ICEhdmFsOworCQkJcmV0ID0gMDsKKwkJfQorCQlyZWxlYXNlX3NvY2soc2sp OwogCQlyZXR1cm4gMDsKIAl9CiAJY2FzZSBQQUNLRVRfUURJU0NfQllQQVNTOgpkaWZmIC0tZ2l0 IGEvbmV0L3BhY2tldC9pbnRlcm5hbC5oIGIvbmV0L3BhY2tldC9pbnRlcm5hbC5oCmluZGV4IGEx ZDJiMjMxOWFlOS4uM2JiN2M1ZmIzYmZmIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2ludGVybmFs LmgKKysrIGIvbmV0L3BhY2tldC9pbnRlcm5hbC5oCkBAIC0xMTIsMTAgKzExMiwxMiBAQCBzdHJ1 Y3QgcGFja2V0X3NvY2sgewogCWludAkJCWNvcHlfdGhyZXNoOwogCXNwaW5sb2NrX3QJCWJpbmRf bG9jazsKIAlzdHJ1Y3QgbXV0ZXgJCXBnX3ZlY19sb2NrOwotCXVuc2lnbmVkIGludAkJcnVubmlu ZzoxLAkvKiBwcm90X2hvb2sgaXMgYXR0YWNoZWQqLwotCQkJCWF1eGRhdGE6MSwKKwl1bnNpZ25l ZCBpbnQJCXJ1bm5pbmc7CS8qIGJpbmRfbG9jayBtdXN0IGJlIGhlbGQgKi8KKwl1bnNpZ25lZCBp bnQJCWF1eGRhdGE6MSwJLyogd3JpdGVyIG11c3QgaG9sZCBzb2NrIGxvY2sgKi8KIAkJCQlvcmln ZGV2OjEsCi0JCQkJaGFzX3ZuZXRfaGRyOjE7CisJCQkJaGFzX3ZuZXRfaGRyOjEsCisJCQkJdHBf bG9zczoxLAorCQkJCXRwX3R4X2hhc19vZmY6MTsKIAlpbnQJCQlwcmVzc3VyZTsKIAlpbnQJCQlp ZmluZGV4OwkvKiBib3VuZCBkZXZpY2UJCSovCiAJX19iZTE2CQkJbnVtOwpAQCAtMTI1LDggKzEy Nyw2IEBAIHN0cnVjdCBwYWNrZXRfc29jayB7CiAJZW51bSB0cGFja2V0X3ZlcnNpb25zCXRwX3Zl cnNpb247CiAJdW5zaWduZWQgaW50CQl0cF9oZHJsZW47CiAJdW5zaWduZWQgaW50CQl0cF9yZXNl cnZlOwotCXVuc2lnbmVkIGludAkJdHBfbG9zczoxOwotCXVuc2lnbmVkIGludAkJdHBfdHhfaGFz X29mZjoxOwogCXVuc2lnbmVkIGludAkJdHBfdHN0YW1wOwogCXN0cnVjdCBuZXRfZGV2aWNlIF9f cmN1CSpjYWNoZWRfZGV2OwogCWludAkJCSgqeG1pdCkoc3RydWN0IHNrX2J1ZmYgKnNrYik7Ci0t IAoyLjE0LjMKCgpGcm9tIDY1NzE5YmM0N2ViZDBjNTM2ZTY0OGMzYzI3YTNiMDE1YmMwMzNkOTIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBh bHBoYWxpbmsuZnI+CkRhdGU6IE1vbiwgMjMgQXByIDIwMTggMTY6Mzg6MjcgKzAyMDAKU3ViamVj dDogW1BBVENIIDE1LzUyXSBwcHBvZTogY2hlY2sgc29ja2FkZHIgbGVuZ3RoIGluIHBwcG9lX2Nv bm5lY3QoKQoKWyBVcHN0cmVhbSBjb21taXQgYTQ5ZTJmNWQ1ZmIxNDE4ODQ0NTJkZGI0MjhmNTUx YjEyM2Q0MzZiNSBdCgpXZSBtdXN0IHZhbGlkYXRlIHNvY2thZGRyX2xlbiwgb3RoZXJ3aXNlIHVz ZXJzcGFjZSBjYW4gcGFzcyBmZXdlciBkYXRhCnRoYW4gd2UgZXhwZWN0IGFuZCB3ZSBlbmQgdXAg YWNjZXNzaW5nIGludmFsaWQgZGF0YS4KCkZpeGVzOiAyMjRjZjVhZDE0YzAgKCJwcHA6IE1vdmUg dGhlIFBQUCBkcml2ZXJzIikKUmVwb3J0ZWQtYnk6IHN5emJvdCs0ZjAzYmRmOTJmZGY5ZWY1ZGRh YkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBOYXVs dCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9wcHAvcHBwb2UuYyB8IDQgKysr KwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3BwcC9wcHBvZS5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMKaW5kZXggNWFhNTlmNDFi ZjhjLi43MWUyYWVmNmI3YTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCisr KyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCkBAIC02MjAsNiArNjIwLDEwIEBAIHN0YXRpYyBp bnQgcHBwb2VfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVz ZXJ2YWRkciwKIAlsb2NrX3NvY2soc2spOwogCiAJZXJyb3IgPSAtRUlOVkFMOworCisJaWYgKHNv Y2thZGRyX2xlbiAhPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX3BwcG94KSkKKwkJZ290byBlbmQ7 CisKIAlpZiAoc3AtPnNhX3Byb3RvY29sICE9IFBYX1BST1RPX09FKQogCQlnb3RvIGVuZDsKIAot LSAKMi4xNC4zCgoKRnJvbSBhY2EzODhlN2QxYjAxNTk4Mzc1ZWM5NmU2MmUxZTRmMzVmNTU1MjRj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVu dGVyQG9yYWNsZS5jb20+CkRhdGU6IE1vbiwgMTYgQXByIDIwMTggMTM6MTc6NTAgKzAzMDAKU3Vi amVjdDogW1BBVENIIDE2LzUyXSBSZXZlcnQgIm1hY3NlYzogbWlzc2luZyBkZXZfcHV0KCkgb24g ZXJyb3IgaW4KIG1hY3NlY19uZXdsaW5rKCkiCgpbIFVwc3RyZWFtIGNvbW1pdCBiZDI4ODk5ZGQz NGY5MjgzYzU2N2Y3ZWViMzFiYjU0NmYxMDgyMGI1IF0KClRoaXMgcGF0Y2ggaXMganVzdCB3cm9u Zywgc29ycnkuICBJIHdhcyB0cnlpbmcgdG8gZml4IGEgc3RhdGljIGNoZWNrZXIKd2FybmluZyBh bmQgbWlzcmVhZCB0aGUgY29kZS4gIFRoZSByZWZlcmVuY2UgdGFrZW4gaW4gbWFjc2VjX25ld2xp bmsoKQppcyByZWxlYXNlZCBpbiBtYWNzZWNfZnJlZV9uZXRkZXYoKSB3aGVuIHRoZSBuZXRkZXZp Y2UgaXMgZGVzdHJveWVkLgoKVGhpcyByZXZlcnRzIGNvbW1pdCA1ZGNkODQwMDg4NGNjNGEwNDNh NmQ0NjE3ZTA0MjQ4OWU1ZDU2NmE5LgoKUmVwb3J0ZWQtYnk6IExhdXJhIEFiYm90dCA8bGFiYm90 dEByZWRoYXQuY29tPgpGaXhlczogNWRjZDg0MDA4ODRjICgibWFjc2VjOiBtaXNzaW5nIGRldl9w dXQoKSBvbiBlcnJvciBpbiBtYWNzZWNfbmV3bGluaygpIikKU2lnbmVkLW9mZi1ieTogRGFuIENh cnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpBY2tlZC1ieTogU2FicmluYSBEdWJy b2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9tYWNzZWMuYyB8IDUgKystLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvbWFjc2VjLmMgYi9kcml2ZXJzL25ldC9tYWNzZWMuYwppbmRleCA5 Y2JiMGM4YTg5NmEuLjdkZTg4YjMzZDViOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjc2Vj LmMKKysrIGIvZHJpdmVycy9uZXQvbWFjc2VjLmMKQEAgLTMyNzcsNyArMzI3Nyw3IEBAIHN0YXRp YyBpbnQgbWFjc2VjX25ld2xpbmsoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LAogCiAJZXJyID0gbmV0ZGV2X3VwcGVyX2Rldl9saW5rKHJlYWxfZGV2LCBkZXYsIGV4dGFj ayk7CiAJaWYgKGVyciA8IDApCi0JCWdvdG8gcHV0X2RldjsKKwkJZ290byB1bnJlZ2lzdGVyOwog CiAJLyogbmVlZCB0byBiZSBhbHJlYWR5IHJlZ2lzdGVyZWQgc28gdGhhdCAtPmluaXQgaGFzIHJ1 biBhbmQKIAkgKiB0aGUgTUFDIGFkZHIgaXMgc2V0CkBAIC0zMzE2LDggKzMzMTYsNyBAQCBzdGF0 aWMgaW50IG1hY3NlY19uZXdsaW5rKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwKIAltYWNzZWNfZGVsX2RldihtYWNzZWMpOwogdW5saW5rOgogCW5ldGRldl91cHBlcl9k ZXZfdW5saW5rKHJlYWxfZGV2LCBkZXYpOwotcHV0X2RldjoKLQlkZXZfcHV0KHJlYWxfZGV2KTsK K3VucmVnaXN0ZXI6CiAJdW5yZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsKIAlyZXR1cm4gZXJyOwog fQotLSAKMi4xNC4zCgoKRnJvbSBiMTExNDkxNTNmYjE4YmMxNzcwNDU3MjBiMjUxMDRiMTc2NTVm Nzg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBn bWFpbC5jb20+CkRhdGU6IFRodSwgMTIgQXByIDIwMTggMTQ6MjQ6MzEgKzA4MDAKU3ViamVjdDog W1BBVENIIDE3LzUyXSBzY3RwOiBkbyBub3QgY2hlY2sgcG9ydCBpbiBzY3RwX2luZXQ2X2NtcF9h ZGRyCgpbIFVwc3RyZWFtIGNvbW1pdCAxMDcxZWM5ZDQ1M2EzODAyMzU3OTcxNGI2NGE5NTFhMmZi OTgyMDcxIF0KCnBmLT5jbXBfYWRkcigpIGlzIGNhbGxlZCBiZWZvcmUgYmluZGluZyBhIHY2IGFk ZHJlc3MgdG8gdGhlIHNvY2suIEl0CnNob3VsZCBub3QgY2hlY2sgcG9ydHMsIGxpa2UgaW4gc2N0 cF9pbmV0X2NtcF9hZGRyLgoKQnV0IHNjdHBfaW5ldDZfY21wX2FkZHIgY2hlY2tzIHRoZSBhZGRy IGJ5IGludm9raW5nIGFmKDYpLT5jbXBfYWRkciwKc2N0cF92Nl9jbXBfYWRkciB3aGVyZSBpdCBh bHNvIGNvbXBhcmVzIHRoZSBwb3J0cy4KClRoaXMgd291bGQgY2F1c2UgdGhhdCBzZXRzb2Nrb3B0 KFNDVFBfU09DS09QVF9CSU5EWF9BREQpIGNvdWxkIGJpbmQKbXVsdGlwbGUgZHVwbGljYXRlZCBJ UHY2IGFkZHJlc3NlcyBhZnRlciBDb21taXQgNDBiNGYwZmQ3NGU0ICgic2N0cDoKbGFjayB0aGUg Y2hlY2sgZm9yIHBvcnRzIGluIHNjdHBfdjZfY21wX2FkZHIiKS4KClRoaXMgcGF0Y2ggaXMgdG8g cmVtb3ZlIGFmLT5jbXBfYWRkciBjYWxsZWQgaW4gc2N0cF9pbmV0Nl9jbXBfYWRkciwKYnV0IGRv IHRoZSBwcm9wZXIgY2hlY2sgZm9yIGJvdGggdjYgYWRkcnMgYW5kIHY0bWFwcGVkIGFkZHJzLgoK djEtPnYyOgogIC0gZGVmaW5lIF9fc2N0cF92Nl9jbXBfYWRkciB0byBkbyB0aGUgY29tbW9uIGFk ZHJlc3MgY29tcGFyaXNvbgogICAgdXNlZCBmb3IgYm90aCBwZiBhbmQgYWYgdjYgY21wX2FkZHIu CgpGaXhlczogNDBiNGYwZmQ3NGU0ICgic2N0cDogbGFjayB0aGUgY2hlY2sgZm9yIHBvcnRzIGlu IHNjdHBfdjZfY21wX2FkZHIiKQpSZXBvcnRlZC1ieTogSmlhbndlbiBKaSA8amlqaUByZWRoYXQu Y29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkFja2Vk LWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvaXB2Ni5j IHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvaXB2Ni5jIGIvbmV0L3NjdHAvaXB2Ni5jCmluZGV4IGY2 ZDNkMGMxZTEzMy4uMDdiNjQ3MTlkMWJjIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9pcHY2LmMKKysr IGIvbmV0L3NjdHAvaXB2Ni5jCkBAIC01MjEsNDYgKzUyMSw0OSBAQCBzdGF0aWMgdm9pZCBzY3Rw X3Y2X3RvX2FkZHIodW5pb24gc2N0cF9hZGRyICphZGRyLCBzdHJ1Y3QgaW42X2FkZHIgKnNhZGRy LAogCWFkZHItPnY2LnNpbjZfc2NvcGVfaWQgPSAwOwogfQogCi0vKiBDb21wYXJlIGFkZHJlc3Nl cyBleGFjdGx5LgotICogdjQtbWFwcGVkLXY2IGlzIGFsc28gaW4gY29uc2lkZXJhdGlvbi4KLSAq Lwotc3RhdGljIGludCBzY3RwX3Y2X2NtcF9hZGRyKGNvbnN0IHVuaW9uIHNjdHBfYWRkciAqYWRk cjEsCi0JCQkgICAgY29uc3QgdW5pb24gc2N0cF9hZGRyICphZGRyMikKK3N0YXRpYyBpbnQgX19z Y3RwX3Y2X2NtcF9hZGRyKGNvbnN0IHVuaW9uIHNjdHBfYWRkciAqYWRkcjEsCisJCQkgICAgICBj b25zdCB1bmlvbiBzY3RwX2FkZHIgKmFkZHIyKQogewogCWlmIChhZGRyMS0+c2Euc2FfZmFtaWx5 ICE9IGFkZHIyLT5zYS5zYV9mYW1pbHkpIHsKIAkJaWYgKGFkZHIxLT5zYS5zYV9mYW1pbHkgPT0g QUZfSU5FVCAmJgogCQkgICAgYWRkcjItPnNhLnNhX2ZhbWlseSA9PSBBRl9JTkVUNiAmJgotCQkg ICAgaXB2Nl9hZGRyX3Y0bWFwcGVkKCZhZGRyMi0+djYuc2luNl9hZGRyKSkgewotCQkJaWYgKGFk ZHIyLT52Ni5zaW42X3BvcnQgPT0gYWRkcjEtPnY0LnNpbl9wb3J0ICYmCi0JCQkgICAgYWRkcjIt PnY2LnNpbjZfYWRkci5zNl9hZGRyMzJbM10gPT0KLQkJCSAgICBhZGRyMS0+djQuc2luX2FkZHIu c19hZGRyKQotCQkJCXJldHVybiAxOwotCQl9CisJCSAgICBpcHY2X2FkZHJfdjRtYXBwZWQoJmFk ZHIyLT52Ni5zaW42X2FkZHIpICYmCisJCSAgICBhZGRyMi0+djYuc2luNl9hZGRyLnM2X2FkZHIz MlszXSA9PQorCQkgICAgYWRkcjEtPnY0LnNpbl9hZGRyLnNfYWRkcikKKwkJCXJldHVybiAxOwor CiAJCWlmIChhZGRyMi0+c2Euc2FfZmFtaWx5ID09IEFGX0lORVQgJiYKIAkJICAgIGFkZHIxLT5z YS5zYV9mYW1pbHkgPT0gQUZfSU5FVDYgJiYKLQkJICAgIGlwdjZfYWRkcl92NG1hcHBlZCgmYWRk cjEtPnY2LnNpbjZfYWRkcikpIHsKLQkJCWlmIChhZGRyMS0+djYuc2luNl9wb3J0ID09IGFkZHIy LT52NC5zaW5fcG9ydCAmJgotCQkJICAgIGFkZHIxLT52Ni5zaW42X2FkZHIuczZfYWRkcjMyWzNd ID09Ci0JCQkgICAgYWRkcjItPnY0LnNpbl9hZGRyLnNfYWRkcikKLQkJCQlyZXR1cm4gMTsKLQkJ fQorCQkgICAgaXB2Nl9hZGRyX3Y0bWFwcGVkKCZhZGRyMS0+djYuc2luNl9hZGRyKSAmJgorCQkg ICAgYWRkcjEtPnY2LnNpbjZfYWRkci5zNl9hZGRyMzJbM10gPT0KKwkJICAgIGFkZHIyLT52NC5z aW5fYWRkci5zX2FkZHIpCisJCQlyZXR1cm4gMTsKKwogCQlyZXR1cm4gMDsKIAl9Ci0JaWYgKGFk ZHIxLT52Ni5zaW42X3BvcnQgIT0gYWRkcjItPnY2LnNpbjZfcG9ydCkKLQkJcmV0dXJuIDA7CisK IAlpZiAoIWlwdjZfYWRkcl9lcXVhbCgmYWRkcjEtPnY2LnNpbjZfYWRkciwgJmFkZHIyLT52Ni5z aW42X2FkZHIpKQogCQlyZXR1cm4gMDsKKwogCS8qIElmIHRoaXMgaXMgYSBsaW5rbG9jYWwgYWRk cmVzcywgY29tcGFyZSB0aGUgc2NvcGVfaWQuICovCi0JaWYgKGlwdjZfYWRkcl90eXBlKCZhZGRy MS0+djYuc2luNl9hZGRyKSAmIElQVjZfQUREUl9MSU5LTE9DQUwpIHsKLQkJaWYgKGFkZHIxLT52 Ni5zaW42X3Njb3BlX2lkICYmIGFkZHIyLT52Ni5zaW42X3Njb3BlX2lkICYmCi0JCSAgICAoYWRk cjEtPnY2LnNpbjZfc2NvcGVfaWQgIT0gYWRkcjItPnY2LnNpbjZfc2NvcGVfaWQpKSB7Ci0JCQly ZXR1cm4gMDsKLQkJfQotCX0KKwlpZiAoKGlwdjZfYWRkcl90eXBlKCZhZGRyMS0+djYuc2luNl9h ZGRyKSAmIElQVjZfQUREUl9MSU5LTE9DQUwpICYmCisJICAgIGFkZHIxLT52Ni5zaW42X3Njb3Bl X2lkICYmIGFkZHIyLT52Ni5zaW42X3Njb3BlX2lkICYmCisJICAgIGFkZHIxLT52Ni5zaW42X3Nj b3BlX2lkICE9IGFkZHIyLT52Ni5zaW42X3Njb3BlX2lkKQorCQlyZXR1cm4gMDsKIAogCXJldHVy biAxOwogfQogCisvKiBDb21wYXJlIGFkZHJlc3NlcyBleGFjdGx5LgorICogdjQtbWFwcGVkLXY2 IGlzIGFsc28gaW4gY29uc2lkZXJhdGlvbi4KKyAqLworc3RhdGljIGludCBzY3RwX3Y2X2NtcF9h ZGRyKGNvbnN0IHVuaW9uIHNjdHBfYWRkciAqYWRkcjEsCisJCQkgICAgY29uc3QgdW5pb24gc2N0 cF9hZGRyICphZGRyMikKK3sKKwlyZXR1cm4gX19zY3RwX3Y2X2NtcF9hZGRyKGFkZHIxLCBhZGRy MikgJiYKKwkgICAgICAgYWRkcjEtPnY2LnNpbjZfcG9ydCA9PSBhZGRyMi0+djYuc2luNl9wb3J0 OworfQorCiAvKiBJbml0aWFsaXplIGFkZHIgc3RydWN0IHRvIElOQUREUl9BTlkuICovCiBzdGF0 aWMgdm9pZCBzY3RwX3Y2X2luYWRkcl9hbnkodW5pb24gc2N0cF9hZGRyICphZGRyLCBfX2JlMTYg cG9ydCkKIHsKQEAgLTg0Niw4ICs4NDksOCBAQCBzdGF0aWMgaW50IHNjdHBfaW5ldDZfY21wX2Fk ZHIoY29uc3QgdW5pb24gc2N0cF9hZGRyICphZGRyMSwKIAkJCSAgICAgICBjb25zdCB1bmlvbiBz Y3RwX2FkZHIgKmFkZHIyLAogCQkJICAgICAgIHN0cnVjdCBzY3RwX3NvY2sgKm9wdCkKIHsKLQlz dHJ1Y3Qgc2N0cF9hZiAqYWYxLCAqYWYyOwogCXN0cnVjdCBzb2NrICpzayA9IHNjdHBfb3B0MnNr KG9wdCk7CisJc3RydWN0IHNjdHBfYWYgKmFmMSwgKmFmMjsKIAogCWFmMSA9IHNjdHBfZ2V0X2Fm X3NwZWNpZmljKGFkZHIxLT5zYS5zYV9mYW1pbHkpOwogCWFmMiA9IHNjdHBfZ2V0X2FmX3NwZWNp ZmljKGFkZHIyLT5zYS5zYV9mYW1pbHkpOwpAQCAtODYzLDEwICs4NjYsNyBAQCBzdGF0aWMgaW50 IHNjdHBfaW5ldDZfY21wX2FkZHIoY29uc3QgdW5pb24gc2N0cF9hZGRyICphZGRyMSwKIAlpZiAo c2N0cF9pc19hbnkoc2ssIGFkZHIxKSB8fCBzY3RwX2lzX2FueShzaywgYWRkcjIpKQogCQlyZXR1 cm4gMTsKIAotCWlmIChhZGRyMS0+c2Euc2FfZmFtaWx5ICE9IGFkZHIyLT5zYS5zYV9mYW1pbHkp Ci0JCXJldHVybiAwOwotCi0JcmV0dXJuIGFmMS0+Y21wX2FkZHIoYWRkcjEsIGFkZHIyKTsKKwly ZXR1cm4gX19zY3RwX3Y2X2NtcF9hZGRyKGFkZHIxLCBhZGRyMik7CiB9CiAKIC8qIFZlcmlmeSB0 aGF0IHRoZSBwcm92aWRlZCBzb2NrYWRkciBsb29rcyBiaW5kYWJsZS4gICBDb21tb24gdmVyaWZp Y2F0aW9uLAotLSAKMi4xNC4zCgoKRnJvbSBhYjgyY2QzMDA5M2I1YzBiODE4YTkyODhkMDdlNDk3 OTRiM2M2ZmM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEb3JvbiBSb2JlcnRzLUtl ZGVzIDxkb3JvbnJrQGZiLmNvbT4KRGF0ZTogRnJpLCAyMCBBcHIgMjAxOCAxMjoxMToxMSAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMTgvNTJdIHN0cnBhcnNlcjogRG8gbm90IGNhbGwgbW9kX2RlbGF5 ZWRfd29yayB3aXRoIGEgdGltZW91dAogb2YgTE9OR19NQVgKClsgVXBzdHJlYW0gY29tbWl0IDdj NWFiYTIxMWRkNjFmNDFkNzM3YTJjNTE3MjllYjlmZGNkM2VkZjQgXQoKc3RydWN0IHNvY2sncyBz a19yY3Z0aW1lbyBpcyBpbml0aWFsaXplZCB0bwpMT05HX01BWC9NQVhfU0NIRURVTEVfVElNRU9V VCBpbiBzb2NrX2luaXRfZGF0YS4gQ2FsbGluZwptb2RfZGVsYXllZF93b3JrIHdpdGggYSB0aW1l b3V0IG9mIExPTkdfTUFYIGNhdXNlcyBzcHVyaW91cyBleGVjdXRpb24gb2YKdGhlIHdvcmsgZnVu Y3Rpb24uIHRpbWVyLT5leHBpcmVzIGlzIHNldCBlcXVhbCB0byBqaWZmaWVzICsgTE9OR19NQVgu CldoZW4gdGltZXJfYmFzZS0+Y2xrIGZhbGxzIGJlaGluZCB0aGUgY3VycmVudCB2YWx1ZSBvZiBq aWZmaWVzLAp0aGUgZGVsdGEgYmV0d2VlbiB0aW1lcl9iYXNlLT5jbGsgYW5kIGppZmZpZXMgKyBM T05HX01BWCBjYXVzZXMgdGhlCmV4cGlyYXRpb24gdG8gYmUgaW4gdGhlIHBhc3QuIFJldHVybmlu ZyBlYXJseSBmcm9tIHN0cnBfc3RhcnRfdGltZXIgaWYKdGltZW8gPT0gTE9OR19NQVggc29sdmVz IHRoaXMgcHJvYmxlbS4KCkZvdW5kIHdoaWxlIHRlc3RpbmcgbmV0L3Rsc19zdyByZWN2IHBhdGgu CgpGaXhlczogNDNhMGM2NzUxYTMyMjg0NyAoInN0cnBhcnNlcjogU3RyZWFtIHBhcnNlciBmb3Ig bWVzc2FnZXMiKQpSZXZpZXdlZC1ieTogVGVqdW4gSGVvIDx0akBrZXJuZWwub3JnPgpTaWduZWQt b2ZmLWJ5OiBEb3JvbiBSb2JlcnRzLUtlZGVzIDxkb3JvbnJrQGZiLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zdHJwYXJz ZXIvc3RycGFyc2VyLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc3RycGFyc2VyL3N0cnBhcnNlci5jIGIvbmV0 L3N0cnBhcnNlci9zdHJwYXJzZXIuYwppbmRleCBiOTI4M2NlNWNkODUuLjhkMTc3NTA2OTAxYyAx MDA2NDQKLS0tIGEvbmV0L3N0cnBhcnNlci9zdHJwYXJzZXIuYworKysgYi9uZXQvc3RycGFyc2Vy L3N0cnBhcnNlci5jCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyB2b2lkIHN0cnBfYWJvcnRfc3Ry cChzdHJ1Y3Qgc3RycGFyc2VyICpzdHJwLCBpbnQgZXJyKQogCiBzdGF0aWMgdm9pZCBzdHJwX3N0 YXJ0X3RpbWVyKHN0cnVjdCBzdHJwYXJzZXIgKnN0cnAsIGxvbmcgdGltZW8pCiB7Ci0JaWYgKHRp bWVvKQorCWlmICh0aW1lbyAmJiB0aW1lbyAhPSBMT05HX01BWCkKIAkJbW9kX2RlbGF5ZWRfd29y ayhzdHJwX3dxLCAmc3RycC0+bXNnX3RpbWVyX3dvcmssIHRpbWVvKTsKIH0KIAotLSAKMi4xNC4z CgoKRnJvbSAxMzUxYjA1MWIwNTBhODNkMzQ0YmJmNzIxMmU0MWUyZmJiZDhjNDM5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEb3JvbiBSb2JlcnRzLUtlZGVzIDxkb3JvbnJrQGZiLmNv bT4KRGF0ZTogV2VkLCAxMSBBcHIgMjAxOCAxNTowNToxNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MTkvNTJdIHN0cnBhcnNlcjogRml4IGluY29ycmVjdCBzdHJwLT5uZWVkX2J5dGVzIHZhbHVlLgoK WyBVcHN0cmVhbSBjb21taXQgOWQwYzc1YmY2ZTAzZDliZjgwYzU1YjBmNjc3ZGM5Yjk4Mjk1OGZk NSBdCgpzdHJwX2RhdGFfcmVhZHkgcmVzZXRzIHN0cnAtPm5lZWRfYnl0ZXMgdG8gMCBpZiBzdHJw X3BlZWtfbGVuIGluZGljYXRlcwp0aGF0IHRoZSByZW1haW5kZXIgb2YgdGhlIG1lc3NhZ2UgaGFz IGJlZW4gcmVjZWl2ZWQuIEhvd2V2ZXIsCmRvX3N0cnBfd29yayBkb2VzIG5vdCByZXNldCBzdHJw LT5uZWVkX2J5dGVzIHRvIDAuIElmIGRvX3N0cnBfd29yawpjb21wbGV0ZXMgYSBwYXJ0aWFsIG1l c3NhZ2UsIHRoZSB2YWx1ZSBvZiBzdHJwLT5uZWVkX2J5dGVzIHdpbGwgY29udGludWUKdG8gcmVm bGVjdCB0aGUgbmVlZGVkIGJ5dGVzIG9mIHRoZSBwcmV2aW91cyBtZXNzYWdlLCBjYXVzaW5nCmZ1 dHVyZSBpbnZvY2F0aW9ucyBvZiBzdHJwX2RhdGFfcmVhZHkgdG8gcmV0dXJuIGVhcmx5IGlmCnN0 cnAtPm5lZWRfYnl0ZXMgaXMgbGVzcyB0aGFuIHN0cnBfcGVla19sZW4uIFJlc2V0dGluZyBzdHJw LT5uZWVkX2J5dGVzCnRvIDAgaW4gX19zdHJwX3JlY3Ygb24gaGFuZGluZyBhIGZ1bGwgbWVzc2Fn ZSB0byB0aGUgdXBwZXIgbGF5ZXIgc29sdmVzCnRoaXMgcHJvYmxlbS4KCl9fc3RycF9yZWN2IGFs c28gY2FsY3VsYXRlcyBzdHJwLT5uZWVkX2J5dGVzIHVzaW5nIHN0bS0+YWNjdW1fbGVuIGJlZm9y ZQpzdG0tPmFjY3VtX2xlbiBoYXMgYmVlbiBpbmNyZW1lbnRlZCBieSBjYW5kX2xlbi4gVGhpcyBj YW4gY2F1c2UKc3RycC0+bmVlZF9ieXRlcyB0byBiZSBlcXVhbCB0byB0aGUgZnVsbCBsZW5ndGgg b2YgdGhlIG1lc3NhZ2UgaW5zdGVhZApvZiB0aGUgZnVsbCBsZW5ndGggbWludXMgdGhlIGFjY3Vt dWxhdGVkIGxlbmd0aC4gVGhpcywgaW4gdHVybiwgY2F1c2VzCnN0cnBfZGF0YV9yZWFkeSB0byBy ZXR1cm4gZWFybHksIGV2ZW4gd2hlbiB0aGVyZSBpcyBzdWZmaWNpZW50IGRhdGEgdG8KY29tcGxl dGUgdGhlIHBhcnRpYWwgbWVzc2FnZS4gSW5jcmVtZW50aW5nIHN0bS0+YWNjdW1fbGVuIGJlZm9y ZSB1c2luZwppdCB0byBjYWxjdWxhdGUgc3RycC0+bmVlZF9ieXRlcyBzb2x2ZXMgdGhpcyBwcm9i bGVtLgoKRm91bmQgd2hpbGUgdGVzdGluZyBuZXQvdGxzX3N3IHJlY3YgcGF0aC4KCkZpeGVzOiA0 M2EwYzY3NTFhMzIyODQ3ICgic3RycGFyc2VyOiBTdHJlYW0gcGFyc2VyIGZvciBtZXNzYWdlcyIp ClNpZ25lZC1vZmYtYnk6IERvcm9uIFJvYmVydHMtS2VkZXMgPGRvcm9ucmtAZmIuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3N0cnBhcnNlci9zdHJwYXJzZXIuYyB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc3RycGFyc2VyL3N0 cnBhcnNlci5jIGIvbmV0L3N0cnBhcnNlci9zdHJwYXJzZXIuYwppbmRleCA4ZDE3NzUwNjkwMWMu LjA5MmJlYmM3MDA0OCAxMDA2NDQKLS0tIGEvbmV0L3N0cnBhcnNlci9zdHJwYXJzZXIuYworKysg Yi9uZXQvc3RycGFyc2VyL3N0cnBhcnNlci5jCkBAIC0yOTYsOSArMjk2LDkgQEAgc3RhdGljIGlu dCBfX3N0cnBfcmVjdihyZWFkX2Rlc2NyaXB0b3JfdCAqZGVzYywgc3RydWN0IHNrX2J1ZmYgKm9y aWdfc2tiLAogCQkJCQlzdHJwX3N0YXJ0X3RpbWVyKHN0cnAsIHRpbWVvKTsKIAkJCQl9CiAKKwkJ CQlzdG0tPmFjY3VtX2xlbiArPSBjYW5kX2xlbjsKIAkJCQlzdHJwLT5uZWVkX2J5dGVzID0gc3Rt LT5zdHJwLmZ1bGxfbGVuIC0KIAkJCQkJCSAgICAgICBzdG0tPmFjY3VtX2xlbjsKLQkJCQlzdG0t PmFjY3VtX2xlbiArPSBjYW5kX2xlbjsKIAkJCQlzdG0tPmVhcmx5X2VhdGVuID0gY2FuZF9sZW47 CiAJCQkJU1RSUF9TVEFUU19BREQoc3RycC0+c3RhdHMuYnl0ZXMsIGNhbmRfbGVuKTsKIAkJCQlk ZXNjLT5jb3VudCA9IDA7IC8qIFN0b3AgcmVhZGluZyBzb2NrZXQgKi8KQEAgLTMyMSw2ICszMjEs NyBAQCBzdGF0aWMgaW50IF9fc3RycF9yZWN2KHJlYWRfZGVzY3JpcHRvcl90ICpkZXNjLCBzdHJ1 Y3Qgc2tfYnVmZiAqb3JpZ19za2IsCiAJCS8qIEh1cnJheSwgd2UgaGF2ZSBhIG5ldyBtZXNzYWdl ISAqLwogCQljYW5jZWxfZGVsYXllZF93b3JrKCZzdHJwLT5tc2dfdGltZXJfd29yayk7CiAJCXN0 cnAtPnNrYl9oZWFkID0gTlVMTDsKKwkJc3RycC0+bmVlZF9ieXRlcyA9IDA7CiAJCVNUUlBfU1RB VFNfSU5DUihzdHJwLT5zdGF0cy5tc2dzKTsKIAogCQkvKiBHaXZlIHNrYiB0byB1cHBlciBsYXll ciAqLwpAQCAtNDEwLDkgKzQxMSw3IEBAIHZvaWQgc3RycF9kYXRhX3JlYWR5KHN0cnVjdCBzdHJw YXJzZXIgKnN0cnApCiAJCXJldHVybjsKIAogCWlmIChzdHJwLT5uZWVkX2J5dGVzKSB7Ci0JCWlm IChzdHJwX3BlZWtfbGVuKHN0cnApID49IHN0cnAtPm5lZWRfYnl0ZXMpCi0JCQlzdHJwLT5uZWVk X2J5dGVzID0gMDsKLQkJZWxzZQorCQlpZiAoc3RycF9wZWVrX2xlbihzdHJwKSA8IHN0cnAtPm5l ZWRfYnl0ZXMpCiAJCQlyZXR1cm47CiAJfQogCi0tIAoyLjE0LjMKCgpGcm9tIDViM2Q0MDFmZmY2 MTE3NGY3YmYyMDMxZWY5YTlhMzRkMjQyNmFhODYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+CkRhdGU6IFNhdCwg MTQgQXByIDIwMTggMjA6NDQ6NDYgLTA0MDAKU3ViamVjdDogW1BBVENIIDIwLzUyXSB0Y3A6IGNs ZWFyIHRwLT5wYWNrZXRzX291dCB3aGVuIHB1cmdpbmcgd3JpdGUgcXVldWUKClsgVXBzdHJlYW0g Y29tbWl0IGJmZmQxNjhjM2ZjNWNjN2QyYmFkNGM2NjhmYTkwZTdhOTAxMGRiNGIgXQoKQ2xlYXIg dHAtPnBhY2tldHNfb3V0IHdoZW4gcHVyZ2luZyB0aGUgd3JpdGUgcXVldWUsIG90aGVyd2lzZQp0 Y3BfcmVhcm1fcnRvKCkgbWlzdGFrZW5seSBhc3N1bWVzIFRDUCB3cml0ZSBxdWV1ZSBpcyBub3Qg ZW1wdHkuClRoaXMgcmVzdWx0cyBpbiBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuCgpBbHNvLCBy ZW1vdmUgdGhlIHJlZHVuZGFudCBgdHAtPnBhY2tldHNfb3V0ID0gMGAgZnJvbQp0Y3BfZGlzY29u bmVjdCgpLCBzaW5jZSB0Y3BfZGlzY29ubmVjdCgpIGNhbGxzCnRjcF93cml0ZV9xdWV1ZV9wdXJn ZSgpLgoKRml4ZXM6IGEyN2ZkN2E4ZWQzOCAodGNwOiBwdXJnZSB3cml0ZSBxdWV1ZSB1cG9uIFJT VCkKUmVwb3J0ZWQtYnk6IFN1YmFzaCBBYmhpbm92IEthc2l2aXN3YW5hdGhhbiA8c3ViYXNoYWJA Y29kZWF1cm9yYS5vcmc+ClJlcG9ydGVkLWJ5OiBTYW1pIEZhcmluIDxodnRhaWZ3a2JnZWZiYWVp QGdtYWlsLmNvbT4KVGVzdGVkLWJ5OiBTYW1pIEZhcmluIDxodnRhaWZ3a2JnZWZiYWVpQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpB Y2tlZC1ieTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBOZWFs IENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcC5jIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRleCA4YjgwNTliN2FmNGQuLmJi NDhjZDE0MmI5MiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNw LmMKQEAgLTIzODUsNiArMjM4NSw3IEBAIHZvaWQgdGNwX3dyaXRlX3F1ZXVlX3B1cmdlKHN0cnVj dCBzb2NrICpzaykKIAlJTklUX0xJU1RfSEVBRCgmdGNwX3NrKHNrKS0+dHNvcnRlZF9zZW50X3F1 ZXVlKTsKIAlza19tZW1fcmVjbGFpbShzayk7CiAJdGNwX2NsZWFyX2FsbF9yZXRyYW5zX2hpbnRz KHRjcF9zayhzaykpOworCXRjcF9zayhzayktPnBhY2tldHNfb3V0ID0gMDsKIH0KIAogaW50IHRj cF9kaXNjb25uZWN0KHN0cnVjdCBzb2NrICpzaywgaW50IGZsYWdzKQpAQCAtMjQzNCw3ICsyNDM1 LDYgQEAgaW50IHRjcF9kaXNjb25uZWN0KHN0cnVjdCBzb2NrICpzaywgaW50IGZsYWdzKQogCWlj c2stPmljc2tfYmFja29mZiA9IDA7CiAJdHAtPnNuZF9jd25kID0gMjsKIAlpY3NrLT5pY3NrX3By b2Jlc19vdXQgPSAwOwotCXRwLT5wYWNrZXRzX291dCA9IDA7CiAJdHAtPnNuZF9zc3RocmVzaCA9 IFRDUF9JTkZJTklURV9TU1RIUkVTSDsKIAl0cC0+c25kX2N3bmRfY250ID0gMDsKIAl0cC0+d2lu ZG93X2NsYW1wID0gMDsKLS0gCjIuMTQuMwoKCkZyb20gYWU3ZmJkMTg1N2RlZTRiODc4ZTNiMzA4 N2QwYTg0ODFkNzUxYjlkMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFubiBIb3Ju IDxqYW5uaEBnb29nbGUuY29tPgpEYXRlOiBGcmksIDIwIEFwciAyMDE4IDE1OjU3OjMwICswMjAw ClN1YmplY3Q6IFtQQVRDSCAyMS81Ml0gdGNwOiBkb24ndCByZWFkIG91dC1vZi1ib3VuZHMgb3Bz aXplCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZTVhMjA2YWI2ODZmMDk4MzY3YjYxYWNhOTg5ZjVjZGZh ODExNGEzIF0KClRoZSBvbGQgY29kZSByZWFkcyB0aGUgIm9wc2l6ZSIgdmFyaWFibGUgZnJvbSBv dXQtb2YtYm91bmRzIG1lbW9yeSAoZmlyc3QKYnl0ZSBiZWhpbmQgdGhlIHNlZ21lbnQpIGlmIGEg YnJva2VuIFRDUCBzZWdtZW50IGVuZHMgZGlyZWN0bHkgYWZ0ZXIgYW4Kb3Bjb2RlIHRoYXQgaXMg bmVpdGhlciBFT0wgbm9yIE5PUC4KClRoZSByZXN1bHQgb2YgdGhlIHJlYWQgaXNuJ3QgdXNlZCBm b3IgYW55dGhpbmcsIHNvIHRoZSB3b3JzdCB0aGluZyB0aGF0CmNvdWxkIHRoZW9yZXRpY2FsbHkg aGFwcGVuIGlzIGEgcGFnZWZhdWx0OyBhbmQgc2luY2UgdGhlIHBoeXNtYXAgaXMgdXN1YWxseQpt b3N0bHkgY29udGlndW91cywgZXZlbiB0aGF0IHNlZW1zIHByZXR0eSB1bmxpa2VseS4KClRoZSBm b2xsb3dpbmcgQyByZXByb2R1Y2VyIHRyaWdnZXJzIHRoZSB1bmluaXRpYWxpemVkIHJlYWQgLSBo b3dldmVyLCB5b3UKY2FuJ3QgYWN0dWFsbHkgc2VlIGFueXRoaW5nIGhhcHBlbiB1bmxlc3MgeW91 IHB1dCBzb21ldGhpbmcgbGlrZSBhCnByX3dhcm4oKSBpbiB0Y3BfcGFyc2VfbWQ1c2lnX29wdGlv bigpIHRvIHByaW50IHRoZSBvcHNpemUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KI2RlZmluZSBfR05VX1NPVVJDRQojaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CiNpbmNsdWRl IDxzdGRsaWIuaD4KI2luY2x1ZGUgPGVycm5vLmg+CiNpbmNsdWRlIDxzdGRhcmcuaD4KI2luY2x1 ZGUgPG5ldC9pZi5oPgojaW5jbHVkZSA8bGludXgvaWYuaD4KI2luY2x1ZGUgPGxpbnV4L2lwLmg+ CiNpbmNsdWRlIDxsaW51eC90Y3AuaD4KI2luY2x1ZGUgPGxpbnV4L2luLmg+CiNpbmNsdWRlIDxs aW51eC9pZl90dW4uaD4KI2luY2x1ZGUgPGVyci5oPgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNp bmNsdWRlIDxzeXMvc3RhdC5oPgojaW5jbHVkZSA8ZmNudGwuaD4KI2luY2x1ZGUgPHN0cmluZy5o PgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3lzL2lv Y3RsLmg+CiNpbmNsdWRlIDxhc3NlcnQuaD4KCnZvaWQgc3lzdGVtZihjb25zdCBjaGFyICpjb21t YW5kLCAuLi4pIHsKICBjaGFyICpmdWxsX2NvbW1hbmQ7CiAgdmFfbGlzdCBhcDsKICB2YV9zdGFy dChhcCwgY29tbWFuZCk7CiAgaWYgKHZhc3ByaW50ZigmZnVsbF9jb21tYW5kLCBjb21tYW5kLCBh cCkgPT0gLTEpCiAgICBlcnIoMSwgInZhc3ByaW50ZiIpOwogIHZhX2VuZChhcCk7CiAgcHJpbnRm KCJzeXN0ZW1mOiA8PDwlcz4+PlxuIiwgZnVsbF9jb21tYW5kKTsKICBzeXN0ZW0oZnVsbF9jb21t YW5kKTsKfQoKY2hhciAqZGV2bmFtZTsKCmludCB0dW5fYWxsb2MoY2hhciAqbmFtZSkgewogIGlu dCBmZCA9IG9wZW4oIi9kZXYvbmV0L3R1biIsIE9fUkRXUik7CiAgaWYgKGZkID09IC0xKQogICAg ZXJyKDEsICJvcGVuIHR1biBkZXYiKTsKICBzdGF0aWMgc3RydWN0IGlmcmVxIHJlcSA9IHsgLmlm cl9mbGFncyA9IElGRl9UVU58SUZGX05PX1BJIH07CiAgc3RyY3B5KHJlcS5pZnJfbmFtZSwgbmFt ZSk7CiAgaWYgKGlvY3RsKGZkLCBUVU5TRVRJRkYsICZyZXEpKQogICAgZXJyKDEsICJUVU5TRVRJ RkYiKTsKICBkZXZuYW1lID0gcmVxLmlmcl9uYW1lOwogIHByaW50ZigiZGV2aWNlIG5hbWU6ICVz XG4iLCBkZXZuYW1lKTsKICByZXR1cm4gZmQ7Cn0KCiNkZWZpbmUgSVBBRERSKGEsYixjLGQpICgo KGEpPDwwKSsoKGIpPDw4KSsoKGMpPDwxNikrKChkKTw8MjQpKQoKdm9pZCBzdW1fYWNjdW11bGF0 ZSh1bnNpZ25lZCBpbnQgKnN1bSwgdm9pZCAqZGF0YSwgaW50IGxlbikgewogIGFzc2VydCgobGVu JjIpPT0wKTsKICBmb3IgKGludCBpPTA7IGk8bGVuLzI7IGkrKykgewogICAgKnN1bSArPSBudG9o cygoKHVuc2lnbmVkIHNob3J0ICopZGF0YSlbaV0pOwogIH0KfQoKdW5zaWduZWQgc2hvcnQgc3Vt X2ZpbmFsKHVuc2lnbmVkIGludCBzdW0pIHsKICBzdW0gPSAoc3VtID4+IDE2KSArIChzdW0gJiAw eGZmZmYpOwogIHN1bSA9IChzdW0gPj4gMTYpICsgKHN1bSAmIDB4ZmZmZik7CiAgcmV0dXJuIGh0 b25zKH5zdW0pOwp9Cgp2b2lkIGZpeF9pcF9zdW0oc3RydWN0IGlwaGRyICppcCkgewogIHVuc2ln bmVkIGludCBzdW0gPSAwOwogIHN1bV9hY2N1bXVsYXRlKCZzdW0sIGlwLCBzaXplb2YoKmlwKSk7 CiAgaXAtPmNoZWNrID0gc3VtX2ZpbmFsKHN1bSk7Cn0KCnZvaWQgZml4X3RjcF9zdW0oc3RydWN0 IGlwaGRyICppcCwgc3RydWN0IHRjcGhkciAqdGNwKSB7CiAgdW5zaWduZWQgaW50IHN1bSA9IDA7 CiAgc3RydWN0IHsKICAgIHVuc2lnbmVkIGludCBzYWRkcjsKICAgIHVuc2lnbmVkIGludCBkYWRk cjsKICAgIHVuc2lnbmVkIGNoYXIgcGFkOwogICAgdW5zaWduZWQgY2hhciBwcm90b19udW07CiAg ICB1bnNpZ25lZCBzaG9ydCB0Y3BfbGVuOwogIH0gZmFrZWhkciA9IHsKICAgIC5zYWRkciA9IGlw LT5zYWRkciwKICAgIC5kYWRkciA9IGlwLT5kYWRkciwKICAgIC5wcm90b19udW0gPSBpcC0+cHJv dG9jb2wsCiAgICAudGNwX2xlbiA9IGh0b25zKG50b2hzKGlwLT50b3RfbGVuKSAtIGlwLT5paGwq NCkKICB9OwogIHN1bV9hY2N1bXVsYXRlKCZzdW0sICZmYWtlaGRyLCBzaXplb2YoZmFrZWhkcikp OwogIHN1bV9hY2N1bXVsYXRlKCZzdW0sIHRjcCwgdGNwLT5kb2ZmKjQpOwogIHRjcC0+Y2hlY2sg PSBzdW1fZmluYWwoc3VtKTsKfQoKaW50IG1haW4odm9pZCkgewogIGludCB0dW5fZmQgPSB0dW5f YWxsb2MoImluamVjdF9kZXYlZCIpOwogIHN5c3RlbWYoImlwIGxpbmsgc2V0ICVzIHVwIiwgZGV2 bmFtZSk7CiAgc3lzdGVtZigiaXAgYWRkciBhZGQgMTkyLjE2OC40Mi4xLzI0IGRldiAlcyIsIGRl dm5hbWUpOwoKICBzdHJ1Y3QgewogICAgc3RydWN0IGlwaGRyIGlwOwogICAgc3RydWN0IHRjcGhk ciB0Y3A7CiAgICB1bnNpZ25lZCBjaGFyIHRjcF9vcHRzWzIwXTsKICB9IF9fYXR0cmlidXRlX18o KHBhY2tlZCkpIHN5bl9wYWNrZXQgPSB7CiAgICAuaXAgPSB7CiAgICAgIC5paGwgPSBzaXplb2Yo c3RydWN0IGlwaGRyKS80LAogICAgICAudmVyc2lvbiA9IDQsCiAgICAgIC50b3RfbGVuID0gaHRv bnMoc2l6ZW9mKHN5bl9wYWNrZXQpKSwKICAgICAgLnR0bCA9IDMwLAogICAgICAucHJvdG9jb2wg PSBJUFBST1RPX1RDUCwKICAgICAgLyogRklYVVAgY2hlY2sgKi8KICAgICAgLnNhZGRyID0gSVBB RERSKDE5MiwxNjgsNDIsMiksCiAgICAgIC5kYWRkciA9IElQQUREUigxOTIsMTY4LDQyLDEpCiAg ICB9LAogICAgLnRjcCA9IHsKICAgICAgLnNvdXJjZSA9IGh0b25zKDEpLAogICAgICAuZGVzdCA9 IGh0b25zKDEzMzcpLAogICAgICAuc2VxID0gMHgxMjM0NTY3OCwKICAgICAgLmRvZmYgPSAoc2l6 ZW9mKHN5bl9wYWNrZXQudGNwKStzaXplb2Yoc3luX3BhY2tldC50Y3Bfb3B0cykpLzQsCiAgICAg IC5zeW4gPSAxLAogICAgICAud2luZG93ID0gaHRvbnMoNjQpLAogICAgICAuY2hlY2sgPSAwIC8q RklYVVAqLwogICAgfSwKICAgIC50Y3Bfb3B0cyA9IHsKICAgICAgLyogSU5WQUxJRDogdHJhaWxp bmcgTUQ1U0lHIG9wY29kZSBhZnRlciBOT1BzICovCiAgICAgIDEsIDEsIDEsIDEsIDEsCiAgICAg IDEsIDEsIDEsIDEsIDEsCiAgICAgIDEsIDEsIDEsIDEsIDEsCiAgICAgIDEsIDEsIDEsIDEsIDE5 CiAgICB9CiAgfTsKICBmaXhfaXBfc3VtKCZzeW5fcGFja2V0LmlwKTsKICBmaXhfdGNwX3N1bSgm c3luX3BhY2tldC5pcCwgJnN5bl9wYWNrZXQudGNwKTsKICB3aGlsZSAoMSkgewogICAgaW50IHdy aXRlX3JlcyA9IHdyaXRlKHR1bl9mZCwgJnN5bl9wYWNrZXQsIHNpemVvZihzeW5fcGFja2V0KSk7 CiAgICBpZiAod3JpdGVfcmVzICE9IHNpemVvZihzeW5fcGFja2V0KSkKICAgICAgZXJyKDEsICJw YWNrZXQgd3JpdGUgZmFpbGVkIik7CiAgfQp9Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQoKRml4ZXM6IGNmYjZlZWI0Yzg2MCAoIltUQ1BdOiBNRDUgU2lnbmF0dXJlIE9wdGlv biAoUkZDMjM4NSkgc3VwcG9ydC4iKQpTaWduZWQtb2ZmLWJ5OiBKYW5uIEhvcm4gPGphbm5oQGdv b2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfaW5wdXQuYyB8IDcgKystLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2 NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCmluZGV4IGZmNmNkOThjZThkNS4u MzFjYTI3ZmRkZTY2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaW5wdXQuYworKysgYi9uZXQv aXB2NC90Y3BfaW5wdXQuYwpAQCAtMzg3MSwxMSArMzg3MSw4IEBAIGNvbnN0IHU4ICp0Y3BfcGFy c2VfbWQ1c2lnX29wdGlvbihjb25zdCBzdHJ1Y3QgdGNwaGRyICp0aCkKIAlpbnQgbGVuZ3RoID0g KHRoLT5kb2ZmIDw8IDIpIC0gc2l6ZW9mKCp0aCk7CiAJY29uc3QgdTggKnB0ciA9IChjb25zdCB1 OCAqKSh0aCArIDEpOwogCi0JLyogSWYgdGhlIFRDUCBvcHRpb24gaXMgdG9vIHNob3J0LCB3ZSBj YW4gc2hvcnQgY3V0ICovCi0JaWYgKGxlbmd0aCA8IFRDUE9MRU5fTUQ1U0lHKQotCQlyZXR1cm4g TlVMTDsKLQotCXdoaWxlIChsZW5ndGggPiAwKSB7CisJLyogSWYgbm90IGVub3VnaCBkYXRhIHJl bWFpbmluZywgd2UgY2FuIHNob3J0IGN1dCAqLworCXdoaWxlIChsZW5ndGggPj0gVENQT0xFTl9N RDVTSUcpIHsKIAkJaW50IG9wY29kZSA9ICpwdHIrKzsKIAkJaW50IG9wc2l6ZTsKIAotLSAKMi4x NC4zCgoKRnJvbSBhMWM4OGRhYjdlYTJmZWRkZmUxNDY1NjY2ZDc2NmJmN2ViOTEzY2U2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+CkRhdGU6IFdlZCwgMTEgQXByIDIwMTggMTQ6MzY6MjggLTA3MDAKU3ViamVjdDogW1BBVENI IDIyLzUyXSB0Y3A6IG1kNTogcmVqZWN0IFRDUF9NRDVTSUcgb3IgVENQX01ENVNJR19FWFQgb24K IGVzdGFibGlzaGVkIHNvY2tldHMKClsgVXBzdHJlYW0gY29tbWl0IDcyMTIzMDMyNjg5MThiOWEy MDNhZWJlYWNmZGJkODNiNWU4N2IyMGQgXQoKc3l6Ym90L0tNU0FOIHJlcG9ydGVkIGFuIHVuaW5p dC12YWx1ZSBpbiB0Y3BfcGFyc2Vfb3B0aW9ucygpIFsxXQoKSSBiZWxpZXZlIHRoaXMgd2FzIGNh dXNlZCBieSBhIFRDUF9NRDVTSUcgYmVpbmcgc2V0IG9uIGxpdmUKZmxvdy4KClRoaXMgaXMgaGln aGx5IHVuZXhwZWN0ZWQsIHNpbmNlIFRDUCBvcHRpb24gc3BhY2UgaXMgbGltaXRlZC4KCkZvciBp bnN0YW5jZSwgcHJlc2VuY2Ugb2YgVENQIE1ENSBvcHRpb24gYXV0b21hdGljYWxseSBkaXNhYmxl cwpUQ1AgVGltZVN0YW1wIG9wdGlvbiBhdCBTWU4vU1lOQUNLIHRpbWUsIHdoaWNoIHdlIGNhbiBu b3QgZG8Kb25jZSBmbG93IGhhcyBiZWVuIGVzdGFibGlzaGVkLgoKUmVhbGx5LCBhZGRpbmcvZGVs ZXRpbmcgYW4gTUQ1IGtleSBvbmx5IG1ha2VzIHNlbnNlIG9uIHNvY2tldHMKaW4gQ0xPU0Ugb3Ig TElTVEVOIHN0YXRlLgoKWzFdCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiB0Y3BfcGFyc2Vf b3B0aW9ucysweGQ3NC8weDFhMzAgbmV0L2lwdjQvdGNwX2lucHV0LmM6MzcyMApDUFU6IDEgUElE OiA2MTc3IENvbW06IHN5emthbGxlcjE5MjAwNCBOb3QgdGFpbnRlZCA0LjE2LjArICM4MwpIYXJk d2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVu Z2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxp Yi9kdW1wX3N0YWNrLmM6MTcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxODUvMHgxZDAgbGliL2R1 bXBfc3RhY2suYzo1Mwoga21zYW5fcmVwb3J0KzB4MTQyLzB4MjQwIG1tL2ttc2FuL2ttc2FuLmM6 MTA2NwogX19tc2FuX3dhcm5pbmdfMzIrMHg2Yy8weGIwIG1tL2ttc2FuL2ttc2FuX2luc3RyLmM6 Njc2CiB0Y3BfcGFyc2Vfb3B0aW9ucysweGQ3NC8weDFhMzAgbmV0L2lwdjQvdGNwX2lucHV0LmM6 MzcyMAogdGNwX2Zhc3RfcGFyc2Vfb3B0aW9ucyBuZXQvaXB2NC90Y3BfaW5wdXQuYzozODU4IFtp bmxpbmVdCiB0Y3BfdmFsaWRhdGVfaW5jb21pbmcrMHg0ZjEvMHgyNzkwIG5ldC9pcHY0L3RjcF9p bnB1dC5jOjUxODQKIHRjcF9yY3ZfZXN0YWJsaXNoZWQrMHhmNjAvMHgyYmIwIG5ldC9pcHY0L3Rj cF9pbnB1dC5jOjU0NTMKIHRjcF92NF9kb19yY3YrMHg2Y2QvMHhkOTAgbmV0L2lwdjQvdGNwX2lw djQuYzoxNDY5CiBza19iYWNrbG9nX3JjdiBpbmNsdWRlL25ldC9zb2NrLmg6OTA4IFtpbmxpbmVd CiBfX3JlbGVhc2Vfc29jaysweDJkNi8weDY4MCBuZXQvY29yZS9zb2NrLmM6MjI3MQogcmVsZWFz ZV9zb2NrKzB4OTcvMHgyYTAgbmV0L2NvcmUvc29jay5jOjI3ODYKIHRjcF9zZW5kbXNnKzB4ZDYv MHgxMDAgbmV0L2lwdjQvdGNwLmM6MTQ2NAogaW5ldF9zZW5kbXNnKzB4NDhkLzB4NzQwIG5ldC9p cHY0L2FmX2luZXQuYzo3NjQKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjMwIFtp bmxpbmVdCiBzb2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY0MCBbaW5saW5lXQogU1lTQ19zZW5k dG8rMHg2YzMvMHg3ZTAgbmV0L3NvY2tldC5jOjE3NDcKIFN5U19zZW5kdG8rMHg4YS8weGIwIG5l dC9zb2NrZXQuYzoxNzE1CiBkb19zeXNjYWxsXzY0KzB4MzA5LzB4NDMwIGFyY2gveDg2L2VudHJ5 L2NvbW1vbi5jOjI4NwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4M2QvMHhhMgpS SVA6IDAwMzM6MHg0NDhmZTkKUlNQOiAwMDJiOjAwMDA3ZmQ0NzJjNjRkMzggRUZMQUdTOiAwMDAw MDIxNiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyYwpSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJY OiAwMDAwMDAwMDAwNmU1YTMwIFJDWDogMDAwMDAwMDAwMDQ0OGZlOQpSRFg6IDAwMDAwMDAwMDAw MDAyOWYgUlNJOiAwMDAwMDAwMDIwYTg4Zjg4IFJESTogMDAwMDAwMDAwMDAwMDAwNApSQlA6IDAw MDAwMDAwMDA2ZTVhMzQgUjA4OiAwMDAwMDAwMDIwZTY4MDAwIFIwOTogMDAwMDAwMDAwMDAwMDAx MApSMTA6IDAwMDAwMDAwMjAwMDA3ZmQgUjExOiAwMDAwMDAwMDAwMDAwMjE2IFIxMjogMDAwMDAw MDAwMDAwMDAwMApSMTM6IDAwMDA3ZmZmMDc0ODk5ZWYgUjE0OiAwMDAwN2ZkNDcyYzY1OWMwIFIx NTogMDAwMDAwMDAwMDAwMDAwOQoKVW5pbml0IHdhcyBjcmVhdGVkIGF0Ogoga21zYW5fc2F2ZV9z dGFja193aXRoX2ZsYWdzIG1tL2ttc2FuL2ttc2FuLmM6Mjc4IFtpbmxpbmVdCiBrbXNhbl9pbnRl cm5hbF9wb2lzb25fc2hhZG93KzB4YjgvMHgxYjAgbW0va21zYW4va21zYW4uYzoxODgKIGttc2Fu X2ttYWxsb2MrMHg5NC8weDEwMCBtbS9rbXNhbi9rbXNhbi5jOjMxNAoga21zYW5fc2xhYl9hbGxv YysweDExLzB4MjAgbW0va21zYW4va21zYW4uYzozMjEKIHNsYWJfcG9zdF9hbGxvY19ob29rIG1t L3NsYWIuaDo0NDUgW2lubGluZV0KIHNsYWJfYWxsb2Nfbm9kZSBtbS9zbHViLmM6MjczNyBbaW5s aW5lXQogX19rbWFsbG9jX25vZGVfdHJhY2tfY2FsbGVyKzB4YWVkLzB4MTFjMCBtbS9zbHViLmM6 NDM2OQogX19rbWFsbG9jX3Jlc2VydmUgbmV0L2NvcmUvc2tidWZmLmM6MTM4IFtpbmxpbmVdCiBf X2FsbG9jX3NrYisweDJjZi8weDlmMCBuZXQvY29yZS9za2J1ZmYuYzoyMDYKIGFsbG9jX3NrYiBp bmNsdWRlL2xpbnV4L3NrYnVmZi5oOjk4NCBbaW5saW5lXQogdGNwX3NlbmRfYWNrKzB4MThjLzB4 OTEwIG5ldC9pcHY0L3RjcF9vdXRwdXQuYzozNjI0CiBfX3RjcF9hY2tfc25kX2NoZWNrIG5ldC9p cHY0L3RjcF9pbnB1dC5jOjUwNDAgW2lubGluZV0KIHRjcF9hY2tfc25kX2NoZWNrIG5ldC9pcHY0 L3RjcF9pbnB1dC5jOjUwNTMgW2lubGluZV0KIHRjcF9yY3ZfZXN0YWJsaXNoZWQrMHgyMTAzLzB4 MmJiMCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo1NDY5CiB0Y3BfdjRfZG9fcmN2KzB4NmNkLzB4ZDkw IG5ldC9pcHY0L3RjcF9pcHY0LmM6MTQ2OQogc2tfYmFja2xvZ19yY3YgaW5jbHVkZS9uZXQvc29j ay5oOjkwOCBbaW5saW5lXQogX19yZWxlYXNlX3NvY2srMHgyZDYvMHg2ODAgbmV0L2NvcmUvc29j ay5jOjIyNzEKIHJlbGVhc2Vfc29jaysweDk3LzB4MmEwIG5ldC9jb3JlL3NvY2suYzoyNzg2CiB0 Y3Bfc2VuZG1zZysweGQ2LzB4MTAwIG5ldC9pcHY0L3RjcC5jOjE0NjQKIGluZXRfc2VuZG1zZysw eDQ4ZC8weDc0MCBuZXQvaXB2NC9hZl9pbmV0LmM6NzY0CiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0 L3NvY2tldC5jOjYzMCBbaW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2NDAgW2lu bGluZV0KIFNZU0Nfc2VuZHRvKzB4NmMzLzB4N2UwIG5ldC9zb2NrZXQuYzoxNzQ3CiBTeVNfc2Vu ZHRvKzB4OGEvMHhiMCBuZXQvc29ja2V0LmM6MTcxNQogZG9fc3lzY2FsbF82NCsweDMwOS8weDQz MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyODcKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdm cmFtZSsweDNkLzB4YTIKCkZpeGVzOiBjZmI2ZWViNGM4NjAgKCJbVENQXTogTUQ1IFNpZ25hdHVy ZSBPcHRpb24gKFJGQzIzODUpIHN1cHBvcnQuIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29v Z2xlZ3JvdXBzLmNvbT4KQWNrZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjQvdGNwLmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25ldC9p cHY0L3RjcC5jCmluZGV4IGJiNDhjZDE0MmI5Mi4uMWFiODczM2RhYzVmIDEwMDY0NAotLS0gYS9u ZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMjgzMCw4ICsyODMwLDEwIEBA IHN0YXRpYyBpbnQgZG9fdGNwX3NldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWws CiAjaWZkZWYgQ09ORklHX1RDUF9NRDVTSUcKIAljYXNlIFRDUF9NRDVTSUc6CiAJY2FzZSBUQ1Bf TUQ1U0lHX0VYVDoKLQkJLyogUmVhZCB0aGUgSVAtPktleSBtYXBwaW5ncyBmcm9tIHVzZXJzcGFj ZSAqLwotCQllcnIgPSB0cC0+YWZfc3BlY2lmaWMtPm1kNV9wYXJzZShzaywgb3B0bmFtZSwgb3B0 dmFsLCBvcHRsZW4pOworCQlpZiAoKDEgPDwgc2stPnNrX3N0YXRlKSAmIChUQ1BGX0NMT1NFIHwg VENQRl9MSVNURU4pKQorCQkJZXJyID0gdHAtPmFmX3NwZWNpZmljLT5tZDVfcGFyc2Uoc2ssIG9w dG5hbWUsIG9wdHZhbCwgb3B0bGVuKTsKKwkJZWxzZQorCQkJZXJyID0gLUVJTlZBTDsKIAkJYnJl YWs7CiAjZW5kaWYKIAljYXNlIFRDUF9VU0VSX1RJTUVPVVQ6Ci0tIAoyLjE0LjMKCgpGcm9tIDk3 YzliOTY0MmVmYmQyNjA2NzllN2ViNTI1NThhZGU5ZmI2NGIwNDUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAx MyBBcHIgMjAxOCAxMzo1OToyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjMvNTJdIHRlYW06IGF2 b2lkIGFkZGluZyB0d2ljZSB0aGUgc2FtZSBvcHRpb24gdG8gdGhlIGV2ZW50CiBsaXN0CgpbIFVw c3RyZWFtIGNvbW1pdCA0ZmIwNTM0ZmI3YmJjMjM0NmJhN2QzYTA3MmI1MzgwMDdmNDEzNWE1IF0K CldoZW4gcGFyc2luZyB0aGUgb3B0aW9ucyBwcm92aWRlZCBieSB0aGUgdXNlciBzcGFjZSwKdGVh bV9ubF9jbWRfb3B0aW9uc19zZXQoKSBpbnNlcnQgdGhlbSBpbiBhIHRlbXBvcmFyeSBsaXN0IHRv IHNlbmQKbXVsdGlwbGUgZXZlbnRzIHdpdGggYSBzaW5nbGUgbWVzc2FnZS4KV2hpbGUgZWFjaCBv cHRpb24ncyBhdHRyaWJ1dGUgaXMgY29ycmVjdGx5IHZhbGlkYXRlZCwgdGhlIGNvZGUgZG9lcwpu b3QgY2hlY2sgZm9yIGR1cGxpY2F0ZSBlbnRyaWVzIGJlZm9yZSBpbnNlcnRpbmcgaW50byB0aGUg ZXZlbnQKbGlzdC4KCkV4cGxvaXRpbmcgdGhlIGFib3ZlLCB0aGUgc3l6Ym90IHdhcyBhYmxlIHRv IHRyaWdnZXIgdGhlIGZvbGxvd2luZwpzcGxhdDoKCmtlcm5lbCBCVUcgYXQgbGliL2xpc3RfZGVi dWcuYzozMSEKaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBTTVAgS0FTQU4KRHVtcGluZyBmdHJh Y2UgYnVmZmVyOgogICAgKGZ0cmFjZSBidWZmZXIgZW1wdHkpCk1vZHVsZXMgbGlua2VkIGluOgpD UFU6IDAgUElEOiA0NDY2IENvbW06IHN5emthbGxlcjU1NjgzNSBOb3QgdGFpbnRlZCA0LjE2LjAr ICMxNwpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBD b21wdXRlIEVuZ2luZSwgQklPUwpHb29nbGUgMDEvMDEvMjAxMQpSSVA6IDAwMTA6X19saXN0X2Fk ZF92YWxpZCsweGFhLzB4YjAgbGliL2xpc3RfZGVidWcuYzoyOQpSU1A6IDAwMTg6ZmZmZjg4MDFi MDRiZjI0OCBFRkxBR1M6IDAwMDEwMjg2ClJBWDogMDAwMDAwMDAwMDAwMDA1OCBSQlg6IGZmZmY4 ODAxYzhmYzdhOTAgUkNYOiAwMDAwMDAwMDAwMDAwMDAwClJEWDogMDAwMDAwMDAwMDAwMDA1OCBS U0k6IGZmZmZmZmZmODE1ZmJmNDEgUkRJOiBmZmZmZWQwMDM2MDk3ZTNmClJCUDogZmZmZjg4MDFi MDRiZjI2MCBSMDg6IGZmZmY4ODAxYjBiMmE3MDAgUjA5OiBmZmZmZWQwMDNiNjA0ZjkwClIxMDog ZmZmZmVkMDAzYjYwNGY5MCBSMTE6IGZmZmY4ODAxZGIwMjdjODcgUjEyOiBmZmZmODgwMWM4ZmM3 YTkwClIxMzogZmZmZjg4MDFjOGZjN2E5MCBSMTQ6IGRmZmZmYzAwMDAwMDAwMDAgUjE1OiAwMDAw MDAwMDAwMDAwMDAwCkZTOiAgMDAwMDAwMDAwMGI5ODg4MCgwMDAwKSBHUzpmZmZmODgwMWRiMDAw MDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAw MDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpDUjI6IDAwMDAwMDAwMDA0M2ZjMzAgQ1IzOiAwMDAw MDAwMWFmZThlMDAwIENSNDogMDAwMDAwMDAwMDE0MDZmMApEUjA6IDAwMDAwMDAwMDAwMDAwMDAg RFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApEUjM6IDAwMDAwMDAw MDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApDYWxs IFRyYWNlOgogIF9fbGlzdF9hZGQgaW5jbHVkZS9saW51eC9saXN0Lmg6NjAgW2lubGluZV0KICBs aXN0X2FkZCBpbmNsdWRlL2xpbnV4L2xpc3QuaDo3OSBbaW5saW5lXQogIHRlYW1fbmxfY21kX29w dGlvbnNfc2V0KzB4OWZmLzB4MTJiMCBkcml2ZXJzL25ldC90ZWFtL3RlYW0uYzoyNTcxCiAgZ2Vu bF9mYW1pbHlfcmN2X21zZysweDg4OS8weDExMjAgbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmM6NTk5 CiAgZ2VubF9yY3ZfbXNnKzB4YzYvMHgxNzAgbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmM6NjI0CiAg bmV0bGlua19yY3Zfc2tiKzB4MTcyLzB4NDQwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoyNDQ4 CiAgZ2VubF9yY3YrMHgyOC8weDQwIG5ldC9uZXRsaW5rL2dlbmV0bGluay5jOjYzNQogIG5ldGxp bmtfdW5pY2FzdF9rZXJuZWwgbmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjEzMTAgW2lubGluZV0K ICBuZXRsaW5rX3VuaWNhc3QrMHg1OGIvMHg3NDAgbmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjEz MzYKICBuZXRsaW5rX3NlbmRtc2crMHg5ZjAvMHhmYTAgbmV0L25ldGxpbmsvYWZfbmV0bGluay5j OjE5MDEKICBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjYyOSBbaW5saW5lXQogIHNv Y2tfc2VuZG1zZysweGQ1LzB4MTIwIG5ldC9zb2NrZXQuYzo2MzkKICBfX19zeXNfc2VuZG1zZysw eDgwNS8weDk0MCBuZXQvc29ja2V0LmM6MjExNwogIF9fc3lzX3NlbmRtc2crMHgxMTUvMHgyNzAg bmV0L3NvY2tldC5jOjIxNTUKICBTWVNDX3NlbmRtc2cgbmV0L3NvY2tldC5jOjIxNjQgW2lubGlu ZV0KICBTeVNfc2VuZG1zZysweDI5LzB4MzAgbmV0L3NvY2tldC5jOjIxNjIKICBkb19zeXNjYWxs XzY0KzB4MjllLzB4OWQwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI4NwogIGVudHJ5X1NZU0NB TExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQyLzB4YjcKUklQOiAwMDMzOjB4NDQ1OGI5ClJTUDogMDAy YjowMDAwN2ZmZDFkNGE3Mjc4IEVGTEFHUzogMDAwMDAyMTMgT1JJR19SQVg6IDAwMDAwMDAwMDAw MDAwMmUKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAxYiBSQ1g6IDAw MDAwMDAwMDA0NDU4YjkKUkRYOiAwMDAwMDAwMDAwMDAwMDEwIFJTSTogMDAwMDAwMDAyMDAwMGQw MCBSREk6IDAwMDAwMDAwMDAwMDAwMDQKUkJQOiAwMDAwMDAwMDAwNGE3NGVkIFIwODogMDAwMDAw MDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIx MTogMDAwMDAwMDAwMDAwMDIxMyBSMTI6IDAwMDA3ZmZkMWQ0YTczNDgKUjEzOiAwMDAwMDAwMDAw NDAyYTYwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKQ29kZTog NzUgZTggZWIgYTkgNDggODkgZjcgNDggODkgNzUgZTggZTggZDEgODUgN2IgZmUgNDggOGIgNzUg ZTggZWIgYmIgNDgKODkgZjIgNDggODkgZDkgNGMgODkgZTYgNDggYzcgYzcgYTAgODQgZDggODcg ZTggZWEgNjcgMjggZmUgPDBmPiAwYiAwZiAxZgo0MCAwMCA0OCBiOCAwMCAwMCAwMCAwMCAwMCBm YyBmZiBkZiA1NSA0OCA4OSBlNSA0MQpSSVA6IF9fbGlzdF9hZGRfdmFsaWQrMHhhYS8weGIwIGxp Yi9saXN0X2RlYnVnLmM6MjkgUlNQOiBmZmZmODgwMWIwNGJmMjQ4CgpUaGlzIGNoYW5nZXNldCBh ZGRyZXNzZXMgdGhlIGF2b2lkaW5nIGxpc3RfYWRkKCkgaWYgdGhlIGN1cnJlbnQKb3B0aW9uIGlz IGFscmVhZHkgcHJlc2VudCBpbiB0aGUgZXZlbnQgbGlzdC4KClJlcG9ydGVkLWFuZC10ZXN0ZWQt Ynk6IHN5emJvdCs0ZDRhZjY4NTQzMmRjMGU1NmM5MUBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29t ClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRml4ZXM6IDJm Y2RiMmM5ZTY1OSAoInRlYW06IGFsbG93IHRvIHNlbmQgbXVsdGlwbGUgc2V0IGV2ZW50cyBpbiBv bmUgbWVzc2FnZSIpClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90ZWFtL3RlYW0uYyB8IDE5ICsrKysrKysrKysrKysr KysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvdGVhbS90ZWFtLmMgYi9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYwppbmRleCBiZWZl ZDJkMjJiZjQuLjEzZWFhZTcwMDVlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdGVhbS90ZWFt LmMKKysrIGIvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKQEAgLTI2MSw2ICsyNjEsMTcgQEAgc3Rh dGljIHZvaWQgX190ZWFtX29wdGlvbl9pbnN0X21hcmtfcmVtb3ZlZF9wb3J0KHN0cnVjdCB0ZWFt ICp0ZWFtLAogCX0KIH0KIAorc3RhdGljIGJvb2wgX190ZWFtX29wdGlvbl9pbnN0X3RtcF9maW5k KGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKm9wdHMsCisJCQkJCWNvbnN0IHN0cnVjdCB0ZWFtX29w dGlvbl9pbnN0ICpuZWVkbGUpCit7CisJc3RydWN0IHRlYW1fb3B0aW9uX2luc3QgKm9wdF9pbnN0 OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShvcHRfaW5zdCwgb3B0cywgdG1wX2xpc3QpCisJCWlm IChvcHRfaW5zdCA9PSBuZWVkbGUpCisJCQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gZmFsc2U7Cit9 CisKIHN0YXRpYyBpbnQgX190ZWFtX29wdGlvbnNfcmVnaXN0ZXIoc3RydWN0IHRlYW0gKnRlYW0s CiAJCQkJICAgY29uc3Qgc3RydWN0IHRlYW1fb3B0aW9uICpvcHRpb24sCiAJCQkJICAgc2l6ZV90 IG9wdGlvbl9jb3VudCkKQEAgLTI1NjIsNiArMjU3MywxNCBAQCBzdGF0aWMgaW50IHRlYW1fbmxf Y21kX29wdGlvbnNfc2V0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmlu Zm8pCiAJCQlpZiAoZXJyKQogCQkJCWdvdG8gdGVhbV9wdXQ7CiAJCQlvcHRfaW5zdC0+Y2hhbmdl ZCA9IHRydWU7CisKKwkJCS8qIGR1bWIvZXZpbCB1c2VyLXNwYWNlIGNhbiBzZW5kIHVzIGR1cGxp Y2F0ZSBvcHQsCisJCQkgKiBrZWVwIG9ubHkgdGhlIGxhc3Qgb25lCisJCQkgKi8KKwkJCWlmIChf X3RlYW1fb3B0aW9uX2luc3RfdG1wX2ZpbmQoJm9wdF9pbnN0X2xpc3QsCisJCQkJCQkJb3B0X2lu c3QpKQorCQkJCWNvbnRpbnVlOworCiAJCQlsaXN0X2FkZCgmb3B0X2luc3QtPnRtcF9saXN0LCAm b3B0X2luc3RfbGlzdCk7CiAJCX0KIAkJaWYgKCFvcHRfZm91bmQpIHsKLS0gCjIuMTQuMwoKCkZy b20gZTg1YjI1YTQ1ZWVmY2MwZTQ4OGQwYTczNjRhYTY3MzYxNzM4NjVkNyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBU dWUsIDI0IEFwciAyMDE4IDE0OjMzOjM3ICswODAwClN1YmplY3Q6IFtQQVRDSCAyNC81Ml0gdGVh bTogZml4IG5ldGNvbnNvbGUgc2V0dXAgb3ZlciB0ZWFtCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k aW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA5Y2YyZjQzN2NhNWIzOTgyODk4NDA2NGZhZDIx M2U2OGZjMTdlZjExIF0KClRoZSBzYW1lIGZpeCBpbiBDb21taXQgZGJlMTczMDc5YWI1ICgiYnJp ZGdlOiBmaXggbmV0Y29uc29sZQpzZXR1cCBvdmVyIGJyaWRnZSIpIGlzIGFsc28gbmVlZGVkIGZv ciB0ZWFtIGRyaXZlci4KCldoaWxlIGF0IGl0LCByZW1vdmUgdGhlIHVubmVjZXNzYXJ5IHBhcmFt ZXRlciAqdGVhbSBmcm9tCnRlYW1fcG9ydF9lbmFibGVfbmV0cG9sbCgpLgoKdjEtPnYyOgogIC0g Zml4IGl0IGluIGEgYmV0dGVyIHdheSwgYXMgZG9lcyBicmlkZ2UuCgpGaXhlczogMGZiNTJhMjdh MDRhICgidGVhbTogY2xlYW51cCBuZXRwb2xsIGNsb2RlIikKUmVwb3J0ZWQtYnk6IEpvw6NvIEF2 ZWxpbm8gQmVsbG9tbyBGaWxobyA8amJlbGxvbW9AcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTog WGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMg fCAxOSArKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYyBi L2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCmluZGV4IDEzZWFhZTcwMDVlOC4uMzE3NWY3NDEwYmFm IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYworKysgYi9kcml2ZXJzL25ldC90 ZWFtL3RlYW0uYwpAQCAtMTA3MiwxNCArMTA3MiwxMSBAQCBzdGF0aWMgdm9pZCB0ZWFtX3BvcnRf bGVhdmUoc3RydWN0IHRlYW0gKnRlYW0sIHN0cnVjdCB0ZWFtX3BvcnQgKnBvcnQpCiB9CiAKICNp ZmRlZiBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUgotc3RhdGljIGludCB0ZWFtX3BvcnRfZW5h YmxlX25ldHBvbGwoc3RydWN0IHRlYW0gKnRlYW0sIHN0cnVjdCB0ZWFtX3BvcnQgKnBvcnQpCitz dGF0aWMgaW50IF9fdGVhbV9wb3J0X2VuYWJsZV9uZXRwb2xsKHN0cnVjdCB0ZWFtX3BvcnQgKnBv cnQpCiB7CiAJc3RydWN0IG5ldHBvbGwgKm5wOwogCWludCBlcnI7CiAKLQlpZiAoIXRlYW0tPmRl di0+bnBpbmZvKQotCQlyZXR1cm4gMDsKLQogCW5wID0ga3phbGxvYyhzaXplb2YoKm5wKSwgR0ZQ X0tFUk5FTCk7CiAJaWYgKCFucCkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC0xMDkzLDYgKzEwOTAs MTQgQEAgc3RhdGljIGludCB0ZWFtX3BvcnRfZW5hYmxlX25ldHBvbGwoc3RydWN0IHRlYW0gKnRl YW0sIHN0cnVjdCB0ZWFtX3BvcnQgKnBvcnQpCiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGlu dCB0ZWFtX3BvcnRfZW5hYmxlX25ldHBvbGwoc3RydWN0IHRlYW1fcG9ydCAqcG9ydCkKK3sKKwlp ZiAoIXBvcnQtPnRlYW0tPmRldi0+bnBpbmZvKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBfX3Rl YW1fcG9ydF9lbmFibGVfbmV0cG9sbChwb3J0KTsKK30KKwogc3RhdGljIHZvaWQgdGVhbV9wb3J0 X2Rpc2FibGVfbmV0cG9sbChzdHJ1Y3QgdGVhbV9wb3J0ICpwb3J0KQogewogCXN0cnVjdCBuZXRw b2xsICpucCA9IHBvcnQtPm5wOwpAQCAtMTEwNyw3ICsxMTEyLDcgQEAgc3RhdGljIHZvaWQgdGVh bV9wb3J0X2Rpc2FibGVfbmV0cG9sbChzdHJ1Y3QgdGVhbV9wb3J0ICpwb3J0KQogCWtmcmVlKG5w KTsKIH0KICNlbHNlCi1zdGF0aWMgaW50IHRlYW1fcG9ydF9lbmFibGVfbmV0cG9sbChzdHJ1Y3Qg dGVhbSAqdGVhbSwgc3RydWN0IHRlYW1fcG9ydCAqcG9ydCkKK3N0YXRpYyBpbnQgdGVhbV9wb3J0 X2VuYWJsZV9uZXRwb2xsKHN0cnVjdCB0ZWFtX3BvcnQgKnBvcnQpCiB7CiAJcmV0dXJuIDA7CiB9 CkBAIC0xMjE1LDcgKzEyMjAsNyBAQCBzdGF0aWMgaW50IHRlYW1fcG9ydF9hZGQoc3RydWN0IHRl YW0gKnRlYW0sIHN0cnVjdCBuZXRfZGV2aWNlICpwb3J0X2RldikKIAkJZ290byBlcnJfdmlkc19h ZGQ7CiAJfQogCi0JZXJyID0gdGVhbV9wb3J0X2VuYWJsZV9uZXRwb2xsKHRlYW0sIHBvcnQpOwor CWVyciA9IHRlYW1fcG9ydF9lbmFibGVfbmV0cG9sbChwb3J0KTsKIAlpZiAoZXJyKSB7CiAJCW5l dGRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSBuZXRwb2xsIG9uIGRldmljZSAlc1xuIiwK IAkJCSAgIHBvcnRuYW1lKTsKQEAgLTE5MTIsNyArMTkxNyw3IEBAIHN0YXRpYyBpbnQgdGVhbV9u ZXRwb2xsX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIAltdXRleF9sb2NrKCZ0ZWFt LT5sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBvcnQsICZ0ZWFtLT5wb3J0X2xpc3QsIGxp c3QpIHsKLQkJZXJyID0gdGVhbV9wb3J0X2VuYWJsZV9uZXRwb2xsKHRlYW0sIHBvcnQpOworCQll cnIgPSBfX3RlYW1fcG9ydF9lbmFibGVfbmV0cG9sbChwb3J0KTsKIAkJaWYgKGVycikgewogCQkJ X190ZWFtX25ldHBvbGxfY2xlYW51cCh0ZWFtKTsKIAkJCWJyZWFrOwotLSAKMi4xNC4zCgoKRnJv bSAwZDA0MWQyY2JmOWUxZDIxZWY3MjRlZTA2OGViNTlkNTI3MGY1OTRhIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6 IE1vbiwgMTYgQXByIDIwMTggMDg6Mjk6NDIgLTA3MDAKU3ViamVjdDogW1BBVENIIDI1LzUyXSB0 aXBjOiBhZGQgcG9saWN5IGZvciBUSVBDX05MQV9ORVRfQUREUgoKWyBVcHN0cmVhbSBjb21taXQg ZWM1MThmMjFjYjFhMWIxZjhhNTE2NDk5ZWEwNWM2MDI5OWUwNDk2MyBdCgpCZWZvcmUgc3l6Ym90 L0tNU0FOIGJpdGVzLCBhZGQgdGhlIG1pc3NpbmcgcG9saWN5IGZvciBUSVBDX05MQV9ORVRfQURE UgoKRml4ZXM6IDI3YzIxNDE2NzI3YSAoInRpcGM6IGFkZCBuZXQgc2V0IHRvIG5ldyBuZXRsaW5r IGFwaSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K Q2M6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KQ2M6IFlpbmcgWHVlIDx5aW5n Lnh1ZUB3aW5kcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvbmV0bGluay5jIHwgMyArKy0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQv dGlwYy9uZXRsaW5rLmMgYi9uZXQvdGlwYy9uZXRsaW5rLmMKaW5kZXggYjc2ZjEzZjZmZWExLi5k NGUwYmJlZWU3MjcgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL25ldGxpbmsuYworKysgYi9uZXQvdGlw Yy9uZXRsaW5rLmMKQEAgLTc5LDcgKzc5LDggQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdGlw Y19ubF9zb2NrX3BvbGljeVtUSVBDX05MQV9TT0NLX01BWCArIDFdID0gewogCiBjb25zdCBzdHJ1 Y3QgbmxhX3BvbGljeSB0aXBjX25sX25ldF9wb2xpY3lbVElQQ19OTEFfTkVUX01BWCArIDFdID0g ewogCVtUSVBDX05MQV9ORVRfVU5TUEVDXQkJPSB7IC50eXBlID0gTkxBX1VOU1BFQyB9LAotCVtU SVBDX05MQV9ORVRfSURdCQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0KKwlbVElQQ19OTEFfTkVUX0lE XQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LAorCVtUSVBDX05MQV9ORVRfQUREUl0JCT0geyAudHlw ZSA9IE5MQV9VMzIgfSwKIH07CiAKIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IHRpcGNfbmxfbGlu a19wb2xpY3lbVElQQ19OTEFfTElOS19NQVggKyAxXSA9IHsKLS0gCjIuMTQuMwoKCkZyb20gYzIw YTU2ZTlhZThjNDU0NWRhZmNiZDY0ZjY1OGNlYmU2YTYxZGJmMiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogVG9zaGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5q cD4KRGF0ZTogVHVlLCAxNyBBcHIgMjAxOCAxODo0NjoxNCArMDkwMApTdWJqZWN0OiBbUEFUQ0gg MjYvNTJdIHZsYW46IEZpeCByZWFkaW5nIG1lbW9yeSBiZXlvbmQgc2tiLT50YWlsIGluCiBza2Jf dmxhbl90YWdnZWRfbXVsdGkKClsgVXBzdHJlYW0gY29tbWl0IDdjZTIzNjcyNTRlODQ3NTNiY2Vi MDczMjdhYWY1Yzk1M2NmY2UxMTcgXQoKU3l6a2FsbGVyIHNwb3R0ZWQgYW4gb2xkIGJ1ZyB3aGlj aCBsZWFkcyB0byByZWFkaW5nIHNrYiBiZXlvbmQgdGFpbCBieSA0CmJ5dGVzIG9uIHZsYW4gdGFn Z2VkIHBhY2tldHMuClRoaXMgaXMgY2F1c2VkIGJlY2F1c2Ugc2tiX3ZsYW5fdGFnZ2VkX211bHRp KCkgZGlkIG5vdCBjaGVjawpza2JfaGVhZGxlbi4KCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBp biBldGhfdHlwZV92bGFuIGluY2x1ZGUvbGludXgvaWZfdmxhbi5oOjI4MyBbaW5saW5lXQpCVUc6 IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gc2tiX3ZsYW5fdGFnZ2VkX211bHRpIGluY2x1ZGUvbGlu dXgvaWZfdmxhbi5oOjY1NiBbaW5saW5lXQpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gdmxh bl9mZWF0dXJlc19jaGVjayBpbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaDo2NzIgW2lubGluZV0KQlVH OiBLTVNBTjogdW5pbml0LXZhbHVlIGluIGRmbHRfZmVhdHVyZXNfY2hlY2sgbmV0L2NvcmUvZGV2 LmM6Mjk0OSBbaW5saW5lXQpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gbmV0aWZfc2tiX2Zl YXR1cmVzKzB4ZDFiLzB4ZGMwIG5ldC9jb3JlL2Rldi5jOjMwMDkKQ1BVOiAxIFBJRDogMzU4MiBD b21tOiBzeXprYWxsZXI0MzUxNDkgTm90IHRhaW50ZWQgNC4xNi4wKyAjODIKSGFyZHdhcmUgbmFt ZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJ T1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKICBfX2R1bXBfc3RhY2sgbGliL2R1bXBf c3RhY2suYzoxNyBbaW5saW5lXQogIGR1bXBfc3RhY2srMHgxODUvMHgxZDAgbGliL2R1bXBfc3Rh Y2suYzo1MwogIGttc2FuX3JlcG9ydCsweDE0Mi8weDI0MCBtbS9rbXNhbi9rbXNhbi5jOjEwNjcK ICBfX21zYW5fd2FybmluZ18zMisweDZjLzB4YjAgbW0va21zYW4va21zYW5faW5zdHIuYzo2NzYK ICBldGhfdHlwZV92bGFuIGluY2x1ZGUvbGludXgvaWZfdmxhbi5oOjI4MyBbaW5saW5lXQogIHNr Yl92bGFuX3RhZ2dlZF9tdWx0aSBpbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaDo2NTYgW2lubGluZV0K ICB2bGFuX2ZlYXR1cmVzX2NoZWNrIGluY2x1ZGUvbGludXgvaWZfdmxhbi5oOjY3MiBbaW5saW5l XQogIGRmbHRfZmVhdHVyZXNfY2hlY2sgbmV0L2NvcmUvZGV2LmM6Mjk0OSBbaW5saW5lXQogIG5l dGlmX3NrYl9mZWF0dXJlcysweGQxYi8weGRjMCBuZXQvY29yZS9kZXYuYzozMDA5CiAgdmFsaWRh dGVfeG1pdF9za2IrMHg4OS8weDEzMjAgbmV0L2NvcmUvZGV2LmM6MzA4NAogIF9fZGV2X3F1ZXVl X3htaXQrMHgxY2IyLzB4MmI2MCBuZXQvY29yZS9kZXYuYzozNTQ5CiAgZGV2X3F1ZXVlX3htaXQr MHg0Yi8weDYwIG5ldC9jb3JlL2Rldi5jOjM1OTAKICBwYWNrZXRfc25kIG5ldC9wYWNrZXQvYWZf cGFja2V0LmM6Mjk0NCBbaW5saW5lXQogIHBhY2tldF9zZW5kbXNnKzB4N2M1Ny8weDhhMTAgbmV0 L3BhY2tldC9hZl9wYWNrZXQuYzoyOTY5CiAgc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQu Yzo2MzAgW2lubGluZV0KICBzb2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY0MCBbaW5saW5lXQog IHNvY2tfd3JpdGVfaXRlcisweDNiOS8weDQ3MCBuZXQvc29ja2V0LmM6OTA5CiAgZG9faXRlcl9y ZWFkdl93cml0ZXYrMHg3YmIvMHg5NzAgaW5jbHVkZS9saW51eC9mcy5oOjE3NzYKICBkb19pdGVy X3dyaXRlKzB4MzBkLzB4ZDQwIGZzL3JlYWRfd3JpdGUuYzo5MzIKICB2ZnNfd3JpdGV2IGZzL3Jl YWRfd3JpdGUuYzo5NzcgW2lubGluZV0KICBkb193cml0ZXYrMHgzYzkvMHg4MzAgZnMvcmVhZF93 cml0ZS5jOjEwMTIKICBTWVNDX3dyaXRldisweDliLzB4YjAgZnMvcmVhZF93cml0ZS5jOjEwODUK ICBTeVNfd3JpdGV2KzB4NTYvMHg4MCBmcy9yZWFkX3dyaXRlLmM6MTA4MgogIGRvX3N5c2NhbGxf NjQrMHgzMDkvMHg0MzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjg3CiAgZW50cnlfU1lTQ0FM TF82NF9hZnRlcl9od2ZyYW1lKzB4M2QvMHhhMgpSSVA6IDAwMzM6MHg0M2ZmYTkKUlNQOiAwMDJi OjAwMDA3ZmZmMmNmZjM5NDggRUZMQUdTOiAwMDAwMDIxNyBPUklHX1JBWDogMDAwMDAwMDAwMDAw MDAxNApSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwNDAwMmM4IFJDWDogMDAw MDAwMDAwMDQzZmZhOQpSRFg6IDAwMDAwMDAwMDAwMDAwMDEgUlNJOiAwMDAwMDAwMDIwMDAwMDgw IFJESTogMDAwMDAwMDAwMDAwMDAwMwpSQlA6IDAwMDAwMDAwMDA2Y2IwMTggUjA4OiAwMDAwMDAw MDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjEx OiAwMDAwMDAwMDAwMDAwMjE3IFIxMjogMDAwMDAwMDAwMDQwMThkMApSMTM6IDAwMDAwMDAwMDA0 MDE5NjAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMAoKVW5pbml0 IHdhcyBjcmVhdGVkIGF0OgogIGttc2FuX3NhdmVfc3RhY2tfd2l0aF9mbGFncyBtbS9rbXNhbi9r bXNhbi5jOjI3OCBbaW5saW5lXQogIGttc2FuX2ludGVybmFsX3BvaXNvbl9zaGFkb3crMHhiOC8w eDFiMCBtbS9rbXNhbi9rbXNhbi5jOjE4OAogIGttc2FuX2ttYWxsb2MrMHg5NC8weDEwMCBtbS9r bXNhbi9rbXNhbi5jOjMxNAogIGttc2FuX3NsYWJfYWxsb2MrMHgxMS8weDIwIG1tL2ttc2FuL2tt c2FuLmM6MzIxCiAgc2xhYl9wb3N0X2FsbG9jX2hvb2sgbW0vc2xhYi5oOjQ0NSBbaW5saW5lXQog IHNsYWJfYWxsb2Nfbm9kZSBtbS9zbHViLmM6MjczNyBbaW5saW5lXQogIF9fa21hbGxvY19ub2Rl X3RyYWNrX2NhbGxlcisweGFlZC8weDExYzAgbW0vc2x1Yi5jOjQzNjkKICBfX2ttYWxsb2NfcmVz ZXJ2ZSBuZXQvY29yZS9za2J1ZmYuYzoxMzggW2lubGluZV0KICBfX2FsbG9jX3NrYisweDJjZi8w eDlmMCBuZXQvY29yZS9za2J1ZmYuYzoyMDYKICBhbGxvY19za2IgaW5jbHVkZS9saW51eC9za2J1 ZmYuaDo5ODQgW2lubGluZV0KICBhbGxvY19za2Jfd2l0aF9mcmFncysweDFkNC8weGIyMCBuZXQv Y29yZS9za2J1ZmYuYzo1MjM0CiAgc29ja19hbGxvY19zZW5kX3Bza2IrMHhiNTYvMHgxMTkwIG5l dC9jb3JlL3NvY2suYzoyMDg1CiAgcGFja2V0X2FsbG9jX3NrYiBuZXQvcGFja2V0L2FmX3BhY2tl dC5jOjI4MDMgW2lubGluZV0KICBwYWNrZXRfc25kIG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6Mjg5 NCBbaW5saW5lXQogIHBhY2tldF9zZW5kbXNnKzB4NjQ0NC8weDhhMTAgbmV0L3BhY2tldC9hZl9w YWNrZXQuYzoyOTY5CiAgc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2MzAgW2lubGlu ZV0KICBzb2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY0MCBbaW5saW5lXQogIHNvY2tfd3JpdGVf aXRlcisweDNiOS8weDQ3MCBuZXQvc29ja2V0LmM6OTA5CiAgZG9faXRlcl9yZWFkdl93cml0ZXYr MHg3YmIvMHg5NzAgaW5jbHVkZS9saW51eC9mcy5oOjE3NzYKICBkb19pdGVyX3dyaXRlKzB4MzBk LzB4ZDQwIGZzL3JlYWRfd3JpdGUuYzo5MzIKICB2ZnNfd3JpdGV2IGZzL3JlYWRfd3JpdGUuYzo5 NzcgW2lubGluZV0KICBkb193cml0ZXYrMHgzYzkvMHg4MzAgZnMvcmVhZF93cml0ZS5jOjEwMTIK ICBTWVNDX3dyaXRldisweDliLzB4YjAgZnMvcmVhZF93cml0ZS5jOjEwODUKICBTeVNfd3JpdGV2 KzB4NTYvMHg4MCBmcy9yZWFkX3dyaXRlLmM6MTA4MgogIGRvX3N5c2NhbGxfNjQrMHgzMDkvMHg0 MzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjg3CiAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9o d2ZyYW1lKzB4M2QvMHhhMgoKRml4ZXM6IDU4ZTk5OGM2ZDIzOSAoIm9mZmxvYWRpbmc6IEZvcmNl IHNvZnR3YXJlIEdTTyBmb3IgbXVsdGlwbGUgdmxhbiB0YWdzLiIpClJlcG9ydGVkLWFuZC10ZXN0 ZWQtYnk6IHN5emJvdCswYmJlNDJjNzY0ZmVhZmE4MmM1YUBzeXprYWxsZXIuYXBwc3BvdG1haWwu Y29tClNpZ25lZC1vZmYtYnk6IFRvc2hpYWtpIE1ha2l0YSA8bWFraXRhLnRvc2hpYWtpQGxhYi5u dHQuY28uanA+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaCB8IDcgKysrKystLQogbmV0L2NvcmUv ZGV2LmMgICAgICAgICAgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaCBiL2lu Y2x1ZGUvbGludXgvaWZfdmxhbi5oCmluZGV4IDdkMzA4OTJkYTA2NC4uODdiOGMyMGQ1YjI3IDEw MDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaAorKysgYi9pbmNsdWRlL2xpbnV4L2lm X3ZsYW4uaApAQCAtNjM5LDcgKzYzOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBza2Jfdmxhbl90 YWdnZWQoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg c2tiIGlzIHRhZ2dlZCB3aXRoIG11bHRpcGxlIHZsYW4gaGVhZGVycywgcmVnYXJkbGVzcwogICog b2Ygd2hldGhlciBpdCBpcyBoYXJkd2FyZSBhY2NlbGVyYXRlZCBvciBub3QuCiAgKi8KLXN0YXRp YyBpbmxpbmUgYm9vbCBza2Jfdmxhbl90YWdnZWRfbXVsdGkoY29uc3Qgc3RydWN0IHNrX2J1ZmYg KnNrYikKK3N0YXRpYyBpbmxpbmUgYm9vbCBza2Jfdmxhbl90YWdnZWRfbXVsdGkoc3RydWN0IHNr X2J1ZmYgKnNrYikKIHsKIAlfX2JlMTYgcHJvdG9jb2wgPSBza2ItPnByb3RvY29sOwogCkBAIC02 NDksNiArNjQ5LDkgQEAgc3RhdGljIGlubGluZSBib29sIHNrYl92bGFuX3RhZ2dlZF9tdWx0aShj b25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlpZiAobGlrZWx5KCFldGhfdHlwZV92bGFuKHBy b3RvY29sKSkpCiAJCQlyZXR1cm4gZmFsc2U7CiAKKwkJaWYgKHVubGlrZWx5KCFwc2tiX21heV9w dWxsKHNrYiwgVkxBTl9FVEhfSExFTikpKQorCQkJcmV0dXJuIGZhbHNlOworCiAJCXZlaCA9IChz dHJ1Y3Qgdmxhbl9ldGhoZHIgKilza2ItPmRhdGE7CiAJCXByb3RvY29sID0gdmVoLT5oX3ZsYW5f ZW5jYXBzdWxhdGVkX3Byb3RvOwogCX0KQEAgLTY2Niw3ICs2NjksNyBAQCBzdGF0aWMgaW5saW5l IGJvb2wgc2tiX3ZsYW5fdGFnZ2VkX211bHRpKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCiAg KgogICogUmV0dXJucyBmZWF0dXJlcyB3aXRob3V0IHVuc2FmZSBvbmVzIGlmIHRoZSBza2IgaGFz IG11bHRpcGxlIHRhZ3MuCiAgKi8KLXN0YXRpYyBpbmxpbmUgbmV0ZGV2X2ZlYXR1cmVzX3Qgdmxh bl9mZWF0dXJlc19jaGVjayhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorc3RhdGljIGlubGlu ZSBuZXRkZXZfZmVhdHVyZXNfdCB2bGFuX2ZlYXR1cmVzX2NoZWNrKHN0cnVjdCBza19idWZmICpz a2IsCiAJCQkJCQkgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCiB7CiAJaWYgKHNrYl92 bGFuX3RhZ2dlZF9tdWx0aShza2IpKSB7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25l dC9jb3JlL2Rldi5jCmluZGV4IGM0YWEyOTQxZGJmZC4uM2U1NTA1MDdlOWYwIDEwMDY0NAotLS0g YS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtMjk0Miw3ICsyOTQyLDcg QEAgbmV0ZGV2X2ZlYXR1cmVzX3QgcGFzc3RocnVfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1 ZmYgKnNrYiwKIH0KIEVYUE9SVF9TWU1CT0wocGFzc3RocnVfZmVhdHVyZXNfY2hlY2spOwogCi1z dGF0aWMgbmV0ZGV2X2ZlYXR1cmVzX3QgZGZsdF9mZWF0dXJlc19jaGVjayhjb25zdCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAorc3RhdGljIG5ldGRldl9mZWF0dXJlc190IGRmbHRfZmVhdHVyZXNfY2hl Y2soc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 LAogCQkJCQkgICAgIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKQogewotLSAKMi4xNC4zCgoK RnJvbSBhYjI5NDE2ZjMxZDZjMDcxNzMyZjE3ZmUyYTEyM2JhODNjODZlNDliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb25hayBEb3NoaSA8ZG9zaGlyQHZtd2FyZS5jb20+CkRhdGU6 IFdlZCwgMTggQXByIDIwMTggMTI6NDg6MDQgLTA3MDAKU3ViamVjdDogW1BBVENIIDI3LzUyXSB2 bXhuZXQzOiBmaXggaW5jb3JyZWN0IGRlcmVmZXJlbmNlIHdoZW4gcnh2bGFuIGlzCiBkaXNhYmxl ZAoKWyBVcHN0cmVhbSBjb21taXQgNjVlYzBiZDFjN2MxNDUyMjY3MGE1Mjk0ZGUzNTcxMGZiNTc3 YTdmZCBdCgp2bXhuZXQzX2dldF9oZHJfbGVuKCkgaXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGhl YWRlciBsZW5ndGggd2hpY2ggaW4KdHVybiBpcyB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgZ3NvX3Np emUgZm9yIHNrYi4gV2hlbiByeHZsYW4gb2ZmbG9hZCBpcwpkaXNhYmxlZCwgdmxhbiB0YWcgaXMg cHJlc2VudCBpbiB0aGUgaGVhZGVyIGFuZCB0aGUgZnVuY3Rpb24gcmVmZXJlbmNlcwppcCBoZWFk ZXIgZnJvbSBzaXplb2YoZXRoaGRyKSBhbmQgbGVhZHMgdG8gaW5jb3JyZWN0IHBvaW50ZXIgcmVm ZXJlbmNlLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlIGJ5IHRha2luZyBzaXplb2Yodmxh bl9ldGhoZHIpIGludG8gYWNjb3VudAppZiB2bGFuIHRhZyBpcyBwcmVzZW50IGFuZCBjb3JyZWN0 bHkgcmVmZXJlbmNlcyB0aGUgaXAgaGRyLgoKU2lnbmVkLW9mZi1ieTogUm9uYWsgRG9zaGkgPGRv c2hpckB2bXdhcmUuY29tPgpBY2tlZC1ieTogR3VvbGluIFlhbmcgPGd5YW5nQHZtd2FyZS5jb20+ CkFja2VkLWJ5OiBMb3VpcyBMdW8gPGxsb3Vpc0B2bXdhcmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdm14 bmV0My92bXhuZXQzX2Rydi5jIHwgMTcgKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvbmV0L3Zt eG5ldDMvdm14bmV0M19pbnQuaCB8ICA0ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0 aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92bXhuZXQz L3ZteG5ldDNfZHJ2LmMgYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZHJ2LmMKaW5kZXgg ZTA0OTM3ZjQ0ZjMzLi45ZWJlMmE2ODk5NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZteG5l dDMvdm14bmV0M19kcnYuYworKysgYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZHJ2LmMK QEAgLTEyMTgsNiArMTIxOCw3IEBAIHZteG5ldDNfZ2V0X2hkcl9sZW4oc3RydWN0IHZteG5ldDNf YWRhcHRlciAqYWRhcHRlciwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAl1bmlvbiB7CiAJCXZvaWQg KnB0cjsKIAkJc3RydWN0IGV0aGhkciAqZXRoOworCQlzdHJ1Y3Qgdmxhbl9ldGhoZHIgKnZldGg7 CiAJCXN0cnVjdCBpcGhkciAqaXB2NDsKIAkJc3RydWN0IGlwdjZoZHIgKmlwdjY7CiAJCXN0cnVj dCB0Y3BoZHIgKnRjcDsKQEAgLTEyMjgsMTYgKzEyMjksMjQgQEAgdm14bmV0M19nZXRfaGRyX2xl bihzdHJ1Y3Qgdm14bmV0M19hZGFwdGVyICphZGFwdGVyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAog CWlmICh1bmxpa2VseShzaXplb2Yoc3RydWN0IGlwaGRyKSArIHNpemVvZihzdHJ1Y3QgdGNwaGRy KSA+IG1hcGxlbikpCiAJCXJldHVybiAwOwogCisJaWYgKHNrYi0+cHJvdG9jb2wgPT0gY3B1X3Rv X2JlMTYoRVRIX1BfODAyMVEpIHx8CisJICAgIHNrYi0+cHJvdG9jb2wgPT0gY3B1X3RvX2JlMTYo RVRIX1BfODAyMUFEKSkKKwkJaGxlbiA9IHNpemVvZihzdHJ1Y3Qgdmxhbl9ldGhoZHIpOworCWVs c2UKKwkJaGxlbiA9IHNpemVvZihzdHJ1Y3QgZXRoaGRyKTsKKwogCWhkci5ldGggPSBldGhfaGRy KHNrYik7CiAJaWYgKGdkZXNjLT5yY2QudjQpIHsKLQkJQlVHX09OKGhkci5ldGgtPmhfcHJvdG8g IT0gaHRvbnMoRVRIX1BfSVApKTsKLQkJaGRyLnB0ciArPSBzaXplb2Yoc3RydWN0IGV0aGhkcik7 CisJCUJVR19PTihoZHIuZXRoLT5oX3Byb3RvICE9IGh0b25zKEVUSF9QX0lQKSAmJgorCQkgICAg ICAgaGRyLnZldGgtPmhfdmxhbl9lbmNhcHN1bGF0ZWRfcHJvdG8gIT0gaHRvbnMoRVRIX1BfSVAp KTsKKwkJaGRyLnB0ciArPSBobGVuOwogCQlCVUdfT04oaGRyLmlwdjQtPnByb3RvY29sICE9IElQ UFJPVE9fVENQKTsKIAkJaGxlbiA9IGhkci5pcHY0LT5paGwgPDwgMjsKIAkJaGRyLnB0ciArPSBo ZHIuaXB2NC0+aWhsIDw8IDI7CiAJfSBlbHNlIGlmIChnZGVzYy0+cmNkLnY2KSB7Ci0JCUJVR19P TihoZHIuZXRoLT5oX3Byb3RvICE9IGh0b25zKEVUSF9QX0lQVjYpKTsKLQkJaGRyLnB0ciArPSBz aXplb2Yoc3RydWN0IGV0aGhkcik7CisJCUJVR19PTihoZHIuZXRoLT5oX3Byb3RvICE9IGh0b25z KEVUSF9QX0lQVjYpICYmCisJCSAgICAgICBoZHIudmV0aC0+aF92bGFuX2VuY2Fwc3VsYXRlZF9w cm90byAhPSBodG9ucyhFVEhfUF9JUFY2KSk7CisJCWhkci5wdHIgKz0gaGxlbjsKIAkJLyogVXNl IGFuIGVzdGltYXRlZCB2YWx1ZSwgc2luY2Ugd2UgYWxzbyBuZWVkIHRvIGhhbmRsZQogCQkgKiBU U08gY2FzZS4KIAkJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNf aW50LmggYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfaW50LmgKaW5kZXggNTllYzM0MDUy YTY1Li5hMzMyNjQ2M2I3MWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0 M19pbnQuaAorKysgYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfaW50LmgKQEAgLTY5LDEw ICs2OSwxMCBAQAogLyoKICAqIFZlcnNpb24gbnVtYmVycwogICovCi0jZGVmaW5lIFZNWE5FVDNf RFJJVkVSX1ZFUlNJT05fU1RSSU5HICAgIjEuNC4xMy4wLWsiCisjZGVmaW5lIFZNWE5FVDNfRFJJ VkVSX1ZFUlNJT05fU1RSSU5HICAgIjEuNC4xNC4wLWsiCiAKIC8qIGEgMzItYml0IGludCwgZWFj aCBieXRlIGVuY29kZSBhIHZlcmlvbiBudW1iZXIgaW4gVk1YTkVUM19EUklWRVJfVkVSU0lPTiAq LwotI2RlZmluZSBWTVhORVQzX0RSSVZFUl9WRVJTSU9OX05VTSAgICAgIDB4MDEwNDBkMDAKKyNk ZWZpbmUgVk1YTkVUM19EUklWRVJfVkVSU0lPTl9OVU0gICAgICAweDAxMDQwZTAwCiAKICNpZiBk ZWZpbmVkKENPTkZJR19QQ0lfTVNJKQogCS8qIFJTUyBvbmx5IG1ha2VzIHNlbnNlIGlmIE1TSS1Y IGlzIHN1cHBvcnRlZC4gKi8KLS0gCjIuMTQuMwoKCkZyb20gMmEwNWM3ZmZlMDJjYzMzMWNlYTdi YzUxMDgyMmRkNmU0NDE2Njc2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9tIExl bmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4KRGF0ZTogTW9uLCAyMyBBcHIgMjAxOCAx MTo0MzowOCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMjgvNTJdIGFtZC14Z2JlOiBBZGQgcHJlL3Bv c3QgYXV0by1uZWdvdGlhdGlvbiBwaHkgaG9va3MKClsgVXBzdHJlYW0gY29tbWl0IDRkOTQ1NjYz YTZhMGFjZjNjYmU0NTk0MDUwM2YyZWI5NTg0YmZlZTcgXQoKQWRkIGhvb2tzIHRvIHRoZSBkcml2 ZXIgYXV0by1uZWdvdGlhdGlvbiAoQU4pIGZsb3cgdG8gYWxsb3cgdGhlIGRpZmZlcmVudApwaHkg aW1wbGVtZW50YXRpb25zIHRvIHBlcmZvcm0gYW55IHN0ZXBzIG5lY2Vzc2FyeSB0byBpbXByb3Zl IEFOLgoKU2lnbmVkLW9mZi1ieTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtbWRpby5jIHwgMTYgKysrKysr KysrKysrKystLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS5oICAgICAgfCAg NSArKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtbWRpby5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1tZGlvLmMKaW5kZXggMDcyYjlm NjY0NTk3Li5lM2QzNjFlMjQyYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Ft ZC94Z2JlL3hnYmUtbWRpby5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hn YmUtbWRpby5jCkBAIC00MzcsNiArNDM3LDkgQEAgc3RhdGljIHZvaWQgeGdiZV9hbjczX2Rpc2Fi bGUoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQogCiBzdGF0aWMgdm9pZCB4Z2JlX2FuX3Jl c3RhcnQoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQogeworCWlmIChwZGF0YS0+cGh5X2lm LnBoeV9pbXBsLmFuX3ByZSkKKwkJcGRhdGEtPnBoeV9pZi5waHlfaW1wbC5hbl9wcmUocGRhdGEp OworCiAJc3dpdGNoIChwZGF0YS0+YW5fbW9kZSkgewogCWNhc2UgWEdCRV9BTl9NT0RFX0NMNzM6 CiAJY2FzZSBYR0JFX0FOX01PREVfQ0w3M19SRURSVjoKQEAgLTQ1Myw2ICs0NTYsOSBAQCBzdGF0 aWMgdm9pZCB4Z2JlX2FuX3Jlc3RhcnQoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQogCiBz dGF0aWMgdm9pZCB4Z2JlX2FuX2Rpc2FibGUoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQog eworCWlmIChwZGF0YS0+cGh5X2lmLnBoeV9pbXBsLmFuX3Bvc3QpCisJCXBkYXRhLT5waHlfaWYu cGh5X2ltcGwuYW5fcG9zdChwZGF0YSk7CisKIAlzd2l0Y2ggKHBkYXRhLT5hbl9tb2RlKSB7CiAJ Y2FzZSBYR0JFX0FOX01PREVfQ0w3MzoKIAljYXNlIFhHQkVfQU5fTU9ERV9DTDczX1JFRFJWOgpA QCAtNjM3LDExICs2NDMsMTEgQEAgc3RhdGljIGVudW0geGdiZV9hbiB4Z2JlX2FuNzNfaW5jb21w YXRfbGluayhzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCiAJCQlyZXR1cm4gWEdCRV9BTl9O T19MSU5LOwogCX0KIAotCXhnYmVfYW43M19kaXNhYmxlKHBkYXRhKTsKKwl4Z2JlX2FuX2Rpc2Fi bGUocGRhdGEpOwogCiAJeGdiZV9zd2l0Y2hfbW9kZShwZGF0YSk7CiAKLQl4Z2JlX2FuNzNfcmVz dGFydChwZGF0YSk7CisJeGdiZV9hbl9yZXN0YXJ0KHBkYXRhKTsKIAogCXJldHVybiBYR0JFX0FO X0lOQ09NUEFUX0xJTks7CiB9CkBAIC04MjAsNiArODI2LDkgQEAgc3RhdGljIHZvaWQgeGdiZV9h bjM3X3N0YXRlX21hY2hpbmUoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQogCQlwZGF0YS0+ YW5fcmVzdWx0ID0gcGRhdGEtPmFuX3N0YXRlOwogCQlwZGF0YS0+YW5fc3RhdGUgPSBYR0JFX0FO X1JFQURZOwogCisJCWlmIChwZGF0YS0+cGh5X2lmLnBoeV9pbXBsLmFuX3Bvc3QpCisJCQlwZGF0 YS0+cGh5X2lmLnBoeV9pbXBsLmFuX3Bvc3QocGRhdGEpOworCiAJCW5ldGlmX2RiZyhwZGF0YSwg bGluaywgcGRhdGEtPm5ldGRldiwgIkNMMzcgQU4gcmVzdWx0OiAlc1xuIiwKIAkJCSAgeGdiZV9z dGF0ZV9hc19zdHJpbmcocGRhdGEtPmFuX3Jlc3VsdCkpOwogCX0KQEAgLTkwMyw2ICs5MTIsOSBA QCBzdGF0aWMgdm9pZCB4Z2JlX2FuNzNfc3RhdGVfbWFjaGluZShzdHJ1Y3QgeGdiZV9wcnZfZGF0 YSAqcGRhdGEpCiAJCXBkYXRhLT5reF9zdGF0ZSA9IFhHQkVfUlhfQlBBOwogCQlwZGF0YS0+YW5f c3RhcnQgPSAwOwogCisJCWlmIChwZGF0YS0+cGh5X2lmLnBoeV9pbXBsLmFuX3Bvc3QpCisJCQlw ZGF0YS0+cGh5X2lmLnBoeV9pbXBsLmFuX3Bvc3QocGRhdGEpOworCiAJCW5ldGlmX2RiZyhwZGF0 YSwgbGluaywgcGRhdGEtPm5ldGRldiwgIkNMNzMgQU4gcmVzdWx0OiAlc1xuIiwKIAkJCSAgeGdi ZV9zdGF0ZV9hc19zdHJpbmcocGRhdGEtPmFuX3Jlc3VsdCkpOwogCX0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2FtZC94Z2JlL3hnYmUuaAppbmRleCBhZDEwMmM4YmFjN2IuLmZhMGI1MWVhMWI5NSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS5oCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUuaApAQCAtODMzLDYgKzgzMyw3IEBAIHN0cnVjdCB4 Z2JlX2h3X2lmIHsKIC8qIFRoaXMgc3RydWN0dXJlIHJlcHJlc2VudHMgaW1wbGVtZW50YXRpb24g c3BlY2lmaWMgcm91dGluZXMgZm9yIGFuCiAgKiBpbXBsZW1lbnRhdGlvbiBvZiBhIFBIWS4gQWxs IHJvdXRpbmVzIGFyZSByZXF1aXJlZCB1bmxlc3Mgbm90ZWQgYmVsb3cuCiAgKiAgIE9wdGlvbmFs IHJvdXRpbmVzOgorICogICAgIGFuX3ByZSwgYW5fcG9zdAogICogICAgIGtyX3RyYWluaW5nX3By ZSwga3JfdHJhaW5pbmdfcG9zdAogICovCiBzdHJ1Y3QgeGdiZV9waHlfaW1wbF9pZiB7CkBAIC04 NzUsNiArODc2LDEwIEBAIHN0cnVjdCB4Z2JlX3BoeV9pbXBsX2lmIHsKIAkvKiBQcm9jZXNzIHJl c3VsdHMgb2YgYXV0by1uZWdvdGlhdGlvbiAqLwogCWVudW0geGdiZV9tb2RlICgqYW5fb3V0Y29t ZSkoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKik7CiAKKwkvKiBQcmUvUG9zdCBhdXRvLW5lZ290aWF0 aW9uIHN1cHBvcnQgKi8KKwl2b2lkICgqYW5fcHJlKShzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqKTsK Kwl2b2lkICgqYW5fcG9zdCkoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKik7CisKIAkvKiBQcmUvUG9z dCBLUiB0cmFpbmluZyBlbmFibGVtZW50IHN1cHBvcnQgKi8KIAl2b2lkICgqa3JfdHJhaW5pbmdf cHJlKShzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqKTsKIAl2b2lkICgqa3JfdHJhaW5pbmdfcG9zdCko c3RydWN0IHhnYmVfcHJ2X2RhdGEgKik7Ci0tIAoyLjE0LjMKCgpGcm9tIGU1ZThhMmIxMWRiZmMz ZGEwZjBiYTFmNjhjZGI4YTU2MTEzMWE3YTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+CkRhdGU6IE1vbiwgMjMgQXBy IDIwMTggMTE6NDM6MTcgLTA1MDAKU3ViamVjdDogW1BBVENIIDI5LzUyXSBhbWQteGdiZTogSW1w cm92ZSBLUiBhdXRvLW5lZ290aWF0aW9uIGFuZCB0cmFpbmluZwoKWyBVcHN0cmVhbSBjb21taXQg OTZmNGQ0MzBjNTA3ZWQ0ODU2MDQ4YzJkYzljMWEyZWE1YjVlNzRlNCBdCgpVcGRhdGUgeGdiZS1w aHktdjIuYyB0byBtYWtlIHVzZSBvZiB0aGUgYXV0by1uZWdvdGlhdGlvbiAoQU4pIHBoeSBob29r cwp0byBpbXByb3ZlIHRoZSBhYmlsaXR5IHRvIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZSBDbGF1c2Ug NzMgQU4gd2hlbiBydW5uaW5nCmF0IDEwZ2Jwcy4gIEhhcmR3YXJlIGNhbiBzb21ldGltZXMgaGF2 ZSBpc3N1ZXMgd2l0aCBDRFIgbG9jayB3aGVuIHRoZQpBTiBETUUgcGFnZSBleGNoYW5nZSBpcyBi ZWluZyBwZXJmb3JtZWQuCgpUaGUgQU4gYW5kIEtSIHRyYWluaW5nIGhvb2tzIGFyZSB1c2VkIGFz IGZvbGxvd3M6Ci0gVGhlIHByZSBBTiBob29rIGlzIHVzZWQgdG8gZGlzYWJsZSBDRFIgdHJhY2tp bmcgaW4gdGhlIFBIWSBzbyB0aGF0IHRoZQogIERNRSBwYWdlIGV4Y2hhbmdlIGNhbiBiZSBzdWNj ZXNzZnVsbHkgYW5kIGNvbnNpc3RlbnRseSBjb21wbGV0ZWQuCi0gVGhlIHBvc3QgS1IgdHJhaW5p bmcgaG9vayBpcyB1c2VkIHRvIHJlLWVuYWJsZSB0aGUgQ0RSIHRyYWNraW5nIHNvIHRoYXQKICBL UiB0cmFpbmluZyBjYW4gc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlLgotIFRoZSBwb3N0IEFOIGhvb2sg aXMgdXNlZCB0byBjaGVjayBmb3IgYW4gdW5zdWNjZXNzZnVsIEFOIHdoaWNoIHdpbGwKICBpbmNy ZWFzZSBhIENEUiB0cmFja2luZyBlbmFibGVtZW50IGRlbGF5ICh1cCB0byBhIG1heGltdW0gdmFs dWUpLgoKQWRkIHR3byBkZWJ1Z2ZzIGVudHJpZXMgdG8gYWxsb3cgY29udHJvbCBvdmVyIHVzZSBv ZiB0aGUgQ0RSIHRyYWNraW5nCndvcmthcm91bmQuICBUaGUgZGVidWdmcyBlbnRyaWVzIGFsbG93 IHRoZSBDRFIgdHJhY2tpbmcgd29ya2Fyb3VuZCB0bwpiZSBkaXNhYmxlZCBhbmQgZGV0ZXJtaW5l IHdoZXRoZXIgdG8gcmUtZW5hYmxlIENEUiB0cmFja2luZyBiZWZvcmUgb3IKYWZ0ZXIgbGluayB0 cmFpbmluZyBoYXMgYmVlbiBpbml0aWF0ZWQuCgpBbHNvLCB3aXRoIHRoZXNlIGNoYW5nZXMgdGhl IHJlY2VpdmVyIHJlc2V0IGN5Y2xlIHRoYXQgaXMgcGVyZm9ybWVkIGR1cmluZwp0aGUgbGluayBz dGF0dXMgY2hlY2sgY2FuIGJlIHBlcmZvcm1lZCBsZXNzIG9mdGVuLgoKU2lnbmVkLW9mZi1ieTog VG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2FtZC94Z2JlL3hnYmUtY29tbW9uLmggIHwgICA4ICsrCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9hbWQveGdiZS94Z2JlLWRlYnVnZnMuYyB8ICAxNiArKysrCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9hbWQveGdiZS94Z2JlLW1haW4uYyAgICB8ICAgMSArCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9h bWQveGdiZS94Z2JlLW1kaW8uYyAgICB8ICAgOCArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1k L3hnYmUveGdiZS1wY2kuYyAgICAgfCAgIDIgKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hn YmUveGdiZS1waHktdjIuYyAgfCAxMjUgKysrKysrKysrKysrKysrKysrKysrKysrKystCiBkcml2 ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLmggICAgICAgICB8ICAgNCArCiA3IGZpbGVz IGNoYW5nZWQsIDE2MCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtY29tbW9uLmggYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWNvbW1vbi5oCmluZGV4IDdlYTcyZWYxMWE1NS4uZDI3 MmRjNjk4NGFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2Jl LWNvbW1vbi5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtY29tbW9u LmgKQEAgLTEzMjEsNiArMTMyMSwxMCBAQAogI2RlZmluZSBNRElPX1ZFTkQyX0FOX1NUQVQJCTB4 ODAwMgogI2VuZGlmCiAKKyNpZm5kZWYgTURJT19WRU5EMl9QTUFfQ0RSX0NPTlRST0wKKyNkZWZp bmUgTURJT19WRU5EMl9QTUFfQ0RSX0NPTlRST0wJMHg4MDU2CisjZW5kaWYKKwogI2lmbmRlZiBN RElPX0NUUkwxX1NQRUVEMUcKICNkZWZpbmUgTURJT19DVFJMMV9TUEVFRDFHCQkoTURJT19DVFJM MV9TUEVFRDEwRyAmIH5CTUNSX1NQRUVEMTAwKQogI2VuZGlmCkBAIC0xMzY5LDYgKzEzNzMsMTAg QEAKICNkZWZpbmUgWEdCRV9BTl9DTDM3X1RYX0NPTkZJR19NQVNLCTB4MDgKICNkZWZpbmUgWEdC RV9BTl9DTDM3X01JSV9DVFJMXzhCSVQJMHgwMTAwCiAKKyNkZWZpbmUgWEdCRV9QTUFfQ0RSX1RS QUNLX0VOX01BU0sJMHgwMQorI2RlZmluZSBYR0JFX1BNQV9DRFJfVFJBQ0tfRU5fT0ZGCTB4MDAK KyNkZWZpbmUgWEdCRV9QTUFfQ0RSX1RSQUNLX0VOX09OCTB4MDEKKwogLyogQml0IHNldHRpbmcg YW5kIGdldHRpbmcgbWFjcm9zCiAgKiAgVGhlIGdldCBtYWNybyB3aWxsIGV4dHJhY3QgdGhlIGN1 cnJlbnQgYml0IGZpZWxkIHZhbHVlIGZyb20gd2l0aGluCiAgKiAgdGhlIHZhcmlhYmxlCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWRlYnVnZnMuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtZGVidWdmcy5jCmluZGV4IDdkMTI4YmU2 MTMxMC4uYjkxMTQzOTQ3ZWQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQv eGdiZS94Z2JlLWRlYnVnZnMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94 Z2JlLWRlYnVnZnMuYwpAQCAtNTE5LDYgKzUxOSwyMiBAQCB2b2lkIHhnYmVfZGVidWdmc19pbml0 KHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIAkJCQkgICAiZGVidWdmc19jcmVhdGVfZmls ZSBmYWlsZWRcbiIpOwogCX0KIAorCWlmIChwZGF0YS0+dmRhdGEtPmFuX2Nkcl93b3JrYXJvdW5k KSB7CisJCXBmaWxlID0gZGVidWdmc19jcmVhdGVfYm9vbCgiYW5fY2RyX3dvcmthcm91bmQiLCAw NjAwLAorCQkJCQkgICAgcGRhdGEtPnhnYmVfZGVidWdmcywKKwkJCQkJICAgICZwZGF0YS0+ZGVi dWdmc19hbl9jZHJfd29ya2Fyb3VuZCk7CisJCWlmICghcGZpbGUpCisJCQluZXRkZXZfZXJyKHBk YXRhLT5uZXRkZXYsCisJCQkJICAgImRlYnVnZnNfY3JlYXRlX2Jvb2wgZmFpbGVkXG4iKTsKKwor CQlwZmlsZSA9IGRlYnVnZnNfY3JlYXRlX2Jvb2woImFuX2Nkcl90cmFja19lYXJseSIsIDA2MDAs CisJCQkJCSAgICBwZGF0YS0+eGdiZV9kZWJ1Z2ZzLAorCQkJCQkgICAgJnBkYXRhLT5kZWJ1Z2Zz X2FuX2Nkcl90cmFja19lYXJseSk7CisJCWlmICghcGZpbGUpCisJCQluZXRkZXZfZXJyKHBkYXRh LT5uZXRkZXYsCisJCQkJICAgImRlYnVnZnNfY3JlYXRlX2Jvb2wgZmFpbGVkXG4iKTsKKwl9CisK IAlrZnJlZShidWYpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQv eGdiZS94Z2JlLW1haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtbWFp bi5jCmluZGV4IGQ5MWZhNTk1YmU5OC4uZTMxZDlkMWZiNmE2IDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLW1haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9hbWQveGdiZS94Z2JlLW1haW4uYwpAQCAtMzQ5LDYgKzM0OSw3IEBAIGludCB4Z2JlX2Nv bmZpZ19uZXRkZXYoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQogCVhHTUFDX1NFVF9CSVRT KHBkYXRhLT5yc3Nfb3B0aW9ucywgTUFDX1JTU0NSLCBVRFA0VEUsIDEpOwogCiAJLyogQ2FsbCBN RElPL1BIWSBpbml0aWFsaXphdGlvbiByb3V0aW5lICovCisJcGRhdGEtPmRlYnVnZnNfYW5fY2Ry X3dvcmthcm91bmQgPSBwZGF0YS0+dmRhdGEtPmFuX2Nkcl93b3JrYXJvdW5kOwogCXJldCA9IHBk YXRhLT5waHlfaWYucGh5X2luaXQocGRhdGEpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLW1kaW8uYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtbWRpby5jCmluZGV4IGUzZDM2MWUyNDJh YS4uMWI0NWNkNzNhMjU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdi ZS94Z2JlLW1kaW8uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLW1k aW8uYwpAQCAtNDMyLDYgKzQzMiw4IEBAIHN0YXRpYyB2b2lkIHhnYmVfYW43M19kaXNhYmxlKHN0 cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIAl4Z2JlX2FuNzNfc2V0KHBkYXRhLCBmYWxzZSwg ZmFsc2UpOwogCXhnYmVfYW43M19kaXNhYmxlX2ludGVycnVwdHMocGRhdGEpOwogCisJcGRhdGEt PmFuX3N0YXJ0ID0gMDsKKwogCW5ldGlmX2RiZyhwZGF0YSwgbGluaywgcGRhdGEtPm5ldGRldiwg IkNMNzMgQU4gZGlzYWJsZWRcbiIpOwogfQogCkBAIC01MTEsMTEgKzUxMywxMSBAQCBzdGF0aWMg ZW51bSB4Z2JlX2FuIHhnYmVfYW43M190eF90cmFpbmluZyhzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAq cGRhdGEsCiAJCVhNRElPX1dSSVRFKHBkYXRhLCBNRElPX01NRF9QTUFQTUQsIE1ESU9fUE1BXzEw R0JSX1BNRF9DVFJMLAogCQkJICAgIHJlZyk7CiAKLQkJaWYgKHBkYXRhLT5waHlfaWYucGh5X2lt cGwua3JfdHJhaW5pbmdfcG9zdCkKLQkJCXBkYXRhLT5waHlfaWYucGh5X2ltcGwua3JfdHJhaW5p bmdfcG9zdChwZGF0YSk7Ci0KIAkJbmV0aWZfZGJnKHBkYXRhLCBsaW5rLCBwZGF0YS0+bmV0ZGV2 LAogCQkJICAiS1IgdHJhaW5pbmcgaW5pdGlhdGVkXG4iKTsKKworCQlpZiAocGRhdGEtPnBoeV9p Zi5waHlfaW1wbC5rcl90cmFpbmluZ19wb3N0KQorCQkJcGRhdGEtPnBoeV9pZi5waHlfaW1wbC5r cl90cmFpbmluZ19wb3N0KHBkYXRhKTsKIAl9CiAKIAlyZXR1cm4gWEdCRV9BTl9QQUdFX1JFQ0VJ VkVEOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1wY2ku YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGNpLmMKaW5kZXggZWIyM2Y5 YmExYTlhLi44MmQxZjQxNmVlMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Ft ZC94Z2JlL3hnYmUtcGNpLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdi ZS1wY2kuYwpAQCAtNDU2LDYgKzQ1Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGdiZV92ZXJz aW9uX2RhdGEgeGdiZV92MmEgPSB7CiAJLmlycV9yZWlzc3VlX3N1cHBvcnQJCT0gMSwKIAkudHhf ZGVzY19wcmVmZXRjaAkJPSA1LAogCS5yeF9kZXNjX3ByZWZldGNoCQk9IDUsCisJLmFuX2Nkcl93 b3JrYXJvdW5kCQk9IDEsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhnYmVfdmVyc2lvbl9k YXRhIHhnYmVfdjJiID0gewpAQCAtNDcwLDYgKzQ3MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg eGdiZV92ZXJzaW9uX2RhdGEgeGdiZV92MmIgPSB7CiAJLmlycV9yZWlzc3VlX3N1cHBvcnQJCT0g MSwKIAkudHhfZGVzY19wcmVmZXRjaAkJPSA1LAogCS5yeF9kZXNjX3ByZWZldGNoCQk9IDUsCisJ LmFuX2Nkcl93b3JrYXJvdW5kCQk9IDEsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9k ZXZpY2VfaWQgeGdiZV9wY2lfdGFibGVbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2FtZC94Z2JlL3hnYmUtcGh5LXYyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQv eGdiZS94Z2JlLXBoeS12Mi5jCmluZGV4IDMzMDRhMjkxYWE5Ni4uYjQ4ZWZjMDRjNGRhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGh5LXYyLmMKQEAgLTE0Nyw2ICsx NDcsMTQgQEAKIC8qIFJhdGUtY2hhbmdlIGNvbXBsZXRlIHdhaXQvcmV0cnkgY291bnQgKi8KICNk ZWZpbmUgWEdCRV9SQVRFQ0hBTkdFX0NPVU5UCQk1MDAKIAorLyogQ0RSIGRlbGF5IHZhbHVlcyBm b3IgS1Igc3VwcG9ydCAoaW4gdXNlYykgKi8KKyNkZWZpbmUgWEdCRV9DRFJfREVMQVlfSU5JVAkJ MTAwMDAKKyNkZWZpbmUgWEdCRV9DRFJfREVMQVlfSU5DCQkxMDAwMAorI2RlZmluZSBYR0JFX0NE Ul9ERUxBWV9NQVgJCTEwMDAwMAorCisvKiBSUkMgZnJlcXVlbmN5IGR1cmluZyBsaW5rIHN0YXR1 cyBjaGVjayAqLworI2RlZmluZSBYR0JFX1JSQ19GUkVRVUVOQ1kJCTEwCisKIGVudW0geGdiZV9w b3J0X21vZGUgewogCVhHQkVfUE9SVF9NT0RFX1JTVkQgPSAwLAogCVhHQkVfUE9SVF9NT0RFX0JB Q0tQTEFORSwKQEAgLTM1NSw2ICszNjMsMTAgQEAgc3RydWN0IHhnYmVfcGh5X2RhdGEgewogCXVu c2lnbmVkIGludCByZWRydl9hZGRyOwogCXVuc2lnbmVkIGludCByZWRydl9sYW5lOwogCXVuc2ln bmVkIGludCByZWRydl9tb2RlbDsKKworCS8qIEtSIEFOIHN1cHBvcnQgKi8KKwl1bnNpZ25lZCBp bnQgcGh5X2Nkcl9ub3RyYWNrOworCXVuc2lnbmVkIGludCBwaHlfY2RyX2RlbGF5OwogfTsKIAog LyogSTJDLCBNRElPIGFuZCBHUElPIGxpbmVzIGFyZSBtdXhlZCwgc28gb25seSBvbmUgZGV2aWNl IGF0IGEgdGltZSAqLwpAQCAtMjM2MSw3ICsyMzczLDcgQEAgc3RhdGljIGludCB4Z2JlX3BoeV9s aW5rX3N0YXR1cyhzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEsIGludCAqYW5fcmVzdGFydCkK IAkJcmV0dXJuIDE7CiAKIAkvKiBObyBsaW5rLCBhdHRlbXB0IGEgcmVjZWl2ZXIgcmVzZXQgY3lj bGUgKi8KLQlpZiAocGh5X2RhdGEtPnJyY19jb3VudCsrKSB7CisJaWYgKHBoeV9kYXRhLT5ycmNf Y291bnQrKyA+IFhHQkVfUlJDX0ZSRVFVRU5DWSkgewogCQlwaHlfZGF0YS0+cnJjX2NvdW50ID0g MDsKIAkJeGdiZV9waHlfcnJjKHBkYXRhKTsKIAl9CkBAIC0yNjY5LDYgKzI2ODEsMTAzIEBAIHN0 YXRpYyBib29sIHhnYmVfcGh5X3BvcnRfZW5hYmxlZChzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRh dGEpCiAJcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyB2b2lkIHhnYmVfcGh5X2Nkcl90cmFjayhz dHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCit7CisJc3RydWN0IHhnYmVfcGh5X2RhdGEgKnBo eV9kYXRhID0gcGRhdGEtPnBoeV9kYXRhOworCisJaWYgKCFwZGF0YS0+ZGVidWdmc19hbl9jZHJf d29ya2Fyb3VuZCkKKwkJcmV0dXJuOworCisJaWYgKCFwaHlfZGF0YS0+cGh5X2Nkcl9ub3RyYWNr KQorCQlyZXR1cm47CisKKwl1c2xlZXBfcmFuZ2UocGh5X2RhdGEtPnBoeV9jZHJfZGVsYXksCisJ CSAgICAgcGh5X2RhdGEtPnBoeV9jZHJfZGVsYXkgKyA1MDApOworCisJWE1ESU9fV1JJVEVfQklU UyhwZGF0YSwgTURJT19NTURfUE1BUE1ELCBNRElPX1ZFTkQyX1BNQV9DRFJfQ09OVFJPTCwKKwkJ CSBYR0JFX1BNQV9DRFJfVFJBQ0tfRU5fTUFTSywKKwkJCSBYR0JFX1BNQV9DRFJfVFJBQ0tfRU5f T04pOworCisJcGh5X2RhdGEtPnBoeV9jZHJfbm90cmFjayA9IDA7Cit9CisKK3N0YXRpYyB2b2lk IHhnYmVfcGh5X2Nkcl9ub3RyYWNrKHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKK3sKKwlz dHJ1Y3QgeGdiZV9waHlfZGF0YSAqcGh5X2RhdGEgPSBwZGF0YS0+cGh5X2RhdGE7CisKKwlpZiAo IXBkYXRhLT5kZWJ1Z2ZzX2FuX2Nkcl93b3JrYXJvdW5kKQorCQlyZXR1cm47CisKKwlpZiAocGh5 X2RhdGEtPnBoeV9jZHJfbm90cmFjaykKKwkJcmV0dXJuOworCisJWE1ESU9fV1JJVEVfQklUUyhw ZGF0YSwgTURJT19NTURfUE1BUE1ELCBNRElPX1ZFTkQyX1BNQV9DRFJfQ09OVFJPTCwKKwkJCSBY R0JFX1BNQV9DRFJfVFJBQ0tfRU5fTUFTSywKKwkJCSBYR0JFX1BNQV9DRFJfVFJBQ0tfRU5fT0ZG KTsKKworCXhnYmVfcGh5X3JyYyhwZGF0YSk7CisKKwlwaHlfZGF0YS0+cGh5X2Nkcl9ub3RyYWNr ID0gMTsKK30KKworc3RhdGljIHZvaWQgeGdiZV9waHlfa3JfdHJhaW5pbmdfcG9zdChzdHJ1Y3Qg eGdiZV9wcnZfZGF0YSAqcGRhdGEpCit7CisJaWYgKCFwZGF0YS0+ZGVidWdmc19hbl9jZHJfdHJh Y2tfZWFybHkpCisJCXhnYmVfcGh5X2Nkcl90cmFjayhwZGF0YSk7Cit9CisKK3N0YXRpYyB2b2lk IHhnYmVfcGh5X2tyX3RyYWluaW5nX3ByZShzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCit7 CisJaWYgKHBkYXRhLT5kZWJ1Z2ZzX2FuX2Nkcl90cmFja19lYXJseSkKKwkJeGdiZV9waHlfY2Ry X3RyYWNrKHBkYXRhKTsKK30KKworc3RhdGljIHZvaWQgeGdiZV9waHlfYW5fcG9zdChzdHJ1Y3Qg eGdiZV9wcnZfZGF0YSAqcGRhdGEpCit7CisJc3RydWN0IHhnYmVfcGh5X2RhdGEgKnBoeV9kYXRh ID0gcGRhdGEtPnBoeV9kYXRhOworCisJc3dpdGNoIChwZGF0YS0+YW5fbW9kZSkgeworCWNhc2Ug WEdCRV9BTl9NT0RFX0NMNzM6CisJY2FzZSBYR0JFX0FOX01PREVfQ0w3M19SRURSVjoKKwkJaWYg KHBoeV9kYXRhLT5jdXJfbW9kZSAhPSBYR0JFX01PREVfS1IpCisJCQlicmVhazsKKworCQl4Z2Jl X3BoeV9jZHJfdHJhY2socGRhdGEpOworCisJCXN3aXRjaCAocGRhdGEtPmFuX3Jlc3VsdCkgewor CQljYXNlIFhHQkVfQU5fUkVBRFk6CisJCWNhc2UgWEdCRV9BTl9DT01QTEVURToKKwkJCWJyZWFr OworCQlkZWZhdWx0OgorCQkJaWYgKHBoeV9kYXRhLT5waHlfY2RyX2RlbGF5IDwgWEdCRV9DRFJf REVMQVlfTUFYKQorCQkJCXBoeV9kYXRhLT5waHlfY2RyX2RlbGF5ICs9IFhHQkVfQ0RSX0RFTEFZ X0lOQzsKKwkJCWVsc2UKKwkJCQlwaHlfZGF0YS0+cGh5X2Nkcl9kZWxheSA9IFhHQkVfQ0RSX0RF TEFZX0lOSVQ7CisJCQlicmVhazsKKwkJfQorCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsK Kwl9Cit9CisKK3N0YXRpYyB2b2lkIHhnYmVfcGh5X2FuX3ByZShzdHJ1Y3QgeGdiZV9wcnZfZGF0 YSAqcGRhdGEpCit7CisJc3RydWN0IHhnYmVfcGh5X2RhdGEgKnBoeV9kYXRhID0gcGRhdGEtPnBo eV9kYXRhOworCisJc3dpdGNoIChwZGF0YS0+YW5fbW9kZSkgeworCWNhc2UgWEdCRV9BTl9NT0RF X0NMNzM6CisJY2FzZSBYR0JFX0FOX01PREVfQ0w3M19SRURSVjoKKwkJaWYgKHBoeV9kYXRhLT5j dXJfbW9kZSAhPSBYR0JFX01PREVfS1IpCisJCQlicmVhazsKKworCQl4Z2JlX3BoeV9jZHJfbm90 cmFjayhwZGF0YSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KK30KKwogc3Rh dGljIHZvaWQgeGdiZV9waHlfc3RvcChzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCiB7CiAJ c3RydWN0IHhnYmVfcGh5X2RhdGEgKnBoeV9kYXRhID0gcGRhdGEtPnBoeV9kYXRhOwpAQCAtMjY4 MCw2ICsyNzg5LDkgQEAgc3RhdGljIHZvaWQgeGdiZV9waHlfc3RvcChzdHJ1Y3QgeGdiZV9wcnZf ZGF0YSAqcGRhdGEpCiAJeGdiZV9waHlfc2ZwX3Jlc2V0KHBoeV9kYXRhKTsKIAl4Z2JlX3BoeV9z ZnBfbW9kX2Fic2VudChwZGF0YSk7CiAKKwkvKiBSZXNldCBDRFIgc3VwcG9ydCAqLworCXhnYmVf cGh5X2Nkcl90cmFjayhwZGF0YSk7CisKIAkvKiBQb3dlciBvZmYgdGhlIFBIWSAqLwogCXhnYmVf cGh5X3Bvd2VyX29mZihwZGF0YSk7CiAKQEAgLTI3MTIsNiArMjgyNCw5IEBAIHN0YXRpYyBpbnQg eGdiZV9waHlfc3RhcnQoc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhKQogCS8qIFN0YXJ0IGlu IGhpZ2hlc3Qgc3VwcG9ydGVkIG1vZGUgKi8KIAl4Z2JlX3BoeV9zZXRfbW9kZShwZGF0YSwgcGh5 X2RhdGEtPnN0YXJ0X21vZGUpOwogCisJLyogUmVzZXQgQ0RSIHN1cHBvcnQgKi8KKwl4Z2JlX3Bo eV9jZHJfdHJhY2socGRhdGEpOworCiAJLyogQWZ0ZXIgc3RhcnRpbmcgdGhlIEkyQyBjb250cm9s bGVyLCB3ZSBjYW4gY2hlY2sgZm9yIGFuIFNGUCAqLwogCXN3aXRjaCAocGh5X2RhdGEtPnBvcnRf bW9kZSkgewogCWNhc2UgWEdCRV9QT1JUX01PREVfU0ZQOgpAQCAtMzAxOSw2ICszMTM0LDggQEAg c3RhdGljIGludCB4Z2JlX3BoeV9pbml0KHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIAkJ fQogCX0KIAorCXBoeV9kYXRhLT5waHlfY2RyX2RlbGF5ID0gWEdCRV9DRFJfREVMQVlfSU5JVDsK KwogCS8qIFJlZ2lzdGVyIGZvciBkcml2aW5nIGV4dGVybmFsIFBIWXMgKi8KIAltaWkgPSBkZXZt X21kaW9idXNfYWxsb2MocGRhdGEtPmRldik7CiAJaWYgKCFtaWkpIHsKQEAgLTMwNzEsNCArMzE4 OCwxMCBAQCB2b2lkIHhnYmVfaW5pdF9mdW5jdGlvbl9wdHJzX3BoeV92MihzdHJ1Y3QgeGdiZV9w aHlfaWYgKnBoeV9pZikKIAlwaHlfaW1wbC0+YW5fYWR2ZXJ0aXNpbmcJPSB4Z2JlX3BoeV9hbl9h ZHZlcnRpc2luZzsKIAogCXBoeV9pbXBsLT5hbl9vdXRjb21lCQk9IHhnYmVfcGh5X2FuX291dGNv bWU7CisKKwlwaHlfaW1wbC0+YW5fcHJlCQk9IHhnYmVfcGh5X2FuX3ByZTsKKwlwaHlfaW1wbC0+ YW5fcG9zdAkJPSB4Z2JlX3BoeV9hbl9wb3N0OworCisJcGh5X2ltcGwtPmtyX3RyYWluaW5nX3By ZQk9IHhnYmVfcGh5X2tyX3RyYWluaW5nX3ByZTsKKwlwaHlfaW1wbC0+a3JfdHJhaW5pbmdfcG9z dAk9IHhnYmVfcGh5X2tyX3RyYWluaW5nX3Bvc3Q7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdi ZS94Z2JlLmgKaW5kZXggZmEwYjUxZWExYjk1Li45NWQ0YjU2NDQ4YzYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUuaAorKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9hbWQveGdiZS94Z2JlLmgKQEAgLTk5NCw2ICs5OTQsNyBAQCBzdHJ1Y3QgeGdiZV92ZXJz aW9uX2RhdGEgewogCXVuc2lnbmVkIGludCBpcnFfcmVpc3N1ZV9zdXBwb3J0OwogCXVuc2lnbmVk IGludCB0eF9kZXNjX3ByZWZldGNoOwogCXVuc2lnbmVkIGludCByeF9kZXNjX3ByZWZldGNoOwor CXVuc2lnbmVkIGludCBhbl9jZHJfd29ya2Fyb3VuZDsKIH07CiAKIHN0cnVjdCB4Z2JlX3Z4bGFu X2RhdGEgewpAQCAtMTI2Miw2ICsxMjYzLDkgQEAgc3RydWN0IHhnYmVfcHJ2X2RhdGEgewogCXVu c2lnbmVkIGludCBkZWJ1Z2ZzX3hwcm9wX3JlZzsKIAogCXVuc2lnbmVkIGludCBkZWJ1Z2ZzX3hp MmNfcmVnOworCisJYm9vbCBkZWJ1Z2ZzX2FuX2Nkcl93b3JrYXJvdW5kOworCWJvb2wgZGVidWdm c19hbl9jZHJfdHJhY2tfZWFybHk7CiB9OwogCiAvKiBGdW5jdGlvbiBwcm90b3R5cGVzKi8KLS0g CjIuMTQuMwoKCkZyb20gNTk2Y2E3M2JjZjA3ODRiMmMwOWU4ZTI0NjcwOWU2Y2I1MmI0N2E1MiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFj a3lAYW1kLmNvbT4KRGF0ZTogTW9uLCAyMyBBcHIgMjAxOCAxMTo0MzozNCAtMDUwMApTdWJqZWN0 OiBbUEFUQ0ggMzAvNTJdIGFtZC14Z2JlOiBPbmx5IHVzZSB0aGUgU0ZQIHN1cHBvcnRlZCB0cmFu c2NlaXZlcgogc2lnbmFscwoKWyBVcHN0cmVhbSBjb21taXQgMTE3ZGY2NTVmOGVkNTFhZGI2ZTZi MTYzODEyYTA2ZWJlYWU5ZjQ1MyBdCgpUaGUgU0ZQIGVlcHJvbSBpbmRpY2F0ZXMgdGhlIHRyYW5z Y2VpdmVyIHNpZ25hbHMgKFJ4IExPUywgVHggRmF1bHQsIGV0Yy4pCnRoYXQgaXQgc3VwcG9ydHMu ICBVcGRhdGUgdGhlIGRyaXZlciB0byBpbmNsdWRlIGNoZWNraW5nIHRoZSBlZXByb20gZGF0YQp3 aGVuIGRlY2lkaW5nIHdoZXRoZXIgdG8gdXNlIGEgdHJhbnNjZWl2ZXIgc2lnbmFsLgoKU2lnbmVk LW9mZi1ieTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGh5LXYyLmMgfCA3MSArKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDE3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUt cGh5LXYyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jCmlu ZGV4IGI0OGVmYzA0YzRkYS4uYWFjODg0MzE0MDAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2FtZC94Z2JlL3hnYmUtcGh5LXYyLmMKQEAgLTI1Myw2ICsyNTMsMTAgQEAgZW51bSB4Z2JlX3Nm cF9zcGVlZCB7CiAjZGVmaW5lIFhHQkVfU0ZQX0JBU0VfVkVORE9SX1NOCQkJNAogI2RlZmluZSBY R0JFX1NGUF9CQVNFX1ZFTkRPUl9TTl9MRU4JCTE2CiAKKyNkZWZpbmUgWEdCRV9TRlBfRVhURF9P UFQxCQkJMQorI2RlZmluZSBYR0JFX1NGUF9FWFREX09QVDFfUlhfTE9TCQlCSVQoMSkKKyNkZWZp bmUgWEdCRV9TRlBfRVhURF9PUFQxX1RYX0ZBVUxUCQlCSVQoMykKKwogI2RlZmluZSBYR0JFX1NG UF9FWFREX0RJQUcJCQkyOAogI2RlZmluZSBYR0JFX1NGUF9FWFREX0RJQUdfQUREUl9DSEFOR0UJ CUJJVCgyKQogCkBAIC0zMzIsNiArMzM2LDcgQEAgc3RydWN0IHhnYmVfcGh5X2RhdGEgewogCiAJ dW5zaWduZWQgaW50IHNmcF9ncGlvX2FkZHJlc3M7CiAJdW5zaWduZWQgaW50IHNmcF9ncGlvX21h c2s7CisJdW5zaWduZWQgaW50IHNmcF9ncGlvX2lucHV0czsKIAl1bnNpZ25lZCBpbnQgc2ZwX2dw aW9fcnhfbG9zOwogCXVuc2lnbmVkIGludCBzZnBfZ3Bpb190eF9mYXVsdDsKIAl1bnNpZ25lZCBp bnQgc2ZwX2dwaW9fbW9kX2Fic2VudDsKQEAgLTk4Niw2ICs5OTEsNDkgQEAgc3RhdGljIHZvaWQg eGdiZV9waHlfc2ZwX2V4dGVybmFsX3BoeShzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCiAJ cGh5X2RhdGEtPnNmcF9waHlfYXZhaWwgPSAxOwogfQogCitzdGF0aWMgYm9vbCB4Z2JlX3BoeV9j aGVja19zZnBfcnhfbG9zKHN0cnVjdCB4Z2JlX3BoeV9kYXRhICpwaHlfZGF0YSkKK3sKKwl1OCAq c2ZwX2V4dGQgPSBwaHlfZGF0YS0+c2ZwX2VlcHJvbS5leHRkOworCisJaWYgKCEoc2ZwX2V4dGRb WEdCRV9TRlBfRVhURF9PUFQxXSAmIFhHQkVfU0ZQX0VYVERfT1BUMV9SWF9MT1MpKQorCQlyZXR1 cm4gZmFsc2U7CisKKwlpZiAocGh5X2RhdGEtPnNmcF9ncGlvX21hc2sgJiBYR0JFX0dQSU9fTk9f UlhfTE9TKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAocGh5X2RhdGEtPnNmcF9ncGlvX2lucHV0 cyAmICgxIDw8IHBoeV9kYXRhLT5zZnBfZ3Bpb19yeF9sb3MpKQorCQlyZXR1cm4gdHJ1ZTsKKwor CXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgeGdiZV9waHlfY2hlY2tfc2ZwX3R4X2Zh dWx0KHN0cnVjdCB4Z2JlX3BoeV9kYXRhICpwaHlfZGF0YSkKK3sKKwl1OCAqc2ZwX2V4dGQgPSBw aHlfZGF0YS0+c2ZwX2VlcHJvbS5leHRkOworCisJaWYgKCEoc2ZwX2V4dGRbWEdCRV9TRlBfRVhU RF9PUFQxXSAmIFhHQkVfU0ZQX0VYVERfT1BUMV9UWF9GQVVMVCkpCisJCXJldHVybiBmYWxzZTsK KworCWlmIChwaHlfZGF0YS0+c2ZwX2dwaW9fbWFzayAmIFhHQkVfR1BJT19OT19UWF9GQVVMVCkK KwkJcmV0dXJuIGZhbHNlOworCisJaWYgKHBoeV9kYXRhLT5zZnBfZ3Bpb19pbnB1dHMgJiAoMSA8 PCBwaHlfZGF0YS0+c2ZwX2dwaW9fdHhfZmF1bHQpKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVy biBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgeGdiZV9waHlfY2hlY2tfc2ZwX21vZF9hYnNlbnQo c3RydWN0IHhnYmVfcGh5X2RhdGEgKnBoeV9kYXRhKQoreworCWlmIChwaHlfZGF0YS0+c2ZwX2dw aW9fbWFzayAmIFhHQkVfR1BJT19OT19NT0RfQUJTRU5UKQorCQlyZXR1cm4gZmFsc2U7CisKKwlp ZiAocGh5X2RhdGEtPnNmcF9ncGlvX2lucHV0cyAmICgxIDw8IHBoeV9kYXRhLT5zZnBfZ3Bpb19t b2RfYWJzZW50KSkKKwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRp YyBib29sIHhnYmVfcGh5X2JlbGZ1c2VfcGFyc2VfcXVpcmtzKHN0cnVjdCB4Z2JlX3Bydl9kYXRh ICpwZGF0YSkKIHsKIAlzdHJ1Y3QgeGdiZV9waHlfZGF0YSAqcGh5X2RhdGEgPSBwZGF0YS0+cGh5 X2RhdGE7CkBAIC0xMDMxLDYgKzEwNzksMTAgQEAgc3RhdGljIHZvaWQgeGdiZV9waHlfc2ZwX3Bh cnNlX2VlcHJvbShzdHJ1Y3QgeGdiZV9wcnZfZGF0YSAqcGRhdGEpCiAJaWYgKHNmcF9iYXNlW1hH QkVfU0ZQX0JBU0VfRVhUX0lEXSAhPSBYR0JFX1NGUF9FWFRfSURfU0ZQKQogCQlyZXR1cm47CiAK KwkvKiBVcGRhdGUgdHJhbnNjZWl2ZXIgc2lnbmFscyAoZWVwcm9tIGV4dGQvb3B0aW9ucykgKi8K KwlwaHlfZGF0YS0+c2ZwX3R4X2ZhdWx0ID0geGdiZV9waHlfY2hlY2tfc2ZwX3R4X2ZhdWx0KHBo eV9kYXRhKTsKKwlwaHlfZGF0YS0+c2ZwX3J4X2xvcyA9IHhnYmVfcGh5X2NoZWNrX3NmcF9yeF9s b3MocGh5X2RhdGEpOworCiAJaWYgKHhnYmVfcGh5X3NmcF9wYXJzZV9xdWlya3MocGRhdGEpKQog CQlyZXR1cm47CiAKQEAgLTExOTYsNyArMTI0OCw2IEBAIHN0YXRpYyBpbnQgeGdiZV9waHlfc2Zw X3JlYWRfZWVwcm9tKHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIHN0YXRpYyB2b2lkIHhn YmVfcGh5X3NmcF9zaWduYWxzKHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIHsKIAlzdHJ1 Y3QgeGdiZV9waHlfZGF0YSAqcGh5X2RhdGEgPSBwZGF0YS0+cGh5X2RhdGE7Ci0JdW5zaWduZWQg aW50IGdwaW9faW5wdXQ7CiAJdTggZ3Bpb19yZWcsIGdwaW9fcG9ydHNbMl07CiAJaW50IHJldDsK IApAQCAtMTIxMSwyMyArMTI2Miw5IEBAIHN0YXRpYyB2b2lkIHhnYmVfcGh5X3NmcF9zaWduYWxz KHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSkKIAkJcmV0dXJuOwogCX0KIAotCWdwaW9faW5w dXQgPSAoZ3Bpb19wb3J0c1sxXSA8PCA4KSB8IGdwaW9fcG9ydHNbMF07Ci0KLQlpZiAocGh5X2Rh dGEtPnNmcF9ncGlvX21hc2sgJiBYR0JFX0dQSU9fTk9fTU9EX0FCU0VOVCkgewotCQkvKiBObyBH UElPLCBqdXN0IGFzc3VtZSB0aGUgbW9kdWxlIGlzIHByZXNlbnQgZm9yIG5vdyAqLwotCQlwaHlf ZGF0YS0+c2ZwX21vZF9hYnNlbnQgPSAwOwotCX0gZWxzZSB7Ci0JCWlmICghKGdwaW9faW5wdXQg JiAoMSA8PCBwaHlfZGF0YS0+c2ZwX2dwaW9fbW9kX2Fic2VudCkpKQotCQkJcGh5X2RhdGEtPnNm cF9tb2RfYWJzZW50ID0gMDsKLQl9Ci0KLQlpZiAoIShwaHlfZGF0YS0+c2ZwX2dwaW9fbWFzayAm IFhHQkVfR1BJT19OT19SWF9MT1MpICYmCi0JICAgIChncGlvX2lucHV0ICYgKDEgPDwgcGh5X2Rh dGEtPnNmcF9ncGlvX3J4X2xvcykpKQotCQlwaHlfZGF0YS0+c2ZwX3J4X2xvcyA9IDE7CisJcGh5 X2RhdGEtPnNmcF9ncGlvX2lucHV0cyA9IChncGlvX3BvcnRzWzFdIDw8IDgpIHwgZ3Bpb19wb3J0 c1swXTsKIAotCWlmICghKHBoeV9kYXRhLT5zZnBfZ3Bpb19tYXNrICYgWEdCRV9HUElPX05PX1RY X0ZBVUxUKSAmJgotCSAgICAoZ3Bpb19pbnB1dCAmICgxIDw8IHBoeV9kYXRhLT5zZnBfZ3Bpb190 eF9mYXVsdCkpKQotCQlwaHlfZGF0YS0+c2ZwX3R4X2ZhdWx0ID0gMTsKKwlwaHlfZGF0YS0+c2Zw X21vZF9hYnNlbnQgPSB4Z2JlX3BoeV9jaGVja19zZnBfbW9kX2Fic2VudChwaHlfZGF0YSk7CiB9 CiAKIHN0YXRpYyB2b2lkIHhnYmVfcGh5X3NmcF9tb2RfYWJzZW50KHN0cnVjdCB4Z2JlX3Bydl9k YXRhICpwZGF0YSkKLS0gCjIuMTQuMwoKCkZyb20gZjA5Yjg4MGI2ZjljMWNiY2YxYTNiZThlMmEw YTZjZTM1MDJlOWU2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGFuZGVyIEFy aW5nIDxhcmluZ0Btb2phdGF0dS5jb20+CkRhdGU6IEZyaSwgMjAgQXByIDIwMTggMTU6MTU6MDMg LTA0MDAKU3ViamVjdDogW1BBVENIIDMxLzUyXSBuZXQ6IHNjaGVkOiBpZmU6IHNpZ25hbCBub3Qg ZmluZGluZyBtZXRhaWQKClsgVXBzdHJlYW0gY29tbWl0IGY2Y2QxNDUzN2ZmOTkxOTA4MWJlMTli OWM1M2I5YjE5YzBkM2VhOTcgXQoKV2UgbmVlZCB0byByZWNvcmQgc3RhdHMgZm9yIHJlY2VpdmVk IG1ldGFkYXRhIHRoYXQgd2UgZG9udCBrbm93IGhvdwp0byBwcm9jZXNzLiBIYXZlIGZpbmRfZGVj b2RlX21ldGFpZCgpIHJldHVybiAtRU5PRU5UIHRvIGNhcHR1cmUgdGhpcy4KClNpZ25lZC1vZmYt Ynk6IEFsZXhhbmRlciBBcmluZyA8YXJpbmdAbW9qYXRhdHUuY29tPgpSZXZpZXdlZC1ieTogWW90 YW0gR2lnaSA8eW90YW0uZ2lAZ21haWwuY29tPgpBY2tlZC1ieTogSmFtYWwgSGFkaSBTYWxpbSA8 amhzQG1vamF0YXR1LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfaWZlLmMgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2No ZWQvYWN0X2lmZS5jIGIvbmV0L3NjaGVkL2FjdF9pZmUuYwppbmRleCA1OTU0ZTk5MjY4NWEuLjNj MDQ2ZDUwNWU4NiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9pZmUuYworKysgYi9uZXQvc2No ZWQvYWN0X2lmZS5jCkBAIC02NTIsNyArNjUyLDcgQEAgc3RhdGljIGludCBmaW5kX2RlY29kZV9t ZXRhaWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRjZl9pZmVfaW5mbyAqaWZlLAogCQl9 CiAJfQogCi0JcmV0dXJuIDA7CisJcmV0dXJuIC1FTk9FTlQ7CiB9CiAKIHN0YXRpYyBpbnQgdGNm X2lmZV9kZWNvZGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjX2FjdGlvbiAq YSwKLS0gCjIuMTQuMwoKCkZyb20gNTk2NDBiZWNiNGFkZGE3ODE2MjFmN2RkZjVmZTNmMGFkMDUz NzdlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGFuZGVyIEFyaW5nIDxhcmlu Z0Btb2phdGF0dS5jb20+CkRhdGU6IEZyaSwgMjAgQXByIDIwMTggMTU6MTU6MDQgLTA0MDAKU3Vi amVjdDogW1BBVENIIDMyLzUyXSBuZXQ6IHNjaGVkOiBpZmU6IGhhbmRsZSBtYWxmb3JtZWQgdGx2 IGxlbmd0aAoKWyBVcHN0cmVhbSBjb21taXQgY2M3NGVkZGQwZmYzMjVkNTczNzNjZWE5OWY2NDJi Nzg3ZDdmNzZmNSBdCgpUaGVyZSBpcyBjdXJyZW50bHkgbm8gaGFuZGxpbmcgdG8gY2hlY2sgb24g YSBpbnZhbGlkIHRsdiBsZW5ndGguIFRoaXMKcGF0Y2ggYWRkcyBzdWNoIGhhbmRsaW5nIHRvIGF2 b2lkIGtpbGxpbmcgdGhlIGtlcm5lbCB3aXRoIGEgbWFsZm9ybWVkCmlmZSBwYWNrZXQuCgpTaWdu ZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgQXJpbmcgPGFyaW5nQG1vamF0YXR1LmNvbT4KUmV2aWV3ZWQt Ynk6IFlvdGFtIEdpZ2kgPHlvdGFtLmdpQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEphbWFsIEhhZGkg U2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pZmUuaCAgIHwgIDMgKystCiBu ZXQvaWZlL2lmZS5jICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0KIG5ldC9zY2hlZC9hY3RfaWZlLmMgfCAgNyArKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDQx IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQv aWZlLmggYi9pbmNsdWRlL25ldC9pZmUuaAppbmRleCA0NGI5YzAwZjcyMjMuLmUxMTc2MTdlM2Mz NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaWZlLmgKKysrIGIvaW5jbHVkZS9uZXQvaWZlLmgK QEAgLTEyLDcgKzEyLDggQEAKIHZvaWQgKmlmZV9lbmNvZGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwg dTE2IG1ldGFsZW4pOwogdm9pZCAqaWZlX2RlY29kZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYg Km1ldGFsZW4pOwogCi12b2lkICppZmVfdGx2X21ldGFfZGVjb2RlKHZvaWQgKnNrYmRhdGEsIHUx NiAqYXR0cnR5cGUsIHUxNiAqZGxlbiwgdTE2ICp0b3RsZW4pOwordm9pZCAqaWZlX3Rsdl9tZXRh X2RlY29kZSh2b2lkICpza2JkYXRhLCBjb25zdCB2b2lkICppZmVoZHJfZW5kLCB1MTYgKmF0dHJ0 eXBlLAorCQkJICB1MTYgKmRsZW4sIHUxNiAqdG90bGVuKTsKIGludCBpZmVfdGx2X21ldGFfZW5j b2RlKHZvaWQgKnNrYmRhdGEsIHUxNiBhdHRydHlwZSwgdTE2IGRsZW4sCiAJCQljb25zdCB2b2lk ICpkdmFsKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2lmZS9pZmUuYyBiL25ldC9pZmUvaWZlLmMKaW5k ZXggN2QxZWM3NmU3ZjQzLi43ZmJlNzBhMGFmNGIgMTAwNjQ0Ci0tLSBhL25ldC9pZmUvaWZlLmMK KysrIGIvbmV0L2lmZS9pZmUuYwpAQCAtOTIsMTIgKzkyLDQzIEBAIHN0cnVjdCBtZXRhX3Rsdmhk ciB7CiAJX19iZTE2IGxlbjsKIH07CiAKK3N0YXRpYyBib29sIF9faWZlX3Rsdl9tZXRhX3ZhbGlk KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNrYmRhdGEsCisJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIg KmlmZWhkcl9lbmQpCit7CisJY29uc3Qgc3RydWN0IG1ldGFfdGx2aGRyICp0bHY7CisJdTE2IHRs dmxlbjsKKworCWlmICh1bmxpa2VseShza2JkYXRhICsgc2l6ZW9mKCp0bHYpID4gaWZlaGRyX2Vu ZCkpCisJCXJldHVybiBmYWxzZTsKKworCXRsdiA9IChjb25zdCBzdHJ1Y3QgbWV0YV90bHZoZHIg Kilza2JkYXRhOworCXRsdmxlbiA9IG50b2hzKHRsdi0+bGVuKTsKKworCS8qIHRsdiBsZW5ndGgg ZmllbGQgaXMgaW5jIGhlYWRlciwgY2hlY2sgb24gbWluaW11bSAqLworCWlmICh0bHZsZW4gPCBO TEFfSERSTEVOKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBvdmVyZmxvdyBieSBOTEFfQUxJR04g Y2hlY2sgKi8KKwlpZiAoTkxBX0FMSUdOKHRsdmxlbikgPCB0bHZsZW4pCisJCXJldHVybiBmYWxz ZTsKKworCWlmICh1bmxpa2VseShza2JkYXRhICsgTkxBX0FMSUdOKHRsdmxlbikgPiBpZmVoZHJf ZW5kKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9CisKIC8qIENhbGxlciB0 YWtlcyBjYXJlIG9mIHByZXNlbnRpbmcgZGF0YSBpbiBuZXR3b3JrIG9yZGVyCiAgKi8KLXZvaWQg KmlmZV90bHZfbWV0YV9kZWNvZGUodm9pZCAqc2tiZGF0YSwgdTE2ICphdHRydHlwZSwgdTE2ICpk bGVuLCB1MTYgKnRvdGxlbikKK3ZvaWQgKmlmZV90bHZfbWV0YV9kZWNvZGUodm9pZCAqc2tiZGF0 YSwgY29uc3Qgdm9pZCAqaWZlaGRyX2VuZCwgdTE2ICphdHRydHlwZSwKKwkJCSAgdTE2ICpkbGVu LCB1MTYgKnRvdGxlbikKIHsKLQlzdHJ1Y3QgbWV0YV90bHZoZHIgKnRsdiA9IChzdHJ1Y3QgbWV0 YV90bHZoZHIgKikgc2tiZGF0YTsKKwlzdHJ1Y3QgbWV0YV90bHZoZHIgKnRsdjsKKworCWlmICgh X19pZmVfdGx2X21ldGFfdmFsaWQoc2tiZGF0YSwgaWZlaGRyX2VuZCkpCisJCXJldHVybiBOVUxM OwogCisJdGx2ID0gKHN0cnVjdCBtZXRhX3RsdmhkciAqKXNrYmRhdGE7CiAJKmRsZW4gPSBudG9o cyh0bHYtPmxlbikgLSBOTEFfSERSTEVOOwogCSphdHRydHlwZSA9IG50b2hzKHRsdi0+dHlwZSk7 CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9hY3RfaWZlLmMgYi9uZXQvc2NoZWQvYWN0X2lmZS5j CmluZGV4IDNjMDQ2ZDUwNWU4Ni4uMWQ0NzdiMDU0ZjJlIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQv YWN0X2lmZS5jCisrKyBiL25ldC9zY2hlZC9hY3RfaWZlLmMKQEAgLTY4Miw3ICs2ODIsMTIgQEAg c3RhdGljIGludCB0Y2ZfaWZlX2RlY29kZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1 Y3QgdGNfYWN0aW9uICphLAogCQl1MTYgbXR5cGU7CiAJCXUxNiBkbGVuOwogCi0JCWN1cnJfZGF0 YSA9IGlmZV90bHZfbWV0YV9kZWNvZGUodGx2X2RhdGEsICZtdHlwZSwgJmRsZW4sIE5VTEwpOwor CQljdXJyX2RhdGEgPSBpZmVfdGx2X21ldGFfZGVjb2RlKHRsdl9kYXRhLCBpZmVoZHJfZW5kLCAm bXR5cGUsCisJCQkJCQkmZGxlbiwgTlVMTCk7CisJCWlmICghY3Vycl9kYXRhKSB7CisJCQlxc3Rh dHNfZHJvcF9pbmModGhpc19jcHVfcHRyKGlmZS0+Y29tbW9uLmNwdV9xc3RhdHMpKTsKKwkJCXJl dHVybiBUQ19BQ1RfU0hPVDsKKwkJfQogCiAJCWlmIChmaW5kX2RlY29kZV9tZXRhaWQoc2tiLCBp ZmUsIG10eXBlLCBkbGVuLCBjdXJyX2RhdGEpKSB7CiAJCQkvKiBhYnVzZSBvdmVybGltaXRzIHRv IGNvdW50IHdoZW4gd2UgcmVjZWl2ZSBtZXRhZGF0YQotLSAKMi4xNC4zCgoKRnJvbSA5MjUxMThm MTk0M2Y0OGQ0NTQyNGE3NDQ5MDdhNGY4YjlhOTA2OTcxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBBbGV4YW5kZXIgQXJpbmcgPGFyaW5nQG1vamF0YXR1LmNvbT4KRGF0ZTogRnJpLCAy MCBBcHIgMjAxOCAxNToxNTowNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMzMvNTJdIG5ldDogc2No ZWQ6IGlmZTogY2hlY2sgb24gbWV0YWRhdGEgbGVuZ3RoCgpbIFVwc3RyZWFtIGNvbW1pdCBkNTc0 OTNkNmQxYmUyNmM4YWM4NTE2YTQ0NjNiZmUyNDk1Njk3OGViIF0KClRoaXMgcGF0Y2ggY2hlY2tz IGlmIHNrIGJ1ZmZlciBpcyBhdmFpbGFibGUgdG8gZGVyZXJlbmNlIGlmZSBoZWFkZXIuIElmCm5v dCB0aGVuIE5VTEwgd2lsbCByZXR1cm5lZCB0byBzaWduYWwgYW4gbWFsZm9ybWVkIGlmZSBwYWNr ZXQuIFRoaXMKYXZvaWRzIHRvIGNyYXNoaW5nIHRoZSBrZXJuZWwgZnJvbSBvdXRzaWRlLgoKU2ln bmVkLW9mZi1ieTogQWxleGFuZGVyIEFyaW5nIDxhcmluZ0Btb2phdGF0dS5jb20+ClJldmlld2Vk LWJ5OiBZb3RhbSBHaWdpIDx5b3RhbS5naUBnbWFpbC5jb20+CkFja2VkLWJ5OiBKYW1hbCBIYWRp IFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lmZS9pZmUuYyB8IDMgKysrCiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lmZS9pZmUuYyBiL25l dC9pZmUvaWZlLmMKaW5kZXggN2ZiZTcwYTBhZjRiLi4xM2JiZjhjYjZhMzkgMTAwNjQ0Ci0tLSBh L25ldC9pZmUvaWZlLmMKKysrIGIvbmV0L2lmZS9pZmUuYwpAQCAtNjksNiArNjksOSBAQCB2b2lk ICppZmVfZGVjb2RlKHN0cnVjdCBza19idWZmICpza2IsIHUxNiAqbWV0YWxlbikKIAlpbnQgdG90 YWxfcHVsbDsKIAl1MTYgaWZlaGRybG47CiAKKwlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBza2It PmRldi0+aGFyZF9oZWFkZXJfbGVuICsgSUZFX01FVEFIRFJMRU4pKQorCQlyZXR1cm4gTlVMTDsK KwogCWlmZWhkciA9IChzdHJ1Y3QgaWZlaGVhZHIgKikgKHNrYi0+ZGF0YSArIHNrYi0+ZGV2LT5o YXJkX2hlYWRlcl9sZW4pOwogCWlmZWhkcmxuID0gbnRvaHMoaWZlaGRyLT5tZXRhbGVuKTsKIAl0 b3RhbF9wdWxsID0gc2tiLT5kZXYtPmhhcmRfaGVhZGVyX2xlbiArIGlmZWhkcmxuOwotLSAKMi4x NC4zCgoKRnJvbSBkMjZiMjIzNmE4YjQ0NGM0MGNhNzc3N2ZkM2Y1NjkyYThkMTcxNTMyIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFs aW5rLmZyPgpEYXRlOiBUaHUsIDEyIEFwciAyMDE4IDIwOjUwOjMzICswMjAwClN1YmplY3Q6IFtQ QVRDSCAzNC81Ml0gbDJ0cDogaG9sZCByZWZlcmVuY2Ugb24gdHVubmVscyBpbiBuZXRsaW5rIGR1 bXBzCgpbIFVwc3RyZWFtIGNvbW1pdCA1ODQ2YzEzMWMzOWI2ZDBhZGQzNmVjMTlkYzg2NTA3MDA2 OTBmOTMwIF0KCmwydHBfdHVubmVsX2ZpbmRfbnRoKCkgaXMgdW5zYWZlOiBubyByZWZlcmVuY2Ug aXMgaGVsZCBvbiB0aGUgcmV0dXJuZWQKdHVubmVsLCB0aGVyZWZvcmUgaXQgY2FuIGJlIGZyZWVk IHdoZW5ldmVyIHRoZSBjYWxsZXIgdXNlcyBpdC4KVGhpcyBwYXRjaCBkZWZpbmVzIGwydHBfdHVu bmVsX2dldF9udGgoKSB3aGljaCB3b3JrcyBzaW1pbGFybHksIGJ1dAphbHNvIHRha2VzIGEgcmVm ZXJlbmNlIG9uIHRoZSByZXR1cm5lZCB0dW5uZWwuIFRoZSBjYWxsZXIgdGhlbiBoYXMgdG8KZHJv cCBpdCBhZnRlciBpdCBzdG9wcyB1c2luZyB0aGUgdHVubmVsLgoKQ29udmVydCBuZXRsaW5rIGR1 bXBzIHRvIG1ha2UgdGhlbSBzYWZlIGFnYWluc3QgY29uY3VycmVudCB0dW5uZWwKZGVsZXRpb24u CgpGaXhlczogMzA5Nzk1ZjRiZWMyICgibDJ0cDogQWRkIG5ldGxpbmsgY29udHJvbCBBUEkgZm9y IEwyVFAiKQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5r LmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2wydHAvbDJ0cF9jb3JlLmMgICAgfCAyMCArKysrKysrKysrKysrKysrKysrKwog bmV0L2wydHAvbDJ0cF9jb3JlLmggICAgfCAgMiArKwogbmV0L2wydHAvbDJ0cF9uZXRsaW5rLmMg fCAxMSArKysrKysrKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfY29yZS5jIGIvbmV0L2wydHAv bDJ0cF9jb3JlLmMKaW5kZXggMGZiZDNlZTI2MTY1Li5jOGM0MTgzZjBmMzcgMTAwNjQ0Ci0tLSBh L25ldC9sMnRwL2wydHBfY29yZS5jCisrKyBiL25ldC9sMnRwL2wydHBfY29yZS5jCkBAIC0xODMs NiArMTgzLDI2IEBAIHN0cnVjdCBsMnRwX3R1bm5lbCAqbDJ0cF90dW5uZWxfZ2V0KGNvbnN0IHN0 cnVjdCBuZXQgKm5ldCwgdTMyIHR1bm5lbF9pZCkKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGwydHBf dHVubmVsX2dldCk7CiAKK3N0cnVjdCBsMnRwX3R1bm5lbCAqbDJ0cF90dW5uZWxfZ2V0X250aChj b25zdCBzdHJ1Y3QgbmV0ICpuZXQsIGludCBudGgpCit7CisJY29uc3Qgc3RydWN0IGwydHBfbmV0 ICpwbiA9IGwydHBfcGVybmV0KG5ldCk7CisJc3RydWN0IGwydHBfdHVubmVsICp0dW5uZWw7CisJ aW50IGNvdW50ID0gMDsKKworCXJjdV9yZWFkX2xvY2tfYmgoKTsKKwlsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3JjdSh0dW5uZWwsICZwbi0+bDJ0cF90dW5uZWxfbGlzdCwgbGlzdCkgeworCQlpZiAoKytj b3VudCA+IG50aCkgeworCQkJbDJ0cF90dW5uZWxfaW5jX3JlZmNvdW50KHR1bm5lbCk7CisJCQly Y3VfcmVhZF91bmxvY2tfYmgoKTsKKwkJCXJldHVybiB0dW5uZWw7CisJCX0KKwl9CisJcmN1X3Jl YWRfdW5sb2NrX2JoKCk7CisKKwlyZXR1cm4gTlVMTDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGwy dHBfdHVubmVsX2dldF9udGgpOworCiAvKiBMb29rdXAgYSBzZXNzaW9uLiBBIG5ldyByZWZlcmVu Y2UgaXMgaGVsZCBvbiB0aGUgcmV0dXJuZWQgc2Vzc2lvbi4gKi8KIHN0cnVjdCBsMnRwX3Nlc3Np b24gKmwydHBfc2Vzc2lvbl9nZXQoY29uc3Qgc3RydWN0IG5ldCAqbmV0LAogCQkJCSAgICAgIHN0 cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsLApkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9jb3Jl LmggYi9uZXQvbDJ0cC9sMnRwX2NvcmUuaAppbmRleCBiYTMzY2JlYzcxZWIuLmU0ODk2NDEzYjJi NiAxMDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9jb3JlLmgKKysrIGIvbmV0L2wydHAvbDJ0cF9j b3JlLmgKQEAgLTIxMiw2ICsyMTIsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKmwydHBfc2Vzc2lv bl9wcml2KHN0cnVjdCBsMnRwX3Nlc3Npb24gKnNlc3Npb24pCiB9CiAKIHN0cnVjdCBsMnRwX3R1 bm5lbCAqbDJ0cF90dW5uZWxfZ2V0KGNvbnN0IHN0cnVjdCBuZXQgKm5ldCwgdTMyIHR1bm5lbF9p ZCk7CitzdHJ1Y3QgbDJ0cF90dW5uZWwgKmwydHBfdHVubmVsX2dldF9udGgoY29uc3Qgc3RydWN0 IG5ldCAqbmV0LCBpbnQgbnRoKTsKKwogdm9pZCBsMnRwX3R1bm5lbF9mcmVlKHN0cnVjdCBsMnRw X3R1bm5lbCAqdHVubmVsKTsKIAogc3RydWN0IGwydHBfc2Vzc2lvbiAqbDJ0cF9zZXNzaW9uX2dl dChjb25zdCBzdHJ1Y3QgbmV0ICpuZXQsCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX25ldGxp bmsuYyBiL25ldC9sMnRwL2wydHBfbmV0bGluay5jCmluZGV4IGIwNWRiZDlmZmNiMi4uNjYxNmM5 ZmQyOTJmIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX25ldGxpbmsuYworKysgYi9uZXQvbDJ0 cC9sMnRwX25ldGxpbmsuYwpAQCAtNDg3LDE0ICs0ODcsMTcgQEAgc3RhdGljIGludCBsMnRwX25s X2NtZF90dW5uZWxfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxs YmFjawogCXN0cnVjdCBuZXQgKm5ldCA9IHNvY2tfbmV0KHNrYi0+c2spOwogCiAJZm9yICg7Oykg ewotCQl0dW5uZWwgPSBsMnRwX3R1bm5lbF9maW5kX250aChuZXQsIHRpKTsKKwkJdHVubmVsID0g bDJ0cF90dW5uZWxfZ2V0X250aChuZXQsIHRpKTsKIAkJaWYgKHR1bm5lbCA9PSBOVUxMKQogCQkJ Z290byBvdXQ7CiAKIAkJaWYgKGwydHBfbmxfdHVubmVsX3NlbmQoc2tiLCBORVRMSU5LX0NCKGNi LT5za2IpLnBvcnRpZCwKIAkJCQkJY2ItPm5saC0+bmxtc2dfc2VxLCBOTE1fRl9NVUxUSSwKLQkJ CQkJdHVubmVsLCBMMlRQX0NNRF9UVU5ORUxfR0VUKSA8IDApCisJCQkJCXR1bm5lbCwgTDJUUF9D TURfVFVOTkVMX0dFVCkgPCAwKSB7CisJCQlsMnRwX3R1bm5lbF9kZWNfcmVmY291bnQodHVubmVs KTsKIAkJCWdvdG8gb3V0OworCQl9CisJCWwydHBfdHVubmVsX2RlY19yZWZjb3VudCh0dW5uZWwp OwogCiAJCXRpKys7CiAJfQpAQCAtODQ4LDcgKzg1MSw3IEBAIHN0YXRpYyBpbnQgbDJ0cF9ubF9j bWRfc2Vzc2lvbl9kdW1wKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxi YWNrCiAKIAlmb3IgKDs7KSB7CiAJCWlmICh0dW5uZWwgPT0gTlVMTCkgewotCQkJdHVubmVsID0g bDJ0cF90dW5uZWxfZmluZF9udGgobmV0LCB0aSk7CisJCQl0dW5uZWwgPSBsMnRwX3R1bm5lbF9n ZXRfbnRoKG5ldCwgdGkpOwogCQkJaWYgKHR1bm5lbCA9PSBOVUxMKQogCQkJCWdvdG8gb3V0Owog CQl9CkBAIC04NTYsNiArODU5LDcgQEAgc3RhdGljIGludCBsMnRwX25sX2NtZF9zZXNzaW9uX2R1 bXAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sKIAkJc2Vzc2lv biA9IGwydHBfc2Vzc2lvbl9nZXRfbnRoKHR1bm5lbCwgc2kpOwogCQlpZiAoc2Vzc2lvbiA9PSBO VUxMKSB7CiAJCQl0aSsrOworCQkJbDJ0cF90dW5uZWxfZGVjX3JlZmNvdW50KHR1bm5lbCk7CiAJ CQl0dW5uZWwgPSBOVUxMOwogCQkJc2kgPSAwOwogCQkJY29udGludWU7CkBAIC04NjUsNiArODY5 LDcgQEAgc3RhdGljIGludCBsMnRwX25sX2NtZF9zZXNzaW9uX2R1bXAoc3RydWN0IHNrX2J1ZmYg KnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sKIAkJCQkJIGNiLT5ubGgtPm5sbXNnX3NlcSwg TkxNX0ZfTVVMVEksCiAJCQkJCSBzZXNzaW9uLCBMMlRQX0NNRF9TRVNTSU9OX0dFVCkgPCAwKSB7 CiAJCQlsMnRwX3Nlc3Npb25fZGVjX3JlZmNvdW50KHNlc3Npb24pOworCQkJbDJ0cF90dW5uZWxf ZGVjX3JlZmNvdW50KHR1bm5lbCk7CiAJCQlicmVhazsKIAkJfQogCQlsMnRwX3Nlc3Npb25fZGVj X3JlZmNvdW50KHNlc3Npb24pOwotLSAKMi4xNC4zCgoKRnJvbSBiOTBiZWUwMzcwOTFmZmE3NzYw NTdkNjQwNTVlOTI3NDk2OTE4NDIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWls bGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpEYXRlOiBUaHUsIDEyIEFwciAyMDE4 IDIwOjUwOjM0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNS81Ml0gbDJ0cDogaG9sZCByZWZlcmVu Y2Ugb24gdHVubmVscyBwcmludGVkIGluIHBwcG9sMnRwCiBwcm9jIGZpbGUKClsgVXBzdHJlYW0g Y29tbWl0IDBlMGMzZmVlM2E1OWEzODdhZWVjYzRmY2E2ZjNhMmU5NjE1YTU0NDMgXQoKVXNlIGwy dHBfdHVubmVsX2dldF9udGgoKSBpbnN0ZWFkIG9mIGwydHBfdHVubmVsX2ZpbmRfbnRoKCksIHRv IGJlIHNhZmUKYWdhaW5zdCBjb25jdXJyZW50IHR1bm5lbCBkZWxldGlvbi4KClVubGlrZSBzZXNz aW9ucywgd2UgY2FuJ3QgZHJvcCB0aGUgcmVmZXJlbmNlIGhlbGQgb24gdHVubmVscyBpbgpwcHBv bDJ0cF9zZXFfc2hvdygpLiBUdW5uZWxzIGFyZSByZXVzZWQgYWNyb3NzIHNldmVyYWwgY2FsbHMg dG8KcHBwb2wydHBfc2VxX3N0YXJ0KCkgd2hlbiBpdGVyYXRpbmcgb3ZlciBzZXNzaW9ucy4gVGhl c2UgaXRlcmF0aW9ucwpuZWVkIHRoZSB0dW5uZWwgZm9yIGFjY2Vzc2luZyB0aGUgbmV4dCBzZXNz aW9uLiBUaGVyZWZvcmUgdGhlIG9ubHkgc2FmZQptb21lbnQgZm9yIGRyb3BwaW5nIHRoZSByZWZl cmVuY2UgaXMganVzdCBiZWZvcmUgc2VhcmNoaW5nIGZvciB0aGUgbmV4dAp0dW5uZWwuCgpOb3Jt YWxseSwgdGhlIGxhc3QgaW52b2NhdGlvbiBvZiBwcHBvbDJ0cF9uZXh0X3R1bm5lbCgpIGRvZXNu J3QgZmluZAphbnkgbmV3IHR1bm5lbCwgc28gaXQgZHJvcHMgdGhlIGxhc3QgdHVubmVsIHdpdGhv dXQgdGFraW5nIGFueSBuZXcKcmVmZXJlbmNlLiBIb3dldmVyLCBpbiBjYXNlIG9mIGVycm9yLCBw cHBvbDJ0cF9zZXFfc3RvcCgpIGlzIGNhbGxlZApkaXJlY3RseSwgc28gd2UgaGF2ZSB0byBkcm9w IHRoZSByZWZlcmVuY2UgdGhlcmUuCgpGaXhlczogZmQ1NThkMTg2ZGYyICgibDJ0cDogU3BsaXQg cHBwb2wydHAgcGF0Y2ggaW50byBzZXBhcmF0ZSBsMnRwIGFuZCBwcHAgcGFydHMiKQpTaWduZWQt b2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2wydHAv bDJ0cF9wcHAuYyB8IDI0ICsrKysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDE3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2wydHAv bDJ0cF9wcHAuYyBiL25ldC9sMnRwL2wydHBfcHBwLmMKaW5kZXggZmMzYjhiOGZlMWM0Li4yZTU5 ZjhlZmI4ODggMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfcHBwLmMKKysrIGIvbmV0L2wydHAv bDJ0cF9wcHAuYwpAQCAtMTU1OSwxNiArMTU1OSwxOSBAQCBzdHJ1Y3QgcHBwb2wydHBfc2VxX2Rh dGEgewogCiBzdGF0aWMgdm9pZCBwcHBvbDJ0cF9uZXh0X3R1bm5lbChzdHJ1Y3QgbmV0ICpuZXQs IHN0cnVjdCBwcHBvbDJ0cF9zZXFfZGF0YSAqcGQpCiB7CisJLyogRHJvcCByZWZlcmVuY2UgdGFr ZW4gZHVyaW5nIHByZXZpb3VzIGludm9jYXRpb24gKi8KKwlpZiAocGQtPnR1bm5lbCkKKwkJbDJ0 cF90dW5uZWxfZGVjX3JlZmNvdW50KHBkLT50dW5uZWwpOworCiAJZm9yICg7OykgewotCQlwZC0+ dHVubmVsID0gbDJ0cF90dW5uZWxfZmluZF9udGgobmV0LCBwZC0+dHVubmVsX2lkeCk7CisJCXBk LT50dW5uZWwgPSBsMnRwX3R1bm5lbF9nZXRfbnRoKG5ldCwgcGQtPnR1bm5lbF9pZHgpOwogCQlw ZC0+dHVubmVsX2lkeCsrOwogCi0JCWlmIChwZC0+dHVubmVsID09IE5VTEwpCi0JCQlicmVhazsK KwkJLyogT25seSBhY2NlcHQgTDJUUHYyIHR1bm5lbHMgKi8KKwkJaWYgKCFwZC0+dHVubmVsIHx8 IHBkLT50dW5uZWwtPnZlcnNpb24gPT0gMikKKwkJCXJldHVybjsKIAotCQkvKiBJZ25vcmUgTDJU UHYzIHR1bm5lbHMgKi8KLQkJaWYgKHBkLT50dW5uZWwtPnZlcnNpb24gPCAzKQotCQkJYnJlYWs7 CisJCWwydHBfdHVubmVsX2RlY19yZWZjb3VudChwZC0+dHVubmVsKTsKIAl9CiB9CiAKQEAgLTE2 MTcsNyArMTYyMCwxNCBAQCBzdGF0aWMgdm9pZCAqcHBwb2wydHBfc2VxX25leHQoc3RydWN0IHNl cV9maWxlICptLCB2b2lkICp2LCBsb2ZmX3QgKnBvcykKIAogc3RhdGljIHZvaWQgcHBwb2wydHBf c2VxX3N0b3Aoc3RydWN0IHNlcV9maWxlICpwLCB2b2lkICp2KQogewotCS8qIG5vdGhpbmcgdG8g ZG8gKi8KKwlzdHJ1Y3QgcHBwb2wydHBfc2VxX2RhdGEgKnBkID0gdjsKKworCWlmICghcGQgfHwg cGQgPT0gU0VRX1NUQVJUX1RPS0VOKQorCQlyZXR1cm47CisKKwkvKiBEcm9wIHJlZmVyZW5jZSB0 YWtlbiBieSBsYXN0IGludm9jYXRpb24gb2YgcHBwb2wydHBfbmV4dF90dW5uZWwoKSAqLworCWlm IChwZC0+dHVubmVsKQorCQlsMnRwX3R1bm5lbF9kZWNfcmVmY291bnQocGQtPnR1bm5lbCk7CiB9 CiAKIHN0YXRpYyB2b2lkIHBwcG9sMnRwX3NlcV90dW5uZWxfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHZvaWQgKnYpCi0tIAoyLjE0LjMKCgpGcm9tIGZiMmI2N2I0MGFiZGQ3N2YzMDI0ZjFmYTcy OGU1NjUxYTdhODUyM2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBO YXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+CkRhdGU6IFRodSwgMTIgQXByIDIwMTggMjA6NTA6 MzUgKzAyMDAKU3ViamVjdDogW1BBVENIIDM2LzUyXSBsMnRwOiBob2xkIHJlZmVyZW5jZSBvbiB0 dW5uZWxzIHByaW50ZWQgaW4gbDJ0cC90dW5uZWxzCiBkZWJ1Z2ZzIGZpbGUKClsgVXBzdHJlYW0g Y29tbWl0IGY3MjYyMTRkOWIyM2U1ZmNlOGMxMTkzNzU3N2EyODlhMzIwMjQ5OGYgXQoKVXNlIGwy dHBfdHVubmVsX2dldF9udGgoKSBpbnN0ZWFkIG9mIGwydHBfdHVubmVsX2ZpbmRfbnRoKCksIHRv IGJlIHNhZmUKYWdhaW5zdCBjb25jdXJyZW50IHR1bm5lbCBkZWxldGlvbi4KClVzZSB0aGUgc2Ft ZSBtZWNoYW5pc20gYXMgaW4gbDJ0cF9wcHAuYyBmb3IgZHJvcHBpbmcgdGhlIHJlZmVyZW5jZQp0 YWtlbiBieSBsMnRwX3R1bm5lbF9nZXRfbnRoKCkuIFRoYXQgaXMsIGRyb3AgdGhlIHJlZmVyZW5j ZSBqdXN0CmJlZm9yZSBsb29raW5nIHVwIHRoZSBuZXh0IHR1bm5lbC4gSW4gY2FzZSBvZiBlcnJv ciwgZHJvcCB0aGUgbGFzdAphY2Nlc3NlZCB0dW5uZWwgaW4gbDJ0cF9kZnNfc2VxX3N0b3AoKS4K ClRoYXQgd2FzIHRoZSBsYXN0IHVzZSBvZiBsMnRwX3R1bm5lbF9maW5kX250aCgpLgoKRml4ZXM6 IDBhZDY2MTQwNDhjZiAoImwydHA6IEFkZCBkZWJ1Z2ZzIGZpbGVzIGZvciBkdW1waW5nIGwydHAg ZGVidWcgaW5mbyIpClNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBo YWxpbmsuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvbDJ0cC9sMnRwX2NvcmUuYyAgICB8IDIwIC0tLS0tLS0tLS0tLS0tLS0t LS0tCiBuZXQvbDJ0cC9sMnRwX2NvcmUuaCAgICB8ICAxIC0KIG5ldC9sMnRwL2wydHBfZGVidWdm cy5jIHwgMTUgKysrKysrKysrKysrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMo KyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfY29yZS5jIGIv bmV0L2wydHAvbDJ0cF9jb3JlLmMKaW5kZXggYzhjNDE4M2YwZjM3Li40MDI2MWNiNjhlODMgMTAw NjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfY29yZS5jCisrKyBiL25ldC9sMnRwL2wydHBfY29yZS5j CkBAIC0zNTUsMjYgKzM1NSw2IEBAIGludCBsMnRwX3Nlc3Npb25fcmVnaXN0ZXIoc3RydWN0IGwy dHBfc2Vzc2lvbiAqc2Vzc2lvbiwKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGwydHBfc2Vzc2lvbl9y ZWdpc3Rlcik7CiAKLXN0cnVjdCBsMnRwX3R1bm5lbCAqbDJ0cF90dW5uZWxfZmluZF9udGgoY29u c3Qgc3RydWN0IG5ldCAqbmV0LCBpbnQgbnRoKQotewotCXN0cnVjdCBsMnRwX25ldCAqcG4gPSBs MnRwX3Blcm5ldChuZXQpOwotCXN0cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsOwotCWludCBjb3Vu dCA9IDA7Ci0KLQlyY3VfcmVhZF9sb2NrX2JoKCk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3Uo dHVubmVsLCAmcG4tPmwydHBfdHVubmVsX2xpc3QsIGxpc3QpIHsKLQkJaWYgKCsrY291bnQgPiBu dGgpIHsKLQkJCXJjdV9yZWFkX3VubG9ja19iaCgpOwotCQkJcmV0dXJuIHR1bm5lbDsKLQkJfQot CX0KLQotCXJjdV9yZWFkX3VubG9ja19iaCgpOwotCi0JcmV0dXJuIE5VTEw7Ci19Ci1FWFBPUlRf U1lNQk9MX0dQTChsMnRwX3R1bm5lbF9maW5kX250aCk7Ci0KIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgogICogUmVjZWl2ZSBkYXRhIGhhbmRsaW5nCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmRpZmYg LS1naXQgYS9uZXQvbDJ0cC9sMnRwX2NvcmUuaCBiL25ldC9sMnRwL2wydHBfY29yZS5oCmluZGV4 IGU0ODk2NDEzYjJiNi4uYzE5OTAyMGY4YThhIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX2Nv cmUuaAorKysgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuaApAQCAtMjIyLDcgKzIyMiw2IEBAIHN0cnVj dCBsMnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lvbl9nZXQoY29uc3Qgc3RydWN0IG5ldCAqbmV0LAog c3RydWN0IGwydHBfc2Vzc2lvbiAqbDJ0cF9zZXNzaW9uX2dldF9udGgoc3RydWN0IGwydHBfdHVu bmVsICp0dW5uZWwsIGludCBudGgpOwogc3RydWN0IGwydHBfc2Vzc2lvbiAqbDJ0cF9zZXNzaW9u X2dldF9ieV9pZm5hbWUoY29uc3Qgc3RydWN0IG5ldCAqbmV0LAogCQkJCQkJY29uc3QgY2hhciAq aWZuYW1lKTsKLXN0cnVjdCBsMnRwX3R1bm5lbCAqbDJ0cF90dW5uZWxfZmluZF9udGgoY29uc3Qg c3RydWN0IG5ldCAqbmV0LCBpbnQgbnRoKTsKIAogaW50IGwydHBfdHVubmVsX2NyZWF0ZShzdHJ1 Y3QgbmV0ICpuZXQsIGludCBmZCwgaW50IHZlcnNpb24sIHUzMiB0dW5uZWxfaWQsCiAJCSAgICAg ICB1MzIgcGVlcl90dW5uZWxfaWQsIHN0cnVjdCBsMnRwX3R1bm5lbF9jZmcgKmNmZywKZGlmZiAt LWdpdCBhL25ldC9sMnRwL2wydHBfZGVidWdmcy5jIGIvbmV0L2wydHAvbDJ0cF9kZWJ1Z2ZzLmMK aW5kZXggNzJlNzEzZGE0NzMzLi5iOGY5ZDQ1YmZlYjEgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wy dHBfZGVidWdmcy5jCisrKyBiL25ldC9sMnRwL2wydHBfZGVidWdmcy5jCkBAIC00Nyw3ICs0Nywx MSBAQCBzdHJ1Y3QgbDJ0cF9kZnNfc2VxX2RhdGEgewogCiBzdGF0aWMgdm9pZCBsMnRwX2Rmc19u ZXh0X3R1bm5lbChzdHJ1Y3QgbDJ0cF9kZnNfc2VxX2RhdGEgKnBkKQogewotCXBkLT50dW5uZWwg PSBsMnRwX3R1bm5lbF9maW5kX250aChwZC0+bmV0LCBwZC0+dHVubmVsX2lkeCk7CisJLyogRHJv cCByZWZlcmVuY2UgdGFrZW4gZHVyaW5nIHByZXZpb3VzIGludm9jYXRpb24gKi8KKwlpZiAocGQt PnR1bm5lbCkKKwkJbDJ0cF90dW5uZWxfZGVjX3JlZmNvdW50KHBkLT50dW5uZWwpOworCisJcGQt PnR1bm5lbCA9IGwydHBfdHVubmVsX2dldF9udGgocGQtPm5ldCwgcGQtPnR1bm5lbF9pZHgpOwog CXBkLT50dW5uZWxfaWR4Kys7CiB9CiAKQEAgLTk2LDcgKzEwMCwxNCBAQCBzdGF0aWMgdm9pZCAq bDJ0cF9kZnNfc2VxX25leHQoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2LCBsb2ZmX3QgKnBv cykKIAogc3RhdGljIHZvaWQgbDJ0cF9kZnNfc2VxX3N0b3Aoc3RydWN0IHNlcV9maWxlICpwLCB2 b2lkICp2KQogewotCS8qIG5vdGhpbmcgdG8gZG8gKi8KKwlzdHJ1Y3QgbDJ0cF9kZnNfc2VxX2Rh dGEgKnBkID0gdjsKKworCWlmICghcGQgfHwgcGQgPT0gU0VRX1NUQVJUX1RPS0VOKQorCQlyZXR1 cm47CisKKwkvKiBEcm9wIHJlZmVyZW5jZSB0YWtlbiBieSBsYXN0IGludm9jYXRpb24gb2YgbDJ0 cF9kZnNfbmV4dF90dW5uZWwoKSAqLworCWlmIChwZC0+dHVubmVsKQorCQlsMnRwX3R1bm5lbF9k ZWNfcmVmY291bnQocGQtPnR1bm5lbCk7CiB9CiAKIHN0YXRpYyB2b2lkIGwydHBfZGZzX3NlcV90 dW5uZWxfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCi0tIAoyLjE0LjMKCgpGcm9t IDRlMTU0N2I2NDVhNmFkZGRiNzBjMDM1M2E1MTc0Yzk4NmY3YmQxNDkgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+CkRh dGU6IFRodSwgMTkgQXByIDIwMTggMTY6MjA6NDggKzAyMDAKU3ViamVjdDogW1BBVENIIDM3LzUy XSBsMnRwOiBmaXgge3BwcG9sMnRwLCBsMnRwX2Rmc31fc2VxX3N0b3AoKSBpbiBjYXNlIG9mCiBz ZXFfZmlsZSBvdmVyZmxvdwoKWyBVcHN0cmVhbSBjb21taXQgNTQxMWI2MTg3YWRmNjI5MDllM2I5 OThhYzc4MmU3MjI5MDRjNzQ4NyBdCgpDb21taXQgMGUwYzNmZWUzYTU5ICgibDJ0cDogaG9sZCBy ZWZlcmVuY2Ugb24gdHVubmVscyBwcmludGVkIGluIHBwcG9sMnRwIHByb2MgZmlsZSIpCmFzc3Vt ZWQgdGhhdCBpZiBwcHBvbDJ0cF9zZXFfc3RvcCgpIHdhcyBjYWxsZWQgd2l0aCBub24tTlVMTCBw cml2YXRlCmRhdGEgKHRoZSAndicgcG9pbnRlciksIHRoZW4gcHBwb2wydHBfc2VxX3N0YXJ0KCkg d291bGQgbm90IGJlIGNhbGxlZAphZ2Fpbi4gSXQgdHVybnMgb3V0IHRoYXQgdGhpcyBpc24ndCBn dWFyYW50ZWVkLCBhbmQgb3ZlcmZsb3dpbmcgdGhlCnNlcV9maWxlJ3MgYnVmZmVyIGluIHBwcG9s MnRwX3NlcV9zaG93KCkgaXMgYSB3YXkgdG8gZ2V0IGludG8gdGhpcwpzaXR1YXRpb24uCgpUaGVy ZWZvcmUsIHBwcG9sMnRwX3NlcV9zdG9wKCkgbmVlZHMgdG8gcmVzZXQgcGQtPnR1bm5lbCwgc28g dGhhdApwcHBvbDJ0cF9zZXFfc3RhcnQoKSB3b24ndCBkcm9wIGEgcmVmZXJlbmNlIGFnYWluIGlm IGl0IGdldHMgY2FsbGVkLgpXZSBhbHNvIGhhdmUgdG8gY2xlYXIgcGQtPnNlc3Npb24sIGJlY2F1 c2UgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgZXhwZWN0cwphIG5vbi1OVUxMIHR1bm5lbCB3aGVuIHBk LT5zZXNzaW9uIGlzIHNldC4KClRoZSBsMnRwX2RlYnVnZnMgbW9kdWxlIGhhcyB0aGUgc2FtZSBp c3N1ZS4gRml4IGl0IGluIHRoZSBzYW1lIHdheS4KCkZpeGVzOiAwZTBjM2ZlZTNhNTkgKCJsMnRw OiBob2xkIHJlZmVyZW5jZSBvbiB0dW5uZWxzIHByaW50ZWQgaW4gcHBwb2wydHAgcHJvYyBmaWxl IikKRml4ZXM6IGY3MjYyMTRkOWIyMyAoImwydHA6IGhvbGQgcmVmZXJlbmNlIG9uIHR1bm5lbHMg cHJpbnRlZCBpbiBsMnRwL3R1bm5lbHMgZGVidWdmcyBmaWxlIikKU2lnbmVkLW9mZi1ieTogR3Vp bGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGluay5mcj4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9sMnRwL2wydHBfZGVidWdm cy5jIHwgNSArKysrLQogbmV0L2wydHAvbDJ0cF9wcHAuYyAgICAgfCA1ICsrKystCiAyIGZpbGVz IGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvbDJ0cC9sMnRwX2RlYnVnZnMuYyBiL25ldC9sMnRwL2wydHBfZGVidWdmcy5jCmluZGV4IGI4 ZjlkNDViZmViMS4uN2YxZTg0MmVmMDVhIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX2RlYnVn ZnMuYworKysgYi9uZXQvbDJ0cC9sMnRwX2RlYnVnZnMuYwpAQCAtMTA2LDggKzEwNiwxMSBAQCBz dGF0aWMgdm9pZCBsMnRwX2Rmc19zZXFfc3RvcChzdHJ1Y3Qgc2VxX2ZpbGUgKnAsIHZvaWQgKnYp CiAJCXJldHVybjsKIAogCS8qIERyb3AgcmVmZXJlbmNlIHRha2VuIGJ5IGxhc3QgaW52b2NhdGlv biBvZiBsMnRwX2Rmc19uZXh0X3R1bm5lbCgpICovCi0JaWYgKHBkLT50dW5uZWwpCisJaWYgKHBk LT50dW5uZWwpIHsKIAkJbDJ0cF90dW5uZWxfZGVjX3JlZmNvdW50KHBkLT50dW5uZWwpOworCQlw ZC0+dHVubmVsID0gTlVMTDsKKwkJcGQtPnNlc3Npb24gPSBOVUxMOworCX0KIH0KIAogc3RhdGlj IHZvaWQgbDJ0cF9kZnNfc2VxX3R1bm5lbF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAq dikKZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfcHBwLmMgYi9uZXQvbDJ0cC9sMnRwX3BwcC5j CmluZGV4IDJlNTlmOGVmYjg4OC4uMGM0NTMwYWQ3NGJlIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9s MnRwX3BwcC5jCisrKyBiL25ldC9sMnRwL2wydHBfcHBwLmMKQEAgLTE2MjYsOCArMTYyNiwxMSBA QCBzdGF0aWMgdm9pZCBwcHBvbDJ0cF9zZXFfc3RvcChzdHJ1Y3Qgc2VxX2ZpbGUgKnAsIHZvaWQg KnYpCiAJCXJldHVybjsKIAogCS8qIERyb3AgcmVmZXJlbmNlIHRha2VuIGJ5IGxhc3QgaW52b2Nh dGlvbiBvZiBwcHBvbDJ0cF9uZXh0X3R1bm5lbCgpICovCi0JaWYgKHBkLT50dW5uZWwpCisJaWYg KHBkLT50dW5uZWwpIHsKIAkJbDJ0cF90dW5uZWxfZGVjX3JlZmNvdW50KHBkLT50dW5uZWwpOwor CQlwZC0+dHVubmVsID0gTlVMTDsKKwkJcGQtPnNlc3Npb24gPSBOVUxMOworCX0KIH0KIAogc3Rh dGljIHZvaWQgcHBwb2wydHBfc2VxX3R1bm5lbF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqdikKLS0gCjIuMTQuMwoKCkZyb20gNWIwMDFkYzg3MzVmYjI1NDIzMjczYTQ1Yzk1ZDZhMGIy MmNlZjI5YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBXYW5nIDx4aXlvdS53 YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTggQXByIDIwMTggMTE6NTE6NTYgLTA3MDAK U3ViamVjdDogW1BBVENIIDM4LzUyXSBsbGM6IGhvbGQgbGxjX3NhcCBiZWZvcmUgcmVsZWFzZV9z b2NrKCkKClsgVXBzdHJlYW0gY29tbWl0IGY3ZTQzNjcyNjgzYjA5N2JiMDc0YThmZTdhZjliYzYw MGEyM2YyMzEgXQoKc3l6Ym90IHJlcG9ydGVkIHdlIHN0aWxsIGFjY2VzcyBsbGMtPnNhcCBpbiBs bGNfYmFja2xvZ19yY3YoKQphZnRlciBpdCBpcyBmcmVlZCBpbiBsbGNfc2FwX3JlbW92ZV9zb2Nr ZXQoKToKCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzo3NyBbaW5s aW5lXQogZHVtcF9zdGFjaysweDFiOS8weDI5NCBsaWIvZHVtcF9zdGFjay5jOjExMwogcHJpbnRf YWRkcmVzc19kZXNjcmlwdGlvbisweDZjLzB4MjBiIG1tL2thc2FuL3JlcG9ydC5jOjI1Ngoga2Fz YW5fcmVwb3J0X2Vycm9yIG1tL2thc2FuL3JlcG9ydC5jOjM1NCBbaW5saW5lXQoga2FzYW5fcmVw b3J0LmNvbGQuNysweDI0Mi8weDJmZSBtbS9rYXNhbi9yZXBvcnQuYzo0MTIKIF9fYXNhbl9yZXBv cnRfbG9hZDFfbm9hYm9ydCsweDE0LzB4MjAgbW0va2FzYW4vcmVwb3J0LmM6NDMwCiBsbGNfY29u bl9hY19zZW5kX3NhYm1lX2NtZF9wX3NldF94KzB4M2E4LzB4NDYwIG5ldC9sbGMvbGxjX2NfYWMu Yzo3ODUKIGxsY19leGVjX2Nvbm5fdHJhbnNfYWN0aW9ucyBuZXQvbGxjL2xsY19jb25uLmM6NDc1 IFtpbmxpbmVdCiBsbGNfY29ubl9zZXJ2aWNlIG5ldC9sbGMvbGxjX2Nvbm4uYzo0MDAgW2lubGlu ZV0KIGxsY19jb25uX3N0YXRlX3Byb2Nlc3MrMHg0ZTEvMHgxM2EwIG5ldC9sbGMvbGxjX2Nvbm4u Yzo3NQogbGxjX2JhY2tsb2dfcmN2KzB4MTk1LzB4MWUwIG5ldC9sbGMvbGxjX2Nvbm4uYzo4OTEK IHNrX2JhY2tsb2dfcmN2IGluY2x1ZGUvbmV0L3NvY2suaDo5MDkgW2lubGluZV0KIF9fcmVsZWFz ZV9zb2NrKzB4MTJmLzB4M2EwIG5ldC9jb3JlL3NvY2suYzoyMzM1CiByZWxlYXNlX3NvY2srMHhh NC8weDJiMCBuZXQvY29yZS9zb2NrLmM6Mjg1MAogbGxjX3VpX3JlbGVhc2UrMHhjOC8weDIyMCBu ZXQvbGxjL2FmX2xsYy5jOjIwNAoKbGxjLT5zYXAgaXMgcmVmY291bnQnZWQgYW5kIGxsY19zYXBf cmVtb3ZlX3NvY2tldCgpIGlzIHBhaXJlZAp3aXRoIGxsY19zYXBfYWRkX3NvY2tldCgpLiBUaGlz IGNhbiBiZSBhbWVuZGVkIGJ5IGhvbGRpbmcgaXRzIHJlZmNvdW50CmJlZm9yZSBsbGNfc2FwX3Jl bW92ZV9zb2NrZXQoKSBhbmQgcmVsZWFzaW5nIGl0IGFmdGVyIHJlbGVhc2Vfc29jaygpLgoKUmVw b3J0ZWQtYnk6IDxzeXpib3QrNmUxODFmYzk1MDgxYzJjZjkwNTFAc3l6a2FsbGVyLmFwcHNwb3Rt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvbGxjL2FmX2xsYy5jIHwgNyArKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2xsYy9hZl9sbGMuYyBiL25ldC9sbGMvYWZfbGxj LmMKaW5kZXggYzM4ZDE2ZjIyZDJhLi5jODk1MGQ4OGE2OTUgMTAwNjQ0Ci0tLSBhL25ldC9sbGMv YWZfbGxjLmMKKysrIGIvbmV0L2xsYy9hZl9sbGMuYwpAQCAtMTg5LDYgKzE4OSw3IEBAIHN0YXRp YyBpbnQgbGxjX3VpX3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKIHsKIAlzdHJ1Y3Qgc29j ayAqc2sgPSBzb2NrLT5zazsKIAlzdHJ1Y3QgbGxjX3NvY2sgKmxsYzsKKwlzdHJ1Y3QgbGxjX3Nh cCAqc2FwOwogCiAJaWYgKHVubGlrZWx5KHNrID09IE5VTEwpKQogCQlnb3RvIG91dDsKQEAgLTE5 OSw5ICsyMDAsMTUgQEAgc3RhdGljIGludCBsbGNfdWlfcmVsZWFzZShzdHJ1Y3Qgc29ja2V0ICpz b2NrKQogCQlsbGMtPmxhZGRyLmxzYXAsIGxsYy0+ZGFkZHIubHNhcCk7CiAJaWYgKCFsbGNfc2Vu ZF9kaXNjKHNrKSkKIAkJbGxjX3VpX3dhaXRfZm9yX2Rpc2Moc2ssIHNrLT5za19yY3Z0aW1lbyk7 CisJc2FwID0gbGxjLT5zYXA7CisJLyogSG9sZCB0aGlzIGZvciByZWxlYXNlX3NvY2soKSwgc28g dGhhdCBsbGNfYmFja2xvZ19yY3YoKSBjb3VsZCBzdGlsbAorCSAqIHVzZSBpdC4KKwkgKi8KKwls bGNfc2FwX2hvbGQoc2FwKTsKIAlpZiAoIXNvY2tfZmxhZyhzaywgU09DS19aQVBQRUQpKQogCQls bGNfc2FwX3JlbW92ZV9zb2NrZXQobGxjLT5zYXAsIHNrKTsKIAlyZWxlYXNlX3NvY2soc2spOwor CWxsY19zYXBfcHV0KHNhcCk7CiAJaWYgKGxsYy0+ZGV2KQogCQlkZXZfcHV0KGxsYy0+ZGV2KTsK IAlzb2NrX3B1dChzayk7Ci0tIAoyLjE0LjMKCgpGcm9tIGM3YmVhNjM5ZTA1OWI2ZDdiNWU5Zjk4 MTE0MzEyNTNmMjRkM2VkZDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcgV2Fu ZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE5IEFwciAyMDE4IDIxOjU0 OjM0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzOS81Ml0gbGxjOiBmaXggTlVMTCBwb2ludGVyIGRl cmVmIGZvciBTT0NLX1pBUFBFRAoKWyBVcHN0cmVhbSBjb21taXQgM2EwNGNlNzEzMGE3ZTVkYWQ0 ZTc4ZDQ1ZDUwMzEzNzQ3ZjhjODMwZiBdCgpGb3IgU09DS19aQVBQRUQgc29ja2V0LCB3ZSBkb24n dCBuZWVkIHRvIGNhcmUgYWJvdXQgbGxjLT5zYXAsCnNvIHdlIHNob3VsZCBqdXN0IHNraXAgdGhl c2UgcmVmY291bnQgZnVuY3Rpb25zIGluIHRoaXMgY2FzZS4KCkZpeGVzOiBmN2U0MzY3MjY4M2Ig KCJsbGM6IGhvbGQgbGxjX3NhcCBiZWZvcmUgcmVsZWFzZV9zb2NrKCkiKQpSZXBvcnRlZC1ieTog a2VybmVsIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2Fu ZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2xsYy9hZl9sbGMuYyB8IDIxICsrKysr KysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2xsYy9hZl9sbGMuYyBiL25ldC9sbGMvYWZfbGxj LmMKaW5kZXggYzg5NTBkODhhNjk1Li5jZjQxZDliNGEwYjggMTAwNjQ0Ci0tLSBhL25ldC9sbGMv YWZfbGxjLmMKKysrIGIvbmV0L2xsYy9hZl9sbGMuYwpAQCAtMTg5LDcgKzE4OSw2IEBAIHN0YXRp YyBpbnQgbGxjX3VpX3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKIHsKIAlzdHJ1Y3Qgc29j ayAqc2sgPSBzb2NrLT5zazsKIAlzdHJ1Y3QgbGxjX3NvY2sgKmxsYzsKLQlzdHJ1Y3QgbGxjX3Nh cCAqc2FwOwogCiAJaWYgKHVubGlrZWx5KHNrID09IE5VTEwpKQogCQlnb3RvIG91dDsKQEAgLTIw MCwxNSArMTk5LDE5IEBAIHN0YXRpYyBpbnQgbGxjX3VpX3JlbGVhc2Uoc3RydWN0IHNvY2tldCAq c29jaykKIAkJbGxjLT5sYWRkci5sc2FwLCBsbGMtPmRhZGRyLmxzYXApOwogCWlmICghbGxjX3Nl bmRfZGlzYyhzaykpCiAJCWxsY191aV93YWl0X2Zvcl9kaXNjKHNrLCBzay0+c2tfcmN2dGltZW8p OwotCXNhcCA9IGxsYy0+c2FwOwotCS8qIEhvbGQgdGhpcyBmb3IgcmVsZWFzZV9zb2NrKCksIHNv IHRoYXQgbGxjX2JhY2tsb2dfcmN2KCkgY291bGQgc3RpbGwKLQkgKiB1c2UgaXQuCi0JICovCi0J bGxjX3NhcF9ob2xkKHNhcCk7Ci0JaWYgKCFzb2NrX2ZsYWcoc2ssIFNPQ0tfWkFQUEVEKSkKKwlp ZiAoIXNvY2tfZmxhZyhzaywgU09DS19aQVBQRUQpKSB7CisJCXN0cnVjdCBsbGNfc2FwICpzYXAg PSBsbGMtPnNhcDsKKworCQkvKiBIb2xkIHRoaXMgZm9yIHJlbGVhc2Vfc29jaygpLCBzbyB0aGF0 IGxsY19iYWNrbG9nX3JjdigpCisJCSAqIGNvdWxkIHN0aWxsIHVzZSBpdC4KKwkJICovCisJCWxs Y19zYXBfaG9sZChzYXApOwogCQlsbGNfc2FwX3JlbW92ZV9zb2NrZXQobGxjLT5zYXAsIHNrKTsK LQlyZWxlYXNlX3NvY2soc2spOwotCWxsY19zYXBfcHV0KHNhcCk7CisJCXJlbGVhc2Vfc29jayhz ayk7CisJCWxsY19zYXBfcHV0KHNhcCk7CisJfSBlbHNlIHsKKwkJcmVsZWFzZV9zb2NrKHNrKTsK Kwl9CiAJaWYgKGxsYy0+ZGV2KQogCQlkZXZfcHV0KGxsYy0+ZGV2KTsKIAlzb2NrX3B1dChzayk7 Ci0tIAoyLjE0LjMKCgpGcm9tIDJiNzEzMDJkNDMyMDYwYmJmNjEwZGE5ODc4YzczOGVmOWMzZDI3 Y2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBXaWVkbWFubiA8andpQGxp bnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogVGh1LCAxOSBBcHIgMjAxOCAxMjo1MjowNiArMDIwMApT dWJqZWN0OiBbUEFUQ0ggNDAvNTJdIHMzOTAvcWV0aDogZml4IGVycm9yIGhhbmRsaW5nIGluIGFk YXB0ZXIgY29tbWFuZAogY2FsbGJhY2tzCgpbIFVwc3RyZWFtIGNvbW1pdCA2ODZjOTdlZTI5Yzg4 NmVlMDdkMTc5ODdkMDA1OTg3NGM1YzNiNWFmIF0KCk1ha2Ugc3VyZSB0byBjaGVjayBib3RoIHJl dHVybiBjb2RlIGZpZWxkcyBiZWZvcmUoISkgcHJvY2Vzc2luZyB0aGUKY29tbWFuZCByZXNwb25z ZS4gT3RoZXJ3aXNlIHdlIHJpc2sgb3BlcmF0aW5nIG9uIGludmFsaWQgZGF0YS4KClRoaXMgbWF0 Y2hlcyBhbiBlYXJsaWVyIGZpeCBmb3IgU0VUQVNTUEFSTVMgY29tbWFuZHMsIHNlZQpjb21taXQg YWQzY2JmNjEzMzI5ICgiczM5MC9xZXRoOiBmaXggZXJyb3IgaGFuZGxpbmcgaW4gY2hlY2tzdW0g Y21kIGNhbGxiYWNrIikuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51 eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgfCA4NSAr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAz NyBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Mz OTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWlu LmMKaW5kZXggMzY1M2JlYTM4NDcwLi5lZGVmZjI5MjcxYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv czM5MC9uZXQvcWV0aF9jb3JlX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29y ZV9tYWluLmMKQEAgLTMwMzcsMjggKzMwMzcsMjMgQEAgc3RhdGljIGludCBxZXRoX3NlbmRfc3Rh cnRsYW4oc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKIAlyZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyBp bnQgcWV0aF9kZWZhdWx0X3NldGFkYXB0ZXJwYXJtc19jYihzdHJ1Y3QgcWV0aF9jYXJkICpjYXJk LAotCQlzdHJ1Y3QgcWV0aF9yZXBseSAqcmVwbHksIHVuc2lnbmVkIGxvbmcgZGF0YSkKK3N0YXRp YyBpbnQgcWV0aF9zZXRhZHBwYXJtc19pbnNwZWN0X3JjKHN0cnVjdCBxZXRoX2lwYV9jbWQgKmNt ZCkKIHsKLQlzdHJ1Y3QgcWV0aF9pcGFfY21kICpjbWQ7Ci0KLQlRRVRIX0NBUkRfVEVYVChjYXJk LCA0LCAiZGVmYWRwY2IiKTsKLQotCWNtZCA9IChzdHJ1Y3QgcWV0aF9pcGFfY21kICopIGRhdGE7 Ci0JaWYgKGNtZC0+aGRyLnJldHVybl9jb2RlID09IDApCisJaWYgKCFjbWQtPmhkci5yZXR1cm5f Y29kZSkKIAkJY21kLT5oZHIucmV0dXJuX2NvZGUgPQogCQkJY21kLT5kYXRhLnNldGFkYXB0ZXJw YXJtcy5oZHIucmV0dXJuX2NvZGU7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGNtZC0+aGRyLnJldHVy bl9jb2RlOwogfQogCiBzdGF0aWMgaW50IHFldGhfcXVlcnlfc2V0YWRhcHRlcnBhcm1zX2NiKHN0 cnVjdCBxZXRoX2NhcmQgKmNhcmQsCiAJCXN0cnVjdCBxZXRoX3JlcGx5ICpyZXBseSwgdW5zaWdu ZWQgbG9uZyBkYXRhKQogewotCXN0cnVjdCBxZXRoX2lwYV9jbWQgKmNtZDsKKwlzdHJ1Y3QgcWV0 aF9pcGFfY21kICpjbWQgPSAoc3RydWN0IHFldGhfaXBhX2NtZCAqKSBkYXRhOwogCiAJUUVUSF9D QVJEX1RFWFQoY2FyZCwgMywgInF1eWFkcGNiIik7CisJaWYgKHFldGhfc2V0YWRwcGFybXNfaW5z cGVjdF9yYyhjbWQpKQorCQlyZXR1cm4gMDsKIAotCWNtZCA9IChzdHJ1Y3QgcWV0aF9pcGFfY21k ICopIGRhdGE7CiAJaWYgKGNtZC0+ZGF0YS5zZXRhZGFwdGVycGFybXMuZGF0YS5xdWVyeV9jbWRz X3N1cHAubGFuX3R5cGUgJiAweDdmKSB7CiAJCWNhcmQtPmluZm8ubGlua190eXBlID0KIAkJICAg ICAgY21kLT5kYXRhLnNldGFkYXB0ZXJwYXJtcy5kYXRhLnF1ZXJ5X2NtZHNfc3VwcC5sYW5fdHlw ZTsKQEAgLTMwNjYsNyArMzA2MSw3IEBAIHN0YXRpYyBpbnQgcWV0aF9xdWVyeV9zZXRhZGFwdGVy cGFybXNfY2Ioc3RydWN0IHFldGhfY2FyZCAqY2FyZCwKIAl9CiAJY2FyZC0+b3B0aW9ucy5hZHAu c3VwcG9ydGVkX2Z1bmNzID0KIAkJY21kLT5kYXRhLnNldGFkYXB0ZXJwYXJtcy5kYXRhLnF1ZXJ5 X2NtZHNfc3VwcC5zdXBwb3J0ZWRfY21kczsKLQlyZXR1cm4gcWV0aF9kZWZhdWx0X3NldGFkYXB0 ZXJwYXJtc19jYihjYXJkLCByZXBseSwgKHVuc2lnbmVkIGxvbmcpY21kKTsKKwlyZXR1cm4gMDsK IH0KIAogc3RhdGljIHN0cnVjdCBxZXRoX2NtZF9idWZmZXIgKnFldGhfZ2V0X2FkYXB0ZXJfY21k KHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsCkBAIC0zMTU4LDIyICszMTUzLDIwIEBAIEVYUE9SVF9T WU1CT0xfR1BMKHFldGhfcXVlcnlfaXBhc3Npc3RzKTsKIHN0YXRpYyBpbnQgcWV0aF9xdWVyeV9z d2l0Y2hfYXR0cmlidXRlc19jYihzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkLAogCQkJCXN0cnVjdCBx ZXRoX3JlcGx5ICpyZXBseSwgdW5zaWduZWQgbG9uZyBkYXRhKQogewotCXN0cnVjdCBxZXRoX2lw YV9jbWQgKmNtZDsKLQlzdHJ1Y3QgcWV0aF9zd2l0Y2hfaW5mbyAqc3dfaW5mbzsKKwlzdHJ1Y3Qg cWV0aF9pcGFfY21kICpjbWQgPSAoc3RydWN0IHFldGhfaXBhX2NtZCAqKSBkYXRhOwogCXN0cnVj dCBxZXRoX3F1ZXJ5X3N3aXRjaF9hdHRyaWJ1dGVzICphdHRyczsKKwlzdHJ1Y3QgcWV0aF9zd2l0 Y2hfaW5mbyAqc3dfaW5mbzsKIAogCVFFVEhfQ0FSRF9URVhUKGNhcmQsIDIsICJxc3dpYXRjYiIp OwotCWNtZCA9IChzdHJ1Y3QgcWV0aF9pcGFfY21kICopIGRhdGE7Ci0Jc3dfaW5mbyA9IChzdHJ1 Y3QgcWV0aF9zd2l0Y2hfaW5mbyAqKXJlcGx5LT5wYXJhbTsKLQlpZiAoY21kLT5kYXRhLnNldGFk YXB0ZXJwYXJtcy5oZHIucmV0dXJuX2NvZGUgPT0gMCkgewotCQlhdHRycyA9ICZjbWQtPmRhdGEu c2V0YWRhcHRlcnBhcm1zLmRhdGEucXVlcnlfc3dpdGNoX2F0dHJpYnV0ZXM7Ci0JCXN3X2luZm8t PmNhcGFiaWxpdGllcyA9IGF0dHJzLT5jYXBhYmlsaXRpZXM7Ci0JCXN3X2luZm8tPnNldHRpbmdz ID0gYXR0cnMtPnNldHRpbmdzOwotCQlRRVRIX0NBUkRfVEVYVF8oY2FyZCwgMiwgIiUwNHglMDR4 Iiwgc3dfaW5mby0+Y2FwYWJpbGl0aWVzLAotCQkJCQkJCXN3X2luZm8tPnNldHRpbmdzKTsKLQl9 Ci0JcWV0aF9kZWZhdWx0X3NldGFkYXB0ZXJwYXJtc19jYihjYXJkLCByZXBseSwgKHVuc2lnbmVk IGxvbmcpIGNtZCk7CisJaWYgKHFldGhfc2V0YWRwcGFybXNfaW5zcGVjdF9yYyhjbWQpKQorCQly ZXR1cm4gMDsKIAorCXN3X2luZm8gPSAoc3RydWN0IHFldGhfc3dpdGNoX2luZm8gKilyZXBseS0+ cGFyYW07CisJYXR0cnMgPSAmY21kLT5kYXRhLnNldGFkYXB0ZXJwYXJtcy5kYXRhLnF1ZXJ5X3N3 aXRjaF9hdHRyaWJ1dGVzOworCXN3X2luZm8tPmNhcGFiaWxpdGllcyA9IGF0dHJzLT5jYXBhYmls aXRpZXM7CisJc3dfaW5mby0+c2V0dGluZ3MgPSBhdHRycy0+c2V0dGluZ3M7CisJUUVUSF9DQVJE X1RFWFRfKGNhcmQsIDIsICIlMDR4JTA0eCIsIHN3X2luZm8tPmNhcGFiaWxpdGllcywKKwkJCXN3 X2luZm8tPnNldHRpbmdzKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDIxMSwxNiArNDIwNCwxMyBA QCBFWFBPUlRfU1lNQk9MX0dQTChxZXRoX2RvX3NlbmRfcGFja2V0KTsKIHN0YXRpYyBpbnQgcWV0 aF9zZXRhZHBfcHJvbWlzY19tb2RlX2NiKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsCiAJCXN0cnVj dCBxZXRoX3JlcGx5ICpyZXBseSwgdW5zaWduZWQgbG9uZyBkYXRhKQogewotCXN0cnVjdCBxZXRo X2lwYV9jbWQgKmNtZDsKKwlzdHJ1Y3QgcWV0aF9pcGFfY21kICpjbWQgPSAoc3RydWN0IHFldGhf aXBhX2NtZCAqKSBkYXRhOwogCXN0cnVjdCBxZXRoX2lwYWNtZF9zZXRhZHBwYXJtcyAqc2V0cGFy bXM7CiAKIAlRRVRIX0NBUkRfVEVYVChjYXJkLCA0LCAicHJtYWRwY2IiKTsKIAotCWNtZCA9IChz dHJ1Y3QgcWV0aF9pcGFfY21kICopIGRhdGE7CiAJc2V0cGFybXMgPSAmKGNtZC0+ZGF0YS5zZXRh ZGFwdGVycGFybXMpOwotCi0JcWV0aF9kZWZhdWx0X3NldGFkYXB0ZXJwYXJtc19jYihjYXJkLCBy ZXBseSwgKHVuc2lnbmVkIGxvbmcpY21kKTsKLQlpZiAoY21kLT5oZHIucmV0dXJuX2NvZGUpIHsK KwlpZiAocWV0aF9zZXRhZHBwYXJtc19pbnNwZWN0X3JjKGNtZCkpIHsKIAkJUUVUSF9DQVJEX1RF WFRfKGNhcmQsIDQsICJwcm1yYyV4IiwgY21kLT5oZHIucmV0dXJuX2NvZGUpOwogCQlzZXRwYXJt cy0+ZGF0YS5tb2RlID0gU0VUX1BST01JU0NfTU9ERV9PRkY7CiAJfQpAQCAtNDI5MCwxOCArNDI4 MCwxOCBAQCBFWFBPUlRfU1lNQk9MX0dQTChxZXRoX2dldF9zdGF0cyk7CiBzdGF0aWMgaW50IHFl dGhfc2V0YWRwcGFybXNfY2hhbmdlX21hY2FkZHJfY2Ioc3RydWN0IHFldGhfY2FyZCAqY2FyZCwK IAkJc3RydWN0IHFldGhfcmVwbHkgKnJlcGx5LCB1bnNpZ25lZCBsb25nIGRhdGEpCiB7Ci0Jc3Ry dWN0IHFldGhfaXBhX2NtZCAqY21kOworCXN0cnVjdCBxZXRoX2lwYV9jbWQgKmNtZCA9IChzdHJ1 Y3QgcWV0aF9pcGFfY21kICopIGRhdGE7CiAKIAlRRVRIX0NBUkRfVEVYVChjYXJkLCA0LCAiY2hn bWFjY2IiKTsKKwlpZiAocWV0aF9zZXRhZHBwYXJtc19pbnNwZWN0X3JjKGNtZCkpCisJCXJldHVy biAwOwogCi0JY21kID0gKHN0cnVjdCBxZXRoX2lwYV9jbWQgKikgZGF0YTsKIAlpZiAoIWNhcmQt Pm9wdGlvbnMubGF5ZXIyIHx8CiAJICAgICEoY2FyZC0+aW5mby5tYWNfYml0cyAmIFFFVEhfTEFZ RVIyX01BQ19SRUFEKSkgewogCQlldGhlcl9hZGRyX2NvcHkoY2FyZC0+ZGV2LT5kZXZfYWRkciwK IAkJCQljbWQtPmRhdGEuc2V0YWRhcHRlcnBhcm1zLmRhdGEuY2hhbmdlX2FkZHIuYWRkcik7CiAJ CWNhcmQtPmluZm8ubWFjX2JpdHMgfD0gUUVUSF9MQVlFUjJfTUFDX1JFQUQ7CiAJfQotCXFldGhf ZGVmYXVsdF9zZXRhZGFwdGVycGFybXNfY2IoY2FyZCwgcmVwbHksICh1bnNpZ25lZCBsb25nKSBj bWQpOwogCXJldHVybiAwOwogfQogCkBAIC00MzMyLDEzICs0MzIyLDE1IEBAIEVYUE9SVF9TWU1C T0xfR1BMKHFldGhfc2V0YWRwcGFybXNfY2hhbmdlX21hY2FkZHIpOwogc3RhdGljIGludCBxZXRo X3NldGFkcHBhcm1zX3NldF9hY2Nlc3NfY3RybF9jYihzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkLAog CQlzdHJ1Y3QgcWV0aF9yZXBseSAqcmVwbHksIHVuc2lnbmVkIGxvbmcgZGF0YSkKIHsKLQlzdHJ1 Y3QgcWV0aF9pcGFfY21kICpjbWQ7CisJc3RydWN0IHFldGhfaXBhX2NtZCAqY21kID0gKHN0cnVj dCBxZXRoX2lwYV9jbWQgKikgZGF0YTsKIAlzdHJ1Y3QgcWV0aF9zZXRfYWNjZXNzX2N0cmwgKmFj Y2Vzc19jdHJsX3JlcTsKIAlpbnQgZmFsbGJhY2sgPSAqKGludCAqKXJlcGx5LT5wYXJhbTsKIAog CVFFVEhfQ0FSRF9URVhUKGNhcmQsIDQsICJzZXRhY2NiIik7CisJaWYgKGNtZC0+aGRyLnJldHVy bl9jb2RlKQorCQlyZXR1cm4gMDsKKwlxZXRoX3NldGFkcHBhcm1zX2luc3BlY3RfcmMoY21kKTsK IAotCWNtZCA9IChzdHJ1Y3QgcWV0aF9pcGFfY21kICopIGRhdGE7CiAJYWNjZXNzX2N0cmxfcmVx ID0gJmNtZC0+ZGF0YS5zZXRhZGFwdGVycGFybXMuZGF0YS5zZXRfYWNjZXNzX2N0cmw7CiAJUUVU SF9EQkZfVEVYVF8oU0VUVVAsIDIsICJzZXRhY2NiIik7CiAJUUVUSF9EQkZfVEVYVF8oU0VUVVAs IDIsICIlcyIsIGNhcmQtPmdkZXYtPmRldi5rb2JqLm5hbWUpOwpAQCAtNDQxMSw3ICs0NDAzLDYg QEAgc3RhdGljIGludCBxZXRoX3NldGFkcHBhcm1zX3NldF9hY2Nlc3NfY3RybF9jYihzdHJ1Y3Qg cWV0aF9jYXJkICpjYXJkLAogCQkJY2FyZC0+b3B0aW9ucy5pc29sYXRpb24gPSBjYXJkLT5vcHRp b25zLnByZXZfaXNvbGF0aW9uOwogCQlicmVhazsKIAl9Ci0JcWV0aF9kZWZhdWx0X3NldGFkYXB0 ZXJwYXJtc19jYihjYXJkLCByZXBseSwgKHVuc2lnbmVkIGxvbmcpIGNtZCk7CiAJcmV0dXJuIDA7 CiB9CiAKQEAgLTQ2OTksMTQgKzQ2OTAsMTUgQEAgc3RhdGljIGludCBxZXRoX3NubXBfY29tbWFu ZChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkLCBjaGFyIF9fdXNlciAqdWRhdGEpCiBzdGF0aWMgaW50 IHFldGhfc2V0YWRwcGFybXNfcXVlcnlfb2F0X2NiKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsCiAJ CXN0cnVjdCBxZXRoX3JlcGx5ICpyZXBseSwgdW5zaWduZWQgbG9uZyBkYXRhKQogewotCXN0cnVj dCBxZXRoX2lwYV9jbWQgKmNtZDsKKwlzdHJ1Y3QgcWV0aF9pcGFfY21kICpjbWQgPSAoc3RydWN0 IHFldGhfaXBhX2NtZCAqKWRhdGE7CiAJc3RydWN0IHFldGhfcW9hdF9wcml2ICpwcml2OwogCWNo YXIgKnJlc2RhdGE7CiAJaW50IHJlc2RhdGFsZW47CiAKIAlRRVRIX0NBUkRfVEVYVChjYXJkLCAz LCAicW9hdGNiIik7CisJaWYgKHFldGhfc2V0YWRwcGFybXNfaW5zcGVjdF9yYyhjbWQpKQorCQly ZXR1cm4gMDsKIAotCWNtZCA9IChzdHJ1Y3QgcWV0aF9pcGFfY21kICopZGF0YTsKIAlwcml2ID0g KHN0cnVjdCBxZXRoX3FvYXRfcHJpdiAqKXJlcGx5LT5wYXJhbTsKIAlyZXNkYXRhbGVuID0gY21k LT5kYXRhLnNldGFkYXB0ZXJwYXJtcy5oZHIuY21kbGVuZ3RoOwogCXJlc2RhdGEgPSAoY2hhciAq KWRhdGEgKyAyODsKQEAgLTQ4MDAsMjEgKzQ3OTIsMTggQEAgc3RhdGljIGludCBxZXRoX3F1ZXJ5 X29hdF9jb21tYW5kKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsIGNoYXIgX191c2VyICp1ZGF0YSkK IHN0YXRpYyBpbnQgcWV0aF9xdWVyeV9jYXJkX2luZm9fY2Ioc3RydWN0IHFldGhfY2FyZCAqY2Fy ZCwKIAkJCQkgICBzdHJ1Y3QgcWV0aF9yZXBseSAqcmVwbHksIHVuc2lnbmVkIGxvbmcgZGF0YSkK IHsKLQlzdHJ1Y3QgcWV0aF9pcGFfY21kICpjbWQ7CisJc3RydWN0IGNhcnJpZXJfaW5mbyAqY2Fy cmllcl9pbmZvID0gKHN0cnVjdCBjYXJyaWVyX2luZm8gKilyZXBseS0+cGFyYW07CisJc3RydWN0 IHFldGhfaXBhX2NtZCAqY21kID0gKHN0cnVjdCBxZXRoX2lwYV9jbWQgKilkYXRhOwogCXN0cnVj dCBxZXRoX3F1ZXJ5X2NhcmRfaW5mbyAqY2FyZF9pbmZvOwotCXN0cnVjdCBjYXJyaWVyX2luZm8g KmNhcnJpZXJfaW5mbzsKIAogCVFFVEhfQ0FSRF9URVhUKGNhcmQsIDIsICJxY3JkaW5jYiIpOwot CWNhcnJpZXJfaW5mbyA9IChzdHJ1Y3QgY2Fycmllcl9pbmZvICopcmVwbHktPnBhcmFtOwotCWNt ZCA9IChzdHJ1Y3QgcWV0aF9pcGFfY21kICopZGF0YTsKLQljYXJkX2luZm8gPSAmY21kLT5kYXRh LnNldGFkYXB0ZXJwYXJtcy5kYXRhLmNhcmRfaW5mbzsKLQlpZiAoY21kLT5kYXRhLnNldGFkYXB0 ZXJwYXJtcy5oZHIucmV0dXJuX2NvZGUgPT0gMCkgewotCQljYXJyaWVyX2luZm8tPmNhcmRfdHlw ZSA9IGNhcmRfaW5mby0+Y2FyZF90eXBlOwotCQljYXJyaWVyX2luZm8tPnBvcnRfbW9kZSA9IGNh cmRfaW5mby0+cG9ydF9tb2RlOwotCQljYXJyaWVyX2luZm8tPnBvcnRfc3BlZWQgPSBjYXJkX2lu Zm8tPnBvcnRfc3BlZWQ7Ci0JfQorCWlmIChxZXRoX3NldGFkcHBhcm1zX2luc3BlY3RfcmMoY21k KSkKKwkJcmV0dXJuIDA7CiAKLQlxZXRoX2RlZmF1bHRfc2V0YWRhcHRlcnBhcm1zX2NiKGNhcmQs IHJlcGx5LCAodW5zaWduZWQgbG9uZykgY21kKTsKKwljYXJkX2luZm8gPSAmY21kLT5kYXRhLnNl dGFkYXB0ZXJwYXJtcy5kYXRhLmNhcmRfaW5mbzsKKwljYXJyaWVyX2luZm8tPmNhcmRfdHlwZSA9 IGNhcmRfaW5mby0+Y2FyZF90eXBlOworCWNhcnJpZXJfaW5mby0+cG9ydF9tb2RlID0gY2FyZF9p bmZvLT5wb3J0X21vZGU7CisJY2Fycmllcl9pbmZvLT5wb3J0X3NwZWVkID0gY2FyZF9pbmZvLT5w b3J0X3NwZWVkOwogCXJldHVybiAwOwogfQogCi0tIAoyLjE0LjMKCgpGcm9tIGNhYzhlODg2MTdk MjdjOTk2OTdkNDc4ZDQ4NzllODk5MmVhNGQwNTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogVGh1LCAx OSBBcHIgMjAxOCAxMjo1MjowNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDEvNTJdIHMzOTAvcWV0 aDogYXZvaWQgY29udHJvbCBJTyBjb21wbGV0aW9uIHN0YWxscwoKWyBVcHN0cmVhbSBjb21taXQg OTAxZTNmNDlmYWNiZDMxYjJiM2QxNzg2NjM3YjRhMzVlMTAyMmU5YiBdCgpGb3IgY29udHJvbCBJ TywgcWV0aCBjdXJyZW50bHkgdHJhY2tzIHRoZSBpbmRleCBvZiB0aGUgYnVmZmVyIHRoYXQgaXQK ZXhwZWN0cyB0byBjb21wbGV0ZSB0aGUgbmV4dCBJTyBvbiBlYWNoIHFldGhfY2hhbm5lbC4gSWYg dGhlIGNoYW5uZWwKcHJlc2VudHMgYW4gSVJRIHdoaWxlIHRoaXMgYnVmZmVyIGhhcyBub3QgeWV0 IGNvbXBsZXRlZCwgbm8gY29tcGxldGlvbgpwcm9jZXNzaW5nIGZvciBfYW55XyBjb21wbGV0ZWQg YnVmZmVyIHRha2VzIHBsYWNlLgpTbyBpZiB0aGUgJ25leHQgYnVmZmVyJyBpcyBza2lwcGVkIGZv ciBhbnkgc29ydCBvZiByZWFzb24qIChlZy4gd2hlbiBpdAppcyByZWxlYXNlZCBkdWUgdG8gZXJy b3IgY29uZGl0aW9ucywgYmVmb3JlIHRoZSBJTyBpcyBzdGFydGVkKSwgdGhlCmJ1ZmZlciBvYnZp b3VzbHkgd29uJ3Qgc3dpdGNoIHRvIFBST0NFU1NFRCB1bnRpbCBpdCBpcyBldmVudHVhbGx5CmFs bG9jYXRlZCBmb3IgYSBfZGlmZmVyZW50XyBJTyBhbmQgY29tcGxldGVzLgpVbnRpbCB0aGlzIGhh cHBlbnMsIGFsbCBjb21wbGV0aW9uIHByb2Nlc3Npbmcgb24gdGhhdCBjaGFubmVsIHN0YWxscwph bmQgcGVuZGluZyByZXF1ZXN0cyBwb3NzaWJseSB0aW1lIG91dC4KCkFzIGEgZml4LCByZW1vdmUg dGhlIHdob2xlICduZXh0IGJ1ZmZlcicgbG9naWMgYW5kIHNpbXBseSBwcm9jZXNzIGFueQpJTyBi dWZmZXIgcmlnaHQgd2hlbiBpdCBjb21wbGV0ZXMuIEEgY2hhbm5lbCB3aWxsIG5ldmVyIGhhdmUg bW9yZSB0aGFuCm9uZSBJTyBwZW5kaW5nLCBzbyB0aGVyZSdzIG5vIHJpc2sgb2YgcHJvY2Vzc2lu ZyBvdXQtb2Ytc2VxdWVuY2UuCgoqTm90ZTogY3VycmVudGx5IGp1c3Qgb25lIGxvY2F0aW9uIGlu IHRoZSBjb2RlIHJlYWxseSBoYW5kbGVzIHRoaXMgcHJvYmxlbSwKICAgICAgIGJ5IGFkdmFuY2lu ZyB0aGUgJ25leHQnIGluZGV4IG1hbnVhbGx5LgoKU2lnbmVkLW9mZi1ieTogSnVsaWFuIFdpZWRt YW5uIDxqd2lAbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmUu aCAgICAgIHwgIDIgLS0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyB8IDIyICsr KysrLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAx OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZS5o IGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmUuaAppbmRleCA5NTljNjVjZjc1ZDkuLmUzMzhj ZTgyM2M0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmUuaAorKysgYi9k cml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZS5oCkBAIC01NjUsNyArNTY1LDYgQEAgZW51bSBxZXRo X2lwX3R5cGVzIHsKIGVudW0gcWV0aF9jbWRfYnVmZmVyX3N0YXRlIHsKIAlCVUZfU1RBVEVfRlJF RSwKIAlCVUZfU1RBVEVfTE9DS0VELAotCUJVRl9TVEFURV9QUk9DRVNTRUQsCiB9OwogCiBlbnVt IHFldGhfY3EgewpAQCAtNjA5LDcgKzYwOCw2IEBAIHN0cnVjdCBxZXRoX2NoYW5uZWwgewogCXN0 cnVjdCBxZXRoX2NtZF9idWZmZXIgaW9iW1FFVEhfQ01EX0JVRkZFUl9OT107CiAJYXRvbWljX3Qg aXJxX3BlbmRpbmc7CiAJaW50IGlvX2J1Zl9ubzsKLQlpbnQgYnVmX25vOwogfTsKIAogLyoqCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3Mz OTAvbmV0L3FldGhfY29yZV9tYWluLmMKaW5kZXggZWRlZmYyOTI3MWIzLi5hNTk1MzYzNWE5OTgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYworKysgYi9kcml2 ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKQEAgLTgyMSw3ICs4MjEsNiBAQCB2b2lkIHFl dGhfY2xlYXJfY21kX2J1ZmZlcnMoc3RydWN0IHFldGhfY2hhbm5lbCAqY2hhbm5lbCkKIAogCWZv ciAoY250ID0gMDsgY250IDwgUUVUSF9DTURfQlVGRkVSX05POyBjbnQrKykKIAkJcWV0aF9yZWxl YXNlX2J1ZmZlcihjaGFubmVsLCAmY2hhbm5lbC0+aW9iW2NudF0pOwotCWNoYW5uZWwtPmJ1Zl9u byA9IDA7CiAJY2hhbm5lbC0+aW9fYnVmX25vID0gMDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHFl dGhfY2xlYXJfY21kX2J1ZmZlcnMpOwpAQCAtOTI3LDcgKzkyNiw2IEBAIHN0YXRpYyBpbnQgcWV0 aF9zZXR1cF9jaGFubmVsKHN0cnVjdCBxZXRoX2NoYW5uZWwgKmNoYW5uZWwpCiAJCQlrZnJlZShj aGFubmVsLT5pb2JbY250XS5kYXRhKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCWNoYW5uZWwt PmJ1Zl9ubyA9IDA7CiAJY2hhbm5lbC0+aW9fYnVmX25vID0gMDsKIAlhdG9taWNfc2V0KCZjaGFu bmVsLT5pcnFfcGVuZGluZywgMCk7CiAJc3Bpbl9sb2NrX2luaXQoJmNoYW5uZWwtPmlvYl9sb2Nr KTsKQEAgLTExMDMsMTEgKzExMDEsOSBAQCBzdGF0aWMgdm9pZCBxZXRoX2lycShzdHJ1Y3QgY2N3 X2RldmljZSAqY2RldiwgdW5zaWduZWQgbG9uZyBpbnRwYXJtLAogewogCWludCByYzsKIAlpbnQg Y3N0YXQsIGRzdGF0OwotCXN0cnVjdCBxZXRoX2NtZF9idWZmZXIgKmJ1ZmZlcjsKIAlzdHJ1Y3Qg cWV0aF9jaGFubmVsICpjaGFubmVsOwogCXN0cnVjdCBxZXRoX2NhcmQgKmNhcmQ7CiAJc3RydWN0 IHFldGhfY21kX2J1ZmZlciAqaW9iOwotCV9fdTggaW5kZXg7CiAKIAlpZiAoX19xZXRoX2NoZWNr X2lyYl9lcnJvcihjZGV2LCBpbnRwYXJtLCBpcmIpKQogCQlyZXR1cm47CkBAIC0xMTg1LDI1ICsx MTgxLDE4IEBAIHN0YXRpYyB2b2lkIHFldGhfaXJxKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCB1 bnNpZ25lZCBsb25nIGludHBhcm0sCiAJCWNoYW5uZWwtPnN0YXRlID0gQ0hfU1RBVEVfUkNEX0RP TkU7CiAJCWdvdG8gb3V0OwogCX0KLQlpZiAoaW50cGFybSkgewotCQlidWZmZXIgPSAoc3RydWN0 IHFldGhfY21kX2J1ZmZlciAqKSBfX3ZhKChhZGRyX3QpaW50cGFybSk7Ci0JCWJ1ZmZlci0+c3Rh dGUgPSBCVUZfU1RBVEVfUFJPQ0VTU0VEOwotCX0KIAlpZiAoY2hhbm5lbCA9PSAmY2FyZC0+ZGF0 YSkKIAkJcmV0dXJuOwogCWlmIChjaGFubmVsID09ICZjYXJkLT5yZWFkICYmCiAJICAgIGNoYW5u ZWwtPnN0YXRlID09IENIX1NUQVRFX1VQKQogCQlfX3FldGhfaXNzdWVfbmV4dF9yZWFkKGNhcmQp OwogCi0JaW9iID0gY2hhbm5lbC0+aW9iOwotCWluZGV4ID0gY2hhbm5lbC0+YnVmX25vOwotCXdo aWxlIChpb2JbaW5kZXhdLnN0YXRlID09IEJVRl9TVEFURV9QUk9DRVNTRUQpIHsKLQkJaWYgKGlv YltpbmRleF0uY2FsbGJhY2sgIT0gTlVMTCkKLQkJCWlvYltpbmRleF0uY2FsbGJhY2soY2hhbm5l bCwgaW9iICsgaW5kZXgpOwotCi0JCWluZGV4ID0gKGluZGV4ICsgMSkgJSBRRVRIX0NNRF9CVUZG RVJfTk87CisJaWYgKGludHBhcm0pIHsKKwkJaW9iID0gKHN0cnVjdCBxZXRoX2NtZF9idWZmZXIg KikgX192YSgoYWRkcl90KWludHBhcm0pOworCQlpZiAoaW9iLT5jYWxsYmFjaykKKwkJCWlvYi0+ Y2FsbGJhY2soaW9iLT5jaGFubmVsLCBpb2IpOwogCX0KLQljaGFubmVsLT5idWZfbm8gPSBpbmRl eDsKKwogb3V0OgogCXdha2VfdXAoJmNhcmQtPndhaXRfcSk7CiAJcmV0dXJuOwpAQCAtMjIxNyw3 ICsyMjA2LDYgQEAgaW50IHFldGhfc2VuZF9jb250cm9sX2RhdGEoc3RydWN0IHFldGhfY2FyZCAq Y2FyZCwgaW50IGxlbiwKIGVycm9yOgogCWF0b21pY19zZXQoJmNhcmQtPndyaXRlLmlycV9wZW5k aW5nLCAwKTsKIAlxZXRoX3JlbGVhc2VfYnVmZmVyKGlvYi0+Y2hhbm5lbCwgaW9iKTsKLQljYXJk LT53cml0ZS5idWZfbm8gPSAoY2FyZC0+d3JpdGUuYnVmX25vICsgMSkgJSBRRVRIX0NNRF9CVUZG RVJfTk87CiAJcmMgPSByZXBseS0+cmM7CiAJcWV0aF9wdXRfcmVwbHkocmVwbHkpOwogCXJldHVy biByYzsKLS0gCjIuMTQuMwoKCkZyb20gNmI2MWZkMjAyY2JiMGYwOTY4Zjc3MjZmMjQyMzk2ZDlk OTE2OWY0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIFdpZWRtYW5uIDxq d2lAbGludXguaWJtLmNvbT4KRGF0ZTogVGh1LCAxOSBBcHIgMjAxOCAxMjo1MjowOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggNDIvNTJdIHMzOTAvcWV0aDogaGFuZGxlIGZhaWx1cmUgb24gd29ya3F1 ZXVlIGNyZWF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBhOTM2YjFlZjM3Y2UxZTk5NjUzMzg3OGY0 YjIzOTQ0Zjk0NDRkY2RmIF0KCkNyZWF0aW5nIHRoZSBnbG9iYWwgd29ya3F1ZXVlIGR1cmluZyBk cml2ZXIgaW5pdCBtYXkgZmFpbCwgZGVhbCB3aXRoIGl0LgpBbHNvLCBkZXN0cm95IHRoZSBjcmVh dGVkIHdvcmtxdWV1ZSBvbiBhbnkgc3Vic2VxdWVudCBlcnJvci4KCkZpeGVzOiAwZjU0NzYxZDE2 N2YgKCJxZXRoOiBTdXBwb3J0IFZFUEEgbW9kZSIpClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBXaWVk bWFubiA8andpQGxpbnV4LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWlu LmMgfCA4ICsrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIGIv ZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCmluZGV4IGE1OTUzNjM1YTk5OC4uYzEx YTA4M2NkOTU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMK KysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCkBAIC02NTQ0LDEwICs2NTQ0 LDE0IEBAIHN0YXRpYyBpbnQgX19pbml0IHFldGhfY29yZV9pbml0KHZvaWQpCiAJbXV0ZXhfaW5p dCgmcWV0aF9tb2RfbXV0ZXgpOwogCiAJcWV0aF93cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29y a3F1ZXVlKCJxZXRoX3dxIik7CisJaWYgKCFxZXRoX3dxKSB7CisJCXJjID0gLUVOT01FTTsKKwkJ Z290byBvdXRfZXJyOworCX0KIAogCXJjID0gcWV0aF9yZWdpc3Rlcl9kYmZfdmlld3MoKTsKIAlp ZiAocmMpCi0JCWdvdG8gb3V0X2VycjsKKwkJZ290byBkYmZfZXJyOwogCXFldGhfY29yZV9yb290 X2RldiA9IHJvb3RfZGV2aWNlX3JlZ2lzdGVyKCJxZXRoIik7CiAJcmMgPSBQVFJfRVJSX09SX1pF Uk8ocWV0aF9jb3JlX3Jvb3RfZGV2KTsKIAlpZiAocmMpCkBAIC02NTg0LDYgKzY1ODgsOCBAQCBz dGF0aWMgaW50IF9faW5pdCBxZXRoX2NvcmVfaW5pdCh2b2lkKQogCXJvb3RfZGV2aWNlX3VucmVn aXN0ZXIocWV0aF9jb3JlX3Jvb3RfZGV2KTsKIHJlZ2lzdGVyX2VycjoKIAlxZXRoX3VucmVnaXN0 ZXJfZGJmX3ZpZXdzKCk7CitkYmZfZXJyOgorCWRlc3Ryb3lfd29ya3F1ZXVlKHFldGhfd3EpOwog b3V0X2VycjoKIAlwcl9lcnIoIkluaXRpYWxpemluZyB0aGUgcWV0aCBkZXZpY2UgZHJpdmVyIGZh aWxlZFxuIik7CiAJcmV0dXJuIHJjOwotLSAKMi4xNC4zCgoKRnJvbSAxZmQ5YWNmNjYwZGE3MTQx YjQ1YzExN2U1NmFiZTA0MjZlZTcwMWI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJ dmFuIEtob3JvbnpodWsgPGl2YW4ua2hvcm9uemh1a0BsaW5hcm8ub3JnPgpEYXRlOiBUaHUsIDE5 IEFwciAyMDE4IDIyOjQ5OjA5ICswMzAwClN1YmplY3Q6IFtQQVRDSCA0My81Ml0gbmV0OiBldGhl cm5ldDogdGk6IGNwc3c6IGZpeCB0eCB2bGFuIHByaW9yaXR5IG1hcHBpbmcKClsgVXBzdHJlYW0g Y29tbWl0IDVlMzkxZGM1YThkODAxYTI0MTBkMDAzMmFkNGE0MjhkMWQ2MTgwMGMgXQoKVGhlIENQ RE1BX1RYX1BSSU9SSVRZX01BUCBpbiByZWFsIGlzIHZsYW4gcGNwIGZpZWxkIHByaW9yaXR5IG1h cHBpbmcKcmVnaXN0ZXIgYW5kIGJhc2ljYWxseSByZXBsYWNlcyB2bGFuIHBjcCBmaWVsZCBmb3Ig dGFnZ2VkIHBhY2tldHMuClNvLCBzZXQgaXQgdG8gYmUgMToxIG1hcHBpbmcuIE90aGVyd2lzZSwg aXQgd2lsbCBjYXVzZSB1bmV4cGVjdGVkCmNoYW5nZSBvZiBlZ3Jlc3MgdmxhbiB0YWdnZWQgcGFj a2V0cywgbGlrZSBwcmlvIDIgLT4gcHJpbyA1LgoKRml4ZXM6IGUwNTEwN2U2Yjc0NyAoIm5ldDog ZXRoZXJuZXQ6IHRpOiBjcHN3OiBhZGQgbXVsdGkgcXVldWUgc3VwcG9ydCIpClJldmlld2VkLWJ5 OiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5Z29yaWkuc3RyYXNoa29AdGkuY29tPgpTaWduZWQtb2Zm LWJ5OiBJdmFuIEtob3JvbnpodWsgPGl2YW4ua2hvcm9uemh1a0BsaW5hcm8ub3JnPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv dGkvY3Bzdy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jCmluZGV4IGIyYjMwYzlk ZjAzNy4uMzNjMzViMmRmN2Q1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9j cHN3LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jCkBAIC0xMjUsNyArMTI1 LDcgQEAgZG8gewkJCQkJCQkJXAogCiAjZGVmaW5lIFJYX1BSSU9SSVRZX01BUFBJTkcJMHg3NjU0 MzIxMAogI2RlZmluZSBUWF9QUklPUklUWV9NQVBQSU5HCTB4MzMyMjExMDAKLSNkZWZpbmUgQ1BE TUFfVFhfUFJJT1JJVFlfTUFQCTB4MDEyMzQ1NjcKKyNkZWZpbmUgQ1BETUFfVFhfUFJJT1JJVFlf TUFQCTB4NzY1NDMyMTAKIAogI2RlZmluZSBDUFNXX1ZMQU5fQVdBUkUJCUJJVCgxKQogI2RlZmlu ZSBDUFNXX0FMRV9WTEFOX0FXQVJFCTEKLS0gCjIuMTQuMwoKCkZyb20gYWUzODA2ZDkwMmQyZDEy MzdhNTIxNTg5YWRlMjY1MTFmZTg4NDQ3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDExIEFwciAyMDE4 IDE0OjQ2OjAwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0NC81Ml0gbmV0OiB2YWxpZGF0ZSBhdHRy aWJ1dGUgc2l6ZXMgaW4gbmVpZ2hfZHVtcF90YWJsZSgpCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZGQw N2MxNDNhNGI1NGQwNTBlNzQ4YmVlNGI0YjllOTRhN2IxNzQ0IF0KClNpbmNlIG5laWdoX2R1bXBf dGFibGUoKSBjYWxscyBubG1zZ19wYXJzZSgpIHdpdGhvdXQgZ2l2aW5nIHBvbGljeQpjb25zdHJh aW50cywgYXR0cmlidXRlcyBjYW4gaGF2ZSBhcmJpcmFyeSBzaXplIHRoYXQgd2UgbXVzdCB2YWxp ZGF0ZQoKUmVwb3J0ZWQgYnkgc3l6Ym90L0tNU0FOIDoKCkJVRzogS01TQU46IHVuaW5pdC12YWx1 ZSBpbiBuZWlnaF9tYXN0ZXJfZmlsdGVyZWQgbmV0L2NvcmUvbmVpZ2hib3VyLmM6MjI5MiBbaW5s aW5lXQpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gbmVpZ2hfZHVtcF90YWJsZSBuZXQvY29y ZS9uZWlnaGJvdXIuYzoyMzQ4IFtpbmxpbmVdCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBu ZWlnaF9kdW1wX2luZm8rMHgxYWYwLzB4MjI1MCBuZXQvY29yZS9uZWlnaGJvdXIuYzoyNDM4CkNQ VTogMSBQSUQ6IDM1NzUgQ29tbTogc3l6a2FsbGVyMjY4ODkxIE5vdCB0YWludGVkIDQuMTYuMCsg IzgzCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENv bXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBf c3RhY2sgbGliL2R1bXBfc3RhY2suYzoxNyBbaW5saW5lXQogZHVtcF9zdGFjaysweDE4NS8weDFk MCBsaWIvZHVtcF9zdGFjay5jOjUzCiBrbXNhbl9yZXBvcnQrMHgxNDIvMHgyNDAgbW0va21zYW4v a21zYW4uYzoxMDY3CiBfX21zYW5fd2FybmluZ18zMisweDZjLzB4YjAgbW0va21zYW4va21zYW5f aW5zdHIuYzo2NzYKIG5laWdoX21hc3Rlcl9maWx0ZXJlZCBuZXQvY29yZS9uZWlnaGJvdXIuYzoy MjkyIFtpbmxpbmVdCiBuZWlnaF9kdW1wX3RhYmxlIG5ldC9jb3JlL25laWdoYm91ci5jOjIzNDgg W2lubGluZV0KIG5laWdoX2R1bXBfaW5mbysweDFhZjAvMHgyMjUwIG5ldC9jb3JlL25laWdoYm91 ci5jOjI0MzgKIG5ldGxpbmtfZHVtcCsweDlhZC8weDE1NDAgbmV0L25ldGxpbmsvYWZfbmV0bGlu ay5jOjIyMjUKIF9fbmV0bGlua19kdW1wX3N0YXJ0KzB4MTE2Ny8weDEyYTAgbmV0L25ldGxpbmsv YWZfbmV0bGluay5jOjIzMjIKIG5ldGxpbmtfZHVtcF9zdGFydCBpbmNsdWRlL2xpbnV4L25ldGxp bmsuaDoyMTQgW2lubGluZV0KIHJ0bmV0bGlua19yY3ZfbXNnKzB4MTQzNS8weDE1NjAgbmV0L2Nv cmUvcnRuZXRsaW5rLmM6NDU5OAogbmV0bGlua19yY3Zfc2tiKzB4MzU1LzB4NWYwIG5ldC9uZXRs aW5rL2FmX25ldGxpbmsuYzoyNDQ3CiBydG5ldGxpbmtfcmN2KzB4NTAvMHg2MCBuZXQvY29yZS9y dG5ldGxpbmsuYzo0NjUzCiBuZXRsaW5rX3VuaWNhc3Rfa2VybmVsIG5ldC9uZXRsaW5rL2FmX25l dGxpbmsuYzoxMzExIFtpbmxpbmVdCiBuZXRsaW5rX3VuaWNhc3QrMHgxNjcyLzB4MTc1MCBuZXQv bmV0bGluay9hZl9uZXRsaW5rLmM6MTMzNwogbmV0bGlua19zZW5kbXNnKzB4MTA0OC8weDEzMTAg bmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjE5MDAKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29j a2V0LmM6NjMwIFtpbmxpbmVdCiBzb2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY0MCBbaW5saW5l XQogX19fc3lzX3NlbmRtc2crMHhlYzAvMHgxMzEwIG5ldC9zb2NrZXQuYzoyMDQ2CiBfX3N5c19z ZW5kbXNnIG5ldC9zb2NrZXQuYzoyMDgwIFtpbmxpbmVdCiBTWVNDX3NlbmRtc2crMHgyYTMvMHgz ZDAgbmV0L3NvY2tldC5jOjIwOTEKIFN5U19zZW5kbXNnKzB4NTQvMHg4MCBuZXQvc29ja2V0LmM6 MjA4NwogZG9fc3lzY2FsbF82NCsweDMwOS8weDQzMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoy ODcKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDNkLzB4YTIKUklQOiAwMDMzOjB4 NDNmZWQ5ClJTUDogMDAyYjowMDAwN2ZmZGRiZWUyNzk4IEVGTEFHUzogMDAwMDAyMTMgT1JJR19S QVg6IDAwMDAwMDAwMDAwMDAwMmUKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAw MDQwMDJjOCBSQ1g6IDAwMDAwMDAwMDA0M2ZlZDkKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTog MDAwMDAwMDAyMDAwNTAwMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKUkJQOiAwMDAwMDAwMDAwNmNh MDE4IFIwODogMDAwMDAwMDAwMDQwMDJjOCBSMDk6IDAwMDAwMDAwMDA0MDAyYzgKUjEwOiAwMDAw MDAwMDAwNDAwMmM4IFIxMTogMDAwMDAwMDAwMDAwMDIxMyBSMTI6IDAwMDAwMDAwMDA0MDE4MDAK UjEzOiAwMDAwMDAwMDAwNDAxODkwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAw MDAwMDAwMDAKClVuaW5pdCB3YXMgY3JlYXRlZCBhdDoKIGttc2FuX3NhdmVfc3RhY2tfd2l0aF9m bGFncyBtbS9rbXNhbi9rbXNhbi5jOjI3OCBbaW5saW5lXQoga21zYW5faW50ZXJuYWxfcG9pc29u X3NoYWRvdysweGI4LzB4MWIwIG1tL2ttc2FuL2ttc2FuLmM6MTg4CiBrbXNhbl9rbWFsbG9jKzB4 OTQvMHgxMDAgbW0va21zYW4va21zYW4uYzozMTQKIGttc2FuX3NsYWJfYWxsb2MrMHgxMS8weDIw IG1tL2ttc2FuL2ttc2FuLmM6MzIxCiBzbGFiX3Bvc3RfYWxsb2NfaG9vayBtbS9zbGFiLmg6NDQ1 IFtpbmxpbmVdCiBzbGFiX2FsbG9jX25vZGUgbW0vc2x1Yi5jOjI3MzcgW2lubGluZV0KIF9fa21h bGxvY19ub2RlX3RyYWNrX2NhbGxlcisweGFlZC8weDExYzAgbW0vc2x1Yi5jOjQzNjkKIF9fa21h bGxvY19yZXNlcnZlIG5ldC9jb3JlL3NrYnVmZi5jOjEzOCBbaW5saW5lXQogX19hbGxvY19za2Ir MHgyY2YvMHg5ZjAgbmV0L2NvcmUvc2tidWZmLmM6MjA2CiBhbGxvY19za2IgaW5jbHVkZS9saW51 eC9za2J1ZmYuaDo5ODQgW2lubGluZV0KIG5ldGxpbmtfYWxsb2NfbGFyZ2Vfc2tiIG5ldC9uZXRs aW5rL2FmX25ldGxpbmsuYzoxMTgzIFtpbmxpbmVdCiBuZXRsaW5rX3NlbmRtc2crMHg5YTYvMHgx MzEwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxODc1CiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0 L3NvY2tldC5jOjYzMCBbaW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2NDAgW2lu bGluZV0KIF9fX3N5c19zZW5kbXNnKzB4ZWMwLzB4MTMxMCBuZXQvc29ja2V0LmM6MjA0NgogX19z eXNfc2VuZG1zZyBuZXQvc29ja2V0LmM6MjA4MCBbaW5saW5lXQogU1lTQ19zZW5kbXNnKzB4MmEz LzB4M2QwIG5ldC9zb2NrZXQuYzoyMDkxCiBTeVNfc2VuZG1zZysweDU0LzB4ODAgbmV0L3NvY2tl dC5jOjIwODcKIGRvX3N5c2NhbGxfNjQrMHgzMDkvMHg0MzAgYXJjaC94ODYvZW50cnkvY29tbW9u LmM6Mjg3CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHgzZC8weGEyCgpGaXhlczog MjFmZGQwOTJhY2M3ICgibmV0OiBBZGQgc3VwcG9ydCBmb3IgZmlsdGVyaW5nIG5laWdoIGR1bXAg YnkgbWFzdGVyIGRldmljZSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KQ2M6IERhdmlkIEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtzLmNvbT4KUmVw b3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkFja2VkLWJ5OiBE YXZpZCBBaGVybiA8ZHNhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9uZWlnaGJvdXIu YyB8IDEyICsrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZWlnaGJvdXIuYyBiL25ldC9jb3Jl L25laWdoYm91ci5jCmluZGV4IGUyMmQyYWVmYmQ3OC4uY2U1MTk4NjFiZTU5IDEwMDY0NAotLS0g YS9uZXQvY29yZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29yZS9uZWlnaGJvdXIuYwpAQCAtMjMz MSwxMiArMjMzMSwxNiBAQCBzdGF0aWMgaW50IG5laWdoX2R1bXBfdGFibGUoc3RydWN0IG5laWdo X3RhYmxlICp0YmwsIHN0cnVjdCBza19idWZmICpza2IsCiAKIAllcnIgPSBubG1zZ19wYXJzZShu bGgsIHNpemVvZihzdHJ1Y3QgbmRtc2cpLCB0YiwgTkRBX01BWCwgTlVMTCwgTlVMTCk7CiAJaWYg KCFlcnIpIHsKLQkJaWYgKHRiW05EQV9JRklOREVYXSkKKwkJaWYgKHRiW05EQV9JRklOREVYXSkg eworCQkJaWYgKG5sYV9sZW4odGJbTkRBX0lGSU5ERVhdKSAhPSBzaXplb2YodTMyKSkKKwkJCQly ZXR1cm4gLUVJTlZBTDsKIAkJCWZpbHRlcl9pZHggPSBubGFfZ2V0X3UzMih0YltOREFfSUZJTkRF WF0pOwotCi0JCWlmICh0YltOREFfTUFTVEVSXSkKKwkJfQorCQlpZiAodGJbTkRBX01BU1RFUl0p IHsKKwkJCWlmIChubGFfbGVuKHRiW05EQV9NQVNURVJdKSAhPSBzaXplb2YodTMyKSkKKwkJCQly ZXR1cm4gLUVJTlZBTDsKIAkJCWZpbHRlcl9tYXN0ZXJfaWR4ID0gbmxhX2dldF91MzIodGJbTkRB X01BU1RFUl0pOwotCisJCX0KIAkJaWYgKGZpbHRlcl9pZHggfHwgZmlsdGVyX21hc3Rlcl9pZHgp CiAJCQlmbGFncyB8PSBOTE1fRl9EVU1QX0ZJTFRFUkVEOwogCX0KLS0gCjIuMTQuMwoKCkZyb20g NzJmYTZhYzQ0MDJlZTk5NGEyMWFkNjBmMjdmOTU1ODg4NjhjYzJmMyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogVmFzdW5kaGFyYSBWb2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2Fk Y29tLmNvbT4KRGF0ZTogVGh1LCAxOSBBcHIgMjAxOCAwMzoxNjoxNiAtMDQwMApTdWJqZWN0OiBb UEFUQ0ggNDUvNTJdIGJueHRfZW46IEZpeCBtZW1vcnkgZmF1bHQgaW4gYm54dF9ldGh0b29sX2lu aXQoKQoKWyBVcHN0cmVhbSBjb21taXQgYTYwZmFhNjBkYTg5MWUzMTFlMTlmZDNlODhkNjExODYz ZjQzMTEzMCBdCgpJbiBzb21lIGZpcm13YXJlIGltYWdlcywgdGhlIGxlbmd0aCBvZiBCTlhfRElS X1RZUEVfUEtHX0xPRyBudnJhbSB0eXBlCmNvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgZml4ZWQg YnVmZmVyIGxlbmd0aCBvZiA0MDk2IGJ5dGVzIGFsbG9jYXRlZCBieQp0aGUgZHJpdmVyLiAgVGhp cyB3YXMgY2F1c2luZyBIV1JNX05WTV9SRUFEIHRvIGNvcHkgbW9yZSBkYXRhIHRvIHRoZSBidWZm ZXIKdGhhbiB0aGUgYWxsb2NhdGVkIHNpemUsIGNhdXNpbmcgZ2VuZXJhbCBwcm90ZWN0aW9uIGZh dWx0LgoKRml4IHRoZSBpc3N1ZSBieSBhbGxvY2F0aW5nIHRoZSBleGFjdCBidWZmZXIgbGVuZ3Ro IHJldHVybmVkIGJ5CkhXUk1fTlZNX0ZJTkRfRElSX0VOVFJZLCBpbnN0ZWFkIG9mIDQwOTYuICBN b3ZlIHRoZSBremFsbG9jKCkgY2FsbAppbnRvIHRoZSBibnh0X2dldF9wa2d2ZXIoKSBmdW5jdGlv bi4KCkZpeGVzOiAzZWJmNmYwYTA5YTIgKCJibnh0X2VuOiBBZGQgaW5zdGFsbGVkLXBhY2thZ2Ug ZmlybXdhcmUgdmVyc2lvbiByZXBvcnRpbmcgdmlhIEV0aHRvb2wgR0RSVklORk8iKQpTaWduZWQt b2ZmLWJ5OiBWYXN1bmRoYXJhIFZvbGFtIDx2YXN1bmRoYXJhLXYudm9sYW1AYnJvYWRjb20uY29t PgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9vbC5jICB8IDQ5 ICsrKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2Ju eHQvYm54dF9udm1fZGVmcy5oIHwgIDIgLQogMiBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25z KCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibnh0L2JueHRfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYm54dC9ibnh0X2V0aHRvb2wuYwppbmRleCAxODAxNTgyMDc2YmUuLjk0NDI2MDVmNGZkNCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRv b2wuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9v bC5jCkBAIC0xODc0LDIyICsxODc0LDM5IEBAIHN0YXRpYyBjaGFyICpibnh0X3BhcnNlX3BrZ2xv ZyhpbnQgZGVzaXJlZF9maWVsZCwgdTggKmRhdGEsIHNpemVfdCBkYXRhbGVuKQogCXJldHVybiBy ZXR2YWw7CiB9CiAKLXN0YXRpYyBjaGFyICpibnh0X2dldF9wa2d2ZXIoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKQorc3RhdGljIHZvaWQgYm54dF9nZXRf cGtndmVyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CisJc3RydWN0IGJueHQgKmJwID0gbmV0 ZGV2X3ByaXYoZGV2KTsKIAl1MTYgaW5kZXggPSAwOwotCXUzMiBkYXRhbGVuOworCWNoYXIgKnBr Z3ZlcjsKKwl1MzIgcGtnbGVuOworCXU4ICpwa2didWY7CisJaW50IGxlbjsKIAogCWlmIChibnh0 X2ZpbmRfbnZyYW1faXRlbShkZXYsIEJOWF9ESVJfVFlQRV9QS0dfTE9HLAogCQkJCSBCTlhfRElS X09SRElOQUxfRklSU1QsIEJOWF9ESVJfRVhUX05PTkUsCi0JCQkJICZpbmRleCwgTlVMTCwgJmRh dGFsZW4pICE9IDApCi0JCXJldHVybiBOVUxMOworCQkJCSAmaW5kZXgsIE5VTEwsICZwa2dsZW4p ICE9IDApCisJCXJldHVybjsKIAotCW1lbXNldChidWYsIDAsIGJ1Zmxlbik7Ci0JaWYgKGJueHRf Z2V0X252cmFtX2l0ZW0oZGV2LCBpbmRleCwgMCwgZGF0YWxlbiwgYnVmKSAhPSAwKQotCQlyZXR1 cm4gTlVMTDsKKwlwa2didWYgPSBremFsbG9jKHBrZ2xlbiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFw a2didWYpIHsKKwkJZGV2X2VycigmYnAtPnBkZXYtPmRldiwgIlVuYWJsZSB0byBhbGxvY2F0ZSBt ZW1vcnkgZm9yIHBrZyB2ZXJzaW9uLCBsZW5ndGggPSAldVxuIiwKKwkJCXBrZ2xlbik7CisJCXJl dHVybjsKKwl9CisKKwlpZiAoYm54dF9nZXRfbnZyYW1faXRlbShkZXYsIGluZGV4LCAwLCBwa2ds ZW4sIHBrZ2J1ZikpCisJCWdvdG8gZXJyOwogCi0JcmV0dXJuIGJueHRfcGFyc2VfcGtnbG9nKEJO WF9QS0dfTE9HX0ZJRUxEX0lEWF9QS0dfVkVSU0lPTiwgYnVmLAotCQlkYXRhbGVuKTsKKwlwa2d2 ZXIgPSBibnh0X3BhcnNlX3BrZ2xvZyhCTlhfUEtHX0xPR19GSUVMRF9JRFhfUEtHX1ZFUlNJT04s IHBrZ2J1ZiwKKwkJCQkgICBwa2dsZW4pOworCWlmIChwa2d2ZXIgJiYgKnBrZ3ZlciAhPSAwICYm IGlzZGlnaXQoKnBrZ3ZlcikpIHsKKwkJbGVuID0gc3RybGVuKGJwLT5md192ZXJfc3RyKTsKKwkJ c25wcmludGYoYnAtPmZ3X3Zlcl9zdHIgKyBsZW4sIEZXX1ZFUl9TVFJfTEVOIC0gbGVuIC0gMSwK KwkJCSAiL3BrZyAlcyIsIHBrZ3Zlcik7CisJfQorZXJyOgorCWtmcmVlKHBrZ2J1Zik7CiB9CiAK IHN0YXRpYyBpbnQgYm54dF9nZXRfZWVwcm9tKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCkBAIC0y NTU4LDIyICsyNTc1LDEwIEBAIHZvaWQgYm54dF9ldGh0b29sX2luaXQoc3RydWN0IGJueHQgKmJw KQogCXN0cnVjdCBod3JtX3NlbGZ0ZXN0X3FsaXN0X2lucHV0IHJlcSA9IHswfTsKIAlzdHJ1Y3Qg Ym54dF90ZXN0X2luZm8gKnRlc3RfaW5mbzsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gYnAt PmRldjsKLQljaGFyICpwa2dsb2c7CiAJaW50IGksIHJjOwogCi0JcGtnbG9nID0ga3phbGxvYyhC TlhfUEtHX0xPR19NQVhfTEVOR1RILCBHRlBfS0VSTkVMKTsKLQlpZiAocGtnbG9nKSB7Ci0JCWNo YXIgKnBrZ3ZlcjsKLQkJaW50IGxlbjsKKwlibnh0X2dldF9wa2d2ZXIoZGV2KTsKIAotCQlwa2d2 ZXIgPSBibnh0X2dldF9wa2d2ZXIoZGV2LCBwa2dsb2csIEJOWF9QS0dfTE9HX01BWF9MRU5HVEgp OwotCQlpZiAocGtndmVyICYmICpwa2d2ZXIgIT0gMCAmJiBpc2RpZ2l0KCpwa2d2ZXIpKSB7Ci0J CQlsZW4gPSBzdHJsZW4oYnAtPmZ3X3Zlcl9zdHIpOwotCQkJc25wcmludGYoYnAtPmZ3X3Zlcl9z dHIgKyBsZW4sIEZXX1ZFUl9TVFJfTEVOIC0gbGVuIC0gMSwKLQkJCQkgIi9wa2cgJXMiLCBwa2d2 ZXIpOwotCQl9Ci0JCWtmcmVlKHBrZ2xvZyk7Ci0JfQogCWlmIChicC0+aHdybV9zcGVjX2NvZGUg PCAweDEwNzA0IHx8ICFCTlhUX1NJTkdMRV9QRihicCkpCiAJCXJldHVybjsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X252bV9kZWZzLmggYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfbnZtX2RlZnMuaAppbmRleCA3 M2YyMjQ5NTU1YjUuLjgzNDQ0ODExZDNjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54dC9ibnh0X252bV9kZWZzLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54dC9ibnh0X252bV9kZWZzLmgKQEAgLTU5LDggKzU5LDYgQEAgZW51bSBi bnh0X252bV9kaXJlY3RvcnlfdHlwZSB7CiAjZGVmaW5lIEJOWF9ESVJfQVRUUl9OT19DSEtTVU0J CQkoMSA8PCAwKQogI2RlZmluZSBCTlhfRElSX0FUVFJfUFJPUF9TVFJFQU0JCSgxIDw8IDEpCiAK LSNkZWZpbmUgQk5YX1BLR19MT0dfTUFYX0xFTkdUSAkJCTQwOTYKLQogZW51bSBibnhudm1fcGtn bG9nX2ZpZWxkX2luZGV4IHsKIAlCTlhfUEtHX0xPR19GSUVMRF9JRFhfSU5TVEFMTEVEX1RJTUVT VEFNUAk9IDAsCiAJQk5YX1BLR19MT0dfRklFTERfSURYX1BLR19ERVNDUklQVElPTgkJPSAxLAot LSAKMi4xNC4zCgoKRnJvbSA5MGI2YWFlNjYyZDczNWQxMGEyMjM0ZWYzYjcyMTA4NTVkMWRjZGU4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRo YXQuY29tPgpEYXRlOiBGcmksIDEzIEFwciAyMDE4IDE0OjU4OjI1ICswODAwClN1YmplY3Q6IFtQ QVRDSCA0Ni81Ml0gdmlydGlvLW5ldDogYWRkIG1pc3NpbmcgdmlydHF1ZXVlIGtpY2sgd2hlbiBm bHVzaGluZwogcGFja2V0cwoKWyBVcHN0cmVhbSBjb21taXQgOTI2N2M0MzBjNmI2ZjRjMDEyMGUz YzZiYjg0NzMxM2Q2MzNmMDJhNiBdCgpXZSB0ZW5kcyB0byBiYXRjaCBzdWJtaXR0aW5nIHBhY2tl dHMgZHVyaW5nIFhEUF9UWC4gVGhpcyByZXF1aXJlcyB0bwpraWNrIHZpcnRxdWV1ZSBhZnRlciBh IGJhdGNoLCB3ZSB0cmllZCB0byBkbyBpdCB0aHJvdWdoCnhkcF9kb19mbHVzaF9tYXAoKSB3aGlj aCBvbmx5IG1ha2VzIHNlbnNlIGZvciBkZXZtYXAgbm90IFhEUF9UWC4gU28KZXhwbGljaXRseSBr aWNrIHRoZSB2aXJ0cXVldWUgaW4gdGhpcyBjYXNlLgoKUmVwb3J0ZWQtYnk6IEtpbWl0b3NoaSBU YWthaGFzaGkgPGt0YWthQG5paS5hYy5qcD4KVGVzdGVkLWJ5OiBLaW1pdG9zaGkgVGFrYWhhc2hp IDxrdGFrYUBuaWkuYWMuanA+CkNjOiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gu bmV0PgpGaXhlczogMTg2YjNjOTk4YzUwICgidmlydGlvLW5ldDogc3VwcG9ydCBYRFBfUkVESVJF Q1QiKQpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvdmlydGlvX25ldC5jIHwgMTEgKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA5 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv dmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCmluZGV4IDIzMzc0NjAzZTRk OS4uZDhlMWFlYWI0MzQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKKysr IGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCkBAIC0xMjY5LDcgKzEyNjksOSBAQCBzdGF0aWMg aW50IHZpcnRuZXRfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiB7 CiAJc3RydWN0IHJlY2VpdmVfcXVldWUgKnJxID0KIAkJY29udGFpbmVyX29mKG5hcGksIHN0cnVj dCByZWNlaXZlX3F1ZXVlLCBuYXBpKTsKLQl1bnNpZ25lZCBpbnQgcmVjZWl2ZWQ7CisJc3RydWN0 IHZpcnRuZXRfaW5mbyAqdmkgPSBycS0+dnEtPnZkZXYtPnByaXY7CisJc3RydWN0IHNlbmRfcXVl dWUgKnNxOworCXVuc2lnbmVkIGludCByZWNlaXZlZCwgcXA7CiAJYm9vbCB4ZHBfeG1pdCA9IGZh bHNlOwogCiAJdmlydG5ldF9wb2xsX2NsZWFudHgocnEpOwpAQCAtMTI4MCw4ICsxMjgyLDEzIEBA IHN0YXRpYyBpbnQgdmlydG5ldF9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1 ZGdldCkKIAlpZiAocmVjZWl2ZWQgPCBidWRnZXQpCiAJCXZpcnRxdWV1ZV9uYXBpX2NvbXBsZXRl KG5hcGksIHJxLT52cSwgcmVjZWl2ZWQpOwogCi0JaWYgKHhkcF94bWl0KQorCWlmICh4ZHBfeG1p dCkgeworCQlxcCA9IHZpLT5jdXJyX3F1ZXVlX3BhaXJzIC0gdmktPnhkcF9xdWV1ZV9wYWlycyAr CisJCSAgICAgc21wX3Byb2Nlc3Nvcl9pZCgpOworCQlzcSA9ICZ2aS0+c3FbcXBdOworCQl2aXJ0 cXVldWVfa2ljayhzcS0+dnEpOwogCQl4ZHBfZG9fZmx1c2hfbWFwKCk7CisJfQogCiAJcmV0dXJu IHJlY2VpdmVkOwogfQotLSAKMi4xNC4zCgoKRnJvbSAzNTY4ODA1ZmQ4M2I1NmU5YzQ1OWFmM2E1 ODljODBhMDA3ZWRjNWEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gSGFq bm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgMTcgQXByIDIwMTggMTQ6MjU6 NTggKzA4MDAKU3ViamVjdDogW1BBVENIIDQ3LzUyXSBWU09DSzogbWFrZSBhZl92c29jay5rbyBy ZW1vdmFibGUgYWdhaW4KClsgVXBzdHJlYW0gY29tbWl0IDA1ZTQ4OWIxNTk2ZjBhYTEwMjVhMWZh NTcyNjc2NjMxY2Q5NjY1ZGEgXQoKQ29tbWl0IGMxZWVmMjIwYzE3NjA3NjI3NTNiNjAyYzM4MjEy N2JmY2NlZTIyNmQgKCJ2c29jazogYWx3YXlzIGNhbGwKdnNvY2tfaW5pdF90YWJsZXMoKSIpIGlu dHJvZHVjZWQgYSBtb2R1bGVfaW5pdCgpIGZ1bmN0aW9uIHdpdGhvdXQgYQpjb3JyZXNwb25kaW5n IG1vZHVsZV9leGl0KCkgZnVuY3Rpb24uCgpNb2R1bGVzIHdpdGggYW4gaW5pdCBmdW5jdGlvbiBj YW4gb25seSBiZSByZW1vdmVkIGlmIHRoZXkgYWxzbyBoYXZlIGFuCmV4aXQgZnVuY3Rpb24uICBU aGVyZWZvcmUgdGhlIHZzb2NrIG1vZHVsZSB3YXMgY29uc2lkZXJlZCAicGVybWFuZW50IgphbmQg Y291bGQgbm90IGJlIHJlbW92ZWQuCgpUaGlzIHBhdGNoIGFkZHMgYW4gZW1wdHkgbW9kdWxlX2V4 aXQoKSBmdW5jdGlvbiBzbyB0aGF0ICJybW1vZCB2c29jayIKd29ya3MuICBObyBleHBsaWNpdCBj bGVhbnVwIGlzIHJlcXVpcmVkIGJlY2F1c2U6CgoxLiBUcmFuc3BvcnRzIGNhbGwgdnNvY2tfY29y ZV9leGl0KCkgdXBvbiBleGl0IGFuZCBjYW5ub3QgYmUgcmVtb3ZlZAogICB3aGlsZSBzb2NrZXRz IGFyZSBzdGlsbCBhbGl2ZS4KMi4gdnNvY2tfZGlhZy5rbyBkb2VzIG5vdCBwZXJmb3JtIGFueSBh Y3Rpb24gdGhhdCByZXF1aXJlcyBjbGVhbnVwIGJ5CiAgIHZzb2NrLmtvLgoKRml4ZXM6IGMxZWVm MjIwYzE3NiAoInZzb2NrOiBhbHdheXMgY2FsbCB2c29ja19pbml0X3RhYmxlcygpIikKUmVwb3J0 ZWQtYnk6IFhpdW1laSBNdSA8eG11QHJlZGhhdC5jb20+CkNjOiBDb25nIFdhbmcgPHhpeW91Lndh bmdjb25nQGdtYWlsLmNvbT4KQ2M6IEpvcmdlbiBIYW5zZW4gPGpoYW5zZW5Adm13YXJlLmNvbT4K U2lnbmVkLW9mZi1ieTogU3RlZmFuIEhham5vY3ppIDxzdGVmYW5oYUByZWRoYXQuY29tPgpSZXZp ZXdlZC1ieTogSm9yZ2VuIEhhbnNlbiA8amhhbnNlbkB2bXdhcmUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Ztd192c29j ay9hZl92c29jay5jIHwgNiArKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9uZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMgYi9uZXQvdm13X3Zzb2NrL2Fm X3Zzb2NrLmMKaW5kZXggZTBmYzg0ZGFlZDk0Li5hZDE3YTk4NWY3NGUgMTAwNjQ0Ci0tLSBhL25l dC92bXdfdnNvY2svYWZfdnNvY2suYworKysgYi9uZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMKQEAg LTIwMTgsNyArMjAxOCwxMyBAQCBjb25zdCBzdHJ1Y3QgdnNvY2tfdHJhbnNwb3J0ICp2c29ja19j b3JlX2dldF90cmFuc3BvcnQodm9pZCkKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHZzb2NrX2NvcmVf Z2V0X3RyYW5zcG9ydCk7CiAKK3N0YXRpYyB2b2lkIF9fZXhpdCB2c29ja19leGl0KHZvaWQpCit7 CisJLyogRG8gbm90aGluZy4gIFRoaXMgZnVuY3Rpb24gbWFrZXMgdGhpcyBtb2R1bGUgcmVtb3Zh YmxlLiAqLworfQorCiBtb2R1bGVfaW5pdCh2c29ja19pbml0X3RhYmxlcyk7Cittb2R1bGVfZXhp dCh2c29ja19leGl0KTsKIAogTU9EVUxFX0FVVEhPUigiVk13YXJlLCBJbmMuIik7CiBNT0RVTEVf REVTQ1JJUFRJT04oIlZNd2FyZSBWaXJ0dWFsIFNvY2tldCBGYW1pbHkiKTsKLS0gCjIuMTQuMwoK CkZyb20gNmJmZWFhZTM4MTU5NjA2Mzk1MTFlYTgyNmRhMjdhNzMwMzcwNWQ1MiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSWdvciBSdXNza2lraCA8aWdvci5ydXNza2lraEBhcXVhbnRp YS5jb20+CkRhdGU6IFdlZCwgMTEgQXByIDIwMTggMTU6MjM6MjQgKzAzMDAKU3ViamVjdDogW1BB VENIIDQ4LzUyXSBuZXQ6IGFxdWFudGlhOiBSZWdyZXNzaW9uIG9uIHJlc2V0IHdpdGggMS54IGZp cm13YXJlCgpbIFVwc3RyZWFtIGNvbW1pdCBjY2U5NmQxODgzZGFlNGI3OWY0NDg5MGU1MTE4MjQz ZDgwNmRhMjg2IF0KCk9uIEFTVVMgWEctQzEwMEMgd2l0aCAxLjUuNDQgZmlybXdhcmUgYSBzcGVj aWFsIG1vZGUgY2FsbGVkICJkaXJ0eSB3YWtlIgppcyBhY3RpdmUuIFdpdGggdGhpcyBtb2RlIHdo ZW4gbW90aGVyYm9hcmQgZ2V0cyBwb3dlcmVkIChidXQgbm8gcG93ZXJvbgpoYXBwZW5zIHlldCks IE5JQyBhdXRvbWF0aWNhbGx5IGVuYWJsZXMgcG93ZXJzYXZlIGxpbmsgYW5kIHdhdGNoZXMKZm9y IFdPTCBwYWNrZXQuClRoaXMgbm9ybWFsbHkgYWxsb3dzIHRvIHBvd2VydXAgdGhlIFBDIGFmdGVy IEFDIHBvd2VyIGZhaWx1cmVzLgoKTm90IGFsbCBtb3RoZXJib2FyZHMgb3IgYmlvcyBzZXR0aW5n cyBnaXZlcyBwb3dlciB0byBQQ0kgc2xvdHMsCnNvIHRoaXMgbW9kZSBpcyBub3QgZW5hYmxlZCBv biBhbGwgdGhlIGhhcmR3YXJlLgoKNC4xNiBsaW51eCBkcml2ZXIgaW50cm9kdWNlZCBmdWxsIGhh cmR3YXJlIHJlc2V0IHNlcXVlbmNlClRoaXMgaXMgcmVxdWlyZWQgc2luY2UgYmVmb3JlIHRoYXQg d2UgaGFkIG5vIE5JQyBoYXJkd2FyZQpyZXNldCBpbXBsZW1lbnRlZCBhbmQgdGhlcmUgd2VyZSBz aWRlIGVmZmVjdHMgb2YgIm5vdCBjbGVhbiBzdGFydCIuCgpCdXQgdGhpcyBmdWxsIHJlc2V0IGlz IGluY29tcGF0aWJsZSB3aXRoICJkaXJ0eSB3YWtlIiBXT0wgZmVhdHVyZQppdCBrZWVwcyB0aGUg UEhZIGxpbmsgaW4gYSBzcGVjaWFsIG1vZGUgZm9yZXZlci4gQXMgYSBjb25zZXF1ZW5jZSwKZHJp dmVyIHNlZXMgbm8gbGluayBhbmQgbm8gdHJhZmZpYy4KClRvIGZpeCB0aGlzIHdlIGZvcmNpYmx5 IGNoYW5nZSBGVyBzdGF0ZSB0byBpZGxlIHN0YXRlIGJlZm9yZSBkb2luZwp0aGUgZnVsbCByZXNl dC4gVGhpcyBtYWtlcyBGVyB0byByZXN0b3JlIGxpbmsgc3RhdGUuCgpGaXhlczogYzhjODJlYiBu ZXQ6IGFxdWFudGlhOiBJbnRyb2R1Y2UgZ2xvYmFsIEFRQyBoYXJkd2FyZSByZXNldCBzZXF1ZW5j ZQpTaWduZWQtb2ZmLWJ5OiBJZ29yIFJ1c3NraWtoIDxpZ29yLnJ1c3NraWtoQGFxdWFudGlhLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIC4uLi9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvaHdfYXRsL2h3X2F0bF91dGls cy5jIHwgMTYgKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9o d19hdGwvaHdfYXRsX3V0aWxzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxh bnRpYy9od19hdGwvaHdfYXRsX3V0aWxzLmMKaW5kZXggZDNiODQ3ZWM3NDY1Li5jNThiMmMyMjcy NjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FxdWFudGlhL2F0bGFudGljL2h3 X2F0bC9od19hdGxfdXRpbHMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9h dGxhbnRpYy9od19hdGwvaHdfYXRsX3V0aWxzLmMKQEAgLTQ4LDYgKzQ4LDggQEAKICNkZWZpbmUg Rk9SQ0VfRkxBU0hMRVNTIDAKIAogc3RhdGljIGludCBod19hdGxfdXRpbHNfdmVyX21hdGNoKHUz MiB2ZXJfZXhwZWN0ZWQsIHUzMiB2ZXJfYWN0dWFsKTsKK3N0YXRpYyBpbnQgaHdfYXRsX3V0aWxz X21waV9zZXRfc3RhdGUoc3RydWN0IGFxX2h3X3MgKnNlbGYsCisJCQkJICAgICAgZW51bSBoYWxf YXRsX3V0aWxzX2Z3X3N0YXRlX2Ugc3RhdGUpOwogCiBpbnQgaHdfYXRsX3V0aWxzX2luaXRmdyhz dHJ1Y3QgYXFfaHdfcyAqc2VsZiwgY29uc3Qgc3RydWN0IGFxX2Z3X29wcyAqKmZ3X29wcykKIHsK QEAgLTI0Nyw2ICsyNDksMjAgQEAgaW50IGh3X2F0bF91dGlsc19zb2Z0X3Jlc2V0KHN0cnVjdCBh cV9od19zICpzZWxmKQogCiAJc2VsZi0+cmJsX2VuYWJsZWQgPSAoYm9vdF9leGl0X2NvZGUgIT0g MCk7CiAKKwkvKiBGVyAxLnggbWF5IGJvb3R1cCBpbiBhbiBpbnZhbGlkIFBPV0VSIHN0YXRlIChX T0wgZmVhdHVyZSkuCisJICogV2Ugc2hvdWxkIHdvcmsgYXJvdW5kIHRoaXMgYnkgZm9yY2luZyBp dHMgc3RhdGUgYmFjayB0byBERUlOSVQKKwkgKi8KKwlpZiAoIWh3X2F0bF91dGlsc192ZXJfbWF0 Y2goSFdfQVRMX0ZXX1ZFUl8xWCwKKwkJCQkgICAgYXFfaHdfcmVhZF9yZWcoc2VsZiwKKwkJCQkJ CSAgIEhXX0FUTF9NUElfRldfVkVSU0lPTikpKSB7CisJCWludCBlcnIgPSAwOworCisJCWh3X2F0 bF91dGlsc19tcGlfc2V0X3N0YXRlKHNlbGYsIE1QSV9ERUlOSVQpOworCQlBUV9IV19XQUlUX0ZP UigoYXFfaHdfcmVhZF9yZWcoc2VsZiwgSFdfQVRMX01QSV9TVEFURV9BRFIpICYKKwkJCSAgICAg ICBIV19BVExfTVBJX1NUQVRFX01TSykgPT0gTVBJX0RFSU5JVCwKKwkJCSAgICAgICAxMCwgMTAw MFUpOworCX0KKwogCWlmIChzZWxmLT5yYmxfZW5hYmxlZCkKIAkJcmV0dXJuIGh3X2F0bF91dGls c19zb2Z0X3Jlc2V0X3JibChzZWxmKTsKIAllbHNlCi0tIAoyLjE0LjMKCgpGcm9tIGJkYTZkNDMz NjE2N2E3MDA1NWRkNDc3MmQ2ODJiMGI4NWVhZTdlNmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206ID0/VVRGLTg/cT9Caj1DMz1COHJuPTIwTW9yaz89IDxiam9ybkBtb3JrLm5vPgpEYXRl OiBUdWUsIDE3IEFwciAyMDE4IDIyOjQ2OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0OS81Ml0g dHVuOiBmaXggdmxhbiBwYWNrZXQgdHJ1bmNhdGlvbgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgODFjODk1MDcyZDI5Y2Q3MGVlYTViZTFhODU4N2Nk NjQ2MWMzNzE1YSBdCgpCb2d1cyB0cmltbWluZyBpbiB0dW5fbmV0X3htaXQoKSBjYXVzZXMgdHJ1 bmNhdGVkIHZsYW4gcGFja2V0cy4KCnNrYi0+bGVuIGlzIGNvcnJlY3Qgd2hldGhlciBvciBub3Qg c2tiX3ZsYW5fdGFnX3ByZXNlbnQoKSBpcyB0cnVlLiBUaGVyZQppcyBubyBtb3JlIHJlYXNvbiB0 byBhZGp1c3QgdGhlIHNrYiBsZW5ndGggb24geG1pdCBpbiB0aGlzIGRyaXZlciB0aGFuCmFueSBv dGhlciBkcml2ZXIuIHR1bl9wdXRfdXNlcigpIGFkZHMgNCBieXRlcyB0byB0aGUgdG90YWwgZm9y IHRhZ2dlZApwYWNrZXRzIGJlY2F1c2UgaXQgdHJhbnNtaXRzIHRoZSB0YWcgaW5saW5lIHRvIHVz ZXJzcGFjZS4gIFRoaXMgaXMKc2ltaWxhciB0byBhIG5pYyB0cmFuc21pdHRpbmcgdGhlIHRhZyBp bmxpbmUgb24gdGhlIHdpcmUuCgpSZXByb2R1Y2luZyB0aGUgYnVnIGJ5IHNlbmRpbmcgYW55IHRh Z2dlZCBwYWNrZXQgdGhyb3VnaCBiYWNrLXRvLWJhY2sKY29ubmVjdGVkIHRhcCBpbnRlcmZhY2Vz OgoKIHNvY2F0IFRVTix0dW4tdHlwZT10YXAsaWZmLXVwLHR1bi1uYW1lPWluIFRVTix0dW4tdHlw ZT10YXAsaWZmLXVwLHR1bi1uYW1lPW91dCAmCiBpcCBsaW5rIGFkZCBsaW5rIGluIG5hbWUgaW4u MjAgdHlwZSB2bGFuIGlkIDIwCiBpcCBhZGRyIGFkZCAxMC45LjkuOS8yNCBkZXYgaW4uMjAKIGlw IGxpbmsgc2V0IGluLjIwIHVwCiB0c2hhcmsgLW54eGkgaW4gLWYgYXJwIC1jMSAyPi9kZXYvbnVs bCAmCiB0c2hhcmsgLW54eGkgb3V0IC1mIGFycCAtYzEgMj4vZGV2L251bGwgJgogcGluZyAtYyAx IDEwLjkuOS41ID4vZGV2L251bGwgMj4mMQoKVGhlIG91dHB1dCBmcm9tIHRoZSAnaW4nIGFuZCAn b3V0JyBpbnRlcmZhY2VzIGFyZSBkaWZmZXJlbnQgd2hlbiB0aGUKYnVnIGlzIHByZXNlbnQ6Cgog Q2FwdHVyaW5nIG9uICdpbicKIDAwMDAgIGZmIGZmIGZmIGZmIGZmIGZmIDc2IGNmIDc2IDM3IGQ1 IDBhIDgxIDAwIDAwIDE0ICAgLi4uLi4udi52Ny4uLi4uLgogMDAxMCAgMDggMDYgMDAgMDEgMDgg MDAgMDYgMDQgMDAgMDEgNzYgY2YgNzYgMzcgZDUgMGEgICAuLi4uLi4uLi4udi52Ny4uCiAwMDIw ICAwYSAwOSAwOSAwOSAwMCAwMCAwMCAwMCAwMCAwMCAwYSAwOSAwOSAwNSAgICAgICAgIC4uLi4u Li4uLi4uLi4uCgogQ2FwdHVyaW5nIG9uICdvdXQnCiAwMDAwICBmZiBmZiBmZiBmZiBmZiBmZiA3 NiBjZiA3NiAzNyBkNSAwYSA4MSAwMCAwMCAxNCAgIC4uLi4uLnYudjcuLi4uLi4KIDAwMTAgIDA4 IDA2IDAwIDAxIDA4IDAwIDA2IDA0IDAwIDAxIDc2IGNmIDc2IDM3IGQ1IDBhICAgLi4uLi4uLi4u LnYudjcuLgogMDAyMCAgMGEgMDkgMDkgMDkgMDAgMDAgMDAgMDAgMDAgMDAgICAgICAgICAgICAg ICAgICAgICAuLi4uLi4uLi4uCgpGaXhlczogYWZmM2Q3MGEwN2ZmICgidHVuOiBhbGxvdyB0byBh dHRhY2ggZWJwZiBzb2NrZXQgZmlsdGVyIikKQ2M6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhh dC5jb20+ClNpZ25lZC1vZmYtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpBY2tlZC1i eTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3R1bi5jIHwg NyArLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDYgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdHVuLmMgYi9kcml2ZXJzL25ldC90dW4uYwppbmRl eCAyOGNmYTY0MmUzOWEuLjZjN2JkZDBjMzYxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHVu LmMKKysrIGIvZHJpdmVycy9uZXQvdHVuLmMKQEAgLTEwOTQsMTIgKzEwOTQsNyBAQCBzdGF0aWMg bmV0ZGV2X3R4X3QgdHVuX25ldF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCiAJCWdvdG8gZHJvcDsKIAogCWxlbiA9IHJ1bl9lYnBmX2ZpbHRlcih0dW4s IHNrYiwgbGVuKTsKLQotCS8qIFRyaW0gZXh0cmEgYnl0ZXMgc2luY2Ugd2UgbWF5IGluc2VydCB2 bGFuIHByb3RvICYgVENJCi0JICogaW4gdHVuX3B1dF91c2VyKCkuCi0JICovCi0JbGVuIC09IHNr Yl92bGFuX3RhZ19wcmVzZW50KHNrYikgPyBzaXplb2Yoc3RydWN0IHZldGgpIDogMDsKLQlpZiAo bGVuIDw9IDAgfHwgcHNrYl90cmltKHNrYiwgbGVuKSkKKwlpZiAobGVuID09IDAgfHwgcHNrYl90 cmltKHNrYiwgbGVuKSkKIAkJZ290byBkcm9wOwogCiAJaWYgKHVubGlrZWx5KHNrYl9vcnBoYW5f ZnJhZ3Nfcngoc2tiLCBHRlBfQVRPTUlDKSkpCi0tIAoyLjE0LjMKCgpGcm9tIDIyNTVjODE0Y2Nj ZGY3NTM0OWM0ZTYzZmE4MTMxMTI3NTIxYTcwZjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IElnb3IgUnVzc2tpa2ggPGlnb3IucnVzc2tpa2hAYXF1YW50aWEuY29tPgpEYXRlOiBXZWQs IDExIEFwciAyMDE4IDE1OjIzOjI1ICswMzAwClN1YmplY3Q6IFtQQVRDSCA1MC81Ml0gbmV0OiBh cXVhbnRpYTogb29wcyB3aGVuIHNodXRkb3duIG9uIGFscmVhZHkgc3RvcHBlZAogZGV2aWNlCgpb IFVwc3RyZWFtIGNvbW1pdCA5YTExYWZmMjVmZDQzZDViZDI2NjBhYmFiZGM5ZjU2NGIwYmExODNh IF0KCkluIGNhc2UgbmV0ZGV2IGlzIGNsb3NlZCBhdCB0aGUgbW9tZW50IG9mIHBjaSBzaHV0ZG93 biwgYXFfbmljX3N0b3AKZ2V0cyBjYWxsZWQgc2Vjb25kIHRpbWUuIG5hcGlfZGlzYWJsZSBpbiB0 aGF0IGNhc2UgaGFuZ3MgaW5kZWZpbml0ZWx5LgpJbiBvdGhlciBjYXNlLCBpZiBkZXZpY2Ugd2Fz IG5ldmVyIG9wZW5lZCBhdCBhbGwsIHdlIGdldCBvb3BzIGJlY2F1c2UKb2YgbnVsbCBwb2ludGVy IGFjY2Vzcy4KCldlIHNob3VsZCBpbnZva2UgYXFfbmljX3N0b3AgY29uZGl0aW9uYWxseSwgb25s eSBpZiBkZXZpY2UgaXMgcnVubmluZwphdCB0aGUgbW9tZW50IG9mIHNodXRkb3duLgoKUmVwb3J0 ZWQtYnk6IERhdmlkIEFyY2FyaSA8ZGFyY2FyaUByZWRoYXQuY29tPgpGaXhlczogOTA4NjlkZGZl ZmViICgibmV0OiBhcXVhbnRpYTogSW1wbGVtZW50IHBjaSBzaHV0ZG93biBjYWxsYmFjayIpClNp Z25lZC1vZmYtYnk6IElnb3IgUnVzc2tpa2ggPGlnb3IucnVzc2tpa2hAYXF1YW50aWEuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvYXFfbmljLmMgfCA4ICsrKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FxdWFudGlhL2F0bGFudGljL2FxX25pYy5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvYXFfbmljLmMKaW5kZXgg Yzk2YTkyMTE4YjhiLi4zMmY2ZDJlMjRkNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2FxdWFudGlhL2F0bGFudGljL2FxX25pYy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2FxdWFudGlhL2F0bGFudGljL2FxX25pYy5jCkBAIC05NTEsOSArOTUxLDExIEBAIHZvaWQgYXFf bmljX3NodXRkb3duKHN0cnVjdCBhcV9uaWNfcyAqc2VsZikKIAogCW5ldGlmX2RldmljZV9kZXRh Y2goc2VsZi0+bmRldik7CiAKLQllcnIgPSBhcV9uaWNfc3RvcChzZWxmKTsKLQlpZiAoZXJyIDwg MCkKLQkJZ290byBlcnJfZXhpdDsKKwlpZiAobmV0aWZfcnVubmluZyhzZWxmLT5uZGV2KSkgewor CQllcnIgPSBhcV9uaWNfc3RvcChzZWxmKTsKKwkJaWYgKGVyciA8IDApCisJCQlnb3RvIGVycl9l eGl0OworCX0KIAlhcV9uaWNfZGVpbml0KHNlbGYpOwogCiBlcnJfZXhpdDoKLS0gCjIuMTQuMwoK CkZyb20gZTE4ZGFmNWNjYThiOTdlNmE3NjZlN2I0YmY2NGUxZWRmNjBjZGM4NyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogIk1pY2hhZWwgUy4gVHNpcmtpbiIgPG1zdEByZWRoYXQuY29t PgpEYXRlOiBUaHUsIDE5IEFwciAyMDE4IDA4OjMwOjQ4ICswMzAwClN1YmplY3Q6IFtQQVRDSCA1 MS81Ml0gdmlydGlvX25ldDogc3BsaXQgb3V0IGN0cmwgYnVmZmVyCgpbIFVwc3RyZWFtIGNvbW1p dCAxMmU1NzE2OTM4MzdkNjE2NGJkYTYxZTMxNmIxOTQ0OTcyZWUwZDk3IF0KCldoZW4gc2VuZGlu ZyBjb250cm9sIGNvbW1hbmRzLCB2aXJ0aW8gbmV0IHNldHMgdXAgc2V2ZXJhbCBidWZmZXJzIGZv cgpETUEuIFRoZSBidWZmZXJzIGFyZSBhbGwgcGFydCBvZiB0aGUgbmV0IGRldmljZSB3aGljaCBt ZWFucyBpdCdzCmFjdHVhbGx5IGFsbG9jYXRlZCBieSBrdm1hbGxvYyBzbyBpdCdzIGluIHRoZW9y eSAob24gZXh0cmVtZSBtZW1vcnkKcHJlc3N1cmUpIHBvc3NpYmxlIHRvIGdldCBhIHZtYWxsb2Mn ZWQgYnVmZmVyIHdoaWNoIG9uIHNvbWUgcGxhdGZvcm1zCm1lYW5zIHdlIGNhbid0IERNQSB0aGVy ZS4KCkZpeCB1cCBieSBtb3ZpbmcgdGhlIERNQSBidWZmZXJzIGludG8gYSBzZXBhcmF0ZSBzdHJ1 Y3R1cmUuCgpSZXBvcnRlZC1ieTogTWlrdWxhcyBQYXRvY2thIDxtcGF0b2NrYUByZWRoYXQuY29t PgpTdWdnZXN0ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZXJpYy5kdW1hemV0QGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KQWNrZWQtYnk6 IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92aXJ0aW9fbmV0 LmMgfCA2OCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0 LmMKaW5kZXggZDhlMWFlYWI0MzQxLi4yZTdlMTg3MTE3YjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3ZpcnRpb19uZXQuYworKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTE0Nyw2 ICsxNDcsMTcgQEAgc3RydWN0IHJlY2VpdmVfcXVldWUgewogCXN0cnVjdCB4ZHBfcnhxX2luZm8g eGRwX3J4cTsKIH07CiAKKy8qIENvbnRyb2wgVlEgYnVmZmVyczogcHJvdGVjdGVkIGJ5IHRoZSBy dG5sIGxvY2sgKi8KK3N0cnVjdCBjb250cm9sX2J1ZiB7CisJc3RydWN0IHZpcnRpb19uZXRfY3Ry bF9oZHIgaGRyOworCXZpcnRpb19uZXRfY3RybF9hY2sgc3RhdHVzOworCXN0cnVjdCB2aXJ0aW9f bmV0X2N0cmxfbXEgbXE7CisJdTggcHJvbWlzYzsKKwl1OCBhbGxtdWx0aTsKKwl1MTYgdmlkOwor CXU2NCBvZmZsb2FkczsKK307CisKIHN0cnVjdCB2aXJ0bmV0X2luZm8gewogCXN0cnVjdCB2aXJ0 aW9fZGV2aWNlICp2ZGV2OwogCXN0cnVjdCB2aXJ0cXVldWUgKmN2cTsKQEAgLTE5MiwxNCArMjAz LDcgQEAgc3RydWN0IHZpcnRuZXRfaW5mbyB7CiAJc3RydWN0IGhsaXN0X25vZGUgbm9kZTsKIAlz dHJ1Y3QgaGxpc3Rfbm9kZSBub2RlX2RlYWQ7CiAKLQkvKiBDb250cm9sIFZRIGJ1ZmZlcnM6IHBy b3RlY3RlZCBieSB0aGUgcnRubCBsb2NrICovCi0Jc3RydWN0IHZpcnRpb19uZXRfY3RybF9oZHIg Y3RybF9oZHI7Ci0JdmlydGlvX25ldF9jdHJsX2FjayBjdHJsX3N0YXR1czsKLQlzdHJ1Y3Qgdmly dGlvX25ldF9jdHJsX21xIGN0cmxfbXE7Ci0JdTggY3RybF9wcm9taXNjOwotCXU4IGN0cmxfYWxs bXVsdGk7Ci0JdTE2IGN0cmxfdmlkOwotCXU2NCBjdHJsX29mZmxvYWRzOworCXN0cnVjdCBjb250 cm9sX2J1ZiAqY3RybDsKIAogCS8qIEV0aHRvb2wgc2V0dGluZ3MgKi8KIAl1OCBkdXBsZXg7CkBA IC0xNDYxLDI1ICsxNDY1LDI1IEBAIHN0YXRpYyBib29sIHZpcnRuZXRfc2VuZF9jb21tYW5kKHN0 cnVjdCB2aXJ0bmV0X2luZm8gKnZpLCB1OCBjbGFzcywgdTggY21kLAogCS8qIENhbGxlciBzaG91 bGQga25vdyBiZXR0ZXIgKi8KIAlCVUdfT04oIXZpcnRpb19oYXNfZmVhdHVyZSh2aS0+dmRldiwg VklSVElPX05FVF9GX0NUUkxfVlEpKTsKIAotCXZpLT5jdHJsX3N0YXR1cyA9IH4wOwotCXZpLT5j dHJsX2hkci5jbGFzcyA9IGNsYXNzOwotCXZpLT5jdHJsX2hkci5jbWQgPSBjbWQ7CisJdmktPmN0 cmwtPnN0YXR1cyA9IH4wOworCXZpLT5jdHJsLT5oZHIuY2xhc3MgPSBjbGFzczsKKwl2aS0+Y3Ry bC0+aGRyLmNtZCA9IGNtZDsKIAkvKiBBZGQgaGVhZGVyICovCi0Jc2dfaW5pdF9vbmUoJmhkciwg JnZpLT5jdHJsX2hkciwgc2l6ZW9mKHZpLT5jdHJsX2hkcikpOworCXNnX2luaXRfb25lKCZoZHIs ICZ2aS0+Y3RybC0+aGRyLCBzaXplb2YodmktPmN0cmwtPmhkcikpOwogCXNnc1tvdXRfbnVtKytd ID0gJmhkcjsKIAogCWlmIChvdXQpCiAJCXNnc1tvdXRfbnVtKytdID0gb3V0OwogCiAJLyogQWRk IHJldHVybiBzdGF0dXMuICovCi0Jc2dfaW5pdF9vbmUoJnN0YXQsICZ2aS0+Y3RybF9zdGF0dXMs IHNpemVvZih2aS0+Y3RybF9zdGF0dXMpKTsKKwlzZ19pbml0X29uZSgmc3RhdCwgJnZpLT5jdHJs LT5zdGF0dXMsIHNpemVvZih2aS0+Y3RybC0+c3RhdHVzKSk7CiAJc2dzW291dF9udW1dID0gJnN0 YXQ7CiAKIAlCVUdfT04ob3V0X251bSArIDEgPiBBUlJBWV9TSVpFKHNncykpOwogCXZpcnRxdWV1 ZV9hZGRfc2dzKHZpLT5jdnEsIHNncywgb3V0X251bSwgMSwgdmksIEdGUF9BVE9NSUMpOwogCiAJ aWYgKHVubGlrZWx5KCF2aXJ0cXVldWVfa2ljayh2aS0+Y3ZxKSkpCi0JCXJldHVybiB2aS0+Y3Ry bF9zdGF0dXMgPT0gVklSVElPX05FVF9PSzsKKwkJcmV0dXJuIHZpLT5jdHJsLT5zdGF0dXMgPT0g VklSVElPX05FVF9PSzsKIAogCS8qIFNwaW4gZm9yIGEgcmVzcG9uc2UsIHRoZSBraWNrIGNhdXNl cyBhbiBpb3BvcnQgd3JpdGUsIHRyYXBwaW5nCiAJICogaW50byB0aGUgaHlwZXJ2aXNvciwgc28g dGhlIHJlcXVlc3Qgc2hvdWxkIGJlIGhhbmRsZWQgaW1tZWRpYXRlbHkuCkBAIC0xNDg4LDcgKzE0 OTIsNyBAQCBzdGF0aWMgYm9vbCB2aXJ0bmV0X3NlbmRfY29tbWFuZChzdHJ1Y3QgdmlydG5ldF9p bmZvICp2aSwgdTggY2xhc3MsIHU4IGNtZCwKIAkgICAgICAgIXZpcnRxdWV1ZV9pc19icm9rZW4o dmktPmN2cSkpCiAJCWNwdV9yZWxheCgpOwogCi0JcmV0dXJuIHZpLT5jdHJsX3N0YXR1cyA9PSBW SVJUSU9fTkVUX09LOworCXJldHVybiB2aS0+Y3RybC0+c3RhdHVzID09IFZJUlRJT19ORVRfT0s7 CiB9CiAKIHN0YXRpYyBpbnQgdmlydG5ldF9zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgdm9pZCAqcCkKQEAgLTE2MDAsOCArMTYwNCw4IEBAIHN0YXRpYyBpbnQgX3ZpcnRu ZXRfc2V0X3F1ZXVlcyhzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSwgdTE2IHF1ZXVlX3BhaXJzKQog CWlmICghdmktPmhhc19jdnEgfHwgIXZpcnRpb19oYXNfZmVhdHVyZSh2aS0+dmRldiwgVklSVElP X05FVF9GX01RKSkKIAkJcmV0dXJuIDA7CiAKLQl2aS0+Y3RybF9tcS52aXJ0cXVldWVfcGFpcnMg PSBjcHVfdG9fdmlydGlvMTYodmktPnZkZXYsIHF1ZXVlX3BhaXJzKTsKLQlzZ19pbml0X29uZSgm c2csICZ2aS0+Y3RybF9tcSwgc2l6ZW9mKHZpLT5jdHJsX21xKSk7CisJdmktPmN0cmwtPm1xLnZp cnRxdWV1ZV9wYWlycyA9IGNwdV90b192aXJ0aW8xNih2aS0+dmRldiwgcXVldWVfcGFpcnMpOwor CXNnX2luaXRfb25lKCZzZywgJnZpLT5jdHJsLT5tcSwgc2l6ZW9mKHZpLT5jdHJsLT5tcSkpOwog CiAJaWYgKCF2aXJ0bmV0X3NlbmRfY29tbWFuZCh2aSwgVklSVElPX05FVF9DVFJMX01RLAogCQkJ CSAgVklSVElPX05FVF9DVFJMX01RX1ZRX1BBSVJTX1NFVCwgJnNnKSkgewpAQCAtMTY2MCwyMiAr MTY2NCwyMiBAQCBzdGF0aWMgdm9pZCB2aXJ0bmV0X3NldF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiAJaWYgKCF2aXJ0aW9faGFzX2ZlYXR1cmUodmktPnZkZXYsIFZJUlRJT19ORVRf Rl9DVFJMX1JYKSkKIAkJcmV0dXJuOwogCi0JdmktPmN0cmxfcHJvbWlzYyA9ICgoZGV2LT5mbGFn cyAmIElGRl9QUk9NSVNDKSAhPSAwKTsKLQl2aS0+Y3RybF9hbGxtdWx0aSA9ICgoZGV2LT5mbGFn cyAmIElGRl9BTExNVUxUSSkgIT0gMCk7CisJdmktPmN0cmwtPnByb21pc2MgPSAoKGRldi0+Zmxh Z3MgJiBJRkZfUFJPTUlTQykgIT0gMCk7CisJdmktPmN0cmwtPmFsbG11bHRpID0gKChkZXYtPmZs YWdzICYgSUZGX0FMTE1VTFRJKSAhPSAwKTsKIAotCXNnX2luaXRfb25lKHNnLCAmdmktPmN0cmxf cHJvbWlzYywgc2l6ZW9mKHZpLT5jdHJsX3Byb21pc2MpKTsKKwlzZ19pbml0X29uZShzZywgJnZp LT5jdHJsLT5wcm9taXNjLCBzaXplb2YodmktPmN0cmwtPnByb21pc2MpKTsKIAogCWlmICghdmly dG5ldF9zZW5kX2NvbW1hbmQodmksIFZJUlRJT19ORVRfQ1RSTF9SWCwKIAkJCQkgIFZJUlRJT19O RVRfQ1RSTF9SWF9QUk9NSVNDLCBzZykpCiAJCWRldl93YXJuKCZkZXYtPmRldiwgIkZhaWxlZCB0 byAlc2FibGUgcHJvbWlzYyBtb2RlLlxuIiwKLQkJCSB2aS0+Y3RybF9wcm9taXNjID8gImVuIiA6 ICJkaXMiKTsKKwkJCSB2aS0+Y3RybC0+cHJvbWlzYyA/ICJlbiIgOiAiZGlzIik7CiAKLQlzZ19p bml0X29uZShzZywgJnZpLT5jdHJsX2FsbG11bHRpLCBzaXplb2YodmktPmN0cmxfYWxsbXVsdGkp KTsKKwlzZ19pbml0X29uZShzZywgJnZpLT5jdHJsLT5hbGxtdWx0aSwgc2l6ZW9mKHZpLT5jdHJs LT5hbGxtdWx0aSkpOwogCiAJaWYgKCF2aXJ0bmV0X3NlbmRfY29tbWFuZCh2aSwgVklSVElPX05F VF9DVFJMX1JYLAogCQkJCSAgVklSVElPX05FVF9DVFJMX1JYX0FMTE1VTFRJLCBzZykpCiAJCWRl dl93YXJuKCZkZXYtPmRldiwgIkZhaWxlZCB0byAlc2FibGUgYWxsbXVsdGkgbW9kZS5cbiIsCi0J CQkgdmktPmN0cmxfYWxsbXVsdGkgPyAiZW4iIDogImRpcyIpOworCQkJIHZpLT5jdHJsLT5hbGxt dWx0aSA/ICJlbiIgOiAiZGlzIik7CiAKIAl1Y19jb3VudCA9IG5ldGRldl91Y19jb3VudChkZXYp OwogCW1jX2NvdW50ID0gbmV0ZGV2X21jX2NvdW50KGRldik7CkBAIC0xNzIxLDggKzE3MjUsOCBA QCBzdGF0aWMgaW50IHZpcnRuZXRfdmxhbl9yeF9hZGRfdmlkKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsCiAJc3RydWN0IHZpcnRuZXRfaW5mbyAqdmkgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVj dCBzY2F0dGVybGlzdCBzZzsKIAotCXZpLT5jdHJsX3ZpZCA9IHZpZDsKLQlzZ19pbml0X29uZSgm c2csICZ2aS0+Y3RybF92aWQsIHNpemVvZih2aS0+Y3RybF92aWQpKTsKKwl2aS0+Y3RybC0+dmlk ID0gdmlkOworCXNnX2luaXRfb25lKCZzZywgJnZpLT5jdHJsLT52aWQsIHNpemVvZih2aS0+Y3Ry bC0+dmlkKSk7CiAKIAlpZiAoIXZpcnRuZXRfc2VuZF9jb21tYW5kKHZpLCBWSVJUSU9fTkVUX0NU UkxfVkxBTiwKIAkJCQkgIFZJUlRJT19ORVRfQ1RSTF9WTEFOX0FERCwgJnNnKSkKQEAgLTE3MzYs OCArMTc0MCw4IEBAIHN0YXRpYyBpbnQgdmlydG5ldF92bGFuX3J4X2tpbGxfdmlkKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsCiAJc3RydWN0IHZpcnRuZXRfaW5mbyAqdmkgPSBuZXRkZXZfcHJpdihk ZXYpOwogCXN0cnVjdCBzY2F0dGVybGlzdCBzZzsKIAotCXZpLT5jdHJsX3ZpZCA9IHZpZDsKLQlz Z19pbml0X29uZSgmc2csICZ2aS0+Y3RybF92aWQsIHNpemVvZih2aS0+Y3RybF92aWQpKTsKKwl2 aS0+Y3RybC0+dmlkID0gdmlkOworCXNnX2luaXRfb25lKCZzZywgJnZpLT5jdHJsLT52aWQsIHNp emVvZih2aS0+Y3RybC0+dmlkKSk7CiAKIAlpZiAoIXZpcnRuZXRfc2VuZF9jb21tYW5kKHZpLCBW SVJUSU9fTkVUX0NUUkxfVkxBTiwKIAkJCQkgIFZJUlRJT19ORVRfQ1RSTF9WTEFOX0RFTCwgJnNn KSkKQEAgLTIxMzMsOSArMjEzNyw5IEBAIHN0YXRpYyBpbnQgdmlydG5ldF9yZXN0b3JlX3VwKHN0 cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQogc3RhdGljIGludCB2aXJ0bmV0X3NldF9ndWVzdF9v ZmZsb2FkcyhzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSwgdTY0IG9mZmxvYWRzKQogewogCXN0cnVj dCBzY2F0dGVybGlzdCBzZzsKLQl2aS0+Y3RybF9vZmZsb2FkcyA9IGNwdV90b192aXJ0aW82NCh2 aS0+dmRldiwgb2ZmbG9hZHMpOworCXZpLT5jdHJsLT5vZmZsb2FkcyA9IGNwdV90b192aXJ0aW82 NCh2aS0+dmRldiwgb2ZmbG9hZHMpOwogCi0Jc2dfaW5pdF9vbmUoJnNnLCAmdmktPmN0cmxfb2Zm bG9hZHMsIHNpemVvZih2aS0+Y3RybF9vZmZsb2FkcykpOworCXNnX2luaXRfb25lKCZzZywgJnZp LT5jdHJsLT5vZmZsb2Fkcywgc2l6ZW9mKHZpLT5jdHJsLT5vZmZsb2FkcykpOwogCiAJaWYgKCF2 aXJ0bmV0X3NlbmRfY29tbWFuZCh2aSwgVklSVElPX05FVF9DVFJMX0dVRVNUX09GRkxPQURTLAog CQkJCSAgVklSVElPX05FVF9DVFJMX0dVRVNUX09GRkxPQURTX1NFVCwgJnNnKSkgewpAQCAtMjM1 OCw2ICsyMzYyLDcgQEAgc3RhdGljIHZvaWQgdmlydG5ldF9mcmVlX3F1ZXVlcyhzdHJ1Y3Qgdmly dG5ldF9pbmZvICp2aSkKIAogCWtmcmVlKHZpLT5ycSk7CiAJa2ZyZWUodmktPnNxKTsKKwlrZnJl ZSh2aS0+Y3RybCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9mcmVlX3JlY2VpdmVfYnVmcyhzdHJ1Y3Qg dmlydG5ldF9pbmZvICp2aSkKQEAgLTI1NTAsNiArMjU1NSw5IEBAIHN0YXRpYyBpbnQgdmlydG5l dF9hbGxvY19xdWV1ZXMoc3RydWN0IHZpcnRuZXRfaW5mbyAqdmkpCiB7CiAJaW50IGk7CiAKKwl2 aS0+Y3RybCA9IGt6YWxsb2Moc2l6ZW9mKCp2aS0+Y3RybCksIEdGUF9LRVJORUwpOworCWlmICgh dmktPmN0cmwpCisJCWdvdG8gZXJyX2N0cmw7CiAJdmktPnNxID0ga3phbGxvYyhzaXplb2YoKnZp LT5zcSkgKiB2aS0+bWF4X3F1ZXVlX3BhaXJzLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXZpLT5zcSkK IAkJZ290byBlcnJfc3E7CkBAIC0yNTc4LDYgKzI1ODYsOCBAQCBzdGF0aWMgaW50IHZpcnRuZXRf YWxsb2NfcXVldWVzKHN0cnVjdCB2aXJ0bmV0X2luZm8gKnZpKQogZXJyX3JxOgogCWtmcmVlKHZp LT5zcSk7CiBlcnJfc3E6CisJa2ZyZWUodmktPmN0cmwpOworZXJyX2N0cmw6CiAJcmV0dXJuIC1F Tk9NRU07CiB9CiAKLS0gCjIuMTQuMwoKCkZyb20gYjM2NzgyYWI5OTJmZTlhMWRlMzUzNzUyZDAy N2UxM2I3ZWUzNGFkNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIk1pY2hhZWwgUy4g VHNpcmtpbiIgPG1zdEByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDE5IEFwciAyMDE4IDA4OjMwOjQ5 ICswMzAwClN1YmplY3Q6IFtQQVRDSCA1Mi81Ml0gdmlydGlvX25ldDogZml4IGFkZGluZyB2aWRz IG9uIGJpZy1lbmRpYW4KClsgVXBzdHJlYW0gY29tbWl0IGQ3ZmFkNGM4NDBmMzNhNmJkMzMzZGQ3 ZmJiMzAwNmVkYmNmMDAxN2EgXQoKUHJvZ3JhbW1pbmcgdmlkcyAoYWRkaW5nIG9yIHJlbW92aW5n IHRoZW0pIHN0aWxsIHBhc3NlcwpndWVzdC1lbmRpYW4gdmFsdWVzIGluIHRoZSBETUEgYnVmZmVy LiBUaGF0J3Mgd3JvbmcKaWYgZ3Vlc3QgaXMgYmlnLWVuZGlhbiBhbmQgd2hlbiB2aXJ0aW8gMSBp cyBlbmFibGVkLgoKTm90ZTogdGhpcyBpcyBvbiB0b3Agb2YgYSBwcmV2aW91cyBwYXRjaDoKCXZp cnRpb19uZXQ6IHNwbGl0IG91dCBjdHJsIGJ1ZmZlcgoKRml4ZXM6IDk0NjVhN2E2ZiAoInZpcnRp b19uZXQ6IGVuYWJsZSB2MS4wIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFMuIFRz aXJraW4gPG1zdEByZWRoYXQuY29tPgpBY2tlZC1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3ZpcnRpb19uZXQuYyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwppbmRleCAyZTdl MTg3MTE3YjUuLmFhMjFiMjIyNTY3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvX25l dC5jCisrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwpAQCAtMTU0LDcgKzE1NCw3IEBAIHN0 cnVjdCBjb250cm9sX2J1ZiB7CiAJc3RydWN0IHZpcnRpb19uZXRfY3RybF9tcSBtcTsKIAl1OCBw cm9taXNjOwogCXU4IGFsbG11bHRpOwotCXUxNiB2aWQ7CisJX192aXJ0aW8xNiB2aWQ7CiAJdTY0 IG9mZmxvYWRzOwogfTsKIApAQCAtMTcyNSw3ICsxNzI1LDcgQEAgc3RhdGljIGludCB2aXJ0bmV0 X3ZsYW5fcnhfYWRkX3ZpZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXN0cnVjdCB2aXJ0bmV0 X2luZm8gKnZpID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2c7CiAK LQl2aS0+Y3RybC0+dmlkID0gdmlkOworCXZpLT5jdHJsLT52aWQgPSBjcHVfdG9fdmlydGlvMTYo dmktPnZkZXYsIHZpZCk7CiAJc2dfaW5pdF9vbmUoJnNnLCAmdmktPmN0cmwtPnZpZCwgc2l6ZW9m KHZpLT5jdHJsLT52aWQpKTsKIAogCWlmICghdmlydG5ldF9zZW5kX2NvbW1hbmQodmksIFZJUlRJ T19ORVRfQ1RSTF9WTEFOLApAQCAtMTc0MCw3ICsxNzQwLDcgQEAgc3RhdGljIGludCB2aXJ0bmV0 X3ZsYW5fcnhfa2lsbF92aWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgdmlydG5l dF9pbmZvICp2aSA9IG5ldGRldl9wcml2KGRldik7CiAJc3RydWN0IHNjYXR0ZXJsaXN0IHNnOwog Ci0JdmktPmN0cmwtPnZpZCA9IHZpZDsKKwl2aS0+Y3RybC0+dmlkID0gY3B1X3RvX3ZpcnRpbzE2 KHZpLT52ZGV2LCB2aWQpOwogCXNnX2luaXRfb25lKCZzZywgJnZpLT5jdHJsLT52aWQsIHNpemVv Zih2aS0+Y3RybC0+dmlkKSk7CiAKIAlpZiAoIXZpcnRuZXRfc2VuZF9jb21tYW5kKHZpLCBWSVJU SU9fTkVUX0NUUkxfVkxBTiwKLS0gCjIuMTQuMwoK ----Next_Part(Thu_Apr_26_14_38_48_2018_354)----