From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id EEC02A0534 for ; Wed, 12 Feb 2020 12:19:43 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id ADE8E137D; Wed, 12 Feb 2020 12:19:43 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id B8FA5137D for ; Wed, 12 Feb 2020 12:19:41 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Feb 2020 03:19:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,428,1574150400"; d="scan'208";a="432292088" Received: from irsmsx153.ger.corp.intel.com ([163.33.192.75]) by fmsmga005.fm.intel.com with ESMTP; 12 Feb 2020 03:19:39 -0800 Received: from irsmsx103.ger.corp.intel.com ([169.254.3.146]) by IRSMSX153.ger.corp.intel.com ([169.254.9.148]) with mapi id 14.03.0439.000; Wed, 12 Feb 2020 11:19:38 +0000 From: "Dybkowski, AdamX" To: Kevin Traynor CC: dpdk stable Thread-Topic: patch 'test/crypto: fix missing operation status check' has been queued to stable release 19.11.1 Thread-Index: AQHV4M3Ib95ckEGOzk2elPPa7SPyu6gV3QcAgAAE1oCAAATtgIABeBNg Date: Wed, 12 Feb 2020 11:19:38 +0000 Message-ID: <522B1A062D56224ABC0C6BDBCD64D9D38CB1A0C4@IRSMSX103.ger.corp.intel.com> References: <20200211112216.3929-1-luca.boccassi@gmail.com> <20200211112216.3929-23-luca.boccassi@gmail.com> <522B1A062D56224ABC0C6BDBCD64D9D38CAA4D2E@IRSMSX103.ger.corp.intel.com> In-Reply-To: Accept-Language: pl-PL, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-stable] patch 'test/crypto: fix missing operation status check' has been queued to stable release 19.11.1 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" SGkgS2V2aW4uDQoNCkkgbWFkZSB0aGUgZml4IHRvIGJlIGFwcGxpZWQgb250byAiMTguMTEiIGJy YW5jaCBhdDoNCiAgQ2xvbmUgVVJMOiBnaXQ6Ly9kcGRrLm9yZy9kcGRrLXN0YWJsZQ0KICBMYXN0 IGNvbW1pdHM6IGh0dHBzOi8vZ2l0LmRwZGsub3JnL2RwZGstc3RhYmxlL2xvZy8/aD0xOC4xMQ0K SXMgdGhpcyB0aGUgY29ycmVjdCBvbmU/DQoNClRoZSBwYXRjaCBJIHNlbnQgKHRoYXQgdXBkYXRl cyB0aGUgZmlsZSBhcHAvdGVzdC90ZXN0X2NyeXB0b2Rldi5jIG9ubHkpIGNhbiBiZSBhcHBsaWVk IG9uIG15IHNpZGUgd2l0aCBubyBpc3N1ZXMuDQoNCkFkYW0NCg0KPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiBGcm9tOiBLZXZpbiBUcmF5bm9yIFttYWlsdG86a3RyYXlub3JAcmVkaGF0 LmNvbV0NCj4gU2VudDogVHVlc2RheSwgMTEgRmVicnVhcnksIDIwMjAgMTM6MTANCj4gVG86IEx1 Y2EgQm9jY2Fzc2kgPGx1Y2EuYm9jY2Fzc2lAZ21haWwuY29tPjsgRHlia293c2tpLCBBZGFtWA0K PiA8YWRhbXguZHlia293c2tpQGludGVsLmNvbT4NCj4gQ2M6IFRyYWhlLCBGaW9uYSA8ZmlvbmEu dHJhaGVAaW50ZWwuY29tPjsgQW5rdXIgRHdpdmVkaQ0KPiA8YWR3aXZlZGlAbWFydmVsbC5jb20+ OyBBbm9vYiBKb3NlcGggPGFub29iakBtYXJ2ZWxsLmNvbT47IGRwZGsNCj4gc3RhYmxlIDxzdGFi bGVAZHBkay5vcmc+DQo+IFN1YmplY3Q6IFJlOiBwYXRjaCAndGVzdC9jcnlwdG86IGZpeCBtaXNz aW5nIG9wZXJhdGlvbiBzdGF0dXMgY2hlY2snIGhhcyBiZWVuDQo+IHF1ZXVlZCB0byBzdGFibGUg cmVsZWFzZSAxOS4xMS4xDQo+IA0KPiBPbiAxMS8wMi8yMDIwIDExOjUyLCBMdWNhIEJvY2Nhc3Np IHdyb3RlOg0KPiA+IEhpLA0KPiA+DQo+ID4gVGhhdCdzIGEgcXVlc3Rpb24gZm9yIEtldmluLCB0 aGUgMTguMTEgbWFpbnRhaW5lci4NCj4gPg0KPiA+IE9uIFR1ZSwgMjAyMC0wMi0xMSBhdCAxMToz NyArMDAwMCwgRHlia293c2tpLCBBZGFtWCB3cm90ZToNCj4gPj4gSGkgTHVjYS4NCj4gPj4NCj4g Pj4gSSBvcmlnaW5hbGx5IHRhcmdldGVkIHRoaXMgcGF0Y2ggZm9yIERQREsgMTguMTEuIFRoYXQn cyBnb29kIGl0J2xsIGdvDQo+ID4+IGludG8gMTkuMTEsIHRvby4gQnV0IHdpbGwgaXQgYmUgYXBw bGllZCB0byAxOC4xMSBhcyB3ZWxsPw0KPiA+Pg0KPiANCj4gSSB0cmllZCB0byBhcHBseSBpdCBv biAxOC4xMSBicmFuY2ggbGFzdCB3ZWVrLCBidXQgaXQgZG9lc24ndCBhcHBseSBhbmQgSSBoYXZl IGENCj4gbm90ZSB0byBzYXkgdGhlcmUgd2FzIHRvbyBtdWNoIGNodXJuLiBTbywgeW91J2xsIG5l ZWQgdG8gc2VuZCBhIHJlYmFzZWQNCj4gdmVyc2lvbiBvbiAxOC4xMSBicmFuY2guIEl0IHdpbGwg YmUgb24gdGhlIGxpc3Qgb2YgY29tbWl0cyB0aGF0IGRpZG4ndCBhcHBseSBhbmQNCj4gYXNraW5n IGF1dGhvcnMgZm9yIHJlYmFzZSB0aGF0IEknbGwgc2VuZCBvdXQgYSBiaXQgbGF0ZXIuDQo+IA0K PiA+PiBBZGFtDQo+ID4+DQo+ID4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4g RnJvbToNCj4gPj4+IGx1Y2EuYm9jY2Fzc2lAZ21haWwuY29tDQo+ID4+PiAgW21haWx0bzoNCj4g Pj4+IGx1Y2EuYm9jY2Fzc2lAZ21haWwuY29tDQo+ID4+PiBdDQo+ID4+PiBTZW50OiBUdWVzZGF5 LCAxMSBGZWJydWFyeSwgMjAyMCAxMjoxOQ0KPiA+Pj4gVG86IER5Ymtvd3NraSwgQWRhbVggPA0K PiA+Pj4gYWRhbXguZHlia293c2tpQGludGVsLmNvbQ0KPiA+Pj4+DQo+ID4+PiBDYzogVHJhaGUs IEZpb25hIDwNCj4gPj4+IGZpb25hLnRyYWhlQGludGVsLmNvbQ0KPiA+Pj4+IDsgQW5rdXIgRHdp dmVkaQ0KPiA+Pj4gPA0KPiA+Pj4gYWR3aXZlZGlAbWFydmVsbC5jb20NCj4gPj4+PiA7IEFub29i IEpvc2VwaCA8DQo+ID4+PiBhbm9vYmpAbWFydmVsbC5jb20NCj4gPj4+PiA7IGRwZGsNCj4gPj4+ IHN0YWJsZSA8DQo+ID4+PiBzdGFibGVAZHBkay5vcmcNCj4gPj4+Pg0KPiA+Pj4gU3ViamVjdDog cGF0Y2ggJ3Rlc3QvY3J5cHRvOiBmaXggbWlzc2luZyBvcGVyYXRpb24gc3RhdHVzIGNoZWNrJw0K PiA+Pj4gaGFzIGJlZW4NCj4gPj4+IHF1ZXVlZCB0byBzdGFibGUgcmVsZWFzZSAxOS4xMS4xDQo+ ID4+Pg0KPiA+Pj4gSGksDQo+ID4+Pg0KPiA+Pj4gRllJLCB5b3VyIHBhdGNoIGhhcyBiZWVuIHF1 ZXVlZCB0byBzdGFibGUgcmVsZWFzZSAxOS4xMS4xDQo+ID4+Pg0KPiA+Pj4gTm90ZSBpdCBoYXNu J3QgYmVlbiBwdXNoZWQgdG8NCj4gPj4+IGh0dHA6Ly9kcGRrLm9yZy9icm93c2UvZHBkay1zdGFi bGUNCj4gPj4+ICB5ZXQuDQo+ID4+PiBJdCB3aWxsIGJlIHB1c2hlZCBpZiBJIGdldCBubyBvYmpl Y3Rpb25zIGJlZm9yZSAwMi8xMy8yMC4gU28gcGxlYXNlDQo+ID4+PiBzaG91dCBpZiBhbnlvbmUg aGFzIG9iamVjdGlvbnMuDQo+ID4+Pg0KPiA+Pj4gQWxzbyBub3RlIHRoYXQgYWZ0ZXIgdGhlIHBh dGNoIHRoZXJlJ3MgYSBkaWZmIG9mIHRoZSB1cHN0cmVhbSBjb21taXQNCj4gPj4+IHZzIHRoZSBw YXRjaCBhcHBsaWVkIHRvIHRoZSBicmFuY2guIFRoaXMgd2lsbCBpbmRpY2F0ZSBpZiB0aGVyZSB3 YXMNCj4gPj4+IGFueSByZWJhc2luZyBuZWVkZWQgdG8gYXBwbHkgdG8gdGhlIHN0YWJsZSBicmFu Y2guIElmIHRoZXJlIHdlcmUNCj4gPj4+IGNvZGUgY2hhbmdlcyBmb3IgcmViYXNpbmcNCj4gPj4+ IChpZTogbm90IG9ubHkgbWV0YWRhdGEgZGlmZnMpLCBwbGVhc2UgZG91YmxlIGNoZWNrIHRoYXQg dGhlIHJlYmFzZQ0KPiA+Pj4gd2FzIGNvcnJlY3RseSBkb25lLg0KPiA+Pj4NCj4gPj4+IFRoYW5r cy4NCj4gPj4+DQo+ID4+PiBMdWNhIEJvY2Nhc3NpDQo+ID4+Pg0KPiA+Pj4gLS0tDQo+ID4+PiBG cm9tIGNlODMwMjE3MmY5ZjhlMDY4MzNhNDlhYmY4YjI4M2E3MWIwN2RjM2IgTW9uIFNlcCAxNw0K PiAwMDowMDowMA0KPiA+Pj4gMjAwMQ0KPiA+Pj4gRnJvbTogQWRhbSBEeWJrb3dza2kgPA0KPiA+ Pj4gYWRhbXguZHlia293c2tpQGludGVsLmNvbQ0KPiA+Pj4+DQo+ID4+PiBEYXRlOiBGcmksIDIw IERlYyAyMDE5IDEzOjU4OjUyICswMTAwDQo+ID4+PiBTdWJqZWN0OiBbUEFUQ0hdIHRlc3QvY3J5 cHRvOiBmaXggbWlzc2luZyBvcGVyYXRpb24gc3RhdHVzIGNoZWNrDQo+ID4+Pg0KPiA+Pj4gWyB1 cHN0cmVhbSBjb21taXQgYjI2ZWYxYTExZjIxZWNkZTYzNTgyZWQ2ZGIyODFjOTNjZTlmYmYyMyBd DQo+ID4+Pg0KPiA+Pj4gVGhpcyBwYXRjaCBhZGRzIGNoZWNraW5nIG9mIHRoZSBzeW1tZXRyaWMg Y3J5cHRvIG9wZXJhdGlvbiBzdGF0dXMNCj4gPj4+IHRoYXQgd2FzDQo+ID4+PiBzaWxlbnRseSBz a2lwcGVkIGJlZm9yZS4gSXQgZml4ZXMgdGhlIHdpcmVsZXNzIGFsZ29yaXRobXMgc2Vzc2lvbg0K PiA+Pj4gY3JlYXRpb24NCj4gPj4+IChTTk9XM0csIEtBU1VNSSwgWlVDKSBhbmQgcGFzc2luZyBv ZiB0aGUgZGlnZXN0IGRhdGEgZm9yIHRoZQ0KPiA+Pj4gdmVyaWZpY2F0aW9uDQo+ID4+PiBieSBQ TUQuIEFsc28gZml4ZWQgdGhlIG1pc3NpbmcgYWFkIHBhZGRpbmcgaXNzdWUgcmV2ZWFsZWQgYWZ0 ZXIgb3ANCj4gPj4+IHN0YXR1cw0KPiA+Pj4gY2hlY2tpbmcgd2FzIGludHJvZHVjZWQuDQo+ID4+ Pg0KPiA+Pj4gRml4ZXM6IGMwZjg3ZWI1MjUyYiAoImNyeXB0b2RldjogY2hhbmdlIGJ1cnN0IEFQ SSB0byBiZSBjcnlwdG8gb3ANCj4gPj4+IG9yaWVudGVkIikNCj4gPj4+IEZpeGVzOiA3N2EyMTdh MTliYjcgKCJ0ZXN0L2NyeXB0bzogYWRkIEFFUy1DQ00gdGVzdHMiKQ0KPiA+Pj4NCj4gPj4+IFNp Z25lZC1vZmYtYnk6IEFkYW0gRHlia293c2tpIDwNCj4gPj4+IGFkYW14LmR5Ymtvd3NraUBpbnRl bC5jb20NCj4gPj4+Pg0KPiA+Pj4gQWNrZWQtYnk6IEZpb25hIFRyYWhlIDwNCj4gPj4+IGZpb25h LnRyYWhlQGludGVsLmNvbQ0KPiA+Pj4+DQo+ID4+PiBUZXN0ZWQtYnk6IEFua3VyIER3aXZlZGkg PA0KPiA+Pj4gYWR3aXZlZGlAbWFydmVsbC5jb20NCj4gPj4+Pg0KPiA+Pj4gUmV2aWV3ZWQtYnk6 IEFub29iIEpvc2VwaCA8DQo+ID4+PiBhbm9vYmpAbWFydmVsbC5jb20NCj4gPj4+Pg0KPiA+Pj4g LS0tDQo+ID4+PiAgYXBwL3Rlc3QvdGVzdF9jcnlwdG9kZXYuYyB8IDk2ICsrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLQ0KPiA+Pj4gLS0tLS0tDQo+ID4+PiAgMSBmaWxlIGNoYW5nZWQs IDUyIGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQ0KPiA+Pj4NCj4gPj4+IGRpZmYgLS1n aXQgYS9hcHAvdGVzdC90ZXN0X2NyeXB0b2Rldi5jIGIvYXBwL3Rlc3QvdGVzdF9jcnlwdG9kZXYu Yw0KPiA+Pj4gaW5kZXgNCj4gPj4+IDFiNTYxNDU2ZDcuLjc5Y2VkODA5ZGUgMTAwNjQ0DQo+ID4+ PiAtLS0gYS9hcHAvdGVzdC90ZXN0X2NyeXB0b2Rldi5jDQo+ID4+PiArKysgYi9hcHAvdGVzdC90 ZXN0X2NyeXB0b2Rldi5jDQo+ID4+PiBAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBzdHJ1Y3Qg cnRlX2NyeXB0b19vcCAqDQo+ID4+PiBwcm9jZXNzX2NyeXB0b19yZXF1ZXN0KHVpbnQ4X3QgZGV2 X2lkLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3ApICB7DQo+ID4+PiAgCWlmIChydGVfY3J5cHRv ZGV2X2VucXVldWVfYnVyc3QoZGV2X2lkLCAwLCAmb3AsIDEpICE9IDEpIHsNCj4gPj4+IC0JCXBy aW50ZigiRXJyb3Igc2VuZGluZyBwYWNrZXQgZm9yIGVuY3J5cHRpb24iKTsNCj4gPj4+ICsJCVJU RV9MT0coRVJSLCBVU0VSMSwgIkVycm9yIHNlbmRpbmcgcGFja2V0IGZvcg0KPiA+Pj4gZW5jcnlw dGlvblxuIik7DQo+ID4+PiAgCQlyZXR1cm4gTlVMTDsNCj4gPj4+ICAJfQ0KPiA+Pj4NCj4gPj4+ IEBAIC0xNTIsNiArMTUyLDExIEBAIHByb2Nlc3NfY3J5cHRvX3JlcXVlc3QodWludDhfdCBkZXZf aWQsIHN0cnVjdA0KPiA+Pj4gcnRlX2NyeXB0b19vcCAqb3ApDQo+ID4+PiAgCXdoaWxlIChydGVf Y3J5cHRvZGV2X2RlcXVldWVfYnVyc3QoZGV2X2lkLCAwLCAmb3AsIDEpID09IDApDQo+ID4+PiAg CQlydGVfcGF1c2UoKTsNCj4gPj4+DQo+ID4+PiArCWlmIChvcC0+c3RhdHVzICE9IFJURV9DUllQ VE9fT1BfU1RBVFVTX1NVQ0NFU1MpIHsNCj4gPj4+ICsJCVJURV9MT0coREVCVUcsIFVTRVIxLCAi T3BlcmF0aW9uIHN0YXR1cyAlZFxuIiwgb3AtDQo+ID4+Pj4gc3RhdHVzKTsNCj4gPj4+DQo+ID4+ PiArCQlyZXR1cm4gTlVMTDsNCj4gPj4+ICsJfQ0KPiA+Pj4gKw0KPiA+Pj4gIAlyZXR1cm4gb3A7 DQo+ID4+PiAgfQ0KPiA+Pj4NCj4gPj4+IEBAIC0yODIzLDkgKzI4MjgsMTggQEANCj4gPj4+IGNy ZWF0ZV93aXJlbGVzc19hbGdvX2F1dGhfY2lwaGVyX3Nlc3Npb24odWludDhfdCBkZXZfaWQsDQo+ ID4+PiAgCXV0X3BhcmFtcy0+c2VzcyA9IHJ0ZV9jcnlwdG9kZXZfc3ltX3Nlc3Npb25fY3JlYXRl KA0KPiA+Pj4gIAkJCXRzX3BhcmFtcy0+c2Vzc2lvbl9tcG9vbCk7DQo+ID4+Pg0KPiA+Pj4gLQlz dGF0dXMgPSBydGVfY3J5cHRvZGV2X3N5bV9zZXNzaW9uX2luaXQoZGV2X2lkLCB1dF9wYXJhbXMt DQo+ID4+Pj4gc2VzcywNCj4gPj4+IC0JCQkmdXRfcGFyYW1zLT5hdXRoX3hmb3JtLA0KPiA+Pj4g LQkJCXRzX3BhcmFtcy0+c2Vzc2lvbl9wcml2X21wb29sKTsNCj4gPj4+ICsJaWYgKGNpcGhlcl9v cCA9PSBSVEVfQ1JZUFRPX0NJUEhFUl9PUF9ERUNSWVBUKSB7DQo+ID4+PiArCQl1dF9wYXJhbXMt PmF1dGhfeGZvcm0ubmV4dCA9IE5VTEw7DQo+ID4+PiArCQl1dF9wYXJhbXMtPmNpcGhlcl94Zm9y bS5uZXh0ID0gJnV0X3BhcmFtcy0+YXV0aF94Zm9ybTsNCj4gPj4+ICsJCXN0YXR1cyA9IHJ0ZV9j cnlwdG9kZXZfc3ltX3Nlc3Npb25faW5pdChkZXZfaWQsDQo+ID4+PiB1dF9wYXJhbXMtDQo+ID4+ Pj4gc2VzcywNCj4gPj4+DQo+ID4+PiArCQkJCSZ1dF9wYXJhbXMtPmNpcGhlcl94Zm9ybSwNCj4g Pj4+ICsJCQkJdHNfcGFyYW1zLT5zZXNzaW9uX3ByaXZfbXBvb2wpOw0KPiA+Pj4gKw0KPiA+Pj4g Kwl9IGVsc2UNCj4gPj4+ICsJCXN0YXR1cyA9IHJ0ZV9jcnlwdG9kZXZfc3ltX3Nlc3Npb25faW5p dChkZXZfaWQsDQo+ID4+PiB1dF9wYXJhbXMtDQo+ID4+Pj4gc2VzcywNCj4gPj4+DQo+ID4+PiAr CQkJCSZ1dF9wYXJhbXMtPmF1dGhfeGZvcm0sDQo+ID4+PiArCQkJCXRzX3BhcmFtcy0+c2Vzc2lv bl9wcml2X21wb29sKTsNCj4gPj4+ICsNCj4gPj4+ICAJVEVTVF9BU1NFUlRfRVFVQUwoc3RhdHVz LCAwLCAic2Vzc2lvbiBpbml0IGZhaWxlZCIpOw0KPiA+Pj4gIAlURVNUX0FTU0VSVF9OT1RfTlVM TCh1dF9wYXJhbXMtPnNlc3MsICJTZXNzaW9uIGNyZWF0aW9uDQo+ID4+PiBmYWlsZWQiKTsNCj4g Pj4+DQo+ID4+PiBAQCAtMzAxOCwxMyArMzAzMiwxNCBAQA0KPiA+Pj4gY3JlYXRlX3dpcmVsZXNz X2FsZ29fY2lwaGVyX2hhc2hfb3BlcmF0aW9uKGNvbnN0IHVpbnQ4X3QNCj4gPj4+ICphdXRoX3Rh ZywgIH0NCj4gPj4+DQo+ID4+PiAgc3RhdGljIGludA0KPiA+Pj4gLWNyZWF0ZV93aXJlbGVzc19h bGdvX2F1dGhfY2lwaGVyX29wZXJhdGlvbih1bnNpZ25lZCBpbnQNCj4gPj4+IGF1dGhfdGFnX2xl biwNCj4gPj4+ICtjcmVhdGVfd2lyZWxlc3NfYWxnb19hdXRoX2NpcGhlcl9vcGVyYXRpb24oDQo+ ID4+PiArCQljb25zdCB1aW50OF90ICphdXRoX3RhZywgdW5zaWduZWQgaW50IGF1dGhfdGFnX2xl biwNCj4gPj4+ICAJCWNvbnN0IHVpbnQ4X3QgKmNpcGhlcl9pdiwgdWludDhfdCBjaXBoZXJfaXZf bGVuLA0KPiA+Pj4gIAkJY29uc3QgdWludDhfdCAqYXV0aF9pdiwgdWludDhfdCBhdXRoX2l2X2xl biwNCj4gPj4+ICAJCXVuc2lnbmVkIGludCBkYXRhX3BhZF9sZW4sDQo+ID4+PiAgCQl1bnNpZ25l ZCBpbnQgY2lwaGVyX2xlbiwgdW5zaWduZWQgaW50IGNpcGhlcl9vZmZzZXQsDQo+ID4+PiAgCQl1 bnNpZ25lZCBpbnQgYXV0aF9sZW4sIHVuc2lnbmVkIGludCBhdXRoX29mZnNldCwNCj4gPj4+IC0J CXVpbnQ4X3Qgb3BfbW9kZSwgdWludDhfdCBkb19zZ2wpDQo+ID4+PiArCQl1aW50OF90IG9wX21v ZGUsIHVpbnQ4X3QgZG9fc2dsLCB1aW50OF90IHZlcmlmeSkNCj4gPj4+ICB7DQo+ID4+PiAgCXN0 cnVjdCBjcnlwdG9fdGVzdHN1aXRlX3BhcmFtcyAqdHNfcGFyYW1zID0gJnRlc3RzdWl0ZV9wYXJh bXM7DQo+ID4+PiAgCXN0cnVjdCBjcnlwdG9fdW5pdHRlc3RfcGFyYW1zICp1dF9wYXJhbXMgPSAm dW5pdHRlc3RfcGFyYW1zOyBAQA0KPiA+Pj4gLTMwODEsNiArMzA5NiwxMCBAQA0KPiA+Pj4gY3Jl YXRlX3dpcmVsZXNzX2FsZ29fYXV0aF9jaXBoZXJfb3BlcmF0aW9uKHVuc2lnbmVkIGludA0KPiA+ Pj4gYXV0aF90YWdfbGVuLA0KPiA+Pj4gIAkJfQ0KPiA+Pj4gIAl9DQo+ID4+Pg0KPiA+Pj4gKwkv KiBDb3B5IGRpZ2VzdCBmb3IgdGhlIHZlcmlmaWNhdGlvbiAqLw0KPiA+Pj4gKwlpZiAodmVyaWZ5 KQ0KPiA+Pj4gKwkJbWVtY3B5KHN5bV9vcC0+YXV0aC5kaWdlc3QuZGF0YSwgYXV0aF90YWcsDQo+ ID4+PiBhdXRoX3RhZ19sZW4pOw0KPiA+Pj4gKw0KPiA+Pj4gIAkvKiBDb3B5IGNpcGhlciBhbmQg YXV0aCBJVnMgYXQgdGhlIGVuZCBvZiB0aGUgY3J5cHRvIG9wZXJhdGlvbg0KPiA+Pj4gKi8NCj4g Pj4+ICAJdWludDhfdCAqaXZfcHRyID0gcnRlX2NyeXB0b19vcF9jdG9kX29mZnNldCgNCj4gPj4+ ICAJCQl1dF9wYXJhbXMtPm9wLCB1aW50OF90ICosIElWX09GRlNFVCk7IEBADQo+ID4+PiAtNDY0 Myw3DQo+ID4+PiArNDY2Miw3IEBAIHRlc3Rfc25vdzNnX2F1dGhfY2lwaGVyKGNvbnN0IHN0cnVj dCBzbm93M2dfdGVzdF9kYXRhDQo+ID4+PiAqdGRhdGEsDQo+ID4+Pg0KPiA+Pj4gIAkvKiBDcmVh dGUgU05PVyAzRyBvcGVyYXRpb24gKi8NCj4gPj4+ICAJcmV0dmFsID0gY3JlYXRlX3dpcmVsZXNz X2FsZ29fYXV0aF9jaXBoZXJfb3BlcmF0aW9uKA0KPiA+Pj4gLQkJdGRhdGEtPmRpZ2VzdC5sZW4s DQo+ID4+PiArCQl0ZGF0YS0+ZGlnZXN0LmRhdGEsIHRkYXRhLT5kaWdlc3QubGVuLA0KPiA+Pj4g IAkJdGRhdGEtPmNpcGhlcl9pdi5kYXRhLCB0ZGF0YS0+Y2lwaGVyX2l2LmxlbiwNCj4gPj4+ICAJ CXRkYXRhLT5hdXRoX2l2LmRhdGEsIHRkYXRhLT5hdXRoX2l2LmxlbiwNCj4gPj4+ICAJCSh0ZGF0 YS0+ZGlnZXN0Lm9mZnNldF9ieXRlcyA9PSAwID8NCj4gPj4+IEBAIC00NjUzLDcgKzQ2NzIsNyBA QCB0ZXN0X3Nub3czZ19hdXRoX2NpcGhlcihjb25zdCBzdHJ1Y3QNCj4gPj4+IHNub3czZ190ZXN0 X2RhdGEgKnRkYXRhLA0KPiA+Pj4gIAkJdGRhdGEtPmNpcGhlci5vZmZzZXRfYml0cywNCj4gPj4+ ICAJCXRkYXRhLT52YWxpZEF1dGhMZW5JbkJpdHMubGVuLA0KPiA+Pj4gIAkJdGRhdGEtPmF1dGgu b2Zmc2V0X2JpdHMsDQo+ID4+PiAtCQlvcF9tb2RlLCAwKTsNCj4gPj4+ICsJCW9wX21vZGUsIDAs IHZlcmlmeSk7DQo+ID4+Pg0KPiA+Pj4gIAlpZiAocmV0dmFsIDwgMCkNCj4gPj4+ICAJCXJldHVy biByZXR2YWw7DQo+ID4+PiBAQCAtNDgxOSw3ICs0ODM4LDcgQEAgdGVzdF9zbm93M2dfYXV0aF9j aXBoZXJfc2dsKGNvbnN0IHN0cnVjdA0KPiA+Pj4gc25vdzNnX3Rlc3RfZGF0YSAqdGRhdGEsDQo+ ID4+Pg0KPiA+Pj4gIAkvKiBDcmVhdGUgU05PVyAzRyBvcGVyYXRpb24gKi8NCj4gPj4+ICAJcmV0 dmFsID0gY3JlYXRlX3dpcmVsZXNzX2FsZ29fYXV0aF9jaXBoZXJfb3BlcmF0aW9uKA0KPiA+Pj4g LQkJdGRhdGEtPmRpZ2VzdC5sZW4sDQo+ID4+PiArCQl0ZGF0YS0+ZGlnZXN0LmRhdGEsIHRkYXRh LT5kaWdlc3QubGVuLA0KPiA+Pj4gIAkJdGRhdGEtPmNpcGhlcl9pdi5kYXRhLCB0ZGF0YS0+Y2lw aGVyX2l2LmxlbiwNCj4gPj4+ICAJCXRkYXRhLT5hdXRoX2l2LmRhdGEsIHRkYXRhLT5hdXRoX2l2 LmxlbiwNCj4gPj4+ICAJCSh0ZGF0YS0+ZGlnZXN0Lm9mZnNldF9ieXRlcyA9PSAwID8NCj4gPj4+ IEBAIC00ODI5LDcgKzQ4NDgsNyBAQCB0ZXN0X3Nub3czZ19hdXRoX2NpcGhlcl9zZ2woY29uc3Qg c3RydWN0DQo+ID4+PiBzbm93M2dfdGVzdF9kYXRhICp0ZGF0YSwNCj4gPj4+ICAJCXRkYXRhLT5j aXBoZXIub2Zmc2V0X2JpdHMsDQo+ID4+PiAgCQl0ZGF0YS0+dmFsaWRBdXRoTGVuSW5CaXRzLmxl biwNCj4gPj4+ICAJCXRkYXRhLT5hdXRoLm9mZnNldF9iaXRzLA0KPiA+Pj4gLQkJb3BfbW9kZSwg MSk7DQo+ID4+PiArCQlvcF9tb2RlLCAxLCB2ZXJpZnkpOw0KPiA+Pj4NCj4gPj4+ICAJaWYgKHJl dHZhbCA8IDApDQo+ID4+PiAgCQlyZXR1cm4gcmV0dmFsOw0KPiA+Pj4gQEAgLTQ5ODgsNyArNTAw Nyw3IEBAIHRlc3Rfa2FzdW1pX2F1dGhfY2lwaGVyKGNvbnN0IHN0cnVjdA0KPiA+Pj4ga2FzdW1p X3Rlc3RfZGF0YSAqdGRhdGEsDQo+ID4+Pg0KPiA+Pj4gIAkvKiBDcmVhdGUgS0FTVU1JIG9wZXJh dGlvbiAqLw0KPiA+Pj4gIAlyZXR2YWwgPSBjcmVhdGVfd2lyZWxlc3NfYWxnb19hdXRoX2NpcGhl cl9vcGVyYXRpb24oDQo+ID4+PiAtCQl0ZGF0YS0+ZGlnZXN0LmxlbiwNCj4gPj4+ICsJCXRkYXRh LT5kaWdlc3QuZGF0YSwgdGRhdGEtPmRpZ2VzdC5sZW4sDQo+ID4+PiAgCQl0ZGF0YS0+Y2lwaGVy X2l2LmRhdGEsIHRkYXRhLT5jaXBoZXJfaXYubGVuLA0KPiA+Pj4gIAkJTlVMTCwgMCwNCj4gPj4+ ICAJCSh0ZGF0YS0+ZGlnZXN0Lm9mZnNldF9ieXRlcyA9PSAwID8NCj4gPj4+IEBAIC00OTk4LDcg KzUwMTcsNyBAQCB0ZXN0X2thc3VtaV9hdXRoX2NpcGhlcihjb25zdCBzdHJ1Y3QNCj4gPj4+IGth c3VtaV90ZXN0X2RhdGEgKnRkYXRhLA0KPiA+Pj4gIAkJdGRhdGEtPnZhbGlkQ2lwaGVyT2Zmc2V0 SW5CaXRzLmxlbiwNCj4gPj4+ICAJCXRkYXRhLT52YWxpZEF1dGhMZW5JbkJpdHMubGVuLA0KPiA+ Pj4gIAkJMCwNCj4gPj4+IC0JCW9wX21vZGUsIDApOw0KPiA+Pj4gKwkJb3BfbW9kZSwgMCwgdmVy aWZ5KTsNCj4gPj4+DQo+ID4+PiAgCWlmIChyZXR2YWwgPCAwKQ0KPiA+Pj4gIAkJcmV0dXJuIHJl dHZhbDsNCj4gPj4+IEBAIC01MTY1LDcgKzUxODQsNyBAQCB0ZXN0X2thc3VtaV9hdXRoX2NpcGhl cl9zZ2woY29uc3Qgc3RydWN0DQo+ID4+PiBrYXN1bWlfdGVzdF9kYXRhICp0ZGF0YSwNCj4gPj4+ DQo+ID4+PiAgCS8qIENyZWF0ZSBLQVNVTUkgb3BlcmF0aW9uICovDQo+ID4+PiAgCXJldHZhbCA9 IGNyZWF0ZV93aXJlbGVzc19hbGdvX2F1dGhfY2lwaGVyX29wZXJhdGlvbigNCj4gPj4+IC0JCXRk YXRhLT5kaWdlc3QubGVuLA0KPiA+Pj4gKwkJdGRhdGEtPmRpZ2VzdC5kYXRhLCB0ZGF0YS0+ZGln ZXN0LmxlbiwNCj4gPj4+ICAJCXRkYXRhLT5jaXBoZXJfaXYuZGF0YSwgdGRhdGEtPmNpcGhlcl9p di5sZW4sDQo+ID4+PiAgCQlOVUxMLCAwLA0KPiA+Pj4gIAkJKHRkYXRhLT5kaWdlc3Qub2Zmc2V0 X2J5dGVzID09IDAgPw0KPiA+Pj4gQEAgLTUxNzUsNyArNTE5NCw3IEBAIHRlc3Rfa2FzdW1pX2F1 dGhfY2lwaGVyX3NnbChjb25zdCBzdHJ1Y3QNCj4gPj4+IGthc3VtaV90ZXN0X2RhdGEgKnRkYXRh LA0KPiA+Pj4gIAkJdGRhdGEtPnZhbGlkQ2lwaGVyT2Zmc2V0SW5CaXRzLmxlbiwNCj4gPj4+ICAJ CXRkYXRhLT52YWxpZEF1dGhMZW5JbkJpdHMubGVuLA0KPiA+Pj4gIAkJMCwNCj4gPj4+IC0JCW9w X21vZGUsIDEpOw0KPiA+Pj4gKwkJb3BfbW9kZSwgMSwgdmVyaWZ5KTsNCj4gPj4+DQo+ID4+PiAg CWlmIChyZXR2YWwgPCAwKQ0KPiA+Pj4gIAkJcmV0dXJuIHJldHZhbDsNCj4gPj4+IEBAIC01NjY2 LDcgKzU2ODUsNyBAQCB0ZXN0X3p1Y19hdXRoX2NpcGhlcihjb25zdCBzdHJ1Y3QNCj4gPj4+IHdp cmVsZXNzX3Rlc3RfZGF0YSAqdGRhdGEsDQo+ID4+Pg0KPiA+Pj4gIAkvKiBDcmVhdGUgWlVDIG9w ZXJhdGlvbiAqLw0KPiA+Pj4gIAlyZXR2YWwgPSBjcmVhdGVfd2lyZWxlc3NfYWxnb19hdXRoX2Np cGhlcl9vcGVyYXRpb24oDQo+ID4+PiAtCQl0ZGF0YS0+ZGlnZXN0LmxlbiwNCj4gPj4+ICsJCXRk YXRhLT5kaWdlc3QuZGF0YSwgdGRhdGEtPmRpZ2VzdC5sZW4sDQo+ID4+PiAgCQl0ZGF0YS0+Y2lw aGVyX2l2LmRhdGEsIHRkYXRhLT5jaXBoZXJfaXYubGVuLA0KPiA+Pj4gIAkJdGRhdGEtPmF1dGhf aXYuZGF0YSwgdGRhdGEtPmF1dGhfaXYubGVuLA0KPiA+Pj4gIAkJKHRkYXRhLT5kaWdlc3Qub2Zm c2V0X2J5dGVzID09IDAgPw0KPiA+Pj4gQEAgLTU2NzYsNyArNTY5NSw3IEBAIHRlc3RfenVjX2F1 dGhfY2lwaGVyKGNvbnN0IHN0cnVjdA0KPiA+Pj4gd2lyZWxlc3NfdGVzdF9kYXRhICp0ZGF0YSwN Cj4gPj4+ICAJCXRkYXRhLT52YWxpZENpcGhlck9mZnNldEluQml0cy5sZW4sDQo+ID4+PiAgCQl0 ZGF0YS0+dmFsaWRBdXRoTGVuSW5CaXRzLmxlbiwNCj4gPj4+ICAJCTAsDQo+ID4+PiAtCQlvcF9t b2RlLCAwKTsNCj4gPj4+ICsJCW9wX21vZGUsIDAsIHZlcmlmeSk7DQo+ID4+Pg0KPiA+Pj4gIAlp ZiAocmV0dmFsIDwgMCkNCj4gPj4+ICAJCXJldHVybiByZXR2YWw7DQo+ID4+PiBAQCAtNTg1Miw3 ICs1ODcxLDcgQEAgdGVzdF96dWNfYXV0aF9jaXBoZXJfc2dsKGNvbnN0IHN0cnVjdA0KPiA+Pj4g d2lyZWxlc3NfdGVzdF9kYXRhICp0ZGF0YSwNCj4gPj4+DQo+ID4+PiAgCS8qIENyZWF0ZSBaVUMg b3BlcmF0aW9uICovDQo+ID4+PiAgCXJldHZhbCA9IGNyZWF0ZV93aXJlbGVzc19hbGdvX2F1dGhf Y2lwaGVyX29wZXJhdGlvbigNCj4gPj4+IC0JCXRkYXRhLT5kaWdlc3QubGVuLA0KPiA+Pj4gKwkJ dGRhdGEtPmRpZ2VzdC5kYXRhLCB0ZGF0YS0+ZGlnZXN0LmxlbiwNCj4gPj4+ICAJCXRkYXRhLT5j aXBoZXJfaXYuZGF0YSwgdGRhdGEtPmNpcGhlcl9pdi5sZW4sDQo+ID4+PiAgCQlOVUxMLCAwLA0K PiA+Pj4gIAkJKHRkYXRhLT5kaWdlc3Qub2Zmc2V0X2J5dGVzID09IDAgPw0KPiA+Pj4gQEAgLTU4 NjIsNyArNTg4MSw3IEBAIHRlc3RfenVjX2F1dGhfY2lwaGVyX3NnbChjb25zdCBzdHJ1Y3QNCj4g Pj4+IHdpcmVsZXNzX3Rlc3RfZGF0YSAqdGRhdGEsDQo+ID4+PiAgCQl0ZGF0YS0+dmFsaWRDaXBo ZXJPZmZzZXRJbkJpdHMubGVuLA0KPiA+Pj4gIAkJdGRhdGEtPnZhbGlkQXV0aExlbkluQml0cy5s ZW4sDQo+ID4+PiAgCQkwLA0KPiA+Pj4gLQkJb3BfbW9kZSwgMSk7DQo+ID4+PiArCQlvcF9tb2Rl LCAxLCB2ZXJpZnkpOw0KPiA+Pj4NCj4gPj4+ICAJaWYgKHJldHZhbCA8IDApDQo+ID4+PiAgCQly ZXR1cm4gcmV0dmFsOw0KPiA+Pj4gQEAgLTY2NDMsNyArNjY2Miw3IEBAIHRlc3RfbWl4ZWRfYXV0 aF9jaXBoZXIoY29uc3Qgc3RydWN0DQo+ID4+PiBtaXhlZF9jaXBoZXJfYXV0aF90ZXN0X2RhdGEg KnRkYXRhLA0KPiA+Pj4NCj4gPj4+ICAJLyogQ3JlYXRlIHRoZSBvcGVyYXRpb24gKi8NCj4gPj4+ ICAJcmV0dmFsID0gY3JlYXRlX3dpcmVsZXNzX2FsZ29fYXV0aF9jaXBoZXJfb3BlcmF0aW9uKA0K PiA+Pj4gLQkJCXRkYXRhLT5kaWdlc3RfZW5jLmxlbiwNCj4gPj4+ICsJCQl0ZGF0YS0+ZGlnZXN0 X2VuYy5kYXRhLCB0ZGF0YS0+ZGlnZXN0X2VuYy5sZW4sDQo+ID4+PiAgCQkJdGRhdGEtPmNpcGhl cl9pdi5kYXRhLCB0ZGF0YS0+Y2lwaGVyX2l2LmxlbiwNCj4gPj4+ICAJCQl0ZGF0YS0+YXV0aF9p di5kYXRhLCB0ZGF0YS0+YXV0aF9pdi5sZW4sDQo+ID4+PiAgCQkJKHRkYXRhLT5kaWdlc3RfZW5j Lm9mZnNldCA9PSAwID8NCj4gPj4+IEBAIC02NjUzLDcgKzY2NzIsNyBAQCB0ZXN0X21peGVkX2F1 dGhfY2lwaGVyKGNvbnN0IHN0cnVjdA0KPiA+Pj4gbWl4ZWRfY2lwaGVyX2F1dGhfdGVzdF9kYXRh ICp0ZGF0YSwNCj4gPj4+ICAJCQl0ZGF0YS0+Y2lwaGVyLm9mZnNldF9iaXRzLA0KPiA+Pj4gIAkJ CXRkYXRhLT52YWxpZEF1dGhMZW4ubGVuX2JpdHMsDQo+ID4+PiAgCQkJdGRhdGEtPmF1dGgub2Zm c2V0X2JpdHMsDQo+ID4+PiAtCQkJb3BfbW9kZSwgMCk7DQo+ID4+PiArCQkJb3BfbW9kZSwgMCwg dmVyaWZ5KTsNCj4gPj4+DQo+ID4+PiAgCWlmIChyZXR2YWwgPCAwKQ0KPiA+Pj4gIAkJcmV0dXJu IHJldHZhbDsNCj4gPj4+IEBAIC02ODI3LDcgKzY4NDYsNyBAQCB0ZXN0X21peGVkX2F1dGhfY2lw aGVyX3NnbChjb25zdCBzdHJ1Y3QNCj4gPj4+IG1peGVkX2NpcGhlcl9hdXRoX3Rlc3RfZGF0YSAq dGRhdGEsDQo+ID4+Pg0KPiA+Pj4gIAkvKiBDcmVhdGUgdGhlIG9wZXJhdGlvbiAqLw0KPiA+Pj4g IAlyZXR2YWwgPSBjcmVhdGVfd2lyZWxlc3NfYWxnb19hdXRoX2NpcGhlcl9vcGVyYXRpb24oDQo+ ID4+PiAtCQkJdGRhdGEtPmRpZ2VzdF9lbmMubGVuLA0KPiA+Pj4gKwkJCXRkYXRhLT5kaWdlc3Rf ZW5jLmRhdGEsIHRkYXRhLT5kaWdlc3RfZW5jLmxlbiwNCj4gPj4+ICAJCQl0ZGF0YS0+Y2lwaGVy X2l2LmRhdGEsIHRkYXRhLT5jaXBoZXJfaXYubGVuLA0KPiA+Pj4gIAkJCXRkYXRhLT5hdXRoX2l2 LmRhdGEsIHRkYXRhLT5hdXRoX2l2LmxlbiwNCj4gPj4+ICAJCQkodGRhdGEtPmRpZ2VzdF9lbmMu b2Zmc2V0ID09IDAgPw0KPiA+Pj4gQEAgLTY4MzcsNyArNjg1Niw3IEBAIHRlc3RfbWl4ZWRfYXV0 aF9jaXBoZXJfc2dsKGNvbnN0IHN0cnVjdA0KPiA+Pj4gbWl4ZWRfY2lwaGVyX2F1dGhfdGVzdF9k YXRhICp0ZGF0YSwNCj4gPj4+ICAJCQl0ZGF0YS0+Y2lwaGVyLm9mZnNldF9iaXRzLA0KPiA+Pj4g IAkJCXRkYXRhLT52YWxpZEF1dGhMZW4ubGVuX2JpdHMsDQo+ID4+PiAgCQkJdGRhdGEtPmF1dGgu b2Zmc2V0X2JpdHMsDQo+ID4+PiAtCQkJb3BfbW9kZSwgMSk7DQo+ID4+PiArCQkJb3BfbW9kZSwg MSwgdmVyaWZ5KTsNCj4gPj4+DQo+ID4+PiAgCWlmIChyZXR2YWwgPCAwKQ0KPiA+Pj4gIAkJcmV0 dXJuIHJldHZhbDsNCj4gPj4+IEBAIC0xMDgxOCwxMyArMTA4MzcsOCBAQA0KPiA+Pj4gdGVzdF9h dXRoZW50aWNhdGlvbl92ZXJpZnlfZmFpbF93aGVuX2RhdGFfY29ycnVwdGlvbigNCj4gPj4+DQo+ ID4+PiAgCXV0X3BhcmFtcy0+b3AgPSBwcm9jZXNzX2NyeXB0b19yZXF1ZXN0KHRzX3BhcmFtcy0N Cj4gPj4+PiB2YWxpZF9kZXZzWzBdLA0KPiA+Pj4gIAkJCXV0X3BhcmFtcy0+b3ApOw0KPiA+Pj4g LQlURVNUX0FTU0VSVF9OT1RfTlVMTCh1dF9wYXJhbXMtPm9wLCAiZmFpbGVkIGNyeXB0byBwcm9j ZXNzIik7DQo+ID4+PiAtCVRFU1RfQVNTRVJUX05PVF9FUVVBTCh1dF9wYXJhbXMtPm9wLT5zdGF0 dXMsDQo+ID4+PiAtCQkJUlRFX0NSWVBUT19PUF9TVEFUVVNfU1VDQ0VTUywNCj4gPj4+IC0JCQki YXV0aGVudGljYXRpb24gbm90IGZhaWxlZCIpOw0KPiA+Pj4NCj4gPj4+IC0JdXRfcGFyYW1zLT5v YnVmID0gdXRfcGFyYW1zLT5vcC0+c3ltLT5tX3NyYzsNCj4gPj4+IC0JVEVTVF9BU1NFUlRfTk9U X05VTEwodXRfcGFyYW1zLT5vYnVmLCAiZmFpbGVkIHRvIHJldHJpZXZlDQo+ID4+PiBvYnVmIik7 DQo+ID4+PiArCVRFU1RfQVNTRVJUX05VTEwodXRfcGFyYW1zLT5vcCwgImF1dGhlbnRpY2F0aW9u IG5vdCBmYWlsZWQiKTsNCj4gPj4+DQo+ID4+PiAgCXJldHVybiAwOw0KPiA+Pj4gIH0NCj4gPj4+ IEBAIC0xMDg3OSwxMyArMTA4OTMsOCBAQA0KPiA+Pj4gdGVzdF9hdXRoZW50aWNhdGlvbl92ZXJp ZnlfR01BQ19mYWlsX3doZW5fY29ycnVwdGlvbigNCj4gPj4+DQo+ID4+PiAgCXV0X3BhcmFtcy0+ b3AgPSBwcm9jZXNzX2NyeXB0b19yZXF1ZXN0KHRzX3BhcmFtcy0NCj4gPj4+PiB2YWxpZF9kZXZz WzBdLA0KPiA+Pj4gIAkJCXV0X3BhcmFtcy0+b3ApOw0KPiA+Pj4gLQlURVNUX0FTU0VSVF9OT1Rf TlVMTCh1dF9wYXJhbXMtPm9wLCAiZmFpbGVkIGNyeXB0byBwcm9jZXNzIik7DQo+ID4+PiAtCVRF U1RfQVNTRVJUX05PVF9FUVVBTCh1dF9wYXJhbXMtPm9wLT5zdGF0dXMsDQo+ID4+PiAtCQkJUlRF X0NSWVBUT19PUF9TVEFUVVNfU1VDQ0VTUywNCj4gPj4+IC0JCQkiYXV0aGVudGljYXRpb24gbm90 IGZhaWxlZCIpOw0KPiA+Pj4NCj4gPj4+IC0JdXRfcGFyYW1zLT5vYnVmID0gdXRfcGFyYW1zLT5v cC0+c3ltLT5tX3NyYzsNCj4gPj4+IC0JVEVTVF9BU1NFUlRfTk9UX05VTEwodXRfcGFyYW1zLT5v YnVmLCAiZmFpbGVkIHRvIHJldHJpZXZlDQo+ID4+PiBvYnVmIik7DQo+ID4+PiArCVRFU1RfQVNT RVJUX05VTEwodXRfcGFyYW1zLT5vcCwgImF1dGhlbnRpY2F0aW9uIG5vdCBmYWlsZWQiKTsNCj4g Pj4+DQo+ID4+PiAgCXJldHVybiAwOw0KPiA+Pj4gIH0NCj4gPj4+IEBAIC0xMDk0MCwxMyArMTA5 NDksNyBAQA0KPiA+Pj4gdGVzdF9hdXRoZW50aWNhdGVkX2RlY3J5cHRpb25fZmFpbF93aGVuX2Nv cnJ1cHRpb24oDQo+ID4+PiAgCXV0X3BhcmFtcy0+b3AgPSBwcm9jZXNzX2NyeXB0b19yZXF1ZXN0 KHRzX3BhcmFtcy0NCj4gPj4+PiB2YWxpZF9kZXZzWzBdLA0KPiA+Pj4gIAkJCXV0X3BhcmFtcy0+ b3ApOw0KPiA+Pj4NCj4gPj4+IC0JVEVTVF9BU1NFUlRfTk9UX05VTEwodXRfcGFyYW1zLT5vcCwg ImZhaWxlZCBjcnlwdG8gcHJvY2VzcyIpOw0KPiA+Pj4gLQlURVNUX0FTU0VSVF9OT1RfRVFVQUwo dXRfcGFyYW1zLT5vcC0+c3RhdHVzLA0KPiA+Pj4gLQkJCVJURV9DUllQVE9fT1BfU1RBVFVTX1NV Q0NFU1MsDQo+ID4+PiAtCQkJImF1dGhlbnRpY2F0aW9uIG5vdCBmYWlsZWQiKTsNCj4gPj4+IC0N Cj4gPj4+IC0JdXRfcGFyYW1zLT5vYnVmID0gdXRfcGFyYW1zLT5vcC0+c3ltLT5tX3NyYzsNCj4g Pj4+IC0JVEVTVF9BU1NFUlRfTk9UX05VTEwodXRfcGFyYW1zLT5vYnVmLCAiZmFpbGVkIHRvIHJl dHJpZXZlDQo+ID4+PiBvYnVmIik7DQo+ID4+PiArCVRFU1RfQVNTRVJUX05VTEwodXRfcGFyYW1z LT5vcCwgImF1dGhlbnRpY2F0aW9uIG5vdCBmYWlsZWQiKTsNCj4gPj4+DQo+ID4+PiAgCXJldHVy biAwOw0KPiA+Pj4gIH0NCj4gPj4+IEBAIC0xMTE0OSw2ICsxMTE1Miw3IEBAIGNyZWF0ZV9hZWFk X29wZXJhdGlvbl9TR0woZW51bQ0KPiA+Pj4gcnRlX2NyeXB0b19hZWFkX29wZXJhdGlvbiBvcCwN Cj4gPj4+ICAJY29uc3QgdW5zaWduZWQgaW50IGF1dGhfdGFnX2xlbiA9IHRkYXRhLT5hdXRoX3Rh Zy5sZW47DQo+ID4+PiAgCWNvbnN0IHVuc2lnbmVkIGludCBpdl9sZW4gPSB0ZGF0YS0+aXYubGVu Ow0KPiA+Pj4gIAl1bnNpZ25lZCBpbnQgYWFkX2xlbiA9IHRkYXRhLT5hYWQubGVuOw0KPiA+Pj4g Kwl1bnNpZ25lZCBpbnQgYWFkX2xlbl9wYWQgPSAwOw0KPiA+Pj4NCj4gPj4+ICAJLyogR2VuZXJh dGUgQ3J5cHRvIG9wIGRhdGEgc3RydWN0dXJlICovDQo+ID4+PiAgCXV0X3BhcmFtcy0+b3AgPSBy dGVfY3J5cHRvX29wX2FsbG9jKHRzX3BhcmFtcy0+b3BfbXBvb2wsDQo+ID4+PiBAQCAtMTEyMDMs OCArMTEyMDcsMTAgQEAgY3JlYXRlX2FlYWRfb3BlcmF0aW9uX1NHTChlbnVtDQo+ID4+PiBydGVf Y3J5cHRvX2FlYWRfb3BlcmF0aW9uIG9wLA0KPiA+Pj4NCj4gPj4+ICAJCXJ0ZV9tZW1jcHkoaXZf cHRyLCB0ZGF0YS0+aXYuZGF0YSwgaXZfbGVuKTsNCj4gPj4+DQo+ID4+PiArCQlhYWRfbGVuX3Bh ZCA9IFJURV9BTElHTl9DRUlMKGFhZF9sZW4sIDE2KTsNCj4gPj4+ICsNCj4gPj4+ICAJCXN5bV9v cC0+YWVhZC5hYWQuZGF0YSA9ICh1aW50OF90ICopcnRlX3BrdG1idWZfcHJlcGVuZCgNCj4gPj4+ IC0JCQkJdXRfcGFyYW1zLT5pYnVmLCBhYWRfbGVuKTsNCj4gPj4+ICsJCQkJdXRfcGFyYW1zLT5p YnVmLCBhYWRfbGVuX3BhZCk7DQo+ID4+PiAgCQlURVNUX0FTU0VSVF9OT1RfTlVMTChzeW1fb3At PmFlYWQuYWFkLmRhdGEsDQo+ID4+PiAgCQkJCSJubyByb29tIHRvIHByZXBlbmQgYWFkIik7DQo+ ID4+PiAgCQlzeW1fb3AtPmFlYWQuYWFkLnBoeXNfYWRkciA9IHJ0ZV9wa3RtYnVmX2lvdmEoIEBA IC0NCj4gPj4+IDExMjE5LDcgKzExMjI1LDcgQEAgY3JlYXRlX2FlYWRfb3BlcmF0aW9uX1NHTChl bnVtDQo+ID4+PiBydGVfY3J5cHRvX2FlYWRfb3BlcmF0aW9uIG9wLA0KPiA+Pj4gIAl9DQo+ID4+ Pg0KPiA+Pj4gIAlzeW1fb3AtPmFlYWQuZGF0YS5sZW5ndGggPSB0ZGF0YS0+cGxhaW50ZXh0Lmxl bjsNCj4gPj4+IC0Jc3ltX29wLT5hZWFkLmRhdGEub2Zmc2V0ID0gYWFkX2xlbjsNCj4gPj4+ICsJ c3ltX29wLT5hZWFkLmRhdGEub2Zmc2V0ID0gYWFkX2xlbl9wYWQ7DQo+ID4+Pg0KPiA+Pj4gIAly ZXR1cm4gMDsNCj4gPj4+ICB9DQo+ID4+PiBAQCAtMTEyNTIsNyArMTEyNTgsNyBAQCB0ZXN0X2F1 dGhlbnRpY2F0ZWRfZW5jcnlwdGlvbl9TR0woY29uc3QNCj4gPj4+IHN0cnVjdA0KPiA+Pj4gYWVh ZF90ZXN0X2RhdGEgKnRkYXRhLA0KPiA+Pj4gIAlpbnQgZWN4ID0gMDsNCj4gPj4+ICAJdm9pZCAq ZGlnZXN0X21lbSA9IE5VTEw7DQo+ID4+Pg0KPiA+Pj4gLQl1aW50MzJfdCBwcmVwZW5kX2xlbiA9 IHRkYXRhLT5hYWQubGVuOw0KPiA+Pj4gKwl1aW50MzJfdCBwcmVwZW5kX2xlbiA9IFJURV9BTElH Tl9DRUlMKHRkYXRhLT5hYWQubGVuLCAxNik7DQo+ID4+Pg0KPiA+Pj4gIAlpZiAodGRhdGEtPnBs YWludGV4dC5sZW4gJSBmcmFnc3ogIT0gMCkgew0KPiA+Pj4gIAkJaWYgKHRkYXRhLT5wbGFpbnRl eHQubGVuIC8gZnJhZ3N6ICsgMSA+IFNHTF9NQVhfTk8pIEBADQo+ID4+PiAtDQo+ID4+PiAxMTkx NSw2ICsxMTkyMSw4IEBAIHN0YXRpYyBzdHJ1Y3QgdW5pdF90ZXN0X3N1aXRlDQo+ID4+PiBjcnlw dG9kZXZfcWF0X3Rlc3RzdWl0ZSAgPQ0KPiA+Pj4gew0KPiA+Pj4NCj4gPj4+IAl0ZXN0X0FFU19H Q01fYXV0aF9lbmNyeXB0X1NHTF9vdXRfb2ZfcGxhY2VfNDAwQl80MDBCKSwNCj4gPj4+ICAJCVRF U1RfQ0FTRV9TVCh1dF9zZXR1cCwgdXRfdGVhcmRvd24sDQo+ID4+Pg0KPiA+Pj4gCXRlc3RfQUVT X0dDTV9hdXRoX2VuY3J5cHRfU0dMX291dF9vZl9wbGFjZV8xNTAwQl8yMDAwQiksDQo+ID4+PiAr CQlURVNUX0NBU0VfU1QodXRfc2V0dXAsIHV0X3RlYXJkb3duLA0KPiA+Pj4gKw0KPiA+Pj4gCXRl c3RfQUVTX0dDTV9hdXRoX2VuY3J5cHRfU0dMX291dF9vZl9wbGFjZV80MDBCXzFzZWcpLA0KPiA+ Pj4gIAkJVEVTVF9DQVNFX1NUKHV0X3NldHVwLCB1dF90ZWFyZG93biwNCj4gPj4+DQo+ID4+PiAJ dGVzdF9BRVNfR0NNX2F1dGhlbnRpY2F0ZWRfZW5jcnlwdGlvbl90ZXN0X2Nhc2VfMSksDQo+ID4+ PiAgCQlURVNUX0NBU0VfU1QodXRfc2V0dXAsIHV0X3RlYXJkb3duLA0KPiA+Pj4gLS0NCj4gPj4+ IDIuMjAuMQ0KPiA+Pj4NCj4gPj4+IC0tLQ0KPiA+Pj4gICBEaWZmIG9mIHRoZSBhcHBsaWVkIHBh dGNoIHZzIHVwc3RyZWFtIGNvbW1pdCAocGxlYXNlIGRvdWJsZS1jaGVjaw0KPiA+Pj4gaWYgbm9u LQ0KPiA+Pj4gZW1wdHk6DQo+ID4+PiAtLS0NCj4gPj4+IC0tLSAtCTIwMjAtMDItMTEgMTE6MTc6 MzkuOTg2MDAyNTk2ICswMDAwDQo+ID4+PiArKysgMDAyMy10ZXN0LWNyeXB0by1maXgtbWlzc2lu Zy1vcGVyYXRpb24tc3RhdHVzLWNoZWNrLnBhdGNoDQo+ID4+PiAyMDIwLTAyLTExDQo+ID4+PiAx MToxNzozOC4zMzIwMDAwNzUgKzAwMDANCj4gPj4+IEBAIC0xLDggKzEsMTAgQEANCj4gPj4+IC1G cm9tIGIyNmVmMWExMWYyMWVjZGU2MzU4MmVkNmRiMjgxYzkzY2U5ZmJmMjMgTW9uIFNlcCAxNw0K PiAwMDowMDowMA0KPiA+Pj4gMjAwMQ0KPiA+Pj4gK0Zyb20gY2U4MzAyMTcyZjlmOGUwNjgzM2E0 OWFiZjhiMjgzYTcxYjA3ZGMzYiBNb24gU2VwIDE3DQo+IDAwOjAwOjAwDQo+ID4+PiAyMDAxDQo+ ID4+PiAgRnJvbTogQWRhbSBEeWJrb3dza2kgPA0KPiA+Pj4gYWRhbXguZHlia293c2tpQGludGVs LmNvbQ0KPiA+Pj4+DQo+ID4+PiAgRGF0ZTogRnJpLCAyMCBEZWMgMjAxOSAxMzo1ODo1MiArMDEw MA0KPiA+Pj4gIFN1YmplY3Q6IFtQQVRDSF0gdGVzdC9jcnlwdG86IGZpeCBtaXNzaW5nIG9wZXJh dGlvbiBzdGF0dXMgY2hlY2sNCj4gPj4+DQo+ID4+PiArWyB1cHN0cmVhbSBjb21taXQgYjI2ZWYx YTExZjIxZWNkZTYzNTgyZWQ2ZGIyODFjOTNjZTlmYmYyMyBdDQo+ID4+PiArDQo+ID4+PiAgVGhp cyBwYXRjaCBhZGRzIGNoZWNraW5nIG9mIHRoZSBzeW1tZXRyaWMgY3J5cHRvIG9wZXJhdGlvbg0K PiA+Pj4gc3RhdHVzICB0aGF0IHdhcw0KPiA+Pj4gc2lsZW50bHkgc2tpcHBlZCBiZWZvcmUuIEl0 IGZpeGVzIHRoZSB3aXJlbGVzcyBhbGdvcml0aG1zICBzZXNzaW9uDQo+ID4+PiBjcmVhdGlvbg0K PiA+Pj4gKFNOT1czRywgS0FTVU1JLCBaVUMpIGFuZCBwYXNzaW5nIG9mIHRoZSBkaWdlc3QgQEAg LTExLDcgKzEzLDYgQEANCj4gPj4+DQo+ID4+PiAgRml4ZXM6IGMwZjg3ZWI1MjUyYiAoImNyeXB0 b2RldjogY2hhbmdlIGJ1cnN0IEFQSSB0byBiZSBjcnlwdG8gb3ANCj4gPj4+IG9yaWVudGVkIikN Cj4gPj4+ICBGaXhlczogNzdhMjE3YTE5YmI3ICgidGVzdC9jcnlwdG86IGFkZCBBRVMtQ0NNIHRl c3RzIikNCj4gPj4+IC1DYzoNCj4gPj4+IHN0YWJsZUBkcGRrLm9yZw0KPiA+Pj4NCj4gPj4+DQo+ ID4+PiAgU2lnbmVkLW9mZi1ieTogQWRhbSBEeWJrb3dza2kgPA0KPiA+Pj4gYWRhbXguZHlia293 c2tpQGludGVsLmNvbQ0KPiA+Pj4+DQo+ID4+PiAgQWNrZWQtYnk6IEZpb25hIFRyYWhlIDwNCj4g Pj4+IGZpb25hLnRyYWhlQGludGVsLmNvbQ0KPiA+Pj4+DQoNCg==