From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: kobarity Newsgroups: gmane.emacs.bugs Subject: bug#56635: 29.0.50; [PATCH] hide-show in python-mode supports ONLY function and class blocks Date: Sun, 7 Aug 2022 23:37:59 +0900 Message-ID: References: <87v8ruysep.fsf@secretsauce.net> <87zgh01cqm.fsf@gnus.org> <87sfmr5zi9.fsf@secretsauce.net> <87wnbt3vnq.fsf@secretsauce.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000015352e05e5a7a6f8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40071"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Lars Ingebrigtsen , 56635@debbugs.gnu.org To: Dima Kogan Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Aug 07 16:39:11 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oKhQr-000ADi-Ti for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 07 Aug 2022 16:39:10 +0200 Original-Received: from localhost ([::1]:50290 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oKhQq-0008Df-KO for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 07 Aug 2022 10:39:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34526) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oKhQj-0008Ca-Ub for bug-gnu-emacs@gnu.org; Sun, 07 Aug 2022 10:39:01 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:48315) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oKhQj-0002V9-MJ for bug-gnu-emacs@gnu.org; Sun, 07 Aug 2022 10:39:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oKhQj-00069c-I4 for bug-gnu-emacs@gnu.org; Sun, 07 Aug 2022 10:39:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: kobarity Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 07 Aug 2022 14:39:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56635 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 56635-submit@debbugs.gnu.org id=B56635.165988310023601 (code B ref 56635); Sun, 07 Aug 2022 14:39:01 +0000 Original-Received: (at 56635) by debbugs.gnu.org; 7 Aug 2022 14:38:20 +0000 Original-Received: from localhost ([127.0.0.1]:38064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oKhQ4-00068b-23 for submit@debbugs.gnu.org; Sun, 07 Aug 2022 10:38:20 -0400 Original-Received: from mail-ej1-f49.google.com ([209.85.218.49]:39480) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oKhQ2-00068O-3E for 56635@debbugs.gnu.org; Sun, 07 Aug 2022 10:38:18 -0400 Original-Received: by mail-ej1-f49.google.com with SMTP id i14so12423055ejg.6 for <56635@debbugs.gnu.org>; Sun, 07 Aug 2022 07:38:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=xAQXPiGqEvnwv7HCRdE1uet5LEyywV4k9x/p7B3wxS4=; b=SiovDxeUfzsyLSl8V+gpivAmOj73iOPx1jRNqafEQy4U5QbM61u8qZUObf3r7K1DFK exEV4ydhdRzlrcNXXJ3I7XCXEZdDrJlc73m8A0xwls+JqiRanL3hPtLLAi80/IxHbfCy QVrxSCj/DpBJEIa6VsOHPSRytnB6AWmjduXE4I13dm2j+tb5dHimedV8NhQlJJoLgDOU xrp+vcs8hEePUo0GoNizv8d5B1tCdfxpzQU2EmpYVAuYQs9wtGqNxASOEtUeSwkTbzKG hWCnKFn4sCd8SPmdS9ccfgSNyWl/A9PL0ySrXUvLaNN+7NZUCnYk7rF4c7VZB3UzDfzh wDZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=xAQXPiGqEvnwv7HCRdE1uet5LEyywV4k9x/p7B3wxS4=; b=f8T/Lq+XEY6n097nov48K89ALHTB3liubizIpCgVX9fvk7Z6ZWehCskV9ig/aEKuGk zKRO+x2l5hZS/X1KcIR1R6h6J9IUlKoQeHwy/Dg2StUZpQjTG4a0LusMlb4FEdS5IjHY rbdOVB5cJ9+0oWExU5qNd94DZYYmlzZ+EwTVhuyrWPRq2r5osNor5qBlf9W7YCtLg5CK DwoXaEWXwhTBkOzHNPchNr/erMg3oZbb1xCQU/MbDb+D/hyvxo92JpmYxl8MuKov/6h8 miDom34JozLB4Tvmksfboa6unlp+268Jb27CO7jgJ87dYQwskZPg+WWGadXqYRatWYlo uWhA== X-Gm-Message-State: ACgBeo2Noqp2w0Z18PEfHD3qQHsqqGU05J5sBEUTD8UVvaPaeqU/a0XW f5EsWkyzOxhUhN4A8UyKbSmmsidBw7bsKky+Klw= X-Google-Smtp-Source: AA6agR4/1E/Qdtsx+IEq3cJmGcJCXAhwktGqV2ppde8jcEaMCC5LP4GmmmmSuQXNUWjHpuZHEXU79hAE/c10V5xpkpQ= X-Received: by 2002:a17:907:272a:b0:731:4699:b375 with SMTP id d10-20020a170907272a00b007314699b375mr2506732ejl.633.1659883092252; Sun, 07 Aug 2022 07:38:12 -0700 (PDT) In-Reply-To: <87wnbt3vnq.fsf@secretsauce.net> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:239068 Archived-At: --00000000000015352e05e5a7a6f8 Content-Type: text/plain; charset="UTF-8" Hi, Dima Kogan wrote: > I do agree that the best thing to do is to use functions instead of pure > regexes here. Can we hook that into hs-special-modes-alist instead of > doing something specific in python-mode? I'm imagining extending the > meaning of the fields in hs-special-modes-alist, where we'd do something > different, depending on if some element is a string or not. Maybe that > would make it easier to extend the hideshow support for other languages? If we are to extend hs-special-modes-alist, I think it's better to add functions to find/check blocks. Maybe this is the third option mentioned in the first mail. For that, I added three functions to hs-special-modes-alist: - hs-find-block-beginning-func - hs-find-next-block-func - hs-looking-at-block-start-p-func Attached is a prototype patch to achieve this. Regards, --00000000000015352e05e5a7a6f8 Content-Type: application/octet-stream; name="56635-prototype.patch" Content-Disposition: attachment; filename="56635-prototype.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6jfh29i0 ZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL2hpZGVzaG93LmVsIGIvbGlzcC9wcm9nbW9kZXMv aGlkZXNob3cuZWwKaW5kZXggZjU3NGVjODRmYi4uNmVlZjJjMzI3MSAxMDA2NDQKLS0tIGEvbGlz cC9wcm9nbW9kZXMvaGlkZXNob3cuZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvaGlkZXNob3cuZWwK QEAgLTQzMyw2ICs0MzMsMTUgQEAgaHMtYWRqdXN0LWJsb2NrLWJlZ2lubmluZwogCiBTZWUgYGhz LWMtbGlrZS1hZGp1c3QtYmxvY2stYmVnaW5uaW5nJyBmb3IgYW4gZXhhbXBsZSBvZiB1c2luZyB0 aGlzLiIpCiAKKyhkZWZ2YXItbG9jYWwgaHMtZmluZC1ibG9jay1iZWdpbm5pbmctZnVuYyAjJ2hz LWZpbmQtYmxvY2stYmVnaW5uaW5nCisgICJGdW5jdGlvbiB1c2VkIHRvIGRvIGBocy1maW5kLWJs b2NrLWJlZ2lubmluZycuIikKKworKGRlZnZhci1sb2NhbCBocy1maW5kLW5leHQtYmxvY2stZnVu YyAjJ2hzLWZpbmQtbmV4dC1ibG9jaworICAiRnVuY3Rpb24gdXNlZCB0byBkbyBgaHMtZmluZC1u ZXh0LWJsb2NrJy4iKQorCisoZGVmdmFyLWxvY2FsIGhzLWxvb2tpbmctYXQtYmxvY2stc3RhcnQt cC1mdW5jICMnaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wCisgICJGdW5jdGlvbiB1c2VkIHRv IGRvIGhzLWxvb2tpbmctYXQtYmxvY2stc3RhcnQtcC4iKQorCiAoZGVmdmFyIGhzLWhlYWRsaW5l IG5pbAogICAiVGV4dCBvZiB0aGUgbGluZSB3aGVyZSBhIGhpZGRlbiBibG9jayBiZWdpbnMsIHNl dCBkdXJpbmcgaXNlYXJjaC4KIFlvdSBjYW4gZGlzcGxheSB0aGlzIGluIHRoZSBtb2RlIGxpbmUg YnkgYWRkaW5nIHRoZSBzeW1ib2wgYGhzLWhlYWRsaW5lJwpAQCAtNTY1LDcgKzU3NCw3IEBAIGhz LWhpZGUtYmxvY2stYXQtcG9pbnQKIGFuZCB0aGVuIGZ1cnRoZXIgYWRqdXN0ZWQgdG8gYmUgYXQg dGhlIGVuZCBvZiB0aGUgbGluZS4iCiAgIChpZiBjb21tZW50LXJlZwogICAgICAgKGhzLWhpZGUt Y29tbWVudC1yZWdpb24gKGNhciBjb21tZW50LXJlZykgKGNhZHIgY29tbWVudC1yZWcpIGVuZCkK LSAgICAod2hlbiAoaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wKQorICAgICh3aGVuIChmdW5j YWxsIGhzLWxvb2tpbmctYXQtYmxvY2stc3RhcnQtcC1mdW5jKQogICAgICAgKGxldCAoKG1kYXRh IChtYXRjaC1kYXRhIHQpKQogICAgICAgICAgICAgKGhlYWRlci1lbmQgKG1hdGNoLWVuZCAwKSkK ICAgICAgICAgICAgIHAgcSBvdikKQEAgLTY3Miw3ICs2ODEsMTQgQEAgaHMtZ3Jvay1tb2RlLXR5 cGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MCAoMS0gKG1hdGNoLWVuZCAwKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYy1zdGFydC1yZWdleHApKSkKICAgICAgICAgICAgICAgaHMtZm9yd2FyZC1zZXhwLWZ1 bmMgKG9yIChudGggNCBsb29rdXApICMnZm9yd2FyZC1zZXhwKQotICAgICAgICAgICAgICBocy1h ZGp1c3QtYmxvY2stYmVnaW5uaW5nIChvciAobnRoIDUgbG9va3VwKSAjJ2lkZW50aXR5KSkpCisg ICAgICAgICAgICAgIGhzLWFkanVzdC1ibG9jay1iZWdpbm5pbmcgKG9yIChudGggNSBsb29rdXAp ICMnaWRlbnRpdHkpCisgICAgICAgICAgICAgIGhzLWZpbmQtYmxvY2stYmVnaW5uaW5nLWZ1bmMg KG9yIChudGggNiBsb29rdXApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMnaHMtZmluZC1ibG9jay1iZWdpbm5pbmcpCisgICAgICAgICAgICAgIGhzLWZp bmQtbmV4dC1ibG9jay1mdW5jIChvciAobnRoIDcgbG9va3VwKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIydocy1maW5kLW5leHQtYmxvY2spCisgICAgICAgICAg ICAgIGhzLWxvb2tpbmctYXQtYmxvY2stc3RhcnQtcC1mdW5jCisgICAgICAgICAgICAgIChvciAo bnRoIDggbG9va3VwKQorICAgICAgICAgICAgICAgICAgIydocy1sb29raW5nLWF0LWJsb2NrLXN0 YXJ0LXApKSkKICAgICAoc2V0cSBocy1taW5vci1tb2RlIG5pbCkKICAgICAoZXJyb3IgIiVzIE1v ZGUgZG9lc24ndCBzdXBwb3J0IEhpZGVzaG93IE1pbm9yIE1vZGUiCiAgICAgICAgICAgIChmb3Jt YXQtbW9kZS1saW5lIG1vZGUtbmFtZSkpKSkKQEAgLTY4Myw3ICs2OTksNyBAQCBocy1maW5kLWJs b2NrLWJlZ2lubmluZwogICAobGV0ICgoZG9uZSBuaWwpCiAgICAgICAgIChoZXJlIChwb2ludCkp KQogICAgIDs7IGxvb2sgaWYgY3VycmVudCBsaW5lIGlzIGJsb2NrIHN0YXJ0Ci0gICAgKGlmICho cy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0LXApCisgICAgKGlmIChmdW5jYWxsIGhzLWxvb2tpbmct YXQtYmxvY2stc3RhcnQtcC1mdW5jKQogICAgICAgICAocG9pbnQpCiAgICAgICA7OyBsb29rIGJh Y2t3YXJkIGZvciB0aGUgc3RhcnQgb2YgYSBibG9jayB0aGF0IGNvbnRhaW5zIHRoZSBjdXJzb3IK ICAgICAgICh3aGlsZSAoYW5kIChyZS1zZWFyY2gtYmFja3dhcmQgaHMtYmxvY2stc3RhcnQtcmVn ZXhwIG5pbCB0KQpAQCAtNjk4LDE5ICs3MTQsMjUgQEAgaHMtZmluZC1ibG9jay1iZWdpbm5pbmcK ICAgICAgICAgKGdvdG8tY2hhciBoZXJlKQogICAgICAgICBuaWwpKSkpCiAKKyhkZWZ1biBocy1m aW5kLW5leHQtYmxvY2sgKHJlZ2V4cCBtYXhwIHNraXAtY29tbWVudHMpCisgICJSZXBvc2l0aW9u IHBvaW50IGF0IG5leHQgYmxvY2stc3RhcnQuCitTa2lwIGNvbW1lbnRzIGlmIFNLSVAtQ09NTUVO VFMgaXMgbm90IG5pbCwgYW5kIHNlYXJjaCBmb3IgUkVHRVhQCitpbiByZWdpb24gKHBvaW50IE1B WFApLiIKKyAgKHdoZW4gc2tpcC1jb21tZW50cworICAgIChmb3J3YXJkLWNvbW1lbnQgKHBvaW50 LW1heCkpKQorICAoYW5kICg8IChwb2ludCkgbWF4cCkKKyAgICAgICAocmUtc2VhcmNoLWZvcndh cmQgcmVnZXhwIG1heHAgdCkpKQorCiAoZGVmdW4gaHMtaGlkZS1sZXZlbC1yZWN1cnNpdmUgKGFy ZyBtaW5wIG1heHApCiAgICJSZWN1cnNpdmVseSBoaWRlIGJsb2NrcyBBUkcgbGV2ZWxzIGJlbG93 IHBvaW50IGluIHJlZ2lvbiAoTUlOUCBNQVhQKS4iCi0gICh3aGVuIChocy1maW5kLWJsb2NrLWJl Z2lubmluZykKKyAgKHdoZW4gKGZ1bmNhbGwgaHMtZmluZC1ibG9jay1iZWdpbm5pbmctZnVuYykK ICAgICAoc2V0cSBtaW5wICgxKyAocG9pbnQpKSkKICAgICAoZnVuY2FsbCBocy1mb3J3YXJkLXNl eHAtZnVuYyAxKQogICAgIChzZXRxIG1heHAgKDEtIChwb2ludCkpKSkKICAgKHVubGVzcyBocy1h bGxvdy1uZXN0aW5nCiAgICAgKGhzLWRpc2NhcmQtb3ZlcmxheXMgbWlucCBtYXhwKSkKICAgKGdv dG8tY2hhciBtaW5wKQotICAod2hpbGUgKHByb2duCi0gICAgICAgICAgIChmb3J3YXJkLWNvbW1l bnQgKGJ1ZmZlci1zaXplKSkKLSAgICAgICAgICAgKGFuZCAoPCAocG9pbnQpIG1heHApCi0gICAg ICAgICAgICAgICAgKHJlLXNlYXJjaC1mb3J3YXJkIGhzLWJsb2NrLXN0YXJ0LXJlZ2V4cCBtYXhw IHQpKSkKKyAgKHdoaWxlIChmdW5jYWxsIGhzLWZpbmQtbmV4dC1ibG9jay1mdW5jIGhzLWJsb2Nr LXN0YXJ0LXJlZ2V4cCBtYXhwIHQpCiAgICAgKHdoZW4gKHNhdmUtbWF0Y2gtZGF0YQogCSAgICAo bm90IChudGggOCAoc3ludGF4LXBwc3MpKSkpIDsgbm90IGluc2lkZSBjb21tZW50cyBvciBzdHJp bmdzCiAgICAgICAoaWYgKD4gYXJnIDEpCkBAIC03NDcsOCArNzY5LDggQEAgaHMtYWxyZWFkeS1o aWRkZW4tcAogICAgICAgICAgIChnb3RvLWNoYXIgKG50aCAwIGMtcmVnKSkKICAgICAgICAgKGVu ZC1vZi1saW5lKQogICAgICAgICAod2hlbiAoYW5kIChub3QgYy1yZWcpCi0gICAgICAgICAgICAg ICAgICAgKGhzLWZpbmQtYmxvY2stYmVnaW5uaW5nKQotCQkgICAoaHMtbG9va2luZy1hdC1ibG9j ay1zdGFydC1wKSkKKyAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBocy1maW5kLWJsb2NrLWJl Z2lubmluZy1mdW5jKQorCQkgICAoZnVuY2FsbCBocy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0LXAt ZnVuYykpCiAgICAgICAgICAgOzsgcG9pbnQgaXMgaW5zaWRlIGEgYmxvY2sKICAgICAgICAgICAo Z290by1jaGFyIChtYXRjaC1lbmQgMCkpKSkpCiAgICAgKGVuZC1vZi1saW5lKQpAQCAtNzkwLDEw ICs4MTIsOCBAQCBocy1oaWRlLWFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBocy1jLXN0YXJ0LXJlZ2V4cAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi XFwpIikKICAgICAgICAgICAgICAgICAgICAgICAgICAiIikpKSkKLSAgICAgICAod2hpbGUgKHBy b2duCi0gICAgICAgICAgICAgICAgKHVubGVzcyBocy1oaWRlLWNvbW1lbnRzLXdoZW4taGlkaW5n LWFsbAotICAgICAgICAgICAgICAgICAgKGZvcndhcmQtY29tbWVudCAocG9pbnQtbWF4KSkpCi0g ICAgICAgICAgICAgICAgKHJlLXNlYXJjaC1mb3J3YXJkIHJlIChwb2ludC1tYXgpIHQpKQorICAg ICAgICh3aGlsZSAoZnVuY2FsbCBocy1maW5kLW5leHQtYmxvY2stZnVuYyByZSAocG9pbnQtbWF4 KQorICAgICAgICAgICAgICAgICAgICAgICAobm90IGhzLWhpZGUtY29tbWVudHMtd2hlbi1oaWRp bmctYWxsKSkKICAgICAgICAgIChpZiAobWF0Y2gtYmVnaW5uaW5nIDEpCiAgICAgICAgICAgICAg OzsgV2UgaGF2ZSBmb3VuZCBhIGJsb2NrIGJlZ2lubmluZy4KICAgICAgICAgICAgICAocHJvZ24K QEAgLTgzOCw4ICs4NTgsOCBAQCBocy1oaWRlLWJsb2NrCiAgICAgICAgICAgICAgICAgICAgICAg KDw9IChjb3VudC1saW5lcyAoY2FyIGMtcmVnKSAobnRoIDEgYy1yZWcpKSAxKSkpCiAgICAgICAg KG1lc3NhZ2UgIihub3QgZW5vdWdoIGNvbW1lbnQgbGluZXMgdG8gaGlkZSkiKSkKICAgICAgICgo b3IgYy1yZWcKLQkgICAoaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wKQotICAgICAgICAgICAo aHMtZmluZC1ibG9jay1iZWdpbm5pbmcpKQorCSAgIChmdW5jYWxsIGhzLWxvb2tpbmctYXQtYmxv Y2stc3RhcnQtcC1mdW5jKQorICAgICAgICAgICAoZnVuY2FsbCBocy1maW5kLWJsb2NrLWJlZ2lu bmluZy1mdW5jKSkKICAgICAgICAoaHMtaGlkZS1ibG9jay1hdC1wb2ludCBlbmQgYy1yZWcpCiAg ICAgICAgKHJ1bi1ob29rcyAnaHMtaGlkZS1ob29rKSkpKSkpCiAKQEAgLTg2OCw5ICs4ODgsOSBA QCBocy1zaG93LWJsb2NrCiAgICAgICAgICAgICAgKHdoZW4gKGNhciBjLXJlZykKICAgICAgICAg ICAgICAgIChzZXRxIHAgKGNhciBjLXJlZykKICAgICAgICAgICAgICAgICAgICAgIHEgKGNhZHIg Yy1yZWcpKSkpCi0gICAgICAgICAgICAoKGFuZCAoaHMtZmluZC1ibG9jay1iZWdpbm5pbmcpCisg ICAgICAgICAgICAoKGFuZCAoZnVuY2FsbCBocy1maW5kLWJsb2NrLWJlZ2lubmluZy1mdW5jKQog ICAgICAgICAgICAgICAgICAgOzsgdWdoLCBmcmVzaCBtYXRjaC1kYXRhCi0gICAgICAgICAgICAg ICAgICAoaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wKSkKKyAgICAgICAgICAgICAgICAgIChm dW5jYWxsIGhzLWxvb2tpbmctYXQtYmxvY2stc3RhcnQtcC1mdW5jKSkKICAgICAgICAgICAgICAo c2V0cSBwIChwb2ludCkKICAgICAgICAgICAgICAgICAgICBxIChwcm9nbiAoaHMtZm9yd2FyZC1z ZXhwIChtYXRjaC1kYXRhIHQpIDEpIChwb2ludCkpKSkpCiAgICAgICAod2hlbiAoYW5kIHAgcSkK ZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCBiL2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi5lbAppbmRleCA4OGIxOWM4OGNkLi4zYmNhZGYxMjU0IDEwMDY0NAotLS0gYS9saXNwL3By b2dtb2Rlcy9weXRob24uZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCkBAIC0xNDk2 LDYgKzE0OTYsMTAgQEAgcHl0aG9uLW5hdi1iZWdpbm5pbmctb2YtZGVmdW4tcmVnZXhwCiBUaGUg bmFtZSBvZiB0aGUgZGVmdW4gc2hvdWxkIGJlIGdyb3VwZWQgc28gaXQgY2FuIGJlIHJldHJpZXZl ZAogdmlhIGBtYXRjaC1zdHJpbmcnLiIpCiAKKyhkZWZ2YXIgcHl0aG9uLW5hdi1iZWdpbm5pbmct b2YtYmxvY2stcmVnZXhwCisgIChweXRob24tcnggbGluZS1zdGFydCAoKiBzcGFjZSkgYmxvY2st c3RhcnQpCisgICJSZWdleHAgbWF0Y2hpbmcgYmxvY2sgc3RhcnQuIikKKwogKGRlZnVuIHB5dGhv bi1uYXYtLWJlZ2lubmluZy1vZi1kZWZ1biAoJm9wdGlvbmFsIGFyZykKICAgIkludGVybmFsIGlt cGxlbWVudGF0aW9uIG9mIGBweXRob24tbmF2LWJlZ2lubmluZy1vZi1kZWZ1bicuCiBXaXRoIHBv c2l0aXZlIEFSRyBzZWFyY2ggYmFja3dhcmRzLCBlbHNlIHNlYXJjaCBmb3J3YXJkcy4iCkBAIC00 ODc3LDkgKzQ4ODEsMjkgQEAgcHl0aG9uLWRlc2NyaWJlLWF0LXBvaW50CiAoZGVmdW4gcHl0aG9u LWhpZGVzaG93LWZvcndhcmQtc2V4cC1mdW5jdGlvbiAoX2FyZykKICAgIlB5dGhvbiBzcGVjaWZp YyBgZm9yd2FyZC1zZXhwJyBmdW5jdGlvbiBmb3IgYGhzLW1pbm9yLW1vZGUnLgogQXJndW1lbnQg QVJHIGlzIGlnbm9yZWQuIgotICAocHl0aG9uLW5hdi1lbmQtb2YtZGVmdW4pCi0gICh1bmxlc3Mg KHB5dGhvbi1pbmZvLWN1cnJlbnQtbGluZS1lbXB0eS1wKQotICAgIChiYWNrd2FyZC1jaGFyKSkp CisgIChweXRob24tbmF2LWVuZC1vZi1ibG9jaykpCisKKyhkZWZ1biBweXRob24taGlkZXNob3ct ZmluZC1ibG9jay1iZWdpbm5pbmcgKCkKKyAgIlB5dGhvbiBzcGVjaWZpYyBgaHMtZmluZC1ibG9j ay1iZWdpbm5pbmcnIGZ1cm5jdGlvbiBmb3IgYGhzLW1pbm9yLW1vZGUnLiIKKyAgKGxldCAoKHN0 YXJ0aW5nLXBvcyAocG9pbnQpKQorICAgICAgICAoYmxvY2stYmVnaW5uaW5nKSkKKyAgICAoc2F2 ZS1leGN1cnNpb24KKyAgICAgICh3aGVuIChhbmQgKHB5dGhvbi1uYXYtYmVnaW5uaW5nLW9mLWJs b2NrKQorICAgICAgICAgICAgICAgICAoPD0gc3RhcnRpbmctcG9zIChzYXZlLWV4Y3Vyc2lvbiAo cHl0aG9uLW5hdi1lbmQtb2YtYmxvY2spKSkpCisgICAgICAgIChzZXRxIGJsb2NrLWJlZ2lubmlu ZyAocG9pbnQpKSkpCisgICAgKHdoZW4gYmxvY2stYmVnaW5uaW5nCisgICAgICAoZ290by1jaGFy IGJsb2NrLWJlZ2lubmluZykpKSkKKworKGRlZnVuIHB5dGhvbi1oaWRlc2hvdy1maW5kLW5leHQt YmxvY2sgKHJlZ2V4cCBtYXhwIF9za2lwLWNvbW1lbnRzKQorICAiUHl0aG9uIHNwZWNpZmljIGBo cy1maW5kLW5leHQtYmxvY2snIGZ1cm5jdGlvbiBmb3IgYGhzLW1pbm9yLW1vZGUnLgorQ2FsbCBg cHl0aG9uLW5hdi1mb3J3YXJkLWJsb2NrJyB0byBmaW5kIG5leHQgYmxvY2sgYW5kIGNoZWNrIGlm IHBvaW50IDw9IE1BWFAuCitSRUdFWFAgaXMgcGFzc2VkIHRvIGBsb29raW5nLWF0JyB0byBzZXQg YG1hdGNoLWRhdGEnLiIKKyAgKGxldCAoKG5leHQtYmxvY2sgKHNhdmUtZXhjdXJzaW9uIChweXRo b24tbmF2LWZvcndhcmQtYmxvY2spKSkpCisgICAgKHdoZW4gKGFuZCBuZXh0LWJsb2NrICg8PSBu ZXh0LWJsb2NrIG1heHApKQorICAgICAgKGdvdG8tY2hhciBuZXh0LWJsb2NrKQorICAgICAgKHNh dmUtZXhjdXJzaW9uCisgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgKGxvb2tp bmctYXQgcmVnZXhwKSkpKSkKIAogDAogOzs7IEltZW51CkBAIC01Mzc2LDYgKzU0MDAsMTggQEAg cHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdpbm5pbmctb2YtZGVmdW4KICAgICAgICAgIChiZWdp bm5pbmctb2YtbGluZSAxKQogICAgICAgICAgKGxvb2tpbmctYXQgcHl0aG9uLW5hdi1iZWdpbm5p bmctb2YtZGVmdW4tcmVnZXhwKSkpKQogCisoZGVmdW4gcHl0aG9uLWluZm8tbG9va2luZy1hdC1i ZWdpbm5pbmctb2YtYmxvY2sgKCkKKyAgIkNoZWNrIGlmIHBvaW50IGlzIGF0IGJlZ2lubmluZyBv ZiBibG9jay4iCisgIChsZXQqICgobGluZS1iZWctcG9zIChsaW5lLWJlZ2lubmluZy1wb3NpdGlv bikpCisgICAgICAgICAobGluZS1jb250ZW50LXN0YXJ0ICgrIGxpbmUtYmVnLXBvcyAoY3VycmVu dC1pbmRlbnRhdGlvbikpKSkKKyAgICAoYW5kICg9IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg ICAgICAocHl0aG9uLW5hdi1iZWdpbm5pbmctb2YtYmxvY2spKQorICAgICAgICAgICAgbGluZS1j b250ZW50LXN0YXJ0KQorICAgICAgICAgKDw9IChwb2ludCkgbGluZS1jb250ZW50LXN0YXJ0KQor ICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkK KyAgICAgICAgICAgKGxvb2tpbmctYXQgcHl0aG9uLW5hdi1iZWdpbm5pbmctb2YtYmxvY2stcmVn ZXhwKSkpKSkKKwogKGRlZnVuIHB5dGhvbi1pbmZvLWN1cnJlbnQtbGluZS1jb21tZW50LXAgKCkK ICAgIlJldHVybiBub24tbmlsIGlmIGN1cnJlbnQgbGluZSBpcyBhIGNvbW1lbnQgbGluZS4iCiAg IChjaGFyLWVxdWFsCkBAIC01ODI1LDE0ICs1ODYxLDE3IEBAIHB5dGhvbi1tb2RlCiAKICAgKGFk ZC10by1saXN0CiAgICAnaHMtc3BlY2lhbC1tb2Rlcy1hbGlzdAotICAgJyhweXRob24tbW9kZQot ICAgICAiXFxzLSpcXF88XFwoPzpkZWZcXHxjbGFzc1xcKVxcXz4iCisgICBgKHB5dGhvbi1tb2Rl CisgICAgICxweXRob24tbmF2LWJlZ2lubmluZy1vZi1ibG9jay1yZWdleHAKICAgICAgOzsgVXNl IHRoZSBlbXB0eSBzdHJpbmcgYXMgZW5kIHJlZ2V4cCBzbyBpdCBkb2Vzbid0IGRlZmF1bHQgdG8K ICAgICAgOzsgIlxccykiLiAgVGhpcyB3YXkgcGFyZW5zIGF0IGVuZCBvZiBkZWZ1biBhcmUgcHJv cGVybHkgaGlkZGVuLgogICAgICAiIgogICAgICAiIyIKICAgICAgcHl0aG9uLWhpZGVzaG93LWZv cndhcmQtc2V4cC1mdW5jdGlvbgotICAgICBuaWwpKQorICAgICBuaWwKKyAgICAgcHl0aG9uLWhp ZGVzaG93LWZpbmQtYmxvY2stYmVnaW5uaW5nCisgICAgIHB5dGhvbi1oaWRlc2hvdy1maW5kLW5l eHQtYmxvY2sKKyAgICAgcHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdpbm5pbmctb2YtYmxvY2sp KQogCiAgIChzZXRxLWxvY2FsIG91dGxpbmUtcmVnZXhwIChweXRob24tcnggKCogc3BhY2UpIGJs b2NrLXN0YXJ0KSkKICAgKHNldHEtbG9jYWwgb3V0bGluZS1oZWFkaW5nLWVuZC1yZWdleHAgIjpb XlxuXSpcbiIpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5l bCBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCmluZGV4IGViNTcxMjI2OTAu LmU1MzQ4ZmRkZTQgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3Rz LmVsCisrKyBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCkBAIC01OTU2LDgg KzU5NTYsMTEgQEAgcHl0aG9uLWhpZGVzaG93LWhpZGUtbGV2ZWxzLTEKIGNsYXNzIFNvbWVDbGFz czoKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcmcsIGt3YXJnPTEpOgorCiAgICAgZGVmIGZp bHRlcihzZWxmLCBudW1zKToKLSAgICBkZWYgX19zdHJfXyhzZWxmKToiKSkpKQorCisgICAgZGVm IF9fc3RyX18oc2VsZik6CisiKSkpKQogICAgICAgKG9yIGVuYWJsZWQgKGhzLW1pbm9yLW1vZGUg LTEpKSkpKQogCiAoZXJ0LWRlZnRlc3QgcHl0aG9uLWhpZGVzaG93LWhpZGUtbGV2ZWxzLTIgKCkK --00000000000015352e05e5a7a6f8--