From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23396 invoked by alias); 23 Mar 2011 11:16:52 -0000 Received: (qmail 23290 invoked by uid 22791); 23 Mar 2011 11:16:31 -0000 X-SWARE-Spam-Status: No, hits=1.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,KAM_STOCKTIP,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,TW_BJ,TW_CP,TW_DB X-Spam-Check-By: sourceware.org Received: from mail-qy0-f169.google.com (HELO mail-qy0-f169.google.com) (209.85.216.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 23 Mar 2011 11:16:02 +0000 Received: by qyk2 with SMTP id 2so4699661qyk.0 for ; Wed, 23 Mar 2011 04:15:59 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.18.77 with SMTP id v13mr5492510qca.56.1300878959569; Wed, 23 Mar 2011 04:15:59 -0700 (PDT) Received: by 10.229.97.206 with HTTP; Wed, 23 Mar 2011 04:15:59 -0700 (PDT) In-Reply-To: <201103231109.p2NB970m008027@glazunov.sibelius.xs4all.nl> References: <20110303145832.GY30306@adacore.com> <83tyfkw00f.fsf@gnu.org> <201103231109.p2NB970m008027@glazunov.sibelius.xs4all.nl> Date: Wed, 23 Mar 2011 14:07:00 -0000 Message-ID: Subject: Re: [patch gdb]: Fix some DOS-path related issues in gdb From: Kai Tietz To: Mark Kettenis Cc: eliz@gnu.org, brobecker@adacore.com, gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0015176f0bb847ec25049f247c0f 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: 2011-03/txt/msg01020.txt.bz2 --0015176f0bb847ec25049f247c0f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 3498 2011/3/23 Mark Kettenis : >> Date: Wed, 23 Mar 2011 11:39:33 +0100 >> From: Kai Tietz >> >> 2011/3/3 Eli Zaretskii : >> >> Date: Thu, 3 Mar 2011 18:58:32 +0400 >> >> From: Joel Brobecker >> >> Cc: Kai Tietz , gdb-patches@sourceware.org >> >> >> >> > I didn't know that the Windows 64bit target can use ELF debug info. >> >> > Can it? =3DA0With what toolchains? >> >> > >> >> > As for mdebugread.c, I always thought it was MIPS specific. =3DA0Wh= at >> >> > other platforms use it? >> >> >> >> These would still be pertinent in the case of cross debugging, no? >> >> If the files were cross-compiled on Windows, the debug info would >> >> contain file paths that follow the Windows convention... >> > >> > Is that use-case even practical? =3DA0Who would develop on Windows if = they >> > have Linux or Irix? >> > >> > Anyway, if others don't mind to have DOS-ism in mdebugread.c and >> > elfread.c, I don't object. >> > >> >> Hello, >> >> I have updated patch against current trunk. Additionally I replaced >> the strrchr-patterns by lbasename. As now some time has pasted, I >> would like to kindly ask, if this patch is ok, or if there are still >> objections? > > You continue to make it hard for me to review your diffs by sending > them as base64-encoded MIME attachments. =A0But the solib-som.c bit > should be dropped. =A0It's a HP-UX native-only bit. Sorry for that, but this encoding is controlled by the gmail account. By naming them .txt at least I get plain/text encoding and not binary octet-stream. I removed file from patch. Here is the updated ChangeLog plus patch. 2011-03-23 Kai Tietz * breakpoint.c (clear_command): Use filename_cmp instead of strcmp for comparision. * buildsym.c (watch_main_source_file_lossage): Likewise. (patch_subfile_names): Use IS_DIR_SEPARATOR instead of checking just for slash. * dbxread.c (read_dbx_symtab): Use lbasename instead of strrchr and filename_cmp instead of strcmp for filenames. (add_old_header_file): Use filename_cmp instead of strcmp for comparision. * exec.c (exec_set_section_address): Likewise. * macrotab.c (macro_lookup_inclusion): Likewise. (macro_lookup_inclusion): Likewise. * elfread.c (_initialize_elfread): Likewise. (elfstab_offset_sections): Likewise. (elfstab_offset_sections): Use lbasename instead of strrchr. * mdebugread.c (parse_partial_symbols): Likewise. (arse_partial_symbols): Use filename_(n)cmp instead of str(n)cmp for comparision. * minsyms.c (lookup_minimal_symbol): Likewise. * psymtab.c (read_psymtabs_with_filename): Likewise. * solib.c (solib_read_symbols): Likewise. (reload_shared_libraries_1): Likewise. * symmisc.c (maintenance_print_symbols): Likewise. * symfile.c (separate_debug_file_exists): Likewise. (reread_symbols): Likewise. (find_separate_debug_file_by_debuglink): Likewise. * remote-fileio.c (remote_fileio_func_rename): Likewise. * source.c (add_path): Likewise. * symtab.c (filename_seen): Likewise. (file_matches): Likewise. (print_symbol_info): Likewise. (maybe_add_partial_symtab_filename): Likewise. (make_source_files_completion_list): Likewise. * xml-support.c (fetch_xml_builtin): Likewise. * xml-syscall.c (init_sysinfo): Likewise. * dwarf2read.c (find_file_and_directory): Use IS_ABSOLUTE_PATH. * windows-nat.c (_initialize_check_for_gdb_ini): Use IS_DIR_SEPARATOR for checking for trailing path separator. Regards, Kai --0015176f0bb847ec25049f247c0f Content-Type: text/plain; charset=US-ASCII; name="gdb_filename.txt" Content-Disposition: attachment; filename="gdb_filename.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_glm5pwpn0 Content-length: 31021 SW5kZXg6IGdkYi9icmVha3BvaW50LmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZ2RiLm9yaWcvYnJlYWtwb2ludC5jCTIwMTEtMDMtMjMgMTI6MTA6 MzcuODI1ODExNjAwICswMTAwCisrKyBnZGIvYnJlYWtwb2ludC5jCTIwMTEt MDMtMjMgMTI6MTI6MzIuMzY0MjE4NjAwICswMTAwCkBAIC0zOSw2ICszOSw3 IEBACiAjaW5jbHVkZSAibGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJnZGJfc3Ry aW5nLmgiCiAjaW5jbHVkZSAiZGVtYW5nbGUuaCIKKyNpbmNsdWRlICJmaWxl bmFtZXMuaCIKICNpbmNsdWRlICJhbm5vdGF0ZS5oIgogI2luY2x1ZGUgInN5 bWZpbGUuaCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgpAQCAtOTUyNCw4ICs5 NTI1LDggQEAgY2xlYXJfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90 dHkpCiAJCQkJICAgICYmIGItPnNvdXJjZV9maWxlICE9IE5VTEwKIAkJCQkg ICAgJiYgc2FsLnN5bXRhYiAhPSBOVUxMCiAJCQkJICAgICYmIHNhbC5wc3Bh Y2UgPT0gbG9jLT5wc3BhY2UKLQkJCQkgICAgJiYgc3RyY21wIChiLT5zb3Vy Y2VfZmlsZSwKLQkJCQkJICAgICAgIHNhbC5zeW10YWItPmZpbGVuYW1lKSA9 PSAwCisJCQkJICAgICYmIGZpbGVuYW1lX2NtcCAoYi0+c291cmNlX2ZpbGUs CisJCQkJCQkgICAgIHNhbC5zeW10YWItPmZpbGVuYW1lKSA9PSAwCiAJCQkJ ICAgICYmIGItPmxpbmVfbnVtYmVyID09IHNhbC5saW5lKTsKIAkJICBpZiAo cGNfbWF0Y2ggfHwgbGluZV9tYXRjaCkKIAkJICAgIHsKSW5kZXg6IGdkYi9i dWlsZHN5bS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmln L2J1aWxkc3ltLmMJMjAxMS0wMy0yMyAxMjoxMDozNy44MjY4MTE2MDAgKzAx MDAKKysrIGdkYi9idWlsZHN5bS5jCTIwMTEtMDMtMjMgMTI6MTI6MzIuNDA4 NzI0MzAwICswMTAwCkBAIC02NDMsNyArNjQzLDcgQEAgdm9pZAogcGF0Y2hf c3ViZmlsZV9uYW1lcyAoc3RydWN0IHN1YmZpbGUgKnN1YmZpbGUsIGNoYXIg Km5hbWUpCiB7CiAgIGlmIChzdWJmaWxlICE9IE5VTEwgJiYgc3ViZmlsZS0+ ZGlybmFtZSA9PSBOVUxMICYmIHN1YmZpbGUtPm5hbWUgIT0gTlVMTAotICAg ICAgJiYgc3ViZmlsZS0+bmFtZVtzdHJsZW4gKHN1YmZpbGUtPm5hbWUpIC0g MV0gPT0gJy8nKQorICAgICAgJiYgSVNfRElSX1NFUEFSQVRPUiAoc3ViZmls ZS0+bmFtZVtzdHJsZW4gKHN1YmZpbGUtPm5hbWUpIC0gMV0pKQogICAgIHsK ICAgICAgIHN1YmZpbGUtPmRpcm5hbWUgPSBzdWJmaWxlLT5uYW1lOwogICAg ICAgc3ViZmlsZS0+bmFtZSA9IHhzdHJkdXAgKG5hbWUpOwpAQCAtODc4LDcg Kzg3OCw3IEBAIHdhdGNoX21haW5fc291cmNlX2ZpbGVfbG9zc2FnZSAodm9p ZCkKIAkgICBzdWJmaWxlLT5uZXh0OwogCSAgIHN1YmZpbGUgPSBzdWJmaWxl LT5uZXh0KQogCXsKLQkgIGlmIChzdHJjbXAgKGxiYXNlbmFtZSAoc3ViZmls ZS0+bmFtZSksIG1haW5iYXNlKSA9PSAwKQorCSAgaWYgKGZpbGVuYW1lX2Nt cCAobGJhc2VuYW1lIChzdWJmaWxlLT5uYW1lKSwgbWFpbmJhc2UpID09IDAp CiAJICAgIHsKIAkgICAgICArK25yX21hdGNoZXM7CiAJICAgICAgbWFpbnN1 Yl9hbGlhcyA9IHN1YmZpbGU7CkluZGV4OiBnZGIvZGJ4cmVhZC5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL2RieHJlYWQuYwkyMDEx LTAzLTIzIDEyOjEwOjM3LjgyNzgxMTYwMCArMDEwMAorKysgZ2RiL2RieHJl YWQuYwkyMDExLTAzLTIzIDEyOjEyOjMyLjQxOTcyNTcwMCArMDEwMApAQCAt NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgInRhcmdldC5oIgogI2luY2x1ZGUg ImdkYmNvcmUuaCIJCS8qIGZvciBiZmQgc3R1ZmYgKi8KICNpbmNsdWRlICJs aWJhb3V0LmgiCQkvKiBGSVhNRSBTZWNyZXQgaW50ZXJuYWwgQkZEIHN0dWZm IGZvciBhLm91dCAqLworI2luY2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1 ZGUgIm9iamZpbGVzLmgiCiAjaW5jbHVkZSAiYnVpbGRzeW0uaCIKICNpbmNs dWRlICJzdGFic3JlYWQuaCIKQEAgLTM0Niw3ICszNDcsNyBAQCBhZGRfb2xk X2hlYWRlcl9maWxlIChjaGFyICpuYW1lLCBpbnQgaW5zCiAgIGludCBpOwog CiAgIGZvciAoaSA9IDA7IGkgPCBOX0hFQURFUl9GSUxFUyAoY3VycmVudF9v YmpmaWxlKTsgaSsrKQotICAgIGlmIChzdHJjbXAgKHBbaV0ubmFtZSwgbmFt ZSkgPT0gMCAmJiBpbnN0YW5jZSA9PSBwW2ldLmluc3RhbmNlKQorICAgIGlm IChmaWxlbmFtZV9jbXAgKHBbaV0ubmFtZSwgbmFtZSkgPT0gMCAmJiBpbnN0 YW5jZSA9PSBwW2ldLmluc3RhbmNlKQogICAgICAgewogCWFkZF90aGlzX29i amVjdF9oZWFkZXJfZmlsZSAoaSk7CiAJcmV0dXJuOwpAQCAtMTQ2NSw3ICsx NDY2LDcgQEAgcmVhZF9kYnhfc3ltdGFiIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZQogCSAgICBDT1JFX0FERFIgdmFsdTsKIAkgICAgc3RhdGljIGludCBw cmV2X3NvX3N5bW51bSA9IC0xMDsKIAkgICAgc3RhdGljIGludCBmaXJzdF9z b19zeW1udW07Ci0JICAgIGNoYXIgKnA7CisJICAgIGNvbnN0IGNoYXIgKnA7 CiAJICAgIHN0YXRpYyBjaGFyICpkaXJuYW1lX25zbzsKIAkgICAgaW50IHBy ZXZfdGV4dGxvd19ub3Rfc2V0OwogCkBAIC0xNTIyLDggKzE1MjMsOCBAQCBy ZWFkX2RieF9zeW10YWIgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlCiAJICAg ICAgIElmIHBzdCBleGlzdHMsIGlzIGVtcHR5LCBhbmQgaGFzIGEgZmlsZW5h bWUgZW5kaW5nIGluICcvJywKIAkgICAgICAgd2UgYXNzdW1lIHRoZSBwcmV2 aW91cyBOX1NPIHdhcyBhIGRpcmVjdG9yeSBuYW1lLiAgKi8KIAotCSAgICBw ID0gc3RycmNociAobmFtZXN0cmluZywgJy8nKTsKLQkgICAgaWYgKHAgJiYg KihwICsgMSkgPT0gJ1wwMDAnKQorCSAgICBwID0gbGJhc2VuYW1lIChuYW1l c3RyaW5nKTsKKwkgICAgaWYgKHAgIT0gbmFtZXN0cmluZyAmJiAqcCA9PSAn XDAwMCcpCiAJICAgICAgewogCQkvKiBTYXZlIHRoZSBkaXJlY3RvcnkgbmFt ZSBTT3MgbG9jYWxseSwgdGhlbiBzYXZlIGl0IGludG8KIAkJICAgdGhlIHBz eW10YWIgd2hlbiBpdCdzIGNyZWF0ZWQgYmVsb3cuICAqLwpAQCAtMTYxMiwx MyArMTYxMywxMyBAQCByZWFkX2RieF9zeW10YWIgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlCiAJICAgICAgIHRoaW5ncyBsaWtlICJicmVhayBjLWV4cC55 OjQzNSIgbmVlZCB0byB3b3JrIChJCiAJICAgICAgIHN1cHBvc2UgdGhlIHBz eW10YWJfaW5jbHVkZV9saXN0IGNvdWxkIGJlIGhhc2hlZCBvciBwdXQKIAkg ICAgICAgaW4gYSBiaW5hcnkgdHJlZSwgaWYgcHJvZmlsaW5nIHNob3dzIHRo aXMgaXMgYSBtYWpvciBob2cpLiAgKi8KLQkgICAgaWYgKHBzdCAmJiBzdHJj bXAgKG5hbWVzdHJpbmcsIHBzdC0+ZmlsZW5hbWUpID09IDApCisJICAgIGlm IChwc3QgJiYgZmlsZW5hbWVfY21wIChuYW1lc3RyaW5nLCBwc3QtPmZpbGVu YW1lKSA9PSAwKQogCSAgICAgIGNvbnRpbnVlOwogCSAgICB7CiAJICAgICAg aW50IGk7CiAKIAkgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5jbHVkZXNfdXNl ZDsgaSsrKQotCQlpZiAoc3RyY21wIChuYW1lc3RyaW5nLCBwc3ltdGFiX2lu Y2x1ZGVfbGlzdFtpXSkgPT0gMCkKKwkJaWYgKGZpbGVuYW1lX2NtcCAobmFt ZXN0cmluZywgcHN5bXRhYl9pbmNsdWRlX2xpc3RbaV0pID09IDApCiAJCSAg ewogCQkgICAgaSA9IC0xOwogCQkgICAgYnJlYWs7CkluZGV4OiBnZGIvZWxm cmVhZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL2Vs ZnJlYWQuYwkyMDExLTAzLTIzIDEyOjEwOjM3LjgyOTgxMTYwMCArMDEwMAor KysgZ2RiL2VsZnJlYWQuYwkyMDExLTAzLTIzIDEyOjEyOjMyLjQzOTcyODIw MCArMDEwMApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNvbXBsYWlu dHMuaCIKICNpbmNsdWRlICJkZW1hbmdsZS5oIgogI2luY2x1ZGUgInBzeW1w cml2LmgiCisjaW5jbHVkZSAiZmlsZW5hbWVzLmgiCiAKIGV4dGVybiB2b2lk IF9pbml0aWFsaXplX2VsZnJlYWQgKHZvaWQpOwogCkBAIC03MDcsNyArNzA4 LDggQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0 cgogICAgICAgYnVpbGRfaWRfbmFtZSA9IGJ1aWxkX2lkX3RvX2RlYnVnX2Zp bGVuYW1lIChidWlsZF9pZCk7CiAgICAgICB4ZnJlZSAoYnVpbGRfaWQpOwog ICAgICAgLyogUHJldmVudCBsb29waW5nIG9uIGEgc3RyaXBwZWQgLmRlYnVn IGZpbGUuICAqLwotICAgICAgaWYgKGJ1aWxkX2lkX25hbWUgIT0gTlVMTCAm JiBzdHJjbXAgKGJ1aWxkX2lkX25hbWUsIG9iamZpbGUtPm5hbWUpID09IDAp CisgICAgICBpZiAoYnVpbGRfaWRfbmFtZSAhPSBOVUxMCisJICAmJiBmaWxl bmFtZV9jbXAgKGJ1aWxkX2lkX25hbWUsIG9iamZpbGUtPm5hbWUpID09IDAp CiAgICAgICAgIHsKIAkgIHdhcm5pbmcgKF8oIlwiJXNcIjogc2VwYXJhdGUg ZGVidWcgaW5mbyBmaWxlIGhhcyBubyBkZWJ1ZyBpbmZvIiksCiAJCSAgIGJ1 aWxkX2lkX25hbWUpOwpAQCAtMTAyMywxMiArMTAyNSwxMyBAQCBlbGZzdGFi X29mZnNldF9zZWN0aW9ucyAoc3RydWN0IG9iamZpbGUKICAgc3RydWN0IHN0 YWJfc2VjdGlvbl9pbmZvICptYXliZSA9IGRieC0+c3RhYl9zZWN0aW9uX2lu Zm87CiAgIHN0cnVjdCBzdGFiX3NlY3Rpb25faW5mbyAqcXVlc3Rpb25hYmxl ID0gMDsKICAgaW50IGk7Ci0gIGNoYXIgKnA7CisgIGNvbnN0IGNoYXIgKnA7 CiAKICAgLyogVGhlIEVMRiBzeW1ib2wgaW5mbyBkb2Vzbid0IGluY2x1ZGUg cGF0aCBuYW1lcywgc28gc3RyaXAgdGhlIHBhdGgKICAgICAgKGlmIGFueSkg ZnJvbSB0aGUgcHN5bXRhYiBmaWxlbmFtZS4gICovCi0gIHdoaWxlICgwICE9 IChwID0gc3RyY2hyIChmaWxlbmFtZSwgJy8nKSkpCi0gICAgZmlsZW5hbWUg PSBwICsgMTsKKyAgcCA9IGxiYXNlbmFtZSAoZmlsZW5hbWUpOworICBpZiAo cCAhPSBmaWxlbmFtZSkKKyAgICBmaWxlbmFtZSA9IHA7CiAKICAgLyogRklY TUU6ICBUaGlzIGxpbmVhciBzZWFyY2ggY291bGQgc3BlZWQgdXAgc2lnbmlm aWNhbnRseQogICAgICBpZiBpdCB3YXMgY2hhaW5lZCBpbiB0aGUgcmlnaHQg b3JkZXIgdG8gbWF0Y2ggaG93IHdlIHNlYXJjaCBpdCwKQEAgLTEwMzYsNyAr MTAzOSw3IEBAIGVsZnN0YWJfb2Zmc2V0X3NlY3Rpb25zIChzdHJ1Y3Qgb2Jq ZmlsZQogICBmb3IgKDsgbWF5YmU7IG1heWJlID0gbWF5YmUtPm5leHQpCiAg ICAgewogICAgICAgaWYgKGZpbGVuYW1lWzBdID09IG1heWJlLT5maWxlbmFt ZVswXQotCSAgJiYgc3RyY21wIChmaWxlbmFtZSwgbWF5YmUtPmZpbGVuYW1l KSA9PSAwKQorCSAgJiYgZmlsZW5hbWVfY21wIChmaWxlbmFtZSwgbWF5YmUt PmZpbGVuYW1lKSA9PSAwKQogCXsKIAkgIC8qIFdlIGZvdW5kIGEgbWF0Y2gu ICBCdXQgdGhlcmUgbWlnaHQgYmUgc2V2ZXJhbCBzb3VyY2UgZmlsZXMKIAkg ICAgIChmcm9tIGRpZmZlcmVudCBkaXJlY3Rvcmllcykgd2l0aCB0aGUgc2Ft ZSBuYW1lLiAgKi8KSW5kZXg6IGdkYi9leGVjLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gZ2RiLm9yaWcvZXhlYy5jCTIwMTEtMDMtMjMgMTI6MTA6 MzcuODMwODExNjAwICswMTAwCisrKyBnZGIvZXhlYy5jCTIwMTEtMDMtMjMg MTI6MTI6MzIuNDQ4NzI5MzAwICswMTAwCkBAIC0yNSw2ICsyNSw3IEBACiAj aW5jbHVkZSAidGFyZ2V0LmgiCiAjaW5jbHVkZSAiZ2RiY21kLmgiCiAjaW5j bHVkZSAibGFuZ3VhZ2UuaCIKKyNpbmNsdWRlICJmaWxlbmFtZXMuaCIKICNp bmNsdWRlICJzeW1maWxlLmgiCiAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICNp bmNsdWRlICJjb21wbGV0ZXIuaCIKQEAgLTg0NSw3ICs4NDYsNyBAQCBleGVj X3NldF9zZWN0aW9uX2FkZHJlc3MgKGNvbnN0IGNoYXIgKmZpCiAgIHRhYmxl ID0gY3VycmVudF90YXJnZXRfc2VjdGlvbnM7CiAgIGZvciAocCA9IHRhYmxl LT5zZWN0aW9uczsgcCA8IHRhYmxlLT5zZWN0aW9uc19lbmQ7IHArKykKICAg ICB7Ci0gICAgICBpZiAoc3RyY21wIChmaWxlbmFtZSwgcC0+YmZkLT5maWxl bmFtZSkgPT0gMAorICAgICAgaWYgKGZpbGVuYW1lX2NtcCAoZmlsZW5hbWUs IHAtPmJmZC0+ZmlsZW5hbWUpID09IDAKIAkgICYmIGluZGV4ID09IHAtPnRo ZV9iZmRfc2VjdGlvbi0+aW5kZXgpCiAJewogCSAgcC0+ZW5kYWRkciArPSBh ZGRyZXNzIC0gcC0+YWRkcjsKSW5kZXg6IGdkYi9tYWNyb3RhYi5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL21hY3JvdGFiLmMJMjAx MS0wMy0yMyAxMjoxMDozNy44MzE4MTE2MDAgKzAxMDAKKysrIGdkYi9tYWNy b3RhYi5jCTIwMTEtMDMtMjMgMTI6MTI6MzIuNDU2MjMwMzAwICswMTAwCkBA IC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiZGVmcy5oIgogI2luY2x1ZGUg ImdkYl9vYnN0YWNrLmgiCiAjaW5jbHVkZSAic3BsYXktdHJlZS5oIgorI2lu Y2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1ZGUgInN5bXRhYi5oIgogI2lu Y2x1ZGUgInN5bWZpbGUuaCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgpAQCAt NTAwLDcgKzUwMSw3IEBAIHN0cnVjdCBtYWNyb19zb3VyY2VfZmlsZSAqCiBt YWNyb19sb29rdXBfaW5jbHVzaW9uIChzdHJ1Y3QgbWFjcm9fc291cmNlX2Zp bGUgKnNvdXJjZSwgY29uc3QgY2hhciAqbmFtZSkKIHsKICAgLyogSXMgU09V UkNFIGl0c2VsZiBuYW1lZCBOQU1FPyAgKi8KLSAgaWYgKHN0cmNtcCAobmFt ZSwgc291cmNlLT5maWxlbmFtZSkgPT0gMCkKKyAgaWYgKGZpbGVuYW1lX2Nt cCAobmFtZSwgc291cmNlLT5maWxlbmFtZSkgPT0gMCkKICAgICByZXR1cm4g c291cmNlOwogCiAgIC8qIFRoZSBmaWxlbmFtZSBpbiB0aGUgc291cmNlIHN0 cnVjdHVyZSBpcyBwcm9iYWJseSBhIGZ1bGwgcGF0aCwgYnV0CkBAIC01MTAs MTEgKzUxMSwxMiBAQCBtYWNyb19sb29rdXBfaW5jbHVzaW9uIChzdHJ1Y3Qg bWFjcm9fc291CiAgICAgaW50IHNyY19uYW1lX2xlbiA9IHN0cmxlbiAoc291 cmNlLT5maWxlbmFtZSk7CiAKICAgICAvKiBXZSBkbyBtZWFuIDwgaGVyZSwg YW5kIG5vdCA8PTsgaWYgdGhlIGxlbmd0aHMgYXJlIHRoZSBzYW1lLAotICAg ICAgIHRoZW4gdGhlIHN0cmNtcCBhYm92ZSBzaG91bGQgaGF2ZSB0cmlnZ2Vy ZWQsIGFuZCB3ZSBuZWVkIHRvCisgICAgICAgdGhlbiB0aGUgZmlsZW5hbWVf Y21wIGFib3ZlIHNob3VsZCBoYXZlIHRyaWdnZXJlZCwgYW5kIHdlIG5lZWQg dG8KICAgICAgICBjaGVjayBmb3IgYSBzbGFzaCBoZXJlLiAgKi8KICAgICBp ZiAobmFtZV9sZW4gPCBzcmNfbmFtZV9sZW4KLSAgICAgICAgJiYgc291cmNl LT5maWxlbmFtZVtzcmNfbmFtZV9sZW4gLSBuYW1lX2xlbiAtIDFdID09ICcv JwotICAgICAgICAmJiBzdHJjbXAgKG5hbWUsIHNvdXJjZS0+ZmlsZW5hbWUg KyBzcmNfbmFtZV9sZW4gLSBuYW1lX2xlbikgPT0gMCkKKyAgICAgICAgJiYg SVNfRElSX1NFUEFSQVRPUiAoc291cmNlLT5maWxlbmFtZVtzcmNfbmFtZV9s ZW4gLSBuYW1lX2xlbiAtIDFdKQorICAgICAgICAmJiBmaWxlbmFtZV9jbXAg KG5hbWUsCisJCQkgc291cmNlLT5maWxlbmFtZSArIHNyY19uYW1lX2xlbiAt IG5hbWVfbGVuKSA9PSAwKQogICAgICAgcmV0dXJuIHNvdXJjZTsKICAgfQog CkluZGV4OiBnZGIvbWRlYnVncmVhZC5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIGdkYi5vcmlnL21kZWJ1Z3JlYWQuYwkyMDExLTAzLTIzIDEyOjEw OjM3LjgzMjgxMTYwMCArMDEwMAorKysgZ2RiL21kZWJ1Z3JlYWQuYwkyMDEx LTAzLTIzIDEyOjEyOjMyLjQ2NjIzMTYwMCArMDEwMApAQCAtNDUsNiArNDUs NyBAQAogI2luY2x1ZGUgInN5bXRhYi5oIgogI2luY2x1ZGUgImdkYnR5cGVz LmgiCiAjaW5jbHVkZSAiZ2RiY29yZS5oIgorI2luY2x1ZGUgImZpbGVuYW1l cy5oIgogI2luY2x1ZGUgIm9iamZpbGVzLmgiCiAjaW5jbHVkZSAiZ2RiX29i c3RhY2suaCIKICNpbmNsdWRlICJidWlsZHN5bS5oIgpAQCAtMjk1OSw3ICsy OTYwLDcgQEAgcGFyc2VfcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3Qgb2JqZmls ZSAqbwogCQkgICAgICBDT1JFX0FERFIgdmFsdTsKIAkJICAgICAgc3RhdGlj IGludCBwcmV2X3NvX3N5bW51bSA9IC0xMDsKIAkJICAgICAgc3RhdGljIGlu dCBmaXJzdF9zb19zeW1udW07Ci0JCSAgICAgIGNoYXIgKnA7CisJCSAgICAg IGNvbnN0IGNoYXIgKnA7CiAJCSAgICAgIGludCBwcmV2X3RleHRsb3dfbm90 X3NldDsKIAogCQkgICAgICB2YWx1ID0gc2gudmFsdWUgKyBBTk9GRlNFVCAo b2JqZmlsZS0+c2VjdGlvbl9vZmZzZXRzLApAQCAtMzAxMiw5ICszMDEzLDgg QEAgcGFyc2VfcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3Qgb2JqZmlsZSAqbwog CQkJIHRoZSBzZWNvbmQgdGhlIGZpbGUgbmFtZS4gIElmIHBzdCBleGlzdHMs IGlzCiAJCQkgZW1wdHksIGFuZCBoYXMgYSBmaWxlbmFtZSBlbmRpbmcgaW4g Jy8nLCB3ZSBhc3N1bWUKIAkJCSB0aGUgcHJldmlvdXMgTl9TTyB3YXMgYSBk aXJlY3RvcnkgbmFtZS4gICovCi0KLQkJICAgICAgcCA9IHN0cnJjaHIgKG5h bWVzdHJpbmcsICcvJyk7Ci0JCSAgICAgIGlmIChwICYmICoocCArIDEpID09 ICdcMDAwJykKKwkJICAgICAgcCA9IGxiYXNlbmFtZSAobmFtZXN0cmluZyk7 CisJCSAgICAgIGlmIChwICE9IG5hbWVzdHJpbmcgJiYgKnAgPT0gJ1wwMDAn KQogCQkJY29udGludWU7CQkvKiBTaW1wbHkgaWdub3JlIGRpcmVjdG9yeQog CQkJCQkJICAgbmFtZSBTT3MuICAqLwogCkBAIC0zMDY1LDE1ICszMDY1LDE1 IEBAIHBhcnNlX3BhcnRpYWxfc3ltYm9scyAoc3RydWN0IG9iamZpbGUgKm8K IAkJCSB3b3JrIChJIHN1cHBvc2UgdGhlIHBzeW10YWJfaW5jbHVkZV9saXN0 IGNvdWxkIGJlCiAJCQkgaGFzaGVkIG9yIHB1dCBpbiBhIGJpbmFyeSB0cmVl LCBpZiBwcm9maWxpbmcgc2hvd3MKIAkJCSB0aGlzIGlzIGEgbWFqb3IgaG9n KS4gICovCi0JCSAgICAgIGlmIChwc3QgJiYgc3RyY21wIChuYW1lc3RyaW5n LCBwc3QtPmZpbGVuYW1lKSA9PSAwKQorCQkgICAgICBpZiAocHN0ICYmIGZp bGVuYW1lX2NtcCAobmFtZXN0cmluZywgcHN0LT5maWxlbmFtZSkgPT0gMCkK IAkJCWNvbnRpbnVlOwogCiAJCSAgICAgIHsKIAkJCWludCBpOwogCiAJCQlm b3IgKGkgPSAwOyBpIDwgaW5jbHVkZXNfdXNlZDsgaSsrKQotCQkJICBpZiAo c3RyY21wIChuYW1lc3RyaW5nLAotCQkJCSAgICAgIHBzeW10YWJfaW5jbHVk ZV9saXN0W2ldKSA9PSAwKQorCQkJICBpZiAoZmlsZW5hbWVfY21wIChuYW1l c3RyaW5nLAorCQkJCQkgICAgcHN5bXRhYl9pbmNsdWRlX2xpc3RbaV0pID09 IDApCiAJCQkgICAgewogCQkJICAgICAgaSA9IC0xOwogCQkJICAgICAgYnJl YWs7CkluZGV4OiBnZGIvbWluc3ltcy5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIGdkYi5vcmlnL21pbnN5bXMuYwkyMDExLTAzLTIzIDEyOjEwOjM3 LjgzMzgxMTYwMCArMDEwMAorKysgZ2RiL21pbnN5bXMuYwkyMDExLTAzLTIz IDEyOjEyOjMyLjQ4OTIzNDUwMCArMDEwMApAQCAtNDMsNiArNDMsNyBAQAog I2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKICNpbmNsdWRlICJzeW10YWIuaCIK ICNpbmNsdWRlICJiZmQuaCIKKyNpbmNsdWRlICJmaWxlbmFtZXMuaCIKICNp bmNsdWRlICJzeW1maWxlLmgiCiAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICNp bmNsdWRlICJkZW1hbmdsZS5oIgpAQCAtMjU1LDcgKzI1Niw3IEBAIGxvb2t1 cF9taW5pbWFsX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICBjYXNlIG1zdF9maWxlX2RhdGE6CiAgICAgICAgICAg ICAgICAgICAgICAgY2FzZSBtc3RfZmlsZV9ic3M6CiAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoc2ZpbGUgPT0gTlVMTAotCQkJICAgIHx8IHN0cmNt cCAobXN5bWJvbC0+ZmlsZW5hbWUsIHNmaWxlKSA9PSAwKQorCQkJICAgIHx8 IGZpbGVuYW1lX2NtcCAobXN5bWJvbC0+ZmlsZW5hbWUsIHNmaWxlKSA9PSAw KQogICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZF9maWxlX3N5bWJv bCA9IG1zeW1ib2w7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK IApJbmRleDogZ2RiL3BzeW10YWIuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBnZGIub3JpZy9wc3ltdGFiLmMJMjAxMS0wMy0yMyAxMjoxMDozNy44 MzQ4MTE2MDAgKzAxMDAKKysrIGdkYi9wc3ltdGFiLmMJMjAxMS0wMy0yMyAx MjoxMjozMi40OTg3MzU3MDAgKzAxMDAKQEAgLTEwNjcsNyArMTA2Nyw3IEBA IHJlYWRfcHN5bXRhYnNfd2l0aF9maWxlbmFtZSAoc3RydWN0IG9iamYKIAog ICBBTExfT0JKRklMRV9QU1lNVEFCU19SRVFVSVJFRCAob2JqZmlsZSwgcCkK ICAgICB7Ci0gICAgICBpZiAoc3RyY21wIChmaWxlbmFtZSwgcC0+ZmlsZW5h bWUpID09IDApCisgICAgICBpZiAoZmlsZW5hbWVfY21wIChmaWxlbmFtZSwg cC0+ZmlsZW5hbWUpID09IDApCiAJUFNZTVRBQl9UT19TWU1UQUIgKHApOwog ICAgIH0KIH0KQEAgLTE3MzUsNyArMTczNSw3IEBAIHByaW50LXBzeW1ib2xz IHRha2VzIGFuIG91dHB1dCBmaWxlIG5hbWUKIAogICBpbW1lZGlhdGVfcXVp dCsrOwogICBBTExfUFNZTVRBQlMgKG9iamZpbGUsIHBzKQotICAgIGlmIChz eW1uYW1lID09IE5VTEwgfHwgc3RyY21wIChzeW1uYW1lLCBwcy0+ZmlsZW5h bWUpID09IDApCisgICAgaWYgKHN5bW5hbWUgPT0gTlVMTCB8fCBmaWxlbmFt ZV9jbXAgKHN5bW5hbWUsIHBzLT5maWxlbmFtZSkgPT0gMCkKICAgICBkdW1w X3BzeW10YWIgKG9iamZpbGUsIHBzLCBvdXRmaWxlKTsKICAgaW1tZWRpYXRl X3F1aXQtLTsKICAgZG9fY2xlYW51cHMgKGNsZWFudXBzKTsKSW5kZXg6IGdk Yi9yZW1vdGUtZmlsZWlvLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g Z2RiLm9yaWcvcmVtb3RlLWZpbGVpby5jCTIwMTEtMDMtMjMgMTI6MTA6Mzcu ODM1ODExNjAwICswMTAwCisrKyBnZGIvcmVtb3RlLWZpbGVpby5jCTIwMTEt MDMtMjMgMTI6MTI6MzIuNTEwMjM3MjAwICswMTAwCkBAIC0zMSw2ICszMSw3 IEBACiAjaW5jbHVkZSAicmVtb3RlLWZpbGVpby5oIgogI2luY2x1ZGUgImV2 ZW50LWxvb3AuaCIKICNpbmNsdWRlICJ0YXJnZXQuaCIKKyNpbmNsdWRlICJm aWxlbmFtZXMuaCIKIAogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8 c3lzL3RpbWUuaD4KQEAgLTEwMjAsOCArMTAyMSw4IEBAIHJlbW90ZV9maWxl aW9fZnVuY19yZW5hbWUgKGNoYXIgKmJ1ZikKIAkJICBjeWd3aW5fY29udl9w YXRoIChDQ1BfV0lOX0FfVE9fUE9TSVgsIG5ld3BhdGgsIG5ld2Z1bGxwYXRo LAogCQkJCSAgICBQQVRIX01BWCk7CiAJCSAgbGVuID0gc3RybGVuIChvbGRm dWxscGF0aCk7Ci0JCSAgaWYgKG5ld2Z1bGxwYXRoW2xlbl0gPT0gJy8nCi0J CSAgICAgICYmICFzdHJuY21wIChvbGRmdWxscGF0aCwgbmV3ZnVsbHBhdGgs IGxlbikpCisJCSAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKG5ld2Z1bGxwYXRo W2xlbl0pCisJCSAgICAgICYmICFmaWxlbmFtZV9uY21wIChvbGRmdWxscGF0 aCwgbmV3ZnVsbHBhdGgsIGxlbikpCiAJCSAgICBlcnJubyA9IEVJTlZBTDsK IAkJICBlbHNlCiAJCSAgICBlcnJubyA9IEVFWElTVDsKSW5kZXg6IGdkYi9z b2xpYi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL3Nv bGliLmMJMjAxMS0wMy0yMyAxMjoxMDozNy44Mzc4MTE2MDAgKzAxMDAKKysr IGdkYi9zb2xpYi5jCTIwMTEtMDMtMjMgMTI6MTI6MzIuNTE5MjM4MzAwICsw MTAwCkBAIC02MzgsNyArNjM4LDcgQEAgc29saWJfcmVhZF9zeW1ib2xzIChz dHJ1Y3Qgc29fbGlzdCAqc28sCiAJICAvKiBIYXZlIHdlIGFscmVhZHkgbG9h ZGVkIHRoaXMgc2hhcmVkIG9iamVjdD8gICovCiAJICBBTExfT0JKRklMRVMg KHNvLT5vYmpmaWxlKQogCSAgICB7Ci0JICAgICAgaWYgKHN0cmNtcCAoc28t Pm9iamZpbGUtPm5hbWUsIHNvLT5zb19uYW1lKSA9PSAwCisJICAgICAgaWYg KGZpbGVuYW1lX2NtcCAoc28tPm9iamZpbGUtPm5hbWUsIHNvLT5zb19uYW1l KSA9PSAwCiAJCSAgJiYgc28tPm9iamZpbGUtPmFkZHJfbG93ID09IHNvLT5h ZGRyX2xvdykKIAkJYnJlYWs7CiAJICAgIH0KQEAgLTc2Miw3ICs3NjIsNyBA QCB1cGRhdGVfc29saWJfbGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1Y3QKIAkg ICAgfQogCSAgZWxzZQogCSAgICB7Ci0JICAgICAgaWYgKCEgc3RyY21wIChn ZGItPnNvX29yaWdpbmFsX25hbWUsIGktPnNvX29yaWdpbmFsX25hbWUpKQor CSAgICAgIGlmICghIGZpbGVuYW1lX2NtcCAoZ2RiLT5zb19vcmlnaW5hbF9u YW1lLCBpLT5zb19vcmlnaW5hbF9uYW1lKSkKIAkJYnJlYWs7CSAgICAgIAog CSAgICB9CiAKQEAgLTEzMzksNyArMTMzOSw3IEBAIHJlbG9hZF9zaGFyZWRf bGlicmFyaWVzXzEgKGludCBmcm9tX3R0eSkKIAkgc3ltYm9sIGZpbGUsIGNs b3NlIHRoYXQuICAqLwogICAgICAgaWYgKChmb3VuZF9wYXRobmFtZSA9PSBO VUxMICYmIHdhc19sb2FkZWQpCiAJICB8fCAoZm91bmRfcGF0aG5hbWUgIT0g TlVMTAotCSAgICAgICYmIHN0cmNtcCAoZm91bmRfcGF0aG5hbWUsIHNvLT5z b19uYW1lKSAhPSAwKSkKKwkgICAgICAmJiBmaWxlbmFtZV9jbXAgKGZvdW5k X3BhdGhuYW1lLCBzby0+c29fbmFtZSkgIT0gMCkpCiAJewogCSAgaWYgKHNv LT5vYmpmaWxlICYmICEgKHNvLT5vYmpmaWxlLT5mbGFncyAmIE9CSkZfVVNF UkxPQURFRCkpCiAJICAgIGZyZWVfb2JqZmlsZSAoc28tPm9iamZpbGUpOwpA QCAtMTM1MSw3ICsxMzUxLDcgQEAgcmVsb2FkX3NoYXJlZF9saWJyYXJpZXNf MSAoaW50IGZyb21fdHR5KQogCSBmaWxlLCBvcGVuIGl0LiAgKi8KICAgICAg IGlmIChmb3VuZF9wYXRobmFtZSAhPSBOVUxMCiAJICAmJiAoIXdhc19sb2Fk ZWQKLQkgICAgICB8fCBzdHJjbXAgKGZvdW5kX3BhdGhuYW1lLCBzby0+c29f bmFtZSkgIT0gMCkpCisJICAgICAgfHwgZmlsZW5hbWVfY21wIChmb3VuZF9w YXRobmFtZSwgc28tPnNvX25hbWUpICE9IDApKQogCXsKIAkgIHZvbGF0aWxl IHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7CiAKSW5kZXg6IGdkYi9zb3VyY2Uu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZGIub3JpZy9zb3VyY2Uu YwkyMDExLTAzLTIzIDEyOjEwOjM3LjgzODgxMTYwMCArMDEwMAorKysgZ2Ri L3NvdXJjZS5jCTIwMTEtMDMtMjMgMTI6MTI6MzIuNTI5NzM5NjAwICswMTAw CkBAIC01NjksMTUgKzU2OSwxMCBAQCBhZGRfcGF0aCAoY2hhciAqZGlybmFt ZSwgY2hhciAqKndoaWNoX3BhCiAJcCA9ICp3aGljaF9wYXRoOwogCXdoaWxl ICgxKQogCSAgewotCSAgICAvKiBGSVhNRTogc3RybmNtcCBsb3NlcyBpbiBp bnRlcmVzdGluZyB3YXlzIG9uIE1TLURPUyBhbmQKLQkgICAgICAgTVMtV2lu ZG93cyBiZWNhdXNlIG9mIGNhc2UtaW5zZW5zaXRpdml0eSBhbmQgdHdvIGRp ZmZlcmVudAotCSAgICAgICBidXQgZnVuY3Rpb25hbGx5IGlkZW50aWNhbCBz bGFzaCBjaGFyYWN0ZXJzLiAgV2UgbmVlZCBhCi0JICAgICAgIHNwZWNpYWwg ZmlsZXN5c3RlbS1kZXBlbmRlbnQgZmlsZS1uYW1lIGNvbXBhcmlzb24gZnVu Y3Rpb24uCi0KLQkgICAgICAgQWN0dWFsbHksIGV2ZW4gb24gVW5peCBJIHdv dWxkIHVzZSByZWFscGF0aCgpIG9yIGl0cyB3b3JrLQorCSAgICAvKiBBY3R1 YWxseSwgZXZlbiBvbiBVbml4IEkgd291bGQgdXNlIHJlYWxwYXRoKCkgb3Ig aXRzIHdvcmstCiAJICAgICAgIGFsaWtlIGJlZm9yZSBjb21wYXJpbmcuICBU aGVuIGFsbCB0aGUgY29kZSBhYm92ZSB3aGljaAogCSAgICAgICByZW1vdmVz IGV4Y2VzcyBzbGFzaGVzIGFuZCBkb3RzIGNvdWxkIHNpbXBseSBnbyBhd2F5 LiAgKi8KLQkgICAgaWYgKCFzdHJuY21wIChwLCBuYW1lLCBsZW4pCisJICAg IGlmICghZmlsZW5hbWVfbmNtcCAocCwgbmFtZSwgbGVuKQogCQkmJiAocFts ZW5dID09ICdcMCcgfHwgcFtsZW5dID09IERJUk5BTUVfU0VQQVJBVE9SKSkK IAkgICAgICB7CiAJCS8qIEZvdW5kIGl0IGluIHRoZSBzZWFyY2ggcGF0aCwg cmVtb3ZlIG9sZCBjb3B5LiAgKi8KSW5kZXg6IGdkYi9zeW1maWxlLmMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gZ2RiLm9yaWcvc3ltZmlsZS5jCTIw MTEtMDMtMjMgMTI6MTA6MzcuODM5ODExNjAwICswMTAwCisrKyBnZGIvc3lt ZmlsZS5jCTIwMTEtMDMtMjMgMTI6MTI6MzIuNTQzMjQxMzAwICswMTAwCkBA IC0xMzI1LDcgKzEzMjUsNyBAQCBzZXBhcmF0ZV9kZWJ1Z19maWxlX2V4aXN0 cyAoY29uc3QgY2hhciAqCiAgICAgICIuZGVidWciIHN1ZmZpeCBhcyAiL3Vz ci9saWIvZGVidWcvcGF0aC90by9maWxlIiBpcyBhIHNlcGFyYXRlIHRyZWUg d2hlcmUKICAgICAgdGhlIHNlcGFyYXRlIGRlYnVnIGluZm9zIHdpdGggdGhl IHNhbWUgYmFzZW5hbWUgY2FuIGV4aXN0LiAgKi8KIAotICBpZiAoc3RyY21w IChuYW1lLCBwYXJlbnRfb2JqZmlsZS0+bmFtZSkgPT0gMCkKKyAgaWYgKGZp bGVuYW1lX2NtcCAobmFtZSwgcGFyZW50X29iamZpbGUtPm5hbWUpID09IDAp CiAgICAgcmV0dXJuIDA7CiAKICAgYWJmZCA9IGJmZF9vcGVuX21heWJlX3Jl bW90ZSAobmFtZSk7CkBAIC0xMzMzLDcgKzEzMzMsNyBAQCBzZXBhcmF0ZV9k ZWJ1Z19maWxlX2V4aXN0cyAoY29uc3QgY2hhciAqCiAgIGlmICghYWJmZCkK ICAgICByZXR1cm4gMDsKIAotICAvKiBWZXJpZnkgc3ltbGlua3Mgd2VyZSBu b3QgdGhlIGNhdXNlIG9mIHN0cmNtcCBuYW1lIGRpZmZlcmVuY2UgYWJvdmUu CisgIC8qIFZlcmlmeSBzeW1saW5rcyB3ZXJlIG5vdCB0aGUgY2F1c2Ugb2Yg ZmlsZW5hbWVfY21wIG5hbWUgZGlmZmVyZW5jZSBhYm92ZS4KIAogICAgICBT b21lIG9wZXJhdGluZyBzeXN0ZW1zLCBlLmcuIFdpbmRvd3MsIGRvIG5vdCBw cm92aWRlIGEgbWVhbmluZ2Z1bAogICAgICBzdF9pbm87IHRoZXkgYWx3YXlz IHNldCBpdCB0byB6ZXJvLiAgKFdpbmRvd3MgZG9lcyBwcm92aWRlIGEKQEAg LTE0NzEsNyArMTQ3MSw4IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9i eV9kZWJ1Z2xpbmsgKHMKICAgICAgIC8qIElmIHRoZSBmaWxlIGlzIGluIHRo ZSBzeXNyb290LCB0cnkgdXNpbmcgaXRzIGJhc2UgcGF0aCBpbiB0aGUKIAkg Z2xvYmFsIGRlYnVnZmlsZSBkaXJlY3RvcnkuICAqLwogICAgICAgaWYgKGNh bm9uX25hbWUKLQkgICYmIHN0cm5jbXAgKGNhbm9uX25hbWUsIGdkYl9zeXNy b290LCBzdHJsZW4gKGdkYl9zeXNyb290KSkgPT0gMAorCSAgJiYgZmlsZW5h bWVfbmNtcCAoY2Fub25fbmFtZSwgZ2RiX3N5c3Jvb3QsCisJCQkgICAgc3Ry bGVuIChnZGJfc3lzcm9vdCkpID09IDAKIAkgICYmIElTX0RJUl9TRVBBUkFU T1IgKGNhbm9uX25hbWVbc3RybGVuIChnZGJfc3lzcm9vdCldKSkKIAl7CiAJ ICBtZW1jcHkgKGRlYnVnZmlsZSwgZGVidWdkaXIsIGRlYnVnZGlyX2VuZCAt IGRlYnVnZGlyKTsKQEAgLTIzNzUsOCArMjM3Niw5IEBAIHJlcmVhZF9zeW1i b2xzICh2b2lkKQogCSAgLyogV2UgbmVlZCB0byBkbyB0aGlzIHdoZW5ldmVy IGFueSBzeW1ib2xzIGdvIGF3YXkuICAqLwogCSAgbWFrZV9jbGVhbnVwIChj bGVhcl9zeW10YWJfdXNlcnNfY2xlYW51cCwgMCAvKmlnbm9yZSovKTsKIAot CSAgaWYgKGV4ZWNfYmZkICE9IE5VTEwgJiYgc3RyY21wIChiZmRfZ2V0X2Zp bGVuYW1lIChvYmpmaWxlLT5vYmZkKSwKLQkJCQkJICBiZmRfZ2V0X2ZpbGVu YW1lIChleGVjX2JmZCkpID09IDApCisJICBpZiAoZXhlY19iZmQgIT0gTlVM TAorCSAgICAgICYmIGZpbGVuYW1lX2NtcCAoYmZkX2dldF9maWxlbmFtZSAo b2JqZmlsZS0+b2JmZCksCisJCQkgICAgICAgYmZkX2dldF9maWxlbmFtZSAo ZXhlY19iZmQpKSA9PSAwKQogCSAgICB7CiAJICAgICAgLyogUmVsb2FkIEVY RUNfQkZEIHdpdGhvdXQgYXNraW5nIGFueXRoaW5nLiAgKi8KIApJbmRleDog Z2RiL3N5bW1pc2MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZGIu b3JpZy9zeW1taXNjLmMJMjAxMS0wMy0yMyAxMjoxMDozNy44NDA4MTE2MDAg KzAxMDAKKysrIGdkYi9zeW1taXNjLmMJMjAxMS0wMy0yMyAxMjoxMjozMi41 NjYyNDQzMDAgKzAxMDAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJz eW10YWIuaCIKICNpbmNsdWRlICJnZGJ0eXBlcy5oIgogI2luY2x1ZGUgImJm ZC5oIgorI2luY2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1ZGUgInN5bWZp bGUuaCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgogI2luY2x1ZGUgImJyZWFr cG9pbnQuaCIKQEAgLTQ3NSw3ICs0NzYsNyBAQCBtYWludGVuYW5jZV9wcmlu dF9zeW1ib2xzIChjaGFyICphcmdzLCBpCiAKICAgaW1tZWRpYXRlX3F1aXQr KzsKICAgQUxMX1NZTVRBQlMgKG9iamZpbGUsIHMpCi0gICAgaWYgKHN5bW5h bWUgPT0gTlVMTCB8fCBzdHJjbXAgKHN5bW5hbWUsIHMtPmZpbGVuYW1lKSA9 PSAwKQorICAgIGlmIChzeW1uYW1lID09IE5VTEwgfHwgZmlsZW5hbWVfY21w IChzeW1uYW1lLCBzLT5maWxlbmFtZSkgPT0gMCkKICAgICBkdW1wX3N5bXRh YiAob2JqZmlsZSwgcywgb3V0ZmlsZSk7CiAgIGltbWVkaWF0ZV9xdWl0LS07 CiAgIGRvX2NsZWFudXBzIChjbGVhbnVwcyk7CkluZGV4OiBnZGIvc3ltdGFi LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2RiLm9yaWcvc3ltdGFi LmMJMjAxMS0wMy0yMyAxMjoxMDozNy44NDE4MTE2MDAgKzAxMDAKKysrIGdk Yi9zeW10YWIuYwkyMDExLTAzLTIzIDEyOjEyOjMyLjU3NDc0NTMwMCArMDEw MApAQCAtMjc2MSw3ICsyNzYxLDcgQEAgZmlsZW5hbWVfc2VlbiAoY29uc3Qg Y2hhciAqZmlsZSwgaW50IGFkZAogCiAgIC8qIElzIEZJTEUgaW4gdGFiPyAg Ki8KICAgZm9yIChwID0gdGFiOyBwIDwgdGFiICsgdGFiX2N1cl9zaXplOyBw KyspCi0gICAgaWYgKHN0cmNtcCAoKnAsIGZpbGUpID09IDApCisgICAgaWYg KGZpbGVuYW1lX2NtcCAoKnAsIGZpbGUpID09IDApCiAgICAgICByZXR1cm4g MTsKIAogICAvKiBObzsgbWF5YmUgYWRkIGl0IHRvIHRhYi4gICovCkBAIC0y ODYyLDcgKzI4NjIsNyBAQCBmaWxlX21hdGNoZXMgKGNvbnN0IGNoYXIgKmZp bGUsIGNoYXIgKmZpCiAgICAgewogICAgICAgZm9yIChpID0gMDsgaSA8IG5m aWxlczsgaSsrKQogCXsKLQkgIGlmIChzdHJjbXAgKGZpbGVzW2ldLCBsYmFz ZW5hbWUgKGZpbGUpKSA9PSAwKQorCSAgaWYgKGZpbGVuYW1lX2NtcCAoZmls ZXNbaV0sIGxiYXNlbmFtZSAoZmlsZSkpID09IDApCiAJICAgIHJldHVybiAx OwogCX0KICAgICB9CkBAIC0zMjYwLDcgKzMyNjAsNyBAQCBzdGF0aWMgdm9p ZAogcHJpbnRfc3ltYm9sX2luZm8gKGRvbWFpbl9lbnVtIGtpbmQsIHN0cnVj dCBzeW10YWIgKnMsIHN0cnVjdCBzeW1ib2wgKnN5bSwKIAkJICAgaW50IGJs b2NrLCBjaGFyICpsYXN0KQogewotICBpZiAobGFzdCA9PSBOVUxMIHx8IHN0 cmNtcCAobGFzdCwgcy0+ZmlsZW5hbWUpICE9IDApCisgIGlmIChsYXN0ID09 IE5VTEwgfHwgZmlsZW5hbWVfY21wIChsYXN0LCBzLT5maWxlbmFtZSkgIT0g MCkKICAgICB7CiAgICAgICBmcHV0c19maWx0ZXJlZCAoIlxuRmlsZSAiLCBn ZGJfc3Rkb3V0KTsKICAgICAgIGZwdXRzX2ZpbHRlcmVkIChzLT5maWxlbmFt ZSwgZ2RiX3N0ZG91dCk7CkBAIC00MDczLDcgKzQwNzMsNyBAQCBub3RfaW50 ZXJlc3RpbmdfZm5hbWUgKGNvbnN0IGNoYXIgKmZuYW1lCiAKICAgZm9yIChp ID0gMDsgaWxsZWdhbF9hbGllbnNbaV07IGkrKykKICAgICB7Ci0gICAgICBp ZiAoc3RyY21wIChmbmFtZSwgaWxsZWdhbF9hbGllbnNbaV0pID09IDApCisg ICAgICBpZiAoZmlsZW5hbWVfY21wIChmbmFtZSwgaWxsZWdhbF9hbGllbnNb aV0pID09IDApCiAJcmV0dXJuIDE7CiAgICAgfQogICByZXR1cm4gMDsKQEAg LTQxMDIsMTIgKzQxMDIsNyBAQCBtYXliZV9hZGRfcGFydGlhbF9zeW10YWJf ZmlsZW5hbWUgKGNvbnN0CiAgIGlmIChub3RfaW50ZXJlc3RpbmdfZm5hbWUg KGZpbGVuYW1lKSkKICAgICByZXR1cm47CiAgIGlmICghZmlsZW5hbWVfc2Vl biAoZmlsZW5hbWUsIDEsIGRhdGEtPmZpcnN0KQotI2lmIEhBVkVfRE9TX0JB U0VEX0ZJTEVfU1lTVEVNCi0gICAgICAmJiBzdHJuY2FzZWNtcCAoZmlsZW5h bWUsIGRhdGEtPnRleHQsIGRhdGEtPnRleHRfbGVuKSA9PSAwCi0jZWxzZQot ICAgICAgJiYgc3RybmNtcCAoZmlsZW5hbWUsIGRhdGEtPnRleHQsIGRhdGEt PnRleHRfbGVuKSA9PSAwCi0jZW5kaWYKLSAgICAgICkKKyAgICAgICYmIGZp bGVuYW1lX25jbXAgKGZpbGVuYW1lLCBkYXRhLT50ZXh0LCBkYXRhLT50ZXh0 X2xlbikgPT0gMCkKICAgICB7CiAgICAgICAvKiBUaGlzIGZpbGUgbWF0Y2hl cyBmb3IgYSBjb21wbGV0aW9uOyBhZGQgaXQgdG8gdGhlCiAJIGN1cnJlbnQg bGlzdCBvZiBtYXRjaGVzLiAgKi8KQEAgLTQxMjAsMTIgKzQxMTUsNyBAQCBt YXliZV9hZGRfcGFydGlhbF9zeW10YWJfZmlsZW5hbWUgKGNvbnN0CiAKICAg ICAgIGlmIChiYXNlX25hbWUgIT0gZmlsZW5hbWUKIAkgICYmICFmaWxlbmFt ZV9zZWVuIChiYXNlX25hbWUsIDEsIGRhdGEtPmZpcnN0KQotI2lmIEhBVkVf RE9TX0JBU0VEX0ZJTEVfU1lTVEVNCi0JICAmJiBzdHJuY2FzZWNtcCAoYmFz ZV9uYW1lLCBkYXRhLT50ZXh0LCBkYXRhLT50ZXh0X2xlbikgPT0gMAotI2Vs c2UKLQkgICYmIHN0cm5jbXAgKGJhc2VfbmFtZSwgZGF0YS0+dGV4dCwgZGF0 YS0+dGV4dF9sZW4pID09IDAKLSNlbmRpZgotCSAgKQorCSAgJiYgZmlsZW5h bWVfbmNtcCAoYmFzZV9uYW1lLCBkYXRhLT50ZXh0LCBkYXRhLT50ZXh0X2xl bikgPT0gMCkKIAlhZGRfZmlsZW5hbWVfdG9fbGlzdCAoYmFzZV9uYW1lLCBk YXRhLT50ZXh0LCBkYXRhLT53b3JkLAogCQkJICAgICAgZGF0YS0+bGlzdCwg ZGF0YS0+bGlzdF91c2VkLCBkYXRhLT5saXN0X2FsbG9jZWQpOwogICAgIH0K QEAgLTQxNTksMTIgKzQxNDksNyBAQCBtYWtlX3NvdXJjZV9maWxlc19jb21w bGV0aW9uX2xpc3QgKGNoYXIKICAgICAgIGlmIChub3RfaW50ZXJlc3Rpbmdf Zm5hbWUgKHMtPmZpbGVuYW1lKSkKIAljb250aW51ZTsKICAgICAgIGlmICgh ZmlsZW5hbWVfc2VlbiAocy0+ZmlsZW5hbWUsIDEsICZmaXJzdCkKLSNpZiBI QVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTQotCSAgJiYgc3RybmNhc2VjbXAg KHMtPmZpbGVuYW1lLCB0ZXh0LCB0ZXh0X2xlbikgPT0gMAotI2Vsc2UKLQkg ICYmIHN0cm5jbXAgKHMtPmZpbGVuYW1lLCB0ZXh0LCB0ZXh0X2xlbikgPT0g MAotI2VuZGlmCi0JICApCisJICAmJiBmaWxlbmFtZV9uY21wIChzLT5maWxl bmFtZSwgdGV4dCwgdGV4dF9sZW4pID09IDApCiAJewogCSAgLyogVGhpcyBm aWxlIG1hdGNoZXMgZm9yIGEgY29tcGxldGlvbjsgYWRkIGl0IHRvIHRoZSBj dXJyZW50CiAJICAgICBsaXN0IG9mIG1hdGNoZXMuICAqLwpAQCAtNDE4MCwx MiArNDE2NSw3IEBAIG1ha2Vfc291cmNlX2ZpbGVzX2NvbXBsZXRpb25fbGlz dCAoY2hhcgogCSAgYmFzZV9uYW1lID0gbGJhc2VuYW1lIChzLT5maWxlbmFt ZSk7CiAJICBpZiAoYmFzZV9uYW1lICE9IHMtPmZpbGVuYW1lCiAJICAgICAg JiYgIWZpbGVuYW1lX3NlZW4gKGJhc2VfbmFtZSwgMSwgJmZpcnN0KQotI2lm IEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNCi0JICAgICAgJiYgc3RybmNh c2VjbXAgKGJhc2VfbmFtZSwgdGV4dCwgdGV4dF9sZW4pID09IDAKLSNlbHNl Ci0JICAgICAgJiYgc3RybmNtcCAoYmFzZV9uYW1lLCB0ZXh0LCB0ZXh0X2xl bikgPT0gMAotI2VuZGlmCi0JICAgICAgKQorCSAgICAgICYmIGZpbGVuYW1l X25jbXAgKGJhc2VfbmFtZSwgdGV4dCwgdGV4dF9sZW4pID09IDApCiAJICAg IGFkZF9maWxlbmFtZV90b19saXN0IChiYXNlX25hbWUsIHRleHQsIHdvcmQs CiAJCQkJICAmbGlzdCwgJmxpc3RfdXNlZCwgJmxpc3RfYWxsb2NlZCk7CiAJ fQpJbmRleDogZ2RiL3htbC1zdXBwb3J0LmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gZ2RiLm9yaWcveG1sLXN1cHBvcnQuYwkyMDExLTAzLTIzIDEy OjEwOjM3Ljg0MzgxMTYwMCArMDEwMAorKysgZ2RiL3htbC1zdXBwb3J0LmMJ MjAxMS0wMy0yMyAxMjoxMjozMi41OTc3NDgzMDAgKzAxMDAKQEAgLTI1LDYg KzI1LDcgQEAKIAogI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKICNpbmNsdWRl ICJzYWZlLWN0eXBlLmgiCisjaW5jbHVkZSAiZmlsZW5hbWVzLmgiCiAKIC8q IERlYnVnZ2luZyBmbGFnLiAgKi8KIHN0YXRpYyBpbnQgZGVidWdfeG1sOwpA QCAtOTQ2LDcgKzk0Nyw3IEBAIGZldGNoX3htbF9idWlsdGluIChjb25zdCBj aGFyICpmaWxlbmFtZSkKICAgY29uc3QgY2hhciAqKCpwKVsyXTsKIAogICBm b3IgKHAgPSB4bWxfYnVpbHRpbjsgKCpwKVswXTsgcCsrKQotICAgIGlmIChz dHJjbXAgKCgqcClbMF0sIGZpbGVuYW1lKSA9PSAwKQorICAgIGlmIChmaWxl bmFtZV9jbXAgKCgqcClbMF0sIGZpbGVuYW1lKSA9PSAwKQogICAgICAgcmV0 dXJuICgqcClbMV07CiAKICAgcmV0dXJuIE5VTEw7CkluZGV4OiBnZGIveG1s LXN5c2NhbGwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZGIub3Jp Zy94bWwtc3lzY2FsbC5jCTIwMTEtMDMtMjMgMTI6MTA6MzcuODY4ODExNjAw ICswMTAwCisrKyBnZGIveG1sLXN5c2NhbGwuYwkyMDExLTAzLTIzIDEyOjEy OjMyLjYwNTc0OTMwMCArMDEwMApAQCAtMjgxLDcgKzI4MSw3IEBAIHN0YXRp YyB2b2lkCiBpbml0X3N5c2luZm8gKHZvaWQpCiB7CiAgIC8qIFNob3VsZCB3 ZSByZS1yZWFkIHRoZSBYTUwgaW5mbyBmb3IgdGhpcyB0YXJnZXQ/ICAqLwot ICBpZiAobXlfZ2RiX2RhdGFkaXIgJiYgc3RyY21wIChteV9nZGJfZGF0YWRp ciwgZ2RiX2RhdGFkaXIpICE9IDApCisgIGlmIChteV9nZGJfZGF0YWRpciAm JiBmaWxlbmFtZV9jbXAgKG15X2dkYl9kYXRhZGlyLCBnZGJfZGF0YWRpcikg IT0gMCkKICAgICB7CiAgICAgICAvKiBUaGUgZGF0YS1kaXJlY3RvcnkgY2hh bmdlZCBmcm9tIHRoZSBsYXN0IHRpbWUgd2UgdXNlZCBpdC4KIAkgSXQgbWVh bnMgdGhhdCB3ZSBoYXZlIHRvIHJlLXJlYWQgdGhlIFhNTCBpbmZvLiAgKi8K SW5kZXg6IGdkYi9kd2FyZjJyZWFkLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZ2RiLm9yaWcvZHdhcmYycmVhZC5jCTIwMTEtMDMtMjMgMTI6MTA6 MzcuODI4ODExNjAwICswMTAwCisrKyBnZGIvZHdhcmYycmVhZC5jCTIwMTEt MDMtMjMgMTI6MTI6MzIuNjE2MjUwNjAwICswMTAwCkBAIC01MjExLDcgKzUy MTEsOCBAQCBmaW5kX2ZpbGVfYW5kX2RpcmVjdG9yeSAoc3RydWN0IGRpZV9p bmZvCiAJIGRpcmVjdG9yeSwgZ2V0IHJpZCBvZiBpdC4gICovCiAgICAgICBj aGFyICpjcCA9IHN0cmNociAoKmNvbXBfZGlyLCAnOicpOwogCi0gICAgICBp ZiAoY3AgJiYgY3AgIT0gKmNvbXBfZGlyICYmIGNwWy0xXSA9PSAnLicgJiYg Y3BbMV0gPT0gJy8nKQorICAgICAgaWYgKGNwICYmIGNwICE9ICpjb21wX2Rp ciAmJiBjcFstMV0gPT0gJy4nCisJICAmJiBJU19BQlNPTFVURV9QQVRIICgm Y3BbMV0pKQogCSpjb21wX2RpciA9IGNwICsgMTsKICAgICB9CiAKSW5kZXg6 IGdkYi93aW5kb3dzLW5hdC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGdkYi5vcmlnL3dpbmRvd3MtbmF0LmMJMjAxMS0wMy0yMyAxMjoxMDozNy44 NDI4MTE2MDAgKzAxMDAKKysrIGdkYi93aW5kb3dzLW5hdC5jCTIwMTEtMDMt MjMgMTI6MTI6MzIuNjY1NzU2OTAwICswMTAwCkBAIC00Niw2ICs0Niw3IEBA CiAjaW5jbHVkZSA8c2lnbmFsLmg+CiAKICNpbmNsdWRlICJidWlsZHN5bS5o IgorI2luY2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1ZGUgInN5bWZpbGUu aCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgogI2luY2x1ZGUgImdkYl9vYnN0 YWNrLmgiCkBAIC0yNTg2LDcgKzI1ODcsNyBAQCBfaW5pdGlhbGl6ZV9jaGVj a19mb3JfZ2RiX2luaSAodm9pZCkKIAkJCQkgICAgICBzaXplb2YgKCIvZ2Ri LmluaSIpKTsKICAgICAgIHN0cmNweSAob2xkaW5pLCBob21lZGlyKTsKICAg ICAgIHAgPSBzdHJjaHIgKG9sZGluaSwgJ1wwJyk7Ci0gICAgICBpZiAocCA+ IG9sZGluaSAmJiBwWy0xXSAhPSAnLycpCisgICAgICBpZiAocCA+IG9sZGlu aSAmJiAhSVNfRElSX1NFUEFSQVRPUiAocFstMV0pKQogCSpwKysgPSAnLyc7 CiAgICAgICBzdHJjcHkgKHAsICJnZGIuaW5pIik7CiAgICAgICBpZiAoYWNj ZXNzIChvbGRpbmksIDApID09IDApCg== --0015176f0bb847ec25049f247c0f--