From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from m16.mail.126.com (m16.mail.126.com [117.135.210.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 821F03115AC; Mon, 14 Sep 2026 02:07:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=117.135.210.7 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789351637; cv=none; b=UWZ22yDRo2dXZYehS9+BHO9FZDdRmHWiMfWb3ULfJhrBPEPwUP8KIMubcwEBTGeRODbMFfWbtHuzJMYvddrzElBIFB62Wew7eCdda5esloURq3RsbjEPqpx4MSpm5s3tPEnpOvp1BAbPQZkpxq1HFw/NJQePli2OruF2bEyWNZk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789351637; c=relaxed/simple; bh=5XRlHBa4Wu5AutGDpfE9rVIc3QeQ0WQ251LPIVZCads=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Content-Type: MIME-Version:Message-ID; b=HhzWk+uzwyOasat6D1JNHoYC4cWcnkLx9jKn1e07de92jnEZseJG94kx3QUxhLp7fIPGFc6LShOFs41Ht+6yRESvKhyLrDR2skWpqq4BIX7WzGvXSRMpbT7d3WkPGDOwYSB+cw6rgOy+gE5eRl+w6Ln+SDFILshSgV8sk9VR/Qw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=126.com; spf=pass smtp.mailfrom=126.com; dkim=pass (1024-bit key) header.d=126.com header.i=@126.com header.b=i/RIxnGJ; arc=none smtp.client-ip=117.135.210.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=126.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=126.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=126.com header.i=@126.com header.b="i/RIxnGJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=Date:From:To:Subject:Content-Type:MIME-Version: Message-ID; bh=5XRlHBa4Wu5AutGDpfE9rVIc3QeQ0WQ251LPIVZCads=; b=i /RIxnGJp/fTBXgj+2qwHdlovyoEy+tl4sFkKUUKKUjjLD5v+nAMCqNwbHmV/uppc ns+GE6atFy0A7cl2eMLbk/din7qkPcB7wpNxv4KR5Pp7XUrphC3rT0AhzwM9lBVc U8/lgN67BxM58B6FMu4GwBQJqSRrq7Jyuh7XxarGsU= Date: Mon, 14 Sep 2026 10:06:35 +0800 (CST) From: dd To: liubaolin Cc: "Hongling Zeng" , linkinjeon@kernel.org, hyc.lee@gmail.com, ntfs@lists.linux.dev, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re:Re: [PATCH v9 3/4] ntfs: sync the volume dirty bit with the recorded error state X-Priority: 3 X-Mailer: Coremail Webmail Server Version 2023.4-cmXT build 20260511(2e539873) Copyright (c) 2002-2026 www.mailtech.cn 126com In-Reply-To: <5fbd935a-b62e-4081-b8b6-01c8f0af064c@163.com> References: <20260911020908.2376222-1-zenghongling@kylinos.cn> <20260911020908.2376222-4-zenghongling@kylinos.cn> <5fbd935a-b62e-4081-b8b6-01c8f0af064c@163.com> X-NTES-SC: AL_Qu2TC/+evk0i4yOeZekWk00RgOk9WsG1vfQi24NQP500pC7d0x0PW2NtEWn68c2ONjqDlhaxQQBX++93fLVkX7O/6nzyOHD1hw6cF8TdC3zh Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=GBK Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <118d43f3.191a.1a09daa8d6a.Coremail.zhongling0719@126.com> X-Coremail-Locale: zh_CN X-CM-TRANSID:bCkvCgD3P6OrVqdqLVI_AA--.28954W X-CM-SenderInfo: x2kr0wpolqwiqxrzqiyswou0bp/xtbBrgtEFWqnVqvh+gAA3f X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== CkhpIEJhb2xpbiwKClRoYW5rcyBmb3IgdGhlIHJldmlldy4gSSBjaGVja2VkIHRoZSBjb21taXQg cGF0aCBpbiBkZXRhaWwuCgpTaW5jZSBudGZzX2NvbW1pdF9pbm9kZSgpIGRpc2NhcmRzIHRoZSBy ZXR1cm4gdmFsdWUgZnJvbQpfX250ZnNfd3JpdGVfaW5vZGUoKSwgSSB3aWxsIHVzZSB0aGUgbGF0 dGVyIGRpcmVjdGx5IGFuZCB2ZXJpZnkgdGhhdCB0aGUKJFZvbHVtZSBpbm9kZSBpcyBjbGVhbiBh ZnRlciBhIHN1Y2Nlc3NmdWwgY29tbWl0OgoKICAgICAgICBlcnIgPSBfX250ZnNfd3JpdGVfaW5v ZGUodm9sLT52b2xfaW5vLCAxKTsKClRoZSByZW1vdW50LXRvLXJlYWQtb25seSBwYXRoIHdpbGwg ZmFpbCBpZgpudGZzX3N5bmNfdm9sdW1lX2RpcnR5X3N0YXRlKCksIHRoZSBpbm9kZSBjb21taXQs IG9yCmJsa2Rldl9pc3N1ZV9mbHVzaCgpIGZhaWxzLiBUaGUgc2FtZSBjaGVja3Mgd2lsbCBiZSBh ZGRlZCB0bwpudGZzX3B1dF9zdXBlcigpLCB3aGVyZSBmYWlsdXJlcyB3aWxsIGJlIHJlcG9ydGVk IGFzIHdhcm5pbmdzIHNpbmNlCnB1dF9zdXBlcigpIGNhbm5vdCByZXR1cm4gYW4gZXJyb3IuCgpO Vm9sRXJyb3JzKCkgd2lsbCBub3QgYmUgdXNlZCB0byBkZXRlY3QgY29tbWl0IGZhaWx1cmVzIGJl Y2F1c2UgaXQgaXMKc3RpY2t5LiBUaGUgZXJyb3JzPXJlbW91bnQtcm8gcGF0aCBpcyB1bmFmZmVj dGVkLgoKSSB3aWxsIHNlbmQgdGhpcyBhcyBhIGZvbGxvdy11cCBwYXRjaC4KClRoYW5rcywKSG9u Z2xpbmcKCgpBdCAyMDI2LTA5LTEzIDIxOjQ2OjQ1LCAibGl1YmFvbGluIiA8bGl1YmFvbGluMTIx MzhAMTYzLmNvbT4gd3JvdGU6Cj4KPgo+1NogMjAyNi85LzExIDEwOjA5LCBIb25nbGluZyBaZW5n INC0tcA6Cj4+IFRoZSBydW50aW1lIG1ldGFkYXRhLWNvcnJ1cHRpb24gcGF0aHMgaW4gZnMvbnRm cyBvbmx5IHJlY29yZCB0aGUKPj4gaW4tbWVtb3J5IE5Wb2xFcnJvcnMoKSBmbGFnOyB3aGV0aGVy IFZPTFVNRV9JU19ESVJUWSBldmVyIHJlYWNoZXMgZGlzawo+PiBkZXBlbmRzIG9uIG50ZnNfc2V0 X3ZvbHVtZV9mbGFncygpIGJlaW5nIGNhbGxlZCBieSBzb21lIG90aGVyIHBhdGgsCj4+IHdoaWNo IGZvciBtb3N0IGVycm9yIHNpdGVzIG5ldmVyIGhhcHBlbnMuICBBIHZvbHVtZSBjYW4gdGhlcmVm b3JlCj4+IHVubW91bnQgd2l0aCBhIGNsZWFuIG9uLWRpc2sgZmxhZyBkZXNwaXRlIHJlY29yZGVk IGNvcnJ1cHRpb24sIGFuZAo+PiBjaGtkc2sgd2lsbCBub3QgcnVuIG9uIHRoZSBuZXh0IG1vdW50 Lgo+PiAKPj4gUGVyc2lzdGluZyB0aGUgZGlydHkgYml0IGZyb20gdGhlIGVycm9yIHBhdGhzIHRo ZW1zZWx2ZXMgZG9lcyBub3Qgd29yazoKPj4gdGhleSBydW4gdW5kZXIgYSB3aWRlIHZhcmlldHkg b2YgbnRmcyBsb2NrcywgYW5kIHRoZSBkaXJ0eS1iaXQgd3JpdGUKPj4gdGFrZXMgdGhlICRWb2x1 bWUgbXJlY19sb2NrIGFuZCBtYXBzIHRoZSAkVm9sdW1lIG1mdCByZWNvcmQsIHdoaWNoIG9uCj4+ IGFuICRNRlQgcGFnZS1jYWNoZSBtaXNzIHRha2VzIHRoZSAkTUZUIHJ1bmxpc3QgbG9jayBmb3Ig d3JpdGluZy4gIFRoYXQKPj4gaXMgZW5vdWdoIHRvIHNlbGYtZGVhZGxvY2sgb3IgZm9ybSBBQkJB IGN5Y2xlcyBmcm9tIHNldmVyYWwgb2YgdGhlbToKPj4gdGhlICRNRlQgZXh0ZW5kIHVuZG8gcGF0 aHMgaG9sZCB0aGUgJE1GVCBydW5saXN0IGxvY2sgYW5kIHRoZW4gdGFrZQo+PiB2b2wtPmxjbmJt cF9sb2NrIGluc2lkZSBudGZzX2NsdXN0ZXJfZnJlZSgpOyB0aGUgY2x1c3RlciBhbGxvY2F0aW9u IGFuZAo+PiBmcmVlIHJvbGxiYWNrIHBhdGhzIGhvbGQgdm9sLT5sY25ibXBfbG9jazsgYW5kIHRo ZSB3aG9sZSBtZnQgcmVjb3JkCj4+IGFsbG9jYXRpb24gdHJlZSBpcyByZWFjaGFibGUgZnJvbSBu dGZzX3dyaXRlX3ZvbHVtZV9sYWJlbCgpJ3MKPj4gYXR0cmlidXRlLWxpc3QgbWFpbnRlbmFuY2Ug d2hpbGUgaXQgaG9sZHMgdGhlICRWb2x1bWUgbXJlY19sb2NrIGl0c2VsZi4KPj4gCj4+IEluc3Rl YWQsIG1ha2UgdGhlIHBlcnNpc3RlbmNlIGEgcHJvcGVydHkgb2YgdGhlIHN5bmMgcGF0aHMsIHdo aWNoIHJ1bgo+PiB3aXRob3V0IG50ZnMgbG9ja3MgaGVsZC4gIFRoZSBuZXcgbnRmc19zeW5jX3Zv bHVtZV9kaXJ0eV9zdGF0ZSgpIHNldHMKPj4gVk9MVU1FX0lTX0RJUlRZIHdoZW4gTlZvbEVycm9y cygpIGlzIHJlY29yZGVkIGFuZCBjbGVhcnMgaXQgb3RoZXJ3aXNlLAo+PiBldmFsdWF0aW5nIHRo ZSBlcnJvciBmbGFnIHVuZGVyIHRoZSAkVm9sdW1lIG1yZWNfbG9jay4gIEl0IGlzIGNhbGxlZAo+ PiBmcm9tIG50ZnNfc3luY19mcygpLCBmcm9tIHRoZSByZW1vdW50LXRvLXJlYWQtb25seSBwYXRo IG9mCj4+IG50ZnNfcmVjb25maWd1cmUoKSwgYW5kIGZyb20gbnRmc19wdXRfc3VwZXIoKSwgd2hp Y2ggcHJldmlvdXNseQo+PiBldmFsdWF0ZWQgTlZvbEVycm9ycygpIG91dHNpZGUgdGhlIGxvY2sg YmVmb3JlIGNsZWFyaW5nIHRoZSBkaXJ0eSBiaXQKPj4gdW5jb25kaXRpb25hbGx5LCBhbmQgd2hp Y2ggbm93IGFsc28gcGVyc2lzdHMgdGhlIGRpcnR5IGJpdCBmb3Igdm9sdW1lcwo+PiB3aXRoIHJl Y29yZGVkIGVycm9ycyBzbyB0aGV5IHVubW91bnQgd2l0aCBjaGtkc2sgc2NoZWR1bGVkLiAgVGhl Cj4+IG50ZnNfY2xlYXJfdm9sdW1lX2ZsYWdzKCkgd3JhcHBlciwgd2hvc2UgbGFzdCBjYWxsZXJz IHRoaXMgcGF0Y2gKPj4gcmVwbGFjZXMsIGhhcyBubyB1c2VycyBsZWZ0IGFuZCBpcyByZW1vdmVk Lgo+PiAKPj4gVGhlIGd1YXJhbnRlZSB0aGlzIHByb3ZpZGVzIGlzIGV2ZW50dWFsLCBub3QgaW5z dGFudGFuZW91czogdGhlIGVycm9yCj4+IHBhdGhzIHJlY29yZCBOVm9sRXJyb3JzKCkgd2l0aCBh IGxvY2stZnJlZSBzZXRfYml0KCksIHNvIGEgcGVyc2lzdGVuY2UKPj4gcG9pbnQgdGhhdCBldmFs dWF0ZXMgdGhlIGZsYWcganVzdCBiZWZvcmUgYW4gZXJyb3IgaXMgcmVjb3JkZWQgY2FuCj4+IHN0 aWxsIGxlYXZlIHRoZSBvbi1kaXNrIGJpdCBjbGVhbiB1bnRpbCB0aGUgbmV4dCBvbmUuICBUaGlz IGlzIHNvdW5kCj4+IGJlY2F1c2UgTlZvbEVycm9ycygpIGlzIHN0aWNreSBmb3IgdGhlIGxpZmV0 aW1lIG9mIHRoZSBtb3VudCBhbmQgZXZlcnkKPj4gcGVyc2lzdGVuY2UgcG9pbnQgcmUtZGVyaXZl cyB0aGUgb24tZGlzayBiaXQgZnJvbSBpdDsgdGhlIGxhc3Qgb25lLAo+PiBudGZzX3B1dF9zdXBl cigpLCBydW5zIGFmdGVyIGV2aWN0X2lub2RlcygpIG9uIGEgcXVpZXNjZWQgZmlsZXN5c3RlbSwK Pj4gc28gYSB2b2x1bWUgdGhhdCBpcyByZWFkLXdyaXRlIGF0IHVubW91bnQgdGltZSBjYW5ub3Qg dW5tb3VudCBjbGVhbi4KPj4gQSB2b2x1bWUgdGhhdCBpcyBhbHJlYWR5IHJlYWQtb25seSB3aGVu IHRoZSBlcnJvciBpcyByZWNvcmRlZAo+PiAoZXJyb3JzPXJlbW91bnQtcm8gZmxpcHMgdGhlIHN1 cGVyYmxvY2sgb24gdGhlIGZpcnN0IGVycm9yLCBhcyBkb2VzIGFuCj4+IGVhcmxpZXIgcmVtb3Vu dC1ybykgaGFzIG5vIHBlcnNpc3RlbmNlIHBvaW50IGxlZnQgYW5kIGtlZXBzIHdoYXRldmVyCj4+ IG9uLWRpc2sgYml0IGl0IGhhZDsgdGhhdCBiZWhhdmlvdXIgaXMgdW5jaGFuZ2VkLiAgVGhlIHJl c2lkdWFsIHdpbmRvdwo+PiBpcyBhIGNyYXNoIGJldHdlZW4gdGhlIGVycm9yIGFuZCB0aGUgbmV4 dCBwZXJzaXN0ZW5jZSBwb2ludC4KPj4gCj4+IFRoZSBwZXJzaXN0ZW5jZSBwYXRocyBuZXZlciB3 cml0ZSBhIGhpYmVybmF0ZWQgdm9sdW1lOiByZXN1bWluZyBXaW5kb3dzCj4+IGZyb20gYSBtb2Rp ZmllZCBpbWFnZSBjb3JydXB0cyBpdC4gIFJlY29yZCB0aGUgbW91bnQtdGltZSBoaWJlcm5hdGlv bgo+PiB2ZXJkaWN0IGluIHRoZSBuZXcgTlZfSGliZXJuYXRlZCB2b2x1bWUgZmxhZyBhbmQgbWFr ZQo+PiBudGZzX3N5bmNfdm9sdW1lX2RpcnR5X3N0YXRlKCkgYSBuby1vcCB3aGlsZSBpdCBpcyBz ZXQsIHNvIHRoZSBkaXJ0eQo+PiBiaXQgaXMgbGVmdCBleGFjdGx5IGFzIGl0IGlzIG9uIGRpc2sg YW5kIG9ubHkgdGhlIGluLW1lbW9yeSBlcnJvcgo+PiBzdGF0ZSBpcyBrZXB0LiAgV2l0aG91dCB0 aGlzLCBhbiBydyBtb3VudCBvZiBhIGhpYmVybmF0ZWQgdm9sdW1lIHdpdGgKPj4gdGhlIGRlZmF1 bHQgZXJyb3JzPWNvbnRpbnVlIHdvdWxkIGdhaW4gYSBmaWxlc3lzdGVtLWludGVybmFsIHdyaXRl IG9uCj4+IHRoZSBmaXJzdCBzeW5jLCByZW1vdW50IG9yIHVubW91bnQuICBPdGhlciB3cml0ZXMg dG8gc3VjaCBhIG1vdW50LAo+PiBsaWtlIHRoZSBtb3VudC10aW1lIGxvZ2ZpbGUgZW1wdHlpbmcs IGFyZSBwcmUtZXhpc3RpbmcgYW5kIHVuY2hhbmdlZC4KPj4gCj4+IENjOiBzdGFibGVAdmdlci5r ZXJuZWwub3JnCj4+IFNpZ25lZC1vZmYtYnk6IEhvbmdsaW5nIFplbmcgPHplbmdob25nbGluZ0Br eWxpbm9zLmNuPgo+PiAtLS0KPj4gICBmcy9udGZzL250ZnMuaCAgIHwgICAxIC0KPj4gICBmcy9u dGZzL3N1cGVyLmMgIHwgMTI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tCj4+ICAgZnMvbnRmcy92b2x1bWUuaCB8ICAgNCArKwo+PiAgIDMgZmlsZXMgY2hh bmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0 IGEvZnMvbnRmcy9udGZzLmggYi9mcy9udGZzL250ZnMuaAo+PiBpbmRleCA0NWY3Nzg0OGE5Y2Yu LmE1Y2Q1NDkzYzUwMSAxMDA2NDQKPj4gLS0tIGEvZnMvbnRmcy9udGZzLmgKPj4gKysrIGIvZnMv bnRmcy9udGZzLmgKPj4gQEAgLTIxOSw3ICsyMTksNiBAQCBzdHJ1Y3Qgb3B0aW9uX3Qgewo+PiAg IH07Cj4+ICAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBvcHRpb25fdCBvbl9lcnJvcnNfYXJyW107Cj4+ ICAgaW50IG50ZnNfc2V0X3ZvbHVtZV9mbGFncyhzdHJ1Y3QgbnRmc192b2x1bWUgKnZvbCwgX19s ZTE2IGZsYWdzKTsKPj4gLWludCBudGZzX2NsZWFyX3ZvbHVtZV9mbGFncyhzdHJ1Y3QgbnRmc192 b2x1bWUgKnZvbCwgX19sZTE2IGZsYWdzKTsKPj4gICBpbnQgbnRmc193cml0ZV92b2x1bWVfbGFi ZWwoc3RydWN0IG50ZnNfdm9sdW1lICp2b2wsIGNoYXIgKmxhYmVsKTsKPj4gICAKPj4gICAvKiBG cm9tIGZzL250ZnMvbXN0LmMgKi8KPj4gZGlmZiAtLWdpdCBhL2ZzL250ZnMvc3VwZXIuYyBiL2Zz L250ZnMvc3VwZXIuYwo+PiBpbmRleCA2YmExOTk4NmE1OTguLjczMzU2NTk1MzMwMiAxMDA2NDQK Pj4gLS0tIGEvZnMvbnRmcy9zdXBlci5jCj4+ICsrKyBiL2ZzL250ZnMvc3VwZXIuYwo+PiBAQCAt MjYyLDYgKzI2Miw4IEBAIHN0YXRpYyBpbnQgbnRmc19wYXJzZV9wYXJhbShzdHJ1Y3QgZnNfY29u dGV4dCAqZmMsIHN0cnVjdCBmc19wYXJhbWV0ZXIgKnBhcmFtKQo+PiAgIAlyZXR1cm4gMDsKPj4g ICB9Cj4+ICAgCj4+ICtzdGF0aWMgaW50IG50ZnNfc3luY192b2x1bWVfZGlydHlfc3RhdGUoc3Ry dWN0IG50ZnNfdm9sdW1lICp2b2wpOwo+PiArCj4+ICAgc3RhdGljIGludCBudGZzX3JlY29uZmln dXJlKHN0cnVjdCBmc19jb250ZXh0ICpmYykKPj4gICB7Cj4+ICAgCXN0cnVjdCBzdXBlcl9ibG9j ayAqc2IgPSBmYy0+cm9vdC0+ZF9zYjsKPj4gQEAgLTMxMiwxMCArMzE0LDI0IEBAIHN0YXRpYyBp bnQgbnRmc19yZWNvbmZpZ3VyZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCj4+ICAgCQl9Cj4+ICAg CX0gZWxzZSBpZiAoIXNiX3Jkb25seShzYikgJiYgKGZjLT5zYl9mbGFncyAmIFNCX1JET05MWSkp IHsKPj4gICAJCS8qIFJlbW91bnRpbmcgcmVhZC1vbmx5LiAqLwo+PiAtCQlpZiAoIU5Wb2xFcnJv cnModm9sKSkgewo+PiAtCQkJaWYgKG50ZnNfY2xlYXJfdm9sdW1lX2ZsYWdzKHZvbCwgVk9MVU1F X0lTX0RJUlRZKSkKPj4gLQkJCQludGZzX3dhcm5pbmcoc2IsCj4+IC0JCQkJCSJGYWlsZWQgdG8g Y2xlYXIgZGlydHkgYml0IGluIHZvbHVtZSBpbmZvcm1hdGlvbiBmbGFncy4gIFJ1biBjaGtkc2su Iik7Cj4+ICsJCS8qCj4+ICsJCSAqIFdpdGggZXJyb3JzIHJlY29yZGVkIHRoZSBkaXJ0eSBiaXQg aXMgc2V0IHJhdGhlciB0aGFuCj4+ICsJCSAqIGNsZWFyZWQsIGFuZCBpdCBpcyBjb21taXR0ZWQg cmlnaHQgYXdheTogdGhlIFZGUyBkb2VzCj4+ICsJCSAqIG5vdCBzeW5jIHRoZSBmaWxlc3lzdGVt IGR1cmluZyBhIHJlbW91bnQsIGFuZCBvbmNlIHRoZQo+PiArCQkgKiByZW1vdW50IHN1Y2NlZWRz IG5vIGZ1cnRoZXIgcGVyc2lzdGVuY2UgcG9pbnQgZXhpc3RzIC0KPj4gKwkJICogbnRmc19zeW5j X2ZzKCkgaXMgb25seSBldmVyIGludm9rZWQgZm9yIHJlYWQtd3JpdGUKPj4gKwkJICogc3VwZXJi bG9ja3MgKGFsbCBpdHMgVkZTIGNhbGxlcnMgc2tpcCByZWFkLW9ubHkgb25lcykKPj4gKwkJICog YW5kIG50ZnNfcHV0X3N1cGVyKCkgc2tpcHMgdGhlbSwgc28gdGhlIG9ubHkgcmVtYWluaW5nCj4+ ICsJCSAqIHdyaXRlIHdvdWxkIGJlIHRoZSBldmljdC10aW1lIGNvbW1pdCBhdCB1bm1vdW50LCB3 aGljaAo+PiArCQkgKiBhIGNyYXNoIG5ldmVyIHJlYWNoZXMuICBBbiBlcnJvciByZWNvcmRlZCBv bmx5IGFmdGVyCj4+ICsJCSAqIHRoZSByZW1vdW50IGlzIHN0aWxsIG5ldmVyIHBlcnNpc3RlZC4K Pj4gKwkJICovCj4+ICsJCWlmIChudGZzX3N5bmNfdm9sdW1lX2RpcnR5X3N0YXRlKHZvbCkpIHsK Pj4gKwkJCW50ZnNfd2FybmluZyhzYiwKPj4gKwkJCQkiRmFpbGVkIHRvIHVwZGF0ZSBkaXJ0eSBi aXQgaW4gdm9sdW1lIGluZm9ybWF0aW9uIGZsYWdzLiAgUnVuIGNoa2Rzay4iKTsKPj4gKwkJfSBl bHNlIGlmIChOSW5vRGlydHkoTlRGU19JKHZvbC0+dm9sX2lubykpKSB7Cj4+ICsJCQludGZzX2Nv bW1pdF9pbm9kZSh2b2wtPnZvbF9pbm8pOwo+PiArCQkJYmxrZGV2X2lzc3VlX2ZsdXNoKHNiLT5z X2JkZXYpOwo+Cj5IaSBIb25nbGluZywKPiAgICBUaGUgY29tbWVudCBzYXlzIHRoYXQgdGhlIGRp cnR5IHN0YXRlIG11c3QgYmUgY29tbWl0dGVkIGltbWVkaWF0ZWx5IAo+ZHVyaW5nIHJlbW91bnQt dG8tcmVhZC1vbmx5IGJlY2F1c2Ugbm8gbGF0ZXIgbnRmc19zeW5jX2ZzKCkgcGVyc2lzdGVuY2Ug Cj5wb2ludCBpcyBhdmFpbGFibGUuIEhvd2V2ZXIsIHRoaXMgY29kZSBkb2VzIG5vdCB2ZXJpZnkg dGhhdCB0aGlzIAo+aW1tZWRpYXRlIHBlcnNpc3RlbmNlIGFjdHVhbGx5IHN1Y2NlZWRzLgo+Cj4g ICBudGZzX2NvbW1pdF9pbm9kZSgpIGlzIGEgdm9pZCB3cmFwcGVyLCBzbyBmYWlsdXJlcyB3aGls ZSB3cml0aW5nIHRoZSAKPiRWb2x1bWUgcmVjb3JkIG9yIHVwZGF0aW5nICRNRlRNaXJyIGNhbiBv bmx5IGJlIG9ic2VydmVkIGluZGlyZWN0bHkgCj50aHJvdWdoIE5Wb2xFcnJvcnMoKSwgYnV0IHRo YXQgc3RhdGUgaXMgbm90IGNoZWNrZWQgYWZ0ZXIgdGhlIGNvbW1pdC4gSW4gCj5hZGRpdGlvbiwg dGhlIHJldHVybiB2YWx1ZSBvZiBibGtkZXZfaXNzdWVfZmx1c2goKSBpcyBpZ25vcmVkLgo+Cj4g ICBBcyBhIHJlc3VsdCwgcmVtb3VudCBjYW4gY29tcGxldGUgc3VjY2Vzc2Z1bGx5IGV2ZW4gdGhv dWdoIAo+Vk9MVU1FX0lTX0RJUlRZIHdhcyBub3QgZHVyYWJseSB3cml0dGVuIHRvIHN0YWJsZSBz dG9yYWdlLiBBIGNyYXNoIGFmdGVyIAo+dGhlIHJlbW91bnQgbWF5IHRoZW4gbGVhdmUgdGhlIHZv bHVtZSBjbGVhbiBvbiBkaXNrLCBkZXNwaXRlIHRoZSAKPmNvbW1lbnShr3Mgc3RhdGVkIHJlcXVp cmVtZW50IHRoYXQgdGhlIGRpcnR5IHN0YXRlIGJlIGNvbW1pdHRlZCAKPmltbWVkaWF0ZWx5LiBQ bGVhc2UgZGV0ZWN0IGFuZCBoYW5kbGUgZXJyb3JzIGZyb20gdGhlIGNvbXBsZXRlICRWb2x1bWUg Cj5jb21taXQgYW5kIGJsb2NrLWRldmljZSBmbHVzaCBzZXF1ZW5jZSBiZWZvcmUgdHJlYXRpbmcg dGhlIGRpcnR5LXN0YXRlIAo+dXBkYXRlIGFzIHN1Y2Nlc3NmdWwuCj4KPlRoYW5rcywKPkJhb2xp bi4KPgo+PiAgIAkJfQo+PiAgIAl9Cj4+ICAgCj4+IEBAIC0zNTcsOSArMzczLDEwIEBAIHZvaWQg bnRmc19oYW5kbGVfZXJyb3Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKPj4gICAgKiBAdm9sOglu dGZzIHZvbHVtZSBvbiB3aGljaCB0byBtb2RpZnkgdGhlIGZsYWdzCj4+ICAgICogQHNldF9iaXRz OgliaXRzIHRvIHNldCBpbiB0aGUgdm9sdW1lIGluZm9ybWF0aW9uIGZsYWdzCj4+ICAgICogQGNs ZWFyX2JpdHM6CWJpdHMgdG8gY2xlYXIgaW4gdGhlIHZvbHVtZSBpbmZvcm1hdGlvbiBmbGFncwo+ PiArICogQGRpcnR5X2lmX2Vycm9yczoJZm9yY2UgVk9MVU1FX0lTX0RJUlRZIG9uIHdoZW4gTlZv bEVycm9ycygpIGlzIHNldAo+PiAgICAqCj4+ICAgICogSW50ZXJuYWwgZnVuY3Rpb24uICBZb3Ug cHJvYmFibHkgd2FudCB0byB1c2UgbnRmc197c2V0LGNsZWFyfV92b2x1bWVfZmxhZ3MoKQo+PiAt ICogaW5zdGVhZCAoc2VlIGJlbG93KS4KPj4gKyAqIG9yIG50ZnNfc3luY192b2x1bWVfZGlydHlf c3RhdGUoKSBpbnN0ZWFkIChzZWUgYmVsb3cpLgo+PiAgICAqCj4+ICAgICogQ29tYmluZSBAc2V0 X2JpdHMgYW5kIEBjbGVhcl9iaXRzIHdpdGggdGhlIGN1cnJlbnQgaW4tbWVtb3J5IGZsYWcgc3Rh dGUgYW5kCj4+ICAgICogd3JpdGUgdGhlIHJlc3VsdCBiYWNrLiAgVGhlIHNldC9jbGVhciBoZWxw ZXJzIHBhc3Mgb25seSB0aGUgYml0cyB0byBtb2RpZnksCj4+IEBAIC0zNjgsMTEgKzM4NSwxOCBA QCB2b2lkIG50ZnNfaGFuZGxlX2Vycm9yKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCj4+ICAgICog QWxsIGJpdCBtYW5pcHVsYXRpb24gaXMgZG9uZSBvbiBDUFUtZW5kaWFuIHZhbHVlcywgYW5kIHRo ZSByZXN1bHQgaXMKPj4gICAgKiBjb252ZXJ0ZWQgYmFjayB0byBsaXR0bGUtZW5kaWFuIGJlZm9y ZSBzdG9yaW5nIGl0Lgo+PiAgICAqCj4+ICsgKiBXaGVuIEBkaXJ0eV9pZl9lcnJvcnMgaXMgdHJ1 ZSBhbmQgZXJyb3JzIGhhdmUgYmVlbiByZWNvcmRlZCBvbiBAdm9sLAo+PiArICogVk9MVU1FX0lT X0RJUlRZIGlzIGZvcmNlZCBvbiBhZnRlciB0aGUgcmVxdWVzdGVkIGNoYW5nZXMuICBOVm9sRXJy b3JzKCkgaXMKPj4gKyAqIGV2YWx1YXRlZCB1bmRlciB0aGUgc2FtZSBtcmVjX2xvY2ssIHdoaWNo IG9yZGVycyB0aGlzIGFnYWluc3Qgb3RoZXIKPj4gKyAqIGxvY2tlZCBmbGFnIHVwZGF0ZXM7IHRo ZSBydW50aW1lIGVycm9yIHBhdGhzIHRoZW1zZWx2ZXMgcmVjb3JkIHRoZSBmbGFnCj4+ICsgKiBs b2NrLWZyZWUsIHNvIHNlZSBudGZzX3N5bmNfdm9sdW1lX2RpcnR5X3N0YXRlKCkgZm9yIHRoZSBn dWFyYW50ZWUgdGhpcwo+PiArICogcHJvdmlkZXMgYWdhaW5zdCB0aGVtLgo+PiArICoKPj4gICAg KiBSZXR1cm4gMCBvbiBzdWNjZXNzIGFuZCAtZXJybm8gb24gZXJyb3IuCj4+ICAgICovCj4+ICAg c3RhdGljIGludCBudGZzX3dyaXRlX3ZvbHVtZV9mbGFncyhzdHJ1Y3QgbnRmc192b2x1bWUgKnZv bCwKPj4gICAJCWNvbnN0IF9fbGUxNiBzZXRfYml0cywgY29uc3QgX19sZTE2IGNsZWFyX2JpdHMs Cj4+IC0JCWNvbnN0IGJvb2wgc2tpcF9pZl9lcnJvcnMpCj4+ICsJCWNvbnN0IGJvb2wgZGlydHlf aWZfZXJyb3JzKQo+PiAgIHsKPj4gICAJc3RydWN0IG50ZnNfaW5vZGUgKm5pID0gTlRGU19JKHZv bC0+dm9sX2lubyk7Cj4+ICAgCXN0cnVjdCB2b2x1bWVfaW5mb3JtYXRpb24gKnZpOwo+PiBAQCAt MzgyLDEyICs0MDYsMTEgQEAgc3RhdGljIGludCBudGZzX3dyaXRlX3ZvbHVtZV9mbGFncyhzdHJ1 Y3QgbnRmc192b2x1bWUgKnZvbCwKPj4gICAKPj4gICAJbXV0ZXhfbG9jaygmbmktPm1yZWNfbG9j ayk7Cj4+ICAgCj4+IC0JaWYgKHNraXBfaWZfZXJyb3JzICYmIE5Wb2xFcnJvcnModm9sKSkKPj4g LQkJZ290byBkb25lOwo+PiAtCj4+ICAgCWZsYWdzID0gbGUxNl90b19jcHUodm9sLT52b2xfZmxh Z3MpOwo+PiAgIAlmbGFncyB8PSBsZTE2X3RvX2NwdShzZXRfYml0cykgJiBsZTE2X3RvX2NwdShW T0xVTUVfRkxBR1NfTUFTSyk7Cj4+ICAgCWZsYWdzICY9IH4obGUxNl90b19jcHUoY2xlYXJfYml0 cykgJiBsZTE2X3RvX2NwdShWT0xVTUVfRkxBR1NfTUFTSykpOwo+PiArCWlmIChkaXJ0eV9pZl9l cnJvcnMgJiYgTlZvbEVycm9ycyh2b2wpKQo+PiArCQlmbGFncyB8PSBsZTE2X3RvX2NwdShWT0xV TUVfSVNfRElSVFkpOwo+PiAgIAludGZzX2RlYnVnKCJFbnRlcmluZywgb2xkIGZsYWdzID0gMHgl eCwgbmV3IGZsYWdzID0gMHgleC4iLAo+PiAgIAkJCWxlMTZfdG9fY3B1KHZvbC0+dm9sX2ZsYWdz KSwgZmxhZ3MpOwo+PiAgIAo+PiBAQCAtNDM5LDMxICs0NjIsNDMgQEAgaW50IG50ZnNfc2V0X3Zv bHVtZV9mbGFncyhzdHJ1Y3QgbnRmc192b2x1bWUgKnZvbCwgX19sZTE2IGZsYWdzKQo+PiAgIH0K Pj4gICAKPj4gICAvKgo+PiAtICogbnRmc19jbGVhcl92b2x1bWVfZmxhZ3MgLSBjbGVhciBiaXRz IGluIHRoZSB2b2x1bWUgaW5mb3JtYXRpb24gZmxhZ3MKPj4gLSAqIEB2b2w6CW50ZnMgdm9sdW1l IG9uIHdoaWNoIHRvIG1vZGlmeSB0aGUgZmxhZ3MKPj4gLSAqIEBmbGFnczoJZmxhZ3MgdG8gY2xl YXIgb24gdGhlIHZvbHVtZQo+PiArICogbnRmc19zeW5jX3ZvbHVtZV9kaXJ0eV9zdGF0ZSAtIHBl cnNpc3QgdGhlIGRpcnR5IGJpdCBwZXIgdGhlIGVycm9yIHN0YXRlCj4+ICsgKiBAdm9sOgludGZz IHZvbHVtZSB3aG9zZSBkaXJ0eSBiaXQgdG8gcGVyc2lzdAo+PiAgICAqCj4+IC0gKiBDbGVhciB0 aGUgYml0cyBpbiBAZmxhZ3MgaW4gdGhlIHZvbHVtZSBpbmZvcm1hdGlvbiBmbGFncyBvbiB0aGUg dm9sdW1lIEB2b2wuCj4+IC0gKiBUaGUgYml0cyBhcmUgY29tYmluZWQgd2l0aCB0aGUgY3VycmVu dCBmbGFnIHN0YXRlIHVuZGVyIHRoZSBsb2NrIGluCj4+IC0gKiBudGZzX3dyaXRlX3ZvbHVtZV9m bGFncygpLCBzbyBjb25jdXJyZW50IHVwZGF0ZXMgYXJlIG5vdCBsb3N0Lgo+PiArICogU2V0IFZP TFVNRV9JU19ESVJUWSBpZiBlcnJvcnMgaGF2ZSBiZWVuIHJlY29yZGVkIG9uIEB2b2wgYW5kIGNs ZWFyIGl0Cj4+ICsgKiBvdGhlcndpc2UsIHVuZGVyIHRoZSAkVm9sdW1lIG1yZWNfbG9jay4KPj4g ICAgKgo+PiAtICogUmV0dXJuIDAgb24gc3VjY2VzcyBhbmQgLWVycm5vIG9uIGVycm9yLgo+PiAt ICovCj4+IC1pbnQgbnRmc19jbGVhcl92b2x1bWVfZmxhZ3Moc3RydWN0IG50ZnNfdm9sdW1lICp2 b2wsIF9fbGUxNiBmbGFncykKPj4gLXsKPj4gLQlyZXR1cm4gbnRmc193cml0ZV92b2x1bWVfZmxh Z3Modm9sLCAwLCBmbGFncywgZmFsc2UpOwo+PiAtfQo+PiAtCj4+IC0vKgo+PiAtICogbnRmc19j bGVhcl92b2x1bWVfZGlydHlfaWZfbm9fZXJyb3JzIC0gY2xlYXIgZGlydHkgYml0IGlmIG5vIGVy cm9ycyBleGlzdAo+PiAtICogQHZvbDoJbnRmcyB2b2x1bWUgd2hvc2UgZGlydHkgYml0IHNob3Vs ZCBiZSBjbGVhcmVkCj4+ICsgKiBUaGUgZ3VhcmFudGVlIHRoaXMgcHJvdmlkZXMgaXMgZXZlbnR1 YWwsIG5vdCBpbnN0YW50YW5lb3VzOiB0aGUgcnVudGltZQo+PiArICogZXJyb3IgcGF0aHMgcmVj b3JkIE5Wb2xFcnJvcnMoKSB3aXRoIGEgbG9jay1mcmVlIHNldF9iaXQoKSwgc28gYQo+PiArICog cGVyc2lzdGVuY2UgcG9pbnQgdGhhdCBldmFsdWF0ZXMgdGhlIGZsYWcganVzdCBiZWZvcmUgYW4g ZXJyb3IgaXMKPj4gKyAqIHJlY29yZGVkIGNhbiBzdGlsbCBsZWF2ZSB0aGUgb24tZGlzayBiaXQg Y2xlYW4uICBUaGlzIGlzIHNvdW5kIGJlY2F1c2UKPj4gKyAqIE5Wb2xFcnJvcnMoKSBpcyBzdGlj a3kgKG5vdGhpbmcgY2xlYXJzIGl0IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIG1vdW50KQo+PiAr ICogYW5kIGV2ZXJ5IHBlcnNpc3RlbmNlIHBvaW50IHJlLWRlcml2ZXMgdGhlIG9uLWRpc2sgYml0 IGZyb20gaXQ7IHRoZQo+PiArICogbGFzdCBvbmUsIG50ZnNfcHV0X3N1cGVyKCksIHJ1bnMgYWZ0 ZXIgZXZpY3RfaW5vZGVzKCkgb24gYSBxdWllc2NlZAo+PiArICogZmlsZXN5c3RlbSwgc28gYSB2 b2x1bWUgdGhhdCBpcyByZWFkLXdyaXRlIGF0IHVubW91bnQgdGltZSBjYW5ub3QKPj4gKyAqIHVu bW91bnQgY2xlYW4uICBBIHZvbHVtZSB0aGF0IGlzIGFscmVhZHkgcmVhZC1vbmx5IHdoZW4gdGhl IGVycm9yIGlzCj4+ICsgKiByZWNvcmRlZCAoZXJyb3JzPXJlbW91bnQtcm8gZmxpcHMgdGhlIHN1 cGVyYmxvY2sgb24gdGhlIGZpcnN0IGVycm9yLAo+PiArICogYXMgZG9lcyBhbiBlYXJsaWVyIHJl bW91bnQtcm8pIGhhcyBubyBwZXJzaXN0ZW5jZSBwb2ludCBsZWZ0IGFuZAo+PiArICoga2VlcHMg d2hhdGV2ZXIgb24tZGlzayBiaXQgaXQgaGFkOyB0aGF0IGJlaGF2aW91ciBpcyB1bmNoYW5nZWQu ICBUaGUKPj4gKyAqIHJlc2lkdWFsIHdpbmRvdyBpcyBhIGNyYXNoIGJldHdlZW4gdGhlIGVycm9y IGFuZCB0aGUgbmV4dAo+PiArICogcGVyc2lzdGVuY2UgcG9pbnQuCj4+ICsgKgo+PiArICogVGhp cyBpcyB0aGUgc2luZ2xlIHBvaW50IHRoYXQgcGVyc2lzdHMgdGhlIGluLW1lbW9yeSBlcnJvciBz dGF0ZSB0byBkaXNrLgo+PiArICogVGhlIHJ1bnRpbWUgZXJyb3IgcGF0aHMgb25seSByZWNvcmQg TlZvbEVycm9ycygpIGJlY2F1c2UgdGhleSBydW4gdW5kZXIgYQo+PiArICogdmFyaWV0eSBvZiBu dGZzIGxvY2tzIHRoZSBkaXJ0eS1iaXQgd3JpdGUgY2Fubm90IGJlIHRha2VuIHVuZGVyIChydW5s aXN0Cj4+ICsgKiBsb2Nrcywgdm9sLT5sY25ibXBfbG9jaywgdm9sLT5tZnRibXBfbG9jaywgbXJl Y19sb2Nrcyk7IHRoZSBmaXJzdAo+PiArICogbnRmc19zeW5jX2ZzKCksIGEgcmVtb3VudCwgb3Ig dGhlIHVubW91bnQgdGhlbiBwZXJzaXN0cyB0aGUgZmxhZyBoZXJlLgo+PiArICoKPj4gKyAqIEEg aGliZXJuYXRlZCB2b2x1bWUgaXMgbm90IHdyaXR0ZW4gZnJvbSB0aGVzZSBwZXJzaXN0ZW5jZSBw YXRoczoKPj4gKyAqIHJlc3VtaW5nIFdpbmRvd3MgZnJvbSBhIG1vZGlmaWVkIGltYWdlIGNvcnJ1 cHRzIGl0LCBzbyB0aGUgZGlydHkgYml0Cj4+ICsgKiBpcyBsZWZ0IGFzIGl0IGlzIG9uIGRpc2sg YW5kIG9ubHkgdGhlIGluLW1lbW9yeSBlcnJvciBzdGF0ZSBpcyBrZXB0Lgo+PiAgICAqCj4+IC0g KiBDaGVjayBOVm9sRXJyb3JzKCkgYW5kIGNsZWFyIFZPTFVNRV9JU19ESVJUWSB1bmRlciB0aGUg c2FtZSBtcmVjX2xvY2sgc28KPj4gLSAqIG50ZnNfc3luY19mcygpIGNhbm5vdCBjbGVhciB0aGUg ZGlydHkgYml0IGFmdGVyIGEgY29uY3VycmVudCBlcnJvciBoYXMgYmVlbgo+PiAtICogcmVjb3Jk ZWQuCj4+ICsgKiBSZXR1cm4gMCBvbiBzdWNjZXNzIGFuZCAtZXJybm8gb24gZXJyb3IuCj4+ICAg ICovCj4+IC1zdGF0aWMgaW50IG50ZnNfY2xlYXJfdm9sdW1lX2RpcnR5X2lmX25vX2Vycm9ycyhz dHJ1Y3QgbnRmc192b2x1bWUgKnZvbCkKPj4gK3N0YXRpYyBpbnQgbnRmc19zeW5jX3ZvbHVtZV9k aXJ0eV9zdGF0ZShzdHJ1Y3QgbnRmc192b2x1bWUgKnZvbCkKPj4gICB7Cj4+ICsJaWYgKE5Wb2xI aWJlcm5hdGVkKHZvbCkpCj4+ICsJCXJldHVybiAwOwo+PiAgIAlyZXR1cm4gbnRmc193cml0ZV92 b2x1bWVfZmxhZ3Modm9sLCAwLCBWT0xVTUVfSVNfRElSVFksIHRydWUpOwo+PiAgIH0KPj4gICAK Pj4gQEAgLTE2MTUsNiArMTY1MCwxMSBAQCBzdGF0aWMgYm9vbCBsb2FkX3N5c3RlbV9maWxlcyhz dHJ1Y3QgbnRmc192b2x1bWUgKnZvbCkKPj4gICAJCQludGZzX2Vycm9yKHNiLCAiJXMuICBNb3Vu dGluZyByZWFkLW9ubHklcyIsIGVzMSwgZXMyKTsKPj4gICAJCX0KPj4gICAJCU5Wb2xTZXRFcnJv cnModm9sKTsKPj4gKwkJLyoKPj4gKwkJICogUmVtZW1iZXIgaXQgZm9yIHRoZSBsaWZldGltZSBv ZiB0aGUgbW91bnQ6IHNlZQo+PiArCQkgKiBudGZzX3N5bmNfdm9sdW1lX2RpcnR5X3N0YXRlKCku Cj4+ICsJCSAqLwo+PiArCQlOVm9sU2V0SGliZXJuYXRlZCh2b2wpOwo+PiAgIAl9Cj4+ICAgCj4+ ICAgCS8qIElmIChzdGlsbCkgYSByZWFkLXdyaXRlIG1vdW50LCBlbXB0eSB0aGUgbG9nZmlsZS4g Ki8KPj4gQEAgLTE3NzIsMjIgKzE4MTIsMzEgQEAgc3RhdGljIHZvaWQgbnRmc19wdXRfc3VwZXIo c3RydWN0IHN1cGVyX2Jsb2NrICpzYikKPj4gICAJbnRmc19jb21taXRfaW5vZGUodm9sLT5tZnRf aW5vKTsKPj4gICAKPj4gICAJLyoKPj4gLQkgKiBJZiBhIHJlYWQtd3JpdGUgbW91bnQgYW5kIG5v IHZvbHVtZSBlcnJvcnMgaGF2ZSBvY2N1cnJlZCwgbWFyayB0aGUKPj4gLQkgKiB2b2x1bWUgY2xl YW4uICBBbHNvLCByZS1jb21taXQgYWxsIGFmZmVjdGVkIGlub2Rlcy4KPj4gKwkgKiBJZiBhIHJl YWQtd3JpdGUgbW91bnQsIHBlcnNpc3QgdGhlIGVycm9yIHN0YXRlIGluIHRoZSB2b2x1bWUgZmxh Z3M6Cj4+ICsJICogbWFyayB0aGUgdm9sdW1lIGNsZWFuIGlmIG5vIHZvbHVtZSBlcnJvcnMgaGF2 ZSBvY2N1cnJlZCwgYW5kIG1ha2UKPj4gKwkgKiBzdXJlIFZPTFVNRV9JU19ESVJUWSBpcyBvbiBk aXNrIGlmIGFueSBoYXZlLCBzbyBjaGtkc2sgcnVucyBvbiB0aGUKPj4gKwkgKiBuZXh0IG1vdW50 LiAgQWxzbywgcmUtY29tbWl0IGFsbCBhZmZlY3RlZCBpbm9kZXMuCj4+ICAgCSAqLwo+PiAgIAlp ZiAoIXNiX3Jkb25seShzYikpIHsKPj4gKwkJaWYgKG50ZnNfc3luY192b2x1bWVfZGlydHlfc3Rh dGUodm9sKSkgewo+PiArCQkJbnRmc193YXJuaW5nKHNiLAo+PiArCQkJCSJGYWlsZWQgdG8gc3lu YyBkaXJ0eSBiaXQgaW4gdm9sdW1lIGluZm9ybWF0aW9uIGZsYWdzLiAgUnVuIGNoa2Rzay4iKTsK Pj4gKwkJfSBlbHNlIGlmIChOVm9sRXJyb3JzKHZvbCkpIHsKPj4gKwkJCS8qCj4+ICsJCQkgKiBU aGUgZGlydHkgYml0IGlzIG9uIGRpc2sgbm93OyBvbmx5IHdhcm4gd2hlbiB0aGUKPj4gKwkJCSAq IHN5bmMgYWN0dWFsbHkgc3VjY2VlZGVkLCBvciB0aGlzIG1lc3NhZ2Ugd291bGQKPj4gKwkJCSAq IGNvbnRyYWRpY3QgdGhlIG9uZSBhYm92ZS4KPj4gKwkJCSAqLwo+PiArCQkJbnRmc193YXJuaW5n KHNiLAo+PiArCQkJCSJWb2x1bWUgaGFzIGVycm9ycy4gIExlYXZpbmcgdm9sdW1lIG1hcmtlZCBk aXJ0eS4gIFJ1biBjaGtkc2suIik7Cj4+ICsJCX0KPj4gKwkJLyogQ29tbWl0cyB0aGUgdXBkYXRl ZCB2b2x1bWUgZmxhZ3MgaWYgdGhleSB3ZXJlIHdyaXR0ZW4uICovCj4+ICsJCW50ZnNfY29tbWl0 X2lub2RlKHZvbC0+dm9sX2lubyk7Cj4+ICAgCQlpZiAoIU5Wb2xFcnJvcnModm9sKSkgewo+PiAt CQkJaWYgKG50ZnNfY2xlYXJfdm9sdW1lX2ZsYWdzKHZvbCwgVk9MVU1FX0lTX0RJUlRZKSkKPj4g LQkJCQludGZzX3dhcm5pbmcoc2IsCj4+IC0JCQkJCSJGYWlsZWQgdG8gY2xlYXIgZGlydHkgYml0 IGluIHZvbHVtZSBpbmZvcm1hdGlvbiBmbGFncy4gIFJ1biBjaGtkc2suIik7Cj4+IC0JCQludGZz X2NvbW1pdF9pbm9kZSh2b2wtPnZvbF9pbm8pOwo+PiAgIAkJCW50ZnNfY29tbWl0X2lub2RlKHZv bC0+cm9vdF9pbm8pOwo+PiAgIAkJCWlmICh2b2wtPm1mdG1pcnJfaW5vKQo+PiAgIAkJCQludGZz X2NvbW1pdF9pbm9kZSh2b2wtPm1mdG1pcnJfaW5vKTsKPj4gICAJCQludGZzX2NvbW1pdF9pbm9k ZSh2b2wtPm1mdF9pbm8pOwo+PiAtCQl9IGVsc2Ugewo+PiAtCQkJbnRmc193YXJuaW5nKHNiLAo+ PiAtCQkJCSJWb2x1bWUgaGFzIGVycm9ycy4gIExlYXZpbmcgdm9sdW1lIG1hcmtlZCBkaXJ0eS4g IFJ1biBjaGtkc2suIik7Cj4+ICAgCQl9Cj4+ICAgCX0KPj4gICAKPj4gQEAgLTE4ODYsOCArMTkz NSw4IEBAIHN0YXRpYyBpbnQgbnRmc19zeW5jX2ZzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGlu dCB3YWl0KQo+PiAgIAkJcmV0dXJuIDA7Cj4+ICAgCj4+ICAgCS8qIElmIHRoZXJlIGFyZSBzb21l IGRpcnR5IGJ1ZmZlcnMgaW4gdGhlIGJkZXYgaW5vZGUgKi8KPj4gLQlpZiAobnRmc19jbGVhcl92 b2x1bWVfZGlydHlfaWZfbm9fZXJyb3JzKHZvbCkpIHsKPj4gLQkJbnRmc193YXJuaW5nKHNiLCAi RmFpbGVkIHRvIGNsZWFyIGRpcnR5IGJpdCBpbiB2b2x1bWUgaW5mb3JtYXRpb24gZmxhZ3MuICBS dW4gY2hrZHNrLiIpOwo+PiArCWlmIChudGZzX3N5bmNfdm9sdW1lX2RpcnR5X3N0YXRlKHZvbCkp IHsKPj4gKwkJbnRmc193YXJuaW5nKHNiLCAiRmFpbGVkIHRvIHN5bmMgZGlydHkgYml0IGluIHZv bHVtZSBpbmZvcm1hdGlvbiBmbGFncy4gIFJ1biBjaGtkc2suIik7Cj4+ICAgCQllcnIgPSAtRUlP Owo+PiAgIAl9Cj4+ICAgCXN5bmNfaW5vZGVzX3NiKHNiKTsKPj4gZGlmZiAtLWdpdCBhL2ZzL250 ZnMvdm9sdW1lLmggYi9mcy9udGZzL3ZvbHVtZS5oCj4+IGluZGV4IGJjODVhOTU5MjI0NS4uYzdj ZDI3YjZkYzFhIDEwMDY0NAo+PiAtLS0gYS9mcy9udGZzL3ZvbHVtZS5oCj4+ICsrKyBiL2ZzL250 ZnMvdm9sdW1lLmgKPj4gQEAgLTE4MSw2ICsxODEsOCBAQCBzdHJ1Y3QgbnRmc192b2x1bWUgewo+ PiAgICAqCQkJCVdpbmRvd3MtcmVzZXJ2ZWQgbmFtZXMgKENPTiwgQVVYLCBOVUwsIENPTTEsCj4+ ICAgICoJCQkJTFBUMSwgZXRjLikgb3IgaW52YWxpZCBjaGFyYWN0ZXJzLgo+PiAgICAqCj4+ICsg KiBOVl9IaWJlcm5hdGVkCQlXaW5kb3dzIGlzIGhpYmVybmF0ZWQgb24gdGhlIHZvbHVtZTsgdGhl IHN5bmMKPj4gKyAqCQkJCXBhdGhzIG11c3Qgbm90IHdyaXRlIHRoZSB2b2x1bWUgZmxhZ3MuCj4+ ICAgICogTlZfRGlzY2FyZAkJCUlzc3VlIGRpc2NhcmQvVFJJTSBjb21tYW5kcyBmb3IgZnJlZWQg Y2x1c3RlcnMuCj4+ICAgICogTlZfRGlzYWJsZVNwYXJzZQkJRGlzYWJsZSBjcmVhdGlvbiBvZiBz cGFyc2UgcmVnaW9ucy4KPj4gICAgKiBOVl9OYXRpdmVTeW1saW5rUmVsCQlUcmFuc2xhdGUgYWJz b2x1dGUgV2luZG93cyByZXBhcnNlIHRhcmdldHMgKG5hdGl2ZV9zeW1saW5rPXJlbCkuCj4+IEBA IC0xOTksNiArMjAxLDcgQEAgZW51bSB7Cj4+ICAgCU5WX1Nob3dIaWRkZW5GaWxlcywKPj4gICAJ TlZfSGlkZURvdEZpbGVzLAo+PiAgIAlOVl9DaGVja1dpbmRvd3NOYW1lcywKPj4gKwlOVl9IaWJl cm5hdGVkLAo+PiAgIAlOVl9EaXNjYXJkLAo+PiAgIAlOVl9EaXNhYmxlU3BhcnNlLAo+PiAgIAlO Vl9OYXRpdmVTeW1saW5rUmVsLAo+PiBAQCAtMjM3LDYgKzI0MCw3IEBAIERFRklORV9OVk9MX0JJ VF9PUFMoU3lzSW1tdXRhYmxlKQo+PiAgIERFRklORV9OVk9MX0JJVF9PUFMoU2hvd0hpZGRlbkZp bGVzKQo+PiAgIERFRklORV9OVk9MX0JJVF9PUFMoSGlkZURvdEZpbGVzKQo+PiAgIERFRklORV9O Vk9MX0JJVF9PUFMoQ2hlY2tXaW5kb3dzTmFtZXMpCj4+ICtERUZJTkVfTlZPTF9CSVRfT1BTKEhp YmVybmF0ZWQpCj4+ICAgREVGSU5FX05WT0xfQklUX09QUyhEaXNjYXJkKQo+PiAgIERFRklORV9O Vk9MX0JJVF9PUFMoRGlzYWJsZVNwYXJzZSkKPj4gICBERUZJTkVfTlZPTF9CSVRfT1BTKE5hdGl2 ZVN5bWxpbmtSZWwpCg==