From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Gustaf Waldemarson Newsgroups: gmane.emacs.bugs Subject: bug#34589: 26.1.91; GDB-MI Display Complex Data Types Date: Thu, 21 Feb 2019 14:42:54 +0100 Message-ID: References: <83wolugz2r.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000074041b058267a737" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="69167"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 34589@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Feb 21 14:44:16 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gwoe7-000Hqz-6j for geb-bug-gnu-emacs@m.gmane.org; Thu, 21 Feb 2019 14:44:15 +0100 Original-Received: from localhost ([127.0.0.1]:60593 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwoe6-0002Yi-5m for geb-bug-gnu-emacs@m.gmane.org; Thu, 21 Feb 2019 08:44:14 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:36779) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwodw-0002S0-9H for bug-gnu-emacs@gnu.org; Thu, 21 Feb 2019 08:44:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gwodu-0005aQ-Py for bug-gnu-emacs@gnu.org; Thu, 21 Feb 2019 08:44:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58264) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gwodu-0005aI-Kp for bug-gnu-emacs@gnu.org; Thu, 21 Feb 2019 08:44:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gwodu-0001Fp-E9 for bug-gnu-emacs@gnu.org; Thu, 21 Feb 2019 08:44:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Gustaf Waldemarson Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 21 Feb 2019 13:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 34589 X-GNU-PR-Package: emacs Original-Received: via spool by 34589-submit@debbugs.gnu.org id=B34589.15507565954757 (code B ref 34589); Thu, 21 Feb 2019 13:44:02 +0000 Original-Received: (at 34589) by debbugs.gnu.org; 21 Feb 2019 13:43:15 +0000 Original-Received: from localhost ([127.0.0.1]:59030 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gwod8-0001Ee-Gq for submit@debbugs.gnu.org; Thu, 21 Feb 2019 08:43:15 -0500 Original-Received: from mail-ed1-f51.google.com ([209.85.208.51]:40898) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gwod6-0001ER-8T for 34589@debbugs.gnu.org; Thu, 21 Feb 2019 08:43:13 -0500 Original-Received: by mail-ed1-f51.google.com with SMTP id 10so23142537eds.7 for <34589@debbugs.gnu.org>; Thu, 21 Feb 2019 05:43:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2ggjugB8rkAMrqHcS6ve/vwJRPZMD7N0siW2UA5L2eQ=; b=iFdHnlvU9YfWXld4/tDb6KYJ4YHLqo/Iem7nYw4ycXipdnqZgd3ofiKg/k/Esy1D3/ 8eAqae8AfBFLOkr7pGsiAJG8Cr3VuH3Ly7tSz44Qa+F/mXUf6QBmR9mR6YvchbzKtsd0 vY3UWF2ddquNRpjsI2g+efbz2Go248ab6wl3kX5u0FUBt2BuNC3N2EnWSH86qdp+bjXI 7r8GH/7wO57qUcLwEVUgyaodGmaL4vlwsYFzvvpifXsCu4RPuKJGZKe463GLOEKFPKpV aygufx7vHrfv9FrDrX7htBmK6hMEkh+QYxf59V4NexrVB3b1HzLUa4UJ5Tgq2b2CeCI9 EayQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2ggjugB8rkAMrqHcS6ve/vwJRPZMD7N0siW2UA5L2eQ=; b=WeFr8VdiQeMzpqzYvZB5wR2X2jeY7Zeqr3U8hGPlHprZwrlCW3C6ZL9T72w4t9I2kF ELyO2KJIjiv0E6/057KuwtUs4954hDtJnOiLpFDn+QLQjqObYaTSIwWzQRuipbrzKyR5 WT955sTm4ROrEYYz3ALEg8B753LY5x7xOjRCWhQZjN6euxh8a+nD51vVeodCyrgFXBZh 2HyyM6bXk0UjzWW7/ivoM2aUKOEDcHnrS7KD4fyzeVB1rE5YHL552vm4BpukML3Bxe3c k7RdxdyYOdLXB+iHpOh4sr182/S7zDuTJmvqKNzPPQIplAn4Y8vlM36cRQOODPSD77AM EH/A== X-Gm-Message-State: AHQUAuaYmRAKrcV1EgTZ0YZbGbMnOFgXC8ZOs3UvUhRVUcOESpCeNtCQ 2I9mRt04tbJoIkZ3I9T4/QgqrHSlL+WCU+evFVE= X-Google-Smtp-Source: AHgI3IbOtmvUVHd2b8qjpirLLXv2qeUqk6ccdK8hGv/Uzbcvt7bYA5nwqFPdGFKyTJtyF/cY2g5Md0eGsc0bXYh5o7o= X-Received: by 2002:a17:906:3d69:: with SMTP id r9mr23408768ejf.92.1550756586131; Thu, 21 Feb 2019 05:43:06 -0800 (PST) In-Reply-To: <83wolugz2r.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:155618 Archived-At: --00000000000074041b058267a737 Content-Type: text/plain; charset="UTF-8" I took a stab at it, but it turned out to be a bit more complicated than I thought: - The `-stack-list-locals` accepts one of three flags, 0, 1, or 2 (or equivalently, --no-values, --all-values or --simple-values). - No-values only prints the variable name, - All values print the variable name and the associated value. - Simple-values print the name, type and value for simple types. - There is no option to print everything (name, type and value), this feels like an oversight in the API, but can be worked around, sort of. What I ended up doing was to create a new "handler" that runs before the original one that records the variable name/value pair in a hash-table, that the original handler can refer to for the value of complex data-types. This works. but feels like a significant work-around. Additionally, when I was going through the GDB-MI documentation, I noticed that `-stack-list-locals` is deprecated and should be replaced with `-stack-list-variables`, so the second patch fixes that. Incidentally, this also allow function arguments (argv, argc, etc) to show up in the variable buffer. I've attached the patches that accomplishes the above, but you may want to have someone review it that actually knows at bit more about gdb-mi.el. I haven't contributed anything before either, so there might very well be some other details that I've missed. Best regards, Gustaf Den ons 20 feb. 2019 kl 18:16 skrev Eli Zaretskii : > > > From: Gustaf Waldemarson > > Date: Wed, 20 Feb 2019 11:08:15 +0100 > > > > Since as C++ (and other languages) is moving more and more towards these > > kinds non-simple data types, I figured I should send out a feature > > request for something like the following: > > > > - Remove "--simple-values" by default. > > > > - Add a customizable variable such as `gdb-simple-values-only`, which > > adds the above flag. > > > > - Add a customizable variable such as `gdb-locals-value-limit` to limit > > the length a value is allowed to be shown. > > > > - Add a simple filter of the retrieved value string to make it fit on a > > single line (e.g., a simple version could just remove all newlines). > > Thanks. We don't have an active developer for gdb-mi.el for the > moment, so please consider writing these changes and submitting the > patches here. --00000000000074041b058267a737 Content-Type: text/x-patch; charset="US-ASCII"; name="0002-gdb-mi.el-Use-stack-list-variables.patch" Content-Disposition: attachment; filename="0002-gdb-mi.el-Use-stack-list-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jseob1jq1 RnJvbSAwNTRlYmZlNGNkMTUwY2I2ZDc0YjI2ZTNlODdlYTdhMzJjMmI2MmZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YWYgV2FsZGVtYXJzb24gPGd1c3RhZi53YWxkZW1hcnNv bkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjEgRmViIDIwMTkgMTM6NTI6MjEgKzAxMDAKU3ViamVj dDogW1BBVENIIDIvMl0gZ2RiLW1pLmVsOiBVc2UgYC1zdGFjay1saXN0LXZhcmlhYmxlc2AuCgp1 c2UgYC1zdGFjay1saXN0LXZhcmlhYmxlc2AgaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZApgLXN0 YWNrLWxpc3QtbG9jYWxzYC4gQWRkaXRpb25hbGx5LCB0aGlzIGFsbG93IGZ1bmN0aW9uIGFyZ3Vt ZW50cyB0bwpiZSBkaXNwbGF5ZWQgaW4gdGhlIGxvY2FscyBidWZmZXIuCi0tLQogbGlzcC9wcm9n bW9kZXMvZ2RiLW1pLmVsIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy9nZGItbWku ZWwgYi9saXNwL3Byb2dtb2Rlcy9nZGItbWkuZWwKaW5kZXggNmZiMDlkMS4uNjgzYmZkYiAxMDA2 NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvZ2RiLW1pLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL2dk Yi1taS5lbApAQCAtNDEwOCw3ICs0MTA4LDcgQEAgZ2RiLXNlbGVjdC1mcmFtZQogOzsgdXNlcyAi LXN0YWNrLWxpc3QtbG9jYWxzIC0tc2ltcGxlLXZhbHVlcyIuIE5lZWRzIEdEQiA2LjEgb253YXJk cy4KIChkZWYtZ2RiLXRyaWdnZXItYW5kLWhhbmRsZXIKICAgZ2RiLWludmFsaWRhdGUtbG9jYWxz Ci0gIChjb25jYXQgKGdkYi1jdXJyZW50LWNvbnRleHQtY29tbWFuZCAiLXN0YWNrLWxpc3QtbG9j YWxzIikKKyAgKGNvbmNhdCAoZ2RiLWN1cnJlbnQtY29udGV4dC1jb21tYW5kICItc3RhY2stbGlz dC12YXJpYWJsZXMiKQogICAgICAgICAgICIgLS1zaW1wbGUtdmFsdWVzIikKICAgZ2RiLWxvY2Fs cy1oYW5kbGVyIGdkYi1sb2NhbHMtaGFuZGxlci1jdXN0b20KICAgJyhzdGFydCB1cGRhdGUpKQpA QCAtNDEyMyw3ICs0MTIzLDcgQEAgZ2RiLXNlbGVjdC1mcmFtZQogOzsgUmV0cmlldmUgdGhlIHZh bHVlcyBvZiBhbGwgdmFyaWFibGVzIGJlZm9yZSBpbnZhbGlkYXRpbmcgbG9jYWxzLgogKGRlZi1n ZGItdHJpZ2dlci1hbmQtaGFuZGxlcgogICBnZGItbG9jYWxzLXZhbHVlcwotICAoY29uY2F0IChn ZGItY3VycmVudC1jb250ZXh0LWNvbW1hbmQgIi1zdGFjay1saXN0LWxvY2FscyIpCisgIChjb25j YXQgKGdkYi1jdXJyZW50LWNvbnRleHQtY29tbWFuZCAiLXN0YWNrLWxpc3QtdmFyaWFibGVzIikK ICAgICAgICAgICAiIC0tYWxsLXZhbHVlcyIpCiAgIGdkYi1sb2NhbHMtdmFsdWVzLWhhbmRsZXIg Z2RiLWxvY2Fscy12YWx1ZXMtaGFuZGxlci1jdXN0b20KICAgJyhzdGFydCB1cGRhdGUpKQpAQCAt NDE1Nyw3ICs0MTU3LDcgQEAgZ2RiLWxvY2Fscy12YWx1ZXMtdGFibGUKIAogKGRlZnVuIGdkYi1s b2NhbHMtdmFsdWVzLWhhbmRsZXItY3VzdG9tICgpCiAgICJTdG9yZSB0aGUgdmFsdWVzIG9mIGxv Y2FsIHZhcmlhYmxlcyBpbiBgZ2RiLWxvY2Fscy12YWx1ZS1tYXAnLiIKLSAgKGxldCAoKGxvY2Fs cy1saXN0IChiaW5kYXQtZ2V0LWZpZWxkIChnZGItanNvbi1wYXJ0aWFsLW91dHB1dCkgJ2xvY2Fs cykpKQorICAobGV0ICgobG9jYWxzLWxpc3QgKGJpbmRhdC1nZXQtZmllbGQgKGdkYi1qc29uLXBh cnRpYWwtb3V0cHV0KSAndmFyaWFibGVzKSkpCiAgICAgKGRvbGlzdCAobG9jYWwgbG9jYWxzLWxp c3QpCiAgICAgICAobGV0ICgobmFtZSAoYmluZGF0LWdldC1maWVsZCBsb2NhbCAnbmFtZSkpCiAg ICAgICAgICAgICAodmFsdWUgKGJpbmRhdC1nZXQtZmllbGQgbG9jYWwgJ3ZhbHVlKSkpCkBAIC00 MjA3LDcgKzQyMDcsNyBAQCBnZGItZWRpdC1sb2NhbHMtdmFsdWUKIDs7IENvbXBsZXggZGF0YSB0 eXBlcyBhcmUgbG9va2VkIHVwIGluIGBnZGItbG9jYWxzLXZhbHVlcy10YWJsZScuCiAoZGVmdW4g Z2RiLWxvY2Fscy1oYW5kbGVyLWN1c3RvbSAoKQogICAiSGFuZGxlciB0byByZWJ1aWxkIHRoZSBs b2NhbCB2YXJpYWJsZXMgdGFibGUgYnVmZmVyLiIKLSAgKGxldCAoKGxvY2Fscy1saXN0IChiaW5k YXQtZ2V0LWZpZWxkIChnZGItanNvbi1wYXJ0aWFsLW91dHB1dCkgJ2xvY2FscykpCisgIChsZXQg KChsb2NhbHMtbGlzdCAoYmluZGF0LWdldC1maWVsZCAoZ2RiLWpzb24tcGFydGlhbC1vdXRwdXQp ICd2YXJpYWJsZXMpKQogICAgICAgICAodGFibGUgKG1ha2UtZ2RiLXRhYmxlKSkpCiAgICAgKGRv bGlzdCAobG9jYWwgbG9jYWxzLWxpc3QpCiAgICAgICAobGV0ICgobmFtZSAoYmluZGF0LWdldC1m aWVsZCBsb2NhbCAnbmFtZSkpCi0tIAoyLjcuNAoK --00000000000074041b058267a737 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-gdb-mi.el-Display-complex-data-types.patch" Content-Disposition: attachment; filename="0001-gdb-mi.el-Display-complex-data-types.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jseob1jd0 RnJvbSBlYmVkMTY1YmU4YWYzZDdlMTQ1ZTFkZWZhOTc4OTJmZGY5ZGRmNTYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YWYgV2FsZGVtYXJzb24gPGd1c3RhZi53YWxkZW1hcnNv bkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjEgRmViIDIwMTkgMTM6Mzc6MTQgKzAxMDAKU3ViamVj dDogW1BBVENIIDEvMl0gZ2RiLW1pLmVsOiBEaXNwbGF5IGNvbXBsZXggZGF0YS10eXBlcy4KCkNy ZWF0ZSBhIG5ldyBnZGIgYnVmZmVyIGZvciBleHRyYWN0aW5nIGxvY2FsIHZhcmlhYmxlIHZhbHVl cy4gVG8KZXh0cmFjdCB0aGUgdmFsdWVzIGZvciAnY29tcGxleCcgZGF0YS10eXBlcywgdGhlIGNv bW1hbmQKYC1zdGFjay1saXN0LWxvY2Fsc2AgaXMgdXNlZCB3aXRoIHRoZSBgLS1hbGwtdmFsdWVz YCBmbGFnLgoKVGhlIGV4dHJhY3RlZCB2YWx1ZXMgYXJlIHRoZW4gc3RvcmVkIGluIGEgaGFzaC10 YWJsZSBmb3IgbGF0ZXIgdXNlIGluCnRoZSBgZ2RiLWxvY2Fscy1oYW5kbGVyLWN1c3RvbWAgdGhh dCBwZXJmb3JtcyB0aGUgYWN0dWFsIHVwZGF0ZSBvZiB0aGUKTG9jYWwgdmFyaWFibGUgYnVmZmVy LgoKQWxsIHZhcmlhYmxlIHZhbHVlcyBhcmUgZmlsdGVyZWQgdG8gZml0IGl0IGludG8gYSBzaW5n bGUgbGluZSwgYmVpbmcKdHJ1bmNhdGVkIGFzIG5lY2Vzc2FyeSBieSB0aGUgdXNlciBjdXN0b21p emFibGUgb3B0aW9uCmBnZGItbG9jYWxzLXZhbHVlLWxpbWl0YC4KClRoZSBvbGQgYmVoYXZpb3Ig b2YgaGlkaW5nIGNvbXBsZXggdmFsdWVzIGNhbiBiZSByZXN0b3JlZCB1c2luZyB0aGUKY3VzdG9t aXphYmxlIGBnZGItbG9jYWxzLXNpbXBsZS12YWx1ZXMtb25seWAgb3B0aW9uLgotLS0KIGxpc3Av cHJvZ21vZGVzL2dkYi1taS5lbCB8IDY5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvZ2RiLW1pLmVsIGIvbGlzcC9w cm9nbW9kZXMvZ2RiLW1pLmVsCmluZGV4IGI2M2Y4MmIuLjZmYjA5ZDEgMTAwNjQ0Ci0tLSBhL2xp c3AvcHJvZ21vZGVzL2dkYi1taS5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9nZGItbWkuZWwKQEAg LTQxMTksNiArNDExOSw1MSBAQCBnZGItc2VsZWN0LWZyYW1lCiAgJ2dkYi1sb2NhbHMtbW9kZQog ICdnZGItaW52YWxpZGF0ZS1sb2NhbHMpCiAKKworOzsgUmV0cmlldmUgdGhlIHZhbHVlcyBvZiBh bGwgdmFyaWFibGVzIGJlZm9yZSBpbnZhbGlkYXRpbmcgbG9jYWxzLgorKGRlZi1nZGItdHJpZ2dl ci1hbmQtaGFuZGxlcgorICBnZGItbG9jYWxzLXZhbHVlcworICAoY29uY2F0IChnZGItY3VycmVu dC1jb250ZXh0LWNvbW1hbmQgIi1zdGFjay1saXN0LWxvY2FscyIpCisgICAgICAgICAgIiAtLWFs bC12YWx1ZXMiKQorICBnZGItbG9jYWxzLXZhbHVlcy1oYW5kbGVyIGdkYi1sb2NhbHMtdmFsdWVz LWhhbmRsZXItY3VzdG9tCisgICcoc3RhcnQgdXBkYXRlKSkKKworKGdkYi1zZXQtYnVmZmVyLXJ1 bGVzCisgJ2dkYi1sb2NhbHMtdmFsdWVzLWJ1ZmZlcgorICdnZGItbG9jYWxzLXZhbHVlcy1idWZm ZXItbmFtZQorICdnZGItbG9jYWxzLW1vZGUKKyAnZ2RiLWxvY2Fscy12YWx1ZXMpCisKKyhkZWZ1 biBnZGItbG9jYWxzLXZhbHVlcy1idWZmZXItbmFtZSAoKQorICAoZ2RiLWN1cnJlbnQtY29udGV4 dC1idWZmZXItbmFtZQorICAgKGNvbmNhdCAibG9jYWwgdmFsdWVzIG9mICIgKGdkYi1nZXQtdGFy Z2V0LXN0cmluZykpKSkKKworCisoZGVmY3VzdG9tIGdkYi1sb2NhbHMtc2ltcGxlLXZhbHVlcy1v bmx5IG5pbAorICAiT25seSBkaXNwbGF5IHNpbXBsZSB2YWx1ZXMgaW4gdGhlIExvY2FscyBidWZm ZXIuIgorICA6dHlwZSAnYm9vbGVhbgorICA6Z3JvdXAgJ2d1ZCkKKworCisoZGVmY3VzdG9tIGdk Yi1sb2NhbHMtdmFsdWUtbGltaXQgMTAwCisgICJNYXhpbXVtIGxlbmd0aCB0aGUgdmFsdWUgb2Yg YSBsb2NhbCB2YXJpYWJsZSBpcyBhbGxvd2VkIHRvIGJlLiIKKyAgOnR5cGUgJ2ludGVnZXIKKyAg Omdyb3VwICdndWQpCisKKworKGRlZnZhciBnZGItbG9jYWxzLXZhbHVlcy10YWJsZSAobWFrZS1o YXNoLXRhYmxlIDp0ZXN0ICMnZXF1YWwpCisgICJNYXBwaW5nIG9mIGxvY2FsIHZhcmlhYmxlIG5h bWVzIHRvIGEgc3RyaW5nIHdpdGggdGhlaXIgdmFsdWUuIikKKworCisoZGVmdW4gZ2RiLWxvY2Fs cy12YWx1ZXMtaGFuZGxlci1jdXN0b20gKCkKKyAgIlN0b3JlIHRoZSB2YWx1ZXMgb2YgbG9jYWwg dmFyaWFibGVzIGluIGBnZGItbG9jYWxzLXZhbHVlLW1hcCcuIgorICAobGV0ICgobG9jYWxzLWxp c3QgKGJpbmRhdC1nZXQtZmllbGQgKGdkYi1qc29uLXBhcnRpYWwtb3V0cHV0KSAnbG9jYWxzKSkp CisgICAgKGRvbGlzdCAobG9jYWwgbG9jYWxzLWxpc3QpCisgICAgICAobGV0ICgobmFtZSAoYmlu ZGF0LWdldC1maWVsZCBsb2NhbCAnbmFtZSkpCisgICAgICAgICAgICAodmFsdWUgKGJpbmRhdC1n ZXQtZmllbGQgbG9jYWwgJ3ZhbHVlKSkpCisgICAgICAgIChwdXRoYXNoIG5hbWUgdmFsdWUgZ2Ri LWxvY2Fscy12YWx1ZXMtdGFibGUpKSkpKQorCisKIChkZWZ2YXIgZ2RiLWxvY2Fscy13YXRjaC1t YXAKICAgKGxldCAoKG1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCiAgICAgKHN1cHByZXNzLWtl eW1hcCBtYXApCkBAIC00MTM1LDYgKzQxODAsMTcgQEAgZ2RiLWVkaXQtbG9jYWxzLW1hcC0xCiAg ICAgbWFwKQogICAiS2V5bWFwIHRvIGVkaXQgdmFsdWUgb2YgYSBzaW1wbGUgZGF0YSB0eXBlIGxv Y2FsIHZhcmlhYmxlLiIpCiAKKworKGRlZnVuIGdkYi1sb2NhbHMtdmFsdWUtZmlsdGVyICh2YWx1 ZSkKKyAgIkZpbHRlciBmdW5jdGlvbiBmb3IgdGhlIGxvY2FsIHZhcmlhYmxlIFZBTFVFLiIKKyAg KGxldCogKChuby1ubCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJcbiIgIiAiIHZhbHVlKSkK KyAgICAgICAgIChzdHIgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiW1s6c3BhY2U6XV0rIiAi ICIgbm8tbmwpKQorICAgICAgICAgKGxpbWl0IGdkYi1sb2NhbHMtdmFsdWUtbGltaXQpKQorICAg IChpZiAoPj0gKGxlbmd0aCBzdHIpIGxpbWl0KQorICAgICAgICAoY29uY2F0IChzdWJzdHJpbmcg c3RyIDAgbGltaXQpICIuLi4iKQorICAgICAgc3RyKSkpCisKKwogKGRlZnVuIGdkYi1lZGl0LWxv Y2Fscy12YWx1ZSAoJm9wdGlvbmFsIGV2ZW50KQogICAiQXNzaWduIGEgdmFsdWUgdG8gYSB2YXJp YWJsZSBkaXNwbGF5ZWQgaW4gdGhlIGxvY2FscyBidWZmZXIuIgogICAoaW50ZXJhY3RpdmUgKGxp c3QgbGFzdC1pbnB1dC1ldmVudCkpCkBAIC00MTQ3LDkgKzQyMDMsMTAgQEAgZ2RiLWVkaXQtbG9j YWxzLXZhbHVlCiAgICAgICAoZ3VkLWJhc2ljLWNhbGwKICAgICAgICAoY29uY2F0ICAiLWdkYi1z ZXQgdmFyaWFibGUgIiB2YXIgIiA9ICIgdmFsdWUpKSkpKQogCi07OyBEb24ndCBkaXNwbGF5IHZh bHVlcyBvZiBhcnJheXMgb3Igc3RydWN0dXJlcy4KLTs7IFRoZXNlIGNhbiBiZSBleHBhbmRlZCB1 c2luZyBndWQtd2F0Y2guCisKKzs7IENvbXBsZXggZGF0YSB0eXBlcyBhcmUgbG9va2VkIHVwIGlu IGBnZGItbG9jYWxzLXZhbHVlcy10YWJsZScuCiAoZGVmdW4gZ2RiLWxvY2Fscy1oYW5kbGVyLWN1 c3RvbSAoKQorICAiSGFuZGxlciB0byByZWJ1aWxkIHRoZSBsb2NhbCB2YXJpYWJsZXMgdGFibGUg YnVmZmVyLiIKICAgKGxldCAoKGxvY2Fscy1saXN0IChiaW5kYXQtZ2V0LWZpZWxkIChnZGItanNv bi1wYXJ0aWFsLW91dHB1dCkgJ2xvY2FscykpCiAgICAgICAgICh0YWJsZSAobWFrZS1nZGItdGFi bGUpKSkKICAgICAoZG9saXN0IChsb2NhbCBsb2NhbHMtbGlzdCkKQEAgLTQxNTcsNyArNDIxNCwx MSBAQCBnZGItbG9jYWxzLWhhbmRsZXItY3VzdG9tCiAgICAgICAgICAgICAodmFsdWUgKGJpbmRh dC1nZXQtZmllbGQgbG9jYWwgJ3ZhbHVlKSkKICAgICAgICAgICAgICh0eXBlIChiaW5kYXQtZ2V0 LWZpZWxkIGxvY2FsICd0eXBlKSkpCiAgICAgICAgICh3aGVuIChub3QgdmFsdWUpCi0gICAgICAg ICAgKHNldHEgdmFsdWUgIjxjb21wbGV4IGRhdGEgdHlwZT4iKSkKKyAgICAgICAgICAoc2V0cSB2 YWx1ZQorICAgICAgICAgICAgICAgIChpZiBnZGItbG9jYWxzLXNpbXBsZS12YWx1ZXMtb25seQor ICAgICAgICAgICAgICAgICAgICAiPGNvbXBsZXggZGF0YSB0eXBlPiIKKyAgICAgICAgICAgICAg ICAgIChnZXRoYXNoIG5hbWUgZ2RiLWxvY2Fscy12YWx1ZXMtdGFibGUgIjx1bmF2YWlsYWJsZT4i KSkpKQorICAgICAgICAoc2V0cSB2YWx1ZSAoZ2RiLWxvY2Fscy12YWx1ZS1maWx0ZXIgdmFsdWUp KQogICAgICAgICAoaWYgKG9yIChub3QgdmFsdWUpCiAgICAgICAgICAgICAgICAgKHN0cmluZy1t YXRjaCAiXFwweCIgdmFsdWUpKQogICAgICAgICAgICAgKGFkZC10ZXh0LXByb3BlcnRpZXMgMCAo bGVuZ3RoIG5hbWUpCkBAIC00NTgxLDYgKzQ2NDIsOCBAQCBnZGItc2V0LXdpbmRvdy1idWZmZXIK IAogKGRlZnVuIGdkYi1zZXR1cC13aW5kb3dzICgpCiAgICJMYXlvdXQgdGhlIHdpbmRvdyBwYXR0 ZXJuIGZvciBvcHRpb24gYGdkYi1tYW55LXdpbmRvd3MnLiIKKyAgOzsgTWFrZSBzdXJlIHRoYXQg bG9jYWwgdmFsdWVzIGFyZSB1cGRhdGVkIGJlZm9yZSBsb2NhbHMuCisgIChnZGItZ2V0LWJ1ZmZl ci1jcmVhdGUgJ2dkYi1sb2NhbHMtdmFsdWVzLWJ1ZmZlcikKICAgKGdkYi1nZXQtYnVmZmVyLWNy ZWF0ZSAnZ2RiLWxvY2Fscy1idWZmZXIpCiAgIChnZGItZ2V0LWJ1ZmZlci1jcmVhdGUgJ2dkYi1z dGFjay1idWZmZXIpCiAgIChnZGItZ2V0LWJ1ZmZlci1jcmVhdGUgJ2dkYi1icmVha3BvaW50cy1i dWZmZXIpCi0tIAoyLjcuNAoK --00000000000074041b058267a737--