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 Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 44CE9C61DBD for ; Thu, 27 Aug 2026 03:08:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type:Cc: Reply-To:From:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:In-Reply-To:References:To:MIME-Version:Date: Message-ID:Sender:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=dz5Hhb5yVzGJN1PJUrml6nMDGRTc4EeF+tBiEOrErMo=; b=VQs+q7nHsYvi/QTf0CBOmHMra3 2Y+VDoZnq6sohihceT/2LBdVEkiUohnnBS2DEkbayDfwHnrY1BJadU5SnznE5jAm3JcxVFWSz4RVR AO2TnHHOFjuVS7LGFt42getE1v/bDrmYrLVhQAzm6YPYLLebigw0xseSZJO8uSv3x7Qo=; Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com) by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1wzQTx-0000op-VP; Thu, 27 Aug 2026 03:08:49 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1wzQTR-0000oS-9c for linux-f2fs-devel@lists.sourceforge.net; Thu, 27 Aug 2026 03:08:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: From:References:To:Subject:Cc:MIME-Version:Date:Message-ID:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=XetceTpT3LyTyXf7UMb0oO55h/n0JM73TW/kNzq/hjI=; b=lxl2fkx/P1R4GuKw8Pku5xhF5Z 5fYzjDfTZoWjzcyUOtXBwxXXoihYUN8ZCX7G+N7AOCuW3IYFCzfmmvsfVmS5IgV2QkRbFPAiBryuc Kx6nP7MPiolDMr3tYNHi64LT4E8KrbqPj6UWv8tOf0kG2AAtunzXzvLPbdNlWdeIoCj0=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:References:To: Subject:Cc:MIME-Version:Date:Message-ID:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=XetceTpT3LyTyXf7UMb0oO55h/n0JM73TW/kNzq/hjI=; b=Gq5qXfCt6r8cIZPIB2iGh0+XdO cyxvU7VyUS+n87A2n8pJLIjMko/xYQtUxz7mVnHeno8UzsMBofb1Q+QKHUa8aSSlQM25G9PPGOGI9 PgYT+1ZHnicVSopbitn9oZX1eIE1j1QAyvK1p87cqsd1PfOQtZSFJhB6Tld94sLNXtSE=; Received: from tor.source.kernel.org ([172.105.4.254]) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1wzQTP-0002ms-RF for linux-f2fs-devel@lists.sourceforge.net; Thu, 27 Aug 2026 03:08:17 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id CC4B660051; Thu, 27 Aug 2026 03:08:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 794BA1F000E9; Thu, 27 Aug 2026 03:08:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1787800089; bh=XetceTpT3LyTyXf7UMb0oO55h/n0JM73TW/kNzq/hjI=; h=Date:Cc:Subject:To:References:From:In-Reply-To; b=DI4Q7yG38yXZEwXrc2z8aN6NhsxZull7QP3hFrJht3Xv3UEeDnIZ+F1gLB8m1eaaB S/w/proLjyw70QOqEKppiC+bEkqZ833PR8EdM4BIb+ilfGdX9SsEr4c6l1wyeJroqO ccmqo/Djuccsv79UrI14HAWPqduEOt21B7GiGFq4dBCAcBZywkOldKiLfzdYPObdmN QlBwxvCPNYHyD2DG5VWBPGMJOCVTTrJSD4lTxRPzhx1huCY+EKMiX3FEqRJiTwex6z +aJkvQNgmII46GhzIWGBW6fDu6ywbOl5YVls9RJ41KGKE08M/pRdrdEXv+HBysHMko 2GB2e0uNGkKRw== Message-ID: <18859958-147c-4703-9070-d79601ab6831@kernel.org> Date: Thu, 27 Aug 2026 11:08:06 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Daeho Jeong References: <20260825130126.2078627-1-chao@kernel.org> <20260825130126.2078627-10-chao@kernel.org> Content-Language: en-US In-Reply-To: X-Headers-End: 1wzQTP-0002ms-RF Subject: Re: [f2fs-dev] [PATCH v3 09/12] f2fs: cache: use compress cache X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Chao Yu via Linux-f2fs-devel Reply-To: Chao Yu Cc: jaegeuk@kernel.org, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net T24gOC8yNy8yNiAwNDowNCwgRGFlaG8gSmVvbmcgd3JvdGU6Cj4gT24gVHVlLCBBdWcgMjUsIDIw MjYgYXQgNjowM+KAr0FNIENoYW8gWXUgdmlhIExpbnV4LWYyZnMtZGV2ZWwKPiA8bGludXgtZjJm cy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+IHdyb3RlOgo+Pgo+PiBUaGlzIHBhdGNoIG1p Z3JhdGVzIGNvbXByZXNzZWQgY2x1c3RlciBjYWNoaW5nIGZyb20gdGhlIGZha2UgVkZTIGlub2Rl Cj4+IHBhZ2UgY2FjaGUgKHNiaS0+Y29tcHJlc3NfaW5vZGUpIHRvIGNvbXByZXNzIGNhY2hlIChz YmktPmNvbXByZXNzX2Jsb2NrcykuCj4+Cj4+IEl0IGNvbnZlcnRzIGNvbXByZXNzaW9uIGNhY2hp bmcgYW5kIGRlY29tcHJlc3Npb24gcGF0aHMgdG8gdXNlCj4+IGNvbXByZXNzIGNhY2hlIEFQSXMs IHVzZXMgZW50cnktPmlubyBmb3IgcGVyLWlub2RlIGludmFsaWRhdGlvbiwgYW5kCj4+IHJlbW92 ZXMgc2JpLT5jb21wcmVzc19pbm9kZS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogQ2hhbyBZdSA8Y2hh b0BrZXJuZWwub3JnPgo+PiAtLS0KPj4gIGZzL2YyZnMvY2FjaGUuYyAgICAgICAgIHwgIDE0ICsr LS0KPj4gIGZzL2YyZnMvY2FjaGUuaCAgICAgICAgIHwgICAxICsKPj4gIGZzL2YyZnMvY29tcHJl c3MuYyAgICAgIHwgMTU4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Pj4gIGZzL2YyZnMvZGVidWcuYyAgICAgICAgIHwgICA5ICsrLQo+PiAgZnMvZjJmcy9mMmZzLmgg ICAgICAgICAgfCAgIDggKy0KPj4gIGZzL2YyZnMvaW5vZGUuYyAgICAgICAgIHwgIDQ5ICstLS0t LS0tLS0tLS0KPj4gIGZzL2YyZnMvbm9kZS5jICAgICAgICAgIHwgICAyICstCj4+ICBmcy9mMmZz L3Nocmlua2VyLmMgICAgICB8ICAgMyArLQo+PiAgZnMvZjJmcy9zdXBlci5jICAgICAgICAgfCAg MTUgKystLQo+PiAgaW5jbHVkZS9saW51eC9mMmZzX2ZzLmggfCAgIDEgLQo+PiAgMTAgZmlsZXMg Y2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgMTYyIGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0t Z2l0IGEvZnMvZjJmcy9jYWNoZS5jIGIvZnMvZjJmcy9jYWNoZS5jCj4+IGluZGV4IDg0MzExODBi YjFmOC4uNWI5MDU1YWQ0OWI5IDEwMDY0NAo+PiAtLS0gYS9mcy9mMmZzL2NhY2hlLmMKPj4gKysr IGIvZnMvZjJmcy9jYWNoZS5jCj4+IEBAIC00MTcsMTMgKzQxNywxMiBAQCBzdGF0aWMgdm9pZCBm MmZzX2RvX3RydW5jYXRlX2NhY2hlKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9jayAqZW50cnksCj4+ ICAgICAgICAgc3Bpbl91bmxvY2soJmNhY2hlLT5saXN0X2xvY2spOwo+PiAgfQo+Pgo+PiAtc3Rh dGljIHZvaWQgZjJmc190cnVuY2F0ZV9jYWNoZShzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2sgKmVu dHJ5LAo+PiArdm9pZCBmMmZzX3RydW5jYXRlX2NhY2hlKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9j ayAqZW50cnksCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IGRyb3BfZGlydHkpCj4gCj4gLT4gX19mMmZzX3RydW5jYXRlX2NhY2hlKCkgd2l0aG91dCBsb2Nr aW5nPwo+IAo+PiAgewo+PiAtICAgICAgIGYyZnNfbG9ja19jYWNoZShlbnRyeSk7Cj4+IC0gICAg ICAgaWYgKGVudHJ5LT5jYWNoZSkKPj4gLSAgICAgICAgICAgICAgIGYyZnNfZG9fdHJ1bmNhdGVf Y2FjaGUoZW50cnksIGRyb3BfZGlydHkpOwo+PiAtICAgICAgIGYyZnNfdW5sb2NrX2NhY2hlKGVu dHJ5KTsKPj4gKyAgICAgICBpZiAoIWVudHJ5LT5jYWNoZSkKPj4gKyAgICAgICAgICAgICAgIHJl dHVybjsKPj4gKyAgICAgICBmMmZzX2RvX3RydW5jYXRlX2NhY2hlKGVudHJ5LCBkcm9wX2RpcnR5 KTsKPj4gIH0KPj4KPj4gIHN0YXRpYyB2b2lkIGYyZnNfZHJvcF9jYWNoZShzdHJ1Y3QgZjJmc19j YWNoZWRfYmxvY2tfbGlzdCAqY2FjaGUsCj4+IEBAIC00MzUsOCArNDM0LDkgQEAgc3RhdGljIHZv aWQgZjJmc19kcm9wX2NhY2hlKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9ja19saXN0ICpjYWNoZSwK Pj4gICAgICAgICBpZiAoSVNfRVJSKGVudHJ5KSkKPj4gICAgICAgICAgICAgICAgIHJldHVybjsK Pj4KPj4gKyAgICAgICBmMmZzX2xvY2tfY2FjaGUoZW50cnkpOwo+PiAgICAgICAgIGYyZnNfdHJ1 bmNhdGVfY2FjaGUoZW50cnksIGRyb3BfZGlydHkpOwo+PiAtICAgICAgIGYyZnNfcHV0X2NhY2hl KGVudHJ5LCBmYWxzZSk7Cj4+ICsgICAgICAgZjJmc19wdXRfY2FjaGUoZW50cnksIHRydWUpOwo+ PiAgfQo+Pgo+PiAgdm9pZCBmMmZzX2Ryb3BfY2FjaGVfcmFuZ2Uoc3RydWN0IGYyZnNfY2FjaGVk X2Jsb2NrX2xpc3QgKmNhY2hlLAo+PiBAQCAtNDc4LDcgKzQ3OCw5IEBAIHZvaWQgZjJmc19kcm9w X2NhY2hlX3JhbmdlKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9ja19saXN0ICpjYWNoZSwKPj4KPj4g ICAgICAgICAgICAgICAgIGluZGV4ID0gZW50cnktPmluZGV4ICsgMTsKPj4KPj4gKyAgICAgICAg ICAgICAgIGYyZnNfbG9ja19jYWNoZShlbnRyeSk7Cj4+ICAgICAgICAgICAgICAgICBmMmZzX3Ry dW5jYXRlX2NhY2hlKGVudHJ5LCBkcm9wX2RpcnR5KTsKPj4gKyAgICAgICAgICAgICAgIGYyZnNf dW5sb2NrX2NhY2hlKGVudHJ5KTsKPj4gICAgICAgICB9Cj4+ICAgICAgICAgZjJmc19jYWNoZV9n YW5nX3JlbGVhc2UoZW50cmllcywgbnIpOwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9jYWNo ZS5oIGIvZnMvZjJmcy9jYWNoZS5oCj4+IGluZGV4IGI4N2ZlYjNlYjg5Ni4uYjY2ZGJhZWZlZTJm IDEwMDY0NAo+PiAtLS0gYS9mcy9mMmZzL2NhY2hlLmgKPj4gKysrIGIvZnMvZjJmcy9jYWNoZS5o Cj4+IEBAIC0xNjgsNiArMTY4LDcgQEAgdW5zaWduZWQgaW50IGYyZnNfY2FjaGVfZ2FuZ19sb29r dXBfdGFnKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9ja19saXN0ICpjYWNoZSwKPj4gICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBtYXhfaXRlbXMsIGludCB0YWcpOwo+PiAgdm9pZCBmMmZzX2Nh Y2hlX2dhbmdfcmVsZWFzZShzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2sgKiplbnRyaWVzLAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9lbnRyaWVzKTsK Pj4gK3ZvaWQgZjJmc190cnVuY2F0ZV9jYWNoZShzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2sgKmVu dHJ5LCBib29sIGRyb3BfZGlydHkpOwo+PiAgaW50IGYyZnNfd3JpdGViYWNrX2NhY2hlKHN0cnVj dCBmMmZzX2NhY2hlZF9ibG9ja19saXN0ICpjYWNoZSwgYm9vbCBzeW5jKTsKPj4gIHZvaWQgZjJm c19jYWNoZV93YWl0X29uX2FsbF93cml0ZWJhY2soc3RydWN0IGYyZnNfY2FjaGVkX2Jsb2NrX2xp c3QgKmNhY2hlKTsKPj4gIHZvaWQgZjJmc19jYWNoZV93YWl0X3dyaXRlYmFja19jb25kKHN0cnVj dCBmMmZzX2NhY2hlZF9ibG9jayAqZW50cnksCj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2NvbXBy ZXNzLmMgYi9mcy9mMmZzL2NvbXByZXNzLmMKPj4gaW5kZXggNjc2YTU1NTkzNTdmLi4xNTViZTNh M2QyMDMgMTAwNjQ0Cj4+IC0tLSBhL2ZzL2YyZnMvY29tcHJlc3MuYwo+PiArKysgYi9mcy9mMmZz L2NvbXByZXNzLmMKPj4gQEAgLTE5MTgsMzAgKzE5MTgsMTkgQEAgdW5zaWduZWQgaW50IGYyZnNf Y2x1c3Rlcl9ibG9ja3NfYXJlX2NvbnRpZ3VvdXMoc3RydWN0IGRub2RlX29mX2RhdGEgKmRuLAo+ PiAgICAgICAgIHJldHVybiBjb21wcmVzc2VkID8gaSAtIDEgOiBpOwo+PiAgfQo+Pgo+PiAtY29u c3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBmMmZzX2NvbXByZXNzX2FvcHMgPSB7 Cj4+IC0gICAgICAgLnJlbGVhc2VfZm9saW8gPSBmMmZzX3JlbGVhc2VfZm9saW8sCj4+IC0gICAg ICAgLmludmFsaWRhdGVfZm9saW8gPSBmMmZzX2ludmFsaWRhdGVfZm9saW8sCj4+IC0gICAgICAg Lm1pZ3JhdGVfZm9saW8gID0gZmlsZW1hcF9taWdyYXRlX2ZvbGlvLAo+PiAtfTsKPj4gLQo+PiAt c3RydWN0IGFkZHJlc3Nfc3BhY2UgKkNPTVBSRVNTX01BUFBJTkcoc3RydWN0IGYyZnNfc2JfaW5m byAqc2JpKQo+PiAtewo+PiAtICAgICAgIHJldHVybiBzYmktPmNvbXByZXNzX2lub2RlLT5pX21h cHBpbmc7Cj4+IC19Cj4+IC0KPj4gIHZvaWQgZjJmc19pbnZhbGlkYXRlX2NvbXByZXNzX3BhZ2Vz X3JhbmdlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBibG9ja190IGJsa2FkZHIsIHVuc2lnbmVkIGludCBsZW4pCj4+ICB7Cj4+IC0g ICAgICAgaWYgKCFzYmktPmNvbXByZXNzX2lub2RlKQo+PiArICAgICAgIGlmICghdGVzdF9vcHQo c2JpLCBDT01QUkVTU19DQUNIRSkpCj4+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4+IC0gICAg ICAgaW52YWxpZGF0ZV9tYXBwaW5nX3BhZ2VzKENPTVBSRVNTX01BUFBJTkcoc2JpKSwgYmxrYWRk ciwgYmxrYWRkciArIGxlbiAtIDEpOwo+PiArCj4+ICsgICAgICAgZjJmc19kcm9wX2NhY2hlX3Jh bmdlKENPTVBSRVNTX0NBQ0hFKHNiaSksIGJsa2FkZHIsIGxlbiwgZmFsc2UpOwo+PiAgfQo+Pgo+ PiAgc3RhdGljIHZvaWQgZjJmc19jYWNoZV9jb21wcmVzc2VkX3BhZ2Uoc3RydWN0IGYyZnNfc2Jf aW5mbyAqc2JpLAo+PiAgICAgICAgICAgICAgICAgc3RydWN0IGZvbGlvICpmb2xpbywgbmlkX3Qg aW5vLCBibG9ja190IGJsa2FkZHIpCj4+ICB7Cj4+IC0gICAgICAgc3RydWN0IGZvbGlvICpjZm9s aW87Cj4+IC0gICAgICAgaW50IHJldDsKPj4gKyAgICAgICBzdHJ1Y3QgZjJmc19jYWNoZWRfYmxv Y2sgKmVudHJ5Owo+Pgo+PiAgICAgICAgIGlmICghdGVzdF9vcHQoc2JpLCBDT01QUkVTU19DQUNI RSkpCj4+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4+IEBAIC0xOTUyLDQ5ICsxOTQxLDQzIEBA IHN0YXRpYyB2b2lkIGYyZnNfY2FjaGVfY29tcHJlc3NlZF9wYWdlKHN0cnVjdCBmMmZzX3NiX2lu Zm8gKnNiaSwKPj4gICAgICAgICBpZiAoIWYyZnNfYXZhaWxhYmxlX2ZyZWVfbWVtb3J5KHNiaSwg Q09NUFJFU1NfUEFHRSkpCj4+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4+Cj4+IC0gICAgICAg Y2ZvbGlvID0gZmlsZW1hcF9nZXRfZm9saW8oQ09NUFJFU1NfTUFQUElORyhzYmkpLCBibGthZGRy KTsKPj4gLSAgICAgICBpZiAoIUlTX0VSUihjZm9saW8pKSB7Cj4+IC0gICAgICAgICAgICAgICBm MmZzX2ZvbGlvX3B1dChjZm9saW8sIGZhbHNlKTsKPj4gKyAgICAgICBlbnRyeSA9IGYyZnNfZmlu ZF9jYWNoZShDT01QUkVTU19DQUNIRShzYmkpLCBibGthZGRyKTsKPj4gKyAgICAgICBpZiAoIUlT X0VSUihlbnRyeSkpIHsKPj4gKyAgICAgICAgICAgICAgIGYyZnNfcHV0X2NhY2hlKGVudHJ5LCBm YWxzZSk7Cj4+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4+ICAgICAgICAgfQo+Pgo+PiAtICAg ICAgIGNmb2xpbyA9IGZpbGVtYXBfYWxsb2NfZm9saW8oX19HRlBfTk9XQVJOIHwgX19HRlBfSU8s IDAsIE5VTEwpOwo+PiAtICAgICAgIGlmICghY2ZvbGlvKQo+PiAtICAgICAgICAgICAgICAgcmV0 dXJuOwo+PiAtCj4+IC0gICAgICAgcmV0ID0gZmlsZW1hcF9hZGRfZm9saW8oQ09NUFJFU1NfTUFQ UElORyhzYmkpLCBjZm9saW8sCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJsa2FkZHIsIEdGUF9OT0ZTKTsKPj4gLSAgICAgICBpZiAocmV0KSB7Cj4+ IC0gICAgICAgICAgICAgICBmMmZzX2ZvbGlvX3B1dChjZm9saW8sIGZhbHNlKTsKPj4gKyAgICAg ICBlbnRyeSA9IGYyZnNfZ3JhYl9jYWNoZShDT01QUkVTU19DQUNIRShzYmkpLCBibGthZGRyLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRjJGU19DQUNIRV9MT0NL X0NSRUFURSk7Cj4+ICsgICAgICAgaWYgKElTX0VSUihlbnRyeSkpCj4+ICAgICAgICAgICAgICAg ICByZXR1cm47Cj4+IC0gICAgICAgfQo+Pgo+PiAtICAgICAgIGZvbGlvX3NldF9mMmZzX2RhdGEo Y2ZvbGlvLCBpbm8pOwo+PiAtCj4+IC0gICAgICAgbWVtY3B5KGZvbGlvX2FkZHJlc3MoY2ZvbGlv KSwgZm9saW9fYWRkcmVzcyhmb2xpbyksIFBBR0VfU0laRSk7Cj4+IC0gICAgICAgZm9saW9fbWFy a191cHRvZGF0ZShjZm9saW8pOwo+PiAtICAgICAgIGYyZnNfZm9saW9fcHV0KGNmb2xpbywgdHJ1 ZSk7Cj4+ICsgICAgICAgZW50cnktPmlubyA9IGlubzsKPj4gKyAgICAgICBtZW1jcHkoY2FjaGVf YWRkcmVzcyhlbnRyeSksIGZvbGlvX2FkZHJlc3MoZm9saW8pLCBQQUdFX1NJWkUpOwo+PiArICAg ICAgIGYyZnNfY2FjaGVfc2V0X3VwdG9kYXRlKGVudHJ5KTsKPj4gKyAgICAgICBmMmZzX3B1dF9j YWNoZShlbnRyeSwgdHJ1ZSk7Cj4+ICB9Cj4+Cj4+ICBib29sIGYyZnNfbG9hZF9jb21wcmVzc2Vk X2ZvbGlvKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGZvbGlvICpmb2xpbywKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJsb2NrX3QgYmxrYWRkcikKPj4gIHsKPj4gLSAgICAgICBzdHJ1Y3QgZm9saW8gKmNm b2xpbzsKPj4gKyAgICAgICBzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2sgKmVudHJ5Owo+PiAgICAg ICAgIGJvb2wgaGl0dGVkID0gZmFsc2U7Cj4+Cj4+ICAgICAgICAgaWYgKCF0ZXN0X29wdChzYmks IENPTVBSRVNTX0NBQ0hFKSkKPj4gICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPj4KPj4g LSAgICAgICBjZm9saW8gPSBmMmZzX2ZpbGVtYXBfZ2V0X2ZvbGlvKENPTVBSRVNTX01BUFBJTkco c2JpKSwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGthZGRyLCBGR1BfTE9D SyB8IEZHUF9OT1dBSVQsIEdGUF9OT0ZTKTsKPj4gLSAgICAgICBpZiAoIUlTX0VSUihjZm9saW8p KSB7Cj4+IC0gICAgICAgICAgICAgICBpZiAoZm9saW9fdGVzdF91cHRvZGF0ZShjZm9saW8pKSB7 Cj4+ICsgICAgICAgZW50cnkgPSBmMmZzX2ZpbmRfY2FjaGUoQ09NUFJFU1NfQ0FDSEUoc2JpKSwg YmxrYWRkcik7Cj4+ICsgICAgICAgaWYgKCFJU19FUlIoZW50cnkpKSB7Cj4+ICsgICAgICAgICAg ICAgICBmMmZzX2xvY2tfY2FjaGUoZW50cnkpOwo+PiArICAgICAgICAgICAgICAgaWYgKGYyZnNf aXNfY29tcHJlc3NfY2FjaGUoZW50cnkpICYmCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZjJmc19jYWNoZV90ZXN0X3VwdG9kYXRlKGVudHJ5KSkgewo+PiAgICAgICAgICAgICAg ICAgICAgICAgICBhdG9taWNfaW5jKCZzYmktPmNvbXByZXNzX3BhZ2VfaGl0KTsKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgbWVtY3B5KGZvbGlvX2FkZHJlc3MoZm9saW8pLAo+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGlvX2FkZHJlc3MoY2ZvbGlvKSwgZm9saW9fc2l6 ZShmb2xpbykpOwo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX2FkZHJl c3MoZW50cnkpLCBmb2xpb19zaXplKGZvbGlvKSk7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAg IGhpdHRlZCA9IHRydWU7Cj4+ICAgICAgICAgICAgICAgICB9Cj4+IC0gICAgICAgICAgICAgICBm MmZzX2ZvbGlvX3B1dChjZm9saW8sIHRydWUpOwo+PiArICAgICAgICAgICAgICAgZjJmc19wdXRf Y2FjaGUoZW50cnksIHRydWUpOwo+PiAgICAgICAgIH0KPj4KPj4gICAgICAgICByZXR1cm4gaGl0 dGVkOwo+PiBAQCAtMjAwMiw3MSArMTk4NSw3MCBAQCBib29sIGYyZnNfbG9hZF9jb21wcmVzc2Vk X2ZvbGlvKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGZvbGlvICpmb2xpbywKPj4K Pj4gIHZvaWQgZjJmc19pbnZhbGlkYXRlX2NvbXByZXNzX3BhZ2VzKHN0cnVjdCBmMmZzX3NiX2lu Zm8gKnNiaSwgbmlkX3QgaW5vKQo+IAo+IFRoaXMgaXMgTyhOKSBGdWxsLXRyZWUgc2NhbiBvbiBp bm9kZSBldmljdGlvbi4KPiAKPiBXRFlUIHRvIGltcHJvdmUgaXQ/Cj4gIC0gUGVyLWlub2RlIHRy YWNraW5nCj4gIC0gUmUtZXZhbHVhdGUgZXZpY3Rpb24gcG9saWN5OiBTaW5jZSBjb21wcmVzcyBj YWNoZSBibG9ja3MgYXJlCj4gaW5kZXhlZCBieSBwaHlzaWNhbCBibG9jayBhZGRyZXNzIChibGth ZGRyKSBhbmQgaG9sZCBpbW11dGFibGUgZGlzawo+IGRhdGEsIHRoZSBjYWNoZWQgYmxvY2tzIHJl bWFpbiB2YWxpZCBldmVuIGFmdGVyIHRoZSBpbm9kZSBpcwo+IGNsb3NlZC9ldmljdGVkLgo+ICAg IFdlIHNob3VsZCBldmFsdWF0ZSB3aGV0aGVyIHdlIGFjdHVhbGx5IG5lZWQgdG8gc3luY2hyb25v dXNseSBwdXJnZQo+IGNsZWFuIGNvbXByZXNzIGNhY2hlIGVudHJpZXMgdXBvbiBpbm9kZSBldmlj dGlvbiwgb3IgaWYgd2UgY2FuIHNpbXBseQo+IGxldCB0aGUgbWVtb3J5IHNocmlua2VyIHJlY2xh aW0gdGhlbSB2aWEgTFJVIHVuZGVyIG1lbW9yeSBwcmVzc3VyZS4KPiAKPj4gIHsKPj4gLSAgICAg ICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IENPTVBSRVNTX01BUFBJTkcoc2JpKTsK Pj4gLSAgICAgICBzdHJ1Y3QgZm9saW9fYmF0Y2ggZmJhdGNoOwo+PiAtICAgICAgIHBnb2ZmX3Qg aW5kZXggPSAwOwo+PiAtICAgICAgIHBnb2ZmX3QgZW5kID0gTUFYX0JMS0FERFIoc2JpKTsKPj4g KyAgICAgICBzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2tfbGlzdCAqY2FjaGUgPSBDT01QUkVTU19D QUNIRShzYmkpOwo+PiArICAgICAgIHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9jayAqZW50cmllc1tG MkZTX09OU1RBQ0tfQ0FDSEVTXTsKPj4gKyAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+PiAr ICAgICAgIHBnb2ZmX3QgaW5kZXggPSAwLCBlbmQgPSBVTE9OR19NQVg7Cj4+ICsgICAgICAgaW50 IG5yOwo+PiArICAgICAgIGludCBpOwo+Pgo+PiAtICAgICAgIGlmICghbWFwcGluZy0+bnJwYWdl cykKPiAKPiBXaHkgZGlkIHlvdSByZW1vdmUgdGhpcyBsaW5lPwoKT2gsIEkgc2VlIHlvdXIgcG9p bnQsIHdlIG5lZWQgdG8gY2hlY2sgY2FjaGUtPm51bV9lbnRyaWVzIGhlcmUuCgpUaGFua3MsCgo+ IAo+PiArICAgICAgIGlmICghdGVzdF9vcHQoc2JpLCBDT01QUkVTU19DQUNIRSkpCj4+ICAgICAg ICAgICAgICAgICByZXR1cm47Cj4+IC0KPj4gLSAgICAgICBmb2xpb19iYXRjaF9pbml0KCZmYmF0 Y2gpOwo+PiAtCj4+IC0gICAgICAgZG8gewo+PiAtICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IG5yLCBpOwo+PiAtCj4+IC0gICAgICAgICAgICAgICBuciA9IGZpbGVtYXBfZ2V0X2ZvbGlvcyht YXBwaW5nLCAmaW5kZXgsIGVuZCAtIDEsICZmYmF0Y2gpOwo+PiAtICAgICAgICAgICAgICAgaWYg KCFucikKPj4gK25leHQ6Cj4+ICsgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmNhY2hlLT50cmVl X2xvY2ssIGZsYWdzKTsKPj4gKyAgICAgICBuciA9IHJhZGl4X3RyZWVfZ2FuZ19sb29rdXAoJmNh Y2hlLT5yb290LCAodm9pZCAqKillbnRyaWVzLCBpbmRleCwKPj4gKyAgICAgICAgICAgICAgIG1p bigodW5zaWduZWQgbG9uZylGMkZTX09OU1RBQ0tfQ0FDSEVTLCBlbmQgLSBpbmRleCkpOwo+PiAr ICAgICAgIGlmICghbnIpCj4+ICsgICAgICAgICAgICAgICBnb3RvIG91dF91bmxvY2s7Cj4+ICsK Pj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnI7IGkrKykgewo+PiArICAgICAgICAgICAgICAg c3RydWN0IGYyZnNfY2FjaGVkX2Jsb2NrICplbnRyeSA9IGVudHJpZXNbaV07Cj4+ICsKPj4gKyAg ICAgICAgICAgICAgIGlmIChlbnRyeS0+aW5kZXggPj0gZW5kKSB7Cj4+ICsgICAgICAgICAgICAg ICAgICAgICAgIG5yID0gaTsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ICsg ICAgICAgICAgICAgICB9Cj4+ICsgICAgICAgICAgICAgICBmMmZzX2NhY2hlX2dldChlbnRyeSk7 Cj4+ICsgICAgICAgfQo+PiArb3V0X3VubG9jazoKPj4gKyAgICAgICBzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZjYWNoZS0+dHJlZV9sb2NrLCBmbGFncyk7Cj4+ICsgICAgICAgaWYgKCFucikKPj4g KyAgICAgICAgICAgICAgIHJldHVybjsKPj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnI7IGkr Kykgewo+PiArICAgICAgICAgICAgICAgc3RydWN0IGYyZnNfY2FjaGVkX2Jsb2NrICplbnRyeSA9 IGVudHJpZXNbaV07Cj4+Cj4+IC0gICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnI7IGkr Kykgewo+PiAtICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZm9saW8gKmZvbGlvID0gZmJh dGNoLmZvbGlvc1tpXTsKPj4gKyAgICAgICAgICAgICAgIGluZGV4ID0gZW50cnktPmluZGV4ICsg MTsKPj4KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgZm9saW9fbG9jayhmb2xpbyk7Cj4+IC0g ICAgICAgICAgICAgICAgICAgICAgIGlmIChmb2xpby0+bWFwcGluZyAhPSBtYXBwaW5nKSB7Cj4+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9saW9fdW5sb2NrKGZvbGlvKTsKPj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgfQo+PiArICAgICAgICAgICAgICAgZjJmc19sb2NrX2NhY2hlKGVudHJ5KTsK Pj4KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlubyAhPSBmb2xpb19nZXRfZjJmc19k YXRhKGZvbGlvKSkgewo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGlvX3Vu bG9jayhmb2xpbyk7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIH0KPj4gLQo+PiAtICAgICAgICAgICAgICAgICAg ICAgICBnZW5lcmljX2Vycm9yX3JlbW92ZV9mb2xpbyhtYXBwaW5nLCBmb2xpbyk7Cj4+IC0gICAg ICAgICAgICAgICAgICAgICAgIGZvbGlvX3VubG9jayhmb2xpbyk7Cj4+ICsgICAgICAgICAgICAg ICBpZiAoIWYyZnNfaXNfY29tcHJlc3NfY2FjaGUoZW50cnkpKSB7Cj4gCj4gSG93IGlzIHRoaXMg cG9zc2libGU/Cj4gb3IgaWYgKCFlbnRyeS0+Y2FjaGUpPwo+IAo+IFRoYW5rcywKPiAKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgZjJmc191bmxvY2tfY2FjaGUoZW50cnkpOwo+PiArICAgICAg ICAgICAgICAgICAgICAgICBjb250aW51ZTsKPj4gICAgICAgICAgICAgICAgIH0KPj4gLSAgICAg ICAgICAgICAgIGZvbGlvX2JhdGNoX3JlbGVhc2UoJmZiYXRjaCk7Cj4+ICsgICAgICAgICAgICAg ICBpZiAoZW50cnktPmlubyAhPSBpbm8pIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgZjJm c191bmxvY2tfY2FjaGUoZW50cnkpOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsKPj4gKyAgICAgICAgICAgICAgIH0KPj4gKwo+PiArICAgICAgICAgICAgICAgZjJmc190cnVu Y2F0ZV9jYWNoZShlbnRyeSwgZmFsc2UpOwo+PiArICAgICAgICAgICAgICAgZjJmc191bmxvY2tf Y2FjaGUoZW50cnkpOwo+PiArICAgICAgIH0KPj4gKyAgICAgICBmMmZzX2NhY2hlX2dhbmdfcmVs ZWFzZShlbnRyaWVzLCBucik7Cj4+ICsKPj4gKyAgICAgICBpZiAoaW5kZXggPCBlbmQpIHsKPj4g ICAgICAgICAgICAgICAgIGNvbmRfcmVzY2hlZCgpOwo+PiAtICAgICAgIH0gd2hpbGUgKGluZGV4 IDwgZW5kKTsKPj4gKyAgICAgICAgICAgICAgIGdvdG8gbmV4dDsKPj4gKyAgICAgICB9Cj4+ICB9 Cj4+Cj4+IC1pbnQgZjJmc19pbml0X2NvbXByZXNzX2lub2RlKHN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSkKPj4gK3ZvaWQgZjJmc19pbml0X2NvbXByZXNzX2NhY2hlX2NvbnRleHQoc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpKQo+PiAgewo+PiAtICAgICAgIHN0cnVjdCBpbm9kZSAqaW5vZGU7Cj4+ IC0KPj4gICAgICAgICBpZiAoIXRlc3Rfb3B0KHNiaSwgQ09NUFJFU1NfQ0FDSEUpKQo+PiAtICAg ICAgICAgICAgICAgcmV0dXJuIDA7Cj4+IC0KPj4gLSAgICAgICBpbm9kZSA9IGYyZnNfaWdldChz YmktPnNiLCBGMkZTX0NPTVBSRVNTX0lOTyhzYmkpKTsKPj4gLSAgICAgICBpZiAoSVNfRVJSKGlu b2RlKSkKPj4gLSAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKGlub2RlKTsKPj4gLSAgICAg ICBzYmktPmNvbXByZXNzX2lub2RlID0gaW5vZGU7Cj4+ICsgICAgICAgICAgICAgICByZXR1cm47 Cj4+Cj4+ICAgICAgICAgc2JpLT5jb21wcmVzc19wZXJjZW50ID0gQ09NUFJFU1NfUEVSQ0VOVDsK Pj4gICAgICAgICBzYmktPmNvbXByZXNzX3dhdGVybWFyayA9IENPTVBSRVNTX1dBVEVSTUFSSzsK Pj4gLQo+PiAgICAgICAgIGF0b21pY19zZXQoJnNiaS0+Y29tcHJlc3NfcGFnZV9oaXQsIDApOwo+ PiAtCj4+IC0gICAgICAgcmV0dXJuIDA7Cj4+IC19Cj4+IC0KPj4gLXZvaWQgZjJmc19kZXN0cm95 X2NvbXByZXNzX2lub2RlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKPj4gLXsKPj4gLSAgICAg ICBpZiAoIXNiaS0+Y29tcHJlc3NfaW5vZGUpCj4+IC0gICAgICAgICAgICAgICByZXR1cm47Cj4+ IC0gICAgICAgaXB1dChzYmktPmNvbXByZXNzX2lub2RlKTsKPj4gLSAgICAgICBzYmktPmNvbXBy ZXNzX2lub2RlID0gTlVMTDsKPj4gIH0KPj4KPj4gIGludCBmMmZzX2luaXRfcGFnZV9hcnJheV9j YWNoZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2Rl YnVnLmMgYi9mcy9mMmZzL2RlYnVnLmMKPj4gaW5kZXggYmVkYWFkZTkyNjc3Li44Y2QwNmY3YmE5 ZTcgMTAwNjQ0Cj4+IC0tLSBhL2ZzL2YyZnMvZGVidWcuYwo+PiArKysgYi9mcy9mMmZzL2RlYnVn LmMKPj4gQEAgLTIyNSw4ICsyMjUsOCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfZ2VuZXJhbF9zdGF0 dXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+PiAgICAgICAgIHNpLT5ub2RlX2NhY2hlcyA9 IE5PREVfQ0FDSEUoc2JpKS0+bnVtX2VudHJpZXM7Cj4+ICAgICAgICAgc2ktPm1ldGFfY2FjaGVz ID0gTUVUQV9DQUNIRShzYmkpLT5udW1fZW50cmllczsKPj4gICNpZmRlZiBDT05GSUdfRjJGU19G U19DT01QUkVTU0lPTgo+PiAtICAgICAgIGlmIChzYmktPmNvbXByZXNzX2lub2RlKSB7Cj4+IC0g ICAgICAgICAgICAgICBzaS0+Y29tcHJlc3NfcGFnZXMgPSBDT01QUkVTU19NQVBQSU5HKHNiaSkt Pm5ycGFnZXM7Cj4+ICsgICAgICAgaWYgKHRlc3Rfb3B0KHNiaSwgQ09NUFJFU1NfQ0FDSEUpKSB7 Cj4+ICsgICAgICAgICAgICAgICBzaS0+Y29tcHJlc3NfcGFnZXMgPSBDT01QUkVTU19DQUNIRShz YmkpLT5udW1fZW50cmllczsKPj4gICAgICAgICAgICAgICAgIHNpLT5jb21wcmVzc19wYWdlX2hp dCA9IGF0b21pY19yZWFkKCZzYmktPmNvbXByZXNzX3BhZ2VfaGl0KTsKPj4gICAgICAgICB9Cj4+ ICAjZW5kaWYKPj4gQEAgLTM4NiwxMCArMzg2LDExIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9tZW1f aW5mbyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4+ICAgICAgICAgc2ktPnBhZ2VfbWVtICs9 ICh1bnNpZ25lZCBsb25nIGxvbmcpTk9ERV9DQUNIRShzYmkpLT5udW1fZW50cmllcyA8PCBQQUdF X1NISUZUOwo+PiAgICAgICAgIHNpLT5jYWNoZV9tZW0gKz0gTk9ERV9DQUNIRShzYmkpLT5udW1f ZW50cmllcyAqIHNpemVvZihzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2spOwo+PiAgI2lmZGVmIENP TkZJR19GMkZTX0ZTX0NPTVBSRVNTSU9OCj4+IC0gICAgICAgaWYgKHNiaS0+Y29tcHJlc3NfaW5v ZGUpIHsKPj4gLSAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnBhZ2VzID0gQ09NUFJFU1Nf TUFQUElORyhzYmkpLT5ucnBhZ2VzOwo+PiArICAgICAgIGlmICh0ZXN0X29wdChzYmksIENPTVBS RVNTX0NBQ0hFKSkgewo+PiArICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBucGFnZXMgPSBD T01QUkVTU19DQUNIRShzYmkpLT5udW1fZW50cmllczsKPj4KPj4gICAgICAgICAgICAgICAgIHNp LT5wYWdlX21lbSArPSAodW5zaWduZWQgbG9uZyBsb25nKW5wYWdlcyA8PCBQQUdFX1NISUZUOwo+ PiArICAgICAgICAgICAgICAgc2ktPmNhY2hlX21lbSArPSBucGFnZXMgKiBzaXplb2Yoc3RydWN0 IGYyZnNfY2FjaGVkX2Jsb2NrKTsKPj4gICAgICAgICB9Cj4+ICAjZW5kaWYKPj4gIH0KPj4gZGlm ZiAtLWdpdCBhL2ZzL2YyZnMvZjJmcy5oIGIvZnMvZjJmcy9mMmZzLmgKPj4gaW5kZXggNWIxYjMx MDRlYzIwLi5kNTU3NDliMDNlZDIgMTAwNjQ0Cj4+IC0tLSBhL2ZzL2YyZnMvZjJmcy5oCj4+ICsr KyBiL2ZzL2YyZnMvZjJmcy5oCj4+IEBAIC0yMDc4LDcgKzIwNzgsNiBAQCBzdHJ1Y3QgZjJmc19z Yl9pbmZvIHsKPj4gICAgICAgICB1MzIgY29tcHJfbmV3X2lub2RlOwo+Pgo+PiAgICAgICAgIC8q IEZvciBjb21wcmVzc2VkIGJsb2NrIGNhY2hlICovCj4+IC0gICAgICAgc3RydWN0IGlub2RlICpj b21wcmVzc19pbm9kZTsgICAgICAgICAgIC8qIGNhY2hlIGNvbXByZXNzZWQgYmxvY2tzICovCj4+ ICAgICAgICAgdW5zaWduZWQgaW50IGNvbXByZXNzX3BlcmNlbnQ7ICAgICAgICAgIC8qIGNhY2hl IHBhZ2UgcGVyY2VudGFnZSAqLwo+PiAgICAgICAgIHVuc2lnbmVkIGludCBjb21wcmVzc193YXRl cm1hcms7ICAgICAgICAvKiBjYWNoZSBwYWdlIHdhdGVybWFyayAqLwo+PiAgICAgICAgIGF0b21p Y190IGNvbXByZXNzX3BhZ2VfaGl0OyAgICAgICAgICAgICAvKiBjYWNoZSBoaXQgY291bnQgKi8K Pj4gQEAgLTQ4MjEsMTMgKzQ4MjAsMTEgQEAgdW5zaWduZWQgaW50IGYyZnNfY2x1c3Rlcl9ibG9j a3NfYXJlX2NvbnRpZ3VvdXMoc3RydWN0IGRub2RlX29mX2RhdGEgKmRuLAo+PiAgaW50IGYyZnNf aW5pdF9jb21wcmVzc19jdHgoc3RydWN0IGNvbXByZXNzX2N0eCAqY2MpOwo+PiAgdm9pZCBmMmZz X2Rlc3Ryb3lfY29tcHJlc3NfY3R4KHN0cnVjdCBjb21wcmVzc19jdHggKmNjLCBib29sIHJldXNl KTsKPj4gIHZvaWQgZjJmc19pbml0X2NvbXByZXNzX2luZm8oc3RydWN0IGYyZnNfc2JfaW5mbyAq c2JpKTsKPj4gLWludCBmMmZzX2luaXRfY29tcHJlc3NfaW5vZGUoc3RydWN0IGYyZnNfc2JfaW5m byAqc2JpKTsKPj4gLXZvaWQgZjJmc19kZXN0cm95X2NvbXByZXNzX2lub2RlKHN0cnVjdCBmMmZz X3NiX2luZm8gKnNiaSk7Cj4+ICt2b2lkIGYyZnNfaW5pdF9jb21wcmVzc19jYWNoZV9jb250ZXh0 KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSk7Cj4+ICBpbnQgZjJmc19pbml0X3BhZ2VfYXJyYXlf Y2FjaGUoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKTsKPj4gIHZvaWQgZjJmc19kZXN0cm95X3Bh Z2VfYXJyYXlfY2FjaGUoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKTsKPj4gIGludCBfX2luaXQg ZjJmc19pbml0X2NvbXByZXNzX2NhY2hlKHZvaWQpOwo+PiAgdm9pZCBmMmZzX2Rlc3Ryb3lfY29t cHJlc3NfY2FjaGUodm9pZCk7Cj4+IC1zdHJ1Y3QgYWRkcmVzc19zcGFjZSAqQ09NUFJFU1NfTUFQ UElORyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpOwo+PiAgdm9pZCBmMmZzX2ludmFsaWRhdGVf Y29tcHJlc3NfcGFnZXNfcmFuZ2Uoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfdCBibGthZGRyLCB1bnNpZ25l ZCBpbnQgbGVuKTsKPj4gIGJvb2wgZjJmc19sb2FkX2NvbXByZXNzZWRfZm9saW8oc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgZm9saW8gKmZvbGlvLAo+PiBAQCAtNDg3Niw4ICs0ODcz LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGYyZnNfcHV0X2ZvbGlvX2RpYyhzdHJ1Y3QgZm9saW8g KmZvbGlvLCBib29sIGluX3Rhc2spCj4+ICBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBmMmZz X2NsdXN0ZXJfYmxvY2tzX2FyZV9jb250aWd1b3VzKAo+PiAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgZG5vZGVfb2ZfZGF0YSAqZG4sIHVuc2lnbmVkIGludCBvZnNfaW5fbm9kZSkgeyBy ZXR1cm4gMDsgfQo+PiAgc3RhdGljIGlubGluZSBib29sIGYyZnNfc2FuaXR5X2NoZWNrX2NsdXN0 ZXIoc3RydWN0IGRub2RlX29mX2RhdGEgKmRuKSB7IHJldHVybiBmYWxzZTsgfQo+PiAtc3RhdGlj IGlubGluZSBpbnQgZjJmc19pbml0X2NvbXByZXNzX2lub2RlKHN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSkgeyByZXR1cm4gMDsgfQo+PiAtc3RhdGljIGlubGluZSB2b2lkIGYyZnNfZGVzdHJveV9j b21wcmVzc19pbm9kZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpIHsgfQo+PiArc3RhdGljIGlu bGluZSB2b2lkIGYyZnNfaW5pdF9jb21wcmVzc19jYWNoZV9jb250ZXh0KHN0cnVjdCBmMmZzX3Ni X2luZm8gKnNiaSkgeyB9Cj4+ICBzdGF0aWMgaW5saW5lIGludCBmMmZzX2luaXRfcGFnZV9hcnJh eV9jYWNoZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpIHsgcmV0dXJuIDA7IH0KPj4gIHN0YXRp YyBpbmxpbmUgdm9pZCBmMmZzX2Rlc3Ryb3lfcGFnZV9hcnJheV9jYWNoZShzdHJ1Y3QgZjJmc19z Yl9pbmZvICpzYmkpIHsgfQo+PiAgc3RhdGljIGlubGluZSBpbnQgX19pbml0IGYyZnNfaW5pdF9j b21wcmVzc19jYWNoZSh2b2lkKSB7IHJldHVybiAwOyB9Cj4+IGRpZmYgLS1naXQgYS9mcy9mMmZz L2lub2RlLmMgYi9mcy9mMmZzL2lub2RlLmMKPj4gaW5kZXggYWE2ZjRkNGE1NWE3Li4xNjg4ZDlj YmFmZTEgMTAwNjQ0Cj4+IC0tLSBhL2ZzL2YyZnMvaW5vZGUuYwo+PiArKysgYi9mcy9mMmZzL2lu b2RlLmMKPj4gQEAgLTU3MywxNSArNTczLDYgQEAgc3RhdGljIGludCBkb19yZWFkX2lub2RlKHN0 cnVjdCBpbm9kZSAqaW5vZGUpCj4+ICAgICAgICAgcmV0dXJuIDA7Cj4+ICB9Cj4+Cj4+IC1zdGF0 aWMgYm9vbCBpc19tZXRhX2lubyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHVuc2lnbmVkIGlu dCBpbm8pCj4+IC17Cj4+IC0jaWZkZWYgQ09ORklHX0YyRlNfRlNfQ09NUFJFU1NJT04KPj4gLSAg ICAgICBpZiAodGVzdF9vcHQoc2JpLCBDT01QUkVTU19DQUNIRSkgJiYgaW5vID09IEYyRlNfQ09N UFJFU1NfSU5PKHNiaSkpCj4+IC0gICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKPj4gLSNlbmRp Zgo+PiAtICAgICAgIHJldHVybiBmYWxzZTsKPj4gLX0KPj4gLQo+PiAgc3RydWN0IGlub2RlICpm MmZzX2lnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQgbG9uZyBpbm8pCj4+ICB7 Cj4+ICAgICAgICAgc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19TQihzYik7Cj4+IEBA IC01OTMsNDIgKzU4NCwxNyBAQCBzdHJ1Y3QgaW5vZGUgKmYyZnNfaWdldChzdHJ1Y3Qgc3VwZXJf YmxvY2sgKnNiLCB1bnNpZ25lZCBsb25nIGlubykKPj4gICAgICAgICAgICAgICAgIHJldHVybiBF UlJfUFRSKC1FTk9NRU0pOwo+Pgo+PiAgICAgICAgIGlmICghKGlub2RlX3N0YXRlX3JlYWRfb25j ZShpbm9kZSkgJiBJX05FVykpIHsKPj4gLSAgICAgICAgICAgICAgIGlmIChpc19tZXRhX2lubyhz YmksIGlubykpIHsKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgZjJmc19lcnIoc2JpLCAiaW5h Y2Nlc3NpYmxlIGlub2RlOiAlbHUsIHJ1biBmc2NrIHRvIHJlcGFpciIsIGlubyk7Cj4+IC0gICAg ICAgICAgICAgICAgICAgICAgIHNldF9zYmlfZmxhZyhzYmksIFNCSV9ORUVEX0ZTQ0spOwo+PiAt ICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRUZTQ09SUlVQVEVEOwo+PiAtICAgICAgICAg ICAgICAgICAgICAgICB0cmFjZV9mMmZzX2lnZXRfZXhpdChpbm9kZSwgcmV0KTsKPj4gLSAgICAg ICAgICAgICAgICAgICAgICAgaXB1dChpbm9kZSk7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAg IGYyZnNfaGFuZGxlX2Vycm9yKHNiaSwgRVJST1JfQ09SUlVQVEVEX0lOT0RFKTsKPj4gLSAgICAg ICAgICAgICAgICAgICAgICAgZnNlcnJvcl9yZXBvcnRfZmlsZV9tZXRhZGF0YShpbm9kZSwgcmV0 LCBHRlBfTk9GUyk7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKHJl dCk7Cj4+IC0gICAgICAgICAgICAgICB9Cj4+IC0KPj4gICAgICAgICAgICAgICAgIHRyYWNlX2Yy ZnNfaWdldChpbm9kZSk7Cj4+ICAgICAgICAgICAgICAgICByZXR1cm4gaW5vZGU7Cj4+ICAgICAg ICAgfQo+Pgo+PiAtICAgICAgIGlmIChpc19tZXRhX2lubyhzYmksIGlubykpCj4+IC0gICAgICAg ICAgICAgICBnb3RvIG1ha2Vfbm93Owo+PiAtCj4+ICAgICAgICAgcmV0ID0gZG9fcmVhZF9pbm9k ZShpbm9kZSk7Cj4+ICAgICAgICAgaWYgKHJldCkKPj4gICAgICAgICAgICAgICAgIGdvdG8gYmFk X2lub2RlOwo+PiAtbWFrZV9ub3c6Cj4+ICsKPj4gICAgICAgICBmMmZzX3NldF9pbm9kZV9mbGFn cyhpbm9kZSk7Cj4+Cj4+IC0gICAgICAgaWYgKGlubyA9PSBGMkZTX0NPTVBSRVNTX0lOTyhzYmkp KSB7Cj4+IC0jaWZkZWYgQ09ORklHX0YyRlNfRlNfQ09NUFJFU1NJT04KPj4gLSAgICAgICAgICAg ICAgIGlub2RlLT5pX21hcHBpbmctPmFfb3BzID0gJmYyZnNfY29tcHJlc3NfYW9wczsKPj4gLSAg ICAgICAgICAgICAgIC8qCj4+IC0gICAgICAgICAgICAgICAgKiBnZW5lcmljX2Vycm9yX3JlbW92 ZV9mb2xpbyBvbmx5IHRydW5jYXRlcyBwYWdlcyBvZiByZWd1bGFyCj4+IC0gICAgICAgICAgICAg ICAgKiBpbm9kZQo+PiAtICAgICAgICAgICAgICAgICovCj4+IC0gICAgICAgICAgICAgICBpbm9k ZS0+aV9tb2RlIHw9IFNfSUZSRUc7Cj4+IC0jZW5kaWYKPj4gLSAgICAgICAgICAgICAgIG1hcHBp bmdfc2V0X2dmcF9tYXNrKGlub2RlLT5pX21hcHBpbmcsCj4+IC0gICAgICAgICAgICAgICAgICAg ICAgIEdGUF9OT0ZTIHwgX19HRlBfSElHSE1FTSB8IF9fR0ZQX01PVkFCTEUpOwo+PiAtICAgICAg IH0gZWxzZSBpZiAoU19JU1JFRyhpbm9kZS0+aV9tb2RlKSkgewo+PiArICAgICAgIGlmIChTX0lT UkVHKGlub2RlLT5pX21vZGUpKSB7Cj4+ICAgICAgICAgICAgICAgICBpbm9kZS0+aV9vcCA9ICZm MmZzX2ZpbGVfaW5vZGVfb3BlcmF0aW9uczsKPj4gICAgICAgICAgICAgICAgIGlub2RlLT5pX2Zv cCA9ICZmMmZzX2ZpbGVfb3BlcmF0aW9uczsKPj4gICAgICAgICAgICAgICAgIGlub2RlLT5pX21h cHBpbmctPmFfb3BzID0gJmYyZnNfZGJsb2NrX2FvcHM7Cj4+IEBAIC04NzksNyArODQ1LDcgQEAg c3RhdGljIHZvaWQgZjJmc19ldmljdF9pbm9kZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKPj4gIC8qCj4+ICAgKiBSZXR1cm4gdHJ1ZSwgaWYgd2Ugc2hvdWxkbid0IGdvIHRocm91Z2gg cG9zdF9ldmljdF9pbm9kZS4KPj4gICAqLwo+PiAtc3RhdGljIGJvb2wgZjJmc19wcmVfZXZpY3Rf aW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKPj4gK3N0YXRpYyB2b2lkIGYyZnNfcHJlX2V2aWN0 X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCj4+ICB7Cj4+ICAgICAgICAgc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpID0gRjJGU19JX1NCKGlub2RlKTsKPj4gICAgICAgICBzdHJ1Y3QgZjJmc19p bm9kZV9pbmZvICpmaSA9IEYyRlNfSShpbm9kZSk7Cj4+IEBAIC05MDUsMTcgKzg3MSwxMiBAQCBz dGF0aWMgYm9vbCBmMmZzX3ByZV9ldmljdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQo+PiAg ICAgICAgICAgICB0ZXN0X29wdChzYmksIENPTVBSRVNTX0NBQ0hFKSAmJiBmMmZzX2NvbXByZXNz ZWRfZmlsZShpbm9kZSkpCj4+ICAgICAgICAgICAgICAgICBmMmZzX2ludmFsaWRhdGVfY29tcHJl c3NfcGFnZXMoc2JpLCBpbm9kZS0+aV9pbm8pOwo+Pgo+PiAtICAgICAgIGlmIChpbm9kZS0+aV9p bm8gPT0gRjJGU19DT01QUkVTU19JTk8oc2JpKSkKPj4gLSAgICAgICAgICAgICAgIHJldHVybiB0 cnVlOwo+PiAtCj4+ICAgICAgICAgZjJmc19idWdfb24oc2JpLCBnZXRfZGlydHlfcGFnZXMoaW5v ZGUpKTsKPj4gICAgICAgICBmMmZzX3JlbW92ZV9kaXJ0eV9pbm9kZShpbm9kZSk7Cj4+ICAgICAg ICAgZjJmc19yZW1vdmVfZG9uYXRlX2lub2RlKGlub2RlKTsKPj4KPj4gICAgICAgICBpZiAoIUlT X0RFVklDRV9BTElBU0lORyhpbm9kZSkpCj4+ICAgICAgICAgICAgICAgICBmMmZzX2Rlc3Ryb3lf ZXh0ZW50X3RyZWUoaW5vZGUpOwo+PiAtCj4+IC0gICAgICAgcmV0dXJuIGZhbHNlOwo+PiAgfQo+ Pgo+PiAgc3RhdGljIHZvaWQgZjJmc19kZWxldGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkK Pj4gQEAgLTEwNzcsMTUgKzEwMzgsMTMgQEAgc3RhdGljIHZvaWQgZjJmc19wb3N0X2V2aWN0X2lu b2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCj4+ICAgKi8KPj4gIHZvaWQgZjJmc19ldmljdF9pbm9k ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQo+PiAgewo+PiAtICAgICAgIGlmIChmMmZzX3ByZV9ldmlj dF9pbm9kZShpbm9kZSkpCj4+IC0gICAgICAgICAgICAgICBnb3RvIGNsZWFyX291dDsKPj4gKyAg ICAgICBmMmZzX3ByZV9ldmljdF9pbm9kZShpbm9kZSk7Cj4+Cj4+ICAgICAgICAgaWYgKCFpbm9k ZS0+aV9ubGluayAmJiAhaXNfYmFkX2lub2RlKGlub2RlKSkKPj4gICAgICAgICAgICAgICAgIGYy ZnNfZGVsZXRlX2lub2RlKGlub2RlKTsKPj4KPj4gICAgICAgICBmMmZzX3Bvc3RfZXZpY3RfaW5v ZGUoaW5vZGUpOwo+Pgo+PiAtY2xlYXJfb3V0Ogo+PiAgICAgICAgIGZzY3J5cHRfcHV0X2VuY3J5 cHRpb25faW5mbyhpbm9kZSk7Cj4+ICAgICAgICAgY2xlYXJfaW5vZGUoaW5vZGUpOwo+PiAgfQo+ PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9ub2RlLmMgYi9mcy9mMmZzL25vZGUuYwo+PiBpbmRleCAw N2MyM2IzNWU3ZjcuLmNmMDUyMDA4YWE2NCAxMDA2NDQKPj4gLS0tIGEvZnMvZjJmcy9ub2RlLmMK Pj4gKysrIGIvZnMvZjJmcy9ub2RlLmMKPj4gQEAgLTExOSw3ICsxMTksNyBAQCBib29sIGYyZnNf YXZhaWxhYmxlX2ZyZWVfbWVtb3J5KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgaW50IHR5cGUp Cj4+ICAgICAgICAgICAgICAgICAgKiBleGNlZWQgdGhyZXNob2xkLCBkZW55IGNhY2hpbmcgY29t cHJlc3MgcGFnZS4KPj4gICAgICAgICAgICAgICAgICAqLwo+PiAgICAgICAgICAgICAgICAgcmVz ID0gKGZyZWVfcmFtID4gYXZhaWxfcmFtICogc2JpLT5jb21wcmVzc193YXRlcm1hcmsgLyAxMDAp ICYmCj4+IC0gICAgICAgICAgICAgICAgICAgICAgIChDT01QUkVTU19NQVBQSU5HKHNiaSktPm5y cGFnZXMgPAo+PiArICAgICAgICAgICAgICAgICAgICAgICAoQ09NUFJFU1NfQ0FDSEUoc2JpKS0+ bnVtX2VudHJpZXMgPAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZV9yYW0gKiBzYmkt PmNvbXByZXNzX3BlcmNlbnQgLyAxMDApOwo+PiAgI2Vsc2UKPj4gICAgICAgICAgICAgICAgIHJl cyA9IGZhbHNlOwo+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zaHJpbmtlci5jIGIvZnMvZjJmcy9z aHJpbmtlci5jCj4+IGluZGV4IDIwYjNmZTFmOGMwNy4uZTdkMjgzMGU2YTIzIDEwMDY0NAo+PiAt LS0gYS9mcy9mMmZzL3Nocmlua2VyLmMKPj4gKysrIGIvZnMvZjJmcy9zaHJpbmtlci5jCj4+IEBA IC00MCw3ICs0MCw4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY291bnRfZXh0ZW50X2NhY2hl KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKPj4gIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY291 bnRfY2FjaGUoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+PiAgewo+PiAgICAgICAgIHJldHVy biBzYmktPm1ldGFfYmxvY2tzLm51bV9lbnRyaWVzICsKPj4gLSAgICAgICAgICAgICAgIHNiaS0+ bm9kZV9ibG9ja3MubnVtX2VudHJpZXM7Cj4+ICsgICAgICAgICAgICAgICBzYmktPm5vZGVfYmxv Y2tzLm51bV9lbnRyaWVzICsKPj4gKyAgICAgICAgICAgICAgIHNiaS0+Y29tcHJlc3NfYmxvY2tz Lm51bV9lbnRyaWVzOwo+PiAgfQo+Pgo+PiAgdW5zaWduZWQgbG9uZyBmMmZzX3Nocmlua19jb3Vu dChzdHJ1Y3Qgc2hyaW5rZXIgKnNocmluaywKPj4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc3VwZXIu YyBiL2ZzL2YyZnMvc3VwZXIuYwo+PiBpbmRleCA2YjQyYjczNmE2NjIuLjU3ODdjZmI3NmM2ZSAx MDA2NDQKPj4gLS0tIGEvZnMvZjJmcy9zdXBlci5jCj4+ICsrKyBiL2ZzL2YyZnMvc3VwZXIuYwo+ PiBAQCAtMjA1MCw4ICsyMDUwLDYgQEAgc3RhdGljIHZvaWQgZjJmc19wdXRfc3VwZXIoc3RydWN0 IHN1cGVyX2Jsb2NrICpzYikKPj4KPj4gICAgICAgICBmMmZzX2J1Z19vbihzYmksIHNiaS0+ZnN5 bmNfbm9kZV9udW0pOwo+Pgo+PiAtICAgICAgIGYyZnNfZGVzdHJveV9jb21wcmVzc19pbm9kZShz YmkpOwo+PiAtCj4+ICAgICAgICAgZjJmc19kZXN0cm95X2NhY2hlKENPTVBSRVNTX0NBQ0hFKHNi aSkpOwo+PiAgICAgICAgIGYyZnNfZGVzdHJveV9jYWNoZShOT0RFX0NBQ0hFKHNiaSkpOwo+PiAg ICAgICAgIGYyZnNfZGVzdHJveV9jYWNoZShNRVRBX0NBQ0hFKHNiaSkpOwo+PiBAQCAtNTI4NSw2 ICs1MjgzLDggQEAgc3RhdGljIGludCBmMmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2Nr ICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKQo+Pgo+PiAgICAgICAgIGYyZnNfaW5pdF9mc3lu Y19ub2RlX2luZm8oc2JpKTsKPj4KPj4gKyAgICAgICBmMmZzX2luaXRfY29tcHJlc3NfY2FjaGVf Y29udGV4dChzYmkpOwo+PiArCj4+ICAgICAgICAgLyogc2V0dXAgY2hlY2twb2ludCByZXF1ZXN0 IGNvbnRyb2wgYW5kIHN0YXJ0IGNoZWNrcG9pbnQgaXNzdWUgdGhyZWFkICovCj4+ICAgICAgICAg ZjJmc19pbml0X2NrcHRfcmVxX2NvbnRyb2woc2JpKTsKPj4gICAgICAgICBpZiAoIWYyZnNfcmVh ZG9ubHkoc2IpICYmICF0ZXN0X29wdChzYmksIERJU0FCTEVfQ0hFQ0tQT0lOVCkgJiYKPj4gQEAg LTUzNjMsMTMgKzUzNjMsOSBAQCBzdGF0aWMgaW50IGYyZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCj4+ICAgICAgICAgICAgICAgICBn b3RvIGZyZWVfaW5vX2VudHJ5Owo+PiAgICAgICAgIH0KPj4KPj4gLSAgICAgICBlcnIgPSBmMmZz X2luaXRfY29tcHJlc3NfaW5vZGUoc2JpKTsKPj4gLSAgICAgICBpZiAoZXJyKQo+PiAtICAgICAg ICAgICAgICAgZ290byBmcmVlX3Jvb3RfaW5vZGU7Cj4+IC0KPj4gICAgICAgICBlcnIgPSBmMmZz X3JlZ2lzdGVyX3N5c2ZzKHNiaSk7Cj4+ICAgICAgICAgaWYgKGVycikKPj4gLSAgICAgICAgICAg ICAgIGdvdG8gZnJlZV9jb21wcmVzc19pbm9kZTsKPj4gKyAgICAgICAgICAgICAgIGdvdG8gZnJl ZV9yb290X2lub2RlOwo+Pgo+PiAgICAgICAgIHNiaS0+dW1vdW50X2xvY2tfaG9sZGVyID0gY3Vy cmVudDsKPj4gICNpZmRlZiBDT05GSUdfUVVPVEEKPj4gQEAgLTU1MzcsOCArNTUzMyw2IEBAIHN0 YXRpYyBpbnQgZjJmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBm c19jb250ZXh0ICpmYykKPj4gICAgICAgICAvKiBldmljdCBzb21lIGlub2RlcyBiZWluZyBjYWNo ZWQgYnkgR0MgKi8KPj4gICAgICAgICBldmljdF9pbm9kZXMoc2IpOwo+PiAgICAgICAgIGYyZnNf dW5yZWdpc3Rlcl9zeXNmcyhzYmkpOwo+PiAtZnJlZV9jb21wcmVzc19pbm9kZToKPj4gLSAgICAg ICBmMmZzX2Rlc3Ryb3lfY29tcHJlc3NfaW5vZGUoc2JpKTsKPj4gIGZyZWVfcm9vdF9pbm9kZToK Pj4gICAgICAgICBkcHV0KHNiLT5zX3Jvb3QpOwo+PiAgICAgICAgIHNiLT5zX3Jvb3QgPSBOVUxM Owo+PiBAQCAtNTY1NSw3ICs1NjQ5LDggQEAgc3RhdGljIHZvaWQga2lsbF9mMmZzX3N1cGVyKHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IpCj4+ICAgICAgICAgICAgICAgICAgKiBjb21wcmVzcyBpbm9k ZSBjYWNoZS4KPj4gICAgICAgICAgICAgICAgICAqLwo+PiAgICAgICAgICAgICAgICAgaWYgKHRl c3Rfb3B0KHNiaSwgQ09NUFJFU1NfQ0FDSEUpKQo+PiAtICAgICAgICAgICAgICAgICAgICAgICB0 cnVuY2F0ZV9pbm9kZV9wYWdlc19maW5hbChDT01QUkVTU19NQVBQSU5HKHNiaSkpOwo+PiArICAg ICAgICAgICAgICAgICAgICAgICBmMmZzX2ludmFsaWRhdGVfY29tcHJlc3NfcGFnZXNfcmFuZ2Uo c2JpLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgVUlOVF9N QVgpOwo+PiAgI2VuZGlmCj4+Cj4+ICAgICAgICAgICAgICAgICBpZiAoaXNfc2JpX2ZsYWdfc2V0 KHNiaSwgU0JJX0lTX0RJUlRZKSB8fAo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mMmZz X2ZzLmggYi9pbmNsdWRlL2xpbnV4L2YyZnNfZnMuaAo+PiBpbmRleCAxMDVjZmVlZGVhNzQuLjUz MzQ0ZTFmMmI0NCAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9saW51eC9mMmZzX2ZzLmgKPj4gKysr IGIvaW5jbHVkZS9saW51eC9mMmZzX2ZzLmgKPj4gQEAgLTM0LDcgKzM0LDYgQEAKPj4gICNkZWZp bmUgRjJGU19SRVNFUlZFRF9OT0RFX05VTSAgICAgICAgIDMKPj4KPj4gICNkZWZpbmUgRjJGU19S T09UX0lOTyhzYmkpICAgICAoKHNiaSktPnJvb3RfaW5vX251bSkKPj4gLSNkZWZpbmUgRjJGU19D T01QUkVTU19JTk8oc2JpKSAoTk1fSShzYmkpLT5tYXhfbmlkKQo+Pgo+PiAgI2RlZmluZSBGMkZT X01BWF9RVU9UQVMgICAgICAgICAgICAgICAgMwo+Pgo+PiAtLQo+PiAyLjQ5LjAKPj4KPj4KPj4K Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gTGlu dXgtZjJmcy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gTGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3Vy Y2Vmb3JnZS5uZXQKPj4gaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGlu Zm8vbGludXgtZjJmcy1kZXZlbAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpMaW51eC1mMmZzLWRldmVsIG1haWxpbmcgbGlzdApMaW51eC1mMmZzLWRl dmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9s aXN0cy9saXN0aW5mby9saW51eC1mMmZzLWRldmVsCg==