From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21159 invoked by alias); 14 Mar 2013 08:08:38 -0000 Received: (qmail 21142 invoked by uid 22791); 14 Mar 2013 08:08:37 -0000 X-SWARE-Spam-Status: No, hits=-4.2 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_SPAMHAUS_DROP,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from tx2ehsobe003.messaging.microsoft.com (HELO tx2outboundpool.messaging.microsoft.com) (65.55.88.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 14 Mar 2013 08:07:54 +0000 Received: from mail43-tx2-R.bigfish.com (10.9.14.232) by TX2EHSOBE002.bigfish.com (10.9.40.22) with Microsoft SMTP Server id 14.1.225.23; Thu, 14 Mar 2013 08:07:52 +0000 Received: from mail43-tx2 (localhost [127.0.0.1]) by mail43-tx2-R.bigfish.com (Postfix) with ESMTP id E4F634A0183; Thu, 14 Mar 2013 08:07:52 +0000 (UTC) X-Forefront-Antispam-Report: CIP:149.199.60.83;KIP:(null);UIP:(null);IPV:NLI;H:xsj-gw1;RD:unknown-60-83.xilinx.com;EFVD:NLI X-SpamScore: -8 X-BigFish: VPS-8(zzbb2dI98dI9371Ic89bh936eI154dI542I1432Ic857h111aI1447Izz1f42h1ee6h1de0h1202h1e76h1d1ah1d2ahzz8275bhz2fh95h668h839hd24hf0ah119dh1288h12a5h12bdh137ah1441h14ddh1504h1537h153bh162dh1631h1758h18e1h1946h19b5h1b0ah906i34h1155h) Received-SPF: pass (mail43-tx2: domain of xilinx.com designates 149.199.60.83 as permitted sender) client-ip=149.199.60.83; envelope-from=david.holsgrove@xilinx.com; helo=xsj-gw1 ;helo=xsj-gw1 ; Received: from mail43-tx2 (localhost.localdomain [127.0.0.1]) by mail43-tx2 (MessageSwitch) id 1363248470628784_7125; Thu, 14 Mar 2013 08:07:50 +0000 (UTC) Received: from TX2EHSMHS026.bigfish.com (unknown [10.9.14.245]) by mail43-tx2.bigfish.com (Postfix) with ESMTP id 951F92A0066; Thu, 14 Mar 2013 08:07:50 +0000 (UTC) Received: from xsj-gw1 (149.199.60.83) by TX2EHSMHS026.bigfish.com (10.9.99.126) with Microsoft SMTP Server id 14.1.225.23; Thu, 14 Mar 2013 08:07:49 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-smtp1.xilinx.com) by xsj-gw1 with esmtp (Exim 4.63) (envelope-from ) id 1UG3CX-0002c2-LQ; Thu, 14 Mar 2013 01:07:49 -0700 From: David Holsgrove To: Michael Eager CC: "gcc-patches@gcc.gnu.org" , Edgar Iglesias , John Williams , Vinod Kathail , Vidhumouli Hunsigida , Nagaraju Mekala , Tom Shui Subject: RE: [Patch, microblaze]: Add support for TLS in MicroBlaze Date: Thu, 14 Mar 2013 08:08:00 -0000 References: <51409C62.50502@eagerm.com> In-Reply-To: <51409C62.50502@eagerm.com> Content-Type: multipart/mixed; boundary="_002_9A6AC1C7F3D8BE4087EF9E18D31945D9044C0EXAPPVEXMBX01xlnxx_" MIME-Version: 1.0 X-RCIS-Action: ALLOW Message-ID: X-OriginatorOrg: xilinx.com Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2013-03/txt/msg00489.txt.bz2 --_002_9A6AC1C7F3D8BE4087EF9E18D31945D9044C0EXAPPVEXMBX01xlnxx_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-length: 5360 SGkgTWljaGFlbCwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBNaWNoYWVsIEVhZ2VyIFttYWlsdG86ZWFnZXJAZWFnZXJtLmNv bV0NCj4gU2VudDogVGh1cnNkYXksIDE0IE1hcmNoIDIwMTMgMTozNCBhbQ0K PiBUbzogRGF2aWQgSG9sc2dyb3ZlDQo+IENjOiBnY2MtcGF0Y2hlc0BnY2Mu Z251Lm9yZzsgRWRnYXIgSWdsZXNpYXM7IEpvaG4gV2lsbGlhbXM7IFZpbm9k IEthdGhhaWw7DQo+IFZpZGh1bW91bGkgSHVuc2lnaWRhOyBOYWdhcmFqdSBN ZWthbGE7IFRvbSBTaHVpDQo+IFN1YmplY3Q6IFJlOiBbUGF0Y2gsIG1pY3Jv YmxhemVdOiBBZGQgc3VwcG9ydCBmb3IgVExTIGluIE1pY3JvQmxhemUNCj4g DQo+IE9uIDAzLzEyLzIwMTMgMDE6NDcgUE0sIERhdmlkIEhvbHNncm92ZSB3 cm90ZToNCj4gPiBBZGQgc3VwcG9ydCBmb3IgdGhyZWFkIGxvY2FsIHN0b3Jh Z2UgKGdlbmVyYWwgZHluYW1pYyBhbmQgbG9jYWwgZHluYW1pYw0KPiBtb2Rl bHMpIGluIE1pY3JvQmxhemUuDQo+ID4NCj4gPg0KPiA+IGdjYy9DaGFuZ2Vs b2cNCj4gPg0KPiA+IDIwMTMtMDMtMTMgIEVkZ2FyIEUuIElnbGVzaWFzIDxl ZGdhci5pZ2xlc2lhc0B4aWxpbnguY29tPg0KPiA+ICAgICAgICAgICAgICBE YXZpZCBIb2xzZ3JvdmUgPGRhdmlkLmhvbHNncm92ZUB4aWxpbnguY29tPg0K PiA+DQpbLS1zbmlwLS1dDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBFZGdh ciBFLiBJZ2xlc2lhcyA8ZWRnYXIuaWdsZXNpYXNAeGlsaW54LmNvbT4NCj4g PiBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBIb2xzZ3JvdmUgPGRhdmlkLmhvbHNn cm92ZUB4aWxpbnguY29tPg0KPiANCj4gSGkgRGF2aWQgLS0NCj4gDQo+IFRo ZSBwYXRjaCBpcyBPSyBleGNlcHQgZm9yIGEgbnVtYmVyIG9mIG1pbm9yIGZv cm1hdHRpbmcgcHJvYmxlbXMgdG8gbWVldCBHTlUNCj4gc3RhbmRhcmRzLg0K PiAtIENvbW1lbnRzIGFyZSBzdXBwb3NlZCB0byBlbmQgd2l0aCAiLiAgKi8i Lg0KPiAtIEV4dHJhIHNwYWNpbmcgYXJvdW5kIHBhcmVucyBvciBiZXR3ZWVu ICIhIiBhbmQgIlRBUkdFVC4uLiIuDQo+IC0gJiYgb3IgfHwgYXQgc3RhcnQg b2YgbGluZSBjb250aW51aW5nIGEgY29uZGl0aW9uIHJhdGhlciB0aGF0IGF0 IGVuZCBvZiBwcmV2aW91cyBsaW5lDQo+IC0gU29tZSBwbGFjZXMgd2hlcmUg dGhlIGluZGVudGluZyBpcyBpbmNvcnJlY3QNCj4gDQoNClRoYW5rcyBmb3Ig dGhlIHJldmlldywgd2UgaW5oZXJpdGVkIHNvbWUgb2YgdGhlIHN0eWxlIGRl dmlhdGlvbnMgd2hlbiBiYXNpbmcgb2ZmDQpvZiBvdGhlciBhcmNocyBUTFMg ZnVuY3Rpb25zIEknbSBhZnJhaWQuIEkndmUgZml4ZWQgdGhlIGZvcm1hdHRp bmcgaW4gdjIgb2YgdGhlIHBhdGNoDQphdHRhY2hlZC4NCg0KPiBTaG91bGQg dGhpcyBwYXRjaCBiZSBjb21iaW5lZCB3aXRoIHRoZSBvdGhlciBwYXRjaCBh ZGRpbmcgVExTIGNoZWNraW5nIHRvDQo+IGNvbmZpZ3VyZT8NCj4gDQoNCkkn dmUgY29tYmluZWQgYm90aCBwYXRjaGVzIGludG8gdGhlIGF0dGFjaGVkIC0g bG9va2luZyBiYWNrIGF0IHRoZSBBUk0gVExTIHBhdGNoDQppdCB3YXMgc3Vi bWl0dGVkIHRoaXMgd2F5LCBzbyB3ZSdsbCBmb2xsb3cgcHJlY2VkZW5jZSB0 aGVyZSBpZiB0aGF04oCZcyBva2F5IHdpdGgNCnlvdS4NCg0KVXBkYXRlZCBD aGFuZ2Vsb2cgd291bGQgYmU7DQoNCjIwMTMtMDMtMTQgRWRnYXIgRS4gSWds ZXNpYXMgPGVkZ2FyLmlnbGVzaWFzQHhpbGlueC5jb20+DQogICAgICAgICAg IERhdmlkIEhvbHNncm92ZSA8ZGF2aWQuaG9sc2dyb3ZlQHhpbGlueC5jb20+ DQoNCiAqIGNvbmZpZ3VyZS5hYzogQWRkIE1pY3JvQmxhemUgVExTIHN1cHBv cnQgZGV0ZWN0aW9uLg0KICogY29uZmlndXJlOiBSZWdlbmVyYXRlLg0KICog Y29uZmlnL21pY3JvYmxhemUvbWljcm9ibGF6ZS1wcm90b3MuaDogKG1pY3Jv YmxhemVfY2Fubm90X2ZvcmNlX2NvbnN0X21lbSwNCiAgIG1pY3JvYmxhemVf dGxzX3JlZmVyZW5jZWRfcCwgc3ltYm9sX21lbnRpb25lZF9wLA0KICAgbGFi ZWxfbWVudGlvbmVkX3ApOiBBZGQgcHJvdG90eXBlcy4NCiAqIGNvbmZpZy9t aWNyb2JsYXplL21pY3JvYmxhemUuYyAobWljcm9ibGF6ZV9hZGRyZXNzX3R5 cGUpOiBBZGQgQUREUkVTU19UTFMNCiAgIGFuZCB0bHNfcmVsb2MgYWRkcmVz cyB0eXBlcy4NCiAgIChtaWNyb2JsYXplX2FkZHJlc3NfaW5mbyk6IEFkZCB0 bHNfcmVsb2MuDQogICAoVEFSR0VUX0hBVkVfVExTKTogRGVmaW5lLg0KICAg KGdldF90bHNfZ2V0X2FkZHIsIG1pY3JvYmxhemVfdGxzX3N5bWJvbF9wLCBt aWNyb2JsYXplX3Rsc19vcGVyYW5kX3BfMSwNCiAgICBtaWNyb2JsYXplX3Rs c19yZWZlcmVuY2VkX3AsIG1pY3JvYmxhemVfY2Fubm90X2ZvcmNlX2NvbnN0 X21lbSwNCiAgICBzeW1ib2xfbWVudGlvbmVkX3AsIGxhYmVsX21lbnRpb25l ZF9wLCB0bHNfbWVudGlvbmVkX3AsIGxvYWRfdGxzX29wZXJhbmQsDQogICAg bWljcm9ibGF6ZV9jYWxsX3Rsc19nZXRfYWRkciwgbWljcm9ibGF6ZV9sZWdp dGltaXplX3Rsc19hZGRyZXNzKTogTmV3IGZ1bmN0aW9ucy4NCiAgIChtaWNy b2JsYXplX2NsYXNzaWZ5X3Vuc3BlYyk6IEhhbmRsZSBVTlNQRUNfVExTLg0K ICAgKGdldF9iYXNlX3JlZyk6IFVzZSBtaWNyb2JsYXplX3Rsc19zeW1ib2xf cC4NCiAgIChtaWNyb2JsYXplX2NsYXNzaWZ5X2FkZHJlc3MpOiBIYW5kbGUg VExTLg0KICAgKG1pY3JvYmxhemVfbGVnaXRpbWF0ZV9waWNfb3BlcmFuZCk6 IFVzZSBzeW1ib2xfbWVudGlvbmVkX3AsIGxhYmVsX21lbnRpb25lZF9wDQog ICAgYW5kIG1pY3JvYmxhemVfdGxzX3JlZmVyZW5jZWRfcC4NCiAgIChtaWNy b2JsYXplX2xlZ2l0aW1pemVfYWRkcmVzcyk6IEhhbmRsZSBUTFMuDQogICAo bWljcm9ibGF6ZV9hZGRyZXNzX2luc25zKTogSGFuZGxlIEFERFJFU1NfVExT Lg0KICAgKHBpY19hZGRyZXNzX25lZWRzX3NjcmF0Y2gpOiBIYW5kbGUgVExT Lg0KICAgKHByaW50X29wZXJhbmRfYWRkcmVzcyk6IEhhbmRsZSBUTFMuDQog ICAobWljcm9ibGF6ZV9leHBhbmRfcHJvbG9ndWUpOiBDaGVjayBUTFNfTkVF RFNfR09ULg0KICAgKG1pY3JvYmxhemVfZXhwYW5kX21vdmUpOiBIYW5kbGUg VExTLg0KICAgKG1pY3JvYmxhemVfbGVnaXRpbWF0ZV9jb25zdGFudF9wKTog Q2hlY2sgbWljcm9ibGF6ZV9jYW5ub3RfZm9yY2VfY29uc3RfbWVtDQogICAg YW5kIG1pY3JvYmxhemVfdGxzX3N5bWJvbF9wLg0KICAgKFRBUkdFVF9DQU5O T1RfRk9SQ0VfQ09OU1RfTUVNKTogRGVmaW5lLg0KICogY29uZmlnL21pY3Jv YmxhemUvbWljcm9ibGF6ZS5oIChUTFNfTkVFRFNfR09UKTogRGVmaW5lDQog ICAoUElDX09GRlNFVF9UQUJMRV9SRUdOVU0pOiBTZXQuDQogKiBjb25maWcv bWljcm9ibGF6ZS9saW51eC5oIChUTFNfTkVFRFNfR09UKTogRGVmaW5lLg0K ICogY29uZmlnL21pY3JvYmxhemUvbWljcm9ibGF6ZS5tZCAoVU5TUEVDX1RM Uyk6IERlZmluZS4NCiAgIChhZGRzaTMsIG1vdnNpX2ludGVybmFsMiwgbW92 ZGZfaW50ZXJuYWwpOiBVcGRhdGUgY29uc3RyYWludHMNCiAqIGNvbmZpZy9t aWNyb2JsYXplL3ByZWRpY2F0ZXMubWQgKGFyaXRoX3BsdXNfb3BlcmFuZCk6 IERlZmluZQ0KICAgKG1vdmVfb3BlcmFuZCk6IFJlZGVmaW5lIGFzIG1vdmVf c3JjX29wZXJhbmQsIGNoZWNrIG1pY3JvYmxhemVfdGxzX3JlZmVyZW5jZWRf cC4NCg0KU2lnbmVkLW9mZi1ieTogRWRnYXIgRS4gSWdsZXNpYXMgPGVkZ2Fy LmlnbGVzaWFzQHhpbGlueC5jb20+DQpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBI b2xzZ3JvdmUgPGRhdmlkLmhvbHNncm92ZUB4aWxpbnguY29tPg0KDQoNCnRo YW5rcyBhZ2FpbiwNCkRhdmlkDQoNCj4gDQo+IC0tDQo+IE1pY2hhZWwgRWFn ZXIJIGVhZ2VyQGVhZ2VyY29uLmNvbQ0KPiAxOTYwIFBhcmsgQmx2ZC4sIFBh bG8gQWx0bywgQ0EgOTQzMDYgIDY1MC0zMjUtODA3Nw0KDQoKCg== --_002_9A6AC1C7F3D8BE4087EF9E18D31945D9044C0EXAPPVEXMBX01xlnxx_ Content-Type: application/octet-stream; name="0001-Patch-microblaze-Add-support-for-TLS-in-MicroBlaze.patch" Content-Description: 0001-Patch-microblaze-Add-support-for-TLS-in-MicroBlaze.patch Content-Disposition: attachment; filename="0001-Patch-microblaze-Add-support-for-TLS-in-MicroBlaze.patch"; size=33279; creation-date="Thu, 14 Mar 2013 08:02:59 GMT"; modification-date="Thu, 14 Mar 2013 07:55:46 GMT" Content-Transfer-Encoding: base64 Content-length: 45112 RnJvbSAwODczOTdhYTMzNWMwODJmMjYxNTZkMTlmZDMxNmNkNGUwNjk4MTVk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHb3BpIDxnb3BpQGxp bnV4NjkuKG5vbmUpPgpEYXRlOiBNb24sIDE1IE1hciAyMDEwIDEyOjQ2OjA5 ICswNTMwClN1YmplY3Q6IFtQQVRDSF0gW1BhdGNoLCBtaWNyb2JsYXplXTog QWRkIHN1cHBvcnQgZm9yIFRMUyBpbiBNaWNyb0JsYXplCgpDaGFuZ2Vsb2cK CjIwMTMtMDMtMTQgRWRnYXIgRS4gSWdsZXNpYXMgPGVkZ2FyLmlnbGVzaWFz QHhpbGlueC5jb20+CiAgICAgICAgICAgRGF2aWQgSG9sc2dyb3ZlIDxkYXZp ZC5ob2xzZ3JvdmVAeGlsaW54LmNvbT4KCiAqIGNvbmZpZ3VyZS5hYzogQWRk IE1pY3JvQmxhemUgVExTIHN1cHBvcnQgZGV0ZWN0aW9uLgogKiBjb25maWd1 cmU6IFJlZ2VuZXJhdGUuCiAqIGNvbmZpZy9taWNyb2JsYXplL21pY3JvYmxh emUtcHJvdG9zLmg6IChtaWNyb2JsYXplX2Nhbm5vdF9mb3JjZV9jb25zdF9t ZW0sCiAgIG1pY3JvYmxhemVfdGxzX3JlZmVyZW5jZWRfcCwgc3ltYm9sX21l bnRpb25lZF9wLAogICBsYWJlbF9tZW50aW9uZWRfcCk6IEFkZCBwcm90b3R5 cGVzLgogKiBjb25maWcvbWljcm9ibGF6ZS9taWNyb2JsYXplLmMgKG1pY3Jv YmxhemVfYWRkcmVzc190eXBlKTogQWRkIEFERFJFU1NfVExTCiAgIGFuZCB0 bHNfcmVsb2MgYWRkcmVzcyB0eXBlcy4KICAgKG1pY3JvYmxhemVfYWRkcmVz c19pbmZvKTogQWRkIHRsc19yZWxvYy4KICAgKFRBUkdFVF9IQVZFX1RMUyk6 IERlZmluZS4KICAgKGdldF90bHNfZ2V0X2FkZHIsIG1pY3JvYmxhemVfdGxz X3N5bWJvbF9wLCBtaWNyb2JsYXplX3Rsc19vcGVyYW5kX3BfMSwKICAgIG1p Y3JvYmxhemVfdGxzX3JlZmVyZW5jZWRfcCwgbWljcm9ibGF6ZV9jYW5ub3Rf Zm9yY2VfY29uc3RfbWVtLAogICAgc3ltYm9sX21lbnRpb25lZF9wLCBsYWJl bF9tZW50aW9uZWRfcCwgdGxzX21lbnRpb25lZF9wLCBsb2FkX3Rsc19vcGVy YW5kLAogICAgbWljcm9ibGF6ZV9jYWxsX3Rsc19nZXRfYWRkciwgbWljcm9i bGF6ZV9sZWdpdGltaXplX3Rsc19hZGRyZXNzKTogTmV3IGZ1bmN0aW9ucy4K ICAgKG1pY3JvYmxhemVfY2xhc3NpZnlfdW5zcGVjKTogSGFuZGxlIFVOU1BF Q19UTFMuCiAgIChnZXRfYmFzZV9yZWcpOiBVc2UgbWljcm9ibGF6ZV90bHNf c3ltYm9sX3AuCiAgIChtaWNyb2JsYXplX2NsYXNzaWZ5X2FkZHJlc3MpOiBI YW5kbGUgVExTLgogICAobWljcm9ibGF6ZV9sZWdpdGltYXRlX3BpY19vcGVy YW5kKTogVXNlIHN5bWJvbF9tZW50aW9uZWRfcCwgbGFiZWxfbWVudGlvbmVk X3AKICAgIGFuZCBtaWNyb2JsYXplX3Rsc19yZWZlcmVuY2VkX3AuCiAgICht aWNyb2JsYXplX2xlZ2l0aW1pemVfYWRkcmVzcyk6IEhhbmRsZSBUTFMuCiAg IChtaWNyb2JsYXplX2FkZHJlc3NfaW5zbnMpOiBIYW5kbGUgQUREUkVTU19U TFMuCiAgIChwaWNfYWRkcmVzc19uZWVkc19zY3JhdGNoKTogSGFuZGxlIFRM Uy4KICAgKHByaW50X29wZXJhbmRfYWRkcmVzcyk6IEhhbmRsZSBUTFMuCiAg IChtaWNyb2JsYXplX2V4cGFuZF9wcm9sb2d1ZSk6IENoZWNrIFRMU19ORUVE U19HT1QuCiAgIChtaWNyb2JsYXplX2V4cGFuZF9tb3ZlKTogSGFuZGxlIFRM Uy4KICAgKG1pY3JvYmxhemVfbGVnaXRpbWF0ZV9jb25zdGFudF9wKTogQ2hl Y2sgbWljcm9ibGF6ZV9jYW5ub3RfZm9yY2VfY29uc3RfbWVtCiAgICBhbmQg bWljcm9ibGF6ZV90bHNfc3ltYm9sX3AuCiAgIChUQVJHRVRfQ0FOTk9UX0ZP UkNFX0NPTlNUX01FTSk6IERlZmluZS4KICogY29uZmlnL21pY3JvYmxhemUv bWljcm9ibGF6ZS5oIChUTFNfTkVFRFNfR09UKTogRGVmaW5lCiAgIChQSUNf T0ZGU0VUX1RBQkxFX1JFR05VTSk6IFNldC4KICogY29uZmlnL21pY3JvYmxh emUvbGludXguaCAoVExTX05FRURTX0dPVCk6IERlZmluZS4KICogY29uZmln L21pY3JvYmxhemUvbWljcm9ibGF6ZS5tZCAoVU5TUEVDX1RMUyk6IERlZmlu ZS4KICAgKGFkZHNpMywgbW92c2lfaW50ZXJuYWwyLCBtb3ZkZl9pbnRlcm5h bCk6IFVwZGF0ZSBjb25zdHJhaW50cwogKiBjb25maWcvbWljcm9ibGF6ZS9w cmVkaWNhdGVzLm1kIChhcml0aF9wbHVzX29wZXJhbmQpOiBEZWZpbmUKICAg KG1vdmVfb3BlcmFuZCk6IFJlZGVmaW5lIGFzIG1vdmVfc3JjX29wZXJhbmQs IGNoZWNrIG1pY3JvYmxhemVfdGxzX3JlZmVyZW5jZWRfcC4KClNpZ25lZC1v ZmYtYnk6IEVkZ2FyIEUuIElnbGVzaWFzIDxlZGdhci5pZ2xlc2lhc0BnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIEhvbHNncm92ZSA8ZGF2aWQu aG9sc2dyb3ZlQHhpbGlueC5jb20+Ci0tLQogZ2NjL2NvbmZpZy9taWNyb2Js YXplL2xpbnV4LmggICAgICAgICAgICAgfCAgICAzICsKIGdjYy9jb25maWcv bWljcm9ibGF6ZS9taWNyb2JsYXplLXByb3Rvcy5oIHwgICAgNCArCiBnY2Mv Y29uZmlnL21pY3JvYmxhemUvbWljcm9ibGF6ZS5jICAgICAgICB8ICA1OTgg KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIGdjYy9jb25maWcvbWlj cm9ibGF6ZS9taWNyb2JsYXplLmggICAgICAgIHwgICAgNyArLQogZ2NjL2Nv bmZpZy9taWNyb2JsYXplL21pY3JvYmxhemUubWQgICAgICAgfCAgIDE5ICst CiBnY2MvY29uZmlnL21pY3JvYmxhemUvcHJlZGljYXRlcy5tZCAgICAgICB8 ICAgNTcgKysrLQogZ2NjL2NvbmZpZ3VyZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDEyICsKIGdjYy9jb25maWd1cmUuYWMgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAxMiArCiA4IGZpbGVzIGNoYW5nZWQsIDU4 NyBpbnNlcnRpb25zKCspLCAxMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9taWNyb2JsYXplL2xpbnV4LmggYi9nY2MvY29uZmln L21pY3JvYmxhemUvbGludXguaAppbmRleCBlY2E3Nzc2Li5hN2I3YTFhIDEw MDY0NAotLS0gYS9nY2MvY29uZmlnL21pY3JvYmxhemUvbGludXguaAorKysg Yi9nY2MvY29uZmlnL21pY3JvYmxhemUvbGludXguaApAQCAtMjIsNiArMjIs OSBAQAogI3VuZGVmIFRBUkdFVF9TVVBQT1JUU19QSUMKICNkZWZpbmUgVEFS R0VUX1NVUFBPUlRTX1BJQyAxCiAKKyN1bmRlZiBUTFNfTkVFRFNfR09UCisj ZGVmaW5lIFRMU19ORUVEU19HT1QgMQorCiAjZGVmaW5lIERZTkFNSUNfTElO S0VSICIvbGliL2xkLnNvLjEiCiAjdW5kZWYgIFNVQlRBUkdFVF9FWFRSQV9T UEVDUwogI2RlZmluZSBTVUJUQVJHRVRfRVhUUkFfU1BFQ1MgXApkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9taWNyb2JsYXplL21pY3JvYmxhemUtcHJvdG9z LmggYi9nY2MvY29uZmlnL21pY3JvYmxhemUvbWljcm9ibGF6ZS1wcm90b3Mu aAppbmRleCBlMTk5MzlmLi4zNGJlNzZmIDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL21pY3JvYmxhemUvbWljcm9ibGF6ZS1wcm90b3MuaAorKysgYi9nY2Mv Y29uZmlnL21pY3JvYmxhemUvbWljcm9ibGF6ZS1wcm90b3MuaApAQCAtNTAs NiArNTAsMTAgQEAgZXh0ZXJuIHZvaWQgbWljcm9ibGF6ZV9kZWNsYXJlX29i amVjdCAoRklMRSAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwKICAg IGNvbnN0IGNoYXIgKiwgaW50KTsKIGV4dGVybiB2b2lkIG1pY3JvYmxhemVf YXNtX291dHB1dF9pZGVudCAoY29uc3QgY2hhciAqKTsKIGV4dGVybiBpbnQg bWljcm9ibGF6ZV9sZWdpdGltYXRlX3BpY19vcGVyYW5kIChydHgpOworZXh0 ZXJuIGJvb2wgbWljcm9ibGF6ZV90bHNfcmVmZXJlbmNlZF9wIChydHgpOwor ZXh0ZXJuIGludCBzeW1ib2xfbWVudGlvbmVkX3AgKHJ0eCk7CitleHRlcm4g aW50IGxhYmVsX21lbnRpb25lZF9wIChydHgpOworZXh0ZXJuIGJvb2wgbWlj cm9ibGF6ZV9jYW5ub3RfZm9yY2VfY29uc3RfbWVtIChlbnVtIG1hY2hpbmVf bW9kZSwgcnR4KTsKICNlbmRpZiAgLyogUlRYX0NPREUgKi8KIAogLyogRGVj bGFyZSBmdW5jdGlvbnMgaW4gbWljcm9ibGF6ZS1jLmMuICAqLwpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9taWNyb2JsYXplL21pY3JvYmxhemUuYyBiL2dj Yy9jb25maWcvbWljcm9ibGF6ZS9taWNyb2JsYXplLmMKaW5kZXggM2E1Mjk5 NC4uMDU1NjM2NSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9taWNyb2JsYXpl L21pY3JvYmxhemUuYworKysgYi9nY2MvY29uZmlnL21pY3JvYmxhemUvbWlj cm9ibGF6ZS5jCkBAIC04NCw3ICs4NCw4IEBAIGVudW0gbWljcm9ibGF6ZV9h ZGRyZXNzX3R5cGUKICAgQUREUkVTU19DT05TVF9JTlQsCiAgIEFERFJFU1Nf U1lNQk9MSUMsCiAgIEFERFJFU1NfR09UT0ZGLAotICBBRERSRVNTX1BMVAor ICBBRERSRVNTX1BMVCwKKyAgQUREUkVTU19UTFMKIH07CiAKIC8qIENsYXNz aWZpZXMgc3ltYm9scwpAQCAtOTgsNiArOTksMTUgQEAgZW51bSBtaWNyb2Js YXplX3N5bWJvbF90eXBlCiAgIFNZTUJPTF9UWVBFX0dFTkVSQUwKIH07CiAK Ky8qIFRMUyBBZGRyZXNzIFR5cGUuICAqLworZW51bSB0bHNfcmVsb2Mgewor ICBUTFNfR0QsCisgIFRMU19MRE0sCisgIFRMU19EVFBSRUwsCisgIFRMU19J RSwKKyAgVExTX0xFCit9OworCiAvKiBDbGFzc2lmaWNhdGlvbiBvZiBhIE1p Y3JvQmxhemUgYWRkcmVzcy4gICovCiBzdHJ1Y3QgbWljcm9ibGF6ZV9hZGRy ZXNzX2luZm8KIHsKQEAgLTEwOCw2ICsxMTgsNyBAQCBzdHJ1Y3QgbWljcm9i bGF6ZV9hZGRyZXNzX2luZm8KICAgcnR4IG9mZnNldDsgCS8qIENvbnRhaW5z IHZhbGlkIHZhbHVlcyBvbiBBRERSRVNTX0NPTlNUX0lOVCBhbmQgQUREUkVT U19SRUcuICAqLwogICBydHggc3ltYm9sOyAJLyogQ29udGFpbnMgdmFsaWQg dmFsdWVzIG9uIEFERFJFU1NfU1lNQk9MSUMuICAqLwogICBlbnVtIG1pY3Jv YmxhemVfc3ltYm9sX3R5cGUgc3ltYm9sX3R5cGU7CisgIGVudW0gdGxzX3Jl bG9jIHRsc190eXBlOwogfTsKIAogLyogU3RydWN0dXJlIHRvIGJlIGZpbGxl ZCBpbiBieSBjb21wdXRlX2ZyYW1lX3NpemUgd2l0aCByZWdpc3RlcgpAQCAt MjE1LDYgKzIyNiwxMSBAQCBzdGF0aWMgaW50IG1pY3JvYmxhemVfaW50ZXJy dXB0X2Z1bmN0aW9uX3AgKHRyZWUpOwogCiBzZWN0aW9uICpzZGF0YTJfc2Vj dGlvbjsKIAorI2lmZGVmIEhBVkVfQVNfVExTCisjdW5kZWYgVEFSR0VUX0hB VkVfVExTCisjZGVmaW5lIFRBUkdFVF9IQVZFX1RMUyB0cnVlCisjZW5kaWYK KwogLyogUmV0dXJuIHRydXRoIHZhbHVlIGlmIGEgQ09OU1RfRE9VQkxFIGlz IG9rIHRvIGJlIGEgbGVnaXRpbWF0ZSBjb25zdGFudC4gICovCiBzdGF0aWMg Ym9vbAogbWljcm9ibGF6ZV9jb25zdF9kb3VibGVfb2sgKHJ0eCBvcCwgZW51 bSBtYWNoaW5lX21vZGUgbW9kZSkKQEAgLTI4Nyw2ICszMDMsOSBAQCBzaW1w bGVfbWVtb3J5X29wZXJhbmQgKHJ0eCBvcCwgZW51bSBtYWNoaW5lX21vZGUg bW9kZSBBVFRSSUJVVEVfVU5VU0VEKQogICAgICAgcGx1czAgPSBYRVhQIChh ZGRyLCAwKTsKICAgICAgIHBsdXMxID0gWEVYUCAoYWRkciwgMSk7CiAKKyAg ICAgIGlmIChHRVRfQ09ERSAocGx1czApICE9IFJFRykKKyAgICAgICAgcmV0 dXJuIDA7CisKICAgICAgIGlmIChHRVRfQ09ERSAocGx1czApID09IFJFRyAm JiBHRVRfQ09ERSAocGx1czEpID09IENPTlNUX0lOVAogCSAgJiYgU01BTExf SU5UIChwbHVzMSkpCiAJewpAQCAtMzg2LDYgKzQwNSwyMjcgQEAgbWljcm9i bGF6ZV92YWxpZF9iYXNlX3JlZ2lzdGVyX3AgKHJ0eCB4LAogCSAgJiYgbWlj cm9ibGF6ZV9yZWdub19va19mb3JfYmFzZV9wIChSRUdOTyAoeCksIHN0cmlj dCkpOwogfQogCisvKiBCdWlsZCB0aGUgU1lNQk9MX1JFRiBmb3IgX190bHNf Z2V0X2FkZHIuICAqLworCitzdGF0aWMgR1RZKCgpKSBydHggdGxzX2dldF9h ZGRyX2xpYmZ1bmM7CisKK3N0YXRpYyBydHgKK2dldF90bHNfZ2V0X2FkZHIg KHZvaWQpCit7CisgIGlmICghdGxzX2dldF9hZGRyX2xpYmZ1bmMpCisgICAg dGxzX2dldF9hZGRyX2xpYmZ1bmMgPSBpbml0X29uZV9saWJmdW5jICgiX190 bHNfZ2V0X2FkZHIiKTsKKyAgcmV0dXJuIHRsc19nZXRfYWRkcl9saWJmdW5j OworfQorCisvKiBSZXR1cm4gVFJVRSBpZiBYIGlzIGEgdGhyZWFkLWxvY2Fs IHN5bWJvbC4gICovCitib29sCittaWNyb2JsYXplX3Rsc19zeW1ib2xfcCAo cnR4IHgpCit7CisgIGlmICghVEFSR0VUX0hBVkVfVExTKQorICAgIHJldHVy biBmYWxzZTsKKworICBpZiAoR0VUX0NPREUgKHgpICE9IFNZTUJPTF9SRUYp CisgICAgcmV0dXJuIGZhbHNlOworCisgIHJldHVybiBTWU1CT0xfUkVGX1RM U19NT0RFTCAoeCkgIT0gMDsKK30KKworc3RhdGljIGludAorbWljcm9ibGF6 ZV90bHNfb3BlcmFuZF9wXzEgKHJ0eCAqeCwgdm9pZCAqZGF0YSBBVFRSSUJV VEVfVU5VU0VEKQoreworICBpZiAoR0VUX0NPREUgKCp4KSA9PSBTWU1CT0xf UkVGKQorICAgIHJldHVybiBTWU1CT0xfUkVGX1RMU19NT0RFTCAoKngpICE9 IDA7CisKKyAgLyogRG9uJ3QgcmVjdXJzZSBpbnRvIFVOU1BFQ19UTFMgbG9v a2luZyBmb3IgVExTIHN5bWJvbHM7IHRoZXNlIGFyZQorICAgICBUTFMgb2Zm c2V0cywgbm90IHJlYWwgc3ltYm9sIHJlZmVyZW5jZXMuICAqLworICBpZiAo R0VUX0NPREUgKCp4KSA9PSBVTlNQRUMgJiYgWElOVCAoKngsIDEpID09IFVO U1BFQ19UTFMpCisgICAgcmV0dXJuIC0xOworCisgIHJldHVybiAwOworfQor CisvKiBSZXR1cm4gVFJVRSBpZiBYIGNvbnRhaW5zIGFueSBUTFMgc3ltYm9s IHJlZmVyZW5jZXMuICAqLworCitib29sCittaWNyb2JsYXplX3Rsc19yZWZl cmVuY2VkX3AgKHJ0eCB4KQoreworICBpZiAoIVRBUkdFVF9IQVZFX1RMUykK KyAgICByZXR1cm4gZmFsc2U7CisKKyAgcmV0dXJuIGZvcl9lYWNoX3J0eCAo JngsIG1pY3JvYmxhemVfdGxzX29wZXJhbmRfcF8xLCBOVUxMKTsKK30KKwor Ym9vbAorbWljcm9ibGF6ZV9jYW5ub3RfZm9yY2VfY29uc3RfbWVtIChlbnVt IG1hY2hpbmVfbW9kZSBtb2RlIEFUVFJJQlVURV9VTlVTRUQsIHJ0eCB4KQor eworICByZXR1cm4gbWljcm9ibGF6ZV90bHNfcmVmZXJlbmNlZF9wKHgpOwor fQorCisvKiBSZXR1cm4gVFJVRSBpZiBYIHJlZmVyZW5jZXMgYSBTWU1CT0xf UkVGLiAgKi8KK2ludAorc3ltYm9sX21lbnRpb25lZF9wIChydHggeCkKK3sK KyAgY29uc3QgY2hhciAqIGZtdDsKKyAgaW50IGk7CisKKyAgaWYgKEdFVF9D T0RFICh4KSA9PSBTWU1CT0xfUkVGKQorICAgIHJldHVybiAxOworCisgIC8q IFVOU1BFQyBlbnRyaWVzIGZvciBhIHN5bWJvbCBpbmNsdWRlIHRoZSBTWU1C T0xfUkVGLCBidXQgdGhleQorICAgICBhcmUgY29uc3RhbnQgb2Zmc2V0cywg bm90IHN5bWJvbHMuICAqLworICBpZiAoR0VUX0NPREUgKHgpID09IFVOU1BF QykKKyAgICByZXR1cm4gMDsKKworICBmbXQgPSBHRVRfUlRYX0ZPUk1BVCAo R0VUX0NPREUgKHgpKTsKKworICBmb3IgKGkgPSBHRVRfUlRYX0xFTkdUSCAo R0VUX0NPREUgKHgpKSAtIDE7IGkgPj0gMDsgaS0tKQorICAgIHsKKyAgICAg IGlmIChmbXRbaV0gPT0gJ0UnKQorICAgICAgICB7CisgICAgICAgICAgaW50 IGo7CisKKyAgICAgICAgICBmb3IgKGogPSBYVkVDTEVOICh4LCBpKSAtIDE7 IGogPj0gMDsgai0tKQorICAgICAgICAgICAgaWYgKHN5bWJvbF9tZW50aW9u ZWRfcCAoWFZFQ0VYUCAoeCwgaSwgaikpKQorICAgICAgICAgICAgICByZXR1 cm4gMTsKKyAgICAgICAgfQorICAgICAgZWxzZSBpZiAoZm10W2ldID09ICdl JyAmJiBzeW1ib2xfbWVudGlvbmVkX3AgKFhFWFAgKHgsIGkpKSkKKyAgICAg ICAgcmV0dXJuIDE7CisgICAgfQorCisgIHJldHVybiAwOworfQorCisvKiBS ZXR1cm4gVFJVRSBpZiBYIHJlZmVyZW5jZXMgYSBMQUJFTF9SRUYuICAqLwor aW50CitsYWJlbF9tZW50aW9uZWRfcCAocnR4IHgpCit7CisgIGNvbnN0IGNo YXIgKiBmbXQ7CisgIGludCBpOworCisgIGlmIChHRVRfQ09ERSAoeCkgPT0g TEFCRUxfUkVGKQorICAgIHJldHVybiAxOworCisgIC8qIFVOU1BFQyBlbnRy aWVzIGZvciBhIHN5bWJvbCBpbmNsdWRlIGEgTEFCRUxfUkVGIGZvciB0aGUg cmVmZXJlbmNpbmcKKyAgICAgaW5zdHJ1Y3Rpb24sIGJ1dCB0aGV5IGFyZSBj b25zdGFudCBvZmZzZXRzLCBub3Qgc3ltYm9scy4gICovCisgIGlmIChHRVRf Q09ERSAoeCkgPT0gVU5TUEVDKQorICAgIHJldHVybiAwOworCisgIGZtdCA9 IEdFVF9SVFhfRk9STUFUIChHRVRfQ09ERSAoeCkpOworICBmb3IgKGkgPSBH RVRfUlRYX0xFTkdUSCAoR0VUX0NPREUgKHgpKSAtIDE7IGkgPj0gMDsgaS0t KQorICAgIHsKKyAgICAgIGlmIChmbXRbaV0gPT0gJ0UnKQorICAgICAgICB7 CisgICAgICAgICAgaW50IGo7CisKKyAgICAgICAgICBmb3IgKGogPSBYVkVD TEVOICh4LCBpKSAtIDE7IGogPj0gMDsgai0tKQorICAgICAgICAgICAgaWYg KGxhYmVsX21lbnRpb25lZF9wIChYVkVDRVhQICh4LCBpLCBqKSkpCisgICAg ICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICBlbHNlIGlm IChmbXRbaV0gPT0gJ2UnICYmIGxhYmVsX21lbnRpb25lZF9wIChYRVhQICh4 LCBpKSkpCisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICByZXR1cm4g MDsKK30KKworaW50Cit0bHNfbWVudGlvbmVkX3AgKHJ0eCB4KQoreworICBz d2l0Y2ggKEdFVF9DT0RFICh4KSkKKyAgICB7CisgICAgICBjYXNlIENPTlNU OgorICAgICAgICByZXR1cm4gdGxzX21lbnRpb25lZF9wIChYRVhQICh4LCAw KSk7CisKKyAgICAgIGNhc2UgVU5TUEVDOgorICAgICAgICBpZiAoWElOVCAo eCwgMSkgPT0gVU5TUEVDX1RMUykKKyAgICAgICAgICByZXR1cm4gMTsKKwor ICAgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQor CitzdGF0aWMgcnR4Citsb2FkX3Rsc19vcGVyYW5kIChydHggeCwgcnR4IHJl ZykKK3sKKyAgcnR4IHRtcDsKKworICBpZiAocmVnID09IE5VTExfUlRYKQor ICAgIHJlZyA9IGdlbl9yZWdfcnR4IChQbW9kZSk7CisKKyAgdG1wID0gZ2Vu X3J0eF9DT05TVCAoUG1vZGUsIHgpOworCisgIGVtaXRfaW5zbiAoZ2VuX3J0 eF9TRVQgKFZPSURtb2RlLCByZWcsCisgICAgICAgICAgICAgICAgICAgICAg ICAgIGdlbl9ydHhfUExVUyAoUG1vZGUsIHBpY19vZmZzZXRfdGFibGVfcnR4 LCB0bXApKSk7CisKKyAgcmV0dXJuIHJlZzsKK30KKworc3RhdGljIHJ0eAor bWljcm9ibGF6ZV9jYWxsX3Rsc19nZXRfYWRkciAocnR4IHgsIHJ0eCByZWcs IHJ0eCAqdmFsdWVwLCBpbnQgcmVsb2MpCit7CisgIHJ0eCBpbnNucywgdGxz X2VudHJ5OworCisgIGRmX3NldF9yZWdzX2V2ZXJfbGl2ZSAoUElDX09GRlNF VF9UQUJMRV9SRUdOVU0sIHRydWUpOworCisgIHN0YXJ0X3NlcXVlbmNlICgp OworCisgIHRsc19lbnRyeSA9IGdlbl9ydHhfVU5TUEVDIChQbW9kZSwgZ2Vu X3J0dmVjICgyLCB4LCBHRU5fSU5UIChyZWxvYykpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFVOU1BFQ19UTFMpOworCisgIHJl ZyA9IGxvYWRfdGxzX29wZXJhbmQgKHRsc19lbnRyeSwgcmVnKTsKKworICAq dmFsdWVwID0gZW1pdF9saWJyYXJ5X2NhbGxfdmFsdWUgKGdldF90bHNfZ2V0 X2FkZHIgKCksIE5VTExfUlRYLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExDVF9QVVJFLCAvKiBMQ1RfQ09OU1Q/ICAqLworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBtb2RlLCAxLCBy ZWcsIFBtb2RlKTsKKworICBpbnNucyA9IGdldF9pbnNucyAoKTsKKyAgZW5k X3NlcXVlbmNlICgpOworCisgIHJldHVybiBpbnNuczsKK30KKworcnR4Citt aWNyb2JsYXplX2xlZ2l0aW1pemVfdGxzX2FkZHJlc3MocnR4IHgsIHJ0eCBy ZWcpCit7CisgIHJ0eCBkZXN0LCBpbnNucywgcmV0LCBlcXYsIGFkZGVuZDsK KyAgZW51bSB0bHNfbW9kZWwgbW9kZWw7CisgIG1vZGVsID0gU1lNQk9MX1JF Rl9UTFNfTU9ERUwgKHgpOworCisgIHN3aXRjaCAobW9kZWwpCisgICAgewor ICAgICAgIGNhc2UgVExTX01PREVMX0xPQ0FMX0RZTkFNSUM6CisgICAgICAg Y2FzZSBUTFNfTU9ERUxfR0xPQkFMX0RZTkFNSUM6CisgICAgICAgY2FzZSBU TFNfTU9ERUxfSU5JVElBTF9FWEVDOgorICAgICAgICAgICBpbnNucyA9IG1p Y3JvYmxhemVfY2FsbF90bHNfZ2V0X2FkZHIgKHgsIHJlZywgJnJldCwgVExT X0dEKTsKKyAgICAgICAgICAgZGVzdCA9IGdlbl9yZWdfcnR4IChQbW9kZSk7 CisgICAgICAgICAgIGVtaXRfbGliY2FsbF9ibG9jayAoaW5zbnMsIGRlc3Qs IHJldCwgeCk7CisgICAgICAgICAgIGJyZWFrOworCisgICAgICAgY2FzZSBU TFNfTU9ERUxfTE9DQUxfRVhFQzoKKyAgICAgICAgICAgaW5zbnMgPSBtaWNy b2JsYXplX2NhbGxfdGxzX2dldF9hZGRyICh4LCByZWcsICZyZXQsIFRMU19M RE0pOworCisgICAgICAgICAgIC8qIEF0dGFjaCBhIHVuaXF1ZSBSRUdfRVFV SVYsIHRvIGFsbG93IHRoZSBSVEwgb3B0aW1pemVycyB0bworICAgICAgICAg ICAgIHNoYXJlIHRoZSBMRE0gcmVzdWx0IHdpdGggb3RoZXIgTEQgbW9kZWwg YWNjZXNzZXMuICAqLworICAgICAgICAgICBlcXYgPSBnZW5fcnR4X1VOU1BF QyAoUG1vZGUsIGdlbl9ydHZlYyAoMSwgY29uc3QxX3J0eCksCisgICAgICAg ICAgICAgICAgICAgIFVOU1BFQ19UTFMpOworICAgICAgICAgICBkZXN0ID0g Z2VuX3JlZ19ydHggKFBtb2RlKTsKKyAgICAgICAgICAgZW1pdF9saWJjYWxs X2Jsb2NrIChpbnNucywgZGVzdCwgcmV0LCBlcXYpOworCisgICAgICAgICAg IC8qIExvYWQgdGhlIGFkZGVuZC4gICovCisgICAgICAgICAgIGFkZGVuZCA9 IGdlbl9ydHhfVU5TUEVDIChQbW9kZSwgZ2VuX3J0dmVjICgyLCB4LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFTl9J TlQgKFRMU19EVFBSRUwpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBVTlNQRUNfVExTKTsKKyAgICAgICAgICAgYWRk ZW5kID0gZm9yY2VfcmVnIChTSW1vZGUsIGdlbl9ydHhfQ09OU1QgKFNJbW9k ZSwgYWRkZW5kKSk7CisgICAgICAgICAgIGRlc3QgPSBnZW5fcnR4X1BMVVMg KFBtb2RlLCBkZXN0LCBhZGRlbmQpOworICAgICAgICAgICBicmVhazsKKwor ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgIGdjY191bnJlYWNoYWJsZSAo KTsKKyAgICB9CisgIHJldHVybiBkZXN0OworfQorCiBzdGF0aWMgYm9vbAog bWljcm9ibGF6ZV9jbGFzc2lmeV91bnNwZWMgKHN0cnVjdCBtaWNyb2JsYXpl X2FkZHJlc3NfaW5mbyAqaW5mbywgcnR4IHgpCiB7CkBAIC00MDEsNiArNjQx LDExIEBAIG1pY3JvYmxhemVfY2xhc3NpZnlfdW5zcGVjIChzdHJ1Y3QgbWlj cm9ibGF6ZV9hZGRyZXNzX2luZm8gKmluZm8sIHJ0eCB4KQogICAgIHsKICAg ICAgIGluZm8tPnR5cGUgPSBBRERSRVNTX1BMVDsKICAgICB9CisgIGVsc2Ug aWYgKFhJTlQgKHgsIDEpID09IFVOU1BFQ19UTFMpCisgICAgeworICAgICAg aW5mby0+dHlwZSA9IEFERFJFU1NfVExTOworICAgICAgaW5mby0+dGxzX3R5 cGUgPSB0bHNfcmVsb2MgSU5UVkFMKFhWRUNFWFAoeCwgMCwgMSkpOworICAg IH0KICAgZWxzZQogICAgIHsKICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQz MSw3ICs2NzYsMTIgQEAgc3RhdGljIGludAogZ2V0X2Jhc2VfcmVnIChydHgg eCkKIHsKICAgdHJlZSBkZWNsOwotICBpbnQgYmFzZV9yZWcgPSAoZmxhZ19w aWMgPyBNQl9BQklfUElDX0FERFJfUkVHTlVNIDogTUJfQUJJX0JBU0VfUkVH TlVNKTsKKyAgaW50IGJhc2VfcmVnOworCisgIGlmICghZmxhZ19waWMgfHwg bWljcm9ibGF6ZV90bHNfc3ltYm9sX3AoeCkpCisgICAgYmFzZV9yZWcgPSBN Ql9BQklfQkFTRV9SRUdOVU07CisgIGVsc2UgaWYgKGZsYWdfcGljKQorICAg IGJhc2VfcmVnID0gTUJfQUJJX1BJQ19BRERSX1JFR05VTTsKIAogICBpZiAo VEFSR0VUX1hMR1BPUFQKICAgICAgICYmIEdFVF9DT0RFICh4KSA9PSBTWU1C T0xfUkVGCkBAIC01MDksMjggKzc1OSw2MSBAQCBtaWNyb2JsYXplX2NsYXNz aWZ5X2FkZHJlc3MgKHN0cnVjdCBtaWNyb2JsYXplX2FkZHJlc3NfaW5mbyAq aW5mbywgcnR4IHgsCiAJICAgICAgfQogCSAgICBlbHNlIGlmIChHRVRfQ09E RSAoeHBsdXMxKSA9PSBVTlNQRUMpCiAJICAgICAgeworCQkvKiBOZWVkIG9m ZnNldHRhYmxlIGFkZHJlc3MuICAqLworCQlpZiAoR0VUX01PREVfU0laRSAo bW9kZSkgPiBVTklUU19QRVJfV09SRCkKKwkJICByZXR1cm4gZmFsc2U7CisK IAkJcmV0dXJuIG1pY3JvYmxhemVfY2xhc3NpZnlfdW5zcGVjIChpbmZvLCB4 cGx1czEpOwogCSAgICAgIH0KIAkgICAgZWxzZSBpZiAoKEdFVF9DT0RFICh4 cGx1czEpID09IFNZTUJPTF9SRUYgfHwKLQkJICAgICAgR0VUX0NPREUgKHhw bHVzMSkgPT0gTEFCRUxfUkVGKSAmJiBmbGFnX3BpYyA9PSAyKQotCSAgICAg IHsKLQkJcmV0dXJuIGZhbHNlOwotCSAgICAgIH0KLQkgICAgZWxzZSBpZiAo R0VUX0NPREUgKHhwbHVzMSkgPT0gU1lNQk9MX1JFRiB8fAotCQkgICAgIEdF VF9DT0RFICh4cGx1czEpID09IExBQkVMX1JFRiB8fAotCQkgICAgIEdFVF9D T0RFICh4cGx1czEpID09IENPTlNUKQorCQkgICAgICBHRVRfQ09ERSAoeHBs dXMxKSA9PSBMQUJFTF9SRUYpKQogCSAgICAgIHsKLQkJaWYgKEdFVF9DT0RF IChYRVhQICh4cGx1czEsIDApKSA9PSBVTlNQRUMpCi0JCSAgcmV0dXJuIG1p Y3JvYmxhemVfY2xhc3NpZnlfdW5zcGVjIChpbmZvLCBYRVhQICh4cGx1czEs IDApKTsKLQkJZWxzZSBpZiAoZmxhZ19waWMgPT0gMikKLQkJICB7Ci0JCSAg ICByZXR1cm4gZmFsc2U7Ci0JCSAgfQorCQlpZiAoZmxhZ19waWMgPT0gMiB8 fCBtaWNyb2JsYXplX3Rsc19zeW1ib2xfcCh4cGx1czEpKQorCQkgIHJldHVy biBmYWxzZTsKIAkJaW5mby0+dHlwZSA9IEFERFJFU1NfU1lNQk9MSUM7CiAJ CWluZm8tPnN5bWJvbCA9IHhwbHVzMTsKIAkJaW5mby0+c3ltYm9sX3R5cGUg PSBTWU1CT0xfVFlQRV9HRU5FUkFMOwogCQlyZXR1cm4gdHJ1ZTsKIAkgICAg ICB9CisJICAgIGVsc2UgaWYgKEdFVF9DT0RFICh4cGx1czEpID09IENPTlNU KQorCSAgICAgIHsKKwkJcnR4IHhjb25zdDAgPSBYRVhQKHhwbHVzMSwgMCk7 CisKKwkJLyogYmFzZSArIHVuc3BlYy4gICovCisJCWlmIChHRVRfQ09ERSAo eGNvbnN0MCkgPT0gVU5TUEVDKQorCQkgIHsKKwkJICAgIC8qIE5lZWQgb2Zm c2V0dGFibGUgYWRkcmVzcy4gICovCisJCSAgICBpZiAoR0VUX01PREVfU0la RSAobW9kZSkgPiBVTklUU19QRVJfV09SRCkKKwkJICAgICAgcmV0dXJuIGZh bHNlOworCQkgICAgcmV0dXJuIG1pY3JvYmxhemVfY2xhc3NpZnlfdW5zcGVj KGluZm8sIHhjb25zdDApOworCQkgIH0KKworCQkvKiBmb3IgKHBsdXMgeCBj b25zdF9pbnQpIGp1c3QgbG9vayBhdCB4LiAgKi8KKwkJaWYgKEdFVF9DT0RF ICh4Y29uc3QwKSA9PSBQTFVTCisJCSAgICAmJiBHRVRfQ09ERSAoWEVYUCAo eGNvbnN0MCwgMSkpID09IENPTlNUX0lOVAorCQkgICAgJiYgU01BTExfSU5U IChYRVhQICh4Y29uc3QwLCAxKSkpCisJCSAgeworCQkgICAgLyogVGhpcyBp cyBvayBhcyBpbmZvLT5zeW1ib2wgaXMgc2V0IHRvIHhwbHVzMSB0aGUgZnVs bAorCQkgICAgICAgY29uc3QtZXhwcmVzc2lvbiBiZWxvdy4gICovCisJCSAg ICB4Y29uc3QwID0gWEVYUCAoeGNvbnN0MCwgMCk7CisJCSAgfQorCisJCWlm IChHRVRfQ09ERSAoeGNvbnN0MCkgPT0gU1lNQk9MX1JFRgorCQkgICAgfHwg R0VUX0NPREUgKHhjb25zdDApID09IExBQkVMX1JFRikKKwkJICB7CisJCSAg ICBpZiAoZmxhZ19waWMgPT0gMiB8fCBtaWNyb2JsYXplX3Rsc19zeW1ib2xf cCh4Y29uc3QwKSkKKwkJICAgICAgcmV0dXJuIGZhbHNlOworCisJCSAgICBp bmZvLT50eXBlID0gQUREUkVTU19TWU1CT0xJQzsKKwkJICAgIGluZm8tPnN5 bWJvbCA9IHhwbHVzMTsKKwkJICAgIGluZm8tPnN5bWJvbF90eXBlID0gU1lN Qk9MX1RZUEVfR0VORVJBTDsKKwkJICAgIHJldHVybiB0cnVlOworCQkgIH0K KworCQkvKiBOb3QgYmFzZSArIHN5bWJvbCB8fCBiYXNlICsgVU5TUEVDLiAg Ki8KKwkJcmV0dXJuIGZhbHNlOworCisJICAgICAgfQogCSAgICBlbHNlIGlm IChHRVRfQ09ERSAoeHBsdXMxKSA9PSBSRUcKIAkJICAgICAmJiBtaWNyb2Js YXplX3ZhbGlkX2luZGV4X3JlZ2lzdGVyX3AgKHhwbHVzMSwgbW9kZSwKIAkJ CQkJCQkgICBzdHJpY3QpCkBAIC01NjIsMTMgKzg0NSwyMCBAQCBtaWNyb2Js YXplX2NsYXNzaWZ5X2FkZHJlc3MgKHN0cnVjdCBtaWNyb2JsYXplX2FkZHJl c3NfaW5mbyAqaW5mbywgcnR4IHgsCiAKIAlpZiAoR0VUX0NPREUgKHgpID09 IENPTlNUKQogCSAgewotCSAgICByZXR1cm4gIShmbGFnX3BpYyAmJiBwaWNf YWRkcmVzc19uZWVkc19zY3JhdGNoICh4KSk7Ci0JICB9Ci0JZWxzZSBpZiAo ZmxhZ19waWMgPT0gMikKLQkgIHsKLQkgICAgcmV0dXJuIGZhbHNlOworCSAg ICBpZiAoR0VUX0NPREUgKFhFWFAgKHgsIDApKSA9PSBVTlNQRUMpCisJICAg ICB7CisJCWluZm8tPnJlZ0EgPSBnZW5fcnR4X3Jhd19SRUcgKG1vZGUsCisJ CQkJICBnZXRfYmFzZV9yZWcgKFhWRUNFWFAgKFhFWFAgKHgsMCksIDAsIDAp KSk7CisJCXJldHVybiBtaWNyb2JsYXplX2NsYXNzaWZ5X3Vuc3BlYyAoaW5m bywgWEVYUCAoeCwgMCkpOworCSAgICAgfQorCSAgICAgcmV0dXJuICEoZmxh Z19waWMgJiYgcGljX2FkZHJlc3NfbmVlZHNfc2NyYXRjaCAoeCkpOwogCSAg fQogCisJaWYgKGZsYWdfcGljID09IDIpCisJICByZXR1cm4gZmFsc2U7CisJ ZWxzZSBpZiAobWljcm9ibGF6ZV90bHNfc3ltYm9sX3AoeCkpCisJICByZXR1 cm4gZmFsc2U7CisKIAlyZXR1cm4gdHJ1ZTsKICAgICAgIH0KIApAQCAtNjE2 LDExICs5MDYsMTAgQEAgbWljcm9ibGF6ZV92YWxpZF9waWNfY29uc3QgKHJ0 eCB4KQogaW50CiBtaWNyb2JsYXplX2xlZ2l0aW1hdGVfcGljX29wZXJhbmQg KHJ0eCB4KQogewotICBzdHJ1Y3QgbWljcm9ibGF6ZV9hZGRyZXNzX2luZm8g YWRkcjsKLQotICBpZiAocGljX2FkZHJlc3NfbmVlZHNfc2NyYXRjaCAoeCkp CisgIGlmIChmbGFnX3BpYyA9PSAyICYmIChzeW1ib2xfbWVudGlvbmVkX3Ao eCkgfHwgbGFiZWxfbWVudGlvbmVkX3AoeCkpKQogICAgIHJldHVybiAwOwot ICBpZiAoIW1pY3JvYmxhemVfdmFsaWRfcGljX2NvbnN0KHgpKQorCisgIGlm IChtaWNyb2JsYXplX3Rsc19yZWZlcmVuY2VkX3AoeCkpCiAgICAgcmV0dXJu IDA7CiAKICAgcmV0dXJuIDE7CkBAIC03MDYsNyArOTk1LDcgQEAgbWljcm9i bGF6ZV9sZWdpdGltaXplX2FkZHJlc3MgKHJ0eCB4LCBydHggb2xkeCBBVFRS SUJVVEVfVU5VU0VELAogCSAgcmV0dXJuIHJlc3VsdDsKIAl9CiAKLSAgICAg IGlmIChjb2RlMCA9PSBSRUcgJiYgUkVHX09LX0ZPUl9CQVNFX1AgKHhwbHVz MCkgJiYgZmxhZ19waWMgPT0gMikKKyAgICAgIGlmIChjb2RlMCA9PSBSRUcg JiYgUkVHX09LX0ZPUl9CQVNFX1AgKHhwbHVzMCkpCiAJewogCSAgaWYgKHJl bG9hZF9pbl9wcm9ncmVzcykKIAkgICAgZGZfc2V0X3JlZ3NfZXZlcl9saXZl IChQSUNfT0ZGU0VUX1RBQkxFX1JFR05VTSwgdHJ1ZSk7CkBAIC03MTcsMjYg KzEwMDYsNTggQEAgbWljcm9ibGF6ZV9sZWdpdGltaXplX2FkZHJlc3MgKHJ0 eCB4LCBydHggb2xkeCBBVFRSSUJVVEVfVU5VU0VELAogCSAgICB9CiAJICBp ZiAoY29kZTEgPT0gU1lNQk9MX1JFRikKIAkgICAgewotCSAgICAgIHJlc3Vs dCA9Ci0JCWdlbl9ydHhfVU5TUEVDIChQbW9kZSwgZ2VuX3J0dmVjICgxLCB4 cGx1czEpLCBVTlNQRUNfR09UT0ZGKTsKLQkgICAgICByZXN1bHQgPSBnZW5f cnR4X0NPTlNUIChQbW9kZSwgcmVzdWx0KTsKLQkgICAgICByZXN1bHQgPSBn ZW5fcnR4X1BMVVMgKFBtb2RlLCBwaWNfb2Zmc2V0X3RhYmxlX3J0eCwgcmVz dWx0KTsKLQkgICAgICByZXN1bHQgPSBnZW5fY29uc3RfbWVtIChQbW9kZSwg cmVzdWx0KTsKLQkgICAgICByZXN1bHQgPSBnZW5fcnR4X1BMVVMgKFBtb2Rl LCB4cGx1czAsIHJlc3VsdCk7Ci0JICAgICAgcmV0dXJuIHJlc3VsdDsKKwkg ICAgICBpZiAobWljcm9ibGF6ZV90bHNfc3ltYm9sX3AoeHBsdXMxKSApCisJ CXsKKwkJICBydHggdGxzX3JlZiwgcmVnOworCQkgIHJlZyA9IGdlbl9yZWdf cnR4IChQbW9kZSk7CisKKwkJICB0bHNfcmVmID0gbWljcm9ibGF6ZV9sZWdp dGltaXplX3Rsc19hZGRyZXNzICh4cGx1czEsCisJCQkJCQkJICAgICAgIE5V TExfUlRYKTsKKwkJICBlbWl0X21vdmVfaW5zbiAocmVnLCB0bHNfcmVmKTsK KworCQkgIHJlc3VsdCA9IGdlbl9ydHhfUExVUyAoUG1vZGUsIHhwbHVzMCwg cmVnKTsKKworCQkgIHJldHVybiByZXN1bHQ7CisJCX0KKwkgICAgICBlbHNl IGlmIChmbGFnX3BpYyA9PSAyKQorCQl7CisJCSAgcnR4IHBpY19yZWYsIHJl ZzsKKwkJICByZWcgPSBnZW5fcmVnX3J0eCAoUG1vZGUpOworCisJCSAgcGlj X3JlZiA9IGdlbl9ydHhfVU5TUEVDIChQbW9kZSwgZ2VuX3J0dmVjICgxLCB4 cGx1czEpLAorCQkJCQkgICAgVU5TUEVDX0dPVE9GRik7CisJCSAgcGljX3Jl ZiA9IGdlbl9ydHhfQ09OU1QgKFBtb2RlLCBwaWNfcmVmKTsKKwkJICBwaWNf cmVmID0gZ2VuX3J0eF9QTFVTIChQbW9kZSwgcGljX29mZnNldF90YWJsZV9y dHgsIHBpY19yZWYpOworCQkgIHBpY19yZWYgPSBnZW5fY29uc3RfbWVtIChQ bW9kZSwgcGljX3JlZik7CisJCSAgZW1pdF9tb3ZlX2luc24gKHJlZywgcGlj X3JlZik7CisJCSAgcmVzdWx0ID0gZ2VuX3J0eF9QTFVTIChQbW9kZSwgeHBs dXMwLCByZWcpOworCQkgIHJldHVybiByZXN1bHQ7CisJCX0KIAkgICAgfQog CX0KICAgICB9CiAKICAgaWYgKEdFVF9DT0RFICh4aW5zbikgPT0gU1lNQk9M X1JFRikKICAgICB7Ci0gICAgICBpZiAocmVsb2FkX2luX3Byb2dyZXNzKQot CWRmX3NldF9yZWdzX2V2ZXJfbGl2ZSAoUElDX09GRlNFVF9UQUJMRV9SRUdO VU0sIHRydWUpOwotICAgICAgcmVzdWx0ID0gZ2VuX3J0eF9VTlNQRUMgKFBt b2RlLCBnZW5fcnR2ZWMgKDEsIHhpbnNuKSwgVU5TUEVDX0dPVE9GRik7Ci0g ICAgICByZXN1bHQgPSBnZW5fcnR4X0NPTlNUIChQbW9kZSwgcmVzdWx0KTsK LSAgICAgIHJlc3VsdCA9IGdlbl9ydHhfUExVUyAoUG1vZGUsIHBpY19vZmZz ZXRfdGFibGVfcnR4LCByZXN1bHQpOwotICAgICAgcmVzdWx0ID0gZ2VuX2Nv bnN0X21lbSAoUG1vZGUsIHJlc3VsdCk7Ci0gICAgICByZXR1cm4gcmVzdWx0 OworCXJ0eCByZWc7CisJaWYgKG1pY3JvYmxhemVfdGxzX3N5bWJvbF9wKHhp bnNuKSApCisJICB7CisJICAgIHJlZyA9IG1pY3JvYmxhemVfbGVnaXRpbWl6 ZV90bHNfYWRkcmVzcyAoeGluc24sIE5VTExfUlRYKTsKKwkgIH0KKwllbHNl CisJICB7CisJICAgIHJ0eCBwaWNfcmVmOworCisJICAgIGlmIChyZWxvYWRf aW5fcHJvZ3Jlc3MpCisJICAgICAgZGZfc2V0X3JlZ3NfZXZlcl9saXZlIChQ SUNfT0ZGU0VUX1RBQkxFX1JFR05VTSwgdHJ1ZSk7CisKKwkgICAgcGljX3Jl ZiA9IGdlbl9ydHhfVU5TUEVDIChQbW9kZSwgZ2VuX3J0dmVjICgxLCB4aW5z biksIFVOU1BFQ19HT1RPRkYpOworCSAgICBwaWNfcmVmID0gZ2VuX3J0eF9D T05TVCAoUG1vZGUsIHBpY19yZWYpOworCSAgICBwaWNfcmVmID0gZ2VuX3J0 eF9QTFVTIChQbW9kZSwgcGljX29mZnNldF90YWJsZV9ydHgsIHBpY19yZWYp OworCSAgICBwaWNfcmVmID0gZ2VuX2NvbnN0X21lbSAoUG1vZGUsIHBpY19y ZWYpOworCSAgICByZWcgPSBwaWNfcmVmOworCSAgfQorCXJldHVybiByZWc7 CiAgICAgfQogCiAgIHJldHVybiB4OwpAQCAtMTA2MSwxMCArMTM4MiwyMiBA QCBtaWNyb2JsYXplX2FkZHJlc3NfaW5zbnMgKHJ0eCB4LCBlbnVtIG1hY2hp bmVfbW9kZSBtb2RlKQogCSAgZWxzZQogCSAgICByZXR1cm4gMjsKIAljYXNl IEFERFJFU1NfUkVHX0lOREVYOgotCWNhc2UgQUREUkVTU19TWU1CT0xJQzoK IAkgIHJldHVybiAxOworCWNhc2UgQUREUkVTU19TWU1CT0xJQzoKIAljYXNl IEFERFJFU1NfR09UT0ZGOgogCSAgcmV0dXJuIDI7CisJY2FzZSBBRERSRVNT X1RMUzoKKwkgIHN3aXRjaCAoYWRkci50bHNfdHlwZSkKKwkgICAgeworCSAg ICAgIGNhc2UgVExTX0dEOgorCQlyZXR1cm4gMjsKKwkgICAgICBjYXNlIFRM U19MRE06CisJCXJldHVybiAyOworCSAgICAgIGNhc2UgVExTX0RUUFJFTDoK KwkJcmV0dXJuIDE7CisJICAgICAgZGVmYXVsdCA6CisJCWFib3J0KCk7CisJ ICAgIH0KIAlkZWZhdWx0OgogCSAgYnJlYWs7CiAJfQpAQCAtMTA4OCwxMyAr MTQyMSwxOCBAQCBtaWNyb2JsYXplX2FkZHJlc3NfY29zdCAocnR4IGFkZHIs IGVudW0gbWFjaGluZV9tb2RlIG1vZGUgQVRUUklCVVRFX1VOVVNFRCwKIGlu dAogcGljX2FkZHJlc3NfbmVlZHNfc2NyYXRjaCAocnR4IHgpCiB7Ci0gIC8q IEFuIGFkZHJlc3Mgd2hpY2ggaXMgYSBzeW1ib2xpYyBwbHVzIGEgbm9uIFNN QUxMX0lOVCBuZWVkcyBhIHRlbXAgcmVnLiAgKi8KLSAgaWYgKEdFVF9DT0RF ICh4KSA9PSBDT05TVCAmJiBHRVRfQ09ERSAoWEVYUCAoeCwgMCkpID09IFBM VVMKLSAgICAgICYmIEdFVF9DT0RFIChYRVhQIChYRVhQICh4LCAwKSwgMCkp ID09IFNZTUJPTF9SRUYKLSAgICAgICYmIEdFVF9DT0RFIChYRVhQIChYRVhQ ICh4LCAwKSwgMSkpID09IENPTlNUX0lOVAotICAgICAgJiYgKGZsYWdfcGlj ID09IDIgfHwgIVNNQUxMX0lOVCAoWEVYUCAoWEVYUCAoeCwgMCksIDEpKSkp Ci0gICAgcmV0dXJuIDE7CisgIGlmIChHRVRfQ09ERSAoeCkgPT0gQ09OU1Qg JiYgR0VUX0NPREUgKFhFWFAgKHgsMCkpID09IFBMVVMpCisgICAgeworICAg ICBydHggcDAsIHAxOwogCisgICAgICBwMCA9IFhFWFAgKFhFWFAgKHgsIDAp LCAwKTsKKyAgICAgIHAxID0gWEVYUCAoWEVYUCAoeCwgMCksIDEpOworCisg ICAgICBpZiAoKEdFVF9DT0RFIChwMCkgPT0gU1lNQk9MX1JFRiB8fCBHRVRf Q09ERSAocDApID09IExBQkVMX1JFRikKKyAgICAgICAgICAmJiAoR0VUX0NP REUgKHAxKSA9PSBDT05TVF9JTlQpCisgICAgICAgICAgJiYgKGZsYWdfcGlj ID09IDIgfHwgbWljcm9ibGF6ZV90bHNfc3ltYm9sX3AgKHAwKSB8fCAhU01B TExfSU5UIChwMSkpKQorICAgICAgICByZXR1cm4gMTsKKyAgICB9CiAgIHJl dHVybiAwOwogfQogCkBAIC0xOTE4LDYgKzIyNTYsNyBAQCBwcmludF9vcGVy YW5kIChGSUxFICogZmlsZSwgcnR4IG9wLCBpbnQgbGV0dGVyKQogCSAgICBj YXNlIEFERFJFU1NfQ09OU1RfSU5UOgogCSAgICBjYXNlIEFERFJFU1NfU1lN Qk9MSUM6CiAJICAgIGNhc2UgQUREUkVTU19HT1RPRkY6CisJICAgIGNhc2Ug QUREUkVTU19UTFM6CiAJICAgICAgZnB1dHMgKCJpIiwgZmlsZSk7CiAJICAg ICAgYnJlYWs7CiAJICAgIGNhc2UgQUREUkVTU19SRUdfSU5ERVg6CkBAIC0y MDM0LDEwICsyMzczLDE5IEBAIHByaW50X29wZXJhbmQgKEZJTEUgKiBmaWxl LCBydHggb3AsIGludCBsZXR0ZXIpCiAgIGVsc2UgaWYgKGxldHRlciA9PSAn dCcpCiAgICAgZnB1dHMgKGNvZGUgPT0gRVEgPyAidCIgOiAiZiIsIGZpbGUp OwogCi0gIGVsc2UgaWYgKGNvZGUgPT0gQ09OU1QgJiYgR0VUX0NPREUgKFhF WFAgKG9wLCAwKSkgPT0gUkVHKQorICBlbHNlIGlmIChjb2RlID09IENPTlNU CisgICAgICAgICAgICYmICgoR0VUX0NPREUgKFhFWFAgKG9wLCAwKSkgPT0g UkVHKQorICAgICAgICAgICAgICAgfHwgKEdFVF9DT0RFIChYRVhQIChvcCwg MCkpID09IFVOU1BFQykpKQogICAgIHsKICAgICAgIHByaW50X29wZXJhbmQg KGZpbGUsIFhFWFAgKG9wLCAwKSwgbGV0dGVyKTsKICAgICB9CisgIGVsc2Ug aWYgKGNvZGUgPT0gQ09OU1QKKyAgICAgICAgICAgJiYgKEdFVF9DT0RFIChY RVhQIChvcCwgMCkpID09IFBMVVMpCisgICAgICAgICAgICYmIChHRVRfQ09E RSAoWEVYUCAoWEVYUCAob3AsIDApLCAwKSkgPT0gUkVHKQorICAgICAgICAg ICAmJiAoR0VUX0NPREUgKFhFWFAgKFhFWFAgKG9wLCAwKSwgMSkpID09IENP TlNUKSkKKyAgICB7CisgICAgICBwcmludF9vcGVyYW5kX2FkZHJlc3MgKGZp bGUsIFhFWFAgKG9wLCAwKSApOworICAgIH0KICAgZWxzZSBpZiAobGV0dGVy ID09ICdtJykKICAgICBmcHJpbnRmIChmaWxlLCBIT1NUX1dJREVfSU5UX1BS SU5UX0RFQywgKDFMIDw8IElOVFZBTCAob3ApKSk7CiAgIGVsc2UKQEAgLTIw OTgsNiArMjQ0Niw3IEBAIHByaW50X29wZXJhbmRfYWRkcmVzcyAoRklMRSAq IGZpbGUsIHJ0eCBhZGRyKQogICAgIGNhc2UgQUREUkVTU19TWU1CT0xJQzoK ICAgICBjYXNlIEFERFJFU1NfR09UT0ZGOgogICAgIGNhc2UgQUREUkVTU19Q TFQ6CisgICAgY2FzZSBBRERSRVNTX1RMUzoKICAgICAgIGlmIChpbmZvLnJl Z0EpCiAJZnByaW50ZiAoZmlsZSwgIiVzLCIsIHJlZ19uYW1lc1tSRUdOTyAo aW5mby5yZWdBKV0pOwogICAgICAgb3V0cHV0X2FkZHJfY29uc3QgKGZpbGUs IGluZm8uc3ltYm9sKTsKQEAgLTIxMDksNiArMjQ1OCwyNCBAQCBwcmludF9v cGVyYW5kX2FkZHJlc3MgKEZJTEUgKiBmaWxlLCBydHggYWRkcikKIAl7CiAJ ICBmcHV0cyAoIkBQTFQiLCBmaWxlKTsKIAl9CisgICAgICBlbHNlIGlmICh0 eXBlID09IEFERFJFU1NfVExTKQorCXsKKwkgIHN3aXRjaCAoaW5mby50bHNf dHlwZSkKKwkgICAgeworCSAgICAgIGNhc2UgVExTX0dEOgorCQlmcHV0cyAo IkBUTFNHRCIsIGZpbGUpOworCQlicmVhazsKKwkgICAgICBjYXNlIFRMU19M RE06CisJCWZwdXRzICgiQFRMU0xETSIsIGZpbGUpOworCQlicmVhazsKKwkg ICAgICBjYXNlIFRMU19EVFBSRUw6CisJCWZwdXRzICgiQFRMU0RUUFJFTCIs IGZpbGUpOworCQlicmVhazsKKwkgICAgICBkZWZhdWx0IDoKKwkJYWJvcnQo KTsKKwkJYnJlYWs7CisJICAgIH0KKwl9CiAgICAgICBicmVhazsKICAgICBj YXNlIEFERFJFU1NfSU5WQUxJRDoKICAgICAgIGZhdGFsX2luc24gKCJpbnZh bGlkIGFkZHJlc3MiLCBhZGRyKTsKQEAgLTI0NzEsNyArMjgzOCw4IEBAIG1p Y3JvYmxhemVfZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQogCX0KICAgICB9CiAK LSAgaWYgKGZsYWdfcGljID09IDIgJiYgZGZfcmVnc19ldmVyX2xpdmVfcCAo TUJfQUJJX1BJQ19BRERSX1JFR05VTSkpCisgIGlmICgoZmxhZ19waWMgPT0g MiB8fCBUTFNfTkVFRFNfR09UICkKKyAgICAgICYmIGRmX3JlZ3NfZXZlcl9s aXZlX3AgKE1CX0FCSV9QSUNfQUREUl9SRUdOVU0pKQogICAgIHsKICAgICAg IFNFVF9SRUdOTyAocGljX29mZnNldF90YWJsZV9ydHgsIE1CX0FCSV9QSUNf QUREUl9SRUdOVU0pOwogICAgICAgZW1pdF9pbnNuIChnZW5fc2V0X2dvdCAo cGljX29mZnNldF90YWJsZV9ydHgpKTsJLyogc2V0dGluZyBHT1QuICAqLwpA QCAtMjcwMSw4MyArMzA2OSw2MiBAQCBleHBhbmRfcGljX3N5bWJvbF9yZWYg KGVudW0gbWFjaGluZV9tb2RlIG1vZGUgQVRUUklCVVRFX1VOVVNFRCwgcnR4 IG9wKQogYm9vbAogbWljcm9ibGF6ZV9leHBhbmRfbW92ZSAoZW51bSBtYWNo aW5lX21vZGUgbW9kZSwgcnR4IG9wZXJhbmRzW10pCiB7CisgIHJ0eCBvcDAs IG9wMTsKKworICBvcDAgPSBvcGVyYW5kc1swXTsKKyAgb3AxID0gb3BlcmFu ZHNbMV07CisKKyAgaWYgKCFyZWdpc3Rlcl9vcGVyYW5kIChvcDAsIFNJbW9k ZSkKKyAgICAgICYmICFyZWdpc3Rlcl9vcGVyYW5kIChvcDEsIFNJbW9kZSkK KyAgICAgICYmIChHRVRfQ09ERSAob3AxKSAhPSBDT05TVF9JTlQgfHwgSU5U VkFMIChvcDEpICE9IDApKQorICAgIHsKKyAgICAgIHJ0eCB0ZW1wID0gZm9y Y2VfcmVnIChTSW1vZGUsIG9wMSk7CisgICAgICBlbWl0X21vdmVfaW5zbiAo b3AwLCB0ZW1wKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KICAgLyog SWYgb3BlcmFuZHNbMV0gaXMgYSBjb25zdGFudCBhZGRyZXNzIGludmFsaWQg Zm9yIHBpYywgdGhlbiB3ZSBuZWVkIHRvCiAgICAgIGhhbmRsZSBpdCBqdXN0 IGxpa2UgTEVHSVRJTUlaRV9BRERSRVNTIGRvZXMuICAqLwotICBpZiAoZmxh Z19waWMpCisgIGlmIChHRVRfQ09ERSAob3AxKSA9PSBTWU1CT0xfUkVGIHx8 IEdFVF9DT0RFIChvcDEpID09IExBQkVMX1JFRikKICAgICB7Ci0gICAgICBp ZiAoR0VUX0NPREUgKG9wZXJhbmRzWzBdKSA9PSBNRU0pCisgICAgICBydHgg cmVzdWx0OworICAgICAgaWYgKG1pY3JvYmxhemVfdGxzX3N5bWJvbF9wKG9w MSkpCiAJewotCSAgcnR4IGFkZHIgPSBYRVhQIChvcGVyYW5kc1swXSwgMCk7 Ci0JICBpZiAoR0VUX0NPREUgKGFkZHIpID09IFNZTUJPTF9SRUYpCi0JICAg IHsKLQkgICAgICBydHggcHRyX3JlZywgcmVzdWx0OwotCi0JICAgICAgaWYg KHJlbG9hZF9pbl9wcm9ncmVzcykKLQkJZGZfc2V0X3JlZ3NfZXZlcl9saXZl IChQSUNfT0ZGU0VUX1RBQkxFX1JFR05VTSwgdHJ1ZSk7Ci0KLQkgICAgICBh ZGRyID0gZXhwYW5kX3BpY19zeW1ib2xfcmVmIChtb2RlLCBhZGRyKTsKLQkg ICAgICBwdHJfcmVnID0gZ2VuX3JlZ19ydHggKFBtb2RlKTsKLQkgICAgICBl bWl0X21vdmVfaW5zbiAocHRyX3JlZywgYWRkcik7Ci0JICAgICAgcmVzdWx0 ID0gZ2VuX3J0eF9NRU0gKG1vZGUsIHB0cl9yZWcpOwotCSAgICAgIG9wZXJh bmRzWzBdID0gcmVzdWx0OwotCSAgICB9CisJICByZXN1bHQgPSBtaWNyb2Js YXplX2xlZ2l0aW1pemVfdGxzX2FkZHJlc3MgKG9wMSwgTlVMTF9SVFgpOwor CSAgZW1pdF9tb3ZlX2luc24gKG9wMCwgcmVzdWx0KTsKKwkgIHJldHVybiB0 cnVlOwogCX0KLSAgICAgIGlmIChHRVRfQ09ERSAob3BlcmFuZHNbMV0pID09 IFNZTUJPTF9SRUYKLQkgIHx8IEdFVF9DT0RFIChvcGVyYW5kc1sxXSkgPT0g TEFCRUxfUkVGKQorICAgICAgZWxzZSBpZiAoZmxhZ19waWMpCiAJewotCSAg cnR4IHJlc3VsdDsKIAkgIGlmIChyZWxvYWRfaW5fcHJvZ3Jlc3MpCiAJICAg IGRmX3NldF9yZWdzX2V2ZXJfbGl2ZSAoUElDX09GRlNFVF9UQUJMRV9SRUdO VU0sIHRydWUpOwotCSAgcmVzdWx0ID0gZXhwYW5kX3BpY19zeW1ib2xfcmVm IChtb2RlLCBvcGVyYW5kc1sxXSk7Ci0JICBpZiAoR0VUX0NPREUgKG9wZXJh bmRzWzBdKSAhPSBSRUcpCi0JICAgIHsKLQkgICAgICBydHggcHRyX3JlZyA9 IGdlbl9yZWdfcnR4IChQbW9kZSk7Ci0JICAgICAgZW1pdF9tb3ZlX2luc24g KHB0cl9yZWcsIHJlc3VsdCk7Ci0JICAgICAgZW1pdF9tb3ZlX2luc24gKG9w ZXJhbmRzWzBdLCBwdHJfcmVnKTsKLQkgICAgfQotCSAgZWxzZQotCSAgICB7 Ci0JICAgICAgZW1pdF9tb3ZlX2luc24gKG9wZXJhbmRzWzBdLCByZXN1bHQp OwotCSAgICB9CisJICByZXN1bHQgPSBleHBhbmRfcGljX3N5bWJvbF9yZWYg KG1vZGUsIG9wMSk7CisJICBlbWl0X21vdmVfaW5zbiAob3AwLCByZXN1bHQp OwogCSAgcmV0dXJuIHRydWU7CiAJfQotICAgICAgZWxzZSBpZiAoR0VUX0NP REUgKG9wZXJhbmRzWzFdKSA9PSBNRU0gJiYKLQkgICAgICAgR0VUX0NPREUg KFhFWFAgKG9wZXJhbmRzWzFdLCAwKSkgPT0gU1lNQk9MX1JFRikKLQl7Ci0J ICBydHggcmVzdWx0OwotCSAgcnR4IHB0cl9yZWc7Ci0JICBpZiAocmVsb2Fk X2luX3Byb2dyZXNzKQotCSAgICBkZl9zZXRfcmVnc19ldmVyX2xpdmUgKFBJ Q19PRkZTRVRfVEFCTEVfUkVHTlVNLCB0cnVlKTsKLQkgIHJlc3VsdCA9IGV4 cGFuZF9waWNfc3ltYm9sX3JlZiAobW9kZSwgWEVYUCAob3BlcmFuZHNbMV0s IDApKTsKKyAgICB9CisgIC8qIEhhbmRsZSBDYXNlIG9mIChjb25zdCAocGx1 cyBzeW1ib2wgY29uc3RfaW50KSkuICAqLworICBpZiAoR0VUX0NPREUgKG9w MSkgPT0gQ09OU1QgJiYgR0VUX0NPREUgKFhFWFAgKG9wMSwwKSkgPT0gUExV UykKKyAgICB7CisgICAgICBydHggcDAsIHAxOwogCi0JICBwdHJfcmVnID0g Z2VuX3JlZ19ydHggKFBtb2RlKTsKKyAgICAgIHAwID0gWEVYUCAoWEVYUCAo b3AxLCAwKSwgMCk7CisgICAgICBwMSA9IFhFWFAgKFhFWFAgKG9wMSwgMCks IDEpOwogCi0JICBlbWl0X21vdmVfaW5zbiAocHRyX3JlZywgcmVzdWx0KTsK LQkgIHJlc3VsdCA9IGdlbl9ydHhfTUVNIChtb2RlLCBwdHJfcmVnKTsKLQkg IGVtaXRfbW92ZV9pbnNuIChvcGVyYW5kc1swXSwgcmVzdWx0KTsKLQkgIHJl dHVybiB0cnVlOwotCX0KLSAgICAgIGVsc2UgaWYgKHBpY19hZGRyZXNzX25l ZWRzX3NjcmF0Y2ggKG9wZXJhbmRzWzFdKSkKKyAgICAgIGlmICgoR0VUX0NP REUgKHAxKSA9PSBDT05TVF9JTlQpCisJICAmJiAoKEdFVF9DT0RFIChwMCkg PT0gVU5TUEVDKQorCSAgICAgIHx8ICgoR0VUX0NPREUgKHAwKSA9PSBTWU1C T0xfUkVGIHx8IEdFVF9DT0RFIChwMCkgPT0gTEFCRUxfUkVGKQorCSAgICAg ICAgICAmJiAoZmxhZ19waWMgPT0gMiB8fCBtaWNyb2JsYXplX3Rsc19zeW1i b2xfcCAocDApCisJCSAgICAgIHx8ICFTTUFMTF9JTlQgKHAxKSkpKSkKIAl7 Ci0JICBydHggdGVtcCA9IGZvcmNlX3JlZyAoU0ltb2RlLCBYRVhQIChYRVhQ IChvcGVyYW5kc1sxXSwgMCksIDApKTsKLQkgIHJ0eCB0ZW1wMiA9IFhFWFAg KFhFWFAgKG9wZXJhbmRzWzFdLCAwKSwgMSk7CisJICBydHggdGVtcCA9IGZv cmNlX3JlZyAoU0ltb2RlLCBwMCk7CisJICBydHggdGVtcDIgPSBwMTsKIAot CSAgaWYgKHJlbG9hZF9pbl9wcm9ncmVzcykKKwkgIGlmIChmbGFnX3BpYyAm JiByZWxvYWRfaW5fcHJvZ3Jlc3MpCiAJICAgIGRmX3NldF9yZWdzX2V2ZXJf bGl2ZSAoUElDX09GRlNFVF9UQUJMRV9SRUdOVU0sIHRydWUpOwotCSAgZW1p dF9tb3ZlX2luc24gKG9wZXJhbmRzWzBdLCBnZW5fcnR4X1BMVVMgKFNJbW9k ZSwgdGVtcCwgdGVtcDIpKTsKKwkgIGVtaXRfbW92ZV9pbnNuIChvcDAsIGdl bl9ydHhfUExVUyAoU0ltb2RlLCB0ZW1wLCB0ZW1wMikpOwogCSAgcmV0dXJu IHRydWU7CiAJfQogICAgIH0KLQotICBpZiAoKHJlbG9hZF9pbl9wcm9ncmVz cyB8IHJlbG9hZF9jb21wbGV0ZWQpID09IDAKLSAgICAgICYmICFyZWdpc3Rl cl9vcGVyYW5kIChvcGVyYW5kc1swXSwgU0ltb2RlKQotICAgICAgJiYgIXJl Z2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzFdLCBTSW1vZGUpCi0gICAgICAm JiAoR0VUX0NPREUgKG9wZXJhbmRzWzFdKSAhPSBDT05TVF9JTlQgfHwgSU5U VkFMIChvcGVyYW5kc1sxXSkgIT0gMCkpCi0gICAgewotICAgICAgcnR4IHRl bXAgPSBmb3JjZV9yZWcgKFNJbW9kZSwgb3BlcmFuZHNbMV0pOwotICAgICAg ZW1pdF9tb3ZlX2luc24gKG9wZXJhbmRzWzBdLCB0ZW1wKTsKLSAgICAgIHJl dHVybiB0cnVlOwotICAgIH0KICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0z MDQ4LDEwICszMzk1LDQwIEBAIG1pY3JvYmxhemVfYWRqdXN0X2Nvc3QgKHJ0 eCBpbnNuIEFUVFJJQlVURV9VTlVTRUQsIHJ0eCBsaW5rLAogICAgQXQgcHJl c2VudCwgR0FTIGRvZXNuJ3QgdW5kZXJzdGFuZCBsaS5bc2RdLCBzbyBkb24n dCBhbGxvdyBpdAogICAgdG8gYmUgZ2VuZXJhdGVkIGF0IHByZXNlbnQuICAq Lwogc3RhdGljIGJvb2wKLW1pY3JvYmxhemVfbGVnaXRpbWF0ZV9jb25zdGFu dF9wIChlbnVtIG1hY2hpbmVfbW9kZSBtb2RlLCBydHggeCkKK21pY3JvYmxh emVfbGVnaXRpbWF0ZV9jb25zdGFudF9wIChlbnVtIG1hY2hpbmVfbW9kZSBt b2RlIEFUVFJJQlVURV9VTlVTRUQsIHJ0eCB4KQogewotICByZXR1cm4gR0VU X0NPREUgKHgpICE9IENPTlNUX0RPVUJMRSB8fCBtaWNyb2JsYXplX2NvbnN0 X2RvdWJsZV9vayAoeCwgbW9kZSk7CisKKyAgaWYgKG1pY3JvYmxhemVfY2Fu bm90X2ZvcmNlX2NvbnN0X21lbShtb2RlLCB4KSkKKyAgICAgICAgcmV0dXJu IGZhbHNlOworCisgIGlmIChHRVRfQ09ERSAoeCkgPT0gQ09OU1RfRE9VQkxF KQorICAgIHsKKyAgICAgIHJldHVybiBtaWNyb2JsYXplX2NvbnN0X2RvdWJs ZV9vayAoeCwgR0VUX01PREUgKHgpKTsKKyAgICB9CisKKyAgIC8qIEhhbmRs ZSBDYXNlIG9mIChjb25zdCAocGx1cyB1bnNwZWMgY29uc3RfaW50KSkuICAq LworICAgaWYgKEdFVF9DT0RFICh4KSA9PSBDT05TVCAmJiBHRVRfQ09ERSAo WEVYUCAoeCwwKSkgPT0gUExVUykKKyAgICAgeworICAgICAgICBydHggcDAs IHAxOworCisgICAgICAgIHAwID0gWEVYUCAoWEVYUCAoeCwgMCksIDApOwor ICAgICAgICBwMSA9IFhFWFAgKFhFWFAgKHgsIDApLCAxKTsKKworICAgICAg ICBpZiAoR0VUX0NPREUocDEpID09IENPTlNUX0lOVCkKKyAgICAgICAgICB7 CisgICAgICAgICAgICAvKiBDb25zdCBvZmZzZXQgZnJvbSBVTlNQRUMgaXMg bm90IHN1cHBvcnRlZC4gICovCisgICAgICAgICAgICBpZiAoKEdFVF9DT0RF IChwMCkgPT0gVU5TUEVDKSkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl OworCisgICAgICAgICAgICBpZiAoKEdFVF9DT0RFIChwMCkgPT0gU1lNQk9M X1JFRiB8fCBHRVRfQ09ERSAocDApID09IExBQkVMX1JFRikKKyAgICAgICAg ICAgICAgICAgJiYgKG1pY3JvYmxhemVfdGxzX3N5bWJvbF9wIChwMCkgfHwg IVNNQUxMX0lOVCAocDEpKSkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl OworICAgICAgICAgIH0KKyAgICAgIH0KKworICByZXR1cm4gdHJ1ZTsKIH0K KwogDAogI3VuZGVmIFRBUkdFVF9FTkNPREVfU0VDVElPTl9JTkZPCiAjZGVm aW5lIFRBUkdFVF9FTkNPREVfU0VDVElPTl9JTkZPICAgICAgbWljcm9ibGF6 ZV9lbmNvZGVfc2VjdGlvbl9pbmZvCkBAIC0zMDY4LDYgKzM0NDUsOSBAQCBt aWNyb2JsYXplX2xlZ2l0aW1hdGVfY29uc3RhbnRfcCAoZW51bSBtYWNoaW5l X21vZGUgbW9kZSwgcnR4IHgpCiAjdW5kZWYgVEFSR0VUX1JUWF9DT1NUUwog I2RlZmluZSBUQVJHRVRfUlRYX0NPU1RTICAgICAgICAgICAgICAgIG1pY3Jv YmxhemVfcnR4X2Nvc3RzCiAKKyN1bmRlZiBUQVJHRVRfQ0FOTk9UX0ZPUkNF X0NPTlNUX01FTQorI2RlZmluZSBUQVJHRVRfQ0FOTk9UX0ZPUkNFX0NPTlNU X01FTSAgIG1pY3JvYmxhemVfY2Fubm90X2ZvcmNlX2NvbnN0X21lbQorCiAj dW5kZWYgVEFSR0VUX0FERFJFU1NfQ09TVAogI2RlZmluZSBUQVJHRVRfQURE UkVTU19DT1NUICAgICAgICAgICAgIG1pY3JvYmxhemVfYWRkcmVzc19jb3N0 CiAKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvbWljcm9ibGF6ZS9taWNyb2Js YXplLmggYi9nY2MvY29uZmlnL21pY3JvYmxhemUvbWljcm9ibGF6ZS5oCmlu ZGV4IDhmYmU1YmYuLmJjNGQ5YTEgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv bWljcm9ibGF6ZS9taWNyb2JsYXplLmgKKysrIGIvZ2NjL2NvbmZpZy9taWNy b2JsYXplL21pY3JvYmxhemUuaApAQCAtNjUsNiArNjUsOSBAQCBleHRlcm4g ZW51bSBwaXBlbGluZV90eXBlIG1pY3JvYmxhemVfcGlwZTsKIC8qIFRoZSBk ZWZhdWx0IGlzIHRvIHN1cHBvcnQgUElDLiAgKi8KICNkZWZpbmUgVEFSR0VU X1NVUFBPUlRTX1BJQyAxCiAKKy8qIFRoZSBkZWZhdWx0IGlzIHRvIG5vdCBu ZWVkIEdPVCBmb3IgVExTLiAgKi8KKyNkZWZpbmUgVExTX05FRURTX0dPVCAw CisKIC8qIFdoYXQgaXMgdGhlIGRlZmF1bHQgc2V0dGluZyBmb3IgLW1jcHU9 IC4gV2Ugc2V0IGl0IHRvIHY0LjAwLmEgZXZlbiB0aG91Z2ggCiAgICB3ZSBh cmUgYWN0dWFsbHkgYWhlYWQuIFRoaXMgaXMgc2FmZXN0IHZlcnNpb24gdGhh dCBoYXMgZ2VuZXJhdGUgY29kZSAKICAgIGNvbXBhdGlibGUgZm9yIHRoZSBv cmlnaW5hbCBJU0EgKi8KQEAgLTMyNiw5ICszMjksNyBAQCBleHRlcm4gY2hh ciBtaWNyb2JsYXplX2hhcmRfcmVnbm9fbW9kZV9va1tdW0ZJUlNUX1BTRVVE T19SRUdJU1RFUl07CiAKICNkZWZpbmUgTk9fRlVOQ1RJT05fQ1NFICAgICAg ICAgICAgICAgICAxCiAKLSNkZWZpbmUgUElDX09GRlNFVF9UQUJMRV9SRUdO VU0gICAgICAgICBcCi0gICAgICAgIChmbGFnX3BpYyA/IChHUF9SRUdfRklS U1QgKyBNQl9BQklfUElDX0FERFJfUkVHTlVNKSA6IFwKLSAgICAgICAgSU5W QUxJRF9SRUdOVU0pCisjZGVmaW5lIFBJQ19PRkZTRVRfVEFCTEVfUkVHTlVN ICAgKEdQX1JFR19GSVJTVCArIE1CX0FCSV9QSUNfQUREUl9SRUdOVU0pCiAK IGVudW0gcmVnX2NsYXNzCiB7CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL21p Y3JvYmxhemUvbWljcm9ibGF6ZS5tZCBiL2djYy9jb25maWcvbWljcm9ibGF6 ZS9taWNyb2JsYXplLm1kCmluZGV4IDAyODU3ODcuLjM2MThjYWQgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvbWljcm9ibGF6ZS9taWNyb2JsYXplLm1kCisr KyBiL2djYy9jb25maWcvbWljcm9ibGF6ZS9taWNyb2JsYXplLm1kCkBAIC00 MCw2ICs0MCw3IEBACiAgIChVTlNQRUNfUExUICAgICAgICAgICAxMDMpICAg IDs7IGp1bXAgdGFibGUKICAgKFVOU1BFQ19DTVAJCTEwNCkgICAgOzsgc2ln bmVkIGNvbXBhcmUKICAgKFVOU1BFQ19DTVBVCQkxMDUpICAgIDs7IHVuc2ln bmVkIGNvbXBhcmUKKyAgKFVOU1BFQ19UTFMgICAgICAgICAgIDEwNikgICAg OzsganVtcCB0YWJsZQogXSkKIAogCkBAIC00NTksNyArNDYwLDcgQEAKIChk ZWZpbmVfaW5zbiAiYWRkc2kzIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpT SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQsZCxkIikKIAkocGx1czpTSSAo bWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdfb3JfMF9vcGVyYW5kIiAiJWRKLGRK LGRKIikKLQkJIChtYXRjaF9vcGVyYW5kOlNJIDIgImFyaXRoX29wZXJhbmQi ICJkLEksaSIpKSldCisJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJhcml0aF9w bHVzX29wZXJhbmQiICJkLEksaSIpKSldCiAgICIiCiAgICJACiAgICBhZGRr XHQlMCwlejEsJTIKQEAgLTg5Miw4ICs4OTMsOCBAQAogCiAKIChkZWZpbmVf aW5zbiAiKm1vdmRpX2ludGVybmFsIgotICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpESSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1kLGQsZCxkLGQsUixt IikKLQkobWF0Y2hfb3BlcmFuZDpESSAxICJnZW5lcmFsX29wZXJhbmQiICAg ICAgIiBkLGksSixSLG0sZCxkIikpXQorICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpESSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1kLGQsZCxkLGQsUixv IikKKwkobWF0Y2hfb3BlcmFuZDpESSAxICJnZW5lcmFsX29wZXJhbmQiICAg ICAgIiBkLGksSixSLG8sZCxkIikpXQogICAiIgogICB7IAogICAgIHN3aXRj aCAod2hpY2hfYWx0ZXJuYXRpdmUpCkBAIC05OTksMTMgKzEwMDAsOSBAQAog ICAoc2V0X2F0dHIgImxlbmd0aCIJIjQiKV0pCiAKIChkZWZpbmVfaW5zbiAi Km1vdnNpX2ludGVybmFsMiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kg MCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9ZCxkLGQsICAgZCxkLFIsIFQi KQotCShtYXRjaF9vcGVyYW5kOlNJIDEgIm1vdmVfb3BlcmFuZCIgICAgICAg ICAiIGQsSSxNbmlzLFIsbSxkSixkSiIpKV0KLSAgIihyZWdpc3Rlcl9vcGVy YW5kIChvcGVyYW5kc1swXSwgU0ltb2RlKQotICAgIHx8IHJlZ2lzdGVyX29w ZXJhbmQgKG9wZXJhbmRzWzFdLCBTSW1vZGUpIAotICAgIHx8IChHRVRfQ09E RSAob3BlcmFuZHNbMV0pID09IENPTlNUX0lOVCAmJiBJTlRWQUwgKG9wZXJh bmRzWzFdKSA9PSAwKSkKLSAgICAmJiAoZmxhZ19waWMgIT0gMiB8fCAoR0VU X0NPREUgKG9wZXJhbmRzWzFdKSAhPSBTWU1CT0xfUkVGIAotICAgICAgICAg ICAgICAgICAgICAgICAgICYmIEdFVF9DT0RFIChvcGVyYW5kc1sxXSkgIT0g TEFCRUxfUkVGKSkiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAiPWQsZCxkLCAgIGQsZCxSLG0iKQorCSht YXRjaF9vcGVyYW5kOlNJIDEgIm1vdmVfc3JjX29wZXJhbmQiICAgICAgICAg IiBkLEksTW5pcyxSLG0sZEosZEoiKSldCisgICIiCiAgICJACiAgICBhZGRr XHQlMCwlMSxyMAogICAgYWRkaWtcdCUwLHIwLCUxXHQjICVYMQpAQCAtMTE5 Niw3ICsxMTkzLDcgQEAKIDs7IEFwcGxpZXMgdG8gYm90aCBUQVJHRVRfU09G VF9GTE9BVCBhbmQgVEFSR0VUX0hBUkRfRkxPQVQKIDs7CiAoZGVmaW5lX2lu c24gIiptb3ZkZl9pbnRlcm5hbCIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 REYgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9ZCxkLGQsZCxUbyIpCisg IFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgIm5vbmltbWVkaWF0ZV9vcGVy YW5kIiAiPWQsZCxkLGQsbyIpCiAgICAgICAgIChtYXRjaF9vcGVyYW5kOkRG IDEgImdlbmVyYWxfb3BlcmFuZCIgImRHLG8sRixULGQiKSldCiAgICIiCiAg IHsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvbWljcm9ibGF6ZS9wcmVkaWNh dGVzLm1kIGIvZ2NjL2NvbmZpZy9taWNyb2JsYXplL3ByZWRpY2F0ZXMubWQK aW5kZXggZTZlOTk4My4uNWZkMWJkNCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9taWNyb2JsYXplL3ByZWRpY2F0ZXMubWQKKysrIGIvZ2NjL2NvbmZpZy9t aWNyb2JsYXplL3ByZWRpY2F0ZXMubWQKQEAgLTMwLDYgKzMwLDUyIEBACiAg ICAgICAgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50LGNvbnN0X2RvdWJs ZSIpCiAJICAgIChtYXRjaF90ZXN0ICJMQVJHRV9JTlQgKG9wKSIpKSkpCiAK KyhkZWZpbmVfcHJlZGljYXRlICJhcml0aF9wbHVzX29wZXJhbmQiCisgKG1h dGNoX29wZXJhbmQgMCAiZ2VuZXJhbF9vcGVyYW5kIikKK3sKKyAgc3dpdGNo IChHRVRfQ09ERSAob3ApKQorICAgIHsKKyAgICAgIGRlZmF1bHQ6CisgICAg ICAgIHJldHVybiAwOworICAgICAgY2FzZSBDT05TVF9JTlQ6CisgICAgICBj YXNlIFJFRzoKKyAgICAgICAgcmV0dXJuIDE7CisgICAgICBjYXNlIFNZTUJP TF9SRUY6CisgICAgICBjYXNlIExBQkVMX1JFRjoKKyAgICAgICAgaWYgKGZs YWdfcGljIHx8IG1pY3JvYmxhemVfdGxzX3JlZmVyZW5jZWRfcChvcCkpCisg ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiAxOworICAgICAg Y2FzZSBDT05TVDoKKyAgICAgICAgeworICAgICAgICAgIHJ0eCBjb25zdDA7 CisgICAgICAgICAgY29uc3QwID0gWEVYUCAob3AsIDApOworCisgICAgICAg ICAgc3dpdGNoIChHRVRfQ09ERShjb25zdDApKQorICAgICAgICAgICAgewor ICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVy biAwOworICAgICAgICAgICAgICBjYXNlIFVOU1BFQyA6CisgICAgICAgICAg ICAgICAgcmV0dXJuIDE7CisKKyAgICAgICAgICAgICAgY2FzZSBQTFVTIDoK KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBydHggcDAs IHAxOworICAgICAgICAgICAgICAgICAgcDAgPSBYRVhQIChjb25zdDAsIDAp OworICAgICAgICAgICAgICAgICAgcDEgPSBYRVhQIChjb25zdDAsIDEpOwor CisgICAgICAgICAgICAgICAgICBpZiAoKEdFVF9DT0RFKHAwKSA9PSBTWU1C T0xfUkVGCisgICAgICAgICAgICAgICAgICAgICAgIHx8IEdFVF9DT0RFIChw MCkgPT0gTEFCRUxfUkVGKQorICAgICAgICAgICAgICAgICAgICAgICYmIEdF VF9DT0RFKHAxKSA9PSBDT05TVF9JTlQpCisgICAgICAgICAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJpdGhfcGx1c19v cGVyYW5kIChwMCwgR0VUX01PREUocDApKTsKKyAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg ICAgfQorICAgIH0KKyAgcmV0dXJuIDA7Cit9KQorCiAoZGVmaW5lX3ByZWRp Y2F0ZSAiY29uc3RfMF9vcGVyYW5kIgogICAoYW5kIChtYXRjaF9jb2RlICJj b25zdF9pbnQsY29uc3RfZG91YmxlIikKICAgICAgICAobWF0Y2hfdGVzdCAi b3AgPT0gQ09OU1QwX1JUWCAoR0VUX01PREUgKG9wKSkiKSkpCkBAIC01NCwx NCArMTAwLDIxIEBACiAgICAgICAgKG1hdGNoX3Rlc3QgIkdFVF9DT0RFIChv cCkgPT0gUkVHIHx8IEdFVF9DT0RFIChvcCkgPT0gU1lNQk9MX1JFRiB8fCBH RVRfQ09ERSAob3ApID09IENPTlNUX0lOVCIpKSkKIAogOzsgUmV0dXJuIGlm IE9QRVJBTkQgaXMgdmFsaWQgYXMgYSBzb3VyY2Ugb3BlcmFuZCBmb3IgYSBt b3ZlIGluc3RydWN0aW9uLgotKGRlZmluZV9wcmVkaWNhdGUgIm1vdmVfb3Bl cmFuZCIKKyhkZWZpbmVfcHJlZGljYXRlICJtb3ZlX3NyY19vcGVyYW5kIgog ICAoYW5kICgKICAgICAgbm90ICgKICAgICAgICBhbmQgKG1hdGNoX2NvZGUg InBsdXMiKQogICAgICAgICAgICAobm90IChtYXRjaF90ZXN0ICIoR0VUX0NP REUgKFhFWFAgKG9wLCAwKSkgPT0gUkVHKSBeIChHRVRfQ09ERSAoWEVYUCAo b3AsMSkpID09IFJFRykiKSkKIAkgKQogICAgICAgICkKLSAgICAgICAobWF0 Y2hfb3BlcmFuZCAwICJnZW5lcmFsX29wZXJhbmQiKSkpCisgICAgICAgKG1h dGNoX29wZXJhbmQgMCAiZ2VuZXJhbF9vcGVyYW5kIikpCit7CisgIGlmICht aWNyb2JsYXplX3Rsc19yZWZlcmVuY2VkX3Aob3ApCisgICAgICB8fCAoZmxh Z19waWMgJiYgKHN5bWJvbF9tZW50aW9uZWRfcChvcCkgfHwgbGFiZWxfbWVu dGlvbmVkX3Aob3ApKSkpCisgICAgcmV0dXJuIGZhbHNlOworCisgIHJldHVy biB0cnVlOworfSkKIAogOzsgVGVzdCBmb3IgdmFsaWQgUElDIGNhbGwgb3Bl cmFuZAogKGRlZmluZV9wcmVkaWNhdGUgImNhbGxfaW5zbl9wbHRfb3BlcmFu ZCIKZGlmZiAtLWdpdCBhL2djYy9jb25maWd1cmUgYi9nY2MvY29uZmlndXJl CmluZGV4IGQ0ZjQ5YmIuLmUxMmExODAgMTAwNzU1Ci0tLSBhL2djYy9jb25m aWd1cmUKKysrIGIvZ2NjL2NvbmZpZ3VyZQpAQCAtMjMyMDUsNiArMjMyMDUs MTggQEAgZm9vOglkYXRhOAkyNQogCXRsc19maXJzdF9taW5vcj0xMwogCXRs c19hc19vcHQ9LS1mYXRhbC13YXJuaW5ncwogCTs7CisgIG1pY3JvYmxhemUq LSotKikKKyAgICBjb25mdGVzdF9zPScKKwkuc2VjdGlvbiAudGRhdGEsImF3 VCIsQHByb2diaXRzCit4OgorCS53b3JkIDIKKwkudGV4dAorCWFkZGlrIHI1 LHIyMCx4QFRMU0dECisJYWRkaWsgcjUscjIwLHhAVExTTERNJworCXRsc19m aXJzdF9tYWpvcj0yCisJdGxzX2ZpcnN0X21pbm9yPTIwCisJdGxzX2FzX29w dD0nLS1mYXRhbC13YXJuaW5ncycKKwk7OwogICBtaXBzKi0qLSopCiAgICAg Y29uZnRlc3Rfcz0nCiAJLnNlY3Rpb24gLnRkYXRhLCJhd1QiLEBwcm9nYml0 cwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZ3VyZS5hYyBiL2djYy9jb25maWd1 cmUuYWMKaW5kZXggODExYzI5Ni4uZWJhMzU3NyAxMDA2NDQKLS0tIGEvZ2Nj L2NvbmZpZ3VyZS5hYworKysgYi9nY2MvY29uZmlndXJlLmFjCkBAIC0yOTY4 LDYgKzI5NjgsMTggQEAgZm9vOglkYXRhOAkyNQogCXRsc19maXJzdF9taW5v cj0xMwogCXRsc19hc19vcHQ9LS1mYXRhbC13YXJuaW5ncwogCTs7CisgIG1p Y3JvYmxhemUqLSotKikKKyAgICBjb25mdGVzdF9zPScKKwkuc2VjdGlvbiAu dGRhdGEsImF3VCIsQHByb2diaXRzCit4OgorCS53b3JkIDIKKwkudGV4dAor CWFkZGlrIHI1LHIyMCx4QFRMU0dECisJYWRkaWsgcjUscjIwLHhAVExTTERN JworCXRsc19maXJzdF9tYWpvcj0yCisJdGxzX2ZpcnN0X21pbm9yPTIwCisJ dGxzX2FzX29wdD0nLS1mYXRhbC13YXJuaW5ncycKKwk7OwogICBtaXBzKi0q LSopCiAgICAgY29uZnRlc3Rfcz0nCiAJLnNlY3Rpb24gLnRkYXRhLCJhd1Qi LEBwcm9nYml0cwotLSAKMS43LjAuNAoK --_002_9A6AC1C7F3D8BE4087EF9E18D31945D9044C0EXAPPVEXMBX01xlnxx_--