From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.bugs Subject: bug#44858: [PATCH] Make byte-compiler warn about wide docstrings Date: Tue, 24 Nov 2020 17:36:34 -0800 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000033893f05b4e475e8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35597"; mail-complaints-to="usenet@ciao.gmane.io" To: 44858@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Nov 25 02:38:50 2020 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 1khjli-0008qI-3F for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 25 Nov 2020 02:38:50 +0100 Original-Received: from localhost ([::1]:37390 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khjlN-0001qg-If for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 24 Nov 2020 20:38:29 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59786) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1khjjy-00015t-Ph for bug-gnu-emacs@gnu.org; Tue, 24 Nov 2020 20:37:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:50303) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1khjjy-0004ZB-IU for bug-gnu-emacs@gnu.org; Tue, 24 Nov 2020 20:37:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1khjjy-00015x-Fl for bug-gnu-emacs@gnu.org; Tue, 24 Nov 2020 20:37:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 25 Nov 2020 01:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 44858 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.16062682034183 (code B ref -1); Wed, 25 Nov 2020 01:37:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 25 Nov 2020 01:36:43 +0000 Original-Received: from localhost ([127.0.0.1]:33616 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khjje-00015O-Ab for submit@debbugs.gnu.org; Tue, 24 Nov 2020 20:36:43 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:34396) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khjjc-00015F-49 for submit@debbugs.gnu.org; Tue, 24 Nov 2020 20:36:41 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59732) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1khjjb-0000nM-Ti for bug-gnu-emacs@gnu.org; Tue, 24 Nov 2020 20:36:39 -0500 Original-Received: from mail-ej1-f53.google.com ([209.85.218.53]:43924) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1khjjZ-0004XT-34 for bug-gnu-emacs@gnu.org; Tue, 24 Nov 2020 20:36:39 -0500 Original-Received: by mail-ej1-f53.google.com with SMTP id k27so684483ejs.10 for ; Tue, 24 Nov 2020 17:36:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:date:message-id:subject:to; bh=nttNspLcVTKyaSe/VFIjEiDZkOgtO2sxMcgFKHTw5yo=; b=LQjvnKbyUMUtCRTXaYggneUil0TWOKGpMXWuZG0sOPWFuENV4LmDfwNBkGCD8TvVQp Z/a1bflz7vQ2z4MUua+1RRuCaXD22ccImcp/8EbzCgRjJ4VOpkwVGDUmvOUpQsh/IEub DOQkDZH3Q9srE1zadUs/8Sjo/YVytFDyNS9F+SzFW2fi2+lYoYEp+leyr1G37Q8N20PE nBuZwiVRxLb4HQkoetQpvs9r/KksvgGekej3jGq2cvK8IMCT2LpDIxzQ6uIooZOBafNQ g0eloN/cyqrWbNEaphcc02hULKxM7yhwnWgYgJilE72uvaUoObEPl4VdGRkd0MgDCZdz jSSg== X-Gm-Message-State: AOAM532sDXoX5LMkEX4HQtQR5rm1/cIIXOHBk+8X02gZ2rjmjnIXWoUL KAtzN5JVEf7BD8HEZiVl2nRC+f7P7E3Z6UwNaaL7CJnd X-Google-Smtp-Source: ABdhPJxlIb4Y6GaWvPn5hd2+HQhbsPBc4eUEoVkKlSg4VfYCJPMmqq0mE7dXEk2MDzVSPHzG+m92fEg9w53flBMEw0s= X-Received: by 2002:a17:906:1918:: with SMTP id a24mr1128723eje.432.1606268195399; Tue, 24 Nov 2020 17:36:35 -0800 (PST) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Tue, 24 Nov 2020 17:36:34 -0800 Received-SPF: pass client-ip=209.85.218.53; envelope-from=stefankangas@gmail.com; helo=mail-ej1-f53.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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:194142 Archived-At: --00000000000033893f05b4e475e8 Content-Type: text/plain; charset="UTF-8" Severity: wishlist In etc/TODO we have: ** Make byte-compiler warn when a doc string is too wide Please find attached a patch that implements this. Notably, it omits defuns, and ignores any lines containing `substitute-command-keys' style substitutions. I've been messing around with getting defuns to work, but I can't find a way for it to work reliably. The problem is that they are already macro expanded when we start issuing warnings, so it's not trivial to reliably separate defuns from other cases where lambda is used. We also have other macros like `define-derived-mode' that produces `defun's themselves, and the line reporting gets messed up. (The autogenerated docstrings from these macros seem to generate too wide docstrings in several cases.) For `substitute-command-keys', it would be nice to get it to work, but I don't think we can know the values of keymaps at compile-time. Possibly there is a good solution for this, but I couldn't find it. As for the state of our own sources, we seem to have less than 100 docstrings that break our own conventions and generates a warning with the patch. It shouldn't take too much work to fix them. (If you were to add defuns into the mix, we would get around 700 warnings for wide docstrings, several of which would be autogenerated. We should probably look into that at some point...) Thoughts? --00000000000033893f05b4e475e8 Content-Type: text/x-diff; charset="US-ASCII"; name="0001-Make-byte-compiler-warn-about-wide-docstrings.patch" Content-Disposition: attachment; filename="0001-Make-byte-compiler-warn-about-wide-docstrings.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: e8e691ec4f6067f3_0.1 RnJvbSAwM2IzNDNkMDcwOTYyNWFhOTJmY2VkNjVlNTZhZDI5ZmY2ZDg0ZDBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5AbWFyeGlzdC5zZT4KRGF0 ZTogV2VkLCAyNSBOb3YgMjAyMCAwMjoyNTo1NyArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIE1ha2Ug Ynl0ZS1jb21waWxlciB3YXJuIGFib3V0IHdpZGUgZG9jc3RyaW5ncwoKKiBsaXNwL2VtYWNzLWxp c3AvYnl0ZWNvbXAuZWwgKGJ5dGUtY29tcGlsZS0td2lkZS1kb2NzdHJpbmctcCk6CihieXRlLWNv bXBpbGUtZG9jc3RyaW5nLWxlbmd0aC13YXJuKTogTmV3IGRlZnVucy4KKGJ5dGUtY29tcGlsZS1k b2NzdHJpbmctbWF4LWNvbHVtbik6IE5ldyBkZWZjdXN0b20uCihieXRlLWNvbXBpbGUtd2Fybmlu Zy10eXBlcywgYnl0ZS1jb21waWxlLXdhcm5pbmdzKTogTmV3IHZhbHVlCidkb2NzdHJpbmdzJy4K KGJ5dGUtY29tcGlsZS1maWxlLWZvcm0tYXV0b2xvYWQsIGJ5dGUtY29tcGlsZS1maWxlLWZvcm0t ZGVmdmFyKToKKGJ5dGUtY29tcGlsZS1maWxlLWZvcm0tZGVmdmFyLWZ1bmN0aW9uLCBieXRlLWNv bXBpbGUtbGFtYmRhKToKKGJ5dGUtY29tcGlsZS1kZWZ2YXIsIGJ5dGUtY29tcGlsZS1maWxlLWZv cm0tZGVmYWxpYXMpOiBXYXJuIGFib3V0IHRvbwp3aWRlIGRvY3N0cmluZ3MuCgoqIHRlc3QvbGlz cC9lbWFjcy1saXNwL2J5dGVjb21wLXRlc3RzLmVsCihieXRlY29tcC0tZGVmaW5lLXdhcm5pbmct ZmlsZS10ZXN0KTogTmV3IG1hY3JvLgooYnl0ZWNvbXAtd2Fybi93YXJuLWxvbmctZG9jc3RyaW5n LWF1dG9sb2FkXC5lbCkKKGJ5dGVjb21wLXdhcm4vd2Fybi1sb25nLWRvY3N0cmluZy1jdXN0b20t ZGVjbGFyZS12YXJpYWJsZVwuZWwpCihieXRlY29tcC13YXJuL3dhcm4tbG9uZy1kb2NzdHJpbmct ZGVmYWxpYXNcLmVsKQooYnl0ZWNvbXAtd2Fybi93YXJuLWxvbmctZG9jc3RyaW5nLWRlZmNvbnN0 XC5lbCkKKGJ5dGVjb21wLXdhcm4vd2Fybi1sb25nLWRvY3N0cmluZy1kZWZpbmUtYWJicmV2LXRh YmxlXC5lbCkKKGJ5dGVjb21wLXdhcm4vd2Fybi1sb25nLWRvY3N0cmluZy1kZWZpbmUtb2Jzb2xl dGUtZnVuY3Rpb24tYWxpYXNcLmVsKQooYnl0ZWNvbXAtd2Fybi93YXJuLWxvbmctZG9jc3RyaW5n LWRlZmluZS1vYnNvbGV0ZS12YXJpYWJsZS1hbGlhc1wuZWwpCihieXRlY29tcC13YXJuL3dhcm4t bG9uZy1kb2NzdHJpbmctZGVmdW5cLmVsKQooYnl0ZWNvbXAtd2Fybi93YXJuLWxvbmctZG9jc3Ry aW5nLWRlZnZhclwuZWwpCihieXRlY29tcC13YXJuL3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmdmFy YWxpYXNcLmVsKQooYnl0ZWNvbXAtd2Fybi93YXJuLWxvbmctZG9jc3RyaW5nLWlnbm9yZS1maWxs LWNvbHVtblwuZWwpCihieXRlY29tcC13YXJuL3dhcm4tbG9uZy1kb2NzdHJpbmctaWdub3JlXC5l bCk6IE5ldyB0ZXN0cy4KKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMv d2Fybi1sb25nLWRvY3N0cmluZy1hdXRvbG9hZC5lbDoKKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9i eXRlY29tcC1yZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1jdXN0b20tZGVjbGFyZS12YXJp YWJsZS5lbDoKKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fybi1s b25nLWRvY3N0cmluZy1kZWZhbGlhcy5lbDoKKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29t cC1yZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1kZWZjb25zdC5lbDoKKiB0ZXN0L2xpc3Av ZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1kZWZpbmUt YWJicmV2LXRhYmxlLmVsOgoqIHRlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNl cy93YXJuLWxvbmctZG9jc3RyaW5nLWRlZmluZS1vYnNvbGV0ZS1mdW5jdGlvbi1hbGlhcy5lbDoK KiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0 cmluZy1kZWZpbmUtb2Jzb2xldGUtdmFyaWFibGUtYWxpYXMuZWw6CiogdGVzdC9saXNwL2VtYWNz LWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmdW4uZWw6Ciog dGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJp bmctZGVmdmFyLmVsOgoqIHRlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93 YXJuLWxvbmctZG9jc3RyaW5nLWRlZnZhcmFsaWFzLmVsOgoqIHRlc3QvbGlzcC9lbWFjcy1saXNw L2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9jc3RyaW5nLWlnbm9yZS1maWxsLWNvbHVt bi5lbDoKKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fybi1sb25n LWRvY3N0cmluZy1pZ25vcmUuZWw6Ck5ldyBmaWxlcy4KLS0tCiBldGMvTkVXUyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOSArKy0KIGV0Yy9UT0RPICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyIC0KIGxpc3AvZW1hY3MtbGlzcC9ieXRlY29t cC5lbCAgICAgICAgICAgICAgICAgICB8IDcxICsrKysrKysrKysrKysrKysrKy0KIC4uLi93YXJu LWxvbmctZG9jc3RyaW5nLWF1dG9sb2FkLmVsICAgICAgICAgICB8ICAzICsKIC4uLi1sb25nLWRv Y3N0cmluZy1jdXN0b20tZGVjbGFyZS12YXJpYWJsZS5lbCB8ICA0ICsrCiAuLi4vd2Fybi1sb25n LWRvY3N0cmluZy1kZWZhbGlhcy5lbCAgICAgICAgICAgfCAgMyArCiAuLi4vd2Fybi1sb25nLWRv Y3N0cmluZy1kZWZjb25zdC5lbCAgICAgICAgICAgfCAgMyArCiAuLi53YXJuLWxvbmctZG9jc3Ry aW5nLWRlZmluZS1hYmJyZXYtdGFibGUuZWwgfCAgMyArCiAuLi5vY3N0cmluZy1kZWZpbmUtb2Jz b2xldGUtZnVuY3Rpb24tYWxpYXMuZWwgfCAgMyArCiAuLi5vY3N0cmluZy1kZWZpbmUtb2Jzb2xl dGUtdmFyaWFibGUtYWxpYXMuZWwgfCAgMyArCiAuLi4vd2Fybi1sb25nLWRvY3N0cmluZy1kZWZ1 bi5lbCAgICAgICAgICAgICAgfCAgMyArCiAuLi4vd2Fybi1sb25nLWRvY3N0cmluZy1kZWZ2YXIu ZWwgICAgICAgICAgICAgfCAgMyArCiAuLi4vd2Fybi1sb25nLWRvY3N0cmluZy1kZWZ2YXJhbGlh cy5lbCAgICAgICAgfCAgMyArCiAuLi4vd2Fybi1sb25nLWRvY3N0cmluZy1pZ25vcmUtZmlsbC1j b2x1bW4uZWwgfCAgNyArKwogLi4uL3dhcm4tbG9uZy1kb2NzdHJpbmctaWdub3JlLmVsICAgICAg ICAgICAgIHwgIDcgKysKIHRlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXRlc3RzLmVsICAg ICAgICB8IDY5ICsrKysrKysrKysrKysrKysrKwogMTYgZmlsZXMgY2hhbmdlZCwgMTkxIGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9saXNwL2Vt YWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctYXV0b2xvYWQu ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNv dXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1jdXN0b20tZGVjbGFyZS12YXJpYWJsZS5lbAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHRlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93 YXJuLWxvbmctZG9jc3RyaW5nLWRlZmFsaWFzLmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9s aXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctZGVm Y29uc3QuZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29t cC1yZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1kZWZpbmUtYWJicmV2LXRhYmxlLmVsCiBj cmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2Vz L3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmaW5lLW9ic29sZXRlLWZ1bmN0aW9uLWFsaWFzLmVsCiBj cmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2Vz L3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmaW5lLW9ic29sZXRlLXZhcmlhYmxlLWFsaWFzLmVsCiBj cmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2Vz L3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmdW4uZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xp c3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1kZWZ2 YXIuZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1y ZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1kZWZ2YXJhbGlhcy5lbAogY3JlYXRlIG1vZGUg MTAwNjQ0IHRlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmct ZG9jc3RyaW5nLWlnbm9yZS1maWxsLWNvbHVtbi5lbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3Qv bGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9jc3RyaW5nLWln bm9yZS5lbAoKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggOTVmODAxZjYw Yy4uZTc2ODY1Nzg0MSAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysrIGIvZXRjL05FV1MKQEAgLTE5 NzgsMTMgKzE5NzgsMjAgQEAgbWVudSBoYW5kbGluZy4KICsrKwogKiogJ2luaGliaXQtbnVsLWJ5 dGUtZGV0ZWN0aW9uJyBpcyByZW5hbWVkIHRvICdpbmhpYml0LW51bGwtYnl0ZS1kZXRlY3Rpb24n LgogCisqKiBieXRlIGNvbXBpbGVyCisKICsrKwotKiogTmV3IGJ5dGUtY29tcGlsZXIgY2hlY2sg Zm9yIG1pc3NpbmcgZHluYW1pYyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMuCisqKiogTmV3IGJ5dGUt Y29tcGlsZXIgY2hlY2sgZm9yIG1pc3NpbmcgZHluYW1pYyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMu CiBJdCBpcyBtZWFudCBhcyBhbiAoZXhwZXJpbWVudGFsKSBhaWQgZm9yIGNvbnZlcnRpbmcgRW1h Y3MgTGlzcCBjb2RlCiB0byBsZXhpY2FsIGJpbmRpbmcsIHdoZXJlIGR5bmFtaWMgKHNwZWNpYWwp IHZhcmlhYmxlcyBib3VuZCBpbiBvbmUKIGZpbGUgY2FuIGFmZmVjdCBjb2RlIGluIGFub3RoZXIu ICBGb3IgZGV0YWlscywgc2VlIHRoZSBtYW51YWwgc2VjdGlvbgogIihFbGlzcCkgQ29udmVydGlu ZyB0byBMZXhpY2FsIEJpbmRpbmciLgogCisqKiogVGhlIGJ5dGUtY29tcGlsZXIgbm93IHdhcm5z IGFib3V0IHRvbyB3aWRlIGRvY3VtZW50YXRpb24gc3RyaW5ncy4KK0J5IGRlZmF1bHQsIGl0IHdp bGwgd2FybiBpZiBhIGRvY3VtZW50YXRpb24gc3RyaW5nIGlzIHdpZGVyIHRoYW4gdGhlCitsYXJn ZXN0IG9mIDgwIGNoYXJhY3RlcnMgb3IgJ2ZpbGwtY29sdW1uJy4gIFNlZSB0aGUgbmV3IHVzZXIK K29wdGlvbiAnYnl0ZS1jb21waWxlLWRvY3N0cmluZy1tYXgtY29sdW1uJy4KKwogLS0tCiAqKiAn dW5sb2FkLWZlYXR1cmUnIG5vdyBhbHNvIHRyaWVzIHRvIHVuZG8gYWRkaXRpb25zIHRvIGJ1ZmZl ci1sb2NhbCBob29rcy4KIApkaWZmIC0tZ2l0IGEvZXRjL1RPRE8gYi9ldGMvVE9ETwppbmRleCA4 ZTkzZTdmYjEwLi4zOGRmZGE0MjRmIDEwMDY0NAotLS0gYS9ldGMvVE9ETworKysgYi9ldGMvVE9E TwpAQCAtNTcyLDggKzU3Miw2IEBAIERvIHRoaXMgZm9yIHNvbWUgb3IgYWxsIGVycm9ycyBhc3Nv Y2lhdGVkIHdpdGggdXNpbmcgc3VicHJvY2Vzc2VzLgogKiogTWF5YmUgcmVpbnRlcnByZXQgJ3Bh cnNlLWVycm9yJyBhcyBhIGNhdGVnb3J5IG9mIGVycm9ycwogUHV0IHNvbWUgb3RoZXIgZXJyb3Jz IHVuZGVyIGl0LgogCi0qKiBNYWtlIGJ5dGUtY29tcGlsZXIgd2FybiB3aGVuIGEgZG9jIHN0cmlu ZyBpcyB0b28gd2lkZQotCiAqKiBNYWtlIGJ5dGUtb3B0aW1pemF0aW9uIHdhcm5pbmdzIGlzc3Vl IGFjY3VyYXRlIGxpbmUgbnVtYmVycwogCiAqKiBSZWNvcmQgdGhlIHN4aGFzaCBvZiB0aGUgZGVm YXVsdCB2YWx1ZSBmb3IgY3VzdG9taXplZCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL2xpc3AvZW1h Y3MtbGlzcC9ieXRlY29tcC5lbCBiL2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC5lbAppbmRleCBh Njg3ZDI5MWU5Li4xZWFhYzZhMzQzIDEwMDY0NAotLS0gYS9saXNwL2VtYWNzLWxpc3AvYnl0ZWNv bXAuZWwKKysrIGIvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLmVsCkBAIC0yOTcsNyArMjk3LDgg QEAgYnl0ZS1jb21waWxlLWVycm9yLW9uLXdhcm4KIChkZWZjb25zdCBieXRlLWNvbXBpbGUtd2Fy bmluZy10eXBlcwogICAnKHJlZGVmaW5lIGNhbGxhcmdzIGZyZWUtdmFycyB1bnJlc29sdmVkCiAJ ICAgICBvYnNvbGV0ZSBub3J1bnRpbWUgY2wtZnVuY3Rpb25zIGludGVyYWN0aXZlLW9ubHkKLQkg ICAgIG1ha2UtbG9jYWwgbWFwY2FyIGNvbnN0YW50cyBzdXNwaWNpb3VzIGxleGljYWwgbGV4aWNh bC1keW5hbWljKQorICAgICAgICAgICAgIG1ha2UtbG9jYWwgbWFwY2FyIGNvbnN0YW50cyBzdXNw aWNpb3VzIGxleGljYWwgbGV4aWNhbC1keW5hbWljCisgICAgICAgICAgICAgZG9jc3RyaW5ncykK ICAgIlRoZSBsaXN0IG9mIHdhcm5pbmcgdHlwZXMgdXNlZCB3aGVuIGBieXRlLWNvbXBpbGUtd2Fy bmluZ3MnIGlzIHQuIikKIChkZWZjdXN0b20gYnl0ZS1jb21waWxlLXdhcm5pbmdzIHQKICAgIkxp c3Qgb2Ygd2FybmluZ3MgdGhhdCB0aGUgYnl0ZS1jb21waWxlciBzaG91bGQgaXNzdWUgKHQgZm9y IGFsbCkuCkBAIC0zMjIsNiArMzIzLDggQEAgYnl0ZS1jb21waWxlLXdhcm5pbmdzCiAgIG1ha2Ut bG9jYWwgIGNhbGxzIHRvIG1ha2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsIHRoYXQgbWF5IGJlIGlu Y29ycmVjdC4KICAgbWFwY2FyICAgICAgbWFwY2FyIGNhbGxlZCBmb3IgZWZmZWN0LgogICBjb25z dGFudHMgICBsZXQtYmluZGluZyBvZiwgb3IgYXNzaWdubWVudCB0bywgY29uc3RhbnRzL25vbnZh cmlhYmxlcy4KKyAgZG9jc3RyaW5ncyAgZG9jc3RyaW5ncyB0aGF0IGFyZSB0b28gd2lkZSAobm8g bG9uZ2VyIHRoYW4gODAgY2hhcmFjdGVycywKKyAgICAgICAgICAgICAgb3IgYGZpbGwtY29sdW1u Jywgd2hpY2hldmVyIGlzIGJpZ2dlcikKICAgc3VzcGljaW91cyAgY29uc3RydWN0cyB0aGF0IHVz dWFsbHkgZG9uJ3QgZG8gd2hhdCB0aGUgY29kZXIgd2FudGVkLgogCiBJZiB0aGUgbGlzdCBiZWdp bnMgd2l0aCBgbm90JywgdGhlbiB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIHNwZWNpZnkgd2Fybmlu Z3MgdG8KQEAgLTE1ODEsNiArMTU4NCw2NCBAQCBieXRlLWNvbXBpbGUtYXJnbGlzdC13YXJuCiAg ICAgICAgICAgIChpZiAoZXF1YWwgc2lnMSAnKDEgLiAxKSkgImFyZ3VtZW50IiAiYXJndW1lbnRz IikKICAgICAgICAgICAgKGJ5dGUtY29tcGlsZS1hcmdsaXN0LXNpZ25hdHVyZS1zdHJpbmcgc2ln MikpKSkpKSkKIAorKGRlZnVuIGJ5dGUtY29tcGlsZS0td2lkZS1kb2NzdHJpbmctcCAoZG9jc3Ry aW5nIGNvbCkKKyAgIlJldHVybiB0IGlmIHN0cmluZyBET0NTVFJJTkcgaXMgd2lkZXIgdGhhbiBD T0wuCitJZ25vcmUgYW55IGBzdWJzdGl0dXRlLWNvbW1hbmQta2V5cycgc3Vic3RpdHV0aW9ucy4i CisgIChzdHJpbmctbWF0Y2gKKyAgIChmb3JtYXQgIl4uXFx7JXMsXFx9JCIgKGludC10by1zdHJp bmcgKDErIGNvbCkpKQorICAgOzsgSWdub3JlIGFueSBgc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMn IHN1YnN0aXR1dGlvbnMuCisgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAgKHJ4ICJc XCIgKG9yICI9IgorICAgICAgICAgICAgICAgICAoc2VxICJbIiAoKiAobm90ICJdIikpICJdIikK KyAgICAgICAgICAgICAgICAgKHNlcSAiPCIgKCogKG5vdCAiPiIpKSAiPiIpCisgICAgICAgICAg ICAgICAgIChzZXEgInsiICgqIChub3QgIn0iKSkgIn0iKSkpCisgICAgIiIKKyAgICBkb2NzdHJp bmcpKSkKKworKGRlZmN1c3RvbSBieXRlLWNvbXBpbGUtZG9jc3RyaW5nLW1heC1jb2x1bW4gODAK KyAgIkxlbmd0aCB0aGF0IGEgZG9jIHN0cmluZyBjYW4gYmUgYmVmb3JlIHRoZSBieXRlLWNvbXBp bGVyIHJlcG9ydHMgYSB3YXJuaW5nLiIKKyAgOmdyb3VwICdieXRlY29tcAorICA6dHlwZSAnaW50 ZWdlcgorICA6c2FmZSAjJ2ludGVnZXJwCisgIDp2ZXJzaW9uICIyOC4xIikKKworKGRlZnVuIGJ5 dGUtY29tcGlsZS1kb2NzdHJpbmctbGVuZ3RoLXdhcm4gKGZvcm0pCisgICJXYXJuIGlmIGRvY3Vt ZW50YXRpb24gc3RyaW5nIG9mIEZPUk0gaXMgdG9vIHdpZGUuCitJdCBpcyB0b28gd2lkZSBpZiBp dCBpcyBsb25nZXIgdGhhbiB0aGUgbGFyZ2VzdCBvZiBgZmlsbC1jb2x1bW4nCithbmQgYGJ5dGUt Y29tcGlsZS1kb2NzdHJpbmctbWF4LWNvbHVtbicuIgorICA7OyBUT0RPOiBUaGlzIGhhcyBzb21l IGxpbWl0YXRpb25zIHRoYXQgaXQgd291bGQgYmUgbmljZSB0byBmaXguCisgIDs7IDEuIFdlIGRv bid0IHRyeSB0byBoYW5kbGUgZGVmdW5zLiAgSXQgaXMgc29tZXdoYXQgdHJpY2t5IHRvIGdldAor ICA7OyAgICBpdCByaWdodCBzaW5jZSBgZGVmdW4nIGlzIGEgbWFjcm8uICBBbHNvLCBzb21lIG1h Y3JvcworICA7OyAgICB0aGVtc2VsdmVzIHByb2R1Y2UgZGVmdW5zIChlLmcuIGBkZWZpbmUtZGVy aXZlZC1tb2RlJykuCisgIDs7IDIuIFdlIGlnbm9yZSBhbnkgbGluZSB3aGVyZSB0aGVyZSBpcyBh IGBzdWJzaXRpdHV0ZS1jb21tYW5kLWtleXMnCisgIDs7ICAgIHJlcGxhY2VtZW50LiAgV2UgY2Fu J3QgcmVsaWFibHkgZG8gdGhlc2UgcmVwbGFjZW1lbnRzLCBzaW5jZQorICA7OyAgICB0aGUgdmFs dWUgb2YgdGhlIGtleW1hcHMgaW4gZ2VuZXJhbCBjYW4ndCBiZSBrbm93biBhdCBjb21waWxlCisg IDs7ICAgIHRpbWUuCisgICh3aGVuIChieXRlLWNvbXBpbGUtd2FybmluZy1lbmFibGVkLXAgJ2Rv Y3N0cmluZ3MpCisgICAgKGxldCAoKGNvbCAobWF4IGJ5dGUtY29tcGlsZS1kb2NzdHJpbmctbWF4 LWNvbHVtbiBmaWxsLWNvbHVtbikpCisgICAgICAgICAga2luZCBuYW1lIGRvY3MpCisgICAgICAo cGNhc2UgKGNhciBmb3JtKQorICAgICAgICAoKG9yICdhdXRvbG9hZCAnY3VzdG9tLWRlY2xhcmUt dmFyaWFibGUgJ2RlZmFsaWFzCisgICAgICAgICAgICAgJ2RlZmNvbnN0ICdkZWZpbmUtYWJicmV2 LXRhYmxlCisgICAgICAgICAgICAgJ2RlZnZhciAnZGVmdmFyYWxpYXMpCisgICAgICAgICAoc2V0 cSBraW5kIChudGggMCBmb3JtKSkKKyAgICAgICAgIChzZXRxIG5hbWUgKG50aCAxIGZvcm0pKQor ICAgICAgICAgKHNldHEgZG9jcyAobnRoIDMgZm9ybSkpKQorICAgICAgICA7Ozs7IEhlcmUgaXMg aG93IG9uZSBjb3VsZCBhZGQgbGFtYmRhJ3MgaGVyZToKKyAgICAgICAgOzsgKCdsYW1iZGEKKyAg ICAgICAgOzsgICAoc2V0cSBraW5kICIiKSAgIDsgY2FuJ3QgYmUgImZ1bmN0aW9uIiwgdW5mb3J0 dW5hdGVseQorICAgICAgICA7OyAgIChzZXRxIGRvY3MgKGFuZCAoc3RyaW5ncCAobnRoIDIgZm9y bSkpCisgICAgICAgIDs7ICAgICAgICAgICAgICAgICAgIChudGggMiBmb3JtKSkpKQorICAgICAg ICApCisgICAgICAod2hlbiAoYW5kIChjb25zcCBuYW1lKSAoZXEgKGNhciBuYW1lKSAncXVvdGUp KQorICAgICAgICAoc2V0cSBuYW1lIChjYWRyIG5hbWUpKSkKKyAgICAgIChzZXRxIG5hbWUgKGlm IG5hbWUgKGZvcm1hdCAiIGAlcyciIG5hbWUpICIiKSkKKyAgICAgICh3aGVuIChhbmQga2luZCBk b2NzIChzdHJpbmdwIGRvY3MpCisgICAgICAgICAgICAgICAgIChieXRlLWNvbXBpbGUtLXdpZGUt ZG9jc3RyaW5nLXAgZG9jcyBjb2wpKQorICAgICAgICAoYnl0ZS1jb21waWxlLXdhcm4gIiVzJXMg ZG9jc3RyaW5nIHdpZGVyIHRoYW4gJXMgY2hhcmFjdGVycyIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIGtpbmQgbmFtZSBjb2wpKSkpCisgIGZvcm0pCisKIChkZWZ2YXIgYnl0ZS1jb21waWxl LWNsLWZ1bmN0aW9ucyBuaWwKICAgIkxpc3Qgb2YgZnVuY3Rpb25zIGRlZmluZWQgaW4gQ0wuIikK IApAQCAtMjQ0Niw3ICsyNTA3LDggQEAgYnl0ZS1jb21waWxlLWZpbGUtZm9ybS1hdXRvbG9hZAog ICAgICAgICAgICAgIChkZWxxIChhc3NxIGZ1bnN5bSBieXRlLWNvbXBpbGUtdW5yZXNvbHZlZC1m dW5jdGlvbnMpCiAgICAgICAgICAgICAgICAgICAgYnl0ZS1jb21waWxlLXVucmVzb2x2ZWQtZnVu Y3Rpb25zKSkpKSkKICAgKGlmIChzdHJpbmdwIChudGggMyBmb3JtKSkKLSAgICAgIGZvcm0KKyAg ICAgIChwcm9nMSBmb3JtCisgICAgICAgIChieXRlLWNvbXBpbGUtZG9jc3RyaW5nLWxlbmd0aC13 YXJuIGZvcm0pKQogICAgIDs7IE5vIGRvYyBzdHJpbmcsIHNvIHdlIGNhbiBjb21waWxlIHRoaXMg YXMgYSBub3JtYWwgZm9ybS4KICAgICAoYnl0ZS1jb21waWxlLWtlZXAtcGVuZGluZyBmb3JtICdi eXRlLWNvbXBpbGUtbm9ybWFsLWNhbGwpKSkKIApAQCAtMjQ3NCw2ICsyNTM2LDcgQEAgYnl0ZS1j b21waWxlLWZpbGUtZm9ybS1kZWZ2YXIKICAgKGlmIChhbmQgKG51bGwgKGNkZHIgZm9ybSkpCQk7 Tm8gYHZhbHVlJyBwcm92aWRlZC4KICAgICAgICAgICAgKGVxIChjYXIgZm9ybSkgJ2RlZnZhcikp ICAgICA7SnVzdCBhIGRlY2xhcmF0aW9uLgogICAgICAgbmlsCisgICAgKGJ5dGUtY29tcGlsZS1k b2NzdHJpbmctbGVuZ3RoLXdhcm4gZm9ybSkKICAgICAoY29uZCAoKGNvbnNwIChudGggMiBmb3Jt KSkKICAgICAgICAgICAgKHNldHEgZm9ybSAoY29weS1zZXF1ZW5jZSBmb3JtKSkKICAgICAgICAg ICAgKHNldGNhciAoY2RyIChjZHIgZm9ybSkpCkBAIC0yNDk3LDYgKzI1NjAsNyBAQCBieXRlLWNv bXBpbGUtZmlsZS1mb3JtLWRlZnZhci1mdW5jdGlvbgogICAgICAgIChpZiAoYnl0ZS1jb21waWxl LXdhcm5pbmctZW5hYmxlZC1wICdzdXNwaWNpb3VzKQogICAgICAgICAgICAoYnl0ZS1jb21waWxl LXdhcm4KICAgICAgICAgICAgICJBbGlhcyBmb3IgYCVTJyBzaG91bGQgYmUgZGVjbGFyZWQgYmVm b3JlIGl0cyByZWZlcmVudCIgbmV3bmFtZSkpKSkpCisgIChieXRlLWNvbXBpbGUtZG9jc3RyaW5n LWxlbmd0aC13YXJuIGZvcm0pCiAgIChieXRlLWNvbXBpbGUta2VlcC1wZW5kaW5nIGZvcm0pKQog CiAocHV0ICdjdXN0b20tZGVjbGFyZS12YXJpYWJsZSAnYnl0ZS1odW5rLWhhbmRsZXIKQEAgLTI4 OTUsNiArMjk1OSw3IEBAIGJ5dGUtY29tcGlsZS1sYW1iZGEKICAgICAodW5sZXNzIChlcSAnbGFt YmRhIChjYXItc2FmZSBmdW4pKQogICAgICAgKGVycm9yICJOb3QgYSBsYW1iZGEgbGlzdDogJVMi IGZ1bikpCiAgICAgKGJ5dGUtY29tcGlsZS1zZXQtc3ltYm9sLXBvc2l0aW9uICdsYW1iZGEpKQor ICAoYnl0ZS1jb21waWxlLWRvY3N0cmluZy1sZW5ndGgtd2FybiBmdW4pCiAgIChieXRlLWNvbXBp bGUtY2hlY2stbGFtYmRhLWxpc3QgKG50aCAxIGZ1bikpCiAgIChsZXQqICgoYXJnbGlzdCAobnRo IDEgZnVuKSkKICAgICAgICAgIChhcmdsaXN0dmFycyAoYnl0ZS1jb21waWxlLWFyZ2xpc3QtdmFy cyBhcmdsaXN0KSkKQEAgLTQ2NzIsNiArNDczNyw3IEBAIGJ5dGUtY29tcGlsZS1kZWZ2YXIKICAg ICAgICAgICAgICAoYnl0ZS1jb21waWxlLXdhcm5pbmctZW5hYmxlZC1wICdsZXhpY2FsIChudGgg MSBmb3JtKSkpCiAgICAgKGJ5dGUtY29tcGlsZS13YXJuICJnbG9iYWwvZHluYW1pYyB2YXIgYCVz JyBsYWNrcyBhIHByZWZpeCIKICAgICAgICAgICAgICAgICAgICAgICAgKG50aCAxIGZvcm0pKSkK KyAgKGJ5dGUtY29tcGlsZS1kb2NzdHJpbmctbGVuZ3RoLXdhcm4gZm9ybSkKICAgKGxldCAoKGZ1 biAobnRoIDAgZm9ybSkpCiAJKHZhciAobnRoIDEgZm9ybSkpCiAJKHZhbHVlIChudGggMiBmb3Jt KSkKQEAgLTQ3NDYsNiArNDgxMiw3IEBAIGJ5dGUtY29tcGlsZS1maWxlLWZvcm0tZGVmYWxpYXMK ICAgICAgIDs7IC0gYGFyZycgaXMgdGhlIGV4cHJlc3Npb24gdG8gd2hpY2ggaXQgaXMgZGVmaW5l ZC4KICAgICAgIDs7IC0gYHJlc3QnIGlzIHRoZSByZXN0IG9mIHRoZSBhcmd1bWVudHMuCiAgICAg ICAoYCgsXyAnLG5hbWUgLGFyZyAuICxyZXN0KQorICAgICAgIChieXRlLWNvbXBpbGUtZG9jc3Ry aW5nLWxlbmd0aC13YXJuIGZvcm0pCiAgICAgICAgKHBjYXNlLWxldCoKICAgICAgICAgICAgOzsg YG1hY3JvJyBpcyBub24tbmlsIGlmIGl0IGRlZmluZXMgYSBtYWNyby4KICAgICAgICAgICAgOzsg YGZ1bicgaXMgdGhlIGZ1bmN0aW9uIHBhcnQgb2YgYGFyZycgKGRlZmF1bHRzIHRvIGBhcmcnKS4K ZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJu LWxvbmctZG9jc3RyaW5nLWF1dG9sb2FkLmVsIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNv bXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctYXV0b2xvYWQuZWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTZkZWIxYmJiMAotLS0gL2Rldi9udWxsCisrKyBi L3Rlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9jc3Ry aW5nLWF1dG9sb2FkLmVsCkBAIC0wLDAgKzEsMyBAQAorOzs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6 IHQgLSotCisoYXV0b2xvYWQgJ2Zvb3ggImZvbyIKKyAgInh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHgiKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VtYWNzLWxpc3Av Ynl0ZWNvbXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctY3VzdG9tLWRlY2xhcmUtdmFy aWFibGUuZWwgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fybi1s b25nLWRvY3N0cmluZy1jdXN0b20tZGVjbGFyZS12YXJpYWJsZS5lbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi4yYTQ3MDBiZmRhCi0tLSAvZGV2L251bGwKKysrIGIvdGVz dC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmct Y3VzdG9tLWRlY2xhcmUtdmFyaWFibGUuZWwKQEAgLTAsMCArMSw0IEBACis7OzsgLSotIGxleGlj YWwtYmluZGluZzogdCAtKi0KKyhjdXN0b20tZGVjbGFyZS12YXJpYWJsZQorICdmb28gdAorICJ4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4IikKZGlmZiAtLWdpdCBh L3Rlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9jc3Ry aW5nLWRlZmFsaWFzLmVsIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2Vz L3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmYWxpYXMuZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uYTQyMzVkMjJiZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvbGlzcC9l bWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9jc3RyaW5nLWRlZmFsaWFz LmVsCkBAIC0wLDAgKzEsMyBAQAorOzs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQgLSotCisoZGVm YWxpYXMgJ2ZvbyAjJ2lnbm9yZQorICAieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eCIpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1y ZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1kZWZjb25zdC5lbCBiL3Rlc3QvbGlzcC9lbWFj cy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9jc3RyaW5nLWRlZmNvbnN0LmVs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk0NmYwMTk4OWEKLS0tIC9k ZXYvbnVsbAorKysgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fy bi1sb25nLWRvY3N0cmluZy1kZWZjb25zdC5lbApAQCAtMCwwICsxLDMgQEAKKzs7OyAtKi0gbGV4 aWNhbC1iaW5kaW5nOiB0IC0qLQorKGRlZmNvbnN0IGZvby1iYXIgbmlsCisgICJ4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4IikKZGlmZiAtLWdpdCBhL3Rlc3QvbGlz cC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9jc3RyaW5nLWRlZmlu ZS1hYmJyZXYtdGFibGUuZWwgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJj ZXMvd2Fybi1sb25nLWRvY3N0cmluZy1kZWZpbmUtYWJicmV2LXRhYmxlLmVsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjNkYTljY2Q0OGMKLS0tIC9kZXYvbnVsbAorKysg Yi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0 cmluZy1kZWZpbmUtYWJicmV2LXRhYmxlLmVsCkBAIC0wLDAgKzEsMyBAQAorOzs7IC0qLSBsZXhp Y2FsLWJpbmRpbmc6IHQgLSotCisoZGVmaW5lLWFiYnJldi10YWJsZSAnZm9vICgpCisgICJ4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4IikKZGlmZiAtLWdpdCBhL3Rl c3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9jc3RyaW5n LWRlZmluZS1vYnNvbGV0ZS1mdW5jdGlvbi1hbGlhcy5lbCBiL3Rlc3QvbGlzcC9lbWFjcy1saXNw L2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9jc3RyaW5nLWRlZmluZS1vYnNvbGV0ZS1m dW5jdGlvbi1hbGlhcy5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5m ZWE4NDFiMTJlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNv bXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmaW5lLW9ic29sZXRlLWZ1bmN0aW9u LWFsaWFzLmVsCkBAIC0wLDAgKzEsMyBAQAorOzs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQgLSot CisoZGVmaW5lLW9ic29sZXRlLWZ1bmN0aW9uLWFsaWFzICdmb28gIydpZ25vcmUgIjk5LjEiCisg ICJ4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4IikKZGlmZiAtLWdp dCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9j c3RyaW5nLWRlZmluZS1vYnNvbGV0ZS12YXJpYWJsZS1hbGlhcy5lbCBiL3Rlc3QvbGlzcC9lbWFj cy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9jc3RyaW5nLWRlZmluZS1vYnNv bGV0ZS12YXJpYWJsZS1hbGlhcy5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi4yZDVmMjAxY2I2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9saXNwL2VtYWNzLWxpc3Av Ynl0ZWNvbXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmaW5lLW9ic29sZXRlLXZh cmlhYmxlLWFsaWFzLmVsCkBAIC0wLDAgKzEsMyBAQAorOzs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6 IHQgLSotCisoZGVmaW5lLW9ic29sZXRlLXZhcmlhYmxlLWFsaWFzICdmb28gJ2lnbm9yZSAiOTku MSIKKyAgInh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgiKQpkaWZm IC0tZ2l0IGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2VzL3dhcm4tbG9u Zy1kb2NzdHJpbmctZGVmdW4uZWwgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNv dXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1kZWZ1bi5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi45NGIwZTgwYzk3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9saXNw L2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmdW4u ZWwKQEAgLTAsMCArMSwzIEBACis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0KKyhkZWZ1 biBmb28gKCkKKyAgInh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgi KQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2VzL3dh cm4tbG9uZy1kb2NzdHJpbmctZGVmdmFyLmVsIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNv bXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmdmFyLmVsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjRiZjhjMTdjM2YKLS0tIC9kZXYvbnVsbAorKysgYi90 ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0cmlu Zy1kZWZ2YXIuZWwKQEAgLTAsMCArMSwzIEBACis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAt Ki0KKyhkZWZ2YXIgZm9vLWJhciBuaWwKKyAgInh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHgiKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNv bXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmdmFyYWxpYXMuZWwgYi90ZXN0L2xp c3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1kZWZ2 YXJhbGlhcy5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41MmZkYzE3 ZjViCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtcmVz b3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctZGVmdmFyYWxpYXMuZWwKQEAgLTAsMCArMSwzIEBA Cis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0KKyhkZWZ2YXJhbGlhcyAnZm9vLWJhciAj J2lnbm9yZQorICAieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCIp CmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fy bi1sb25nLWRvY3N0cmluZy1pZ25vcmUtZmlsbC1jb2x1bW4uZWwgYi90ZXN0L2xpc3AvZW1hY3Mt bGlzcC9ieXRlY29tcC1yZXNvdXJjZXMvd2Fybi1sb25nLWRvY3N0cmluZy1pZ25vcmUtZmlsbC1j b2x1bW4uZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMWZmNTU0ZjM3 MAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291 cmNlcy93YXJuLWxvbmctZG9jc3RyaW5nLWlnbm9yZS1maWxsLWNvbHVtbi5lbApAQCAtMCwwICsx LDcgQEAKKzs7OyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0IC0qLQorKGRlZnZhciBmb28tYmFyIG5p bAorICAieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCIpCisKKzs7 IExvY2FsIFZhcmlhYmxlczoKKzs7IGZpbGwtY29sdW1uOiAxMDAKKzs7IEVuZDoKZGlmZiAtLWdp dCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNlcy93YXJuLWxvbmctZG9j c3RyaW5nLWlnbm9yZS5lbCBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXJlc291cmNl cy93YXJuLWxvbmctZG9jc3RyaW5nLWlnbm9yZS5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi5jODBkZGQxODBkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9saXNwL2Vt YWNzLWxpc3AvYnl0ZWNvbXAtcmVzb3VyY2VzL3dhcm4tbG9uZy1kb2NzdHJpbmctaWdub3JlLmVs CkBAIC0wLDAgKzEsNyBAQAorOzs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQgLSotCisoZGVmdmFy IGZvby1iYXIgbmlsCisgICJ4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4IikKKworOzsgTG9jYWwgVmFyaWFibGVzOgorOzsgYnl0ZS1jb21waWxlLWRvY3N0cmluZy1t YXgtY29sdW1uOiAxMDAKKzs7IEVuZDoKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNw L2J5dGVjb21wLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtdGVzdHMu ZWwKaW5kZXggNjgwYWE1MTRhMi4uMTFkYjc0OTUzOSAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2Vt YWNzLWxpc3AvYnl0ZWNvbXAtdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0 ZWNvbXAtdGVzdHMuZWwKQEAgLTI2LDYgKzI2LDcgQEAKIDs7OyBDb21tZW50YXJ5OgogCiAocmVx dWlyZSAnZXJ0KQorKHJlcXVpcmUgJ2VydC14KQogKHJlcXVpcmUgJ2NsLWxpYikKIChyZXF1aXJl ICdzdWJyLXgpCiAocmVxdWlyZSAnYnl0ZWNvbXApCkBAIC01MzYsNiArNTM3LDc0IEBAIGJ5dGVj b21wLXdhcm4tdmFyaWFibGUtbGFja3MtcHJlZml4CiAgIChieXRlY29tcC0td2l0aC13YXJuaW5n LXRlc3QgImZvby4qbGFja3MgYSBwcmVmaXgiCiAgICAgJyhkZWZ2YXIgZm9vIG5pbCkpKQogCiso ZGVmdmFyIGJ5dGVjb21wLXRlc3RzLS1kb2NzdHJpbmcgKG1ha2Utc3RyaW5nIDEwMCA/eCkpCisK KyhlcnQtZGVmdGVzdCBieXRlY29tcC13YXJuLWxvbmctZG9jc3RyaW5nL2RlZmNvbnN0ICgpCisg IChieXRlY29tcC0td2l0aC13YXJuaW5nLXRlc3QgImRlZmNvbnN0Lipmb28uKndpZGVyIHRoYW4u KmNoYXJhY3RlcnMiCisgICAgYChkZWZjb25zdCBmb28gdCAsYnl0ZWNvbXAtdGVzdHMtLWRvY3N0 cmluZykpKQorCisoZXJ0LWRlZnRlc3QgYnl0ZWNvbXAtd2Fybi1sb25nLWRvY3N0cmluZy9kZWZ2 YXIgKCkKKyAgKGJ5dGVjb21wLS13aXRoLXdhcm5pbmctdGVzdCAiZGVmdmFyLipmb28uKndpZGVy IHRoYW4uKmNoYXJhY3RlcnMiCisgICAgYChkZWZ2YXIgZm9vIHQgLGJ5dGVjb21wLXRlc3RzLS1k b2NzdHJpbmcpKSkKKworKGRlZm1hY3JvIGJ5dGVjb21wLS1kZWZpbmUtd2FybmluZy1maWxlLXRl c3QgKGZpbGUgcmUtd2FybmluZyAmb3B0aW9uYWwgcmV2ZXJzZSkKKyAgYChlcnQtZGVmdGVzdCAs KGludGVybiAoZm9ybWF0ICJieXRlY29tcC13YXJuLyVzIiBmaWxlKSkgKCkKKyAgICAgOmV4cGVj dGVkLXJlc3VsdCAsKGlmIHJldmVyc2UgOmZhaWxlZCA6cGFzc2VkKQorICAgICAod2l0aC1jdXJy ZW50LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUgIipDb21waWxlLUxvZyoiKQorICAgICAgIChs ZXQgKChpbmhpYml0LXJlYWQtb25seSB0KSkgKGVyYXNlLWJ1ZmZlcikpCisgICAgICAgKGJ5dGUt Y29tcGlsZS1maWxlICwoZXJ0LXJlc291cmNlLWZpbGUgZmlsZSkpCisgICAgICAgKGVydC1pbmZv ICgoYnVmZmVyLXN0cmluZykgOnByZWZpeCAiYnVmZmVyOiAiKQorICAgICAgICAgKHNob3VsZCAo cmUtc2VhcmNoLWZvcndhcmQgLHJlLXdhcm5pbmcpKSkpKSkKKworKGJ5dGVjb21wLS1kZWZpbmUt d2FybmluZy1maWxlLXRlc3QKKyAid2Fybi1sb25nLWRvY3N0cmluZy1hdXRvbG9hZC5lbCIKKyAi YXV0b2xvYWQuKmZvb3guKndpZGVyIHRoYW4uKmNoYXJhY3RlcnMiKQorCisoYnl0ZWNvbXAtLWRl ZmluZS13YXJuaW5nLWZpbGUtdGVzdAorICJ3YXJuLWxvbmctZG9jc3RyaW5nLWN1c3RvbS1kZWNs YXJlLXZhcmlhYmxlLmVsIgorICJjdXN0b20tZGVjbGFyZS12YXJpYWJsZS4qZm9vLip3aWRlciB0 aGFuLipjaGFyYWN0ZXJzIikKKworKGJ5dGVjb21wLS1kZWZpbmUtd2FybmluZy1maWxlLXRlc3QK KyAid2Fybi1sb25nLWRvY3N0cmluZy1kZWZhbGlhcy5lbCIKKyAiZGVmYWxpYXMuKmZvby4qd2lk ZXIgdGhhbi4qY2hhcmFjdGVycyIpCisKKyhieXRlY29tcC0tZGVmaW5lLXdhcm5pbmctZmlsZS10 ZXN0CisgIndhcm4tbG9uZy1kb2NzdHJpbmctZGVmY29uc3QuZWwiCisgImRlZmNvbnN0Lipmb28u KndpZGVyIHRoYW4uKmNoYXJhY3RlcnMiKQorCisoYnl0ZWNvbXAtLWRlZmluZS13YXJuaW5nLWZp bGUtdGVzdAorICJ3YXJuLWxvbmctZG9jc3RyaW5nLWRlZmluZS1hYmJyZXYtdGFibGUuZWwiCisg ImRlZmluZS1hYmJyZXYuKmZvby4qd2lkZXIgdGhhbi4qY2hhcmFjdGVycyIpCisKKyhieXRlY29t cC0tZGVmaW5lLXdhcm5pbmctZmlsZS10ZXN0CisgIndhcm4tbG9uZy1kb2NzdHJpbmctZGVmaW5l LW9ic29sZXRlLWZ1bmN0aW9uLWFsaWFzLmVsIgorICJkZWZhbGlhcy4qZm9vLip3aWRlciB0aGFu LipjaGFyYWN0ZXJzIikKKworKGJ5dGVjb21wLS1kZWZpbmUtd2FybmluZy1maWxlLXRlc3QKKyAi d2Fybi1sb25nLWRvY3N0cmluZy1kZWZpbmUtb2Jzb2xldGUtdmFyaWFibGUtYWxpYXMuZWwiCisg ImRlZnZhcmFsaWFzLipmb28uKndpZGVyIHRoYW4uKmNoYXJhY3RlcnMiKQorCis7OyBUT0RPOiBX ZSBkb24ndCB5ZXQgaXNzdWUgd2FybmluZ3MgZm9yIGRlZnVucy4KKyhieXRlY29tcC0tZGVmaW5l LXdhcm5pbmctZmlsZS10ZXN0CisgIndhcm4tbG9uZy1kb2NzdHJpbmctZGVmdW4uZWwiCisgIndp ZGVyIHRoYW4uKmNoYXJhY3RlcnMiICdyZXZlcnNlKQorCisoYnl0ZWNvbXAtLWRlZmluZS13YXJu aW5nLWZpbGUtdGVzdAorICJ3YXJuLWxvbmctZG9jc3RyaW5nLWRlZnZhci5lbCIKKyAiZGVmdmFy Lipmb28uKndpZGVyIHRoYW4uKmNoYXJhY3RlcnMiKQorCisoYnl0ZWNvbXAtLWRlZmluZS13YXJu aW5nLWZpbGUtdGVzdAorICJ3YXJuLWxvbmctZG9jc3RyaW5nLWRlZnZhcmFsaWFzLmVsIgorICJk ZWZ2YXJhbGlhcy4qZm9vLip3aWRlciB0aGFuLipjaGFyYWN0ZXJzIikKKworKGJ5dGVjb21wLS1k ZWZpbmUtd2FybmluZy1maWxlLXRlc3QKKyAid2Fybi1sb25nLWRvY3N0cmluZy1pZ25vcmUtZmls bC1jb2x1bW4uZWwiCisgImRlZnZhci4qZm9vLip3aWRlciB0aGFuLipjaGFyYWN0ZXJzIiAncmV2 ZXJzZSkKKworKGJ5dGVjb21wLS1kZWZpbmUtd2FybmluZy1maWxlLXRlc3QKKyAid2Fybi1sb25n LWRvY3N0cmluZy1pZ25vcmUuZWwiCisgImRlZnZhci4qZm9vLip3aWRlciB0aGFuLipjaGFyYWN0 ZXJzIiAncmV2ZXJzZSkKKwogKGVydC1kZWZ0ZXN0IHRlc3QtZWFnZXItbG9hZC1tYWNyby1leHBh bnNpb24gKCkKICAgKHRlc3QtYnl0ZS1jb21wLWNvbXBpbGUtYW5kLWxvYWQgbmlsCiAgICAgJyhw cm9nbiAoZGVmbWFjcm8gYWJjIChhcmcpIDEpIChkZWZ1biBkZWYgKCkgKGFiYyAyKSkpKQotLSAK Mi4yOS4yCgo= --00000000000033893f05b4e475e8--