From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Robert Weiner Newsgroups: gmane.emacs.devel Subject: Re: display-until.el - Display a window or frame topmost in the frame stack until a condition or timeout occurs Date: Sun, 17 Dec 2017 13:46:07 -0500 Message-ID: References: <5A36B3B3.9040607@gmx.at> Reply-To: rswgnu@gmail.com NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="089e0828a8fc57560b05608da7b9" X-Trace: blaine.gmane.org 1513536295 12174 195.159.176.226 (17 Dec 2017 18:44:55 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 17 Dec 2017 18:44:55 +0000 (UTC) Cc: emacs-devel To: martin rudalics Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Dec 17 19:44:51 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQdvc-0002id-La for ged-emacs-devel@m.gmane.org; Sun, 17 Dec 2017 19:44:48 +0100 Original-Received: from localhost ([::1]:55160 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQdxb-000539-0Z for ged-emacs-devel@m.gmane.org; Sun, 17 Dec 2017 13:46:51 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39219) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQdxR-00052y-Ng for emacs-devel@gnu.org; Sun, 17 Dec 2017 13:46:42 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQdxO-0002u5-Mj for emacs-devel@gnu.org; Sun, 17 Dec 2017 13:46:41 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:51569) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQdxO-0002tk-HD for emacs-devel@gnu.org; Sun, 17 Dec 2017 13:46:38 -0500 Original-Received: from mail-qt0-f176.google.com ([209.85.216.176]:36957) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1eQdxO-0007Om-6I for emacs-devel@gnu.org; Sun, 17 Dec 2017 13:46:38 -0500 Original-Received: by mail-qt0-f176.google.com with SMTP id f2so17679966qtj.4 for ; Sun, 17 Dec 2017 10:46:38 -0800 (PST) X-Gm-Message-State: AKGB3mJ1bc3bGL13RLO1LU6akQDLFKQqar64VQ+uwj0XgT/7kV+ACuxO zZvr8No5aQnT2l08coSCVZSzv5O+lb3rgS16MV0= X-Google-Smtp-Source: ACJfBotmEuRJRaXlz1j99hlzjQRwMicyyQfNDdyJBGm/OyJGEWZmeLuGmiDWM8tILEHx7tN7T+CrwnrdkCrsnlQCeOE= X-Received: by 10.200.19.11 with SMTP id e11mr26365328qtj.62.1513536397702; Sun, 17 Dec 2017 10:46:37 -0800 (PST) Original-Received: by 10.200.55.124 with HTTP; Sun, 17 Dec 2017 10:46:07 -0800 (PST) In-Reply-To: <5A36B3B3.9040607@gmx.at> X-Gmail-Original-Message-ID: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:221182 Archived-At: --089e0828a8fc57560b05608da7b9 Content-Type: multipart/alternative; boundary="089e0828a8fc57560805608da7b7" --089e0828a8fc57560805608da7b7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Dec 17, 2017 at 1:13 PM, martin rudalics wrote: > > and started the test but it got me some chaotically appearing frames. =E2=80=8BPlease describe in detail what you see and what you think is wrong but update to 1.1 attached first.=E2=80=8B =E2=80=8B=E2=80=8B > > =E2=80=8B=E2=80=8B > We could add it to ELPA but it would have to compile cleanly first. > =E2=80=8BI think after these are vetted sufficiently and proven to work well enought that they should ship with Emacs so that any Elisp programmer can rely on them. > =E2=80=8B=E2=80=8B > > display-until.el:140:62:Warning: assignment to free variable =E2=80=98tim= eout=E2=80=99 > display-until.el:140:52:Warning: reference to free variable =E2=80=98time= out=E2=80=99 > =E2=80=8B=E2=80=8B =E2=80=8BThanks for the pointers; I have fixed these issues with V1.1. Give it a try.=E2=80=8B Bob --089e0828a8fc57560805608da7b7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Sun, Dec 17, 2= 017 at 1:13 PM, martin rudalics <rudalics@gmx.at> wrote:

and started the test but it got me some chaotically appearing frames.

=E2=80=8BPlease describe in detail what you see and what = you think
is wrong but update to 1.1 attached first.=E2=80=8B

<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">
=E2=80=8B=E2=80=8B

=E2=80=8B=E2=80=8B
We could add it to ELPA but it would hav= e to compile cleanly first.

=E2=80=8BI think aft= er these are vetted sufficiently and proven to
work well enought that they= should ship with Emacs so
that any Elisp programmer can rely on them.
=C2=A0
=E2=80=8B=E2=80=8B

display-until.el:140:62:Warning: assignment to free variable =E2=80=98= timeout=E2=80=99
display-until.el:140:52:Warning: reference to free variable =E2=80=98t= imeout=E2=80=99
=E2=80=8B=E2=80=8B
=C2= =A0
=E2=80=8BThanks for the pointer= s; I have fixed these issues with V1.1.
Give it a try.=E2=80=8B

Bob=


--089e0828a8fc57560805608da7b7-- --089e0828a8fc57560b05608da7b9 Content-Type: application/octet-stream; name="display-until.el" Content-Disposition: attachment; filename="display-until.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jbb4eavu0 Ozs7IGRpc3BsYXktdW50aWwuZWwgLS0tIHRlbXBvcmFyaWx5IGRpc3BsYXkgd2luZG93cyBhbmQg ZnJhbWVzICAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0IC0qLQoKOzsgQ29weXJpZ2h0IChDKSAyMDE3 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgoKOzsgQXV0aG9yOiBSb2JlcnQgV2VpbmVy Cjs7IE1haW50YWluZXI6IGVtYWNzLWRldmVsQGdudS5vcmcKOzsgS2V5d29yZHM6IGludGVybmFs Cjs7IFBhY2thZ2U6IGVtYWNzCjs7IFZlcnNpb246IDEuMQo7OyBPcmlnLURhdGU6IDE2LURlYy0x Nwo7OyBMYXN0LU1vZDogIDE3LURlYy0xNwoKOzsgVGhpcyBmaWxlIGNvdWxkIGJlY29tZSBwYXJ0 IG9mIEdOVSBFbWFjcy4KCjs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cjs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cjs7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCjs7 IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgo7OyBHTlUgRW1hY3MgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKOzsgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKOzsg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQo7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKOzsg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKOzs7IENvbW1lbnRhcnk6Cgo7OyAoUlNXIHdvdWxkIGxp a2UgdGhpcyBjb2RlIHRvIGJlIGFkZGVkIHRvIGNvcmUgRW1hY3MgaWYgaXQgaXMKOzsgIGFjY2Vw dGFibGUuICBTb21lb25lIGVsc2Ugd2hvIGFkZHMgdG8gRW1hY3MgcmVndWxhcmx5IHdvdWxkIGhh dmUKOzsgIHRvIGFkZCB0aGUgTkVXUyBlbnRyeSwgRWxpc3AgTWFudWFsIGVudHJ5IGFuZCBjb21t aXQgdGhlIGNvZGUuCjs7ICBJbiB0aGF0IGNhc2UsIHRoZSB1dGlsdHkgbWFjcm9zIGFuZCBmdW5j dGlvbiBuYW1lcyBjb3VsZCBiZSBnZW5lcmFsaXplZCkuCgo7OyBUaGlzIGxpYnJhcnkgdGVtcG9y YXJpbHkgZGlzcGxheXMgYW4gZXhpc3Rpbmcgb3IgbmV3IGZyYW1lIHRvcG1vc3QgaW4KOzsgdGhl IGZyYW1lIHN0YWNrLiAgVGhlbiBpdCByZXN0b3JlcyB0aGUgcHJpb3IgdG9wbW9zdCBmcmFtZSBh cyB3ZWxsCjs7IGFzIGFueSBwcmlvciB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUgdGVtcG9yYXJp bHkgZGlzcGxheWVkIGZyYW1lLAo7OyBlLmcuIGlmIGl0IHdhcyBoaWRkZW4gb3IgaWNvbmlmaWVk LiAgU2VlIHRoZSBlbmQgb2YgdGhlIGZpbGUgZm9yCjs7IHNhbXBsZSB1c2FnZSBleHByZXNzaW9u cy4KCjs7IFRoaXMgbGlicmFyeSBpbmNsdWRlcyB0aGUgZm9sbG93aW5nOgo7OyAgIFZhcmlhYmxl czoKOzsgICAgIGRpc3BsYXktdW50aWwtZGVsYXkgLSB0aW1lIGluIHNlY29uZHMgdG8gZGlzcGxh eSBhIHRlbXBvcmFyeSBmcmFtZSBvcgo7OyAgICAgICB3aW5kb3cKOzsgICAgIGRpc3BsYXktdW50 aWwtZnJhbWUtcGFyYW1ldGVycyAtIGFsaXN0IG9mIGZyYW1lIHBhcmFtZXRlcnMgdG8gYXBwbHkg dG8KOzsgICAgICAgYW55IG5ld2x5IGNyZWF0ZWQgdGVtcG9yYXJpbHkgZGlzcGxheWVkIGZyYW1l Cjs7Cjs7ICAgRGlzcGxheSBGdW5jdGlvbnM6Cjs7ICAgICBkaXNwbGF5LXdpbmRvdy11bnRpbCAt IGdpdmVuIGEgd2luZG93IGFuZCBvcHRpb25hbCBidWZmZXIsIGRpc3BsYXkgdGhlCjs7ICAgICAg IGJ1ZmZlciBpbiB0aGUgd2luZG93LCBtYWtlIHRoZSB3aW5kb3cncyBmcmFtZSB0b3Btb3N0IGZv cgo7OyAgICAgICBgZGlzcGxheS11bnRpbC1kZWxheScgc2Vjb25kcywgdGhlbiByZXR1cm4gdGhl IHdpbmRvdydzIGZyYW1lCjs7ICAgICAgIHRvIGl0cyBwcmlvciB2aXNpYmlsaXR5Cjs7Cjs7ICAg ICBkaXNwbGF5LWZyYW1lLXVudGlsIC0gZ2l2ZW4gYSBmcmFtZSBhbmQgb3B0aW9uYWwgYnVmZmVy LCBkaXNwbGF5IHRoZQo7OyAgICAgICBidWZmZXIgaW4gdGhlIGZyYW1lJ3Mgc2VsZWN0ZWQgd2lu ZG93LCBtYWtlIHRoZSBmcmFtZSB0b3Btb3N0IGZvcgo7OyAgICAgICBgZGlzcGxheS11bnRpbC1k ZWxheScgc2Vjb25kcywgdGhlbiByZXR1cm4gdGhlIGZyYW1lIHRvIGl0cyBwcmlvcgo7OyAgICAg ICB2aXNpYmlsaXR5Cjs7Cjs7ICAgVXRpbGl0eSBGdW5jdGlvbnM6Cjs7ICAgICBkaXNwbGF5LXVu dGlsLWdldC1mcmFtZS1ieS1uYW1lIC0gZ2l2ZW4gYSBuYW1lIHN0cmluZywgcmV0dXJuIHRoZQo7 OyAgICAgICBtYXRjaGluZyBmcmFtZSBvciBuaWwKOzsKOzsgICBVdGlsaXR5IE1hY3JvczoKOzsg ICAgIGRpc3BsYXktdW50aWwtY29uZGl0aW9uLW9yLXRpbWVvdXQgLSB3YWl0IGZvciBhIGJvb2xl YW4gY29uZGl0aW9uCjs7ICAgICAgIG9yIHRpbWVvdXQgc2Vjb25kcwo7OyAgICAgZGlzcGxheS11 bnRpbC10aHJlYWQtY29uZGl0aW9uLW9yLXRpbWVvdXQgLSBydW4gYSB0aHJlYWQgdW50aWwgYSBi b29sZWFuCjs7OyAgICAgIGNvbmRpdGlvbiBvciB0aW1lb3V0IHNlY29uZHMKCjs7OyBDb2RlOgoK KGRlZnZhciBkaXNwbGF5LXVudGlsLWRlbGF5IDAuNQogICJEZWxheSB0aW1lIGluIHNlY29uZHMg dG8gZGlzcGxheSBhIHRlbXBvcmFyeSBmcmFtZSBvciB3aW5kb3cuIikKCihkZWZ2YXIgZGlzcGxh eS11bnRpbC1mcmFtZS1wYXJhbWV0ZXJzIG5pbAogICJBbGlzdCBvZiBmcmFtZSBwYXJhbWV0ZXJz IHRvIGFwcGx5IHRvIGFueSBuZXdseSBjcmVhdGVkIHRlbXBvcmFyaWx5IGRpc3BsYXllZCBmcmFt ZS4iKQoKKGRlZnVuIGRpc3BsYXktdW50aWwtZ2V0LWZyYW1lLWJ5LW5hbWUgKG5hbWUpCiAgIlJl dHVybiBhbnkgZnJhbWUgbmFtZWQgTkFNRSwgYSBzdHJpbmcsIGVsc2UgbmlsLiIKICAoaWYgKHN0 cmluZ3AgbmFtZSkKICAgICAgKGNhdGNoICdkb25lCgkobWFwYyAobGFtYmRhIChmcmFtZSkKCQko d2hlbiAoZXF1YWwgbmFtZSAoZnJhbWUtcGFyYW1ldGVyIGZyYW1lICduYW1lKSkKCQkgICh0aHJv dyAnZG9uZSBmcmFtZSkpKQoJICAgICAgKGZyYW1lLWxpc3QpKQoJbmlsKQogICAgKGVycm9yICIo ZGlzcGxheS11bnRpbC1nZXQtZnJhbWUtYnktbmFtZSk6IEFyZ3VtZW50IG11c3QgYmUgYSBuYW1l IHN0cmluZywgbm90IGAlcyciIG5hbWUpKSkKCihkZWZtYWNybyBkaXNwbGF5LXVudGlsLWNvbmRp dGlvbi1vci10aW1lb3V0IChjb25kaXRpb24gdGltZW91dCkKICAiV2FpdCBmb3IgdGhlIGVpdGhl ciBDT05ESVRJT04gdG8gYmVjb21lIG5vbi1uaWwgb3IgZm9yIFRJTUVPVVQgc2Vjb25kcyB0byBl eHBpcmUuCkNPTkRJVElPTiBtdXN0IGJlIGEgYm9vbGVhbiBwcmVkaWNhdGUgZm9ybS4gIFRJTUVP VVQgbXVzdCBiZSA+IHplcm8uIgogIGAobGV0ICgoZGVjcmVtZW50IDAuMDUpCgkgKHRpbWVvdXQg LHRpbWVvdXQpKQogICAgICh3aGlsZSAobm90IChvciAsY29uZGl0aW9uICg8PSB0aW1lb3V0IDAp KSkKICAgICAgIChzbGVlcC1mb3IgZGVjcmVtZW50KQogICAgICAgKHNldHEgdGltZW91dCAoLSB0 aW1lb3V0IGRlY3JlbWVudCkpKSkpCgooZGVmbWFjcm8gZGlzcGxheS11bnRpbC10aHJlYWQtY29u ZGl0aW9uLW9yLXRpbWVvdXQgKGNvbmRpdGlvbiB0aW1lb3V0KQogICJXYWl0IGluIGEgc2VwYXJh dGUgdGhyZWFkIGZvciBlaXRoZXIgQ09ORElUSU9OIHRvIGJlY29tZSBub24tbmlsIG9yIGZvciBU SU1FT1VUIHNlY29uZHMgdG8gZXhwaXJlLgpDT05ESVRJT04gbXVzdCBiZSBhIGJvb2xlYW4gcHJl ZGljYXRlIGZvcm0uICBUSU1FT1VUIG11c3QgYmUgPiB6ZXJvLiIKICBgKG1ha2UtdGhyZWFkIChs YW1iZGEgKCkKCQkgIChkaXNwbGF5LXVudGlsLWNvbmRpdGlvbi1vci10aW1lb3V0ICxjb25kaXRp b24gLHRpbWVvdXQpKSkpCgooZGVmdW4gZGlzcGxheS1mcmFtZS11bnRpbC1jb25kaXRpb24gKGZy YW1lICZvcHRpb25hbCBidWZmZXIgY29uZGl0aW9uKQogICJEaXNwbGF5IEZSQU1FIHRvcG1vc3Qg d2l0aCBvcHRpb25hbCBCVUZGRVIgaW4gaXRzIHNlbGVjdGVkIHdpbmRvdyB1bnRpbCBDT05ESVRJ T04gb3IgYGRpc3BsYXktdW50aWwtZGVsYXknIHNlY29uZHMuCgpGUkFNRSBtYXkgYmUgYW4gZXhp c3RpbmcsIGV2ZW4gaW52aXNpYmxlIGZyYW1lLCBmcmFtZSBuYW1lIG9yCm5pbC4gIElmIG5pbCwg dGhlIHNlbGVjdGVkIGZyYW1lIGlzIHVzZWQuICBJZiBGUkFNRSBpcyBhIHN0cmluZwphbmQgbm8g bGl2ZSBmcmFtZSB3aXRoIHRoYXQgbmFtZSBpcyBmb3VuZCwgYSBuZXcgb25lIHdpdGggdGhlCm5h bWUgYW5kIGFueSBgZGlzcGxheS11bnRpbC1mcmFtZS1wYXJhbWV0ZXJzJyBpcyBjcmVhdGVkLgoK QlVGRkVSIG1heSBiZSBhbiBleGlzdGluZyBidWZmZXIgb3IgYnVmZmVyIG5hbWUuCgpBZnRlciBk aXNwbGF5LCBGUkFNRSdzIHByaW9yIHZpc2liaWxpdHkgc3RhdHVzIGlzIHJlc3RvcmVkLgpGUkFN RSdzIGRlcHRoIGluIHRoZSBmcmFtZSBzdGFja2luZyBvcmRlciBpcyBub3QgcmVzdG9yZWQuIgog ICh1bmxlc3MgZnJhbWUKICAgIChzZXRxIGZyYW1lIChzZWxlY3RlZC1mcmFtZSkpKQogICh3aGVu IChzdHJpbmdwIGZyYW1lKQogICAgKHNldHEgZnJhbWUgKG9yIChkaXNwbGF5LXVudGlsLWdldC1m cmFtZS1ieS1uYW1lIGZyYW1lKQoJCSAgICAobWFrZS1mcmFtZSAoY29ucyBgKG5hbWUgLiAsZnJh bWUpCgkJCQkgICAgICBkaXNwbGF5LXVudGlsLWZyYW1lLXBhcmFtZXRlcnMpKSkpKQogIChjb25k ICgobm90IChmcmFtZXAgZnJhbWUpKQoJIChlcnJvciAiKGRpc3BsYXktZnJhbWUtdW50aWwpOiBG aXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgZnJhbWUsIG5vdCBgJXMnIgoJCWZyYW1lKSkKCSgobm90 IChmcmFtZS1saXZlLXAgZnJhbWUpKQoJIChlcnJvciAiKGRpc3BsYXktZnJhbWUtdW50aWwpOiBG aXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgbGl2ZSBmcmFtZSwgbm90IGAlcyciCgkJZnJhbWUpKQoJ KChhbmQgYnVmZmVyIChub3QgKG9yIChidWZmZXJwIGJ1ZmZlcikgKGFuZCAoc3RyaW5ncCBidWZm ZXIpCgkJCQkJCSAgICAoZ2V0LWJ1ZmZlciBidWZmZXIpKSkpKQoJIChyZWRpc3BsYXkgdCkKCSAo ZXJyb3IgIihkaXNwbGF5LWZyYW1lLXVudGlsKTogU2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgYW4g ZXhpc3RpbmcgYnVmZmVyIG9yIGJ1ZmZlciBuYW1lLCBub3QgYCVzJyIKCQlidWZmZXIpKQoJKHQK CSAobGV0ICgoZnJhbWUtdmlzaWJsZS1mbGFnIChmcmFtZS12aXNpYmxlLXAgZnJhbWUpKSkKCSAg IChzZWxlY3QtZnJhbWUgZnJhbWUpCgkgICAocmFpc2UtZnJhbWUgZnJhbWUpCgkgICAoZGlzcGxh eS1idWZmZXIgKG9yIGJ1ZmZlciAod2luZG93LWJ1ZmZlcikpCgkJCSAgIChjb25zICdkaXNwbGF5 LWJ1ZmZlci1zYW1lLXdpbmRvdwoJCQkJIGRpc3BsYXktdW50aWwtZnJhbWUtcGFyYW1ldGVycykg ZnJhbWUpCgkgICA7OyBGb3JjZSByZWRpc3BsYXkgb3IgYW55IGNoYW5nZXMgdG8gZnJhbWUgd29u J3QgYmUgZGlzcGxheWVkIGhlcmUuCgkgICAocmVkaXNwbGF5IHQpCgkgICAoaWYgY29uZGl0aW9u CgkgICAgICAgKGRpc3BsYXktdW50aWwtY29uZGl0aW9uLW9yLXRpbWVvdXQgY29uZGl0aW9uIGRp c3BsYXktdW50aWwtZGVsYXkpCgkgICAgIDs7IERvbid0IHVzZSBzaXQtZm9yIGhlcmUgYmVjYXVz ZSBpdCBjYW4gYmUgaW50ZXJydXB0ZWQgZWFybHkuCgkgICAgIChzbGVlcC1mb3IgZGlzcGxheS11 bnRpbC1kZWxheSkpCgkgICAocGNhc2UgZnJhbWUtdmlzaWJsZS1mbGFnCgkgICAgICgnaWNvbiAo aWNvbmlmeS1mcmFtZSBmcmFtZSkpCgkgICAgICgnbmlsICAobWFrZS1mcmFtZS1pbnZpc2libGUg ZnJhbWUpKSkpKSkpCgooZGVmdW4gZGlzcGxheS1mcmFtZS11bnRpbCAoZnJhbWUgJm9wdGlvbmFs IGJ1ZmZlciBjb25kaXRpb24pCiAgIkRpc3BsYXkgRlJBTUUgdG9wbW9zdCB3aXRoIG9wdGlvbmFs IEJVRkZFUiBpbiBpdHMgc2VsZWN0ZWQgd2luZG93IHVudGlsIENPTkRJVElPTiBvciBgZGlzcGxh eS11bnRpbC1kZWxheScgc2Vjb25kcy4KCkZSQU1FIG1heSBiZSBhbiBleGlzdGluZywgZXZlbiBp bnZpc2libGUgZnJhbWUsIGZyYW1lIG5hbWUgb3IKbmlsLiAgSWYgbmlsLCB0aGUgc2VsZWN0ZWQg ZnJhbWUgaXMgdXNlZC4gIElmIEZSQU1FIGlzIGEgc3RyaW5nCmFuZCBubyBsaXZlIGZyYW1lIHdp dGggdGhhdCBuYW1lIGlzIGZvdW5kLCBhIG5ldyBvbmUgd2l0aCB0aGUKbmFtZSBhbmQgYW55IGBk aXNwbGF5LXVudGlsLWZyYW1lLXBhcmFtZXRlcnMnIGlzIGNyZWF0ZWQuCgpCVUZGRVIgbWF5IGJl IGFuIGV4aXN0aW5nIGJ1ZmZlciBvciBidWZmZXIgbmFtZS4KCkNPTkRJVElPTiBtdXN0IGJlIGFu IHVucXVvdGVkIGJvb2xlYW4gcHJlZGljYXRlIGZvcm0uCgpBZnRlciBkaXNwbGF5LCBGUkFNRSdz IHByaW9yIHZpc2liaWxpdHkgc3RhdHVzIGlzIHJlc3RvcmVkLCBhcyBpcwp0aGUgcHJpb3IgZnJh bWUgdGhhdCBoYWQgaW5wdXQgZm9jdXMuICBGUkFNRSdzIGRlcHRoIGluIHRoZSBmcmFtZQpzdGFj a2luZyBvcmRlciBpcyBub3QgcmVzdG9yZWQuIgogIChsZXQgKChwcmlvci1mcmFtZSAob3IgKGZy YW1lLWZvY3VzKSAoc2VsZWN0ZWQtZnJhbWUpKSkpCiAgICAoZGlzcGxheS1mcmFtZS11bnRpbC1j b25kaXRpb24gZnJhbWUgYnVmZmVyIGNvbmRpdGlvbikKICAgIChzZWxlY3QtZnJhbWUtc2V0LWlu cHV0LWZvY3VzIHByaW9yLWZyYW1lKSkpCgooZGVmdW4gZGlzcGxheS13aW5kb3ctdW50aWwgKHdp bi1vci1idWYgJm9wdGlvbmFsIGJ1ZmZlciBjb25kaXRpb24pCiAgIkRpc3BsYXkgV0lOLU9SLUJV RidzIGZyYW1lIHRvcG1vc3Qgd2l0aCBvcHRpb25hbCBCVUZGRVIgaW4gaXRzIHNlbGVjdGVkIHdp bmRvdyB1bnRpbCBDT05ESVRJT04gb3IgYGRpc3BsYXktdW50aWwtZGVsYXknIHNlY29uZHMuCgpX SU4tT1ItQlVGIG1heSBiZSBhIHdpbmRvdywgZXhpc3RpbmcgYnVmZmVyIG9yIGJ1ZmZlciBuYW1l LCBvciBuaWwuCklmIGEgYnVmZmVyIG9yIGJ1ZmZlciBuYW1lLCBhbnkgd2luZG93IHByZXNlbnRs eSB3aXRoIHRoYXQgYnVmZmVyCmlzIHVzZWQuICBJZiBuaWwgb3IgaWYgbm8gd2luZG93IGlzIGFz c29jaWF0ZWQgd2l0aCB0aGUgYnVmZmVyLCB0aGUKc2VsZWN0ZWQgd2luZG93IGlzIHVzZWQuCgpU aGUgZmlyc3QgbWF0Y2hpbmcgaXRlbSBmcm9tIHRoaXMgbGlzdCBpcyBkaXNwbGF5ZWQgaW4gdGhl IGNob3NlbiB3aW5kb3c6CkJVRkZFUiBpZiBpdCBpcyBub24tbmlsOyBXSU4tT1ItQlVGIGlmIGl0 IGlzIGEgYnVmZmVyIG9yIGJ1ZmZlciBuYW1lOwp0aGUgd2luZG93J3MgY3VycmVudCBidWZmZXIu CgpDT05ESVRJT04gbXVzdCBiZSBhbiB1bnF1b3RlZCBib29sZWFuIHByZWRpY2F0ZSBmb3JtLgoK QWZ0ZXIgZGlzcGxheSwgV0lOLU9SLUJVRiBmcmFtZSdzIHByaW9yIHZpc2liaWxpdHkgc3RhdHVz IGlzCnJlc3RvcmVkLCBhcyBpcyB0aGUgcHJpb3IgZnJhbWUgdGhhdCBoYWQgaW5wdXQgZm9jdXMu ICBXSU4tT1ItQlVGCmZyYW1lJ3MgZGVwdGggaW4gdGhlIGZyYW1lIHN0YWNraW5nIG9yZGVyIGlz IG5vdCByZXN0b3JlZC4iCiAgKHVubGVzcyB3aW4tb3ItYnVmCiAgICAoc2V0cSB3aW4tb3ItYnVm IChzZWxlY3RlZC13aW5kb3cpKSkKICAod2hlbiAob3IgKHN0cmluZ3Agd2luLW9yLWJ1ZikgKGJ1 ZmZlcnAgd2luLW9yLWJ1ZikpCiAgICAoc2V0cSB3aW4tb3ItYnVmIChvciAoZ2V0LWJ1ZmZlci13 aW5kb3cgd2luLW9yLWJ1ZiB0KSB3aW4tb3ItYnVmKSkKICAgICh3aGVuIChhbmQgKHN0cmluZ3Ag d2luLW9yLWJ1ZikgKGdldC1idWZmZXIgd2luLW9yLWJ1ZikpCiAgICAgIDs7IFNldCB0byBkaXNw bGF5IHRoZSBidWZmZXIgZ2l2ZW4gYnkgd2luLW9yLWJ1Zi4KICAgICAgKHVubGVzcyBidWZmZXIg KHNldHEgYnVmZmVyIHdpbi1vci1idWYpKQogICAgICA7OyBVc2Ugc2VsZWN0ZWQgd2luZG93IHNp bmNlIG5vIG90aGVyIHdpbmRvdyB0byB1c2Ugd2FzIGZvdW5kLgogICAgICAoc2V0cSB3aW4tb3It YnVmIChzZWxlY3RlZC13aW5kb3cpKSkpCiAgKHVubGVzcyAod2luZG93LWxpdmUtcCB3aW4tb3It YnVmKQogICAgKGVycm9yICIoZGlzcGxheS13aW5kb3ctdW50aWwpOiBGaXJzdCBhcmd1bWVudCBt dXN0IHJlZmVyZW5jZSBhIGxpdmUgd2luZG93LCBub3QgYCVzJyIKCSAgIHdpbi1vci1idWYpKQog IDs7IERvbid0IHVzZSB3aXRoLXNlbGVjdGVkLXdpbmRvdyBoZXJlIHNpbmNlIGl0IGFmZmVjdHMg ZnJhbWUgdmlzaWJpbGl0eS4KICAobGV0ICgoc2VsLXdpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkp CiAgICAoc2VsZWN0LXdpbmRvdyB3aW4tb3ItYnVmKQogICAgKGRpc3BsYXktZnJhbWUtdW50aWwt Y29uZGl0aW9uICh3aW5kb3ctZnJhbWUgd2luLW9yLWJ1ZikgYnVmZmVyIGNvbmRpdGlvbikKICAg IChzZWxlY3Qtd2luZG93IHNlbC13aW5kb3cpCiAgICAoc2VsZWN0LWZyYW1lLXNldC1pbnB1dC1m b2N1cyAod2luZG93LWZyYW1lIHNlbC13aW5kb3cpKSkpCgo7OzsgU2FtcGxlIFVzYWdlIGFuZCBU ZXN0cyAtIEludGVyYWN0aXZlbHkgZXZhbHVhdGUgdGhlc2UgTGlzcCBmb3JtcwoKOzsgVGhlIExp c3AgcmVhZGVyIHdpbGwgaWdub3JlIHRoZXNlIHNhbXBsZXMgd2hlbiBsb2FkaW5nIHRoZSBsaWJy YXJ5Cih3aGVuIG5pbAoKICA7OyBEaXNwbGF5IGZyYW1lcyBhdG9wIHRoZSB3aW5kb3cgc3RhY2sg Zm9yIDIgc2Vjb25kcwogIChzZXRxIGRpc3BsYXktdW50aWwtZGVsYXkgMikKCiAgOzsgQ3JlYXRl IGEgbmV3IGZyYW1lIG5hbWVkICdNeS1GcmFtZScsIG1ha2UgaXQgZGlzcGxheSB0aGUgKk1lc3Nh Z2VzKgogIDs7IGJ1ZmZlciwgdGVtcG9yYXJpbHkgZGlzcGxheSBpdCwgdGhlbiBoaWRlIGl0Lgog IChwcm9nbiAod2hlbiAoZGlzcGxheS11bnRpbC1nZXQtZnJhbWUtYnktbmFtZSAiTXktRnJhbWUi KQoJICAgKGRlbGV0ZS1mcmFtZSAoZGlzcGxheS11bnRpbC1nZXQtZnJhbWUtYnktbmFtZSAiTXkt RnJhbWUiKSkpCgkgKGxldCAoKGRpc3BsYXktdW50aWwtZnJhbWUtcGFyYW1ldGVycyAnKCh2aXNp YmlsaXR5IC4gbmlsKSkpKQoJICAgKGRpc3BsYXktZnJhbWUtdW50aWwgIk15LUZyYW1lIiAiKk1l c3NhZ2VzKiIpKSkKCiAgOzsgVGVtcG9yYXJpbHkgZGlzcGxheSBNeS1GcmFtZSwgdGhlbiBsZWF2 ZSBpdCBkaXNwbGF5ZWQgYnV0IG1vdmUKICA7OyBwcmlvciB0b3Btb3N0IGZyYW1lIGJhY2sgdG8g dGhlIHRvcC4KICAocHJvZ24gKHNldC1mcmFtZS1wYXJhbWV0ZXIgKGRpc3BsYXktdW50aWwtZ2V0 LWZyYW1lLWJ5LW5hbWUgIk15LUZyYW1lIikgJ3Zpc2liaWxpdHkgdCkKCSAoZGlzcGxheS1mcmFt ZS11bnRpbCAiTXktRnJhbWUiKSkKCiAgOzsgVGVtcG9yYXJpbHkgZGlzcGxheSB0aGUgZnJhbWUg b2YgYSBzcGVjaWZpYyB3aW5kb3cgKG9uZSBjdXJyZW50bHkKICA7OyBzaG93aW5nIHRoZSAqTWVz c2FnZXMqIGJ1ZmZlcikgYW5kIG1ha2UgaXQgZGlzcGxheSB0aGUgKnNjcmF0Y2gqIGJ1ZmZlci4K ICAoZGlzcGxheS13aW5kb3ctdW50aWwgIipNZXNzYWdlcyoiICIqc2NyYXRjaCoiKQoKICA7OyBU ZW1wb3JhcmlseSBkaXNwbGF5IGFuIGV4aXN0aW5nIGZyYW1lLgogIChkaXNwbGF5LWZyYW1lLXVu dGlsICJNeS1GcmFtZSIpCgogIDs7IFRlbXBvcmFyaWx5IGRpc3BsYXkgYW4gZXhpc3Rpbmcgd2lu ZG93LgogIChkaXNwbGF5LXdpbmRvdy11bnRpbCAiKnNjcmF0Y2gqIikKCiAgOzsgVGVtcG9yYXJp bHkgZGlzcGxheSBhIHdpbmRvdyBjdXJyZW50bHkgc2hvd2luZyAiKnNjcmF0Y2gqIiBhbmQKICA7 OyBzd2l0Y2ggaXQgdG8gdGhlIGJ1ZmZlciAiKk1lc3NhZ2VzKiIuCiAgKGRpc3BsYXktd2luZG93 LXVudGlsICIqc2NyYXRjaCoiICIqTWVzc2FnZXMqIikKCiAgOzsgTGlrZWx5IGRpc3BsYXkgdGhl IGJ1ZmZlciAiKnNjcmF0Y2gqIiBpbiB0aGUgc2VsZWN0ZWQgd2luZG93LgogIChkaXNwbGF5LXdp bmRvdy11bnRpbCAiKnNjcmF0Y2gqIikKICApCgoocHJvdmlkZSAnZGlzcGxheS11bnRpbCkK --089e0828a8fc57560b05608da7b9--