From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5915 invoked by alias); 12 Jan 2012 20:36:11 -0000 Received: (qmail 5541 invoked by uid 22791); 12 Jan 2012 20:36:08 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,TW_BJ,TW_CP,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail-we0-f169.google.com (HELO mail-we0-f169.google.com) (74.125.82.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 12 Jan 2012 20:35:53 +0000 Received: by werf1 with SMTP id f1so2225933wer.0 for ; Thu, 12 Jan 2012 12:35:52 -0800 (PST) Received: by 10.216.134.36 with SMTP id r36mr967210wei.40.1326400552319; Thu, 12 Jan 2012 12:35:52 -0800 (PST) Received: by 10.216.134.36 with SMTP id r36mr967200wei.40.1326400552184; Thu, 12 Jan 2012 12:35:52 -0800 (PST) MIME-Version: 1.0 Received: by 10.180.83.99 with HTTP; Thu, 12 Jan 2012 12:35:21 -0800 (PST) In-Reply-To: References: <20120112030648.14DBE190AFD@elbrus2.mtv.corp.google.com> From: Paul Pluzhnikov Date: Thu, 12 Jan 2012 20:59:00 -0000 Message-ID: Subject: Re: [patch] Fix for PR gdb/9538 (loading of separate debuginfo and symlinks). To: Doug Evans Cc: gdb-patches@sourceware.org X-System-Of-Record: true Content-Type: multipart/mixed; boundary=0016e6d99c09be2d0304b65ab19d 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: 2012-01/txt/msg00430.txt.bz2 --0016e6d99c09be2d0304b65ab19d Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1514 On Thu, Jan 12, 2012 at 9:23 AM, Doug Evans wrote: > The symfile.c change is ok with me, modulo can you add comments for > each of the functions? Done. I've also refactored the code a bit more to avoid searching the same directory again. > [caveat: I think it doesn't properly handle paths with dos drives, but > the code already has that problem, so no requirement to fix that in > this patch] I don't think ".gnu_debuglink" is supported on non-ELF platforms, so not handling DOS drives is likely not a problem. > I see sepdebug.exp uses remote_exec so best use that instead of exec. Done. > Also, I'm not sure what the portability requirements are w.r.t. symlinks. > Probably best to watch for errors in the "ln -s" and handle appropriately. The test exits if gdb_gnu_strip_debug fails. I don't believe it will currently succeed on any platform without symlinks. Testing for errors will just add noise. > [Even better, is there a utility routine that will create a symlink? > All the portability concerns could be tucked away in there.] I didn't find one. > Also, can you use clean_restart instead of the gdb_exit/gdb_start/... sequence? Done. Thanks, -- Paul Pluzhnikov 2012-01-11 Paul Pluzhnikov PR gdb/9538 * symfile.c (find_separate_debug_file): New function. (terminate_after_last_dir_separator): Likewise. (find_separate_debug_file_by_debuglink): Also try realpath. testsuite/ChangeLog: PR gdb/9538 * gdb.base/sepdebug.exp: New test. --0016e6d99c09be2d0304b65ab19d Content-Type: text/plain; charset=US-ASCII; name="gdb-symlink-pr9538-20120112.txt" Content-Disposition: attachment; filename="gdb-symlink-pr9538-20120112.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gxc49vc50 Content-length: 10797 SW5kZXg6IHN5bWZpbGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3N5bWZpbGUuYyx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS4zMjUKZGlmZiAtdSAtcCAtcjEuMzI1IHN5bWZpbGUuYwot LS0gc3ltZmlsZS5jCTEyIEphbiAyMDEyIDAwOjAwOjAxIC0wMDAwCTEuMzI1 CisrKyBzeW1maWxlLmMJMTIgSmFuIDIwMTIgMjA6Mjk6NTMgLTAwMDAKQEAg LTE0NDEsNjMgKzE0NDEsNDggQEAgc2hvd19kZWJ1Z19maWxlX2RpcmVjdG9y eSAoc3RydWN0IHVpX2ZpbAogI2RlZmluZSBERUJVR19TVUJESVJFQ1RPUlkg Ii5kZWJ1ZyIKICNlbmRpZgogCi1jaGFyICoKLWZpbmRfc2VwYXJhdGVfZGVi dWdfZmlsZV9ieV9kZWJ1Z2xpbmsgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl KQorLyogRmluZCBhIHNlcGFyYXRlIGRlYnVnaW5mbyBmaWxlIGZvciBPQkpG SUxFLCB1c2luZyBESVIgYXMgdGhlIGRpcmVjdG9yeQorICAgd2hlcmUgdGhl IG9yaWdpbmFsIGZpbGUgcmVzaWRlcyAobWF5IG5vdCBiZSB0aGUgc2FtZSBh cworICAgZGlybmFtZShvYmpmaWxlLT5uYW1lKSBkdWUgdG8gc3ltbGlua3Mp LCBhbmQgREVCVUdMSU5LIGFzIHRoZSBmaWxlIHdlIGFyZQorICAgbG9va2lu ZyBmb3IuICBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBkZWJ1Z2luZm8sIG9m IE5VTEwuICAqLworCitzdGF0aWMgY2hhciAqCitmaW5kX3NlcGFyYXRlX2Rl YnVnX2ZpbGUgKGNvbnN0IGNoYXIgKmRpciwKKwkJCSAgY29uc3QgY2hhciAq Y2Fub25fZGlyLAorCQkJICBjb25zdCBjaGFyICpkZWJ1Z2xpbmssCisJCQkg IHVuc2lnbmVkIGxvbmcgY3JjMzIsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl KQogewotICBjaGFyICpiYXNlbmFtZSwgKmRlYnVnZGlyOwotICBjaGFyICpk aXIgPSBOVUxMOwotICBjaGFyICpkZWJ1Z2ZpbGUgPSBOVUxMOwotICBjaGFy ICpjYW5vbl9uYW1lID0gTlVMTDsKLSAgdW5zaWduZWQgbG9uZyBjcmMzMjsK KyAgY2hhciAqZGVidWdkaXI7CisgIGNoYXIgKmRlYnVnZmlsZTsKICAgaW50 IGk7CiAKLSAgYmFzZW5hbWUgPSBnZXRfZGVidWdfbGlua19pbmZvIChvYmpm aWxlLCAmY3JjMzIpOwotCi0gIGlmIChiYXNlbmFtZSA9PSBOVUxMKQotICAg IC8qIFRoZXJlJ3Mgbm8gc2VwYXJhdGUgZGVidWcgaW5mbywgaGVuY2UgdGhl cmUncyBubyB3YXkgd2UgY291bGQKLSAgICAgICBsb2FkIGl0ID0+IG5vIHdh cm5pbmcuICAqLwotICAgIGdvdG8gY2xlYW51cF9yZXR1cm5fZGVidWdmaWxl OwotCi0gIGRpciA9IHhzdHJkdXAgKG9iamZpbGUtPm5hbWUpOwotCi0gIC8q IFN0cmlwIG9mZiB0aGUgZmluYWwgZmlsZW5hbWUgcGFydCwgbGVhdmluZyB0 aGUgZGlyZWN0b3J5IG5hbWUsCi0gICAgIGZvbGxvd2VkIGJ5IGEgc2xhc2gu ICBUaGUgZGlyZWN0b3J5IGNhbiBiZSByZWxhdGl2ZSBvciBhYnNvbHV0ZS4g ICovCi0gIGZvciAoaSA9IHN0cmxlbihkaXIpIC0gMTsgaSA+PSAwOyBpLS0p Ci0gICAgewotICAgICAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKGRpcltpXSkp Ci0JYnJlYWs7Ci0gICAgfQotICAvKiBJZiBJIGlzIC0xIHRoZW4gbm8gZGly ZWN0b3J5IGlzIHByZXNlbnQgdGhlcmUgYW5kIERJUiB3aWxsIGJlICIiLiAg Ki8KLSAgZGlyW2krMV0gPSAnXDAnOwotCi0gIC8qIFNldCBJIHRvIG1heCAo c3RybGVuIChjYW5vbl9uYW1lKSwgc3RybGVuIChkaXIpKS4gICovCi0gIGNh bm9uX25hbWUgPSBscmVhbHBhdGggKGRpcik7CisgIC8qIFNldCBJIHRvIG1h eCAoc3RybGVuIChjYW5vbl9kaXIpLCBzdHJsZW4gKGRpcikpLiAgKi8KICAg aSA9IHN0cmxlbiAoZGlyKTsKLSAgaWYgKGNhbm9uX25hbWUgJiYgc3RybGVu IChjYW5vbl9uYW1lKSA+IGkpCi0gICAgaSA9IHN0cmxlbiAoY2Fub25fbmFt ZSk7CisgIGlmIChjYW5vbl9kaXIgJiYgc3RybGVuIChjYW5vbl9kaXIpID4g aSkKKyAgICBpID0gc3RybGVuIChjYW5vbl9kaXIpOwogCiAgIGRlYnVnZmls ZSA9IHhtYWxsb2MgKHN0cmxlbiAoZGVidWdfZmlsZV9kaXJlY3RvcnkpICsg MQogCQkgICAgICAgKyBpCiAJCSAgICAgICArIHN0cmxlbiAoREVCVUdfU1VC RElSRUNUT1JZKQogCQkgICAgICAgKyBzdHJsZW4gKCIvIikKLQkJICAgICAg ICsgc3RybGVuIChiYXNlbmFtZSkKKwkJICAgICAgICsgc3RybGVuIChkZWJ1 Z2xpbmspCiAJCSAgICAgICArIDEpOwogCiAgIC8qIEZpcnN0IHRyeSBpbiB0 aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIG9yaWdpbmFsIGZpbGUuICAqLwog ICBzdHJjcHkgKGRlYnVnZmlsZSwgZGlyKTsKLSAgc3RyY2F0IChkZWJ1Z2Zp bGUsIGJhc2VuYW1lKTsKKyAgc3RyY2F0IChkZWJ1Z2ZpbGUsIGRlYnVnbGlu ayk7CiAKICAgaWYgKHNlcGFyYXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChkZWJ1 Z2ZpbGUsIGNyYzMyLCBvYmpmaWxlKSkKLSAgICBnb3RvIGNsZWFudXBfcmV0 dXJuX2RlYnVnZmlsZTsKKyAgICByZXR1cm4gZGVidWdmaWxlOwogCiAgIC8q IFRoZW4gdHJ5IGluIHRoZSBzdWJkaXJlY3RvcnkgbmFtZWQgREVCVUdfU1VC RElSRUNUT1JZLiAgKi8KICAgc3RyY3B5IChkZWJ1Z2ZpbGUsIGRpcik7CiAg IHN0cmNhdCAoZGVidWdmaWxlLCBERUJVR19TVUJESVJFQ1RPUlkpOwogICBz dHJjYXQgKGRlYnVnZmlsZSwgIi8iKTsKLSAgc3RyY2F0IChkZWJ1Z2ZpbGUs IGJhc2VuYW1lKTsKKyAgc3RyY2F0IChkZWJ1Z2ZpbGUsIGRlYnVnbGluayk7 CiAKICAgaWYgKHNlcGFyYXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChkZWJ1Z2Zp bGUsIGNyYzMyLCBvYmpmaWxlKSkKLSAgICBnb3RvIGNsZWFudXBfcmV0dXJu X2RlYnVnZmlsZTsKKyAgICByZXR1cm4gZGVidWdmaWxlOwogCiAgIC8qIFRo ZW4gdHJ5IGluIHRoZSBnbG9iYWwgZGVidWdmaWxlIGRpcmVjdG9yaWVzLgog CkBAIC0xNTIwLDI2ICsxNTA1LDI2IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdf ZmlsZV9ieV9kZWJ1Z2xpbmsgKHMKICAgICAgIGRlYnVnZmlsZVtkZWJ1Z2Rp cl9lbmQgLSBkZWJ1Z2Rpcl0gPSAwOwogICAgICAgc3RyY2F0IChkZWJ1Z2Zp bGUsICIvIik7CiAgICAgICBzdHJjYXQgKGRlYnVnZmlsZSwgZGlyKTsKLSAg ICAgIHN0cmNhdCAoZGVidWdmaWxlLCBiYXNlbmFtZSk7CisgICAgICBzdHJj YXQgKGRlYnVnZmlsZSwgZGVidWdsaW5rKTsKIAogICAgICAgaWYgKHNlcGFy YXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChkZWJ1Z2ZpbGUsIGNyYzMyLCBvYmpm aWxlKSkKLQlnb3RvIGNsZWFudXBfcmV0dXJuX2RlYnVnZmlsZTsKKwlyZXR1 cm4gZGVidWdmaWxlOwogCiAgICAgICAvKiBJZiB0aGUgZmlsZSBpcyBpbiB0 aGUgc3lzcm9vdCwgdHJ5IHVzaW5nIGl0cyBiYXNlIHBhdGggaW4gdGhlCiAJ IGdsb2JhbCBkZWJ1Z2ZpbGUgZGlyZWN0b3J5LiAgKi8KLSAgICAgIGlmIChj YW5vbl9uYW1lCi0JICAmJiBmaWxlbmFtZV9uY21wIChjYW5vbl9uYW1lLCBn ZGJfc3lzcm9vdCwKKyAgICAgIGlmIChjYW5vbl9kaXIgIT0gTlVMTAorCSAg JiYgZmlsZW5hbWVfbmNtcCAoY2Fub25fZGlyLCBnZGJfc3lzcm9vdCwKIAkJ CSAgICBzdHJsZW4gKGdkYl9zeXNyb290KSkgPT0gMAotCSAgJiYgSVNfRElS X1NFUEFSQVRPUiAoY2Fub25fbmFtZVtzdHJsZW4gKGdkYl9zeXNyb290KV0p KQorCSAgJiYgSVNfRElSX1NFUEFSQVRPUiAoY2Fub25fZGlyW3N0cmxlbiAo Z2RiX3N5c3Jvb3QpXSkpCiAJewogCSAgbWVtY3B5IChkZWJ1Z2ZpbGUsIGRl YnVnZGlyLCBkZWJ1Z2Rpcl9lbmQgLSBkZWJ1Z2Rpcik7CiAJICBkZWJ1Z2Zp bGVbZGVidWdkaXJfZW5kIC0gZGVidWdkaXJdID0gMDsKLQkgIHN0cmNhdCAo ZGVidWdmaWxlLCBjYW5vbl9uYW1lICsgc3RybGVuIChnZGJfc3lzcm9vdCkp OworCSAgc3RyY2F0IChkZWJ1Z2ZpbGUsIGNhbm9uX2RpciArIHN0cmxlbiAo Z2RiX3N5c3Jvb3QpKTsKIAkgIHN0cmNhdCAoZGVidWdmaWxlLCAiLyIpOwot CSAgc3RyY2F0IChkZWJ1Z2ZpbGUsIGJhc2VuYW1lKTsKKwkgIHN0cmNhdCAo ZGVidWdmaWxlLCBkZWJ1Z2xpbmspOwogCiAJICBpZiAoc2VwYXJhdGVfZGVi dWdfZmlsZV9leGlzdHMgKGRlYnVnZmlsZSwgY3JjMzIsIG9iamZpbGUpKQot CSAgICBnb3RvIGNsZWFudXBfcmV0dXJuX2RlYnVnZmlsZTsKKwkgICAgcmV0 dXJuIGRlYnVnZmlsZTsKIAl9CiAKICAgICAgIGRlYnVnZGlyID0gZGVidWdk aXJfZW5kOwpAQCAtMTU0NywxMiArMTUzMiw4MCBAQCBmaW5kX3NlcGFyYXRl X2RlYnVnX2ZpbGVfYnlfZGVidWdsaW5rIChzCiAgIHdoaWxlICgqZGVidWdk aXIgIT0gMCk7CiAKICAgeGZyZWUgKGRlYnVnZmlsZSk7Ci0gIGRlYnVnZmls ZSA9IE5VTEw7CisgIHJldHVybiBOVUxMOworfQorCisvKiBNb2RpZnkgUEFU SCB0byBjb250YWluIG9ubHkgImRpcmVjdG9yeS8iIHBhcnQgb2YgUEFUSC4K KyAgIElmIHRoZXJlIHdlcmUgbm8sIGRpcmVjdG9yeSBzZXBhcmF0b3JzIGlu IFBBVEgsIFBBVEggd2lsbCBiZSBlbXB0eQorICAgc3RyaW5nIG9uIHJldHVy bi4gICovCisKK3N0YXRpYyB2b2lkCit0ZXJtaW5hdGVfYWZ0ZXJfbGFzdF9k aXJfc2VwYXJhdG9yIChjaGFyICpwYXRoKQoreworICBpbnQgaTsKKworICAv KiBTdHJpcCBvZmYgdGhlIGZpbmFsIGZpbGVuYW1lIHBhcnQsIGxlYXZpbmcg dGhlIGRpcmVjdG9yeSBuYW1lLAorICAgICBmb2xsb3dlZCBieSBhIHNsYXNo LiAgVGhlIGRpcmVjdG9yeSBjYW4gYmUgcmVsYXRpdmUgb3IgYWJzb2x1dGUu ICAqLworICBmb3IgKGkgPSBzdHJsZW4ocGF0aCkgLSAxOyBpID49IDA7IGkt LSkKKyAgICB7CisgICAgICBpZiAoSVNfRElSX1NFUEFSQVRPUiAocGF0aFtp XSkpCisJYnJlYWs7CisgICAgfQorICAvKiBJZiBJIGlzIC0xIHRoZW4gbm8g ZGlyZWN0b3J5IGlzIHByZXNlbnQgdGhlcmUgYW5kIERJUiB3aWxsIGJlICIi LiAgKi8KKyAgcGF0aFtpKzFdID0gJ1wwJzsKK30KKworLyogRmluZCBzZXBh cmF0ZSBkZWJ1Z2luZm8gZm9yIE9CSkZJTEUgKHVzaW5nIC5nbnVfZGVidWds aW5rIHNlY3Rpb24pLgorICAgUmV0dXJucyBwYXRobmFtZSwgb3IgTlVMTC4g ICovCisKK2NoYXIgKgorZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2Rl YnVnbGluayAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCit7CisgIGNoYXIg KmRlYnVnbGluazsKKyAgY2hhciAqZGlyMSwgKmRpcjIsICpjYW5vbl9kaXI7 CisgIGNoYXIgKmRlYnVnZmlsZTsKKyAgdW5zaWduZWQgbG9uZyBjcmMzMjsK KworICBkZWJ1Z2xpbmsgPSBnZXRfZGVidWdfbGlua19pbmZvIChvYmpmaWxl LCAmY3JjMzIpOworCisgIGlmIChkZWJ1Z2xpbmsgPT0gTlVMTCkKKyAgICAv KiBUaGVyZSdzIG5vIHNlcGFyYXRlIGRlYnVnIGluZm8sIGhlbmNlIHRoZXJl J3Mgbm8gd2F5IHdlIGNvdWxkCisgICAgICAgbG9hZCBpdCA9PiBubyB3YXJu aW5nLiAgKi8KKyAgICByZXR1cm4gTlVMTDsKKworICBkaXIxID0geHN0cmR1 cCAob2JqZmlsZS0+bmFtZSk7CisgIHRlcm1pbmF0ZV9hZnRlcl9sYXN0X2Rp cl9zZXBhcmF0b3IgKGRpcjEpOworICBjYW5vbl9kaXIgPSBscmVhbHBhdGgg KGRpcjEpOworCisgIGRlYnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdf ZmlsZSAoZGlyMSwgY2Fub25fZGlyLCBkZWJ1Z2xpbmssCisJCQkJCWNyYzMy LCBvYmpmaWxlKTsKKyAgeGZyZWUgKGNhbm9uX2Rpcik7CisKKyAgaWYgKGRl YnVnZmlsZSAhPSBOVUxMKQorICAgIGdvdG8gY2xlYW51cDE7CisKKyAgLyog Rm9yIFBSIGdkYi85NTM4LCB0cnkgYWdhaW4gd2l0aCByZWFscGF0aCAoaWYg ZGlmZmVyZW50IGZyb20gdGhlCisgICAgIG9yaWdpbmFsKS4gICovCisgIGRp cjIgPSBscmVhbHBhdGggKG9iamZpbGUtPm5hbWUpOworICBpZiAoZGlyMiA9 PSBOVUxMKQorICAgIGdvdG8gY2xlYW51cDE7CisKKyAgdGVybWluYXRlX2Fm dGVyX2xhc3RfZGlyX3NlcGFyYXRvciAoZGlyMik7CisgIGlmIChzdHJjbXAg KGRpcjEsIGRpcjIpID09IDApCisgICAgLyogU2FtZSBkaXJlY3RvcnksIG5v IHBvaW50IHJldHJ5aW5nLiAgKi8KKyAgICBnb3RvIGNsZWFudXAyOworCisg IGNhbm9uX2RpciA9IGxyZWFscGF0aCAoZGlyMik7CisgIGRlYnVnZmlsZSA9 IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoZGlyMiwgY2Fub25fZGlyLCBk ZWJ1Z2xpbmssCisJCQkJCWNyYzMyLCBvYmpmaWxlKTsKKyAgeGZyZWUgKGNh bm9uX2Rpcik7CisKKyBjbGVhbnVwMjoKKyAgeGZyZWUgKGRpcjIpOworIGNs ZWFudXAxOgorICB4ZnJlZSAoZGlyMSk7CisgIHhmcmVlIChkZWJ1Z2xpbmsp OwogCi1jbGVhbnVwX3JldHVybl9kZWJ1Z2ZpbGU6Ci0gIHhmcmVlIChjYW5v bl9uYW1lKTsKLSAgeGZyZWUgKGJhc2VuYW1lKTsKLSAgeGZyZWUgKGRpcik7 CiAgIHJldHVybiBkZWJ1Z2ZpbGU7CiB9CiAKSW5kZXg6IHRlc3RzdWl0ZS9n ZGIuYmFzZS9zZXBkZWJ1Zy5leHAKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS Q1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv c2VwZGVidWcuZXhwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMzCmRpZmYg LXUgLXAgLXIxLjMzIHNlcGRlYnVnLmV4cAotLS0gdGVzdHN1aXRlL2dkYi5i YXNlL3NlcGRlYnVnLmV4cAk0IEphbiAyMDEyIDA4OjE3OjQ2IC0wMDAwCTEu MzMKKysrIHRlc3RzdWl0ZS9nZGIuYmFzZS9zZXBkZWJ1Zy5leHAJMTIgSmFu IDIwMTIgMjA6Mjk6NTMgLTAwMDAKQEAgLTQ1LDcgKzQ1LDcgQEAgaWYgIHsg W2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LwogCiAjIE5vdGU6 IHRoZSBwcm9jZWR1cmUgZ2RiX2dudV9zdHJpcF9kZWJ1ZyB3aWxsIHByb2R1 Y2UgYW4gZXhlY3V0YWJsZSBjYWxsZWQKICMgJHtiaW5maWxlfSwgd2hpY2gg aXMganVzdCBsaWtlIHRoZSBleGVjdXRhYmxlICgkYmluZmlsZSkgYnV0IHdp dGhvdXQKLSMgdGhlIGRlYnVnaW5mby4gSW5zdGVhZCAkYmluZmlsZSBoYXMg YSAuZ251ZGVidWdsaW5rIHNlY3Rpb24gd2hpY2ggY29udGFpbnMKKyMgdGhl IGRlYnVnaW5mby4gSW5zdGVhZCAkYmluZmlsZSBoYXMgYSAuZ251X2RlYnVn bGluayBzZWN0aW9uIHdoaWNoIGNvbnRhaW5zCiAjIHRoZSBuYW1lIG9mIGEg ZGVidWdpbmZvIG9ubHkgZmlsZS4gVGhpcyBmaWxlIHdpbGwgYmUgc3RvcmVk IGluIHRoZQogIyBnZGIuYmFzZS8gc3ViZGlyZWN0b3J5LgogCkBAIC01NSwx MCArNTUsMjYgQEAgaWYgW2dkYl9nbnVfc3RyaXBfZGVidWcgJGJpbmZpbGVd IHsKICAgICByZXR1cm4gLTEKIH0KIAorIworIyBQUiBnZGIvOTUzOC4gIFZl cmlmeSB0aGF0IHN5bWxpbmtlZCBleGVjdXRhYmxlIHN0aWxsIGZpbmRzIHRo ZSBzZXBhcmF0ZQorIyBkZWJ1Z2luZm8uCisjCitzZXQgb2xkX3N1YmRpciAk e3N1YmRpcn0KK3NldCBzdWJkaXIgJHtzdWJkaXJ9L3ByOTUzOAorcmVtb3Rl X2V4ZWMgYnVpbGQgIm1rZGlyICR7c3ViZGlyfSIKK3JlbW90ZV9leGVjIGJ1 aWxkICJsbiAtcyAke2JpbmZpbGV9ICR7c3ViZGlyfSIKK2NsZWFuX3Jlc3Rh cnQgJHt0ZXN0ZmlsZX0ke0VYRUVYVH0KK2lmIHsgJGdkYl9maWxlX2NtZF9k ZWJ1Z19pbmZvICE9ICJkZWJ1ZyIgfSB0aGVuIHsKKyAgICBmYWlsICJObyBk ZWJ1ZyBpbmZvcm1hdGlvbiBmb3VuZC4iCit9CisKKyMgbWFrZSBzdXJlIHdl IGFyZSBub3QgaG9sZGluZyBzdWJkaXIvYmluYXJ5IG9wZW4uCiBnZGJfZXhp dAotZ2RiX3N0YXJ0Ci1nZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRz dWJkaXIKLWdkYl9sb2FkICR7YmluZmlsZX0KKworcmVtb3RlX2V4ZWMgYnVp bGQgInJtIC1yZiAke3N1YmRpcn0iCitzZXQgc3ViZGlyICR7b2xkX3N1YmRp cn0KKworY2xlYW5fcmVzdGFydCAke3Rlc3RmaWxlfSR7RVhFRVhUfQogaWYg eyAkZ2RiX2ZpbGVfY21kX2RlYnVnX2luZm8gIT0gImRlYnVnIiB9IHRoZW4g ewogICAgIGZhaWwgIk5vIGRlYnVnIGluZm9ybWF0aW9uIGZvdW5kLiIKIH0K --0016e6d99c09be2d0304b65ab19d--