From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 9920E1E2F for ; Tue, 30 Oct 2018 16:09:26 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Oct 2018 08:09:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,444,1534834800"; d="scan'208,217";a="245591068" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga004.jf.intel.com with ESMTP; 30 Oct 2018 08:09:24 -0700 Received: from fmsmsx122.amr.corp.intel.com (10.18.125.37) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 30 Oct 2018 08:09:24 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx122.amr.corp.intel.com (10.18.125.37) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 30 Oct 2018 08:09:24 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.117]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.214]) with mapi id 14.03.0415.000; Tue, 30 Oct 2018 23:09:22 +0800 From: "Lin, Xueqin" To: Alejandro Lucero CC: "Yao, Lei A" , Thomas Monjalon , dev , "Xu, Qian Q" , "Burakov, Anatoly" , "Yigit, Ferruh" , "Zhang, Qi Z" 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//ZyZQgAC6C4CAABhqAP//b+IAABPb5QD//3ko4A== Date: Tue, 30 Oct 2018 15:09:22 +0000 Message-ID: <0D300480287911409D9FF92C1FA2A3355B443176@SHSMSX104.ccr.corp.intel.com> References: <1538743527-8285-1-git-send-email-alejandro.lucero@netronome.com> <2737161.TvyDVilZt4@xps> <2DBBFF226F7CF64BAFCA79B681719D954502B94F@shsmsx102.ccr.corp.intel.com> <0D300480287911409D9FF92C1FA2A3355B442C48@SHSMSX104.ccr.corp.intel.com> <0D300480287911409D9FF92C1FA2A3355B443027@SHSMSX104.ccr.corp.intel.com> <0D300480287911409D9FF92C1FA2A3355B443098@SHSMSX104.ccr.corp.intel.com> <0D300480287911409D9FF92C1FA2A3355B443147@SHSMSX104.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMzA2M2QyNjYtZjYwNC00NTc3LWFjNzgtMDM5NDBjZTA4YzkzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJZU2Z0S1N6MUhjREhXU0NzNklabFFXNmdWXC9NWlZ4QVp6VWtaUTNFSUNLUU02MkFyV0hjN2x4OWllXC9TZkF6dWIifQ== dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Oct 2018 15:09:32 -0000 SGkgTHVjZXJvLA0KDQpGcm9tOiBBbGVqYW5kcm8gTHVjZXJvIFttYWlsdG86YWxlamFuZHJvLmx1 Y2Vyb0BuZXRyb25vbWUuY29tXQ0KU2VudDogVHVlc2RheSwgT2N0b2JlciAzMCwgMjAxOCAxMDo1 NyBQTQ0KVG86IExpbiwgWHVlcWluIDx4dWVxaW4ubGluQGludGVsLmNvbT4NCkNjOiBZYW8sIExl aSBBIDxsZWkuYS55YW9AaW50ZWwuY29tPjsgVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFs b24ubmV0PjsgZGV2IDxkZXZAZHBkay5vcmc+OyBYdSwgUWlhbiBRIDxxaWFuLnEueHVAaW50ZWwu Y29tPjsgQnVyYWtvdiwgQW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVsLmNvbT47IFlpZ2l0 LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+OyBaaGFuZywgUWkgWiA8cWkuei56aGFu Z0BpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjMgMC82XSB1c2Ug SU9WQXMgY2hlY2sgYmFzZWQgb24gRE1BIG1hc2sNCg0KDQpPbiBUdWUsIE9jdCAzMCwgMjAxOCBh dCAyOjQ1IFBNIExpbiwgWHVlcWluIDx4dWVxaW4ubGluQGludGVsLmNvbTxtYWlsdG86eHVlcWlu LmxpbkBpbnRlbC5jb20+PiB3cm90ZToNCkhpIEx1Y2VybywNCg0KVGhlIHBhdGNoIGNvdWxkIGZp eCBib3RoIHRlc3RwbWQgIGFuZCBtdWx0aS1wcm9jZXNzIGNhbuKAmXQgc2V0dXAgaXNzdWVzIG9u IG15IGVudmlyb25tZW50Lg0KSG9wZSB0aGF0IHlvdSBjb3VsZCB1cGxvYWQgZml4IHBhdGNoIHRv IHBhdGNoZXMgcGFnZSBpbiBjb21tdW5pdHkuDQpUaGFua3MgYSBsb3QuDQoNCg0KR3JlYXQuDQoN CkkgbmVlZCB0byBmb3JtYXQgdGhlIHBhdGNoc2V0IHByb3Blcmx5IGFuZCBjbGVhbiB0aGluZ3Mg dXAgYnV0IEkgaG9wZSBJIGNhbiBzZW5kIGEgcGF0Y2hzZXQgdGhpcyB3ZWVrLg0KDQpUaGFua3Mg Zm9yIHRlc3RpbmchDQoNCkJ5IHRoZSB3YXksIGlzIHRoaXMgdGVzdGluZyBzb21ldGhpbmcgeW91 IGFyZSBkb2luZyBieSB5b3Vyc2VsZiBvciBpdCBpcyBwYXJ0IG9mIEludGVsIERQREsgd29yaz8N Cg0KDQpXZSBhcmUgZnJvbSBJbnRlbCBEUERLIHZhbGlkYXRpb24gdGVhbeKYug0KSXQgaXMgMTgu MTEgcmMxIGN5Y2xlLCB0aGUgaXNzdWUgYmxvY2sgbW9zdCBvZiBvdXIgY2FzZXMgY2Fu4oCZdCBj b250aW51ZSwgaW5jbHVkZSBOSUMsIE5JQyBWRiwgdmhvc3QvdmlydGlvLCBzYW1wbGXigKYNCkl0 IGlzIHZlcnkgdXJnZW50IGZvciB1cyB0byBjaGVjayBEUERLIFFBIGluIHZlcnkgbGltaXQgdGlt ZS4NCkhvcGUgeW91IGNvdWxkIHNlbmQgZml4IHBhdGNoIG9mZmljaWFsbHkgc29vbiwgdGhlbiBt ZXJnZSB0byBtYXN0ZXIgYnJhbmNoIGFmdGVyIHJldmlldy4NClRoYW5rcy4NCkJlc3QgcmVnYXJk cywNClh1ZXFpbg0KDQpGcm9tOiBBbGVqYW5kcm8gTHVjZXJvIFttYWlsdG86YWxlamFuZHJvLmx1 Y2Vyb0BuZXRyb25vbWUuY29tPG1haWx0bzphbGVqYW5kcm8ubHVjZXJvQG5ldHJvbm9tZS5jb20+ XQ0KU2VudDogVHVlc2RheSwgT2N0b2JlciAzMCwgMjAxOCAxMDowNSBQTQ0KVG86IExpbiwgWHVl cWluIDx4dWVxaW4ubGluQGludGVsLmNvbTxtYWlsdG86eHVlcWluLmxpbkBpbnRlbC5jb20+Pg0K Q2M6IFlhbywgTGVpIEEgPGxlaS5hLnlhb0BpbnRlbC5jb208bWFpbHRvOmxlaS5hLnlhb0BpbnRl bC5jb20+PjsgVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PG1haWx0bzp0aG9t YXNAbW9uamFsb24ubmV0Pj47IGRldiA8ZGV2QGRwZGsub3JnPG1haWx0bzpkZXZAZHBkay5vcmc+ PjsgWHUsIFFpYW4gUSA8cWlhbi5xLnh1QGludGVsLmNvbTxtYWlsdG86cWlhbi5xLnh1QGludGVs LmNvbT4+OyBCdXJha292LCBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPG1haWx0 bzphbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPj47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdp dEBpbnRlbC5jb208bWFpbHRvOmZlcnJ1aC55aWdpdEBpbnRlbC5jb20+PjsgWmhhbmcsIFFpIFog PHFpLnouemhhbmdAaW50ZWwuY29tPG1haWx0bzpxaS56LnpoYW5nQGludGVsLmNvbT4+DQpTdWJq ZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjMgMC82XSB1c2UgSU9WQXMgY2hlY2sgYmFzZWQg b24gRE1BIG1hc2sNCg0KDQpPbiBUdWUsIE9jdCAzMCwgMjAxOCBhdCAxMjozNyBQTSBBbGVqYW5k cm8gTHVjZXJvIDxhbGVqYW5kcm8ubHVjZXJvQG5ldHJvbm9tZS5jb208bWFpbHRvOmFsZWphbmRy by5sdWNlcm9AbmV0cm9ub21lLmNvbT4+IHdyb3RlOg0KDQpPbiBUdWUsIE9jdCAzMCwgMjAxOCBh dCAxMjoyMiBQTSBMaW4sIFh1ZXFpbiA8eHVlcWluLmxpbkBpbnRlbC5jb208bWFpbHRvOnh1ZXFp bi5saW5AaW50ZWwuY29tPj4gd3JvdGU6DQpTb21lIGZvdW5kIG9uIHNvbWUgb3VyIHNlcnZlcnM6 DQpJZiAgbm90IGFkZCDigJ1pbnRlbF9pb21tdT1vbiBpb21tdT1wdOKAnSBpbiAvYm9vdC9ncnVi Mi9ncnViLmNmZyBmaWxlLCB0aGVuIHJlYm9vdCB0byBtYWtlIGl0IGVmZmVjdGl2ZS4NCjE4LjEx IHJjMTogU3VjY2VzcyB0byBzZXR1cCB0ZXN0cG1kICBhbmQgc2Vjb25kYXJ5IHByb2Nlc3MuDQoN CklmICBhZGQgIOKAnWludGVsX2lvbW11PW9uIGlvbW11PXB04oCdIGluIC9ib290L2dydWIyL2dy dWIuY2ZnIGZpbGUsIHRoZW4gcmVib290IHRvIG1ha2UgaXQgZWZmZWN0aXZlLg0KMTguMTEgcmMx OiAgRmFpbCB0byBzZXR1cCB0ZXN0cG1kICBhbmQgc2Vjb25kYXJ5IHByb2Nlc3MuDQoxOC4xMSBy YzErIGRtYV9tYXNrX2ZpeCBwYXRjaDogc3VjY2VzcyB0byBzZXR1cCB0ZXN0cG1kLCBidXQgZmFp bCB0byBzZXR1cCBzZWNvbmRhcnkgcHJvY2Vzcy4NCg0KTWF5YmUg4oCdaW50ZWxfaW9tbXU9b24g aW9tbXU9cHTigJ0gZW5hYmxlIG9yIG5vdCByZXN1bHQgaW4gb3VyIHRlc3QgZ2FwLg0KTW9zdCBv ZiBvdXIgdGVhbSBzZXJ2ZXJzIHNob3VsZCBlbmFibGUgdGhlIElPTU1VIGZvciBWVC1kIGFuZCB2 ZmlvIHRlc3QuDQoNCg0KSXQgbWFrZXMgc2Vuc2UgYmVjYXVzZSB0aGUgcHJvYmxlbSBpcyB3aGVu IHRoZSBJT1ZBIG1vZGUgaXMgc2V0IGluc2lkZSBkcml2ZXJzL2J1cy9wY2kvbGludXgvcGNpLmMg YW5kIGlmIHRoZXJlIGlzIG5vdCBJT01NVSwgbm90IGNhbGwgdG8gcnRlX2VhbF9jaGVja19kbWFf bWFzayBhdCBhbGwuDQoNCg0KQmVzdCByZWdhcmRzLA0KWHVlcWluDQoNCkZyb206IEFsZWphbmRy byBMdWNlcm8gW21haWx0bzphbGVqYW5kcm8ubHVjZXJvQG5ldHJvbm9tZS5jb208bWFpbHRvOmFs ZWphbmRyby5sdWNlcm9AbmV0cm9ub21lLmNvbT5dDQpTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDMw LCAyMDE4IDY6MzggUE0NClRvOiBMaW4sIFh1ZXFpbiA8eHVlcWluLmxpbkBpbnRlbC5jb208bWFp bHRvOnh1ZXFpbi5saW5AaW50ZWwuY29tPj4NCkNjOiBZYW8sIExlaSBBIDxsZWkuYS55YW9AaW50 ZWwuY29tPG1haWx0bzpsZWkuYS55YW9AaW50ZWwuY29tPj47IFRob21hcyBNb25qYWxvbiA8dGhv bWFzQG1vbmphbG9uLm5ldDxtYWlsdG86dGhvbWFzQG1vbmphbG9uLm5ldD4+OyBkZXYgPGRldkBk cGRrLm9yZzxtYWlsdG86ZGV2QGRwZGsub3JnPj47IFh1LCBRaWFuIFEgPHFpYW4ucS54dUBpbnRl bC5jb208bWFpbHRvOnFpYW4ucS54dUBpbnRlbC5jb20+PjsgQnVyYWtvdiwgQW5hdG9seSA8YW5h dG9seS5idXJha292QGludGVsLmNvbTxtYWlsdG86YW5hdG9seS5idXJha292QGludGVsLmNvbT4+ OyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPG1haWx0bzpmZXJydWgueWln aXRAaW50ZWwuY29tPj47IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbTxtYWlsdG86 cWkuei56aGFuZ0BpbnRlbC5jb20+Pg0KU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYz IDAvNl0gdXNlIElPVkFzIGNoZWNrIGJhc2VkIG9uIERNQSBtYXNrDQoNCg0KT24gVHVlLCBPY3Qg MzAsIDIwMTggYXQgMTA6MzQgQU0gTGluLCBYdWVxaW4gPHh1ZXFpbi5saW5AaW50ZWwuY29tPG1h aWx0bzp4dWVxaW4ubGluQGludGVsLmNvbT4+IHdyb3RlOg0KSGkgTHVjZXJvLA0KDQpObywgd2Ug aGF2ZSByZXByb2R1Y2VkIG11bHRpLXByb2Nlc3MgaXNzdWVzKGluY2x1ZGUgc3ltbWV0cmljX21w LCBzaW1wbGVfbXAsIGhvdHBsdWdfbXAsIG11bHRpLXByb2Nlc3MgdW5pdCB0ZXN04oCmIClvbiBt b3N0IG9mIG91ciBzZXJ2ZXJzLg0KSXQgaXMgYWxzbyBzdHJhbmdlIHRoYXQgMX4yIHNlcnZlcnMg ZG9u4oCZdCBoYXZlIHRoZSBpc3N1ZS4NCg0KDQpZZXMsIHlvdSBhcmUgcmlnaHQuIEkgY291bGQg ZXhlY3V0ZSBpdCBidXQgaXQgd2FzIGR1ZSB0byBob3cgdGhpcyBwcm9ibGVtIHRyaWdnZXJzLg0K SSB0aGluayBJIGNhbiBmaXggdGhpcyBhbmQgYXQgdGhlIHNhbWUgdGltZSBzb2x2aW5nIHByb3Bl cmx5IHRoZSBpbml0aWFsIGlzc3VlIHdpdGhvdXQgYW55IGxpbWl0YXRpb24gbGlrZSB0aGF0IHBv dGVudGlhbCByYWNlIGNvbmRpdGlvbiBJIG1lbnRpb25lZC4NCkkgY2FuIGdpdmUgeW91IGEgcGF0 Y2ggdG8gdHJ5IGluIGEgY291cGxlIG9mIGhvdXJzLg0KDQoNCkhpIExpbiwNCg0KQ2FuIHlvdSB0 cnkgdGhlIHBhdGNoIGF0dGFjaGVkPw0KDQpUaGFua3MNCg0KVGhhbmtzDQoNCkJpbmQgdHdvIE5O VCBwb3J0cyBvciBGVkwgcG9ydHMNCg0KLi9idWlsZC9zeW1tZXRyaWNfbXAgLWMgNCAtLXByb2Mt dHlwZT1hdXRvIC0tIC1wIDMgLS1udW0tcHJvY3M9NCAtLXByb2MtaWQ9MQ0KDQpFQUw6IERldGVj dGVkIDg4IGxjb3JlKHMpDQpFQUw6IERldGVjdGVkIDIgTlVNQSBub2Rlcw0KRUFMOiBBdXRvLWRl dGVjdGVkIHByb2Nlc3MgdHlwZTogU0VDT05EQVJZDQpbTmV3IFRocmVhZCAweDdmZmZmNmVkYTcw MCAoTFdQIDkwMTAzKV0NCkVBTDogTXVsdGktcHJvY2VzcyBzb2NrZXQgL3Zhci9ydW4vZHBkay9y dGUvbXBfc29ja2V0XzkwMDk5XzJmMWI1NTM4ODJiNjINCltOZXcgVGhyZWFkIDB4N2ZmZmY2NmQ5 NzAwIChMV1AgOTAxMDQpXQ0KDQpUaHJlYWQgMSAic3ltbWV0cmljX21wIiByZWNlaXZlZCBzaWdu YWwgU0lHU0VHViwgU2VnbWVudGF0aW9uIGZhdWx0Lg0KMHgwMDAwMDAwMDAwNTU2NmI1IGluIHJ0 ZV9mYmFycmF5X2ZpbmRfbmV4dF91c2VkICgpDQooZ2RiKSBidA0KIzAgIDB4MDAwMDAwMDAwMDU1 NjZiNSBpbiBydGVfZmJhcnJheV9maW5kX25leHRfdXNlZCAoKQ0KIzEgIDB4MDAwMDAwMDAwMDU0 ZGE5YyBpbiBydGVfZWFsX2NoZWNrX2RtYV9tYXNrICgpDQojMiAgMHgwMDAwMDAwMDAwNTcyYWU3 IGluIHBjaV9vbmVfZGV2aWNlX2lvbW11X3N1cHBvcnRfdmEgKCkNCiMzICAweDAwMDAwMDAwMDA1 NzM5ODggaW4gcnRlX3BjaV9nZXRfaW9tbXVfY2xhc3MgKCkNCiM0ICAweDAwMDAwMDAwMDA1NGY3 NDMgaW4gcnRlX2J1c19nZXRfaW9tbXVfY2xhc3MgKCkNCiM1ICAweDAwMDAwMDAwMDA1M2MxMjMg aW4gcnRlX2VhbF9pbml0ICgpDQojNiAgMHgwMDAwMDAwMDAwNDZiZTJiIGluIG1haW4gKCkNCg0K QmVzdCByZWdhcmRzLA0KWHVlcWluDQoNCkZyb206IEFsZWphbmRybyBMdWNlcm8gW21haWx0bzph bGVqYW5kcm8ubHVjZXJvQG5ldHJvbm9tZS5jb208bWFpbHRvOmFsZWphbmRyby5sdWNlcm9AbmV0 cm9ub21lLmNvbT5dDQpTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDMwLCAyMDE4IDU6NDEgUE0NClRv OiBMaW4sIFh1ZXFpbiA8eHVlcWluLmxpbkBpbnRlbC5jb208bWFpbHRvOnh1ZXFpbi5saW5AaW50 ZWwuY29tPj4NCkNjOiBZYW8sIExlaSBBIDxsZWkuYS55YW9AaW50ZWwuY29tPG1haWx0bzpsZWku YS55YW9AaW50ZWwuY29tPj47IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldDxt YWlsdG86dGhvbWFzQG1vbmphbG9uLm5ldD4+OyBkZXYgPGRldkBkcGRrLm9yZzxtYWlsdG86ZGV2 QGRwZGsub3JnPj47IFh1LCBRaWFuIFEgPHFpYW4ucS54dUBpbnRlbC5jb208bWFpbHRvOnFpYW4u cS54dUBpbnRlbC5jb20+PjsgQnVyYWtvdiwgQW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVs LmNvbTxtYWlsdG86YW5hdG9seS5idXJha292QGludGVsLmNvbT4+OyBZaWdpdCwgRmVycnVoIDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPG1haWx0bzpmZXJydWgueWlnaXRAaW50ZWwuY29tPj47IFpo YW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbTxtYWlsdG86cWkuei56aGFuZ0BpbnRlbC5j b20+Pg0KU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYzIDAvNl0gdXNlIElPVkFzIGNo ZWNrIGJhc2VkIG9uIERNQSBtYXNrDQoNCg0KT24gVHVlLCBPY3QgMzAsIDIwMTggYXQgMzoyMCBB TSBMaW4sIFh1ZXFpbiA8eHVlcWluLmxpbkBpbnRlbC5jb208bWFpbHRvOnh1ZXFpbi5saW5AaW50 ZWwuY29tPj4gd3JvdGU6DQpIaSBMdWNlcm8mVGhvbWFzLA0KDQpGaW5kIHRoZSBwYXRjaCBjYW7i gJl0IGZpeCBtdWx0aS1wcm9jZXNzIGNhc2VzLg0KDQpIaSwNCg0KSSB0aGluayBpdCBpcyBub3Qg c3BlY2lmaWNhbGx5IGFib3V0IG11bHRpcHJvY2VzcyBidXQgYWJvdXQgaG90cGx1ZyB3aXRoIG11 bHRpcHJvY2VzcyBiZWNhdXNlIEkgY2FuIGV4ZWN1dGUgdGhlIHN5bW1ldHJpY19tcCBzdWNjZXNz ZnVsbHkgd2l0aCBhIHNlY29uZGFyeSBwcm9jZXNzLg0KDQpXb3JraW5nIG9uIHRoaXMgYXMgYSBw cmlvcml0eS4NCg0KVGhhbmtzLg0KDQpTdGVwczoNCg0KMS4gICAgICAgU2V0dXAgcHJpbWFyeSBw cm9jZXNzIHN1Y2Nlc3NmdWxseQ0KDQouL2hvdHBsdWdfbXAgLS1wcm9jLXR5cGU9YXV0bw0KDQoN Cg0KMi4gICAgICAgRmFpbCB0byBzZXR1cCBzZWNvbmRhcnkgcHJvY2Vzcw0KDQouL2hvdHBsdWdf bXAgLS1wcm9jLXR5cGU9YXV0bw0KDQpFQUw6IERldGVjdGVkIDg4IGxjb3JlKHMpDQoNCkVBTDog RGV0ZWN0ZWQgMiBOVU1BIG5vZGVzDQoNCkVBTDogQXV0by1kZXRlY3RlZCBwcm9jZXNzIHR5cGU6 IFNFQ09OREFSWQ0KDQpFQUw6IE11bHRpLXByb2Nlc3Mgc29ja2V0IC92YXIvcnVuL2RwZGsvcnRl L21wX3NvY2tldF8xNDcyMTJfMmJmZTA4ZWU4OGQyMw0KDQpTZWdtZW50YXRpb24gZmF1bHQgKGNv cmUgZHVtcGVkKQ0KDQoNCk1vcmUgaW5mb3JtYXRpb24gYXMgYmVsb3c6DQoNClRocmVhZCAxICJo b3RwbHVnX21wIiByZWNlaXZlZCBzaWduYWwgU0lHU0VHViwgU2VnbWVudGF0aW9uIGZhdWx0Lg0K DQoweDAwMDAwMDAwMDA1OTdjZmIgaW4gZmluZF9uZXh0IChhcnI9MHg3ZmZmZjdmZjIwYTQsIHN0 YXJ0PTAsIHVzZWQ9dHJ1ZSkNCg0KICAgIGF0IC9yb290L2RwZGsvbGliL2xpYnJ0ZV9lYWwvY29t bW9uL2VhbF9jb21tb25fZmJhcnJheS5jOjI2NA0KDQoyNjQgICAgICAgICAgICAgZm9yIChpZHgg PSBmaXJzdDsgaWR4IDwgbXNrLT5uX21hc2tzOyBpZHgrKykgew0KDQojMCAgMHgwMDAwMDAwMDAw NTk3Y2ZiIGluIGZpbmRfbmV4dCAoYXJyPTB4N2ZmZmY3ZmYyMGE0LCBzdGFydD0wLCB1c2VkPXRy dWUpDQoNCiAgICBhdCAvcm9vdC9kcGRrL2xpYi9saWJydGVfZWFsL2NvbW1vbi9lYWxfY29tbW9u X2ZiYXJyYXkuYzoyNjQNCg0KIzEgIDB4MDAwMDAwMDAwMDU5ODU3MyBpbiBmYmFycmF5X2ZpbmQg KGFycj0weDdmZmZmN2ZmMjBhNCwgc3RhcnQ9MCwgbmV4dD10cnVlLA0KDQogICAgdXNlZD10cnVl KSBhdCAvcm9vdC9kcGRrL2xpYi9saWJydGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX2ZiYXJyYXku YzoxMDAxDQoNCiMyICAweDAwMDAwMDAwMDA1OTkyOWIgaW4gcnRlX2ZiYXJyYXlfZmluZF9uZXh0 X3VzZWQgKGFycj0weDdmZmZmN2ZmMjBhNCwgc3RhcnQ9MCkNCg0KICAgIGF0IC9yb290L2RwZGsv bGliL2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21tb25fZmJhcnJheS5jOjEwMTgNCg0KIzMgIDB4 MDAwMDAwMDAwMDU4Yzg3NyBpbiBydGVfbWVtc2VnX3dhbGtfdGhyZWFkX3Vuc2FmZSAoZnVuYz0w eDU4YzQwMSA8Y2hlY2tfaW92YT4sDQoNCiAgICBhcmc9MHg3ZmZmZmZmZmNjMzgpIGF0IC9yb290 L2RwZGsvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21tb25fbWVtb3J5LmM6NTg5DQoNCiM0 ICAweDAwMDAwMDAwMDA1OGNlMDggaW4gcnRlX2VhbF9jaGVja19kbWFfbWFzayAobWFza2JpdHM9 NDggJzAnKQ0KDQogICAgYXQgL3Jvb3QvZHBkay9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2Nv bW1vbl9tZW1vcnkuYzo0NjUNCg0KIzUgIDB4MDAwMDAwMDAwMDViOTZjNCBpbiBwY2lfb25lX2Rl dmljZV9pb21tdV9zdXBwb3J0X3ZhIChkZXY9MHgxMWIzZDkwKQ0KDQogICAgYXQgL3Jvb3QvZHBk ay9kcml2ZXJzL2J1cy9wY2kvbGludXgvcGNpLmM6NTkzDQoNCiM2ICAweDAwMDAwMDAwMDA1Yjk3 MzggaW4gcGNpX2RldmljZXNfaW9tbXVfc3VwcG9ydF92YSAoKQ0KDQogICAgYXQgL3Jvb3QvZHBk ay9kcml2ZXJzL2J1cy9wY2kvbGludXgvcGNpLmM6NjI2DQoNCiM3ICAweDAwMDAwMDAwMDA1Yjk3 YTcgaW4gcnRlX3BjaV9nZXRfaW9tbXVfY2xhc3MgKCkNCg0KICAgIGF0IC9yb290L2RwZGsvZHJp dmVycy9idXMvcGNpL2xpbnV4L3BjaS5jOjY1MA0KDQojOCAgMHgwMDAwMDAwMDAwNThmMWNlIGlu IHJ0ZV9idXNfZ2V0X2lvbW11X2NsYXNzICgpDQoNCiAgICBhdCAvcm9vdC9kcGRrL2xpYi9saWJy dGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX2J1cy5jOjIzNw0KDQojOSAgMHgwMDAwMDAwMDAwNTc3 YzdhIGluIHJ0ZV9lYWxfaW5pdCAoYXJnYz0yLCBhcmd2PTB4N2ZmZmZmZmZkZjk4KQ0KDQogICAg YXQgL3Jvb3QvZHBkay9saWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvZWFsLmM6OTE5DQoNCiMx MCAweDAwMDAwMDAwMDA0NWRkNTYgaW4gbWFpbiAoYXJnYz0yLCBhcmd2PTB4N2ZmZmZmZmZkZjk4 KQ0KDQogICAgYXQgL3Jvb3QvZHBkay9leGFtcGxlcy9tdWx0aV9wcm9jZXNzL2hvdHBsdWdfbXAv bWFpbi5jOjI4DQoNCg0KQmVzdCByZWdhcmRzLA0KWHVlcWluDQoNCkZyb206IEFsZWphbmRybyBM dWNlcm8gW21haWx0bzphbGVqYW5kcm8ubHVjZXJvQG5ldHJvbm9tZS5jb208bWFpbHRvOmFsZWph bmRyby5sdWNlcm9AbmV0cm9ub21lLmNvbT5dDQpTZW50OiBNb25kYXksIE9jdG9iZXIgMjksIDIw MTggOTo0MSBQTQ0KVG86IFlhbywgTGVpIEEgPGxlaS5hLnlhb0BpbnRlbC5jb208bWFpbHRvOmxl aS5hLnlhb0BpbnRlbC5jb20+Pg0KQ2M6IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9u Lm5ldDxtYWlsdG86dGhvbWFzQG1vbmphbG9uLm5ldD4+OyBkZXYgPGRldkBkcGRrLm9yZzxtYWls dG86ZGV2QGRwZGsub3JnPj47IFh1LCBRaWFuIFEgPHFpYW4ucS54dUBpbnRlbC5jb208bWFpbHRv OnFpYW4ucS54dUBpbnRlbC5jb20+PjsgTGluLCBYdWVxaW4gPHh1ZXFpbi5saW5AaW50ZWwuY29t PG1haWx0bzp4dWVxaW4ubGluQGludGVsLmNvbT4+OyBCdXJha292LCBBbmF0b2x5IDxhbmF0b2x5 LmJ1cmFrb3ZAaW50ZWwuY29tPG1haWx0bzphbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPj47IFlp Z2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb208bWFpbHRvOmZlcnJ1aC55aWdpdEBp bnRlbC5jb20+Pg0KU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYzIDAvNl0gdXNlIElP VkFzIGNoZWNrIGJhc2VkIG9uIERNQSBtYXNrDQoNCg0KT24gTW9uLCBPY3QgMjksIDIwMTggYXQg MToxOCBQTSBZYW8sIExlaSBBIDxsZWkuYS55YW9AaW50ZWwuY29tPG1haWx0bzpsZWkuYS55YW9A aW50ZWwuY29tPj4gd3JvdGU6DQoNCg0KRnJvbTogQWxlamFuZHJvIEx1Y2VybyBbbWFpbHRvOmFs ZWphbmRyby5sdWNlcm9AbmV0cm9ub21lLmNvbTxtYWlsdG86YWxlamFuZHJvLmx1Y2Vyb0BuZXRy b25vbWUuY29tPl0NClNlbnQ6IE1vbmRheSwgT2N0b2JlciAyOSwgMjAxOCA4OjU2IFBNDQpUbzog VGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PG1haWx0bzp0aG9tYXNAbW9uamFs b24ubmV0Pj4NCkNjOiBZYW8sIExlaSBBIDxsZWkuYS55YW9AaW50ZWwuY29tPG1haWx0bzpsZWku YS55YW9AaW50ZWwuY29tPj47IGRldiA8ZGV2QGRwZGsub3JnPG1haWx0bzpkZXZAZHBkay5vcmc+ PjsgWHUsIFFpYW4gUSA8cWlhbi5xLnh1QGludGVsLmNvbTxtYWlsdG86cWlhbi5xLnh1QGludGVs LmNvbT4+OyBMaW4sIFh1ZXFpbiA8eHVlcWluLmxpbkBpbnRlbC5jb208bWFpbHRvOnh1ZXFpbi5s aW5AaW50ZWwuY29tPj47IEJ1cmFrb3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5j b208bWFpbHRvOmFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+PjsgWWlnaXQsIEZlcnJ1aCA8ZmVy cnVoLnlpZ2l0QGludGVsLmNvbTxtYWlsdG86ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4+DQpTdWJq ZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjMgMC82XSB1c2UgSU9WQXMgY2hlY2sgYmFzZWQg b24gRE1BIG1hc2sNCg0KDQpPbiBNb24sIE9jdCAyOSwgMjAxOCBhdCAxMTo0NiBBTSBUaG9tYXMg TW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ8bWFpbHRvOnRob21hc0Btb25qYWxvbi5uZXQ+ PiB3cm90ZToNCjI5LzEwLzIwMTggMTI6MzksIEFsZWphbmRybyBMdWNlcm86DQo+IEkgZ290IGEg cGF0Y2ggdGhhdCBzb2x2ZXMgYSBidWcgd2hlbiBjYWxsaW5nIHJ0ZV9lYWxfZG1hX21hc2sgdXNp bmcgdGhlDQo+IG1hc2sgaW5zdGVhZCBvZiB0aGUgbWFza2JpdHMuIEhvd2V2ZXIsIHRoaXMgZG9l cyBub3Qgc29sdmVzIHRoZSBkZWFkbG9jay4NCg0KVGhlIGRlYWRsb2NrIGlzIGEgYmlnZ2VyIGNv bmNlcm4gSSB0aGluay4NCg0KSSB0aGluayBvbmNlIHRoZSBjYWxsIHRvIHJ0ZV9lYWxfY2hlY2tf ZG1hX21hc2sgdXNlcyB0aGUgbWFza2JpdHMgaW5zdGVhZCBvZiB0aGUgbWFzaywgY2FsbGluZyBy dGVfbWVtc2VnX3dhbGtfdGhyZWFkX3Vuc2FmZSBhdm9pZHMgdGhlIGRlYWRsb2NrLg0KDQpZYW8s IGNhbiB5b3UgdHJ5IHdpdGggdGhlIGF0dGFjaGVkIHBhdGNoPw0KDQpIaSwgTHVjZXJvDQoNClRo aXMgcGF0Y2ggY2FuIGZpeCB0aGUgaXNzdWUgYXQgbXkgc2lkZS4gVGhhbmtzIGEgbG90DQpmb3Ig eW91IHF1aWNrIGFjdGlvbi4NCg0KDQpHcmVhdCENCg0KSSB3aWxsIHNlbmQgYW4gb2ZmaWNpYWwg cGF0Y2ggd2l0aCB0aGUgY2hhbmdlcy4NCg0KSSBoYXZlIHRvIHNheSB0aGF0IEkgdGVzdGVkIHRo ZSBwYXRjaHNldCwgYnV0IEkgdGhpbmsgaXQgd2FzIHdoZXJlIGxlZ2FjeV9tZW0gd2FzIHN0aWxs IHRoZXJlIGFuZCB0aGVyZWZvcmUgZHluYW1pYyBtZW1vcnkgYWxsb2NhdGlvbiBjb2RlIG5vdCB1 c2VkIGR1cmluZyBtZW1vcnkgaW5pdGlhbGl6YXRpb24uDQoNClRoZXJlIGlzIHNvbWV0aGluZyB0 aGF0IGNvbmNlcm5zIG1lIHRob3VnaC4gVXNpbmcgcnRlX21lbXNlZ193YWxrX3RocmVhZF91bnNh ZmUgY291bGQgYmUgYSBwcm9ibGVtIHVuZGVyIHNvbWUgc2l0dWF0aW9ucyBhbHRob3VnaCB0aG9z ZSBzaXR1YXRpb25zIGJlaW5nIHVubGlrZWx5Lg0KDQpVc3VhbGx5LCBjYWxsaW5nIHJ0ZV9lYWxf Y2hlY2tfZG1hX21hc2sgaGFwcGVucyBkdXJpbmcgaW5pdGlhbGl6YXRpb24uIFRoZW4gaXQgaXMg c2FmZSB0byB1c2UgdGhlIHVuc2FmZSBmdW5jdGlvbiBmb3Igd2Fsa2luZyBtZW1zZWdzLCBidXQg d2l0aCBkZXZpY2UgaG90cGx1ZyBhbmQgZHluYW1pYyBtZW1vcnkgYWxsb2NhdGlvbiwgdGhlcmUg ZXhpc3RzIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIHdoZW4gdGhlIHByaW1hcnkgcHJvY2Vz cyBpcyBhbGxvY2F0aW5nIG1vcmUgbWVtb3J5IGFuZCBjb25jdXJyZW50bHkgYSBkZXZpY2UgaXMg aG90cGx1Z2dlZCBhbmQgYSBzZWNvbmRhcnkgcHJvY2VzcyBkb2VzIHRoZSBkZXZpY2UgaW5pdGlh bGl6YXRpb24uIEJ5IG5vdywgdGhpcyBpcyBqdXN0IGEgcHJvYmxlbSB3aXRoIHRoZSBORlAsIGFu ZCB0aGUgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIHdpbmRvdyByZWFsbHkgdW5saWtlbHksIGJ1 dCBJIHdpbGwgd29yayBvbiB0aGlzIGFzYXAuDQoNCkJScw0KTGVpDQoNCj4gSW50ZXJlc3Rpbmds eSwgdGhlIHByb2JsZW0gbG9va3MgbGlrZSBhIGNvbXBpbGVyIG9uZS4gQ2FsbGluZw0KPiBydGVf bWVtc2VnX3dhbGsgZG9lcyBub3QgcmV0dXJuIHdoZW4gY2FsbGluZyBpbnNpZGUgcnRfZWFsX2Rt YV9tYXNrLCBidXQgaWYNCj4geW91IG1vZGlmeSB0aGUgY2FsbCBsaWtlIHRoaXM6DQo+DQo+IC0g ICAgICAgaWYgKHJ0ZV9tZW1zZWdfd2FsayhjaGVja19pb3ZhLCAmbWFzaykpDQo+ICsgICAgICAg aWYgKCFydGVfbWVtc2VnX3dhbGsoY2hlY2tfaW92YSwgJm1hc2spKQ0KPg0KPiBpdCB3b3Jrcywg YWx0aG91Z2ggdGhlIHZhbHVlIHJldHVybmVkIHRvIHRoZSBpbnZva2VyIGNoYW5nZXMsIG9mIGNv dXJzZS4NCj4gQnV0IHRoZSBwb2ludCBoZXJlIGlzIGl0IHNob3VsZCBiZSB0aGUgc2FtZSBiZWhh dmlvdXIgd2hlbiBjYWxsaW5nDQo+IHJ0ZV9tZW1zZWdfd2FsayB0aGFuIGJlZm9yZSBhbmQgaXQg aXMgbm90Lg0KDQpBbnl3YXksIHRoZSBjb2Rpbmcgc3R5bGUgcmVxdWlyZXMgdG8gc2F2ZSB0aGUg cmV0dXJuIHZhbHVlIGluIGEgdmFyaWFibGUsDQppbnN0ZWFkIG9mIG5lc3RpbmcgdGhlIGNhbGwg aW4gYW4gImlmIiBjb25kaXRpb24uDQpBbmQgdGhlICJpZiIgY2hlY2sgc2hvdWxkIGJlIGV4cGxp Y2l0bHkgIT0gMCBiZWNhdXNlIGl0IGlzIG5vdCBhIHJlYWwgYm9vbGVhbi4NCg0KUFM6IHBsZWFz ZSBkbyBub3QgdG9wIHBvc3QgYW5kIGF2b2lkIEhUTUwgZW1haWxzLCB0aGFua3MNCg==