From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <xueqin.lin@intel.com>
Received: from mga02.intel.com (mga02.intel.com [134.134.136.20])
 by dpdk.org (Postfix) with ESMTP id 497692C2F
 for <dev@dpdk.org>; Tue, 30 Oct 2018 13:22:03 +0100 (CET)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 30 Oct 2018 05:22:02 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.54,444,1534834800"; d="scan'208,217";a="99973351"
Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204])
 by fmsmga002.fm.intel.com with ESMTP; 30 Oct 2018 05:22:02 -0700
Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by
 FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS)
 id 14.3.408.0; Tue, 30 Oct 2018 05:22:02 -0700
Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by
 FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS)
 id 14.3.408.0; Tue, 30 Oct 2018 05:22:01 -0700
Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.117]) by
 shsmsx102.ccr.corp.intel.com ([169.254.2.84]) with mapi id 14.03.0415.000;
 Tue, 30 Oct 2018 20:21:59 +0800
From: "Lin, Xueqin" <xueqin.lin@intel.com>
To: Alejandro Lucero <alejandro.lucero@netronome.com>
CC: "Yao, Lei A" <lei.a.yao@intel.com>, Thomas Monjalon <thomas@monjalon.net>, 
 dev <dev@dpdk.org>, "Xu, Qian Q" <qian.q.xu@intel.com>, "Burakov, Anatoly"
 <anatoly.burakov@intel.com>, "Yigit, Ferruh" <ferruh.yigit@intel.com>,
 "Zhang, Qi Z" <qi.z.zhang@intel.com>
Thread-Topic: [dpdk-dev] [PATCH v3 0/6] use IOVAs check based on DMA mask
Thread-Index: AQHUbwHVCqPw4mslyE66+0cqAeEf9aU14R4g//+BeYCAAJNOUP//fw2AgAAGWoCAAAFZAIAAF0MAgAACGoCAABM6AIAAi+4w//+ArgAALSJAoP//5lCA//9wTDCAAJ+3gP//ZyZQ
Date: Tue, 30 Oct 2018 12:21:59 +0000
Message-ID: <0D300480287911409D9FF92C1FA2A3355B443098@SHSMSX104.ccr.corp.intel.com>
References: <1538743527-8285-1-git-send-email-alejandro.lucero@netronome.com>
 <CAD+H992DCBMX9m65gK92t5p4aFTJA9jOJRBz7qOzPnwqMEfK0A@mail.gmail.com>
 <CAD+H990H1WQZiHZYd5jwEWQX+4RFM+_8c0MF2vZKRxb2fsRX8g@mail.gmail.com>
 <2737161.TvyDVilZt4@xps>
 <CAD+H990Jk61bgKPAya7Ui-97xOKWun4Ema9SZ8LZcYO0fgpu+w@mail.gmail.com>
 <2DBBFF226F7CF64BAFCA79B681719D954502B94F@shsmsx102.ccr.corp.intel.com>
 <CAD+H990gvgYU8UPhEMeY3gmDqW-LXM+FZaZSWVDGttu4V3J2DQ@mail.gmail.com>
 <0D300480287911409D9FF92C1FA2A3355B442C48@SHSMSX104.ccr.corp.intel.com>
 <CAD+H991JcFLViqCLHC4Nda5vUVSQRwi2EyJ0jCbHqD5=s+G8Yg@mail.gmail.com>
 <0D300480287911409D9FF92C1FA2A3355B443027@SHSMSX104.ccr.corp.intel.com>
 <CAD+H993877qcQnBD3HE65sOzJydBcMFpDkf_NnAo8ZSYZq2Fbg@mail.gmail.com>
In-Reply-To: <CAD+H993877qcQnBD3HE65sOzJydBcMFpDkf_NnAo8ZSYZq2Fbg@mail.gmail.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.239.127.40]
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
X-Content-Filtered-By: Mailman/MimeDel 2.1.15
Subject: Re: [dpdk-dev] [PATCH v3 0/6] use IOVAs check based on DMA mask
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Oct 2018 12:22:10 -0000

U29tZSBmb3VuZCBvbiBzb21lIG91ciBzZXJ2ZXJzOg0KSWYgIG5vdCBhZGQg4oCdaW50ZWxfaW9t
bXU9b24gaW9tbXU9cHTigJ0gaW4gL2Jvb3QvZ3J1YjIvZ3J1Yi5jZmcgZmlsZSwgdGhlbiByZWJv
b3QgdG8gbWFrZSBpdCBlZmZlY3RpdmUuDQoxOC4xMSByYzE6IFN1Y2Nlc3MgdG8gc2V0dXAgdGVz
dHBtZCAgYW5kIHNlY29uZGFyeSBwcm9jZXNzLg0KDQpJZiAgYWRkICDigJ1pbnRlbF9pb21tdT1v
biBpb21tdT1wdOKAnSBpbiAvYm9vdC9ncnViMi9ncnViLmNmZyBmaWxlLCB0aGVuIHJlYm9vdCB0
byBtYWtlIGl0IGVmZmVjdGl2ZS4NCjE4LjExIHJjMTogIEZhaWwgdG8gc2V0dXAgdGVzdHBtZCAg
YW5kIHNlY29uZGFyeSBwcm9jZXNzLg0KMTguMTEgcmMxKyBkbWFfbWFza19maXggcGF0Y2g6IHN1
Y2Nlc3MgdG8gc2V0dXAgdGVzdHBtZCwgYnV0IGZhaWwgdG8gc2V0dXAgc2Vjb25kYXJ5IHByb2Nl
c3MuDQoNCk1heWJlIOKAnWludGVsX2lvbW11PW9uIGlvbW11PXB04oCdIGVuYWJsZSBvciBub3Qg
cmVzdWx0IGluIG91ciB0ZXN0IGdhcC4NCk1vc3Qgb2Ygb3VyIHRlYW0gc2VydmVycyBzaG91bGQg
ZW5hYmxlIHRoZSBJT01NVSBmb3IgVlQtZCBhbmQgdmZpbyB0ZXN0Lg0KDQpCZXN0IHJlZ2FyZHMs
DQpYdWVxaW4NCg0KRnJvbTogQWxlamFuZHJvIEx1Y2VybyBbbWFpbHRvOmFsZWphbmRyby5sdWNl
cm9AbmV0cm9ub21lLmNvbV0NClNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMzAsIDIwMTggNjozOCBQ
TQ0KVG86IExpbiwgWHVlcWluIDx4dWVxaW4ubGluQGludGVsLmNvbT4NCkNjOiBZYW8sIExlaSBB
IDxsZWkuYS55YW9AaW50ZWwuY29tPjsgVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24u
bmV0PjsgZGV2IDxkZXZAZHBkay5vcmc+OyBYdSwgUWlhbiBRIDxxaWFuLnEueHVAaW50ZWwuY29t
PjsgQnVyYWtvdiwgQW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVsLmNvbT47IFlpZ2l0LCBG
ZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+OyBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0Bp
bnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjMgMC82XSB1c2UgSU9W
QXMgY2hlY2sgYmFzZWQgb24gRE1BIG1hc2sNCg0KDQpPbiBUdWUsIE9jdCAzMCwgMjAxOCBhdCAx
MDozNCBBTSBMaW4sIFh1ZXFpbiA8eHVlcWluLmxpbkBpbnRlbC5jb208bWFpbHRvOnh1ZXFpbi5s
aW5AaW50ZWwuY29tPj4gd3JvdGU6DQpIaSBMdWNlcm8sDQoNCk5vLCB3ZSBoYXZlIHJlcHJvZHVj
ZWQgbXVsdGktcHJvY2VzcyBpc3N1ZXMoaW5jbHVkZSBzeW1tZXRyaWNfbXAsIHNpbXBsZV9tcCwg
aG90cGx1Z19tcCwgbXVsdGktcHJvY2VzcyB1bml0IHRlc3TigKYgKW9uIG1vc3Qgb2Ygb3VyIHNl
cnZlcnMuDQpJdCBpcyBhbHNvIHN0cmFuZ2UgdGhhdCAxfjIgc2VydmVycyBkb27igJl0IGhhdmUg
dGhlIGlzc3VlLg0KDQoNClllcywgeW91IGFyZSByaWdodC4gSSBjb3VsZCBleGVjdXRlIGl0IGJ1
dCBpdCB3YXMgZHVlIHRvIGhvdyB0aGlzIHByb2JsZW0gdHJpZ2dlcnMuDQpJIHRoaW5rIEkgY2Fu
IGZpeCB0aGlzIGFuZCBhdCB0aGUgc2FtZSB0aW1lIHNvbHZpbmcgcHJvcGVybHkgdGhlIGluaXRp
YWwgaXNzdWUgd2l0aG91dCBhbnkgbGltaXRhdGlvbiBsaWtlIHRoYXQgcG90ZW50aWFsIHJhY2Ug
Y29uZGl0aW9uIEkgbWVudGlvbmVkLg0KSSBjYW4gZ2l2ZSB5b3UgYSBwYXRjaCB0byB0cnkgaW4g
YSBjb3VwbGUgb2YgaG91cnMuDQoNClRoYW5rcw0KDQpCaW5kIHR3byBOTlQgcG9ydHMgb3IgRlZM
IHBvcnRzDQoNCi4vYnVpbGQvc3ltbWV0cmljX21wIC1jIDQgLS1wcm9jLXR5cGU9YXV0byAtLSAt
cCAzIC0tbnVtLXByb2NzPTQgLS1wcm9jLWlkPTENCg0KRUFMOiBEZXRlY3RlZCA4OCBsY29yZShz
KQ0KRUFMOiBEZXRlY3RlZCAyIE5VTUEgbm9kZXMNCkVBTDogQXV0by1kZXRlY3RlZCBwcm9jZXNz
IHR5cGU6IFNFQ09OREFSWQ0KW05ldyBUaHJlYWQgMHg3ZmZmZjZlZGE3MDAgKExXUCA5MDEwMyld
DQpFQUw6IE11bHRpLXByb2Nlc3Mgc29ja2V0IC92YXIvcnVuL2RwZGsvcnRlL21wX3NvY2tldF85
MDA5OV8yZjFiNTUzODgyYjYyDQpbTmV3IFRocmVhZCAweDdmZmZmNjZkOTcwMCAoTFdQIDkwMTA0
KV0NCg0KVGhyZWFkIDEgInN5bW1ldHJpY19tcCIgcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNl
Z21lbnRhdGlvbiBmYXVsdC4NCjB4MDAwMDAwMDAwMDU1NjZiNSBpbiBydGVfZmJhcnJheV9maW5k
X25leHRfdXNlZCAoKQ0KKGdkYikgYnQNCiMwICAweDAwMDAwMDAwMDA1NTY2YjUgaW4gcnRlX2Zi
YXJyYXlfZmluZF9uZXh0X3VzZWQgKCkNCiMxICAweDAwMDAwMDAwMDA1NGRhOWMgaW4gcnRlX2Vh
bF9jaGVja19kbWFfbWFzayAoKQ0KIzIgIDB4MDAwMDAwMDAwMDU3MmFlNyBpbiBwY2lfb25lX2Rl
dmljZV9pb21tdV9zdXBwb3J0X3ZhICgpDQojMyAgMHgwMDAwMDAwMDAwNTczOTg4IGluIHJ0ZV9w
Y2lfZ2V0X2lvbW11X2NsYXNzICgpDQojNCAgMHgwMDAwMDAwMDAwNTRmNzQzIGluIHJ0ZV9idXNf
Z2V0X2lvbW11X2NsYXNzICgpDQojNSAgMHgwMDAwMDAwMDAwNTNjMTIzIGluIHJ0ZV9lYWxfaW5p
dCAoKQ0KIzYgIDB4MDAwMDAwMDAwMDQ2YmUyYiBpbiBtYWluICgpDQoNCkJlc3QgcmVnYXJkcywN
Clh1ZXFpbg0KDQpGcm9tOiBBbGVqYW5kcm8gTHVjZXJvIFttYWlsdG86YWxlamFuZHJvLmx1Y2Vy
b0BuZXRyb25vbWUuY29tPG1haWx0bzphbGVqYW5kcm8ubHVjZXJvQG5ldHJvbm9tZS5jb20+XQ0K
U2VudDogVHVlc2RheSwgT2N0b2JlciAzMCwgMjAxOCA1OjQxIFBNDQpUbzogTGluLCBYdWVxaW4g
PHh1ZXFpbi5saW5AaW50ZWwuY29tPG1haWx0bzp4dWVxaW4ubGluQGludGVsLmNvbT4+DQpDYzog
WWFvLCBMZWkgQSA8bGVpLmEueWFvQGludGVsLmNvbTxtYWlsdG86bGVpLmEueWFvQGludGVsLmNv
bT4+OyBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ8bWFpbHRvOnRob21hc0Bt
b25qYWxvbi5uZXQ+PjsgZGV2IDxkZXZAZHBkay5vcmc8bWFpbHRvOmRldkBkcGRrLm9yZz4+OyBY
dSwgUWlhbiBRIDxxaWFuLnEueHVAaW50ZWwuY29tPG1haWx0bzpxaWFuLnEueHVAaW50ZWwuY29t
Pj47IEJ1cmFrb3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb208bWFpbHRvOmFu
YXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+PjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGlu
dGVsLmNvbTxtYWlsdG86ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4+OyBaaGFuZywgUWkgWiA8cWku
ei56aGFuZ0BpbnRlbC5jb208bWFpbHRvOnFpLnouemhhbmdAaW50ZWwuY29tPj4NClN1YmplY3Q6
IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MyAwLzZdIHVzZSBJT1ZBcyBjaGVjayBiYXNlZCBvbiBE
TUEgbWFzaw0KDQoNCk9uIFR1ZSwgT2N0IDMwLCAyMDE4IGF0IDM6MjAgQU0gTGluLCBYdWVxaW4g
PHh1ZXFpbi5saW5AaW50ZWwuY29tPG1haWx0bzp4dWVxaW4ubGluQGludGVsLmNvbT4+IHdyb3Rl
Og0KSGkgTHVjZXJvJlRob21hcywNCg0KRmluZCB0aGUgcGF0Y2ggY2Fu4oCZdCBmaXggbXVsdGkt
cHJvY2VzcyBjYXNlcy4NCg0KSGksDQoNCkkgdGhpbmsgaXQgaXMgbm90IHNwZWNpZmljYWxseSBh
Ym91dCBtdWx0aXByb2Nlc3MgYnV0IGFib3V0IGhvdHBsdWcgd2l0aCBtdWx0aXByb2Nlc3MgYmVj
YXVzZSBJIGNhbiBleGVjdXRlIHRoZSBzeW1tZXRyaWNfbXAgc3VjY2Vzc2Z1bGx5IHdpdGggYSBz
ZWNvbmRhcnkgcHJvY2Vzcy4NCg0KV29ya2luZyBvbiB0aGlzIGFzIGEgcHJpb3JpdHkuDQoNClRo
YW5rcy4NCg0KU3RlcHM6DQoNCjEuICAgICAgIFNldHVwIHByaW1hcnkgcHJvY2VzcyBzdWNjZXNz
ZnVsbHkNCg0KLi9ob3RwbHVnX21wIC0tcHJvYy10eXBlPWF1dG8NCg0KDQoNCjIuICAgICAgIEZh
aWwgdG8gc2V0dXAgc2Vjb25kYXJ5IHByb2Nlc3MNCg0KLi9ob3RwbHVnX21wIC0tcHJvYy10eXBl
PWF1dG8NCg0KRUFMOiBEZXRlY3RlZCA4OCBsY29yZShzKQ0KDQpFQUw6IERldGVjdGVkIDIgTlVN
QSBub2Rlcw0KDQpFQUw6IEF1dG8tZGV0ZWN0ZWQgcHJvY2VzcyB0eXBlOiBTRUNPTkRBUlkNCg0K
RUFMOiBNdWx0aS1wcm9jZXNzIHNvY2tldCAvdmFyL3J1bi9kcGRrL3J0ZS9tcF9zb2NrZXRfMTQ3
MjEyXzJiZmUwOGVlODhkMjMNCg0KU2VnbWVudGF0aW9uIGZhdWx0IChjb3JlIGR1bXBlZCkNCg0K
DQpNb3JlIGluZm9ybWF0aW9uIGFzIGJlbG93Og0KDQpUaHJlYWQgMSAiaG90cGx1Z19tcCIgcmVj
ZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4NCg0KMHgwMDAwMDAwMDAw
NTk3Y2ZiIGluIGZpbmRfbmV4dCAoYXJyPTB4N2ZmZmY3ZmYyMGE0LCBzdGFydD0wLCB1c2VkPXRy
dWUpDQoNCiAgICBhdCAvcm9vdC9kcGRrL2xpYi9saWJydGVfZWFsL2NvbW1vbi9lYWxfY29tbW9u
X2ZiYXJyYXkuYzoyNjQNCg0KMjY0ICAgICAgICAgICAgIGZvciAoaWR4ID0gZmlyc3Q7IGlkeCA8
IG1zay0+bl9tYXNrczsgaWR4KyspIHsNCg0KIzAgIDB4MDAwMDAwMDAwMDU5N2NmYiBpbiBmaW5k
X25leHQgKGFycj0weDdmZmZmN2ZmMjBhNCwgc3RhcnQ9MCwgdXNlZD10cnVlKQ0KDQogICAgYXQg
L3Jvb3QvZHBkay9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9mYmFycmF5LmM6MjY0
DQoNCiMxICAweDAwMDAwMDAwMDA1OTg1NzMgaW4gZmJhcnJheV9maW5kIChhcnI9MHg3ZmZmZjdm
ZjIwYTQsIHN0YXJ0PTAsIG5leHQ9dHJ1ZSwNCg0KICAgIHVzZWQ9dHJ1ZSkgYXQgL3Jvb3QvZHBk
ay9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9mYmFycmF5LmM6MTAwMQ0KDQojMiAg
MHgwMDAwMDAwMDAwNTk5MjliIGluIHJ0ZV9mYmFycmF5X2ZpbmRfbmV4dF91c2VkIChhcnI9MHg3
ZmZmZjdmZjIwYTQsIHN0YXJ0PTApDQoNCiAgICBhdCAvcm9vdC9kcGRrL2xpYi9saWJydGVfZWFs
L2NvbW1vbi9lYWxfY29tbW9uX2ZiYXJyYXkuYzoxMDE4DQoNCiMzICAweDAwMDAwMDAwMDA1OGM4
NzcgaW4gcnRlX21lbXNlZ193YWxrX3RocmVhZF91bnNhZmUgKGZ1bmM9MHg1OGM0MDEgPGNoZWNr
X2lvdmE+LA0KDQogICAgYXJnPTB4N2ZmZmZmZmZjYzM4KSBhdCAvcm9vdC9kcGRrL2xpYi9saWJy
dGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX21lbW9yeS5jOjU4OQ0KDQojNCAgMHgwMDAwMDAwMDAw
NThjZTA4IGluIHJ0ZV9lYWxfY2hlY2tfZG1hX21hc2sgKG1hc2tiaXRzPTQ4ICcwJykNCg0KICAg
IGF0IC9yb290L2RwZGsvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21tb25fbWVtb3J5LmM6
NDY1DQoNCiM1ICAweDAwMDAwMDAwMDA1Yjk2YzQgaW4gcGNpX29uZV9kZXZpY2VfaW9tbXVfc3Vw
cG9ydF92YSAoZGV2PTB4MTFiM2Q5MCkNCg0KICAgIGF0IC9yb290L2RwZGsvZHJpdmVycy9idXMv
cGNpL2xpbnV4L3BjaS5jOjU5Mw0KDQojNiAgMHgwMDAwMDAwMDAwNWI5NzM4IGluIHBjaV9kZXZp
Y2VzX2lvbW11X3N1cHBvcnRfdmEgKCkNCg0KICAgIGF0IC9yb290L2RwZGsvZHJpdmVycy9idXMv
cGNpL2xpbnV4L3BjaS5jOjYyNg0KDQojNyAgMHgwMDAwMDAwMDAwNWI5N2E3IGluIHJ0ZV9wY2lf
Z2V0X2lvbW11X2NsYXNzICgpDQoNCiAgICBhdCAvcm9vdC9kcGRrL2RyaXZlcnMvYnVzL3BjaS9s
aW51eC9wY2kuYzo2NTANCg0KIzggIDB4MDAwMDAwMDAwMDU4ZjFjZSBpbiBydGVfYnVzX2dldF9p
b21tdV9jbGFzcyAoKQ0KDQogICAgYXQgL3Jvb3QvZHBkay9saWIvbGlicnRlX2VhbC9jb21tb24v
ZWFsX2NvbW1vbl9idXMuYzoyMzcNCg0KIzkgIDB4MDAwMDAwMDAwMDU3N2M3YSBpbiBydGVfZWFs
X2luaXQgKGFyZ2M9MiwgYXJndj0weDdmZmZmZmZmZGY5OCkNCg0KICAgIGF0IC9yb290L2RwZGsv
bGliL2xpYnJ0ZV9lYWwvbGludXhhcHAvZWFsL2VhbC5jOjkxOQ0KDQojMTAgMHgwMDAwMDAwMDAw
NDVkZDU2IGluIG1haW4gKGFyZ2M9MiwgYXJndj0weDdmZmZmZmZmZGY5OCkNCg0KICAgIGF0IC9y
b290L2RwZGsvZXhhbXBsZXMvbXVsdGlfcHJvY2Vzcy9ob3RwbHVnX21wL21haW4uYzoyOA0KDQoN
CkJlc3QgcmVnYXJkcywNClh1ZXFpbg0KDQpGcm9tOiBBbGVqYW5kcm8gTHVjZXJvIFttYWlsdG86
YWxlamFuZHJvLmx1Y2Vyb0BuZXRyb25vbWUuY29tPG1haWx0bzphbGVqYW5kcm8ubHVjZXJvQG5l
dHJvbm9tZS5jb20+XQ0KU2VudDogTW9uZGF5LCBPY3RvYmVyIDI5LCAyMDE4IDk6NDEgUE0NClRv
OiBZYW8sIExlaSBBIDxsZWkuYS55YW9AaW50ZWwuY29tPG1haWx0bzpsZWkuYS55YW9AaW50ZWwu
Y29tPj4NCkNjOiBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ8bWFpbHRvOnRo
b21hc0Btb25qYWxvbi5uZXQ+PjsgZGV2IDxkZXZAZHBkay5vcmc8bWFpbHRvOmRldkBkcGRrLm9y
Zz4+OyBYdSwgUWlhbiBRIDxxaWFuLnEueHVAaW50ZWwuY29tPG1haWx0bzpxaWFuLnEueHVAaW50
ZWwuY29tPj47IExpbiwgWHVlcWluIDx4dWVxaW4ubGluQGludGVsLmNvbTxtYWlsdG86eHVlcWlu
LmxpbkBpbnRlbC5jb20+PjsgQnVyYWtvdiwgQW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVs
LmNvbTxtYWlsdG86YW5hdG9seS5idXJha292QGludGVsLmNvbT4+OyBZaWdpdCwgRmVycnVoIDxm
ZXJydWgueWlnaXRAaW50ZWwuY29tPG1haWx0bzpmZXJydWgueWlnaXRAaW50ZWwuY29tPj4NClN1
YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MyAwLzZdIHVzZSBJT1ZBcyBjaGVjayBiYXNl
ZCBvbiBETUEgbWFzaw0KDQoNCk9uIE1vbiwgT2N0IDI5LCAyMDE4IGF0IDE6MTggUE0gWWFvLCBM
ZWkgQSA8bGVpLmEueWFvQGludGVsLmNvbTxtYWlsdG86bGVpLmEueWFvQGludGVsLmNvbT4+IHdy
b3RlOg0KDQoNCkZyb206IEFsZWphbmRybyBMdWNlcm8gW21haWx0bzphbGVqYW5kcm8ubHVjZXJv
QG5ldHJvbm9tZS5jb208bWFpbHRvOmFsZWphbmRyby5sdWNlcm9AbmV0cm9ub21lLmNvbT5dDQpT
ZW50OiBNb25kYXksIE9jdG9iZXIgMjksIDIwMTggODo1NiBQTQ0KVG86IFRob21hcyBNb25qYWxv
biA8dGhvbWFzQG1vbmphbG9uLm5ldDxtYWlsdG86dGhvbWFzQG1vbmphbG9uLm5ldD4+DQpDYzog
WWFvLCBMZWkgQSA8bGVpLmEueWFvQGludGVsLmNvbTxtYWlsdG86bGVpLmEueWFvQGludGVsLmNv
bT4+OyBkZXYgPGRldkBkcGRrLm9yZzxtYWlsdG86ZGV2QGRwZGsub3JnPj47IFh1LCBRaWFuIFEg
PHFpYW4ucS54dUBpbnRlbC5jb208bWFpbHRvOnFpYW4ucS54dUBpbnRlbC5jb20+PjsgTGluLCBY
dWVxaW4gPHh1ZXFpbi5saW5AaW50ZWwuY29tPG1haWx0bzp4dWVxaW4ubGluQGludGVsLmNvbT4+
OyBCdXJha292LCBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPG1haWx0bzphbmF0
b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPj47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRl
bC5jb208bWFpbHRvOmZlcnJ1aC55aWdpdEBpbnRlbC5jb20+Pg0KU3ViamVjdDogUmU6IFtkcGRr
LWRldl0gW1BBVENIIHYzIDAvNl0gdXNlIElPVkFzIGNoZWNrIGJhc2VkIG9uIERNQSBtYXNrDQoN
Cg0KT24gTW9uLCBPY3QgMjksIDIwMTggYXQgMTE6NDYgQU0gVGhvbWFzIE1vbmphbG9uIDx0aG9t
YXNAbW9uamFsb24ubmV0PG1haWx0bzp0aG9tYXNAbW9uamFsb24ubmV0Pj4gd3JvdGU6DQoyOS8x
MC8yMDE4IDEyOjM5LCBBbGVqYW5kcm8gTHVjZXJvOg0KPiBJIGdvdCBhIHBhdGNoIHRoYXQgc29s
dmVzIGEgYnVnIHdoZW4gY2FsbGluZyBydGVfZWFsX2RtYV9tYXNrIHVzaW5nIHRoZQ0KPiBtYXNr
IGluc3RlYWQgb2YgdGhlIG1hc2tiaXRzLiBIb3dldmVyLCB0aGlzIGRvZXMgbm90IHNvbHZlcyB0
aGUgZGVhZGxvY2suDQoNClRoZSBkZWFkbG9jayBpcyBhIGJpZ2dlciBjb25jZXJuIEkgdGhpbmsu
DQoNCkkgdGhpbmsgb25jZSB0aGUgY2FsbCB0byBydGVfZWFsX2NoZWNrX2RtYV9tYXNrIHVzZXMg
dGhlIG1hc2tiaXRzIGluc3RlYWQgb2YgdGhlIG1hc2ssIGNhbGxpbmcgcnRlX21lbXNlZ193YWxr
X3RocmVhZF91bnNhZmUgYXZvaWRzIHRoZSBkZWFkbG9jay4NCg0KWWFvLCBjYW4geW91IHRyeSB3
aXRoIHRoZSBhdHRhY2hlZCBwYXRjaD8NCg0KSGksIEx1Y2Vybw0KDQpUaGlzIHBhdGNoIGNhbiBm
aXggdGhlIGlzc3VlIGF0IG15IHNpZGUuIFRoYW5rcyBhIGxvdA0KZm9yIHlvdSBxdWljayBhY3Rp
b24uDQoNCg0KR3JlYXQhDQoNCkkgd2lsbCBzZW5kIGFuIG9mZmljaWFsIHBhdGNoIHdpdGggdGhl
IGNoYW5nZXMuDQoNCkkgaGF2ZSB0byBzYXkgdGhhdCBJIHRlc3RlZCB0aGUgcGF0Y2hzZXQsIGJ1
dCBJIHRoaW5rIGl0IHdhcyB3aGVyZSBsZWdhY3lfbWVtIHdhcyBzdGlsbCB0aGVyZSBhbmQgdGhl
cmVmb3JlIGR5bmFtaWMgbWVtb3J5IGFsbG9jYXRpb24gY29kZSBub3QgdXNlZCBkdXJpbmcgbWVt
b3J5IGluaXRpYWxpemF0aW9uLg0KDQpUaGVyZSBpcyBzb21ldGhpbmcgdGhhdCBjb25jZXJucyBt
ZSB0aG91Z2guIFVzaW5nIHJ0ZV9tZW1zZWdfd2Fsa190aHJlYWRfdW5zYWZlIGNvdWxkIGJlIGEg
cHJvYmxlbSB1bmRlciBzb21lIHNpdHVhdGlvbnMgYWx0aG91Z2ggdGhvc2Ugc2l0dWF0aW9ucyBi
ZWluZyB1bmxpa2VseS4NCg0KVXN1YWxseSwgY2FsbGluZyBydGVfZWFsX2NoZWNrX2RtYV9tYXNr
IGhhcHBlbnMgZHVyaW5nIGluaXRpYWxpemF0aW9uLiBUaGVuIGl0IGlzIHNhZmUgdG8gdXNlIHRo
ZSB1bnNhZmUgZnVuY3Rpb24gZm9yIHdhbGtpbmcgbWVtc2VncywgYnV0IHdpdGggZGV2aWNlIGhv
dHBsdWcgYW5kIGR5bmFtaWMgbWVtb3J5IGFsbG9jYXRpb24sIHRoZXJlIGV4aXN0cyBhIHBvdGVu
dGlhbCByYWNlIGNvbmRpdGlvbiB3aGVuIHRoZSBwcmltYXJ5IHByb2Nlc3MgaXMgYWxsb2NhdGlu
ZyBtb3JlIG1lbW9yeSBhbmQgY29uY3VycmVudGx5IGEgZGV2aWNlIGlzIGhvdHBsdWdnZWQgYW5k
IGEgc2Vjb25kYXJ5IHByb2Nlc3MgZG9lcyB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uLiBCeSBu
b3csIHRoaXMgaXMganVzdCBhIHByb2JsZW0gd2l0aCB0aGUgTkZQLCBhbmQgdGhlIHBvdGVudGlh
bCByYWNlIGNvbmRpdGlvbiB3aW5kb3cgcmVhbGx5IHVubGlrZWx5LCBidXQgSSB3aWxsIHdvcmsg
b24gdGhpcyBhc2FwLg0KDQpCUnMNCkxlaQ0KDQo+IEludGVyZXN0aW5nbHksIHRoZSBwcm9ibGVt
IGxvb2tzIGxpa2UgYSBjb21waWxlciBvbmUuIENhbGxpbmcNCj4gcnRlX21lbXNlZ193YWxrIGRv
ZXMgbm90IHJldHVybiB3aGVuIGNhbGxpbmcgaW5zaWRlIHJ0X2VhbF9kbWFfbWFzaywgYnV0IGlm
DQo+IHlvdSBtb2RpZnkgdGhlIGNhbGwgbGlrZSB0aGlzOg0KPg0KPiAtICAgICAgIGlmIChydGVf
bWVtc2VnX3dhbGsoY2hlY2tfaW92YSwgJm1hc2spKQ0KPiArICAgICAgIGlmICghcnRlX21lbXNl
Z193YWxrKGNoZWNrX2lvdmEsICZtYXNrKSkNCj4NCj4gaXQgd29ya3MsIGFsdGhvdWdoIHRoZSB2
YWx1ZSByZXR1cm5lZCB0byB0aGUgaW52b2tlciBjaGFuZ2VzLCBvZiBjb3Vyc2UuDQo+IEJ1dCB0
aGUgcG9pbnQgaGVyZSBpcyBpdCBzaG91bGQgYmUgdGhlIHNhbWUgYmVoYXZpb3VyIHdoZW4gY2Fs
bGluZw0KPiBydGVfbWVtc2VnX3dhbGsgdGhhbiBiZWZvcmUgYW5kIGl0IGlzIG5vdC4NCg0KQW55
d2F5LCB0aGUgY29kaW5nIHN0eWxlIHJlcXVpcmVzIHRvIHNhdmUgdGhlIHJldHVybiB2YWx1ZSBp
biBhIHZhcmlhYmxlLA0KaW5zdGVhZCBvZiBuZXN0aW5nIHRoZSBjYWxsIGluIGFuICJpZiIgY29u
ZGl0aW9uLg0KQW5kIHRoZSAiaWYiIGNoZWNrIHNob3VsZCBiZSBleHBsaWNpdGx5ICE9IDAgYmVj
YXVzZSBpdCBpcyBub3QgYSByZWFsIGJvb2xlYW4uDQoNClBTOiBwbGVhc2UgZG8gbm90IHRvcCBw
b3N0IGFuZCBhdm9pZCBIVE1MIGVtYWlscywgdGhhbmtzDQo=