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 CEAFCC61DC6 for ; Thu, 27 Aug 2026 02:27:17 +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=1dP9GqKloxrJu2t2D4n8Vsszzbm0A14D7Yah62j5WN4=; b=HA0b70gbqnncRq+SXkRKI7Y5jb tTcYQu1DFvAJQGWBj3Ni8tjGGpDgYfaBTh+Vi2hqLWZaETQhN6nYnB1001ZnGU11fOqxSHdLCBYMd +O1xaGdnxV4ohpFWMFjB2GtfSp+1AlOKSISWUglt9qew5Zllcg/ztCDHxcQ356hUoDYg=; Received: from [127.0.0.1] (helo=sfs-ml-1.v29.lw.sourceforge.com) by sfs-ml-1.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1wzPpm-0002A6-SS; Thu, 27 Aug 2026 02:27:16 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-1.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1wzPpl-00029z-Mt for linux-f2fs-devel@lists.sourceforge.net; Thu, 27 Aug 2026 02:27:15 +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=RpeCBSnnnYOy0uY4wZHXTq9MSCYPJ/hqudTZW7k1gb0=; b=IErwphvnyviIvjepTJeiYsePwE unemhppRf0hY0uSF9qVnWbzLWvNP1ss4Y5BFSDk1mihD5M2mWKfCs21zFYxT+3hwjxV6r7suQJRs3 B2dT9+3a8jasbyRMGA91r1r5Wi7hAx6LuR2WUlqN6vPAnpIUDcXP5QjjxMJ5DjHxA4vc=; 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=RpeCBSnnnYOy0uY4wZHXTq9MSCYPJ/hqudTZW7k1gb0=; b=b+sHZG9SyrepNED2Kyx5tIuFty vSF9BKBTllGo/Dfttg0KRec5wsuomK9QQ+Rx+b0iTO+5ciXazOW0zztU4AcJQarF87JY15EAMPpK6 fDnj7bVwsvxq+3RjrZjKxaCpe1xTgQmNygHERjOnQnvVe9vuwudKjICAuOcRwp7EXgJg=; Received: from tor.source.kernel.org ([172.105.4.254]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1wzPph-0005Z7-MF for linux-f2fs-devel@lists.sourceforge.net; Thu, 27 Aug 2026 02:27:15 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 152E360A5C; Thu, 27 Aug 2026 02:27:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B41811F000E9; Thu, 27 Aug 2026 02:27:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1787797627; bh=RpeCBSnnnYOy0uY4wZHXTq9MSCYPJ/hqudTZW7k1gb0=; h=Date:Cc:Subject:To:References:From:In-Reply-To; b=jjYiATCC+1naN74kY2uB6atzjY/oUW2PoPo3iOwwUKHoKgomvi6DALS/aA0qrUIDG +Q97IjEycO7jJTARfSwe0Pt6MktT0ZgAzSIZrCTdpn0gPPhrrWkZ/Ig5VqUJYuQh72 b9bqLAIh8laPqYwsL+k/MXWuoRilzLTZnONUgZi71rqWTxo3ED3Hb7KTKsRuDpPuAE 5/KABR1Eo9tqI6J/mQE9XB0u9WIryYfQc8rs0lt21JqsTfLx0S1VXU+wLIf2AnR9jg A98ZE3PVeH+2HD7FowFBd5Qjh5KFTmzfy6Im6oB1fSD7qELsVEkBpdpk/nKGxiAYRn q1ta8EkUyCiAA== Message-ID: <9e0c0cf2-e36c-4fb7-a214-e563ae33c9ba@kernel.org> Date: Thu, 27 Aug 2026 10:27:05 +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: 1wzPph-0005Z7-MF 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 T24gOC8yNy8yNiAwNDoyMywgRGFlaG8gSmVvbmcgd3JvdGU6Cj4gT24gV2VkLCBBdWcgMjYsIDIw MjYgYXQgMTowNOKAr1BNIERhZWhvIEplb25nIDxkYWVobzQzQGdtYWlsLmNvbT4gd3JvdGU6Cj4+ Cj4+IE9uIFR1ZSwgQXVnIDI1LCAyMDI2IGF0IDY6MDPigK9BTSBDaGFvIFl1IHZpYSBMaW51eC1m MmZzLWRldmVsCj4+IDxsaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4gd3Jv dGU6Cj4+Pgo+Pj4gVGhpcyBwYXRjaCBtaWdyYXRlcyBjb21wcmVzc2VkIGNsdXN0ZXIgY2FjaGlu ZyBmcm9tIHRoZSBmYWtlIFZGUyBpbm9kZQo+Pj4gcGFnZSBjYWNoZSAoc2JpLT5jb21wcmVzc19p bm9kZSkgdG8gY29tcHJlc3MgY2FjaGUgKHNiaS0+Y29tcHJlc3NfYmxvY2tzKS4KPj4+Cj4+PiBJ dCBjb252ZXJ0cyBjb21wcmVzc2lvbiBjYWNoaW5nIGFuZCBkZWNvbXByZXNzaW9uIHBhdGhzIHRv IHVzZQo+Pj4gY29tcHJlc3MgY2FjaGUgQVBJcywgdXNlcyBlbnRyeS0+aW5vIGZvciBwZXItaW5v ZGUgaW52YWxpZGF0aW9uLCBhbmQKPj4+IHJlbW92ZXMgc2JpLT5jb21wcmVzc19pbm9kZS4KPj4+ Cj4+PiBTaWduZWQtb2ZmLWJ5OiBDaGFvIFl1IDxjaGFvQGtlcm5lbC5vcmc+Cj4+PiAtLS0KPj4+ ICBmcy9mMmZzL2NhY2hlLmMgICAgICAgICB8ICAxNCArKy0tCj4+PiAgZnMvZjJmcy9jYWNoZS5o ICAgICAgICAgfCAgIDEgKwo+Pj4gIGZzL2YyZnMvY29tcHJlc3MuYyAgICAgIHwgMTU4ICsrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+ICBmcy9mMmZzL2RlYnVnLmMg ICAgICAgICB8ICAgOSArKy0KPj4+ICBmcy9mMmZzL2YyZnMuaCAgICAgICAgICB8ICAgOCArLQo+ Pj4gIGZzL2YyZnMvaW5vZGUuYyAgICAgICAgIHwgIDQ5ICstLS0tLS0tLS0tLS0KPj4+ICBmcy9m MmZzL25vZGUuYyAgICAgICAgICB8ICAgMiArLQo+Pj4gIGZzL2YyZnMvc2hyaW5rZXIuYyAgICAg IHwgICAzICstCj4+PiAgZnMvZjJmcy9zdXBlci5jICAgICAgICAgfCAgMTUgKystLQo+Pj4gIGlu Y2x1ZGUvbGludXgvZjJmc19mcy5oIHwgICAxIC0KPj4+ICAxMCBmaWxlcyBjaGFuZ2VkLCA5OCBp bnNlcnRpb25zKCspLCAxNjIgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2ZzL2Yy ZnMvY2FjaGUuYyBiL2ZzL2YyZnMvY2FjaGUuYwo+Pj4gaW5kZXggODQzMTE4MGJiMWY4Li41Yjkw NTVhZDQ5YjkgMTAwNjQ0Cj4+PiAtLS0gYS9mcy9mMmZzL2NhY2hlLmMKPj4+ICsrKyBiL2ZzL2Yy ZnMvY2FjaGUuYwo+Pj4gQEAgLTQxNywxMyArNDE3LDEyIEBAIHN0YXRpYyB2b2lkIGYyZnNfZG9f dHJ1bmNhdGVfY2FjaGUoc3RydWN0IGYyZnNfY2FjaGVkX2Jsb2NrICplbnRyeSwKPj4+ICAgICAg ICAgc3Bpbl91bmxvY2soJmNhY2hlLT5saXN0X2xvY2spOwo+Pj4gIH0KPj4+Cj4+PiAtc3RhdGlj IHZvaWQgZjJmc190cnVuY2F0ZV9jYWNoZShzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2sgKmVudHJ5 LAo+Pj4gK3ZvaWQgZjJmc190cnVuY2F0ZV9jYWNoZShzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2sg KmVudHJ5LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg ZHJvcF9kaXJ0eSkKPj4KPj4gLT4gX19mMmZzX3RydW5jYXRlX2NhY2hlKCkgd2l0aG91dCBsb2Nr aW5nPwo+Pgo+Pj4gIHsKPj4+IC0gICAgICAgZjJmc19sb2NrX2NhY2hlKGVudHJ5KTsKPj4+IC0g ICAgICAgaWYgKGVudHJ5LT5jYWNoZSkKPj4+IC0gICAgICAgICAgICAgICBmMmZzX2RvX3RydW5j YXRlX2NhY2hlKGVudHJ5LCBkcm9wX2RpcnR5KTsKPj4+IC0gICAgICAgZjJmc191bmxvY2tfY2Fj aGUoZW50cnkpOwo+Pj4gKyAgICAgICBpZiAoIWVudHJ5LT5jYWNoZSkKPj4+ICsgICAgICAgICAg ICAgICByZXR1cm47Cj4+PiArICAgICAgIGYyZnNfZG9fdHJ1bmNhdGVfY2FjaGUoZW50cnksIGRy b3BfZGlydHkpOwo+Pj4gIH0KPj4+Cj4+PiAgc3RhdGljIHZvaWQgZjJmc19kcm9wX2NhY2hlKHN0 cnVjdCBmMmZzX2NhY2hlZF9ibG9ja19saXN0ICpjYWNoZSwKPj4+IEBAIC00MzUsOCArNDM0LDkg QEAgc3RhdGljIHZvaWQgZjJmc19kcm9wX2NhY2hlKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9ja19s aXN0ICpjYWNoZSwKPj4+ICAgICAgICAgaWYgKElTX0VSUihlbnRyeSkpCj4+PiAgICAgICAgICAg ICAgICAgcmV0dXJuOwo+Pj4KPj4+ICsgICAgICAgZjJmc19sb2NrX2NhY2hlKGVudHJ5KTsKPj4+ ICAgICAgICAgZjJmc190cnVuY2F0ZV9jYWNoZShlbnRyeSwgZHJvcF9kaXJ0eSk7Cj4+PiAtICAg ICAgIGYyZnNfcHV0X2NhY2hlKGVudHJ5LCBmYWxzZSk7Cj4+PiArICAgICAgIGYyZnNfcHV0X2Nh Y2hlKGVudHJ5LCB0cnVlKTsKPj4+ICB9Cj4+Pgo+Pj4gIHZvaWQgZjJmc19kcm9wX2NhY2hlX3Jh bmdlKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9ja19saXN0ICpjYWNoZSwKPj4+IEBAIC00NzgsNyAr NDc4LDkgQEAgdm9pZCBmMmZzX2Ryb3BfY2FjaGVfcmFuZ2Uoc3RydWN0IGYyZnNfY2FjaGVkX2Js b2NrX2xpc3QgKmNhY2hlLAo+Pj4KPj4+ICAgICAgICAgICAgICAgICBpbmRleCA9IGVudHJ5LT5p bmRleCArIDE7Cj4+Pgo+Pj4gKyAgICAgICAgICAgICAgIGYyZnNfbG9ja19jYWNoZShlbnRyeSk7 Cj4+PiAgICAgICAgICAgICAgICAgZjJmc190cnVuY2F0ZV9jYWNoZShlbnRyeSwgZHJvcF9kaXJ0 eSk7Cj4+PiArICAgICAgICAgICAgICAgZjJmc191bmxvY2tfY2FjaGUoZW50cnkpOwo+Pj4gICAg ICAgICB9Cj4+PiAgICAgICAgIGYyZnNfY2FjaGVfZ2FuZ19yZWxlYXNlKGVudHJpZXMsIG5yKTsK Pj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9jYWNoZS5oIGIvZnMvZjJmcy9jYWNoZS5oCj4+ PiBpbmRleCBiODdmZWIzZWI4OTYuLmI2NmRiYWVmZWUyZiAxMDA2NDQKPj4+IC0tLSBhL2ZzL2Yy ZnMvY2FjaGUuaAo+Pj4gKysrIGIvZnMvZjJmcy9jYWNoZS5oCj4+PiBAQCAtMTY4LDYgKzE2OCw3 IEBAIHVuc2lnbmVkIGludCBmMmZzX2NhY2hlX2dhbmdfbG9va3VwX3RhZyhzdHJ1Y3QgZjJmc19j YWNoZWRfYmxvY2tfbGlzdCAqY2FjaGUsCj4+PiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IG1heF9pdGVtcywgaW50IHRhZyk7Cj4+PiAgdm9pZCBmMmZzX2NhY2hlX2dhbmdfcmVsZWFzZShz dHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2sgKiplbnRyaWVzLAo+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnJfZW50cmllcyk7Cj4+PiArdm9pZCBmMmZzX3Ry dW5jYXRlX2NhY2hlKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9jayAqZW50cnksIGJvb2wgZHJvcF9k aXJ0eSk7Cj4+PiAgaW50IGYyZnNfd3JpdGViYWNrX2NhY2hlKHN0cnVjdCBmMmZzX2NhY2hlZF9i bG9ja19saXN0ICpjYWNoZSwgYm9vbCBzeW5jKTsKPj4+ICB2b2lkIGYyZnNfY2FjaGVfd2FpdF9v bl9hbGxfd3JpdGViYWNrKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9ja19saXN0ICpjYWNoZSk7Cj4+ PiAgdm9pZCBmMmZzX2NhY2hlX3dhaXRfd3JpdGViYWNrX2NvbmQoc3RydWN0IGYyZnNfY2FjaGVk X2Jsb2NrICplbnRyeSwKPj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2NvbXByZXNzLmMgYi9mcy9m MmZzL2NvbXByZXNzLmMKPj4+IGluZGV4IDY3NmE1NTU5MzU3Zi4uMTU1YmUzYTNkMjAzIDEwMDY0 NAo+Pj4gLS0tIGEvZnMvZjJmcy9jb21wcmVzcy5jCj4+PiArKysgYi9mcy9mMmZzL2NvbXByZXNz LmMKPj4+IEBAIC0xOTE4LDMwICsxOTE4LDE5IEBAIHVuc2lnbmVkIGludCBmMmZzX2NsdXN0ZXJf YmxvY2tzX2FyZV9jb250aWd1b3VzKHN0cnVjdCBkbm9kZV9vZl9kYXRhICpkbiwKPj4+ICAgICAg ICAgcmV0dXJuIGNvbXByZXNzZWQgPyBpIC0gMSA6IGk7Cj4+PiAgfQo+Pj4KPj4+IC1jb25zdCBz dHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIGYyZnNfY29tcHJlc3NfYW9wcyA9IHsKPj4+ IC0gICAgICAgLnJlbGVhc2VfZm9saW8gPSBmMmZzX3JlbGVhc2VfZm9saW8sCj4+PiAtICAgICAg IC5pbnZhbGlkYXRlX2ZvbGlvID0gZjJmc19pbnZhbGlkYXRlX2ZvbGlvLAo+Pj4gLSAgICAgICAu bWlncmF0ZV9mb2xpbyAgPSBmaWxlbWFwX21pZ3JhdGVfZm9saW8sCj4+PiAtfTsKPj4+IC0KPj4+ IC1zdHJ1Y3QgYWRkcmVzc19zcGFjZSAqQ09NUFJFU1NfTUFQUElORyhzdHJ1Y3QgZjJmc19zYl9p bmZvICpzYmkpCj4+PiAtewo+Pj4gLSAgICAgICByZXR1cm4gc2JpLT5jb21wcmVzc19pbm9kZS0+ aV9tYXBwaW5nOwo+Pj4gLX0KPj4+IC0KPj4+ICB2b2lkIGYyZnNfaW52YWxpZGF0ZV9jb21wcmVz c19wYWdlc19yYW5nZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJsb2NrX3QgYmxrYWRkciwgdW5zaWduZWQgaW50IGxlbikKPj4+ ICB7Cj4+PiAtICAgICAgIGlmICghc2JpLT5jb21wcmVzc19pbm9kZSkKPj4+ICsgICAgICAgaWYg KCF0ZXN0X29wdChzYmksIENPTVBSRVNTX0NBQ0hFKSkKPj4+ICAgICAgICAgICAgICAgICByZXR1 cm47Cj4+PiAtICAgICAgIGludmFsaWRhdGVfbWFwcGluZ19wYWdlcyhDT01QUkVTU19NQVBQSU5H KHNiaSksIGJsa2FkZHIsIGJsa2FkZHIgKyBsZW4gLSAxKTsKPj4+ICsKPj4+ICsgICAgICAgZjJm c19kcm9wX2NhY2hlX3JhbmdlKENPTVBSRVNTX0NBQ0hFKHNiaSksIGJsa2FkZHIsIGxlbiwgZmFs c2UpOwo+Pj4gIH0KPj4+Cj4+PiAgc3RhdGljIHZvaWQgZjJmc19jYWNoZV9jb21wcmVzc2VkX3Bh Z2Uoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+Pj4gICAgICAgICAgICAgICAgIHN0cnVjdCBm b2xpbyAqZm9saW8sIG5pZF90IGlubywgYmxvY2tfdCBibGthZGRyKQo+Pj4gIHsKPj4+IC0gICAg ICAgc3RydWN0IGZvbGlvICpjZm9saW87Cj4+PiAtICAgICAgIGludCByZXQ7Cj4+PiArICAgICAg IHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9jayAqZW50cnk7Cj4+Pgo+Pj4gICAgICAgICBpZiAoIXRl c3Rfb3B0KHNiaSwgQ09NUFJFU1NfQ0FDSEUpKQo+Pj4gICAgICAgICAgICAgICAgIHJldHVybjsK Pj4+IEBAIC0xOTUyLDQ5ICsxOTQxLDQzIEBAIHN0YXRpYyB2b2lkIGYyZnNfY2FjaGVfY29tcHJl c3NlZF9wYWdlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKPj4+ICAgICAgICAgaWYgKCFmMmZz X2F2YWlsYWJsZV9mcmVlX21lbW9yeShzYmksIENPTVBSRVNTX1BBR0UpKQo+Pj4gICAgICAgICAg ICAgICAgIHJldHVybjsKPj4+Cj4+PiAtICAgICAgIGNmb2xpbyA9IGZpbGVtYXBfZ2V0X2ZvbGlv KENPTVBSRVNTX01BUFBJTkcoc2JpKSwgYmxrYWRkcik7Cj4+PiAtICAgICAgIGlmICghSVNfRVJS KGNmb2xpbykpIHsKPj4+IC0gICAgICAgICAgICAgICBmMmZzX2ZvbGlvX3B1dChjZm9saW8sIGZh bHNlKTsKPj4+ICsgICAgICAgZW50cnkgPSBmMmZzX2ZpbmRfY2FjaGUoQ09NUFJFU1NfQ0FDSEUo c2JpKSwgYmxrYWRkcik7Cj4+PiArICAgICAgIGlmICghSVNfRVJSKGVudHJ5KSkgewo+Pj4gKyAg ICAgICAgICAgICAgIGYyZnNfcHV0X2NhY2hlKGVudHJ5LCBmYWxzZSk7Cj4+PiAgICAgICAgICAg ICAgICAgcmV0dXJuOwo+Pj4gICAgICAgICB9Cj4+Pgo+Pj4gLSAgICAgICBjZm9saW8gPSBmaWxl bWFwX2FsbG9jX2ZvbGlvKF9fR0ZQX05PV0FSTiB8IF9fR0ZQX0lPLCAwLCBOVUxMKTsKPj4+IC0g ICAgICAgaWYgKCFjZm9saW8pCj4+PiAtICAgICAgICAgICAgICAgcmV0dXJuOwo+Pj4gLQo+Pj4g LSAgICAgICByZXQgPSBmaWxlbWFwX2FkZF9mb2xpbyhDT01QUkVTU19NQVBQSU5HKHNiaSksIGNm b2xpbywKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJsa2FkZHIsIEdGUF9OT0ZTKTsKPj4+IC0gICAgICAgaWYgKHJldCkgewo+Pj4gLSAgICAgICAg ICAgICAgIGYyZnNfZm9saW9fcHV0KGNmb2xpbywgZmFsc2UpOwo+Pj4gKyAgICAgICBlbnRyeSA9 IGYyZnNfZ3JhYl9jYWNoZShDT01QUkVTU19DQUNIRShzYmkpLCBibGthZGRyLAo+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEYyRlNfQ0FDSEVfTE9DS19DUkVBVEUp Owo+Pj4gKyAgICAgICBpZiAoSVNfRVJSKGVudHJ5KSkKPj4+ICAgICAgICAgICAgICAgICByZXR1 cm47Cj4+PiAtICAgICAgIH0KPj4+Cj4+PiAtICAgICAgIGZvbGlvX3NldF9mMmZzX2RhdGEoY2Zv bGlvLCBpbm8pOwo+Pj4gLQo+Pj4gLSAgICAgICBtZW1jcHkoZm9saW9fYWRkcmVzcyhjZm9saW8p LCBmb2xpb19hZGRyZXNzKGZvbGlvKSwgUEFHRV9TSVpFKTsKPj4+IC0gICAgICAgZm9saW9fbWFy a191cHRvZGF0ZShjZm9saW8pOwo+Pj4gLSAgICAgICBmMmZzX2ZvbGlvX3B1dChjZm9saW8sIHRy dWUpOwo+Pj4gKyAgICAgICBlbnRyeS0+aW5vID0gaW5vOwo+Pj4gKyAgICAgICBtZW1jcHkoY2Fj aGVfYWRkcmVzcyhlbnRyeSksIGZvbGlvX2FkZHJlc3MoZm9saW8pLCBQQUdFX1NJWkUpOwo+IAo+ IFVzZSBzYmktPmJsb2Nrc2l6ZSBvciBGMkZTX0JMS1NJWkUgaW5zdGVhZD8KClN1cmUuCgpUaGFu a3MsCgo+IAo+IFRoYW5rcywKPiAKPj4+ICsgICAgICAgZjJmc19jYWNoZV9zZXRfdXB0b2RhdGUo ZW50cnkpOwo+Pj4gKyAgICAgICBmMmZzX3B1dF9jYWNoZShlbnRyeSwgdHJ1ZSk7Cj4+PiAgfQo+ Pj4KPj4+ICBib29sIGYyZnNfbG9hZF9jb21wcmVzc2VkX2ZvbGlvKHN0cnVjdCBmMmZzX3NiX2lu Zm8gKnNiaSwgc3RydWN0IGZvbGlvICpmb2xpbywKPj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja190IGJsa2FkZHIp Cj4+PiAgewo+Pj4gLSAgICAgICBzdHJ1Y3QgZm9saW8gKmNmb2xpbzsKPj4+ICsgICAgICAgc3Ry dWN0IGYyZnNfY2FjaGVkX2Jsb2NrICplbnRyeTsKPj4+ICAgICAgICAgYm9vbCBoaXR0ZWQgPSBm YWxzZTsKPj4+Cj4+PiAgICAgICAgIGlmICghdGVzdF9vcHQoc2JpLCBDT01QUkVTU19DQUNIRSkp Cj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+Pj4KPj4+IC0gICAgICAgY2ZvbGlv ID0gZjJmc19maWxlbWFwX2dldF9mb2xpbyhDT01QUkVTU19NQVBQSU5HKHNiaSksCj4+PiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsa2FkZHIsIEZHUF9MT0NLIHwgRkdQX05PV0FJ VCwgR0ZQX05PRlMpOwo+Pj4gLSAgICAgICBpZiAoIUlTX0VSUihjZm9saW8pKSB7Cj4+PiAtICAg ICAgICAgICAgICAgaWYgKGZvbGlvX3Rlc3RfdXB0b2RhdGUoY2ZvbGlvKSkgewo+Pj4gKyAgICAg ICBlbnRyeSA9IGYyZnNfZmluZF9jYWNoZShDT01QUkVTU19DQUNIRShzYmkpLCBibGthZGRyKTsK Pj4+ICsgICAgICAgaWYgKCFJU19FUlIoZW50cnkpKSB7Cj4+PiArICAgICAgICAgICAgICAgZjJm c19sb2NrX2NhY2hlKGVudHJ5KTsKPj4+ICsgICAgICAgICAgICAgICBpZiAoZjJmc19pc19jb21w cmVzc19jYWNoZShlbnRyeSkgJiYKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZjJmc19jYWNoZV90ZXN0X3VwdG9kYXRlKGVudHJ5KSkgewo+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgYXRvbWljX2luYygmc2JpLT5jb21wcmVzc19wYWdlX2hpdCk7Cj4+PiAgICAgICAgICAg ICAgICAgICAgICAgICBtZW1jcHkoZm9saW9fYWRkcmVzcyhmb2xpbyksCj4+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvbGlvX2FkZHJlc3MoY2ZvbGlvKSwgZm9saW9fc2l6ZShm b2xpbykpOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9hZGRyZXNz KGVudHJ5KSwgZm9saW9fc2l6ZShmb2xpbykpOwo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg aGl0dGVkID0gdHJ1ZTsKPj4+ICAgICAgICAgICAgICAgICB9Cj4+PiAtICAgICAgICAgICAgICAg ZjJmc19mb2xpb19wdXQoY2ZvbGlvLCB0cnVlKTsKPj4+ICsgICAgICAgICAgICAgICBmMmZzX3B1 dF9jYWNoZShlbnRyeSwgdHJ1ZSk7Cj4+PiAgICAgICAgIH0KPj4+Cj4+PiAgICAgICAgIHJldHVy biBoaXR0ZWQ7Cj4+PiBAQCAtMjAwMiw3MSArMTk4NSw3MCBAQCBib29sIGYyZnNfbG9hZF9jb21w cmVzc2VkX2ZvbGlvKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGZvbGlvICpmb2xp bywKPj4+Cj4+PiAgdm9pZCBmMmZzX2ludmFsaWRhdGVfY29tcHJlc3NfcGFnZXMoc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpLCBuaWRfdCBpbm8pCj4+Cj4+IFRoaXMgaXMgTyhOKSBGdWxsLXRyZWUg c2NhbiBvbiBpbm9kZSBldmljdGlvbi4KPj4KPj4gV0RZVCB0byBpbXByb3ZlIGl0Pwo+PiAgLSBQ ZXItaW5vZGUgdHJhY2tpbmcKPj4gIC0gUmUtZXZhbHVhdGUgZXZpY3Rpb24gcG9saWN5OiBTaW5j ZSBjb21wcmVzcyBjYWNoZSBibG9ja3MgYXJlCj4+IGluZGV4ZWQgYnkgcGh5c2ljYWwgYmxvY2sg YWRkcmVzcyAoYmxrYWRkcikgYW5kIGhvbGQgaW1tdXRhYmxlIGRpc2sKPj4gZGF0YSwgdGhlIGNh Y2hlZCBibG9ja3MgcmVtYWluIHZhbGlkIGV2ZW4gYWZ0ZXIgdGhlIGlub2RlIGlzCj4+IGNsb3Nl ZC9ldmljdGVkLgo+PiAgICBXZSBzaG91bGQgZXZhbHVhdGUgd2hldGhlciB3ZSBhY3R1YWxseSBu ZWVkIHRvIHN5bmNocm9ub3VzbHkgcHVyZ2UKPj4gY2xlYW4gY29tcHJlc3MgY2FjaGUgZW50cmll cyB1cG9uIGlub2RlIGV2aWN0aW9uLCBvciBpZiB3ZSBjYW4gc2ltcGx5Cj4+IGxldCB0aGUgbWVt b3J5IHNocmlua2VyIHJlY2xhaW0gdGhlbSB2aWEgTFJVIHVuZGVyIG1lbW9yeSBwcmVzc3VyZS4K Pj4KPj4+ICB7Cj4+PiAtICAgICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gQ09N UFJFU1NfTUFQUElORyhzYmkpOwo+Pj4gLSAgICAgICBzdHJ1Y3QgZm9saW9fYmF0Y2ggZmJhdGNo Owo+Pj4gLSAgICAgICBwZ29mZl90IGluZGV4ID0gMDsKPj4+IC0gICAgICAgcGdvZmZfdCBlbmQg PSBNQVhfQkxLQUREUihzYmkpOwo+Pj4gKyAgICAgICBzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2tf bGlzdCAqY2FjaGUgPSBDT01QUkVTU19DQUNIRShzYmkpOwo+Pj4gKyAgICAgICBzdHJ1Y3QgZjJm c19jYWNoZWRfYmxvY2sgKmVudHJpZXNbRjJGU19PTlNUQUNLX0NBQ0hFU107Cj4+PiArICAgICAg IHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+PiArICAgICAgIHBnb2ZmX3QgaW5kZXggPSAwLCBlbmQg PSBVTE9OR19NQVg7Cj4+PiArICAgICAgIGludCBucjsKPj4+ICsgICAgICAgaW50IGk7Cj4+Pgo+ Pj4gLSAgICAgICBpZiAoIW1hcHBpbmctPm5ycGFnZXMpCj4+Cj4+IFdoeSBkaWQgeW91IHJlbW92 ZSB0aGlzIGxpbmU/Cj4+Cj4+PiArICAgICAgIGlmICghdGVzdF9vcHQoc2JpLCBDT01QUkVTU19D QUNIRSkpCj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+Pj4gLQo+Pj4gLSAgICAgICBmb2xp b19iYXRjaF9pbml0KCZmYmF0Y2gpOwo+Pj4gLQo+Pj4gLSAgICAgICBkbyB7Cj4+PiAtICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IG5yLCBpOwo+Pj4gLQo+Pj4gLSAgICAgICAgICAgICAgIG5y ID0gZmlsZW1hcF9nZXRfZm9saW9zKG1hcHBpbmcsICZpbmRleCwgZW5kIC0gMSwgJmZiYXRjaCk7 Cj4+PiAtICAgICAgICAgICAgICAgaWYgKCFucikKPj4+ICtuZXh0Ogo+Pj4gKyAgICAgICBzcGlu X2xvY2tfaXJxc2F2ZSgmY2FjaGUtPnRyZWVfbG9jaywgZmxhZ3MpOwo+Pj4gKyAgICAgICBuciA9 IHJhZGl4X3RyZWVfZ2FuZ19sb29rdXAoJmNhY2hlLT5yb290LCAodm9pZCAqKillbnRyaWVzLCBp bmRleCwKPj4+ICsgICAgICAgICAgICAgICBtaW4oKHVuc2lnbmVkIGxvbmcpRjJGU19PTlNUQUNL X0NBQ0hFUywgZW5kIC0gaW5kZXgpKTsKPj4+ICsgICAgICAgaWYgKCFucikKPj4+ICsgICAgICAg ICAgICAgICBnb3RvIG91dF91bmxvY2s7Cj4+PiArCj4+PiArICAgICAgIGZvciAoaSA9IDA7IGkg PCBucjsgaSsrKSB7Cj4+PiArICAgICAgICAgICAgICAgc3RydWN0IGYyZnNfY2FjaGVkX2Jsb2Nr ICplbnRyeSA9IGVudHJpZXNbaV07Cj4+PiArCj4+PiArICAgICAgICAgICAgICAgaWYgKGVudHJ5 LT5pbmRleCA+PSBlbmQpIHsKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgIG5yID0gaTsKPj4+ ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gKyAgICAgICAgICAgICAgIH0KPj4+ ICsgICAgICAgICAgICAgICBmMmZzX2NhY2hlX2dldChlbnRyeSk7Cj4+PiArICAgICAgIH0KPj4+ ICtvdXRfdW5sb2NrOgo+Pj4gKyAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjYWNoZS0+ dHJlZV9sb2NrLCBmbGFncyk7Cj4+PiArICAgICAgIGlmICghbnIpCj4+PiArICAgICAgICAgICAg ICAgcmV0dXJuOwo+Pj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnI7IGkrKykgewo+Pj4gKyAg ICAgICAgICAgICAgIHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9jayAqZW50cnkgPSBlbnRyaWVzW2ld Owo+Pj4KPj4+IC0gICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnI7IGkrKykgewo+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZvbGlvICpmb2xpbyA9IGZiYXRjaC5mb2xp b3NbaV07Cj4+PiArICAgICAgICAgICAgICAgaW5kZXggPSBlbnRyeS0+aW5kZXggKyAxOwo+Pj4K Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGZvbGlvX2xvY2soZm9saW8pOwo+Pj4gLSAgICAg ICAgICAgICAgICAgICAgICAgaWYgKGZvbGlvLT5tYXBwaW5nICE9IG1hcHBpbmcpIHsKPj4+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9saW9fdW5sb2NrKGZvbGlvKTsKPj4+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+PiAtICAgICAgICAgICAg ICAgICAgICAgICB9Cj4+PiArICAgICAgICAgICAgICAgZjJmc19sb2NrX2NhY2hlKGVudHJ5KTsK Pj4+Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5vICE9IGZvbGlvX2dldF9mMmZz X2RhdGEoZm9saW8pKSB7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGlv X3VubG9jayhmb2xpbyk7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgfQo+Pj4gLQo+Pj4gLSAgICAgICAgICAg ICAgICAgICAgICAgZ2VuZXJpY19lcnJvcl9yZW1vdmVfZm9saW8obWFwcGluZywgZm9saW8pOwo+ Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgZm9saW9fdW5sb2NrKGZvbGlvKTsKPj4+ICsgICAg ICAgICAgICAgICBpZiAoIWYyZnNfaXNfY29tcHJlc3NfY2FjaGUoZW50cnkpKSB7Cj4+Cj4+IEhv dyBpcyB0aGlzIHBvc3NpYmxlPwo+PiBvciBpZiAoIWVudHJ5LT5jYWNoZSk/Cj4+Cj4+IFRoYW5r cywKPj4KPj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGYyZnNfdW5sb2NrX2NhY2hlKGVudHJ5 KTsKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pj4gICAgICAgICAgICAg ICAgIH0KPj4+IC0gICAgICAgICAgICAgICBmb2xpb19iYXRjaF9yZWxlYXNlKCZmYmF0Y2gpOwo+ Pj4gKyAgICAgICAgICAgICAgIGlmIChlbnRyeS0+aW5vICE9IGlubykgewo+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgZjJmc191bmxvY2tfY2FjaGUoZW50cnkpOwo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7Cj4+PiArICAgICAgICAgICAgICAgfQo+Pj4gKwo+Pj4gKyAg ICAgICAgICAgICAgIGYyZnNfdHJ1bmNhdGVfY2FjaGUoZW50cnksIGZhbHNlKTsKPj4+ICsgICAg ICAgICAgICAgICBmMmZzX3VubG9ja19jYWNoZShlbnRyeSk7Cj4+PiArICAgICAgIH0KPj4+ICsg ICAgICAgZjJmc19jYWNoZV9nYW5nX3JlbGVhc2UoZW50cmllcywgbnIpOwo+Pj4gKwo+Pj4gKyAg ICAgICBpZiAoaW5kZXggPCBlbmQpIHsKPj4+ICAgICAgICAgICAgICAgICBjb25kX3Jlc2NoZWQo KTsKPj4+IC0gICAgICAgfSB3aGlsZSAoaW5kZXggPCBlbmQpOwo+Pj4gKyAgICAgICAgICAgICAg IGdvdG8gbmV4dDsKPj4+ICsgICAgICAgfQo+Pj4gIH0KPj4+Cj4+PiAtaW50IGYyZnNfaW5pdF9j b21wcmVzc19pbm9kZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4+PiArdm9pZCBmMmZzX2lu aXRfY29tcHJlc3NfY2FjaGVfY29udGV4dChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4+PiAg ewo+Pj4gLSAgICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlOwo+Pj4gLQo+Pj4gICAgICAgICBpZiAo IXRlc3Rfb3B0KHNiaSwgQ09NUFJFU1NfQ0FDSEUpKQo+Pj4gLSAgICAgICAgICAgICAgIHJldHVy biAwOwo+Pj4gLQo+Pj4gLSAgICAgICBpbm9kZSA9IGYyZnNfaWdldChzYmktPnNiLCBGMkZTX0NP TVBSRVNTX0lOTyhzYmkpKTsKPj4+IC0gICAgICAgaWYgKElTX0VSUihpbm9kZSkpCj4+PiAtICAg ICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoaW5vZGUpOwo+Pj4gLSAgICAgICBzYmktPmNvbXBy ZXNzX2lub2RlID0gaW5vZGU7Cj4+PiArICAgICAgICAgICAgICAgcmV0dXJuOwo+Pj4KPj4+ICAg ICAgICAgc2JpLT5jb21wcmVzc19wZXJjZW50ID0gQ09NUFJFU1NfUEVSQ0VOVDsKPj4+ICAgICAg ICAgc2JpLT5jb21wcmVzc193YXRlcm1hcmsgPSBDT01QUkVTU19XQVRFUk1BUks7Cj4+PiAtCj4+ PiAgICAgICAgIGF0b21pY19zZXQoJnNiaS0+Y29tcHJlc3NfcGFnZV9oaXQsIDApOwo+Pj4gLQo+ Pj4gLSAgICAgICByZXR1cm4gMDsKPj4+IC19Cj4+PiAtCj4+PiAtdm9pZCBmMmZzX2Rlc3Ryb3lf Y29tcHJlc3NfaW5vZGUoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+Pj4gLXsKPj4+IC0gICAg ICAgaWYgKCFzYmktPmNvbXByZXNzX2lub2RlKQo+Pj4gLSAgICAgICAgICAgICAgIHJldHVybjsK Pj4+IC0gICAgICAgaXB1dChzYmktPmNvbXByZXNzX2lub2RlKTsKPj4+IC0gICAgICAgc2JpLT5j b21wcmVzc19pbm9kZSA9IE5VTEw7Cj4+PiAgfQo+Pj4KPj4+ICBpbnQgZjJmc19pbml0X3BhZ2Vf YXJyYXlfY2FjaGUoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+Pj4gZGlmZiAtLWdpdCBhL2Zz L2YyZnMvZGVidWcuYyBiL2ZzL2YyZnMvZGVidWcuYwo+Pj4gaW5kZXggYmVkYWFkZTkyNjc3Li44 Y2QwNmY3YmE5ZTcgMTAwNjQ0Cj4+PiAtLS0gYS9mcy9mMmZzL2RlYnVnLmMKPj4+ICsrKyBiL2Zz L2YyZnMvZGVidWcuYwo+Pj4gQEAgLTIyNSw4ICsyMjUsOCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVf Z2VuZXJhbF9zdGF0dXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+Pj4gICAgICAgICBzaS0+ bm9kZV9jYWNoZXMgPSBOT0RFX0NBQ0hFKHNiaSktPm51bV9lbnRyaWVzOwo+Pj4gICAgICAgICBz aS0+bWV0YV9jYWNoZXMgPSBNRVRBX0NBQ0hFKHNiaSktPm51bV9lbnRyaWVzOwo+Pj4gICNpZmRl ZiBDT05GSUdfRjJGU19GU19DT01QUkVTU0lPTgo+Pj4gLSAgICAgICBpZiAoc2JpLT5jb21wcmVz c19pbm9kZSkgewo+Pj4gLSAgICAgICAgICAgICAgIHNpLT5jb21wcmVzc19wYWdlcyA9IENPTVBS RVNTX01BUFBJTkcoc2JpKS0+bnJwYWdlczsKPj4+ICsgICAgICAgaWYgKHRlc3Rfb3B0KHNiaSwg Q09NUFJFU1NfQ0FDSEUpKSB7Cj4+PiArICAgICAgICAgICAgICAgc2ktPmNvbXByZXNzX3BhZ2Vz ID0gQ09NUFJFU1NfQ0FDSEUoc2JpKS0+bnVtX2VudHJpZXM7Cj4+PiAgICAgICAgICAgICAgICAg c2ktPmNvbXByZXNzX3BhZ2VfaGl0ID0gYXRvbWljX3JlYWQoJnNiaS0+Y29tcHJlc3NfcGFnZV9o aXQpOwo+Pj4gICAgICAgICB9Cj4+PiAgI2VuZGlmCj4+PiBAQCAtMzg2LDEwICszODYsMTEgQEAg c3RhdGljIHZvaWQgdXBkYXRlX21lbV9pbmZvKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKPj4+ ICAgICAgICAgc2ktPnBhZ2VfbWVtICs9ICh1bnNpZ25lZCBsb25nIGxvbmcpTk9ERV9DQUNIRShz YmkpLT5udW1fZW50cmllcyA8PCBQQUdFX1NISUZUOwo+Pj4gICAgICAgICBzaS0+Y2FjaGVfbWVt ICs9IE5PREVfQ0FDSEUoc2JpKS0+bnVtX2VudHJpZXMgKiBzaXplb2Yoc3RydWN0IGYyZnNfY2Fj aGVkX2Jsb2NrKTsKPj4+ICAjaWZkZWYgQ09ORklHX0YyRlNfRlNfQ09NUFJFU1NJT04KPj4+IC0g ICAgICAgaWYgKHNiaS0+Y29tcHJlc3NfaW5vZGUpIHsKPj4+IC0gICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIG5wYWdlcyA9IENPTVBSRVNTX01BUFBJTkcoc2JpKS0+bnJwYWdlczsKPj4+ICsg ICAgICAgaWYgKHRlc3Rfb3B0KHNiaSwgQ09NUFJFU1NfQ0FDSEUpKSB7Cj4+PiArICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBucGFnZXMgPSBDT01QUkVTU19DQUNIRShzYmkpLT5udW1fZW50 cmllczsKPj4+Cj4+PiAgICAgICAgICAgICAgICAgc2ktPnBhZ2VfbWVtICs9ICh1bnNpZ25lZCBs b25nIGxvbmcpbnBhZ2VzIDw8IFBBR0VfU0hJRlQ7Cj4+PiArICAgICAgICAgICAgICAgc2ktPmNh Y2hlX21lbSArPSBucGFnZXMgKiBzaXplb2Yoc3RydWN0IGYyZnNfY2FjaGVkX2Jsb2NrKTsKPj4+ ICAgICAgICAgfQo+Pj4gICNlbmRpZgo+Pj4gIH0KPj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2Yy ZnMuaCBiL2ZzL2YyZnMvZjJmcy5oCj4+PiBpbmRleCA1YjFiMzEwNGVjMjAuLmQ1NTc0OWIwM2Vk MiAxMDA2NDQKPj4+IC0tLSBhL2ZzL2YyZnMvZjJmcy5oCj4+PiArKysgYi9mcy9mMmZzL2YyZnMu aAo+Pj4gQEAgLTIwNzgsNyArMjA3OCw2IEBAIHN0cnVjdCBmMmZzX3NiX2luZm8gewo+Pj4gICAg ICAgICB1MzIgY29tcHJfbmV3X2lub2RlOwo+Pj4KPj4+ICAgICAgICAgLyogRm9yIGNvbXByZXNz ZWQgYmxvY2sgY2FjaGUgKi8KPj4+IC0gICAgICAgc3RydWN0IGlub2RlICpjb21wcmVzc19pbm9k ZTsgICAgICAgICAgIC8qIGNhY2hlIGNvbXByZXNzZWQgYmxvY2tzICovCj4+PiAgICAgICAgIHVu c2lnbmVkIGludCBjb21wcmVzc19wZXJjZW50OyAgICAgICAgICAvKiBjYWNoZSBwYWdlIHBlcmNl bnRhZ2UgKi8KPj4+ICAgICAgICAgdW5zaWduZWQgaW50IGNvbXByZXNzX3dhdGVybWFyazsgICAg ICAgIC8qIGNhY2hlIHBhZ2Ugd2F0ZXJtYXJrICovCj4+PiAgICAgICAgIGF0b21pY190IGNvbXBy ZXNzX3BhZ2VfaGl0OyAgICAgICAgICAgICAvKiBjYWNoZSBoaXQgY291bnQgKi8KPj4+IEBAIC00 ODIxLDEzICs0ODIwLDExIEBAIHVuc2lnbmVkIGludCBmMmZzX2NsdXN0ZXJfYmxvY2tzX2FyZV9j b250aWd1b3VzKHN0cnVjdCBkbm9kZV9vZl9kYXRhICpkbiwKPj4+ICBpbnQgZjJmc19pbml0X2Nv bXByZXNzX2N0eChzdHJ1Y3QgY29tcHJlc3NfY3R4ICpjYyk7Cj4+PiAgdm9pZCBmMmZzX2Rlc3Ry b3lfY29tcHJlc3NfY3R4KHN0cnVjdCBjb21wcmVzc19jdHggKmNjLCBib29sIHJldXNlKTsKPj4+ ICB2b2lkIGYyZnNfaW5pdF9jb21wcmVzc19pbmZvKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSk7 Cj4+PiAtaW50IGYyZnNfaW5pdF9jb21wcmVzc19pbm9kZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpz YmkpOwo+Pj4gLXZvaWQgZjJmc19kZXN0cm95X2NvbXByZXNzX2lub2RlKHN0cnVjdCBmMmZzX3Ni X2luZm8gKnNiaSk7Cj4+PiArdm9pZCBmMmZzX2luaXRfY29tcHJlc3NfY2FjaGVfY29udGV4dChz dHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpOwo+Pj4gIGludCBmMmZzX2luaXRfcGFnZV9hcnJheV9j YWNoZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpOwo+Pj4gIHZvaWQgZjJmc19kZXN0cm95X3Bh Z2VfYXJyYXlfY2FjaGUoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKTsKPj4+ICBpbnQgX19pbml0 IGYyZnNfaW5pdF9jb21wcmVzc19jYWNoZSh2b2lkKTsKPj4+ICB2b2lkIGYyZnNfZGVzdHJveV9j b21wcmVzc19jYWNoZSh2b2lkKTsKPj4+IC1zdHJ1Y3QgYWRkcmVzc19zcGFjZSAqQ09NUFJFU1Nf TUFQUElORyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpOwo+Pj4gIHZvaWQgZjJmc19pbnZhbGlk YXRlX2NvbXByZXNzX3BhZ2VzX3JhbmdlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja190IGJsa2FkZHIsIHVu c2lnbmVkIGludCBsZW4pOwo+Pj4gIGJvb2wgZjJmc19sb2FkX2NvbXByZXNzZWRfZm9saW8oc3Ry dWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgZm9saW8gKmZvbGlvLAo+Pj4gQEAgLTQ4NzYs OCArNDg3Myw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmMmZzX3B1dF9mb2xpb19kaWMoc3RydWN0 IGZvbGlvICpmb2xpbywgYm9vbCBpbl90YXNrKQo+Pj4gIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQg aW50IGYyZnNfY2x1c3Rlcl9ibG9ja3NfYXJlX2NvbnRpZ3VvdXMoCj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZG5vZGVfb2ZfZGF0YSAqZG4sIHVuc2lnbmVkIGludCBvZnNfaW5f bm9kZSkgeyByZXR1cm4gMDsgfQo+Pj4gIHN0YXRpYyBpbmxpbmUgYm9vbCBmMmZzX3Nhbml0eV9j aGVja19jbHVzdGVyKHN0cnVjdCBkbm9kZV9vZl9kYXRhICpkbikgeyByZXR1cm4gZmFsc2U7IH0K Pj4+IC1zdGF0aWMgaW5saW5lIGludCBmMmZzX2luaXRfY29tcHJlc3NfaW5vZGUoc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpKSB7IHJldHVybiAwOyB9Cj4+PiAtc3RhdGljIGlubGluZSB2b2lkIGYy ZnNfZGVzdHJveV9jb21wcmVzc19pbm9kZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpIHsgfQo+ Pj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBmMmZzX2luaXRfY29tcHJlc3NfY2FjaGVfY29udGV4dChz dHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpIHsgfQo+Pj4gIHN0YXRpYyBpbmxpbmUgaW50IGYyZnNf aW5pdF9wYWdlX2FycmF5X2NhY2hlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkgeyByZXR1cm4g MDsgfQo+Pj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBmMmZzX2Rlc3Ryb3lfcGFnZV9hcnJheV9jYWNo ZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpIHsgfQo+Pj4gIHN0YXRpYyBpbmxpbmUgaW50IF9f aW5pdCBmMmZzX2luaXRfY29tcHJlc3NfY2FjaGUodm9pZCkgeyByZXR1cm4gMDsgfQo+Pj4gZGlm ZiAtLWdpdCBhL2ZzL2YyZnMvaW5vZGUuYyBiL2ZzL2YyZnMvaW5vZGUuYwo+Pj4gaW5kZXggYWE2 ZjRkNGE1NWE3Li4xNjg4ZDljYmFmZTEgMTAwNjQ0Cj4+PiAtLS0gYS9mcy9mMmZzL2lub2RlLmMK Pj4+ICsrKyBiL2ZzL2YyZnMvaW5vZGUuYwo+Pj4gQEAgLTU3MywxNSArNTczLDYgQEAgc3RhdGlj IGludCBkb19yZWFkX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCj4+PiAgICAgICAgIHJldHVy biAwOwo+Pj4gIH0KPj4+Cj4+PiAtc3RhdGljIGJvb2wgaXNfbWV0YV9pbm8oc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpLCB1bnNpZ25lZCBpbnQgaW5vKQo+Pj4gLXsKPj4+IC0jaWZkZWYgQ09ORklH X0YyRlNfRlNfQ09NUFJFU1NJT04KPj4+IC0gICAgICAgaWYgKHRlc3Rfb3B0KHNiaSwgQ09NUFJF U1NfQ0FDSEUpICYmIGlubyA9PSBGMkZTX0NPTVBSRVNTX0lOTyhzYmkpKQo+Pj4gLSAgICAgICAg ICAgICAgIHJldHVybiB0cnVlOwo+Pj4gLSNlbmRpZgo+Pj4gLSAgICAgICByZXR1cm4gZmFsc2U7 Cj4+PiAtfQo+Pj4gLQo+Pj4gIHN0cnVjdCBpbm9kZSAqZjJmc19pZ2V0KHN0cnVjdCBzdXBlcl9i bG9jayAqc2IsIHVuc2lnbmVkIGxvbmcgaW5vKQo+Pj4gIHsKPj4+ICAgICAgICAgc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpID0gRjJGU19TQihzYik7Cj4+PiBAQCAtNTkzLDQyICs1ODQsMTcgQEAg c3RydWN0IGlub2RlICpmMmZzX2lnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQg bG9uZyBpbm8pCj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4+ Pgo+Pj4gICAgICAgICBpZiAoIShpbm9kZV9zdGF0ZV9yZWFkX29uY2UoaW5vZGUpICYgSV9ORVcp KSB7Cj4+PiAtICAgICAgICAgICAgICAgaWYgKGlzX21ldGFfaW5vKHNiaSwgaW5vKSkgewo+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgZjJmc19lcnIoc2JpLCAiaW5hY2Nlc3NpYmxlIGlub2Rl OiAlbHUsIHJ1biBmc2NrIHRvIHJlcGFpciIsIGlubyk7Cj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICBzZXRfc2JpX2ZsYWcoc2JpLCBTQklfTkVFRF9GU0NLKTsKPj4+IC0gICAgICAgICAgICAg ICAgICAgICAgIHJldCA9IC1FRlNDT1JSVVBURUQ7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAg ICB0cmFjZV9mMmZzX2lnZXRfZXhpdChpbm9kZSwgcmV0KTsKPj4+IC0gICAgICAgICAgICAgICAg ICAgICAgIGlwdXQoaW5vZGUpOwo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgZjJmc19oYW5k bGVfZXJyb3Ioc2JpLCBFUlJPUl9DT1JSVVBURURfSU5PREUpOwo+Pj4gLSAgICAgICAgICAgICAg ICAgICAgICAgZnNlcnJvcl9yZXBvcnRfZmlsZV9tZXRhZGF0YShpbm9kZSwgcmV0LCBHRlBfTk9G Uyk7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUihyZXQpOwo+Pj4g LSAgICAgICAgICAgICAgIH0KPj4+IC0KPj4+ICAgICAgICAgICAgICAgICB0cmFjZV9mMmZzX2ln ZXQoaW5vZGUpOwo+Pj4gICAgICAgICAgICAgICAgIHJldHVybiBpbm9kZTsKPj4+ICAgICAgICAg fQo+Pj4KPj4+IC0gICAgICAgaWYgKGlzX21ldGFfaW5vKHNiaSwgaW5vKSkKPj4+IC0gICAgICAg ICAgICAgICBnb3RvIG1ha2Vfbm93Owo+Pj4gLQo+Pj4gICAgICAgICByZXQgPSBkb19yZWFkX2lu b2RlKGlub2RlKTsKPj4+ICAgICAgICAgaWYgKHJldCkKPj4+ICAgICAgICAgICAgICAgICBnb3Rv IGJhZF9pbm9kZTsKPj4+IC1tYWtlX25vdzoKPj4+ICsKPj4+ICAgICAgICAgZjJmc19zZXRfaW5v ZGVfZmxhZ3MoaW5vZGUpOwo+Pj4KPj4+IC0gICAgICAgaWYgKGlubyA9PSBGMkZTX0NPTVBSRVNT X0lOTyhzYmkpKSB7Cj4+PiAtI2lmZGVmIENPTkZJR19GMkZTX0ZTX0NPTVBSRVNTSU9OCj4+PiAt ICAgICAgICAgICAgICAgaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZjJmc19jb21wcmVzc19h b3BzOwo+Pj4gLSAgICAgICAgICAgICAgIC8qCj4+PiAtICAgICAgICAgICAgICAgICogZ2VuZXJp Y19lcnJvcl9yZW1vdmVfZm9saW8gb25seSB0cnVuY2F0ZXMgcGFnZXMgb2YgcmVndWxhcgo+Pj4g LSAgICAgICAgICAgICAgICAqIGlub2RlCj4+PiAtICAgICAgICAgICAgICAgICovCj4+PiAtICAg ICAgICAgICAgICAgaW5vZGUtPmlfbW9kZSB8PSBTX0lGUkVHOwo+Pj4gLSNlbmRpZgo+Pj4gLSAg ICAgICAgICAgICAgIG1hcHBpbmdfc2V0X2dmcF9tYXNrKGlub2RlLT5pX21hcHBpbmcsCj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICBHRlBfTk9GUyB8IF9fR0ZQX0hJR0hNRU0gfCBfX0dGUF9N T1ZBQkxFKTsKPj4+IC0gICAgICAgfSBlbHNlIGlmIChTX0lTUkVHKGlub2RlLT5pX21vZGUpKSB7 Cj4+PiArICAgICAgIGlmIChTX0lTUkVHKGlub2RlLT5pX21vZGUpKSB7Cj4+PiAgICAgICAgICAg ICAgICAgaW5vZGUtPmlfb3AgPSAmZjJmc19maWxlX2lub2RlX29wZXJhdGlvbnM7Cj4+PiAgICAg ICAgICAgICAgICAgaW5vZGUtPmlfZm9wID0gJmYyZnNfZmlsZV9vcGVyYXRpb25zOwo+Pj4gICAg ICAgICAgICAgICAgIGlub2RlLT5pX21hcHBpbmctPmFfb3BzID0gJmYyZnNfZGJsb2NrX2FvcHM7 Cj4+PiBAQCAtODc5LDcgKzg0NSw3IEBAIHN0YXRpYyB2b2lkIGYyZnNfZXZpY3RfaW5vZGVfd29y ayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4+PiAgLyoKPj4+ICAgKiBSZXR1cm4gdHJ1ZSwg aWYgd2Ugc2hvdWxkbid0IGdvIHRocm91Z2ggcG9zdF9ldmljdF9pbm9kZS4KPj4+ICAgKi8KPj4+ IC1zdGF0aWMgYm9vbCBmMmZzX3ByZV9ldmljdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQo+ Pj4gK3N0YXRpYyB2b2lkIGYyZnNfcHJlX2V2aWN0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUp Cj4+PiAgewo+Pj4gICAgICAgICBzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkgPSBGMkZTX0lfU0Io aW5vZGUpOwo+Pj4gICAgICAgICBzdHJ1Y3QgZjJmc19pbm9kZV9pbmZvICpmaSA9IEYyRlNfSShp bm9kZSk7Cj4+PiBAQCAtOTA1LDE3ICs4NzEsMTIgQEAgc3RhdGljIGJvb2wgZjJmc19wcmVfZXZp Y3RfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKPj4+ICAgICAgICAgICAgIHRlc3Rfb3B0KHNi aSwgQ09NUFJFU1NfQ0FDSEUpICYmIGYyZnNfY29tcHJlc3NlZF9maWxlKGlub2RlKSkKPj4+ICAg ICAgICAgICAgICAgICBmMmZzX2ludmFsaWRhdGVfY29tcHJlc3NfcGFnZXMoc2JpLCBpbm9kZS0+ aV9pbm8pOwo+Pj4KPj4+IC0gICAgICAgaWYgKGlub2RlLT5pX2lubyA9PSBGMkZTX0NPTVBSRVNT X0lOTyhzYmkpKQo+Pj4gLSAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwo+Pj4gLQo+Pj4gICAg ICAgICBmMmZzX2J1Z19vbihzYmksIGdldF9kaXJ0eV9wYWdlcyhpbm9kZSkpOwo+Pj4gICAgICAg ICBmMmZzX3JlbW92ZV9kaXJ0eV9pbm9kZShpbm9kZSk7Cj4+PiAgICAgICAgIGYyZnNfcmVtb3Zl X2RvbmF0ZV9pbm9kZShpbm9kZSk7Cj4+Pgo+Pj4gICAgICAgICBpZiAoIUlTX0RFVklDRV9BTElB U0lORyhpbm9kZSkpCj4+PiAgICAgICAgICAgICAgICAgZjJmc19kZXN0cm95X2V4dGVudF90cmVl KGlub2RlKTsKPj4+IC0KPj4+IC0gICAgICAgcmV0dXJuIGZhbHNlOwo+Pj4gIH0KPj4+Cj4+PiAg c3RhdGljIHZvaWQgZjJmc19kZWxldGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKPj4+IEBA IC0xMDc3LDE1ICsxMDM4LDEzIEBAIHN0YXRpYyB2b2lkIGYyZnNfcG9zdF9ldmljdF9pbm9kZShz dHJ1Y3QgaW5vZGUgKmlub2RlKQo+Pj4gICAqLwo+Pj4gIHZvaWQgZjJmc19ldmljdF9pbm9kZShz dHJ1Y3QgaW5vZGUgKmlub2RlKQo+Pj4gIHsKPj4+IC0gICAgICAgaWYgKGYyZnNfcHJlX2V2aWN0 X2lub2RlKGlub2RlKSkKPj4+IC0gICAgICAgICAgICAgICBnb3RvIGNsZWFyX291dDsKPj4+ICsg ICAgICAgZjJmc19wcmVfZXZpY3RfaW5vZGUoaW5vZGUpOwo+Pj4KPj4+ICAgICAgICAgaWYgKCFp bm9kZS0+aV9ubGluayAmJiAhaXNfYmFkX2lub2RlKGlub2RlKSkKPj4+ICAgICAgICAgICAgICAg ICBmMmZzX2RlbGV0ZV9pbm9kZShpbm9kZSk7Cj4+Pgo+Pj4gICAgICAgICBmMmZzX3Bvc3RfZXZp Y3RfaW5vZGUoaW5vZGUpOwo+Pj4KPj4+IC1jbGVhcl9vdXQ6Cj4+PiAgICAgICAgIGZzY3J5cHRf cHV0X2VuY3J5cHRpb25faW5mbyhpbm9kZSk7Cj4+PiAgICAgICAgIGNsZWFyX2lub2RlKGlub2Rl KTsKPj4+ICB9Cj4+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9ub2RlLmMgYi9mcy9mMmZzL25vZGUu Ywo+Pj4gaW5kZXggMDdjMjNiMzVlN2Y3Li5jZjA1MjAwOGFhNjQgMTAwNjQ0Cj4+PiAtLS0gYS9m cy9mMmZzL25vZGUuYwo+Pj4gKysrIGIvZnMvZjJmcy9ub2RlLmMKPj4+IEBAIC0xMTksNyArMTE5 LDcgQEAgYm9vbCBmMmZzX2F2YWlsYWJsZV9mcmVlX21lbW9yeShzdHJ1Y3QgZjJmc19zYl9pbmZv ICpzYmksIGludCB0eXBlKQo+Pj4gICAgICAgICAgICAgICAgICAqIGV4Y2VlZCB0aHJlc2hvbGQs IGRlbnkgY2FjaGluZyBjb21wcmVzcyBwYWdlLgo+Pj4gICAgICAgICAgICAgICAgICAqLwo+Pj4g ICAgICAgICAgICAgICAgIHJlcyA9IChmcmVlX3JhbSA+IGF2YWlsX3JhbSAqIHNiaS0+Y29tcHJl c3Nfd2F0ZXJtYXJrIC8gMTAwKSAmJgo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgKENPTVBS RVNTX01BUFBJTkcoc2JpKS0+bnJwYWdlcyA8Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICAo Q09NUFJFU1NfQ0FDSEUoc2JpKS0+bnVtX2VudHJpZXMgPAo+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgIGZyZWVfcmFtICogc2JpLT5jb21wcmVzc19wZXJjZW50IC8gMTAwKTsKPj4+ICAjZWxz ZQo+Pj4gICAgICAgICAgICAgICAgIHJlcyA9IGZhbHNlOwo+Pj4gZGlmZiAtLWdpdCBhL2ZzL2Yy ZnMvc2hyaW5rZXIuYyBiL2ZzL2YyZnMvc2hyaW5rZXIuYwo+Pj4gaW5kZXggMjBiM2ZlMWY4YzA3 Li5lN2QyODMwZTZhMjMgMTAwNjQ0Cj4+PiAtLS0gYS9mcy9mMmZzL3Nocmlua2VyLmMKPj4+ICsr KyBiL2ZzL2YyZnMvc2hyaW5rZXIuYwo+Pj4gQEAgLTQwLDcgKzQwLDggQEAgc3RhdGljIHVuc2ln bmVkIGxvbmcgX19jb3VudF9leHRlbnRfY2FjaGUoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+ Pj4gIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fY291bnRfY2FjaGUoc3RydWN0IGYyZnNfc2JfaW5m byAqc2JpKQo+Pj4gIHsKPj4+ICAgICAgICAgcmV0dXJuIHNiaS0+bWV0YV9ibG9ja3MubnVtX2Vu dHJpZXMgKwo+Pj4gLSAgICAgICAgICAgICAgIHNiaS0+bm9kZV9ibG9ja3MubnVtX2VudHJpZXM7 Cj4+PiArICAgICAgICAgICAgICAgc2JpLT5ub2RlX2Jsb2Nrcy5udW1fZW50cmllcyArCj4+PiAr ICAgICAgICAgICAgICAgc2JpLT5jb21wcmVzc19ibG9ja3MubnVtX2VudHJpZXM7Cj4+PiAgfQo+ Pj4KPj4+ICB1bnNpZ25lZCBsb25nIGYyZnNfc2hyaW5rX2NvdW50KHN0cnVjdCBzaHJpbmtlciAq c2hyaW5rLAo+Pj4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc3VwZXIuYyBiL2ZzL2YyZnMvc3VwZXIu Ywo+Pj4gaW5kZXggNmI0MmI3MzZhNjYyLi41Nzg3Y2ZiNzZjNmUgMTAwNjQ0Cj4+PiAtLS0gYS9m cy9mMmZzL3N1cGVyLmMKPj4+ICsrKyBiL2ZzL2YyZnMvc3VwZXIuYwo+Pj4gQEAgLTIwNTAsOCAr MjA1MCw2IEBAIHN0YXRpYyB2b2lkIGYyZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq c2IpCj4+Pgo+Pj4gICAgICAgICBmMmZzX2J1Z19vbihzYmksIHNiaS0+ZnN5bmNfbm9kZV9udW0p Owo+Pj4KPj4+IC0gICAgICAgZjJmc19kZXN0cm95X2NvbXByZXNzX2lub2RlKHNiaSk7Cj4+PiAt Cj4+PiAgICAgICAgIGYyZnNfZGVzdHJveV9jYWNoZShDT01QUkVTU19DQUNIRShzYmkpKTsKPj4+ ICAgICAgICAgZjJmc19kZXN0cm95X2NhY2hlKE5PREVfQ0FDSEUoc2JpKSk7Cj4+PiAgICAgICAg IGYyZnNfZGVzdHJveV9jYWNoZShNRVRBX0NBQ0hFKHNiaSkpOwo+Pj4gQEAgLTUyODUsNiArNTI4 Myw4IEBAIHN0YXRpYyBpbnQgZjJmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2Is IHN0cnVjdCBmc19jb250ZXh0ICpmYykKPj4+Cj4+PiAgICAgICAgIGYyZnNfaW5pdF9mc3luY19u b2RlX2luZm8oc2JpKTsKPj4+Cj4+PiArICAgICAgIGYyZnNfaW5pdF9jb21wcmVzc19jYWNoZV9j b250ZXh0KHNiaSk7Cj4+PiArCj4+PiAgICAgICAgIC8qIHNldHVwIGNoZWNrcG9pbnQgcmVxdWVz dCBjb250cm9sIGFuZCBzdGFydCBjaGVja3BvaW50IGlzc3VlIHRocmVhZCAqLwo+Pj4gICAgICAg ICBmMmZzX2luaXRfY2twdF9yZXFfY29udHJvbChzYmkpOwo+Pj4gICAgICAgICBpZiAoIWYyZnNf cmVhZG9ubHkoc2IpICYmICF0ZXN0X29wdChzYmksIERJU0FCTEVfQ0hFQ0tQT0lOVCkgJiYKPj4+ IEBAIC01MzYzLDEzICs1MzYzLDkgQEAgc3RhdGljIGludCBmMmZzX2ZpbGxfc3VwZXIoc3RydWN0 IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKQo+Pj4gICAgICAgICAgICAg ICAgIGdvdG8gZnJlZV9pbm9fZW50cnk7Cj4+PiAgICAgICAgIH0KPj4+Cj4+PiAtICAgICAgIGVy ciA9IGYyZnNfaW5pdF9jb21wcmVzc19pbm9kZShzYmkpOwo+Pj4gLSAgICAgICBpZiAoZXJyKQo+ Pj4gLSAgICAgICAgICAgICAgIGdvdG8gZnJlZV9yb290X2lub2RlOwo+Pj4gLQo+Pj4gICAgICAg ICBlcnIgPSBmMmZzX3JlZ2lzdGVyX3N5c2ZzKHNiaSk7Cj4+PiAgICAgICAgIGlmIChlcnIpCj4+ PiAtICAgICAgICAgICAgICAgZ290byBmcmVlX2NvbXByZXNzX2lub2RlOwo+Pj4gKyAgICAgICAg ICAgICAgIGdvdG8gZnJlZV9yb290X2lub2RlOwo+Pj4KPj4+ICAgICAgICAgc2JpLT51bW91bnRf bG9ja19ob2xkZXIgPSBjdXJyZW50Owo+Pj4gICNpZmRlZiBDT05GSUdfUVVPVEEKPj4+IEBAIC01 NTM3LDggKzU1MzMsNiBAQCBzdGF0aWMgaW50IGYyZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJf YmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCj4+PiAgICAgICAgIC8qIGV2aWN0IHNv bWUgaW5vZGVzIGJlaW5nIGNhY2hlZCBieSBHQyAqLwo+Pj4gICAgICAgICBldmljdF9pbm9kZXMo c2IpOwo+Pj4gICAgICAgICBmMmZzX3VucmVnaXN0ZXJfc3lzZnMoc2JpKTsKPj4+IC1mcmVlX2Nv bXByZXNzX2lub2RlOgo+Pj4gLSAgICAgICBmMmZzX2Rlc3Ryb3lfY29tcHJlc3NfaW5vZGUoc2Jp KTsKPj4+ICBmcmVlX3Jvb3RfaW5vZGU6Cj4+PiAgICAgICAgIGRwdXQoc2ItPnNfcm9vdCk7Cj4+ PiAgICAgICAgIHNiLT5zX3Jvb3QgPSBOVUxMOwo+Pj4gQEAgLTU2NTUsNyArNTY0OSw4IEBAIHN0 YXRpYyB2b2lkIGtpbGxfZjJmc19zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQo+Pj4gICAg ICAgICAgICAgICAgICAqIGNvbXByZXNzIGlub2RlIGNhY2hlLgo+Pj4gICAgICAgICAgICAgICAg ICAqLwo+Pj4gICAgICAgICAgICAgICAgIGlmICh0ZXN0X29wdChzYmksIENPTVBSRVNTX0NBQ0hF KSkKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHRydW5jYXRlX2lub2RlX3BhZ2VzX2ZpbmFs KENPTVBSRVNTX01BUFBJTkcoc2JpKSk7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICBmMmZz X2ludmFsaWRhdGVfY29tcHJlc3NfcGFnZXNfcmFuZ2Uoc2JpLAo+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDAsIFVJTlRfTUFYKTsKPj4+ICAjZW5kaWYKPj4+Cj4+ PiAgICAgICAgICAgICAgICAgaWYgKGlzX3NiaV9mbGFnX3NldChzYmksIFNCSV9JU19ESVJUWSkg fHwKPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2YyZnNfZnMuaCBiL2luY2x1ZGUvbGlu dXgvZjJmc19mcy5oCj4+PiBpbmRleCAxMDVjZmVlZGVhNzQuLjUzMzQ0ZTFmMmI0NCAxMDA2NDQK Pj4+IC0tLSBhL2luY2x1ZGUvbGludXgvZjJmc19mcy5oCj4+PiArKysgYi9pbmNsdWRlL2xpbnV4 L2YyZnNfZnMuaAo+Pj4gQEAgLTM0LDcgKzM0LDYgQEAKPj4+ICAjZGVmaW5lIEYyRlNfUkVTRVJW RURfTk9ERV9OVU0gICAgICAgICAzCj4+Pgo+Pj4gICNkZWZpbmUgRjJGU19ST09UX0lOTyhzYmkp ICAgICAoKHNiaSktPnJvb3RfaW5vX251bSkKPj4+IC0jZGVmaW5lIEYyRlNfQ09NUFJFU1NfSU5P KHNiaSkgKE5NX0koc2JpKS0+bWF4X25pZCkKPj4+Cj4+PiAgI2RlZmluZSBGMkZTX01BWF9RVU9U QVMgICAgICAgICAgICAgICAgMwo+Pj4KPj4+IC0tCj4+PiAyLjQ5LjAKPj4+Cj4+Pgo+Pj4KPj4+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiBMaW51 eC1mMmZzLWRldmVsIG1haWxpbmcgbGlzdAo+Pj4gTGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3Vy Y2Vmb3JnZS5uZXQKPj4+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3Rp bmZvL2xpbnV4LWYyZnMtZGV2ZWwKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXgtZjJmcy1kZXZlbCBtYWlsaW5nIGxpc3QKTGludXgtZjJmcy1k ZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQv bGlzdHMvbGlzdGluZm8vbGludXgtZjJmcy1kZXZlbAo=