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=-6.3 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS 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 5E4FEC433DF for ; Mon, 8 Jun 2020 07:20:05 +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 0AC37204EF; Mon, 8 Jun 2020 07:20:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sourceforge.net header.i=@sourceforge.net header.b="g2+5rI4U"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sf.net header.i=@sf.net header.b="VkBlPipw"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="edb9K4Lg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0AC37204EF 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 1jiC4i-0007CA-KQ; Mon, 08 Jun 2020 07:20:04 +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 1jiC4h-0007Bn-9B for linux-f2fs-devel@lists.sourceforge.net; Mon, 08 Jun 2020 07:20:03 +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=S1VUKW9C8BQApUmbFiFOi4KLWnIEI9luZUpy+TgYpiM=; b=g2+5rI4UCAEJfmklRPKN3MqlOU SX7N7LEz6ihEXuR1gw5qxM0xFfb/y8Y7La9u3rdEf9Jy4Tyy8sDq/S65CLgyn9XxE/aMb8SeOJNdo vXvPr7VZlr9ByCdEplfyPj68hOG/WfCM/X0BQul/4TB0IUvqYxjugvJtokkSSCcpC+qQ=; 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=S1VUKW9C8BQApUmbFiFOi4KLWnIEI9luZUpy+TgYpiM=; b=VkBlPipwceGP2UIoaR6yAAqOPH aBTCyob9dJ1sShJzQxTDi2Vw2vD5QHJJ6xsRjsL/UWEhpLmrmtYXkrkOR7+jX9yJatpJRV/gPLJ3F x+1UHxfrq6x9gB3+CnPqm7otEHzGE76lI/wAjrFh2px2bMtpv6rCKza7itDUheBLtvn4=; Received: from mail-lf1-f66.google.com ([209.85.167.66]) by sfi-mx-4.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92.2) id 1jiC4f-00FymH-6P for linux-f2fs-devel@lists.sourceforge.net; Mon, 08 Jun 2020 07:20:03 +0000 Received: by mail-lf1-f66.google.com with SMTP id d7so9550910lfi.12 for ; Mon, 08 Jun 2020 00:20:01 -0700 (PDT) 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=S1VUKW9C8BQApUmbFiFOi4KLWnIEI9luZUpy+TgYpiM=; b=edb9K4LgQAWH5Nsxwv1/bGqFUw/txpXuwJ3GUw9PXsVIju9iMFtnBSVCz0MUJ5NDdt MUVNE3e5KECpe9Tae8TC6DHmqviced0AFAQAwVN9YulBEs2WZ9IjByDFXU38+pcLoqlZ BiU9Pok5ARQrabTfs+ui5oIF4v9XFxQhcqRwkX66k1JyMlaPTGlyjS7NRnu6bkXdLm0U IRhGxM7UNFFRPg45PEYfeBJbrQAXoFYjcbHi6Apr1I0cNbfuoB4TxgdxvkVk3RyXmPWy MI+05hU4tZZB1s6yb5ysn7DRGZteivMkPVCVuT36d5PgTDx9A/XdS0YpEvy7hHQ8mSfV jJnA== 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=S1VUKW9C8BQApUmbFiFOi4KLWnIEI9luZUpy+TgYpiM=; b=IAxUmHtTjrP7lQE7siw2cuHw75YtTJLaqRfIG1fYLuMSO5Vh99VUoougOwz7fHIa15 TpZSw+Gy3tcry6YffDtgPKq0ltCPgH6dHfxiRXjWbZocGMyDf7GyL+BVm3mhVT0VrtMb msP1zdOUPDiV/JLxAmR2j7fF2oaFv5J2rr1cYksEAAMCMQG+/Bu1YMHdPNQpqTzzrp/y lkNcnkUR9DW3Q+p7aDXmRtZt1UE+1b4l+248HqsrjEB+XiLk8d9o0oxbCaATeMnReXtM BBAHE4nmE9yYyJdNmxK+yXpanc/GnGoVg4A7dR9sNslxfz0SVADDPw0C44IL8qYHGl4E 4Nwg== X-Gm-Message-State: AOAM533v45E+3UODSzJXm38Nvkv1ddaXwOcexP2N8PnOalbfTC0fcGAt MbIuFn1QaLwmY88WB73Z+4Qr+4iWg8djulJ+05U= X-Google-Smtp-Source: ABdhPJztuqmrjCwZBQgvhB178Q9moXhsPWwX6ECG/mIV9fII0zfuPzhl0VANcz6v+2fdRXPIiNpRYCa4sHDBDXoqbpA= X-Received: by 2002:a19:fc15:: with SMTP id a21mr11869776lfi.121.1591600794321; Mon, 08 Jun 2020 00:19:54 -0700 (PDT) MIME-Version: 1.0 References: <20200605042746.201180-1-daeho43@gmail.com> <36d3c98e-24bb-988c-57a3-82730cc75cbc@huawei.com> In-Reply-To: <36d3c98e-24bb-988c-57a3-82730cc75cbc@huawei.com> From: Daeho Jeong Date: Mon, 8 Jun 2020 16:19:43 +0900 Message-ID: To: Chao Yu X-Headers-End: 1jiC4f-00FymH-6P Subject: Re: [f2fs-dev] [PATCH] f2fs: add F2FS_IOC_TRIM_FILE ioctl 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 , 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 WWVzLCBJIGFncmVlIHdpdGggeW91IGFib3V0IGVhY2ggdmVuZG9yIGhhcyBkaWZmZXJlbnQgaW1w bGVtZW50YXRpb24gb24gZGlzY2FyZC4KU28sIHdlIG1pZ2h0IGJlIGdvbm5hIHVzZSB0aGUgY29t YmluYXRpb24gb2YgemVyb2luZyBhbmQgc2VuZCBkaXNjYXJkcwpmb3IgYSBtb3JlCnNlY3VyZSBz b2x1dGlvbi4gOikKSSB0aGluayB3ZSBzdGlsbCBuZWVkIGEgZGlzY2FyZCBpbnRlcmZhY2UgdG8g dW5tYXAgZnJvbSB0aGUgbWFwcGluZwp0YWJsZSBvZiB0aGUgc3RvcmFnZSBkZXZpY2Ugc2lkZS4K ClRoYW5rcywKCjIwMjDrhYQgNuyblCA47J28ICjsm5QpIOyYpO2bhCAzOjU3LCBDaGFvIFl1IDx5 dWNoYW8wQGh1YXdlaS5jb20+64uY7J20IOyekeyEsToKPgo+IE9uIDIwMjAvNi84IDExOjM2LCBE YWVobyBKZW9uZyB3cm90ZToKPiA+IFllcywgdGhpcyBpcyBmb3Igc2VjdXJpdHkga2V5IGRlc3Ry dWN0aW9uLgo+ID4KPiA+IEFGQUlLLCBkaXNjYXJkIHdpbGwgdW5tYXAgdGhlIGRhdGEgYmxvY2sg YW5kLCBhZnRlciBkb25lIGl0LAo+ID4gd2UgY2FuIHJlYWQgZWl0aGVyIHplcm8gZGF0YSBvciBn YXJiYWdlIGRhdGEgZnJvbSB0aGF0IGJsb2NrIGRlcGVuZGluZwo+ID4gb24gZU1NQy9VRlMuCj4K PiBTaW5jZSBzcGVjIGRpZG4ndCByZXN0cmljdCBob3cgdmVuZG9yIGltcGxlbWVudCB0aGUgZXJh c2UgaW50ZXJmYWNlLCBzbwo+IGluIG9yZGVyIHRvIGVuaGFuY2UgcGVyZm9ybWFuY2Ugb2YgZGlz Y2FyZCBpbnRlcmZhY2UsIHZlbmRvciBjb3VsZCBpbXBsZW1lbnQKPiBpdCBhcyBhbiBhc3luYyBv bmUsIHdoaWNoIG1heSBub3QgemVybyBtYXBwaW5nIGVudHJ5KEwxIHRhYmxlKSwgaW5zdGVhZCwg aXQKPiBjb3VsZCBzZXQgcmVsYXRlZCBiaXRtYXAgdG8gaW52YWxpZCB0aGF0IG1hcHBpbmcgZW50 cnksIHRoYW4gbGF0ZXIgaWYgZGV2aWNlCj4gYWxsb3cgdXNlciB0byBhY2Nlc3MgdGhhdCBpbnZh bGlkIG1hcHBpbmcgZW50cnksIGtleSBpbmZvIG1heSBiZSBleHBsb3NlZCwKPgo+IEl0J3MgY29t cGxldGVseSB1cCB0byBob3cgdmVuZG9yIGltcGxlbWVudCB0aGUgaW50ZXJmYWNlLCBzbyBJIHRo aW5rIHRoZXJlIGlzCj4gc3RpbGwgcmlzayB0byB1c2UgZGlzY2FyZC4KPgo+IFRoYW5rcywKPgo+ ID4gSW4gYSB2aWV3IHBvaW50IG9mIHJlYWQgZGF0YSwgaXQgbWlnaHQgYmUgdGhlIHNhbWUgd2l0 aCB6ZXJvaW5nIHRoZSBkYXRhIGJsb2NrLgo+ID4gSG93ZXZlciwgc2luY2Ugd2UgY2FuIGV2ZW4g dW5tYXAgdGhhdCBibG9jaywgSSBiZWxpZXZlIGRpc2NhcmQgaXMKPiA+IHNhZmVyIHRoYW4gemVy b2luZyBvdXQuCj4gPgo+ID4gMjAyMOuFhCA27JuUIDjsnbwgKOyblCkg7Jik7KCEIDExOjQ2LCBD aGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+64uY7J20IOyekeyEsToKPiA+Pgo+ID4+IE9uIDIw MjAvNi81IDEyOjI3LCBEYWVobyBKZW9uZyB3cm90ZToKPiA+Pj4gRnJvbTogRGFlaG8gSmVvbmcg PGRhZWhvamVvbmdAZ29vZ2xlLmNvbT4KPiA+Pj4KPiA+Pj4gQWRkZWQgYSBuZXcgaW9jdGwgdG8g c2VuZCBkaXNjYXJkIGNvbW1hbmRzIHRvIHdob2xlIGRhdGEgYXJlYSBvZgo+ID4+PiBhIHJlZ3Vs YXIgZmlsZSBmb3Igc2VjdXJpdHkgcmVhc29uLgo+ID4+Cj4gPj4gSSBndWVzcyB0aGlzIGludGVy ZmFjZSBpcyBpbnRyb2R1Y2VkIGZvciBzZWN1cml0eSBrZXkgZGVzdHJ1Y3Rpb24sIGlmIEknbQo+ ID4+IHJpZ2h0LCBob3dldmVyLCBJSVJDLCBkaXNjYXJkKGVyYXNlKSBzZW1hbnRpY3MgaW4gZU1N Qy9VRlMgc3BlYyB3b24ndAo+ID4+IGd1YXJhbnRlZSB0aGF0IGRhdGEgd2hpY2ggd2FzIGRpc2Nh cmQgY291bGQgYmUgemVyb2VkIG91dCwgc28gYWZ0ZXIgZGlzY2FyZCwKPiA+PiB0aGUga2V5IHN0 aWxsIGhhdmUgcmlzayBvZiBleHBvc3VyZS4gU28gaW5zdGVhZCwgc2hvdWxkIHdlIHVzZSBzYl9p c3N1ZV96ZXJvb3V0KCk/Cj4gPj4KPiA+PiBUaGFua3MsCj4gPj4KPiA+Pj4KPiA+Pj4gU2lnbmVk LW9mZi1ieTogRGFlaG8gSmVvbmcgPGRhZWhvamVvbmdAZ29vZ2xlLmNvbT4KPiA+Pj4gLS0tCj4g Pj4+ICBmcy9mMmZzL2YyZnMuaCB8ICAgMSArCj4gPj4+ICBmcy9mMmZzL2ZpbGUuYyB8IDEyOSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPj4+ICAy IGZpbGVzIGNoYW5nZWQsIDEzMCBpbnNlcnRpb25zKCspCj4gPj4+Cj4gPj4+IGRpZmYgLS1naXQg YS9mcy9mMmZzL2YyZnMuaCBiL2ZzL2YyZnMvZjJmcy5oCj4gPj4+IGluZGV4IGM4MTJmYjhlMmQ5 Yy4uOWFlODFkMGZlZmEwIDEwMDY0NAo+ID4+PiAtLS0gYS9mcy9mMmZzL2YyZnMuaAo+ID4+PiAr KysgYi9mcy9mMmZzL2YyZnMuaAo+ID4+PiBAQCAtNDM0LDYgKzQzNCw3IEBAIHN0YXRpYyBpbmxp bmUgYm9vbCBfX2hhc19jdXJzdW1fc3BhY2Uoc3RydWN0IGYyZnNfam91cm5hbCAqam91cm5hbCwK PiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfSU9SKEYyRlNfSU9D VExfTUFHSUMsIDE4LCBfX3U2NCkKPiA+Pj4gICNkZWZpbmUgRjJGU19JT0NfUkVTRVJWRV9DT01Q UkVTU19CTE9DS1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+Pj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfSU9SKEYyRlNfSU9DVExfTUFHSUMsIDE5LCBf X3U2NCkKPiA+Pj4gKyNkZWZpbmUgRjJGU19JT0NfVFJJTV9GSUxFICAgICAgICAgICBfSU8oRjJG U19JT0NUTF9NQUdJQywgMjApCj4gPj4+Cj4gPj4+ICAjZGVmaW5lIEYyRlNfSU9DX0dFVF9WT0xV TUVfTkFNRSAgICAgRlNfSU9DX0dFVEZTTEFCRUwKPiA+Pj4gICNkZWZpbmUgRjJGU19JT0NfU0VU X1ZPTFVNRV9OQU1FICAgICBGU19JT0NfU0VURlNMQUJFTAo+ID4+PiBkaWZmIC0tZ2l0IGEvZnMv ZjJmcy9maWxlLmMgYi9mcy9mMmZzL2ZpbGUuYwo+ID4+PiBpbmRleCBkZmExYWMyZDc1MWEuLjU4 NTA3YmI1NjQ5YyAxMDA2NDQKPiA+Pj4gLS0tIGEvZnMvZjJmcy9maWxlLmMKPiA+Pj4gKysrIGIv ZnMvZjJmcy9maWxlLmMKPiA+Pj4gQEAgLTM3NDksNiArMzc0OSwxMzIgQEAgc3RhdGljIGludCBm MmZzX3Jlc2VydmVfY29tcHJlc3NfYmxvY2tzKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBs b25nIGFyZykKPiA+Pj4gICAgICAgcmV0dXJuIHJldDsKPiA+Pj4gIH0KPiA+Pj4KPiA+Pj4gK3N0 YXRpYyBpbnQgZjJmc190cmltX2ZpbGUoc3RydWN0IGZpbGUgKmZpbHApCj4gPj4+ICt7Cj4gPj4+ ICsgICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlX2lub2RlKGZpbHApOwo+ID4+PiArICAg ICBzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkgPSBGMkZTX0lfU0IoaW5vZGUpOwo+ID4+PiArICAg ICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGlub2RlLT5pX21hcHBpbmc7Cj4gPj4+ ICsgICAgIHN0cnVjdCBiaW8gKmJpbyA9IE5VTEw7Cj4gPj4+ICsgICAgIHN0cnVjdCBibG9ja19k ZXZpY2UgKnByZXZfYmRldiA9IE5VTEw7Cj4gPj4+ICsgICAgIGxvZmZfdCBmaWxlX3NpemU7Cj4g Pj4+ICsgICAgIHBnb2ZmX3QgaW5kZXgsIHBnX3N0YXJ0ID0gMCwgcGdfZW5kOwo+ID4+PiArICAg ICBibG9ja190IHByZXZfYmxvY2sgPSAwLCBsZW4gPSAwOwo+ID4+PiArICAgICBpbnQgcmV0ID0g MDsKPiA+Pj4gKwo+ID4+PiArICAgICBpZiAoIWYyZnNfaHdfc3VwcG9ydF9kaXNjYXJkKHNiaSkp Cj4gPj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOwo+ID4+PiArCj4gPj4+ICsg ICAgIGlmICghU19JU1JFRyhpbm9kZS0+aV9tb2RlKSB8fCBmMmZzX2lzX2F0b21pY19maWxlKGlu b2RlKSB8fAo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgZjJmc19jb21wcmVzc2VkX2ZpbGUo aW5vZGUpKQo+ID4+PiArICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4+PiArCj4gPj4+ ICsgICAgIGlmIChmMmZzX3JlYWRvbmx5KHNiaS0+c2IpKQo+ID4+PiArICAgICAgICAgICAgIHJl dHVybiAtRVJPRlM7Cj4gPj4+ICsKPiA+Pj4gKyAgICAgcmV0ID0gbW50X3dhbnRfd3JpdGVfZmls ZShmaWxwKTsKPiA+Pj4gKyAgICAgaWYgKHJldCkKPiA+Pj4gKyAgICAgICAgICAgICByZXR1cm4g cmV0Owo+ID4+PiArCj4gPj4+ICsgICAgIGlub2RlX2xvY2soaW5vZGUpOwo+ID4+PiArCj4gPj4+ ICsgICAgIGZpbGVfc2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKPiA+Pj4gKyAgICAgaWYgKCFm aWxlX3NpemUpCj4gPj4+ICsgICAgICAgICAgICAgZ290byBlcnI7Cj4gPj4+ICsgICAgIHBnX2Vu ZCA9IChwZ29mZl90KXJvdW5kX3VwKGZpbGVfc2l6ZSwgUEFHRV9TSVpFKSA+PiBQQUdFX1NISUZU Owo+ID4+PiArCj4gPj4+ICsgICAgIHJldCA9IGYyZnNfY29udmVydF9pbmxpbmVfaW5vZGUoaW5v ZGUpOwo+ID4+PiArICAgICBpZiAocmV0KQo+ID4+PiArICAgICAgICAgICAgIGdvdG8gZXJyOwo+ ID4+PiArCj4gPj4+ICsgICAgIGRvd25fd3JpdGUoJkYyRlNfSShpbm9kZSktPmlfZ2NfcndzZW1b V1JJVEVdKTsKPiA+Pj4gKyAgICAgZG93bl93cml0ZSgmRjJGU19JKGlub2RlKS0+aV9tbWFwX3Nl bSk7Cj4gPj4+ICsKPiA+Pj4gKyAgICAgcmV0ID0gZmlsZW1hcF93cml0ZV9hbmRfd2FpdChtYXBw aW5nKTsKPiA+Pj4gKyAgICAgaWYgKHJldCkKPiA+Pj4gKyAgICAgICAgICAgICBnb3RvIG91dDsK PiA+Pj4gKwo+ID4+PiArICAgICB0cnVuY2F0ZV9pbm9kZV9wYWdlcyhtYXBwaW5nLCAwKTsKPiA+ Pj4gKwo+ID4+PiArICAgICBmb3IgKGluZGV4ID0gcGdfc3RhcnQ7IGluZGV4IDwgcGdfZW5kOykg ewo+ID4+PiArICAgICAgICAgICAgIHN0cnVjdCBkbm9kZV9vZl9kYXRhIGRuOwo+ID4+PiArICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBlbmRfb2Zmc2V0Owo+ID4+PiArCj4gPj4+ICsgICAgICAg ICAgICAgc2V0X25ld19kbm9kZSgmZG4sIGlub2RlLCBOVUxMLCBOVUxMLCAwKTsKPiA+Pj4gKyAg ICAgICAgICAgICByZXQgPSBmMmZzX2dldF9kbm9kZV9vZl9kYXRhKCZkbiwgaW5kZXgsIExPT0tV UF9OT0RFKTsKPiA+Pj4gKyAgICAgICAgICAgICBpZiAocmV0KQo+ID4+PiArICAgICAgICAgICAg ICAgICAgICAgZ290byBvdXQ7Cj4gPj4+ICsKPiA+Pj4gKyAgICAgICAgICAgICBlbmRfb2Zmc2V0 ID0gQUREUlNfUEVSX1BBR0UoZG4ubm9kZV9wYWdlLCBpbm9kZSk7Cj4gPj4+ICsgICAgICAgICAg ICAgaWYgKHBnX2VuZCA8IGVuZF9vZmZzZXQgKyBpbmRleCkKPiA+Pj4gKyAgICAgICAgICAgICAg ICAgICAgIGVuZF9vZmZzZXQgPSBwZ19lbmQgLSBpbmRleDsKPiA+Pj4gKwo+ID4+PiArICAgICAg ICAgICAgIGZvciAoOyBkbi5vZnNfaW5fbm9kZSA8IGVuZF9vZmZzZXQ7Cj4gPj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRuLm9mc19pbl9ub2RlKyssIGluZGV4KyspIHsKPiA+Pj4g KyAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKmN1cl9iZGV2Owo+ID4+ PiArICAgICAgICAgICAgICAgICAgICAgYmxvY2tfdCBibGthZGRyID0gZjJmc19kYXRhX2Jsa2Fk ZHIoJmRuKTsKPiA+Pj4gKwo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKF9faXNfdmFs aWRfZGF0YV9ibGthZGRyKGJsa2FkZHIpKSB7Cj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICghZjJmc19pc192YWxpZF9ibGthZGRyKEYyRlNfSV9TQihpbm9kZSksCj4gPj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxrYWRkciwgREFUQV9HRU5F UklDX0VOSEFOQ0UpKSB7Cj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0ID0gLUVGU0NPUlJVUFRFRDsKPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnb3RvIG91dDsKPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCj4gPj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4+PiArCj4gPj4+ICsgICAgICAgICAgICAgICAg ICAgICBjdXJfYmRldiA9IGYyZnNfdGFyZ2V0X2RldmljZShzYmksIGJsa2FkZHIsIE5VTEwpOwo+ ID4+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKGYyZnNfaXNfbXVsdGlfZGV2aWNlKHNiaSkp IHsKPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGkgPSBmMmZzX3Rhcmdl dF9kZXZpY2VfaW5kZXgoc2JpLCBibGthZGRyKTsKPiA+Pj4gKwo+ID4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBibGthZGRyIC09IEZERVYoaSkuc3RhcnRfYmxrOwo+ID4+PiArICAg ICAgICAgICAgICAgICAgICAgfQo+ID4+PiArCj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICBp ZiAobGVuKSB7Cj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2X2Jk ZXYgPT0gY3VyX2JkZXYgJiYKPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBibGthZGRyID09IHByZXZfYmxvY2sgKyBsZW4pIHsKPiA+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZW4rKzsKPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsKPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXQgPSBfX2Jsa2Rldl9pc3N1ZV9kaXNjYXJkKHByZXZfYmRldiwKPiA+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RPUl9GUk9NX0JMT0NL KHByZXZfYmxvY2spLAo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU0VDVE9SX0ZST01fQkxPQ0sobGVuKSwKPiA+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdGUF9OT0ZTLCAwLCAmYmlvKTsKPiA+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0KQo+ID4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gPj4+ICs+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gMDsKPiA+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgfQo+ ID4+PiArCj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAoIWxlbikgewo+ID4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2X2JkZXYgPSBjdXJfYmRldjsKPiA+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldl9ibG9jayA9IGJsa2FkZHI7Cj4gPj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IDE7Cj4gPj4+ICsgICAgICAgICAgICAg ICAgICAgICB9Cj4gPj4+ICsgICAgICAgICAgICAgfQo+ID4+PiArCj4gPj4+ICsgICAgICAgICAg ICAgZjJmc19wdXRfZG5vZGUoJmRuKTsKPiA+Pj4gKyAgICAgfQo+ID4+PiArCj4gPj4+ICsgICAg IGlmIChsZW4pCj4gPj4+ICsgICAgICAgICAgICAgcmV0ID0gX19ibGtkZXZfaXNzdWVfZGlzY2Fy ZChwcmV2X2JkZXYsCj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U0VDVE9SX0ZST01fQkxPQ0socHJldl9ibG9jayksCj4gPj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU0VDVE9SX0ZST01fQkxPQ0sobGVuKSwKPiA+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlBfTk9GUywgMCwgJmJpbyk7Cj4gPj4+ICtv dXQ6Cj4gPj4+ICsgICAgIGlmIChiaW8pIHsKPiA+Pj4gKyAgICAgICAgICAgICByZXQgPSBzdWJt aXRfYmlvX3dhaXQoYmlvKTsKPiA+Pj4gKyAgICAgICAgICAgICBiaW9fcHV0KGJpbyk7Cj4gPj4+ ICsgICAgIH0KPiA+Pj4gKwo+ID4+PiArICAgICB1cF93cml0ZSgmRjJGU19JKGlub2RlKS0+aV9t bWFwX3NlbSk7Cj4gPj4+ICsgICAgIHVwX3dyaXRlKCZGMkZTX0koaW5vZGUpLT5pX2djX3J3c2Vt W1dSSVRFXSk7Cj4gPj4+ICtlcnI6Cj4gPj4+ICsgICAgIGlub2RlX3VubG9jayhpbm9kZSk7Cj4g Pj4+ICsgICAgIG1udF9kcm9wX3dyaXRlX2ZpbGUoZmlscCk7Cj4gPj4+ICsKPiA+Pj4gKyAgICAg cmV0dXJuIHJldDsKPiA+Pj4gK30KPiA+Pj4gKwo+ID4+PiAgbG9uZyBmMmZzX2lvY3RsKHN0cnVj dCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKPiA+Pj4g IHsKPiA+Pj4gICAgICAgaWYgKHVubGlrZWx5KGYyZnNfY3BfZXJyb3IoRjJGU19JX1NCKGZpbGVf aW5vZGUoZmlscCkpKSkpCj4gPj4+IEBAIC0zODM1LDYgKzM5NjEsOCBAQCBsb25nIGYyZnNfaW9j dGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJn KQo+ID4+PiAgICAgICAgICAgICAgIHJldHVybiBmMmZzX3JlbGVhc2VfY29tcHJlc3NfYmxvY2tz KGZpbHAsIGFyZyk7Cj4gPj4+ICAgICAgIGNhc2UgRjJGU19JT0NfUkVTRVJWRV9DT01QUkVTU19C TE9DS1M6Cj4gPj4+ICAgICAgICAgICAgICAgcmV0dXJuIGYyZnNfcmVzZXJ2ZV9jb21wcmVzc19i bG9ja3MoZmlscCwgYXJnKTsKPiA+Pj4gKyAgICAgY2FzZSBGMkZTX0lPQ19UUklNX0ZJTEU6Cj4g Pj4+ICsgICAgICAgICAgICAgcmV0dXJuIGYyZnNfdHJpbV9maWxlKGZpbHApOwo+ID4+PiAgICAg ICBkZWZhdWx0Ogo+ID4+PiAgICAgICAgICAgICAgIHJldHVybiAtRU5PVFRZOwo+ID4+PiAgICAg ICB9Cj4gPj4+IEBAIC00MDA0LDYgKzQxMzIsNyBAQCBsb25nIGYyZnNfY29tcGF0X2lvY3RsKHN0 cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKPiA+ Pj4gICAgICAgY2FzZSBGMkZTX0lPQ19HRVRfQ09NUFJFU1NfQkxPQ0tTOgo+ID4+PiAgICAgICBj YXNlIEYyRlNfSU9DX1JFTEVBU0VfQ09NUFJFU1NfQkxPQ0tTOgo+ID4+PiAgICAgICBjYXNlIEYy RlNfSU9DX1JFU0VSVkVfQ09NUFJFU1NfQkxPQ0tTOgo+ID4+PiArICAgICBjYXNlIEYyRlNfSU9D X1RSSU1fRklMRToKPiA+Pj4gICAgICAgICAgICAgICBicmVhazsKPiA+Pj4gICAgICAgZGVmYXVs dDoKPiA+Pj4gICAgICAgICAgICAgICByZXR1cm4gLUVOT0lPQ1RMQ01EOwo+ID4+Pgo+ID4gLgo+ ID4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51 eC1mMmZzLWRldmVsIG1haWxpbmcgbGlzdApMaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZv cmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9saW51 eC1mMmZzLWRldmVsCg==