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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4B924C83F1B for ; Wed, 16 Jul 2025 09:36:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DAC206B00A7; Wed, 16 Jul 2025 05:36:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D83A56B00A6; Wed, 16 Jul 2025 05:36:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C72766B00AB; Wed, 16 Jul 2025 05:36:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id AECCE6B00A6 for ; Wed, 16 Jul 2025 05:36:13 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 5CA721D9A71 for ; Wed, 16 Jul 2025 09:36:13 +0000 (UTC) X-FDA: 83669621826.02.934AA13 Received: from mx9.didiglobal.com (mx9.didiglobal.com [111.202.70.124]) by imf11.hostedemail.com (Postfix) with SMTP id BF93D40009 for ; Wed, 16 Jul 2025 09:36:10 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=didiglobal.com header.s=2025 header.b=KE6dYpYR; dmarc=pass (policy=none) header.from=didiglobal.com; spf=pass (imf11.hostedemail.com: domain of chentaotao@didiglobal.com designates 111.202.70.124 as permitted sender) smtp.mailfrom=chentaotao@didiglobal.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752658571; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=0zYXam5C0/pCSJyKQVX8Pe/qKDvmGXv1zAAjMTAOJ+E=; b=LFqklbBAvevgQ32LF3NaO4B6liITNqHOLibGEcw3gYZYIVCE/zBEpme3wVuebo+F3Cgidh ApqA7zIqPDA1vB16JRYai6VXIFiJrAKDgxAngxVnCJKrX2g4xG4ylxpyFVBcdS8xAXZ5A2 DS8IG9gbgoLUBpPgM0hFcjJxn8gjus8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752658571; a=rsa-sha256; cv=none; b=v/nUgd5BKd+TH1vcCBDqGD8/ExE+ykvHOVAqaCeGbwVyHTNQsIoJtJSaRlNS1vtugWiyxZ kddL9S6WJ3+IeNAFMPkJ51/WaW8t9Xp10SG0NJprtE0pBUz1p5tJfugDRvwx4MVQdgo6eg j49DtQ+xzDQ3CcvuGuEl0c76IKbclxM= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=didiglobal.com header.s=2025 header.b=KE6dYpYR; dmarc=pass (policy=none) header.from=didiglobal.com; spf=pass (imf11.hostedemail.com: domain of chentaotao@didiglobal.com designates 111.202.70.124 as permitted sender) smtp.mailfrom=chentaotao@didiglobal.com Received: from mail.didiglobal.com (unknown [10.79.65.20]) by mx9.didiglobal.com (MailData Gateway V2.8.8) with ESMTPS id 9D55C18121AED5; Wed, 16 Jul 2025 17:35:51 +0800 (CST) Received: from BJ02-ACTMBX-08.didichuxing.com (10.79.65.15) by BJ02-ACTMBX-02.didichuxing.com (10.79.65.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Wed, 16 Jul 2025 17:36:02 +0800 Received: from BJ03-ACTMBX-07.didichuxing.com (10.79.71.34) by BJ02-ACTMBX-08.didichuxing.com (10.79.65.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Wed, 16 Jul 2025 17:36:01 +0800 Received: from BJ03-ACTMBX-07.didichuxing.com ([fe80::2e1a:dd47:6d25:287e]) by BJ03-ACTMBX-07.didichuxing.com ([fe80::2e1a:dd47:6d25:287e%7]) with mapi id 15.02.1748.010; Wed, 16 Jul 2025 17:36:01 +0800 X-MD-Sfrom: chentaotao@didiglobal.com X-MD-SrcIP: 10.79.65.20 From: =?gb2312?B?s8LMzszOIFRhb3RhbyBDaGVu?= To: "tytso@mit.edu" , "hch@infradead.org" , "adilger.kernel@dilger.ca" , "willy@infradead.org" , "brauner@kernel.org" , "jani.nikula@linux.intel.com" , "rodrigo.vivi@intel.com" , "tursulin@ursulin.net" , "airlied@gmail.com" CC: "linux-fsdevel@vger.kernel.org" , "linux-ext4@vger.kernel.org" , "linux-block@vger.kernel.org" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "linux-mm@kvack.org" , "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "chentao325@qq.com" , "frank.li@vivo.com" , =?gb2312?B?s8LMzszOIFRhb3RhbyBDaGVu?= , "kernel test robot" Subject: [PATCH v6 0/5] fs: refactor write_begin/write_end and add ext4 IOCB_DONTCACHE support Thread-Topic: [PATCH v6 0/5] fs: refactor write_begin/write_end and add ext4 IOCB_DONTCACHE support Thread-Index: AQHb9jULofTXnprVQECcaSYOVFKHUA== Date: Wed, 16 Jul 2025 09:36:01 +0000 Message-ID: <20250716093559.217344-1-chentaotao@didiglobal.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.79.64.102] Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=didiglobal.com; s=2025; t=1752658556; bh=0zYXam5C0/pCSJyKQVX8Pe/qKDvmGXv1zAAjMTAOJ+E=; h=From:To:CC:Subject:Date:Message-ID:Content-Type; b=KE6dYpYRrrMf80rg9Qh0zJlUWlrLcvOCes/cjIW0lz92i+MZL6TYUkjCNgK8dDx3L kKQOXtSR4yhVwvotCRqwPCABLNArEtTazgGz38gNCidA1dMRHIR58DnveDbWc9sgcz dEn7/iuvCgbzCZb6EjetOhwdhgYUVxe5dnyif4oA= X-Stat-Signature: p5e737xretqya8woxgpu1ymip513yyn3 X-Rspamd-Queue-Id: BF93D40009 X-Rspamd-Server: rspam10 X-Rspam-User: X-HE-Tag: 1752658570-648882 X-HE-Meta: U2FsdGVkX1+OiarH2D2GXHBTgvfHGHdbI1ZyAsR2g1HZH1pcio3nKO8uRgCRHr2qEsa3j44X2hd3DtfdaZkDMyjQ7x+UEuCOtQhvV0ZqOSRj62srJHDj3v0OEP6x9A94PauiYQgl36MS4iTUA8ofMLm14rv8ZExZM1eeaK0nNmVvinhr5rXb1sBjMo/VVfw6upm+1eEi4P1o2LrMk5N0ibAZi5ZYaEbdu47w0pnzJh97dGXp4mTw8LpX6TNeFUjH5UuSVGaMqN1w4VajhY1g2AOFyeF+mAQyGdAaQ0LkUAA4cylE9O76eZt7+irhNz6kpUVxKYzzsnofHAp3W2ju4NPHHjhWwLHw30Xsvi/0mJbt7WuvBJFuqxuJYz9aLQzjg+1oKTpKSIsS3v32TJcdL0KHimI8fNI7qKbw58cyfugjwiLEU7KxgHTWxo4Kr/bF6Bg9CtOwN/rqIDQNS+Hafm+062jFhZVXM1QNKjehrdPGytvAmjXaBPWrukjcYJDDAxC3qylT6eF9jzgmB1xPZip/xelG20Rnk7fAWeFG7UZAfM28y/004CuoatEFgfzHtzVNb689vbr/SGkIuNX9xftXwpvIsIhdwGX8bdnFZh54f7YEJiSCI6db9KvPBM+09ogjD3tyO/pi/zHr5Q7LKj3TVW6/fYFg1l+jILR25t3aD1RCGVBO7WlZKr1Zx6ClDGCv1lXKWhuLXjUq95BWxGJOTosD7bL+p00kch1NOsrvnHW4pwt3+DP8t8RN5VfVjeW6ah2by6u2tRVA+47y/xGrTDxt8BE9+iZUglJtKa2O2SKbczngcRiKiS9FoZFM1uUZQhmab37UrxmZGldARrYg2+qofRMppsyqNPT4tEDaMmwshzu89G8NZq0wSwJRl+MVqUGNN/DeaEk383uTkDQbSU4Eu8PDyJykvzsEjQNYzK0/OWlpyNasco18VjCsFPfPXko0JcHNw4YxbpU qhzY+EIR huzYMeaaKBl0FsNNuhZpw8uE7fpdQwpmPzqZa8dO00wbMRdj2j2cWMvToXaaA6XRcA+HrMw7+28v6qHWNyKfl1JAes0qaYrJhPYaN9PLXfVazwXb5muUXCZVABxv5kfMZbNOaDoYVNLyWYJfxsWG4rx0UpxgbRkxgBGYgxR9A3L9KRoSuR3XjnJPDO8pS0BvWxeKp7SdOqRZS5hvhNXarunE0f+jlpgM1Tg5/sgYsdm939bTKRyhxoF5DgE5Qyl58mmIWQHj12AKPVmynHzK1/HKWSORrVfZBpt27go5EGj+d9VSrCzKB4CekNQnfvrhApuM+E64NPKUU/ZNydvgAzPJYbw9ZJviGlqj5u3ub0hpB6D6AsxupTg4eaOJi3z2SCgTEw8OH60oE4L4OXgaLC7qwSqi5MLYfzQNQYhDiFPSd7wxMYgBwskrflZC/+PXvUs+aXSVP7Zzo/S6G4/eG7eYDrGMp1Q146tSNjG51mIPo7N6gFl6zxPLJpp6QF0BNeYu0BHS98ku72aRmeahzX56pf3oyOJXphicoJfkvO9l/mrFJMMOlgrWmU4ucQQt16sTUeWWvPn2tUEMmd4Mqt9+pRrihpZDzPutS X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: RnJvbTogVGFvdGFvIENoZW4gPGNoZW50YW90YW9AZGlkaWdsb2JhbC5jb20+DQoNClRoaXMgcGF0 Y2ggc2VyaWVzIHJlZmFjdG9ycyB0aGUgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIHdyaXRlX2Jl Z2luKCkNCmFuZCB3cml0ZV9lbmQoKSBjYWxsYmFja3MgdG8gdGFrZSBjb25zdCBzdHJ1Y3Qga2lv Y2IgKiBhcyB0aGVpciBmaXJzdA0KYXJndW1lbnQsIGFsbG93aW5nIElPQ0IgZmxhZ3Mgc3VjaCBh cyBJT0NCX0RPTlRDQUNIRSB0byBwcm9wYWdhdGUgdG8gdGhlDQpmaWxlc3lzdGVtJ3MgYnVmZmVy ZWQgSS9PIHBhdGguDQoNCkV4dDQgaXMgdXBkYXRlZCB0byBpbXBsZW1lbnQgaGFuZGxpbmcgb2Yg dGhlIElPQ0JfRE9OVENBQ0hFIGZsYWcgYW5kDQphZHZlcnRpc2VzIHN1cHBvcnQgdmlhIHRoZSBG T1BfRE9OVENBQ0hFIGZpbGUgb3BlcmF0aW9uIGZsYWcuDQoNCkFkZGl0aW9uYWxseSwgdGhlIGk5 MTUgZHJpdmVyJ3Mgc2htZW0gd3JpdGUgcGF0aHMgYXJlIHVwZGF0ZWQgdG8gYnlwYXNzDQp0aGUg bGVnYWN5IHdyaXRlX2JlZ2luL3dyaXRlX2VuZCBpbnRlcmZhY2UgaW4gZmF2b3Igb2YgZGlyZWN0 bHkNCmNhbGxpbmcgd3JpdGVfaXRlcigpIHdpdGggYSBjb25zdHJ1Y3RlZCBzeW5jaHJvbm91cyBr aW9jYi4gQW5vdGhlciBpOTE1DQpjaGFuZ2UgcmVwbGFjZXMgYSBtYW51YWwgd3JpdGUgbG9vcCB3 aXRoIGtlcm5lbF93cml0ZSgpIGR1cmluZyBHRU0gc2htZW0NCm9iamVjdCBjcmVhdGlvbi4NCg0K VGVzdGVkIHdpdGggZXh0NCBhbmQgaTkxNSBHRU0gd29ya2xvYWRzLg0KDQpUaGlzIHBhdGNoIHNl cmllcyBpcyBiYXNlZCBvbiB0aGUgdmZzLTYuMTcubWlzYyBicmFuY2guDQoNClRoZSBrZXJuZWwg dGVzdCByb2JvdCByZXBvcnRlZCBpc3N1ZXMgaW4gcHJldmlvdXMgdmVyc2lvbnMsIHdoaWNoIGFy ZSBmaXhlZA0KaW4gdGhpcyB1cGRhdGVkIHBhdGNoc2V0Lg0KDQpSZXBvcnRlZC1ieToga2VybmVs IHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+DQpDbG9zZXM6IGh0dHBzOi8vbG9yZS5rZXJuZWwu b3JnL29lLWtidWlsZC1hbGwvMjAyNTA3MTQyMTI4LlpyNVN0blloLWxrcEBpbnRlbC5jb20vDQoN ClJlcG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCByb2JvdCA8bGtwQGludGVsLmNvbT4NCkNsb3Nlczog aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvb2Uta2J1aWxkLWFsbC8yMDI1MDcxNDIwNDAud3BweW9Y MXMtbGtwQGludGVsLmNvbS8NCg0KQ2hhbmdlcyBzaW5jZSB2NToNCi0gUGF0Y2ggMi81OiBGaXgg YnVpbGQgZXJyb3JzIGluIGk5MTVfZ2VtX3NobWVtLmMgYnkgYWRkaW5nDQogICNpbmNsdWRlIDxs aW51eC91aW8uaD4gdG8gZGVmaW5lIGlvdl9pdGVyIGFuZCByZWxhdGVkIHN5bWJvbHMuDQotIFBh dGNoIDMvNTogRml4IHViaWZzX3dyaXRlX2VuZCgpIGJ5IGFkZGluZyBjb25zdCB0byB0aGUgYXJn dW1lbnQNCiAgdG8gbWF0Y2ggdGhlIHVwZGF0ZWQgd3JpdGVfZW5kKCkgaW50ZXJmYWNlLg0KDQpU YW90YW8gQ2hlbiAoNSk6DQogIGRybS9pOTE1OiBVc2Uga2VybmVsX3dyaXRlKCkgaW4gc2htZW0g b2JqZWN0IGNyZWF0ZQ0KICBkcm0vaTkxNTogUmVmYWN0b3Igc2htZW1fcHdyaXRlKCkgdG8gdXNl IGtpb2NiIGFuZCB3cml0ZV9pdGVyDQogIGZzOiBjaGFuZ2Ugd3JpdGVfYmVnaW4vd3JpdGVfZW5k IGludGVyZmFjZSB0byB0YWtlIHN0cnVjdCBraW9jYiAqDQogIG1tL3BhZ2VtYXA6IGFkZCB3cml0 ZV9iZWdpbl9nZXRfZm9saW8oKSBoZWxwZXIgZnVuY3Rpb24NCiAgZXh0NDogc3VwcG9ydCB1bmNh Y2hlZCBidWZmZXJlZCBJL08NCg0KIERvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbG9ja2luZy5y c3QgICAgIHwgICA0ICstDQogRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy92ZnMucnN0ICAgICAg ICAgfCAgIDYgKy0NCiBibG9jay9mb3BzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAxMyArKy0NCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2htZW0uYyB8IDEx NSArKysrKystLS0tLS0tLS0tLS0tLS0tDQogZnMvYWRmcy9pbm9kZS5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDkgKy0NCiBmcy9hZmZzL2ZpbGUuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyNiArKy0tLQ0KIGZzL2JjYWNoZWZzL2ZzLWlvLWJ1ZmZlcmVkLmMgICAgICAg ICAgICAgIHwgICA0ICstDQogZnMvYmNhY2hlZnMvZnMtaW8tYnVmZmVyZWQuaCAgICAgICAgICAg ICAgfCAgIDQgKy0NCiBmcy9iZnMvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgNyArLQ0KIGZzL2J1ZmZlci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI2 ICsrLS0tDQogZnMvY2VwaC9hZGRyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAg Ky0NCiBmcy9lY3J5cHRmcy9tbWFwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQ0K IGZzL2V4ZmF0L2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstLQ0KIGZz L2V4ZmF0L2lub2RlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICstLQ0KIGZzL2V4 dDIvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICsrLQ0KIGZzL2V4dDQv ZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICstDQogZnMvZXh0NC9pbm9k ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKysrLS0tDQogZnMvZjJmcy9kYXRh LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0NCiBmcy9mYXQvaW5vZGUuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArKy0tDQogZnMvZnVzZS9maWxlLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKystDQogZnMvaGZzL2hmc19mcy5oICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBmcy9oZnMvaW5vZGUuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgNCArLQ0KIGZzL2hmc3BsdXMvaGZzcGx1c19mcy5oICAgICAg ICAgICAgICAgICAgIHwgICA2ICstDQogZnMvaGZzcGx1cy9pbm9kZS5jICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDggKy0NCiBmcy9ob3N0ZnMvaG9zdGZzX2tlcm4uYyAgICAgICAgICAgICAg ICAgICB8ICAgOCArLQ0KIGZzL2hwZnMvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDE4ICsrLS0NCiBmcy9odWdldGxiZnMvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICB8 ICAgOSArLQ0KIGZzL2pmZnMyL2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI4 ICsrKy0tLQ0KIGZzL2pmcy9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE2 ICstLQ0KIGZzL2xpYmZzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICsr LQ0KIGZzL21pbml4L2lub2RlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstDQog ZnMvbmZzL2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0NCiBmcy9u aWxmczIvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQ0KIGZzL250ZnMz L2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstDQogZnMvbnRmczMvaW5v ZGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0NCiBmcy9udGZzMy9udGZzX2Zz LmggICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQ0KIGZzL29jZnMyL2FvcHMuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstDQogZnMvb21mcy9maWxlLmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDcgKy0NCiBmcy9vcmFuZ2Vmcy9pbm9kZS5jICAgICAgICAg ICAgICAgICAgICAgICB8ICAxNiArLS0NCiBmcy91Ymlmcy9maWxlLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgOCArLQ0KIGZzL3VkZi9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDExICsrLQ0KIGZzL3Vmcy9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDE2ICstLQ0KIGZzL3Zib3hzZi9maWxlLmMgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA1ICstDQogaW5jbHVkZS9saW51eC9idWZmZXJfaGVhZC5oICAgICAgICAgICAgICAgfCAg IDQgKy0NCiBpbmNsdWRlL2xpbnV4L2ZzLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSAr Ky0NCiBpbmNsdWRlL2xpbnV4L3BhZ2VtYXAuaCAgICAgICAgICAgICAgICAgICB8ICAyNyArKysr Kw0KIG1tL2ZpbGVtYXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstDQog bW0vc2htZW0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0tDQogNDgg ZmlsZXMgY2hhbmdlZCwgMzMwIGluc2VydGlvbnMoKyksIDI5NiBkZWxldGlvbnMoLSkNCg0KLS0g DQoyLjM0LjENCg==