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.devel Subject: Re: Consistent face for keys in *Help* and `substitute-command-keys' Date: Sat, 6 Mar 2021 11:32:45 -0600 Message-ID: References: <83blc9tnvz.fsf@gnu.org> <83y2fcrzkt.fsf@gnu.org> <831rd4romg.fsf@gnu.org> <83zgzsq7xn.fsf@gnu.org> <83v9afriqp.fsf@gnu.org> <83zgzjhvdn.fsf@gnu.org> <83a6rhxwah.fsf@gnu.org> <837dmlxspt.fsf@gnu.org> <834khpxr0s.fsf@gnu.org> <8335x8ybw9.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000c485ac05bce1963d" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14420"; mail-complaints-to="usenet@ciao.gmane.io" Cc: larsi@gnus.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Mar 06 18:33:51 2021 Return-path: Envelope-to: ged-emacs-devel@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 1lIaoJ-0003dE-Ax for ged-emacs-devel@m.gmane-mx.org; Sat, 06 Mar 2021 18:33:51 +0100 Original-Received: from localhost ([::1]:48498 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIaoI-0005mZ-Dq for ged-emacs-devel@m.gmane-mx.org; Sat, 06 Mar 2021 12:33:50 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49996) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIanL-00054Z-So for emacs-devel@gnu.org; Sat, 06 Mar 2021 12:32:51 -0500 Original-Received: from mail-pf1-f181.google.com ([209.85.210.181]:42601) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIanI-0000dB-JD; Sat, 06 Mar 2021 12:32:51 -0500 Original-Received: by mail-pf1-f181.google.com with SMTP id w18so4303916pfu.9; Sat, 06 Mar 2021 09:32:47 -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:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=6QbvdU4w3DpUPmSHmMHB8Ojled4hFRCK5g9CzdF4c0k=; b=W5IxAqplSNOO2w1CIYYTjvOTV4OKU0v1GXLDnkf7h6PekKOZ01jpJgEBR2H4NP8C6K NZDMIONCNdFhwPq9Ekw3wQa+PSGSu97HD03H1zYKLwfP5PgMEZTJz/y3vvqMR0TpRRal qD/noHQ+cA9OT7+z3v3rAfwVVqdrpKyeQxWRjU/960uNh+38u+7831/NfpUqVgZ83gCe iJnEj9dGVy8fd/iI0AVToVge2q3NWsJY/8RG7S2/QhQpRrQw93HXwM9bSz18zj9uItP/ grh8BWki9G2ArLK7YWLLSo3ZF/YyylDaHuMiMirnYwV6yvB9TOTsz/r8IvBN+007JuI4 a4jg== X-Gm-Message-State: AOAM5330pu4nm87bd9pbV6CTsVDGpkAmGq7UgUiE+tlQfoacl0Fux7IK oq4lpx5/ryVNX9KsM+6BtgoGshUvcCoEjJECb4YIRWrAXG0= X-Google-Smtp-Source: ABdhPJyCM0UHZWY0MMsm+0gddjHE06nk5sZqjHaz8/1W6SQP02+4KS/aD1U0pE8vcgUmDrus0EhpA93K2zi7H4fSaa8= X-Received: by 2002:a63:6206:: with SMTP id w6mr11565382pgb.363.1615051966670; Sat, 06 Mar 2021 09:32:46 -0800 (PST) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sat, 6 Mar 2021 11:32:45 -0600 In-Reply-To: Received-SPF: pass client-ip=209.85.210.181; envelope-from=stefankangas@gmail.com; helo=mail-pf1-f181.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.25, 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: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:266090 Archived-At: --000000000000c485ac05bce1963d Content-Type: text/plain; charset="UTF-8" Stefan Kangas writes: > Eli Zaretskii writes: > >> It makes the tooltip height larger than usual, doesn't it? If so, I >> think we should at least have that mentioned in the doc string of the >> face. > > OK, we can add a note to that effect to the `help-key-binding' > docstring. Here's an updated patch. The changes from the previous patch are all in the definition of the `help-key-binding' face. Let me know if there is anything else to change before this can go in. --000000000000c485ac05bce1963d Content-Type: text/x-diff; charset="US-ASCII"; name="0001-Add-new-face-help-key-binding-for-keybindings-in-hel.patch" Content-Disposition: attachment; filename="0001-Add-new-face-help-key-binding-for-keybindings-in-hel.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: 81564262f64f1697_0.1 RnJvbSA0MjBjMDc3YzJlNTJiYWU4NzAwODk4N2NmYzhiYzAyNWY0OGU4ZmI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5AbWFyeGlzdC5zZT4KRGF0 ZTogV2VkLCAyNCBGZWIgMjAyMSAwMToxODoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBu ZXcgZmFjZSAnaGVscC1rZXktYmluZGluZycgZm9yIGtleWJpbmRpbmdzIGluIGhlbHAKCiogbGlz cC9mYWNlcy5lbCAoaGVscC1rZXktYmluZGluZyk6IE5ldyBmYWNlLgoqIGxpc3AvaGVscC5lbAoo aGVscC1mb3ItaGVscCk6IFJlbmFtZSBmcm9tICdoZWxwLWZvci1oZWxwLWludGVybmFsJy4gIFVz ZQonc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMnIHN5bnRheC4KKGhlbHApOiBNYWtlIGludG8gYWxp YXMgZm9yICdoZWxwLWZvci1oZWxwJy4KKGhlbHAtZm9yLWhlbHAtaW50ZXJuYWwpOiBNYWtlIGlu dG8gb2Jzb2xldGUgYWxpYXMgZm9yCidoZWxwLWZvci1oZWxwJy4KKGhlbHAtLWtleS1kZXNjcmlw dGlvbi1mb250aWZpZWQpOiBOZXcgZnVuY3Rpb24gdG8gYWRkIHRoZQonaGVscC1rZXktYmluZGlu ZycgZmFjZS4KKGhlbHAta2V5LWRlc2NyaXB0aW9uLCBzdWJzdGl0dXRlLWNvbW1hbmQta2V5cykK KGRlc2NyaWJlLW1hcC10cmVlLCBoZWxwLS1kZXNjcmliZS1jb21tYW5kKQooaGVscC0tZGVzY3Jp YmUtdHJhbnNsYXRpb24sIGRlc2NyaWJlLW1hcCk6CiogbGlzcC9oZWxwLWZucy5lbCAoaGVscC1m bnMtLWtleS1iaW5kaW5ncywgZGVzY3JpYmUtbW9kZSk6ClVzZSBhYm92ZSBuZXcgZnVuY3Rpb24u CiogbGlzcC9pc2VhcmNoLmVsIChpc2VhcmNoLWhlbHAtZm9yLWhlbHAtaW50ZXJuYWwpOiBVc2UK YHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzJyBzeW50YXguCiogbGlzcC9oZWxwLW1hY3JvLmVsICht YWtlLWhlbHAtc2NyZWVuKTogVXNlCidzdWJzdGl0dXRlLWNvbW1hbmQta2V5cycgYW5kICdoZWxw LS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVkJy4KU2ltcGxpZnkuCiogc3JjL2tleW1hcC5jIChk ZXNjcmliZV9rZXlfbWF5YmVfZm9udGlmeSk6IE5ldyBmdW5jdGlvbiB0byBhZGQKdGhlICdoZWxw LWtleS1iaW5kaW5nJyBmYWNlIHRvIGtleWJpbmRpbmdzLgooZGVzY3JpYmVfdmVjdG9yKTogVXNl IGFib3ZlIG5ldyBrZXliaW5kaW5nLgooc3ltc19vZl9rZXltYXApIDxRZm9udF9sb2NrX2ZhY2Us IFFoZWxwX2tleV9iaW5kaW5nPjogTmV3CkRFRlNZTXMuCihmb250aWZ5X2tleV9wcm9wZXJ0aWVz KTogTmV3IHN0YXRpYyB2YXJpYWJsZS4KKiBsaXNwL3Rvb2x0aXAuZWwgKHRvb2x0aXAtc2hvdyk6 IEF2b2lkIG92ZXJyaWRpbmcgZmFjZXMgaW4Kc3BlY2lmaWVkIHRvb2x0aXAgdGV4dC4KLS0tCiBl dGMvTkVXUyAgICAgICAgICAgfCAgIDMgKwogbGlzcC9mYWNlcy5lbCAgICAgIHwgIDE4ICsrKysK IGxpc3AvaGVscC1mbnMuZWwgICB8ICAyMSArKystLQogbGlzcC9oZWxwLW1hY3JvLmVsIHwgMjIz ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbGlzcC9oZWxw LmVsICAgICAgIHwgMTM5ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGxpc3AvaXNlYXJj aC5lbCAgICB8ICAgOCArLQogbGlzcC90b29sdGlwLmVsICAgIHwgICA3ICstCiBzcmMva2V5bWFw LmMgICAgICAgfCAgMjcgKysrKystCiA4IGZpbGVzIGNoYW5nZWQsIDI1NiBpbnNlcnRpb25zKCsp LCAxOTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRl eCA2YjQ0NTZlM2RlLi41NDgyMzIxZjQ5IDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMv TkVXUwpAQCAtOTE0LDYgKzkxNCw5IEBAIHNraXBwZWQuCiAKICoqIEhlbHAKIAorLS0tCisqKiog S2V5YmluZGluZ3MgaW4gJ2hlbHAtbW9kZScgdXNlIHRoZSBuZXcgYGhlbHAta2V5LWJpbmRpbmcn IGZhY2UuCisKIC0tLQogKioqICdnJyAoJ3JldmVydC1idWZmZXInKSBpbiAnaGVscC1tb2RlJyBu byBsb25nZXIgcmVxdWlyZXMgY29uZmlybWF0aW9uLgogCmRpZmYgLS1naXQgYS9saXNwL2ZhY2Vz LmVsIGIvbGlzcC9mYWNlcy5lbAppbmRleCA5MGYxMWJiZTNiLi5jYzRjODRhNWM2IDEwMDY0NAot LS0gYS9saXNwL2ZhY2VzLmVsCisrKyBiL2xpc3AvZmFjZXMuZWwKQEAgLTI4MTUsNiArMjgxNSwy NCBAQCBoZWxwLWFyZ3VtZW50LW5hbWUKICAgIkZhY2UgdG8gaGlnaGxpZ2h0IGFyZ3VtZW50IG5h bWVzIGluICpIZWxwKiBidWZmZXJzLiIKICAgOmdyb3VwICdoZWxwKQogCisoZGVmZmFjZSBoZWxw LWtleS1iaW5kaW5nCisgICcoKCgoY2xhc3MgY29sb3IpIChtaW4tY29sb3JzIDg4KSkgOmZvcmVn cm91bmQgIkZvcmVzdEdyZWVuIikKKyAgICAoKChjbGFzcyBjb2xvcikgKG1pbi1jb2xvcnMgMTYp KSA6Zm9yZWdyb3VuZCAiZ3JlZW4iKQorICAgICgoKGNsYXNzIGNvbG9yKSAobWluLWNvbG9ycyA4 KSkgOmZvcmVncm91bmQgImdyZWVuIikKKyAgICAoKChjbGFzcyBjb2xvciBncmF5c2NhbGUpIChi YWNrZ3JvdW5kIGxpZ2h0KSkgOmZvcmVncm91bmQgImdyZXkxNSIpCisgICAgKCgoY2xhc3MgY29s b3IgZ3JheXNjYWxlKSAoYmFja2dyb3VuZCBkYXJrKSkgOmZvcmVncm91bmQgImdyZXk4NSIpCisg ICAgKHQgOmZvcmVncm91bmQgIkZvcmVzdEdyZWVuIikpCisgICJGYWNlIGZvciBrZXliaW5kaW5n cyBpbiAqSGVscCogYnVmZmVycy4KKworVGhpcyBmYWNlIGlzIGFkZGVkIGJ5IGBzdWJzdGl0dXRl LWNvbW1hbmQta2V5cycsIHdoaWNoIHNlZS4KKworTm90ZSB0aGF0IHRoaXMgZmFjZSB3aWxsIGFs c28gYmUgdXNlZCBmb3Iga2V5IGJpbmRpbmdzIGluCit0b29sdGlwcy4gIFRoaXMgbWVhbnMgdGhh dCwgZm9yIGV4YW1wbGUsIGNoYW5naW5nIHRoZSA6aGVpZ2h0IG9mCit0aGlzIGZhY2Ugd2lsbCBp bmNyZWFzZSB0aGUgaGVpZ2h0IG9mIGFueSB0b29sdGlwcyBjb250YWluaW5nIGtleQorYmluZGlu Z3MuICBTZWUgYWxzbyB0aGUgZmFjZSBgdG9vbHRpcCcuIgorICA6dmVyc2lvbiAiMjguMSIKKyAg Omdyb3VwICdoZWxwKQorCiAoZGVmZmFjZSBnbHlwaGxlc3MtY2hhcgogICAnKCgoKHR5cGUgdHR5 KSkgOmluaGVyaXQgdW5kZXJsaW5lKQogICAgICgoKHR5cGUgcGMpKSA6aW5oZXJpdCBlc2NhcGUt Z2x5cGgpCmRpZmYgLS1naXQgYS9saXNwL2hlbHAtZm5zLmVsIGIvbGlzcC9oZWxwLWZucy5lbApp bmRleCAwMWQzNzU2YmYwLi5jMjdjZGI1YWE0IDEwMDY0NAotLS0gYS9saXNwL2hlbHAtZm5zLmVs CisrKyBiL2xpc3AvaGVscC1mbnMuZWwKQEAgLTQ2NiwxMyArNDY2LDE2IEBAIGhlbHAtZm5zLS1r ZXktYmluZGluZ3MKICAgICAgICAgICAgICAgOzsgSWYgbG90cyBvZiBvcmRpbmFyeSB0ZXh0IGNo YXJhY3RlcnMgcnVuIHRoaXMgY29tbWFuZCwKICAgICAgICAgICAgICAgOzsgZG9uJ3QgbWVudGlv biB0aGVtIG9uZSBieSBvbmUuCiAgICAgICAgICAgICAgIChpZiAoPCAobGVuZ3RoIG5vbi1tb2Rp ZmllZC1rZXlzKSAxMCkKLSAgICAgICAgICAgICAgICAgIChwcmluYyAobWFwY29uY2F0ICMna2V5 LWRlc2NyaXB0aW9uIGtleXMgIiwgIikpCisgICAgICAgICAgICAgICAgICAod2l0aC1jdXJyZW50 LWJ1ZmZlciBzdGFuZGFyZC1vdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgKGluc2VydCAobWFw Y29uY2F0ICMnaGVscC0ta2V5LWRlc2NyaXB0aW9uLWZvbnRpZmllZAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAga2V5cyAiLCAiKSkpCiAgICAgICAgICAgICAgICAgKGRv bGlzdCAoa2V5IG5vbi1tb2RpZmllZC1rZXlzKQogICAgICAgICAgICAgICAgICAgKHNldHEga2V5 cyAoZGVscSBrZXkga2V5cykpKQogICAgICAgICAgICAgICAgIChpZiBrZXlzCi0gICAgICAgICAg ICAgICAgICAgIChwcm9nbgotICAgICAgICAgICAgICAgICAgICAgIChwcmluYyAobWFwY29uY2F0 ICMna2V5LWRlc2NyaXB0aW9uIGtleXMgIiwgIikpCi0gICAgICAgICAgICAgICAgICAgICAgKHBy aW5jICIsIGFuZCBtYW55IG9yZGluYXJ5IHRleHQgY2hhcmFjdGVycyIpKQorICAgICAgICAgICAg ICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBzdGFuZGFyZC1vdXRwdXQKKyAgICAgICAgICAg ICAgICAgICAgICAoaW5zZXJ0IChtYXBjb25jYXQgIydoZWxwLS1rZXktZGVzY3JpcHRpb24tZm9u dGlmaWVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5cyAiLCAi KSkKKyAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0ICIsIGFuZCBtYW55IG9yZGluYXJ5IHRl eHQgY2hhcmFjdGVycyIpKQogICAgICAgICAgICAgICAgICAgKHByaW5jICJtYW55IG9yZGluYXJ5 IHRleHQgY2hhcmFjdGVycyIpKSkpCiAgICAgICAgICAgICAod2hlbiAob3IgcmVtYXBwZWQga2V5 cyBub24tbW9kaWZpZWQta2V5cykKICAgICAgICAgICAgICAgKHByaW5jICIuIikKQEAgLTE4MjQs MTAgKzE4MjcsMTIgQEAgZGVzY3JpYmUtbW9kZQogCSAgICAgIChzYXZlLWV4Y3Vyc2lvbgogCQko cmUtc2VhcmNoLWJhY2t3YXJkIChzdWJzdGl0dXRlLWNvbW1hbmQta2V5cyAiYFxcKFteYCddK1xc KSciKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsIHQpCi0JCShoZWxw LXhyZWYtYnV0dG9uIDEgJ2hlbHAtZnVuY3Rpb24tZGVmIG1vZGUgZmlsZS1uYW1lKSkpKSkKLQko cHJpbmMgIjpcbiIpCi0JKHByaW5jIChoZWxwLXNwbGl0LWZ1bmRvYyAoZG9jdW1lbnRhdGlvbiBt YWpvci1tb2RlKSBuaWwgJ2RvYykpCi0gICAgICAgIChwcmluYyAoaGVscC1mbnMtLWxpc3QtbG9j YWwtY29tbWFuZHMpKSkpKQorICAgICAgICAgICAgICAgIChoZWxwLXhyZWYtYnV0dG9uIDEgJ2hl bHAtZnVuY3Rpb24tZGVmIG1vZGUgZmlsZS1uYW1lKSkpKSkKKyAgICAgICAgKGxldCAoKGZ1bmRv YyAoaGVscC1zcGxpdC1mdW5kb2MgKGRvY3VtZW50YXRpb24gbWFqb3ItbW9kZSkgbmlsICdkb2Mp KSkKKyAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBzdGFuZGFyZC1vdXRwdXQKKyAgICAg ICAgICAgIChpbnNlcnQgIjpcbiIpCisgICAgICAgICAgICAoaW5zZXJ0IGZ1bmRvYykKKyAgICAg ICAgICAgIChpbnNlcnQgKGhlbHAtZm5zLS1saXN0LWxvY2FsLWNvbW1hbmRzKSkpKSkpKQogICA7 OyBGb3IgdGhlIHNha2Ugb2YgSUVMTSBhbmQgbWF5YmUgb3RoZXJzCiAgIG5pbCkKIApkaWZmIC0t Z2l0IGEvbGlzcC9oZWxwLW1hY3JvLmVsIGIvbGlzcC9oZWxwLW1hY3JvLmVsCmluZGV4IDc5MWIx MGE4NzguLjc0Njg5Y2I1YjQgMTAwNjQ0Ci0tLSBhL2xpc3AvaGVscC1tYWNyby5lbAorKysgYi9s aXNwL2hlbHAtbWFjcm8uZWwKQEAgLTkyLDExOSArOTIsMTE2IEBAIG1ha2UtaGVscC1zY3JlZW4K IHdpdGggdGhlIGtleSBzZXF1ZW5jZSB0aGF0IGludm9rZWQgRk5BTUUuCiBXaGVuIEZOQU1FIGZp bmFsbHkgZG9lcyBnZXQgYSBjb21tYW5kLCBpdCBleGVjdXRlcyB0aGF0IGNvbW1hbmQKIGFuZCB0 aGVuIHJldHVybnMuIgotICAobGV0ICgoZG9jLWZuIChpbnRlcm4gKGNvbmNhdCAoc3ltYm9sLW5h bWUgZm5hbWUpICItZG9jIikpKSkKLSAgICBgKHByb2duCi0gICAgICAgKGRlZnVuICxkb2MtZm4g KCkgLGhlbHAtdGV4dCBuaWwpCi0gICAgICAgKGRlZnVuICxmbmFtZSAoKQotCSAiSGVscCBjb21t YW5kLiIKLQkgKGludGVyYWN0aXZlKQotCSAobGV0ICgobGluZS1wcm9tcHQKLQkJKHN1YnN0aXR1 dGUtY29tbWFuZC1rZXlzICxoZWxwLWxpbmUpKSkKLQkgICAod2hlbiB0aHJlZS1zdGVwLWhlbHAK LQkgICAgIChtZXNzYWdlICIlcyIgbGluZS1wcm9tcHQpKQotCSAgIChsZXQqICgoaGVscC1zY3Jl ZW4gKGRvY3VtZW50YXRpb24gKHF1b3RlICxkb2MtZm4pKSkKLQkJICA7OyBXZSBiaW5kIG92ZXJy aWRpbmctbG9jYWwtbWFwIGZvciB2ZXJ5IHNtYWxsCi0JCSAgOzsgc2VjdGlvbnMsICpleGNsdWRp bmcqIHdoZXJlIHdlIHN3aXRjaCBidWZmZXJzCi0JCSAgOzsgYW5kIHdoZXJlIHdlIGV4ZWN1dGUg dGhlIGNob3NlbiBoZWxwIGNvbW1hbmQuCi0JCSAgKGxvY2FsLW1hcCAobWFrZS1zcGFyc2Uta2V5 bWFwKSkKLQkJICAobmV3LW1pbm9yLW1vZGUtbWFwLWFsaXN0IG1pbm9yLW1vZGUtbWFwLWFsaXN0 KQotCQkgIChwcmV2LWZyYW1lIChzZWxlY3RlZC1mcmFtZSkpCi0JCSAgY29uZmlnIG5ldy1mcmFt ZSBrZXkgY2hhcikKLQkgICAgICh3aGVuIChzdHJpbmctbWF0Y2ggIiVUSElTLUtFWSUiIGhlbHAt c2NyZWVuKQotCSAgICAgICAoc2V0cSBoZWxwLXNjcmVlbgotCQkgICAgIChyZXBsYWNlLW1hdGNo IChrZXktZGVzY3JpcHRpb24KLQkJCQkgICAgIChzdWJzdHJpbmcgKHRoaXMtY29tbWFuZC1rZXlz KSAwIC0xKSkKLQkJCQkgICAgdCB0IGhlbHAtc2NyZWVuKSkpCi0JICAgICAodW53aW5kLXByb3Rl Y3QKLQkJIChsZXQgKChtaW5vci1tb2RlLW1hcC1hbGlzdCBuaWwpKQotCQkgICAoc2V0Y2RyIGxv Y2FsLW1hcCAsaGVscGVkLW1hcCkKLQkJICAgKGRlZmluZS1rZXkgbG9jYWwtbWFwIFt0XSAndW5k ZWZpbmVkKQotCQkgICA7OyBNYWtlIHRoZSBzY3JvbGwgYmFyIGtlZXAgd29ya2luZyBub3JtYWxs eS4KLQkJICAgKGRlZmluZS1rZXkgbG9jYWwtbWFwIFt2ZXJ0aWNhbC1zY3JvbGwtYmFyXQotCQkg ICAgIChsb29rdXAta2V5IGdsb2JhbC1tYXAgW3ZlcnRpY2FsLXNjcm9sbC1iYXJdKSkKLQkJICAg KGlmIHRocmVlLXN0ZXAtaGVscAotCQkgICAgICAgKHByb2duCi0JCQkgKHNldHEga2V5IChsZXQg KChvdmVycmlkaW5nLWxvY2FsLW1hcCBsb2NhbC1tYXApKQotCQkJCSAgICAgKHJlYWQta2V5LXNl cXVlbmNlIG5pbCkpKQotCQkJIDs7IE1ha2UgdGhlIEhFTFAga2V5IHRyYW5zbGF0ZSB0byBDLWgu Ci0JCQkgKGlmIChsb29rdXAta2V5IGZ1bmN0aW9uLWtleS1tYXAga2V5KQotCQkJICAgICAoc2V0 cSBrZXkgKGxvb2t1cC1rZXkgZnVuY3Rpb24ta2V5LW1hcCBrZXkpKSkKLQkJCSAoc2V0cSBjaGFy IChhcmVmIGtleSAwKSkpCi0JCSAgICAgKHNldHEgY2hhciA/PykpCi0JCSAgICh3aGVuIChvciAo ZXEgY2hhciA/PykgKGVxIGNoYXIgaGVscC1jaGFyKQotCQkJICAgICAobWVtcSBjaGFyIGhlbHAt ZXZlbnQtbGlzdCkpCi0JCSAgICAgKHNldHEgY29uZmlnIChjdXJyZW50LXdpbmRvdy1jb25maWd1 cmF0aW9uKSkKLQkJICAgICAocG9wLXRvLWJ1ZmZlciAiICpNZXRhaGVscCoiIG5pbCB0KQotCQkg ICAgIChhbmQgKGZib3VuZHAgJ21ha2UtZnJhbWUpCi0JCQkgIChub3QgKGVxICh3aW5kb3ctZnJh bWUpCi0JCQkJICAgcHJldi1mcmFtZSkpCi0JCQkgIChzZXRxIG5ldy1mcmFtZSAod2luZG93LWZy YW1lKQotCQkJCWNvbmZpZyBuaWwpKQotCQkgICAgIChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmls KQotCQkgICAgIChsZXQgKChpbmhpYml0LXJlYWQtb25seSB0KSkKLQkJICAgICAgIChlcmFzZS1i dWZmZXIpCi0JCSAgICAgICAoaW5zZXJ0IGhlbHAtc2NyZWVuKSkKLQkJICAgICAobGV0ICgobWlu b3ItbW9kZS1tYXAtYWxpc3QgbmV3LW1pbm9yLW1vZGUtbWFwLWFsaXN0KSkKLQkJICAgICAgICho ZWxwLW1vZGUpCi0JCSAgICAgICAoc2V0cSBuZXctbWlub3ItbW9kZS1tYXAtYWxpc3QgbWlub3It bW9kZS1tYXAtYWxpc3QpKQotCQkgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCi0JCSAgICAg KHdoaWxlIChvciAobWVtcSBjaGFyIChhcHBlbmQgaGVscC1ldmVudC1saXN0Ci0JCQkJCQkgICAo Y29ucyBoZWxwLWNoYXIgJyg/PyA/XEMtdiA/XHMgP1wxNzcgZGVsZXRlIGJhY2tzcGFjZSB2ZXJ0 aWNhbC1zY3JvbGwtYmFyID9cTS12KSkpKQotCQkJCShlcSAoY2FyLXNhZmUgY2hhcikgJ3N3aXRj aC1mcmFtZSkKLQkJCQkoZXF1YWwga2V5ICJcTS12IikpCi0JCSAgICAgICAoY29uZGl0aW9uLWNh c2UgbmlsCi0JCQkgICAoY29uZAotCQkJICAgICgoZXEgKGNhci1zYWZlIGNoYXIpICdzd2l0Y2gt ZnJhbWUpCi0JCQkgICAgIChoYW5kbGUtc3dpdGNoLWZyYW1lIGNoYXIpKQotCQkJICAgICgobWVt cSBjaGFyICcoP1xDLXYgP1xzKSkKLQkJCSAgICAgKHNjcm9sbC11cCkpCi0JCQkgICAgKChvciAo bWVtcSBjaGFyICcoP1wxNzcgP1xNLXYgZGVsZXRlIGJhY2tzcGFjZSkpCi0JCQkJIChlcXVhbCBr ZXkgIlxNLXYiKSkKLQkJCSAgICAgKHNjcm9sbC1kb3duKSkpCi0JCQkgKGVycm9yIG5pbCkpCi0J CSAgICAgICAobGV0ICgoY3Vyc29yLWluLWVjaG8tYXJlYSB0KQotCQkJICAgICAob3ZlcnJpZGlu Zy1sb2NhbC1tYXAgbG9jYWwtbWFwKSkKLQkJCSAoc2V0cSBrZXkgKHJlYWQta2V5LXNlcXVlbmNl Ci0JCQkJICAgIChmb3JtYXQgIlR5cGUgb25lIG9mIHRoZSBvcHRpb25zIGxpc3RlZCVzOiAiCi0J CQkJCSAgICAoaWYgKHBvcy12aXNpYmxlLWluLXdpbmRvdy1wCi0JCQkJCQkgKHBvaW50LW1heCkp Ci0JCQkJCQkiIiAiLCBvciBTUEFDRSBvciBERUwgdG8gc2Nyb2xsIikpKQotCQkJICAgICAgIGNo YXIgKGFyZWYga2V5IDApKSkKLQotCQkgICAgICAgOzsgSWYgdGhpcyBpcyBhIHNjcm9sbCBiYXIg Y29tbWFuZCwganVzdCBydW4gaXQuCi0JCSAgICAgICAod2hlbiAoZXEgY2hhciAndmVydGljYWwt c2Nyb2xsLWJhcikKLQkJCSAoY29tbWFuZC1leGVjdXRlIChsb29rdXAta2V5IGxvY2FsLW1hcCBr ZXkpIG5pbCBrZXkpKSkpCi0JCSAgIDs7IFdlIGRvbid0IG5lZWQgdGhlIHByb21wdCBhbnkgbW9y ZS4KLQkJICAgKG1lc3NhZ2UgIiIpCi0JCSAgIDs7IE1vdXNlIGNsaWNrcyBhcmUgbm90IHBhcnQg b2YgdGhlIGhlbHAgZmVhdHVyZSwKLQkJICAgOzsgc28gcmVleGVjdXRlIHRoZW0gaW4gdGhlIHN0 YW5kYXJkIGVudmlyb25tZW50LgotCQkgICAoaWYgKGxpc3RwIGNoYXIpCi0JCSAgICAgICAoc2V0 cSB1bnJlYWQtY29tbWFuZC1ldmVudHMKLQkJCSAgICAgKGNvbnMgY2hhciB1bnJlYWQtY29tbWFu ZC1ldmVudHMpCi0JCQkgICAgIGNvbmZpZyBuaWwpCi0JCSAgICAgKGxldCAoKGRlZm4gKGxvb2t1 cC1rZXkgbG9jYWwtbWFwIGtleSkpKQotCQkgICAgICAgKGlmIGRlZm4KLQkJCSAgIChwcm9nbgot CQkJICAgICAod2hlbiBjb25maWcKLQkJCSAgICAgICAoc2V0LXdpbmRvdy1jb25maWd1cmF0aW9u IGNvbmZpZykKLQkJCSAgICAgICAoc2V0cSBjb25maWcgbmlsKSkKLQkJCSAgICAgOzsgVGVtcG9y YXJpbHkgcmViaW5kIGBtaW5vci1tb2RlLW1hcC1hbGlzdCcKLQkJCSAgICAgOzsgdG8gYG5ldy1t aW5vci1tb2RlLW1hcC1hbGlzdCcgKEJ1ZyMxMDQ1NCkuCi0JCQkgICAgIChsZXQgKChtaW5vci1t b2RlLW1hcC1hbGlzdCBuZXctbWlub3ItbW9kZS1tYXAtYWxpc3QpKQotCQkJICAgICAgIDs7IGBk ZWZuJyBtdXN0IG1ha2Ugc3VyZSB0aGF0IGl0cyBmcmFtZSBpcwotCQkJICAgICAgIDs7IHNlbGVj dGVkLCBzbyB3ZSB3b24ndCBpY29uaWZ5IGl0IGJlbG93LgotCQkJICAgICAgIChjYWxsLWludGVy YWN0aXZlbHkgZGVmbikpCi0JCQkgICAgICh3aGVuIG5ldy1mcmFtZQotCQkJICAgICAgIDs7IERv IG5vdCBpY29uaWZ5IHRoZSBzZWxlY3RlZCBmcmFtZS4KLQkJCSAgICAgICAodW5sZXNzIChlcSBu ZXctZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkKLQkJCQkgKGljb25pZnktZnJhbWUgbmV3LWZyYW1l KSkKLQkJCSAgICAgICAoc2V0cSBuZXctZnJhbWUgbmlsKSkpCi0JCQkgKGRpbmcpKSkpKQotCSAg ICAgICAod2hlbiBjb25maWcKLQkJIChzZXQtd2luZG93LWNvbmZpZ3VyYXRpb24gY29uZmlnKSkK LQkgICAgICAgKHdoZW4gbmV3LWZyYW1lCi0JCSAoaWNvbmlmeS1mcmFtZSBuZXctZnJhbWUpKQot CSAgICAgICAoc2V0cSBtaW5vci1tb2RlLW1hcC1hbGlzdCBuZXctbWlub3ItbW9kZS1tYXAtYWxp c3QpKSkpKSkpKQorICBgKGRlZnVuICxmbmFtZSAoKQorICAgICAiSGVscCBjb21tYW5kLiIKKyAg ICAgKGludGVyYWN0aXZlKQorICAgICAobGV0ICgobGluZS1wcm9tcHQKKyAgICAgICAgICAgIChz dWJzdGl0dXRlLWNvbW1hbmQta2V5cyAsaGVscC1saW5lKSkpCisgICAgICAgKHdoZW4gdGhyZWUt c3RlcC1oZWxwCisgICAgICAgICAobWVzc2FnZSAiJXMiIGxpbmUtcHJvbXB0KSkKKyAgICAgICAo bGV0KiAoKGhlbHAtc2NyZWVuICxoZWxwLXRleHQpCisgICAgICAgICAgICAgIDs7IFdlIGJpbmQg b3ZlcnJpZGluZy1sb2NhbC1tYXAgZm9yIHZlcnkgc21hbGwKKyAgICAgICAgICAgICAgOzsgc2Vj dGlvbnMsICpleGNsdWRpbmcqIHdoZXJlIHdlIHN3aXRjaCBidWZmZXJzCisgICAgICAgICAgICAg IDs7IGFuZCB3aGVyZSB3ZSBleGVjdXRlIHRoZSBjaG9zZW4gaGVscCBjb21tYW5kLgorICAgICAg ICAgICAgICAobG9jYWwtbWFwIChtYWtlLXNwYXJzZS1rZXltYXApKQorICAgICAgICAgICAgICAo bmV3LW1pbm9yLW1vZGUtbWFwLWFsaXN0IG1pbm9yLW1vZGUtbWFwLWFsaXN0KQorICAgICAgICAg ICAgICAocHJldi1mcmFtZSAoc2VsZWN0ZWQtZnJhbWUpKQorICAgICAgICAgICAgICBjb25maWcg bmV3LWZyYW1lIGtleSBjaGFyKQorICAgICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAiJVRISVMt S0VZJSIgaGVscC1zY3JlZW4pCisgICAgICAgICAgIChzZXRxIGhlbHAtc2NyZWVuCisgICAgICAg ICAgICAgICAgIChyZXBsYWNlLW1hdGNoIChoZWxwLS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVk CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nICh0aGlzLWNvbW1h bmQta2V5cykgMCAtMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQgdCBoZWxw LXNjcmVlbikpKQorICAgICAgICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgICAgICAgKGxldCAo KG1pbm9yLW1vZGUtbWFwLWFsaXN0IG5pbCkpCisgICAgICAgICAgICAgICAoc2V0Y2RyIGxvY2Fs LW1hcCAsaGVscGVkLW1hcCkKKyAgICAgICAgICAgICAgIChkZWZpbmUta2V5IGxvY2FsLW1hcCBb dF0gJ3VuZGVmaW5lZCkKKyAgICAgICAgICAgICAgIDs7IE1ha2UgdGhlIHNjcm9sbCBiYXIga2Vl cCB3b3JraW5nIG5vcm1hbGx5LgorICAgICAgICAgICAgICAgKGRlZmluZS1rZXkgbG9jYWwtbWFw IFt2ZXJ0aWNhbC1zY3JvbGwtYmFyXQorICAgICAgICAgICAgICAgICAobG9va3VwLWtleSBnbG9i YWwtbWFwIFt2ZXJ0aWNhbC1zY3JvbGwtYmFyXSkpCisgICAgICAgICAgICAgICAoaWYgdGhyZWUt c3RlcC1oZWxwCisgICAgICAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgICAg ICAoc2V0cSBrZXkgKGxldCAoKG92ZXJyaWRpbmctbG9jYWwtbWFwIGxvY2FsLW1hcCkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVhZC1rZXktc2VxdWVuY2UgbmlsKSkpCisg ICAgICAgICAgICAgICAgICAgICA7OyBNYWtlIHRoZSBIRUxQIGtleSB0cmFuc2xhdGUgdG8gQy1o LgorICAgICAgICAgICAgICAgICAgICAgKGlmIChsb29rdXAta2V5IGZ1bmN0aW9uLWtleS1tYXAg a2V5KQorICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGtleSAobG9va3VwLWtleSBmdW5j dGlvbi1rZXktbWFwIGtleSkpKQorICAgICAgICAgICAgICAgICAgICAgKHNldHEgY2hhciAoYXJl ZiBrZXkgMCkpKQorICAgICAgICAgICAgICAgICAoc2V0cSBjaGFyID8/KSkKKyAgICAgICAgICAg ICAgICh3aGVuIChvciAoZXEgY2hhciA/PykgKGVxIGNoYXIgaGVscC1jaGFyKQorICAgICAgICAg ICAgICAgICAgICAgICAgIChtZW1xIGNoYXIgaGVscC1ldmVudC1saXN0KSkKKyAgICAgICAgICAg ICAgICAgKHNldHEgY29uZmlnIChjdXJyZW50LXdpbmRvdy1jb25maWd1cmF0aW9uKSkKKyAgICAg ICAgICAgICAgICAgKHBvcC10by1idWZmZXIgIiAqTWV0YWhlbHAqIiBuaWwgdCkKKyAgICAgICAg ICAgICAgICAgKGFuZCAoZmJvdW5kcCAnbWFrZS1mcmFtZSkKKyAgICAgICAgICAgICAgICAgICAg ICAobm90IChlcSAod2luZG93LWZyYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHByZXYtZnJhbWUpKQorICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG5ldy1mcmFtZSAod2lu ZG93LWZyYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZyBuaWwpKQorICAg ICAgICAgICAgICAgICAoc2V0cSBidWZmZXItcmVhZC1vbmx5IG5pbCkKKyAgICAgICAgICAgICAg ICAgKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQpKQorICAgICAgICAgICAgICAgICAgIChlcmFz ZS1idWZmZXIpCisgICAgICAgICAgICAgICAgICAgKGluc2VydCAoc3Vic3RpdHV0ZS1jb21tYW5k LWtleXMgaGVscC1zY3JlZW4pKSkKKyAgICAgICAgICAgICAgICAgKGxldCAoKG1pbm9yLW1vZGUt bWFwLWFsaXN0IG5ldy1taW5vci1tb2RlLW1hcC1hbGlzdCkpCisgICAgICAgICAgICAgICAgICAg KGhlbHAtbW9kZSkKKyAgICAgICAgICAgICAgICAgICAoc2V0cSBuZXctbWlub3ItbW9kZS1tYXAt YWxpc3QgbWlub3ItbW9kZS1tYXAtYWxpc3QpKQorICAgICAgICAgICAgICAgICAoZ290by1jaGFy IChwb2ludC1taW4pKQorICAgICAgICAgICAgICAgICAod2hpbGUgKG9yIChtZW1xIGNoYXIgKGFw cGVuZCBoZWxwLWV2ZW50LWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNvbnMgaGVscC1jaGFyICcoPz8gP1xDLXYgP1xzID9cMTc3IGRlbGV0ZSBi YWNrc3BhY2UgdmVydGljYWwtc2Nyb2xsLWJhciA/XE0tdikpKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoZXEgKGNhci1zYWZlIGNoYXIpICdzd2l0Y2gtZnJhbWUpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGVxdWFsIGtleSAiXE0tdiIpKQorICAgICAgICAgICAgICAgICAg IChjb25kaXRpb24tY2FzZSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgKGNvbmQKKyAgICAg ICAgICAgICAgICAgICAgICAgICgoZXEgKGNhci1zYWZlIGNoYXIpICdzd2l0Y2gtZnJhbWUpCisg ICAgICAgICAgICAgICAgICAgICAgICAgKGhhbmRsZS1zd2l0Y2gtZnJhbWUgY2hhcikpCisgICAg ICAgICAgICAgICAgICAgICAgICAoKG1lbXEgY2hhciAnKD9cQy12ID9ccykpCisgICAgICAgICAg ICAgICAgICAgICAgICAgKHNjcm9sbC11cCkpCisgICAgICAgICAgICAgICAgICAgICAgICAoKG9y IChtZW1xIGNoYXIgJyg/XDE3NyA/XE0tdiBkZWxldGUgYmFja3NwYWNlKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGVxdWFsIGtleSAiXE0tdiIpKQorICAgICAgICAgICAgICAgICAg ICAgICAgIChzY3JvbGwtZG93bikpKQorICAgICAgICAgICAgICAgICAgICAgKGVycm9yIG5pbCkp CisgICAgICAgICAgICAgICAgICAgKGxldCAoKGN1cnNvci1pbi1lY2hvLWFyZWEgdCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAob3ZlcnJpZGluZy1sb2NhbC1tYXAgbG9jYWwtbWFwKSkKKyAg ICAgICAgICAgICAgICAgICAgIChzZXRxIGtleSAocmVhZC1rZXktc2VxdWVuY2UKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiVHlwZSBvbmUgb2YgdGhlIG9wdGlvbnMg bGlzdGVkJXM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg KHBvcy12aXNpYmxlLWluLXdpbmRvdy1wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocG9pbnQtbWF4KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiIgIiwgb3IgU1BBQ0Ugb3IgREVMIHRvIHNjcm9sbCIpKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKGFyZWYga2V5IDApKSkKKworICAgICAgICAgICAg ICAgICAgIDs7IElmIHRoaXMgaXMgYSBzY3JvbGwgYmFyIGNvbW1hbmQsIGp1c3QgcnVuIGl0Lgor ICAgICAgICAgICAgICAgICAgICh3aGVuIChlcSBjaGFyICd2ZXJ0aWNhbC1zY3JvbGwtYmFyKQor ICAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmQtZXhlY3V0ZSAobG9va3VwLWtleSBsb2NhbC1t YXAga2V5KSBuaWwga2V5KSkpKQorICAgICAgICAgICAgICAgOzsgV2UgZG9uJ3QgbmVlZCB0aGUg cHJvbXB0IGFueSBtb3JlLgorICAgICAgICAgICAgICAgKG1lc3NhZ2UgIiIpCisgICAgICAgICAg ICAgICA7OyBNb3VzZSBjbGlja3MgYXJlIG5vdCBwYXJ0IG9mIHRoZSBoZWxwIGZlYXR1cmUsCisg ICAgICAgICAgICAgICA7OyBzbyByZWV4ZWN1dGUgdGhlbSBpbiB0aGUgc3RhbmRhcmQgZW52aXJv bm1lbnQuCisgICAgICAgICAgICAgICAoaWYgKGxpc3RwIGNoYXIpCisgICAgICAgICAgICAgICAg ICAgKHNldHEgdW5yZWFkLWNvbW1hbmQtZXZlbnRzCisgICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnMgY2hhciB1bnJlYWQtY29tbWFuZC1ldmVudHMpCisgICAgICAgICAgICAgICAgICAgICAg ICAgY29uZmlnIG5pbCkKKyAgICAgICAgICAgICAgICAgKGxldCAoKGRlZm4gKGxvb2t1cC1rZXkg bG9jYWwtbWFwIGtleSkpKQorICAgICAgICAgICAgICAgICAgIChpZiBkZWZuCisgICAgICAgICAg ICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIGNvbmZp ZworICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC13aW5kb3ctY29uZmlndXJhdGlvbiBj b25maWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBjb25maWcgbmlsKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICA7OyBUZW1wb3JhcmlseSByZWJpbmQgYG1pbm9yLW1vZGUt bWFwLWFsaXN0JworICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRvIGBuZXctbWlub3ItbW9k ZS1tYXAtYWxpc3QnIChCdWcjMTA0NTQpLgorICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQg KChtaW5vci1tb2RlLW1hcC1hbGlzdCBuZXctbWlub3ItbW9kZS1tYXAtYWxpc3QpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgYGRlZm4nIG11c3QgbWFrZSBzdXJlIHRoYXQgaXRzIGZy YW1lIGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBzZWxlY3RlZCwgc28gd2Ugd29u J3QgaWNvbmlmeSBpdCBiZWxvdy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxsLWlu dGVyYWN0aXZlbHkgZGVmbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gbmV3LWZy YW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBEbyBub3QgaWNvbmlmeSB0aGUgc2Vs ZWN0ZWQgZnJhbWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIChlcSBuZXct ZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlj b25pZnktZnJhbWUgbmV3LWZyYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRx IG5ldy1mcmFtZSBuaWwpKSkKKyAgICAgICAgICAgICAgICAgICAgIChkaW5nKSkpKSkKKyAgICAg ICAgICAgKHdoZW4gY29uZmlnCisgICAgICAgICAgICAgKHNldC13aW5kb3ctY29uZmlndXJhdGlv biBjb25maWcpKQorICAgICAgICAgICAod2hlbiBuZXctZnJhbWUKKyAgICAgICAgICAgICAoaWNv bmlmeS1mcmFtZSBuZXctZnJhbWUpKQorICAgICAgICAgICAoc2V0cSBtaW5vci1tb2RlLW1hcC1h bGlzdCBuZXctbWlub3ItbW9kZS1tYXAtYWxpc3QpKSkpKSkKIAogKHByb3ZpZGUgJ2hlbHAtbWFj cm8pCiAKZGlmZiAtLWdpdCBhL2xpc3AvaGVscC5lbCBiL2xpc3AvaGVscC5lbAppbmRleCAwODRl OTQxNTQ5Li41MGFiYjI4Y2IxIDEwMDY0NAotLS0gYS9saXNwL2hlbHAuZWwKKysrIGIvbGlzcC9o ZWxwLmVsCkBAIC0xMDQsOCArMTA0LDggQEAgaGVscC1tYXAKICAgICAoZGVmaW5lLWtleSBtYXAg IlIiICdpbmZvLWRpc3BsYXktbWFudWFsKQogICAgIChkZWZpbmUta2V5IG1hcCAicyIgJ2Rlc2Ny aWJlLXN5bnRheCkKICAgICAoZGVmaW5lLWtleSBtYXAgInQiICdoZWxwLXdpdGgtdHV0b3JpYWwp Ci0gICAgKGRlZmluZS1rZXkgbWFwICJ3IiAnd2hlcmUtaXMpCiAgICAgKGRlZmluZS1rZXkgbWFw ICJ2IiAnZGVzY3JpYmUtdmFyaWFibGUpCisgICAgKGRlZmluZS1rZXkgbWFwICJ3IiAnd2hlcmUt aXMpCiAgICAgKGRlZmluZS1rZXkgbWFwICJxIiAnaGVscC1xdWl0KQogICAgIG1hcCkKICAgIktl eW1hcCBmb3IgY2hhcmFjdGVycyBmb2xsb3dpbmcgdGhlIEhlbHAga2V5LiIpCkBAIC0xODcsMTEg KzE4Nyw4IEBAIGhlbHAtcHJpbnQtcmV0dXJuLW1lc3NhZ2UKIDs7IFNvIGtleWJvYXJkIG1hY3Jv IGRlZmluaXRpb25zIGFyZSBkb2N1bWVudGVkIGNvcnJlY3RseQogKGZzZXQgJ2RlZmluaW5nLWti ZC1tYWNybyAoc3ltYm9sLWZ1bmN0aW9uICdzdGFydC1rYmQtbWFjcm8pKQogCi0oZGVmYWxpYXMg J2hlbHAgJ2hlbHAtZm9yLWhlbHAtaW50ZXJuYWwpCi07OyBmaW5kLWZ1bmN0aW9uIGNhbiBmaW5k IHRoaXMuCi0oZGVmYWxpYXMgJ2hlbHAtZm9yLWhlbHAgJ2hlbHAtZm9yLWhlbHAtaW50ZXJuYWwp Ci07OyBJdCBjYW4ndCBmaW5kIHRoaXMsIGJ1dCBub2JvZHkgd2lsbCBsb29rLgotKG1ha2UtaGVs cC1zY3JlZW4gaGVscC1mb3ItaGVscC1pbnRlcm5hbAorKGRlZmFsaWFzICdoZWxwICdoZWxwLWZv ci1oZWxwKQorKG1ha2UtaGVscC1zY3JlZW4gaGVscC1mb3ItaGVscAogICAocHVyZWNvcHkgIlR5 cGUgYSBoZWxwIG9wdGlvbjogW2FiY0NkZWZGZ2lJa0tsTG1ucHJzdHZ3Ll0gQy1bY2RlZm1ub3B0 d10gb3IgPyIpCiAgIDs7IERvbid0IHB1cmVjb3B5IHRoaXMgb25lLCBiZWNhdXNlIGl0J3Mgbm90 IGV2YWx1YXRlZCAoaXQncwogICA7OyBkaXJlY3RseSB1c2VkIGFzIGEgZG9jc3RyaW5nIGluIGEg ZnVuY3Rpb24gZGVmaW5pdGlvbiwgc28gaXQnbGwKQEAgLTE5OSw1MiArMTk2LDUyIEBAICdoZWxw LWZvci1oZWxwCiAgICJZb3UgaGF2ZSB0eXBlZCAlVEhJUy1LRVklLCB0aGUgaGVscCBjaGFyYWN0 ZXIuICBUeXBlIGEgSGVscCBvcHRpb246CiBcKFVzZSBTUEMgb3IgREVMIHRvIHNjcm9sbCB0aHJv dWdoIHRoaXMgdGV4dC4gIFR5cGUgXFw8aGVscC1tYXA+XFxbaGVscC1xdWl0XSB0byBleGl0IHRo ZSBIZWxwIGNvbW1hbmQuKQogCi1hIFBBVFRFUk4gICBTaG93IGNvbW1hbmRzIHdob3NlIG5hbWUg bWF0Y2hlcyB0aGUgUEFUVEVSTiAoYSBsaXN0IG9mIHdvcmRzCitcXFthcHJvcG9zLWNvbW1hbmRd IFBBVFRFUk4gICBTaG93IGNvbW1hbmRzIHdob3NlIG5hbWUgbWF0Y2hlcyB0aGUgUEFUVEVSTiAo YSBsaXN0IG9mIHdvcmRzCiAgICAgICAgICAgICAgIG9yIGEgcmVnZXhwKS4gIFNlZSBhbHNvIHRo ZSBgYXByb3BvcycgY29tbWFuZC4KLWIgICAgICAgICAgIERpc3BsYXkgYWxsIGtleSBiaW5kaW5n cy4KLWMgS0VZUyAgICAgIERpc3BsYXkgdGhlIGNvbW1hbmQgbmFtZSBydW4gYnkgdGhlIGdpdmVu IGtleSBzZXF1ZW5jZS4KLUMgQ09ESU5HICAgIERlc2NyaWJlIHRoZSBnaXZlbiBjb2Rpbmcgc3lz dGVtLCBvciBSRVQgZm9yIGN1cnJlbnQgb25lcy4KLWQgUEFUVEVSTiAgIFNob3cgYSBsaXN0IG9m IGZ1bmN0aW9ucywgdmFyaWFibGVzLCBhbmQgb3RoZXIgaXRlbXMgd2hvc2UKK1xcW2Rlc2NyaWJl LWJpbmRpbmdzXSAgICAgICAgICAgRGlzcGxheSBhbGwga2V5IGJpbmRpbmdzLgorXFxbZGVzY3Jp YmUta2V5LWJyaWVmbHldIEtFWVMgICAgICBEaXNwbGF5IHRoZSBjb21tYW5kIG5hbWUgcnVuIGJ5 IHRoZSBnaXZlbiBrZXkgc2VxdWVuY2UuCitcXFtkZXNjcmliZS1jb2Rpbmctc3lzdGVtXSBDT0RJ TkcgICAgRGVzY3JpYmUgdGhlIGdpdmVuIGNvZGluZyBzeXN0ZW0sIG9yIFJFVCBmb3IgY3VycmVu dCBvbmVzLgorXFxbYXByb3Bvcy1kb2N1bWVudGF0aW9uXSBQQVRURVJOICAgU2hvdyBhIGxpc3Qg b2YgZnVuY3Rpb25zLCB2YXJpYWJsZXMsIGFuZCBvdGhlciBpdGVtcyB3aG9zZQogICAgICAgICAg ICAgICBkb2N1bWVudGF0aW9uIG1hdGNoZXMgdGhlIFBBVFRFUk4gKGEgbGlzdCBvZiB3b3JkcyBv ciBhIHJlZ2V4cCkuCi1lICAgICAgICAgICBHbyB0byB0aGUgKk1lc3NhZ2VzKiBidWZmZXIgd2hp Y2ggbG9ncyBlY2hvLWFyZWEgbWVzc2FnZXMuCi1mIEZVTkNUSU9OICBEaXNwbGF5IGRvY3VtZW50 YXRpb24gZm9yIHRoZSBnaXZlbiBmdW5jdGlvbi4KLUYgQ09NTUFORCAgIFNob3cgdGhlIEVtYWNz IG1hbnVhbCdzIHNlY3Rpb24gdGhhdCBkZXNjcmliZXMgdGhlIGNvbW1hbmQuCi1nICAgICAgICAg ICBEaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBHTlUgcHJvamVjdC4KLWggICAgICAgICAg IERpc3BsYXkgdGhlIEhFTExPIGZpbGUgd2hpY2ggaWxsdXN0cmF0ZXMgdmFyaW91cyBzY3JpcHRz LgotaSAgICAgICAgICAgU3RhcnQgdGhlIEluZm8gZG9jdW1lbnRhdGlvbiByZWFkZXI6IHJlYWQg aW5jbHVkZWQgbWFudWFscy4KLUkgTUVUSE9EICAgIERlc2NyaWJlIGEgc3BlY2lmaWMgaW5wdXQg bWV0aG9kLCBvciBSRVQgZm9yIGN1cnJlbnQuCi1rIEtFWVMgICAgICBEaXNwbGF5IHRoZSBmdWxs IGRvY3VtZW50YXRpb24gZm9yIHRoZSBrZXkgc2VxdWVuY2UuCi1LIEtFWVMgICAgICBTaG93IHRo ZSBFbWFjcyBtYW51YWwncyBzZWN0aW9uIGZvciB0aGUgY29tbWFuZCBib3VuZCB0byBLRVlTLgot bCAgICAgICAgICAgU2hvdyBsYXN0IDMwMCBpbnB1dCBrZXlzdHJva2VzIChsb3NzYWdlKS4KLUwg TEFORy1FTlYgIERlc2NyaWJlcyBhIHNwZWNpZmljIGxhbmd1YWdlIGVudmlyb25tZW50LCBvciBS RVQgZm9yIGN1cnJlbnQuCi1tICAgICAgICAgICBEaXNwbGF5IGRvY3VtZW50YXRpb24gb2YgY3Vy cmVudCBtaW5vciBtb2RlcyBhbmQgY3VycmVudCBtYWpvciBtb2RlLAotICAgICAgICAgICAgICBp bmNsdWRpbmcgdGhlaXIgc3BlY2lhbCBjb21tYW5kcy4KLW4gICAgICAgICAgIERpc3BsYXkgbmV3 cyBvZiByZWNlbnQgRW1hY3MgY2hhbmdlcy4KLW8gU1lNQk9MICAgIERpc3BsYXkgdGhlIGdpdmVu IGZ1bmN0aW9uIG9yIHZhcmlhYmxlJ3MgZG9jdW1lbnRhdGlvbiBhbmQgdmFsdWUuCi1wIFRPUElD ICAgICBGaW5kIHBhY2thZ2VzIG1hdGNoaW5nIGEgZ2l2ZW4gdG9waWMga2V5d29yZC4KLVAgUEFD S0FHRSAgIERlc2NyaWJlIHRoZSBnaXZlbiBFbWFjcyBMaXNwIHBhY2thZ2UuCi1yICAgICAgICAg ICBEaXNwbGF5IHRoZSBFbWFjcyBtYW51YWwgaW4gSW5mbyBtb2RlLgotUiAgICAgICAgICAgUHJv bXB0IGZvciBhIG1hbnVhbCBhbmQgdGhlbiBkaXNwbGF5IGl0IGluIEluZm8gbW9kZS4KLXMgICAg ICAgICAgIERpc3BsYXkgY29udGVudHMgb2YgY3VycmVudCBzeW50YXggdGFibGUsIHBsdXMgZXhw bGFuYXRpb25zLgotUyBTWU1CT0wgICAgU2hvdyB0aGUgc2VjdGlvbiBmb3IgdGhlIGdpdmVuIHN5 bWJvbCBpbiB0aGUgSW5mbyBtYW51YWwKK1xcW3ZpZXctZWNoby1hcmVhLW1lc3NhZ2VzXSAgICAg ICAgICAgR28gdG8gdGhlICpNZXNzYWdlcyogYnVmZmVyIHdoaWNoIGxvZ3MgZWNoby1hcmVhIG1l c3NhZ2VzLgorXFxbZGVzY3JpYmUtZnVuY3Rpb25dIEZVTkNUSU9OICBEaXNwbGF5IGRvY3VtZW50 YXRpb24gZm9yIHRoZSBnaXZlbiBmdW5jdGlvbi4KK1xcW0luZm8tZ290by1lbWFjcy1jb21tYW5k LW5vZGVdIENPTU1BTkQgICBTaG93IHRoZSBFbWFjcyBtYW51YWwncyBzZWN0aW9uIHRoYXQgZGVz Y3JpYmVzIHRoZSBjb21tYW5kLgorXFxbZGVzY3JpYmUtZ251LXByb2plY3RdICAgICAgICAgICBE aXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBHTlUgcHJvamVjdC4KK1xcW3ZpZXctaGVsbG8t ZmlsZV0gICAgICAgICAgIERpc3BsYXkgdGhlIEhFTExPIGZpbGUgd2hpY2ggaWxsdXN0cmF0ZXMg dmFyaW91cyBzY3JpcHRzLgorXFxbaW5mb10gICAgICAgICAgIFN0YXJ0IHRoZSBJbmZvIGRvY3Vt ZW50YXRpb24gcmVhZGVyOiByZWFkIGluY2x1ZGVkIG1hbnVhbHMuCitcXFtkZXNjcmliZS1pbnB1 dC1tZXRob2RdIE1FVEhPRCAgICBEZXNjcmliZSBhIHNwZWNpZmljIGlucHV0IG1ldGhvZCwgb3Ig UkVUIGZvciBjdXJyZW50LgorXFxbZGVzY3JpYmUta2V5XSBLRVlTICAgICAgRGlzcGxheSB0aGUg ZnVsbCBkb2N1bWVudGF0aW9uIGZvciB0aGUga2V5IHNlcXVlbmNlLgorXFxbSW5mby1nb3RvLWVt YWNzLWtleS1jb21tYW5kLW5vZGVdIEtFWVMgICAgICBTaG93IHRoZSBFbWFjcyBtYW51YWwncyBz ZWN0aW9uIGZvciB0aGUgY29tbWFuZCBib3VuZCB0byBLRVlTLgorXFxbdmlldy1sb3NzYWdlXSAg ICAgICAgICAgU2hvdyBsYXN0IDMwMCBpbnB1dCBrZXlzdHJva2VzIChsb3NzYWdlKS4KK1xcW2Rl c2NyaWJlLWxhbmd1YWdlLWVudmlyb25tZW50XSBMQU5HLUVOViAgRGVzY3JpYmVzIGEgc3BlY2lm aWMgbGFuZ3VhZ2UgZW52aXJvbm1lbnQsIG9yIFJFVCBmb3IgY3VycmVudC4KK1xcW2Rlc2NyaWJl LW1vZGVdICAgICAgICAgICBEaXNwbGF5IGRvY3VtZW50YXRpb24gb2YgY3VycmVudCBtaW5vciBt b2RlcyBhbmQgY3VycmVudCBtYWpvciBtb2RlLAorICAgICAgICAgICAgIGluY2x1ZGluZyB0aGVp ciBzcGVjaWFsIGNvbW1hbmRzLgorXFxbdmlldy1lbWFjcy1uZXdzXSAgICAgICAgICAgRGlzcGxh eSBuZXdzIG9mIHJlY2VudCBFbWFjcyBjaGFuZ2VzLgorXFxbZGVzY3JpYmUtc3ltYm9sXSBTWU1C T0wgICAgRGlzcGxheSB0aGUgZ2l2ZW4gZnVuY3Rpb24gb3IgdmFyaWFibGUncyBkb2N1bWVudGF0 aW9uIGFuZCB2YWx1ZS4KK1xcW2ZpbmRlci1ieS1rZXl3b3JkXSBUT1BJQyAgICAgRmluZCBwYWNr YWdlcyBtYXRjaGluZyBhIGdpdmVuIHRvcGljIGtleXdvcmQuCitcXFtkZXNjcmliZS1wYWNrYWdl XSBQQUNLQUdFICAgRGVzY3JpYmUgdGhlIGdpdmVuIEVtYWNzIExpc3AgcGFja2FnZS4KK1xcW2lu Zm8tZW1hY3MtbWFudWFsXSAgICAgICAgICAgRGlzcGxheSB0aGUgRW1hY3MgbWFudWFsIGluIElu Zm8gbW9kZS4KK1xcW2luZm8tZGlzcGxheS1tYW51YWxdICAgICAgICAgICBQcm9tcHQgZm9yIGEg bWFudWFsIGFuZCB0aGVuIGRpc3BsYXkgaXQgaW4gSW5mbyBtb2RlLgorXFxbZGVzY3JpYmUtc3lu dGF4XSAgICAgICAgICAgRGlzcGxheSBjb250ZW50cyBvZiBjdXJyZW50IHN5bnRheCB0YWJsZSwg cGx1cyBleHBsYW5hdGlvbnMuCitcXFtpbmZvLWxvb2t1cC1zeW1ib2xdIFNZTUJPTCAgICBTaG93 IHRoZSBzZWN0aW9uIGZvciB0aGUgZ2l2ZW4gc3ltYm9sIGluIHRoZSBJbmZvIG1hbnVhbAogICAg ICAgICAgICAgICBmb3IgdGhlIHByb2dyYW1taW5nIGxhbmd1YWdlIHVzZWQgaW4gdGhpcyBidWZm ZXIuCi10ICAgICAgICAgICBTdGFydCB0aGUgRW1hY3MgbGVhcm4tYnktZG9pbmcgdHV0b3JpYWwu Ci12IFZBUklBQkxFICBEaXNwbGF5IHRoZSBnaXZlbiB2YXJpYWJsZSdzIGRvY3VtZW50YXRpb24g YW5kIHZhbHVlLgotdyBDT01NQU5EICAgRGlzcGxheSB3aGljaCBrZXlzdHJva2VzIGludm9rZSB0 aGUgZ2l2ZW4gY29tbWFuZCAod2hlcmUtaXMpLgotLiAgICAgICAgICAgRGlzcGxheSBhbnkgYXZh aWxhYmxlIGxvY2FsIGhlbHAgYXQgcG9pbnQgaW4gdGhlIGVjaG8gYXJlYS4KLQotQy1hICAgICAg ICAgSW5mb3JtYXRpb24gYWJvdXQgRW1hY3MuCi1DLWMgICAgICAgICBFbWFjcyBjb3B5aW5nIHBl cm1pc3Npb24gKEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlKS4KLUMtZCAgICAgICAgIEluc3Ry dWN0aW9ucyBmb3IgZGVidWdnaW5nIEdOVSBFbWFjcy4KLUMtZSAgICAgICAgIEV4dGVybmFsIHBh Y2thZ2VzIGFuZCBpbmZvcm1hdGlvbiBhYm91dCBFbWFjcy4KLUMtZiAgICAgICAgIEVtYWNzIEZB US4KK1xcW2hlbHAtd2l0aC10dXRvcmlhbF0gICAgICAgICAgIFN0YXJ0IHRoZSBFbWFjcyBsZWFy bi1ieS1kb2luZyB0dXRvcmlhbC4KK1xcW2Rlc2NyaWJlLXZhcmlhYmxlXSBWQVJJQUJMRSAgRGlz cGxheSB0aGUgZ2l2ZW4gdmFyaWFibGUncyBkb2N1bWVudGF0aW9uIGFuZCB2YWx1ZS4KK1xcW3do ZXJlLWlzXSBDT01NQU5EICAgRGlzcGxheSB3aGljaCBrZXlzdHJva2VzIGludm9rZSB0aGUgZ2l2 ZW4gY29tbWFuZCAod2hlcmUtaXMpLgorXFxbZGlzcGxheS1sb2NhbC1oZWxwXSAgICAgICAgICAg RGlzcGxheSBhbnkgYXZhaWxhYmxlIGxvY2FsIGhlbHAgYXQgcG9pbnQgaW4gdGhlIGVjaG8gYXJl YS4KKworXFxbYWJvdXQtZW1hY3NdICAgICAgICAgSW5mb3JtYXRpb24gYWJvdXQgRW1hY3MuCitc XFtkZXNjcmliZS1jb3B5aW5nXSAgICAgICAgIEVtYWNzIGNvcHlpbmcgcGVybWlzc2lvbiAoR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UpLgorXFxbdmlldy1lbWFjcy1kZWJ1Z2dpbmddICAgICAg ICAgSW5zdHJ1Y3Rpb25zIGZvciBkZWJ1Z2dpbmcgR05VIEVtYWNzLgorXFxbdmlldy1leHRlcm5h bC1wYWNrYWdlc10gICAgICAgICBFeHRlcm5hbCBwYWNrYWdlcyBhbmQgaW5mb3JtYXRpb24gYWJv dXQgRW1hY3MuCitcXFt2aWV3LWVtYWNzLUZBUV0gICAgICAgICBFbWFjcyBGQVEuCiBDLW0gICAg ICAgICBIb3cgdG8gb3JkZXIgcHJpbnRlZCBFbWFjcyBtYW51YWxzLgogQy1uICAgICAgICAgTmV3 cyBvZiByZWNlbnQgRW1hY3MgY2hhbmdlcy4KLUMtbyAgICAgICAgIEVtYWNzIG9yZGVyaW5nIGFu ZCBkaXN0cmlidXRpb24gaW5mb3JtYXRpb24uCi1DLXAgICAgICAgICBJbmZvIGFib3V0IGtub3du IEVtYWNzIHByb2JsZW1zLgotQy1zICAgICAgICAgU2VhcmNoIGZvcndhcmQgXCJoZWxwIHdpbmRv d1wiLgotQy10ICAgICAgICAgRW1hY3MgVE9ETyBsaXN0LgotQy13ICAgICAgICAgSW5mb3JtYXRp b24gb24gYWJzZW5jZSBvZiB3YXJyYW50eSBmb3IgR05VIEVtYWNzLiIKK1xcW2Rlc2NyaWJlLWRp c3RyaWJ1dGlvbl0gICAgICAgICBFbWFjcyBvcmRlcmluZyBhbmQgZGlzdHJpYnV0aW9uIGluZm9y bWF0aW9uLgorXFxbdmlldy1lbWFjcy1wcm9ibGVtc10gICAgICAgICBJbmZvIGFib3V0IGtub3du IEVtYWNzIHByb2JsZW1zLgorXFxbc2VhcmNoLWZvcndhcmQtaGVscC1mb3ItaGVscF0gICAgICAg ICBTZWFyY2ggZm9yd2FyZCBcImhlbHAgd2luZG93XCIuCitcXFt2aWV3LWVtYWNzLXRvZG9dICAg ICAgICAgRW1hY3MgVE9ETyBsaXN0LgorXFxbZGVzY3JpYmUtbm8td2FycmFudHldICAgICAgICAg SW5mb3JtYXRpb24gb24gYWJzZW5jZSBvZiB3YXJyYW50eSBmb3IgR05VIEVtYWNzLiIKICAgaGVs cC1tYXApCiAKIAwKQEAgLTQ5Miw2ICs0ODksMTUgQEAgdmlldy1sb3NzYWdlCiAMCiA7OyBLZXkg YmluZGluZ3MKIAorKGRlZnVuIGhlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZpZWQgKGtleXMg Jm9wdGlvbmFsIHByZWZpeCkKKyAgIkxpa2UgYGtleS1kZXNjcmlwdGlvbicgYnV0IGFkZCBmYWNl IGZvciBcIipIZWxwKlwiIGJ1ZmZlcnMuIgorICA7OyBXZSBhZGQgYm90aCB0aGUgYGZvbnQtbG9j ay1mYWNlJyBhbmQgYGZhY2UnIHByb3BlcnRpZXMgaGVyZSwgYXMgdGhpcworICA7OyBzZWVtcyB0 byBiZSB0aGUgb25seSB3YXkgdG8gZ2V0IHRoaXMgdG8gd29yayByZWxpYWJseSBpbiBhbnkKKyAg OzsgYnVmZmVyLgorICAocHJvcGVydGl6ZSAoa2V5LWRlc2NyaXB0aW9uIGtleXMgcHJlZml4KQor ICAgICAgICAgICAgICAnZm9udC1sb2NrLWZhY2UgJ2hlbHAta2V5LWJpbmRpbmcKKyAgICAgICAg ICAgICAgJ2ZhY2UgJ2hlbHAta2V5LWJpbmRpbmcpKQorCiAoZGVmdW4gZGVzY3JpYmUtYmluZGlu Z3MgKCZvcHRpb25hbCBwcmVmaXggYnVmZmVyKQogICAiRGlzcGxheSBhIGJ1ZmZlciBzaG93aW5n IGEgbGlzdCBvZiBhbGwgZGVmaW5lZCBrZXlzLCBhbmQgdGhlaXIgZGVmaW5pdGlvbnMuCiBUaGUg a2V5cyBhcmUgZGlzcGxheWVkIGluIG9yZGVyIG9mIHByZWNlZGVuY2UuCkBAIC01MTEsNyArNTE3 LDYgQEAgZGVzY3JpYmUtYmluZGluZ3MKICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoaGVscC1i dWZmZXIpCiAgICAgICAoZGVzY3JpYmUtYnVmZmVyLWJpbmRpbmdzIGJ1ZmZlciBwcmVmaXgpKSkp CiAKLTs7IFRoaXMgZnVuY3Rpb24gdXNlZCB0byBiZSBpbiBrZXltYXAuYy4KIChkZWZ1biBkZXNj cmliZS1iaW5kaW5ncy1pbnRlcm5hbCAoJm9wdGlvbmFsIG1lbnVzIHByZWZpeCkKICAgIlNob3cg YSBsaXN0IG9mIGFsbCBkZWZpbmVkIGtleXMsIGFuZCB0aGVpciBkZWZpbml0aW9ucy4KIFdlIHB1 dCB0aGF0IGxpc3QgaW4gYSBidWZmZXIsIGFuZCBkaXNwbGF5IHRoZSBidWZmZXIuCkBAIC01NTks NyArNTY0LDggQEAgd2hlcmUtaXMKICAgICAgIChsZXQqICgocmVtYXBwZWQgKGNvbW1hbmQtcmVt YXBwaW5nIHN5bWJvbCkpCiAJICAgICAoa2V5cyAod2hlcmUtaXMtaW50ZXJuYWwKIAkJICAgIHN5 bWJvbCBvdmVycmlkaW5nLWxvY2FsLW1hcCBuaWwgbmlsIHJlbWFwcGVkKSkKLQkgICAgIChrZXlz IChtYXBjb25jYXQgJ2tleS1kZXNjcmlwdGlvbiBrZXlzICIsICIpKQorICAgICAgICAgICAgIChr ZXlzIChtYXBjb25jYXQgIydoZWxwLS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVkCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBrZXlzICIsICIpKQogCSAgICAgc3RyaW5nKQogCShzZXRx IHN0cmluZwogCSAgICAgIChpZiBpbnNlcnQKQEAgLTU4NywxMSArNTkzLDExIEBAIHdoZXJlLWlz CiAgIG5pbCkKIAogKGRlZnVuIGhlbHAta2V5LWRlc2NyaXB0aW9uIChrZXkgdW50cmFuc2xhdGVk KQotICAobGV0ICgoc3RyaW5nIChrZXktZGVzY3JpcHRpb24ga2V5KSkpCisgIChsZXQgKChzdHJp bmcgKGhlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZpZWQga2V5KSkpCiAgICAgKGlmIChvciAo bm90IHVudHJhbnNsYXRlZCkKIAkgICAgKGFuZCAoZXEgKGFyZWYgdW50cmFuc2xhdGVkIDApID9c ZSkgKG5vdCAoZXEgKGFyZWYga2V5IDApID9cZSkpKSkKIAlzdHJpbmcKLSAgICAgIChsZXQgKChv dGhlcnN0cmluZyAoa2V5LWRlc2NyaXB0aW9uIHVudHJhbnNsYXRlZCkpKQorICAgICAgKGxldCAo KG90aGVyc3RyaW5nIChoZWxwLS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVkIHVudHJhbnNsYXRl ZCkpKQogCShpZiAoZXF1YWwgc3RyaW5nIG90aGVyc3RyaW5nKQogCSAgICBzdHJpbmcKIAkgIChm b3JtYXQgIiVzICh0cmFuc2xhdGVkIGZyb20gJXMpIiBzdHJpbmcgb3RoZXJzdHJpbmcpKSkpKSkK QEAgLTk3OSw3ICs5ODUsNyBAQCBzdWJzdGl0dXRlLWNvbW1hbmQta2V5cwogICAiU3Vic3RpdHV0 ZSBrZXkgZGVzY3JpcHRpb25zIGZvciBjb21tYW5kIG5hbWVzIGluIFNUUklORy4KIEVhY2ggc3Vi c3RyaW5nIG9mIHRoZSBmb3JtIFxcXFw9W0NPTU1BTkRdIGlzIHJlcGxhY2VkIGJ5IGVpdGhlciBh CiBrZXlzdHJva2Ugc2VxdWVuY2UgdGhhdCBpbnZva2VzIENPTU1BTkQsIG9yIFwiTS14IENPTU1B TkRcIiBpZiBDT01NQU5ECi1pcyBub3Qgb24gYW55IGtleXMuCitpcyBub3Qgb24gYW55IGtleXMu ICBLZXliaW5kaW5ncyB3aWxsIHVzZSB0aGUgZmFjZSBgaGVscC1rZXktYmluZGluZycuCiAKIEVh Y2ggc3Vic3RyaW5nIG9mIHRoZSBmb3JtIFxcXFw9e01BUFZBUn0gaXMgcmVwbGFjZWQgYnkgYSBz dW1tYXJ5IG9mCiB0aGUgdmFsdWUgb2YgTUFQVkFSIGFzIGEga2V5bWFwLiAgVGhpcyBzdW1tYXJ5 IGlzIHNpbWlsYXIgdG8gdGhlIG9uZQpAQCAtOTk5LDcgKzEwMDUsNyBAQCBzdWJzdGl0dXRlLWNv bW1hbmQta2V5cwogb3V0cHV0LgogCiBSZXR1cm4gdGhlIG9yaWdpbmFsIFNUUklORyBpZiBubyBz dWJzdGl0dXRpb25zIGFyZSBtYWRlLgotT3RoZXJ3aXNlLCByZXR1cm4gYSBuZXcgc3RyaW5nICh3 aXRob3V0IGFueSB0ZXh0IHByb3BlcnRpZXMpLiIKK090aGVyd2lzZSwgcmV0dXJuIGEgbmV3IHN0 cmluZy4iCiAgICh3aGVuIChub3QgKG51bGwgc3RyaW5nKSkKICAgICA7OyBLRVlNQVAgaXMgZWl0 aGVyIG5pbCAod2hpY2ggbWVhbnMgc2VhcmNoIGFsbCB0aGUgYWN0aXZlCiAgICAgOzsga2V5bWFw cykgb3IgYSBzcGVjaWZpZWQgbG9jYWwgbWFwICh3aGljaCBtZWFucyBzZWFyY2gganVzdCB0aGF0 CkBAIC0xMDUzLDEyICsxMDU5LDE1IEBAIHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVyZS1pcy1pbnRlcm5hbCBmdW4ga2V5bWFwIHQp KSkpCiAgICAgICAgICAgICAgICAgICAoaWYgKG5vdCBrZXkpCiAgICAgICAgICAgICAgICAgICAg ICAgOzsgRnVuY3Rpb24gaXMgbm90IG9uIGFueSBrZXkuCi0gICAgICAgICAgICAgICAgICAgICAg KHByb2duIChpbnNlcnQgIk0teCAiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290 by1jaGFyICgrIGVuZC1wb2ludCAzKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRl bGV0ZS1jaGFyIDEpKQorICAgICAgICAgICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAg ICAgICAgICAgICAgKGluc2VydCAocHJvcGVydGl6ZSAiTS14ICIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhY2UgJ2hlbHAta2V5LWJpbmRpbmcKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtbG9jay1mYWNlICdo ZWxwLWtleS1iaW5kaW5nKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKCsg ZW5kLXBvaW50IDMpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1jaGFyIDEpKQog ICAgICAgICAgICAgICAgICAgICA7OyBGdW5jdGlvbiBpcyBvbiBhIGtleS4KICAgICAgICAgICAg ICAgICAgICAgKGRlbGV0ZS1jaGFyICgtIGVuZC1wb2ludCAocG9pbnQpKSkKLSAgICAgICAgICAg ICAgICAgICAgKGluc2VydCAoa2V5LWRlc2NyaXB0aW9uIGtleSkpKSkpCisgICAgICAgICAgICAg ICAgICAgIChpbnNlcnQgKGhlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZpZWQga2V5KSkpKSkK ICAgICAgICAgICAgICAgIDs7IDFELiBce2Zvb30gaXMgcmVwbGFjZWQgd2l0aCBhIHN1bW1hcnkg b2YgdGhlIGtleW1hcAogICAgICAgICAgICAgICAgOzsgICAgICAgICAgICAoc3ltYm9sLXZhbHVl IGZvbykuCiAgICAgICAgICAgICAgICA7OyAgICAgXDxmb28+IGp1c3Qgc2V0cyB0aGUga2V5bWFw IHVzZWQgZm9yIFxbY21kXS4KQEAgLTExNzIsNyArMTE4MSw3IEBAIGRlc2NyaWJlLW1hcC10cmVl CiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgdGl0bGUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoaWYgcHJlZml4CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb25jYXQgIiBTdGFydGluZyBXaXRoICIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5LWRlc2NyaXB0aW9uIHByZWZpeCkpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoZWxwLS1rZXkt ZGVzY3JpcHRpb24tZm9udGlmaWVkIHByZWZpeCkpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICI6XG4iKSkKICAgICAgICAgICAgICAgICAgICAgICAia2V5ICAgICAgICAgICAg IGJpbmRpbmdcbiIKICAgICAgICAgICAgICAgICAgICAgICAiLS0tICAgICAgICAgICAgIC0tLS0t LS1cbiIpKSkKQEAgLTEyMjgsNiArMTIzNyw4IEBAIGhlbHAtLWRlc2NyaWJlLWNvbW1hbmQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg9IGhlbHAtLXByZXZp b3VzLWRlc2NyaXB0aW9uLWNvbHVtbiAzMikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0IDE2KSkp KQorICAgIDs7IEluc2VydCB0YWIgd2l0aG91dCBmYWNlIHRvIGF2b2lkIHVzaW5nIHRoZSBgaGVs cC1rZXltYXAnIGZhY2UuCisgICAgKGluc2VydCAocHJvcGVydGl6ZSAiXHQiICdmYWNlIG5pbCAn Zm9udC1sb2NrLWZhY2UgbmlsKSkKICAgICAoaW5kZW50LXRvIGRlc2NyaXB0aW9uLWNvbHVtbiAx KQogICAgIChzZXRxIGhlbHAtLXByZXZpb3VzLWRlc2NyaXB0aW9uLWNvbHVtbiBkZXNjcmlwdGlv bi1jb2x1bW4pCiAgICAgKGNvbmQgKChzeW1ib2xwIGRlZmluaXRpb24pCkBAIC0xMjQwLDYgKzEy NTEsOCBAQCBoZWxwLS1kZXNjcmliZS1jb21tYW5kCiAKIChkZWZ1biBoZWxwLS1kZXNjcmliZS10 cmFuc2xhdGlvbiAoZGVmaW5pdGlvbikKICAgOzsgQ29udmVydGVkIGZyb20gZGVzY3JpYmVfdHJh bnNsYXRpb24gaW4ga2V5bWFwLmMuCisgIDs7IEluc2VydCB0YWIgd2l0aG91dCBmYWNlIHRvIGF2 b2lkIHVzaW5nIHRoZSBgaGVscC1rZXltYXAnIGZhY2UuCisgIChpbnNlcnQgKHByb3BlcnRpemUg Ilx0IiAnZmFjZSBuaWwgJ2ZvbnQtbG9jay1mYWNlIG5pbCkpCiAgIChpbmRlbnQtdG8gMTYgMSkK ICAgKGNvbmQgKChzeW1ib2xwIGRlZmluaXRpb24pCiAgICAgICAgICAoaW5zZXJ0IChzeW1ib2wt bmFtZSBkZWZpbml0aW9uKSAiXG4iKSkKQEAgLTEzNTEsOSArMTM2NCw5IEBAIGRlc2NyaWJlLW1h cAogICAgICAgICAgICAgICAoc2V0cSBlbmQgKGNhYXIgdmVjdCkpKSkKICAgICAgICAgICA7OyBO b3cgU1RBUlQgLi4gRU5EIGlzIHRoZSByYW5nZSB0byBkZXNjcmliZSBuZXh0LgogICAgICAgICAg IDs7IEluc2VydCB0aGUgc3RyaW5nIHRvIGRlc2NyaWJlIHRoZSBldmVudCBTVEFSVC4KLSAgICAg ICAgICAoaW5zZXJ0IChrZXktZGVzY3JpcHRpb24gKHZlY3RvciBzdGFydCkgcHJlZml4KSkKKyAg ICAgICAgICAoaW5zZXJ0IChoZWxwLS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVkICh2ZWN0b3Ig c3RhcnQpIHByZWZpeCkpCiAgICAgICAgICAgKHdoZW4gKG5vdCAoZXEgc3RhcnQgZW5kKSkKLSAg ICAgICAgICAgIChpbnNlcnQgIiAuLiAiIChrZXktZGVzY3JpcHRpb24gKHZlY3RvciBlbmQpIHBy ZWZpeCkpKQorICAgICAgICAgICAgKGluc2VydCAiIC4uICIgKGhlbHAtLWtleS1kZXNjcmlwdGlv bi1mb250aWZpZWQgKHZlY3RvciBlbmQpIHByZWZpeCkpKQogICAgICAgICAgIDs7IFByaW50IGEg ZGVzY3JpcHRpb24gb2YgdGhlIGRlZmluaXRpb24gb2YgdGhpcyBjaGFyYWN0ZXIuCiAgICAgICAg ICAgOzsgQ2FsbGVkIGZ1bmN0aW9uIHdpbGwgdGFrZSBjYXJlIG9mIHNwYWNpbmcgb3V0IGZhciBl bm91Z2gKICAgICAgICAgICA7OyBmb3IgYWxpZ25tZW50IHB1cnBvc2VzLgpAQCAtMTQyMCw3ICsx NDMzLDcgQEAgZGVzY3JpYmUtbWFwCiA7OyAgICAgICAgICAgICAoc2V0cSBmaXJzdCBuaWwpKQog OzsgICAgICAgICAgICh3aGVuIChhbmQgcHJlZml4ICg+IChsZW5ndGggcHJlZml4KSAwKSkKIDs7 ICAgICAgICAgICAgIChpbnNlcnQgKGZvcm1hdCAiJXMiIHByZWZpeCkpKQotOzsgICAgICAgICAg IChpbnNlcnQgKGtleS1kZXNjcmlwdGlvbiAodmVjdG9yIHN0YXJ0LWlkeCkgcHJlZml4KSkKKzs7 ICAgICAgICAgICAoaW5zZXJ0IChoZWxwLS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVkICh2ZWN0 b3Igc3RhcnQtaWR4KSBwcmVmaXgpKQogOzsgICAgICAgICAgIDs7IEZpbmQgYWxsIGNvbnNlY3V0 aXZlIGNoYXJhY3RlcnMgb3Igcm93cyB0aGF0IGhhdmUgdGhlCiA7OyAgICAgICAgICAgOzsgc2Ft ZSBkZWZpbml0aW9uLgogOzsgICAgICAgICAgICh3aGlsZSAoZXF1YWwgKGtleW1hcC0tZ2V0LWtl eWVsdCAoYXJlZiB2ZWN0b3IgKDErIGlkeCkpIG5pbCkKQEAgLTE0MzMsNyArMTQ0Niw3IEBAIGRl c2NyaWJlLW1hcAogOzsgICAgICAgICAgICAgKGluc2VydCAiIC4uICIpCiA7OyAgICAgICAgICAg ICAod2hlbiAoYW5kIHByZWZpeCAoPiAobGVuZ3RoIHByZWZpeCkgMCkpCiA7OyAgICAgICAgICAg ICAgIChpbnNlcnQgKGZvcm1hdCAiJXMiIHByZWZpeCkpKQotOzsgICAgICAgICAgICAgKGluc2Vy dCAoa2V5LWRlc2NyaXB0aW9uICh2ZWN0b3IgaWR4KSBwcmVmaXgpKSkKKzs7ICAgICAgICAgICAg IChpbnNlcnQgKGhlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZpZWQgKHZlY3RvciBpZHgpIHBy ZWZpeCkpKQogOzsgICAgICAgICAgIChpZiB0cmFuc2wKIDs7ICAgICAgICAgICAgICAgKGhlbHAt LWRlc2NyaWJlLXRyYW5zbGF0aW9uIGRlZmluaXRpb24pCiA7OyAgICAgICAgICAgICAoaGVscC0t ZGVzY3JpYmUtY29tbWFuZCBkZWZpbml0aW9uKSkKQEAgLTE5MjQsNiArMTkzNyw4IEBAIGhlbHAt Y29tbWFuZC1lcnJvci1jb25mdXNhYmxlLXN1Z2dlc3Rpb25zCiAoYWRkLWZ1bmN0aW9uIDphZnRl ciBjb21tYW5kLWVycm9yLWZ1bmN0aW9uCiAgICAgICAgICAgICAgICMnaGVscC1jb21tYW5kLWVy cm9yLWNvbmZ1c2FibGUtc3VnZ2VzdGlvbnMpCiAKKyhkZWZpbmUtb2Jzb2xldGUtZnVuY3Rpb24t YWxpYXMgJ2hlbHAtZm9yLWhlbHAtaW50ZXJuYWwgIydoZWxwLWZvci1oZWxwICIyOC4xIikKKwog DAogKHByb3ZpZGUgJ2hlbHApCiAKZGlmZiAtLWdpdCBhL2xpc3AvaXNlYXJjaC5lbCBiL2xpc3Av aXNlYXJjaC5lbAppbmRleCBlNzkyNmFjMDhjLi45NDNlMjRhYTU2IDEwMDY0NAotLS0gYS9saXNw L2lzZWFyY2guZWwKKysrIGIvbGlzcC9pc2VhcmNoLmVsCkBAIC00NjAsMTEgKzQ2MCwxMSBAQCBp c2VhcmNoLWhlbHAtbWFwCiAobWFrZS1oZWxwLXNjcmVlbiBpc2VhcmNoLWhlbHAtZm9yLWhlbHAt aW50ZXJuYWwKICAgKHB1cmVjb3B5ICJUeXBlIGEgaGVscCBvcHRpb246IFtia21dIG9yID8iKQog ICAiWW91IGhhdmUgdHlwZWQgJVRISVMtS0VZJSwgdGhlIGhlbHAgY2hhcmFjdGVyLiAgVHlwZSBh IEhlbHAgb3B0aW9uOgotXChUeXBlIFxcPGhlbHAtbWFwPlxcW2hlbHAtcXVpdF0gdG8gZXhpdCB0 aGUgSGVscCBjb21tYW5kLikKK1woVHlwZSBcXDxpc2VhcmNoLWhlbHAtbWFwPlxcW2hlbHAtcXVp dF0gdG8gZXhpdCB0aGUgSGVscCBjb21tYW5kLikKIAotYiAgICAgICAgICAgRGlzcGxheSBhbGwg SXNlYXJjaCBrZXkgYmluZGluZ3MuCi1rIEtFWVMgICAgICBEaXNwbGF5IGZ1bGwgZG9jdW1lbnRh dGlvbiBvZiBJc2VhcmNoIGtleSBzZXF1ZW5jZS4KLW0gICAgICAgICAgIERpc3BsYXkgZG9jdW1l bnRhdGlvbiBvZiBJc2VhcmNoIG1vZGUuCitcXFtpc2VhcmNoLWRlc2NyaWJlLWJpbmRpbmdzXSAg ICAgICAgICAgRGlzcGxheSBhbGwgSXNlYXJjaCBrZXkgYmluZGluZ3MuCitcXFtpc2VhcmNoLWRl c2NyaWJlLWtleV0gS0VZUyAgICAgIERpc3BsYXkgZnVsbCBkb2N1bWVudGF0aW9uIG9mIElzZWFy Y2gga2V5IHNlcXVlbmNlLgorXFxbaXNlYXJjaC1kZXNjcmliZS1tb2RlXSAgICAgICAgICAgRGlz cGxheSBkb2N1bWVudGF0aW9uIG9mIElzZWFyY2ggbW9kZS4KIAogWW91IGNhbid0IHR5cGUgaGVy ZSBvdGhlciBoZWxwIGtleXMgYXZhaWxhYmxlIGluIHRoZSBnbG9iYWwgaGVscCBtYXAsCiBidXQg b3V0c2lkZSBvZiB0aGlzIGhlbHAgd2luZG93IHdoZW4geW91IHR5cGUgdGhlbSBpbiBJc2VhcmNo IG1vZGUsCmRpZmYgLS1naXQgYS9saXNwL3Rvb2x0aXAuZWwgYi9saXNwL3Rvb2x0aXAuZWwKaW5k ZXggOGUwMGFhNWMyYS4uYWYzYjg2YmJhNyAxMDA2NDQKLS0tIGEvbGlzcC90b29sdGlwLmVsCisr KyBiL2xpc3AvdG9vbHRpcC5lbApAQCAtMjQ4LDcgKzI0OCwxMiBAQCB0b29sdGlwLXNob3cKIAkg ICAgKHNldGYgKGFsaXN0LWdldCAnYm9yZGVyLWNvbG9yIHBhcmFtcykgZmcpKQogCSAgKHdoZW4g KHN0cmluZ3AgYmcpCiAJICAgIChzZXRmIChhbGlzdC1nZXQgJ2JhY2tncm91bmQtY29sb3IgcGFy YW1zKSBiZykpCi0JICAoeC1zaG93LXRpcCAocHJvcGVydGl6ZSB0ZXh0ICdmYWNlICd0b29sdGlw KQorICAgICAgICAgIDs7IFVzZSBub24tbmlsIEFQUEVORCBhcmd1bWVudCBiZWxvdyB0byBhdm9p ZCBvdmVycmlkaW5nIGFueQorICAgICAgICAgIDs7IGZhY2VzIHVzZWQgaW4gb3VyIFRFWFQuICBB bW9uZyBvdGhlciB0aGluZ3MsIHRoaXMgYWxsb3dzCisgICAgICAgICAgOzsgdG9vbHRpcHMgdG8g dXNlIHRoZSBgaGVscC1rZXktYmluZGluZycgZmFjZSB1c2VkIGluCisgICAgICAgICAgOzsgYHN1 YnN0aXR1dGUtY29tbWFuZC1rZXlzJyBzdWJzdGl0dXRpb25zLgorICAgICAgICAgIChhZGQtZmFj ZS10ZXh0LXByb3BlcnR5IDAgKGxlbmd0aCB0ZXh0KSAndG9vbHRpcCB0IHRleHQpCisgICAgICAg ICAgKHgtc2hvdy10aXAgdGV4dAogCQkgICAgICAoc2VsZWN0ZWQtZnJhbWUpCiAJCSAgICAgIHBh cmFtcwogCQkgICAgICB0b29sdGlwLWhpZGUtZGVsYXkKZGlmZiAtLWdpdCBhL3NyYy9rZXltYXAu YyBiL3NyYy9rZXltYXAuYwppbmRleCA3ODI5MzFmYWRmLi5lMzhjOWI5MDhhIDEwMDY0NAotLS0g YS9zcmMva2V5bWFwLmMKKysrIGIvc3JjL2tleW1hcC5jCkBAIC0yODQ2LDYgKzI4NDYsMjMgQEAg REVGVU4gKCJkZXNjcmliZS12ZWN0b3IiLCBGZGVzY3JpYmVfdmVjdG9yLCBTZGVzY3JpYmVfdmVj dG9yLCAxLCAyLCAwLAogICByZXR1cm4gdW5iaW5kX3RvIChjb3VudCwgUW5pbCk7CiB9CiAKK3N0 YXRpYyBMaXNwX09iamVjdCBmb250aWZ5X2tleV9wcm9wZXJ0aWVzOworCitzdGF0aWMgTGlzcF9P YmplY3QKK2Rlc2NyaWJlX2tleV9tYXliZV9mb250aWZ5IChMaXNwX09iamVjdCBzdHIsIExpc3Bf T2JqZWN0IHByZWZpeCwKKwkJCQkgICBib29sIGtleW1hcF9wKQoreworICBMaXNwX09iamVjdCBr ZXlfZGVzYyA9IEZrZXlfZGVzY3JpcHRpb24gKHN0ciwgcHJlZml4KTsKKworICBpZiAoa2V5bWFw X3ApCisgICAgcmV0dXJuIEZhZGRfdGV4dF9wcm9wZXJ0aWVzIChtYWtlX2ZpeG51bSAoMCksCisJ CQkJIG1ha2VfZml4bnVtIChTQ0hBUlMgKGtleV9kZXNjKSksCisJCQkJIGZvbnRpZnlfa2V5X3By b3BlcnRpZXMsCisJCQkJIGtleV9kZXNjKTsKKyAgZWxzZQorICAgIHJldHVybiBrZXlfZGVzYzsK K30KKwogREVGVU4gKCJoZWxwLS1kZXNjcmliZS12ZWN0b3IiLCBGaGVscF9fZGVzY3JpYmVfdmVj dG9yLCBTaGVscF9fZGVzY3JpYmVfdmVjdG9yLCA3LCA3LCAwLAogICAgICAgIGRvYzogLyogSW5z ZXJ0IGluIHRoZSBjdXJyZW50IGJ1ZmZlciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBjb250ZW50cyBv ZiBWRUNUT1IuCiBDYWxsIERFU0NSSUJFUiB0byBpbnNlcnQgdGhlIGRlc2NyaXB0aW9uIG9mIG9u ZSB2YWx1ZSBmb3VuZCBpbiBWRUNUT1IuCkBAIC0zMDIxLDcgKzMwMzgsNyBAQCBkZXNjcmliZV92 ZWN0b3IgKExpc3BfT2JqZWN0IHZlY3RvciwgTGlzcF9PYmplY3QgcHJlZml4LCBMaXNwX09iamVj dCBhcmdzLAogICAgICAgaWYgKCFOSUxQIChlbHRfcHJlZml4KSkKIAlpbnNlcnQxIChlbHRfcHJl Zml4KTsKIAotICAgICAgaW5zZXJ0MSAoRmtleV9kZXNjcmlwdGlvbiAoa2x1ZGdlLCBwcmVmaXgp KTsKKyAgICAgIGluc2VydDEgKGRlc2NyaWJlX2tleV9tYXliZV9mb250aWZ5IChrbHVkZ2UsIHBy ZWZpeCwga2V5bWFwX3ApKTsKIAogICAgICAgLyogRmluZCBhbGwgY29uc2VjdXRpdmUgY2hhcmFj dGVycyBvciByb3dzIHRoYXQgaGF2ZSB0aGUgc2FtZQogCSBkZWZpbml0aW9uLiAgQnV0LCBpZiBW RUNUT1IgaXMgYSBjaGFyLXRhYmxlLCB3ZSBoYWQgYmV0dGVyCkBAIC0zMDcxLDcgKzMwODgsNyBA QCBkZXNjcmliZV92ZWN0b3IgKExpc3BfT2JqZWN0IHZlY3RvciwgTGlzcF9PYmplY3QgcHJlZml4 LCBMaXNwX09iamVjdCBhcmdzLAogCSAgaWYgKCFOSUxQIChlbHRfcHJlZml4KSkKIAkgICAgaW5z ZXJ0MSAoZWx0X3ByZWZpeCk7CiAKLQkgIGluc2VydDEgKEZrZXlfZGVzY3JpcHRpb24gKGtsdWRn ZSwgcHJlZml4KSk7CisJICBpbnNlcnQxIChkZXNjcmliZV9rZXlfbWF5YmVfZm9udGlmeSAoa2x1 ZGdlLCBwcmVmaXgsIGtleW1hcF9wKSk7CiAJfQogCiAgICAgICAvKiBQcmludCBhIGRlc2NyaXB0 aW9uIG9mIHRoZSBkZWZpbml0aW9uIG9mIHRoaXMgY2hhcmFjdGVyLgpAQCAtMzIwMCw2ICszMjE3 LDEyIEBAIHN5bXNfb2Zfa2V5bWFwICh2b2lkKQogICBzdGF0aWNwcm8gKCZ3aGVyZV9pc19jYWNo ZSk7CiAgIHN0YXRpY3BybyAoJndoZXJlX2lzX2NhY2hlX2tleW1hcHMpOwogCisgIERFRlNZTSAo UWZvbnRfbG9ja19mYWNlLCAiZm9udC1sb2NrLWZhY2UiKTsKKyAgREVGU1lNIChRaGVscF9rZXlf YmluZGluZywgImhlbHAta2V5LWJpbmRpbmciKTsKKyAgc3RhdGljcHJvICgmZm9udGlmeV9rZXlf cHJvcGVydGllcyk7CisgIGZvbnRpZnlfa2V5X3Byb3BlcnRpZXMgPSBGY29ucyAoUWZvbnRfbG9j a19mYWNlLAorCQkJCSAgRmNvbnMgKFFoZWxwX2tleV9iaW5kaW5nLCBRbmlsKSk7CisKICAgZGVm c3ViciAoJlNrZXltYXBwKTsKICAgZGVmc3ViciAoJlNrZXltYXBfcGFyZW50KTsKICAgZGVmc3Vi ciAoJlNrZXltYXBfcHJvbXB0KTsKLS0gCjIuMzAuMQoK --000000000000c485ac05bce1963d--