From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7DC9AC433DB for ; Tue, 12 Jan 2021 00:45:55 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 1AC3B22510; Tue, 12 Jan 2021 00:45:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1AC3B22510 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linux-f2fs-devel-bounces@lists.sourceforge.net 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.90_1) (envelope-from ) id 1kz7oo-0007Uw-Hj; Tue, 12 Jan 2021 00:45:54 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kz7on-0007Up-F3 for linux-f2fs-devel@lists.sourceforge.net; Tue, 12 Jan 2021 00:45:53 +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:Cc:To: Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version: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=BHvdzpDSht2IDhpJXYDXrA/fbpuLw8QdStLrjC7A5xc=; b=P8rXw6W/VMnM1yDnRiVBDxQiJX quNPC3+GM+BkfmkQ4bb23vXtYBDHsWZZrb5bUzvLZSI7T9YhEViZu511O8by+ZYeSzSk2KKnqW6t6 GwDYAPL0HIVo0C1GW0rLe8tfUMPc/zVGwfsXzdRNTqd2lGGzCQl/vNgh52HQt4B6j6XI=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:Cc:To:Subject:Message-ID:Date:From :In-Reply-To:References:MIME-Version: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=BHvdzpDSht2IDhpJXYDXrA/fbpuLw8QdStLrjC7A5xc=; b=e9jpC9yiVR5ZTrIzX8+WYER9hD NjZBDwInI9rBYG/8SXuEVgxgAJJ6MFY7MMyHvn7Sg/7eGWC6SLH07M8hI+mwrL5TJ7NGW+8tmD9Ru EG/gRnzDrXUlBY4rbuojfkc6jEENJhUmR04quf/pDLq5CZyNLnyXfixi7diiFpV+HeYE=; Received: from mail-lj1-f178.google.com ([209.85.208.178]) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92.2) id 1kz7oY-00As7y-9G for linux-f2fs-devel@lists.sourceforge.net; Tue, 12 Jan 2021 00:45:53 +0000 Received: by mail-lj1-f178.google.com with SMTP id n8so984874ljg.3 for ; Mon, 11 Jan 2021 16:45:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=BHvdzpDSht2IDhpJXYDXrA/fbpuLw8QdStLrjC7A5xc=; b=Xi+oQhqnA8XcUj0J3pXOQr77UdTsPLIPTcjSHLig7c8Y+NAyXjye6eD5KWI4Tubs7/ BKQrAbgPpJgPjwJSDMvwDp4Rj+CjwIQ4QyRzmTwb28fiKUDBsS3CylZTYD5hM201+UQZ pvjsyjrz3kMEXw3UmFzPSw7AB6q9rLiG6bdsdkk886Wc6YjpwF+pZJcStDYjAWuk7tNF sj7GnfSZ0FE9G9Ak2C9K+mzW+vR24Ml0s6K4WyF48tF//OguVLKsEBy90cABVDfnIjqA hu5yJCM5YkwJlCbVnW1K7bf1nic8pFsvuO24mPEA4/Sk5WNiCiNNyi4myDvvMNb7vARs tDOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=BHvdzpDSht2IDhpJXYDXrA/fbpuLw8QdStLrjC7A5xc=; b=IsMLpDUQ2n6IDzcE6ANhwojBn5azglUpzfC1j3lfmChVnT6og7e7HuTcWPl/SazJRI anNbFWdelTek6PWDVROvu0N1G5fRZD3Nj7r5YK/4hRAh66nZQnfUdtAfTzk4Ee59TG8I qWnHxE3fwagzS8d87ir3WP60HHa1gJStkAX4Gs8EimjUJhYKzXqvl077dhFh3bxnJ9ZK B6LJN4KAuOH6yS3/UU6DCjqk98l75ETkHPIjgQd/gQez0wL3sy7yVh2vBZ+CO9jgQO+L g+Z6MZpS2Z2j3CF834kLpxC2uXXy0uTqRmJL5O/LDDy5yHSAwrzLGu/8rpmM/YVruVj4 SoLA== X-Gm-Message-State: AOAM530+hql8tPq2l/vhIr5SrdTpYTv/3u1zbNzRdDTFznsxC+rbIF0r qKbiPyT13JUSYQLckGJ1otZgXUOHVw5ye0l4FyV5YSBe7wo= X-Google-Smtp-Source: ABdhPJwIPTEdQvfaP3lAiuLKQBnhIWB+c84QOwwGoATQFTBKknaI0LbqyAzch2bNKK4v0vv2g+Ips6BAFcomG27+sSI= X-Received: by 2002:a2e:810c:: with SMTP id d12mr840360ljg.400.1610412331525; Mon, 11 Jan 2021 16:45:31 -0800 (PST) MIME-Version: 1.0 References: <20210111051543.243387-1-daeho43@gmail.com> In-Reply-To: From: Daeho Jeong Date: Tue, 12 Jan 2021 09:45:20 +0900 Message-ID: To: Jaegeuk Kim X-Headers-End: 1kz7oY-00As7y-9G Subject: Re: [f2fs-dev] [PATCH 1/2] f2fs: introduce checkpoint=merge mount option 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: , Cc: Daeho Jeong , Sungjong Seo , 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 R290IGl0fiA6KQoKMjAyMeuFhCAx7JuUIDEx7J28ICjsm5QpIOyYpO2bhCA2OjUwLCBKYWVnZXVr IEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPuuLmOydtCDsnpHshLE6Cj4KPiBPbiAwMS8xMSwgRGFl aG8gSmVvbmcgd3JvdGU6Cj4gPiBGcm9tOiBEYWVobyBKZW9uZyA8ZGFlaG9qZW9uZ0Bnb29nbGUu Y29tPgo+ID4KPiA+IFdlJ3ZlIGFkZGVkIGEgbmV3IG1vdW50IG9wdGlvbiAiY2hlY2twb2ludD1t ZXJnZSIsIHdoaWNoIGNyZWF0ZXMgYQo+ID4ga2VybmVsIGRhZW1vbiBhbmQgbWFrZXMgaXQgdG8g bWVyZ2UgY29uY3VycmVudCBjaGVja3BvaW50IHJlcXVlc3RzIGFzCj4gPiBtdWNoIGFzIHBvc3Np YmxlIHRvIGVsaW1pbmF0ZSByZWR1bmRhbnQgY2hlY2twb2ludCBpc3N1ZXMuIFBsdXMsIHdlCj4g PiBjYW4gZWxpbWluYXRlIHRoZSBzbHVnZ2lzaCBpc3N1ZSBjYXVzZWQgYnkgc2xvdyBjaGVja3Bv aW50IG9wZXJhdGlvbgo+ID4gd2hlbiB0aGUgY2hlY2twb2ludCBpcyBkb25lIGluIGEgcHJvY2Vz cyBjb250ZXh0IGluIGEgY2dyb3VwIGhhdmluZwo+ID4gbG93IGkvbyBidWRnZXQgYW5kIGNwdSBz aGFyZXMsIGFuZCBUaGUgYmVsb3cgdmVyaWZpY2F0aW9uIHJlc3VsdAo+ID4gZXhwbGFpbnMgdGhp cy4KPiA+IFRoZSBiYXNpYyBpZGVhIGhhcyBjb21lIGZyb20gaHR0cHM6Ly9vcGVuc291cmNlLnNh bXN1bmcuY29tLgo+ID4KPiA+IFtWZXJpZmljYXRpb25dCj4gPiBBbmRyb2lkIFBpeGVsIERldmlj ZShBUk02NCwgN0dCIFJBTSwgMjU2R0IgVUZTKQo+ID4gQ3JlYXRlIHR3byBJL08gY2dyb3VwcyAo Zmcgdy8gd2VpZ2h0IDEwMCwgYmcgdy8gd2lnaHQgMjApCj4gPgo+ID4gSW4gImZnIiBjZ3JvdXAs Cj4gPiAtIHRocmVhZCBBID0+IHRyaWdnZXIgMTAwMCBjaGVja3BvaW50IG9wZXJhdGlvbnMKPiA+ ICAgImZvciBpIGluIGBzZXEgMSAxMDAwYDsgZG8gdG91Y2ggdGVzdF9kaXIxL2ZpbGU7IGZzeW5j IHRlc3RfZGlyMTsKPiA+ICAgIGRvbmUiCj4gPiAtIHRocmVhZCBCID0+IGdlcmVyYXRpbmcgYXN5 bmMuIEkvTwo+ID4gICAiZmlvIC0tcnc9d3JpdGUgLS1udW1qb2JzPTEgLS1icz0xMjhrIC0tcnVu dGltZT0zNjAwIC0tdGltZV9iYXNlZD0xCj4gPiAgICAgICAgLS1maWxlbmFtZT10ZXN0X2ltZyAt LW5hbWU9dGVzdCIKPiA+Cj4gPiBJbiAiYmciIGNncm91cCwKPiA+IC0gdGhyZWFkIEMgPT4gdHJp Z2dlciByZXBlYXRlZCBjaGVja3BvaW50IG9wZXJhdGlvbnMKPiA+ICAgImVjaG8gJCQgPiAvZGV2 L2Jsa2lvL2JnL3Rhc2tzOyB3aGlsZSB0cnVlOyBkbyB0b3VjaCB0ZXN0X2RpcjIvZmlsZTsKPiA+ ICAgIGZzeW5jIHRlc3RfZGlyMjsgZG9uZSIKPiA+Cj4gPiBXZSd2ZSBtZWFzdXJlZCB0aHJlYWQg QSdzIGV4ZWN1dGlvbiB0aW1lLgo+ID4KPiA+IFsgdy9vIHBhdGNoIF0KPiA+IEVsYXBzZWQgVGlt ZTogQXZnLiA2OCBzZWNvbmRzCj4gPiBbIHcvICBwYXRjaCBdCj4gPiBFbGFwc2VkIFRpbWU6IEF2 Zy4gNDggc2Vjb25kcwo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IERhZWhvIEplb25nIDxkYWVob2pl b25nQGdvb2dsZS5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBTdW5nam9uZyBTZW8gPHNqMTU1Ny5z ZW9Ac2Ftc3VuZy5jb20+Cj4gPiAtLS0KPiA+ICBEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2Yy ZnMucnN0IHwgICA2ICsKPiA+ICBmcy9mMmZzL2NoZWNrcG9pbnQuYyAgICAgICAgICAgICAgIHwg MTc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgZnMvZjJmcy9kZWJ1Zy5jICAg ICAgICAgICAgICAgICAgICB8ICAgNiArCj4gPiAgZnMvZjJmcy9mMmZzLmggICAgICAgICAgICAg ICAgICAgICB8ICAyNCArKysrCj4gPiAgZnMvZjJmcy9zdXBlci5jICAgICAgICAgICAgICAgICAg ICB8ICA1MyArKysrKysrKy0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDI2MSBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2ZpbGVz eXN0ZW1zL2YyZnMucnN0IGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9mMmZzLnJzdAo+ID4g aW5kZXggZGFlMTVjOTZlNjU5Li5iY2NjMDIxYmYzMWEgMTAwNjQ0Cj4gPiAtLS0gYS9Eb2N1bWVu dGF0aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0Cj4gPiArKysgYi9Eb2N1bWVudGF0aW9uL2ZpbGVz eXN0ZW1zL2YyZnMucnN0Cj4gPiBAQCAtMjQ3LDYgKzI0NywxMiBAQCBjaGVja3BvaW50PSVzWzol dVslXV0gICAgIFNldCB0byAiZGlzYWJsZSIgdG8gdHVybiBvZmYgY2hlY2twb2ludGluZy4gU2V0 IHRvICJlbmFibAo+ID4gICAgICAgICAgICAgICAgICAgICAgICBoaWRlIHVwIHRvIGFsbCByZW1h aW5pbmcgZnJlZSBzcGFjZS4gVGhlIGFjdHVhbCBzcGFjZSB0aGF0Cj4gPiAgICAgICAgICAgICAg ICAgICAgICAgIHdvdWxkIGJlIHVudXNhYmxlIGNhbiBiZSB2aWV3ZWQgYXQgL3N5cy9mcy9mMmZz LzxkaXNrPi91bnVzYWJsZQo+ID4gICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHNwYWNlIGlz IHJlY2xhaW1lZCBvbmNlIGNoZWNrcG9pbnQ9ZW5hYmxlLgo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICBIZXJlIGlzIGFub3RoZXIgb3B0aW9uICJtZXJnZSIsIHdoaWNoIGNyZWF0ZXMgYSBrZXJu ZWwgZGFlbW9uCj4gPiArICAgICAgICAgICAgICAgICAgICAgIGFuZCBtYWtlcyBpdCB0byBtZXJn ZSBjb25jdXJyZW50IGNoZWNrcG9pbnQgcmVxdWVzdHMgYXMgbXVjaAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICBhcyBwb3NzaWJsZSB0byBlbGltaW5hdGUgcmVkdW5kYW50IGNoZWNrcG9pbnQg aXNzdWVzLiBQbHVzLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICB3ZSBjYW4gZWxpbWluYXRl IHRoZSBzbHVnZ2lzaCBpc3N1ZSBjYXVzZWQgYnkgc2xvdyBjaGVja3BvaW50Cj4gPiArICAgICAg ICAgICAgICAgICAgICAgIG9wZXJhdGlvbiB3aGVuIHRoZSBjaGVja3BvaW50IGlzIGRvbmUgaW4g YSBwcm9jZXNzIGNvbnRleHQgaW4KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgYSBjZ3JvdXAg aGF2aW5nIGxvdyBpL28gYnVkZ2V0IGFuZCBjcHUgc2hhcmVzLgo+ID4gIGNvbXByZXNzX2FsZ29y aXRobT0lcyAgICAgICAgIENvbnRyb2wgY29tcHJlc3MgYWxnb3JpdGhtLCBjdXJyZW50bHkgZjJm cyBzdXBwb3J0cyAibHpvIiwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgImx6NCIsICJ6c3Rk IiBhbmQgImx6by1ybGUiIGFsZ29yaXRobS4KPiA+ICBjb21wcmVzc19sb2dfc2l6ZT0ldSAgU3Vw cG9ydCBjb25maWd1cmluZyBjb21wcmVzcyBjbHVzdGVyIHNpemUsIHRoZSBzaXplIHdpbGwKPiA+ IGRpZmYgLS1naXQgYS9mcy9mMmZzL2NoZWNrcG9pbnQuYyBiL2ZzL2YyZnMvY2hlY2twb2ludC5j Cj4gPiBpbmRleCA4OTdlZGI3Yzk1MWEuLjExMjg4ZjQzNWRiZSAxMDA2NDQKPiA+IC0tLSBhL2Zz L2YyZnMvY2hlY2twb2ludC5jCj4gPiArKysgYi9mcy9mMmZzL2NoZWNrcG9pbnQuYwo+ID4gQEAg LTEzLDYgKzEzLDcgQEAKPiA+ICAjaW5jbHVkZSA8bGludXgvZjJmc19mcy5oPgo+ID4gICNpbmNs dWRlIDxsaW51eC9wYWdldmVjLmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KPiA+ICsj aW5jbHVkZSA8bGludXgva3RocmVhZC5oPgo+ID4KPiA+ICAjaW5jbHVkZSAiZjJmcy5oIgo+ID4g ICNpbmNsdWRlICJub2RlLmgiCj4gPiBAQCAtMjAsNiArMjEsOCBAQAo+ID4gICNpbmNsdWRlICJ0 cmFjZS5oIgo+ID4gICNpbmNsdWRlIDx0cmFjZS9ldmVudHMvZjJmcy5oPgo+ID4KPiA+ICsjZGVm aW5lIERFRkFVTFRfQ0hFQ0tQT0lOVF9JT1BSSU8gKElPUFJJT19QUklPX1ZBTFVFKElPUFJJT19D TEFTU19CRSwgMykpCj4gPiArCj4gPiAgc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICppbm9fZW50 cnlfc2xhYjsKPiA+ICBzdHJ1Y3Qga21lbV9jYWNoZSAqZjJmc19pbm9kZV9lbnRyeV9zbGFiOwo+ ID4KPiA+IEBAIC0xNzA3LDMgKzE3MTAsMTc2IEBAIHZvaWQgZjJmc19kZXN0cm95X2NoZWNrcG9p bnRfY2FjaGVzKHZvaWQpCj4gPiAgICAgICBrbWVtX2NhY2hlX2Rlc3Ryb3koaW5vX2VudHJ5X3Ns YWIpOwo+ID4gICAgICAga21lbV9jYWNoZV9kZXN0cm95KGYyZnNfaW5vZGVfZW50cnlfc2xhYik7 Cj4gPiAgfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgX193cml0ZV9jaGVja3BvaW50X3N5bmMoc3Ry dWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBjcF9jb250cm9s IGNwYyA9IHsgLnJlYXNvbiA9IENQX1NZTkMsIH07Cj4gPiArICAgICBpbnQgZXJyOwo+ID4gKwo+ ID4gKyAgICAgZG93bl93cml0ZSgmc2JpLT5nY19sb2NrKTsKPiA+ICsgICAgIGVyciA9IGYyZnNf d3JpdGVfY2hlY2twb2ludChzYmksICZjcGMpOwo+ID4gKyAgICAgdXBfd3JpdGUoJnNiaS0+Z2Nf bG9jayk7Cj4gPiArCj4gPiArICAgICByZXR1cm4gZXJyOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0 aWMgdm9pZCBfX2NoZWNrcG9pbnRfYW5kX2NvbXBsZXRlX3JlcXMoc3RydWN0IGYyZnNfc2JfaW5m byAqc2JpKQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBja3B0X3JlcV9jb250cm9sICpjcHJjID0g c2JpLT5jcHJjX2luZm87Cj4gPiArICAgICBzdHJ1Y3QgY2twdF9yZXEgKnJlcSwgKm5leHQ7Cj4g PiArICAgICBzdHJ1Y3QgbGxpc3Rfbm9kZSAqZGlzcGF0Y2hfbGlzdDsKPiA+ICsgICAgIGludCBy ZXQ7Cj4gPiArCj4gPiArICAgICBkaXNwYXRjaF9saXN0ID0gbGxpc3RfZGVsX2FsbCgmY3ByYy0+ aXNzdWVfbGlzdCk7Cj4gPiArICAgICBpZiAoIWRpc3BhdGNoX2xpc3QpCj4gPiArICAgICAgICAg ICAgIHJldHVybjsKPiA+ICsgICAgIGRpc3BhdGNoX2xpc3QgPSBsbGlzdF9yZXZlcnNlX29yZGVy KGRpc3BhdGNoX2xpc3QpOwo+ID4gKwo+ID4gKyAgICAgcmV0ID0gX193cml0ZV9jaGVja3BvaW50 X3N5bmMoc2JpKTsKPiA+ICsgICAgIGF0b21pY19pbmMoJmNwcmMtPmlzc3VlZF9ja3B0KTsKPiA+ ICsKPiA+ICsgICAgIGxsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxLCBuZXh0LCBkaXNwYXRj aF9saXN0LCBsbG5vZGUpIHsKPiA+ICsgICAgICAgICAgICAgYXRvbWljX2RlYygmY3ByYy0+cXVl dWVkX2NrcHQpOwo+ID4gKyAgICAgICAgICAgICBhdG9taWNfaW5jKCZjcHJjLT50b3RhbF9ja3B0 KTsKPiA+ICsgICAgICAgICAgICAgcmVxLT5jb21wbGV0ZV90aW1lID0gamlmZmllczsKPiA+ICsg ICAgICAgICAgICAgcmVxLT5yZXQgPSByZXQ7Cj4gPiArICAgICAgICAgICAgIGNvbXBsZXRlKCZy ZXEtPndhaXQpOwo+ID4gKyAgICAgfQo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGlzc3Vl X2NoZWNrcG9pbnRfdGhyZWFkKHZvaWQgKmRhdGEpCj4gPiArewo+ID4gKyAgICAgc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpID0gZGF0YTsKPiA+ICsgICAgIHN0cnVjdCBja3B0X3JlcV9jb250cm9s ICpjcHJjID0gc2JpLT5jcHJjX2luZm87Cj4gPiArICAgICB3YWl0X3F1ZXVlX2hlYWRfdCAqcSA9 ICZjcHJjLT5ja3B0X3dhaXRfcXVldWU7Cj4gPiArcmVwZWF0Ogo+ID4gKyAgICAgaWYgKGt0aHJl YWRfc2hvdWxkX3N0b3AoKSkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiArCj4gPiAr ICAgICBzYl9zdGFydF9pbnR3cml0ZShzYmktPnNiKTsKPiA+ICsKPiA+ICsgICAgIGlmICghbGxp c3RfZW1wdHkoJmNwcmMtPmlzc3VlX2xpc3QpKQo+ID4gKyAgICAgICAgICAgICBfX2NoZWNrcG9p bnRfYW5kX2NvbXBsZXRlX3JlcXMoc2JpKTsKPiA+ICsKPiA+ICsgICAgIHNiX2VuZF9pbnR3cml0 ZShzYmktPnNiKTsKPiA+ICsKPiA+ICsgICAgIHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZSgqcSwK PiA+ICsgICAgICAgICAgICAga3RocmVhZF9zaG91bGRfc3RvcCgpIHx8ICFsbGlzdF9lbXB0eSgm Y3ByYy0+aXNzdWVfbGlzdCkpOwo+ID4gKyAgICAgZ290byByZXBlYXQ7Cj4gPiArfQo+ID4gKwo+ ID4gK3N0YXRpYyB2b2lkIGZsdXNoX3JlbWFpbmVkX2NrcHRfcmVxcyhzdHJ1Y3QgZjJmc19zYl9p bmZvICpzYmksCj4gPiArICAgICAgICAgICAgIHN0cnVjdCBja3B0X3JlcSAqd2FpdF9yZXEpCj4g PiArewo+ID4gKyAgICAgc3RydWN0IGNrcHRfcmVxX2NvbnRyb2wgKmNwcmMgPSBzYmktPmNwcmNf aW5mbzsKPiA+ICsKPiA+ICsgICAgIGlmICghbGxpc3RfZW1wdHkoJmNwcmMtPmlzc3VlX2xpc3Qp KSB7Cj4gPiArICAgICAgICAgICAgIF9fY2hlY2twb2ludF9hbmRfY29tcGxldGVfcmVxcyhzYmkp Owo+ID4gKyAgICAgfSBlbHNlIHsKPiA+ICsgICAgICAgICAgICAgLyogYWxyZWFkeSBkaXNwYXRj aGVkIGJ5IGlzc3VlX2NoZWNrcG9pbnRfdGhyZWFkICovCj4gPiArICAgICAgICAgICAgIGlmICh3 YWl0X3JlcSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICB3YWl0X2Zvcl9jb21wbGV0aW9uKCZ3 YWl0X3JlcS0+d2FpdCk7Cj4gPiArICAgICB9Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lk IGluaXRfY2twdF9yZXEoc3RydWN0IGNrcHRfcmVxICpyZXEpCj4gPiArewo+ID4gKyAgICAgbWVt c2V0KHJlcSwgMCwgc2l6ZW9mKHN0cnVjdCBja3B0X3JlcSkpOwo+ID4gKwo+ID4gKyAgICAgcmVx LT5vd25lciA9IGN1cnJlbnQ7Cj4gPiArICAgICBpbml0X2NvbXBsZXRpb24oJnJlcS0+d2FpdCk7 Cj4gPiArfQo+ID4gKwo+ID4gK2ludCBmMmZzX2lzc3VlX2NoZWNrcG9pbnQoc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpKQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBja3B0X3JlcV9jb250cm9sICpj cHJjID0gc2JpLT5jcHJjX2luZm87Cj4gPiArICAgICBzdHJ1Y3QgY2twdF9yZXEgcmVxOwo+ID4g Kwo+ID4gKyAgICAgaWYgKCFjcHJjIHx8ICFjcHJjLT5mMmZzX2lzc3VlX2NrcHQpCj4gPiArICAg ICAgICAgICAgIHJldHVybiBfX3dyaXRlX2NoZWNrcG9pbnRfc3luYyhzYmkpOwo+ID4gKwo+ID4g KyAgICAgaW5pdF9ja3B0X3JlcSgmcmVxKTsKPiA+ICsKPiA+ICsgICAgIHJlcS5xdWV1ZV90aW1l ID0gamlmZmllczsKPiA+ICsgICAgIGxsaXN0X2FkZCgmcmVxLmxsbm9kZSwgJmNwcmMtPmlzc3Vl X2xpc3QpOwo+ID4gKyAgICAgYXRvbWljX2luYygmY3ByYy0+cXVldWVkX2NrcHQpOwo+ID4gKwo+ ID4gKyAgICAgLyogdXBkYXRlIGlzc3VlX2xpc3QgYmVmb3JlIHdlIHdha2UgdXAgaXNzdWVfY2hl Y2twb2ludCB0aHJlYWQgKi8KPiA+ICsgICAgIHNtcF9tYigpOwo+ID4gKwo+ID4gKyAgICAgaWYg KHdhaXRxdWV1ZV9hY3RpdmUoJmNwcmMtPmNrcHRfd2FpdF9xdWV1ZSkpCj4gPiArICAgICAgICAg ICAgIHdha2VfdXAoJmNwcmMtPmNrcHRfd2FpdF9xdWV1ZSk7Cj4gPiArCj4gPiArICAgICBpZiAo Y3ByYy0+ZjJmc19pc3N1ZV9ja3B0KQo+ID4gKyAgICAgICAgICAgICB3YWl0X2Zvcl9jb21wbGV0 aW9uKCZyZXEud2FpdCk7Cj4gPiArICAgICBlbHNlCj4gPiArICAgICAgICAgICAgIGZsdXNoX3Jl bWFpbmVkX2NrcHRfcmVxcyhzYmksICZyZXEpOwo+ID4gKwo+ID4gKyAgICAgcmV0dXJuIHJlcS5y ZXQ7Cj4gPiArfQo+ID4gKwo+ID4gK2ludCBmMmZzX2NyZWF0ZV9ja3B0X3JlcV9jb250cm9sKHN0 cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKPiA+ICt7Cj4gPiArICAgICBkZXZfdCBkZXYgPSBzYmkt PnNiLT5zX2JkZXYtPmJkX2RldjsKPiA+ICsgICAgIHN0cnVjdCBja3B0X3JlcV9jb250cm9sICpj cHJjOwo+ID4gKyAgICAgYm9vbCBuZWVkX2ZyZWUgPSB0cnVlOwo+ID4gKwo+ID4gKyAgICAgaWYg KHNiaS0+Y3ByY19pbmZvKSB7Cj4gPiArICAgICAgICAgICAgIGNwcmMgPSBzYmktPmNwcmNfaW5m bzsKPiA+ICsgICAgICAgICAgICAgaWYgKGNwcmMtPmYyZnNfaXNzdWVfY2twdCkKPiA+ICsgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgbmVlZF9m cmVlID0gZmFsc2U7Cj4gPiArICAgICAgICAgICAgIGdvdG8gaW5pdF90aHJlYWQ7Cj4gPiArICAg ICB9Cj4gPiArCj4gPiArICAgICBjcHJjID0gZjJmc19remFsbG9jKHNiaSwgc2l6ZW9mKHN0cnVj dCBja3B0X3JlcV9jb250cm9sKSwgR0ZQX0tFUk5FTCk7Cj4gPiArICAgICBpZiAoIWNwcmMpCj4g PiArICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ID4gKyAgICAgYXRvbWljX3NldCgmY3By Yy0+aXNzdWVkX2NrcHQsIDApOwo+ID4gKyAgICAgYXRvbWljX3NldCgmY3ByYy0+dG90YWxfY2tw dCwgMCk7Cj4gPiArICAgICBhdG9taWNfc2V0KCZjcHJjLT5xdWV1ZWRfY2twdCwgMCk7Cj4gPiAr ICAgICBpbml0X3dhaXRxdWV1ZV9oZWFkKCZjcHJjLT5ja3B0X3dhaXRfcXVldWUpOwo+ID4gKyAg ICAgaW5pdF9sbGlzdF9oZWFkKCZjcHJjLT5pc3N1ZV9saXN0KTsKPiA+ICsgICAgIHNiaS0+Y3By Y19pbmZvID0gY3ByYzsKPiA+ICsKPiA+ICtpbml0X3RocmVhZDoKPiA+ICsgICAgIGlmICghdGVz dF9vcHQoc2JpLCBNRVJHRV9DSEVDS1BPSU5UKSkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIDA7 Cj4gPiArCj4gPiArICAgICBjcHJjLT5mMmZzX2lzc3VlX2NrcHQgPSBrdGhyZWFkX3J1bihpc3N1 ZV9jaGVja3BvaW50X3RocmVhZCwgc2JpLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICJmMmZz X2NrcHQtJXU6JXUiLCBNQUpPUihkZXYpLCBNSU5PUihkZXYpKTsKPiA+ICsgICAgIGlmIChJU19F UlIoY3ByYy0+ZjJmc19pc3N1ZV9ja3B0KSkgewo+ID4gKyAgICAgICAgICAgICBpbnQgZXJyID0g UFRSX0VSUihjcHJjLT5mMmZzX2lzc3VlX2NrcHQpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICBp ZiAobmVlZF9mcmVlKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAga3ZmcmVlKGNwcmMpOwo+ ID4gKyAgICAgICAgICAgICAgICAgICAgIHNiaS0+Y3ByY19pbmZvID0gTlVMTDsKPiA+ICsgICAg ICAgICAgICAgfQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gZXJyOwo+ID4gKyAgICAgfQo+ID4g Kwo+ID4gKyAgICAgc2V0X3Rhc2tfaW9wcmlvKGNwcmMtPmYyZnNfaXNzdWVfY2twdCwgREVGQVVM VF9DSEVDS1BPSU5UX0lPUFJJTyk7Cj4gPiArCj4gPiArICAgICByZXR1cm4gMDsKPiA+ICt9Cj4g PiArCj4gPiArdm9pZCBmMmZzX2Rlc3Ryb3lfY2twdF9yZXFfY29udHJvbChzdHJ1Y3QgZjJmc19z Yl9pbmZvICpzYmksIGJvb2wgZnJlZSkKPiA+ICt7Cj4gPiArICAgICBzdHJ1Y3QgY2twdF9yZXFf Y29udHJvbCAqY3ByYyA9IHNiaS0+Y3ByY19pbmZvOwo+ID4gKwo+ID4gKyAgICAgaWYgKGNwcmMg JiYgY3ByYy0+ZjJmc19pc3N1ZV9ja3B0KSB7Cj4gPiArICAgICAgICAgICAgIHN0cnVjdCB0YXNr X3N0cnVjdCAqY2twdF90YXNrID0gY3ByYy0+ZjJmc19pc3N1ZV9ja3B0Owo+ID4gKwo+ID4gKyAg ICAgICAgICAgICBjcHJjLT5mMmZzX2lzc3VlX2NrcHQgPSBOVUxMOwo+ID4gKyAgICAgICAgICAg ICBrdGhyZWFkX3N0b3AoY2twdF90YXNrKTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgZmx1c2hf cmVtYWluZWRfY2twdF9yZXFzKHNiaSwgTlVMTCk7Cj4gPiArICAgICB9Cj4gPiArCj4gPiArICAg ICBpZiAoZnJlZSkgewo+ID4gKyAgICAgICAgICAgICBrdmZyZWUoY3ByYyk7Cj4gPiArICAgICAg ICAgICAgIHNiaS0+Y3ByY19pbmZvID0gTlVMTDsKPiA+ICsgICAgIH0KPiA+ICt9Cj4gPiArCj4K PiBHaXQgY29tcGxhaW5lZCBhbiBlbXB0eSBzcGFjZS4KPgo+ID4gZGlmZiAtLWdpdCBhL2ZzL2Yy ZnMvZGVidWcuYyBiL2ZzL2YyZnMvZGVidWcuYwo+ID4gaW5kZXggMTk3YzkxNDExOWRhLi42ZWU4 MWFmYWU2YjcgMTAwNjQ0Cj4gPiAtLS0gYS9mcy9mMmZzL2RlYnVnLmMKPiA+ICsrKyBiL2ZzL2Yy ZnMvZGVidWcuYwo+ID4gQEAgLTEyMCw2ICsxMjAsOSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfZ2Vu ZXJhbF9zdGF0dXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+ID4gICAgICAgICAgICAgICAg ICAgICAgIGF0b21pY19yZWFkKCZTTV9JKHNiaSktPmRjY19pbmZvLT5kaXNjYXJkX2NtZF9jbnQp Owo+ID4gICAgICAgICAgICAgICBzaS0+dW5kaXNjYXJkX2Jsa3MgPSBTTV9JKHNiaSktPmRjY19p bmZvLT51bmRpc2NhcmRfYmxrczsKPiA+ICAgICAgIH0KPiA+ICsgICAgIHNpLT5ucl9pc3N1ZWRf Y2twdCA9IGF0b21pY19yZWFkKCZzYmktPmNwcmNfaW5mby0+aXNzdWVkX2NrcHQpOwo+ID4gKyAg ICAgc2ktPm5yX3RvdGFsX2NrcHQgPSBhdG9taWNfcmVhZCgmc2JpLT5jcHJjX2luZm8tPnRvdGFs X2NrcHQpOwo+ID4gKyAgICAgc2ktPm5yX3F1ZXVlZF9ja3B0ID0gYXRvbWljX3JlYWQoJnNiaS0+ Y3ByY19pbmZvLT5xdWV1ZWRfY2twdCk7Cj4KPiBIZXJlLCB3ZSBjYW4gZ2V0IG51bGwgY3ByY19p bmZvLgo+Cj4gPiAgICAgICBzaS0+dG90YWxfY291bnQgPSAoaW50KXNiaS0+dXNlcl9ibG9ja19j b3VudCAvIHNiaS0+YmxvY2tzX3Blcl9zZWc7Cj4gPiAgICAgICBzaS0+cnN2ZF9zZWdzID0gcmVz ZXJ2ZWRfc2VnbWVudHMoc2JpKTsKPiA+ICAgICAgIHNpLT5vdmVycF9zZWdzID0gb3ZlcnByb3Zp c2lvbl9zZWdtZW50cyhzYmkpOwo+ID4gQEAgLTQxNyw2ICs0MjAsOSBAQCBzdGF0aWMgaW50IHN0 YXRfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnYpCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaS0+bWV0YV9jb3VudFtNRVRBX05BVF0pOwo+ID4gICAgICAgICAgICAg ICBzZXFfcHJpbnRmKHMsICIgIC0gc3NhIGJsb2NrcyA6ICV1XG4iLAo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2ktPm1ldGFfY291bnRbTUVUQV9TU0FdKTsKPiA+ICsgICAgICAg ICAgICAgc2VxX3ByaW50ZihzLCAiQ1AgbWVyZ2UgKFF1ZXVlZDogJTRkLCBJc3N1ZWQ6ICU0ZCwg VG90YWw6ICU0ZClcbiIsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaS0+bnJf cXVldWVkX2NrcHQsIHNpLT5ucl9pc3N1ZWRfY2twdCwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpLT5ucl90b3RhbF9ja3B0KTsKPiA+ICAgICAgICAgICAgICAgc2VxX3ByaW50 ZihzLCAiR0MgY2FsbHM6ICVkIChCRzogJWQpXG4iLAo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgIHNpLT5jYWxsX2NvdW50LCBzaS0+YmdfZ2MpOwo+ID4gICAgICAgICAgICAgICBzZXFfcHJp bnRmKHMsICIgIC0gZGF0YSBzZWdtZW50cyA6ICVkICglZClcbiIsCj4gPiBkaWZmIC0tZ2l0IGEv ZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZzL2YyZnMuaAo+ID4gaW5kZXggYmIxMTc1OTE5MWRjLi40 ZGU1Mjg1ZGYxN2QgMTAwNjQ0Cj4gPiAtLS0gYS9mcy9mMmZzL2YyZnMuaAo+ID4gKysrIGIvZnMv ZjJmcy9mMmZzLmgKPiA+IEBAIC05Nyw2ICs5Nyw3IEBAIGV4dGVybiBjb25zdCBjaGFyICpmMmZz X2ZhdWx0X25hbWVbRkFVTFRfTUFYXTsKPiA+ICAjZGVmaW5lIEYyRlNfTU9VTlRfRElTQUJMRV9D SEVDS1BPSU5UICAgICAgICAweDAyMDAwMDAwCj4gPiAgI2RlZmluZSBGMkZTX01PVU5UX05PUkVD T1ZFUlkgICAgICAgICAgICAgICAgMHgwNDAwMDAwMAo+ID4gICNkZWZpbmUgRjJGU19NT1VOVF9B VEdDICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDAKPiA+ICsjZGVmaW5lIEYyRlNfTU9V TlRfTUVSR0VfQ0hFQ0tQT0lOVCAgMHgxMDAwMDAwMAo+ID4KPiA+ICAjZGVmaW5lIEYyRlNfT1BU SU9OKHNiaSkgICAgICgoc2JpKS0+bW91bnRfb3B0KQo+ID4gICNkZWZpbmUgY2xlYXJfb3B0KHNi aSwgb3B0aW9uKSAgICAgICAoRjJGU19PUFRJT04oc2JpKS5vcHQgJj0gfkYyRlNfTU9VTlRfIyNv cHRpb24pCj4gPiBAQCAtMjY2LDYgKzI2NywyNCBAQCBzdHJ1Y3QgZnN5bmNfbm9kZV9lbnRyeSB7 Cj4gPiAgICAgICB1bnNpZ25lZCBpbnQgc2VxX2lkOyAgICAvKiBzZXF1ZW5jZSBpZCAqLwo+ID4g IH07Cj4gPgo+ID4gK3N0cnVjdCBja3B0X3JlcSB7Cj4gPiArICAgICBzdHJ1Y3QgY29tcGxldGlv biB3YWl0Owo+ID4gKyAgICAgc3RydWN0IGxsaXN0X25vZGUgbGxub2RlOwo+ID4gKyAgICAgaW50 IHJldDsKPiA+ICsgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqb3duZXI7Cj4gPiArICAgICB1bnNp Z25lZCBsb25nIHF1ZXVlX3RpbWU7ICAgICAgIC8qIHJlcXVlc3QgcXVldWVkIHRpbWUgaW4gamlm ZmllcyAqLwo+ID4gKyAgICAgdW5zaWduZWQgbG9uZyBjb21wbGV0ZV90aW1lOyAgICAvKiByZXF1 ZXN0IGNvbXBsZXRlZCB0aW1lIGluIGppZmZpZXMgKi8KPiA+ICt9Owo+ID4gKwo+ID4gK3N0cnVj dCBja3B0X3JlcV9jb250cm9sIHsKPiA+ICsgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqZjJmc19p c3N1ZV9ja3B0OyAgICAvKiBjaGVja3BvaW50IHRhc2sgKi8KPiA+ICsgICAgIHdhaXRfcXVldWVf aGVhZF90IGNrcHRfd2FpdF9xdWV1ZTsgICAgICAvKiB3YWl0aW5nIHF1ZXVlIGZvciB3YWtlLXVw ICovCj4gPiArICAgICBhdG9taWNfdCBpc3N1ZWRfY2twdDsgICAgICAgICAgICAgICAgICAgLyog IyBvZiBhY3R1YWxseSBpc3N1ZWQgY2twdHMgKi8KPiA+ICsgICAgIGF0b21pY190IHRvdGFsX2Nr cHQ7ICAgICAgICAgICAgICAgICAgICAvKiAjIG9mIHRvdGFsIGNrcHRzICovCj4gPiArICAgICBh dG9taWNfdCBxdWV1ZWRfY2twdDsgICAgICAgICAgICAgICAgICAgLyogIyBvZiBxdWV1ZWQgY2tw dHMgKi8KPiA+ICsgICAgIHN0cnVjdCBsbGlzdF9oZWFkIGlzc3VlX2xpc3Q7ICAgICAgICAgICAv KiBsaXN0IGZvciBjb21tYW5kIGlzc3VlICovCj4gPiArfTsKPiA+ICsKPiA+ICAvKiBmb3IgdGhl IGJpdG1hcCBpbmRpY2F0ZSBibG9ja3MgdG8gYmUgZGlzY2FyZGVkICovCj4gPiAgc3RydWN0IGRp c2NhcmRfZW50cnkgewo+ID4gICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OyAgLyogbGlzdCBo ZWFkICovCj4gPiBAQCAtMTQwNCw2ICsxNDIzLDcgQEAgc3RydWN0IGYyZnNfc2JfaW5mbyB7Cj4g PiAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBjcF93YWl0Owo+ID4gICAgICAgdW5zaWduZWQgbG9u ZyBsYXN0X3RpbWVbTUFYX1RJTUVdOyAgICAgIC8qIHRvIHN0b3JlIHRpbWUgaW4gamlmZmllcyAq Lwo+ID4gICAgICAgbG9uZyBpbnRlcnZhbF90aW1lW01BWF9USU1FXTsgICAgICAgICAgIC8qIHRv IHN0b3JlIHRocmVzaG9sZHMgKi8KPiA+ICsgICAgIHN0cnVjdCBja3B0X3JlcV9jb250cm9sICpj cHJjX2luZm87ICAgICAvKiBmb3IgY2hlY2twb2ludCByZXF1ZXN0IGNvbnRyb2wgKi8KPiA+Cj4g PiAgICAgICBzdHJ1Y3QgaW5vZGVfbWFuYWdlbWVudCBpbVtNQVhfSU5PX0VOVFJZXTsgICAgICAv KiBtYW5hZ2UgaW5vZGUgY2FjaGUgKi8KPiA+Cj4gPiBAQCAtMzQxOCw2ICszNDM4LDkgQEAgaW50 IGYyZnNfd3JpdGVfY2hlY2twb2ludChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBj cF9jb250cm9sICpjcGMpOwo+ID4gIHZvaWQgZjJmc19pbml0X2lub19lbnRyeV9pbmZvKHN0cnVj dCBmMmZzX3NiX2luZm8gKnNiaSk7Cj4gPiAgaW50IF9faW5pdCBmMmZzX2NyZWF0ZV9jaGVja3Bv aW50X2NhY2hlcyh2b2lkKTsKPiA+ICB2b2lkIGYyZnNfZGVzdHJveV9jaGVja3BvaW50X2NhY2hl cyh2b2lkKTsKPiA+ICtpbnQgZjJmc19pc3N1ZV9jaGVja3BvaW50KHN0cnVjdCBmMmZzX3NiX2lu Zm8gKnNiaSk7Cj4gPiAraW50IGYyZnNfY3JlYXRlX2NrcHRfcmVxX2NvbnRyb2woc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpKTsKPiA+ICt2b2lkIGYyZnNfZGVzdHJveV9ja3B0X3JlcV9jb250cm9s KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgYm9vbCBmcmVlKTsKPiA+Cj4gPiAgLyoKPiA+ICAg KiBkYXRhLmMKPiA+IEBAIC0zNTMwLDYgKzM1NTMsNyBAQCBzdHJ1Y3QgZjJmc19zdGF0X2luZm8g ewo+ID4gICAgICAgaW50IG5yX2Rpc2NhcmRpbmcsIG5yX2Rpc2NhcmRlZDsKPiA+ICAgICAgIGlu dCBucl9kaXNjYXJkX2NtZDsKPiA+ICAgICAgIHVuc2lnbmVkIGludCB1bmRpc2NhcmRfYmxrczsK PiA+ICsgICAgIGludCBucl9pc3N1ZWRfY2twdCwgbnJfdG90YWxfY2twdCwgbnJfcXVldWVkX2Nr cHQ7Cj4gPiAgICAgICBpbnQgaW5saW5lX3hhdHRyLCBpbmxpbmVfaW5vZGUsIGlubGluZV9kaXIs IGFwcGVuZCwgdXBkYXRlLCBvcnBoYW5zOwo+ID4gICAgICAgaW50IGNvbXByX2lub2RlOwo+ID4g ICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGNvbXByX2Jsb2NrczsKPiA+IGRpZmYgLS1naXQgYS9m cy9mMmZzL3N1cGVyLmMgYi9mcy9mMmZzL3N1cGVyLmMKPiA+IGluZGV4IGI0YTA3ZmU2MmQxYS4u NWNkODljMjMxMjIzIDEwMDY0NAo+ID4gLS0tIGEvZnMvZjJmcy9zdXBlci5jCj4gPiArKysgYi9m cy9mMmZzL3N1cGVyLmMKPiA+IEBAIC0xNDMsNiArMTQzLDcgQEAgZW51bSB7Cj4gPiAgICAgICBP cHRfY2hlY2twb2ludF9kaXNhYmxlX2NhcCwKPiA+ICAgICAgIE9wdF9jaGVja3BvaW50X2Rpc2Fi bGVfY2FwX3BlcmMsCj4gPiAgICAgICBPcHRfY2hlY2twb2ludF9lbmFibGUsCj4gPiArICAgICBP cHRfY2hlY2twb2ludF9tZXJnZSwKPiA+ICAgICAgIE9wdF9jb21wcmVzc19hbGdvcml0aG0sCj4g PiAgICAgICBPcHRfY29tcHJlc3NfbG9nX3NpemUsCj4gPiAgICAgICBPcHRfY29tcHJlc3NfZXh0 ZW5zaW9uLAo+ID4gQEAgLTIxMyw2ICsyMTQsNyBAQCBzdGF0aWMgbWF0Y2hfdGFibGVfdCBmMmZz X3Rva2VucyA9IHsKPiA+ICAgICAgIHtPcHRfY2hlY2twb2ludF9kaXNhYmxlX2NhcCwgImNoZWNr cG9pbnQ9ZGlzYWJsZToldSJ9LAo+ID4gICAgICAge09wdF9jaGVja3BvaW50X2Rpc2FibGVfY2Fw X3BlcmMsICJjaGVja3BvaW50PWRpc2FibGU6JXUlJSJ9LAo+ID4gICAgICAge09wdF9jaGVja3Bv aW50X2VuYWJsZSwgImNoZWNrcG9pbnQ9ZW5hYmxlIn0sCj4gPiArICAgICB7T3B0X2NoZWNrcG9p bnRfbWVyZ2UsICJjaGVja3BvaW50PW1lcmdlIn0sCj4gPiAgICAgICB7T3B0X2NvbXByZXNzX2Fs Z29yaXRobSwgImNvbXByZXNzX2FsZ29yaXRobT0lcyJ9LAo+ID4gICAgICAge09wdF9jb21wcmVz c19sb2dfc2l6ZSwgImNvbXByZXNzX2xvZ19zaXplPSV1In0sCj4gPiAgICAgICB7T3B0X2NvbXBy ZXNzX2V4dGVuc2lvbiwgImNvbXByZXNzX2V4dGVuc2lvbj0lcyJ9LAo+ID4gQEAgLTg3Miw2ICs4 NzQsOSBAQCBzdGF0aWMgaW50IHBhcnNlX29wdGlvbnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwg Y2hhciAqb3B0aW9ucywgYm9vbCBpc19yZW1vdW50KQo+ID4gICAgICAgICAgICAgICBjYXNlIE9w dF9jaGVja3BvaW50X2VuYWJsZToKPiA+ICAgICAgICAgICAgICAgICAgICAgICBjbGVhcl9vcHQo c2JpLCBESVNBQkxFX0NIRUNLUE9JTlQpOwo+ID4gICAgICAgICAgICAgICAgICAgICAgIGJyZWFr Owo+ID4gKyAgICAgICAgICAgICBjYXNlIE9wdF9jaGVja3BvaW50X21lcmdlOgo+ID4gKyAgICAg ICAgICAgICAgICAgICAgIHNldF9vcHQoc2JpLCBNRVJHRV9DSEVDS1BPSU5UKTsKPiA+ICsgICAg ICAgICAgICAgICAgICAgICBicmVhazsKPiA+ICAjaWZkZWYgQ09ORklHX0YyRlNfRlNfQ09NUFJF U1NJT04KPiA+ICAgICAgICAgICAgICAgY2FzZSBPcHRfY29tcHJlc3NfYWxnb3JpdGhtOgo+ID4g ICAgICAgICAgICAgICAgICAgICAgIGlmICghZjJmc19zYl9oYXNfY29tcHJlc3Npb24oc2JpKSkg ewo+ID4gQEAgLTEwNDAsNiArMTA0NSwxMiBAQCBzdGF0aWMgaW50IHBhcnNlX29wdGlvbnMoc3Ry dWN0IHN1cGVyX2Jsb2NrICpzYiwgY2hhciAqb3B0aW9ucywgYm9vbCBpc19yZW1vdW50KQo+ID4g ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ICAgICAgIH0KPiA+Cj4gPiArICAgICBp ZiAodGVzdF9vcHQoc2JpLCBESVNBQkxFX0NIRUNLUE9JTlQpICYmCj4gPiArICAgICAgICAgICAg ICAgICAgICAgdGVzdF9vcHQoc2JpLCBNRVJHRV9DSEVDS1BPSU5UKSkgewo+ID4gKyAgICAgICAg ICAgICBmMmZzX2VycihzYmksICJjaGVja3BvaW50PW1lcmdlIGNhbm5vdCBiZSB1c2VkIHdpdGgg Y2hlY2twb2ludD1kaXNhYmxlXG4iKTsKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 Cj4gPiArICAgICB9Cj4gPiArCj4gPiAgICAgICAvKiBOb3QgcGFzcyBkb3duIHdyaXRlIGhpbnRz IGlmIHRoZSBudW1iZXIgb2YgYWN0aXZlIGxvZ3MgaXMgbGVzc2VyCj4gPiAgICAgICAgKiB0aGFu IE5SX0NVUlNFR19QRVJTSVNUX1RZUEUuCj4gPiAgICAgICAgKi8KPiA+IEBAIC0xMjQ1LDYgKzEy NTYsMTIgQEAgc3RhdGljIHZvaWQgZjJmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpz YikKPiA+ICAgICAgIC8qIHByZXZlbnQgcmVtYWluaW5nIHNocmlua2VyIGpvYnMgKi8KPiA+ICAg ICAgIG11dGV4X2xvY2soJnNiaS0+dW1vdW50X211dGV4KTsKPiA+Cj4gPiArICAgICAvKgo+ID4g KyAgICAgICogZmx1c2ggYWxsIGlzc3VlZCBjaGVja3BvaW50cyBhbmQgZGVzdHJveSBjaGVja3Bv aW50IHJlcXVlc3QgY29udHJvbC4KPiA+ICsgICAgICAqIGFmdGVyIHRoZW4sIGFsbCBjaGVja3Bv aW50cyBzaG91bGQgYmUgZG9uZSBieSBlYWNoIHByb2Nlc3MgY29udGV4dC4KPiA+ICsgICAgICAq Lwo+ID4gKyAgICAgZjJmc19kZXN0cm95X2NrcHRfcmVxX2NvbnRyb2woc2JpLCB0cnVlKTsKPiA+ ICsKPiA+ICAgICAgIC8qCj4gPiAgICAgICAgKiBXZSBkb24ndCBuZWVkIHRvIGRvIGNoZWNrcG9p bnQgd2hlbiBzdXBlcmJsb2NrIGlzIGNsZWFuLgo+ID4gICAgICAgICogQnV0LCB0aGUgcHJldmlv dXMgY2hlY2twb2ludCB3YXMgbm90IGRvbmUgYnkgdW1vdW50LCBpdCBuZWVkcyB0byBkbwo+ID4g QEAgLTEzNDcsMTAgKzEzNjQsMTMgQEAgaW50IGYyZnNfc3luY19mcyhzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKnNiLCBpbnQgc3luYykKPiA+ICAgICAgICAgICAgICAgc3RydWN0IGNwX2NvbnRyb2wgY3Bj Owo+ID4KPiA+ICAgICAgICAgICAgICAgY3BjLnJlYXNvbiA9IF9fZ2V0X2NwX3JlYXNvbihzYmkp Owo+ID4gLQo+ID4gLSAgICAgICAgICAgICBkb3duX3dyaXRlKCZzYmktPmdjX2xvY2spOwo+ID4g LSAgICAgICAgICAgICBlcnIgPSBmMmZzX3dyaXRlX2NoZWNrcG9pbnQoc2JpLCAmY3BjKTsKPiA+ IC0gICAgICAgICAgICAgdXBfd3JpdGUoJnNiaS0+Z2NfbG9jayk7Cj4gPiArICAgICAgICAgICAg IGlmICh0ZXN0X29wdChzYmksIE1FUkdFX0NIRUNLUE9JTlQpICYmIGNwYy5yZWFzb24gPT0gQ1Bf U1lOQykgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGVyciA9IGYyZnNfaXNzdWVfY2hlY2tw b2ludChzYmkpOwo+ID4gKyAgICAgICAgICAgICB9IGVsc2Ugewo+ID4gKyAgICAgICAgICAgICAg ICAgICAgIGRvd25fd3JpdGUoJnNiaS0+Z2NfbG9jayk7Cj4gPiArICAgICAgICAgICAgICAgICAg ICAgZXJyID0gZjJmc193cml0ZV9jaGVja3BvaW50KHNiaSwgJmNwYyk7Cj4gPiArICAgICAgICAg ICAgICAgICAgICAgdXBfd3JpdGUoJnNiaS0+Z2NfbG9jayk7Cj4gPiArICAgICAgICAgICAgIH0K PiA+ICAgICAgIH0KPiA+ICAgICAgIGYyZnNfdHJhY2VfaW9zKE5VTEwsIDEpOwo+ID4KPiA+IEBA IC0xNjc0LDYgKzE2OTQsOCBAQCBzdGF0aWMgaW50IGYyZnNfc2hvd19vcHRpb25zKHN0cnVjdCBz ZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgZGVudHJ5ICpyb290KQo+ID4gICAgICAgaWYgKHRlc3Rfb3B0 KHNiaSwgRElTQUJMRV9DSEVDS1BPSU5UKSkKPiA+ICAgICAgICAgICAgICAgc2VxX3ByaW50Zihz ZXEsICIsY2hlY2twb2ludD1kaXNhYmxlOiV1IiwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEYyRlNfT1BUSU9OKHNiaSkudW51c2FibGVfY2FwKTsKPiA+ICsgICAgIGlmICh0ZXN0 X29wdChzYmksIE1FUkdFX0NIRUNLUE9JTlQpKQo+ID4gKyAgICAgICAgICAgICBzZXFfcHV0cyhz ZXEsICIsY2hlY2twb2ludD1tZXJnZSIpOwo+ID4gICAgICAgaWYgKEYyRlNfT1BUSU9OKHNiaSku ZnN5bmNfbW9kZSA9PSBGU1lOQ19NT0RFX1BPU0lYKQo+ID4gICAgICAgICAgICAgICBzZXFfcHJp bnRmKHNlcSwgIixmc3luY19tb2RlPSVzIiwgInBvc2l4Iik7Cj4gPiAgICAgICBlbHNlIGlmIChG MkZTX09QVElPTihzYmkpLmZzeW5jX21vZGUgPT0gRlNZTkNfTU9ERV9TVFJJQ1QpCj4gPiBAQCAt MTk1NCw2ICsxOTc2LDE4IEBAIHN0YXRpYyBpbnQgZjJmc19yZW1vdW50KHN0cnVjdCBzdXBlcl9i bG9jayAqc2IsIGludCAqZmxhZ3MsIGNoYXIgKmRhdGEpCj4gPiAgICAgICAgICAgICAgIH0KPiA+ ICAgICAgIH0KPiA+Cj4gPiArICAgICBpZiAoIXRlc3Rfb3B0KHNiaSwgTUVSR0VfQ0hFQ0tQT0lO VCkpIHsKPiA+ICsgICAgICAgICAgICAgZjJmc19kZXN0cm95X2NrcHRfcmVxX2NvbnRyb2woc2Jp LCBmYWxzZSk7Cj4gPiArICAgICB9IGVsc2Ugewo+ID4gKyAgICAgICAgICAgICBlcnIgPSBmMmZz X2NyZWF0ZV9ja3B0X3JlcV9jb250cm9sKHNiaSk7Cj4gPiArICAgICAgICAgICAgIGlmIChlcnIp IHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICBmMmZzX2VycihzYmksCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGluaXRpYWxpemUgRjJGUyBpc3N1ZV9jaGVj a3BvaW50X3RocmVhZCAoJWQpIiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy cik7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgZ290byByZXN0b3JlX2djOwo+ID4gKyAgICAg ICAgICAgICB9Cj4gPiArICAgICB9Cj4gPiArCj4gPiAgICAgICAvKgo+ID4gICAgICAgICogV2Ug c3RvcCBpc3N1ZSBmbHVzaCB0aHJlYWQgaWYgRlMgaXMgbW91bnRlZCBhcyBSTwo+ID4gICAgICAg ICogb3IgaWYgZmx1c2hfbWVyZ2UgaXMgbm90IHBhc3NlZCBpbiBtb3VudCBvcHRpb24uCj4gPiBA QCAtMzcwMSw2ICszNzM1LDE1IEBAIHN0YXRpYyBpbnQgZjJmc19maWxsX3N1cGVyKHN0cnVjdCBz dXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCj4gPgo+ID4gICAgICAgZjJm c19pbml0X2ZzeW5jX25vZGVfaW5mbyhzYmkpOwo+ID4KPiA+ICsgICAgIC8qIHNldHVwIGNoZWNr cG9pbnQgcmVxdWVzdCBjb250cm9sICovCj4gPiArICAgICBlcnIgPSBmMmZzX2NyZWF0ZV9ja3B0 X3JlcV9jb250cm9sKHNiaSk7Cj4gPiArICAgICBpZiAoZXJyKSB7Cj4gPiArICAgICAgICAgICAg IGYyZnNfZXJyKHNiaSwKPiA+ICsgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gaW5pdGlhbGl6 ZSBGMkZTIGNoZWNrcG9pbnQgcmVxdWVzdCBjb250cm9sICglZCkiLAo+ID4gKyAgICAgICAgICAg ICAgICAgZXJyKTsKPiA+ICsgICAgICAgICAgICAgZ290byBmcmVlX2NwcmM7Cj4gPiArICAgICB9 Cj4gPiArCj4gPiAgICAgICAvKiBzZXR1cCBmMmZzIGludGVybmFsIG1vZHVsZXMgKi8KPiA+ICAg ICAgIGVyciA9IGYyZnNfYnVpbGRfc2VnbWVudF9tYW5hZ2VyKHNiaSk7Cj4gPiAgICAgICBpZiAo ZXJyKSB7Cj4gPiBAQCAtMzkxMCw2ICszOTUzLDggQEAgc3RhdGljIGludCBmMmZzX2ZpbGxfc3Vw ZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKPiA+ICBm cmVlX3NtOgo+ID4gICAgICAgZjJmc19kZXN0cm95X3NlZ21lbnRfbWFuYWdlcihzYmkpOwo+ID4g ICAgICAgZjJmc19kZXN0cm95X3Bvc3RfcmVhZF93cShzYmkpOwo+ID4gK2ZyZWVfY3ByYzoKPiA+ ICsgICAgIGYyZnNfZGVzdHJveV9ja3B0X3JlcV9jb250cm9sKHNiaSwgdHJ1ZSk7Cj4gPiAgZnJl ZV9kZXZpY2VzOgo+ID4gICAgICAgZGVzdHJveV9kZXZpY2VfbGlzdChzYmkpOwo+ID4gICAgICAg a3ZmcmVlKHNiaS0+Y2twdCk7Cj4gPiAtLQo+ID4gMi4zMC4wLjI4NC5nZDk4YjFkZDVlYWE3LWdv b2cKPiA+Cj4gPgo+ID4KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gPiBMaW51eC1mMmZzLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gTGludXgtZjJm cy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKPiA+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9y Z2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4LWYyZnMtZGV2ZWwKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1mMmZzLWRldmVsIG1haWxpbmcg bGlzdApMaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3Rz LnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9saW51eC1mMmZzLWRldmVsCg==