From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 90D6AC4BA12 for ; Wed, 26 Feb 2020 12:47:43 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 60CDC21927 for ; Wed, 26 Feb 2020 12:47:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 60CDC21927 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j6w62-0002Hg-0E; Wed, 26 Feb 2020 12:47:26 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j6w60-0002Gz-HN for xen-devel@lists.xenproject.org; Wed, 26 Feb 2020 12:47:24 +0000 X-Inumbo-ID: 1a5c8290-5896-11ea-aba8-bc764e2007e4 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1a5c8290-5896-11ea-aba8-bc764e2007e4; Wed, 26 Feb 2020 12:47:10 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 8422CAF33; Wed, 26 Feb 2020 12:47:08 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Wed, 26 Feb 2020 13:46:57 +0100 Message-Id: <20200226124705.29212-5-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200226124705.29212-1-jgross@suse.com> References: <20200226124705.29212-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v6 04/12] xen: add basic hypervisor filesystem support X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Stefano Stabellini , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Jackson , George Dunlap , Jan Beulich , Daniel De Graaf , Volodymyr Babchuk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" QWRkIHRoZSBpbmZyYXN0cnVjdHVyZSBmb3IgdGhlIGh5cGVydmlzb3IgZmlsZXN5c3RlbS4KClRo aXMgaW5jbHVkZXMgdGhlIGh5cGVyY2FsbCBpbnRlcmZhY2UgYW5kIHRoZSBiYXNlIGZ1bmN0aW9u cyBmb3IKZW50cnkgY3JlYXRpb24sIGRlbGV0aW9uIGFuZCBtb2RpZmljYXRpb24uCgpJbiBvcmRl ciBub3QgdG8gaGF2ZSB0byByZXBlYXQgdGhlIHNhbWUgcGF0dGVybiBtdWx0aXBsZSB0aW1lcyBp biBjYXNlCmFkZGluZyBhIG5ldyBub2RlIHNob3VsZCBCVUdfT04oKSBmYWlsdXJlLCB0aGUgaGVs cGVycyBmb3IgYWRkaW5nIGEKbm9kZSAoaHlwZnNfYWRkX2RpcigpIGFuZCBoeXBmc19hZGRfbGVh ZigpKSBnZXQgYSBub2ZhdWx0IHBhcmFtZXRlcgpjYXVzaW5nIHRoZSBCVUcoKSBpbiBjYXNlIG9m IGEgZmFpbHVyZS4KCldoZW4gc3VwcG9ydGluZyB3cml0YWJsZSBsZWFmcyB0aGUgZW50cnkncyB3 cml0ZSBwb2ludGVyIHdpbGwgbmVlZCB0bwpiZSBzZXQgdG8gdGhlIGZ1bmN0aW9uIHBlcmZvcm1p bmcgdGhlIHdyaXRlIHRvIHRoZSB2YXJpYWJsZSBob2xkaW5nIHRoZQpjb250ZW50LiBJbiBjYXNl IHRoZXJlIGFyZSBubyBzcGVjaWFsIGNvbnN0cmFpbnRzIHRoaXMgd2lsbCBiZQpoeXBmc193cml0 ZV9ib29sKCkgZm9yIHR5cGUgWEVOX0hZUEZTX1RZUEVfQk9PTCBhbmQgaHlwZnNfd3JpdGVfbGVh ZigpCmZvciB0aGUgb3RoZXIgZW50cnkgdHlwZXMuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdy b3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQpWMToKLSByZW5hbWUgZmlsZXMgZnJvbSBmaWxlc3lz dGVtLiogdG8gaHlwZnMuKgotIGFkZCBkdW1teSB3cml0ZSBlbnRyeSBzdXBwb3J0Ci0gcmVuYW1l IGh5cGVyY2FsbCBmaWxlc3lzdGVtX29wIHRvIGh5cGZzX29wCi0gYWRkIHN1cHBvcnQgZm9yIHVu c2lnbmVkIGludGVnZXIgZW50cmllcwoKVjI6Ci0gdGVzdCBuZXcgZW50cnkgbmFtZSB0byBiZSB2 YWxpZAoKVjM6Ci0gbWFqb3IgcmV3b3JrLCBlc3BlY2lhbGx5IGJ5IHN1cHBvcnRpbmcgYmluYXJ5 IGNvbnRlbnRzIG9mIGVudHJpZXMKLSBhZGRyZXNzZWQgYWxsIGNvbW1lbnRzCgpWNDoKLSBzb3J0 ICNpbmNsdWRlcyBhbHBoYWJldGljYWxseSAoV2VpIExpdSkKLSBhZGQgcHVibGljIGludGVyZmFj ZSBzdHJ1Y3R1cmVzIHRvIHhsYXQubHN0IChKYW4gQmV1bGljaCkKLSBsZXQgRElSRU5UUllfU0la RSgpIGFkZCAxIGZvciB0cmFpbGluZyBudWwgYnl0ZSAoSmFuIEJldWxpY2gpCi0gcmVtb3ZlIGh5 cGZzX2FkZF9lbnRyeSgpIChKYW4gQmV1bGljaCkKLSBsZW4gLT4gdWxlbiAoSmFuIEJldWxpY2gp Ci0gc3dpdGNoIHNlcXVlbmNlIG9mIHRlc3RzIGluIGh5cGZzX2dldF9lbnRyeV9yZWwoKSAoSmFu IEJldWxpY2gpCi0gYWRkIGNvbnN0IHF1YWxpZmllciAoSmFuIEJldWxpY2gpCi0gcmV0dXJuIC1F Tk9CVUZTIGlmIG9ubHkgZGlyZW50cnkgYnV0IG5vIGVudHJ5IGNvbnRlbnRzIGFyZSByZXR1cm5l ZAogIChKYW4gQmV1bGljaCkKLSB1c2UgeG1hbGxvYygpIGluc3RlYWQgb2YgeHphbGxvYygpIChK YW4gQmV1bGljaCkKLSBiZXR0ZXIgZXJyb3IgaGFuZGxpbmcgaW4gaHlwZnNfd3JpdGVfbGVhZigp IChKYW4gQmV1bGljaCkKLSByZXR1cm4gLUVPUE5PVFNVUFAgZm9yIHVua25vd24gc3ViLWNvbW1h bmQgKEphbiBCZXVsaWNoKQotIHVzZSBwbGFpbiBpbnRlZ2VycyBmb3IgZW51bS1saWtlIGNvbnN0 YW50cyBpbiBwdWJsaWMgaW50ZXJmYWNlCiAgKEphbiBCZXVsaWNoKQotIHJlbmFtZSBYRU5fSFlQ RlNfT1BfcmVhZF9jb250ZW50cyB0byBYRU5fSFlQRlNfT1BfcmVhZCAoSmFuIEJldWxpY2gpCi0g YWRkIHNvbWUgY29tbWVudHMgaW4gaW5jbHVkZS9wdWJsaWMvaHlwZnMuaCAoSmFuIEJldWxpY2gp Ci0gdXNlIGNvbnN0X2NoYXIgZm9yIHVzZXIgcGFyYW1ldGVyIHBhdGggKEphbiBCZXVsaWNoKQot IGFkZCBoZWxwZXJzIGZvciBYRU5fSFlQRlNfVFlQRV9CT09MIGFuZCBYRU5fSFlQRlNfVFlQRV9J TlQgZW50cnkKICBkZWZpbml0aW9ucyAoSmFuIEJldWxpY2gpCi0gbWFrZSBzdGF0aWNhbGx5IGRl ZmluZWQgZW50cmllcyBfX3JlYWRfbW9zdGx5IChKYW4gQmV1bGljaCkKClY1OgotIHN3aXRjaCB0 byB4c20gZm9yIHByaXZpbGVnZSBjaGVjawoKVjY6Ci0gdXNlIG1lbWNocigpIGZvciB0ZXN0aW5n IGNvcnJlY3Qgc3RyaW5nIGxlbmd0aCAoSmFuIEJldWxpY2gpCi0gcmVqZWN0IHdyaXRpbmcgdG8g bm9uLXN0cmluZyBsZWFmcyB3aXRoIHdyb25nIGxlbmd0aCAoSmFuIEJldWxpY2gpCi0gb25seSBz dXBwb3J0IGJvb2xzIG9mIG5hdHVyYWwgc2l6ZSAoSnVsaWVuIEdyYWxsKQotIGFkanVzdCBibGFu ayBwYWRkaW5nIGluIGhlYWRlciAoSmFuIEJldWxpY2gpCi0gYWRqdXN0IGNvbW1lbnRzIGluIHB1 YmxpYyBoZWFkZXIgKEphbiBCZXVsaWNoKQotIHJlbmFtZSBoeXBmc19zdHJpbmdfc2V0KCkgYW5k IGFkZCBjb21tZW50IChKYW4gQmV1bGljaCkKLSBhZGQgY29tbW9uIEhZUEZTX0lOSVQgaGVscGVy IG1hY3JvIChKYW4gQmV1bGljaCkKLSByZWFsbHkgY2hlY2sgc3RydWN0dXJlcyBhZGRlZCB0byB4 bGF0LmxzdCAoSmFuIEJldWxpY2gpCi0gYWRkIG1pc3NpbmcgeHNtIHBhcnRzIChKYW4gQmV1bGlj aCkKLS0tCiB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9kb20wLnRlICB8ICAgMiArLQogeGVu L2FyY2gvYXJtL3RyYXBzLmMgICAgICAgICAgICAgICAgfCAgIDEgKwogeGVuL2FyY2gveDg2L2h2 bS9oeXBlcmNhbGwuYyAgICAgICAgfCAgIDEgKwogeGVuL2FyY2gveDg2L2h5cGVyY2FsbC5jICAg ICAgICAgICAgfCAgIDEgKwogeGVuL2FyY2gveDg2L3B2L2h5cGVyY2FsbC5jICAgICAgICAgfCAg IDEgKwogeGVuL2NvbW1vbi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogeGVuL2Nv bW1vbi9oeXBmcy5jICAgICAgICAgICAgICAgICAgfCAzNDkgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICAg MSArCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHlwZnMuaCAgICAgICAgICB8IDEyNyArKysrKysrKysr KysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmggICAgICAgICAgICB8ICAgMSArCiB4ZW4vaW5j bHVkZS94ZW4vaHlwZXJjYWxsLmggICAgICAgICB8ICAgOCArCiB4ZW4vaW5jbHVkZS94ZW4vaHlw ZnMuaCAgICAgICAgICAgICB8IDEwMyArKysrKysrKysrKwogeGVuL2luY2x1ZGUveGxhdC5sc3Qg ICAgICAgICAgICAgICAgfCAgIDIgKwogeGVuL2luY2x1ZGUveHNtL2R1bW15LmggICAgICAgICAg ICAgfCAgIDYgKwogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAgICAgICAgfCAgIDYgKwog eGVuL3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogeGVuL3hzbS9mbGFz ay9ob29rcy5jICAgICAgICAgICAgICAgfCAgIDYgKwogeGVuL3hzbS9mbGFzay9wb2xpY3kvYWNj ZXNzX3ZlY3RvcnMgfCAgIDIgKwogMTggZmlsZXMgY2hhbmdlZCwgNjE4IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vY29tbW9uL2h5cGZzLmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9wdWJsaWMvaHlwZnMuaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHhlbi9pbmNsdWRlL3hlbi9oeXBmcy5oCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2sv cG9saWN5L21vZHVsZXMvZG9tMC50ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2RvbTAu dGUKaW5kZXggMjcyZjZhNGY3NS4uMjA5MjVlMzhhMiAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2sv cG9saWN5L21vZHVsZXMvZG9tMC50ZQorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9k b20wLnRlCkBAIC0xMSw3ICsxMSw3IEBAIGFsbG93IGRvbTBfdCB4ZW5fdDp4ZW4gewogCW10cnJf ZGVsIG10cnJfcmVhZCBtaWNyb2NvZGUgcGh5c2luZm8gcXVpcmsgd3JpdGVjb25zb2xlIHJlYWRh cGljCiAJd3JpdGVhcGljIHByaXZwcm9maWxlIG5vbnByaXZwcm9maWxlIGtleGVjIGZpcm13YXJl IHNsZWVwIGZyZXF1ZW5jeQogCWdldGlkbGUgZGVidWcgZ2V0Y3B1aW5mbyBoZWFwIHBtX29wIG1j YV9vcCBsb2NrcHJvZiBjcHVwb29sX29wCi0JZ2V0c2NoZWR1bGVyIHNldHNjaGVkdWxlcgorCWdl dHNjaGVkdWxlciBzZXRzY2hlZHVsZXIgaHlwZnNfb3AKIH07CiBhbGxvdyBkb20wX3QgeGVuX3Q6 eGVuMiB7CiAJcmVzb3VyY2Vfb3AgcHNyX2NtdF9vcCBwc3JfYWxsb2MgcG11X2N0cmwgZ2V0X3N5 bWJvbApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RyYXBzLmMgYi94ZW4vYXJjaC9hcm0vdHJh cHMuYwppbmRleCA2ZjliZWMyMmQzLi44N2FmODEwNjY3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9h cm0vdHJhcHMuYworKysgYi94ZW4vYXJjaC9hcm0vdHJhcHMuYwpAQCAtMTM4Miw2ICsxMzgyLDcg QEAgc3RhdGljIGFybV9oeXBlcmNhbGxfdCBhcm1faHlwZXJjYWxsX3RhYmxlW10gPSB7CiAjaWZk ZWYgQ09ORklHX0FSR08KICAgICBIWVBFUkNBTEwoYXJnb19vcCwgNSksCiAjZW5kaWYKKyAgICBI WVBFUkNBTEwoaHlwZnNfb3AsIDUpLAogfTsKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2Fs bC5jCmluZGV4IDMzZGQyZDk5ZDIuLjIxMGRkYTRmMzggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9odm0vaHlwZXJjYWxsLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYwpAQCAt MTQ0LDYgKzE0NCw3IEBAIHN0YXRpYyBjb25zdCBoeXBlcmNhbGxfdGFibGVfdCBodm1faHlwZXJj YWxsX3RhYmxlW10gPSB7CiAjZW5kaWYKICAgICBIWVBFUkNBTEwoeGVucG11X29wKSwKICAgICBD T01QQVRfQ0FMTChkbV9vcCksCisgICAgSFlQRVJDQUxMKGh5cGZzX29wKSwKICAgICBIWVBFUkNB TEwoYXJjaF8xKQogfTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h5cGVyY2FsbC5jIGIv eGVuL2FyY2gveDg2L2h5cGVyY2FsbC5jCmluZGV4IDdmMjk5ZDQ1YzYuLjA1YTNmNWUyNWIgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9oeXBlcmNhbGwuYworKysgYi94ZW4vYXJjaC94ODYvaHlw ZXJjYWxsLmMKQEAgLTczLDYgKzczLDcgQEAgY29uc3QgaHlwZXJjYWxsX2FyZ3NfdCBoeXBlcmNh bGxfYXJnc190YWJsZVtOUl9oeXBlcmNhbGxzXSA9CiAgICAgQVJHUyhodm1fb3AsIDIpLAogICAg IEFSR1MoZG1fb3AsIDMpLAogI2VuZGlmCisgICAgQVJHUyhoeXBmc19vcCwgNSksCiAgICAgQVJH UyhtY2EsIDEpLAogICAgIEFSR1MoYXJjaF8xLCAxKSwKIH07CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvcHYvaHlwZXJjYWxsLmMgYi94ZW4vYXJjaC94ODYvcHYvaHlwZXJjYWxsLmMKaW5kZXgg MTdkZGY5ZWExZi4uODM5MDdkNGYwMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2h5cGVy Y2FsbC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9oeXBlcmNhbGwuYwpAQCAtODUsNiArODUsNyBA QCBjb25zdCBoeXBlcmNhbGxfdGFibGVfdCBwdl9oeXBlcmNhbGxfdGFibGVbXSA9IHsKICAgICBI WVBFUkNBTEwoaHZtX29wKSwKICAgICBDT01QQVRfQ0FMTChkbV9vcCksCiAjZW5kaWYKKyAgICBI WVBFUkNBTEwoaHlwZnNfb3ApLAogICAgIEhZUEVSQ0FMTChtY2EpLAogICAgIEhZUEVSQ0FMTChh cmNoXzEpLAogfTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vTWFrZWZpbGUgYi94ZW4vY29tbW9u L01ha2VmaWxlCmluZGV4IDJhYmI4MjUwYjAuLjNhMmMxYWU2OTAgMTAwNjQ0Ci0tLSBhL3hlbi9j b21tb24vTWFrZWZpbGUKKysrIGIveGVuL2NvbW1vbi9NYWtlZmlsZQpAQCAtMTAsNiArMTAsNyBA QCBvYmoteSArPSBkb21haW4ubwogb2JqLXkgKz0gZXZlbnRfMmwubwogb2JqLXkgKz0gZXZlbnRf Y2hhbm5lbC5vCiBvYmoteSArPSBldmVudF9maWZvLm8KK29iai15ICs9IGh5cGZzLm8KIG9iai0k KENPTkZJR19DUkFTSF9ERUJVRykgKz0gZ2Ric3R1Yi5vCiBvYmotJChDT05GSUdfR1JBTlRfVEFC TEUpICs9IGdyYW50X3RhYmxlLm8KIG9iai15ICs9IGd1ZXN0Y29weS5vCmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL2h5cGZzLmMgYi94ZW4vY29tbW9uL2h5cGZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uZTYxNjZmZTFlNwotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9j b21tb24vaHlwZnMuYwpAQCAtMCwwICsxLDM0OSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor ICoKKyAqIGh5cGZzLmMKKyAqCisgKiBTaW1wbGUgc3lzZnMtbGlrZSBmaWxlIHN5c3RlbSBmb3Ig dGhlIGh5cGVydmlzb3IuCisgKi8KKworI2luY2x1ZGUgPHhlbi9lcnIuaD4KKyNpbmNsdWRlIDx4 ZW4vZ3Vlc3RfYWNjZXNzLmg+CisjaW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5oPgorI2luY2x1ZGUg PHhlbi9oeXBmcy5oPgorI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNsdWRlIDx4ZW4vcndsb2Nr Lmg+CisjaW5jbHVkZSA8cHVibGljL2h5cGZzLmg+CisKKyNpZmRlZiBDT05GSUdfQ09NUEFUCisj aW5jbHVkZSA8Y29tcGF0L2h5cGZzLmg+CitDSEVDS19oeXBmc19kaXJlbnRyeTsKKyN1bmRlZiBD SEVDS19oeXBmc19kaXJlbnRyeQorI2RlZmluZSBDSEVDS19oeXBmc19kaXJlbnRyeSBzdHJ1Y3Qg eGVuX2h5cGZzX2RpcmVudHJ5CitDSEVDS19oeXBmc19kaXJsaXN0ZW50cnk7CisjZW5kaWYKKwor I2RlZmluZSBESVJFTlRSWV9OQU1FX09GRiBvZmZzZXRvZihzdHJ1Y3QgeGVuX2h5cGZzX2Rpcmxp c3RlbnRyeSwgbmFtZSkKKyNkZWZpbmUgRElSRU5UUllfU0laRShuYW1lX2xlbikgXAorICAgIChE SVJFTlRSWV9OQU1FX09GRiArICAgICAgICBcCisgICAgIFJPVU5EVVAoKG5hbWVfbGVuKSArIDEs IGFsaWdub2Yoc3RydWN0IHhlbl9oeXBmc19kaXJlbnRyeSkpKQorCitzdGF0aWMgREVGSU5FX1JX TE9DSyhoeXBmc19sb2NrKTsKKworSFlQRlNfRElSX0lOSVQoaHlwZnNfcm9vdCwgIiIpOworCitz dGF0aWMgaW50IGFkZF9lbnRyeShzdHJ1Y3QgaHlwZnNfZW50cnlfZGlyICpwYXJlbnQsIHN0cnVj dCBoeXBmc19lbnRyeSAqbmV3KQoreworICAgIGludCByZXQgPSAtRU5PRU5UOworICAgIHN0cnVj dCBoeXBmc19lbnRyeSAqZTsKKworICAgIHdyaXRlX2xvY2soJmh5cGZzX2xvY2spOworCisgICAg bGlzdF9mb3JfZWFjaF9lbnRyeSAoIGUsICZwYXJlbnQtPmRpcmxpc3QsIGxpc3QgKQorICAgIHsK KyAgICAgICAgaW50IGNtcCA9IHN0cmNtcChlLT5uYW1lLCBuZXctPm5hbWUpOworCisgICAgICAg IGlmICggY21wID4gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAg ICAgICBsaXN0X2FkZF90YWlsKCZuZXctPmxpc3QsICZlLT5saXN0KTsKKyAgICAgICAgICAgIGJy ZWFrOworICAgICAgICB9CisgICAgICAgIGlmICggY21wID09IDAgKQorICAgICAgICB7CisgICAg ICAgICAgICByZXQgPSAtRUVYSVNUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg ICB9CisKKyAgICBpZiAoIHJldCA9PSAtRU5PRU5UICkKKyAgICB7CisgICAgICAgIHJldCA9IDA7 CisgICAgICAgIGxpc3RfYWRkX3RhaWwoJm5ldy0+bGlzdCwgJnBhcmVudC0+ZGlybGlzdCk7Cisg ICAgfQorCisgICAgaWYgKCAhcmV0ICkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGludCBzeiA9 IHN0cmxlbihuZXctPm5hbWUpOworCisgICAgICAgIHBhcmVudC0+ZS5zaXplICs9IERJUkVOVFJZ X1NJWkUoc3opOworICAgIH0KKworICAgIHdyaXRlX3VubG9jaygmaHlwZnNfbG9jayk7CisKKyAg ICByZXR1cm4gcmV0OworfQorCitpbnQgaHlwZnNfYWRkX2RpcihzdHJ1Y3QgaHlwZnNfZW50cnlf ZGlyICpwYXJlbnQsCisgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHlwZnNfZW50cnlfZGlyICpk aXIsIGJvb2wgbm9mYXVsdCkKK3sKKyAgICBpbnQgcmV0OworCisgICAgcmV0ID0gYWRkX2VudHJ5 KHBhcmVudCwgJmRpci0+ZSk7CisgICAgQlVHX09OKG5vZmF1bHQgJiYgcmV0KTsKKworICAgIHJl dHVybiByZXQ7Cit9CisKK2ludCBoeXBmc19hZGRfbGVhZihzdHJ1Y3QgaHlwZnNfZW50cnlfZGly ICpwYXJlbnQsCisgICAgICAgICAgICAgICAgICAgc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmxl YWYsIGJvb2wgbm9mYXVsdCkKK3sKKyAgICBpbnQgcmV0OworCisgICAgaWYgKCAhbGVhZi0+Y29u dGVudCApCisgICAgICAgIHJldCA9IC1FSU5WQUw7CisgICAgZWxzZQorICAgICAgICByZXQgPSBh ZGRfZW50cnkocGFyZW50LCAmbGVhZi0+ZSk7CisgICAgQlVHX09OKG5vZmF1bHQgJiYgcmV0KTsK KworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgaHlwZnNfZ2V0X3BhdGhfdXNlcihj aGFyICpidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRM RV9QQVJBTShjb25zdF9jaGFyKSB1YWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIHVsZW4pCit7CisgICAgaWYgKCB1bGVuID4gWEVOX0hZUEZTX01BWF9Q QVRITEVOICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoIGNvcHlfZnJvbV9n dWVzdChidWYsIHVhZGRyLCB1bGVuKSApCisgICAgICAgIHJldHVybiAtRUZBVUxUOworCisgICAg aWYgKCBtZW1jaHIoYnVmLCAwLCB1bGVuKSAhPSBidWYgKyB1bGVuIC0gMSApCisgICAgICAgIHJl dHVybiAtRUlOVkFMOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHlwZnNf ZW50cnkgKmh5cGZzX2dldF9lbnRyeV9yZWwoc3RydWN0IGh5cGZzX2VudHJ5X2RpciAqZGlyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpwYXRoKQoreworICAgIGNvbnN0IGNoYXIgKmVuZDsKKyAgICBzdHJ1Y3QgaHlwZnNfZW50cnkg KmVudHJ5OworICAgIHVuc2lnbmVkIGludCBuYW1lX2xlbjsKKworICAgIGlmICggZGlyLT5lLnR5 cGUgIT0gWEVOX0hZUEZTX1RZUEVfRElSICkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBp ZiAoICEqcGF0aCApCisgICAgICAgIHJldHVybiAmZGlyLT5lOworCisgICAgZW5kID0gc3RyY2hy KHBhdGgsICcvJyk7CisgICAgaWYgKCAhZW5kICkKKyAgICAgICAgZW5kID0gc3RyY2hyKHBhdGgs ICdcMCcpOworICAgIG5hbWVfbGVuID0gZW5kIC0gcGF0aDsKKworICAgIGxpc3RfZm9yX2VhY2hf ZW50cnkgKCBlbnRyeSwgJmRpci0+ZGlybGlzdCwgbGlzdCApCisgICAgeworICAgICAgICBpbnQg Y21wID0gc3RybmNtcChwYXRoLCBlbnRyeS0+bmFtZSwgbmFtZV9sZW4pOworICAgICAgICBzdHJ1 Y3QgaHlwZnNfZW50cnlfZGlyICpkID0gY29udGFpbmVyX29mKGVudHJ5LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBoeXBmc19lbnRyeV9k aXIsIGUpOworCisgICAgICAgIGlmICggY21wIDwgMCApCisgICAgICAgICAgICByZXR1cm4gTlVM TDsKKyAgICAgICAgaWYgKCAhY21wICYmIHN0cmxlbihlbnRyeS0+bmFtZSkgPT0gbmFtZV9sZW4g KQorICAgICAgICAgICAgcmV0dXJuICplbmQgPyBoeXBmc19nZXRfZW50cnlfcmVsKGQsIGVuZCAr IDEpIDogZW50cnk7CisgICAgfQorCisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0cnVjdCBoeXBm c19lbnRyeSAqaHlwZnNfZ2V0X2VudHJ5KGNvbnN0IGNoYXIgKnBhdGgpCit7CisgICAgaWYgKCBw YXRoWzBdICE9ICcvJyApCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0dXJuIGh5cGZz X2dldF9lbnRyeV9yZWwoJmh5cGZzX3Jvb3QsIHBhdGggKyAxKTsKK30KKworaW50IGh5cGZzX3Jl YWRfZGlyKGNvbnN0IHN0cnVjdCBoeXBmc19lbnRyeSAqZW50cnksCisgICAgICAgICAgICAgICAg ICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSB1YWRkcikKK3sKKyAgICBjb25zdCBzdHJ1 Y3QgaHlwZnNfZW50cnlfZGlyICpkOworICAgIGNvbnN0IHN0cnVjdCBoeXBmc19lbnRyeSAqZTsK KyAgICB1bnNpZ25lZCBpbnQgc2l6ZSA9IGVudHJ5LT5zaXplOworCisgICAgZCA9IGNvbnRhaW5l cl9vZihlbnRyeSwgY29uc3Qgc3RydWN0IGh5cGZzX2VudHJ5X2RpciwgZSk7CisKKyAgICBsaXN0 X2Zvcl9lYWNoX2VudHJ5ICggZSwgJmQtPmRpcmxpc3QsIGxpc3QgKQorICAgIHsKKyAgICAgICAg c3RydWN0IHhlbl9oeXBmc19kaXJsaXN0ZW50cnkgZGlyZW50cnk7CisgICAgICAgIHVuc2lnbmVk IGludCBlX25hbWVsZW4gPSBzdHJsZW4oZS0+bmFtZSk7CisgICAgICAgIHVuc2lnbmVkIGludCBl X2xlbiA9IERJUkVOVFJZX1NJWkUoZV9uYW1lbGVuKTsKKworICAgICAgICBkaXJlbnRyeS5lLmZs YWdzID0gZS0+d3JpdGUgPyBYRU5fSFlQRlNfV1JJVEVBQkxFIDogMDsKKyAgICAgICAgZGlyZW50 cnkuZS50eXBlID0gZS0+dHlwZTsKKyAgICAgICAgZGlyZW50cnkuZS5lbmNvZGluZyA9IGUtPmVu Y29kaW5nOworICAgICAgICBkaXJlbnRyeS5lLmNvbnRlbnRfbGVuID0gZS0+c2l6ZTsKKyAgICAg ICAgZGlyZW50cnkub2ZmX25leHQgPSBsaXN0X2lzX2xhc3QoJmUtPmxpc3QsICZkLT5kaXJsaXN0 KSA/IDAgOiBlX2xlbjsKKyAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0KHVhZGRyLCAmZGlyZW50 cnksIDEpICkKKyAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOworCisgICAgICAgIGlmICggY29w eV90b19ndWVzdF9vZmZzZXQodWFkZHIsIERJUkVOVFJZX05BTUVfT0ZGLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGUtPm5hbWUsIGVfbmFtZWxlbiArIDEpICkKKyAgICAgICAg ICAgIHJldHVybiAtRUZBVUxUOworCisgICAgICAgIGd1ZXN0X2hhbmRsZV9hZGRfb2Zmc2V0KHVh ZGRyLCBlX2xlbik7CisKKyAgICAgICAgQVNTRVJUKGVfbGVuIDw9IHNpemUpOworICAgICAgICBz aXplIC09IGVfbGVuOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgaHlwZnNfcmVh ZF9sZWFmKGNvbnN0IHN0cnVjdCBoeXBmc19lbnRyeSAqZW50cnksCisgICAgICAgICAgICAgICAg ICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgdWFkZHIpCit7CisgICAgY29uc3Qgc3Ry dWN0IGh5cGZzX2VudHJ5X2xlYWYgKmw7CisKKyAgICBsID0gY29udGFpbmVyX29mKGVudHJ5LCBj b25zdCBzdHJ1Y3QgaHlwZnNfZW50cnlfbGVhZiwgZSk7CisKKyAgICByZXR1cm4gY29weV90b19n dWVzdCh1YWRkciwgbC0+Y29udGVudCwgZW50cnktPnNpemUpID8gLUVGQVVMVDogMDsKK30KKwor c3RhdGljIGludCBoeXBmc19yZWFkKGNvbnN0IHN0cnVjdCBoeXBmc19lbnRyeSAqZW50cnksCisg ICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSB1YWRkciwg dW5zaWduZWQgbG9uZyB1bGVuKQoreworICAgIHN0cnVjdCB4ZW5faHlwZnNfZGlyZW50cnkgZTsK KyAgICBsb25nIHJldCA9IC1FSU5WQUw7CisKKyAgICBpZiAoIHVsZW4gPCBzaXplb2YoZSkgKQor ICAgICAgICBnb3RvIG91dDsKKworICAgIGUuZmxhZ3MgPSBlbnRyeS0+d3JpdGUgPyBYRU5fSFlQ RlNfV1JJVEVBQkxFIDogMDsKKyAgICBlLnR5cGUgPSBlbnRyeS0+dHlwZTsKKyAgICBlLmVuY29k aW5nID0gZW50cnktPmVuY29kaW5nOworICAgIGUuY29udGVudF9sZW4gPSBlbnRyeS0+c2l6ZTsK KworICAgIHJldCA9IC1FRkFVTFQ7CisgICAgaWYgKCBjb3B5X3RvX2d1ZXN0KHVhZGRyLCAmZSwg MSkgKQorICAgICAgICBnb3RvIG91dDsKKworICAgIHJldCA9IC1FTk9CVUZTOworICAgIGlmICgg dWxlbiA8IGVudHJ5LT5zaXplICsgc2l6ZW9mKGUpICkKKyAgICAgICAgZ290byBvdXQ7CisKKyAg ICBndWVzdF9oYW5kbGVfYWRkX29mZnNldCh1YWRkciwgc2l6ZW9mKGUpKTsKKworICAgIHJldCA9 IGVudHJ5LT5yZWFkKGVudHJ5LCB1YWRkcik7CisKKyBvdXQ6CisgICAgcmV0dXJuIHJldDsKK30K KworaW50IGh5cGZzX3dyaXRlX2xlYWYoc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmxlYWYsCisg ICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIHVhZGRyLCB1 bnNpZ25lZCBsb25nIHVsZW4pCit7CisgICAgY2hhciAqYnVmOworICAgIGludCByZXQ7CisKKyAg ICBpZiAoIHVsZW4gPiBsZWFmLT5lLnNpemUgKQorICAgICAgICByZXR1cm4gLUVOT1NQQzsKKwor ICAgIGlmICggbGVhZi0+ZS50eXBlICE9IFhFTl9IWVBGU19UWVBFX1NUUklORyAmJgorICAgICAg ICAgbGVhZi0+ZS50eXBlICE9IFhFTl9IWVBGU19UWVBFX0JMT0IgJiYgdWxlbiAhPSBsZWFmLT5l LnNpemUgKQorICAgICAgICByZXR1cm4gLUVET007CisKKyAgICBidWYgPSB4bWFsbG9jX2FycmF5 KGNoYXIsIHVsZW4pOworICAgIGlmICggIWJ1ZiApCisgICAgICAgIHJldHVybiAtRU5PTUVNOwor CisgICAgcmV0ID0gLUVGQVVMVDsKKyAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdChidWYsIHVhZGRy LCB1bGVuKSApCisgICAgICAgIGdvdG8gb3V0OworCisgICAgcmV0ID0gLUVJTlZBTDsKKyAgICBp ZiAoIGxlYWYtPmUudHlwZSA9PSBYRU5fSFlQRlNfVFlQRV9TVFJJTkcgJiYgIW1lbWNocihidWYs IDAsIHVsZW4pICkKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICByZXQgPSAwOworICAgIG1lbWNw eShsZWFmLT53cml0ZV9wdHIsIGJ1ZiwgdWxlbik7CisKKyBvdXQ6CisgICAgeGZyZWUoYnVmKTsK KyAgICByZXR1cm4gcmV0OworfQorCitpbnQgaHlwZnNfd3JpdGVfYm9vbChzdHJ1Y3QgaHlwZnNf ZW50cnlfbGVhZiAqbGVhZiwKKyAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0odm9pZCkgdWFkZHIsIHVuc2lnbmVkIGxvbmcgdWxlbikKK3sKKyAgICBib29sIGJ1ZjsK KworICAgIEFTU0VSVChsZWFmLT5lLnR5cGUgPT0gWEVOX0hZUEZTX1RZUEVfQk9PTCAmJiBsZWFm LT5lLnNpemUgPT0gc2l6ZW9mKGJvb2wpKTsKKworICAgIGlmICggdWxlbiAhPSBsZWFmLT5lLnNp emUgKQorICAgICAgICByZXR1cm4gLUVET007CisKKyAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgm YnVmLCB1YWRkciwgdWxlbikgKQorICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgICooYm9v bCAqKWxlYWYtPndyaXRlX3B0ciA9IGJ1ZjsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMg aW50IGh5cGZzX3dyaXRlKHN0cnVjdCBoeXBmc19lbnRyeSAqZW50cnksCisgICAgICAgICAgICAg ICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgdWFkZHIsIHVuc2lnbmVkIGxv bmcgdWxlbikKK3sKKyAgICBzdHJ1Y3QgaHlwZnNfZW50cnlfbGVhZiAqbDsKKworICAgIGlmICgg IWVudHJ5LT53cml0ZSApCisgICAgICAgIHJldHVybiAtRUFDQ0VTOworCisgICAgbCA9IGNvbnRh aW5lcl9vZihlbnRyeSwgc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYsIGUpOworCisgICAgcmV0dXJu IGVudHJ5LT53cml0ZShsLCB1YWRkciwgdWxlbik7Cit9CisKK2xvbmcgZG9faHlwZnNfb3AodW5z aWduZWQgaW50IGNtZCwKKyAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShj b25zdF9jaGFyKSBhcmcxLCB1bnNpZ25lZCBsb25nIGFyZzIsCisgICAgICAgICAgICAgICAgIFhF Tl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnMywgdW5zaWduZWQgbG9uZyBhcmc0KQorewor ICAgIGludCByZXQ7CisgICAgc3RydWN0IGh5cGZzX2VudHJ5ICplbnRyeTsKKyAgICBzdGF0aWMg Y2hhciBwYXRoW1hFTl9IWVBGU19NQVhfUEFUSExFTl07CisKKyAgICBpZiAoIHhzbV9oeXBmc19v cChYU01fUFJJVikgKQorICAgICAgICByZXR1cm4gLUVQRVJNOworCisgICAgaWYgKCBjbWQgPT0g WEVOX0hZUEZTX09QX2dldF92ZXJzaW9uICkKKyAgICAgICAgcmV0dXJuIFhFTl9IWVBGU19WRVJT SU9OOworCisgICAgaWYgKCBjbWQgPT0gWEVOX0hZUEZTX09QX3dyaXRlX2NvbnRlbnRzICkKKyAg ICAgICAgd3JpdGVfbG9jaygmaHlwZnNfbG9jayk7CisgICAgZWxzZQorICAgICAgICByZWFkX2xv Y2soJmh5cGZzX2xvY2spOworCisgICAgcmV0ID0gaHlwZnNfZ2V0X3BhdGhfdXNlcihwYXRoLCBh cmcxLCBhcmcyKTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGdvdG8gb3V0OworCisgICAgZW50 cnkgPSBoeXBmc19nZXRfZW50cnkocGF0aCk7CisgICAgaWYgKCAhZW50cnkgKQorICAgIHsKKyAg ICAgICAgcmV0ID0gLUVOT0VOVDsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgc3dp dGNoICggY21kICkKKyAgICB7CisgICAgY2FzZSBYRU5fSFlQRlNfT1BfcmVhZDoKKyAgICAgICAg cmV0ID0gaHlwZnNfcmVhZChlbnRyeSwgYXJnMywgYXJnNCk7CisgICAgICAgIGJyZWFrOworCisg ICAgY2FzZSBYRU5fSFlQRlNfT1Bfd3JpdGVfY29udGVudHM6CisgICAgICAgIHJldCA9IGh5cGZz X3dyaXRlKGVudHJ5LCBhcmczLCBhcmc0KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0 OgorICAgICAgICByZXQgPSAtRU9QTk9UU1VQUDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisg b3V0OgorICAgIGlmICggY21kID09IFhFTl9IWVBGU19PUF93cml0ZV9jb250ZW50cyApCisgICAg ICAgIHdyaXRlX3VubG9jaygmaHlwZnNfbG9jayk7CisgICAgZWxzZQorICAgICAgICByZWFkX3Vu bG9jaygmaHlwZnNfbG9jayk7CisKKyAgICByZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvTWFrZWZpbGUgYi94ZW4vaW5jbHVkZS9NYWtlZmlsZQppbmRleCBmZGUwY2EwMTMx Li4xNTBjYTM0OGExIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9NYWtlZmlsZQorKysgYi94ZW4v aW5jbHVkZS9NYWtlZmlsZQpAQCAtMTEsNiArMTEsNyBAQCBoZWFkZXJzLXkgOj0gXAogICAgIGNv bXBhdC9ldmVudF9jaGFubmVsLmggXAogICAgIGNvbXBhdC9mZWF0dXJlcy5oIFwKICAgICBjb21w YXQvZ3JhbnRfdGFibGUuaCBcCisgICAgY29tcGF0L2h5cGZzLmggXAogICAgIGNvbXBhdC9rZXhl Yy5oIFwKICAgICBjb21wYXQvbWVtb3J5LmggXAogICAgIGNvbXBhdC9ubWkuaCBcCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHlwZnMuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9oeXBm cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmM5MTcwN2E0OTUKLS0t IC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHlwZnMuaApAQCAtMCwwICsxLDEy NyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogWGVuIEh5cGVydmlzb3IgRmlsZXN5c3Rl bQorICoKKyAqIENvcHlyaWdodCAoYykgMjAxOSwgU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2Vy bWFueSBHbWJICisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRv CisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBT b2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElO R1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19IWVBG U19IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0hZUEZTX0hfXworCisjaW5jbHVkZSAieGVuLmgi CisKKy8qCisgKiBEZWZpbml0aW9ucyBmb3IgdGhlIF9fSFlQRVJWSVNPUl9oeXBmc19vcCBoeXBl cmNhbGwuCisgKi8KKworLyogSGlnaGVzdCB2ZXJzaW9uIG51bWJlciBvZiB0aGUgaHlwZnMgaW50 ZXJmYWNlIGN1cnJlbnRseSBkZWZpbmVkLiAqLworI2RlZmluZSBYRU5fSFlQRlNfVkVSU0lPTiAg ICAgIDEKKworLyogTWF4aW11bSBsZW5ndGggb2YgYSBwYXRoIGluIHRoZSBmaWxlc3lzdGVtLiAq LworI2RlZmluZSBYRU5fSFlQRlNfTUFYX1BBVEhMRU4gIDEwMjQKKworc3RydWN0IHhlbl9oeXBm c19kaXJlbnRyeSB7CisgICAgdWludDE2X3QgZmxhZ3M7CisjZGVmaW5lIFhFTl9IWVBGU19XUklU RUFCTEUgICAgMHgwMDAxCisgICAgdWludDhfdCB0eXBlOworI2RlZmluZSBYRU5fSFlQRlNfVFlQ RV9ESVIgICAgIDAKKyNkZWZpbmUgWEVOX0hZUEZTX1RZUEVfQkxPQiAgICAxCisjZGVmaW5lIFhF Tl9IWVBGU19UWVBFX1NUUklORyAgMgorI2RlZmluZSBYRU5fSFlQRlNfVFlQRV9VSU5UICAgIDMK KyNkZWZpbmUgWEVOX0hZUEZTX1RZUEVfSU5UICAgICA0CisjZGVmaW5lIFhFTl9IWVBGU19UWVBF X0JPT0wgICAgNQorICAgIHVpbnQ4X3QgZW5jb2Rpbmc7CisjZGVmaW5lIFhFTl9IWVBGU19FTkNf UExBSU4gICAgMAorI2RlZmluZSBYRU5fSFlQRlNfRU5DX0daSVAgICAgIDEKKyAgICB1aW50MzJf dCBjb250ZW50X2xlbjsKK307CisKK3N0cnVjdCB4ZW5faHlwZnNfZGlybGlzdGVudHJ5IHsKKyAg ICBzdHJ1Y3QgeGVuX2h5cGZzX2RpcmVudHJ5IGU7CisgICAgLyogT2Zmc2V0IGluIGJ5dGVzIHRv IG5leHQgZW50cnkgKDAgPT0gdGhpcyBpcyB0aGUgbGFzdCBlbnRyeSkuICovCisgICAgdWludDE2 X3Qgb2ZmX25leHQ7CisgICAgLyogWmVybyB0ZXJtaW5hdGVkIGVudHJ5IG5hbWUsIHBvc3NpYmx5 IHdpdGggc29tZSBwYWRkaW5nIGZvciBhbGlnbm1lbnQuICovCisgICAgY2hhciBuYW1lW1hFTl9G TEVYX0FSUkFZX0RJTV07Cit9OworCisvKgorICogSHlwZXJjYWxsIG9wZXJhdGlvbnMuCisgKi8K KworLyoKKyAqIFhFTl9IWVBGU19PUF9nZXRfdmVyc2lvbgorICoKKyAqIFJlYWQgaGlnaGVzdCBp bnRlcmZhY2UgdmVyc2lvbiBzdXBwb3J0ZWQgYnkgdGhlIGh5cGVydmlzb3IuCisgKgorICogUG9z c2libGUgcmV0dXJuIHZhbHVlczoKKyAqID4wOiBoaWdoZXN0IHN1cHBvcnRlZCBpbnRlcmZhY2Ug dmVyc2lvbgorICogPDA6IG5lZ2F0aXZlIFhlbiBlcnJubyB2YWx1ZQorICovCisjZGVmaW5lIFhF Tl9IWVBGU19PUF9nZXRfdmVyc2lvbiAgICAgMAorCisvKgorICogWEVOX0hZUEZTX09QX3JlYWQK KyAqCisgKiBSZWFkIGEgZmlsZXN5c3RlbSBlbnRyeS4KKyAqCisgKiBSZXR1cm5zIHRoZSBkaXJl bnRyeSBhbmQgY29udGVudHMgb2YgYW4gZW50cnkgaW4gdGhlIGJ1ZmZlciBzdXBwbGllZCBieSB0 aGUKKyAqIGNhbGxlciAoc3RydWN0IHhlbl9oeXBmc19kaXJlbnRyeSB3aXRoIHRoZSBjb250ZW50 cyBmb2xsb3dpbmcgZGlyZWN0bHkKKyAqIGFmdGVyIGl0KS4KKyAqIFRoZSBkYXRhIGJ1ZmZlciBt dXN0IGJlIGF0IGxlYXN0IHRoZSBzaXplIG9mIHRoZSBkaXJlbnRyeSByZXR1cm5lZC4gSWYgdGhl CisgKiBkYXRhIGJ1ZmZlciB3YXMgbm90IGxhcmdlIGVub3VnaCBmb3IgYWxsIHRoZSBkYXRhIC1F Tk9CVUZTIGFuZCBubyBlbnRyeQorICogZGF0YSBpcyByZXR1cm5lZCwgYnV0IHRoZSBkaXJlbnRy eSB3aWxsIGNvbnRhaW4gdGhlIG5lZWRlZCBzaXplIGZvciB0aGUKKyAqIHJldHVybmVkIGRhdGEu CisgKiBUaGUgZm9ybWF0IG9mIHRoZSBjb250ZW50cyBpcyBhY2NvcmRpbmcgdG8gaXRzIGVudHJ5 IHR5cGUgYW5kIGVuY29kaW5nLgorICogVGhlIGNvbnRlbnRzIG9mIGEgZGlyZWN0b3J5IGFyZSBt dWx0aXBsZSBzdHJ1Y3QgeGVuX2h5cGZzX2Rpcmxpc3RlbnRyeQorICogaXRlbXMuCisgKgorICog YXJnMTogWEVOX0dVRVNUX0hBTkRMRShwYXRoIG5hbWUpCisgKiBhcmcyOiBsZW5ndGggb2YgcGF0 aCBuYW1lIChpbmNsdWRpbmcgdHJhaWxpbmcgemVybyBieXRlKQorICogYXJnMzogWEVOX0dVRVNU X0hBTkRMRShkYXRhIGJ1ZmZlciB3cml0dGVuIGJ5IGh5cGVydmlzb3IpCisgKiBhcmc0OiBkYXRh IGJ1ZmZlciBzaXplCisgKgorICogUG9zc2libGUgcmV0dXJuIHZhbHVlczoKKyAqIDA6IHN1Y2Nl c3MKKyAqIDwwIDogbmVnYXRpdmUgWGVuIGVycm5vIHZhbHVlCisgKi8KKyNkZWZpbmUgWEVOX0hZ UEZTX09QX3JlYWQgICAgICAgICAgICAgIDEKKworLyoKKyAqIFhFTl9IWVBGU19PUF93cml0ZV9j b250ZW50cworICoKKyAqIFdyaXRlIGNvbnRlbnRzIG9mIGEgZmlsZXN5c3RlbSBlbnRyeS4KKyAq CisgKiBXcml0ZXMgYW4gZW50cnkgd2l0aCB0aGUgY29udGVudHMgb2YgYSBidWZmZXIgc3VwcGxp ZWQgYnkgdGhlIGNhbGxlci4KKyAqIFRoZSBkYXRhIHR5cGUgYW5kIGVuY29kaW5nIGNhbid0IGJl IGNoYW5nZWQuIFRoZSBzaXplIGNhbiBiZSBjaGFuZ2VkIG9ubHkKKyAqIGZvciBibG9icyBhbmQg c3RyaW5ncy4KKyAqCisgKiBhcmcxOiBYRU5fR1VFU1RfSEFORExFKHBhdGggbmFtZSkKKyAqIGFy ZzI6IGxlbmd0aCBvZiBwYXRoIG5hbWUgKGluY2x1ZGluZyB0cmFpbGluZyB6ZXJvIGJ5dGUpCisg KiBhcmczOiBYRU5fR1VFU1RfSEFORExFKGNvbnRlbnQgYnVmZmVyIHJlYWQgYnkgaHlwZXJ2aXNv cikKKyAqIGFyZzQ6IGNvbnRlbnQgYnVmZmVyIHNpemUKKyAqCisgKiBQb3NzaWJsZSByZXR1cm4g dmFsdWVzOgorICogMDogc3VjY2VzcworICogPDAgOiBuZWdhdGl2ZSBYZW4gZXJybm8gdmFsdWUK KyAqLworI2RlZmluZSBYRU5fSFlQRlNfT1Bfd3JpdGVfY29udGVudHMgICAgMgorCisjZW5kaWYg LyogX19YRU5fUFVCTElDX0hZUEZTX0hfXyAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVi bGljL3hlbi5oIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCmluZGV4IDc1YjE2MTlkMGQuLjk0 NWVmMzAyNzMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaAorKysgYi94ZW4v aW5jbHVkZS9wdWJsaWMveGVuLmgKQEAgLTEzMCw2ICsxMzAsNyBAQCBERUZJTkVfWEVOX0dVRVNU X0hBTkRMRSh4ZW5fdWxvbmdfdCk7CiAjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmdvX29wICAgICAg ICAgICAgICAzOQogI2RlZmluZSBfX0hZUEVSVklTT1JfeGVucG11X29wICAgICAgICAgICAgNDAK ICNkZWZpbmUgX19IWVBFUlZJU09SX2RtX29wICAgICAgICAgICAgICAgIDQxCisjZGVmaW5lIF9f SFlQRVJWSVNPUl9oeXBmc19vcCAgICAgICAgICAgICA0MgogCiAvKiBBcmNoaXRlY3R1cmUtc3Bl Y2lmaWMgaHlwZXJjYWxsIGRlZmluaXRpb25zLiAqLwogI2RlZmluZSBfX0hZUEVSVklTT1JfYXJj aF8wICAgICAgICAgICAgICAgNDgKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNh bGwuaCBiL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaAppbmRleCBhZDhhZDI3YjIzLi44MzZh OGIxYmE4IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxsLmgKKysrIGIveGVu L2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oCkBAIC0xNTAsNiArMTUwLDE0IEBAIGRvX2RtX29wKAog ICAgIHVuc2lnbmVkIGludCBucl9idWZzLAogICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVu X2RtX29wX2J1Zl90KSBidWZzKTsKIAorZXh0ZXJuIGxvbmcKK2RvX2h5cGZzX29wKAorICAgIHVu c2lnbmVkIGludCBjbWQsCisgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShjb25zdF9jaGFyKSBh cmcxLAorICAgIHVuc2lnbmVkIGxvbmcgYXJnMiwKKyAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFN KHZvaWQpIGFyZzMsCisgICAgdW5zaWduZWQgbG9uZyBhcmc0KTsKKwogI2lmZGVmIENPTkZJR19D T01QQVQKIAogZXh0ZXJuIGludApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2h5cGZzLmgg Yi94ZW4vaW5jbHVkZS94ZW4vaHlwZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi45ZWNjOTA2MGEzCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUveGVuL2h5 cGZzLmgKQEAgLTAsMCArMSwxMDMgQEAKKyNpZm5kZWYgX19YRU5fSFlQRlNfSF9fCisjZGVmaW5l IF9fWEVOX0hZUEZTX0hfXworCisjaW5jbHVkZSA8eGVuL2xpc3QuaD4KKyNpbmNsdWRlIDx4ZW4v c3RyaW5nLmg+CisjaW5jbHVkZSA8cHVibGljL2h5cGZzLmg+CisKK3N0cnVjdCBoeXBmc19lbnRy eV9sZWFmOworCitzdHJ1Y3QgaHlwZnNfZW50cnkgeworICAgIHVuc2lnbmVkIHNob3J0IHR5cGU7 CisgICAgdW5zaWduZWQgc2hvcnQgZW5jb2Rpbmc7CisgICAgdW5zaWduZWQgaW50IHNpemU7Cisg ICAgY29uc3QgY2hhciAqbmFtZTsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisgICAgaW50 ICgqcmVhZCkoY29uc3Qgc3RydWN0IGh5cGZzX2VudHJ5ICplbnRyeSwKKyAgICAgICAgICAgICAg ICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIHVhZGRyKTsKKyAgICBpbnQgKCp3cml0ZSko c3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmxlYWYsCisgICAgICAgICAgICAgICAgIFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0odm9pZCkgdWFkZHIsIHVuc2lnbmVkIGxvbmcgdWxlbik7Cit9OworCitz dHJ1Y3QgaHlwZnNfZW50cnlfbGVhZiB7CisgICAgc3RydWN0IGh5cGZzX2VudHJ5IGU7CisgICAg dW5pb24geworICAgICAgICBjb25zdCB2b2lkICpjb250ZW50OworICAgICAgICB2b2lkICp3cml0 ZV9wdHI7CisgICAgfTsKK307CisKK3N0cnVjdCBoeXBmc19lbnRyeV9kaXIgeworICAgIHN0cnVj dCBoeXBmc19lbnRyeSBlOworICAgIHN0cnVjdCBsaXN0X2hlYWQgZGlybGlzdDsKK307CisKKyNk ZWZpbmUgSFlQRlNfRElSX0lOSVQodmFyLCBuYW0pICAgICAgICAgICAgICAgICAgXAorICAgIHN0 cnVjdCBoeXBmc19lbnRyeV9kaXIgX19yZWFkX21vc3RseSB2YXIgPSB7ICBcCisgICAgICAgIC5l LnR5cGUgPSBYRU5fSFlQRlNfVFlQRV9ESVIsICAgICAgICAgICAgIFwKKyAgICAgICAgLmUuZW5j b2RpbmcgPSBYRU5fSFlQRlNfRU5DX1BMQUlOLCAgICAgICAgXAorICAgICAgICAuZS5uYW1lID0g bmFtLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC5lLnNpemUgPSAwLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLmUubGlzdCA9IExJU1RfSEVB RF9JTklUKHZhci5lLmxpc3QpLCAgICAgXAorICAgICAgICAuZS5yZWFkID0gaHlwZnNfcmVhZF9k aXIsICAgICAgICAgICAgICAgICBcCisgICAgICAgIC5kaXJsaXN0ID0gTElTVF9IRUFEX0lOSVQo dmFyLmRpcmxpc3QpLCAgIFwKKyAgICB9CisKKy8qIENvbnRlbnQgYW5kIHNpemUgbmVlZCB0byBi ZSBzZXQgdmlhIGh5cGZzX3N0cmluZ19zZXRfcmVmZXJlbmNlKCkuICovCisjZGVmaW5lIEhZUEZT X1NUUklOR19JTklUKHZhciwgbmFtKSAgICAgICAgICAgICAgIFwKKyAgICBzdHJ1Y3QgaHlwZnNf ZW50cnlfbGVhZiBfX3JlYWRfbW9zdGx5IHZhciA9IHsgXAorICAgICAgICAuZS50eXBlID0gWEVO X0hZUEZTX1RZUEVfU1RSSU5HLCAgICAgICAgICBcCisgICAgICAgIC5lLmVuY29kaW5nID0gWEVO X0hZUEZTX0VOQ19QTEFJTiwgICAgICAgIFwKKyAgICAgICAgLmUubmFtZSA9IG5hbSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAuZS5yZWFkID0gaHlwZnNfcmVhZF9sZWFm LCAgICAgICAgICAgICAgICBcCisgICAgfQorCisvKgorICogU2V0IGNvbnRlbnQgYW5kIHNpemUg b2YgYSBYRU5fSFlQRlNfVFlQRV9TVFJJTkcgbm9kZS4gVGhlIG5vZGUgd2lsbCBwb2ludAorICog dG8gc3RyLCBzbyBhbnkgbGF0ZXIgbW9kaWZpY2F0aW9uIG9mICpzdHIgc2hvdWxkIGJlIGZvbGxv d2VkIGJ5IGEgY2FsbAorICogdG8gaHlwZnNfc3RyaW5nX3NldF9yZWZlcmVuY2UoKSBpbiBvcmRl ciB0byB1cGRhdGUgdGhlIHNpemUgb2YgdGhlIG5vZGUKKyAqIGRhdGEuCisgKi8KK3N0YXRpYyBp bmxpbmUgdm9pZCBoeXBmc19zdHJpbmdfc2V0X3JlZmVyZW5jZShzdHJ1Y3QgaHlwZnNfZW50cnlf bGVhZiAqbGVhZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpzdHIpCit7CisgICAgbGVhZi0+Y29udGVudCA9IHN0cjsKKyAgICBsZWFm LT5lLnNpemUgPSBzdHJsZW4oc3RyKSArIDE7Cit9CisKKyNkZWZpbmUgSFlQRlNfRklYRURTSVpF X0lOSVQodmFyLCB0eXAsIG5hbSwgY29udHZhcikgXAorICAgIHN0cnVjdCBoeXBmc19lbnRyeV9s ZWFmIF9fcmVhZF9tb3N0bHkgdmFyID0geyAgICBcCisgICAgICAgIC5lLnR5cGUgPSB0eXAsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLmUuZW5jb2RpbmcgPSBYRU5f SFlQRlNfRU5DX1BMQUlOLCAgICAgICAgICAgXAorICAgICAgICAuZS5uYW1lID0gbmFtLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC5lLnNpemUgPSBzaXplb2YoY29u dHZhciksICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLmUucmVhZCA9IGh5cGZzX3JlYWRf bGVhZiwgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAuY29udGVudCA9ICZjb250dmFyLCAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCisjZGVmaW5lIEhZUEZTX1VJTlRfSU5J VCh2YXIsIG5hbSwgY29udHZhcikgICAgICAgIFwKKyAgICBIWVBGU19GSVhFRFNJWkVfSU5JVCh2 YXIsIFhFTl9IWVBGU19UWVBFX1VJTlQsIG5hbSwgY29udHZhcikKKworI2RlZmluZSBIWVBGU19J TlRfSU5JVCh2YXIsIG5hbSwgY29udHZhcikgICAgICAgICBcCisgICAgSFlQRlNfRklYRURTSVpF X0lOSVQodmFyLCBYRU5fSFlQRlNfVFlQRV9JTlQsIG5hbSwgY29udHZhcikKKworI2RlZmluZSBI WVBGU19CT09MX0lOSVQodmFyLCBuYW0sIGNvbnR2YXIpICAgICAgICBcCisgICAgSFlQRlNfRklY RURTSVpFX0lOSVQodmFyLCBYRU5fSFlQRlNfVFlQRV9CT09MLCBuYW0sIGNvbnR2YXIpCisKK2V4 dGVybiBzdHJ1Y3QgaHlwZnNfZW50cnlfZGlyIGh5cGZzX3Jvb3Q7CisKK3N0cnVjdCBoeXBmc19l bnRyeSAqaHlwZnNfZ2V0X2VudHJ5KGNvbnN0IGNoYXIgKnBhdGgpOworaW50IGh5cGZzX2FkZF9k aXIoc3RydWN0IGh5cGZzX2VudHJ5X2RpciAqcGFyZW50LAorICAgICAgICAgICAgICAgICAgc3Ry dWN0IGh5cGZzX2VudHJ5X2RpciAqZGlyLCBib29sIG5vZmF1bHQpOworaW50IGh5cGZzX2FkZF9s ZWFmKHN0cnVjdCBoeXBmc19lbnRyeV9kaXIgKnBhcmVudCwKKyAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgaHlwZnNfZW50cnlfbGVhZiAqbGVhZiwgYm9vbCBub2ZhdWx0KTsKK2ludCBoeXBmc19y ZWFkX2Rpcihjb25zdCBzdHJ1Y3QgaHlwZnNfZW50cnkgKmVudHJ5LAorICAgICAgICAgICAgICAg ICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgdWFkZHIpOworaW50IGh5cGZzX3JlYWRf bGVhZihjb25zdCBzdHJ1Y3QgaHlwZnNfZW50cnkgKmVudHJ5LAorICAgICAgICAgICAgICAgICAg ICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIHVhZGRyKTsKK2ludCBoeXBmc193cml0ZV9s ZWFmKHN0cnVjdCBoeXBmc19lbnRyeV9sZWFmICpsZWFmLAorICAgICAgICAgICAgICAgICAgICAg WEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSB1YWRkciwgdW5zaWduZWQgbG9uZyB1bGVuKTsK K2ludCBoeXBmc193cml0ZV9ib29sKHN0cnVjdCBoeXBmc19lbnRyeV9sZWFmICpsZWFmLAorICAg ICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSB1YWRkciwgdW5z aWduZWQgbG9uZyB1bGVuKTsKKworI2VuZGlmIC8qIF9fWEVOX0hZUEZTX0hfXyAqLwpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveGxhdC5sc3QgYi94ZW4vaW5jbHVkZS94bGF0LmxzdAppbmRleCA5 NWY1ZTU1OTJiLi4wOTIxZDRhOGQwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94bGF0LmxzdAor KysgYi94ZW4vaW5jbHVkZS94bGF0LmxzdApAQCAtODYsNiArODYsOCBAQAogPwl2Y3B1X2h2bV9j b250ZXh0CQlodm0vaHZtX3ZjcHUuaAogPwl2Y3B1X2h2bV94ODZfMzIJCQlodm0vaHZtX3ZjcHUu aAogPwl2Y3B1X2h2bV94ODZfNjQJCQlodm0vaHZtX3ZjcHUuaAorPwloeXBmc19kaXJlbnRyeQkJ CWh5cGZzLmgKKz8JaHlwZnNfZGlybGlzdGVudHJ5CQloeXBmcy5oCiA/CWtleGVjX2V4ZWMJCQlr ZXhlYy5oCiAhCWtleGVjX2ltYWdlCQkJa2V4ZWMuaAogIQlrZXhlY19yYW5nZQkJCWtleGVjLmgK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oIGIveGVuL2luY2x1ZGUveHNtL2R1 bW15LmgKaW5kZXggYjhlMTg1ZTZmYS4uNjhiNWJmOGY4ZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUveHNtL2R1bW15LmgKKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKQEAgLTQzMyw2ICs0 MzMsMTIgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV9wYWdlX29mZmxpbmUoWFNNX0RFRkFV TFRfQVJHIHVpbnQzMl90IGNtZCkKICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlv biwgY3VycmVudC0+ZG9tYWluLCBOVUxMKTsKIH0KIAorc3RhdGljIFhTTV9JTkxJTkUgaW50IHhz bV9oeXBmc19vcChYU01fREVGQVVMVF9WT0lEKQoreworICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhT TV9QUklWKTsKKyAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ ZG9tYWluLCBOVUxMKTsKK30KKwogc3RhdGljIFhTTV9JTkxJTkUgbG9uZyB4c21fZG9feHNtX29w KFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeHNtX29wX3QpIG9wKQogewogICAgIHJldHVybiAtRU5P U1lTOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveHNtL3hzbS5oIGIveGVuL2luY2x1ZGUveHNt L3hzbS5oCmluZGV4IGUyMmQ2MTYwYjUuLmE4MGJjZjNlNDIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3hzbS94c20uaAorKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKQEAgLTEyNyw2ICsxMjcs NyBAQCBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgewogICAgIGludCAoKnJlc291cmNlX3NldHVwX21p c2MpICh2b2lkKTsKIAogICAgIGludCAoKnBhZ2Vfb2ZmbGluZSkodWludDMyX3QgY21kKTsKKyAg ICBpbnQgKCpoeXBmc19vcCkodm9pZCk7CiAKICAgICBsb25nICgqZG9feHNtX29wKSAoWEVOX0dV RVNUX0hBTkRMRV9QQVJBTSh4c21fb3BfdCkgb3ApOwogI2lmZGVmIENPTkZJR19DT01QQVQKQEAg LTUzNiw2ICs1MzcsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3BhZ2Vfb2ZmbGluZSh4c21f ZGVmYXVsdF90IGRlZiwgdWludDMyX3QgY21kKQogICAgIHJldHVybiB4c21fb3BzLT5wYWdlX29m ZmxpbmUoY21kKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgeHNtX2h5cGZzX29wKHhzbV9kZWZh dWx0X3QgZGVmKQoreworICAgIHJldHVybiB4c21fb3BzLT5oeXBmc19vcCgpOworfQorCiBzdGF0 aWMgaW5saW5lIGxvbmcgeHNtX2RvX3hzbV9vcCAoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4c21f b3BfdCkgb3ApCiB7CiAgICAgcmV0dXJuIHhzbV9vcHMtPmRvX3hzbV9vcChvcCk7CmRpZmYgLS1n aXQgYS94ZW4veHNtL2R1bW15LmMgYi94ZW4veHNtL2R1bW15LmMKaW5kZXggNTcwNWU1Mjc5MS4u ZDRjY2U2ODA4OSAxMDA2NDQKLS0tIGEveGVuL3hzbS9kdW1teS5jCisrKyBiL3hlbi94c20vZHVt bXkuYwpAQCAtMTAzLDYgKzEwMyw3IEBAIHZvaWQgX19pbml0IHhzbV9maXh1cF9vcHMgKHN0cnVj dCB4c21fb3BlcmF0aW9ucyAqb3BzKQogICAgIHNldF90b19kdW1teV9pZl9udWxsKG9wcywgcmVz b3VyY2Vfc2V0dXBfbWlzYyk7CiAKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHBhZ2Vf b2ZmbGluZSk7CisgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBoeXBmc19vcCk7CiAgICAg c2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBodm1fcGFyYW0pOwogICAgIHNldF90b19kdW1teV9p Zl9udWxsKG9wcywgaHZtX2NvbnRyb2wpOwogICAgIHNldF90b19kdW1teV9pZl9udWxsKG9wcywg aHZtX3BhcmFtX25lc3RlZCk7CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMgYi94 ZW4veHNtL2ZsYXNrL2hvb2tzLmMKaW5kZXggY2Y3ZjI1Y2RhMi4uZTI1NzMyODkyOCAxMDA2NDQK LS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCisrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYwpA QCAtMTE3Miw2ICsxMTcyLDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IGZsYXNrX3BhZ2Vfb2ZmbGlu ZSh1aW50MzJfdCBjbWQpCiAgICAgfQogfQogCitzdGF0aWMgaW5saW5lIGludCBmbGFza19oeXBm c19vcCh2b2lkKQoreworICAgIHJldHVybiBkb21haW5faGFzX3hlbihjdXJyZW50LT5kb21haW4s IFhFTl9fSFlQRlNfT1ApOworfQorCiBzdGF0aWMgaW50IGZsYXNrX2FkZF90b19waHlzbWFwKHN0 cnVjdCBkb21haW4gKmQxLCBzdHJ1Y3QgZG9tYWluICpkMikKIHsKICAgICByZXR1cm4gZG9tYWlu X2hhc19wZXJtKGQxLCBkMiwgU0VDQ0xBU1NfTU1VLCBNTVVfX1BIWVNNQVApOwpAQCAtMTgxMSw2 ICsxODE2LDcgQEAgc3RhdGljIHN0cnVjdCB4c21fb3BlcmF0aW9ucyBmbGFza19vcHMgPSB7CiAg ICAgLnJlc291cmNlX3NldHVwX21pc2MgPSBmbGFza19yZXNvdXJjZV9zZXR1cF9taXNjLAogCiAg ICAgLnBhZ2Vfb2ZmbGluZSA9IGZsYXNrX3BhZ2Vfb2ZmbGluZSwKKyAgICAuaHlwZnNfb3AgPSBm bGFza19oeXBmc19vcCwKICAgICAuaHZtX3BhcmFtID0gZmxhc2tfaHZtX3BhcmFtLAogICAgIC5o dm1fY29udHJvbCA9IGZsYXNrX2h2bV9wYXJhbSwKICAgICAuaHZtX3BhcmFtX25lc3RlZCA9IGZs YXNrX2h2bV9wYXJhbV9uZXN0ZWQsCmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9h Y2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmluZGV4 IGMwNTVjMTRjMjYuLmM5ZTM4NWZiOWIgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5 L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3Jz CkBAIC02Nyw2ICs2Nyw4IEBAIGNsYXNzIHhlbgogICAgIGxvY2twcm9mCiAjIFhFTl9TWVNDVExf Y3B1cG9vbF9vcAogICAgIGNwdXBvb2xfb3AKKyMgaHlwZnMgaHlwZXJjYWxsCisgICAgaHlwZnNf b3AKICMgWEVOX1NZU0NUTF9zY2hlZHVsZXJfb3Agd2l0aCBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0 aW5mbywgWEVOX1NZU0NUTF9zY2hlZF9pZCwgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZv CiAgICAgZ2V0c2NoZWR1bGVyCiAjIFhFTl9TWVNDVExfc2NoZWR1bGVyX29wIHdpdGggWEVOX0RP TUNUTF9TQ0hFRE9QX3B1dGluZm8sIFhFTl9ET01DVExfU0NIRURPUF9wdXR2Y3B1aW5mbwotLSAK Mi4xNi40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==