From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 9A95A7D30 for ; Thu, 24 Aug 2017 11:07:38 +0200 (CEST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Aug 2017 02:07:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,420,1498546800"; d="scan'208";a="303885882" Received: from irsmsx102.ger.corp.intel.com ([163.33.3.155]) by fmsmga004.fm.intel.com with ESMTP; 24 Aug 2017 02:07:36 -0700 Received: from irsmsx107.ger.corp.intel.com ([169.254.10.65]) by IRSMSX102.ger.corp.intel.com ([169.254.2.91]) with mapi id 14.03.0319.002; Thu, 24 Aug 2017 10:07:35 +0100 From: "O Mahony, Billy" To: Gao Zhenyu , "Loftus, Ciara" CC: "dev@openvswitch.org" , "users@dpdk.org" Thread-Topic: [ovs-dev] [PATCH v1] netdev-dpdk: Implement TCP/UDP TX cksum in ovs-dpdk side Thread-Index: AQHTDX13yG4AhMTusk2uZFKAf8IHjKJ6LJCAgALLvwCACgX0gIAARbSAgArAgYCAABQjgIABOO1g Date: Thu, 24 Aug 2017 09:07:34 +0000 Message-ID: <03135AEA779D444E90975C2703F148DC58C0D228@IRSMSX107.ger.corp.intel.com> References: <20170801142631.10652-1-sysugaozhenyu@gmail.com> <74F120C019F4A64C9B78E802F6AD4CC278DD0473@IRSMSX106.ger.corp.intel.com> <74F120C019F4A64C9B78E802F6AD4CC278DD1215@IRSMSX106.ger.corp.intel.com> <0372200F-0C00-4E55-858C-9B297BFE5D33@vmware.com> <74F120C019F4A64C9B78E802F6AD4CC278DE88A3@IRSMSX106.ger.corp.intel.com> In-Reply-To: Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTFiYjRjNTgtMDJmYi00MDAyLThkNTItNTA4MWQ4ODIyNWUxIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6ImJxQ3ArUnFyQmlnY3lSQXNRdEZrVjlac1Z5S1FaVXp6TWhkVVdiOXVVQWs9In0= x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 24 Aug 2017 15:49:25 +0200 Subject: Re: [dpdk-users] [ovs-dev] [PATCH v1] netdev-dpdk: Implement TCP/UDP TX cksum in ovs-dpdk side X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Aug 2017 09:07:39 -0000 SGkgR2FvLA0KDQpUaGFua3MgZm9yIHdvcmtpbmcgb24gdGhpcy4gTGFjayBvZiBjaGVja3N1bSBv ZmZsb2FkIGlzIGJpZyBkaWZmZXJlbmNlIGJldHdlZW4gb3ZzIGFuZCBvdnMtZHBkayB3aGVuIHVz aW5nIGxpbnV4IHN0YWNrIGluIHRoZSBndWVzdC4NCiANClRoZSB0aGluZyB0aGF0IHN0cnVjayBt ZSB3YXMgdGhhdCByYXRoZXIgdGhhbiBpbW1lZGlhdGVseSBjYWxjdWxhdGluZyB0aGUgTDQgY2hl Y2tzdW0gaW4gdGhlIGhvc3Qgb24gdmhvc3QgcnggdGhhdCB0aGUgY2FsY3VsYXRpb24gc2hvdWxk IGJlIGRlbGF5ZWQgdW50aWwgaXQncyBrbm93biB0byBiZSBhYnNvbHV0ZWx5IHJlcXVpcmVkIHRv IGJlIGRvbmUgb24gdGhlIGhvc3QuIElmIHRoZSBwYWNrZXQgaXMgZm9yIGFub3RoZXIgVk0gYSBj aGVja3N1bSBpcyBub3QgcmVxdWlyZWQgYXMgdGhlIGJpdHMgYXJlIG5vdCBnb2luZyBvdmVyIGEg cGh5c2ljYWwgbWVkaXVtLiBBbmQgaWYgdGhlIHBhY2tldHMgaXMgZGVzdGluZWQgZm9yIGEgTklD IHRoZW4gdGhlIGNoZWNrc3VtIGNhbiBiZSBvZmZsb2FkZWQgaWYgdGhlIE5JQyBzdXBwb3J0cyBp dC4NCg0KSSdtIG5vdCBzdXJlIHdoeSBkb2luZyB0aGUgTDQgc3VtIGluIHRoZSBndWVzdCBzaG91 bGQgZ2l2ZSBhIHBlcmZvcm1hbmNlIGdhaW4uIFRoZSBwcm9jZXNzaW5nIHN0aWxsIGhhcyB0byBi ZSBkb25lLiBNYXliZSB0aGUgZ3Vlc3QgY29kZSB3YXMgY29tcGlsZWQgZm9yIGFuIG9sZGVyIGFy Y2hpdGVjdHVyZSBhbmQgaXMgbm90IHVzaW5nIGFzIGVmZmljaWVudCBhIHNldCBvZiBpbnN0cnVj dGlvbnM/DQoNCkluIGFueSBjYXNlIHRoZSBiZXN0IGFkdmFudGFnZSBvZiBoYXZpbmcgZHBkayB2 aXJ0aW8gZGV2aWNlICBzdXBwb3J0IG9mZmxvYWQgaXMgaWYgaXQgY2FuIGZ1cnRoZXIgb2ZmbG9h ZCB0byBhIE5JQyBvciBhdm9pZCBja3N1bSBlbnRpcmVseSBpZiB0aGUgcGFja2V0IGlzIGRlc3Rp bmVkIGZvciBhIGxvY2FsIFZNLg0KDQpUaGFua3MsDQpCaWxseS4gDQoNCg0KPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBvdnMtZGV2LWJvdW5jZXNAb3BlbnZzd2l0Y2gub3Jn IFttYWlsdG86b3ZzLWRldi0NCj4gYm91bmNlc0BvcGVudnN3aXRjaC5vcmddIE9uIEJlaGFsZiBP ZiBHYW8gWmhlbnl1DQo+IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDIzLCAyMDE3IDQ6MTIgUE0N Cj4gVG86IExvZnR1cywgQ2lhcmEgPGNpYXJhLmxvZnR1c0BpbnRlbC5jb20+DQo+IENjOiBkZXZA b3BlbnZzd2l0Y2gub3JnOyB1c2Vyc0BkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW292cy1kZXZd IFtQQVRDSCB2MV0gbmV0ZGV2LWRwZGs6IEltcGxlbWVudCBUQ1AvVURQIFRYDQo+IGNrc3VtIGlu IG92cy1kcGRrIHNpZGUNCj4gDQo+IFllcywgbWFpbnRhaW5pbmcgb25seSBvbmUgaW1wbGVtZW50 YXRpb24gaXMgcmVzb25hYmxlLg0KPiBIb3dldmVyIG1ha2luZyBvdnMtZHBkayB0byBzdXBwb3J0 IHZob3N0IHR4LWNrc3VtIGZpcnN0IGlzIGRvYWJsZSBhcyB3ZWxsLg0KPiBXZSBjYW4gaGF2ZSBp dCBpbiBvdnMsIGFuZCByZXBsYWNlIGl0IHdpdGggbmV3IERQREsgQVBJIG9uY2Ugb3ZzIHVwZGF0 ZSBpdHMNCj4gZHBkayB2ZXJzaW9uIHdoaWNoIGNvbnRhaW5zIHRoZSB0eC1ja3N1bSBpbXBsZW1l bnRhdGlvbi4NCj4gDQo+IA0KPiBUaGFua3MNCj4gWmhlbnl1IEdhbw0KPiANCj4gMjAxNy0wOC0y MyAyMTo1OSBHTVQrMDg6MDAgTG9mdHVzLCBDaWFyYSA8Y2lhcmEubG9mdHVzQGludGVsLmNvbT46 DQo+IA0KPiA+ID4NCj4gPiA+IEhpIENpYXJhDQo+ID4gPg0KPiA+ID4gWW91IGhhZCBhIGdlbmVy YWwgY29uY2VybiBiZWxvdzsgY2FuIHdlIGNvbmNsdWRlIG9uIHRoYXQgYmVmb3JlDQo+ID4gPiBn b2luZyBmdXJ0aGVyID8NCj4gPiA+DQo+ID4gPiBUaGFua3MgRGFycmVsbA0KPiA+ID4NCj4gPiA+ IOKAnA0KPiA+ID4gPiBPbiBhbm90aGVyIG5vdGUgSSBoYXZlIGEgZ2VuZXJhbCBjb25jZXJuLiBJ IHVuZGVyc3RhbmQgc2ltaWxhcg0KPiA+IGZ1bmN0aW9uYWxpdHkNCj4gPiA+ID4gaXMgcHJlc2Vu dCBpbiB0aGUgRFBESyB2aG9zdCBzYW1wbGUgYXBwLiBJIHdvbmRlciBpZiBpdCB3b3VsZCBiZQ0K PiA+IGZlYXNpYmxlDQo+ID4gPiBmb3INCj4gPiA+ID4gdGhpcyB0byBiZSBpbXBsZW1lbnRlZCBp biB0aGUgRFBESyB2aG9zdCBsaWJyYXJ5IGFuZCBsZXZlcmFnZWQNCj4gPiA+ID4gaGVyZSwNCj4g PiA+IHJhdGhlcg0KPiA+ID4gPiB0aGFuIGhhdmluZyB0d28gaW1wbGVtZW50YXRpb25zIGluIHR3 byBzZXBhcmF0ZSBjb2RlIGJhc2VzLg0KPiA+DQo+ID4gVGhpcyBpcyBzb21ldGhpbmcgSSdkIGxp a2UgdG8gc2VlLCBhbHRob3VnaCBJIHdvdWxkbid0IGJsb2NrIG9uIHRoaXMNCj4gPiBwYXRjaCB3 YWl0aW5nIGZvciBpdC4NCj4gPiBNYXliZSB3ZSBjYW4gaGF2ZSB0aGUgaW5pdGlhbCBpbXBsZW1l bnRhdGlvbiBhcyBpdCBpcyAoaWYgaXQgcHJvdmVzDQo+ID4gYmVuZWZpY2lhbCksIHRoZW4gbW92 ZSB0byBhIGNvbW1vbiBEUERLIEFQSSBpZi93aGVuIGl0IGJlY29tZXMNCj4gYXZhaWxhYmxlLg0K PiA+DQo+ID4gSSd2ZSBjYydlZCBEUERLIHVzZXJzIGxpc3QgaG9waW5nIGZvciBzb21lIGlucHV0 LiBUbyBzdW1tYXJpc2U6DQo+ID4gRnJvbSBteSB1bmRlcnN0YW5kaW5nLCB0aGUgRFBESyB2aG9z dCBzYW1wbGUgYXBwbGljYXRpb24gY2FsY3VsYXRlcyBUWA0KPiA+IGNoZWNrc3VtIGZvciBwYWNr ZXRzIHJlY2VpdmVkIGZyb20gdkhvc3QgcG9ydHMgd2l0aCBpbnZhbGlkLzAgY2hlY2tzdW1zOg0K PiA+IGh0dHA6Ly9kcGRrLm9yZy9icm93c2UvZHBkay90cmVlL2V4YW1wbGVzL3Zob3N0L21haW4u YyNuOTEwDQo+ID4gVGhlIHBhdGNoIGJlaW5nIGRpc2N1c3NlZCBpbiB0aGlzIHRocmVhZCAoYWxz byBoZXJlOg0KPiA+IGh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcGF0Y2gvODAyMDcwLykg aXQgc2VlbXMgZG9lcyBzb21ldGhpbmcNCj4gPiB2ZXJ5IHNpbWlsYXIuDQo+ID4gV29uZGVyaW5n IG9uIHRoZSBmZWFzaWJpbGl0eSBvZiBwdXR0aW5nIHRoaXMgZnVuY3Rpb25hbGl0eSBpbiBhDQo+ ID4gcnRlX3Zob3N0IGxpYnJhcnkgY2FsbCBzdWNoIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0d28gc2Vw YXJhdGUNCj4gaW1wbGVtZW50YXRpb25zPw0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IENpYXJhDQo+ ID4NCj4gPiA+ID4NCj4gPiA+ID4gSSBoYXZlIHNvbWUgb3RoZXIgY29tbWVudHMgaW5saW5lLg0K PiA+ID4gPg0KPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+IENpYXJhDQo+ID4gPiDigJwNCj4gPiA+ DQo+ID4gPg0KPiA+ID4NCj4gPiA+IEZyb206IEdhbyBaaGVueXUgPHN5c3VnYW96aGVueXVAZ21h aWwuY29tPg0KPiA+ID4gRGF0ZTogV2VkbmVzZGF5LCBBdWd1c3QgMTYsIDIwMTcgYXQgNjozOCBB TQ0KPiA+ID4gVG86ICJMb2Z0dXMsIENpYXJhIiA8Y2lhcmEubG9mdHVzQGludGVsLmNvbT4NCj4g PiA+IENjOiAiYmxwQG92bi5vcmciIDxibHBAb3ZuLm9yZz4sICJDaGFuZHJhbiwgU3VnZXNoIg0K PiA+ID4gPHN1Z2VzaC5jaGFuZHJhbkBpbnRlbC5jb20+LCAia3RyYXlub3JAcmVkaGF0LmNvbSIN Cj4gPiA+IDxrdHJheW5vckByZWRoYXQuY29tPiwgRGFycmVsbCBCYWxsIDxkYmFsbEB2bXdhcmUu Y29tPiwNCj4gPiA+ICJkZXZAb3BlbnZzd2l0Y2gub3JnIiA8ZGV2QG9wZW52c3dpdGNoLm9yZz4N Cj4gPiA+IFN1YmplY3Q6IFJlOiBbb3ZzLWRldl0gW1BBVENIIHYxXSBuZXRkZXYtZHBkazogSW1w bGVtZW50IFRDUC9VRFAgVFgNCj4gPiA+IGNrc3VtIGluIG92cy1kcGRrIHNpZGUNCj4gPiA+DQo+ ID4gPiBIaSBMb2Z0dXMsDQo+ID4gPiAgICBJIGhhZCBzdWJtaXR0ZWQgYSBuZXcgdmVyc2lvbiwg cGxlYXNlIHNlZQ0KPiA+ID4gaHR0cHM6Ly9wYXRjaHdvcmsub3psYWJzLm9yZy9wYXRjaC84MDIw NzAvDQo+ID4gPiAgICBJdCBtb3ZlIHRoZSBja3N1bSB0byB2aG9zdCByZWNlaXZlIHNpZGUuDQo+ ID4gPiBUaGFua3MNCj4gPiA+IFpoZW55dSBHYW8NCj4gPiA+DQo+ID4gPiAyMDE3LTA4LTEwIDEy OjM1IEdNVCswODowMCBHYW8gWmhlbnl1IDxzeXN1Z2Fvemhlbnl1QGdtYWlsLmNvbT46DQo+ID4g PiBJIHNlZSwgZm9yIGZsb3dzIGluIHBoeS1waHkgc2V0dXAsIHRoZXkgc2hvdWxkIG5vdCBiZSBj YWxjdWxhdGUgY2tzdW0uDQo+ID4gPiBJIHdpbGwgcmV2aXNlIG15IHBhdGNoIHRvIGRvIHRoZSBj a3N1bSBmb3Igdmhvc3QgcG9ydCBvbmx5LiBJIHdpbGwNCj4gPiA+IHNlbmQNCj4gPiBhIG5ldw0K PiA+ID4gcGF0Y2ggbmV4dCB3ZWVrLg0KPiA+ID4NCj4gPiA+IFRoYW5rcw0KPiA+ID4gWmhlbnl1 IEdhbw0KPiA+ID4NCj4gPiA+IDIwMTctMDgtMDggMTc6NTMgR01UKzA4OjAwIExvZnR1cywgQ2lh cmEgPGNpYXJhLmxvZnR1c0BpbnRlbC5jb20+Og0KPiA+ID4gPg0KPiA+ID4gPiBIaSBMb2Z0dXMs DQo+ID4gPiA+DQo+ID4gPiA+IFRoYW5rcyBmb3IgdGVzdGluZyBhbmQgdGhlIGNvbW1lbnRzIQ0K PiA+ID4gPiBDYW4geW91IHNob3cgbW9yZSBkZXRhaWxzIGFib3V0IHlvdXIgcGh5LXZtLXBoeSxw aHktcGh5IHNldHVwIGFuZA0KPiA+ID4gPiB0ZXN0aW5nIHN0ZXBzPyBUaGVuIEkgY2FuIHJlcHJv ZHVjZSBpdCB0byBzZWUgaWYgSSBjYW4gc29sdmUgdGhpcw0KPiA+ID4gPiBwcHMNCj4gPiBwcm9i bGVtLg0KPiA+ID4NCj4gPiA+IFlvdSdyZSB3ZWxjb21lLiBJIGZvcmdvdCB0byBtZW50aW9uIG15 IHRlc3RzIHdlcmUgd2l0aCA2NEIgcGFja2V0cy4NCj4gPiA+DQo+ID4gPiBGb3IgcGh5LXBoeSB0 aGUgc2V0dXAgaXMgYSBzaW5nbGUgaG9zdCB3aXRoIDIgZHBkayBwaHlzaWNhbCBwb3J0cw0KPiA+ ID4gYW5kIDENCj4gPiBmbG93DQo+ID4gPiBydWxlIHBvcnQxIC0+IHBvcnQyLg0KPiA+ID4gU2Vl IGZpZ3VyZSAzIGhlcmU6DQo+ID4gPiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQt aWV0Zi1ibXdnLXZzd2l0Y2gtDQo+ID4gPiBvcG5mdi0wNCNzZWN0aW9uLTQNCj4gPiA+DQo+ID4g PiBGb3IgdGhlIHBoeS12bS1waHkgdGhlIHNldHVwIGlzIGEgc2luZ2xlIGhvc3Qgd2l0aCAyIGRw ZGsgcGh5c2ljYWwNCj4gPiA+IHBvcnRzDQo+ID4gYW5kIDINCj4gPiA+IHZob3N0dXNlciBwb3J0 cyB3aXRoIGZsb3cgcnVsZXM6DQo+ID4gPiBEcGRrMSAtPiB2aG9zdCAxICYgdmhvc3QyIC0+IGRw ZGsyDQo+ID4gPiBJUCBydWxlcyBhcmUgc2V0IHVwIGluIHRoZSBWTSB0byByb3V0ZSBwYWNrZXRz IGZyb20gdmhvc3QxIHRvIHZob3N0IDIuDQo+ID4gPiBTZWUgZmlndXJlIDQgaW4gdGhlIGxpbmsg YWJvdmUuDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBCVFcsIGhvdyBhYm91dCB0aHJvdWdocHV0 LCBkaWQgeW91IHNhdyBpbXByb3ZtZW50Pw0KPiA+ID4NCj4gPiA+IEJ5IHRocm91Z2hwdXQgaWYg eW91IG1lYW4gMCUgcGFja2V0IGxvc3MsIEkgZGlkIG5vdCB0ZXN0IHRoaXMuDQo+ID4gPg0KPiA+ ID4gVGhhbmtzLA0KPiA+ID4gQ2lhcmENCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IEkgd291bGQg bGlrZSB0byBpbXBsZW1lbnQgdmhvc3QtPnZob3N0IHBhcnQuDQo+ID4gPiA+DQo+ID4gPiA+IFRo YW5rcw0KPiA+ID4gPiBaaGVueXUgR2FvDQo+ID4gPiA+DQo+ID4gPiA+IDIwMTctMDgtMDQgMjI6 NTIgR01UKzA4OjAwIExvZnR1cywgQ2lhcmEgPGNpYXJhLmxvZnR1c0BpbnRlbC5jb20+Og0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gQ3VycmVudGx5LCB0aGUgZHBkay12aG9zdCBzaWRlIGluIG92cyBk b2Vzbid0IHN1cHBvcnQgdGNwL3VkcCB0eA0KPiA+IGNrc3VtLg0KPiA+ID4gPiA+IFNvIEw0IHBh Y2tldHMncyBja3N1bSB3ZXJlIGNhbGN1bGF0ZWQgaW4gVk0gc2lkZSBidXQgcGVyZm9ybWFuY2UN Cj4gPiA+ID4gPiBpcw0KPiA+IG5vdA0KPiA+ID4gPiA+IGdvb2QuDQo+ID4gPiA+ID4gSW1wbGVt ZW50aW5nIHRjcC91ZHAgdHggY2tzdW0gaW4gb3ZzLWRwZGsgc2lkZSBpbXByb3Zlcw0KPiA+ID4g PiA+IHRocm91Z2hwdXQNCj4gPiA+IGFuZA0KPiA+ID4gPiA+IG1ha2VzIHZpcnRpby1uZXQgZnJv bnRlbmQtZHJpdmVyIHN1cHBvcnQgTkVUSUZfRl9TRyBhcyB3ZWxsDQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBaaGVueXUgR2FvIDxzeXN1Z2Fvemhlbnl1QGdtYWlsLmNvbT4N Cj4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEhlcmUgaXMgc29tZSBwZXJmb3Jt YW5jZSBudW1iZXI6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBTZXR1cDoNCj4gPiA+ID4gPg0KPiA+ ID4gPiA+ICBxcGVyZiBjbGllbnQNCj4gPiA+ID4gPiArLS0tLS0tLS0tKw0KPiA+ID4gPiA+IHwg ICBWTSAgICB8DQo+ID4gPiA+ID4gKy0tLS0tLS0tLSsNCj4gPiA+ID4gPiAgICAgIHwNCj4gPiA+ ID4gPiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHFwZXJmIHNlcnZlcg0KPiA+ID4g PiA+ICstLS0tLS0tLS0tLS0tLSsgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0rDQo+ID4gPiA+ ID4gfCB2c3dpdGNoK2RwZGsgfCAgICAgICAgICAgICAgfCBiYXJlLW1ldGFsIHwNCj4gPiA+ID4g PiArLS0tLS0tLS0tLS0tLS0rICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tKw0KPiA+ID4gPiA+ ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiA+ID4gPiAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ID4gPiA+ID4gICAgICAgcE5pYy0tLS0t LS0tLVBoeXNpY2FsU3dpdGNoLS0tLQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gZG8gY2tzdW0gaW4g b3ZzLWRwZGs6IEFwcGxpZWQgdGhpcyBwYXRjaCBhbmQgZXhlY3V0ZSAnZXRodG9vbCAtSw0KPiA+ IGV0aDAgdHgNCj4gPiA+ID4gb24nDQo+ID4gPiA+ID4gaW4gVk0gc2lkZS4NCj4gPiA+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgSXQgb2ZmbG9hZCBja3N1bSBqb2IgdG8gb3ZzLWRwZGsgc2lk ZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IGRvIGNrc3VtIGluIFZNOiBBcHBsaWVkIHRoaXMgcGF0 Y2ggYW5kIGV4ZWN1dGUgJ2V0aHRvb2wgLUsgZXRoMA0KPiA+ID4gPiA+IHR4DQo+ID4gb2ZmJyBp bg0KPiA+ID4gPiBWTQ0KPiA+ID4gPiA+IHNpZGUuDQo+ID4gPiA+ID4gICAgICAgICAgICAgICAg IFZNIGNhbGN1bGF0ZSBja3N1bSBmb3IgdGNwL3VkcCBwYWNrZXRzLg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gV2UgY2FuIHNlZSBodWdlIGltcHJvdm1lbnQgaW4gVENQIHRocm91Z2hwdXQgaWYgd2Ug bGV2ZXJhZ2UNCj4gPiA+ID4gPiBvdnMtZHBkayBja3N1bS4NCj4gPiA+ID4gSGkgWmhlbnl1LA0K PiA+ID4gPg0KPiA+ID4gPiBUaGFua3MgZm9yIHRoZSBwYXRjaC4gSSB0ZXN0ZWQgc29tZSBhbHRl cm5hdGl2ZSB1c2UgY2FzZXMgYW5kDQo+ID4gPiB1bmZvcnR1bmF0ZWx5IEkNCj4gPiA+ID4gc2Vl IGEgZGVncmFkYXRpb24gZm9yIHBoeS1waHkgYW5kIHBoeS12bS1waHkgdG9wb2xvZ2llcy4NCj4g PiA+ID4gSGVyZSBhcmUgbXkgcmVzdWx0czoNCj4gPiA+ID4NCj4gPiA+ID4gcGh5LXZtLXBoeToN Cj4gPiA+ID4gd2l0aG91dCBwYXRjaDogMC44NzFNcHBzDQo+ID4gPiA+IHdpdGggcGF0Y2ggKG9m ZmxvYWQ9b24pOiAwLjg3N01wcHMgd2l0aCBwYXRjaCAob2ZmbG9hZD1vZmYpOg0KPiA+ID4gPiAw Ljg5MU1wcHMNCj4gPiA+ID4NCj4gPiA+ID4gcGh5LXBoeToNCj4gPiA+ID4gd2l0aG91dCBwYXRj aDogMTMuNTgxTXBwcw0KPiA+ID4gPiB3aXRoIHBhdGNoOiAxMy4wNTVNcHBzDQo+ID4gPiA+DQo+ ID4gPiA+IFRoZSBoYWxmIGEgbWlsbGlvbiBwcHMgZHJvcCBmb3IgdGhlIHNlY29uZCB0ZXN0IGNh c2UgaXMgY29uY2VybmluZw0KPiA+ID4gPiB0bw0KPiA+IG1lIGJ1dA0KPiA+ID4gPiBub3Qgc3Vy cHJpc2luZyBzaW5jZSB3ZSdyZSBhZGRpbmcgZXh0cmEgY29tcGxleGl0eSB0bw0KPiA+IG5ldGRl dl9kcGRrX3NlbmQoKQ0KPiA+ID4gPiBDb3VsZCB0aGlzIGJlIGF2b2lkZWQ/IFdvdWxkIGl0IG1h a2Ugc2Vuc2UgdG8gcHV0IHRoaXMNCj4gPiA+ID4gZnVuY3Rpb25hbGl0eSBzb21ld2hlcmUgZWxz ZSBlZy4gdmhvc3QgcmVjZWl2ZT8NCj4gPiA+ID4NCj4gPiA+ID4gT24gYW5vdGhlciBub3RlIEkg aGF2ZSBhIGdlbmVyYWwgY29uY2Vybi4gSSB1bmRlcnN0YW5kIHNpbWlsYXINCj4gPiBmdW5jdGlv bmFsaXR5DQo+ID4gPiA+IGlzIHByZXNlbnQgaW4gdGhlIERQREsgdmhvc3Qgc2FtcGxlIGFwcC4g SSB3b25kZXIgaWYgaXQgd291bGQgYmUNCj4gPiBmZWFzaWJsZQ0KPiA+ID4gZm9yDQo+ID4gPiA+ IHRoaXMgdG8gYmUgaW1wbGVtZW50ZWQgaW4gdGhlIERQREsgdmhvc3QgbGlicmFyeSBhbmQgbGV2 ZXJhZ2VkDQo+ID4gPiA+IGhlcmUsDQo+ID4gPiByYXRoZXINCj4gPiA+ID4gdGhhbiBoYXZpbmcg dHdvIGltcGxlbWVudGF0aW9ucyBpbiB0d28gc2VwYXJhdGUgY29kZSBiYXNlcy4NCj4gPiA+ID4N Cj4gPiA+ID4gSSBoYXZlIHNvbWUgb3RoZXIgY29tbWVudHMgaW5saW5lLg0KPiA+ID4gPg0KPiA+ ID4gPiBUaGFua3MsDQo+ID4gPiA+IENpYXJhDQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiBbcm9vdEBsb2NhbGhvc3Qgfl0jIHFwZXJmIC10IDEwIC1vbyBtc2dfc2l6ZToxOjY0SzoqMg0K PiA+ID4gPiA+IGhvc3QtcXBlcmYtDQo+ID4gPiBzZXJ2ZXIwMQ0KPiA+ID4gPiA+IHRjcF9idyB0 Y3BfbGF0IHVkcF9idyB1ZHBfbGF0DQo+ID4gPiA+ID4gICBkbyBja3N1bSBpbiBvdnMtZHBkayAg ICAgICAgICBkbyBja3N1bSBpbiBWTSAgICAgICAgICAgICB3aXRob3V0DQo+ID4gdGhpcyBwYXRj aA0KPiA+ID4gPiA+IHRjcF9idzoNCj4gPiA+ID4gPiAgICAgYncgID0gIDIuMDUgTUIvc2VjICAg ICAgICBidyAgPSAgMS45MiBNQi9zZWMgICAgICAgIGJ3ICA9ICAxLjk1DQo+ID4gTUIvc2VjDQo+ ID4gPiA+ID4gdGNwX2J3Og0KPiA+ID4gPiA+ICAgICBidyAgPSAgMy45IE1CL3NlYyAgICAgICAg IGJ3ICA9ICAzLjk5IE1CL3NlYyAgICAgICAgYncgID0gIDMuOTgNCj4gPiBNQi9zZWMNCj4gPiA+ ID4gPiB0Y3BfYnc6DQo+ID4gPiA+ID4gICAgIGJ3ICA9ICA4LjA5IE1CL3NlYyAgICAgICAgYncg ID0gIDcuODIgTUIvc2VjICAgICAgICBidyAgPSAgOC4xOQ0KPiA+IE1CL3NlYw0KPiA+ID4gPiA+ IHRjcF9idzoNCj4gPiA+ID4gPiAgICAgYncgID0gIDE0LjkgTUIvc2VjICAgICAgICBidyAgPSAg MTQuOCBNQi9zZWMgICAgICAgIGJ3ICA9ICAxNS43DQo+ID4gTUIvc2VjDQo+ID4gPiA+ID4gdGNw X2J3Og0KPiA+ID4gPiA+ICAgICBidyAgPSAgMjcuNyBNQi9zZWMgICAgICAgIGJ3ICA9ICAyOCBN Qi9zZWMgICAgICAgICAgYncgID0gIDI5LjcNCj4gPiBNQi9zZWMNCj4gPiA+ID4gPiB0Y3BfYnc6 DQo+ID4gPiA+ID4gICAgIGJ3ICA9ICA1MS4yIE1CL3NlYyAgICAgICAgYncgID0gIDUwLjkgTUIv c2VjICAgICAgICBidyAgPSAgNTQuOQ0KPiA+IE1CL3NlYw0KPiA+ID4gPiA+IHRjcF9idzoNCj4g PiA+ID4gPiAgICAgYncgID0gIDg2LjcgTUIvc2VjICAgICAgICBidyAgPSAgODYuOCBNQi9zZWMg ICAgICAgIGJ3ICA9ICA5NS4xDQo+ID4gTUIvc2VjDQo+ID4gPiA+ID4gdGNwX2J3Og0KPiA+ID4g PiA+ICAgICBidyAgPSAgMTQ5IE1CL3NlYyAgICAgICAgIGJ3ICA9ICAxNjAgTUIvc2VjICAgICAg ICAgYncgID0gIDE0OQ0KPiA+IE1CL3NlYw0KPiA+ID4gPiA+IHRjcF9idzoNCj4gPiA+ID4gPiAg ICAgYncgID0gIDIxMSBNQi9zZWMgICAgICAgICBidyAgPSAgMjA1IE1CL3NlYyAgICAgICAgIGJ3 ICA9ICAyMTYNCj4gPiBNQi9zZWMNCj4gPiA+ID4gPiB0Y3BfYnc6DQo+ID4gPiA+ID4gICAgIGJ3 ICA9ICAyNzEgTUIvc2VjICAgICAgICAgYncgID0gIDI1NCBNQi9zZWMgICAgICAgICBidyAgPSAg Mjc1DQo+ID4gTUIvc2VjDQo+ID4gPiA+ID4gdGNwX2J3Og0KPiA+ID4gPiA+ICAgICBidyAgPSAg MzI2IE1CL3NlYyAgICAgICAgIGJ3ICA9ICAzMDMgTUIvc2VjICAgICAgICAgYncgID0gIDMyMQ0K PiA+IE1CL3NlYw0KPiA+ID4gPiA+IHRjcF9idzoNCj4gPiA+ID4gPiAgICAgYncgID0gIDQwNyBN Qi9zZWMgICAgICAgICBidyAgPSAgMzU5IE1CL3NlYyAgICAgICAgIGJ3ICA9ICAzNjENCj4gPiBN Qi9zZWMNCj4gPiA+ID4gPiB0Y3BfYnc6DQo+ID4gPiA+ID4gICAgIGJ3ICA9ICA4MTYgTUIvc2Vj ICAgICAgICAgYncgID0gIDUxMiBNQi9zZWMgICAgICAgICBidyAgPSAgNDE5DQo+ID4gTUIvc2Vj DQo+ID4gPiA+ID4gdGNwX2J3Og0KPiA+ID4gPiA+ICAgICBidyAgPSAgODQwIE1CL3NlYyAgICAg ICAgIGJ3ICA9ICA3NTYgTUIvc2VjICAgICAgICAgYncgID0gIDQ1Nw0KPiA+IE1CL3NlYw0KPiA+ ID4gPiA+IHRjcF9idzoNCj4gPiA+ID4gPiAgICAgYncgID0gIDEuMDcgR0Ivc2VjICAgICAgICBi dyAgPSAgODgwIE1CL3NlYyAgICAgICAgIGJ3ICA9ICA0ODANCj4gPiBNQi9zZWMNCj4gPiA+ID4g PiB0Y3BfYnc6DQo+ID4gPiA+ID4gICAgIGJ3ICA9ICAxLjE3IEdCL3NlYyAgICAgICAgYncgID0g IDEuMDEgR0Ivc2VjICAgICAgICBidyAgPSAgNDg4DQo+ID4gTUIvc2VjDQo+ID4gPiA+ID4gdGNw X2J3Og0KPiA+ID4gPiA+ICAgICBidyAgPSAgMS4xNyBHQi9zZWMgICAgICAgIGJ3ICA9ICAxLjEx IEdCL3NlYyAgICAgICAgYncgID0gIDQ4Mw0KPiA+IE1CL3NlYw0KPiA+ID4gPiA+IHRjcF9sYXQ6 DQo+ID4gPiA+ID4gICAgIGxhdGVuY3kgID0gIDI5IHVzICAgICAgICAgbGF0ZW5jeSAgPSAgMjku MiB1cyAgICAgICBsYXRlbmN5ICA9DQo+ID4gMjkuNiB1cw0KPiA+ID4gPiA+IHRjcF9sYXQ6DQo+ ID4gPiA+ID4gICAgIGxhdGVuY3kgID0gIDI4LjkgdXMgICAgICAgbGF0ZW5jeSAgPSAgMjkuMyB1 cyAgICAgICBsYXRlbmN5ICA9DQo+ID4gMjkuNSB1cw0KPiA+ID4gPiA+IHRjcF9sYXQ6DQo+ID4g PiA+ID4gICAgIGxhdGVuY3kgID0gIDI5IHVzICAgICAgICAgbGF0ZW5jeSAgPSAgMjkuMyB1cyAg ICAgICBsYXRlbmN5ICA9DQo+ID4gMjkuNiB1cw0KPiA+ID4gPiA+IHRjcF9sYXQ6DQo+ID4gPiA+ ID4gICAgIGxhdGVuY3kgID0gIDI5IHVzICAgICAgICAgbGF0ZW5jeSAgPSAgMjkuNCB1cyAgICAg ICBsYXRlbmN5ICA9DQo+ID4gMjkuNSB1cw0KPiA+ID4gPiA+IHRjcF9sYXQ6DQo+ID4gPiA+ID4g ICAgIGxhdGVuY3kgID0gIDI5IHVzICAgICAgICAgbGF0ZW5jeSAgPSAgMjkuMiB1cyAgICAgICBs YXRlbmN5ICA9DQo+ID4gMjkuNiB1cw0KPiA+ID4gPiA+IHRjcF9sYXQ6DQo+ID4gPiA+ID4gICAg IGxhdGVuY3kgID0gIDI5LjEgdXMgICAgICAgbGF0ZW5jeSAgPSAgMjkuMyB1cyAgICAgICBsYXRl bmN5ICA9DQo+ID4gMjkuNyB1cw0KPiA+ID4gPiA+IHRjcF9sYXQ6DQo+ID4gPiA+ID4gICAgIGxh dGVuY3kgID0gIDI5LjQgdXMgICAgICAgbGF0ZW5jeSAgPSAgMjkuNiB1cyAgICAgICBsYXRlbmN5 ICA9DQo+ID4gMzAgdXMNCj4gPiA+ID4gPiB0Y3BfbGF0Og0KPiA+ID4gPiA+ICAgICBsYXRlbmN5 ICA9ICAyOS44IHVzICAgICAgIGxhdGVuY3kgID0gIDMwLjEgdXMgICAgICAgbGF0ZW5jeSAgPQ0K PiA+IDMwLjIgdXMNCj4gPiA+ID4gPiB0Y3BfbGF0Og0KPiA+ID4gPiA+ICAgICBsYXRlbmN5ICA9 ICAzMC45IHVzICAgICAgIGxhdGVuY3kgID0gIDMwLjkgdXMgICAgICAgbGF0ZW5jeSAgPQ0KPiA+ IDMxIHVzDQo+ID4gPiA+ID4gdGNwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0ZW5jeSAgPSAgNDYu OSB1cyAgICAgICBsYXRlbmN5ICA9ICA0Ni4yIHVzICAgICAgIGxhdGVuY3kgID0NCj4gPiAzMi4y IHVzDQo+ID4gPiA+ID4gdGNwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0ZW5jeSAgPSAgNTEuNSB1 cyAgICAgICBsYXRlbmN5ICA9ICA1Mi42IHVzICAgICAgIGxhdGVuY3kgID0NCj4gPiAzNC41IHVz DQo+ID4gPiA+ID4gdGNwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0ZW5jeSAgPSAgNDMuOSB1cyAg ICAgICBsYXRlbmN5ICA9ICA0My44IHVzICAgICAgIGxhdGVuY3kgID0NCj4gPiA0My42IHVzDQo+ ID4gPiA+ID4gdGNwX2xhdDoNCj4gPiA+ID4gPiAgICAgIGxhdGVuY3kgID0gIDQ3LjYgdXMgICAg ICBsYXRlbmN5ICA9ICA0OCB1cyAgICAgICAgIGxhdGVuY3kgID0NCj4gPiA0OC4xIHVzDQo+ID4g PiA+ID4gdGNwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0ZW5jeSAgPSAgNzcuNyB1cyAgICAgICBs YXRlbmN5ICA9ICA3OC44IHVzICAgICAgIGxhdGVuY3kgID0NCj4gPiA3OC44IHVzDQo+ID4gPiA+ ID4gdGNwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0ZW5jeSAgPSAgODIuOCB1cyAgICAgICBsYXRl bmN5ICA9ICA4Mi4zIHVzICAgICAgIGxhdGVuY3kgID0NCj4gPiAxMTYgdXMNCj4gPiA+ID4gPiB0 Y3BfbGF0Og0KPiA+ID4gPiA+ICAgICBsYXRlbmN5ICA9ICA5NC44IHVzICAgICAgIGxhdGVuY3kg ID0gIDk0LjIgdXMgICAgICAgbGF0ZW5jeSAgPQ0KPiA+IDEzNCB1cw0KPiA+ID4gPiA+IHRjcF9s YXQ6DQo+ID4gPiA+ID4gICAgIGxhdGVuY3kgID0gIDE2NyB1cyAgICAgICAgbGF0ZW5jeSAgPSAg MTk3IHVzICAgICAgICBsYXRlbmN5ICA9DQo+ID4gMTcyIHVzDQo+ID4gPiA+ID4gdWRwX2J3Og0K PiA+ID4gPiA+ICAgICBzZW5kX2J3ICA9ICA0MTggS0Ivc2VjICAgIHNlbmRfYncgID0gIDQxMyBL Qi9zZWMgICAgc2VuZF9idyAgPQ0KPiA+IDQwMw0KPiA+ID4gPiBLQi9zZWMNCj4gPiA+ID4gPiAg ICAgcmVjdl9idyAgPSAgNDEwIEtCL3NlYyAgICByZWN2X2J3ICA9ICA0MTIgS0Ivc2VjICAgIHJl Y3ZfYncgID0NCj4gPiA0MDANCj4gPiA+IEtCL3NlYw0KPiA+ID4gPiA+IHVkcF9idzoNCj4gPiA+ ID4gPiAgICAgc2VuZF9idyAgPSAgODMxIEtCL3NlYyAgICBzZW5kX2J3ICA9ICA4MjUgS0Ivc2Vj ICAgIHNlbmRfYncgID0NCj4gPiA4MTANCj4gPiA+ID4gS0Ivc2VjDQo+ID4gPiA+ID4gICAgIHJl Y3ZfYncgID0gIDgyOCBLQi9zZWMgICAgcmVjdl9idyAgPSAgODE2IEtCL3NlYyAgICByZWN2X2J3 ICA9DQo+ID4gODA3DQo+ID4gPiBLQi9zZWMNCj4gPiA+ID4gPiB1ZHBfYnc6DQo+ID4gPiA+ID4g ICAgIHNlbmRfYncgID0gIDEuNjcgTUIvc2VjICAgc2VuZF9idyAgPSAgMS42NSBNQi9zZWMgICBz ZW5kX2J3ICA9DQo+ID4gMS42Mw0KPiA+ID4gPiA+IE1CL3NlYw0KPiA+ID4gPiA+ICAgICByZWN2 X2J3ICA9ICAxLjY0IE1CL3NlYyAgIHJlY3ZfYncgID0gIDEuNjIgTUIvc2VjICAgcmVjdl9idyAg PQ0KPiA+IDEuNjMNCj4gPiA+ID4gPiBNQi9zZWMNCj4gPiA+ID4gPiB1ZHBfYnc6DQo+ID4gPiA+ ID4gICAgIHNlbmRfYncgID0gIDMuMzYgTUIvc2VjICAgc2VuZF9idyAgPSAgMy4yOSBNQi9zZWMg ICBzZW5kX2J3ICA9DQo+ID4gMy4yNg0KPiA+ID4gPiA+IE1CL3NlYw0KPiA+ID4gPiA+ICAgICBy ZWN2X2J3ICA9ICAzLjI5IE1CL3NlYyAgIHJlY3ZfYncgID0gIDMuMjUgTUIvc2VjICAgcmVjdl9i dyAgPQ0KPiA+IDIuODINCj4gPiA+ID4gPiBNQi9zZWMNCj4gPiA+ID4gPiB1ZHBfYnc6DQo+ID4g PiA+ID4gICAgIHNlbmRfYncgID0gIDYuNzIgTUIvc2VjICAgc2VuZF9idyAgPSAgNi42MSBNQi9z ZWMgICBzZW5kX2J3ICA9DQo+ID4gNi40NQ0KPiA+ID4gPiA+IE1CL3NlYw0KPiA+ID4gPiA+ICAg ICByZWN2X2J3ICA9ICA2LjU0IE1CL3NlYyAgIHJlY3ZfYncgID0gIDYuNTkgTUIvc2VjICAgcmVj dl9idyAgPQ0KPiA+IDYuNDUNCj4gPiA+ID4gPiBNQi9zZWMNCj4gPiA+ID4gPiB1ZHBfYnc6DQo+ ID4gPiA+ID4gICAgIHNlbmRfYncgID0gIDEzLjQgTUIvc2VjICAgc2VuZF9idyAgPSAgMTMuMiBN Qi9zZWMgICBzZW5kX2J3ICA9DQo+ID4gMTMNCj4gPiA+ID4gPiBNQi9zZWMNCj4gPiA+ID4gPiAg ICAgcmVjdl9idyAgPSAgMTMuMSBNQi9zZWMgICByZWN2X2J3ICA9ICAxMy4xIE1CL3NlYyAgIHJl Y3ZfYncgID0NCj4gPiAxMw0KPiA+ID4gPiBNQi9zZWMNCj4gPiA+ID4gPiB1ZHBfYnc6DQo+ID4g PiA+ID4gICAgIHNlbmRfYncgID0gIDI2LjggTUIvc2VjICAgc2VuZF9idyAgPSAgMjYuNCBNQi9z ZWMgICBzZW5kX2J3ICA9DQo+ID4gMjUuOQ0KPiA+ID4gPiA+IE1CL3NlYw0KPiA+ID4gPiA+ICAg ICByZWN2X2J3ICA9ICAyNi40IE1CL3NlYyAgIHJlY3ZfYncgID0gIDI2LjIgTUIvc2VjICAgcmVj dl9idyAgPQ0KPiA+IDI1LjcNCj4gPiA+ID4gPiBNQi9zZWMNCj4gPiA+ID4gPiB1ZHBfYnc6DQo+ ID4gPiA+ID4gICAgIHNlbmRfYncgID0gIDUzLjQgTUIvc2VjICAgc2VuZF9idyAgPSAgNTIuNSBN Qi9zZWMgICBzZW5kX2J3ICA9DQo+ID4gICA1Mg0KPiA+ID4gPiA+IE1CL3NlYw0KPiA+ID4gPiA+ ICAgICByZWN2X2J3ICA9ICA0OC40IE1CL3NlYyAgIHJlY3ZfYncgID0gIDUxLjggTUIvc2VjICAg cmVjdl9idyAgPQ0KPiA+IDUxLjINCj4gPiA+ID4gPiBNQi9zZWMNCj4gPiA+ID4gPiB1ZHBfYnc6 DQo+ID4gPiA+ID4gICAgIHNlbmRfYncgID0gICAxMDYgTUIvc2VjICAgc2VuZF9idyAgPSAgIDEw NCBNQi9zZWMgICBzZW5kX2J3ICA9DQo+ID4gMTAzDQo+ID4gPiA+ID4gTUIvc2VjDQo+ID4gPiA+ ID4gICAgIHJlY3ZfYncgID0gIDk4LjkgTUIvc2VjICAgcmVjdl9idyAgPSAgOTMuMiBNQi9zZWMg ICByZWN2X2J3ICA9DQo+ID4gMTAwDQo+ID4gPiA+IE1CL3NlYw0KPiA+ID4gPiA+IHVkcF9idzoN Cj4gPiA+ID4gPiAgICAgc2VuZF9idyAgPSAgMjEzIE1CL3NlYyAgICBzZW5kX2J3ICA9ICAyMDYg TUIvc2VjICAgIHNlbmRfYncgID0NCj4gPiAyMDUNCj4gPiA+ID4gPiBNQi9zZWMNCj4gPiA+ID4g PiAgICAgcmVjdl9idyAgPSAgMTk3IE1CL3NlYyAgICByZWN2X2J3ICA9ICAxOTYgTUIvc2VjICAg IHJlY3ZfYncgID0NCj4gPiAyMDINCj4gPiA+ID4gTUIvc2VjDQo+ID4gPiA+ID4gdWRwX2J3Og0K PiA+ID4gPiA+ICAgICBzZW5kX2J3ICA9ICA0MTcgTUIvc2VjICAgIHNlbmRfYncgID0gIDQwNSBN Qi9zZWMgICAgc2VuZF9idyAgPQ0KPiA+IDQwMQ0KPiA+ID4gPiA+IE1CL3NlYw0KPiA+ID4gPiA+ ICAgICByZWN2X2J3ICA9ICA0MDAgTUIvc2VjICAgIHJlY3ZfYncgID0gIDMzMyBNQi9zZWMgICAg cmVjdl9idyAgPQ0KPiA+IDM1OA0KPiA+ID4gPiBNQi9zZWMNCj4gPiA+ID4gPiB1ZHBfYnc6DQo+ ID4gPiA+ID4gICAgIHNlbmRfYncgID0gIDU1NiBNQi9zZWMgICAgc2VuZF9idyAgPSAgNTUyIE1C L3NlYyAgICBzZW5kX2J3ICA9DQo+ID4gNTU3DQo+ID4gPiA+ID4gTUIvc2VjDQo+ID4gPiA+ID4g ICAgIHJlY3ZfYncgID0gIDM2MSBNQi9zZWMgICAgcmVjdl9idyAgPSAgMzY1IE1CL3NlYyAgICBy ZWN2X2J3ICA9DQo+ID4gMzYyDQo+ID4gPiA+IE1CL3NlYw0KPiA+ID4gPiA+IHVkcF9idzoNCj4g PiA+ID4gPiAgICAgc2VuZF9idyAgPSAgODY1IE1CL3NlYyAgICBzZW5kX2J3ICA9ICA4NjYgTUIv c2VjICAgIHNlbmRfYncgID0NCj4gPiA4NjMNCj4gPiA+ID4gPiBNQi9zZWMNCj4gPiA+ID4gPiAg ICAgcmVjdl9idyAgPSAgNTY0IE1CL3NlYyAgICByZWN2X2J3ICA9ICA1NzMgTUIvc2VjICAgIHJl Y3ZfYncgID0NCj4gPiA1ODQNCj4gPiA+ID4gTUIvc2VjDQo+ID4gPiA+ID4gdWRwX2J3Og0KPiA+ ID4gPiA+ICAgICBzZW5kX2J3ICA9ICAxLjA1IEdCL3NlYyAgIHNlbmRfYncgID0gIDEuMDkgR0Iv c2VjICAgc2VuZF9idyAgPQ0KPiA+IDEuMDgNCj4gPiA+ID4gPiBHQi9zZWMNCj4gPiA+ID4gPiAg ICAgcmVjdl9idyAgPSAgIDc4OSBNQi9zZWMgICByZWN2X2J3ICA9ICAgNzMyIE1CL3NlYyAgIHJl Y3ZfYncgID0NCj4gPiAgNzkzDQo+ID4gPiA+ID4gTUIvc2VjDQo+ID4gPiA+ID4gdWRwX2J3Og0K PiA+ID4gPiA+ICAgICBzZW5kX2J3ICA9ICAxLjE4IEdCL3NlYyAgIHNlbmRfYncgID0gIDEuMjMg R0Ivc2VjICAgc2VuZF9idyAgPQ0KPiA+IDEuMTkNCj4gPiA+ID4gPiBHQi9zZWMNCj4gPiA+ID4g PiAgICAgcmVjdl9idyAgPSAgIDY1OCBNQi9zZWMgICByZWN2X2J3ICA9ICAgNzg4IE1CL3NlYyAg IHJlY3ZfYncgID0NCj4gPiAgNjczDQo+ID4gPiA+ID4gTUIvc2VjDQo+ID4gPiA+ID4gdWRwX2J3 Og0KPiA+ID4gPiA+ICAgICBzZW5kX2J3ICA9ICAxLjMgR0Ivc2VjICAgIHNlbmRfYncgID0gIDEu MyBHQi9zZWMgICAgc2VuZF9idyAgPQ0KPiA+IDEuMw0KPiA+ID4gPiBHQi9zZWMNCj4gPiA+ID4g PiAgICAgcmVjdl9idyAgPSAgNjU5IE1CL3NlYyAgICByZWN2X2J3ICA9ICA3NjMgTUIvc2VjICAg IHJlY3ZfYncgID0NCj4gPiA3NjINCj4gPiA+ID4gTUIvc2VjDQo+ID4gPiA+ID4gdWRwX2J3Og0K PiA+ID4gPiA+ICAgICBzZW5kX2J3ICA9ICAwIGJ5dGVzL3NlYyAgIHNlbmRfYncgID0gIDAgYnl0 ZXMvc2VjICAgc2VuZF9idyAgPSAgMA0KPiA+ID4gPiA+IGJ5dGVzL3NlYw0KPiA+ID4gPiA+ICAg ICByZWN2X2J3ICA9ICAwIGJ5dGVzL3NlYyAgIHJlY3ZfYncgID0gIDAgYnl0ZXMvc2VjICAgcmVj dl9idyAgPSAgMA0KPiA+ID4gYnl0ZXMvc2VjDQo+ID4gPiA+ID4gdWRwX2xhdDoNCj4gPiA+ID4g PiAgICAgbGF0ZW5jeSAgPSAgMjYuNyB1cyAgICAgICBsYXRlbmN5ICA9ICAyNi41IHVzICAgICAg IGxhdGVuY3kgID0NCj4gPiAyNi40IHVzDQo+ID4gPiA+ID4gdWRwX2xhdDoNCj4gPiA+ID4gPiAg ICAgbGF0ZW5jeSAgPSAgMjYuNyB1cyAgICAgICBsYXRlbmN5ICA9ICAyNi41IHVzICAgICAgIGxh dGVuY3kgID0NCj4gPiAyNi4zIHVzDQo+ID4gPiA+ID4gdWRwX2xhdDoNCj4gPiA+ID4gPiAgICAg bGF0ZW5jeSAgPSAgMjYuNyB1cyAgICAgICBsYXRlbmN5ICA9ICAyNi43IHVzICAgICAgIGxhdGVu Y3kgID0NCj4gPiAyNi4zIHVzDQo+ID4gPiA+ID4gdWRwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0 ZW5jeSAgPSAgMjYuNyB1cyAgICAgICBsYXRlbmN5ICA9ICAyNi42IHVzICAgICAgIGxhdGVuY3kg ID0NCj4gPiAyNi4zIHVzDQo+ID4gPiA+ID4gdWRwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0ZW5j eSAgPSAgMjYuNyB1cyAgICAgICBsYXRlbmN5ICA9ICAyNi43IHVzICAgICAgIGxhdGVuY3kgID0N Cj4gPiAyNi43IHVzDQo+ID4gPiA+ID4gdWRwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0ZW5jeSAg PSAgMjcgdXMgICAgICAgICBsYXRlbmN5ICA9ICAyNi43IHVzICAgICAgIGxhdGVuY3kgID0NCj4g PiAyNi42IHVzDQo+ID4gPiA+ID4gdWRwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0ZW5jeSAgPSAg MjcgdXMgICAgICAgICBsYXRlbmN5ICA9ICAyNi45IHVzICAgICAgIGxhdGVuY3kgID0NCj4gPiAy Ni43IHVzDQo+ID4gPiA+ID4gdWRwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0ZW5jeSAgPSAgMjcu NiB1cyAgICAgICBsYXRlbmN5ICA9ICAyNy40IHVzICAgICAgIGxhdGVuY3kgID0NCj4gPiAyNy4z IHVzDQo+ID4gPiA+ID4gdWRwX2xhdDoNCj4gPiA+ID4gPiAgICAgbGF0ZW5jeSAgPSAgMjguMSB1 cyAgICAgICBsYXRlbmN5ICA9ICAyOCB1cyAgICAgICAgIGxhdGVuY3kgID0NCj4gPiAyOCB1cw0K PiA+ID4gPiA+IHVkcF9sYXQ6DQo+ID4gPiA+ID4gICAgICBsYXRlbmN5ICA9ICAyOS40IHVzICAg ICAgbGF0ZW5jeSAgPSAgMjkuMiB1cyAgICAgICBsYXRlbmN5ICA9DQo+ID4gMjkuMiB1cw0KPiA+ ID4gPiA+IHVkcF9sYXQ6DQo+ID4gPiA+ID4gICAgIGxhdGVuY3kgID0gIDMxIHVzICAgICAgICAg bGF0ZW5jeSAgPSAgMzEgdXMgICAgICAgICBsYXRlbmN5ICA9DQo+ID4gMzAuOCB1cw0KPiA+ID4g PiA+IHVkcF9sYXQ6DQo+ID4gPiA+ID4gICAgIGxhdGVuY3kgID0gIDQxLjQgdXMgICAgICAgbGF0 ZW5jeSAgPSAgNDEuNCB1cyAgICAgICBsYXRlbmN5ICA9DQo+ID4gNDEuMyB1cw0KPiA+ID4gPiA+ IHVkcF9sYXQ6DQo+ID4gPiA+ID4gICAgIGxhdGVuY3kgID0gIDQxLjYgdXMgICAgICAgbGF0ZW5j eSAgPSAgNDEuNSB1cyAgICAgICBsYXRlbmN5ICA9DQo+ID4gNDEuNSB1cw0KPiA+ID4gPiA+IHVk cF9sYXQ6DQo+ID4gPiA+ID4gICAgIGxhdGVuY3kgID0gIDY0LjkgdXMgICAgICAgbGF0ZW5jeSAg PSAgNjUgdXMgICAgICAgICBsYXRlbmN5ICA9DQo+ID4gNjUgdXMNCj4gPiA+ID4gPiB1ZHBfbGF0 Og0KPiA+ID4gPiA+ICAgICBsYXRlbmN5ICA9ICA3Mi4zIHVzICAgICAgIGxhdGVuY3kgID0gIDcy IHVzICAgICAgICAgbGF0ZW5jeSAgPQ0KPiA+IDcyIHVzDQo+ID4gPiA+ID4gdWRwX2xhdDoNCj4g PiA+ID4gPiAgICAgbGF0ZW5jeSAgPSAgMTIxIHVzICAgICAgICBsYXRlbmN5ICA9ICAxMjIgdXMg ICAgICAgIGxhdGVuY3kgID0NCj4gPiAxMjIgdXMNCj4gPiA+ID4gPiB1ZHBfbGF0Og0KPiA+ID4g PiA+ICAgICBsYXRlbmN5ICA9ICAwIG5zICAgICAgICAgIGxhdGVuY3kgID0gIDAgbnMgICAgICAg ICAgbGF0ZW5jeSAgPQ0KPiA+IDAgbnMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g IGxpYi9uZXRkZXYtZHBkay5jIHwgODQNCj4gPiA+ID4gPg0KPiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tDQo+ID4gPiA+ID4gIDEgZmlsZSBj aGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9uZXRkZXYtZHBkay5jIGIvbGliL25ldGRldi1kcGRrLmMg aW5kZXgNCj4gPiA+ID4gPiBlYTE3Yjk3Li5kMjdkNjE1IDEwMDY0NA0KPiA+ID4gPiA+IC0tLSBh L2xpYi9uZXRkZXYtZHBkay5jDQo+ID4gPiA+ID4gKysrIGIvbGliL25ldGRldi1kcGRrLmMNCj4g PiA+ID4gPiBAQCAtMjgsNiArMjgsNyBAQA0KPiA+ID4gPiA+ICAjaW5jbHVkZSA8cnRlX2Vycm5v Lmg+DQo+ID4gPiA+ID4gICNpbmNsdWRlIDxydGVfZXRoX3JpbmcuaD4NCj4gPiA+ID4gPiAgI2lu Y2x1ZGUgPHJ0ZV9ldGhkZXYuaD4NCj4gPiA+ID4gPiArI2luY2x1ZGUgPHJ0ZV9pcC5oPg0KPiA+ ID4gPiA+ICAjaW5jbHVkZSA8cnRlX21hbGxvYy5oPg0KPiA+ID4gPiA+ICAjaW5jbHVkZSA8cnRl X21idWYuaD4NCj4gPiA+ID4gPiAgI2luY2x1ZGUgPHJ0ZV9tZXRlci5oPg0KPiA+ID4gPiA+IEBA IC0xMzkyLDYgKzEzOTMsODQgQEAgbmV0ZGV2X2RwZGtfcnhxX2RlYWxsb2Moc3RydWN0DQo+IG5l dGRldl9yeHENCj4gPiA+ID4gPiAqcnhxKQ0KPiA+ID4gPiA+ICAgICAgcnRlX2ZyZWUocngpOw0K PiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArc3RhdGljIGlubGluZSB2b2lkDQo+ ID4gPiA+ID4gK25ldGRldl9yZWZpbGxfbDRfY2tzdW0oY29uc3QgY2hhciAqZGF0YSwgc3RydWN0 IGRwX3BhY2tldCAqcGt0LA0KPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4 X3QgbDRfcHJvdG8sIGJvb2wgaXNfaXB2NCkgew0KPiA+ID4gPiA+ICsgICAgdm9pZCAqbDNoZHIg PSAodm9pZCAqKShkYXRhICsgcGt0LT5sM19vZnMpOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiAr ICAgIGlmIChsNF9wcm90byA9PSBJUFBST1RPX1RDUCkgew0KPiA+ID4gPiA+ICsgICAgICAgIHN0 cnVjdCB0Y3BfaGVhZGVyICp0Y3BfaGRyID0gKHN0cnVjdCB0Y3BfaGVhZGVyICopKGRhdGENCj4g PiA+ID4gPiArICsNCj4gPiBwa3QtDQo+ID4gPiA+ID5sNF9vZnMpOw0KPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiArICAgICAgICBwa3QtPm1idWYubDJfbGVuID0gcGt0LT5sM19vZnM7DQo+ID4gPiA+ ID4gKyAgICAgICAgcGt0LT5tYnVmLmwzX2xlbiA9IHBrdC0+bDRfb2ZzIC0gcGt0LT5sM19vZnM7 DQo+ID4gPiA+ID4gKyAgICAgICAgdGNwX2hkci0+dGNwX2NzdW0gPSAwOw0KPiA+ID4gPiA+ICsg ICAgICAgIGlmIChpc19pcHY0KSB7DQo+ID4gPiA+ID4gKyAgICAgICAgICAgIHRjcF9oZHItPnRj cF9jc3VtID0gcnRlX2lwdjRfdWRwdGNwX2Nrc3VtKGwzaGRyLA0KPiA+IHRjcF9oZHIpOw0KPiA+ ID4gPiA+ICsgICAgICAgICAgICBwa3QtPm1idWYub2xfZmxhZ3MgXj0gUEtUX1RYX1RDUF9DS1NV TSB8IFBLVF9UWF9JUFY0Ow0KPiA+ID4gPiA+ICsgICAgICAgIH0gZWxzZSB7DQo+ID4gPiA+ID4g KyAgICAgICAgICAgIHBrdC0+bWJ1Zi5vbF9mbGFncyBePSBQS1RfVFhfVENQX0NLU1VNIHwgUEtU X1RYX0lQVjY7DQo+ID4gPiA+ID4gKyAgICAgICAgICAgIHRjcF9oZHItPnRjcF9jc3VtID0gcnRl X2lwdjZfdWRwdGNwX2Nrc3VtKGwzaGRyLA0KPiA+IHRjcF9oZHIpOw0KPiA+ID4gPiA+ICsgICAg ICAgIH0NCj4gPiA+ID4gPiArICAgIH0gZWxzZSBpZiAobDRfcHJvdG8gPT0gSVBQUk9UT19VRFAp IHsNCj4gPiA+ID4gPiArICAgICAgICBzdHJ1Y3QgdWRwX2hlYWRlciAqdWRwX2hkciA9IChzdHJ1 Y3QgdWRwX2hlYWRlciAqKShkYXRhDQo+ID4gPiA+ID4gKyArDQo+ID4gcGt0LQ0KPiA+ID4gPiA+ ID5sNF9vZnMpOw0KPiA+ID4gPiA+ICsgICAgICAgIC8qIGRvIG5vdCByZWNhbGN1bGF0ZSB1ZHAg Y2tzdW0gaWYgaXQgd2FzIDAgKi8NCj4gPiA+ID4gPiArICAgICAgICBpZiAodWRwX2hkci0+dWRw X2NzdW0gIT0gMCkgew0KPiA+ID4gPiA+ICsgICAgICAgICAgICBwa3QtPm1idWYubDJfbGVuID0g cGt0LT5sM19vZnM7DQo+ID4gPiA+ID4gKyAgICAgICAgICAgIHBrdC0+bWJ1Zi5sM19sZW4gPSBw a3QtPmw0X29mcyAtIHBrdC0+bDNfb2ZzOw0KPiA+ID4gPiA+ICsgICAgICAgICAgICB1ZHBfaGRy LT51ZHBfY3N1bSA9IDA7DQo+ID4gPiA+ID4gKyAgICAgICAgICAgIGlmIChpc19pcHY0KSB7DQo+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAvKmRvIG5vdCBjYWxjdWxhdGUgdWRwIGNrc3VtIGlm IGl0IHdhcyBhDQo+ID4gPiA+ID4gKyBmcmFnbWVudA0KPiA+IElQKi8NCj4gPiA+ID4gPiArICAg ICAgICAgICAgICAgIGlmIChJUF9JU19GUkFHTUVOVCgoKHN0cnVjdCBpcHY0X2hkciAqKWwzaGRy KS0+DQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJh Z21lbnRfb2Zmc2V0KSkgew0KPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgIHJldHVybjsN Cj4gPiA+ID4gPiArICAgICAgICAgICAgICAgIH0NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgICBwa3QtPm1idWYub2xfZmxhZ3MgXj0gUEtUX1RYX1VEUF9DS1NVTSB8DQo+ ID4gUEtUX1RYX0lQVjQ7DQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICB1ZHBfaGRyLT51ZHBf Y3N1bSA9DQo+ID4gPiA+ID4gKyBydGVfaXB2NF91ZHB0Y3BfY2tzdW0obDNoZHIsDQo+ID4gPiB1 ZHBfaGRyKTsNCj4gPiA+ID4gPiArICAgICAgICAgICAgfSBlbHNlIHsNCj4gPiA+ID4gPiArICAg ICAgICAgICAgICAgIHBrdC0+bWJ1Zi5vbF9mbGFncyBePSBQS1RfVFhfVURQX0NLU1VNIHwNCj4g PiBQS1RfVFhfSVBWNjsNCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgIHVkcF9oZHItPnVkcF9j c3VtID0NCj4gPiA+ID4gPiArIHJ0ZV9pcHY2X3VkcHRjcF9ja3N1bShsM2hkciwNCj4gPiA+IHVk cF9oZHIpOw0KPiA+ID4gPiA+ICsgICAgICAgICAgICB9DQo+ID4gPiA+ID4gKyAgICAgICAgfQ0K PiA+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtz dGF0aWMgaW5saW5lIHZvaWQNCj4gPiA+ID4gPiArbmV0ZGV2X3ByZXBhcmVfdHhfY3N1bShzdHJ1 Y3QgZHBfcGFja2V0ICoqcGt0cywgaW50IHBrdF9jbnQpIHsNCj4gPiA+ID4gPiArICAgIGludCBp Ow0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArICAgIGZvciAoaSA9IDA7IGkgPCBwa3RfY250OyBp KyspIHsNCj4gPiA+ID4gPiArICAgICAgICBvdnNfYmUxNiBkbF90eXBlOw0KPiA+ID4gPiA+ICsg ICAgICAgIHN0cnVjdCBkcF9wYWNrZXQgKnBrdCA9IChzdHJ1Y3QgZHBfcGFja2V0ICopcGt0c1tp XTsNCj4gPiA+ID4gPiArICAgICAgICBjb25zdCBjaGFyICpkYXRhID0gZHBfcGFja2V0X2RhdGEo cGt0KTsNCj4gPiA+ID4gPiArICAgICAgICB2b2lkICpsM2hkciA9IChjaGFyICopKGRhdGEgKyBw a3QtPmwzX29mcyk7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsgICAgICAgIGlmIChwa3QtPmw0 X29mcyA9PSBVSU5UMTZfTUFYIHx8IHBrdC0+bDNfb2ZzID09DQo+ID4gPiA+ID4gKyBVSU5UMTZf TUFYKQ0KPiA+IHsNCj4gPiA+ID4gPiArICAgICAgICAgICAgY29udGludWU7DQo+ID4gPiA+ID4g KyAgICAgICAgfQ0KPiA+ID4gPiA+ICsgICAgICAgIC8qIFRoaXMgdGFrZSBhIGFzc3VtcHRpb24g dGhhdCBpdCBzaG91bGQgYmUgYSB2aG9zdA0KPiA+ID4gPiA+ICsgcGFja2V0DQo+ID4gaWYgdGhp cw0KPiA+ID4gPiA+ICsgICAgICAgICAqIHBhY2tldCB3YXMgYWxsb2NhdGVkIGJ5IERQREsgcG9v bCBhbmQgdHJ5IHNlbmRpbmcgdG8NCj4gPiBwTmljLiAqLw0KPiA+ID4gPiA+ICsgICAgICAgIGlm IChwa3QtPnNvdXJjZSA9PSBEUEJVRl9EUERLICYmDQo+ID4gPiA+ID4gKyAgICAgICAgICAgICEo cGt0LT5tYnVmLm9sX2ZsYWdzICYgUEtUX1RYX0w0X01BU0spKSB7DQo+ID4gPiA+ID4gKyAgICAg ICAgICAgIC8vIERQREsgdmhvc3QtdXNlciB0YWdzIFBLVF9UWF9MNF9NQVNLIGlmIGEgTDQNCj4g PiA+ID4gPiArIHBhY2tldA0KPiA+IG5lZWQNCj4gPiA+ID4gY2tzdW0NCj4gPiA+ID4gPiArICAg ICAgICAgICAgY29udGludWU7DQo+ID4gPiA+ID4gKyAgICAgICAgfQ0KPiA+ID4gPiBUaGUgY29t bWVudHMgaGVyZSBjb3VsZCBiZSBmb3JtYXR0ZWQgYmV0dGVyLiBTdWdnZXN0IGNvbWJpbmluZw0K PiA+ID4gPiBib3RoDQo+ID4gPiBpbnRvDQo+ID4gPiA+IG9uZSBjb21tZW50IGJlZm9yZSB0aGUg J2lmJy4NCj4gPiA+ID4gTm90IHN1cmUgdGhlIHRlcm0gJ3BOSUMnIGlzIHdpZGVseSB1c2VkLiBT dWdnZXN0IHVzaW5nICdkcGRrIHBvcnQnLg0KPiA+ID4gPg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiArICAgICAgICBkbF90eXBlID0gKihvdnNfYmUxNiAqKShkYXRhICsgcGt0LT5sM19vZnMgLSAy KTsNCj4gPiA+ID4gPiArICAgICAgICBpZiAoZGxfdHlwZSA9PSBodG9ucyhFVEhfVFlQRV9JUCkp IHsNCj4gPiA+ID4gPiArICAgICAgICAgICAgbmV0ZGV2X3JlZmlsbF9sNF9ja3N1bShkYXRhLCBw a3QsDQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJ1 Y3QgaXB2NF9oZHINCj4gPiAqKWwzaGRyKS0+bmV4dF9wcm90b19pZCwNCj4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsNCj4gPiA+ID4gPiArICAgICAg ICB9IGVsc2UgaWYgKGRsX3R5cGUgPT0gaHRvbnMoRVRIX1RZUEVfSVBWNikpIHsNCj4gPiA+ID4g PiArICAgICAgICAgICAgbmV0ZGV2X3JlZmlsbF9sNF9ja3N1bShkYXRhLCBwa3QsDQo+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJ1Y3QgaXB2Nl9oZHIN Cj4gPiAqKWwzaGRyKS0+cHJvdG8sDQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmFsc2UpOw0KPiA+ID4gPiA+ICsgICAgICAgIH0NCj4gPiA+ID4gPiArICAg IH0NCj4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiAgLyogVHJpZXMgdG8gdHJh bnNtaXQgJ3BrdHMnIHRvIHR4cSAncWlkJyBvZiBkZXZpY2UgJ2RldicuDQo+ID4gPiA+ID4gVGFr ZXMNCj4gPiBvd25lcnNoaXAgb2YNCj4gPiA+ID4gPiAgICogJ3BrdHMnLCBldmVuIGluIGNhc2Ug b2YgZmFpbHVyZS4NCj4gPiA+ID4gPiAgICoNCj4gPiA+ID4gPiBAQCAtMTgzMyw2ICsxOTEyLDgg QEAgbmV0ZGV2X2RwZGtfc2VuZF9fKHN0cnVjdCBuZXRkZXZfZHBkaw0KPiA+ID4gKmRldiwNCj4g PiA+ID4gPiBpbnQgcWlkLA0KPiA+ID4gPiA+ICAgICAgICAgIHJldHVybjsNCj4gPiA+ID4gPiAg ICAgIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgICAgbmV0ZGV2X3ByZXBhcmVfdHhfY3N1bShi YXRjaC0+cGFja2V0cywgYmF0Y2gtPmNvdW50KTsNCj4gPiA+ID4NCj4gPiA+ID4gUHV0dGluZyB0 aGlzIGhlcmUgYXNzdW1lcyB3ZSBvbmx5IHByZXBhcmUgdGhlIGNzdW0gZm9yIHZob3N0IC0+DQo+ ID4gPiA+IGRwZGsgb3Igdmhvc3QgLT4gcmluZyBjYXNlcy4gV2hhdCBhYm91dCB2aG9zdCAtPiB2 aG9zdD8NCj4gPiA+ID4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gICAgICBpZiAoT1ZTX1VOTElL RUxZKGNvbmN1cnJlbnRfdHhxKSkgew0KPiA+ID4gPiA+ICAgICAgICAgIHFpZCA9IHFpZCAlIGRl di0+dXAubl90eHE7DQo+ID4gPiA+ID4gICAgICAgICAgcnRlX3NwaW5sb2NrX2xvY2soJmRldi0+ dHhfcVtxaWRdLnR4X2xvY2spOw0KPiA+ID4gPiA+IEBAIC0yNzQxLDggKzI4MjIsNyBAQCBuZXRk ZXZfZHBka192aG9zdF9jbGFzc19pbml0KHZvaWQpDQo+ID4gPiA+ID4gICAgICBpZiAob3ZzdGhy ZWFkX29uY2Vfc3RhcnQoJm9uY2UpKSB7DQo+ID4gPiA+ID4gICAgICAgICAgcnRlX3Zob3N0X2Ry aXZlcl9jYWxsYmFja19yZWdpc3RlcigmdmlydGlvX25ldF9kZXZpY2Vfb3BzKTsNCj4gPiA+ID4g PiAgICAgICAgICBydGVfdmhvc3RfZmVhdHVyZV9kaXNhYmxlKDFVTEwgPDwgVklSVElPX05FVF9G X0hPU1RfVFNPNA0KPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxVUxMIDw8IFZJUlRJT19ORVRfRl9IT1NUX1RTTzYNCj4gPiA+ID4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMVVMTCA8PCBWSVJUSU9fTkVUX0ZfQ1NVTSk7DQo+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDFVTEwgPDwNCj4gPiA+ ID4gPiArIFZJUlRJT19ORVRfRl9IT1NUX1RTTzYpOw0KPiA+ID4gPiA+ICAgICAgICAgIG92c190 aHJlYWRfY3JlYXRlKCJ2aG9zdF90aHJlYWQiLCBzdGFydF92aG9zdF9sb29wLA0KPiA+ID4gPiA+ IE5VTEwpOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgICAgICAgb3ZzdGhyZWFkX29uY2VfZG9u ZSgmb25jZSk7DQo+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiAxLjguMy4xDQo+ID4gPiA+ID4NCj4g PiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K PiA+ID4gPiA+IGRldiBtYWlsaW5nIGxpc3QNCj4gPiA+ID4gPiBkZXZAb3BlbnZzd2l0Y2gub3Jn DQo+ID4gPiA+ID4gaHR0cHM6Ly9tYWlsLm9wZW52c3dpdGNoLm9yZy9tYWlsbWFuL2xpc3RpbmZv L292cy1kZXYNCj4gPiA+DQo+ID4NCj4gPg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KPiBkZXYgbWFpbGluZyBsaXN0DQo+IGRldkBvcGVudnN3aXRj aC5vcmcNCj4gaHR0cHM6Ly9tYWlsLm9wZW52c3dpdGNoLm9yZy9tYWlsbWFuL2xpc3RpbmZvL292 cy1kZXYNCg==