From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30943 invoked by alias); 27 Aug 2009 22:03:09 -0000 Received: (qmail 29992 invoked by uid 22791); 27 Aug 2009 22:03:06 -0000 X-SWARE-Spam-Status: No, hits=1.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_37,KAM_STOCKTIP,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; Thu, 27 Aug 2009 22:02:59 +0000 Received: from wpaz13.hot.corp.google.com (wpaz13.hot.corp.google.com [172.24.198.77]) by smtp-out.google.com with ESMTP id n7RM2ssu023098 for ; Thu, 27 Aug 2009 23:02:54 +0100 Received: from yxe26 (yxe26.prod.google.com [10.190.2.26]) by wpaz13.hot.corp.google.com with ESMTP id n7RM2pY8024486 for ; Thu, 27 Aug 2009 15:02:52 -0700 Received: by yxe26 with SMTP id 26so102059yxe.14 for ; Thu, 27 Aug 2009 15:02:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.150.253.11 with SMTP id a11mr734749ybi.81.1251410571410; Thu, 27 Aug 2009 15:02:51 -0700 (PDT) In-Reply-To: References: <20090523232414.BED2B846C2@localhost> <200907022344.12495.pedro@codesourcery.com> <200907201402.47393.pedro@codesourcery.com> Date: Thu, 27 Aug 2009 23:39:00 -0000 Message-ID: Subject: Re: [RFA] Fix too many "no debugging symbols found" warnings. From: Doug Evans To: Tom Tromey Cc: Pedro Alves , Eli Zaretskii , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=000e0cd359bc93bd4f047226bad1 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-08/txt/msg00497.txt.bz2 --000e0cd359bc93bd4f047226bad1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 3171 On Thu, Aug 27, 2009 at 11:28 AM, Tom Tromey wrote: >>>>>> "Doug" =3D=3D Doug Evans writes: > > Tom> This particular function seems overdue for ui-out-ification. > Tom> This would let us keep the old version for MI[12], and then properly > Tom> evolve the output for future versions MI. > > Doug> Is this what you had in mind? > > Yes, thanks. > > FWIW that was just a drive-by complaint of mine... I will try to stop > doing that, I didn't intend to get you to do this. > > Doug> + =A0ui_out_table_header (uiout, addr_width - 1, ui_left, "From", "= From"); > Doug> + =A0ui_out_table_header (uiout, addr_width - 1, ui_left, "To", "To= "); > Doug> + =A0ui_out_table_header (uiout, 12 - 1, ui_left, "SymsRead", "Syms= Read"); > > It seems to be GDB style that column names (the first string arg) should > be lowercase, not camelcase. =A0Generally they use "-" and not "_" as well > (I only saw one exception). > > Doug> + =A0 ui_out_field_string (uiout, "From", ""); > Doug> + =A0 ui_out_field_string (uiout, "To", ""); > > Probably use ui_out_field_skip here. > > Tom > Thanks for the review. I made the suggested changes (including Eli's) and checked it in. I tested it with Eclipse, btw. It does parse the output of "info sharedlibrary" and doesn't like "Yes (*)", so I made the changed output conditional on the top level interpreter not being MI. I think we'll want to add a new MI command for this for Eclipse, etc. to us= e. [P.S. the "doc/" in the attached changelog entry is just my convention. It doesn't appear in doc/ChangeLog.] 2009-08-27 Doug Evans * NEWS: Add note on "info sharedlibrary". Remove note on "set print symbol-loading". * main.c (captured_main): Pass !batch for from_tty when calling symbol_file_add_main. * objfiles.h (objfile_has_partial_symbols): Declare. (objfile_has_full_symbols): Declare. * objfiles.c (objfile_has_partial_symbols): New function. (have_partial_symbols): Use it. (objfile_has_full_symbols): New function. (have_full_symbols): Use it. * solib.c: Include interps.h. (solib_read_symbols): Back out patch of 2008-07-10. Add test for info_verbose for symbol loading messages for consistency with symfile.c. (info_sharedlibrary_command): Handle optional parameter of regex of libraries to list. Inform user of libraries without debugging info. Rewrite to use ui_out routines to format output. * symfile.c (print_symbol_loading): Delete. (symbol_file_add_with_addrs_or_offsets): Back out patch of 2008-07-= 10. Print "no debugging symbols found" only if from_tty || info_verbose; and only check file being loaded, not all files. (reread_symbols): Test file being loaded for whether it has symbols, not all files. (__initialize_symfile): Delete `set print symbol-loading'. * symfile.h (print_symbol_loading): Delete. * doc/gdb.texinfo (Symbols): Delete `set print symbol-loading'. (Files): Add note on new optional regex arg to `info sharedlibrary'. --000e0cd359bc93bd4f047226bad1 Content-Type: text/plain; charset=US-ASCII; name="gdb-090827-info-shared-2.patch.txt" Content-Disposition: attachment; filename="gdb-090827-info-shared-2.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fyw1ibh20 Content-length: 22928 MjAwOS0wOC0yNyAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog TkVXUzogQWRkIG5vdGUgb24gImluZm8gc2hhcmVkbGlicmFyeSIuCglSZW1v dmUgbm90ZSBvbiAic2V0IHByaW50IHN5bWJvbC1sb2FkaW5nIi4KCSogbWFp bi5jIChjYXB0dXJlZF9tYWluKTogUGFzcyAhYmF0Y2ggZm9yIGZyb21fdHR5 IHdoZW4gY2FsbGluZwoJc3ltYm9sX2ZpbGVfYWRkX21haW4uCgkqIG9iamZp bGVzLmggKG9iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyk6IERlY2xhcmUu Cgkob2JqZmlsZV9oYXNfZnVsbF9zeW1ib2xzKTogRGVjbGFyZS4KCSogb2Jq ZmlsZXMuYyAob2JqZmlsZV9oYXNfcGFydGlhbF9zeW1ib2xzKTogTmV3IGZ1 bmN0aW9uLgoJKGhhdmVfcGFydGlhbF9zeW1ib2xzKTogVXNlIGl0LgoJKG9i amZpbGVfaGFzX2Z1bGxfc3ltYm9scyk6IE5ldyBmdW5jdGlvbi4KCShoYXZl X2Z1bGxfc3ltYm9scyk6IFVzZSBpdC4KCSogc29saWIuYzogSW5jbHVkZSBp bnRlcnBzLmguCgkoc29saWJfcmVhZF9zeW1ib2xzKTogQmFjayBvdXQgcGF0 Y2ggb2YgMjAwOC0wNy0xMC4KCUFkZCB0ZXN0IGZvciBpbmZvX3ZlcmJvc2Ug Zm9yIHN5bWJvbCBsb2FkaW5nIG1lc3NhZ2VzIGZvcgoJY29uc2lzdGVuY3kg d2l0aCBzeW1maWxlLmMuCgkoaW5mb19zaGFyZWRsaWJyYXJ5X2NvbW1hbmQp OiBIYW5kbGUgb3B0aW9uYWwgcGFyYW1ldGVyIG9mIHJlZ2V4IG9mCglsaWJy YXJpZXMgdG8gbGlzdC4gIEluZm9ybSB1c2VyIG9mIGxpYnJhcmllcyB3aXRo b3V0IGRlYnVnZ2luZyBpbmZvLgoJUmV3cml0ZSB0byB1c2UgdWlfb3V0IHJv dXRpbmVzIHRvIGZvcm1hdCBvdXRwdXQuCgkqIHN5bWZpbGUuYyAocHJpbnRf c3ltYm9sX2xvYWRpbmcpOiBEZWxldGUuCgkoc3ltYm9sX2ZpbGVfYWRkX3dp dGhfYWRkcnNfb3Jfb2Zmc2V0cyk6IEJhY2sgb3V0IHBhdGNoIG9mIDIwMDgt MDctMTAuCglQcmludCAibm8gZGVidWdnaW5nIHN5bWJvbHMgZm91bmQiIG9u bHkgaWYgZnJvbV90dHkgfHwgaW5mb192ZXJib3NlOwoJYW5kIG9ubHkgY2hl Y2sgZmlsZSBiZWluZyBsb2FkZWQsIG5vdCBhbGwgZmlsZXMuCgkocmVyZWFk X3N5bWJvbHMpOiBUZXN0IGZpbGUgYmVpbmcgbG9hZGVkIGZvciB3aGV0aGVy IGl0IGhhcyBzeW1ib2xzLAoJbm90IGFsbCBmaWxlcy4KCShfX2luaXRpYWxp emVfc3ltZmlsZSk6IERlbGV0ZSBgc2V0IHByaW50IHN5bWJvbC1sb2FkaW5n Jy4KCSogc3ltZmlsZS5oIChwcmludF9zeW1ib2xfbG9hZGluZyk6IERlbGV0 ZS4KCgkqIGRvYy9nZGIudGV4aW5mbyAoU3ltYm9scyk6IERlbGV0ZSBgc2V0 IHByaW50IHN5bWJvbC1sb2FkaW5nJy4KCShGaWxlcyk6IEFkZCBub3RlIG9u IG5ldyBvcHRpb25hbCByZWdleCBhcmcgdG8gYGluZm8gc2hhcmVkbGlicmFy eScuCgpJbmRleDogTkVXUwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL05FV1MsdgpyZXRyaWV2aW5nIHJldmlz aW9uIDEuMzI2CmRpZmYgLXUgLXAgLXIxLjMyNiBORVdTCi0tLSBORVdTCTIw IEF1ZyAyMDA5IDE4OjAyOjQ3IC0wMDAwCTEuMzI2CisrKyBORVdTCTI3IEF1 ZyAyMDA5IDIxOjQ5OjEyIC0wMDAwCkBAIC00OCw2ICs0OCw5IEBAIHJlbW90 ZSB0YXJnZXRzLiAgVG8gdXNlIHRoaXMgZmVhdHVyZSwgc3AKIHdpdGggdGhl IGByZW1vdGU6JyBwcmVmaXgsIGVpdGhlciB2aWEgdGhlIGBzZXQgc3lzcm9v dCcgY29tbWFuZCBvciB2aWEKIHRoZSBgLS13aXRoLXN5c3Jvb3QnIGNvbmZp Z3VyZS10aW1lIG9wdGlvbi4KIAorKiAiaW5mbyBzaGFyZWRsaWJyYXJ5IiBu b3cgdGFrZXMgYW4gb3B0aW9uYWwgcmVnZXggb2YgbGlicmFyaWVzIHRvIHNo b3csCithbmQgaXQgbm93IHJlcG9ydHMgaWYgYSBzaGFyZWQgbGlicmFyeSBo YXMgbm8gZGVidWdnaW5nIGluZm9ybWF0aW9uLgorCiAqIENvbW1hbmRzIGBz ZXQgZGVidWctZmlsZS1kaXJlY3RvcnknLCBgc2V0IHNvbGliLXNlYXJjaC1w YXRoJyBhbmQgYHNldCBhcmdzJwogbm93IGNvbXBsZXRlIG9uIGZpbGUgbmFt ZXMuCiAKQEAgLTI3OCwxMCArMjgxLDYgQEAgc2V0IHNoIGNhbGxpbmctY29u dmVudGlvbgogc2hvdyBzaCBjYWxsaW5nLWNvbnZlbnRpb24KICAgQ29udHJv bCB0aGUgY2FsbGluZyBjb252ZW50aW9uIHVzZWQgd2hlbiBjYWxsaW5nIFNI IHRhcmdldCBmdW5jdGlvbnMuCiAKLXNldCBwcmludCBzeW1ib2wtbG9hZGlu Zwotc2hvdyBwcmludCBzeW1ib2wtbG9hZGluZwotICBDb250cm9sIHByaW50 aW5nIG9mIHN5bWJvbCBsb2FkaW5nIG1lc3NhZ2VzLgotCiBzZXQgZGVidWcg dGltZXN0YW1wCiBzaG93IGRlYnVnIHRpbWVzdGFtcAogICBDb250cm9sIGRp c3BsYXkgb2YgdGltZXN0YW1wcyB3aXRoIEdEQiBkZWJ1Z2dpbmcgb3V0cHV0 LgpJbmRleDogbWFpbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IC9jdnMvc3JjL3NyYy9nZGIvbWFpbi5jLHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjc2CmRpZmYgLXUgLXAgLXIxLjc2IG1haW4uYwotLS0gbWFpbi5j CTI3IEFwciAyMDA5IDEwOjI0OjA4IC0wMDAwCTEuNzYKKysrIG1haW4uYwky NyBBdWcgMjAwOSAyMTo0OToxMiAtMDAwMApAQCAtODAxLDE0ICs4MDEsMTQg QEAgRXhjZXNzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgaWdub3JlZC4gKAog ICAgICAgICAgb3BlbiBpdCwgYmV0dGVyIG9ubHkgcHJpbnQgb25lIGVycm9y IG1lc3NhZ2UuCiAgICAgICAgICBjYXRjaF9jb21tYW5kX2Vycm9ycyByZXR1 cm5zIG5vbi16ZXJvIG9uIHN1Y2Nlc3MhICovCiAgICAgICBpZiAoY2F0Y2hf Y29tbWFuZF9lcnJvcnMgKGV4ZWNfZmlsZV9hdHRhY2gsIGV4ZWNhcmcsICFi YXRjaCwgUkVUVVJOX01BU0tfQUxMKSkKLQljYXRjaF9jb21tYW5kX2Vycm9y cyAoc3ltYm9sX2ZpbGVfYWRkX21haW4sIHN5bWFyZywgMCwgUkVUVVJOX01B U0tfQUxMKTsKKwljYXRjaF9jb21tYW5kX2Vycm9ycyAoc3ltYm9sX2ZpbGVf YWRkX21haW4sIHN5bWFyZywgIWJhdGNoLCBSRVRVUk5fTUFTS19BTEwpOwog ICAgIH0KICAgZWxzZQogICAgIHsKICAgICAgIGlmIChleGVjYXJnICE9IE5V TEwpCiAJY2F0Y2hfY29tbWFuZF9lcnJvcnMgKGV4ZWNfZmlsZV9hdHRhY2gs IGV4ZWNhcmcsICFiYXRjaCwgUkVUVVJOX01BU0tfQUxMKTsKICAgICAgIGlm IChzeW1hcmcgIT0gTlVMTCkKLQljYXRjaF9jb21tYW5kX2Vycm9ycyAoc3lt Ym9sX2ZpbGVfYWRkX21haW4sIHN5bWFyZywgMCwgUkVUVVJOX01BU0tfQUxM KTsKKwljYXRjaF9jb21tYW5kX2Vycm9ycyAoc3ltYm9sX2ZpbGVfYWRkX21h aW4sIHN5bWFyZywgIWJhdGNoLCBSRVRVUk5fTUFTS19BTEwpOwogICAgIH0K IAogICBpZiAoY29yZWFyZyAmJiBwaWRhcmcpCkluZGV4OiBvYmpmaWxlcy5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3Ny Yy9nZGIvb2JqZmlsZXMuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45Mwpk aWZmIC11IC1wIC1yMS45MyBvYmpmaWxlcy5jCi0tLSBvYmpmaWxlcy5jCTIx IEF1ZyAyMDA5IDE3OjU3OjE3IC0wMDAwCTEuOTMKKysrIG9iamZpbGVzLmMJ MjcgQXVnIDIwMDkgMjE6NDk6MTIgLTAwMDAKQEAgLTcwMCw2ICs3MDAsMjIg QEAgb2JqZmlsZV9yZWxvY2F0ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbAog ICBicmVha3BvaW50X3JlX3NldCAoKTsKIH0KIAwKKy8qIFJldHVybiBub24t emVybyBpZiBPQkpGSUxFIGhhcyBwYXJ0aWFsIHN5bWJvbHMuICAqLworCitp bnQKK29iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUpCit7CisgIHJldHVybiBvYmpmaWxlLT5wc3ltdGFicyAh PSBOVUxMOworfQorCisvKiBSZXR1cm4gbm9uLXplcm8gaWYgT0JKRklMRSBo YXMgZnVsbCBzeW1ib2xzLiAgKi8KKworaW50CitvYmpmaWxlX2hhc19mdWxs X3N5bWJvbHMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQoreworICByZXR1 cm4gb2JqZmlsZS0+c3ltdGFicyAhPSBOVUxMOworfQorCiAvKiBNYW55IHBs YWNlcyBpbiBnZGIgd2FudCB0byB0ZXN0IGp1c3QgdG8gc2VlIGlmIHdlIGhh dmUgYW55IHBhcnRpYWwKICAgIHN5bWJvbHMgYXZhaWxhYmxlLiAgVGhpcyBm dW5jdGlvbiByZXR1cm5zIHplcm8gaWYgbm9uZSBhcmUgY3VycmVudGx5CiAg ICBhdmFpbGFibGUsIG5vbnplcm8gb3RoZXJ3aXNlLiAqLwpAQCAtNzExLDEw ICs3MjcsOCBAQCBoYXZlX3BhcnRpYWxfc3ltYm9scyAodm9pZCkKIAogICBB TExfT0JKRklMRVMgKG9mcCkKICAgewotICAgIGlmIChvZnAtPnBzeW10YWJz ICE9IE5VTEwpCi0gICAgICB7Ci0JcmV0dXJuIDE7Ci0gICAgICB9CisgICAg aWYgKG9iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyAob2ZwKSkKKyAgICAg IHJldHVybiAxOwogICB9CiAgIHJldHVybiAwOwogfQpAQCAtNzMwLDEwICs3 NDQsOCBAQCBoYXZlX2Z1bGxfc3ltYm9scyAodm9pZCkKIAogICBBTExfT0JK RklMRVMgKG9mcCkKICAgewotICAgIGlmIChvZnAtPnN5bXRhYnMgIT0gTlVM TCkKLSAgICAgIHsKLQlyZXR1cm4gMTsKLSAgICAgIH0KKyAgICBpZiAob2Jq ZmlsZV9oYXNfZnVsbF9zeW1ib2xzIChvZnApKQorICAgICAgcmV0dXJuIDE7 CiAgIH0KICAgcmV0dXJuIDA7CiB9CkluZGV4OiBvYmpmaWxlcy5oCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIv b2JqZmlsZXMuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42MgpkaWZmIC11 IC1wIC1yMS42MiBvYmpmaWxlcy5oCi0tLSBvYmpmaWxlcy5oCTIxIEF1ZyAy MDA5IDE3OjU3OjE3IC0wMDAwCTEuNjIKKysrIG9iamZpbGVzLmgJMjcgQXVn IDIwMDkgMjE6NDk6MTIgLTAwMDAKQEAgLTQ3Miw2ICs0NzIsMTAgQEAgZXh0 ZXJuIHZvaWQgZnJlZV9hbGxfb2JqZmlsZXMgKHZvaWQpOwogCiBleHRlcm4g dm9pZCBvYmpmaWxlX3JlbG9jYXRlIChzdHJ1Y3Qgb2JqZmlsZSAqLCBzdHJ1 Y3Qgc2VjdGlvbl9vZmZzZXRzICopOwogCitleHRlcm4gaW50IG9iamZpbGVf aGFzX3BhcnRpYWxfc3ltYm9scyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUp OworCitleHRlcm4gaW50IG9iamZpbGVfaGFzX2Z1bGxfc3ltYm9scyAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUpOworCiBleHRlcm4gaW50IGhhdmVfcGFy dGlhbF9zeW1ib2xzICh2b2lkKTsKIAogZXh0ZXJuIGludCBoYXZlX2Z1bGxf c3ltYm9scyAodm9pZCk7CkluZGV4OiBzb2xpYi5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvc29saWIuYyx2 CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMjUKZGlmZiAtdSAtcCAtcjEuMTI1 IHNvbGliLmMKLS0tIHNvbGliLmMJMjEgQXVnIDIwMDkgMTc6NTc6MTcgLTAw MDAJMS4xMjUKKysrIHNvbGliLmMJMjcgQXVnIDIwMDkgMjE6NDk6MTIgLTAw MDAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJyZWFkbGluZS9yZWFk bGluZS5oIgogI2luY2x1ZGUgInJlbW90ZS5oIgogI2luY2x1ZGUgInNvbGli LmgiCisjaW5jbHVkZSAiaW50ZXJwcy5oIgogCiAvKiBBcmNoaXRlY3R1cmUt c3BlY2lmaWMgb3BlcmF0aW9ucy4gICovCiAKQEAgLTQ3MiwxMiArNDczLDEy IEBAIHNvbGliX3JlYWRfc3ltYm9scyAoc3RydWN0IHNvX2xpc3QgKnNvLCAK IAogICBpZiAoc28tPnN5bWJvbHNfbG9hZGVkKQogICAgIHsKLSAgICAgIGlm IChmcm9tX3R0eSkKKyAgICAgIGlmIChmcm9tX3R0eSB8fCBpbmZvX3ZlcmJv c2UpCiAJcHJpbnRmX3VuZmlsdGVyZWQgKF8oIlN5bWJvbHMgYWxyZWFkeSBs b2FkZWQgZm9yICVzXG4iKSwgc28tPnNvX25hbWUpOwogICAgIH0KICAgZWxz ZSBpZiAoc28tPmFiZmQgPT0gTlVMTCkKICAgICB7Ci0gICAgICBpZiAoZnJv bV90dHkpCisgICAgICBpZiAoZnJvbV90dHkgfHwgaW5mb192ZXJib3NlKQog CXByaW50Zl91bmZpbHRlcmVkIChfKCJTeW1ib2wgZmlsZSBub3QgZm91bmQg Zm9yICVzXG4iKSwgc28tPnNvX25hbWUpOwogICAgIH0KICAgZWxzZQpAQCAt NDkzLDcgKzQ5NCw3IEBAIHNvbGliX3JlYWRfc3ltYm9scyAoc3RydWN0IHNv X2xpc3QgKnNvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVy cm9yIHdoaWxlIHJlYWRpbmcgc2hhcmVkIGxpYnJhcnkgc3ltYm9sczpcbiIp OwogICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9Ci0gICAgICBpZiAo ZnJvbV90dHkgJiYgcHJpbnRfc3ltYm9sX2xvYWRpbmcpCisgICAgICBpZiAo ZnJvbV90dHkgfHwgaW5mb192ZXJib3NlKQogICAgICAgICBwcmludGZfdW5m aWx0ZXJlZCAoXygiTG9hZGVkIHN5bWJvbHMgZm9yICVzXG4iKSwgc28tPnNv X25hbWUpOwogICAgICAgc28tPnN5bWJvbHNfbG9hZGVkID0gMTsKICAgICAg IHJldHVybiAxOwpAQCAtNzg0LDUyICs3ODUsMTE3IEBAIHNvbGliX2FkZCAo Y2hhciAqcGF0dGVybiwgaW50IGZyb21fdHR5LCAKICAgIERFU0NSSVBUSU9O CiAKICAgIFdhbGsgdGhyb3VnaCB0aGUgc2hhcmVkIGxpYnJhcnkgbGlzdCBh bmQgcHJpbnQgaW5mb3JtYXRpb24KLSAgIGFib3V0IGVhY2ggYXR0YWNoZWQg bGlicmFyeS4KKyAgIGFib3V0IGVhY2ggYXR0YWNoZWQgbGlicmFyeSBtYXRj aGluZyBQQVRURVJOLiAgSWYgUEFUVEVSTiBpcyBlbGlkZWQsCisgICBwcmlu dCB0aGVtIGFsbC4KICAqLwogCiBzdGF0aWMgdm9pZAotaW5mb19zaGFyZWRs aWJyYXJ5X2NvbW1hbmQgKGNoYXIgKmlnbm9yZSwgaW50IGZyb21fdHR5KQor aW5mb19zaGFyZWRsaWJyYXJ5X2NvbW1hbmQgKGNoYXIgKnBhdHRlcm4sIGlu dCBmcm9tX3R0eSkKIHsKICAgc3RydWN0IHNvX2xpc3QgKnNvID0gTlVMTDsJ LyogbGluayBtYXAgc3RhdGUgdmFyaWFibGUgKi8KICAgaW50IGhlYWRlcl9k b25lID0gMDsKKyAgaW50IHNvX21pc3NpbmdfZGVidWdfaW5mbyA9IDA7CiAg IGludCBhZGRyX3dpZHRoOworICBpbnQgbnJfbGliczsKKyAgc3RydWN0IGNs ZWFudXAgKnRhYmxlX2NsZWFudXA7CisgIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoID0gdGFyZ2V0X2dkYmFyY2g7CisKKyAgaWYgKHBhdHRlcm4pCisgICAg eworICAgICAgY2hhciAqcmVfZXJyID0gcmVfY29tcCAocGF0dGVybik7CisK KyAgICAgIGlmIChyZV9lcnIpCisJZXJyb3IgKF8oIkludmFsaWQgcmVnZXhw OiAlcyIpLCByZV9lcnIpOworICAgIH0KIAogICAvKiAiMHgiLCBhIGxpdHRs ZSB3aGl0ZXNwYWNlLCBhbmQgdHdvIGhleCBkaWdpdHMgcGVyIGJ5dGUgb2Yg cG9pbnRlcnMuICAqLwotICBhZGRyX3dpZHRoID0gNCArIChnZGJhcmNoX3B0 cl9iaXQgKHRhcmdldF9nZGJhcmNoKSAvIDQpOworICBhZGRyX3dpZHRoID0g NCArIChnZGJhcmNoX3B0cl9iaXQgKGdkYmFyY2gpIC8gNCk7CiAKICAgdXBk YXRlX3NvbGliX2xpc3QgKGZyb21fdHR5LCAwKTsKIAotICBmb3IgKHNvID0g c29fbGlzdF9oZWFkOyBzbzsgc28gPSBzby0+bmV4dCkKKyAgLyogbWFrZV9j bGVhbnVwX3VpX291dF90YWJsZV9iZWdpbl9lbmQgbmVlZHMgdG8ga25vdyB0 aGUgbnVtYmVyIG9mCisgICAgIHJvd3MsIHNvIHdlIG5lZWQgdG8gbWFrZSB0 d28gcGFzc2VzIG92ZXIgdGhlIGxpYnMuICAqLworCisgIGZvciAobnJfbGli cyA9IDAsIHNvID0gc29fbGlzdF9oZWFkOyBzbzsgc28gPSBzby0+bmV4dCkK ICAgICB7CiAgICAgICBpZiAoc28tPnNvX25hbWVbMF0pCiAJewotCSAgaWYg KCFoZWFkZXJfZG9uZSkKLQkgICAgewotCSAgICAgIHByaW50Zl91bmZpbHRl cmVkICgiJS0qcyUtKnMlLTEycyVzXG4iLCBhZGRyX3dpZHRoLCAiRnJvbSIs Ci0JCQkJIGFkZHJfd2lkdGgsICJUbyIsICJTeW1zIFJlYWQiLAotCQkJCSAi U2hhcmVkIE9iamVjdCBMaWJyYXJ5Iik7Ci0JICAgICAgaGVhZGVyX2RvbmUr KzsKLQkgICAgfQorCSAgaWYgKHBhdHRlcm4gJiYgISByZV9leGVjIChzby0+ c29fbmFtZSkpCisJICAgIGNvbnRpbnVlOworCSAgKytucl9saWJzOworCX0K KyAgICB9CisKKyAgdGFibGVfY2xlYW51cCA9CisgICAgbWFrZV9jbGVhbnVw X3VpX291dF90YWJsZV9iZWdpbl9lbmQgKHVpb3V0LCA0LCBucl9saWJzLAor CQkJCQkgIlNoYXJlZExpYnJhcnlUYWJsZSIpOworCisgIC8qIFRoZSAiLSAx IiBpcyBiZWNhdXNlIHVpX291dCBhZGRzIG9uZSBzcGFjZSBiZXR3ZWVuIGNv bHVtbnMuICAqLworICB1aV9vdXRfdGFibGVfaGVhZGVyICh1aW91dCwgYWRk cl93aWR0aCAtIDEsIHVpX2xlZnQsICJmcm9tIiwgIkZyb20iKTsKKyAgdWlf b3V0X3RhYmxlX2hlYWRlciAodWlvdXQsIGFkZHJfd2lkdGggLSAxLCB1aV9s ZWZ0LCAidG8iLCAiVG8iKTsKKyAgdWlfb3V0X3RhYmxlX2hlYWRlciAodWlv dXQsIDEyIC0gMSwgdWlfbGVmdCwgInN5bXMtcmVhZCIsICJTeW1zIFJlYWQi KTsKKyAgdWlfb3V0X3RhYmxlX2hlYWRlciAodWlvdXQsIDAsIHVpX25vYWxp Z24sCisJCSAgICAgICAibmFtZSIsICJTaGFyZWQgT2JqZWN0IExpYnJhcnki KTsKKworICB1aV9vdXRfdGFibGVfYm9keSAodWlvdXQpOworCisgIGZvciAo c28gPSBzb19saXN0X2hlYWQ7IHNvOyBzbyA9IHNvLT5uZXh0KQorICAgIHsK KyAgICAgIHN0cnVjdCBjbGVhbnVwICpsaWJfY2xlYW51cDsKIAotCSAgcHJp bnRmX3VuZmlsdGVyZWQgKCIlLSpzIiwgYWRkcl93aWR0aCwKLQkJCSAgICAg c28tPmFkZHJfaGlnaCAhPSAwCi0JCQkgICAgICAgPyBoZXhfc3RyaW5nX2N1 c3RvbSAoCi0JCQkgICAgICAgICAgIChMT05HRVNUKSBzby0+YWRkcl9sb3cs Ci0JICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcl93aWR0aCAtIDQp Ci0JCQkgICAgICAgOiAiIik7Ci0JICBwcmludGZfdW5maWx0ZXJlZCAoIiUt KnMiLCBhZGRyX3dpZHRoLAotCQkJICAgICBzby0+YWRkcl9oaWdoICE9IDAK LQkJCSAgICAgICA/IGhleF9zdHJpbmdfY3VzdG9tICgKLQkJCSAgICAgICAg ICAgKExPTkdFU1QpIHNvLT5hZGRyX2hpZ2gsCi0JICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWRkcl93aWR0aCAtIDQpCi0JCQkgICAgICAgOiAiIik7 Ci0JICBwcmludGZfdW5maWx0ZXJlZCAoIiUtMTJzIiwgc28tPnN5bWJvbHNf bG9hZGVkID8gIlllcyIgOiAiTm8iKTsKLQkgIHByaW50Zl91bmZpbHRlcmVk ICgiJXNcbiIsIHNvLT5zb19uYW1lKTsKKyAgICAgIGlmICghIHNvLT5zb19u YW1lWzBdKQorCWNvbnRpbnVlOworICAgICAgaWYgKHBhdHRlcm4gJiYgISBy ZV9leGVjIChzby0+c29fbmFtZSkpCisJY29udGludWU7CisKKyAgICAgIGxp Yl9jbGVhbnVwID0gbWFrZV9jbGVhbnVwX3VpX291dF90dXBsZV9iZWdpbl9l bmQgKHVpb3V0LCAibGliIik7CisKKyAgICAgIGlmIChzby0+YWRkcl9oaWdo ICE9IDApCisJeworCSAgdWlfb3V0X2ZpZWxkX2NvcmVfYWRkciAodWlvdXQs ICJmcm9tIiwgZ2RiYXJjaCwgc28tPmFkZHJfbG93KTsKKwkgIHVpX291dF9m aWVsZF9jb3JlX2FkZHIgKHVpb3V0LCAidG8iLCBnZGJhcmNoLCBzby0+YWRk cl9oaWdoKTsKKwl9CisgICAgICBlbHNlCisJeworCSAgdWlfb3V0X2ZpZWxk X3NraXAgKHVpb3V0LCAiZnJvbSIpOworCSAgdWlfb3V0X2ZpZWxkX3NraXAg KHVpb3V0LCAidG8iKTsKIAl9CisKKyAgICAgIGlmICghIHVpX291dF9pc19t aV9saWtlX3AgKGludGVycF91aV9vdXQgKHRvcF9sZXZlbF9pbnRlcnByZXRl ciAoKSkpCisJICAmJiBzby0+c3ltYm9sc19sb2FkZWQKKwkgICYmICFvYmpm aWxlX2hhc19wYXJ0aWFsX3N5bWJvbHMgKHNvLT5vYmpmaWxlKQorCSAgJiYg IW9iamZpbGVfaGFzX2Z1bGxfc3ltYm9scyAoc28tPm9iamZpbGUpKQorCXsK KwkgIHNvX21pc3NpbmdfZGVidWdfaW5mbyA9IDE7CisJICB1aV9vdXRfZmll bGRfc3RyaW5nICh1aW91dCwgInN5bXMtcmVhZCIsICJZZXMgKCopIik7CisJ fQorICAgICAgZWxzZQorCXVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAi c3ltcy1yZWFkIiwgCisJCQkgICAgIHNvLT5zeW1ib2xzX2xvYWRlZCA/ICJZ ZXMiIDogIk5vIik7CisKKyAgICAgIHVpX291dF9maWVsZF9zdHJpbmcgKHVp b3V0LCAibmFtZSIsIHNvLT5zb19uYW1lKTsKKworICAgICAgdWlfb3V0X3Rl eHQgKHVpb3V0LCAiXG4iKTsKKworICAgICAgZG9fY2xlYW51cHMgKGxpYl9j bGVhbnVwKTsKICAgICB9Ci0gIGlmIChzb19saXN0X2hlYWQgPT0gTlVMTCkK KworICBkb19jbGVhbnVwcyAodGFibGVfY2xlYW51cCk7CisKKyAgaWYgKG5y X2xpYnMgPT0gMCkKKyAgICB7CisgICAgICBpZiAocGF0dGVybikKKwl1aV9v dXRfbWVzc2FnZSAodWlvdXQsIDAsCisJCQlfKCJObyBzaGFyZWQgbGlicmFy aWVzIG1hdGNoZWQuXG4iKSk7CisgICAgICBlbHNlCisJdWlfb3V0X21lc3Nh Z2UgKHVpb3V0LCAwLAorCQkJXygiTm8gc2hhcmVkIGxpYnJhcmllcyBsb2Fk ZWQgYXQgdGhpcyB0aW1lLlxuIikpOworICAgIH0KKyAgZWxzZQogICAgIHsK LSAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCJObyBzaGFyZWQgbGlicmFy aWVzIGxvYWRlZCBhdCB0aGlzIHRpbWUuXG4iKSk7CisgICAgICBpZiAoc29f bWlzc2luZ19kZWJ1Z19pbmZvKQorCXVpX291dF9tZXNzYWdlICh1aW91dCwg MCwKKwkJCV8oIigqKTogU2hhcmVkIGxpYnJhcnkgaXMgbWlzc2luZyBkZWJ1 Z2dpbmcgaW5mb3JtYXRpb24uXG4iKSk7CiAgICAgfQogfQogCkluZGV4OiBz eW1maWxlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2 cy9zcmMvc3JjL2dkYi9zeW1maWxlLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMjQ0CmRpZmYgLXUgLXAgLXIxLjI0NCBzeW1maWxlLmMKLS0tIHN5bWZp bGUuYwkyMSBBdWcgMjAwOSAxNzo1NzoxNyAtMDAwMAkxLjI0NAorKysgc3lt ZmlsZS5jCTI3IEF1ZyAyMDA5IDIxOjQ5OjEyIC0wMDAwCkBAIC0xNzEsMTMg KzE3MSw2IEBAIER5bmFtaWMgc3ltYm9sIHRhYmxlIHJlbG9hZGluZyBtdWx0 aXBsZSAKIAkJICAgIHZhbHVlKTsKIH0KIAotLyogSWYgbm9uLXplcm8sIGdk YiB3aWxsIG5vdGlmeSB0aGUgdXNlciB3aGVuIGl0IGlzIGxvYWRpbmcgc3lt Ym9scwotICAgZnJvbSBhIGZpbGUuICBUaGlzIGlzIGFsbW9zdCBhbHdheXMg d2hhdCB1c2VycyB3aWxsIHdhbnQgdG8gaGF2ZSBoYXBwZW47Ci0gICBidXQg Zm9yIHByb2dyYW1zIHdpdGggbG90cyBvZiBkeW5hbWljYWxseSBsaW5rZWQg bGlicmFyaWVzLCB0aGUgb3V0cHV0Ci0gICBjYW4gYmUgbW9yZSBub2lzZSB0 aGFuIHNpZ25hbC4gICovCi0KLWludCBwcmludF9zeW1ib2xfbG9hZGluZyA9 IDE7Ci0KIC8qIElmIG5vbi16ZXJvLCBzaGFyZWQgbGlicmFyeSBzeW1ib2xz IHdpbGwgYmUgYWRkZWQgYXV0b21hdGljYWxseQogICAgd2hlbiB0aGUgaW5m ZXJpb3IgaXMgY3JlYXRlZCwgbmV3IGxpYnJhcmllcyBhcmUgbG9hZGVkLCBv ciB3aGVuCiAgICBhdHRhY2hpbmcgdG8gdGhlIGluZmVyaW9yLiAgVGhpcyBp cyBhbG1vc3QgYWx3YXlzIHdoYXQgdXNlcnMgd2lsbApAQCAtOTg5LDEyICs5 ODIsOSBAQCBzeW1ib2xfZmlsZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRz IChiCiAJZGVwcmVjYXRlZF9wcmVfYWRkX3N5bWJvbF9ob29rIChuYW1lKTsK ICAgICAgIGVsc2UKIAl7Ci0gICAgICAgICAgaWYgKHByaW50X3N5bWJvbF9s b2FkaW5nKQotCSAgICB7Ci0JICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8o IlJlYWRpbmcgc3ltYm9scyBmcm9tICVzLi4uIiksIG5hbWUpOwotCSAgICAg IHdyYXBfaGVyZSAoIiIpOwotCSAgICAgIGdkYl9mbHVzaCAoZ2RiX3N0ZG91 dCk7Ci0JICAgIH0KKwkgIHByaW50Zl91bmZpbHRlcmVkIChfKCJSZWFkaW5n IHN5bWJvbHMgZnJvbSAlcy4uLiIpLCBuYW1lKTsKKwkgIHdyYXBfaGVyZSAo IiIpOworCSAgZ2RiX2ZsdXNoIChnZGJfc3Rkb3V0KTsKIAl9CiAgICAgfQog ICBzeW1zX2Zyb21fb2JqZmlsZSAob2JqZmlsZSwgYWRkcnMsIG9mZnNldHMs IG51bV9vZmZzZXRzLApAQCAtMTAwNyw3ICs5OTcsNyBAQCBzeW1ib2xfZmls ZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRzIChiCiAKICAgaWYgKChmbGFn cyAmIE9CSkZfUkVBRE5PVykgfHwgcmVhZG5vd19zeW1ib2xfZmlsZXMpCiAg ICAgewotICAgICAgaWYgKChmcm9tX3R0eSB8fCBpbmZvX3ZlcmJvc2UpICYm IHByaW50X3N5bWJvbF9sb2FkaW5nKQorICAgICAgaWYgKGZyb21fdHR5IHx8 IGluZm9fdmVyYm9zZSkKIAl7CiAJICBwcmludGZfdW5maWx0ZXJlZCAoXygi ZXhwYW5kaW5nIHRvIGZ1bGwgc3ltYm9scy4uLiIpKTsKIAkgIHdyYXBfaGVy ZSAoIiIpOwpAQCAtMTA0OSwxNSArMTAzOSwxMiBAQCBzeW1ib2xfZmlsZV9h ZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRzIChiCiAgICAgICB4ZnJlZSAoZGVi dWdmaWxlKTsKICAgICB9CiAKLSAgaWYgKCFoYXZlX3BhcnRpYWxfc3ltYm9s cyAoKSAmJiAhaGF2ZV9mdWxsX3N5bWJvbHMgKCkKLSAgICAgICYmIHByaW50 X3N5bWJvbF9sb2FkaW5nKQorICBpZiAoKGZyb21fdHR5IHx8IGluZm9fdmVy Ym9zZSkKKyAgICAgICYmICFvYmpmaWxlX2hhc19wYXJ0aWFsX3N5bWJvbHMg KG9iamZpbGUpCisgICAgICAmJiAhb2JqZmlsZV9oYXNfZnVsbF9zeW1ib2xz IChvYmpmaWxlKSkKICAgICB7CiAgICAgICB3cmFwX2hlcmUgKCIiKTsKLSAg ICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCIobm8gZGVidWdnaW5nIHN5bWJv bHMgZm91bmQpIikpOwotICAgICAgaWYgKGZyb21fdHR5IHx8IGluZm9fdmVy Ym9zZSkKLSAgICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKCIuLi4iKTsKLSAg ICAgIGVsc2UKLSAgICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKCJcbiIpOwor ICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIihubyBkZWJ1Z2dpbmcgc3lt Ym9scyBmb3VuZCkuLi4iKSk7CiAgICAgICB3cmFwX2hlcmUgKCIiKTsKICAg ICB9CiAKQEAgLTEwNjYsMTAgKzEwNTMsNyBAQCBzeW1ib2xfZmlsZV9hZGRf d2l0aF9hZGRyc19vcl9vZmZzZXRzIChiCiAgICAgICBpZiAoZGVwcmVjYXRl ZF9wb3N0X2FkZF9zeW1ib2xfaG9vaykKIAlkZXByZWNhdGVkX3Bvc3RfYWRk X3N5bWJvbF9ob29rICgpOwogICAgICAgZWxzZQotCXsKLQkgIGlmIChwcmlu dF9zeW1ib2xfbG9hZGluZykKLQkgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8o ImRvbmUuXG4iKSk7Ci0JfQorCXByaW50Zl91bmZpbHRlcmVkIChfKCJkb25l LlxuIikpOwogICAgIH0KIAogICAvKiBXZSBwcmludCBzb21lIG1lc3NhZ2Vz IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciAnZnJvbV90dHkgfHwKQEAgLTI0Mzgs NyArMjQyMiw4IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQogCSAgICAgICAg IHplcm8gaXMgT0sgc2luY2UgZGJ4cmVhZC5jIGFsc28gZG9lcyB3aGF0IGl0 IG5lZWRzIHRvIGRvIGlmCiAJICAgICAgICAgb2JqZmlsZS0+Z2xvYmFsX3Bz eW1ib2xzLnNpemUgaXMgMC4gICovCiAJICAgICAgKCpvYmpmaWxlLT5zZi0+ c3ltX3JlYWQpIChvYmpmaWxlLCAwKTsKLQkgICAgICBpZiAoIWhhdmVfcGFy dGlhbF9zeW1ib2xzICgpICYmICFoYXZlX2Z1bGxfc3ltYm9scyAoKSkKKwkg ICAgICBpZiAoIW9iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyAob2JqZmls ZSkKKwkJICAmJiAhb2JqZmlsZV9oYXNfZnVsbF9zeW1ib2xzIChvYmpmaWxl KSkKIAkJewogCQkgIHdyYXBfaGVyZSAoIiIpOwogCQkgIHByaW50Zl91bmZp bHRlcmVkIChfKCIobm8gZGVidWdnaW5nIHN5bWJvbHMgZm91bmQpXG4iKSk7 CkBAIC00MjA3LDEyICs0MTkyLDQgQEAgdGhlIGdsb2JhbCBkZWJ1Zy1maWxl IGRpcmVjdG9yeSBwcmVwZW5kZQogCQkJCSAgICAgTlVMTCwKIAkJCQkgICAg IHNob3dfZGVidWdfZmlsZV9kaXJlY3RvcnksCiAJCQkJICAgICAmc2V0bGlz dCwgJnNob3dsaXN0KTsKLQotICBhZGRfc2V0c2hvd19ib29sZWFuX2NtZCAo InN5bWJvbC1sb2FkaW5nIiwgbm9fY2xhc3MsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAmcHJpbnRfc3ltYm9sX2xvYWRpbmcsIF8oIlwKLVNldCBw cmludGluZyBvZiBzeW1ib2wgbG9hZGluZyBtZXNzYWdlcy4iKSwgXygiXAot U2hvdyBwcmludGluZyBvZiBzeW1ib2wgbG9hZGluZyBtZXNzYWdlcy4iKSwg TlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnNldHByaW50bGlzdCwgJnNob3dwcmludGxpc3QpOwog fQpJbmRleDogc3ltZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvc3ltZmlsZS5oLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjUxCmRpZmYgLXUgLXAgLXIxLjUxIHN5bWZpbGUuaAot LS0gc3ltZmlsZS5oCTE2IEp1biAyMDA5IDE4OjQ5OjI1IC0wMDAwCTEuNTEK KysrIHN5bWZpbGUuaAkyNyBBdWcgMjAwOSAyMTo0OToxMiAtMDAwMApAQCAt Mjg0LDEzICsyODQsNiBAQCBleHRlcm4gY2hhciAqb2Jjb25jYXQgKHN0cnVj dCBvYnN0YWNrICpvCiAKIAkJCS8qICAgVmFyaWFibGVzICAgKi8KIAotLyog SWYgbm9uLXplcm8sIGdkYiB3aWxsIG5vdGlmeSB0aGUgdXNlciB3aGVuIGl0 IGlzIGxvYWRpbmcgc3ltYm9scwotICAgZnJvbSBhIGZpbGUuICBUaGlzIGlz IGFsbW9zdCBhbHdheXMgd2hhdCB1c2VycyB3aWxsIHdhbnQgdG8gaGF2ZSBo YXBwZW47Ci0gICBidXQgZm9yIHByb2dyYW1zIHdpdGggbG90cyBvZiBkeW5h bWljYWxseSBsaW5rZWQgbGlicmFyaWVzLCB0aGUgb3V0cHV0Ci0gICBjYW4g YmUgbW9yZSBub2lzZSB0aGFuIHNpZ25hbC4gICovCi0KLWV4dGVybiBpbnQg cHJpbnRfc3ltYm9sX2xvYWRpbmc7Ci0KIC8qIElmIG5vbi16ZXJvLCBzaGFy ZWQgbGlicmFyeSBzeW1ib2xzIHdpbGwgYmUgYWRkZWQgYXV0b21hdGljYWxs eQogICAgd2hlbiB0aGUgaW5mZXJpb3IgaXMgY3JlYXRlZCwgbmV3IGxpYnJh cmllcyBhcmUgbG9hZGVkLCBvciB3aGVuCiAgICBhdHRhY2hpbmcgdG8gdGhl IGluZmVyaW9yLiAgVGhpcyBpcyBhbG1vc3QgYWx3YXlzIHdoYXQgdXNlcnMg d2lsbApJbmRleDogZG9jL2dkYi50ZXhpbmZvCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZG9jL2dkYi50ZXhp bmZvLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYxNwpkaWZmIC11IC1wIC1y MS42MTcgZ2RiLnRleGluZm8KLS0tIGRvYy9nZGIudGV4aW5mbwkyNSBBdWcg MjAwOSAxNToyNDoxMiAtMDAwMAkxLjYxNworKysgZG9jL2dkYi50ZXhpbmZv CTI3IEF1ZyAyMDA5IDIxOjQ5OjEzIC0wMDAwCkBAIC0xMjYzNywyMiArMTI2 MzcsNiBAQCBpcyBwcmludGVkIGFzIGZvbGxvd3M6CiBAaXRlbSBzaG93IG9w YXF1ZS10eXBlLXJlc29sdXRpb24KIFNob3cgd2hldGhlciBvcGFxdWUgdHlw ZXMgYXJlIHJlc29sdmVkIG9yIG5vdC4KIAotQGtpbmRleCBzZXQgcHJpbnQg c3ltYm9sLWxvYWRpbmcKLUBjaW5kZXggcHJpbnQgbWVzc2FnZXMgd2hlbiBz eW1ib2xzIGFyZSBsb2FkZWQKLUBpdGVtIHNldCBwcmludCBzeW1ib2wtbG9h ZGluZwotQGl0ZW14IHNldCBwcmludCBzeW1ib2wtbG9hZGluZyBvbgotQGl0 ZW14IHNldCBwcmludCBzeW1ib2wtbG9hZGluZyBvZmYKLVRoZSBAY29kZXtz ZXQgcHJpbnQgc3ltYm9sLWxvYWRpbmd9IGNvbW1hbmQgYWxsb3dzIHlvdSB0 byBlbmFibGUgb3IKLWRpc2FibGUgcHJpbnRpbmcgb2YgbWVzc2FnZXMgd2hl biBAdmFsdWV7R0RCTn0gbG9hZHMgc3ltYm9scy4KLUJ5IGRlZmF1bHQsIHRo ZXNlIG1lc3NhZ2VzIHdpbGwgYmUgcHJpbnRlZCwgYW5kIG5vcm1hbGx5IHRo aXMgaXMgd2hhdAoteW91IHdhbnQuICBEaXNhYmxpbmcgdGhlc2UgbWVzc2Fn ZXMgaXMgdXNlZnVsIHdoZW4gZGVidWdnaW5nIGFwcGxpY2F0aW9ucwotd2l0 aCBsb3RzIG9mIHNoYXJlZCBsaWJyYXJpZXMgd2hlcmUgdGhlIHF1YW50aXR5 IG9mIG91dHB1dCBjYW4gYmUgbW9yZQotYW5ub3lpbmcgdGhhbiB1c2VmdWwu Ci0KLUBraW5kZXggc2hvdyBwcmludCBzeW1ib2wtbG9hZGluZwotQGl0ZW0g c2hvdyBwcmludCBzeW1ib2wtbG9hZGluZwotU2hvdyB3aGV0aGVyIG1lc3Nh Z2VzIHdpbGwgYmUgcHJpbnRlZCB3aGVuIEB2YWx1ZXtHREJOfSBsb2FkcyBz eW1ib2xzLgotCiBAa2luZGV4IG1haW50IHByaW50IHN5bWJvbHMKIEBjaW5k ZXggc3ltYm9sIGR1bXAKIEBraW5kZXggbWFpbnQgcHJpbnQgcHN5bWJvbHMK QEAgLTEzNTI1LDkgKzEzNTA5LDExIEBAIGNvbW1hbmQ6CiBAdGFibGUgQGNv ZGUKIEBraW5kZXggaW5mbyBzaGFyZWRsaWJyYXJ5CiBAa2luZGV4IGluZm8g c2hhcmUKLUBpdGVtIGluZm8gc2hhcmUKLUBpdGVteCBpbmZvIHNoYXJlZGxp YnJhcnkKLVByaW50IHRoZSBuYW1lcyBvZiB0aGUgc2hhcmVkIGxpYnJhcmll cyB3aGljaCBhcmUgY3VycmVudGx5IGxvYWRlZC4KK0BpdGVtIGluZm8gc2hh cmUgQHZhcntyZWdleH0KK0BpdGVteCBpbmZvIHNoYXJlZGxpYnJhcnkgQHZh cntyZWdleH0KK1ByaW50IHRoZSBuYW1lcyBvZiB0aGUgc2hhcmVkIGxpYnJh cmllcyB3aGljaCBhcmUgY3VycmVudGx5IGxvYWRlZAordGhhdCBtYXRjaCBA dmFye3JlZ2V4fS4gIElmIEB2YXJ7cmVnZXh9IGlzIG9taXR0ZWQgdGhlbiBw cmludAorYWxsIHNoYXJlZCBsaWJyYXJpZXMgdGhhdCBhcmUgbG9hZGVkLgog CiBAa2luZGV4IHNoYXJlZGxpYnJhcnkKIEBraW5kZXggc2hhcmUK --000e0cd359bc93bd4f047226bad1--