From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id DA6D224B3F for ; Sun, 3 Mar 2024 00:56:17 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1709423777; b=DLHblSbsjf136/CkRS0qzp0DpnWJjOxYLcKFdiC6VB1HETOqnCYTCJ2h/M8ZVL312o6PIfoj6j e/t3MzGKuPjjXZPqFjGDXqkmWdDVYjyRN0rK7mQpPsgoDYVL8rWrTCCT1dtPOZ1qZ95iXuQhXw G3YiiMQlGennVr/z4UtYhFMHLNagH0jURNpwUavKBoJG3e9jaL9sWRODHytBJGl/wlpqRuY59f wjTg0wSRP+jhqhcvPEdrxNdvdvcqpRRCY1YxBWu5YKIsvk7XHUEpVRzowsrO5DrlLeTRoOJQCe EOFVyCZlHoEVU3qu3ehSSyqrsWJ9wO4hObhFywl2TQBWCg==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ed1-f45.google.com) smtp.remote-ip=209.85.208.45; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1709423777; bh=vJ0LATaxhvhIv4eeNJsO+vACZu3HSfmxrQaPChwFGLc=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=n27GTAdKoRkJ5s2tUqdn8CxDOZMrOmnyU9nXI1MU8cba3sQbv5kE2R1PmRHQsJ3gqZwQYE6CUN Iom0KhM7FxoqWrioHMXFvloGnsJ/KeO5SbEfn4GUlq9gnzU7x+gk/4bbJ7I+vM4wSplADDuV9j /HP0Kzo1FvI+1crEqc+j0mfdJ4wfOZt0XQfF1gh02y8aTPWOp7w6C5UsiMl0Q3sSQfDAKBCPt8 PKeO+hbkNJ8M7CG3OoLI77SLjfrwzQWMXmR4eeJOw8tSt96julsGluUbjf29TRQivlPuUs59V+ ZqzFe40i+y04pd3vQEf8YCKg2kWMT7ZVp+y7cd0zb3yMvg==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:In-Reply-To:References:MIME-Version:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=BMzO7Y5HTTpktNaO9p6ykaDbUlbHnY/Q44jNNw6CKHs=; b=HotzHQ6zi79u7+lKLXjF95i8yu yfOlXABpXTbZ5JuHs12R8QfhmKOVU0iMdgu34WRpN8Sr76myctIaWjr8mZUsfWmn1CyWSpUuakfYU T0JWiLR5tCXq3QxqV1YKPrJLDJceWjjptA77iUqKn7X2+k8Sr4Yo9z/+fkhHivi5ulAR4ydKlLLBR pu/PlSxn8L9JM+3eDqG3ot3NEcbiuE4MM4X5ebffwZ8vE3nFQ9mQuPNXTf0I593XhLwEGO0FLIf16 5nc9v4kfvBkFHXhq9lsp5yczDzBNVGi+95gGhE1o1bOcAxlR2PhtczLJpUuNP+4A28xpJXTq9ZUG3 E4JOfR6Q==; Received: by zero.zsh.org with local id 1rgZDD-000IKa-My; Sat, 02 Mar 2024 23:56:16 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ed1-f45.google.com) smtp.remote-ip=209.85.208.45; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ed1-f45.google.com ([209.85.208.45]:49459) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1rgZCZ-000I1z-9k; Sat, 02 Mar 2024 23:55:38 +0000 Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-56647babfe6so5003835a12.3 for ; Sat, 02 Mar 2024 15:55:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20230601.gappssmtp.com; s=20230601; t=1709423734; x=1710028534; darn=zsh.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=BMzO7Y5HTTpktNaO9p6ykaDbUlbHnY/Q44jNNw6CKHs=; b=Y0Tl3ewOmIsW2+5wL9BQ+0y/o8lKaZn22+fOy7UfXXAOyO2nZas4QRV82EwO2ZsETo 7Ni4rSanVzKJVl+o+QSBR8J6CS/N93dB3q3+WjtPXxRz060oaLZFmNXISv0D0Gn62Tbo 8T69t+zewZ3kOaMikdywctw0NfMKk3b+1If9j2E6rsrS7EwsQ/BuDDKAv8qLXXAUQTtt o3B3mzO++BMTPjZP00IISe1KuLyrNBPMiJaPhRscxdIUpg+r49wPHx87fjngvcvX1K7N GWsFFbZ4Pmnnua8dz/MiIALmWR3d6HC/oR/coSNq2CRzuYbe0LXEEo0wEb/fg7kBLmLu bJSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709423734; x=1710028534; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=BMzO7Y5HTTpktNaO9p6ykaDbUlbHnY/Q44jNNw6CKHs=; b=nRo+WFP7hvUrMk2sLE2FF3ueeLMfyU74DpErkDzrWKKLW4CkBwiQ4FR5cZMazkXHEx dJza5EmaDBqKLXX5e/C3dfbCcrsTOlglAsO/lznLXK/+4SoKmPtudxFJJsoC/aLWN5YK q5QQ/8E/LlctXeE+iBPmrOhAltIfB9L92pDqPHNSjouzYlssZRnIb2zKg2VZkP2IcJJn ntOIWhLnV4Bx7EcRADPEMk3XmzTHFYcEmtm+AHK3HUVfX/YxncJxhIKja0hX++9M/U4p wYfQn2e69OmcLQ7kHXhy0Z99sL/LLY/ug3BY4zgYcp/KV/enYhaAxjKJ6eAng67SZJY7 A01w== X-Gm-Message-State: AOJu0YzLE5+leg0Z07Iplc5X+gCgOB3THImM4TZToIVjvDeieRXvscdP hbvYDV7JF2BZ6JO0rkmOMJaFMM7+YZ7NJYoMmyon1S1Vlr36qYnKrEYaCOt4IVGkRLComiAyAYE YSoWqPnmVbhosKicrAZxK3Gq5sUgQgBH/OT4fESKUVOaiVf/YNA== X-Google-Smtp-Source: AGHT+IEUsbJGOWFEEsBGu05WPHkwfPC1rbEZyGSW4ei/PT2F6CZoGrrPgJ/K1erJrqXQy2wps83GdqB1gkqJH1RvG14= X-Received: by 2002:a17:906:379a:b0:a44:791d:6281 with SMTP id n26-20020a170906379a00b00a44791d6281mr3869009ejc.51.1709423734583; Sat, 02 Mar 2024 15:55:34 -0800 (PST) MIME-Version: 1.0 References: <40726-1676098925.110777@U2kb.d0Pd.I9ml> <20240211070042.4j37hkgjjn3dfjqd@chazelas.org> <20240220210553.g6imt3op6zahz4pa@chazelas.org> <20240221201215.anpjcfav6na55gg6@chazelas.org> <20240301182238.tpyajwblbam5bxw7@chazelas.org> In-Reply-To: From: Bart Schaefer Date: Sat, 2 Mar 2024 15:55:23 -0800 Message-ID: Subject: [PATCH] "typeset -nu" (was Re: Up-scope named references, vs. ksh) To: Zsh hackers list Content-Type: multipart/mixed; boundary="000000000000789ebc0612b63acd" X-Seq: 52650 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --000000000000789ebc0612b63acd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 1, 2024 at 11:29=E2=80=AFPM Bart Schaefer wrote: > > How about this: Instead of magically turning a positional into a > reference into the surrounding scope, let's make it explicit. Here's a patch to implement this, including doc with an example. Of particular note is the last sentence here: +To force a named reference to refer to the outer scope, even if a local +has already been declared, add the tt(-u) option when declaring the +named reference. In this case var(rname) should already exist in the +outer scope, otherwise the behavior of assignment through var(pname) +is not defined and may change the scope of the reference or fail with +a status of 1. I went with assignment silently failing rather than printing an error message in the cases where a parameter in the calling scope cannot be created. --000000000000789ebc0612b63acd Content-Type: text/plain; charset="US-ASCII"; name="typeset-nu.txt" Content-Disposition: attachment; filename="typeset-nu.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltaqq8ab0 ZGlmZiAtLWdpdCBhL0RvYy9ac2gvYnVpbHRpbnMueW8gYi9Eb2MvWnNoL2J1aWx0aW5zLnlvCmlu ZGV4IDYzMTgwNTNkOC4uN2E5Njg0YWM4IDEwMDY0NAotLS0gYS9Eb2MvWnNoL2J1aWx0aW5zLnlv CisrKyBiL0RvYy9ac2gvYnVpbHRpbnMueW8KQEAgLTIwNTIsMTMgKzIwNTIsMTcgQEAgY2luZGV4 KG5hbWVkIHJlZmVyZW5jZSkKIGNpbmRleChyZWZlcmVuY2UsIG5hbWVkKQogVGhlIGZsYWcgdHQo LW4pIGNyZWF0ZXMgYSBlbShuYW1lZCByZWZlcmVuY2UpIHRvIGFub3RoZXIgcGFyYW1ldGVyLgog VGhlIHNlY29uZCBwYXJhbWV0ZXIgbmVlZCBub3QgZXhpc3QgYXQgdGhlIHRpbWUgdGhlIHJlZmVy ZW5jZSBpcwotY3JlYXRlZC4gIE9ubHkgdHQoLWcpIGFuZCB0dCgtcikgbWF5IGJlIHVzZWQgaW4g Y29uanVuY3Rpb24gd2l0aAorY3JlYXRlZC4gIE9ubHkgdHQoLWcpLCB0dCgtdSksIGFuZCB0dCgt cikgbWF5IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aAogdHQoLW4pLiAgVGhlIHZhcihuYW1l KSBzbyBjcmVhdGVkIG1heSBub3QgYmUgYW4gYXJyYXkgZWxlbWVudCBub3IgdXNlCiBhIHN1YnNj cmlwdCwgYnV0IHRoZSB2YXIodmFsdWUpIGFzc2lnbmVkIG1heSBiZSBhbnkgdmFsaWQgcGFyYW1l dGVyCiBuYW1lIHN5bnRheCwgZXZlbiBhIHN1YnNjcmlwdGVkIGFycmF5IGVsZW1lbnQgKGluY2x1 ZGluZyBhbiBhc3NvY2lhdGl2ZQogYXJyYXkgZWxlbWVudCkgb3IgYW4gYXJyYXkgc2xpY2UsIHdo aWNoIGlzIGV2YWx1YXRlZCB3aGVuIHRoZSBuYW1lZAogcmVmZXJlbmNlIGlzIGV4cGFuZGVkLiAg SXQgaXMgYW4gZXJyb3IgZm9yIGEgbmFtZWQgcmVmZXJlbmNlIHRvIHJlZmVyCi10byBpdHNlbGYs IGV2ZW4gaW5kaXJlY3RseSB0aHJvdWdoIGEgY2hhaW4gb2YgcmVmZXJlbmNlcy4KK3RvIGl0c2Vs ZiwgZXZlbiBpbmRpcmVjdGx5IHRocm91Z2ggYSBjaGFpbiBvZiByZWZlcmVuY2VzLiAgV2hlbiB0 dCgtdSkKK2lzIGFwcGxpZWQgdG8gYSBuYW1lZCByZWZlcmVuY2UsIHRoZSBwYXJhbWV0ZXIgaWRl bnRpZmllZCBieSB2YXIodmFsdWUpCitpcyBhbHdheXMgZm91bmQgaW4gdGhlIGNhbGxpbmcgZnVu Y3Rpb24gc2NvcGUgcmF0aGVyIHRoYW4gdGhlIGN1cnJlbnQKK2xvY2FsIHNjb3BlLiAgSW4gdGhp cyBjYXNlLCBpZiB0aGVyZSBpcyBubyBzdWNoIHBhcmFtZXRlciBpbiB0aGUgY2FsbGluZworc2Nv cGUsIGFzc2lnbm1lbnRzIHRvIHRoZSBuYW1lZCByZWZlcmVuY2UgbWF5IGZhaWwsIHNldHRpbmcg dHQoJD8pIHRvIDEuCiBTZWUgaWZ6bWFuKHptYW5yZWYoenNoZXhwbikpaWZuem1hbihub2RlcmVm KFBhcmFtZXRlciBFeHBhbnNpb24pKSBhbmQKIGlmem1hbih6bWFucmVmKHpzaHBhcmFtKSlpZm56 bWFuKG5vZGVyZWYoUGFyYW1ldGVycykpIGZvciBkZXRhaWxzIG9mIHRoZQogYmVoYXZpb3Igb2Yg bmFtZWQgcmVmZXJlbmNlcy4KZGlmZiAtLWdpdCBhL0RvYy9ac2gvZXhwbi55byBiL0RvYy9ac2gv ZXhwbi55bwppbmRleCAyYWNmZDA4YzkuLjE4M2NhNmUwMyAxMDA2NDQKLS0tIGEvRG9jL1pzaC9l eHBuLnlvCisrKyBiL0RvYy9ac2gvZXhwbi55bwpAQCAtMTYwMCw2ICsxNjAwLDI1IEBAIGV4YW1w bGUodHQoYmVmb3JlIGxvY2FsOiBPVVRFUikKIHR0KGJ5IHJlZmVyZW5jZTogT1VURVIpCiB0dChh ZnRlciBmdW5jOiBSRVNVTFQpKQogCitUbyBmb3JjZSBhIG5hbWVkIHJlZmVyZW5jZSB0byByZWZl ciB0byB0aGUgb3V0ZXIgc2NvcGUsIGV2ZW4gaWYgYSBsb2NhbAoraGFzIGFscmVhZHkgYmVlbiBk ZWNsYXJlZCwgYWRkIHRoZSB0dCgtdSkgb3B0aW9uIHdoZW4gZGVjbGFyaW5nIHRoZQorbmFtZWQg cmVmZXJlbmNlLiAgSW4gdGhpcyBjYXNlIHZhcihybmFtZSkgc2hvdWxkIGFscmVhZHkgZXhpc3Qg aW4gdGhlCitvdXRlciBzY29wZSwgb3RoZXJ3aXNlIHRoZSBiZWhhdmlvciBvZiBhc3NpZ25tZW50 IHRocm91Z2ggdmFyKHBuYW1lKQoraXMgbm90IGRlZmluZWQgYW5kIG1heSBjaGFuZ2UgdGhlIHNj b3BlIG9mIHRoZSByZWZlcmVuY2Ugb3IgZmFpbCB3aXRoCithIHN0YXR1cyBvZiAxLiAgRXhhbXBs ZSBvZiBjb3JyZWN0IHVzYWdlOgoraWZ6bWFuKCkKK2V4YW1wbGUodHQoY2FsbGVyPU9VVEVSKQor dHQoZnVuYyBMUEFSKClSUEFSKCkgeykKK3R0KCAgcHJpbnQgYmVmb3JlIGxvY2FsOiAkY2FsbGVy KQordHQoICBsb2NhbCBjYWxsZXI9SU5ORVIpCit0dCggIHByaW50IGFmdGVyIGxvY2FsOiAkY2Fs bGVyKQordHQoICB0eXBlc2V0IC1uIC11IG91dGVyPSQxKQordHQoICBwcmludCBieSByZWZlcmVu Y2U6ICRvdXRlcikKK3R0KCAgb3V0ZXI9UkVTVUxUKQordHQofSkKK3R0KGZ1bmMgY2FsbGVyKQor dHQocHJpbnQgYWZ0ZXIgZnVuYzogJGNhbGxlcikpCisKIE5vdGUsIGhvd2V2ZXIsIHRoYXQgbmFt ZWQgcmVmZXJlbmNlcyB0byBlbShzcGVjaWFsKSBwYXJhbWV0ZXJzIGFjcXVpcmUKIHRoZSBiZWhh dmlvciBvZiB0aGUgc3BlY2lhbCBwYXJhbWV0ZXIsIHJlZ2FyZGxlc3Mgb2YgdGhlIHNjb3BlIHdo ZXJlCiB0aGUgcmVmZXJlbmNlIGlzIGRlY2xhcmVkLgpkaWZmIC0tZ2l0IGEvRG9jL1pzaC9mdW5j LnlvIGIvRG9jL1pzaC9mdW5jLnlvCmluZGV4IGQ0OTE0ZGY3YS4uN2I3MWUzNGU5IDEwMDY0NAot LS0gYS9Eb2MvWnNoL2Z1bmMueW8KKysrIGIvRG9jL1pzaC9mdW5jLnlvCkBAIC0zMSwxMCArMzEs MTIgQEAgcmVmZXJlbnQgcGFyYW1ldGVyIGlzIGluIHNjb3BlLCBhbmQgYXMgZWFybHkgYXMgcG9z c2libGUgaW4gdGhlCiBmdW5jdGlvbiBpZiB0aGUgcmVmZXJlbmNlIGlzIHRvIGEgcGFyYW1ldGVy IGluIGEgY2FsbGluZyBzY29wZS4KIAogQSB0eXBpY2FsIHVzZSBvZiBuYW1lZCByZWZlcmVuY2Vz IGlzIHRvIHBhc3MgdGhlIG5hbWUKLW9mIHRoZSByZWZlcmVudCBhcyBhIHBvc2l0aW9uYWwgcGFy YW1ldGVyLiAgRm9yIGV4YW1wbGUsCitvZiB0aGUgcmVmZXJlbnQgYXMgYSBwb3NpdGlvbmFsIHBh cmFtZXRlci4gIEluIHRoaXMgY2FzZSBpdCBpcworZ29vZCBwcmFjdGljZSB0byB1c2UgdGhlIHR0 KC11KSBvcHRpb24gdG8gcmVmZXJlbmNlIHRoZSBjYWxsaW5nCitzY29wZS4gIEZvciBleGFtcGxl LAogaWZ6bWFuKCkKIGV4YW1wbGUocG9wK0xQQVIoKVJQQVIoKSB7Ci0gIGxvY2FsIC1uIHJlZj0k MQorICBsb2NhbCAtbnUgcmVmPSQxCiAgIGxvY2FsIGxhc3Q9JHJlZlskI3JlZl0KICAgcmVmWyQj cmVmXT1MUEFSKClSUEFSKCkKICAgcHJpbnQgLXIgLS0gJGxhc3QKQEAgLTQzLDkgKzQ1LDEwIEBA IGFycmF5PUxQQVIoKSBhIGxpc3Qgb2YgZml2ZSB2YWx1ZXMgUlBBUigpCiBwb3AgYXJyYXkpCiAK IHByaW50cyB0aGUgd29yZCBgdHQodmFsdWVzKScgYW5kIHNob3J0ZW5zIGB0dCgkYXJyYXkpJyB0 bwotYHR0KExQQVIoKSBhIGxpc3Qgb2YgZml2ZSBSUEFSKCkpJy4gIFRoZXJlIGFyZSBubyBsb2Nh bCBwYXJhbWV0ZXJzIGluCi10dChwb3ApIGF0IHRoZSB0aW1lIGB0dChyZWY9JDEpJyBpcyBhc3Np Z25lZCwgc28gYHR0KHJlZiknIGJlY29tZXMgYQotcmVmZXJlbmNlIHRvIGB0dChhcnJheSknIGlu IHRoZSBjYWxsZXIuCitgdHQoTFBBUigpIGEgbGlzdCBvZiBmaXZlIFJQQVIoKSknLiAgV2l0aCB0 dCgtbnUpLCBgdHQocmVmKScgYmVjb21lcyBhCityZWZlcmVuY2UgdG8gYHR0KGFycmF5KScgaW4g dGhlIGNhbGxlci4gIFRoZXJlIGFyZSBubyBsb2NhbCBwYXJhbWV0ZXJzIGluCit0dChwb3ApIGF0 IHRoZSB0aW1lIGB0dChyZWY9JDEpJyBpcyBhc3NpZ25lZCwgc28gaW4gdGhpcyBleGFtcGxlIHR0 KC11KQorY291bGQgaGF2ZSBiZWVuIG9taXR0ZWQsIGJ1dCBpdCBtYWtlcyB0aGUgaW50ZW50aW9u IGNsZWFyLgogCiBGdW5jdGlvbnMgZXhlY3V0ZSBpbiB0aGUgc2FtZSBwcm9jZXNzIGFzIHRoZSBj YWxsZXIgYW5kCiBzaGFyZSBhbGwgZmlsZXMKZGlmZiAtLWdpdCBhL0RvYy9ac2gvbW9kX2tzaDkz LnlvIGIvRG9jL1pzaC9tb2Rfa3NoOTMueW8KaW5kZXggOWNkNzA4ZDEwLi43NTA4NzU4YWEgMTAw NjQ0Ci0tLSBhL0RvYy9ac2gvbW9kX2tzaDkzLnlvCisrKyBiL0RvYy9ac2gvbW9kX2tzaDkzLnlv CkBAIC0xMiw3ICsxMiw3IEBAIFRoZSBzaW5nbGUgYnVpbHRpbiBwcm92aWRlZCBieSB0aGlzIG1v ZHVsZSBpczoKIHN0YXJ0aXRlbSgpCiBmaW5kZXgobmFtZXJlZikKIGNpbmRleChuYW1lZCByZWZl cmVuY2VzLCBjcmVhdGluZykKLWl0ZW0odHQobmFtZXJlZikgWyB0dCgtcikgXSB2YXIocG5hbWUp W3R0KD0pdmFyKHJuYW1lKV0pKAoraXRlbSh0dChuYW1lcmVmKSBbIHR0KC1ndXIpIF0gdmFyKHBu YW1lKVt0dCg9KXZhcihybmFtZSldKSgKIEVxdWl2YWxlbnQgdG8gdHQodHlwZXNldCAtbiApdmFy KHBuYW1lKXR0KD0pdmFyKHJuYW1lKQogCiBIb3dldmVyLCB0dChuYW1lcmVmKSBpcyBhIGJ1aWx0 aW4gY29tbWFuZCByYXRoZXIgdGhhbiBhIHJlc2VydmVkIHdvcmQsCmRpZmYgLS1naXQgYS9FdGMv RkFRLnlvIGIvRXRjL0ZBUS55bwppbmRleCAxNDVlZjAyYzkuLjRhODYwNTBlNiAxMDA2NDQKLS0t IGEvRXRjL0ZBUS55bworKysgYi9FdGMvRkFRLnlvCkBAIC0xMDI1LDYgKzEwMjUsMTMgQEAgbGFi ZWwoMjEwKQogICAgIEhJVDpTUE9UCiAgICkKIAorICBEeW5hbWljIHNjb3BpbmcgYXBwbGllcyB0 byBuYW1lZCByZWZlcmVuY2VzLCBzbyBmb3IgZXhhbXBsZSBhIG5hbWVkCisgIHJlZmVyZW5jZSBk ZWNsYXJlZCBpbiBnbG9iYWwgc2NvcGUgbWF5IGJlIHVzZWQgaW4gZnVuY3Rpb24gc2NvcGVzLgor ICBJbiBrc2gsIGxvY2FsIHBhcmFtZXRlcnMgaGF2ZSBzdGF0aWMgc2NvcGUsIHNvIG5hbWVkIHJl ZmVyZW5jZXMgaW4KKyAgenNoIG1heSBoYXZlIHNpZGUtZWZmZWN0cyB0aGF0IGRvIG5vdCBvY2N1 ciBpbiBrc2guICBUbyBsaW1pdCB0aG9zZQorICBlZmZlY3RzLCBteXR0KHptb2Rsb2FkIHpzaC9w YXJhbS9wcml2YXRlKSBhbmQgZGVjbGFyZSBhbGwgbmFtZWQKKyAgcmVmZXJlbmNlcyBteXR0KHBy aXZhdGUpLgorCiAgIE5hbWVkIHJlZmVyZW5jZXMgbWF5IGJlIHVzZWQgaW4genNoIHZlcnNpb25z IGxhdGVyIHRoYW4gNS45LgogCiBzZWN0KFdoYXQgaXMgenNoJ3Mgc3VwcG9ydCBmb3Igbm9uLWZv cmtpbmcgY29tbWFuZCBzdWJzdGl0dXRpb24/KQpkaWZmIC0tZ2l0IGEvU3JjL01vZHVsZXMva3No OTMuYyBiL1NyYy9Nb2R1bGVzL2tzaDkzLmMKaW5kZXggOWFmNWUxZDY5Li42NzYwY2JjYTAgMTAw NjQ0Ci0tLSBhL1NyYy9Nb2R1bGVzL2tzaDkzLmMKKysrIGIvU3JjL01vZHVsZXMva3NoOTMuYwpA QCAtMzgsNyArMzgsNyBAQAogICovCiAKIHN0YXRpYyBzdHJ1Y3QgYnVpbHRpbiBiaW50YWJbXSA9 IHsKLSAgICBCVUlMVElOKCJuYW1lcmVmIiwgQklORl9BU1NJR04sIChIYW5kbGVyRnVuYyliaW5f dHlwZXNldCwgMCwgLTEsIDAsICJnciIsICJuIikKKyAgICBCVUlMVElOKCJuYW1lcmVmIiwgQklO Rl9BU1NJR04sIChIYW5kbGVyRnVuYyliaW5fdHlwZXNldCwgMCwgLTEsIDAsICJndXIiLCAibiIp CiB9OwogCiAjaW5jbHVkZSAienNoLm1kaCIKZGlmZiAtLWdpdCBhL1NyYy9idWlsdGluLmMgYi9T cmMvYnVpbHRpbi5jCmluZGV4IDgzMTQ0Njc3Yi4uYmE5Y2IwM2MyIDEwMDY0NAotLS0gYS9TcmMv YnVpbHRpbi5jCisrKyBiL1NyYy9idWlsdGluLmMKQEAgLTI2OTksNyArMjY5OSw3IEBAIGJpbl90 eXBlc2V0KGNoYXIgKm5hbWUsIGNoYXIgKiphcmd2LCBMaW5rTGlzdCBhc3NpZ25zLCBPcHRpb25z IG9wcywgaW50IGZ1bmMpCiAJICAgIG9mZiB8PSBiaXQ7CiAgICAgfQogICAgIGlmIChPUFRfTUlO VVMob3BzLCduJykpIHsKLQlpZiAoKG9ufG9mZikgJiB+UE1fUkVBRE9OTFkpIHsKKwlpZiAoKG9u fG9mZikgJiB+KFBNX1JFQURPTkxZfFBNX1VQUEVSKSkgewogCSAgICB6d2Fybm5hbShuYW1lLCAi bm8gb3RoZXIgYXR0cmlidXRlcyBhbGxvd2VkIHdpdGggLW4iKTsKIAkgICAgcmV0dXJuIDE7CiAJ fQpkaWZmIC0tZ2l0IGEvU3JjL2V4ZWMuYyBiL1NyYy9leGVjLmMKaW5kZXggZDg1YWRiZWE1Li44 YmU3YmYxN2QgMTAwNjQ0Ci0tLSBhL1NyYy9leGVjLmMKKysrIGIvU3JjL2V4ZWMuYwpAQCAtMTMy Miw3ICsxMzIyLDcgQEAgZXhlY3NpbXBsZShFc3RhdGUgc3RhdGUpCiAJICAgIGZwdXRjKCdcbics IHh0cmVycik7CiAJICAgIGZmbHVzaCh4dHJlcnIpOwogCX0KLQlsdiA9IChlcnJmbGFnID8gZXJy ZmxhZyA6IGNtZG91dHZhbCk7CisJbHYgPSAoZXJyZmxhZyA/IGVycmZsYWcgOiBjbWRvdXR2YWwg PyBjbWRvdXR2YWwgOiBsYXN0dmFsKTsKICAgICB9IGVsc2UgewogCWludCBxID0gcXVldWVfc2ln bmFsX2xldmVsKCk7CiAJZG9udF9xdWV1ZV9zaWduYWxzKCk7CkBAIC0yNjA0LDYgKzI2MDQsNyBA QCBhZGR2YXJzKEVzdGF0ZSBzdGF0ZSwgV29yZGNvZGUgcGMsIGludCBhZGRmbGFncykKIAkJb3B0 c1tBTExFWFBPUlRdID0gYWxsZXhwOwogCSAgICB9IGVsc2UKIAkgICAgCXBtID0gYXNzaWduc3Bh cmFtKG5hbWUsIHZhbCwgbXlmbGFncyk7CisJICAgIGxhc3R2YWwgPSAhcG07IC8qIHplcnIoIiVz OiBhc3NpZ25tZW50IGZhaWxlZCIsIG5hbWUpOyAqLwogCSAgICBpZiAoZXJyZmxhZykgewogCQlz dGF0ZS0+cGMgPSBvcGM7CiAJCXJldHVybjsKQEAgLTI2MjgsNyArMjYyOSw5IEBAIGFkZHZhcnMo RXN0YXRlIHN0YXRlLCBXb3JkY29kZSBwYywgaW50IGFkZGZsYWdzKQogCSAgICB9CiAJICAgIGZw cmludGYoeHRyZXJyLCAiKSAiKTsKIAl9Ci0JYXNzaWduYXBhcmFtKG5hbWUsIGFyciwgbXlmbGFn cyk7CisJOworCWxhc3R2YWwgPSAhYXNzaWduYXBhcmFtKG5hbWUsIGFyciwgbXlmbGFncyk7CisJ LyogemVycigiJXM6IGFycmF5IGFzc2lnbm1lbnQgZmFpbGVkIiwgbmFtZSk7ICovCiAJaWYgKGVy cmZsYWcpIHsKIAkgICAgc3RhdGUtPnBjID0gb3BjOwogCSAgICByZXR1cm47CmRpZmYgLS1naXQg YS9TcmMvcGFyYW1zLmMgYi9TcmMvcGFyYW1zLmMKaW5kZXggMDY0ZGJkMmJjLi43OTBjOTc4ZjIg MTAwNjQ0Ci0tLSBhL1NyYy9wYXJhbXMuYworKysgYi9TcmMvcGFyYW1zLmMKQEAgLTEwNjAsOCAr MTA2MCw3IEBAIGNyZWF0ZXBhcmFtKGNoYXIgKm5hbWUsIGludCBmbGFncykKIAkJCSAgIkJVRzog bG9jYWwgcGFyYW1ldGVyIGlzIG5vdCB1bnNldCIpOwogCQkgICAgb2xkcG0gPSBsYXN0cG07CiAJ CX0KLQkgICAgfSBlbHNlCi0JCWZsYWdzIHw9IFBNX05BTUVSRUY7CisJICAgIH0KIAl9CiAKIAlE UFVUUyhvbGRwbSAmJiBvbGRwbS0+bGV2ZWwgPiBsb2NhbGxldmVsLApAQCAtNjI2NCwxMCArNjI2 MywxMiBAQCByZXNvbHZlX25hbWVyZWYoUGFyYW0gcG0sIGNvbnN0IEFzZ21lbnQgc3RvcCkKIAkg ICAgfQogCX0gZWxzZSBpZiAoKGhuID0gZ2V0aGFzaG5vZGUyKHJlYWxwYXJhbXRhYiwgc2Vlaykp KSB7CiAJICAgIGlmIChwbSkgewotCQlpZiAoIShzdG9wICYmIChzdG9wLT5mbGFncyAmIChQTV9M T0NBTCkpKSkKLQkJICAgIGhuID0gKEhhc2hOb2RlKXVwc2NvcGUoKFBhcmFtKWhuLAotCQkJCQkg ICAoKHBtLT5ub2RlLmZsYWdzICYgUE1fTkFNRVJFRikgPwotCQkJCQkgICAgcG0tPmJhc2UgOiAo KFBhcmFtKWhuKS0+bGV2ZWwpKTsKKwkJaWYgKCEoc3RvcCAmJiAoc3RvcC0+ZmxhZ3MgJiAoUE1f TE9DQUwpKSkpIHsKKwkJICAgIGludCBzY29wZSA9ICgocG0tPm5vZGUuZmxhZ3MgJiBQTV9OQU1F UkVGKSA/CisJCQkJICgocG0tPm5vZGUuZmxhZ3MgJiBQTV9VUFBFUikgPyAtMSA6CisJCQkJICBw bS0+YmFzZSkgOiAoKFBhcmFtKWhuKS0+bGV2ZWwpOworCQkgICAgaG4gPSAoSGFzaE5vZGUpdXBz Y29wZSgoUGFyYW0paG4sIHNjb3BlKTsKKwkJfQogCQkvKiB1c2VyIGNhbid0IHRhZyBhIG5hbWVy ZWYsIHNhZmUgZm9yIGxvb3AgZGV0ZWN0aW9uICovCiAJCXBtLT5ub2RlLmZsYWdzIHw9IFBNX1RB R0dFRDsKIAkgICAgfQpAQCAtNjMxMywxMSArNjMxNCwxMyBAQCBzZXRsb29wdmFyKGNoYXIgKm5h bWUsIGNoYXIgKnZhbHVlKQogc3RhdGljIHZvaWQKIHNldHNjb3BlKFBhcmFtIHBtKQogewotICAg IGlmIChwbS0+bm9kZS5mbGFncyAmIFBNX05BTUVSRUYpIHsKKyAgICBxdWV1ZV9zaWduYWxzKCk7 CisgICAgaWYgKHBtLT5ub2RlLmZsYWdzICYgUE1fTkFNRVJFRikgZG8gewogCVBhcmFtIGJhc2Vw bTsKIAlzdHJ1Y3QgYXNnbWVudCBzdG9wOwogCWNoYXIgKnJlZm5hbWUgPSBHRVRSRUZOQU1FKHBt KTsKIAljaGFyICp0ID0gcmVmbmFtZSA/IGl0eXBlX2VuZChyZWZuYW1lLCBJTkFNRVNQQywgMCkg OiBOVUxMOworCWludCBxID0gcXVldWVfc2lnbmFsX2xldmVsKCk7CiAKIAkvKiBUZW1wb3Jhcmls eSBjaGFuZ2UgbmFtZXJlZiB0byBhcnJheSBwYXJhbWV0ZXIgaXRzZWxmICovCiAJaWYgKHQgJiYg KnQgPT0gJ1snKQpAQCAtNjMyNyw5ICs2MzMwLDExIEBAIHNldHNjb3BlKFBhcmFtIHBtKQogCXN0 b3AubmFtZSA9ICIiOwogCXN0b3AudmFsdWUuc2NhbGFyID0gTlVMTDsKIAlzdG9wLmZsYWdzID0g UE1fTkFNRVJFRjsKLQlpZiAobG9jYWxsZXZlbCkKKwlpZiAobG9jYWxsZXZlbCAmJiAhKHBtLT5u b2RlLmZsYWdzICYgUE1fVVBQRVIpKQogCSAgICBzdG9wLmZsYWdzIHw9IFBNX0xPQ0FMOworCWRv bnRfcXVldWVfc2lnbmFscygpOwkvKiBQcmV2ZW50IHVua2lsbGFibGUgbG9vcHMgKi8KIAliYXNl cG0gPSAoUGFyYW0pcmVzb2x2ZV9uYW1lcmVmKHBtLCAmc3RvcCk7CisJcmVzdG9yZV9xdWV1ZV9z aWduYWxzKHEpOwogCWlmICh0KSB7CiAJICAgIHBtLT53aWR0aCA9IHQgLSByZWZuYW1lOwogCSAg ICAqdCA9ICdbJzsKQEAgLTYzNDIsNyArNjM0Nyw3IEBAIHNldHNjb3BlKFBhcmFtIHBtKQogCQkJ aWYgKHVwc2NvcGUocG0sIHBtLT5iYXNlKSA9PSBwbSkgewogCQkJICAgIHplcnIoIiVzOiBpbnZh bGlkIHNlbGYgcmVmZXJlbmNlIiwgcmVmbmFtZSk7CiAJCQkgICAgdW5zZXRwYXJhbV9wbShwbSwg MCwgMSk7Ci0JCQkgICAgcmV0dXJuOworCQkJICAgIGJyZWFrOwogCQkJfQogCQkJcG0tPm5vZGUu ZmxhZ3MgJj0gflBNX1NFTEZSRUY7CiAJCSAgICB9IGVsc2UgaWYgKHBtLT5iYXNlID09IHBtLT5s ZXZlbCkgewpAQCAtNjM1MCw3ICs2MzU1LDcgQEAgc2V0c2NvcGUoUGFyYW0gcG0pCiAJCQkgICAg c3RyY21wKHBtLT5ub2RlLm5hbSwgcmVmbmFtZSkgPT0gMCkgewogCQkJICAgIHplcnIoIiVzOiBp bnZhbGlkIHNlbGYgcmVmZXJlbmNlIiwgcmVmbmFtZSk7CiAJCQkgICAgdW5zZXRwYXJhbV9wbShw bSwgMCwgMSk7Ci0JCQkgICAgcmV0dXJuOworCQkJICAgIGJyZWFrOwogCQkJfQogCQkgICAgfQog CQl9IGVsc2UgaWYgKCh0ID0gR0VUUkVGTkFNRShiYXNlcG0pKSkgewpAQCAtNjM1OCw3ICs2MzYz LDcgQEAgc2V0c2NvcGUoUGFyYW0gcG0pCiAJCQlzdHJjbXAocG0tPm5vZGUubmFtLCB0KSA9PSAw KSB7CiAJCQl6ZXJyKCIlczogaW52YWxpZCBzZWxmIHJlZmVyZW5jZSIsIHJlZm5hbWUpOwogCQkJ dW5zZXRwYXJhbV9wbShwbSwgMCwgMSk7Ci0JCQlyZXR1cm47CisJCQlicmVhazsKIAkJICAgIH0K IAkJfQogCSAgICB9IGVsc2UKQEAgLTYzNzgsNyArNjM4Myw4IEBAIHNldHNjb3BlKFBhcmFtIHBt KQogCSAgICB6ZXJyKCIlczogaW52YWxpZCBzZWxmIHJlZmVyZW5jZSIsIHJlZm5hbWUpOwogCSAg ICB1bnNldHBhcmFtX3BtKHBtLCAwLCAxKTsKIAl9Ci0gICAgfQorICAgIH0gd2hpbGUgKDApOwor ICAgIHVucXVldWVfc2lnbmFscygpOwogfQogCiAvKiovCkBAIC02MzkwLDYgKzYzOTYsOCBAQCB1 cHNjb3BlKFBhcmFtIHBtLCBpbnQgcmVmbGV2ZWwpCiAJcG0gPSB1cDsKIAl1cCA9IHVwLT5vbGQ7 CiAgICAgfQorICAgIGlmIChyZWZsZXZlbCA8IDAgJiYgbG9jYWxsZXZlbCA+IDApCisJcmV0dXJu IHBtLT5sZXZlbCA9PSBsb2NhbGxldmVsID8gdXAgOiBwbTsKICAgICByZXR1cm4gcG07CiB9CiAK ZGlmZiAtLWdpdCBhL1Rlc3QvSzAxbmFtZXJlZi56dHN0IGIvVGVzdC9LMDFuYW1lcmVmLnp0c3QK aW5kZXggZmY0OGUyMjg5Li42ZGI4MTkzODkgMTAwNjQ0Ci0tLSBhL1Rlc3QvSzAxbmFtZXJlZi56 dHN0CisrKyBiL1Rlc3QvSzAxbmFtZXJlZi56dHN0CkBAIC00OTIsNyArNDkyLDYgQEAgRjp1bmV4 cGVjdGVkIHNpZGUtZWZmZWN0cyBvZiBwcmV2aW91cyB0ZXN0cwogIH0KICB0eXBlc2V0IC1wIHB0 cjIKIDE6dXAtcmVmZXJlbmNlIHBhcnQgNSwgc3RhY2tlZCBuYW1lcmVmcywgZW5kIG5vdCBpbiBz Y29wZQotRjpXaGF0IGlzIHRoZSBjb3JyZWN0IGJlaGF2aW9yIGZvciB0aGUgc2NvcGUgb2YgcHRy MT8KID50eXBlc2V0IC1uIHB0cjE9cHRyMgogPnR5cGVzZXQgLW4gcHRyMgogPnB0cjE9cHRyMgpA QCAtNTI5LDYgKzUyOCw0OSBAQCBGOlNhbWUgdGVzdCwgc2hvdWxkIHBhcnQgNSBvdXRwdXQgbG9v ayBsaWtlIHRoaXM/CiA+dHlwZXNldCAtbiBwdHIyCiA+dHlwZXNldCBwdHIyPXZhbAogCisgKCkg eworICAgKCkgeworICAgICBsb2NhbCB2YXIKKyAgICAgdHlwZXNldCAtbnUgcHRyMT12YXIKKyAg ICAgcHRyMT1vdXRlciAmJiBwcmludCAtdTIgYXNzaWdubWVudCBleHBlY3RlZCB0byBmYWlsCisg ICAgIHR5cGVzZXQgLW4gcHRyMj12YXIKKyAgICAgcHRyMj1pbm5lcgorICAgICB0eXBlc2V0IC1u CisgICAgIHByaW50ZiAiJXM9JXNcbiIgcHRyMSAiJHB0cjEiIHB0cjIgIiRwdHIyIgorICAgfQor ICAgdHlwZXNldCAtcCB2YXIKKyB9CisgdHlwZXNldCAtcCB2YXIKKzE6dXAtcmVmZXJlbmNlIHBh cnQgNywgdXBzY29wZSBuYW1lcmVmcywgZW5kIG5vdCBpbiBzY29wZQorPnB0cjE9dmFyCis+cHRy Mj12YXIKKz5wdHIxPQorPnB0cjI9aW5uZXIKKyo/KnR5cGVzZXQqOiBubyBzdWNoIHZhcmlhYmxl OiB2YXIKKz8qdHlwZXNldCo6IG5vIHN1Y2ggdmFyaWFibGU6IHZhcgorCisgdHlwZXNldCB2YXIK KyAoKSB7CisgICAoKSB7CisgICAgIGxvY2FsIHZhcgorICAgICB0eXBlc2V0IC1udSBwdHIxPXZh cgorICAgICBwdHIxPW91dGVyIHx8IHByaW50IC11MiBhc3NpZ25tZW50IGV4cGVjdGVkIHRvIHN1 Y2NlZWQKKyAgICAgdHlwZXNldCAtbiBwdHIyPXZhcgorICAgICBwdHIyPWlubmVyCisgICAgIHR5 cGVzZXQgLW4KKyAgICAgcHJpbnRmICIlcz0lc1xuIiBwdHIxICIkcHRyMSIgcHRyMiAiJHB0cjIi CisgICB9CisgICB0eXBlc2V0IC1wIHZhcgorIH0KKyB0eXBlc2V0IC1wIHZhcgorMDp1cC1yZWZl cmVuY2UgcGFydCA4LCB1cHNjb3BlIG5hbWVyZWZzLCBlbmQgaW4gc2NvcGUKKz5wdHIxPXZhcgor PnB0cjI9dmFyCis+cHRyMT1vdXRlcgorPnB0cjI9aW5uZXIKKz50eXBlc2V0IC1nIHZhcj1vdXRl cgorPnR5cGVzZXQgdmFyPW91dGVyCisKICBpZiB6bW9kbG9hZCB6c2gvcGFyYW1ldGVyOyB0aGVu CiAgKCkgewogICAgem1vZGxvYWQgLXUgenNoL3BhcmFtZXRlcgpAQCAtNTM5LDcgKzU4MSw3IEBA IEY6U2FtZSB0ZXN0LCBzaG91bGQgcGFydCA1IG91dHB1dCBsb29rIGxpa2UgdGhpcz8KICB9CiAg ZWxzZSBaVFNUX3NraXA9J0Nhbm5vdCB6bW9kbG9hZCB6c2gvcGFyYW1ldGVyLCBza2lwcGluZyBh dXRvbG9hZCB0ZXN0JwogIGZpCi0wOnVwLXJlZmVyZW5jZSBwYXJ0IDMsIGF1dG9sb2FkaW5nIHdp dGggaGlkZGVuIHNwZWNpYWwKKzA6dXAtcmVmZXJlbmNlIHBhcnQgOSwgYXV0b2xvYWRpbmcgd2l0 aCBoaWRkZW4gc3BlY2lhbAogPm5hbWVyZWYtbG9jYWwtbmFtZXJlZi1sb2NhbAogPnR5cGVzZXQg LWggcGFyYW1ldGVycwogCkBAIC03NjIsMTIgKzgwNCwxNyBAQCBGOnJlbGllcyBvbiBnbG9iYWwg VFlQRVNFVF9UT19VTlNFVCBpbiAlcHJlcAogCiAgYmFyPXh4CiAgdHlwZXNldCAtbiBmb289YmFy Ci0gKCkgeyB0eXBlc2V0IC1uIGZvbzsgZm9vPXp6OyBmb289eno7IHByaW50ICRiYXIgJHp6IH0K KyAoKSB7CisgICB0eXBlc2V0IC1uIGZvbzsgZm9vPXp6CisgICBmb289enogfHwgcHJpbnQgLXUy IGZvbzogYXNzaWdubWVudCBmYWlsZWQKKyAgIHByaW50ICRiYXIgJHp6CisgfQogICgpIHsgdHlw ZXNldCAtbiBmb287IGZvbz16ejsgbG9jYWwgeno7IGZvbz16ejsgcHJpbnQgJGJhciAkenogfQog MDpyZWdyZXNzaW9uOiBsb2NhbCBuYW1lcmVmIG1heSBub3QgaW4tc2NvcGUgYSBnbG9iYWwgcGFy YW1ldGVyCiBGOnByZXZpb3VzbHkgdGhpcyBjb3VsZCBjcmVhdGUgYW4gaW5maW5pdGUgcmVjdXJz aW9uIGFuZCBjcmFzaAogPnh4CiA+eHggenoKKyo/KmZvbzogYXNzaWdubWVudCBmYWlsZWQKIAog IHR5cGVzZXQgLW5tIGZvbz1iYXIKIDE6Y3JlYXRlIG5hbWVyZWYgYnkgcGF0dGVybiBtYXRjaCBu b3QgYWxsb3dlZApkaWZmIC0tZ2l0IGEvVGVzdC9WMTBwcml2YXRlLnp0c3QgYi9UZXN0L1YxMHBy aXZhdGUuenRzdAppbmRleCBlZmEzNDYwMDIuLmVkNTEzMTZmMyAxMDA2NDQKLS0tIGEvVGVzdC9W MTBwcml2YXRlLnp0c3QKKysrIGIvVGVzdC9WMTBwcml2YXRlLnp0c3QKQEAgLTM3OCw3ICszNzgs NyBAQCBGOkhlcmUgcHRyMSBmaW5kcyBwcml2YXRlIHB0cjIgYnkgc2NvcGUgbWlzbWF0Y2gKICAg IHR5cGVzZXQgLXAgcHRyMSBwdHIyCiAgICB0eXBlc2V0IHZhbD1MT0NBTAogICAgKCkgewotICAg ICBwdHIxPXZhbAkJIyBUaGlzIGlzIGEgc2lsZW50IG5vLW9wLCB3aHk/CisgICAgIHB0cjE9dmFs IHx8IHByaW50IC11MiBwdHIxOiBhc3NpZ25tZW50IGZhaWxlZAogICAgICB0eXBlc2V0IC1uCiAg ICAgIHByaW50ZiAiJXM9JXNcbiIgcHRyMSAiJHB0cjEiIHB0cjIgIiRwdHIyIgogICAgfQpAQCAt Mzg4LDcgKzM4OCw2IEBAIEY6SGVyZSBwdHIxIGZpbmRzIHByaXZhdGUgcHRyMiBieSBzY29wZSBt aXNtYXRjaAogMTp1cC1yZWZlcmVuY2UgZm9yIHByaXZhdGUgbmFtZXJlZnMsIGVuZCBub3QgaW4g c2NvcGUKIEY6U2VlIEswMW5hbWVyZWYuenRzdCB1cC1yZWZlcmVuY2UgcGFydCA1CiBGOkhlcmUg cHRyMSBmaW5kcyBwcml2YXRlIHB0cjIgYnkgc2NvcGUgbWlzbWF0Y2gKLUY6QXNzaWdubWVudCBz aWxlbnRseSBmYWlscywgaXMgdGhhdCBjb3JyZWN0PwogPnR5cGVzZXQgLW4gcHRyMT1wdHIyCiA+ dHlwZXNldCAtaG4gcHRyMj0nJwogPnB0cjE9cHRyMgpAQCAtMzk2LDYgKzM5NSw3IEBAIEY6QXNz aWdubWVudCBzaWxlbnRseSBmYWlscywgaXMgdGhhdCBjb3JyZWN0PwogPnB0cjI9CiA+dHlwZXNl dCAtbiBwdHIxPXB0cjIKID50eXBlc2V0IC1obiBwdHIyPScnCisqPypwdHIxOiBhc3NpZ25tZW50 IGZhaWxlZAogKj8qbm8gc3VjaCB2YXJpYWJsZTogcHRyMgogCiAgdHlwZXNldCBwdHIyCg== --000000000000789ebc0612b63acd--