From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15501 invoked by alias); 1 May 2009 00:20:04 -0000 Received: (qmail 15419 invoked by uid 22791); 1 May 2009 00:20:01 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_102,J_CHICKENPOX_37,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.33.17) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 01 May 2009 00:19:52 +0000 Received: from spaceape24.eur.corp.google.com (spaceape24.eur.corp.google.com [172.28.16.76]) by smtp-out.google.com with ESMTP id n410JmGo032681 for ; Fri, 1 May 2009 01:19:48 +0100 Received: from qyk29 (qyk29.prod.google.com [10.241.83.157]) by spaceape24.eur.corp.google.com with ESMTP id n410IYN7029829 for ; Thu, 30 Apr 2009 17:19:43 -0700 Received: by qyk29 with SMTP id 29so4078768qyk.15 for ; Thu, 30 Apr 2009 17:19:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.97.202 with SMTP id m10mr1921021qcn.77.1241137183459; Thu, 30 Apr 2009 17:19:43 -0700 (PDT) In-Reply-To: <8ac60eac0904301618j61051e9du38b34afbc7ed64a3@mail.gmail.com> References: <8ac60eac0904201019g7ba8056bx5e84e6bfdf5935d8@mail.gmail.com> <8ac60eac0904221810x24763ecaj4a888927b766e7f7@mail.gmail.com> <8ac60eac0904230001w1afd9179wcb76e1cfd7f3f386@mail.gmail.com> <8ac60eac0904291330m78b43c47p1cc9b8379e31e923@mail.gmail.com> <20090430185551.GB10734@adacore.com> <8ac60eac0904301211x245c8b7cp546042d832eb1fe@mail.gmail.com> <8ac60eac0904301618j61051e9du38b34afbc7ed64a3@mail.gmail.com> Date: Fri, 01 May 2009 00:20:00 -0000 Message-ID: <8ac60eac0904301719w33175de2w8d1d0fd80bf0feb4@mail.gmail.com> Subject: Re: [patch][rfc] Allow GDB to search for the right libthread_db.so.1 From: Paul Pluzhnikov To: Joel Brobecker Cc: Hui Zhu , tromey@redhat.com, Thiago Jung Bauermann , gdb-patches ml , Eli Zaretskii Content-Type: multipart/mixed; boundary=001636832072f00ab00468cec4f6 X-System-Of-Record: true 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-05/txt/msg00001.txt.bz2 --001636832072f00ab00468cec4f6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 258 On Thu, Apr 30, 2009 at 4:18 PM, Paul Pluzhnikov wrote: > Attached. Sorry, missed "space before parenth": < + return libpthread_name_p(so->so_name); > + return libpthread_name_p (so->so_name); Fix attached. -- Paul Pluzhnikov --001636832072f00ab00468cec4f6 Content-Type: text/plain; charset=US-ASCII; name="gdb-thread-db.20090430-1.txt" Content-Disposition: attachment; filename="gdb-thread-db.20090430-1.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fu6507st1 Content-length: 29760 SW5kZXg6IE5FV1MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2N2cy9zcmMvc3JjL2dkYi9ORVdTLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjMwOApkaWZmIC11IC1wIC11IC1yMS4zMDggTkVXUwotLS0gTkVXUwkyMCBB cHIgMjAwOSAyMToxMTowNSAtMDAwMAkxLjMwOAorKysgTkVXUwkxIE1heSAy MDA5IDAwOjE0OjU4IC0wMDAwCkBAIC0yODgsNiArMjg4LDExIEBAIHNob3cg dGNwIGNvbm5lY3QtdGltZW91dAogICB3aXRoIGEgc3BlY2lmaWVkIHRpbWVv dXQgcGVyaW9kOyB0aGlzIGlzIHVzZWZ1bCBpZiB0aGUgc3R1YiBpcyBsYXVu Y2hlZAogICBpbiBwYXJhbGxlbCB3aXRoIEdEQiBidXQgbWF5IG5vdCBiZSBy ZWFkeSB0byBhY2NlcHQgY29ubmVjdGlvbnMgaW1tZWRpYXRlbHkuCiAKK3Nl dCBsaWJ0aHJlYWQtZGItc2VhcmNoLXBhdGgKK3Nob3cgbGlidGhyZWFkLWRi LXNlYXJjaC1wYXRoCisgIENvbnRyb2wgbGlzdCBvZiBkaXJlY3RvcmllcyB3 aGljaCBHREIgd2lsbCBzZWFyY2ggZm9yIGFwcHJvcHJpYXRlCisgIGxpYnRo cmVhZF9kYi4KKwogKiBOZXcgbmF0aXZlIGNvbmZpZ3VyYXRpb25zCiAKIHg4 Ni94ODZfNjQgRGFyd2luCQlpWzM0NTY3XTg2LSotZGFyd2luKgpJbmRleDog Z2RiX3RocmVhZF9kYi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IC9jdnMvc3JjL3NyYy9nZGIvZ2RiX3RocmVhZF9kYi5oLHYKcmV0cmll dmluZyByZXZpc2lvbiAxLjEyCmRpZmYgLXUgLXAgLXUgLXIxLjEyIGdkYl90 aHJlYWRfZGIuaAotLS0gZ2RiX3RocmVhZF9kYi5oCTE4IE1hciAyMDA5IDA4 OjUxOjExIC0wMDAwCTEuMTIKKysrIGdkYl90aHJlYWRfZGIuaAkxIE1heSAy MDA5IDAwOjE0OjU4IC0wMDAwCkBAIC0xLDUgKzEsMTQgQEAKICNpZmRlZiBI QVZFX1RIUkVBRF9EQl9ICiAjaW5jbHVkZSA8dGhyZWFkX2RiLmg+CisKKyNp Zm5kZWYgTElCVEhSRUFEX0RCX1NPCisjZGVmaW5lIExJQlRIUkVBRF9EQl9T TyAibGlidGhyZWFkX2RiLnNvLjEiCisjZW5kaWYKKworI2lmbmRlZiBMSUJU SFJFQURfREJfU0VBUkNIX1BBVEgKKyNkZWZpbmUgTElCVEhSRUFEX0RCX1NF QVJDSF9QQVRIICIiCisjZW5kaWYKKwogI2Vsc2UKIAogLyogQ29weXJpZ2h0 IChDKSAxOTk5LCAyMDAwLCAyMDA3LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgpJbmRleDogbGludXgtdGhyZWFkLWRiLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3Jj L2dkYi9saW51eC10aHJlYWQtZGIuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24g MS41NApkaWZmIC11IC1wIC11IC1yMS41NCBsaW51eC10aHJlYWQtZGIuYwot LS0gbGludXgtdGhyZWFkLWRiLmMJMjcgRmViIDIwMDkgMjA6MzQ6NDEgLTAw MDAJMS41NAorKysgbGludXgtdGhyZWFkLWRiLmMJMSBNYXkgMjAwOSAwMDox NDo1OCAtMDAwMApAQCAtMjYsMTMgKzI2LDE2IEBACiAjaW5jbHVkZSAiZ2Ri X3RocmVhZF9kYi5oIgogCiAjaW5jbHVkZSAiYmZkLmgiCisjaW5jbHVkZSAi Y29tbWFuZC5oIgogI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKKyNpbmNsdWRl ICJnZGJjbWQuaCIKICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICNpbmNsdWRl ICJpbmZlcmlvci5oIgogI2luY2x1ZGUgInN5bWZpbGUuaCIKICNpbmNsdWRl ICJvYmpmaWxlcy5oIgogI2luY2x1ZGUgInRhcmdldC5oIgogI2luY2x1ZGUg InJlZ2NhY2hlLmgiCisjaW5jbHVkZSAic29saWIuaCIKICNpbmNsdWRlICJz b2xpYi1zdnI0LmgiCiAjaW5jbHVkZSAiZ2RiY29yZS5oIgogI2luY2x1ZGUg Im9ic2VydmVyLmgiCkBAIC00NCwxMCArNDcsNiBAQAogI2luY2x1ZGUgPGdu dS9saWJjLXZlcnNpb24uaD4KICNlbmRpZgogCi0jaWZuZGVmIExJQlRIUkVB RF9EQl9TTwotI2RlZmluZSBMSUJUSFJFQURfREJfU08gImxpYnRocmVhZF9k Yi5zby4xIgotI2VuZGlmCi0KIC8qIEdOVS9MaW51eCBsaWJ0aHJlYWRfZGIg c3VwcG9ydC4KIAogICAgbGlidGhyZWFkX2RiIGlzIGEgbGlicmFyeSwgcHJv dmlkZWQgYWxvbmcgd2l0aCBsaWJwdGhyZWFkLnNvLCB3aGljaApAQCAtNzQs MTQgKzczLDE3IEBACiAgICBvZiB0aGUgcHRpZF90IHByZXZlbnRzIHRocmVh ZCBJRHMgY2hhbmdpbmcgd2hlbiBsaWJwdGhyZWFkIGlzCiAgICBsb2FkZWQg b3IgdW5sb2FkZWQuICAqLwogCitzdGF0aWMgY2hhciAqbGlidGhyZWFkX2Ri X3NlYXJjaF9wYXRoOworCiAvKiBJZiB3ZSdyZSBydW5uaW5nIG9uIEdOVS9M aW51eCwgd2UgbXVzdCBleHBsaWNpdGx5IGF0dGFjaCB0byBhbnkgbmV3CiAg ICB0aHJlYWRzLiAgKi8KIAogLyogVGhpcyBtb2R1bGUncyB0YXJnZXQgdmVj dG9yLiAgKi8KIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyB0aHJlYWRfZGJf b3BzOwogCi0vKiBOb24temVybyBpZiB3ZSdyZSB1c2luZyB0aGlzIG1vZHVs ZSdzIHRhcmdldCB2ZWN0b3IuICAqLwotc3RhdGljIGludCB1c2luZ190aHJl YWRfZGI7CisvKiBIYW5kbGUgZnJvbSBkbG9wZW4gZm9yIGxpYnRocmVhZF9k Yi5zby4gIE5vdCBOVUxMIGlmIHdlJ3JlIHVzaW5nIHRoaXMKKyAgIG1vZHVs ZSdzIHRhcmdldCB2ZWN0b3IuICAqLworc3RhdGljIHZvaWQgKnRocmVhZF9k Yl9oYW5kbGU7CiAKIC8qIE5vbi16ZXJvIGlmIHdlIGhhdmUgZGV0ZXJtaW5l ZCB0aGUgc2lnbmFscyB1c2VkIGJ5IHRoZSB0aHJlYWRzCiAgICBsaWJyYXJ5 LiAgKi8KQEAgLTM0NCw3ICszNDYsNyBAQCB0aHJlYWRfZGJfYXR0YWNoX2x3 cCAocHRpZF90IHB0aWQpCiAgIHRkX3RocmluZm9fdCB0aTsKICAgdGRfZXJy X2UgZXJyOwogCi0gIGlmICghdXNpbmdfdGhyZWFkX2RiKQorICBpZiAodGhy ZWFkX2RiX2hhbmRsZSA9PSBOVUxMKQogICAgIHJldHVybiAwOwogCiAgIC8q IFRoaXMgcHRpZCBjb21lcyBmcm9tIGxpbnV4LW5hdC5jLCB3aGljaCBzaG91 bGQgYWx3YXlzIGZpbGwgaW4gdGhlCkBAIC0zODUsNzEgKzM4Nyw2IEBAIHZl cmJvc2VfZGxzeW0gKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAKICAgcmV0 dXJuIHN5bTsKIH0KIAotc3RhdGljIGludAotdGhyZWFkX2RiX2xvYWQgKHZv aWQpCi17Ci0gIHZvaWQgKmhhbmRsZTsKLSAgdGRfZXJyX2UgZXJyOwotCi0g IGhhbmRsZSA9IGRsb3BlbiAoTElCVEhSRUFEX0RCX1NPLCBSVExEX05PVyk7 Ci0gIGlmIChoYW5kbGUgPT0gTlVMTCkKLSAgICB7Ci0gICAgICBmcHJpbnRm X2ZpbHRlcmVkIChnZGJfc3RkZXJyLCAiXG5cbmRsb3BlbiBmYWlsZWQgb24g JyVzJyAtICVzXG4iLAotCQkJTElCVEhSRUFEX0RCX1NPLCBkbGVycm9yICgp KTsKLSAgICAgIGZwcmludGZfZmlsdGVyZWQgKGdkYl9zdGRlcnIsCi0JCQki R0RCIHdpbGwgbm90IGJlIGFibGUgdG8gZGVidWcgcHRocmVhZHMuXG5cbiIp OwotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gIC8qIEluaXRpYWxpemUg cG9pbnRlcnMgdG8gdGhlIGR5bmFtaWMgbGlicmFyeSBmdW5jdGlvbnMgd2Ug d2lsbCB1c2UuCi0gICAgIEVzc2VudGlhbCBmdW5jdGlvbnMgZmlyc3QuICAq LwotCi0gIHRkX2luaXRfcCA9IHZlcmJvc2VfZGxzeW0gKGhhbmRsZSwgInRk X2luaXQiKTsKLSAgaWYgKHRkX2luaXRfcCA9PSBOVUxMKQotICAgIHJldHVy biAwOwotCi0gIHRkX3RhX25ld19wID0gdmVyYm9zZV9kbHN5bSAoaGFuZGxl LCAidGRfdGFfbmV3Iik7Ci0gIGlmICh0ZF90YV9uZXdfcCA9PSBOVUxMKQot ICAgIHJldHVybiAwOwotCi0gIHRkX3RhX21hcF9pZDJ0aHJfcCA9IHZlcmJv c2VfZGxzeW0gKGhhbmRsZSwgInRkX3RhX21hcF9pZDJ0aHIiKTsKLSAgaWYg KHRkX3RhX21hcF9pZDJ0aHJfcCA9PSBOVUxMKQotICAgIHJldHVybiAwOwot Ci0gIHRkX3RhX21hcF9sd3AydGhyX3AgPSB2ZXJib3NlX2Rsc3ltIChoYW5k bGUsICJ0ZF90YV9tYXBfbHdwMnRociIpOwotICBpZiAodGRfdGFfbWFwX2x3 cDJ0aHJfcCA9PSBOVUxMKQotICAgIHJldHVybiAwOwotCi0gIHRkX3RhX3Ro cl9pdGVyX3AgPSB2ZXJib3NlX2Rsc3ltIChoYW5kbGUsICJ0ZF90YV90aHJf aXRlciIpOwotICBpZiAodGRfdGFfdGhyX2l0ZXJfcCA9PSBOVUxMKQotICAg IHJldHVybiAwOwotCi0gIHRkX3Rocl92YWxpZGF0ZV9wID0gdmVyYm9zZV9k bHN5bSAoaGFuZGxlLCAidGRfdGhyX3ZhbGlkYXRlIik7Ci0gIGlmICh0ZF90 aHJfdmFsaWRhdGVfcCA9PSBOVUxMKQotICAgIHJldHVybiAwOwotCi0gIHRk X3Rocl9nZXRfaW5mb19wID0gdmVyYm9zZV9kbHN5bSAoaGFuZGxlLCAidGRf dGhyX2dldF9pbmZvIik7Ci0gIGlmICh0ZF90aHJfZ2V0X2luZm9fcCA9PSBO VUxMKQotICAgIHJldHVybiAwOwotCi0gIC8qIEluaXRpYWxpemUgdGhlIGxp YnJhcnkuICAqLwotICBlcnIgPSB0ZF9pbml0X3AgKCk7Ci0gIGlmIChlcnIg IT0gVERfT0spCi0gICAgewotICAgICAgd2FybmluZyAoXygiQ2Fubm90IGlu aXRpYWxpemUgbGlidGhyZWFkX2RiOiAlcyIpLCB0aHJlYWRfZGJfZXJyX3N0 ciAoZXJyKSk7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgLyogVGhl c2UgYXJlIG5vdCBlc3NlbnRpYWwuICAqLwotICB0ZF90YV9ldmVudF9hZGRy X3AgPSBkbHN5bSAoaGFuZGxlLCAidGRfdGFfZXZlbnRfYWRkciIpOwotICB0 ZF90YV9zZXRfZXZlbnRfcCA9IGRsc3ltIChoYW5kbGUsICJ0ZF90YV9zZXRf ZXZlbnQiKTsKLSAgdGRfdGFfZXZlbnRfZ2V0bXNnX3AgPSBkbHN5bSAoaGFu ZGxlLCAidGRfdGFfZXZlbnRfZ2V0bXNnIik7Ci0gIHRkX3Rocl9ldmVudF9l bmFibGVfcCA9IGRsc3ltIChoYW5kbGUsICJ0ZF90aHJfZXZlbnRfZW5hYmxl Iik7Ci0gIHRkX3Rocl90bHNfZ2V0X2FkZHJfcCA9IGRsc3ltIChoYW5kbGUs ICJ0ZF90aHJfdGxzX2dldF9hZGRyIik7Ci0KLSAgcmV0dXJuIDE7Ci19Ci0K IHN0YXRpYyB0ZF9lcnJfZQogZW5hYmxlX3RocmVhZF9ldmVudCAodGRfdGhy YWdlbnRfdCAqdGhyZWFkX2FnZW50LCBpbnQgZXZlbnQsIENPUkVfQUREUiAq YnApCiB7CkBAIC01NDEsNiArNDc4LDI3OCBAQCBlbmFibGVfdGhyZWFkX2V2 ZW50X3JlcG9ydGluZyAodm9pZCkKICAgICB9CiB9CiAKKy8qIEF0dGVtcHQg dG8gaW5pdGlhbGl6ZSBkbG9wZW4oKWVkIGxpYnRocmVhZF9kYiwgZGVzY3Jp YmVkIGJ5IEhBTkRMRS4KKyAgIFJldHVybiAxIG9uIHN1Y2Nlc3MuCisgICBG YWlsdXJlIGNvdWxkIGhhcHBlbiBpZiBsaWJ0aHJlYWRfZGIgZG9lcyBub3Qg aGF2ZSBzeW1ib2xzIHdlIGV4cGVjdCwKKyAgIG9yIHdoZW4gaXQgcmVmdXNl cyB0byB3b3JrIHdpdGggdGhlIGN1cnJlbnQgaW5mZXJpb3IgKGUuZy4gZHVl IHRvCisgICB2ZXJzaW9uIG1pc21hdGNoIGJldHdlZW4gbGlidGhyZWFkX2Ri IGFuZCBsaWJwdGhyZWFkKS4gICovCisKK3N0YXRpYyBpbnQKK3RyeV90aHJl YWRfZGJfbG9hZF8xICh2b2lkICpoYW5kbGUpCit7CisgIHRkX2Vycl9lIGVy cjsKKworICAvKiBJbml0aWFsaXplIHBvaW50ZXJzIHRvIHRoZSBkeW5hbWlj IGxpYnJhcnkgZnVuY3Rpb25zIHdlIHdpbGwgdXNlLgorICAgICBFc3NlbnRp YWwgZnVuY3Rpb25zIGZpcnN0LiAgKi8KKworICB0ZF9pbml0X3AgPSB2ZXJi b3NlX2Rsc3ltIChoYW5kbGUsICJ0ZF9pbml0Iik7CisgIGlmICh0ZF9pbml0 X3AgPT0gTlVMTCkKKyAgICByZXR1cm4gMDsKKworICBlcnIgPSB0ZF9pbml0 X3AgKCk7CisgIGlmIChlcnIgIT0gVERfT0spCisgICAgeworICAgICAgd2Fy bmluZyAoXygiQ2Fubm90IGluaXRpYWxpemUgbGlidGhyZWFkX2RiOiAlcyIp LCB0aHJlYWRfZGJfZXJyX3N0ciAoZXJyKSk7CisgICAgICByZXR1cm4gMDsK KyAgICB9CisKKyAgdGRfdGFfbmV3X3AgPSB2ZXJib3NlX2Rsc3ltIChoYW5k bGUsICJ0ZF90YV9uZXciKTsKKyAgaWYgKHRkX3RhX25ld19wID09IE5VTEwp CisgICAgcmV0dXJuIDA7CisKKyAgLyogSW5pdGlhbGl6ZSB0aGUgc3RydWN0 dXJlIHRoYXQgaWRlbnRpZmllcyB0aGUgY2hpbGQgcHJvY2Vzcy4gICovCisg IHByb2NfaGFuZGxlLnB0aWQgPSBpbmZlcmlvcl9wdGlkOworCisgIC8qIE5v dyBhdHRlbXB0IHRvIG9wZW4gYSBjb25uZWN0aW9uIHRvIHRoZSB0aHJlYWQg bGlicmFyeS4gICovCisgIGVyciA9IHRkX3RhX25ld19wICgmcHJvY19oYW5k bGUsICZ0aHJlYWRfYWdlbnQpOworICBpZiAoZXJyICE9IFREX09LKQorICAg IHsKKyAgICAgIHRkX3RhX25ld19wID0gTlVMTDsKKyAgICAgIGlmIChpbmZv X3ZlcmJvc2UpCisJcHJpbnRmX3VuZmlsdGVyZWQgKF8oInRkX3RhX25ldyBm YWlsZWQ6ICVzXG4iKSwKKwkJCSAgIHRocmVhZF9kYl9lcnJfc3RyIChlcnIp KTsKKyAgICAgIGVsc2UKKyAgICAgICAgc3dpdGNoIChlcnIpCisgICAgICAg ICAgeworICAgICAgICAgICAgY2FzZSBURF9OT0xJQlRIUkVBRDoKKyNpZmRl ZiBUSFJFQURfREJfSEFTX1REX1ZFUlNJT04KKyAgICAgICAgICAgIGNhc2Ug VERfVkVSU0lPTjoKKyNlbmRpZgorICAgICAgICAgICAgICAvKiBUaGUgZXJy b3JzIGFib3ZlIGFyZSBub3QgdW5leHBlY3RlZCBhbmQgc2lsZW50bHkgaWdu b3JlZDoKKyAgICAgICAgICAgICAgICAgdGhleSBqdXN0IG1lYW4gd2UgaGF2 ZW4ndCBmb3VuZCBjb3JyZWN0IHZlcnNpb24gb2YKKyAgICAgICAgICAgICAg ICAgbGlidGhyZWFkX2RiIHlldC4gICovCisgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgd2Fybmlu ZyAoXygidGRfdGFfbmV3IGZhaWxlZDogJXMiKSwgdGhyZWFkX2RiX2Vycl9z dHIgKGVycikpOworICAgICAgICAgIH0KKyAgICAgIHJldHVybiAwOworICAg IH0KKworICB0ZF90YV9tYXBfaWQydGhyX3AgPSB2ZXJib3NlX2Rsc3ltICho YW5kbGUsICJ0ZF90YV9tYXBfaWQydGhyIik7CisgIGlmICh0ZF90YV9tYXBf aWQydGhyX3AgPT0gTlVMTCkKKyAgICByZXR1cm4gMDsKKworICB0ZF90YV9t YXBfbHdwMnRocl9wID0gdmVyYm9zZV9kbHN5bSAoaGFuZGxlLCAidGRfdGFf bWFwX2x3cDJ0aHIiKTsKKyAgaWYgKHRkX3RhX21hcF9sd3AydGhyX3AgPT0g TlVMTCkKKyAgICByZXR1cm4gMDsKKworICB0ZF90YV90aHJfaXRlcl9wID0g dmVyYm9zZV9kbHN5bSAoaGFuZGxlLCAidGRfdGFfdGhyX2l0ZXIiKTsKKyAg aWYgKHRkX3RhX3Rocl9pdGVyX3AgPT0gTlVMTCkKKyAgICByZXR1cm4gMDsK KworICB0ZF90aHJfdmFsaWRhdGVfcCA9IHZlcmJvc2VfZGxzeW0gKGhhbmRs ZSwgInRkX3Rocl92YWxpZGF0ZSIpOworICBpZiAodGRfdGhyX3ZhbGlkYXRl X3AgPT0gTlVMTCkKKyAgICByZXR1cm4gMDsKKworICB0ZF90aHJfZ2V0X2lu Zm9fcCA9IHZlcmJvc2VfZGxzeW0gKGhhbmRsZSwgInRkX3Rocl9nZXRfaW5m byIpOworICBpZiAodGRfdGhyX2dldF9pbmZvX3AgPT0gTlVMTCkKKyAgICBy ZXR1cm4gMDsKKworICAvKiBUaGVzZSBhcmUgbm90IGVzc2VudGlhbC4gICov CisgIHRkX3RhX2V2ZW50X2FkZHJfcCA9IGRsc3ltIChoYW5kbGUsICJ0ZF90 YV9ldmVudF9hZGRyIik7CisgIHRkX3RhX3NldF9ldmVudF9wID0gZGxzeW0g KGhhbmRsZSwgInRkX3RhX3NldF9ldmVudCIpOworICB0ZF90YV9ldmVudF9n ZXRtc2dfcCA9IGRsc3ltIChoYW5kbGUsICJ0ZF90YV9ldmVudF9nZXRtc2ci KTsKKyAgdGRfdGhyX2V2ZW50X2VuYWJsZV9wID0gZGxzeW0gKGhhbmRsZSwg InRkX3Rocl9ldmVudF9lbmFibGUiKTsKKyAgdGRfdGhyX3Rsc19nZXRfYWRk cl9wID0gZGxzeW0gKGhhbmRsZSwgInRkX3Rocl90bHNfZ2V0X2FkZHIiKTsK KworICBwcmludGZfdW5maWx0ZXJlZCAoXygiW1RocmVhZCBkZWJ1Z2dpbmcg dXNpbmcgbGlidGhyZWFkX2RiIGVuYWJsZWRdXG4iKSk7CisKKyAgLyogVGhl IHRocmVhZCBsaWJyYXJ5IHdhcyBkZXRlY3RlZC4gIEFjdGl2YXRlIHRoZSB0 aHJlYWRfZGIgdGFyZ2V0LiAgKi8KKyAgcHVzaF90YXJnZXQgKCZ0aHJlYWRf ZGJfb3BzKTsKKyAgdGhyZWFkX2RiX2hhbmRsZSA9IGhhbmRsZTsKKworICBl bmFibGVfdGhyZWFkX2V2ZW50X3JlcG9ydGluZyAoKTsKKyAgdGhyZWFkX2Ri X2ZpbmRfbmV3X3RocmVhZHNfMSAoKTsKKyAgcmV0dXJuIDE7Cit9CisKKy8q IExvb2t1cCBhIGxpYnJhcnkgaW4gd2hpY2ggZ2l2ZW4gc3ltYm9sIHJlc2lk ZXMuCisgICBOb3RlOiB0aGlzIGlzIGxvb2tpbmcgaW4gR0RCIHByb2Nlc3Ms IG5vdCBpbiB0aGUgaW5mZXJpb3IuCisgICBSZXR1cm5zIGxpYnJhcnkgbmFt ZSwgb3IgTlVMTC4gICovCisKK3N0YXRpYyBjb25zdCBjaGFyICoKK2RsYWRk cl90b19zb25hbWUgKGNvbnN0IHZvaWQgKmFkZHIpCit7CisgIERsX2luZm8g aW5mbzsKKworICBpZiAoZGxhZGRyIChhZGRyLCAmaW5mbykgIT0gMCkKKyAg ICByZXR1cm4gaW5mby5kbGlfZm5hbWU7CisgIHJldHVybiBOVUxMOworfQor CisvKiBBdHRlbXB0IHRvIHVzZSBMSUJSQVJZIGFzIGxpYnRocmVhZF9kYi4g IExJQlJBUlkgY291bGQgYmUgYWJzb2x1dGUsCisgICByZWxhdGl2ZSwgb3Ig anVzdCBMSUJUSFJFQURfREIuICAqLworCitzdGF0aWMgaW50Cit0cnlfdGhy ZWFkX2RiX2xvYWQgKGNvbnN0IGNoYXIgKmxpYnJhcnkpCit7CisgIHZvaWQg KmhhbmRsZTsKKworICBpZiAoaW5mb192ZXJib3NlKQorICAgIHByaW50Zl91 bmZpbHRlcmVkIChfKCJUcnlpbmcgaG9zdCBsaWJ0aHJlYWRfZGIgbGlicmFy eTogJXMuXG4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgbGlicmFyeSk7 CisgIGhhbmRsZSA9IGRsb3BlbiAobGlicmFyeSwgUlRMRF9OT1cpOworICBp ZiAoaGFuZGxlID09IE5VTEwpCisgICAgeworICAgICAgaWYgKGluZm9fdmVy Ym9zZSkKKwlwcmludGZfdW5maWx0ZXJlZCAoXygiZGxvcGVuIGZhaWxlZDog JXMuXG4iKSwgZGxlcnJvciAoKSk7CisgICAgICByZXR1cm4gMDsKKyAgICB9 CisKKyAgaWYgKGluZm9fdmVyYm9zZSAmJiBzdHJjaHIgKGxpYnJhcnksICcv JykgPT0gTlVMTCkKKyAgICB7CisgICAgICB2b2lkICp0ZF9pbml0OworCisg ICAgICB0ZF9pbml0ID0gZGxzeW0gKGhhbmRsZSwgInRkX2luaXQiKTsKKyAg ICAgIGlmICh0ZF9pbml0ICE9IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAg ICBjb25zdCBjaGFyICpjb25zdCBsaWJwYXRoID0gZGxhZGRyX3RvX3NvbmFt ZSAodGRfaW5pdCk7CisKKyAgICAgICAgICBpZiAobGlicGF0aCAhPSBOVUxM KQorICAgICAgICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIkhvc3QgJXMg cmVzb2x2ZWQgdG86ICVzLlxuIiksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlicmFyeSwgbGlicGF0aCk7CisgICAgICAgIH0KKyAgICB9 CisKKyAgaWYgKHRyeV90aHJlYWRfZGJfbG9hZF8xIChoYW5kbGUpKQorICAg IHJldHVybiAxOworCisgIC8qIFRoaXMgbGlicmFyeSAicmVmdXNlZCIgdG8g d29yayBvbiBjdXJyZW50IGluZmVyaW9yLiAgKi8KKyAgZGxjbG9zZSAoaGFu ZGxlKTsKKyAgcmV0dXJuIDA7Cit9CisKKworLyogU2VhcmNoIGxpYnRocmVh ZF9kYl9zZWFyY2hfcGF0aCBmb3IgbGlidGhyZWFkX2RiIHdoaWNoICJhZ3Jl ZXMiCisgICB0byB3b3JrIG9uIGN1cnJlbnQgaW5mZXJpb3IuICAqLworCitz dGF0aWMgaW50Cit0aHJlYWRfZGJfbG9hZF9zZWFyY2ggKCkKK3sKKyAgY2hh ciBwYXRoW1BBVEhfTUFYXTsKKyAgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgg PSBsaWJ0aHJlYWRfZGJfc2VhcmNoX3BhdGg7CisgIGludCByYyA9IDA7CisK KyAgd2hpbGUgKCpzZWFyY2hfcGF0aCkKKyAgICB7CisgICAgICBjb25zdCBj aGFyICplbmQgPSBzdHJjaHIgKHNlYXJjaF9wYXRoLCAnOicpOworICAgICAg aWYgKGVuZCkKKwl7CisJICBzaXplX3QgbGVuID0gZW5kIC0gc2VhcmNoX3Bh dGg7CisgICAgICAgICAgaWYgKGxlbiArIDEgKyBzdHJsZW4gKExJQlRIUkVB RF9EQl9TTykgKyAxID4gc2l6ZW9mIChwYXRoKSkKKyAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgY2hhciAqY3AgPSB4bWFsbG9jIChsZW4gKyAxKTsK KyAgICAgICAgICAgICAgbWVtY3B5IChjcCwgc2VhcmNoX3BhdGgsIGxlbik7 CisgICAgICAgICAgICAgIGNwW2xlbl0gPSAnXDAnOworICAgICAgICAgICAg ICB3YXJuaW5nIChfKCJsaWJ0aHJlYWRfZGJfc2VhcmNoX3BhdGggY29tcG9u ZW50IHRvbyBsb25nLCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiIGln bm9yZWQ6ICVzLiIpLCBjcCk7CisgICAgICAgICAgICAgIHhmcmVlIChjcCk7 CisgICAgICAgICAgICAgIHNlYXJjaF9wYXRoICs9IGxlbiArIDE7CisgICAg ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCSAgbWVtY3B5 IChwYXRoLCBzZWFyY2hfcGF0aCwgbGVuKTsKKwkgIHBhdGhbbGVuXSA9ICdc MCc7CisJICBzZWFyY2hfcGF0aCArPSBsZW4gKyAxOworCX0KKyAgICAgIGVs c2UKKwl7CisgICAgICAgICAgc2l6ZV90IGxlbiA9IHN0cmxlbiAoc2VhcmNo X3BhdGgpOworCisgICAgICAgICAgaWYgKGxlbiArIDEgKyBzdHJsZW4gKExJ QlRIUkVBRF9EQl9TTykgKyAxID4gc2l6ZW9mIChwYXRoKSkKKyAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgd2FybmluZyAoXygibGlidGhyZWFkX2Ri X3NlYXJjaF9wYXRoIGNvbXBvbmVudCB0b28gbG9uZywiCisgICAgICAgICAg ICAgICAgICAgICAgICAgIiBpZ25vcmVkOiAlcy4iKSwgc2VhcmNoX3BhdGgp OworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwkgIG1l bWNweSAocGF0aCwgc2VhcmNoX3BhdGgsIGxlbiArIDEpOworCSAgc2VhcmNo X3BhdGggKz0gbGVuOworCX0KKyAgICAgIHN0cmNhdCAocGF0aCwgIi8iKTsK KyAgICAgIHN0cmNhdCAocGF0aCwgTElCVEhSRUFEX0RCX1NPKTsKKyAgICAg IGlmICh0cnlfdGhyZWFkX2RiX2xvYWQgKHBhdGgpKQorCXsKKwkgIHJjID0g MTsKKwkgIGJyZWFrOworCX0KKyAgICB9CisgIGlmIChyYyA9PSAwKQorICAg IHJjID0gdHJ5X3RocmVhZF9kYl9sb2FkIChMSUJUSFJFQURfREJfU08pOwor ICByZXR1cm4gcmM7Cit9CisKKy8qIEF0dGVtcHQgdG8gbG9hZCBhbmQgaW5p dGlhbGl6ZSBsaWJ0aHJlYWRfZGIuCisgICBSZXR1cm4gMSBvbiBzdWNjZXNz LgorICovCisKK3N0YXRpYyBpbnQKK3RocmVhZF9kYl9sb2FkICh2b2lkKQor eworICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqOworCisgIGlmICh0aHJlYWRfZGJf aGFuZGxlICE9IE5VTEwpCisgICAgcmV0dXJuIDE7CisKKyAgLyogRG9uJ3Qg YXR0ZW1wdCB0byB1c2UgdGhyZWFkX2RiIG9uIHRhcmdldHMgd2hpY2ggY2Fu IG5vdCBydW4KKyAgICAgKGV4ZWN1dGFibGVzIG5vdCBydW5uaW5nIHlldCwg Y29yZSBmaWxlcykgZm9yIG5vdy4gICovCisgIGlmICghdGFyZ2V0X2hhc19l eGVjdXRpb24pCisgICAgcmV0dXJuIDA7CisKKyAgLyogRG9uJ3QgYXR0ZW1w dCB0byB1c2UgdGhyZWFkX2RiIGZvciByZW1vdGUgdGFyZ2V0cy4gICovCisg IGlmICghdGFyZ2V0X2Nhbl9ydW4gKCZjdXJyZW50X3RhcmdldCkpCisgICAg cmV0dXJuIDA7CisKKyAgaWYgKHRocmVhZF9kYl9sb2FkX3NlYXJjaCAoKSkK KyAgICByZXR1cm4gMTsKKworICAvKiBOb25lIG9mIHRoZSBsaWJ0aHJlYWRf ZGIncyBvbiBvdXIgc2VhcmNoIHBhdGgsIG5vdCB0aGUgc3lzdGVtIGRlZmF1 bHQKKyAgICAgb25lcyB3b3JrZWQuICBJZiB0aGUgZXhlY3V0YWJsZSBpcyBk eW5hbWljYWxseSBsaW5rZWQgYWdhaW5zdAorICAgICBsaWJwdGhyZWFkLCB0 cnkgbG9hZGluZyBsaWJ0aHJlYWRfZGIgZnJvbSB0aGUgc2FtZSBkaXJlY3Rv cnkuICAqLworCisgIEFMTF9PQkpGSUxFUyAob2JqKQorICAgIGlmIChsaWJw dGhyZWFkX25hbWVfcCAob2JqLT5uYW1lKSkKKyAgICAgIHsKKwljaGFyIHBh dGhbUEFUSF9NQVhdLCAqY3A7CisKKwlnZGJfYXNzZXJ0IChzdHJsZW4gKG9i ai0+bmFtZSkgPCBzaXplb2YgKHBhdGgpKTsKKwlzdHJjcHkgKHBhdGgsIG9i ai0+bmFtZSk7CisJY3AgPSBzdHJyY2hyIChwYXRoLCAnLycpOworCisJaWYg KGNwID09IE5VTEwpCisJICB7CisJICAgIHdhcm5pbmcgKF8oIkV4cGVjdGVk IGFic29sdXRlIHBhdGhuYW1lIGZvciBsaWJwdGhyZWFkIGluIHRoZSIKKwkJ ICAgICAgICIgaW5mZXJpb3IsIGJ1dCBnb3QgJXMuIiksIHBhdGgpOworCSAg fQorCWVsc2UgaWYgKGNwICsgMSArIHN0cmxlbiAoTElCVEhSRUFEX0RCX1NP KSArIDEgPiBwYXRoICsgc2l6ZW9mIChwYXRoKSkKKwkgIHsKKwkgICAgd2Fy bmluZyAoXygiVW5leHBlY3RlZDogcGF0aCB0byBsaWJwdGhyZWFkIGluIHRo ZSBpbmZlcmlvciBpcyIKKwkJICAgICAgICIgdG9vIGxvbmc6ICVzIiksIHBh dGgpOworCSAgfQorCWVsc2UKKwkgIHsKKwkgICAgc3RyY3B5IChjcCArIDEs IExJQlRIUkVBRF9EQl9TTyk7CisJICAgIGlmICh0cnlfdGhyZWFkX2RiX2xv YWQgKHBhdGgpKQorCSAgICAgIHJldHVybiAxOworCSAgfQorCXdhcm5pbmcg KF8oIlVuYWJsZSB0byBmaW5kIGxpYnRocmVhZF9kYiBtYXRjaGluZyBpbmZl cmlvcidzIHRocmVhZCIKKwkJICAgIiBsaWJyYXJ5LCB0aHJlYWQgZGVidWdn aW5nIHdpbGwgbm90IGJlIGF2YWlsYWJsZS4iKSk7CisJcmV0dXJuIDA7Cisg ICAgfQorICAvKiBFaXRoZXIgdGhpcyBleGVjdXRhYmxlIGlzbid0IHVzaW5n IGxpYnB0aHJlYWQgYXQgYWxsLCBvciBpdCBpcworICAgICBzdGF0aWNhbGx5 IGxpbmtlZC4gIFNpbmNlIHdlIGNhbid0IGVhc2lseSBkaXN0aW5ndWlzaCB0 aGVzZSB0d28gY2FzZXMsCisgICAgIG5vIHdhcm5pbmcgaXMgaXNzdWVkLiAg Ki8KKyAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyB2b2lkCiBkaXNhYmxlX3Ro cmVhZF9ldmVudF9yZXBvcnRpbmcgKHZvaWQpCiB7CkBAIC01OTMsNzUgKzgw MiwzNCBAQCB2b2lkCiBjaGVja19mb3JfdGhyZWFkX2RiICh2b2lkKQogewog ICB0ZF9lcnJfZSBlcnI7Ci0gIHN0YXRpYyBpbnQgYWxyZWFkeV9sb2FkZWQ7 CisgIHN0YXRpYyB2b2lkICpsYXN0X2xvYWRlZDsKIAogICAvKiBEbyBub3Ro aW5nIGlmIHdlIGNvdWxkbid0IGxvYWQgbGlidGhyZWFkX2RiLnNvLjEuICAq LwotICBpZiAodGRfdGFfbmV3X3AgPT0gTlVMTCkKKyAgaWYgKCF0aHJlYWRf ZGJfbG9hZCAoKSkKICAgICByZXR1cm47CiAKICAgLyogRmlyc3QgdGltZSB0 aHJvdWdoLCByZXBvcnQgdGhhdCBsaWJ0aHJlYWRfZGIgd2FzIHN1Y2Nlc3Nm dWx5CiAgICAgIGxvYWRlZC4gIENhbid0IHByaW50IHRoaXMgaW4gaW4gdGhy ZWFkX2RiX2xvYWQgYXMsIGF0IHRoYXQgc3RhZ2UsCi0gICAgIHRoZSBpbnRl cnByZXRlciBhbmQgaXQncyBjb25zb2xlIGhhdmVuJ3Qgc3RhcnRlZC4gICov Ci0KLSAgaWYgKCFhbHJlYWR5X2xvYWRlZCkKLSAgICB7Ci0gICAgICBEbF9p bmZvIGluZm87Ci0gICAgICBjb25zdCBjaGFyICpsaWJyYXJ5ID0gTlVMTDsK LSAgICAgIGlmIChkbGFkZHIgKCgqdGRfdGFfbmV3X3ApLCAmaW5mbykgIT0g MCkKLQlsaWJyYXJ5ID0gaW5mby5kbGlfZm5hbWU7Ci0KLSAgICAgIC8qIFRy eSBkbGluZm8/ICAqLwotCi0gICAgICBpZiAobGlicmFyeSA9PSBOVUxMKQot CS8qIFBhcmFub2lkIC0gZG9uJ3QgbGV0IGEgTlVMTCBwYXRoIHNsaXAgdGhy b3VnaC4gICovCi0JbGlicmFyeSA9IExJQlRIUkVBRF9EQl9TTzsKLQotICAg ICAgaWYgKGluZm9fdmVyYm9zZSkKLQlwcmludGZfdW5maWx0ZXJlZCAoXygi VXNpbmcgaG9zdCBsaWJ0aHJlYWRfZGIgbGlicmFyeSBcIiVzXCIuXG4iKSwK LQkJCSAgIGxpYnJhcnkpOwotICAgICAgYWxyZWFkeV9sb2FkZWQgPSAxOwot ICAgIH0KKyAgICAgdGhlIGludGVycHJldGVyIGFuZCBpdCdzIGNvbnNvbGUg aGF2ZW4ndCBzdGFydGVkLgorICAgICBXZSB0cmFjayB0ZF90YV9uZXdfcCBi ZWNhdXNlIHRoZSB1c2VyIG1heSBzd2l0Y2ggZXhlY3V0YWJsZXMsCisgICAg IGFuZCBhcyBhIHJlc3VsdCB3ZSBtYXkgZGVjaWRlIHRvIHVzZSBhIGRpZmZl cmVudCB2ZXJzaW9uIG9mCisgICAgIGxpYnRocmVhZF9kYi4gKi8KIAotICBp ZiAodXNpbmdfdGhyZWFkX2RiKQotICAgIC8qIE5vdGhpbmcgdG8gZG8uICBU aGUgdGhyZWFkIGxpYnJhcnkgd2FzIGFscmVhZHkgZGV0ZWN0ZWQgYW5kIHRo ZQotICAgICAgIHRhcmdldCB2ZWN0b3Igd2FzIGFscmVhZHkgYWN0aXZhdGVk LiAgKi8KLSAgICByZXR1cm47Ci0KLSAgLyogRG9uJ3QgYXR0ZW1wdCB0byB1 c2UgdGhyZWFkX2RiIG9uIHRhcmdldHMgd2hpY2ggY2FuIG5vdCBydW4KLSAg ICAgKGV4ZWN1dGFibGVzIG5vdCBydW5uaW5nIHlldCwgY29yZSBmaWxlcykg Zm9yIG5vdy4gICovCi0gIGlmICghdGFyZ2V0X2hhc19leGVjdXRpb24pCi0g ICAgcmV0dXJuOwotCi0gIC8qIERvbid0IGF0dGVtcHQgdG8gdXNlIHRocmVh ZF9kYiBmb3IgcmVtb3RlIHRhcmdldHMuICAqLwotICBpZiAoIXRhcmdldF9j YW5fcnVuICgmY3VycmVudF90YXJnZXQpKQotICAgIHJldHVybjsKLQotICAv KiBJbml0aWFsaXplIHRoZSBzdHJ1Y3R1cmUgdGhhdCBpZGVudGlmaWVzIHRo ZSBjaGlsZCBwcm9jZXNzLiAgKi8KLSAgcHJvY19oYW5kbGUucHRpZCA9IGlu ZmVyaW9yX3B0aWQ7Ci0KLSAgLyogTm93IGF0dGVtcHQgdG8gb3BlbiBhIGNv bm5lY3Rpb24gdG8gdGhlIHRocmVhZCBsaWJyYXJ5LiAgKi8KLSAgZXJyID0g dGRfdGFfbmV3X3AgKCZwcm9jX2hhbmRsZSwgJnRocmVhZF9hZ2VudCk7Ci0g IHN3aXRjaCAoZXJyKQorICBpZiAobGFzdF9sb2FkZWQgIT0gdGRfdGFfbmV3 X3ApCiAgICAgewotICAgIGNhc2UgVERfTk9MSUJUSFJFQUQ6Ci0gICAgICAv KiBObyB0aHJlYWQgbGlicmFyeSB3YXMgZGV0ZWN0ZWQuICAqLwotICAgICAg YnJlYWs7Ci0KLSAgICBjYXNlIFREX09LOgotICAgICAgcHJpbnRmX3VuZmls dGVyZWQgKF8oIltUaHJlYWQgZGVidWdnaW5nIHVzaW5nIGxpYnRocmVhZF9k YiBlbmFibGVkXVxuIikpOwotCi0gICAgICAvKiBUaGUgdGhyZWFkIGxpYnJh cnkgd2FzIGRldGVjdGVkLiAgQWN0aXZhdGUgdGhlIHRocmVhZF9kYiB0YXJn ZXQuICAqLwotICAgICAgcHVzaF90YXJnZXQgKCZ0aHJlYWRfZGJfb3BzKTsK LSAgICAgIHVzaW5nX3RocmVhZF9kYiA9IDE7CisgICAgICBsYXN0X2xvYWRl ZCA9IHRkX3RhX25ld19wOwogCi0gICAgICBlbmFibGVfdGhyZWFkX2V2ZW50 X3JlcG9ydGluZyAoKTsKLSAgICAgIHRocmVhZF9kYl9maW5kX25ld190aHJl YWRzXzEgKCk7Ci0gICAgICBicmVhazsKLQotICAgIGRlZmF1bHQ6Ci0gICAg ICB3YXJuaW5nIChfKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aHJlYWQgZGVidWdn aW5nIGxpYnJhcnk6ICVzIiksCi0JICAgICAgIHRocmVhZF9kYl9lcnJfc3Ry IChlcnIpKTsKLSAgICAgIGJyZWFrOworICAgICAgaWYgKGluZm9fdmVyYm9z ZSB8fCAqbGlidGhyZWFkX2RiX3NlYXJjaF9wYXRoKQorICAgICAgICB7Cisg ICAgICAgICAgY29uc3QgY2hhciAqbGlicmFyeTsKKworICAgICAgICAgIGxp YnJhcnkgPSBkbGFkZHJfdG9fc29uYW1lICgqdGRfdGFfbmV3X3ApOworICAg ICAgICAgIGlmIChsaWJyYXJ5ID09IE5VTEwpCisgICAgICAgICAgICBsaWJy YXJ5ID0gTElCVEhSRUFEX0RCX1NPOworCisgICAgICAgICAgcHJpbnRmX3Vu ZmlsdGVyZWQgKF8oIlVzaW5nIGhvc3QgbGlidGhyZWFkX2RiIGxpYnJhcnkg XCIlc1wiLlxuIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnJhcnkpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC03ODMsNyArOTUx LDkgQEAgdGhyZWFkX2RiX2RldGFjaCAoc3RydWN0IHRhcmdldF9vcHMgKm9w cwogCiAgIC8qIERldGFjaCB0aHJlYWRfZGIgdGFyZ2V0IG9wcy4gICovCiAg IHVucHVzaF90YXJnZXQgKCZ0aHJlYWRfZGJfb3BzKTsKLSAgdXNpbmdfdGhy ZWFkX2RiID0gMDsKKyAgaWYgKHRocmVhZF9kYl9oYW5kbGUpCisgICAgZGxj bG9zZSAodGhyZWFkX2RiX2hhbmRsZSk7CisgIHRocmVhZF9kYl9oYW5kbGUg PSBOVUxMOwogCiAgIHRhcmdldF9iZW5lYXRoLT50b19kZXRhY2ggKHRhcmdl dF9iZW5lYXRoLCBhcmdzLCBmcm9tX3R0eSk7CiB9CkBAIC04OTYsNyArMTA2 Niw5IEBAIHRocmVhZF9kYl93YWl0IChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3Bz LAogICAgIHsKICAgICAgIHJlbW92ZV90aHJlYWRfZXZlbnRfYnJlYWtwb2lu dHMgKCk7CiAgICAgICB1bnB1c2hfdGFyZ2V0ICgmdGhyZWFkX2RiX29wcyk7 Ci0gICAgICB1c2luZ190aHJlYWRfZGIgPSAwOworICAgICAgaWYgKHRocmVh ZF9kYl9oYW5kbGUpCisJZGxjbG9zZSAodGhyZWFkX2RiX2hhbmRsZSk7Cisg ICAgICB0aHJlYWRfZGJfaGFuZGxlID0gTlVMTDsKIAogICAgICAgcmV0dXJu IHB0aWQ7CiAgICAgfQpAQCAtOTQ0LDcgKzExMTYsOSBAQCB0aHJlYWRfZGJf bW91cm5faW5mZXJpb3IgKHN0cnVjdCB0YXJnZXRfCiAKICAgLyogRGV0YWNo IHRocmVhZF9kYiB0YXJnZXQgb3BzLiAgKi8KICAgdW5wdXNoX3RhcmdldCAo b3BzKTsKLSAgdXNpbmdfdGhyZWFkX2RiID0gMDsKKyAgaWYgKHRocmVhZF9k Yl9oYW5kbGUpCisgICAgZGxjbG9zZSAodGhyZWFkX2RiX2hhbmRsZSk7Cisg IHRocmVhZF9kYl9oYW5kbGUgPSBOVUxMOwogfQogCiBzdGF0aWMgaW50CkBA IC0xMTg3LDEzICsxMzYxLDI4IEBAIGV4dGVybiBpbml0aWFsaXplX2ZpbGVf ZnR5cGUgX2luaXRpYWxpemUKIHZvaWQKIF9pbml0aWFsaXplX3RocmVhZF9k YiAodm9pZCkKIHsKLSAgLyogT25seSBpbml0aWFsaXplIHRoZSBtb2R1bGUg aWYgd2UgY2FuIGxvYWQgbGlidGhyZWFkX2RiLiAgKi8KLSAgaWYgKHRocmVh ZF9kYl9sb2FkICgpKQotICAgIHsKLSAgICAgIGluaXRfdGhyZWFkX2RiX29w cyAoKTsKLSAgICAgIGFkZF90YXJnZXQgKCZ0aHJlYWRfZGJfb3BzKTsKKyAg aW5pdF90aHJlYWRfZGJfb3BzICgpOworICBhZGRfdGFyZ2V0ICgmdGhyZWFk X2RiX29wcyk7CiAKLSAgICAgIC8qIEFkZCBvdXJzZWx2ZXMgdG8gb2JqZmls ZSBldmVudCBjaGFpbi4gICovCi0gICAgICBvYnNlcnZlcl9hdHRhY2hfbmV3 X29iamZpbGUgKHRocmVhZF9kYl9uZXdfb2JqZmlsZSk7Ci0gICAgfQorICAv KiBEZWZlciBsb2FkaW5nIG9mIGxpYnRocmVhZF9kYi5zbyB1bnRpbCBpbmZl cmlvciBpcyBydW5uaW5nLgorICAgICBUaGlzIGFsbG93cyBnZGIgdG8gbG9h ZCBjb3JyZWN0IGxpYnRocmVhZF9kYiBmb3IgYSBnaXZlbgorICAgICBleGVj dXRhYmxlIC0tIHRoZXJlIGNvdWxkIGJlIG11dGlwbGUgdmVyc2lvbnMgb2Yg Z2xpYmMsCisgICAgIGNvbXBpbGVkIHdpdGggTGludXhUaHJlYWRzIG9yIE5Q VEwsIGFuZCB1bnRpbCB0aGVyZSBpcworICAgICBhIHJ1bm5pbmcgaW5mZXJp b3IsIHdlIGNhbid0IHRlbGwgd2hpY2ggbGlidGhyZWFkX2RiIGlzCisgICAg IHRoZSBjb3JyZWN0IG9uZSB0byBsb2FkLiAqLworCisgIGxpYnRocmVhZF9k Yl9zZWFyY2hfcGF0aCA9IHhzdHJkdXAgKExJQlRIUkVBRF9EQl9TRUFSQ0hf UEFUSCk7CisKKyAgYWRkX3NldHNob3dfb3B0aW9uYWxfZmlsZW5hbWVfY21k ICgibGlidGhyZWFkLWRiLXNlYXJjaC1wYXRoIiwKKwkJCQkgICAgIGNsYXNz X3N1cHBvcnQsCisJCQkJICAgICAmbGlidGhyZWFkX2RiX3NlYXJjaF9wYXRo LCBfKCJcCitTZXQgc2VhcmNoIHBhdGggZm9yIGxpYnRocmVhZF9kYi4iKSwg XygiXAorU2hvdyB0aGUgY3VycmVudCBzZWFyY2ggcGF0aCBvciBsaWJ0aHJl YWRfZGIuIiksIF8oIlwKK1RoaXMgcGF0aCBpcyB1c2VkIHRvIHNlYXJjaCBm b3IgbGlidGhyZWFkX2RiIHRvIGJlIGxvYWRlZCBpbnRvIFwKK2dkYiBpdHNl bGYuIiksCisJCQkgICAgTlVMTCwKKwkJCSAgICBOVUxMLAorCQkJICAgICZz ZXRsaXN0LCAmc2hvd2xpc3QpOworICAvKiBBZGQgb3Vyc2VsdmVzIHRvIG9i amZpbGUgZXZlbnQgY2hhaW4uICAqLworICBvYnNlcnZlcl9hdHRhY2hfbmV3 X29iamZpbGUgKHRocmVhZF9kYl9uZXdfb2JqZmlsZSk7CiB9CkluZGV4OiBz b2xpYi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv c3JjL3NyYy9nZGIvc29saWIuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4x MTUKZGlmZiAtdSAtcCAtdSAtcjEuMTE1IHNvbGliLmMKLS0tIHNvbGliLmMJ OSBNYXIgMjAwOSAyMjozODozNyAtMDAwMAkxLjExNQorKysgc29saWIuYwkx IE1heSAyMDA5IDAwOjE0OjU4IC0wMDAwCkBAIC02ODQsMTYgKzY4NCwyNCBA QCB1cGRhdGVfc29saWJfbGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1Y3QgCiAg ICAgfQogfQogCi0vKiBSZXR1cm4gbm9uLXplcm8gaWYgU08gaXMgdGhlIGxp YnB0aHJlYWQgc2hhcmVkIGxpYnJhcnkuCisKKy8qIFJldHVybiBub24temVy byBpZiBOQU1FIGlzIHRoZSBsaWJwdGhyZWFkIHNoYXJlZCBsaWJyYXJ5Lgog CiAgICBVc2VzIGEgZmFpcmx5IHNpbXBsaXN0aWMgaGV1cmlzdGljIGFwcHJv YWNoIHdoZXJlIHdlIGNoZWNrCiAgICB0aGUgZmlsZSBuYW1lIGFnYWluc3Qg Ii9saWJwdGhyZWFkIi4gIFRoaXMgY2FuIGxlYWQgdG8gZmFsc2UKICAgIHBv c2l0aXZlcywgYnV0IHRoaXMgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGluIHBy YWN0aWNlLiAgKi8KIAoraW50IGxpYnB0aHJlYWRfbmFtZV9wIChjb25zdCBj aGFyICpuYW1lKQoreworICByZXR1cm4gKHN0cnN0ciAobmFtZSwgIi9saWJw dGhyZWFkIikgIT0gTlVMTCk7Cit9CisKKy8qIFJldHVybiBub24temVybyBp ZiBTTyBpcyB0aGUgbGlicHRocmVhZCBzaGFyZWQgbGlicmFyeS4gICovCisK IHN0YXRpYyBpbnQKIGxpYnB0aHJlYWRfc29saWJfcCAoc3RydWN0IHNvX2xp c3QgKnNvKQogewotICByZXR1cm4gKHN0cnN0ciAoc28tPnNvX25hbWUsICIv bGlicHRocmVhZCIpICE9IE5VTEwpOworICByZXR1cm4gbGlicHRocmVhZF9u YW1lX3AgKHNvLT5zb19uYW1lKTsKIH0KIAogLyogR0xPQkFMIEZVTkNUSU9O CkluZGV4OiBzb2xpYi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IC9jdnMvc3JjL3NyYy9nZGIvc29saWIuaCx2CnJldHJpZXZpbmcgcmV2 aXNpb24gMS4yMwpkaWZmIC11IC1wIC11IC1yMS4yMyBzb2xpYi5oCi0tLSBz b2xpYi5oCTkgTWFyIDIwMDkgMjI6Mzg6MzcgLTAwMDAJMS4yMworKysgc29s aWIuaAkxIE1heSAyMDA5IDAwOjE0OjU4IC0wMDAwCkBAIC02NSw0ICs2NSw4 IEBAIGV4dGVybiB2b2lkIG5vX3NoYXJlZF9saWJyYXJpZXMgKGNoYXIgKmkK IGV4dGVybiB2b2lkIHNldF9zb2xpYl9vcHMgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLAogCQkJICAgc3RydWN0IHRhcmdldF9zb19vcHMgKm5ld19vcHMp OwogCisvKiBSZXR1cm4gbm9uLXplcm8gaWYgTkFNRSBpcyB0aGUgbGlicHRo cmVhZCBzaGFyZWQgbGlicmFyeS4gICovCisKK2V4dGVybiBpbnQgbGlicHRo cmVhZF9uYW1lX3AgKGNvbnN0IGNoYXIgKm5hbWUpOworCiAjZW5kaWYgLyog U09MSUJfSCAqLwpJbmRleDogZG9jL2dkYi50ZXhpbmZvCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZG9jL2dk Yi50ZXhpbmZvLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjU4OApkaWZmIC11 IC1wIC11IC1yMS41ODggZ2RiLnRleGluZm8KLS0tIGRvYy9nZGIudGV4aW5m bwkzMCBBcHIgMjAwOSAwMzoyNDo0OCAtMDAwMAkxLjU4OAorKysgZG9jL2dk Yi50ZXhpbmZvCTEgTWF5IDIwMDkgMDA6MTQ6NTkgLTAwMDAKQEAgLTI0MzAs NiArMjQzMCw5IEBAIGEgY29tbWFuZCB0byBhcHBseSBhIGNvbW1hbmQgdG8g YSBsaXN0IG8KIEBpdGVtIHRocmVhZC1zcGVjaWZpYyBicmVha3BvaW50cwog QGl0ZW0gQHNhbXB7c2V0IHByaW50IHRocmVhZC1ldmVudHN9LCB3aGljaCBj b250cm9scyBwcmludGluZyBvZiAKIG1lc3NhZ2VzIG9uIHRocmVhZCBzdGFy dCBhbmQgZXhpdC4KK0BpdGVtIEBzYW1we3NldCBsaWJ0aHJlYWQtZGItc2Vh cmNoLXBhdGggQHZhcntwYXRofX0sIHdoaWNoIGxldHMKK3RoZSB1c2VyIHNw ZWNpZnkgd2hpY2ggQGNvZGV7bGlidGhyZWFkX2RifSB0byB1c2UgaWYgdGhl IGRlZmF1bHQgY2hvaWNlCitpc24ndCBjb21wYXRpYmxlIHdpdGggdGhlIHBy b2dyYW0uCiBAZW5kIGl0ZW1pemUKIAogQHF1b3RhdGlvbgpAQCAtMjY0OCw2 ICsyNjUxLDM4IEBAIHByb2dyYW1zIHdpdGggbXVsdGlwbGUgdGhyZWFkcy4K IEB4cmVme1NldCBXYXRjaHBvaW50cywsU2V0dGluZyBXYXRjaHBvaW50c30s IGZvciBpbmZvcm1hdGlvbiBhYm91dAogd2F0Y2hwb2ludHMgaW4gcHJvZ3Jh bXMgd2l0aCBtdWx0aXBsZSB0aHJlYWRzLgogCitAdGFibGUgQGNvZGUKK0Br aW5kZXggc2V0IGxpYnRocmVhZC1kYi1zZWFyY2gtcGF0aAorQGNpbmRleCBz ZWFyY2ggcGF0aCBmb3IgQGNvZGV7bGlidGhyZWFkX2RifQorQGl0ZW0gc2V0 IGxpYnRocmVhZC1kYi1zZWFyY2gtcGF0aCBAcntbfUB2YXJ7cGF0aH1Acntd fQorSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQsIEB2YXJ7cGF0aH0gaXMgYSBj b2xvbi1zZXBhcmF0ZWQgbGlzdCBvZgorZGlyZWN0b3JpZXMgQHZhbHVle0dE Qk59IHdpbGwgdXNlIHRvIHNlYXJjaCBmb3IgQGNvZGV7bGlidGhyZWFkX2Ri fS4KK0lmIHlvdSBvbWl0IEB2YXJ7cGF0aH0sIEBzYW1we2xpYnRocmVhZC1k Yi1zZWFyY2gtcGF0aH0gd2lsbCBiZSByZXNldCB0bworYW4gZW1wdHkgbGlz dC4KKworT24gQHNje2dudX0vTGludXggYW5kIFNvbGFyaXMgc3lzdGVtcywg QHZhbHVle0dEQk59IHVzZXMgYSBgYGhlbHBlcicnCitAY29kZXtsaWJ0aHJl YWRfZGJ9IGxpYnJhcnkgdG8gb2J0YWluIGluZm9ybWF0aW9uIGFib3V0IHRo cmVhZHMgaW4gdGhlCitpbmZlcmlvciBwcm9jZXNzLiAgQHZhbHVle0dEQk59 IHdpbGwgdXNlIEBzYW1we2xpYnRocmVhZC1kYi1zZWFyY2gtcGF0aH0KK3Rv IGZpbmQgQGNvZGV7bGlidGhyZWFkX2RifS4gIElmIHRoYXQgZmFpbHMsIEB2 YWx1ZXtHREJOfSB3aWxsIGNvbnRpbnVlCit3aXRoIGRlZmF1bHQgc3lzdGVt IHNoYXJlZCBsaWJyYXJ5IGRpcmVjdG9yaWVzLCBhbmQgZmluYWxseSB0aGUg ZGlyZWN0b3J5Citmcm9tIHdoaWNoIEBjb2Rle2xpYnB0aHJlYWR9IHdhcyBs b2FkZWQgaW4gdGhlIGluZmVyaW9yIHByb2Nlc3MuCisKK0ZvciBhbnkgQGNv ZGV7bGlidGhyZWFkX2RifSBsaWJyYXJ5IEB2YWx1ZXtHREJOfSBmaW5kcyBp biBhYm92ZSBkaXJlY3RvcmllcywKK0B2YWx1ZXtHREJOfSBhdHRlbXB0cyB0 byBpbml0aWFsaXplIGl0IHdpdGggdGhlIGN1cnJlbnQgaW5mZXJpb3IgcHJv Y2Vzcy4KK0lmIHRoaXMgaW5pdGlhbGl6YXRpb24gZmFpbHMgKHdoaWNoIGNv dWxkIGhhcHBlbiBiZWNhdXNlIG9mIGEgdmVyc2lvbgorbWlzbWF0Y2ggYmV0 d2VlbiBAY29kZXtsaWJ0aHJlYWRfZGJ9IGFuZCBAY29kZXtsaWJwdGhyZWFk fSksIEB2YWx1ZXtHREJOfQord2lsbCB1bmxvYWQgQGNvZGV7bGlidGhyZWFk X2RifSwgYW5kIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgZGlyZWN0b3J5Lgor SWYgbm9uZSBvZiBAY29kZXtsaWJ0aHJlYWRfZGJ9IGxpYnJhcmllcyBpbml0 aWFsaXplIHN1Y2Nlc3NmdWxseSwKK0B2YWx1ZXtHREJOfSB3aWxsIGlzc3Vl IGEgd2FybmluZyBhbmQgdGhyZWFkIGRlYnVnZ2luZyB3aWxsIGJlIGRpc2Fi bGVkLgorCitTZXR0aW5nIEBjb2Rle2xpYnRocmVhZC1kYi1zZWFyY2gtcGF0 aH0gaXMgY3VycmVudGx5IGltcGxlbWVudGVkCitvbmx5IG9uIHNvbWUgcGxh dGZvcm1zLgorCitAa2luZGV4IHNob3cgbGlidGhyZWFkLWRiLXNlYXJjaC1w YXRoIAorQGl0ZW0gc2hvdyBsaWJ0aHJlYWQtZGItc2VhcmNoLXBhdGggCitE aXNwbGF5IGN1cnJlbnQgbGlidGhyZWFkX2RiIHNlYXJjaCBwYXRoLgorQGVu ZCB0YWJsZQorCiBAbm9kZSBQcm9jZXNzZXMKIEBzZWN0aW9uIERlYnVnZ2lu ZyBQcm9ncmFtcyB3aXRoIE11bHRpcGxlIFByb2Nlc3NlcwogCg== --001636832072f00ab00468cec4f6--