From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26877 invoked by alias); 23 Apr 2009 11:57:35 -0000 Received: (qmail 26865 invoked by uid 22791); 23 Apr 2009 11:57:32 -0000 X-SWARE-Spam-Status: No, hits=-0.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_31,J_CHICKENPOX_33,KAM_STOCKGEN X-Spam-Check-By: sourceware.org Received: from smtpoutwbe05.prod.mesa1.secureserver.net (HELO smtpoutwbe05.prod.mesa1.secureserver.net) (208.109.78.207) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Thu, 23 Apr 2009 11:57:27 +0000 Received: (qmail 15930 invoked from network); 23 Apr 2009 11:57:26 -0000 Received: from unknown (HELO localhost) (72.167.218.130) by smtpoutwbe05.prod.mesa1.secureserver.net with SMTP; 23 Apr 2009 11:57:25 -0000 Received: (qmail 24875 invoked by uid 99); 23 Apr 2009 11:57:25 -0000 Content-Type: multipart/mixed; boundary="=_1c90c58fc0fae1f4bc58c4ec8c0961f8" User-Agent: Web-Based Email 4.14.23 Message-Id: <20090423045725.aaa2c6acbe2fcbd4897bea2c255aade5.61d9530215.wbe@email03.secureserver.net> From: green@moxielogic.com To: gdb-patches@sourceware.org Subject: PATCH: new gdb port: moxie-elf Date: Thu, 23 Apr 2009 11:57:00 -0000 Mime-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-04/txt/msg00646.txt.bz2 --=_1c90c58fc0fae1f4bc58c4ec8c0961f8 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Content-length: 937 Here's the gdb patch that goes with the sim patch I just submitted[1]. [1] http://sourceware.org/ml/gdb-patches/2009-04/msg00645.html Thanks, Anthony Green 2009-04-23 Anthony Green =20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20 * moxie-tdep.h: New file.=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 =20=20=20=20=20=20 * moxie-tdep.c: New file.=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 =20=20=20=20=20=20 * configure.tgt: Add moxie-elf.=20 --=_1c90c58fc0fae1f4bc58c4ec8c0961f8 Content-Transfer-Encoding: base64 Content-Type: text/plain; name="moxie-gdb.patch"; Content-Disposition: attachment; filename="moxie-gdb.patch"; Content-length: 22509 ZGlmZiAtcnVOIHVzcmMvZ2RiL2NvbmZpZ3VyZS50Z3Qgc3JjL2dkYi9jb25m aWd1cmUudGd0Ci0tLSB1c3JjL2dkYi9jb25maWd1cmUudGd0CTIwMDktMDQt MTcgMTA6MjI6MjUuMDAwMDAwMDAwIC0wNDAwCisrKyBzcmMvZ2RiL2NvbmZp Z3VyZS50Z3QJMjAwOS0wNC0yMyAwNzoyOToxOC4wMDAwMDAwMDAgLTA0MDAK QEAgLTExNCw2ICsxMTQsMTEgQEAKIAlnZGJfc2ltPS4uL3NpbS9mcnYvbGli c2ltLmEKIAk7OwogCittb3hpZS0qLWVsZikKKwlnZGJfdGFyZ2V0X29icz0i bW94aWUtdGRlcC5vIgorCWdkYl9zaW09Li4vc2ltL21veGllL2xpYnNpbS5h CisJOzsKKwogaDgzMDAtKi0qKQogCSMgVGFyZ2V0OiBIODMwMCB3aXRoIEhN UyBtb25pdG9yIGFuZCBIOCBzaW11bGF0b3IKIAlnZGJfdGFyZ2V0X29icz0i aDgzMDAtdGRlcC5vIG1vbml0b3IubyBkc3JlYy5vIgpkaWZmIC1ydU4gdXNy Yy9nZGIvbW94aWUtdGRlcC5jIHNyYy9nZGIvbW94aWUtdGRlcC5jCi0tLSB1 c3JjL2dkYi9tb3hpZS10ZGVwLmMJMTk2OS0xMi0zMSAxOTowMDowMC4wMDAw MDAwMDAgLTA1MDAKKysrIHNyYy9nZGIvbW94aWUtdGRlcC5jCTIwMDktMDQt MjMgMDc6MTg6MDkuMDAwMDAwMDAwIC0wNDAwCkBAIC0wLDAgKzEsNTAwIEBA CisvKiBUYXJnZXQtZGVwZW5kZW50IGNvZGUgZm9yIE1veGllCisKKyAgIENv cHlyaWdodCAoQykgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKworICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorI2lu Y2x1ZGUgImZyYW1lLmgiCisjaW5jbHVkZSAiZnJhbWUtdW53aW5kLmgiCisj aW5jbHVkZSAiZnJhbWUtYmFzZS5oIgorI2luY2x1ZGUgInN5bXRhYi5oIgor I2luY2x1ZGUgImdkYnR5cGVzLmgiCisjaW5jbHVkZSAiZ2RiY21kLmgiCisj aW5jbHVkZSAiZ2RiY29yZS5oIgorI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIK KyNpbmNsdWRlICJ2YWx1ZS5oIgorI2luY2x1ZGUgImluZmVyaW9yLmgiCisj aW5jbHVkZSAic3ltZmlsZS5oIgorI2luY2x1ZGUgIm9iamZpbGVzLmgiCisj aW5jbHVkZSAib3NhYmkuaCIKKyNpbmNsdWRlICJsYW5ndWFnZS5oIgorI2lu Y2x1ZGUgImFyY2gtdXRpbHMuaCIKKyNpbmNsdWRlICJyZWdjYWNoZS5oIgor I2luY2x1ZGUgInRyYWQtZnJhbWUuaCIKKyNpbmNsdWRlICJkaXMtYXNtLmgi CisKKyNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCisKKyNpbmNsdWRlICJtb3hp ZS10ZGVwLmgiCisKKy8qIExvY2FsIGZ1bmN0aW9ucyAqLworCitleHRlcm4g dm9pZCBfaW5pdGlhbGl6ZV9tb3hpZV90ZGVwICh2b2lkKTsKKworLyogVXNl IGFuIGludmFsaWQgYWRkcmVzcyB2YWx1ZSBhcyAnbm90IGF2YWlsYWJsZScg bWFya2VyLiAgKi8KK2VudW0geyBSRUdfVU5BVkFJTCA9IChDT1JFX0FERFIp IC0xIH07CisKK3N0cnVjdCBtb3hpZV9mcmFtZV9jYWNoZQoreworICAvKiBC YXNlIGFkZHJlc3MuICAqLworICBDT1JFX0FERFIgYmFzZTsKKyAgQ09SRV9B RERSIHBjOworICBMT05HRVNUIGZyYW1lc2l6ZTsKKyAgQ09SRV9BRERSIHNh dmVkX3JlZ3NbTU9YSUVfTlVNX1JFR1NdOworICBDT1JFX0FERFIgc2F2ZWRf c3A7Cit9OworCitzdGF0aWMgQ09SRV9BRERSCittb3hpZV9mcmFtZV9hbGln biAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBzcCkKK3sK KyAgLyogQWxpZ24gdG8gdGhlIHNpemUgb2YgYW4gaW5zdHJ1Y3Rpb24gKHNv IHRoYXQgdGhleSBjYW4gc2FmZWx5IGJlCisgICAgIHB1c2hlZCBvbnRvIHRo ZSBzdGFjay4gICovCisgIHJldHVybiBzcCAmIH4xOworfQorCitjb25zdCBz dGF0aWMgdW5zaWduZWQgY2hhciAqCittb3hpZV9icmVha3BvaW50X2Zyb21f cGMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCAKKwkJCSAgQ09SRV9BRERS ICpwY3B0ciwgaW50ICpsZW5wdHIpCit7CisgIHN0YXRpYyB1bnNpZ25lZCBj aGFyIGJyZWFrcG9pbnRbXSA9IHsgMHgzNSwgMHgwMCB9OworICAqbGVucHRy ID0gc2l6ZW9mIChicmVha3BvaW50KTsKKyAgcmV0dXJuIGJyZWFrcG9pbnQ7 Cit9CisKK2NoYXIgKm1veGllX3JlZ2lzdGVyX25hbWVzW10gPSB7CisgICIk ZnAiLCAgIiRzcCIsICAiJHIwIiwgICIkcjEiLCAgIiRyMiIsCisgICIkcjMi LCAgIiRyNCIsICAiJHI1IiwgIiRyNiIsICIkcjciLAorICAiJHI4IiwgIiRy OSIsICIkcjEwIiwgIiRyMTEiLCAiJHIxMiIsCisgICIkcjEzIiwgIiRwYyIs ICIkY2MiIH07CisKK3N0YXRpYyBjb25zdCBjaGFyICoKK21veGllX3JlZ2lz dGVyX25hbWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnX25y KQoreworICBpZiAocmVnX25yIDwgMCkKKyAgICByZXR1cm4gTlVMTDsKKyAg aWYgKHJlZ19uciA+PSBNT1hJRV9OVU1fUkVHUykKKyAgICByZXR1cm4gTlVM TDsKKyAgcmV0dXJuIG1veGllX3JlZ2lzdGVyX25hbWVzW3JlZ19ucl07Cit9 CisKKworLyogUmV0dXJuIHRoZSBHREIgdHlwZSBvYmplY3QgZm9yIHRoZSAi c3RhbmRhcmQiIGRhdGEgdHlwZQorICAgb2YgZGF0YSBpbiByZWdpc3RlciBO LiAgKi8KKworc3RhdGljIHN0cnVjdCB0eXBlICoKK21veGllX3JlZ2lzdGVy X3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnX25yKQor eworICBpZiAocmVnX25yID09IE1PWElFX1BDX1JFR05VTSkKKyAgICByZXR1 cm4gIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fZnVuY19wdHI7 CisgIGVsc2UgaWYgKHJlZ19uciA9PSBNT1hJRV9TUF9SRUdOVU0gfHwgcmVn X25yID09IE1PWElFX0ZQX1JFR05VTSkKKyAgICByZXR1cm4gYnVpbHRpbl90 eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsKKyAgZWxzZQorICAg IHJldHVybiBidWlsdGluX3R5cGVfaW50MzI7Cit9CisKKworLyogV3JpdGUg aW50byBhcHByb3ByaWF0ZSByZWdpc3RlcnMgYSBmdW5jdGlvbiByZXR1cm4g dmFsdWUKKyAgIG9mIHR5cGUgVFlQRSwgZ2l2ZW4gaW4gdmlydHVhbCBmb3Jt YXQuICAKKworICAgVGhpbmdzIGFsd2F5cyBnZXQgcmV0dXJuZWQgaW4gUkVU MV9SRUdOVU0sIFJFVDJfUkVHTlVNLiAqLworCitzdGF0aWMgdm9pZAorbW94 aWVfc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKwkJCSBjb25zdCB2b2lkICp2YWxi dWYpCit7CisgIENPUkVfQUREUiByZWd2YWw7CisgIGludCBsZW4gPSBUWVBF X0xFTkdUSCAodHlwZSk7CisKKyAgcmVndmFsID0gZXh0cmFjdF91bnNpZ25l ZF9pbnRlZ2VyICh2YWxidWYsIGxlbiA+IDQgPyA0IDogbGVuKTsKKyAgcmVn Y2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbmVkIChyZWdjYWNoZSwgUkVUMV9S RUdOVU0sIHJlZ3ZhbCk7CisKKyAgaWYgKGxlbiA+IDQpCisgICAgeworICAg ICAgcmVndmFsID0gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyICgoZ2RiX2J5 dGUgKikgdmFsYnVmICsgNCwgbGVuIC0gNCk7CisgICAgICByZWdjYWNoZV9j b29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBSRVQxX1JFR05VTSAr IDEsIHJlZ3ZhbCk7CisgICAgfQorfQorCisvKiBGdW5jdGlvbjogbW94aWVf c2Nhbl9wcm9sb2d1ZQorICAgRGVjb2RlIHRoZSBpbnN0cnVjdGlvbnMgd2l0 aGluIHRoZSBnaXZlbiBhZGRyZXNzIHJhbmdlLgorICAgRGVjaWRlIHdoZW4g d2UgbXVzdCBoYXZlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24g cHJvbG9ndWUuCisgICBJZiBhIGZyYW1lX2luZm8gcG9pbnRlciBpcyBwcm92 aWRlZCwgZmlsbCBpbiBpdHMgc2F2ZWRfcmVncyBldGMuCisKKyAgIFJldHVy bnMgdGhlIGFkZHJlc3Mgb2YgdGhlIGZpcnN0IGluc3RydWN0aW9uIGFmdGVy IHRoZSBwcm9sb2d1ZS4gICovCisKK3N0YXRpYyBDT1JFX0FERFIKK21veGll X2FuYWx5emVfcHJvbG9ndWUgKENPUkVfQUREUiBzdGFydF9hZGRyLCBDT1JF X0FERFIgZW5kX2FkZHIsCisJCSAgICAgIHN0cnVjdCBtb3hpZV9mcmFtZV9j YWNoZSAqY2FjaGUsCisJCSAgICAgIHN0cnVjdCBmcmFtZV9pbmZvICp0aGlz X2ZyYW1lKQoreworICBDT1JFX0FERFIgbmV4dF9hZGRyOworICBVTE9OR0VT VCBpbnN0LCBpbnN0MjsKKyAgTE9OR0VTVCBvZmZzZXQ7CisgIGludCByZWdu dW07CisKKyAgLyogUmVjb3JkIHdoZXJlIHRoZSBqc3JhIGluc3RydWN0aW9u IHNhdmVzIHRoZSBQQyBhbmQgRlAgKi8KKyAgY2FjaGUtPnNhdmVkX3JlZ3Nb TU9YSUVfUENfUkVHTlVNXSA9IC00OworICBjYWNoZS0+c2F2ZWRfcmVnc1tN T1hJRV9GUF9SRUdOVU1dID0gMDsKKyAgY2FjaGUtPmZyYW1lc2l6ZSA9IDA7 CisKKyAgaWYgKHN0YXJ0X2FkZHIgPj0gZW5kX2FkZHIpCisgICAgcmV0dXJu IGVuZF9hZGRyOworCisgIGZvciAobmV4dF9hZGRyID0gc3RhcnRfYWRkcjsK KyAgICAgICBuZXh0X2FkZHIgPCBlbmRfYWRkcjsgKQorICAgIHsKKyAgICAg IGluc3QgPSByZWFkX21lbW9yeV91bnNpZ25lZF9pbnRlZ2VyIChuZXh0X2Fk ZHIsIDIpOworCisgICAgICBpZiAoaW5zdCA+PSAweDA2MTQgJiYgaW5zdCA8 PSAweDA2MWYpCS8qIHB1c2ggJXIyIC4uIHB1c2ggJXIxMyAqLworCXsKKwkg IHJlZ251bSA9IGluc3QgJiAweDAwMGY7CisJICBjYWNoZS0+ZnJhbWVzaXpl ICs9IDQ7CisJICBjYWNoZS0+c2F2ZWRfcmVnc1tyZWdudW1dID0gY2FjaGUt PmZyYW1lc2l6ZTsKKwkgIG5leHRfYWRkciArPSAyOworCX0KKworICAgICAg Lyogb3B0aW9uYWwgc3RhY2sgYWxsb2NhdGlvbiBmb3IgYXJncyBhbmQgbG9j YWwgdmFycyA8PSA0IGJ5dGUgKi8KKyAgICAgIGVsc2UgaWYgKGluc3QgPT0g MHgwMWYwKSAgICAgICAgICAgLyogIGxkaS5sICRyMTMsIFggKi8KKwl7CisJ ICBvZmZzZXQgPSByZWFkX21lbW9yeV9pbnRlZ2VyIChuZXh0X2FkZHIgKyAy LCA0KTsKKwkgIGluc3QyID0gcmVhZF9tZW1vcnlfdW5zaWduZWRfaW50ZWdl ciAobmV4dF9hZGRyICsgNiwgMik7CisKKwkgIGlmIChpbnN0MiA9PSAweDA1 MWYpICAgICAgICAgICAvKiBhZGQubCAgICRzcCwgJHIxMyAqLworCSAgICB7 CisJICAgICAgY2FjaGUtPmZyYW1lc2l6ZSArPSBvZmZzZXQ7CisJICAgIH0K KworCSAgcmV0dXJuIChuZXh0X2FkZHIgKyA4KTsKKwl9CisgICAgICBlbHNl CQkJLyogTm90IGEgcHJvbG9ndWUgaW5zdHJ1Y3Rpb24uICovCisJYnJlYWs7 CisgICAgfQorCisgIHJldHVybiBuZXh0X2FkZHI7Cit9CisKKy8qIEZ1bmN0 aW9uOiBza2lwX3Byb2xvZ3VlCisgICBGaW5kIGVuZCBvZiBmdW5jdGlvbiBw cm9sb2d1ZSAqLworCisjZGVmaW5lIERFRkFVTFRfU0VBUkNIX0xJTUlUIDEy OAorCitDT1JFX0FERFIKK21veGllX3NraXBfcHJvbG9ndWUgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgcGMpCit7CisgIENPUkVfQURE UiBmdW5jX2FkZHIgPSAwLCBmdW5jX2VuZCA9IDA7CisgIGNoYXIgKmZ1bmNf bmFtZTsKKworICBpZiAoZmluZF9wY19wYXJ0aWFsX2Z1bmN0aW9uIChwYywg JmZ1bmNfbmFtZSwgJmZ1bmNfYWRkciwgJmZ1bmNfZW5kKSkKKyAgICB7Cisg ICAgICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lIHNhbDsKKyAgICAgIHN0cnVj dCBzeW1ib2wgKnN5bTsKKyAgICAgIHN0cnVjdCBtb3hpZV9mcmFtZV9jYWNo ZSBjYWNoZTsKKyAgICAgIENPUkVfQUREUiBwbGdfZW5kOworCisgICAgICBt ZW1zZXQgKCZjYWNoZSwgMCwgc2l6ZW9mIGNhY2hlKTsKKworICAgICAgcGxn X2VuZCA9IG1veGllX2FuYWx5emVfcHJvbG9ndWUgKGZ1bmNfYWRkciwgZnVu Y19lbmQsICZjYWNoZSwgTlVMTCk7CisKKyAgICAgIC8qIEZvdW5kIGEgZnVu Y3Rpb24uICAqLworICAgICAgc3ltID0gbG9va3VwX3N5bWJvbCAoZnVuY19u YW1lLCBOVUxMLCBWQVJfRE9NQUlOLCBOVUxMKTsKKyAgICAgIC8qIERvbid0 IHVzZSBsaW5lIG51bWJlciBkZWJ1ZyBpbmZvIGZvciBhc3NlbWJseSBzb3Vy Y2UgZmlsZXMuICovCisgICAgICBpZiAoc3ltICYmIFNZTUJPTF9MQU5HVUFH RSAoc3ltKSAhPSBsYW5ndWFnZV9hc20pCisJeworCSAgc2FsID0gZmluZF9w Y19saW5lIChmdW5jX2FkZHIsIDApOworCSAgaWYgKHNhbC5lbmQgJiYgc2Fs LmVuZCA8IGZ1bmNfZW5kKQorCSAgICB7CisJICAgICAgLyogRm91bmQgYSBs aW5lIG51bWJlciwgdXNlIGl0IGFzIGVuZCBvZiBwcm9sb2d1ZS4gICovCisJ ICAgICAgcmV0dXJuIHNhbC5lbmQ7CisJICAgIH0KKwl9CisgICAgICAvKiBO byB1c2VhYmxlIGxpbmUgc3ltYm9sLiAgVXNlIHJlc3VsdCBvZiBwcm9sb2d1 ZSBwYXJzaW5nIG1ldGhvZC4gKi8KKyAgICAgIHJldHVybiBwbGdfZW5kOwor ICAgIH0KKworICAvKiBObyBmdW5jdGlvbiBzeW1ib2wgLS0ganVzdCByZXR1 cm4gdGhlIFBDLiAqLworCisgIHJldHVybiAoQ09SRV9BRERSKSBwYzsKK30K Kworc3RydWN0IG1veGllX3Vud2luZF9jYWNoZQoreworICAvKiBUaGUgcHJl dmlvdXMgZnJhbWUncyBpbm5lciBtb3N0IHN0YWNrIGFkZHJlc3MuICBVc2Vk IGFzIHRoaXMKKyAgICAgZnJhbWUgSUQncyBzdGFja19hZGRyLiAgKi8KKyAg Q09SRV9BRERSIHByZXZfc3A7CisgIC8qIFRoZSBmcmFtZSdzIGJhc2UsIG9w dGlvbmFsbHkgdXNlZCBieSB0aGUgaGlnaC1sZXZlbCBkZWJ1ZyBpbmZvLiAg Ki8KKyAgQ09SRV9BRERSIGJhc2U7CisgIGludCBzaXplOworICAvKiBIb3cg ZmFyIHRoZSBTUCBhbmQgcjEzIChGUCkgaGF2ZSBiZWVuIG9mZnNldCBmcm9t IHRoZSBzdGFydCBvZgorICAgICB0aGUgc3RhY2sgZnJhbWUgKGFzIGRlZmlu ZWQgYnkgdGhlIHByZXZpb3VzIGZyYW1lJ3Mgc3RhY2sKKyAgICAgcG9pbnRl cikuICAqLworICBMT05HRVNUIHNwX29mZnNldDsKKyAgTE9OR0VTVCByMTNf b2Zmc2V0OworICBpbnQgdXNlc19mcmFtZTsKKyAgLyogVGFibGUgaW5kaWNh dGluZyB0aGUgbG9jYXRpb24gb2YgZWFjaCBhbmQgZXZlcnkgcmVnaXN0ZXIu ICAqLworICBzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcgKnNhdmVkX3Jl Z3M7Cit9OworCitzdGF0aWMgQ09SRV9BRERSCittb3hpZV9yZWFkX3BjIChz dHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQoreworICBVTE9OR0VTVCBwYzsK KyAgcmVnY2FjaGVfY29va2VkX3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBN T1hJRV9QQ19SRUdOVU0sICZwYyk7CisgIHJldHVybiBwYzsKK30KKworc3Rh dGljIHZvaWQKK21veGllX3dyaXRlX3BjIChzdHJ1Y3QgcmVnY2FjaGUgKnJl Z2NhY2hlLCBDT1JFX0FERFIgdmFsKQoreworICByZWdjYWNoZV9jb29rZWRf d3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBNT1hJRV9QQ19SRUdOVU0sIHZh bCk7Cit9CisKK3N0YXRpYyBDT1JFX0FERFIKK21veGllX3Vud2luZF9zcCAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCBmcmFtZV9pbmZvICpu ZXh0X2ZyYW1lKQoreworICByZXR1cm4gZnJhbWVfdW53aW5kX3JlZ2lzdGVy X3Vuc2lnbmVkIChuZXh0X2ZyYW1lLCBNT1hJRV9TUF9SRUdOVU0pOworfQor CisKKy8qIEdpdmVuIGEgcmV0dXJuIHZhbHVlIGluIGByZWdidWYnIHdpdGgg YSB0eXBlIGB2YWx0eXBlJywgCisgICBleHRyYWN0IGFuZCBjb3B5IGl0cyB2 YWx1ZSBpbnRvIGB2YWxidWYnLiAgKi8KKworc3RhdGljIHZvaWQKK21veGll X2V4dHJhY3RfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKwkJCSAgIHZvaWQgKmRzdCkKK3sK KyAgYmZkX2J5dGUgKnZhbGJ1ZiA9IGRzdDsKKyAgaW50IGxlbiA9IFRZUEVf TEVOR1RIICh0eXBlKTsKKyAgVUxPTkdFU1QgdG1wOworCisgIC8qIEJ5IHVz aW5nIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgd2UgYXZvaWQgaGF2aW5nIHRv IGRvCisgICAgIGFueXRoaW5nIHNwZWNpYWwgZm9yIHNtYWxsIGJpZy1lbmRp YW4gdmFsdWVzLiAgKi8KKyAgcmVnY2FjaGVfY29va2VkX3JlYWRfdW5zaWdu ZWQgKHJlZ2NhY2hlLCBSRVQxX1JFR05VTSwgJnRtcCk7CisgIHN0b3JlX3Vu c2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgKGxlbiA+IDQgPyBsZW4gLSA0IDog bGVuKSwgdG1wKTsKKworICAvKiBJZ25vcmUgcmV0dXJuIHZhbHVlcyBtb3Jl IHRoYW4gOCBieXRlcyBpbiBzaXplIGJlY2F1c2UgdGhlIG1veGllCisgICAg IHJldHVybnMgYW55dGhpbmcgbW9yZSB0aGFuIDggYnl0ZXMgaW4gdGhlIHN0 YWNrLiAqLworICBpZiAobGVuID4gNCkKKyAgICB7CisgICAgICByZWdjYWNo ZV9jb29rZWRfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIFJFVDFfUkVHTlVN ICsgMSwgJnRtcCk7CisgICAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyICh2 YWxidWYgKyBsZW4gLSA0LCA0LCB0bXApOworICAgIH0KK30KKworZW51bSBy ZXR1cm5fdmFsdWVfY29udmVudGlvbgorbW94aWVfcmV0dXJuX3ZhbHVlIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKmZ1bmNfdHlw ZSwKKwkJICAgc3RydWN0IHR5cGUgKnZhbHR5cGUsIHN0cnVjdCByZWdjYWNo ZSAqcmVnY2FjaGUsCisJCSAgIGdkYl9ieXRlICpyZWFkYnVmLCBjb25zdCBn ZGJfYnl0ZSAqd3JpdGVidWYpCit7CisgIGlmIChUWVBFX0xFTkdUSCAodmFs dHlwZSkgPiA4KQorICAgIHJldHVybiBSRVRVUk5fVkFMVUVfU1RSVUNUX0NP TlZFTlRJT047CisgIGVsc2UKKyAgICB7CisgICAgICBpZiAocmVhZGJ1ZiAh PSBOVUxMKQorCW1veGllX2V4dHJhY3RfcmV0dXJuX3ZhbHVlICh2YWx0eXBl LCByZWdjYWNoZSwgcmVhZGJ1Zik7CisgICAgICBpZiAod3JpdGVidWYgIT0g TlVMTCkKKwltb3hpZV9zdG9yZV9yZXR1cm5fdmFsdWUgKHZhbHR5cGUsIHJl Z2NhY2hlLCB3cml0ZWJ1Zik7CisgICAgICByZXR1cm4gUkVUVVJOX1ZBTFVF X1JFR0lTVEVSX0NPTlZFTlRJT047CisgICAgfQorfQorCitzdGF0aWMgc3Ry dWN0IG1veGllX2ZyYW1lX2NhY2hlICoKK21veGllX2FsbG9jX2ZyYW1lX2Nh Y2hlICh2b2lkKQoreworICBzdHJ1Y3QgbW94aWVfZnJhbWVfY2FjaGUgKmNh Y2hlOworICBpbnQgaTsKKworICBjYWNoZSA9IEZSQU1FX09CU1RBQ0tfWkFM TE9DIChzdHJ1Y3QgbW94aWVfZnJhbWVfY2FjaGUpOworCisgIGNhY2hlLT5i YXNlID0gMDsKKyAgY2FjaGUtPnNhdmVkX3NwID0gMDsKKyAgY2FjaGUtPnBj ID0gMDsKKyAgY2FjaGUtPmZyYW1lc2l6ZSA9IDA7CisgIGZvciAoaSA9IDA7 IGkgPCBNT1hJRV9OVU1fUkVHUzsgKytpKQorICAgIGNhY2hlLT5zYXZlZF9y ZWdzW2ldID0gUkVHX1VOQVZBSUw7CisKKyAgcmV0dXJuIGNhY2hlOworfQor CitzdGF0aWMgc3RydWN0IG1veGllX2ZyYW1lX2NhY2hlICoKK21veGllX2Zy YW1lX2NhY2hlIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhpc19mcmFtZSwgdm9p ZCAqKnRoaXNfY2FjaGUpCit7CisgIHN0cnVjdCBtb3hpZV9mcmFtZV9jYWNo ZSAqY2FjaGU7CisgIENPUkVfQUREUiBjdXJyZW50X3BjOworICBpbnQgaTsK KworICBpZiAoKnRoaXNfY2FjaGUpCisgICAgcmV0dXJuICp0aGlzX2NhY2hl OworCisgIGNhY2hlID0gbW94aWVfYWxsb2NfZnJhbWVfY2FjaGUgKCk7Cisg ICp0aGlzX2NhY2hlID0gY2FjaGU7CisKKyAgY2FjaGUtPmJhc2UgPSBnZXRf ZnJhbWVfcmVnaXN0ZXJfdW5zaWduZWQgKHRoaXNfZnJhbWUsIE1PWElFX0ZQ X1JFR05VTSk7CisgIGlmIChjYWNoZS0+YmFzZSA9PSAwKQorICAgIHJldHVy biBjYWNoZTsKKworICBjYWNoZS0+cGMgPSBnZXRfZnJhbWVfZnVuYyAodGhp c19mcmFtZSk7CisgIGN1cnJlbnRfcGMgPSBnZXRfZnJhbWVfcGMgKHRoaXNf ZnJhbWUpOworICBpZiAoY2FjaGUtPnBjKQorICAgIG1veGllX2FuYWx5emVf cHJvbG9ndWUgKGNhY2hlLT5wYywgY3VycmVudF9wYywgY2FjaGUsIHRoaXNf ZnJhbWUpOworCisgIGNhY2hlLT5zYXZlZF9zcCA9IGNhY2hlLT5iYXNlIC0g Y2FjaGUtPmZyYW1lc2l6ZTsKKworICBmb3IgKGkgPSAwOyBpIDwgTU9YSUVf TlVNX1JFR1M7ICsraSkKKyAgICBpZiAoY2FjaGUtPnNhdmVkX3JlZ3NbaV0g IT0gUkVHX1VOQVZBSUwpCisgICAgICBjYWNoZS0+c2F2ZWRfcmVnc1tpXSA9 IGNhY2hlLT5iYXNlIC0gY2FjaGUtPnNhdmVkX3JlZ3NbaV07CisKKyAgcmV0 dXJuIGNhY2hlOworfQorCitzdGF0aWMgQ09SRV9BRERSCittb3hpZV91bndp bmRfcGMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgZnJhbWVf aW5mbyAqbmV4dF9mcmFtZSkKK3sKKyAgcmV0dXJuIGZyYW1lX3Vud2luZF9y ZWdpc3Rlcl91bnNpZ25lZCAobmV4dF9mcmFtZSwgTU9YSUVfUENfUkVHTlVN KTsKK30KKworLyogR2l2ZW4gYSBHREIgZnJhbWUsIGRldGVybWluZSB0aGUg YWRkcmVzcyBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbidzCisgICBmcmFtZS4g IFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBHREIgZnJhbWUg c3RydWN0LiAgKi8KKworc3RhdGljIHZvaWQKK21veGllX2ZyYW1lX3RoaXNf aWQgKHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lLAorCQkgICAgdm9p ZCAqKnRoaXNfcHJvbG9ndWVfY2FjaGUsIHN0cnVjdCBmcmFtZV9pZCAqdGhp c19pZCkKK3sKKyAgc3RydWN0IG1veGllX2ZyYW1lX2NhY2hlICpjYWNoZSA9 IG1veGllX2ZyYW1lX2NhY2hlICh0aGlzX2ZyYW1lLAorCQkJCQkJICAgdGhp c19wcm9sb2d1ZV9jYWNoZSk7CisKKyAgLyogVGhpcyBtYXJrcyB0aGUgb3V0 ZXJtb3N0IGZyYW1lLiAgKi8KKyAgaWYgKGNhY2hlLT5iYXNlID09IDApCisg ICAgcmV0dXJuOworCisgICp0aGlzX2lkID0gZnJhbWVfaWRfYnVpbGQgKGNh Y2hlLT5zYXZlZF9zcCwgY2FjaGUtPnBjKTsKK30KKworc3RhdGljIHN0cnVj dCB2YWx1ZSAqCittb3hpZV9mcmFtZV9wcmV2X3JlZ2lzdGVyIChzdHJ1Y3Qg ZnJhbWVfaW5mbyAqdGhpc19mcmFtZSwKKwkJCSAgdm9pZCAqKnRoaXNfcHJv bG9ndWVfY2FjaGUsIGludCByZWdudW0pCit7CisgIHN0cnVjdCBtb3hpZV9m cmFtZV9jYWNoZSAqY2FjaGUgPSBtb3hpZV9mcmFtZV9jYWNoZSAodGhpc19m cmFtZSwKKwkJCQkJCSAgIHRoaXNfcHJvbG9ndWVfY2FjaGUpOworICBnZGJf YXNzZXJ0IChyZWdudW0gPj0gMCk7CisKKyAgaWYgKHJlZ251bSA9PSBNT1hJ RV9TUF9SRUdOVU0gJiYgY2FjaGUtPnNhdmVkX3NwKQorICAgIHJldHVybiBm cmFtZV91bndpbmRfZ290X2NvbnN0YW50ICh0aGlzX2ZyYW1lLCByZWdudW0s IGNhY2hlLT5zYXZlZF9zcCk7CisKKyAgaWYgKHJlZ251bSA8IE1PWElFX05V TV9SRUdTICYmIGNhY2hlLT5zYXZlZF9yZWdzW3JlZ251bV0gIT0gUkVHX1VO QVZBSUwpCisgICAgcmV0dXJuIGZyYW1lX3Vud2luZF9nb3RfbWVtb3J5ICh0 aGlzX2ZyYW1lLCByZWdudW0sCisJCQkJICAgIGNhY2hlLT5zYXZlZF9yZWdz W3JlZ251bV0pOworCisgIHJldHVybiBmcmFtZV91bndpbmRfZ290X3JlZ2lz dGVyICh0aGlzX2ZyYW1lLCByZWdudW0sIHJlZ251bSk7Cit9CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5kIG1veGllX2ZyYW1lX3Vud2lu ZCA9IHsKKyAgTk9STUFMX0ZSQU1FLAorICBtb3hpZV9mcmFtZV90aGlzX2lk LAorICBtb3hpZV9mcmFtZV9wcmV2X3JlZ2lzdGVyLAorICBOVUxMLAorICBk ZWZhdWx0X2ZyYW1lX3NuaWZmZXIKK307CisKK3N0YXRpYyBDT1JFX0FERFIK K21veGllX2ZyYW1lX2Jhc2VfYWRkcmVzcyAoc3RydWN0IGZyYW1lX2luZm8g KnRoaXNfZnJhbWUsIHZvaWQgKip0aGlzX2NhY2hlKQoreworICBzdHJ1Y3Qg bW94aWVfZnJhbWVfY2FjaGUgKmNhY2hlID0gbW94aWVfZnJhbWVfY2FjaGUg KHRoaXNfZnJhbWUsCisJCQkJCQkgICB0aGlzX2NhY2hlKTsKKyAgcmV0dXJu IGNhY2hlLT5iYXNlOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZyYW1l X2Jhc2UgbW94aWVfZnJhbWVfYmFzZSA9IHsKKyAgJm1veGllX2ZyYW1lX3Vu d2luZCwKKyAgbW94aWVfZnJhbWVfYmFzZV9hZGRyZXNzLAorICBtb3hpZV9m cmFtZV9iYXNlX2FkZHJlc3MsCisgIG1veGllX2ZyYW1lX2Jhc2VfYWRkcmVz cworfTsKKworLyogQXNzdW1pbmcgVEhJU19GUkFNRSBpcyBhIGR1bW15LCBy ZXR1cm4gdGhlIGZyYW1lIElEIG9mIHRoYXQgZHVtbXkKKyAgIGZyYW1lLiAg VGhlIGZyYW1lIElEJ3MgYmFzZSBuZWVkcyB0byBtYXRjaCB0aGUgVE9TIHZh bHVlIHNhdmVkIGJ5CisgICBzYXZlX2R1bW15X2ZyYW1lX3RvcygpLCBhbmQg dGhlIFBDIG1hdGNoIHRoZSBkdW1teSBmcmFtZSdzIGJyZWFrcG9pbnQuICAq LworCitzdGF0aWMgc3RydWN0IGZyYW1lX2lkCittb3hpZV9kdW1teV9pZCAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCBmcmFtZV9pbmZvICp0 aGlzX2ZyYW1lKQoreworICBDT1JFX0FERFIgc3AgPSBnZXRfZnJhbWVfcmVn aXN0ZXJfdW5zaWduZWQgKHRoaXNfZnJhbWUsIE1PWElFX1NQX1JFR05VTSk7 CisgIHJldHVybiBmcmFtZV9pZF9idWlsZCAoc3AsIGdldF9mcmFtZV9wYyAo dGhpc19mcmFtZSkpOworfQorCisKK3N0YXRpYyBnZGJhcmNoX2luaXRfZnR5 cGUgbW94aWVfZ2RiYXJjaF9pbml0OworCitzdGF0aWMgc3RydWN0IGdkYmFy Y2ggKgorbW94aWVfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZv IGluZm8sIHN0cnVjdCBnZGJhcmNoX2xpc3QgKmFyY2hlcykKK3sKKyAgc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2g7CisgIHN0cnVjdCBnZGJhcmNoX3RkZXAg KnRkZXA7CisKKyAgLyogSWYgdGhlcmUgaXMgYWxyZWFkeSBhIGNhbmRpZGF0 ZSwgdXNlIGl0LiAgKi8KKyAgYXJjaGVzID0gZ2RiYXJjaF9saXN0X2xvb2t1 cF9ieV9pbmZvIChhcmNoZXMsICZpbmZvKTsKKyAgaWYgKGFyY2hlcyAhPSBO VUxMKQorICAgIHJldHVybiBhcmNoZXMtPmdkYmFyY2g7CisKKyAgLyogQWxs b2NhdGUgc3BhY2UgZm9yIHRoZSBuZXcgYXJjaGl0ZWN0dXJlLiAgKi8KKyAg dGRlcCA9IFhNQUxMT0MgKHN0cnVjdCBnZGJhcmNoX3RkZXApOworICBnZGJh cmNoID0gZ2RiYXJjaF9hbGxvYyAoJmluZm8sIHRkZXApOworCisgIHNldF9n ZGJhcmNoX3JlYWRfcGMgKGdkYmFyY2gsIG1veGllX3JlYWRfcGMpOworICBz ZXRfZ2RiYXJjaF93cml0ZV9wYyAoZ2RiYXJjaCwgbW94aWVfd3JpdGVfcGMp OworICBzZXRfZ2RiYXJjaF91bndpbmRfc3AgKGdkYmFyY2gsIG1veGllX3Vu d2luZF9zcCk7CisKKyAgc2V0X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gs IE1PWElFX05VTV9SRUdTKTsKKyAgc2V0X2dkYmFyY2hfc3BfcmVnbnVtIChn ZGJhcmNoLCBNT1hJRV9TUF9SRUdOVU0pOworICBzZXRfZ2RiYXJjaF9yZWdp c3Rlcl9uYW1lIChnZGJhcmNoLCBtb3hpZV9yZWdpc3Rlcl9uYW1lKTsKKyAg c2V0X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZSAoZ2RiYXJjaCwgbW94aWVfcmVn aXN0ZXJfdHlwZSk7CisKKyAgc2V0X2dkYmFyY2hfcmV0dXJuX3ZhbHVlIChn ZGJhcmNoLCBtb3hpZV9yZXR1cm5fdmFsdWUpOworCisgIHNldF9nZGJhcmNo X3NraXBfcHJvbG9ndWUgKGdkYmFyY2gsIG1veGllX3NraXBfcHJvbG9ndWUp OworICBzZXRfZ2RiYXJjaF9pbm5lcl90aGFuIChnZGJhcmNoLCBjb3JlX2Fk ZHJfbGVzc3RoYW4pOworICBzZXRfZ2RiYXJjaF9icmVha3BvaW50X2Zyb21f cGMgKGdkYmFyY2gsIG1veGllX2JyZWFrcG9pbnRfZnJvbV9wYyk7CisgIHNl dF9nZGJhcmNoX2ZyYW1lX2FsaWduIChnZGJhcmNoLCBtb3hpZV9mcmFtZV9h bGlnbik7CisKKyAgZnJhbWVfYmFzZV9zZXRfZGVmYXVsdCAoZ2RiYXJjaCwg Jm1veGllX2ZyYW1lX2Jhc2UpOworCisgIC8qIE1ldGhvZHMgZm9yIHNhdmlu ZyAvIGV4dHJhY3RpbmcgYSBkdW1teSBmcmFtZSdzIElELiAgVGhlIElEJ3MK KyAgICAgc3RhY2sgYWRkcmVzcyBtdXN0IG1hdGNoIHRoZSBTUCB2YWx1ZSBy ZXR1cm5lZCBieQorICAgICBQVVNIX0RVTU1ZX0NBTEwsIGFuZCBzYXZlZCBi eSBnZW5lcmljX3NhdmVfZHVtbXlfZnJhbWVfdG9zLiAgKi8KKyAgc2V0X2dk YmFyY2hfZHVtbXlfaWQgKGdkYmFyY2gsIG1veGllX2R1bW15X2lkKTsKKwor ICAvKiBSZXR1cm4gdGhlIHVud291bmQgUEMgdmFsdWUuICAqLworICBzZXRf Z2RiYXJjaF91bndpbmRfcGMgKGdkYmFyY2gsIG1veGllX3Vud2luZF9wYyk7 CisKKyAgc2V0X2dkYmFyY2hfcHJpbnRfaW5zbiAoZ2RiYXJjaCwgcHJpbnRf aW5zbl9tb3hpZSk7CisKKyAgLyogSG9vayBpbiBBQkktc3BlY2lmaWMgb3Zl cnJpZGVzLCBpZiB0aGV5IGhhdmUgYmVlbiByZWdpc3RlcmVkLiAgKi8KKyAg Z2RiYXJjaF9pbml0X29zYWJpIChpbmZvLCBnZGJhcmNoKTsKKworICAvKiBI b29rIGluIHRoZSBkZWZhdWx0IHVud2luZGVycy4gICovCisgIGZyYW1lX3Vu d2luZF9hcHBlbmRfdW53aW5kZXIgKGdkYmFyY2gsICZtb3hpZV9mcmFtZV91 bndpbmQpOworCisgIC8qIFN1cHBvcnQgc2ltcGxlIG92ZXJsYXkgbWFuYWdl ci4gICovCisgIHNldF9nZGJhcmNoX292ZXJsYXlfdXBkYXRlIChnZGJhcmNo LCBzaW1wbGVfb3ZlcmxheV91cGRhdGUpOworCisgIHJldHVybiBnZGJhcmNo OworfQorCit2b2lkCitfaW5pdGlhbGl6ZV9tb3hpZV90ZGVwICh2b2lkKQor eworICByZWdpc3Rlcl9nZGJhcmNoX2luaXQgKGJmZF9hcmNoX21veGllLCBt b3hpZV9nZGJhcmNoX2luaXQpOworfQpkaWZmIC1ydU4gdXNyYy9nZGIvbW94 aWUtdGRlcC5oIHNyYy9nZGIvbW94aWUtdGRlcC5oCi0tLSB1c3JjL2dkYi9t b3hpZS10ZGVwLmgJMTk2OS0xMi0zMSAxOTowMDowMC4wMDAwMDAwMDAgLTA1 MDAKKysrIHNyYy9nZGIvbW94aWUtdGRlcC5oCTIwMDktMDQtMjMgMDc6MTg6 MTguMDAwMDAwMDAwIC0wNDAwCkBAIC0wLDAgKzEsNDUgQEAKKy8qIFRhcmdl dC1kZXBlbmRlbnQgY29kZSBmb3IgTW94aWUKKyAKKyAgIENvcHlyaWdodCAo QykgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLworCisjaWZuZGVmIE1PWElFX1RERVBfSAorI2RlZmluZSBN T1hJRV9UREVQX0gKKworc3RydWN0IGdkYmFyY2hfdGRlcAoreworICAvKiBn ZGJhcmNoIHRhcmdldCBkZXBlbmRlbnQgZGF0YSBoZXJlLiBDdXJyZW50bHkg dW51c2VkIGZvciBNT1hJRS4gKi8KK307CisKKy8qIG1veGllIHJlZ2lzdGVy IG5hbWVzLiAqLworCitlbnVtIG1veGllX3JlZ251bQoreworICBNT1hJRV9G UF9SRUdOVU0gPSAwLAorICBNT1hJRV9TUF9SRUdOVU0gPSAxLAorICBSMF9S RUdOVU0gPSAyLAorICBSMV9SRUdOVU0gPSAzLAorICBNT1hJRV9QQ19SRUdO VU0gPSAxNiwKKyAgTU9YSUVfQ0NfUkVHTlVNID0gMTcsCisgIFJFVDFfUkVH TlVNID0gUjBfUkVHTlVNLAorICBBUkcxX1JFR05VTSA9IFIwX1JFR05VTSwK KyAgQVJHTl9SRUdOVU0gPSBSMV9SRUdOVU0sCit9OworCisjZGVmaW5lIE1P WElFX05VTV9SRUdTIDE4CisKKyNlbmRpZiAvKiBtb3hpZS10ZGVwLmggKi8K --=_1c90c58fc0fae1f4bc58c4ec8c0961f8--