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 2EF39CC6B1C for ; Wed, 14 Oct 2026 03:13:56 +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=aEQTmVu5qEy2PJpkMhQl1Yh2HI9ku/B5QND95ynnti4=; b=ELoPwJEnAsiIqfJ5xbHOgd7fHO aFVewVnx173P6CvIWEWgHJFs1UmfS8M1J/JkJsewxFMY4S5h0V82l+M3VGhMNPKP6O/Gc8SrsoOfW I7nf/XdhA0JAl4A/ZL1yHDuTdciKLSv46f3J8JZCj3Rh9o0lM8So6zzAU+egIV+3SoNI=; 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 1xGpRD-0004vw-Mh; Wed, 14 Oct 2026 03:13:55 +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 1xGpRC-0004vn-0b for linux-f2fs-devel@lists.sourceforge.net; Wed, 14 Oct 2026 03:13:54 +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=pub0y8/eoX3u6lTe1/WCKzlMffQUWwOp2wu7xbPFAYM=; b=fguI9Iiia1Sy5HkFKVX1eGcVOA 1irGU1gVJghhwtnE9DAufBz+TVAb058oY7whokikQxIBJrrCxVcY94oQG/YHdrIgZY4vmiL477C69 ArlpgdWVOqrQM0Xp/lmPmorBd7AgOPA1ktCJcLawLCs29IybZapDRLxeLHKdg8vRrdTI=; 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=pub0y8/eoX3u6lTe1/WCKzlMffQUWwOp2wu7xbPFAYM=; b=JpEOEH0Cl7f87pWL2mYMX0pwUd XADuvEjRgRz3ITiQZOOO8ui/Vxijxhyt4oighj7TsNgVfuvZ1L055UtXPG9YldHyIKGSJug1YgWWJ XMa/MJ0VLQ36WehEaIqUENqmimFnLRIKxpUEbogWwsix12NeOlxofOo+J69j0IjZ/EOw=; Received: from sea.source.kernel.org ([172.234.252.31]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1xGpRA-0007YI-Bk for linux-f2fs-devel@lists.sourceforge.net; Wed, 14 Oct 2026 03:13:53 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id DA4CC42D8E; Wed, 14 Oct 2026 03:13:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8E9051F00893; Wed, 14 Oct 2026 03:13:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791947626; bh=pub0y8/eoX3u6lTe1/WCKzlMffQUWwOp2wu7xbPFAYM=; h=Date:Cc:Subject:To:References:From:In-Reply-To; b=KrNsDeVwKSwLc0W7EME5yDMHrIx7hnSaZF+nbP8ZTDLZgOjOsuhKj0tgpxHO/aQ2t tK5skJI8eEQnr51Z3qg75i/xrR48FqrEScGjAgEF7NwGVIx6aPwoKx9KhIXzKIm+ek 47cOkgEANUZUQgaxXSaj1bhafC5aN2lZp+gmnDDrrYoXh2pKyabqOaF2qnDGfq3JdX h+XixlS2teJC+xy0hC2t4A/mYCSsLKRUn/sRxkTuvvgZ3JQoXToxCKliGDiJj725iv 4bETMx+7aur7T+xtTW421Hloj+vTk0AWX73BUoFppxZcptZpXKkZsNsxo6NpGKoBz0 cIPBTCNg30y6g== Message-ID: <0aedc5af-1273-4510-a8fa-5ddf2281b699@kernel.org> Date: Wed, 14 Oct 2026 11:13:43 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Daeho Jeong References: <20260911143549.909867-1-daeho43@gmail.com> <20260911143549.909867-2-daeho43@gmail.com> <3e5f2bd4-f0e6-4f79-b182-6cb8ac331580@kernel.org> Content-Language: en-US In-Reply-To: X-Headers-End: 1xGpRA-0007YI-Bk Subject: Re: [f2fs-dev] [PATCH v2 2/2] f2fs: introduce reserve_shrink mount option for filesystem shrinkage 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: Daeho Jeong , kernel-team@android.com, 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 T24gMTAvMTQvMjYgMDc6MjcsIERhZWhvIEplb25nIHdyb3RlOgo+IE9uIFR1ZSwgT2N0IDEzLCAy MDI2IGF0IDg6MzbigK9BTSBEYWVobyBKZW9uZyA8ZGFlaG80M0BnbWFpbC5jb20+IHdyb3RlOgo+ Pgo+PiBPbiBNb24sIE9jdCAxMiwgMjAyNiBhdCA3OjE14oCvUE0gRGFlaG8gSmVvbmcgPGRhZWhv NDNAZ21haWwuY29tPiB3cm90ZToKPj4+Cj4+PiBPbiBNb24sIE9jdCAxMiwgMjAyNiBhdCA2OjI3 4oCvUE0gQ2hhbyBZdSA8Y2hhb0BrZXJuZWwub3JnPiB3cm90ZToKPj4+Pgo+Pj4+IE9uIDkvMTUv MjYgMDA6MjQsIERhZWhvIEplb25nIHdyb3RlOgo+Pj4+PiBPbiBNb24sIFNlcCAxNCwgMjAyNiBh dCAxMjoxNeKAr0FNIENoYW8gWXUgPGNoYW9Aa2VybmVsLm9yZz4gd3JvdGU6Cj4+Pj4+Pgo+Pj4+ Pj4gT24gOS8xMS8yNiAyMjozNSwgRGFlaG8gSmVvbmcgd3JvdGU6Cj4+Pj4+Pj4gRnJvbTogRGFl aG8gSmVvbmcgPGRhZWhvamVvbmdAZ29vZ2xlLmNvbT4KPj4+Pj4+Pgo+Pj4+Pj4+IFdoZW4gcHJl cGFyaW5nIGZvciBzdWJzZXF1ZW50IG9ubGluZSBmaWxlc3lzdGVtIHNocmlua2FnZSAoZS5nLiwg ZHVyaW5nCj4+Pj4+Pj4gcGFydGl0aW9uIHJlc2l6aW5nIG9yIEZPVEEgdXBkYXRlcyksIHN1ZmZp Y2llbnQgZnJlZSBzcGFjZSBtdXN0IGJlCj4+Pj4+Pj4gcHJlc2VydmVkIHNvIHRoYXQgdmFsaWQg ZGF0YSBibG9ja3MgY2FuIGJlIGV2YWN1YXRlZCBhbmQgdGhlIGZpbGVzeXN0ZW0KPj4+Pj4+PiBj YW4gc2FmZWx5IHNocmluay4KPj4+Pj4+Pgo+Pj4+Pj4+IEV4aXN0aW5nIHJlc2VydmVfcm9vdCBj YW5ub3QgcHJldmVudCBzcGFjZSBleGhhdXN0aW9uIGJ5IHByaXZpbGVnZWQgcm9vdAo+Pj4+Pj4+ IHByb2Nlc3NlcyAoc3VjaCBhcyBPVEEgdXBkYXRlcnMsIHBhY2thZ2UgbWFuYWdlcnMsIGFuZCBz eXN0ZW0gZGFlbW9ucwo+Pj4+Pj4+IHJ1bm5pbmcgd2l0aCBDQVBfU1lTX1JFU09VUkNFKSwgd2hp Y2ggY2FuIGFsbG9jYXRlIGJsb2NrcyBmcm9tIHRoZSByb290Cj4+Pj4+Pj4gcmVzZXJ2ZSBhbmQg bGVhZCB0byByZXNpemUgZmFpbHVyZXMgZHVlIHRvIGxhY2sgb2Ygc3BhY2UuIE1vcmVvdmVyLAo+ Pj4+Pj4KPj4+Pj4+IEknbSB0aGlua2luZyBhYm91dCByZXVzaW5nIGV4aXN0aW5nIG1vdW50IG9w dGlvbiBBTUFQLCBpcyB0aGVyZSBhbnkgcHJvYmxlbQo+Pj4+Pj4gdG8gdXNlICJyZXNlcnZlX3Jv b3Q9IiB3LyAxMjhtYitzaHJ1bmtfc2l6ZV9tYiB3aGVuIHdlIGV4ZWN1dGUgb25saW5lIGZpbGVz eXN0ZQo+Pj4+Pj4gc2hyaW5rYWdlPyBvbmNlIGl0IGlzIGRvbmUsIHJlY292ZXIgdy8gcmVzZXJ2 ZV9yb290PTEyOG1iLgo+Pj4+Pj4KPj4+Pj4+PiBydW50aW1lIGNvbmZpZ3VyYWJsZSByZXNlcnZl ZF9ibG9ja3MgcmVwcmVzZW50cyBwZXJtYW5lbnQgR0MgYW5kIG1ldGFkYXRhCj4+Pj4+Pj4gaGVh ZHJvb20gdGhhdCBtdXN0IHBlcnNpc3QgYWZ0ZXIgcmVzaXplLCB3aGljaCB3b3VsZCBjYXVzZSBk b3VibGUtY291bnRpbmcKPj4+Pj4+PiBpZiBpbmZsYXRlZCBmb3Igc2hyaW5rYWdlLgo+Pj4+Pj4K Pj4+Pj4+IEkgZGlkbid0IGdldCBpdCwgY2FuIHlvdSBwbGVhc2UgZXhwbGFpbiBhIGJpdCBtb3Jl IGFib3V0IHRoaXMgaXNzdWU/Cj4+Pj4+Pgo+Pj4+Pj4gVGhhbmtzLAo+Pj4+Pgo+Pj4+PiBIaSBD aGFvLAo+Pj4+Pgo+Pj4+PiBUaGVyZSBhcmUgdGhyZWUgbWFpbiByZWFzb25zIHdoeSByZXNlcnZl X3Jvb3QgY2Fubm90IGJlIHJldXNlZDoKPj4+Pj4KPj4+Pj4gMS4gRG91YmxlLWNvdW50aW5nIGlu IGYyZnNfcmVzaXplX2ZzKCk6Cj4+Pj4+IGYyZnNfcmVzaXplX2ZzKCkgY2hlY2tzOgo+Pj4+PiAg ICBzaHJ1bmtfYmxvY2tzICsgdmFsaWRfdXNlcl9ibG9ja3MgKyByb290X3Jlc2VydmVkX2Jsb2Nr cyArIC4uLiA+Cj4+Pj4+IHVzZXJfYmxvY2tfY291bnQKPj4+Pj4gU2luY2Ugcm9vdF9yZXNlcnZl ZF9ibG9ja3MgbXVzdCBwZXJzaXN0IGFmdGVyCj4+Pj4+IHJlc2l6ZSwgaW5mbGF0aW5nIGl0IGJ5 IHNocnVua19zaXplIGNhdXNlcyBzaHJ1bmtfc2l6ZSB0byBiZSBjb3VudGVkIHR3aWNlLAo+Pj4+ PiByZXF1aXJpbmcgMnggZnJlZSBzcGFjZSBhbmQgdHJpZ2dlcmluZyBmYWxzZSAtRU5PU1BDLiBS ZXNldHRpbmcgaXQgcmlnaHQgYmVmb3JlCj4+Pj4+IHJlc2l6ZSBhbHNvIGludHJvZHVjZXMgYSBy YWNlIHdpbmRvdyB3aGVyZSBjb25jdXJyZW50IHdyaXRlcyBjYW4KPj4+Pj4gY29uc3VtZSB0aGUg c3BhY2UuCj4+Pj4+IDIuIFJvb3QgY2FuIGFsbG9jYXRlIGZyb20gcmVzZXJ2ZV9yb290Ogo+Pj4+ PiByZXNlcnZlX3Jvb3QgYWxsb3dzIHJvb3QvQ0FQX1NZU19SRVNPVVJDRSBwcm9jZXNzZXMgdG8g YWxsb2NhdGUuIER1cmluZyBPVEEsCj4+Pj4+IHN5c3RlbSBkYWVtb25zIGFuZCB1cGRhdGVycyBj YW4gZWF0IGludG8gdGhlIHJlc2VydmVkIGJsb2Nrcy4KPj4+Pj4gcmVzZXJ2ZV9zaHJpbmsgc3Ry aWN0bHkgYmxvY2tzIGFsbCBjYWxsZXJzLCBpbmNsdWRpbmcgcm9vdC4KPj4+Pgo+Pj4+IERhZWhv LCBzb3JyeSBmb3IgdGhlIGRlbGF5Lgo+Pj4+Cj4+Pj4gVGhhbmtzIGZvciB0aGUgZXhwbGFuYXRp b24sIEkgc2VlLCBpdCdzIG5vdCBhcHByb3ByaWF0ZSB0byByZXVzZQo+Pj4+ICJyZXNlcnZlX3Jv b3Q9IiBvcHRpb24gZm9yIHlvdXIgcmVxdWlyZW1lbnQuCj4+Pj4KPj4+PiBNYXkgSSBhc2sgdGhh dCBkbyB5b3UgbmVlZCB0byBrZWVwIHRoZSByZXNlcnZhdGlvbiBmb3IgYSBsb25nIHRpbWUgYmVm b3JlIHJlc2l6ZSwKPj4+PiBlLmcuIGZyb20gT1RBIHN0YXJ0cyB0aWxsIHNocmluayBoYXBwZW5z PyBvciBpcyBpdCBlbm91Z2ggdG8gbWFrZSBpdCByZXNlcnZlZAo+Pj4+IGR1cmluZyBmMmZzX3Jl c2l6ZV9mcygpPwo+Pj4+Cj4+Pj4gSWYgdGhlIGxhdHRlciwgY2FuIHdlIGp1c3QgcmVzZXJ2ZSBz aHJ1bmtfYmxvY2tzIGluIGYyZnNfcmVzaXplX2ZzKCkKPj4+PiBkaXJlY3RseSwgdy8gdGhlIHNh bWUgd2F5IHdlIGRpZCBmb3IgZjJmc19pb2NfcmVzZXJ2ZV9kZXZfYWxpYXMoKT8gVGhlbgo+Pj4+ IHdlIGRvbid0IG5lZWQgYSBuZXcgbW91bnQgb3B0aW9uLiBTb21ldGhpbmcgbGlrZToKPj4+Pgo+ Pj4+IGYyZnNfcmVzaXplX2ZzKCkKPj4+PiAgICAgICAgICBzcGluX2xvY2soJnNiaS0+c3RhdF9s b2NrKTsKPj4+PiAgICAgICAgICBpZiAoc2hydW5rX2Jsb2NrcyArIHZhbGlkX3VzZXJfYmxvY2tz KHNiaSkgKyAuLi4gPiBzYmktPnVzZXJfYmxvY2tfY291bnQpCj4+Pj4gICAgICAgICAgICAgIGVy ciA9IC1FTk9TUEM7Cj4+Pj4gICAgICAgICAgZWxzZQo+Pj4+ICAgICAgICAgICAgICBzYmktPnJl c2l6ZV9yZXNlcnZlZF9ibG9ja3MgKz0gc2hydW5rX2Jsb2NrczsKPj4+PiAgICAgICAgICBzcGlu X3VubG9jaygmc2JpLT5zdGF0X2xvY2spOwo+Pj4+Cj4+Pj4gICAgICAgICAgZnJlZV9zZWdtZW50 X3JhbmdlKHNiaSwgc2VjcywgdHJ1ZSk7Cj4+Pj4gICAgICAgICAgLi4uCj4+Pj4gICAgICAgICAg ZnJlZXplX3N1cGVyKCk7Cj4+Pj4gICAgICAgICAgLi4uCj4+Pj4gICAgICAgICAgc3Bpbl9sb2Nr KCZzYmktPnN0YXRfbG9jayk7Cj4+Pj4gICAgICAgICAgc2JpLT51c2VyX2Jsb2NrX2NvdW50IC09 IHNocnVua19ibG9ja3M7Cj4+Pj4gICAgICAgICAgc2JpLT5yZXNpemVfcmVzZXJ2ZWRfYmxvY2tz IC09IHNocnVua19ibG9ja3M7Cj4+Pj4gICAgICAgICAgc3Bpbl91bmxvY2soJnNiaS0+c3RhdF9s b2NrKTsKPj4+PiAgICAgICAgICAuLi4KPj4+PiAgICAgICAgICAvKiBlcnJvciBwYXRoOiBzYmkt PnJlc2l6ZV9yZXNlcnZlZF9ibG9ja3MgLT0gc2hydW5rX2Jsb2NrcyAqLwo+Pj4+Cj4+Pj4gYW5k IGluIGdldF9hdmFpbGFibGVfYmxvY2tfY291bnQoKSwgZGVkdWN0IHJlc2l6ZV9yZXNlcnZlZF9i bG9ja3MgYXMgd2UgZGlkIGZvcgo+Pj4+IGFsaWFzX3Jlc2VydmVkX2Jsb2Nrcywgc28gdGhhdCBu byBvbmUsIGluY2x1ZGluZyByb290LCBjYW4gYWxsb2NhdGUgZnJvbSB0aGUKPj4+PiByZXNlcnZl ZCBzcGFjZSBkdXJpbmcgcmVzaXplLgo+Pj4+Cj4+Pj4gVGhhbmtzLAo+Pj4KPj4+IEhpIENoYW8s Cj4+Pgo+Pj4gVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlvbi4KPj4+Cj4+PiBVbmZvcnR1bmF0ZWx5 LCByZXNlcnZpbmcgb25seSBpbnNpZGUgZjJmc19yZXNpemVfZnMoKSBpcyBub3QgZW5vdWdoIGZv cgo+Pj4gb3VyIHVzZSBjYXNlLiBXZSBuZWVkIHRoZSByZXNlcnZhdGlvbiB0byBiZSBpbiBwbGFj ZSBmb3IgYSBsb25nIHRpbWUKPj4+IGJlZm9yZSB0aGUgcmVzaXplLCBpLmUuIGZyb20gdGhlIG1v bWVudCB3ZSBkZWNpZGUgdG8gc2hyaW5rIChtb3VudCB0aW1lKQo+Pj4gdW50aWwgRjJGU19JT0Nf UkVTSVpFX0ZTIGlzIGFjdHVhbGx5IGlzc3VlZC4gRHVyaW5nIHRoYXQgd2luZG93LAo+Pj4gcHJp dmlsZWdlZCBwcm9jZXNzZXMgKE9UQSB1cGRhdGVyLCBwYWNrYWdlIG1hbmFnZXIsIHN5c3RlbSBk YWVtb25zKSBrZWVwCj4+PiB3cml0aW5nIHRvIHRoZSBmaWxlc3lzdGVtLiBJZiB0aGV5IGNvbnN1 bWUgdGhlIGZyZWUgc3BhY2UsIHRoZSBFTk9TUEMKPj4+IGNoZWNrIGF0IHRoZSBlbnRyeSBvZiBm MmZzX3Jlc2l6ZV9mcygpIGZhaWxzIHJpZ2h0IGF3YXksIHNvIHRoZXJlIGlzIG5vCj4+PiBjaGFu Y2UgdG8gcmVzZXJ2ZSBhbnl0aGluZyBpbnNpZGUgdGhlIGlvY3RsLiBBbHNvLCBzdGF0ZnMgd291 bGQga2VlcAo+Pj4gcmVwb3J0aW5nIHNwYWNlIHRoYXQgaXMgZ29pbmcgdG8gYmUgY3V0IG9mZi4K Pj4+Cj4+PiBUaGF0J3Mgd2h5IGl0J3MgYSBtb3VudCBvcHRpb246IHRoZSByZXNlcnZhdGlvbiBp cyBhcHBsaWVkIGJlZm9yZSBhbnkKPj4+IHVzZXJzcGFjZSB3cml0ZSBjYW4gaGFwcGVuLCBpdCdz IGhvbm9yZWQgZm9yIGFsbCBjYWxsZXJzIGluY2x1ZGluZyByb290LAo+Pj4gaXQncyByZWZsZWN0 ZWQgaW4gc3RhdGZzLCBhbmQgaXQncyByZWxlYXNlZCBhdXRvbWF0aWNhbGx5IG9uY2UgdGhlCj4+ PiBzaHJpbmsgc3VjY2VlZHMuCj4+Pgo+Pj4gVGhhbmtzLAo+Pgo+PiBQbHVzLAo+Pgo+PiBQbGVh c2UgdGhpbmsgYWJvdXQgdGhlIEZPVEEgc2NlbmFyaW8gYmVsb3c6Cj4+Cj4+IDEpIFRoZSBkZXZp Y2UgZG93bmxvYWRzIHRoZSBGT1RBIGltYWdlLiBBdCB0aGlzIHBvaW50LCB3ZSBjaGVjayB0aGF0 Cj4+ICAgIHRoZXJlIGlzIGVub3VnaCBmcmVlIHNwYWNlIGZvciB0aGUgc2hyaW5rLgo+PiAyKSBU aGUgZGV2aWNlIHJlYm9vdHMgdG8gYXBwbHkgdGhlIHVwZGF0ZS4KPj4gMykgQWZ0ZXIgdGhlIHJl Ym9vdCwgL2RhdGEgaXMgbW91bnRlZCBhbmQgRjJGU19JT0NfUkVTSVpFX0ZTIGlzIGlzc3VlZAo+ PiAgICB0byBzaHJpbmsgdGhlIGZpbGVzeXN0ZW0uCj4+Cj4+IEJldHdlZW4gMSkgYW5kIDMpLCB0 aGVyZSBpcyBhIGxvbmcgd2luZG93IHRoYXQgYWxzbyBzcGFucyBhIHJlYm9vdC4KPj4KPj4gVGhh bmtzLAo+IAo+IEhpIENoYW8sCj4gCj4gU29ycnkgZm9yIHRoZSBjb25mdXNpb24uIE91ciBzY2Vu YXJpbyBoYXMgcmVjZW50bHkgY2hhbmdlZC4KPiAKPiBOb3cgdGhlIHNocmluayBpcyB0cmlnZ2Vy ZWQgYXQgT1RBIGluc3RhbGwgdGltZSwgYmVmb3JlIHRoZSByZWJvb3Q6IHRoZQo+IHVwZGF0ZXIg ZmlndXJlcyBvdXQgaG93IG11Y2ggc3BhY2UgdGhlIG5ldyBwYXJ0aXRpb25zIG5lZWQsIGFuZCBp c3N1ZXMKPiBGMkZTX0lPQ19SRVNJWkVfRlMgb24gdGhlIG1vdW50ZWQgL2RhdGEgcmlnaHQgYXdh eS4gU28gd2UgZG9uJ3QgbmVlZCB0bwo+IGtlZXAgdGhlIHJlc2VydmF0aW9uIGZvciBhIGxvbmcg dGltZSBiZWZvcmUgdGhlIHJlc2l6ZSBhbnltb3JlLiBXaGF0IHdlCj4gbmVlZCBpcyB0byBwcm90 ZWN0IHRoZSBzcGFjZSBkdXJpbmcgZjJmc19yZXNpemVfZnMoKSwgYmV0d2VlbiB0aGUKPiBkcnkt cnVuIEdDIGFuZCBmcmVlemVfc3VwZXIoKSwgd2hlcmUgb3RoZXIgcHJvY2Vzc2VzIChpbmNsdWRp bmcgcm9vdCkKPiBjYW4gY29uc3VtZSBpdC4KPiAKPiBTbyB5b3VyIHN1Z2dlc3Rpb24gZml0cyB0 aGUgbmV3IHNjZW5hcmlvIGJldHRlci4gSSdsbCBkcm9wIHRoZQo+IHJlc2VydmVfc2hyaW5rIG1v dW50IG9wdGlvbiwgYW5kIHNlbmQgYSBuZXcgcGF0Y2ggdGhhdCByZXNlcnZlcwo+IHNocnVua19i bG9ja3MgaW5zaWRlIGYyZnNfcmVzaXplX2ZzKCkgYW5kIGRlZHVjdHMgaXQgaW4KPiBnZXRfYXZh aWxhYmxlX2Jsb2NrX2NvdW50KCkgZm9yIGFsbCBjYWxsZXJzLgoKSGkgRGFlaG8sCgpJIHNlZSwg dGhhbmtzIGZvciB0aGUgc3luYy11cC4KCkJUVywgY291bGQgeW91IHBsZWFzZSBhZGQgYWJvdmUg YmFja2dyb3VuZCBpbmZvcm1hdGlvbiBpbnRvIGNvbW1pdCBtZXNzYWdlPwpJIHRoaW5rIGl0IGNh biBoZWxwIGRldmVsb3Blci9yZXZpZXdlciB0byBrbm93IG1vcmUgYmFja2dyb3VuZCBpbmZvLgoK VGhhbmtzLAoKPiAKPiBUaGFua3MgZm9yIHRoZSByZXZpZXcsCj4gCj4+Cj4+Pgo+Pj4+Cj4+Pj4+ Cj4+Pj4+IFRoYW5rcywKPj4+Pj4gRGFlaG8KPj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBU byByZXNvbHZlIHRoaXMsIGludHJvZHVjZSBhIGRlZGljYXRlZCByZXNlcnZlX3Nocmluaz08Ymxv Y2tzPgo+Pj4+Pj4+IG1vdW50IG9wdGlvbjoKPj4+Pj4+PiAxLiBTeW1tZXRyaWNhbGx5IG1pcnJv cnMgcmVzZXJ2ZV9yb290PTxibG9ja3M+IGluIGJsb2NrIHVuaXRzIHRvCj4+Pj4+Pj4gICAgICBw cmUtcmVzZXJ2ZSBzcGFjZSBzcGVjaWZpY2FsbHkgZm9yIHN1YnNlcXVlbnQgZmlsZXN5c3RlbSBz aHJpbmthZ2UuCj4+Pj4+Pj4gMi4gSW4gZ2V0X2F2YWlsYWJsZV9ibG9ja19jb3VudCgpLCB1bmNv bmRpdGlvbmFsbHkgZGVkdWN0cwo+Pj4+Pj4+ICAgICAgcmVzZXJ2ZV9zaHJpbmtfYmxvY2tzIGZv ciBhbGwgY2FsbGVycywgc3RyaWN0bHkgcmVqZWN0aW5nIGFsbAo+Pj4+Pj4+ICAgICAgYWxsb2Nh dGlvbnMgKGluY2x1ZGluZyByb290IC8gQ0FQX1NZU19SRVNPVVJDRSkgb25jZSBhdmFpbGFibGUg YmxvY2tzCj4+Pj4+Pj4gICAgICBhcmUgZXhoYXVzdGVkLgo+Pj4+Pj4+IDMuIEluIGYyZnNfc3Rh dGZzKCksIGRlZHVjdHMgcmVzZXJ2ZV9zaHJpbmtfYmxvY2tzIGZyb20gZl9iZnJlZSAoYW5kCj4+ Pj4+Pj4gICAgICBmX2JhdmFpbCkgc28gdGhhdCBmaWxlc3lzdGVtIHN0YXRpc3RpY3MgYWNjdXJh dGVseSByZWZsZWN0IHVzYWJsZSBzcGFjZS4KPj4+Pj4+PiA0LiBJbiBmMmZzX3Jlc2l6ZV9mcygp LCBhdXRvbWF0aWNhbGx5IHJlc2V0cyByZXNlcnZlX3Nocmlua19ibG9ja3MgdG8gMAo+Pj4+Pj4+ ICAgICAgYW5kIGNsZWFycyBGMkZTX01PVU5UX1JFU0VSVkVfU0hSSU5LIHVwb24gc3VjY2Vzc2Z1 bCBzaHJpbmsgY29tcGxldGlvbiwKPj4+Pj4+PiAgICAgIHJlbGVhc2luZyBhbnkgcmVtYWluaW5n IHJlc2VydmF0aW9uLgo+Pj4+Pj4+IDUuIEluIHN5c2ZzOiByZXNlcnZlZF9ibG9ja3MsIHN1YnRy YWN0cyByZXNlcnZlX3Nocmlua19ibG9ja3Mgd2hlbgo+Pj4+Pj4+ICAgICAgdmFsaWRhdGluZyB0 aGUgdXBwZXIgbGltaXQgb2YgY29uZmlndXJhYmxlIHJlc2VydmVkIGJsb2Nrcy4KPj4+Pj4+Pgo+ Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IERhZWhvIEplb25nIDxkYWVob2plb25nQGdvb2dsZS5jb20+ Cj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4gdjI6Cj4+Pj4+Pj4gICAgLSBTcGxpdCBvdXQgbW91bnQgb3B0 aW9uIGJpdG1hc2sgZXhwYW5zaW9uIChCSVRfVUxMKSBpbnRvIGEgc2VwYXJhdGUKPj4+Pj4+PiAg ICAgIHByZXJlcXVpc2l0ZSBwYXRjaCAoUGF0Y2ggMS8yKS4KPj4+Pj4+PiAtLS0KPj4+Pj4+PiAg ICBEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0IHwgIDcgKysrKysKPj4+Pj4+PiAg ICBmcy9mMmZzL2YyZnMuaCAgICAgICAgICAgICAgICAgICAgIHwgIDkgKysrKysrCj4+Pj4+Pj4g ICAgZnMvZjJmcy9nYy5jICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrKysKPj4+Pj4+PiAg ICBmcy9mMmZzL3N1cGVyLmMgICAgICAgICAgICAgICAgICAgIHwgNDcgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCj4+Pj4+Pj4gICAgZnMvZjJmcy9zeXNmcy5jICAgICAgICAgICAgICAg ICAgICB8IDEzICsrKysrKystLQo+Pj4+Pj4+ICAgIDUgZmlsZXMgY2hhbmdlZCwgNzkgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPj4+Pj4+Pgo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9Eb2N1 bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0IGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVt cy9mMmZzLnJzdAo+Pj4+Pj4+IGluZGV4IDc3MTIxNmY0NTIwNy4uZGJkYzVkNWE4M2FkIDEwMDY0 NAo+Pj4+Pj4+IC0tLSBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZjJmcy5yc3QKPj4+Pj4+ PiArKysgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0Cj4+Pj4+Pj4gQEAgLTE5 MSw2ICsxOTEsMTMgQEAgcmVzZXJ2ZV9ub2RlPSVkICAgICAgICAgICBTdXBwb3J0IGNvbmZpZ3Vy aW5nIHJlc2VydmVkIG5vZGVzIHdoaWNoIGFyZSB1c2VkIGZvcgo+Pj4+Pj4+ICAgICAgICAgICAg ICAgICAgICAgICAgIGdpZCwgdGhlIGRlZmF1bHQgbGltaXQgaXMgMTIuNSUgb2YgYWxsIG5vZGVz Lgo+Pj4+Pj4+ICAgIHJlc3VpZD0lZCAgICAgICAgICAgIFRoZSB1c2VyIElEIHdoaWNoIG1heSB1 c2UgdGhlIHJlc2VydmVkIGJsb2NrcyBhbmQgbm9kZXMuCj4+Pj4+Pj4gICAgcmVzZ2lkPSVkICAg ICAgICAgICAgVGhlIGdyb3VwIElEIHdoaWNoIG1heSB1c2UgdGhlIHJlc2VydmVkIGJsb2NrcyBh bmQgbm9kZXMuCj4+Pj4+Pj4gK3Jlc2VydmVfc2hyaW5rPSVkICAgICBTdXBwb3J0IHByZS1yZXNl cnZpbmcgc3BhY2UgZm9yIHN1YnNlcXVlbnQgZmlsZXN5c3RlbQo+Pj4+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICAgc2hyaW5rYWdlIChlLmcuIGR1cmluZyBwYXJ0aXRpb24gcmVzaXppbmcgb3Ig Rk9UQSksCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICB1bml0OiBibG9ja3MuIFVubGlr ZSByZXNlcnZlX3Jvb3QsIGFsbG9jYXRpb25zIGZyb20KPj4+Pj4+PiArICAgICAgICAgICAgICAg ICAgICAgIHRoaXMgcmVzZXJ2ZWQgc3BhY2Ugc3RyaWN0bHkgcmVqZWN0IGFsbCBjYWxsZXJzCj4+ Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAoaW5jbHVkaW5nIHJvb3QgLyBDQVBfU1lTX1JF U09VUkNFKS4gT25jZSB0aGUKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIGZpbGVzeXN0 ZW0gaXMgc3VjY2Vzc2Z1bGx5IHNocnVuayB2aWEgcmVzaXplLCB0aGlzCj4+Pj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICB2YWx1ZSBpcyBhdXRvbWF0aWNhbGx5IHJlc2V0IHRvIDAuCj4+Pj4+ Pj4gICAgZmF1bHRfaW5qZWN0aW9uPSVkICAgRW5hYmxlIGZhdWx0IGluamVjdGlvbiBpbiBhbGwg c3VwcG9ydGVkIHR5cGVzIHdpdGgKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICBzcGVj aWZpZWQgaW5qZWN0aW9uIHJhdGUuCj4+Pj4+Pj4gICAgZmF1bHRfdHlwZT0lZCAgICAgICAgICAg ICAgICBTdXBwb3J0IGNvbmZpZ3VyaW5nIGZhdWx0IGluamVjdGlvbiB0eXBlLCBzaG91bGQgYmUK Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZzL2YyZnMuaAo+Pj4+ Pj4+IGluZGV4IDRhYWYyOWRlM2Y2Zi4uNDhhOTE3NzFiZTk1IDEwMDY0NAo+Pj4+Pj4+IC0tLSBh L2ZzL2YyZnMvZjJmcy5oCj4+Pj4+Pj4gKysrIGIvZnMvZjJmcy9mMmZzLmgKPj4+Pj4+PiBAQCAt MTQ1LDYgKzE0NSw3IEBAIGVudW0gZjJmc19tb3VudF9vcHQgewo+Pj4+Pj4+ICAgICAgICAgKi8K Pj4+Pj4+PiAgICAgICAgRjJGU19NT1VOVF9MQVpZVElNRSwKPj4+Pj4+PiAgICAgICAgRjJGU19N T1VOVF9SRVNFUlZFX05PREUsCj4+Pj4+Pj4gKyAgICAgRjJGU19NT1VOVF9SRVNFUlZFX1NIUklO SywKPj4+Pj4+PiAgICB9Owo+Pj4+Pj4+Cj4+Pj4+Pj4gICAgI2RlZmluZSBGMkZTX09QVElPTihz YmkpICAgICgoc2JpKS0+bW91bnRfb3B0KQo+Pj4+Pj4+IEBAIC0yMjYsNiArMjI3LDcgQEAgc3Ry dWN0IGYyZnNfbW91bnRfaW5mbyB7Cj4+Pj4+Pj4gICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBv cHQ7Cj4+Pj4+Pj4gICAgICAgIGJsb2NrX3Qgcm9vdF9yZXNlcnZlZF9ibG9ja3M7ICAgLyogcm9v dCByZXNlcnZlZCBibG9ja3MgKi8KPj4+Pj4+PiAgICAgICAgYmxvY2tfdCByb290X3Jlc2VydmVk X25vZGVzOyAgICAvKiByb290IHJlc2VydmVkIG5vZGVzICovCj4+Pj4+Pj4gKyAgICAgYmxvY2tf dCByZXNlcnZlX3Nocmlua19ibG9ja3M7ICAvKiByZXNlcnZlIGJsb2NrcyBmb3Igc2hyaW5rICov Cj4+Pj4+Pj4gICAgICAgIGt1aWRfdCBzX3Jlc3VpZDsgICAgICAgICAgICAgICAgLyogcmVzZXJ2 ZWQgYmxvY2tzIGZvciB1aWQgKi8KPj4+Pj4+PiAgICAgICAga2dpZF90IHNfcmVzZ2lkOyAgICAg ICAgICAgICAgICAvKiByZXNlcnZlZCBibG9ja3MgZm9yIGdpZCAqLwo+Pj4+Pj4+ICAgICAgICBp bnQgYWN0aXZlX2xvZ3M7ICAgICAgICAgICAgICAgIC8qICMgb2YgYWN0aXZlIGxvZ3MgKi8KPj4+ Pj4+PiBAQCAtMjY1OCw2ICsyNjYwLDEzIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGdl dF9hdmFpbGFibGVfYmxvY2tfY291bnQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+Pj4+Pj4+ ICAgICAgICBpZiAodGVzdF9vcHQoc2JpLCBSRVNFUlZFX1JPT1QpICYmICFfX2FsbG93X3Jlc2Vy dmVkX3Jvb3Qoc2JpLCBpbm9kZSwgY2FwKSkKPj4+Pj4+PiAgICAgICAgICAgICAgICBhdmFpbF91 c2VyX2Jsb2NrX2NvdW50IC09IEYyRlNfT1BUSU9OKHNiaSkucm9vdF9yZXNlcnZlZF9ibG9ja3M7 Cj4+Pj4+Pj4KPj4+Pj4+PiArICAgICBpZiAodGVzdF9vcHQoc2JpLCBSRVNFUlZFX1NIUklOSykp IHsKPj4+Pj4+PiArICAgICAgICAgICAgIGlmIChhdmFpbF91c2VyX2Jsb2NrX2NvdW50ID4gRjJG U19PUFRJT04oc2JpKS5yZXNlcnZlX3Nocmlua19ibG9ja3MpCj4+Pj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgIGF2YWlsX3VzZXJfYmxvY2tfY291bnQgLT0gRjJGU19PUFRJT04oc2JpKS5yZXNl cnZlX3Nocmlua19ibG9ja3M7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICBlbHNlCj4+Pj4+Pj4gKyAg ICAgICAgICAgICAgICAgICAgIGF2YWlsX3VzZXJfYmxvY2tfY291bnQgPSAwOwo+Pj4+Pj4+ICsg ICAgIH0KPj4+Pj4+PiArCj4+Pj4+Pj4gICAgICAgIGlmICh1bmxpa2VseShpc19zYmlfZmxhZ19z ZXQoc2JpLCBTQklfQ1BfRElTQUJMRUQpKSkgewo+Pj4+Pj4+ICAgICAgICAgICAgICAgIGlmIChh dmFpbF91c2VyX2Jsb2NrX2NvdW50ID4gc2JpLT51bnVzYWJsZV9ibG9ja19jb3VudCkKPj4+Pj4+ PiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsX3VzZXJfYmxvY2tfY291bnQgLT0gc2JpLT51 bnVzYWJsZV9ibG9ja19jb3VudDsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9nYy5jIGIv ZnMvZjJmcy9nYy5jCj4+Pj4+Pj4gaW5kZXggYmMyMmRkZTFjYjMwLi41NTZjNDc5MzQ3OGQgMTAw NjQ0Cj4+Pj4+Pj4gLS0tIGEvZnMvZjJmcy9nYy5jCj4+Pj4+Pj4gKysrIGIvZnMvZjJmcy9nYy5j Cj4+Pj4+Pj4gQEAgLTI0OTIsNiArMjQ5MiwxMSBAQCBpbnQgZjJmc19yZXNpemVfZnMoc3RydWN0 IGZpbGUgKmZpbHAsIF9fdTY0IGJsb2NrX2NvdW50KQo+Pj4+Pj4+ICAgICAgICAgICAgICAgIHNw aW5fbG9jaygmc2JpLT5zdGF0X2xvY2spOwo+Pj4+Pj4+ICAgICAgICAgICAgICAgIHNiaS0+dXNl cl9ibG9ja19jb3VudCArPSBzaHJ1bmtfYmxvY2tzOwo+Pj4+Pj4+ICAgICAgICAgICAgICAgIHNw aW5fdW5sb2NrKCZzYmktPnN0YXRfbG9jayk7Cj4+Pj4+Pj4gKyAgICAgfSBlbHNlIGlmICh0ZXN0 X29wdChzYmksIFJFU0VSVkVfU0hSSU5LKSkgewo+Pj4+Pj4+ICsgICAgICAgICAgICAgc3Bpbl9s b2NrKCZzYmktPnN0YXRfbG9jayk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICBGMkZTX09QVElPTihz YmkpLnJlc2VydmVfc2hyaW5rX2Jsb2NrcyA9IDA7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICBjbGVh cl9vcHQoc2JpLCBSRVNFUlZFX1NIUklOSyk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICBzcGluX3Vu bG9jaygmc2JpLT5zdGF0X2xvY2spOwo+Pj4+Pj4+ICAgICAgICB9Cj4+Pj4+Pj4gICAgb3V0X2Vy cjoKPj4+Pj4+PiAgICAgICAgZjJmc191cF93cml0ZV90cmFjZSgmc2JpLT5jcF9nbG9iYWxfc2Vt LCAmY2xjKTsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zdXBlci5jIGIvZnMvZjJmcy9z dXBlci5jCj4+Pj4+Pj4gaW5kZXggYTVlMTA5YmRjZWJjLi41OGYzMzc1MGIyYTggMTAwNjQ0Cj4+ Pj4+Pj4gLS0tIGEvZnMvZjJmcy9zdXBlci5jCj4+Pj4+Pj4gKysrIGIvZnMvZjJmcy9zdXBlci5j Cj4+Pj4+Pj4gQEAgLTE5Niw2ICsxOTYsNyBAQCBlbnVtIHsKPj4+Pj4+PiAgICAgICAgT3B0X2Rh dGFfZmx1c2gsCj4+Pj4+Pj4gICAgICAgIE9wdF9yZXNlcnZlX3Jvb3QsCj4+Pj4+Pj4gICAgICAg IE9wdF9yZXNlcnZlX25vZGUsCj4+Pj4+Pj4gKyAgICAgT3B0X3Jlc2VydmVfc2hyaW5rLAo+Pj4+ Pj4+ICAgICAgICBPcHRfcmVzZ2lkLAo+Pj4+Pj4+ICAgICAgICBPcHRfcmVzdWlkLAo+Pj4+Pj4+ ICAgICAgICBPcHRfbW9kZSwKPj4+Pj4+PiBAQCAtMzI4LDYgKzMyOSw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZnNfcGFyYW1ldGVyX3NwZWMgZjJmc19wYXJhbV9zcGVjc1tdID0gewo+Pj4+Pj4+ ICAgICAgICBmc3BhcmFtX2ZsYWcoImRhdGFfZmx1c2giLCBPcHRfZGF0YV9mbHVzaCksCj4+Pj4+ Pj4gICAgICAgIGZzcGFyYW1fdTMyKCJyZXNlcnZlX3Jvb3QiLCBPcHRfcmVzZXJ2ZV9yb290KSwK Pj4+Pj4+PiAgICAgICAgZnNwYXJhbV91MzIoInJlc2VydmVfbm9kZSIsIE9wdF9yZXNlcnZlX25v ZGUpLAo+Pj4+Pj4+ICsgICAgIGZzcGFyYW1fdTMyKCJyZXNlcnZlX3NocmluayIsIE9wdF9yZXNl cnZlX3NocmluayksCj4+Pj4+Pj4gICAgICAgIGZzcGFyYW1fZ2lkKCJyZXNnaWQiLCBPcHRfcmVz Z2lkKSwKPj4+Pj4+PiAgICAgICAgZnNwYXJhbV91aWQoInJlc3VpZCIsIE9wdF9yZXN1aWQpLAo+ Pj4+Pj4+ICAgICAgICBmc3BhcmFtX2VudW0oIm1vZGUiLCBPcHRfbW9kZSwgZjJmc19wYXJhbV9t b2RlKSwKPj4+Pj4+PiBAQCAtNDA3LDYgKzQwOSw3IEBAIHN0YXRpYyBtYXRjaF90YWJsZV90IGYy ZnNfY2hlY2twb2ludF90b2tlbnMgPSB7Cj4+Pj4+Pj4gICAgI2RlZmluZSBGMkZTX1NQRUNfbG9v a3VwX21vZGUgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI0KQo+Pj4+Pj4+ICAgICNkZWZp bmUgRjJGU19TUEVDX3Jlc2VydmVfbm9kZSAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNSkK Pj4+Pj4+PiAgICAjZGVmaW5lIEYyRlNfU1BFQ19yZXNpemFibGVfdGFpbF9zZWNubyAgICAgICAg ICAgICAgKDEgPDwgMjYpCj4+Pj4+Pj4gKyNkZWZpbmUgRjJGU19TUEVDX3Jlc2VydmVfc2hyaW5r ICAgICAgICAgICAgICgxIDw8IDI3KQo+Pj4+Pj4+Cj4+Pj4+Pj4gICAgc3RydWN0IGYyZnNfZnNf Y29udGV4dCB7Cj4+Pj4+Pj4gICAgICAgIHN0cnVjdCBmMmZzX21vdW50X2luZm8gaW5mbzsKPj4+ Pj4+PiBAQCAtNTUwLDYgKzU1MywyNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbGltaXRfcmVzZXJ2 ZV9yb290KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKPj4+Pj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGMkZTX09QVElPTihzYmkpLnNfcmVzZ2lkKSk7Cj4+ Pj4+Pj4gICAgfQo+Pj4+Pj4+Cj4+Pj4+Pj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBsaW1pdF9yZXNl cnZlX3NocmluayhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4+Pj4+Pj4gK3sKPj4+Pj4+PiAr ICAgICBibG9ja190IGJsb2NrX2xpbWl0Owo+Pj4+Pj4+ICsKPj4+Pj4+PiArICAgICBpZiAoIXRl c3Rfb3B0KHNiaSwgUkVTRVJWRV9TSFJJTkspKQo+Pj4+Pj4+ICsgICAgICAgICAgICAgcmV0dXJu Owo+Pj4+Pj4+ICsKPj4+Pj4+PiArICAgICBibG9ja19saW1pdCA9IHNiaS0+dXNlcl9ibG9ja19j b3VudCAtIHNiaS0+cmVzZXJ2ZWRfYmxvY2tzOwo+Pj4+Pj4+ICsgICAgIGlmICh0ZXN0X29wdChz YmksIFJFU0VSVkVfUk9PVCkpIHsKPj4+Pj4+PiArICAgICAgICAgICAgIGlmIChibG9ja19saW1p dCA+IEYyRlNfT1BUSU9OKHNiaSkucm9vdF9yZXNlcnZlZF9ibG9ja3MpCj4+Pj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgIGJsb2NrX2xpbWl0IC09IEYyRlNfT1BUSU9OKHNiaSkucm9vdF9yZXNl cnZlZF9ibG9ja3M7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICBlbHNlCj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgIGJsb2NrX2xpbWl0ID0gMDsKPj4+Pj4+PiArICAgICB9Cj4+Pj4+Pj4gKyAg ICAgaWYgKEYyRlNfT1BUSU9OKHNiaSkucmVzZXJ2ZV9zaHJpbmtfYmxvY2tzID4gYmxvY2tfbGlt aXQpIHsKPj4+Pj4+PiArICAgICAgICAgICAgIEYyRlNfT1BUSU9OKHNiaSkucmVzZXJ2ZV9zaHJp bmtfYmxvY2tzID0gYmxvY2tfbGltaXQ7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICBmMmZzX2luZm8o c2JpLCAiUmVkdWNlIHJlc2VydmVkIGJsb2NrcyBmb3Igc2hyaW5rID0gJXUiLAo+Pj4+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIEYyRlNfT1BUSU9OKHNiaSkucmVzZXJ2ZV9zaHJpbmtfYmxv Y2tzKTsKPj4+Pj4+PiArICAgICB9Cj4+Pj4+Pj4gK30KPj4+Pj4+PiArCj4+Pj4+Pj4gICAgc3Rh dGljIGlubGluZSB2b2lkIGFkanVzdF91bnVzYWJsZV9jYXBfcGVyYyhzdHJ1Y3QgZjJmc19zYl9p bmZvICpzYmkpCj4+Pj4+Pj4gICAgewo+Pj4+Pj4+ICAgICAgICBpZiAoIUYyRlNfT1BUSU9OKHNi aSkudW51c2FibGVfY2FwX3BlcmMpCj4+Pj4+Pj4gQEAgLTk1Myw2ICs5NzcsMTQgQEAgc3RhdGlj IGludCBmMmZzX3BhcnNlX3BhcmFtKHN0cnVjdCBmc19jb250ZXh0ICpmYywgc3RydWN0IGZzX3Bh cmFtZXRlciAqcGFyYW0pCj4+Pj4+Pj4gICAgICAgICAgICAgICAgRjJGU19DVFhfSU5GTyhjdHgp LnJvb3RfcmVzZXJ2ZWRfbm9kZXMgPSByZXN1bHQudWludF8zMjsKPj4+Pj4+PiAgICAgICAgICAg ICAgICBjdHgtPnNwZWNfbWFzayB8PSBGMkZTX1NQRUNfcmVzZXJ2ZV9ub2RlOwo+Pj4+Pj4+ICAg ICAgICAgICAgICAgIGJyZWFrOwo+Pj4+Pj4+ICsgICAgIGNhc2UgT3B0X3Jlc2VydmVfc2hyaW5r Ogo+Pj4+Pj4+ICsgICAgICAgICAgICAgaWYgKHJlc3VsdC51aW50XzMyKQo+Pj4+Pj4+ICsgICAg ICAgICAgICAgICAgICAgICBjdHhfc2V0X29wdChjdHgsIEYyRlNfTU9VTlRfUkVTRVJWRV9TSFJJ TkspOwo+Pj4+Pj4+ICsgICAgICAgICAgICAgZWxzZQo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICBjdHhfY2xlYXJfb3B0KGN0eCwgRjJGU19NT1VOVF9SRVNFUlZFX1NIUklOSyk7Cj4+Pj4+ Pj4gKyAgICAgICAgICAgICBGMkZTX0NUWF9JTkZPKGN0eCkucmVzZXJ2ZV9zaHJpbmtfYmxvY2tz ID0gcmVzdWx0LnVpbnRfMzI7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICBjdHgtPnNwZWNfbWFzayB8 PSBGMkZTX1NQRUNfcmVzZXJ2ZV9zaHJpbms7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICBicmVhazsK Pj4+Pj4+PiAgICAgICAgY2FzZSBPcHRfcmVzdWlkOgo+Pj4+Pj4+ICAgICAgICAgICAgICAgIEYy RlNfQ1RYX0lORk8oY3R4KS5zX3Jlc3VpZCA9IHJlc3VsdC51aWQ7Cj4+Pj4+Pj4gICAgICAgICAg ICAgICAgY3R4LT5zcGVjX21hc2sgfD0gRjJGU19TUEVDX3Jlc3VpZDsKPj4+Pj4+PiBAQCAtMTc3 NSw2ICsxODA3LDkgQEAgc3RhdGljIHZvaWQgZjJmc19hcHBseV9vcHRpb25zKHN0cnVjdCBmc19j b250ZXh0ICpmYywgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKPj4+Pj4+PiAgICAgICAgaWYgKGN0 eC0+c3BlY19tYXNrICYgRjJGU19TUEVDX3Jlc2VydmVfbm9kZSkKPj4+Pj4+PiAgICAgICAgICAg ICAgICBGMkZTX09QVElPTihzYmkpLnJvb3RfcmVzZXJ2ZWRfbm9kZXMgPQo+Pj4+Pj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEYyRlNfQ1RYX0lORk8oY3R4KS5yb290 X3Jlc2VydmVkX25vZGVzOwo+Pj4+Pj4+ICsgICAgIGlmIChjdHgtPnNwZWNfbWFzayAmIEYyRlNf U1BFQ19yZXNlcnZlX3NocmluaykKPj4+Pj4+PiArICAgICAgICAgICAgIEYyRlNfT1BUSU9OKHNi aSkucmVzZXJ2ZV9zaHJpbmtfYmxvY2tzID0KPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEYyRlNfQ1RYX0lORk8oY3R4KS5yZXNlcnZlX3Nocmlua19ibG9ja3M7 Cj4+Pj4+Pj4gICAgICAgIGlmIChjdHgtPnNwZWNfbWFzayAmIEYyRlNfU1BFQ19yZXNnaWQpCj4+ Pj4+Pj4gICAgICAgICAgICAgICAgRjJGU19PUFRJT04oc2JpKS5zX3Jlc2dpZCA9IEYyRlNfQ1RY X0lORk8oY3R4KS5zX3Jlc2dpZDsKPj4+Pj4+PiAgICAgICAgaWYgKGN0eC0+c3BlY19tYXNrICYg RjJGU19TUEVDX3Jlc3VpZCkKPj4+Pj4+PiBAQCAtMjMwMCw2ICsyMzM1LDEzIEBAIHN0YXRpYyBp bnQgZjJmc19zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qga3N0YXRmcyAqYnVm KQo+Pj4+Pj4+ICAgICAgICBidWYtPmZfYmZyZWUgPSB1c2VyX2Jsb2NrX2NvdW50IC0gdmFsaWRf dXNlcl9ibG9ja3Moc2JpKSAtCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzYmktPmN1cnJlbnRfcmVzZXJ2ZWRfYmxvY2tzOwo+Pj4+Pj4+Cj4+ Pj4+Pj4gKyAgICAgaWYgKHRlc3Rfb3B0KHNiaSwgUkVTRVJWRV9TSFJJTkspKSB7Cj4+Pj4+Pj4g KyAgICAgICAgICAgICBpZiAoYnVmLT5mX2JmcmVlID4gRjJGU19PUFRJT04oc2JpKS5yZXNlcnZl X3Nocmlua19ibG9ja3MpCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGJ1Zi0+Zl9iZnJl ZSAtPSBGMkZTX09QVElPTihzYmkpLnJlc2VydmVfc2hyaW5rX2Jsb2NrczsKPj4+Pj4+PiArICAg ICAgICAgICAgIGVsc2UKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgYnVmLT5mX2JmcmVl ID0gMDsKPj4+Pj4+PiArICAgICB9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICAgICAgICBpZiAodW5saWtl bHkoYnVmLT5mX2JmcmVlIDw9IHNiaS0+dW51c2FibGVfYmxvY2tfY291bnQpKQo+Pj4+Pj4+ICAg ICAgICAgICAgICAgIGJ1Zi0+Zl9iZnJlZSA9IDA7Cj4+Pj4+Pj4gICAgICAgIGVsc2UKPj4+Pj4+ PiBAQCAtMjUyNCw2ICsyNTY2LDkgQEAgc3RhdGljIGludCBmMmZzX3Nob3dfb3B0aW9ucyhzdHJ1 Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IGRlbnRyeSAqcm9vdCkKPj4+Pj4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGMkZTX09QVElPTihzYmkpLnNfcmVzdWlkKSwK Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbV9rZ2lkX211bmdlZCgm aW5pdF91c2VyX25zLAo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEYyRlNfT1BUSU9OKHNiaSkuc19yZXNnaWQpKTsKPj4+Pj4+PiArICAgICBpZiAodGVzdF9v cHQoc2JpLCBSRVNFUlZFX1NIUklOSykpCj4+Pj4+Pj4gKyAgICAgICAgICAgICBzZXFfcHJpbnRm KHNlcSwgIixyZXNlcnZlX3Nocmluaz0ldSIsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRjJGU19PUFRJT04oc2JpKS5yZXNlcnZlX3Nocmlua19ibG9ja3MpOwo+Pj4+Pj4+ ICAgICNpZmRlZiBDT05GSUdfRjJGU19GQVVMVF9JTkpFQ1RJT04KPj4+Pj4+PiAgICAgICAgaWYg KHRlc3Rfb3B0KHNiaSwgRkFVTFRfSU5KRUNUSU9OKSkgewo+Pj4+Pj4+ICAgICAgICAgICAgICAg IHNlcV9wcmludGYoc2VxLCAiLGZhdWx0X2luamVjdGlvbj0ldSIsCj4+Pj4+Pj4gQEAgLTMxMDUs NiArMzE1MCw3IEBAIHN0YXRpYyBpbnQgX19mMmZzX3JlbW91bnQoc3RydWN0IGZzX2NvbnRleHQg KmZjLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQo+Pj4+Pj4+Cj4+Pj4+Pj4gICAgICAgIGFkanVz dF9waW5uZWRfYXJlYV9ib3VuZGFyeShzYmkpOwo+Pj4+Pj4+ICAgICAgICBsaW1pdF9yZXNlcnZl X3Jvb3Qoc2JpKTsKPj4+Pj4+PiArICAgICBsaW1pdF9yZXNlcnZlX3NocmluayhzYmkpOwo+Pj4+ Pj4+ICAgICAgICBmYy0+c2JfZmxhZ3MgPSAoZmxhZ3MgJiB+U0JfTEFaWVRJTUUpIHwgKHNiLT5z X2ZsYWdzICYgU0JfTEFaWVRJTUUpOwo+Pj4+Pj4+Cj4+Pj4+Pj4gICAgICAgIHNiaS0+dW1vdW50 X2xvY2tfaG9sZGVyID0gTlVMTDsKPj4+Pj4+PiBAQCAtNTMyMiw2ICs1MzY4LDcgQEAgc3RhdGlj IGludCBmMmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2Nv bnRleHQgKmZjKQo+Pj4+Pj4+ICAgICAgICBzYmktPmN1cnJlbnRfcmVzZXJ2ZWRfYmxvY2tzID0g MDsKPj4+Pj4+PiAgICAgICAgc2JpLT5hbGlhc19yZXNlcnZlZF9ibG9ja3MgPSAwOwo+Pj4+Pj4+ ICAgICAgICBsaW1pdF9yZXNlcnZlX3Jvb3Qoc2JpKTsKPj4+Pj4+PiArICAgICBsaW1pdF9yZXNl cnZlX3NocmluayhzYmkpOwo+Pj4+Pj4+ICAgICAgICBhZGp1c3RfdW51c2FibGVfY2FwX3BlcmMo c2JpKTsKPj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgICBmMmZzX2luaXRfZXh0ZW50X2NhY2hlX2luZm8o c2JpKTsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zeXNmcy5jIGIvZnMvZjJmcy9zeXNm cy5jCj4+Pj4+Pj4gaW5kZXggYWFjYTllZDliMTY5Li5kNjE5NDBkMDk1YjQgMTAwNjQ0Cj4+Pj4+ Pj4gLS0tIGEvZnMvZjJmcy9zeXNmcy5jCj4+Pj4+Pj4gKysrIGIvZnMvZjJmcy9zeXNmcy5jCj4+ Pj4+Pj4gQEAgLTU5MSw5ICs1OTEsMTggQEAgc3RhdGljIHNzaXplX3QgX19zYmlfc3RvcmUoc3Ry dWN0IGYyZnNfYXR0ciAqYSwKPj4+Pj4+PiAgICAgICAgfQo+Pj4+Pj4+ICAgICNlbmRpZgo+Pj4+ Pj4+ICAgICAgICBpZiAoYS0+c3RydWN0X3R5cGUgPT0gUkVTRVJWRURfQkxPQ0tTKSB7Cj4+Pj4+ Pj4gKyAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxpbWl0Owo+Pj4+Pj4+ICsKPj4+Pj4+PiAg ICAgICAgICAgICAgICBzcGluX2xvY2soJnNiaS0+c3RhdF9sb2NrKTsKPj4+Pj4+PiAtICAgICAg ICAgICAgIGlmICh0ID4gKHVuc2lnbmVkIGxvbmcpKHNiaS0+dXNlcl9ibG9ja19jb3VudCAtCj4+ Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRjJGU19PUFRJT04oc2JpKS5yb290 X3Jlc2VydmVkX2Jsb2NrcykpIHsKPj4+Pj4+PiArICAgICAgICAgICAgIGxpbWl0ID0gc2JpLT51 c2VyX2Jsb2NrX2NvdW50IC0KPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG MkZTX09QVElPTihzYmkpLnJvb3RfcmVzZXJ2ZWRfYmxvY2tzOwo+Pj4+Pj4+ICsgICAgICAgICAg ICAgaWYgKHRlc3Rfb3B0KHNiaSwgUkVTRVJWRV9TSFJJTkspKSB7Cj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgIGlmIChsaW1pdCA+IEYyRlNfT1BUSU9OKHNiaSkucmVzZXJ2ZV9zaHJpbmtf YmxvY2tzKQo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0IC09IEYy RlNfT1BUSU9OKHNiaSkucmVzZXJ2ZV9zaHJpbmtfYmxvY2tzOwo+Pj4+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICBlbHNlCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlt aXQgPSAwOwo+Pj4+Pj4+ICsgICAgICAgICAgICAgfQo+Pj4+Pj4+ICsgICAgICAgICAgICAgaWYg KHQgPiBsaW1pdCkgewo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2so JnNiaS0+c3RhdF9sb2NrKTsKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOwo+Pj4+Pj4+ICAgICAgICAgICAgICAgIH0KPj4+Pj4+Cj4+Pj4KCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtZjJmcy1kZXZlbCBt YWlsaW5nIGxpc3QKTGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6 Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vbGludXgtZjJmcy1kZXZlbAo=