From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26844 invoked by alias); 25 Apr 2002 21:23:46 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 26837 invoked from network); 25 Apr 2002 21:23:45 -0000 Received: from unknown (HELO pasiphae02.frii.com) (216.17.128.34) by sources.redhat.com with SMTP; 25 Apr 2002 21:23:45 -0000 Received: from deimos.frii.net (deimos.frii.com [216.17.128.2]) by pasiphae02.frii.com (8.12.3/8.12.3) with ESMTP id g3PLNjwh012381 for ; Thu, 25 Apr 2002 15:23:45 -0600 (MDT) Received: from ari-co11-54.rasserver.net (ari-co11-54.rasserver.net [204.32.196.54]) by deimos.frii.net (8.12.3/8.12.3) with ESMTP id g3PLNUiD001313 for ; Thu, 25 Apr 2002 15:23:31 -0600 (MDT) Date: Thu, 25 Apr 2002 14:23:00 -0000 From: "Theodore A. Roth" X-X-Sender: troth@bozoland.mynet To: gdb-patches@sources.redhat.com Subject: [PATCH] Run avr-tdep.c though gdb_indent.sh Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-893102668-1019769961=:10735" Content-ID: X-SW-Source: 2002-04/txt/msg01043.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --8323328-893102668-1019769961=:10735 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: Content-length: 148 Done and committed per Andrew's request. Ted Roth 2002-04-25 Theodore A. Roth * avr-tdep.c: Ran through gdb_indent.sh. --8323328-893102668-1019769961=:10735 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="avr-indent.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: ATTACHMENT; FILENAME="avr-indent.diff" Content-length: 53192 SW5kZXg6IGdkYi9hdnItdGRlcC5jDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9hdnItdGRlcC5jLHYNCnJl dHJpZXZpbmcgcmV2aXNpb24gMS4xDQpkaWZmIC11IC1wIC1yMS4xIGF2ci10 ZGVwLmMNCi0tLSBnZGIvYXZyLXRkZXAuYwkyNSBBcHIgMjAwMiAyMDozNDo1 NSAtMDAwMAkxLjENCisrKyBnZGIvYXZyLXRkZXAuYwkyNSBBcHIgMjAwMiAy MToxNzoyNiAtMDAwMA0KQEAgLTcyLDYyICs3Miw2MiBAQA0KIC8qIENvbnN0 YW50czogcHJlZml4ZWQgd2l0aCBBVlJfIHRvIGF2b2lkIG5hbWUgc3BhY2Ug Y2xhc2hlcyAqLw0KIA0KIGVudW0NCi0gIHsNCi0gICAgQVZSX1JFR19XICAg ICAgICAgPSAyNCwNCi0gICAgQVZSX1JFR19YICAgICAgICAgPSAyNiwNCi0g ICAgQVZSX1JFR19ZICAgICAgICAgPSAyOCwNCi0gICAgQVZSX0ZQX1JFR05V TSAgICAgPSAyOCwNCi0gICAgQVZSX1JFR19aICAgICAgICAgPSAzMCwNCi0g ICAgICAgICAgICAgICAgICAgIA0KLSAgICBBVlJfU1JFR19SRUdOVU0gICA9 IDMyLA0KLSAgICBBVlJfU1BfUkVHTlVNICAgICA9IDMzLA0KLSAgICBBVlJf UENfUkVHTlVNICAgICA9IDM0LA0KLQ0KLSAgICBBVlJfTlVNX1JFR1MgICAg ICA9IDMyICsgMSAvKlNSRUcqLyArIDEgLypTUCovICsgMSAvKlBDKi8sDQot ICAgIEFWUl9OVU1fUkVHX0JZVEVTID0gMzIgKyAxIC8qU1JFRyovICsgMiAv KlNQKi8gKyA0IC8qUEMqLywNCi0NCi0gICAgQVZSX1BDX1JFR19JTkRFWCAg PSAzNSwgICAgICAgLyogaW5kZXggaW50byBhcnJheSBvZiByZWdpc3RlcnMg Ki8NCi0NCi0gICAgQVZSX01BWF9QUk9MT0dVRV9TSVpFID0gNTYsICAgLyog Ynl0ZXMgKi8NCi0NCi0gICAgLyogQ291bnQgb2YgcHVzaGVkIHJlZ2lzdGVy cy4gRnJvbSByMiB0byByMTcgKGluY2x1c2l2ZWx5KSwgcjI4LCByMjkgKi8N Ci0gICAgQVZSX01BWF9QVVNIRVMgICAgPSAxOCwNCi0NCi0gICAgLyogTnVt YmVyIG9mIHRoZSBsYXN0IHB1c2hlZCByZWdpc3Rlci4gcjE3IGZvciBjdXJy ZW50IGF2ci1nY2MgKi8NCi0gICAgQVZSX0xBU1RfUFVTSEVEX1JFR05VTSA9 IDE3LA0KLQ0KLSAgICAvKiBGSVhNRTogVFJvdGgvMjAwMi0wMS0/PzogQ2Fu IHdlIHNoaWZ0IGFsbCB0aGVzZSBtZW1vcnkgbWFza3MgbGVmdCA4DQotICAg ICAgIGJpdHM/IERvIHRoZXNlIGhhdmUgdG8gbWF0Y2ggdGhlIGJmZCB2bWEg dmFsdWVzPy4gSXQgc3VyZSB3b3VsZCBtYWtlDQotICAgICAgIHRoaW5ncyBl YXNpZXIgaW4gdGhlIGZ1dHVyZSBpZiB0aGV5IGRpZG4ndCBuZWVkIHRvIG1h dGNoLg0KLQ0KLSAgICAgICBOb3RlOiBJIGNob3NlIHRoZXNlIHZhbHVlcyBz byBhcyB0byBiZSBjb25zaXN0ZW50IHdpdGggYmZkIHZtYQ0KLSAgICAgICBh ZGRyZXNzZXMuDQotDQotICAgICAgIFRSb3RoLzIwMDItMDQtMDg6IFRoZXJl IGlzIGFscmVhZHkgYSBjb25mbGljdCB3aXRoIHZlcnkgbGFyZ2UgcHJvZ3Jh bXMNCi0gICAgICAgaW4gdGhlIG1lZ2ExMjguIFRoZSBtZWdhMTI4IGhhcyAx MjhLIGluc3RydWN0aW9uIGJ5dGVzICg2NEsgd29yZHMpLA0KLSAgICAgICB0 aHVzIHRoZSBNb3N0IFNpZ25pZmljYW50IEJpdCBpcyAweDEwMDAwIHdoaWNo IGdldHMgbWFza2VkIG9mZiBteQ0KLSAgICAgICBBVlJfTUVNX01BU0suDQot DQotICAgICAgIFRoZSBwcm9ibGVtIG1hbmlmZXN0cyBpdHNlbGYgd2hlbiB0 cnlpbmcgdG8gc2V0IGEgYnJlYWtwb2ludCBpbiBhDQotICAgICAgIGZ1bmN0 aW9uIHdoaWNoIHJlc2lkZXMgaW4gdGhlIHVwcGVyIGhhbGYgb2YgdGhlIGlu c3RydWN0aW9uIHNwYWNlIGFuZA0KLSAgICAgICB0aHVzIHJlcXVpcmVzIGEg MTctYml0IGFkZHJlc3MuDQotDQotICAgICAgIEZvciBub3csIEkndmUganVz dCByZW1vdmVkIHRoZSBFRVBST00gbWFzayBhbmQgY2hhbmdlZCBBVlJfTUVN X01BU0sNCi0gICAgICAgZnJvbSAweDAwZmYwMDAwIHRvIDB4MDBmMDAwMDAu IEVlcHJvbSBpcyBub3QgYWNjZXNzaWJsZSBmcm9tIGdkYiB5ZXQsDQotICAg ICAgIGJ1dCBjb3VsZCBiZSBmb3Igc29tZSByZW1vdGUgdGFyZ2V0cyBieSBq dXN0IGFkZGluZyB0aGUgY29ycmVjdCBvZmZzZXQNCi0gICAgICAgdG8gdGhl IGFkZHJlc3MgYW5kIGxldHRpbmcgdGhlIHJlbW90ZSB0YXJnZXQgaGFuZGxl IHRoZSBsb3ctbGV2ZWwNCi0gICAgICAgZGV0YWlscyBvZiBhY3R1YWxseSBh Y2Nlc3NpbmcgdGhlIGVlcHJvbS4gKi8NCit7DQorICBBVlJfUkVHX1cgPSAy NCwNCisgIEFWUl9SRUdfWCA9IDI2LA0KKyAgQVZSX1JFR19ZID0gMjgsDQor ICBBVlJfRlBfUkVHTlVNID0gMjgsDQorICBBVlJfUkVHX1ogPSAzMCwNCisN CisgIEFWUl9TUkVHX1JFR05VTSA9IDMyLA0KKyAgQVZSX1NQX1JFR05VTSA9 IDMzLA0KKyAgQVZSX1BDX1JFR05VTSA9IDM0LA0KKw0KKyAgQVZSX05VTV9S RUdTID0gMzIgKyAxIC8qU1JFRyovICsgMSAvKlNQKi8gKyAxIC8qUEMqLywN CisgIEFWUl9OVU1fUkVHX0JZVEVTID0gMzIgKyAxIC8qU1JFRyovICsgMiAv KlNQKi8gKyA0IC8qUEMqLywNCisNCisgIEFWUl9QQ19SRUdfSU5ERVggPSAz NSwJLyogaW5kZXggaW50byBhcnJheSBvZiByZWdpc3RlcnMgKi8NCisNCisg IEFWUl9NQVhfUFJPTE9HVUVfU0laRSA9IDU2LAkvKiBieXRlcyAqLw0KKw0K KyAgLyogQ291bnQgb2YgcHVzaGVkIHJlZ2lzdGVycy4gRnJvbSByMiB0byBy MTcgKGluY2x1c2l2ZWx5KSwgcjI4LCByMjkgKi8NCisgIEFWUl9NQVhfUFVT SEVTID0gMTgsDQorDQorICAvKiBOdW1iZXIgb2YgdGhlIGxhc3QgcHVzaGVk IHJlZ2lzdGVyLiByMTcgZm9yIGN1cnJlbnQgYXZyLWdjYyAqLw0KKyAgQVZS X0xBU1RfUFVTSEVEX1JFR05VTSA9IDE3LA0KKw0KKyAgLyogRklYTUU6IFRS b3RoLzIwMDItMDEtPz86IENhbiB3ZSBzaGlmdCBhbGwgdGhlc2UgbWVtb3J5 IG1hc2tzIGxlZnQgOA0KKyAgICAgYml0cz8gRG8gdGhlc2UgaGF2ZSB0byBt YXRjaCB0aGUgYmZkIHZtYSB2YWx1ZXM/LiBJdCBzdXJlIHdvdWxkIG1ha2UN CisgICAgIHRoaW5ncyBlYXNpZXIgaW4gdGhlIGZ1dHVyZSBpZiB0aGV5IGRp ZG4ndCBuZWVkIHRvIG1hdGNoLg0KKw0KKyAgICAgTm90ZTogSSBjaG9zZSB0 aGVzZSB2YWx1ZXMgc28gYXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIGJmZCB2 bWENCisgICAgIGFkZHJlc3Nlcy4NCisNCisgICAgIFRSb3RoLzIwMDItMDQt MDg6IFRoZXJlIGlzIGFscmVhZHkgYSBjb25mbGljdCB3aXRoIHZlcnkgbGFy Z2UgcHJvZ3JhbXMNCisgICAgIGluIHRoZSBtZWdhMTI4LiBUaGUgbWVnYTEy OCBoYXMgMTI4SyBpbnN0cnVjdGlvbiBieXRlcyAoNjRLIHdvcmRzKSwNCisg ICAgIHRodXMgdGhlIE1vc3QgU2lnbmlmaWNhbnQgQml0IGlzIDB4MTAwMDAg d2hpY2ggZ2V0cyBtYXNrZWQgb2ZmIG15DQorICAgICBBVlJfTUVNX01BU0su DQorDQorICAgICBUaGUgcHJvYmxlbSBtYW5pZmVzdHMgaXRzZWxmIHdoZW4g dHJ5aW5nIHRvIHNldCBhIGJyZWFrcG9pbnQgaW4gYQ0KKyAgICAgZnVuY3Rp b24gd2hpY2ggcmVzaWRlcyBpbiB0aGUgdXBwZXIgaGFsZiBvZiB0aGUgaW5z dHJ1Y3Rpb24gc3BhY2UgYW5kDQorICAgICB0aHVzIHJlcXVpcmVzIGEgMTct Yml0IGFkZHJlc3MuDQogDQotICAgIEFWUl9JTUVNX1NUQVJUICAgID0gMHgw MDAwMDAwMCwgLyogSU5TTiBtZW1vcnkgKi8NCi0gICAgQVZSX1NNRU1fU1RB UlQgICAgPSAweDAwODAwMDAwLCAvKiBTUkFNIG1lbW9yeSAqLw0KKyAgICAg Rm9yIG5vdywgSSd2ZSBqdXN0IHJlbW92ZWQgdGhlIEVFUFJPTSBtYXNrIGFu ZCBjaGFuZ2VkIEFWUl9NRU1fTUFTSw0KKyAgICAgZnJvbSAweDAwZmYwMDAw IHRvIDB4MDBmMDAwMDAuIEVlcHJvbSBpcyBub3QgYWNjZXNzaWJsZSBmcm9t IGdkYiB5ZXQsDQorICAgICBidXQgY291bGQgYmUgZm9yIHNvbWUgcmVtb3Rl IHRhcmdldHMgYnkganVzdCBhZGRpbmcgdGhlIGNvcnJlY3Qgb2Zmc2V0DQor ICAgICB0byB0aGUgYWRkcmVzcyBhbmQgbGV0dGluZyB0aGUgcmVtb3RlIHRh cmdldCBoYW5kbGUgdGhlIGxvdy1sZXZlbA0KKyAgICAgZGV0YWlscyBvZiBh Y3R1YWxseSBhY2Nlc3NpbmcgdGhlIGVlcHJvbS4gKi8NCisNCisgIEFWUl9J TUVNX1NUQVJUID0gMHgwMDAwMDAwMCwJLyogSU5TTiBtZW1vcnkgKi8NCisg IEFWUl9TTUVNX1NUQVJUID0gMHgwMDgwMDAwMCwJLyogU1JBTSBtZW1vcnkg Ki8NCiAjaWYgMQ0KLSAgICAvKiBObyBlZXByb20gbWFzayBkZWZpbmVkICov DQotICAgIEFWUl9NRU1fTUFTSyAgICAgID0gMHgwMGYwMDAwMCwgLyogbWFz ayB0byBkZXRlcm1pbmUgbWVtb3J5IHNwYWNlICovDQorICAvKiBObyBlZXBy b20gbWFzayBkZWZpbmVkICovDQorICBBVlJfTUVNX01BU0sgPSAweDAwZjAw MDAwLAkvKiBtYXNrIHRvIGRldGVybWluZSBtZW1vcnkgc3BhY2UgKi8NCiAj ZWxzZQ0KLSAgICBBVlJfRU1FTV9TVEFSVCAgICA9IDB4MDA4MTAwMDAsIC8q IEVFUFJPTSBtZW1vcnkgKi8NCi0gICAgQVZSX01FTV9NQVNLICAgICAgPSAw eDAwZmYwMDAwLCAvKiBtYXNrIHRvIGRldGVybWluZSBtZW1vcnkgc3BhY2Ug Ki8NCisgIEFWUl9FTUVNX1NUQVJUID0gMHgwMDgxMDAwMCwJLyogRUVQUk9N IG1lbW9yeSAqLw0KKyAgQVZSX01FTV9NQVNLID0gMHgwMGZmMDAwMCwJLyog bWFzayB0byBkZXRlcm1pbmUgbWVtb3J5IHNwYWNlICovDQogI2VuZGlmDQot ICB9Ow0KK307DQogDQogLyogQW55IGZ1bmN0aW9uIHdpdGggYSBmcmFtZSBs b29rcyBsaWtlIHRoaXMNCiAgICAuLi4uLi4uICAgIDwtU1AgUE9JTlRTIEhF UkUNCkBAIC0xNDEsMzAgKzE0MSwyOSBAQCBlbnVtDQogICAgU0VDT05EIEFS RyAqLw0KIA0KIHN0cnVjdCBmcmFtZV9leHRyYV9pbmZvDQotICB7DQotICAg IENPUkVfQUREUiByZXR1cm5fcGM7DQotICAgIENPUkVfQUREUiBhcmdzX3Bv aW50ZXI7DQotICAgIGludCBsb2NhbHNfc2l6ZTsNCi0gICAgaW50IGZyYW1l cmVnOw0KLSAgICBpbnQgZnJhbWVzaXplOw0KLSAgICBpbnQgaXNfbWFpbjsN Ci0gIH07DQorew0KKyAgQ09SRV9BRERSIHJldHVybl9wYzsNCisgIENPUkVf QUREUiBhcmdzX3BvaW50ZXI7DQorICBpbnQgbG9jYWxzX3NpemU7DQorICBp bnQgZnJhbWVyZWc7DQorICBpbnQgZnJhbWVzaXplOw0KKyAgaW50IGlzX21h aW47DQorfTsNCiANCiBzdHJ1Y3QgZ2RiYXJjaF90ZGVwDQotICB7DQotICAg IC8qIEZJWE1FOiBUUm90aDogaXMgdGhlcmUgYW55dGhpbmcgdG8gcHV0IGhl cmU/ICovDQotICAgIGludCBmb287DQotICB9Ow0KK3sNCisgIC8qIEZJWE1F OiBUUm90aDogaXMgdGhlcmUgYW55dGhpbmcgdG8gcHV0IGhlcmU/ICovDQor ICBpbnQgZm9vOw0KK307DQogDQogLyogTG9va3VwIHRoZSBuYW1lIG9mIGEg cmVnaXN0ZXIgZ2l2ZW4gaXQncyBudW1iZXIuICovDQogDQogc3RhdGljIGNo YXIgKg0KIGF2cl9yZWdpc3Rlcl9uYW1lIChpbnQgcmVnbnVtKQ0KIHsNCi0g IHN0YXRpYyBjaGFyICpyZWdpc3Rlcl9uYW1lc1tdID0NCi0gIHsNCi0gICAg InIwIiwgICJyMSIsICAicjIiLCAgInIzIiwgICJyNCIsICAicjUiLCAgInI2 IiwgICJyNyIsDQotICAgICJyOCIsICAicjkiLCAgInIxMCIsICJyMTEiLCAi cjEyIiwgInIxMyIsICJyMTQiLCAicjE1IiwNCisgIHN0YXRpYyBjaGFyICpy ZWdpc3Rlcl9uYW1lc1tdID0gew0KKyAgICAicjAiLCAicjEiLCAicjIiLCAi cjMiLCAicjQiLCAicjUiLCAicjYiLCAicjciLA0KKyAgICAicjgiLCAicjki LCAicjEwIiwgInIxMSIsICJyMTIiLCAicjEzIiwgInIxNCIsICJyMTUiLA0K ICAgICAicjE2IiwgInIxNyIsICJyMTgiLCAicjE5IiwgInIyMCIsICJyMjEi LCAicjIyIiwgInIyMyIsDQogICAgICJyMjQiLCAicjI1IiwgInIyNiIsICJy MjciLCAicjI4IiwgInIyOSIsICJyMzAiLCAicjMxIiwNCiAgICAgIlNSRUci LCAiU1AiLCAiUEMiDQpAQCAtMzEwLDE0ICszMDksMTQgQEAgYXZyX2FkZHJl c3NfdG9fcG9pbnRlciAoc3RydWN0IHR5cGUgKnR5cA0KICAgaWYgKFRZUEVf Q09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpID09IFRZUEVfQ09ERV9G VU5DDQogICAgICAgfHwgVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0 eXBlKSkgPT0gVFlQRV9DT0RFX01FVEhPRCkNCiAgICAgew0KLSAgICAgIHN0 b3JlX3Vuc2lnbmVkX2ludGVnZXIgKGJ1ZiwgVFlQRV9MRU5HVEggKHR5cGUp LCANCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdnJfY29udmVy dF9pYWRkcl90b19yYXcgKGFkZHIpKTsNCisgICAgICBzdG9yZV91bnNpZ25l ZF9pbnRlZ2VyIChidWYsIFRZUEVfTEVOR1RIICh0eXBlKSwNCisJCQkgICAg ICBhdnJfY29udmVydF9pYWRkcl90b19yYXcgKGFkZHIpKTsNCiAgICAgfQ0K ICAgZWxzZQ0KICAgICB7DQogICAgICAgLyogU3RyaXAgb2ZmIGFueSB1cHBl ciBzZWdtZW50IGJpdHMuICAqLw0KLSAgICAgIHN0b3JlX3Vuc2lnbmVkX2lu dGVnZXIgKGJ1ZiwgVFlQRV9MRU5HVEggKHR5cGUpLCANCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdnJfY29udmVydF9zYWRkcl90b19yYXcg KGFkZHIpKTsNCisgICAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChidWYs IFRZUEVfTEVOR1RIICh0eXBlKSwNCisJCQkgICAgICBhdnJfY29udmVydF9z YWRkcl90b19yYXcgKGFkZHIpKTsNCiAgICAgfQ0KIH0NCiANCkBAIC0zMjYs MTcgKzMyNSwxOCBAQCBhdnJfcG9pbnRlcl90b19hZGRyZXNzIChzdHJ1Y3Qg dHlwZSAqdHlwDQogew0KICAgQ09SRV9BRERSIGFkZHIgPSBleHRyYWN0X2Fk ZHJlc3MgKGJ1ZiwgVFlQRV9MRU5HVEggKHR5cGUpKTsNCiANCi0gIGlmICgg VFlQRV9DT0RFX1NQQUNFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgKQ0K KyAgaWYgKFRZUEVfQ09ERV9TUEFDRSAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSkpKQ0KICAgICB7DQotICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJf c3RkZXJyLCAiQ09ERV9TUEFDRSAtLS0tPj4gcHRyLT5hZGRyOiAweCVseFxu IiwgYWRkcik7DQotICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3Rk ZXJyLCAiKysrIElmIHlvdSBzZWUgdGhpcywgcGxlYXNlIHNlbmQgbWUgYW4g ZW1haWwgPHRyb3RoQHZlcmluZXQuY29tPlxuIik7DQorICAgICAgZnByaW50 Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLCAiQ09ERV9TUEFDRSAtLS0tPj4g cHRyLT5hZGRyOiAweCVseFxuIiwNCisJCQkgIGFkZHIpOw0KKyAgICAgIGZw cmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwNCisJCQkgICIrKysgSWYg eW91IHNlZSB0aGlzLCBwbGVhc2Ugc2VuZCBtZSBhbiBlbWFpbCA8dHJvdGhA dmVyaW5ldC5jb20+XG4iKTsNCiAgICAgfQ0KIA0KICAgLyogSXMgaXQgYSBj b2RlIGFkZHJlc3M/ICAqLw0KICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJH RVRfVFlQRSAodHlwZSkpID09IFRZUEVfQ09ERV9GVU5DDQogICAgICAgfHwg VFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPT0gVFlQRV9D T0RFX01FVEhPRA0KLSAgICAgIHx8IFRZUEVfQ09ERV9TUEFDRSAoVFlQRV9U QVJHRVRfVFlQRSAodHlwZSkpDQotICAgICAgKQ0KKyAgICAgIHx8IFRZUEVf Q09ERV9TUEFDRSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKQ0KICAgICBy ZXR1cm4gYXZyX21ha2VfaWFkZHIgKGFkZHIpOw0KICAgZWxzZQ0KICAgICBy ZXR1cm4gYXZyX21ha2Vfc2FkZHIgKGFkZHIpOw0KQEAgLTM5Niw3ICszOTYs NyBAQCBhdnJfcmVhZF9mcCAodm9pZCkNCiANCiBzdGF0aWMgdm9pZA0KIGF2 cl9yZW1vdGVfdHJhbnNsYXRlX3hmZXJfYWRkcmVzcyAoQ09SRV9BRERSIG1l bWFkZHIsIGludCBucl9ieXRlcywNCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENPUkVfQUREUiAqdGFyZ19hZGRyLCBpbnQgKnRhcmdf bGVuKQ0KKwkJCQkgICBDT1JFX0FERFIgKnRhcmdfYWRkciwgaW50ICp0YXJn X2xlbikNCiB7DQogICBsb25nIG91dF9hZGRyOw0KICAgbG9uZyBvdXRfbGVu Ow0KQEAgLTQ1OCwzMSArNDU4LDMyIEBAIGF2cl9zY2FuX3Byb2xvZ3VlIChz dHJ1Y3QgZnJhbWVfaW5mbyAqZmkNCiB7DQogICBDT1JFX0FERFIgcHJvbG9n dWVfc3RhcnQ7DQogICBDT1JFX0FERFIgcHJvbG9ndWVfZW5kOw0KLSAgaW50 ICAgICAgIGk7DQotICB1bnNpZ25lZCAgc2hvcnQgaW5zbjsNCi0gIGludCAg ICAgICByZWdubzsNCi0gIGludCAgICAgICBzY2FuX3N0YWdlPTA7DQotICBj aGFyICAgICAgKm5hbWU7DQorICBpbnQgaTsNCisgIHVuc2lnbmVkIHNob3J0 IGluc247DQorICBpbnQgcmVnbm87DQorICBpbnQgc2Nhbl9zdGFnZSA9IDA7 DQorICBjaGFyICpuYW1lOw0KICAgc3RydWN0IG1pbmltYWxfc3ltYm9sICpt c3ltYm9sOw0KLSAgaW50ICAgICAgIHByb2xvZ3VlX2xlbjsNCisgIGludCBw cm9sb2d1ZV9sZW47DQogICB1bnNpZ25lZCBjaGFyIHByb2xvZ3VlW0FWUl9N QVhfUFJPTE9HVUVfU0laRV07DQogICBpbnQgdnBjID0gMDsNCiANCiAgIGZp LT5leHRyYV9pbmZvLT5mcmFtZXJlZyA9IEFWUl9TUF9SRUdOVU07DQotICAN Ci0gIGlmIChmaW5kX3BjX3BhcnRpYWxfZnVuY3Rpb24gKGZpLT5wYywgJm5h bWUsICZwcm9sb2d1ZV9zdGFydCwgJnByb2xvZ3VlX2VuZCkpDQorDQorICBp ZiAoZmluZF9wY19wYXJ0aWFsX2Z1bmN0aW9uDQorICAgICAgKGZpLT5wYywg Jm5hbWUsICZwcm9sb2d1ZV9zdGFydCwgJnByb2xvZ3VlX2VuZCkpDQogICAg IHsNCiAgICAgICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lIHNhbCA9IGZpbmRf cGNfbGluZSAocHJvbG9ndWVfc3RhcnQsIDApOw0KIA0KLSAgICAgIGlmIChz YWwubGluZSA9PSAwKSAgICAgICAgICAgICAgICAvKiBubyBsaW5lIGluZm8s IHVzZSBjdXJyZW50IFBDICovDQotICAgICAgICBwcm9sb2d1ZV9lbmQgPSBm aS0+cGM7DQotICAgICAgZWxzZSBpZiAoc2FsLmVuZCA8IHByb2xvZ3VlX2Vu ZCkgIC8qIG5leHQgbGluZSBiZWdpbnMgYWZ0ZXIgZm4gZW5kICovDQotICAg ICAgICBwcm9sb2d1ZV9lbmQgPSBzYWwuZW5kOyAgICAgICAgIC8qIChwcm9i YWJseSBtZWFucyBubyBwcm9sb2d1ZSkgICovDQorICAgICAgaWYgKHNhbC5s aW5lID09IDApCS8qIG5vIGxpbmUgaW5mbywgdXNlIGN1cnJlbnQgUEMgKi8N CisJcHJvbG9ndWVfZW5kID0gZmktPnBjOw0KKyAgICAgIGVsc2UgaWYgKHNh bC5lbmQgPCBwcm9sb2d1ZV9lbmQpCS8qIG5leHQgbGluZSBiZWdpbnMgYWZ0 ZXIgZm4gZW5kICovDQorCXByb2xvZ3VlX2VuZCA9IHNhbC5lbmQ7CS8qIChw cm9iYWJseSBtZWFucyBubyBwcm9sb2d1ZSkgICovDQogICAgIH0NCiAgIGVs c2UNCiAgICAgLyogV2UncmUgaW4gdGhlIGJvb25kb2NrczogYWxsb3cgZm9y ICovDQogICAgIC8qIDE5IHB1c2hlcywgYW4gYWRkLCBhbmQgIm12IGZwLHNw IiAqLw0KLSAgICBwcm9sb2d1ZV9lbmQgPSBwcm9sb2d1ZV9zdGFydCArIEFW Ul9NQVhfUFJPTE9HVUVfU0laRTsgDQorICAgIHByb2xvZ3VlX2VuZCA9IHBy b2xvZ3VlX3N0YXJ0ICsgQVZSX01BWF9QUk9MT0dVRV9TSVpFOw0KIA0KICAg cHJvbG9ndWVfZW5kID0gbWluIChwcm9sb2d1ZV9lbmQsIGZpLT5wYyk7DQog DQpAQCAtNTAyLDgxICs1MDMsODAgQEAgYXZyX3NjYW5fcHJvbG9ndWUgKHN0 cnVjdCBmcmFtZV9pbmZvICpmaQ0KICAgaWYgKG5hbWUgJiYgc3RyY21wICgi bWFpbiIsIG5hbWUpID09IDAgJiYgcHJvbG9ndWVfbGVuID09IDgpDQogICAg IHsNCiAgICAgICBDT1JFX0FERFIgbG9jYWxzOw0KLSAgICAgIHVuc2lnbmVk IGNoYXIgaW1nW10gPQ0KLSAgICAgIHsNCi0gICAgICAgIDB4ZGUsMHhiZiwg ICAgICAgICAgICAgIC8qIG91dCBfX1NQX0hfXyxyMjkgKi8NCi0gICAgICAg IDB4Y2QsMHhiZiAgICAgICAgICAgICAgIC8qIG91dCBfX1NQX0xfXyxyMjgg Ki8NCisgICAgICB1bnNpZ25lZCBjaGFyIGltZ1tdID0gew0KKwkweGRlLCAw eGJmLAkJLyogb3V0IF9fU1BfSF9fLHIyOSAqLw0KKwkweGNkLCAweGJmCQkv KiBvdXQgX19TUF9MX18scjI4ICovDQogICAgICAgfTsNCiANCiAgICAgICBm aS0+ZXh0cmFfaW5mby0+ZnJhbWVyZWcgPSBBVlJfRlBfUkVHTlVNOw0KICAg ICAgIGluc24gPSBFWFRSQUNUX0lOU04gKCZwcm9sb2d1ZVt2cGNdKTsNCiAg ICAgICAvKiBsZGkgcjI4LGxvOCg8UkFNX0FERFI+IC0gPExPQ0FMU19TSVpF PikgKi8NCi0gICAgICBpZiAoKGluc24gJiAweGYwZjApID09IDB4ZTBjMCkg DQotICAgICAgICB7DQotICAgICAgICAgIGxvY2FscyA9IChpbnNuICYgMHhm KSB8ICgoaW5zbiAmIDB4MGYwMCkgPj4gNCk7DQotICAgICAgICAgIGluc24g PSBFWFRSQUNUX0lOU04gKCZwcm9sb2d1ZVt2cGMrMl0pOw0KLSAgICAgICAg ICAvKiBsZGkgcjI5LGhpOCg8UkFNX0FERFI+IC0gPExPQ0FMU19TSVpFPikg Ki8NCi0gICAgICAgICAgaWYgKChpbnNuICYgMHhmMGYwKSA9PSAweGUwZDAp ICANCi0gICAgICAgICAgICB7DQotICAgICAgICAgICAgICBsb2NhbHMgfD0g KChpbnNuICYgMHhmKSB8ICgoaW5zbiAmIDB4MGYwMCkgPj4gNCkpIDw8IDg7 DQotICAgICAgICAgICAgICBpZiAobWVtY21wIChwcm9sb2d1ZSArIHZwYyAr IDQsIGltZywgc2l6ZW9mIChpbWcpKSA9PSAwKQ0KLSAgICAgICAgICAgICAg ICB7DQotICAgICAgICAgICAgICAgICAgZmktPmZyYW1lID0gbG9jYWxzOw0K LQ0KLSAgICAgICAgICAgICAgICAgIC8qIFRSb3RoOiBEb2VzIC0xIG1lYW4g d2UncmUgaW4gbWFpbj8gKi8NCi0gICAgICAgICAgICAgICAgICBmaS0+ZXh0 cmFfaW5mby0+aXNfbWFpbiA9IDE7DQotICAgICAgICAgICAgICAgICAgcmV0 dXJuOw0KLSAgICAgICAgICAgICAgICB9DQotICAgICAgICAgICAgfQ0KLSAg ICAgICAgfQ0KKyAgICAgIGlmICgoaW5zbiAmIDB4ZjBmMCkgPT0gMHhlMGMw KQ0KKwl7DQorCSAgbG9jYWxzID0gKGluc24gJiAweGYpIHwgKChpbnNuICYg MHgwZjAwKSA+PiA0KTsNCisJICBpbnNuID0gRVhUUkFDVF9JTlNOICgmcHJv bG9ndWVbdnBjICsgMl0pOw0KKwkgIC8qIGxkaSByMjksaGk4KDxSQU1fQURE Uj4gLSA8TE9DQUxTX1NJWkU+KSAqLw0KKwkgIGlmICgoaW5zbiAmIDB4ZjBm MCkgPT0gMHhlMGQwKQ0KKwkgICAgew0KKwkgICAgICBsb2NhbHMgfD0gKChp bnNuICYgMHhmKSB8ICgoaW5zbiAmIDB4MGYwMCkgPj4gNCkpIDw8IDg7DQor CSAgICAgIGlmIChtZW1jbXAgKHByb2xvZ3VlICsgdnBjICsgNCwgaW1nLCBz aXplb2YgKGltZykpID09IDApDQorCQl7DQorCQkgIGZpLT5mcmFtZSA9IGxv Y2FsczsNCisNCisJCSAgLyogVFJvdGg6IERvZXMgLTEgbWVhbiB3ZSdyZSBp biBtYWluPyAqLw0KKwkJICBmaS0+ZXh0cmFfaW5mby0+aXNfbWFpbiA9IDE7 DQorCQkgIHJldHVybjsNCisJCX0NCisJICAgIH0NCisJfQ0KICAgICB9DQot ICAgICAgDQorDQogICAvKiBTY2FubmluZyBgLW1jYWxsLXByb2xvZ3Vlcycg cHJvbG9ndWUNCiAgICAgIEZJWE1FOiBtZWdhIHByb2xvZ3VlIGhhdmUgYSAx MiBieXRlcyBsb25nICovDQogDQotICB3aGlsZSAocHJvbG9ndWVfbGVuIDw9 IDEyKSAgICAvKiBJJ20gdXNlIHdoaWxlIHRvIGF2b2l0IG1hbnkgZ290bydz ICovDQorICB3aGlsZSAocHJvbG9ndWVfbGVuIDw9IDEyKQkvKiBJJ20gdXNl IHdoaWxlIHRvIGF2b2l0IG1hbnkgZ290bydzICovDQogICAgIHsNCiAgICAg ICBpbnQgbG9jX3NpemU7DQogICAgICAgaW50IGJvZHlfYWRkcjsNCiAgICAg ICB1bnNpZ25lZCBudW1fcHVzaGVzOw0KLSAgICAgIA0KKw0KICAgICAgIGlu c24gPSBFWFRSQUNUX0lOU04gKCZwcm9sb2d1ZVt2cGNdKTsNCiAgICAgICAv KiBsZGkgcjI2LDxMT0NBTFNfU0laRT4gKi8NCi0gICAgICBpZiAoKGluc24g JiAweGYwZjApICE9IDB4ZTBhMCkgDQotICAgICAgICBicmVhazsNCisgICAg ICBpZiAoKGluc24gJiAweGYwZjApICE9IDB4ZTBhMCkNCisJYnJlYWs7DQog ICAgICAgbG9jX3NpemUgPSAoaW5zbiAmIDB4ZikgfCAoKGluc24gJiAweDBm MDApID4+IDQpOw0KLSAgICAgIA0KKw0KICAgICAgIGluc24gPSBFWFRSQUNU X0lOU04gKCZwcm9sb2d1ZVt2cGMgKyAyXSk7DQogICAgICAgLyogbGRpIHIy Nyw8TE9DQUxTX1NJWkU+IC8gMjU2ICovDQogICAgICAgaWYgKChpbnNuICYg MHhmMGYwKSAhPSAweGUwYjApDQotICAgICAgICBicmVhazsNCisJYnJlYWs7 DQogICAgICAgbG9jX3NpemUgfD0gKChpbnNuICYgMHhmKSB8ICgoaW5zbiAm IDB4MGYwMCkgPj4gNCkpIDw8IDg7DQotICAgICAgDQorDQogICAgICAgaW5z biA9IEVYVFJBQ1RfSU5TTiAoJnByb2xvZ3VlW3ZwYyArIDRdKTsNCiAgICAg ICAvKiBsZGkgcjMwLHBtX2xvOCguTF9mb29fYm9keSkgKi8NCiAgICAgICBp ZiAoKGluc24gJiAweGYwZjApICE9IDB4ZTBlMCkNCi0gICAgICAgIGJyZWFr Ow0KKwlicmVhazsNCiAgICAgICBib2R5X2FkZHIgPSAoaW5zbiAmIDB4Zikg fCAoKGluc24gJiAweDBmMDApID4+IDQpOw0KIA0KICAgICAgIGluc24gPSBF WFRSQUNUX0lOU04gKCZwcm9sb2d1ZVt2cGMgKyA2XSk7DQogICAgICAgLyog bGRpIHIzMSxwbV9oaTgoLkxfZm9vX2JvZHkpICovDQogICAgICAgaWYgKChp bnNuICYgMHhmMGYwKSAhPSAweGUwZjApDQotICAgICAgICBicmVhazsNCisJ YnJlYWs7DQogICAgICAgYm9keV9hZGRyIHw9ICgoaW5zbiAmIDB4ZikgfCAo KGluc24gJiAweDBmMDApID4+IDQpKSA8PCA4Ow0KIA0KICAgICAgIGlmIChi b2R5X2FkZHIgIT0gKHByb2xvZ3VlX3N0YXJ0ICsgMTApIC8gMikNCi0gICAg ICAgIGJyZWFrOw0KKwlicmVhazsNCiANCiAgICAgICBtc3ltYm9sID0gbG9v a3VwX21pbmltYWxfc3ltYm9sICgiX19wcm9sb2d1ZV9zYXZlc19fIiwgTlVM TCwgTlVMTCk7DQogICAgICAgaWYgKCFtc3ltYm9sKQ0KLSAgICAgICAgYnJl YWs7DQorCWJyZWFrOw0KIA0KICAgICAgIC8qIEZJWE1FOiBwcm9sb2d1ZSBm b3IgbWVnYSBoYXZlIGEgSk1QIGluc3RlYWQgb2YgUkpNUCAqLw0KICAgICAg IGluc24gPSBFWFRSQUNUX0lOU04gKCZwcm9sb2d1ZVt2cGMgKyA4XSk7DQog ICAgICAgLyogcmptcCBfX3Byb2xvZ3VlX3NhdmVzX18rUlJSICovDQogICAg ICAgaWYgKChpbnNuICYgMHhmMDAwKSAhPSAweGMwMDApDQotICAgICAgICBi cmVhazsNCi0gICAgICANCisJYnJlYWs7DQorDQogICAgICAgLyogRXh0cmFj dCBQQyByZWxhdGl2ZSBvZmZzZXQgZnJvbSBSSk1QICovDQogICAgICAgaSA9 IChpbnNuICYgMHhmZmYpIHwgKGluc24gJiAweDgwMCA/ICgtMSBeIDB4ZmZm KSA6IDApOw0KICAgICAgIC8qIENvbnZlcnQgb2Zmc2V0IHRvIGJ5dGUgYWRk cmVzc2FibGUgbW9kZSAqLw0KQEAgLTU4OCwxOSArNTg4LDE5IEBAIGF2cl9z Y2FuX3Byb2xvZ3VlIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZmkNCiAgICAgICBu dW1fcHVzaGVzID0gQVZSX01BWF9QVVNIRVMgLSAoaSAtIFNZTUJPTF9WQUxV RV9BRERSRVNTIChtc3ltYm9sKSkgLyAyOw0KIA0KICAgICAgIGlmIChudW1f cHVzaGVzID4gQVZSX01BWF9QVVNIRVMpDQotICAgICAgICBudW1fcHVzaGVz ID0gMDsNCi0gICAgICAgIA0KKwludW1fcHVzaGVzID0gMDsNCisNCiAgICAg ICBpZiAobnVtX3B1c2hlcykNCi0gICAgICAgIHsNCi0gICAgICAgICAgaW50 IGZyb207DQotICAgICAgICAgIGZpLT5zYXZlZF9yZWdzW0FWUl9GUF9SRUdO VU0rMV0gPSBudW1fcHVzaGVzOw0KLSAgICAgICAgICBpZiAobnVtX3B1c2hl cyA+PSAyKQ0KLSAgICAgICAgICAgIGZpLT5zYXZlZF9yZWdzW0FWUl9GUF9S RUdOVU1dID0gbnVtX3B1c2hlcyAtIDE7DQotICAgICAgICAgIGkgPSAwOw0K LSAgICAgICAgICBmb3IgKGZyb20gPSBBVlJfTEFTVF9QVVNIRURfUkVHTlVN ICsgMSAtIChudW1fcHVzaGVzIC0gMik7DQotICAgICAgICAgICAgICAgZnJv bSA8PSBBVlJfTEFTVF9QVVNIRURfUkVHTlVNOyArK2Zyb20pDQotICAgICAg ICAgICAgZmktPnNhdmVkX3JlZ3NbZnJvbV0gPSArK2k7DQotICAgICAgICB9 DQorCXsNCisJICBpbnQgZnJvbTsNCisJICBmaS0+c2F2ZWRfcmVnc1tBVlJf RlBfUkVHTlVNICsgMV0gPSBudW1fcHVzaGVzOw0KKwkgIGlmIChudW1fcHVz aGVzID49IDIpDQorCSAgICBmaS0+c2F2ZWRfcmVnc1tBVlJfRlBfUkVHTlVN XSA9IG51bV9wdXNoZXMgLSAxOw0KKwkgIGkgPSAwOw0KKwkgIGZvciAoZnJv bSA9IEFWUl9MQVNUX1BVU0hFRF9SRUdOVU0gKyAxIC0gKG51bV9wdXNoZXMg LSAyKTsNCisJICAgICAgIGZyb20gPD0gQVZSX0xBU1RfUFVTSEVEX1JFR05V TTsgKytmcm9tKQ0KKwkgICAgZmktPnNhdmVkX3JlZ3NbZnJvbV0gPSArK2k7 DQorCX0NCiAgICAgICBmaS0+ZXh0cmFfaW5mby0+bG9jYWxzX3NpemUgPSBs b2Nfc2l6ZTsNCiAgICAgICBmaS0+ZXh0cmFfaW5mby0+ZnJhbWVzaXplID0g bG9jX3NpemUgKyBudW1fcHVzaGVzOw0KICAgICAgIGZpLT5leHRyYV9pbmZv LT5mcmFtZXJlZyA9IEFWUl9GUF9SRUdOVU07DQpAQCAtNjExLDI5ICs2MTEs MjggQEAgYXZyX3NjYW5fcHJvbG9ndWUgKHN0cnVjdCBmcmFtZV9pbmZvICpm aQ0KIA0KICAgaWYgKHByb2xvZ3VlX2xlbiA+PSAxMikNCiAgICAgew0KLSAg ICAgIHVuc2lnbmVkIGNoYXIgaW1nW10gPQ0KLSAgICAgIHsNCi0gICAgICAg IDB4NzgsMHg5NCwgICAgICAgICAgICAgIC8qIHNlaSAqLw0KLSAgICAgICAg MHgxZiwweDkyLCAgICAgICAgICAgICAgLyogcHVzaCByMSAqLw0KLSAgICAg ICAgMHgwZiwweDkyLCAgICAgICAgICAgICAgLyogcHVzaCByMCAqLw0KLSAg ICAgICAgMHgwZiwweGI2LCAgICAgICAgICAgICAgLyogaW4gcjAsMHgzZiBT UkVHICovDQotICAgICAgICAweDBmLDB4OTIsICAgICAgICAgICAgICAvKiBw dXNoIHIwICovDQotICAgICAgICAweDExLDB4MjQgICAgICAgICAgICAgICAv KiBjbHIgcjEgKi8NCisgICAgICB1bnNpZ25lZCBjaGFyIGltZ1tdID0gew0K KwkweDc4LCAweDk0LAkJLyogc2VpICovDQorCTB4MWYsIDB4OTIsCQkvKiBw dXNoIHIxICovDQorCTB4MGYsIDB4OTIsCQkvKiBwdXNoIHIwICovDQorCTB4 MGYsIDB4YjYsCQkvKiBpbiByMCwweDNmIFNSRUcgKi8NCisJMHgwZiwgMHg5 MiwJCS8qIHB1c2ggcjAgKi8NCisJMHgxMSwgMHgyNAkJLyogY2xyIHIxICov DQogICAgICAgfTsNCiAgICAgICBpZiAobWVtY21wIChwcm9sb2d1ZSwgaW1n LCBzaXplb2YgKGltZykpID09IDApDQotICAgICAgICB7DQotICAgICAgICAg IHZwYyArPSBzaXplb2YgKGltZyk7DQotICAgICAgICAgIGZpLT5zYXZlZF9y ZWdzWzBdID0gMjsNCi0gICAgICAgICAgZmktPnNhdmVkX3JlZ3NbMV0gPSAx Ow0KLSAgICAgICAgICBmaS0+ZXh0cmFfaW5mby0+ZnJhbWVzaXplICs9IDM7 DQotICAgICAgICB9DQorCXsNCisJICB2cGMgKz0gc2l6ZW9mIChpbWcpOw0K KwkgIGZpLT5zYXZlZF9yZWdzWzBdID0gMjsNCisJICBmaS0+c2F2ZWRfcmVn c1sxXSA9IDE7DQorCSAgZmktPmV4dHJhX2luZm8tPmZyYW1lc2l6ZSArPSAz Ow0KKwl9DQogICAgICAgZWxzZSBpZiAobWVtY21wIChpbWcgKyAxLCBwcm9s b2d1ZSwgc2l6ZW9mIChpbWcpIC0gMSkgPT0gMCkNCi0gICAgICAgIHsNCi0g ICAgICAgICAgdnBjICs9IHNpemVvZiAoaW1nKSAtIDE7DQotICAgICAgICAg IGZpLT5zYXZlZF9yZWdzWzBdID0gMjsNCi0gICAgICAgICAgZmktPnNhdmVk X3JlZ3NbMV0gPSAxOw0KLSAgICAgICAgICBmaS0+ZXh0cmFfaW5mby0+ZnJh bWVzaXplICs9IDM7DQotICAgICAgICB9DQorCXsNCisJICB2cGMgKz0gc2l6 ZW9mIChpbWcpIC0gMTsNCisJICBmaS0+c2F2ZWRfcmVnc1swXSA9IDI7DQor CSAgZmktPnNhdmVkX3JlZ3NbMV0gPSAxOw0KKwkgIGZpLT5leHRyYV9pbmZv LT5mcmFtZXNpemUgKz0gMzsNCisJfQ0KICAgICB9DQogDQogICAvKiBGaXJz dCBzdGFnZSBvZiB0aGUgcHJvbG9ndWUgc2Nhbm5pbmcuDQpAQCAtNjQyLDE2 ICs2NDEsMTYgQEAgYXZyX3NjYW5fcHJvbG9ndWUgKHN0cnVjdCBmcmFtZV9p bmZvICpmaQ0KICAgZm9yICg7IHZwYyA8PSBwcm9sb2d1ZV9sZW47IHZwYyAr PSAyKQ0KICAgICB7DQogICAgICAgaW5zbiA9IEVYVFJBQ1RfSU5TTiAoJnBy b2xvZ3VlW3ZwY10pOw0KLSAgICAgIGlmICgoaW5zbiAmIDB4ZmUwZikgPT0g MHg5MjBmKSAgICAgICAgICAgIC8qIHB1c2ggclhYICovDQotICAgICAgICB7 DQotICAgICAgICAgIC8qIEJpdHMgNC05IGNvbnRhaW4gYSBtYXNrIGZvciBy ZWdpc3RlcnMgUjAtUjMyLiAqLw0KLSAgICAgICAgICByZWdubyA9IChpbnNu ICYgMHgxZjApID4+IDQ7DQotICAgICAgICAgICsrZmktPmV4dHJhX2luZm8t PmZyYW1lc2l6ZTsNCi0gICAgICAgICAgZmktPnNhdmVkX3JlZ3NbcmVnbm9d ID0gZmktPmV4dHJhX2luZm8tPmZyYW1lc2l6ZTsNCi0gICAgICAgICAgc2Nh bl9zdGFnZSA9IDE7DQotICAgICAgICB9DQorICAgICAgaWYgKChpbnNuICYg MHhmZTBmKSA9PSAweDkyMGYpCS8qIHB1c2ggclhYICovDQorCXsNCisJICAv KiBCaXRzIDQtOSBjb250YWluIGEgbWFzayBmb3IgcmVnaXN0ZXJzIFIwLVIz Mi4gKi8NCisJICByZWdubyA9IChpbnNuICYgMHgxZjApID4+IDQ7DQorCSAg KytmaS0+ZXh0cmFfaW5mby0+ZnJhbWVzaXplOw0KKwkgIGZpLT5zYXZlZF9y ZWdzW3JlZ25vXSA9IGZpLT5leHRyYV9pbmZvLT5mcmFtZXNpemU7DQorCSAg c2Nhbl9zdGFnZSA9IDE7DQorCX0NCiAgICAgICBlbHNlDQotICAgICAgICBi cmVhazsNCisJYnJlYWs7DQogICAgIH0NCiANCiAgIC8qIFNlY29uZCBzdGFn ZSBvZiB0aGUgcHJvbG9ndWUgc2Nhbm5pbmcuDQpAQCAtNjYxLDE5ICs2NjAs MTggQEAgYXZyX3NjYW5fcHJvbG9ndWUgKHN0cnVjdCBmcmFtZV9pbmZvICpm aQ0KIA0KICAgaWYgKHNjYW5fc3RhZ2UgPT0gMSAmJiB2cGMgKyA0IDw9IHBy b2xvZ3VlX2xlbikNCiAgICAgew0KLSAgICAgIHVuc2lnbmVkIGNoYXIgaW1n W10gPQ0KLSAgICAgIHsNCi0gICAgICAgIDB4Y2QsMHhiNywgICAgICAgICAg ICAgIC8qIGluIHIyOCxfX1NQX0xfXyAqLw0KLSAgICAgICAgMHhkZSwweGI3 ICAgICAgICAgICAgICAgLyogaW4gcjI5LF9fU1BfSF9fICovDQorICAgICAg dW5zaWduZWQgY2hhciBpbWdbXSA9IHsNCisJMHhjZCwgMHhiNywJCS8qIGlu IHIyOCxfX1NQX0xfXyAqLw0KKwkweGRlLCAweGI3CQkvKiBpbiByMjksX19T UF9IX18gKi8NCiAgICAgICB9Ow0KICAgICAgIHVuc2lnbmVkIHNob3J0IGlu c24xOw0KLSAgICAgIA0KKw0KICAgICAgIGlmIChtZW1jbXAgKHByb2xvZ3Vl ICsgdnBjLCBpbWcsIHNpemVvZiAoaW1nKSkgPT0gMCkNCi0gICAgICAgIHsN Ci0gICAgICAgICAgdnBjICs9IDQ7DQotICAgICAgICAgIGZpLT5leHRyYV9p bmZvLT5mcmFtZXJlZyA9IEFWUl9GUF9SRUdOVU07DQotICAgICAgICAgIHNj YW5fc3RhZ2UgPSAyOw0KLSAgICAgICAgfQ0KKwl7DQorCSAgdnBjICs9IDQ7 DQorCSAgZmktPmV4dHJhX2luZm8tPmZyYW1lcmVnID0gQVZSX0ZQX1JFR05V TTsNCisJICBzY2FuX3N0YWdlID0gMjsNCisJfQ0KICAgICB9DQogDQogICAv KiBUaGlyZCBzdGFnZSBvZiB0aGUgcHJvbG9ndWUgc2Nhbm5pbmcuIChSZWFs bHkgdHdvIHN0YWdlcykNCkBAIC02ODksNDAgKzY4NywzNyBAQCBhdnJfc2Nh bl9wcm9sb2d1ZSAoc3RydWN0IGZyYW1lX2luZm8gKmZpDQogICBpZiAoc2Nh bl9zdGFnZSA9PSAyICYmIHZwYyArIDEyIDw9IHByb2xvZ3VlX2xlbikNCiAg ICAgew0KICAgICAgIGludCBsb2NhbHNfc2l6ZSA9IDA7DQotICAgICAgdW5z aWduZWQgY2hhciBpbWdbXSA9DQotICAgICAgew0KLSAgICAgICAgMHgwZiww eGI2LCAgICAgICAgICAgICAgLyogaW4gcjAsMHgzZiAqLw0KLSAgICAgICAg MHhmOCwweDk0LCAgICAgICAgICAgICAgLyogY2xpICovDQotICAgICAgICAw eGNkLDB4YmYsICAgICAgICAgICAgICAvKiBvdXQgMHgzZCxyMjggOyBTUEwg Ki8NCi0gICAgICAgIDB4MGYsMHhiZSwgICAgICAgICAgICAgIC8qIG91dCAw eDNmLHIwICA7IFNSRUcqLw0KLSAgICAgICAgMHhkZSwweGJmICAgICAgICAg ICAgICAgLyogb3V0IDB4M2UscjI5IDsgU1BIICovDQorICAgICAgdW5zaWdu ZWQgY2hhciBpbWdbXSA9IHsNCisJMHgwZiwgMHhiNiwJCS8qIGluIHIwLDB4 M2YgKi8NCisJMHhmOCwgMHg5NCwJCS8qIGNsaSAqLw0KKwkweGNkLCAweGJm LAkJLyogb3V0IDB4M2QscjI4IDsgU1BMICovDQorCTB4MGYsIDB4YmUsCQkv KiBvdXQgMHgzZixyMCAgOyBTUkVHICovDQorCTB4ZGUsIDB4YmYJCS8qIG91 dCAweDNlLHIyOSA7IFNQSCAqLw0KICAgICAgIH07DQotICAgICAgdW5zaWdu ZWQgY2hhciBpbWdfc2lnW10gPQ0KLSAgICAgIHsNCi0gICAgICAgIDB4Y2Qs MHhiZiwgICAgICAgICAgICAgIC8qIG91dCAweDNkLHIyOCA7IFNQTCAqLw0K LSAgICAgICAgMHhkZSwweGJmICAgICAgICAgICAgICAgLyogb3V0IDB4M2Us cjI5IDsgU1BIICovDQorICAgICAgdW5zaWduZWQgY2hhciBpbWdfc2lnW10g PSB7DQorCTB4Y2QsIDB4YmYsCQkvKiBvdXQgMHgzZCxyMjggOyBTUEwgKi8N CisJMHhkZSwgMHhiZgkJLyogb3V0IDB4M2UscjI5IDsgU1BIICovDQogICAg ICAgfTsNCi0gICAgICB1bnNpZ25lZCBjaGFyIGltZ19pbnRbXSA9DQotICAg ICAgew0KLSAgICAgICAgMHhmOCwweDk0LCAgICAgICAgICAgICAgLyogY2xp ICovDQotICAgICAgICAweGNkLDB4YmYsICAgICAgICAgICAgICAvKiBvdXQg MHgzZCxyMjggOyBTUEwgKi8NCi0gICAgICAgIDB4NzgsMHg5NCwgICAgICAg ICAgICAgIC8qIHNlaSAqLw0KLSAgICAgICAgMHhkZSwweGJmICAgICAgICAg ICAgICAgLyogb3V0IDB4M2UscjI5IDsgU1BIICovDQorICAgICAgdW5zaWdu ZWQgY2hhciBpbWdfaW50W10gPSB7DQorCTB4ZjgsIDB4OTQsCQkvKiBjbGkg Ki8NCisJMHhjZCwgMHhiZiwJCS8qIG91dCAweDNkLHIyOCA7IFNQTCAqLw0K KwkweDc4LCAweDk0LAkJLyogc2VpICovDQorCTB4ZGUsIDB4YmYJCS8qIG91 dCAweDNlLHIyOSA7IFNQSCAqLw0KICAgICAgIH07DQotICAgICAgICANCisN CiAgICAgICBpbnNuID0gRVhUUkFDVF9JTlNOICgmcHJvbG9ndWVbdnBjXSk7 DQogICAgICAgdnBjICs9IDI7DQotICAgICAgaWYgKChpbnNuICYgMHhmZjMw KSA9PSAweDk3MjApIC8qIHNiaXcgcjI4LFhYWCAqLw0KLSAgICAgICAgbG9j YWxzX3NpemUgPSAoaW5zbiAmIDB4ZikgfCAoKGluc24gJiAweGMwKSA+PiAy KTsNCi0gICAgICBlbHNlIGlmICgoaW5zbiAmIDB4ZjBmMCkgPT0gMHg1MGMw KSAvKiBzdWJpIHIyOCxsbzgoWFgpICovDQotICAgICAgICB7DQotICAgICAg ICAgIGxvY2Fsc19zaXplID0gKGluc24gJiAweGYpIHwgKChpbnNuICYgMHhm MDApID4+IDQpOw0KLSAgICAgICAgICBpbnNuID0gRVhUUkFDVF9JTlNOICgm cHJvbG9ndWVbdnBjXSk7DQotICAgICAgICAgIHZwYyArPSAyOw0KLSAgICAg ICAgICBsb2NhbHNfc2l6ZSArPSAoKGluc24gJiAweGYpIHwgKChpbnNuICYg MHhmMDApID4+IDQpIDw8IDgpOw0KLSAgICAgICAgfQ0KKyAgICAgIGlmICgo aW5zbiAmIDB4ZmYzMCkgPT0gMHg5NzIwKQkvKiBzYml3IHIyOCxYWFggKi8N CisJbG9jYWxzX3NpemUgPSAoaW5zbiAmIDB4ZikgfCAoKGluc24gJiAweGMw KSA+PiAyKTsNCisgICAgICBlbHNlIGlmICgoaW5zbiAmIDB4ZjBmMCkgPT0g MHg1MGMwKQkvKiBzdWJpIHIyOCxsbzgoWFgpICovDQorCXsNCisJICBsb2Nh bHNfc2l6ZSA9IChpbnNuICYgMHhmKSB8ICgoaW5zbiAmIDB4ZjAwKSA+PiA0 KTsNCisJICBpbnNuID0gRVhUUkFDVF9JTlNOICgmcHJvbG9ndWVbdnBjXSk7 DQorCSAgdnBjICs9IDI7DQorCSAgbG9jYWxzX3NpemUgKz0gKChpbnNuICYg MHhmKSB8ICgoaW5zbiAmIDB4ZjAwKSA+PiA0KSA8PCA4KTsNCisJfQ0KICAg ICAgIGVsc2UNCi0gICAgICAgIHJldHVybjsNCisJcmV0dXJuOw0KICAgICAg IGZpLT5leHRyYV9pbmZvLT5sb2NhbHNfc2l6ZSA9IGxvY2Fsc19zaXplOw0K ICAgICAgIGZpLT5leHRyYV9pbmZvLT5mcmFtZXNpemUgKz0gbG9jYWxzX3Np emU7DQogICAgIH0NCkBAIC03NTIsNzYgKzc0Nyw3NyBAQCBhdnJfaW5pdF9l eHRyYV9mcmFtZV9pbmZvIChpbnQgZnJvbWxlYWYsDQogICBmaS0+ZXh0cmFf aW5mby0+ZnJhbWVyZWcgPSAwOw0KICAgZmktPmV4dHJhX2luZm8tPmZyYW1l c2l6ZSA9IDA7DQogICBmaS0+ZXh0cmFfaW5mby0+aXNfbWFpbiA9IDA7DQot ICANCisNCiAgIGF2cl9zY2FuX3Byb2xvZ3VlIChmaSk7DQogDQogICBpZiAo UENfSU5fQ0FMTF9EVU1NWSAoZmktPnBjLCBmaS0+ZnJhbWUsIGZpLT5mcmFt ZSkpDQogICAgIHsNCiAgICAgICAvKiBXZSBuZWVkIHRvIHNldHVwIGZpLT5m cmFtZSBoZXJlIGJlY2F1c2UgcnVuX3N0YWNrX2R1bW15IGdldHMgaXQgd3Jv bmcNCiAgICAgICAgICBieSBhc3N1bWluZyBpdCdzIGFsd2F5cyBGUC4gICov DQotICAgICAgZmktPmZyYW1lID0gZ2VuZXJpY19yZWFkX3JlZ2lzdGVyX2R1 bW15IChmaS0+cGMsIGZpLT5mcmFtZSwNCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpLT5mcmFtZSk7DQorICAg ICAgZmktPmZyYW1lID0gZ2VuZXJpY19yZWFkX3JlZ2lzdGVyX2R1bW15IChm aS0+cGMsIGZpLT5mcmFtZSwgZmktPmZyYW1lKTsNCiAgICAgfQ0KLSAgZWxz ZSBpZiAoIWZpLT5uZXh0KSAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlz IHRoZSBpbm5lcm1vc3QgZnJhbWU/ICovDQorICBlbHNlIGlmICghZmktPm5l eHQpCQkvKiB0aGlzIGlzIHRoZSBpbm5lcm1vc3QgZnJhbWU/ICovDQogICAg IGZpLT5mcmFtZSA9IHJlYWRfcmVnaXN0ZXIgKGZpLT5leHRyYV9pbmZvLT5m cmFtZXJlZyk7DQotICBlbHNlIGlmIChmaS0+ZXh0cmFfaW5mby0+aXNfbWFp biAhPSAxKSAvKiBub3QgdGhlIGlubmVybW9zdCBmcmFtZSwgbm90IGBtYWlu JyAqLw0KKyAgZWxzZSBpZiAoZmktPmV4dHJhX2luZm8tPmlzX21haW4gIT0g MSkJLyogbm90IHRoZSBpbm5lcm1vc3QgZnJhbWUsIG5vdCBgbWFpbicgKi8N CiAgICAgLyogSWYgd2UgaGF2ZSBhbiBuZXh0IGZyYW1lLCAgdGhlIGNhbGxl ZSBzYXZlZCBpdC4gKi8NCiAgICAgew0KLSAgICAgIHN0cnVjdCBmcmFtZV9p bmZvICogbmV4dF9maSA9IGZpLT5uZXh0Ow0KKyAgICAgIHN0cnVjdCBmcmFt ZV9pbmZvICpuZXh0X2ZpID0gZmktPm5leHQ7DQogICAgICAgaWYgKGZpLT5l eHRyYV9pbmZvLT5mcmFtZXJlZyA9PSBBVlJfU1BfUkVHTlVNKQ0KLSAgICAg ICAgZmktPmZyYW1lID0gbmV4dF9maS0+ZnJhbWUgKyAyIC8qIHJldCBhZGRy ICovICsgbmV4dF9maS0+ZXh0cmFfaW5mby0+ZnJhbWVzaXplOw0KKwlmaS0+ ZnJhbWUgPQ0KKwkgIG5leHRfZmktPmZyYW1lICsgMiAvKiByZXQgYWRkciAq LyAgKyBuZXh0X2ZpLT5leHRyYV9pbmZvLT5mcmFtZXNpemU7DQogICAgICAg LyogRklYTUU6IEkgZG9uJ3QgYW5hbHlzZSB2YV9hcmdzIGZ1bmN0aW9ucyAg Ki8NCiAgICAgICBlbHNlDQotICAgICAgICB7DQotICAgICAgICAgIENPUkVf QUREUiBmcCA9IDA7DQotICAgICAgICAgIENPUkVfQUREUiBmcDEgPSAwOw0K LSAgICAgICAgICB1bnNpZ25lZCBpbnQgZnBfbG93LCBmcF9oaWdoOw0KLQ0K LSAgICAgICAgICAvKiBTY2FuIGFsbCBmcmFtZXMgKi8NCi0gICAgICAgICAg Zm9yICg7IG5leHRfZmk7IG5leHRfZmkgPSBuZXh0X2ZpLT5uZXh0KQ0KLSAg ICAgICAgICAgIHsNCi0gICAgICAgICAgICAgIC8qIGxvb2sgZm9yIHNhdmVk IEFWUl9GUF9SRUdOVU0gKi8NCi0gICAgICAgICAgICAgIGlmIChuZXh0X2Zp LT5zYXZlZF9yZWdzW0FWUl9GUF9SRUdOVU1dICYmICFmcCkNCi0gICAgICAg ICAgICAgICAgZnAgPSBuZXh0X2ZpLT5zYXZlZF9yZWdzW0FWUl9GUF9SRUdO VU1dOw0KLSAgICAgICAgICAgICAgLyogbG9vayBmb3Igc2F2ZWQgQVZSX0ZQ X1JFR05VTSArIDEgKi8NCi0gICAgICAgICAgICAgIGlmIChuZXh0X2ZpLT5z YXZlZF9yZWdzW0FWUl9GUF9SRUdOVU0gKyAxXSAmJiAhZnAxKQ0KLSAgICAg ICAgICAgICAgICBmcDEgPSBuZXh0X2ZpLT5zYXZlZF9yZWdzW0FWUl9GUF9S RUdOVU0gKyAxXTsNCi0gICAgICAgICAgICB9DQotICAgICAgICAgIGZwX2xv dyA9IChmcCA/IHJlYWRfbWVtb3J5X3Vuc2lnbmVkX2ludGVnZXIgKGF2cl9t YWtlX3NhZGRyIChmcCksIDEpDQotICAgICAgICAgICAgICAgICAgICA6IHJl YWRfcmVnaXN0ZXIgKEFWUl9GUF9SRUdOVU0pKSAmIDB4ZmY7DQotICAgICAg ICAgIGZwX2hpZ2ggPSAoZnAxID8gcmVhZF9tZW1vcnlfdW5zaWduZWRfaW50 ZWdlciAoYXZyX21ha2Vfc2FkZHIgKGZwMSksIDEpDQotICAgICAgICAgICAg ICAgICAgICA6IHJlYWRfcmVnaXN0ZXIgKEFWUl9GUF9SRUdOVU0gKyAxKSkg JiAweGZmOw0KLSAgICAgICAgICBmaS0+ZnJhbWUgPSBmcF9sb3cgfCAoZnBf aGlnaCA8PCA4KTsNCi0gICAgICAgIH0NCisJew0KKwkgIENPUkVfQUREUiBm cCA9IDA7DQorCSAgQ09SRV9BRERSIGZwMSA9IDA7DQorCSAgdW5zaWduZWQg aW50IGZwX2xvdywgZnBfaGlnaDsNCisNCisJICAvKiBTY2FuIGFsbCBmcmFt ZXMgKi8NCisJICBmb3IgKDsgbmV4dF9maTsgbmV4dF9maSA9IG5leHRfZmkt Pm5leHQpDQorCSAgICB7DQorCSAgICAgIC8qIGxvb2sgZm9yIHNhdmVkIEFW Ul9GUF9SRUdOVU0gKi8NCisJICAgICAgaWYgKG5leHRfZmktPnNhdmVkX3Jl Z3NbQVZSX0ZQX1JFR05VTV0gJiYgIWZwKQ0KKwkJZnAgPSBuZXh0X2ZpLT5z YXZlZF9yZWdzW0FWUl9GUF9SRUdOVU1dOw0KKwkgICAgICAvKiBsb29rIGZv ciBzYXZlZCBBVlJfRlBfUkVHTlVNICsgMSAqLw0KKwkgICAgICBpZiAobmV4 dF9maS0+c2F2ZWRfcmVnc1tBVlJfRlBfUkVHTlVNICsgMV0gJiYgIWZwMSkN CisJCWZwMSA9IG5leHRfZmktPnNhdmVkX3JlZ3NbQVZSX0ZQX1JFR05VTSAr IDFdOw0KKwkgICAgfQ0KKwkgIGZwX2xvdyA9IChmcCA/IHJlYWRfbWVtb3J5 X3Vuc2lnbmVkX2ludGVnZXIgKGF2cl9tYWtlX3NhZGRyIChmcCksIDEpDQor CQkgICAgOiByZWFkX3JlZ2lzdGVyIChBVlJfRlBfUkVHTlVNKSkgJiAweGZm Ow0KKwkgIGZwX2hpZ2ggPQ0KKwkgICAgKGZwMSA/IHJlYWRfbWVtb3J5X3Vu c2lnbmVkX2ludGVnZXIgKGF2cl9tYWtlX3NhZGRyIChmcDEpLCAxKSA6DQor CSAgICAgcmVhZF9yZWdpc3RlciAoQVZSX0ZQX1JFR05VTSArIDEpKSAmIDB4 ZmY7DQorCSAgZmktPmZyYW1lID0gZnBfbG93IHwgKGZwX2hpZ2ggPDwgOCk7 DQorCX0NCiAgICAgfQ0KIA0KICAgLyogVFJvdGg6IERvIHdlIHdhbnQgdG8g ZG8gdGhpcyBpZiB3ZSBhcmUgaW4gbWFpbj8gSSBkb24ndCB0aGluayB3ZSBz aG91bGQNCiAgICAgIHNpbmNlIHJldHVybl9wYyBtYWtlcyBubyBzZW5zZSB3 aGVuIHdlIGFyZSBpbiBtYWluLiAqLw0KIA0KLSAgaWYgKChmaS0+cGMpICYm IChmaS0+ZXh0cmFfaW5mby0+aXNfbWFpbiA9PSAwKSkgLyogV2UgYXJlIG5v dCBpbiBDQUxMX0RVTU1ZICovDQorICBpZiAoKGZpLT5wYykgJiYgKGZpLT5l eHRyYV9pbmZvLT5pc19tYWluID09IDApKQkvKiBXZSBhcmUgbm90IGluIENB TExfRFVNTVkgKi8NCiAgICAgew0KICAgICAgIENPUkVfQUREUiBhZGRyOw0K ICAgICAgIGludCBpOw0KLSAgICANCisNCiAgICAgICBhZGRyID0gZmktPmZy YW1lICsgZmktPmV4dHJhX2luZm8tPmZyYW1lc2l6ZSArIDE7DQotICAgICAg DQorDQogICAgICAgLyogUmV0dXJuIGFkZHJlc3MgaW4gc3RhY2sgaW4gZGlm ZmVyZW50IGVuZGlhbm5lc3MgKi8NCiANCiAgICAgICBmaS0+ZXh0cmFfaW5m by0+cmV0dXJuX3BjID0NCi0gICAgICAgICAgcmVhZF9tZW1vcnlfdW5zaWdu ZWRfaW50ZWdlciAoYXZyX21ha2Vfc2FkZHIgKGFkZHIpLCAxKSA8PCA4Ow0K KwlyZWFkX21lbW9yeV91bnNpZ25lZF9pbnRlZ2VyIChhdnJfbWFrZV9zYWRk ciAoYWRkciksIDEpIDw8IDg7DQogICAgICAgZmktPmV4dHJhX2luZm8tPnJl dHVybl9wYyB8PQ0KLSAgICAgICAgICByZWFkX21lbW9yeV91bnNpZ25lZF9p bnRlZ2VyIChhdnJfbWFrZV9zYWRkciAoYWRkciArIDEpLCAxKTsNCi0gICAg DQorCXJlYWRfbWVtb3J5X3Vuc2lnbmVkX2ludGVnZXIgKGF2cl9tYWtlX3Nh ZGRyIChhZGRyICsgMSksIDEpOw0KKw0KICAgICAgIC8qIFRoaXMgcmV0dXJu IGFkZHJlc3MgaW4gd29yZHMsDQogICAgICAgICAgbXVzdCBiZSBjb252ZXJ0 ZWQgdG8gdGhlIGJ5dGVzIGFkZHJlc3MgKi8NCiAgICAgICBmaS0+ZXh0cmFf aW5mby0+cmV0dXJuX3BjICo9IDI7DQogDQogICAgICAgLyogUmVzb2x2ZSBh IHB1c2hlZCByZWdpc3RlcnMgYWRkcmVzc2VzICovDQogICAgICAgZm9yIChp ID0gMDsgaSA8IE5VTV9SRUdTOyBpKyspDQotICAgICAgICB7DQotICAgICAg ICAgIGlmIChmaS0+c2F2ZWRfcmVnc1tpXSkNCi0gICAgICAgICAgICBmaS0+ c2F2ZWRfcmVnc1tpXSA9IGFkZHIgLSBmaS0+c2F2ZWRfcmVnc1tpXTsNCi0g ICAgICAgIH0NCisJew0KKwkgIGlmIChmaS0+c2F2ZWRfcmVnc1tpXSkNCisJ ICAgIGZpLT5zYXZlZF9yZWdzW2ldID0gYWRkciAtIGZpLT5zYXZlZF9yZWdz W2ldOw0KKwl9DQogICAgIH0NCiB9DQogDQpAQCAtODM2LDI2ICs4MzIsMjcg QEAgYXZyX3BvcF9mcmFtZSAodm9pZCkNCiAgIENPUkVfQUREUiBzYWRkcjsN CiAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSA9IGdldF9jdXJyZW50X2Zy YW1lICgpOw0KIA0KLSAgaWYgKFBDX0lOX0NBTExfRFVNTVkoZnJhbWUtPnBj LCBmcmFtZS0+ZnJhbWUsIGZyYW1lLT5mcmFtZSkpDQorICBpZiAoUENfSU5f Q0FMTF9EVU1NWSAoZnJhbWUtPnBjLCBmcmFtZS0+ZnJhbWUsIGZyYW1lLT5m cmFtZSkpDQogICAgIHsNCi0gICAgICBnZW5lcmljX3BvcF9kdW1teV9mcmFt ZSgpOw0KKyAgICAgIGdlbmVyaWNfcG9wX2R1bW15X2ZyYW1lICgpOw0KICAg ICB9DQogICBlbHNlDQogICAgIHsNCiAgICAgICAvKiBUUm90aDogV2h5IG9u bHkgbG9vcCBvdmVyIDggcmVnaXN0ZXJzPyAqLw0KIA0KICAgICAgIGZvciAo cmVnbnVtID0gMDsgcmVnbnVtIDwgODsgcmVnbnVtKyspDQotICAgICAgICB7 DQotICAgICAgICAgIC8qIERvbid0IGZvcmdldCBBVlJfU1BfUkVHTlVNIGlu IGEgZnJhbWVfc2F2ZWRfcmVncyBzdHJ1Y3QgaXMgdGhlDQotICAgICAgICAg ICAgIGFjdHVhbCB2YWx1ZSB3ZSB3YW50LCBub3QgdGhlIGFkZHJlc3Mgb2Yg dGhlIHZhbHVlIHdlIHdhbnQuICAqLw0KLSAgICAgICAgICBpZiAoZnJhbWUt PnNhdmVkX3JlZ3NbcmVnbnVtXSAmJiByZWdudW0gIT0gQVZSX1NQX1JFR05V TSkNCi0gICAgICAgICAgICB7DQotICAgICAgICAgICAgICBzYWRkciA9IGF2 cl9tYWtlX3NhZGRyIChmcmFtZS0+c2F2ZWRfcmVnc1tyZWdudW1dKTsNCi0g ICAgICAgICAgICAgIHdyaXRlX3JlZ2lzdGVyIChyZWdudW0sIHJlYWRfbWVt b3J5X3Vuc2lnbmVkX2ludGVnZXIgKHNhZGRyLCAxKSk7DQotICAgICAgICAg ICAgfQ0KLSAgICAgICAgICBlbHNlIGlmIChmcmFtZS0+c2F2ZWRfcmVnc1ty ZWdudW1dICYmIHJlZ251bSA9PSBBVlJfU1BfUkVHTlVNKQ0KLSAgICAgICAg ICAgIHdyaXRlX3JlZ2lzdGVyIChyZWdudW0sIGZyYW1lLT5mcmFtZSArIDIp Ow0KLSAgICAgICAgfQ0KKwl7DQorCSAgLyogRG9uJ3QgZm9yZ2V0IEFWUl9T UF9SRUdOVU0gaW4gYSBmcmFtZV9zYXZlZF9yZWdzIHN0cnVjdCBpcyB0aGUN CisJICAgICBhY3R1YWwgdmFsdWUgd2Ugd2FudCwgbm90IHRoZSBhZGRyZXNz IG9mIHRoZSB2YWx1ZSB3ZSB3YW50LiAgKi8NCisJICBpZiAoZnJhbWUtPnNh dmVkX3JlZ3NbcmVnbnVtXSAmJiByZWdudW0gIT0gQVZSX1NQX1JFR05VTSkN CisJICAgIHsNCisJICAgICAgc2FkZHIgPSBhdnJfbWFrZV9zYWRkciAoZnJh bWUtPnNhdmVkX3JlZ3NbcmVnbnVtXSk7DQorCSAgICAgIHdyaXRlX3JlZ2lz dGVyIChyZWdudW0sDQorCQkJICAgICAgcmVhZF9tZW1vcnlfdW5zaWduZWRf aW50ZWdlciAoc2FkZHIsIDEpKTsNCisJICAgIH0NCisJICBlbHNlIGlmIChm cmFtZS0+c2F2ZWRfcmVnc1tyZWdudW1dICYmIHJlZ251bSA9PSBBVlJfU1Bf UkVHTlVNKQ0KKwkgICAgd3JpdGVfcmVnaXN0ZXIgKHJlZ251bSwgZnJhbWUt PmZyYW1lICsgMik7DQorCX0NCiANCiAgICAgICAvKiBEb24ndCBmb3JnZXQg dGhlIHVwZGF0ZSB0aGUgUEMgdG9vISAgKi8NCiAgICAgICB3cml0ZV9wYyAo ZnJhbWUtPmV4dHJhX2luZm8tPnJldHVybl9wYyk7DQpAQCAtODY4LDggKzg2 NSw5IEBAIGF2cl9wb3BfZnJhbWUgKHZvaWQpDQogc3RhdGljIENPUkVfQURE Ug0KIGF2cl9mcmFtZV9zYXZlZF9wYyAoc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lKQ0KIHsNCi0gIGlmIChQQ19JTl9DQUxMX0RVTU1ZKGZyYW1lLT5wYywg ZnJhbWUtPmZyYW1lLCBmcmFtZS0+ZnJhbWUpKQ0KLSAgICByZXR1cm4gZ2Vu ZXJpY19yZWFkX3JlZ2lzdGVyX2R1bW15IChmcmFtZS0+cGMsIGZyYW1lLT5m cmFtZSwgQVZSX1BDX1JFR05VTSk7DQorICBpZiAoUENfSU5fQ0FMTF9EVU1N WSAoZnJhbWUtPnBjLCBmcmFtZS0+ZnJhbWUsIGZyYW1lLT5mcmFtZSkpDQor ICAgIHJldHVybiBnZW5lcmljX3JlYWRfcmVnaXN0ZXJfZHVtbXkgKGZyYW1l LT5wYywgZnJhbWUtPmZyYW1lLA0KKwkJCQkJQVZSX1BDX1JFR05VTSk7DQog ICBlbHNlDQogICAgIHJldHVybiBmcmFtZS0+ZXh0cmFfaW5mby0+cmV0dXJu X3BjOw0KIH0NCkBAIC04OTQsMjEgKzg5MiwyMiBAQCBhdnJfZXh0cmFjdF9y ZXR1cm5fdmFsdWUgKHN0cnVjdCB0eXBlICp0DQogDQogICB3b3Jkc2l6ZSA9 IDI7DQogDQotICBsZW4gPSBUWVBFX0xFTkdUSCh0eXBlKTsNCisgIGxlbiA9 IFRZUEVfTEVOR1RIICh0eXBlKTsNCiANCi0gIHN3aXRjaCAobGVuKSB7DQot ICBjYXNlIDE6ICAgICAgIC8qIChjaGFyKSAqLw0KLSAgY2FzZSAyOiAgICAg ICAvKiAoc2hvcnQpLCAoaW50KSAqLw0KLSAgICBtZW1jcHkgKHZhbGJ1Ziwg ICByZWdidWYgKyBSRUdJU1RFUl9CWVRFKDI0KSwgMik7DQotICAgIGJyZWFr Ow0KLSAgY2FzZSA0OiAgICAgICAvKiAobG9uZyksIChmbG9hdCkgKi8NCi0g ICAgbWVtY3B5ICh2YWxidWYsICAgcmVnYnVmICsgUkVHSVNURVJfQllURSgy MiksIDQpOw0KLSAgICBicmVhazsNCi0gIGNhc2UgODogICAgICAgLyogKGRv dWJsZSkgKGRvZXNuJ3Qgc2VlbSB0byBoYXBwZW4sIHdoaWNoIGlzIGdvb2Qs DQotICAgICAgICAgICAgICAgICAgIGJlY2F1c2UgdGhpcyBhbG1vc3QgY2Vy dGFpbmx5IGlzbid0IHJpZ2h0LiAgKi8NCi0gICAgZXJyb3IgKCJJIGRvbid0 IGtub3cgaG93IGEgZG91YmxlIGlzIHJldHVybmVkLiIpOw0KLSAgICBicmVh azsNCi0gIH0NCisgIHN3aXRjaCAobGVuKQ0KKyAgICB7DQorICAgIGNhc2Ug MToJCQkvKiAoY2hhcikgKi8NCisgICAgY2FzZSAyOgkJCS8qIChzaG9ydCks IChpbnQpICovDQorICAgICAgbWVtY3B5ICh2YWxidWYsIHJlZ2J1ZiArIFJF R0lTVEVSX0JZVEUgKDI0KSwgMik7DQorICAgICAgYnJlYWs7DQorICAgIGNh c2UgNDoJCQkvKiAobG9uZyksIChmbG9hdCkgKi8NCisgICAgICBtZW1jcHkg KHZhbGJ1ZiwgcmVnYnVmICsgUkVHSVNURVJfQllURSAoMjIpLCA0KTsNCisg ICAgICBicmVhazsNCisgICAgY2FzZSA4OgkJCS8qIChkb3VibGUpIChkb2Vz bid0IHNlZW0gdG8gaGFwcGVuLCB3aGljaCBpcyBnb29kLA0KKwkJCQkgICBi ZWNhdXNlIHRoaXMgYWxtb3N0IGNlcnRhaW5seSBpc24ndCByaWdodC4gICov DQorICAgICAgZXJyb3IgKCJJIGRvbid0IGtub3cgaG93IGEgZG91YmxlIGlz IHJldHVybmVkLiIpOw0KKyAgICAgIGJyZWFrOw0KKyAgICB9DQogfQ0KIA0K IC8qIFJldHVybnMgdGhlIHJldHVybiBhZGRyZXNzIGZvciBhIGR1bW15LiAq Lw0KQEAgLTkyNiwyNSArOTI1LDI2IEBAIHN0YXRpYyB2b2lkDQogYXZyX3N0 b3JlX3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIGNoYXIgKnZh bGJ1ZikNCiB7DQogICBpbnQgd29yZHNpemUsIGxlbiwgcmVndmFsOw0KLSAg DQorDQogICB3b3Jkc2l6ZSA9IDI7DQogDQotICBsZW4gPSBUWVBFX0xFTkdU SCh0eXBlKTsNCi0gIHN3aXRjaCAobGVuKSB7DQotICBjYXNlIDE6ICAgICAg IC8qIGNoYXIgKi8NCi0gIGNhc2UgMjogICAgICAgLyogc2hvcnQsIGludCAq Lw0KLSAgICByZWd2YWwgPSBleHRyYWN0X2FkZHJlc3ModmFsYnVmLCBsZW4p Ow0KLSAgICB3cml0ZV9yZWdpc3RlciAoMCwgcmVndmFsKTsNCi0gICAgYnJl YWs7DQotICBjYXNlIDQ6ICAgICAgIC8qIGxvbmcsIGZsb2F0ICovDQotICAg IHJlZ3ZhbCA9IGV4dHJhY3RfYWRkcmVzcyh2YWxidWYsIGxlbik7DQotICAg IHdyaXRlX3JlZ2lzdGVyICgwLCByZWd2YWwgPj4gMTYpOw0KLSAgICB3cml0 ZV9yZWdpc3RlciAoMSwgcmVndmFsICYgMHhmZmZmKTsNCi0gICAgYnJlYWs7 DQotICBjYXNlIDg6ICAgICAgIC8qIHByZXN1bWVhYmx5IGRvdWJsZSwgYnV0 IGRvZXNuJ3Qgc2VlbSB0byBoYXBwZW4gKi8NCi0gICAgZXJyb3IgKCJJIGRv bid0IGtub3cgaG93IHRvIHJldHVybiBhIGRvdWJsZS4iKTsNCi0gICAgYnJl YWs7DQotICB9DQorICBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7DQorICBz d2l0Y2ggKGxlbikNCisgICAgew0KKyAgICBjYXNlIDE6CQkJLyogY2hhciAq Lw0KKyAgICBjYXNlIDI6CQkJLyogc2hvcnQsIGludCAqLw0KKyAgICAgIHJl Z3ZhbCA9IGV4dHJhY3RfYWRkcmVzcyAodmFsYnVmLCBsZW4pOw0KKyAgICAg IHdyaXRlX3JlZ2lzdGVyICgwLCByZWd2YWwpOw0KKyAgICAgIGJyZWFrOw0K KyAgICBjYXNlIDQ6CQkJLyogbG9uZywgZmxvYXQgKi8NCisgICAgICByZWd2 YWwgPSBleHRyYWN0X2FkZHJlc3MgKHZhbGJ1ZiwgbGVuKTsNCisgICAgICB3 cml0ZV9yZWdpc3RlciAoMCwgcmVndmFsID4+IDE2KTsNCisgICAgICB3cml0 ZV9yZWdpc3RlciAoMSwgcmVndmFsICYgMHhmZmZmKTsNCisgICAgICBicmVh azsNCisgICAgY2FzZSA4OgkJCS8qIHByZXN1bWVhYmx5IGRvdWJsZSwgYnV0 IGRvZXNuJ3Qgc2VlbSB0byBoYXBwZW4gKi8NCisgICAgICBlcnJvciAoIkkg ZG9uJ3Qga25vdyBob3cgdG8gcmV0dXJuIGEgZG91YmxlLiIpOw0KKyAgICAg IGJyZWFrOw0KKyAgICB9DQogfQ0KIA0KIC8qIFNldHVwIHRoZSByZXR1cm4g YWRkcmVzcyBmb3IgYSBkdW1teSBmcmFtZSwgYXMgY2FsbGVkIGJ5DQpAQCAt OTk1LDggKzk5NSw4IEBAIGF2cl9za2lwX3Byb2xvZ3VlIChDT1JFX0FERFIg cGMpDQogICAgIHsNCiAgICAgICBzYWwgPSBmaW5kX3BjX2xpbmUgKGZ1bmNf YWRkciwgMCk7DQogDQotICAgICAgaWYgKHNhbC5saW5lICE9IDAgJiYgc2Fs LmVuZCA8IGZ1bmNfZW5kKSANCi0gICAgICAgIHJldHVybiBzYWwuZW5kOw0K KyAgICAgIGlmIChzYWwubGluZSAhPSAwICYmIHNhbC5lbmQgPCBmdW5jX2Vu ZCkNCisJcmV0dXJuIHNhbC5lbmQ7DQogICAgIH0NCiANCiAvKiBFaXRoZXIg d2UgZGlkbid0IGZpbmQgdGhlIHN0YXJ0IG9mIHRoaXMgZnVuY3Rpb24gKG5v dGhpbmcgd2UgY2FuIGRvKSwNCkBAIC0xMDI2LDEyICsxMDI2LDEzIEBAIGF2 cl9mcmFtZV9jaGFpbiAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW0NCiAgICAg ew0KICAgICAgIC8qIGluaXRpYWxpemUgdGhlIHJldHVybl9wYyBub3cgKi8N CiAgICAgICBmcmFtZS0+ZXh0cmFfaW5mby0+cmV0dXJuX3BjID0gZ2VuZXJp Y19yZWFkX3JlZ2lzdGVyX2R1bW15IChmcmFtZS0+cGMsDQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZnJhbWUtPmZyYW1lLCANCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBVlJfUENfUkVHTlVNKTsNCisJCQkJCQkJCSAgZnJhbWUtPg0KKwkJ CQkJCQkJICBmcmFtZSwNCisJCQkJCQkJCSAgQVZSX1BDX1JFR05VTSk7DQog ICAgICAgcmV0dXJuIGZyYW1lLT5mcmFtZTsNCiAgICAgfQ0KICAgcmV0dXJu IChmcmFtZS0+ZXh0cmFfaW5mby0+aXNfbWFpbiA/IDANCi0gICAgICAgICAg OiBmcmFtZS0+ZnJhbWUgKyBmcmFtZS0+ZXh0cmFfaW5mby0+ZnJhbWVzaXpl ICsgMiAvKiByZXQgYWRkciAqLyk7DQorCSAgOiBmcmFtZS0+ZnJhbWUgKyBm cmFtZS0+ZXh0cmFfaW5mby0+ZnJhbWVzaXplICsgMiAvKiByZXQgYWRkciAq LyApOw0KIH0NCiANCiAvKiBTdG9yZSB0aGUgYWRkcmVzcyBvZiB0aGUgcGxh Y2UgaW4gd2hpY2ggdG8gY29weSB0aGUgc3RydWN0dXJlIHRoZQ0KQEAgLTEw NTQsOCArMTA1NSw3IEBAIHN0YXRpYyBDT1JFX0FERFINCiBhdnJfZXh0cmFj dF9zdHJ1Y3RfdmFsdWVfYWRkcmVzcyAoY2hhciAqcmVnYnVmKQ0KIHsNCiAg IHJldHVybiAoZXh0cmFjdF9hZGRyZXNzICgocmVnYnVmKSArIFJFR0lTVEVS X0JZVEUgKDApLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR0lT VEVSX1JBV19TSVpFICgwKSkNCi0gICAgICAgICAgfCBBVlJfU01FTV9TVEFS VCk7DQorCQkJICAgUkVHSVNURVJfUkFXX1NJWkUgKDApKSB8IEFWUl9TTUVN X1NUQVJUKTsNCiB9DQogDQogLyogU2V0dXAgdGhlIGZ1bmN0aW9uIGFyZ3Vt ZW50cyBmb3IgY2FsbGluZyBhIGZ1bmN0aW9uIGluIHRoZSBpbmZlcmlvci4N CkBAIC0xMDg4LDcgKzEwODgsNyBAQCBhdnJfZXh0cmFjdF9zdHJ1Y3RfdmFs dWVfYWRkcmVzcyAoY2hhciAqDQogDQogc3RhdGljIENPUkVfQUREUg0KIGF2 cl9wdXNoX2FyZ3VtZW50cyAoaW50IG5hcmdzLCBzdHJ1Y3QgdmFsdWUgKiph cmdzLCBDT1JFX0FERFIgc3AsDQotICAgICAgICAgICAgICAgICAgICBpbnQg c3RydWN0X3JldHVybiwgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQ0KKwkJICAg IGludCBzdHJ1Y3RfcmV0dXJuLCBDT1JFX0FERFIgc3RydWN0X2FkZHIpDQog ew0KICAgaW50IHN0YWNrX2FsbG9jLCBzdGFja19vZmZzZXQ7DQogICBpbnQg d29yZHNpemU7DQpAQCAtMTEwMCwxNyArMTEwMCwxNiBAQCBhdnJfcHVzaF9h cmd1bWVudHMgKGludCBuYXJncywgc3RydWN0IHZhDQogICBjaGFyIHZhbGJ1 Zls0XTsNCiAgIGludCBsZW47DQogDQotICB3b3Jkc2l6ZSAgICA9IDE7DQor ICB3b3Jkc2l6ZSA9IDE7DQogI2lmIDANCiAgIC8qIE5vdyBtYWtlIHN1cmUg dGhlcmUncyBzcGFjZSBvbiB0aGUgc3RhY2sgKi8NCi0gIGZvciAoYXJnbnVt ID0gMCwgc3RhY2tfYWxsb2MgPSAwOyANCi0gICAgICAgYXJnbnVtIDwgbmFy Z3M7IGFyZ251bSsrKQ0KLSAgICBzdGFja19hbGxvYyArPSBUWVBFX0xFTkdU SChWQUxVRV9UWVBFKGFyZ3NbYXJnbnVtXSkpOw0KLSAgc3AgLT0gc3RhY2tf YWxsb2M7ICAgIC8qIG1ha2Ugcm9vbSBvbiBzdGFjayBmb3IgYXJncyAqLw0K KyAgZm9yIChhcmdudW0gPSAwLCBzdGFja19hbGxvYyA9IDA7IGFyZ251bSA8 IG5hcmdzOyBhcmdudW0rKykNCisgICAgc3RhY2tfYWxsb2MgKz0gVFlQRV9M RU5HVEggKFZBTFVFX1RZUEUgKGFyZ3NbYXJnbnVtXSkpOw0KKyAgc3AgLT0g c3RhY2tfYWxsb2M7CQkvKiBtYWtlIHJvb20gb24gc3RhY2sgZm9yIGFyZ3Mg Ki8NCiAgIC8qIHdlIG1heSBvdmVyLWFsbG9jYXRlIGEgbGl0dGxlIGhlcmUs IGJ1dCB0aGF0IHdvbid0IGh1cnQgYW55dGhpbmcgKi8NCiAjZW5kaWYNCiAg IGFyZ3JlZyA9IDI1Ow0KLSAgaWYgKHN0cnVjdF9yZXR1cm4pICAgIC8qICJz dHJ1Y3QgcmV0dXJuIiBwb2ludGVyIHRha2VzIHVwIG9uZSBhcmdyZWcgKi8N CisgIGlmIChzdHJ1Y3RfcmV0dXJuKQkJLyogInN0cnVjdCByZXR1cm4iIHBv aW50ZXIgdGFrZXMgdXAgb25lIGFyZ3JlZyAqLw0KICAgICB7DQogICAgICAg d3JpdGVfcmVnaXN0ZXIgKC0tYXJncmVnLCBzdHJ1Y3RfYWRkcik7DQogICAg IH0NCkBAIC0xMTI4LDExICsxMTI3LDExIEBAIGF2cl9wdXNoX2FyZ3VtZW50 cyAoaW50IG5hcmdzLCBzdHJ1Y3QgdmENCiAgICAgICAvKiBOT1RFIFdFTEwh ISEhISAgVGhpcyBpcyBub3QgYW4gImVsc2UgaWYiIGNsYXVzZSEhISAgVGhh dCdzIGJlY2F1c2UNCiAgICAgICAgICBzb21lIComXiUkIHRoaW5ncyBnZXQg cGFzc2VkIG9uIHRoZSBzdGFjayBBTkQgaW4gdGhlIHJlZ2lzdGVycyEgICov DQogICAgICAgd2hpbGUgKGxlbiA+IDApDQotICAgICAgICB7IC8qIHRoZXJl J3Mgcm9vbSBpbiByZWdpc3RlcnMgKi8NCi0gICAgICAgICAgbGVuIC09IHdv cmRzaXplOw0KLSAgICAgICAgICByZWd2YWwgPSBleHRyYWN0X2FkZHJlc3Mg KHZhbCArIGxlbiwgd29yZHNpemUpOw0KLSAgICAgICAgICB3cml0ZV9yZWdp c3RlciAoYXJncmVnLS0sIHJlZ3ZhbCk7DQotICAgICAgICB9DQorCXsJCQkv KiB0aGVyZSdzIHJvb20gaW4gcmVnaXN0ZXJzICovDQorCSAgbGVuIC09IHdv cmRzaXplOw0KKwkgIHJlZ3ZhbCA9IGV4dHJhY3RfYWRkcmVzcyAodmFsICsg bGVuLCB3b3Jkc2l6ZSk7DQorCSAgd3JpdGVfcmVnaXN0ZXIgKGFyZ3JlZy0t LCByZWd2YWwpOw0KKwl9DQogICAgIH0NCiAgIHJldHVybiBzcDsNCiB9DQpA QCAtMTE0MCwxNSArMTEzOSwxNiBAQCBhdnJfcHVzaF9hcmd1bWVudHMgKGlu dCBuYXJncywgc3RydWN0IHZhDQogLyogSW5pdGlhbGl6ZSB0aGUgZ2RiYXJj aCBzdHJ1Y3R1cmUgZm9yIHRoZSBBVlIncy4gKi8NCiANCiBzdGF0aWMgc3Ry dWN0IGdkYmFyY2ggKg0KLWF2cl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJh cmNoX2luZm8gaW5mbywgc3RydWN0IGdkYmFyY2hfbGlzdCAqYXJjaGVzKXsN CithdnJfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8s IHN0cnVjdCBnZGJhcmNoX2xpc3QgKmFyY2hlcykNCit7DQogICAvKiBGSVhN RTogVFJvdGgvMjAwMi0wMi0xODogSSBoYXZlIG5vIGlkZWEgaWYgYXZyX2Nh bGxfZHVtbXlfd29yZHNbXSBzaG91bGQNCiAgICAgIGJlIGJpZ2dlciBvciBu b3QuIEluaXRpYWwgdGVzdGluZyBzZWVtcyB0byBzaG93IHRoYXQgYGNhbGwg bXlfZnVuYygpYA0KICAgICAgd29ya3MgYW5kIGJhY2t0cmFjZSBmcm9tIGEg YnJlYWtwb2ludCB3aXRoaW4gdGhlIGNhbGwgbG9va3MgY29ycmVjdC4NCiAg ICAgIEFkbWl0dGVkbHksIEkgaGF2ZW4ndCB0ZXN0ZWQgd2l0aCBtb3JlIHRo YW4gYSB2ZXJ5IHNpbXBsZSBwcm9ncmFtLiAqLw0KLSAgc3RhdGljIExPTkdF U1QgYXZyX2NhbGxfZHVtbXlfd29yZHNbXSA9IHswfTsNCisgIHN0YXRpYyBM T05HRVNUIGF2cl9jYWxsX2R1bW15X3dvcmRzW10gPSB7IDAgfTsNCiANCi0g IHN0cnVjdCBnZGJhcmNoICAgICAgICAgICAgICAgICAgICpnZGJhcmNoOw0K LSAgc3RydWN0IGdkYmFyY2hfdGRlcCAgICAgICAgICAgICAgKnRkZXA7DQor ICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsNCisgIHN0cnVjdCBnZGJhcmNo X3RkZXAgKnRkZXA7DQogDQogICAvKiBGaW5kIGEgY2FuZGlkYXRlIGFtb25n IHRoZSBsaXN0IG9mIHByZS1kZWNsYXJlZCBhcmNoaXRlY3R1cmVzLiAqLw0K ICAgYXJjaGVzID0gZ2RiYXJjaF9saXN0X2xvb2t1cF9ieV9pbmZvIChhcmNo ZXMsICZpbmZvKTsNCkBAIC0xMTc2LDcgKzExNzYsNyBAQCBhdnJfZ2RiYXJj aF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluDQogICBzZXRfZ2RiYXJj aF9sb25nX2xvbmdfYml0IChnZGJhcmNoLCA4ICogVEFSR0VUX0NIQVJfQklU KTsNCiAgIHNldF9nZGJhcmNoX3B0cl9iaXQgKGdkYmFyY2gsIDIgKiBUQVJH RVRfQ0hBUl9CSVQpOw0KICAgc2V0X2dkYmFyY2hfYWRkcl9iaXQgKGdkYmFy Y2gsIDMyKTsNCi0gIHNldF9nZGJhcmNoX2JmZF92bWFfYml0IChnZGJhcmNo LCAzMik7IC8qIEZJWE1FOiBUUm90aC8yMDAyLTAyLTE4OiBJcyB0aGlzIG5l ZWRlZD8gKi8NCisgIHNldF9nZGJhcmNoX2JmZF92bWFfYml0IChnZGJhcmNo LCAzMik7CS8qIEZJWE1FOiBUUm90aC8yMDAyLTAyLTE4OiBJcyB0aGlzIG5l ZWRlZD8gKi8NCiANCiAgIHNldF9nZGJhcmNoX2Zsb2F0X2JpdCAoZ2RiYXJj aCwgNCAqIFRBUkdFVF9DSEFSX0JJVCk7DQogICBzZXRfZ2RiYXJjaF9kb3Vi bGVfYml0IChnZGJhcmNoLCA0ICogVEFSR0VUX0NIQVJfQklUKTsNCkBAIC0x MjQwLDcgKzEyNDAsOCBAQCBhdnJfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2Ri YXJjaF9pbmZvIGluDQogDQogICBzZXRfZ2RiYXJjaF91c2Vfc3RydWN0X2Nv bnZlbnRpb24gKGdkYmFyY2gsIGdlbmVyaWNfdXNlX3N0cnVjdF9jb252ZW50 aW9uKTsNCiAgIHNldF9nZGJhcmNoX3N0b3JlX3N0cnVjdF9yZXR1cm4gKGdk YmFyY2gsIGF2cl9zdG9yZV9zdHJ1Y3RfcmV0dXJuKTsNCi0gIHNldF9nZGJh cmNoX2V4dHJhY3Rfc3RydWN0X3ZhbHVlX2FkZHJlc3MgKGdkYmFyY2gsIGF2 cl9leHRyYWN0X3N0cnVjdF92YWx1ZV9hZGRyZXNzKTsNCisgIHNldF9nZGJh cmNoX2V4dHJhY3Rfc3RydWN0X3ZhbHVlX2FkZHJlc3MgKGdkYmFyY2gsDQor CQkJCQkgICAgYXZyX2V4dHJhY3Rfc3RydWN0X3ZhbHVlX2FkZHJlc3MpOw0K IA0KICAgc2V0X2dkYmFyY2hfZnJhbWVfaW5pdF9zYXZlZF9yZWdzIChnZGJh cmNoLCBhdnJfc2Nhbl9wcm9sb2d1ZSk7DQogICBzZXRfZ2RiYXJjaF9pbml0 X2V4dHJhX2ZyYW1lX2luZm8gKGdkYmFyY2gsIGF2cl9pbml0X2V4dHJhX2Zy YW1lX2luZm8pOw0KQEAgLTEyNTEsOSArMTI1MiwxMCBAQCBhdnJfZ2RiYXJj aF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluDQogICBzZXRfZ2RiYXJj aF9kZWNyX3BjX2FmdGVyX2JyZWFrIChnZGJhcmNoLCAwKTsNCiANCiAgIHNl dF9nZGJhcmNoX2Z1bmN0aW9uX3N0YXJ0X29mZnNldCAoZ2RiYXJjaCwgMCk7 DQotICBzZXRfZ2RiYXJjaF9yZW1vdGVfdHJhbnNsYXRlX3hmZXJfYWRkcmVz cyAoZ2RiYXJjaCwgYXZyX3JlbW90ZV90cmFuc2xhdGVfeGZlcl9hZGRyZXNz KTsNCisgIHNldF9nZGJhcmNoX3JlbW90ZV90cmFuc2xhdGVfeGZlcl9hZGRy ZXNzIChnZGJhcmNoLA0KKwkJCQkJICAgICBhdnJfcmVtb3RlX3RyYW5zbGF0 ZV94ZmVyX2FkZHJlc3MpOw0KICAgc2V0X2dkYmFyY2hfZnJhbWVfYXJnc19z a2lwIChnZGJhcmNoLCAwKTsNCi0gIHNldF9nZGJhcmNoX2ZyYW1lbGVzc19m dW5jdGlvbl9pbnZvY2F0aW9uIChnZGJhcmNoLCBmcmFtZWxlc3NfbG9va19m b3JfcHJvbG9ndWUpOyAvKiA/Pz8gKi8NCisgIHNldF9nZGJhcmNoX2ZyYW1l bGVzc19mdW5jdGlvbl9pbnZvY2F0aW9uIChnZGJhcmNoLCBmcmFtZWxlc3Nf bG9va19mb3JfcHJvbG9ndWUpOwkvKiA/Pz8gKi8NCiAgIHNldF9nZGJhcmNo X2ZyYW1lX2NoYWluIChnZGJhcmNoLCBhdnJfZnJhbWVfY2hhaW4pOw0KICAg c2V0X2dkYmFyY2hfZnJhbWVfY2hhaW5fdmFsaWQgKGdkYmFyY2gsIGdlbmVy aWNfZnVuY19mcmFtZV9jaGFpbl92YWxpZCk7DQogICBzZXRfZ2RiYXJjaF9m cmFtZV9zYXZlZF9wYyAoZ2RiYXJjaCwgYXZyX2ZyYW1lX3NhdmVkX3BjKTsN CkBAIC0xMjYyLDcgKzEyNjQsOCBAQCBhdnJfZ2RiYXJjaF9pbml0IChzdHJ1 Y3QgZ2RiYXJjaF9pbmZvIGluDQogICBzZXRfZ2RiYXJjaF9zYXZlZF9wY19h ZnRlcl9jYWxsIChnZGJhcmNoLCBhdnJfc2F2ZWRfcGNfYWZ0ZXJfY2FsbCk7 DQogICBzZXRfZ2RiYXJjaF9mcmFtZV9udW1fYXJncyAoZ2RiYXJjaCwgZnJh bWVfbnVtX2FyZ3NfdW5rbm93bik7DQogDQotICBzZXRfZ2RiYXJjaF9jb252 ZXJ0X2Zyb21fZnVuY19wdHJfYWRkciAoZ2RiYXJjaCwgYXZyX2NvbnZlcnRf ZnJvbV9mdW5jX3B0cl9hZGRyKTsNCisgIHNldF9nZGJhcmNoX2NvbnZlcnRf ZnJvbV9mdW5jX3B0cl9hZGRyIChnZGJhcmNoLA0KKwkJCQkJICBhdnJfY29u dmVydF9mcm9tX2Z1bmNfcHRyX2FkZHIpOw0KIA0KICAgcmV0dXJuIGdkYmFy Y2g7DQogfQ0KQEAgLTEyODMsNzEgKzEyODYsNzQgQEAgYXZyX2dkYmFyY2hf aW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbg0KIHN0YXRpYyB2b2lkDQog YXZyX2lvX3JlZ19yZWFkX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9t X3R0eSkNCiB7DQotICBpbnQgICAgICAgICAgIGJ1ZnNpeiA9IDA7DQotICBj aGFyICAgICAgICAgIGJ1Zls0MDBdOw0KLSAgY2hhciAgICAgICAgICBxdWVy eVs0MDBdOw0KLSAgY2hhciAgICAgICAgICpwOw0KLSAgdW5zaWduZWQgaW50 ICBucmVnID0gMDsNCi0gIHVuc2lnbmVkIGludCAgdmFsOw0KLSAgaW50ICAg ICAgICAgICBpLCBqLCBrLCBzdGVwOw0KKyAgaW50IGJ1ZnNpeiA9IDA7DQor ICBjaGFyIGJ1Zls0MDBdOw0KKyAgY2hhciBxdWVyeVs0MDBdOw0KKyAgY2hh ciAqcDsNCisgIHVuc2lnbmVkIGludCBucmVnID0gMDsNCisgIHVuc2lnbmVk IGludCB2YWw7DQorICBpbnQgaSwgaiwgaywgc3RlcDsNCiANCiAvKiAgICBm cHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsICJERUJVRzogYXZyX2lv X3JlZ19yZWFkX2NvbW1hbmQgKFwiJXNcIiwgJWQpXG4iLCAqLw0KIC8qICAg ICAgICAgICAgIGFyZ3MsIGZyb21fdHR5KTsgKi8NCiANCi0gIGlmICghIGN1 cnJlbnRfdGFyZ2V0LnRvX3F1ZXJ5KQ0KKyAgaWYgKCFjdXJyZW50X3Rhcmdl dC50b19xdWVyeSkNCiAgICAgew0KLSAgICAgIGZwcmludGZfdW5maWx0ZXJl ZCAoZ2RiX3N0ZGVyciwgIkVSUjogaW5mbyBpb19yZWdpc3RlcnMgTk9UIHN1 cHBvcnRlZCBieSBjdXJyZW50IHRhcmdldFxuIik7DQorICAgICAgZnByaW50 Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLA0KKwkJCSAgIkVSUjogaW5mbyBp b19yZWdpc3RlcnMgTk9UIHN1cHBvcnRlZCBieSBjdXJyZW50IHRhcmdldFxu Iik7DQogICAgICAgcmV0dXJuOw0KICAgICB9DQogDQogICAvKiBKdXN0IGdl dCB0aGUgbWF4aW11bSBidWZmZXIgc2l6ZS4gKi8NCiAgIHRhcmdldF9xdWVy eSAoKGludCkgJ1InLCAwLCAwLCAmYnVmc2l6KTsNCi0gIGlmIChidWZzaXog PiBzaXplb2YoYnVmKSkNCi0gICAgYnVmc2l6ID0gc2l6ZW9mKGJ1Zik7DQor ICBpZiAoYnVmc2l6ID4gc2l6ZW9mIChidWYpKQ0KKyAgICBidWZzaXogPSBz aXplb2YgKGJ1Zik7DQogDQogICAvKiBGaW5kIG91dCBob3cgbWFueSBpbyBy ZWdpc3RlcnMgdGhlIHRhcmdldCBoYXMuICovDQogICBzdHJjcHkgKHF1ZXJ5 LCAiYXZyLmlvX3JlZyIpOw0KLSAgdGFyZ2V0X3F1ZXJ5KCAoaW50KSAnUics IHF1ZXJ5LCBidWYsICZidWZzaXogKTsNCisgIHRhcmdldF9xdWVyeSAoKGlu dCkgJ1InLCBxdWVyeSwgYnVmLCAmYnVmc2l6KTsNCiANCiAgIGlmIChzdHJu Y21wIChidWYsICIiLCBidWZzaXopID09IDApDQogICAgIHsNCi0gICAgICBm cHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsICJpbmZvIGlvX3JlZ2lz dGVycyBOT1Qgc3VwcG9ydGVkIGJ5IHRhcmdldFxuIik7DQorICAgICAgZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLA0KKwkJCSAgImluZm8gaW9f cmVnaXN0ZXJzIE5PVCBzdXBwb3J0ZWQgYnkgdGFyZ2V0XG4iKTsNCiAgICAg ICByZXR1cm47DQogICAgIH0NCiANCi0gIGlmICggc3NjYW5mIChidWYsICIl eCIsICZucmVnKSAhPSAxICkNCisgIGlmIChzc2NhbmYgKGJ1ZiwgIiV4Iiwg Jm5yZWcpICE9IDEpDQogICAgIHsNCi0gICAgICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGdkYl9zdGRlcnIsICJFcnJvciBmZXRjaGluZyBudW1iZXIgb2YgaW8g cmVnaXN0ZXJzXG4iKTsNCisgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdk Yl9zdGRlcnIsDQorCQkJICAiRXJyb3IgZmV0Y2hpbmcgbnVtYmVyIG9mIGlv IHJlZ2lzdGVyc1xuIik7DQogICAgICAgcmV0dXJuOw0KICAgICB9DQogDQot ICByZWluaXRpYWxpemVfbW9yZV9maWx0ZXIoKTsNCisgIHJlaW5pdGlhbGl6 ZV9tb3JlX2ZpbHRlciAoKTsNCiANCiAgIHByaW50Zl91bmZpbHRlcmVkICgi VGFyZ2V0IGhhcyAldSBpbyByZWdpc3RlcnM6XG5cbiIsIG5yZWcpOw0KIA0K ICAgLyogb25seSBmZXRjaCB1cCB0byA4IHJlZ2lzdGVycyBhdCBhIHRpbWUg dG8ga2VlcCB0aGUgYnVmZmVyIHNtYWxsICovDQogICBzdGVwID0gODsNCiAN Ci0gIGZvciAoaT0wOyBpPG5yZWc7IGkrPXN0ZXApDQorICBmb3IgKGkgPSAw OyBpIDwgbnJlZzsgaSArPSBzdGVwKQ0KICAgICB7DQotICAgICAgaiA9IHN0 ZXAgLSAobnJlZyAlIHN0ZXApOyAgICAgLyogaG93IG1hbnkgcmVnaXN0ZXJz IHRoaXMgcm91bmQ/ICovDQorICAgICAgaiA9IHN0ZXAgLSAobnJlZyAlIHN0 ZXApOwkvKiBob3cgbWFueSByZWdpc3RlcnMgdGhpcyByb3VuZD8gKi8NCiAN Ci0gICAgICBzbnByaW50ZiAocXVlcnksIHNpemVvZihxdWVyeSktMSwgImF2 ci5pb19yZWc6JXgsJXgiLCBpLCBqKTsNCisgICAgICBzbnByaW50ZiAocXVl cnksIHNpemVvZiAocXVlcnkpIC0gMSwgImF2ci5pb19yZWc6JXgsJXgiLCBp LCBqKTsNCiAgICAgICB0YXJnZXRfcXVlcnkgKChpbnQpICdSJywgcXVlcnks IGJ1ZiwgJmJ1ZnNpeik7DQogDQogICAgICAgcCA9IGJ1ZjsNCi0gICAgICBm b3IgKGs9aTsgazwoaStqKTsgaysrKQ0KLSAgICAgICAgew0KLSAgICAgICAg ICBpZiAoc3NjYW5mIChwLCAiJVteLF0sJXg7IiwgcXVlcnksICZ2YWwpID09 IDIpDQotICAgICAgICAgICAgew0KLSAgICAgICAgICAgICAgcHJpbnRmX2Zp bHRlcmVkICgiWyUwMnhdICUtMTVzIDogJTAyeFxuIiwgaywgcXVlcnksIHZh bCk7DQotICAgICAgICAgICAgICB3aGlsZSAoKCpwICE9ICc7JykgJiYgKCpw ICE9ICdcMCcpKQ0KLSAgICAgICAgICAgICAgICBwKys7DQotICAgICAgICAg ICAgICBwKys7IC8qIHNraXAgb3ZlciAnOycgKi8NCi0gICAgICAgICAgICAg IGlmICgqcCA9PSAnXDAnKQ0KLSAgICAgICAgICAgICAgICBicmVhazsNCi0g ICAgICAgICAgICB9DQotICAgICAgICB9DQorICAgICAgZm9yIChrID0gaTsg ayA8IChpICsgaik7IGsrKykNCisJew0KKwkgIGlmIChzc2NhbmYgKHAsICIl W14sXSwleDsiLCBxdWVyeSwgJnZhbCkgPT0gMikNCisJICAgIHsNCisJICAg ICAgcHJpbnRmX2ZpbHRlcmVkICgiWyUwMnhdICUtMTVzIDogJTAyeFxuIiwg aywgcXVlcnksIHZhbCk7DQorCSAgICAgIHdoaWxlICgoKnAgIT0gJzsnKSAm JiAoKnAgIT0gJ1wwJykpDQorCQlwKys7DQorCSAgICAgIHArKzsJCS8qIHNr aXAgb3ZlciAnOycgKi8NCisJICAgICAgaWYgKCpwID09ICdcMCcpDQorCQli cmVhazsNCisJICAgIH0NCisJfQ0KICAgICB9DQogfQ0KIA0KQEAgLTEzNjQs NiArMTM3MCw1IEBAIF9pbml0aWFsaXplX2F2cl90ZGVwICh2b2lkKQ0KICAg ICAgaW9fcmVnaXN0ZXJzJyB0byBzaWduaWZ5IGl0IGlzIG5vdCBhdmFpbGFi bGUgb24gb3RoZXIgcGxhdGZvcm1zLiAqLw0KIA0KICAgYWRkX2NtZCAoImlv X3JlZ2lzdGVycyIsIGNsYXNzX2luZm8sIGF2cl9pb19yZWdfcmVhZF9jb21t YW5kLA0KLSAgICAgICAgICAgInF1ZXJ5IHJlbW90ZSBhdnIgdGFyZ2V0IGZv ciBpbyBzcGFjZSByZWdpc3RlciB2YWx1ZXMiLA0KLSAgICAgICAgICAgJmlu Zm9saXN0KTsNCisJICAgInF1ZXJ5IHJlbW90ZSBhdnIgdGFyZ2V0IGZvciBp byBzcGFjZSByZWdpc3RlciB2YWx1ZXMiLCAmaW5mb2xpc3QpOw0KIH0NCg== --8323328-893102668-1019769961=:10735--