From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: owner@emacsbugs.donarmstrong.com (Emacs bug Tracking System) Newsgroups: gmane.emacs.bugs Subject: bug#5002: marked as done (htmlfontify should remove some text properties) Date: Wed, 09 Dec 2009 06:05:05 +0000 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----------=_1260338705-29054-0" X-Trace: ger.gmane.org 1260338899 22692 80.91.229.12 (9 Dec 2009 06:08:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 9 Dec 2009 06:08:19 +0000 (UTC) To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Dec 09 07:08:11 2009 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1NIFiR-0004zM-48 for geb-bug-gnu-emacs@m.gmane.org; Wed, 09 Dec 2009 07:08:11 +0100 Original-Received: from localhost ([127.0.0.1]:53630 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NIFiQ-0005Na-GM for geb-bug-gnu-emacs@m.gmane.org; Wed, 09 Dec 2009 01:07:58 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NIFi3-0005D1-4y for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2009 01:07:35 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NIFhx-0005Az-My for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2009 01:07:33 -0500 Original-Received: from [199.232.76.173] (port=56772 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NIFhx-0005Ar-EZ for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2009 01:07:29 -0500 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:40624) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NIFhw-00074w-Pf for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2009 01:07:29 -0500 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nB967QlB030142; Tue, 8 Dec 2009 22:07:26 -0800 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.14.3/8.14.3/Submit) id nB9655a5029442; Tue, 8 Dec 2009 22:05:05 -0800 X-Mailer: MIME-tools 5.427 (Entity 5.427) X-Loop: owner@emacsbugs.donarmstrong.com X-Emacs-PR-Message: closed 5002 X-Emacs-PR-Package: emacs X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:33434 Archived-At: This is a multi-part message in MIME format... ------------=_1260338705-29054-0 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Your message dated Wed, 09 Dec 2009 00:57:43 -0500 with message-id and subject line Re: bug#5002: patch has caused the Emacs bug report #5002, regarding htmlfontify should remove some text properties to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@emacsbugs.donarmstrong.com immediately.) --=20 5002: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=3D5002 Emacs Bug Tracking System Contact owner@emacsbugs.donarmstrong.com with problems ------------=_1260338705-29054-0 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by emacsbugs.donarmstrong.com; 21 Nov 2009 12:05:38 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-0.7 required=4.0 tests=AWL,FOURLA,FVGT_m_MULTI_ODD, MURPHY_WRONG_WORD2 autolearn=no version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nALC5ZpZ012476 for ; Sat, 21 Nov 2009 04:05:37 -0800 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NBoid-00050v-L0 for bug-gnu-emacs@gnu.org; Sat, 21 Nov 2009 07:05:35 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NBoiY-00050O-V8 for bug-gnu-emacs@gnu.org; Sat, 21 Nov 2009 07:05:34 -0500 Received: from [199.232.76.173] (port=44314 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NBoiY-00050L-HF for bug-gnu-emacs@gnu.org; Sat, 21 Nov 2009 07:05:30 -0500 Received: from mail-yw0-f172.google.com ([209.85.211.172]:50156) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NBoiX-0001Ag-Kt for bug-gnu-emacs@gnu.org; Sat, 21 Nov 2009 07:05:30 -0500 Received: by ywh2 with SMTP id 2so4202453ywh.27 for ; Sat, 21 Nov 2009 04:05:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:from:date:message-id :subject:to:content-type; bh=WlWfIPRm+/Oa5Solxmps2XGmomLtqicxB8kPr0GLV64=; b=ttC1p7p+UmFzgUKgppqhl1Yrzspud8SGUJnr7twnQjNq0FDUDsUrNVvyjLvvQv0+0b SURsiDDXQFQh5bbMehbDYBcfJLmuhzAUmItAEa/yXL9UqD/wOB4d5jYmXrSFTyFfqhxX dwTrAgcd8se7wn2ZuI7INAAU/LN1MXRdnMZEo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; b=KuGH/G2OgbMjgydGJwKbYhMKQTBA/q8tAlf3dEzl4G3jx6wLcR443Qeh7nP7pcQaO0 8GXXGvir6Z2ZDgSlcY3Vb+M1ACEyAliFQJXxjOOdoHahpgkAHwO4hgUu3kP4lvxH3tf4 Kv1x+mdW9Jo9OkRx3c7oKnV2yZEJaDDnZWypc= MIME-Version: 1.0 Received: by 10.101.143.10 with SMTP id v10mr3099386ann.170.1258805129095; Sat, 21 Nov 2009 04:05:29 -0800 (PST) From: Lennart Borgman Date: Sat, 21 Nov 2009 13:05:09 +0100 Message-ID: Subject: htmlfontify should remove some text properties To: Emacs Bugs , Vivek Dasmohapatra Content-Type: multipart/mixed; boundary=0016e68e9ff38fab350478e068a3 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) --0016e68e9ff38fab350478e068a3 Content-Type: text/plain; charset=UTF-8 I just notice when I played a bit with hfyview.el that there is a bug in hfy-fontify-buffer. Or at least I believe it is there. The problem seems to be that a substring is copied with all text properties to the new buffer. Some of them will prevent htmlfontify from working correctly. I think the call to copy-buffer should be replaced with something that does the same thing but removes some of the text properties. This is what I just did in hfyview.el, but that is the wrong place to do it. See line 512 in the attached hfyview.el for some suspicious text properties (I am not sure how they work so I took them all. Beside that I saw that font-sticky and rear-nonsticky is not described on (info "(elisp) Special Properties").) I found the problem when I did like this: load hfyview.el M-x hfyview-frame-mode M-x Push This will work now, but that is due to that the call to propertize on line 515 in hfyview.el removes some text properties from the variable str before the insertion in the buffer. (I am not sure which ones that helped here.) If you do not remove these text properties then the content of the minibuffer will not be shown in the htmlfontify output. I have attached hfyview.el --0016e68e9ff38fab350478e068a3 Content-Type: text/plain; charset=US-ASCII; name="hfyview.el" Content-Disposition: attachment; filename="hfyview.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g2ac0fwu0 Ozs7IGhmeXZpZXcuZWwgLS0tIFZpZXcgY3VycmVudCBidWZmZXIgYXMgaHRtbCBpbiB3ZWIgYnJv d3NlcgoKOzsgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3IGJ5IExlbm5hcnQgQm9yZ21h bgoKOzsgQXV0aG9yOiBMZW5uYXJ0IEJvcmdtYW4KOzsgQ3JlYXRlZDogRnJpIE9jdCAyMSAyMDA1 CihkZWZjb25zdCBoZnl2aWV3OnZlcnNpb24gIjAuNjMiKSA7OyBWZXJzaW9uOgo7OyBMYXN0LVVw ZGF0ZWQ6IDIwMDktMTEtMjAgRnJpCjs7IEtleXdvcmRzOiBwcmludGluZwo7OyBVUkw6IGh0dHA6 Ly9PdXJDb21tZW50cy5vcmcvRW1hY3MvREwvZWxpc3AvaGZ5dmlldy5lbAo7OyBDb21wYXRpYmls aXR5Ogo7Owo7Owo7OyBGZWF0dXJlcyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIGJ5IHRoaXMgbGli cmFyeToKOzsKICA7OyBgY2wnLCBgY3VzLWVkaXQnLCBgY3VzLWZhY2UnLCBgY3VzLWxvYWQnLCBg Y3VzLXN0YXJ0JywgYGN1c3RvbScsCiAgOzsgYGVhc3ltZW51JywgYGZhY2VzJywgYGZvbnQtbG9j aycsIGBodG1sZm9udGlmeScsIGBzeW50YXgnLAogIDs7IGB3aWQtZWRpdCcsIGB3aWRnZXQnLgo7 Owo7Owo7OyBZb3UgY2FuIGZpbmQgaHRtbGZvbnRpZnkuZWwgYXQKOzsgICBodHRwOi8vd3d3LmVt YWNzd2lraS5vcmcvY2dpLWJpbi93aWtpL0h0bWxGb250aWZ5Cjs7Cgo7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7 Cjs7OyBDb21tZW50YXJ5Ogo7Owo7OyAgVGhpcyBmaWxlIHNob3dzIHRoZSBjdXJyZW50IGJ1ZmZl ciBpbiB5b3VyIHdlYiBicm93c2VyIHdpdGggYWxsCjs7ICB0aGUgY29sb3JzIGl0IGhhcy4gVGhl IHB1cnBvc2UgaXMgbWFpbmx5IHRvIG1ha2UgaXQgcG9zc2libGUgdG8KOzsgIGVhc2lseSBwcmlu dCB3aGF0IHlvdSBzZWUgaW4gRW1hY3MgaW4gY29sb3JzIG9uIGRpZmZlcmVudAo7OyAgcGxhdGZv cm1zLgo7Owo7OyAgUHV0IHRoaXMgZmlsZSBpbiB5b3VyIGxvYWQtcGF0aCBhbmQgaW4geW91ciAu ZW1hY3MgdGhpczoKOzsKOzsgICAgICAocmVxdWlyZSAnaGZ5dmlldykKOzsKOzsgIFRoaXMgZGVm aW5lcyB0aGUgY29tbWFuZHMgYGhmeXZpZXctYnVmZmVyJywgYGhmeXZpZXctcmVnaW9uJyBhbmQK OzsgIGBoZnl2aWV3LXdpbmRvdycgd2hpY2ggd2lsbCBzaG93IHRoZSB3aG9sZSBvciBhIHBhcnQg b2YgdGhlIGJ1ZmZlcgo7OyAgaW4geW91ciB3ZWIgYnJvd3Nlci4KOzsKOzsgIFlvdSBjYW4gYWRk IHRob3NlIGNvbW1hbmRzIHRvIHRoZSBtZW51cyBieSBjdXN0b21pemluZwo7OyAgYGhmeXZpZXct cXVpY2stcHJpbnQtaW4tZmlsZXMtbWVudScgdG8gdC4gVGhpcyB3aWxsIGFkZCBhbiBlbnRyeQo7 OyAgIlF1aWNrIFByaW50IChVc2luZyBXZWIgQnJvd3NlcikiIHRvIHRoZSBmaWxlcyBtZW51Lgo7 Owo7Owo7OyAgVGhlcmUgaXMgYWxzbyBhIGNvbW1hbmQgYGhmeXZpZXctZnJhbWUnIHRvIHRha2Ug YSAic2NyZWVuIHNob3QiIG9mCjs7ICB5b3VyIGN1cnJlbnQgZnJhbWUgYW5kIHByb2R1Y2UgYW4g aHRtbCBsb29rLWFsaWtlIHBhZ2UuIElmIHlvdQo7OyAgdHVybiBvbiBgaGZ5dmlldy1mcmFtZS1t b2RlJyB5b3UgZ2V0IHRoaXMgZnVuY3Rpb24gb24gdGhlIDxhcHBzPgo7OyAga2V5IGluIG1vc3Qg c2l0dWF0aW9ucy4KOzsKOzsKOzsgIFlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIG91dHB1 dCBoZXJlOgo7Owo7OyAgICBodHRwOi8vb3VyY29tbWVudHMub3JnL0VtYWNzL25YaHRtbC9kb2Mv aHRtbGZvbnRpZnktZXhhbXBsZS5odG1sCjs7Cjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOzsKOzs7IENoYW5nZSBs b2c6Cjs7Cjs7Cgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKOzsgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKOzsgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdAo7 OyB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCjs7Cjs7IFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKOzsgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7 OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQo7OyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCjs7 Cjs7IFRvIGZpbmQgb3V0IG1vcmUgYWJvdXQgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IHlvdSBjYW4gdmlzaXQKOzsgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uJ3Mgd2Vic2l0ZSBodHRw Oi8vd3d3LmZzZi5vcmcvLiAgT3IsIHdyaXRlCjs7IHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgKOzsgRmxvb3IsIEJvc3Rvbiwg TUEgMDIxMTAtMTMwMSwgVVNBLgoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7Owo7OzsgQ29kZToKCihldmFsLXdo ZW4tY29tcGlsZSAocmVxdWlyZSAnY2wpKQooZXZhbC13aGVuLWNvbXBpbGUgKHJlcXVpcmUgJ2h0 bWxmb250aWZ5KSkKKHJlcXVpcmUgJ2Vhc3ltZW51KQoKKGRlZnZhciBoZnl2aWV3LXNlbGVjdGVk LXdpbmRvdykKCihkZWZ2YXIgaGZ5dmlldy1mcmFtZS1tb2RlLWVtdWxhdGlvbi1tYXAKICAobGV0 ICgobSAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCiAgICA7OyhkZWZpbmUta2V5IG0gW2FwcHNdICdo Znl2aWV3LWZyYW1lKQogICAgbSkpCgooZGVmdmFyIGhmeXZpZXctZnJhbWUtbW9kZS1lbXVsYXRp b24tbWFwcwogIChsaXN0IChjb25zICdoZnl2aWV3LWZyYW1lLW1vZGUgaGZ5dmlldy1mcmFtZS1t b2RlLWVtdWxhdGlvbi1tYXApKSkKCjs7IEZpeC1tZTogd2hpY2ggYXJlIG5lZWRlZD8gUHJvYmFi bHkgb25seSB2aXBlciwgYnV0IGhhdmUgdG8gdGVzdC4KKGRlZmNvbnN0IGhmeXZpZXctZnJhbWUt bW9kZS1vdGhlci1tYXBzCiAgJygKICAgIGhmeXZpZXctZnJhbWUtbW9kZS1lbXVsYXRpb24tbWFw CiAgICBtaW5pYnVmZmVyLWxvY2FsLWNvbXBsZXRpb24tbWFwCiAgICBtaW5pYnVmZmVyLWxvY2Fs LWZpbGVuYW1lLWNvbXBsZXRpb24tbWFwCiAgICBtaW5pYnVmZmVyLWxvY2FsLWlzZWFyY2gtbWFw CiAgICBtaW5pYnVmZmVyLWxvY2FsLW1hcAogICAgbWluaWJ1ZmZlci1sb2NhbC1tdXN0LW1hdGNo LWZpbGVuYW1lLW1hcAogICAgbWluaWJ1ZmZlci1sb2NhbC1tdXN0LW1hdGNoLW1hcAogICAgbWlu aWJ1ZmZlci1sb2NhbC1ucy1tYXAKICAgIHZpcGVyLW1pbmlidWZmZXItbWFwCiAgICBpc2VhcmNo LW1vZGUtbWFwKSkKCihkZWZpbmUtbWlub3ItbW9kZSBoZnl2aWV3LWZyYW1lLW1vZGUKICAiRGVm aW5lIHNvbWUgdXNlZnVsIHRoaW5ncyBmb3IgYGhmeXZpZXctZnJhbWUnLgpUaGUgPGFwcHM+IGtl eSBpcyBib3VuZCB0byBgaGZ5dmlldy1mcmFtZScgaW4gdGhpcyBtb2RlLiBXaGVuCnRoaXMgbW9k ZSBpcyBvbiB5b3UgY2FuIHB1c2ggPGFwcHM+IHRvIGdldCBhbGwgb2Ygd2hhdCB5b3Ugc2VlIG9u CnRoZSBzY3JlZW4uIFdpdGhvdXQgaXQgdGhlIG1pbmlidWZmZXIvZWNobyBhcmVhIHdpbGwgbm90 IGJlCnNob3duLiIKICA6Z2xvYmFsIHQKICA6Z3JvdXAgJ2h0bWxmb250aWZ5CiAgKGlmIGhmeXZp ZXctZnJhbWUtbW9kZQogICAgICAocHJvZ24KICAgICAgICAoYWRkLWhvb2sgJ3ByZS1jb21tYW5k LWhvb2sgJ2hmeS1ncmFiLW1pbmlidWZmZXItY29udGVudCkKICAgICAgICAoYWRkLWhvb2sgJ3Bv c3QtY29tbWFuZC1ob29rICdoZnktZ3JhYi1lY2hvLWNvbnRlbnQpCiAgICAgICAgKGFkZC10by1s aXN0ICdlbXVsYXRpb24tbW9kZS1tYXAtYWxpc3RzICdoZnl2aWV3LWZyYW1lLW1vZGUtZW11bGF0 aW9uLW1hcHMpCiAgICAgICAgKGRvbGlzdCAobWFwIGhmeXZpZXctZnJhbWUtbW9kZS1vdGhlci1t YXBzKQogICAgICAgICAgKGRlZmluZS1rZXkgKHN5bWJvbC12YWx1ZSBtYXApIFsoYXBwcyldICdo Znl2aWV3LWZyYW1lKQogICAgICAgICAgKQogICAgICAgICkKICAgIChyZW1vdmUtaG9vayAncHJl LWNvbW1hbmQtaG9vayAnaGZ5LWdyYWItbWluaWJ1ZmZlci1jb250ZW50KQogICAgKHJlbW92ZS1o b29rICdwb3N0LWNvbW1hbmQtaG9vayAnaGZ5LWdyYWItZWNoby1jb250ZW50KQogICAgKHNldHEg ZW11bGF0aW9uLW1vZGUtbWFwLWFsaXN0cyAoZGVscSAnaGZ5dmlldy1mcmFtZS1tb2RlLWVtdWxh dGlvbi1tYXBzIGVtdWxhdGlvbi1tb2RlLW1hcC1hbGlzdHMpKQogICAgKGRvbGlzdCAobWFwIGhm eXZpZXctZnJhbWUtbW9kZS1vdGhlci1tYXBzKQogICAgICAoZGVmaW5lLWtleSAoc3ltYm9sLXZh bHVlIG1hcCkgWyhhcHBzKV0gbmlsKSkpKQoKKGRlZnVuIGhmeXZpZXctZm9udGlmeS1yZWdpb24g KHN0YXJ0IGVuZCkKICAiRm9udGlmeSByZWdpb24gYmV0d2VlbiBTVEFSVCBhbmQgRU5EIHRoZSBo dG1sZm9udGlmeSB3YXkuIgogIDs7IElmIHRoZSBsYXN0IGNvbW1hbmQgaW4gbXVtYW1vIHJlc3Vs dGVkIGluIGEgY2hhbmdlIG9mIG1ham9yLW1vZGUKICA7OyB0aGUgYmlnIGJ1ZyB3YXRjaGVyIGlu IG11bWFtbyB3aWxsIGdldCB1cyBpZiB3ZSBkbyBub3QgdGVsbCB0aGF0CiAgOzsgd2Uga25vdyB3 aGF0IHdlIGFyZSBkb2luZzoKICAobGV0ICgobXVtYW1vLWp1c3QtY2hhbmdlZC1tYWpvciBuaWwp KQogICAgKGlmIHN0YXJ0CiAgICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KICAgICAgICAgICh3aWRl bikKICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uIHN0YXJ0IGVuZCkKICAgICAgICAgIChhc3Nl cnQgKD0gZW5kIChwb2ludC1tYXgpKSkKICAgICAgICAgIChhc3NlcnQgKD0gc3RhcnQgKHBvaW50 LW1pbikpKQogICAgICAgICAgKGh0bWxmb250aWZ5LWJ1ZmZlcikpCiAgICAgIChodG1sZm9udGlm eS1idWZmZXIpKSkpCgooZGVmdW4gaGZ5dmlldy1idWZmZXItMShzdGFydCBlbmQgc2hvdy1zb3Vy Y2UpCiAgIkNvbnZlcnQgY3VycmVudCBidWZmZXIgYmV0d2VlbiBTVEFSVCBhbmQgRU5EIHRvIGh0 bWwuCklmIFNIT1ctU09VUkNFIGlzIG5vbi1uaWwgdGhlbiBhbHNvIHNob3cgcHJvZHVjZWQgaHRt bCBpbiBvdGhlcgp3aW5kb3cuIgogIChsZXQgKChoYnVmIChoZnl2aWV3LWZvbnRpZnktcmVnaW9u IHN0YXJ0IGVuZCkpKQogICAgKHdpdGgtY3VycmVudC1idWZmZXIgaGJ1ZgogICAgICAoc2V0cSBi dWZmZXItZmlsZS1uYW1lIG5pbCkKICAgICAgKGJyb3dzZS11cmwtb2YtYnVmZmVyKSkKICAgICh3 aGVuIHNob3ctc291cmNlIChzd2l0Y2gtdG8tYnVmZmVyLW90aGVyLXdpbmRvdyBoYnVmKSkKICAg IGhidWYpKQoKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7OzsKOzs7Ozs7IE1lbnVzCgooZGVmdmFyIGhmeXZpZXctcHJpbnQtbWVudSAobWFrZS1z cGFyc2Uta2V5bWFwICJRUCIpKQooZGVmdmFyIGhmeXZpZXctcHJpbnQtcmVnaW9uLW1lbnUgKG1h a2Utc3BhcnNlLWtleW1hcCAiUVBSIikpCihkZWZ2YXIgaGZ5dmlldy1wcmludC13aW5kb3ctbWVu dSAobWFrZS1zcGFyc2Uta2V5bWFwICJRUFciKSkKKGRlZnVuIGhmeXZpZXctYWRkLXRvLWZpbGVz LW1lbnUgKCkKICAiQWRkIFwiUXVpY2sgUHJpbnRcIiBlbnRyeSB0byBmaWxlIG1lbnUuIgogIDs7 IFdoeSBkaWQgSSByZWRvIHRoaXM/Pz8KICAoc2V0cSBoZnl2aWV3LXByaW50LW1lbnUgKG1ha2Ut c3BhcnNlLWtleW1hcCAiUVAiKSkKICAoc2V0cSBoZnl2aWV3LXByaW50LXJlZ2lvbi1tZW51ICht YWtlLXNwYXJzZS1rZXltYXAgIlFQUiIpKQogIChzZXRxIGhmeXZpZXctcHJpbnQtd2luZG93LW1l bnUgKG1ha2Utc3BhcnNlLWtleW1hcCAiUVBXIikpCiAgOzsgTWFpbgogIChkZWZpbmUta2V5LWFm dGVyIG1lbnUtYmFyLWZpbGUtbWVudSBbaGZ5dmlldy1wcmludF0KICAgIChsaXN0ICdtZW51LWl0 ZW0KICAgICAgICAgICJRdWljayBQcmludCAoVXNpbmcgV2ViIEJyb3dzZXIpIgogICAgICAgICAg aGZ5dmlldy1wcmludC1tZW51CiAgICAgICAgICA6dmlzaWJsZSAnaGZ5dmlldy1wcmludC12aXNp YmxlKQogICAgJ3NlcGFyYXRvci1wcmludCkKICA7OyBNYWluIHN1Ym1lbnUKICAoZGVmaW5lLWtl eSBoZnl2aWV3LXByaW50LW1lbnUgW2hmeXZpZXctYnJvd3Nlci1mcmFtZS1wcmVdCiAgICAnKG1l bnUtaXRlbSAiUHJpbnQgUHJldmlldyBGcmFtZSIgaGZ5dmlldy1mcmFtZQogICAgICAgICAgICAg ICAgOmhlbHAgIlByaW50IHByZXZpZXcgZnJhbWUgd2l0aCB3ZWIgYnJvd3NlciIpKQogIChkZWZp bmUta2V5IGhmeXZpZXctcHJpbnQtbWVudSBbaGZ5dmlldy1icm93c2VyLXdpbmRvdy1wcmVdCiAg ICAnKG1lbnUtaXRlbSAiUHJpbnQgUHJldmlldyBXaW5kb3ciIGhmeXZpZXctd2luZG93CiAgICAg ICAgICAgICAgICA6aGVscCAiUHJpbnQgcHJldmlldyB3aW5kb3cgd2l0aCB3ZWIgYnJvd3NlciIp KQogIChkZWZpbmUta2V5IGhmeXZpZXctcHJpbnQtbWVudSBbaGZ5dmlldy1icm93c2VyLXJlZ2lv bi1wcmVdCiAgICAobGlzdCAnbWVudS1pdGVtICJQcmludCBQcmV2aWV3IFJlZ2lvbiIgJ2hmeXZp ZXctcmVnaW9uCiAgICAgICAgICA6aGVscCAiUHJpbnQgcHJldmlldyByZWdpb24gd2l0aCB3ZWIg YnJvd3NlciIKICAgICAgICAgIDplbmFibGUgJ21hcmstYWN0aXZlKSkKICAoZGVmaW5lLWtleSBo Znl2aWV3LXByaW50LW1lbnUgW2hmeXZpZXctc2VwYXJhdG9yLXByZV0KICAgICcobWVudS1pdGVt ICItLSIpKQogIChkZWZpbmUta2V5IGhmeXZpZXctcHJpbnQtbWVudSBbaGZ5dmlldy1icm93c2Vy LXByZV0KICAgICcobWVudS1pdGVtICJQcmludCBQcmV2aWV3IEJ1ZmZlciIgaGZ5dmlldy1idWZm ZXIKICAgICAgICAgICAgICAgIDpoZWxwICJQcmludCBwcmV2aWV3IGJ1ZmZlciB3aXRoIHdlYiBi cm93c2VyIgogICAgICAgICAgICAgICAgOnZpc2libGUgdCkpCiAgKQoKKGRlZmN1c3RvbSBoZnl2 aWV3LXF1aWNrLXByaW50LWluLWZpbGVzLW1lbnUgbmlsCiAgIkFkZCBRdWljayBwcmludCBlbnRy aWVzIHRvIEZpbGUgbWVudSBpZiBub24tbmlsLgpJZiB5b3Ugc2V0IHRoaXMgdG8gbmlsIHlvdSBo YXZlIHRvIHJlc3RhcnQgRW1hY3MgdG8gZ2V0IHJpZCBvZgp0aGUgUXVpY2sgUHJpbnQgZW50cnku IgogIDp0eXBlICdib29sZWFuCiAgOnNldCAobGFtYmRhIChzeW0gdmFsKQogICAgICAgICAoc2V0 LWRlZmF1bHQgc3ltIHZhbCkKICAgICAgICAgKGlmIHZhbAogICAgICAgICAgICAgKGhmeXZpZXct YWRkLXRvLWZpbGVzLW1lbnUpKSkKICA6Z3JvdXAgJ2hmeS12aWV3KQoKKGRlZnZhciBoZnl2aWV3 LXByaW50LXZpc2libGUgdAogICJOb24tbmlsIG1lYW5zIHNob3cgUXVpY2sgUHJpbnQgZW50cnkg b24gdGhlIGZpbGUgbWVudS4iKQoKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOzs7Ozs7IEludGVyYWN0aXZlIGNvbW1hbmRzCgo7OzsjIyNh dXRvbG9hZAooZGVmdW4gaGZ5dmlldy1idWZmZXIgKGFyZykKICAiQ29udmVydCBidWZmZXIgdG8g aHRtbCBwcmVzZXJ2aW5nIGZhY2VzIGFuZCBzaG93IGluIHdlYiBicm93c2VyLgpXaXRoIGNvbW1h bmQgcHJlZml4IEFSRyBhbHNvIHNob3cgaHRtbCBzb3VyY2UgaW4gb3RoZXIgd2luZG93LiIKICAo aW50ZXJhY3RpdmUgIlAiKQogIChoZnl2aWV3LWJ1ZmZlci0xIG5pbCBuaWwgYXJnKSkKCjs7OyMj I2F1dG9sb2FkCihkZWZ1biBoZnl2aWV3LXJlZ2lvbiAoYXJnKQogICJDb252ZXJ0IHJlZ2lvbiB0 byBodG1sIHByZXNlcnZpbmcgZmFjZXMgYW5kIHNob3cgaW4gd2ViIGJyb3dzZXIuCldpdGggY29t bWFuZCBwcmVmaXggQVJHIGFsc28gc2hvdyBodG1sIHNvdXJjZSBpbiBvdGhlciB3aW5kb3cuIgog IChpbnRlcmFjdGl2ZSAiUCIpCiAgKGhmeXZpZXctYnVmZmVyLTEgKHJlZ2lvbi1iZWdpbm5pbmcp IChyZWdpb24tZW5kKSBhcmcpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGhmeXZpZXctd2luZG93 IChhcmcpCiAgIkNvbnZlcnQgd2luZG93IHRvIGh0bWwgcHJlc2VydmluZyBmYWNlcyBhbmQgc2hv dyBpbiB3ZWIgYnJvd3Nlci4KV2l0aCBjb21tYW5kIHByZWZpeCBBUkcgYWxzbyBzaG93IGh0bWwg c291cmNlIGluIG90aGVyIHdpbmRvdy4iCiAgKGludGVyYWN0aXZlICJQIikKICAoaGZ5dmlldy1i dWZmZXItMSAod2luZG93LXN0YXJ0KSAod2luZG93LWVuZCkgYXJnKSkKCjs7OyMjI2F1dG9sb2Fk CihkZWZ1biBoZnl2aWV3LWZyYW1lICh3aG9sZS1idWZmZXJzKQogICJDb252ZXJ0IGZyYW1lIHRv IGh0bWwgcHJlc2VydmluZyBmYWNlcyBhbmQgc2hvdyBpbiB3ZWIgYnJvd3Nlci4KTWFrZSBhbiBY SFRNTCB2aWV3IG9mIHRoZSBjdXJyZW50IEVtYWNzIGZyYW1lLiBQdXQgaXQgaW4gYSBidWZmZXIK bmFtZWQgKmhmeXZpZXctZnJhbWUqIGFuZCBzaG93IHRoYXQgYnVmZmVyIGluIGEgd2ViIGJyb3dz ZXIuCgpJZiBXSE9MRS1CVUZGRVJTIGlzIG5vbi1uaWwgdGhlbiB0aGUgd2hvbGUgY29udGVudCBv ZiB0aGUgYnVmZmVycwppcyBzaG93biBpbiB0aGUgWEhUTUwgcGFnZSwgb3RoZXJ3aXNlIGp1c3Qg dGhlIHBhcnQgdGhhdCBpcwp2aXNpYmxlIGN1cnJlbnRseSBvbiB0aGUgZnJhbWUuCgpJZiB5b3Ug dHVybiBvbiB0aGUgbWlub3IgbW9kZSBgaGZ5dmlldy1mcmFtZS1tb2RlJyB5b3UgY2FuIGFsc28K Z2V0IHRoZSBtaW5pYnVmZmVyL2VjaG8gYXJlYSBpbiB0aGUgb3V0cHV0LiBTZWUgdGhpcyBtb2Rl IGZvcgpkZXRhaWxzLgoKV2l0aCBjb21tYW5kIHByZWZpeCBhbHNvIHNob3cgaHRtbCBzb3VyY2Ug aW4gb3RoZXIgd2luZG93LiIKICAoaW50ZXJhY3RpdmUgKGxpc3QgKHktb3Itbi1wICJFbnRlciB5 IGZvciB3aG9sZSBidWZmZXJzLCBuIGZvciBvbmx5IHZpc2libGUgcGFydD8gIikpKQogIChsZXQg KCh0aXRsZSAiRW1hY3MgLSBGcmFtZSBEdW1wIikKICAgICAgICBidWYpCiAgICAoc2V0cSB0aXRs ZSAoZnJhbWUtcGFyYW1ldGVyIChzZWxlY3RlZC1mcmFtZSkgJ25hbWUpKQogICAgKHNldHEgYnVm IChoZnl2aWV3LWZyYW1lLTEgd2hvbGUtYnVmZmVycyB0aXRsZSkpCiAgICAod2hlbiBjdXJyZW50 LXByZWZpeC1hcmcKICAgICAgKHN3aXRjaC10by1idWZmZXItb3RoZXItd2luZG93IGJ1ZikpKSkK Cgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Cjs7Ozs7OyBJbnRlcm5hbCBjb21tYW5kcwoKKGRlZmNvbnN0IGhmeXZpZXctbW9kbGluZS1mb3Jt YXQKICA7OyBUaGVyZSBzZWVtcyB0byBiZSBhIGJ1ZyBpbiBGaXJlZm94IHRoYXQgcHJldmVudHMg dGhpcyBmcm9tCiAgOzsgZGlzcGxheWluZyBjb3JyZWN0bHkuICBBbnl3YXkgdGhpcyBpcyBqdXN0 IGEgcXVpY2sgYW5kIHJlYXNvbmFibGUKICA7OyBhcHByb3hpbWF0aW9uLgogIChjb25jYXQgIjxk aXYgc3R5bGU9XCJ3aWR0aDolc2VtOyBjb2xvcjolczsgYmFja2dyb3VuZDolczsgd2hpdGUtc3Bh Y2U6cHJlOyBvdmVyZmxvdzpoaWRkZW47IGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcIj4iCiAgICAg ICAgICA7OyBVc2luZyA8cHJlPiBnaXZlcyBlbXB0eSBsaW5lIGFib3ZlIGFuZCBiZWxvdwogICAg ICAgICAgOzsiPHByZT4iCiAgICAgICAgICAiLS0gKFVuaXgpJXMgICA8Yj4lczwvYj4gICAgKCVz JXMpICIKICAgICAgICAgIChtYWtlLXN0cmluZyA2ID8tKQogICAgICAgICAgIiVzIiA7OyBWaXBl cgogICAgICAgICAgKG1ha2Utc3RyaW5nIDIwMCA/LSkKICAgICAgICAgIDs7IjwvcHJlPiIKICAg ICAgICAgICI8L2Rpdj4iKSkKCihkZWZ1biBoZnl2aWV3LWdldC1taW5vcnMgKCkKICAiUmV0dXJu IHN0cmluZyB3aXRoIGFjdGl2ZSBtaW5vciBtb2RlIGhpZ2hsaWdodGVycy4iCiAgKGxldCAoKG1p bm9ycyAiIikpCiAgICAoZG9saXN0IChtciBtaW5vci1tb2RlLWFsaXN0KQogICAgICAobGV0ICgo bW0gKGNhciBtcikpCiAgICAgICAgICAgIChtbCAoY2FkciBtcikpKQogICAgICAgICh3aGVuIChz eW1ib2wtdmFsdWUgbW0pCiAgICAgICAgICAod2hlbiAoc3RyaW5ncCBtbCkKICAgICAgICAgICAg KHNldHEgbWlub3JzIChjb25jYXQgbWlub3JzIG1sKSkpKSkpCiAgICBtaW5vcnMpKQoKOzsgKGhm eXZpZXctZGVrbHVkZ2Utc3RyaW5nICI8aT4gIikKKGRlZnVuIGhmeXZpZXctZGVrbHVkZ2Utc3Ry aW5nIChzdHIpCiAgIlJldHVybiBodG1sIHF1b3RlZCBzdHJpbmcgU1RSLiIKICAobWFwY29uY2F0 IChsYW1iZGEgKGMpCiAgICAgICAgICAgICAgIChoZnktaHRtbC1xdW90ZQogICAgICAgICAgICAg ICAgKGNoYXItdG8tc3RyaW5nIGMpKSkKICAgICAgICAgICAgIChhcHBlbmQgc3RyKQogICAgICAg ICAgICAgIiIpKQoKKGRlZnVuIGhmeXZpZXctZm9udGlmeS13aW4tdG8gKHdpbiB0YWcgd2hvbGUt YnVmZmVyKQogICJSZXR1cm4gaHRtbCBjb2RlIGZvciB3aW5kb3cgV0lOLgpTb3Jyb3VuZCB0aGUg Y29kZSB3aXRoIHRoZSBodG1sIHRhZyA8VEFHPi4KV0hPTEUtQlVGRkVSIGNvcnJlc3BvbmRzIHRv IHRoZSBzaW1pbGFyIGFyZ3VtZW50IGZvcgpgaGZ5dmlldy1mcmFtZS0xJy4iCiAgKGxldCogKChi c3RhcnQgKHVubGVzcyB3aG9sZS1idWZmZXIgKHdpbmRvdy1zdGFydCB3aW4pKSkKICAgICAgICAg KGJlbmQgICAodW5sZXNzIHdob2xlLWJ1ZmZlciAod2luZG93LWVuZCB3aW4pKSkKICAgICAgICAg KGhidWYgKGhmeXZpZXctZm9udGlmeS1yZWdpb24gYnN0YXJ0IGJlbmQpKQogICAgICAgICAoZWRn ZXMgKHdpbmRvdy1lZGdlcyB3aW4pKQogICAgICAgICAod2lkdGggICgtIChudGggMiBlZGdlcykg KG50aCAwIGVkZ2VzKSkpCiAgICAgICAgIChoZWlnaHQgKC0gKG50aCAzIGVkZ2VzKSAobnRoIDEg ZWRnZXMpKSkKICAgICAgICAgKGJvcmRlci1jb2xvciAob3IgKGhmeS10cmlwbGV0ICJTeXN0ZW1B Y3RpdmVCb3JkZXIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICJncmF5IikpCiAgICAgICAg IHN0YXJ0CiAgICAgICAgIGVuZAogICAgICAgICBjc3Mtc3RhcnQKICAgICAgICAgY3NzLWVuZAog ICAgICAgICBtb2QtZmdjb2xvcgogICAgICAgICBtb2QtYmdjb2xvcgogICAgICAgICBtb2Qtd2lk dGgKICAgICAgICAgbW9kCiAgICAgICAgIGJ1LW5hbWUKICAgICAgICAgbWEtbmFtZQogICAgICAg ICBtaW5vcnMKICAgICAgICAgKHdpbmRvdy1zdGFydC1saW5lIChwb2ludC1taW4pKQogICAgICAg ICAod2luZG93LWVuZC1saW5lICAgKHBvaW50LW1heCkpCiAgICAgICAgIChpcy1zZWxlY3RlZC13 aW5kb3cgKGVxIHdpbiBoZnl2aWV3LXNlbGVjdGVkLXdpbmRvdykpCiAgICAgICAgIChtYXJrLXZp cGVyICIiKQogICAgICAgICApCiAgICA7OyBGaXgtbWU6IGZldGNoIHN0eWxlIHRvbwogICAgKHdp dGgtY3VycmVudC1idWZmZXIgKHdpbmRvdy1idWZmZXIgd2luKQogICAgICAodW5sZXNzIHdob2xl LWJ1ZmZlcgogICAgICAgIChzYXZlLXJlc3RyaWN0aW9uCiAgICAgICAgICAod2lkZW4pCiAgICAg ICAgICAoc2V0cSB3aW5kb3ctc3RhcnQtbGluZSAobGluZS1udW1iZXItYXQtcG9zIGJzdGFydCkp CiAgICAgICAgICAoc2V0cSB3aW5kb3ctZW5kLWxpbmUgICAobGluZS1udW1iZXItYXQtcG9zIGJl bmQpKQogICAgICAgICAgKHVubGVzcyAob3IgKDwgKGxpbmUtbnVtYmVyLWF0LXBvcyAocG9pbnQt bWluKSkgd2luZG93LXN0YXJ0LWxpbmUpCiAgICAgICAgICAgICAgICAgICAgICAoPiAobGluZS1u dW1iZXItYXQtcG9zIChwb2ludC1tYXgpKSB3aW5kb3ctZW5kLWxpbmUpKQogICAgICAgICAgICAo c2V0cSB3aG9sZS1idWZmZXIgdCkpCiAgICAgICAgICApCiAgICAgICAgKQogICAgICAoc2V0cSBt b2QtZmdjb2xvciAoZmFjZS1hdHRyaWJ1dGUgKGlmIGlzLXNlbGVjdGVkLXdpbmRvdyAnbW9kZS1s aW5lICdtb2RlLWxpbmUtaW5hY3RpdmUpIDpmb3JlZ3JvdW5kKSkKICAgICAgKHNldHEgbW9kLWJn Y29sb3IgKGZhY2UtYXR0cmlidXRlIChpZiBpcy1zZWxlY3RlZC13aW5kb3cgJ21vZGUtbGluZSAn bW9kZS1saW5lLWluYWN0aXZlKSA6YmFja2dyb3VuZCkpCiAgICAgIChzZXRxIG1vZC1mZ2NvbG9y IChoZnktdHJpcGxldCBtb2QtZmdjb2xvcikpCiAgICAgIChzZXRxIG1vZC1iZ2NvbG9yIChoZnkt dHJpcGxldCBtb2QtYmdjb2xvcikpCiAgICAgIChzZXRxIG1vZCAoaWYgKGJ1ZmZlci1tb2RpZmll ZC1wKSAiKioiICItLSIpKQogICAgICAod2hlbiBidWZmZXItcmVhZC1vbmx5CiAgICAgICAgKHNl dHEgbW9kICIlJSIpKQogICAgICAoc2V0cSBidS1uYW1lIChidWZmZXItbmFtZSkpCiAgICAgIChz ZXRxIG1hLW5hbWUgbW9kZS1uYW1lKQogICAgICAoc2V0cSBtaW5vcnMgKGhmeXZpZXctZ2V0LW1p bm9ycykpCiAgICAgICh3aGVuIChhbmQgKGxvY2FsLXZhcmlhYmxlLXAgJ3ZpcGVyLW1vZGUtc3Ry aW5nKSB2aXBlci1tb2RlLXN0cmluZykKICAgICAgICAoc2V0cSBtYXJrLXZpcGVyIHZpcGVyLW1v ZGUtc3RyaW5nKSkKICAgICAgKQogICAgOzsgQ29tcGVuc2F0ZSBmb3Igc2Nyb2xsLWJhcnMKICAg IChzZXRxIG1vZC13aWR0aCAoKyB3aWR0aCAxKSkKICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGhi dWYKICAgICAgKHNldHEgd2lkdGggKC0gd2lkdGggMi41KSkKICAgICAgKHNldHEgd2lkdGggKCog MC41NyB3aWR0aCkpCiAgICAgIChzZXRxIGhlaWdodCAoKyBoZWlnaHQgMikpIDs7IEZvciBwcmUK ICAgICAgOzsoc2V0cSBoZWlnaHQgKCsgaGVpZ2h0IDEuMikpIDs7IEZvciBob3Jpc29udGFsIHNj cm9sbGJhcgogICAgICAoc2V0cSBoZWlnaHQgKCogMS4xNiBoZWlnaHQpKQogICAgICAoZ290by1j aGFyIChwb2ludC1taW4pKQogICAgICAocmUtc2VhcmNoLWZvcndhcmQgIjxib2R5Lio/PiIpCiAg ICAgIChzZXRxIHN0YXJ0IChwb2ludCkpCiAgICAgIChpbnNlcnQKICAgICAgIChmb3JtYXQgIjwl cyBzdHlsZT1cIndpZHRoOiVzZW07IGhlaWdodDolc2VtOyBib3JkZXI6IDFweCBzb2xpZCAlczsg b3ZlcmZsb3c6JXM7IHBhZGRpbmc6NHB4O1wiPlxuIgogICAgICAgICAgICAgICB0YWcgd2lkdGgg aGVpZ2h0IGJvcmRlci1jb2xvcgogICAgICAgICAgICAgICAoaWYgd2hvbGUtYnVmZmVyICJhdXRv IiAiaGlkZGVuIikgOzsgb3ZlcmZsb3cKICAgICAgICAgICAgICAgKSkKICAgICAgKGdvdG8tY2hh ciAocG9pbnQtbWF4KSkKICAgICAgKHNldHEgZW5kIChzZWFyY2gtYmFja3dhcmQgIjwvYm9keT4i KSkKICAgICAgKHVubGVzcyB3aG9sZS1idWZmZXIKICAgICAgICAoaW5zZXJ0CiAgICAgICAgIChm b3JtYXQgIlxuPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6MmVtOyBjb2xvcjogcmVkOyB0ZXh0LWFs aWduOiBjZW50ZXI7IFwiPiBUcnVuY2F0ZWQgdG8gbGluZSAlcyAtICVzISA8L2Rpdj5cbiIKICAg ICAgICAgICAgICAgICB3aW5kb3ctc3RhcnQtbGluZSB3aW5kb3ctZW5kLWxpbmUpKSkKICAgICAg KGluc2VydCAiPC8iIHRhZyAiPlxuIikKICAgICAgOzsobHdhcm4gdCA6d2FybmluZyAiJXMiIG1h cmstdmlwZXIpCiAgICAgIChpbnNlcnQgKGZvcm1hdCBoZnl2aWV3LW1vZGxpbmUtZm9ybWF0CiAg ICAgICAgICAgICAgICAgICAgICB3aWR0aAogICAgICAgICAgICAgICAgICAgICAgbW9kLWZnY29s b3IgbW9kLWJnY29sb3IgbW9kCiAgICAgICAgICAgICAgICAgICAgICAoaGZ5dmlldy1kZWtsdWRn ZS1zdHJpbmcgYnUtbmFtZSkKICAgICAgICAgICAgICAgICAgICAgIChoZnl2aWV3LWRla2x1ZGdl LXN0cmluZyBtYS1uYW1lKQogICAgICAgICAgICAgICAgICAgICAgKGhmeXZpZXctZGVrbHVkZ2Ut c3RyaW5nIG1pbm9ycykKICAgICAgICAgICAgICAgICAgICAgIChoZnl2aWV3LWRla2x1ZGdlLXN0 cmluZyBtYXJrLXZpcGVyKSkpCiAgICAgIChzZXRxIGVuZCAocG9pbnQpKQogICAgICAoZ290by1j aGFyIChwb2ludC1taW4pKQogICAgICAoc2VhcmNoLWZvcndhcmQgIjxzdHlsZSB0eXBlPVwidGV4 dC9jc3NcIj48IS0tIikKICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQogICAgICAoc2V0cSBjc3Mt c3RhcnQgKHBvaW50KSkKICAgICAgKHNlYXJjaC1mb3J3YXJkICItLT48L3N0eWxlPiIpCiAgICAg IChzZXRxIGNzcy1lbmQgKHBvaW50KSkKICAgICAgKHNldC1idWZmZXItbW9kaWZpZWQtcCBuaWwp CiAgICAgIChzZXRxIGJ1ZmZlci1maWxlLW5hbWUgbmlsKSkKICAgIChsaXN0IGhidWYgc3RhcnQg ZW5kIGNzcy1zdGFydCBjc3MtZW5kKSkpCgo7OyAoZGVmdW4gaGZ5dmlldy13aW5kb3ctZnJhbWVk ICgpCjs7ICAgIkp1c3QgYSB0ZXN0Igo7OyAgIChpbnRlcmFjdGl2ZSkKOzsgICAobGV0KiAoKHJl cyAoaGZ5dmlldy1mb250aWZ5LXdpbi10byAoc2VsZWN0ZWQtd2luZG93KSAiZGl2IiBuaWwpKQo7 OyAgICAgICAgICAoaGJ1ZiAobnRoIDAgcmVzKSkpCjs7ICAgICAod2l0aC1jdXJyZW50LWJ1ZmZl ciBoYnVmCjs7ICAgICAgIChicm93c2UtdXJsLW9mLWJ1ZmZlcikpKSkKCihkZWZ1biBoZnl2aWV3 LWZvbnRpZnktdHJlZS13aW4gKHdpbiB3aG9sZS1idWZmZXIpCiAgIlJldHVybiBodG1sIGNvZGUg Zm9yIHdpbmRvdyBXSU4uCldIT0xFLUJVRkZFUiBjb3JyZXNwb25kcyB0byB0aGUgc2ltaWxhciBh cmd1bWVudCBmb3IKYGhmeXZpZXctZnJhbWUtMScuIgogICh3aXRoLXNlbGVjdGVkLXdpbmRvdyB3 aW4KICAgIChsZXQqICgoc3RhcnQgKHdpbmRvdy1zdGFydCkpCiAgICAgICAgICAgKGVuZCAod2lu ZG93LWVuZCkpCiAgICAgICAgICAgKHJlcyAoaGZ5dmlldy1mb250aWZ5LXdpbi10byB3aW4gImRp diIgd2hvbGUtYnVmZmVyKSkKICAgICAgICAgICAoaGJ1ZiAobnRoIDAgcmVzKSkpCiAgICAgICh3 aXRoLWN1cnJlbnQtYnVmZmVyIGhidWYKICAgICAgICAocmVuYW1lLWJ1ZmZlciAoZ2VuZXJhdGUt bmV3LWJ1ZmZlci1uYW1lIChmb3JtYXQgIiVzICVzLSVzIiB3aW4gc3RhcnQgZW5kKSkpKQogICAg ICA7Oyhsd2FybiB0IDp3YXJuaW5nICJ3aW49JXMsIGhidWY9JXMiIHdpbiBoYnVmKQogICAgICBy ZXMpKSkKCihkZWZ1biBoZnl2aWV3LWZvbnRpZnktdHJlZSAod3Qgd2hvbGUtYnVmZmVycykKICAi UmV0dXJuIGxpc3Qgb2YgaHRtbCBjb2RlIGZvciBhbGwgd2luZG93cyBpbiB0cmVlIFdULgpXVCBz aG91bGQgYmUgdGhlIHJlc3VsdCBvZiBmdW5jdGlvbiBgd2luZG93LXRyZWUnIG9yIGEgc3VidHJl ZSBvZgp0aGlzLiBGb3IgV0hPTEUtQlVGRkVSUyBzZWUgYGhmeXZpZXctZnJhbWUtMScuIgogIChp ZiAobm90IChsaXN0cCB3dCkpCiAgICAgIChoZnl2aWV3LWZvbnRpZnktdHJlZS13aW4gd3Qgd2hv bGUtYnVmZmVycykKICAgIChsZXQgKChyZXQpKQogICAgICAoZG9saXN0ICh3IChjZGRyIHd0KSkK ICAgICAgICAoc2V0cSByZXQgKGNvbnMgKGhmeXZpZXctZm9udGlmeS10cmVlIHcgd2hvbGUtYnVm ZmVycykgcmV0KSkpCiAgICAgIChsaXN0IChjYXIgd3QpIHJldCkpKSkKCihkZWZ1biBoZnl2aWV3 LWZyYW1lLXRvLWh0bWwgKHJlcykKICAiUmV0dXJuIGxpc3Qgd2l0aCBjc3MgYW5kIGh0bWwgY29k ZSBmb3IgZnJhbWUuClJFUyBpcyB0aGUgY29sbGVjdGVkIHJlc3VsdCBmcm9tIGBoZnl2aWV3LWZv bnRpZnktdHJlZScuIgogIChsZXQgKChodG1sICIiKQogICAgICAgIChjc3MgIiIpCiAgICAgICAg KGZpcnN0IChjYXIgcmVzKSkKICAgICAgICAodGQgIjx0ZCBzdHlsZT1cInZlcnRpY2FsLWFsaWdu OnRvcDtcIj4iKQogICAgICAgIGgpCiAgICAoY29uZAogICAgICgobWVtcSBmaXJzdCAnKG5pbCB0 KSkKICAgICAgKGRvbGlzdCAoc3ViIChyZXZlcnNlIChjYWRyIHJlcykpKQogICAgICAgIChsZXQq ICgoZnJlcyAoaGZ5dmlldy1mcmFtZS10by1odG1sIHN1YikpCiAgICAgICAgICAgICAgIChoICAg IChudGggMCBmcmVzKSkKICAgICAgICAgICAgICAgKGMgICAgKG50aCAxIGZyZXMpKSkKICAgICAg ICAgICh3aGVuIGZpcnN0IChzZXRxIGggKGNvbmNhdCAiPHRyPlxuIiBoICI8L3RyPlxuIikpKQog ICAgICAgICAgKHNldHEgaHRtbCAoY29uY2F0IGh0bWwgaCkpCiAgICAgICAgICAoc2V0cSBjc3Mg IChjb25jYXQgY3NzIGMpKSkpCiAgICAgICh1bmxlc3MgZmlyc3QKICAgICAgICAoc2V0cSBodG1s IChjb25jYXQgIjx0cj4iIGh0bWwgIjwvdHI+XG4iKSkpCiAgICAgIChzZXRxIGh0bWwgKGNvbmNh dCAiPHRhYmxlIGJvcmRlcj1cIjBcIiBjZWxscGFkZGluZz1cIjBcIiBjZWxsc3BhY2luZz1cIjBc Ij5cbiIgaHRtbCAiPC90YWJsZT5cbiIpKQogICAgICAoc2V0cSBodG1sIChjb25jYXQgdGQgaHRt bCAiPC90ZD5cbiIpKQogICAgICApCiAgICAgKChidWZmZXJwIGZpcnN0KQogICAgICA7OyAoYnVm IHN0YXJ0IGVuZCkKICAgICAgKGxldCogKChidWYgKG50aCAwIHJlcykpCiAgICAgICAgICAgICAo c3RhIChudGggMSByZXMpKQogICAgICAgICAgICAgKGVuZCAobnRoIDIgcmVzKSkKICAgICAgICAg ICAgIChjc3QgKG50aCAzIHJlcykpCiAgICAgICAgICAgICAoY25kIChudGggNCByZXMpKQogICAg ICAgICAgICAgKGgKICAgICAgICAgICAgICA7Oyhjb25jYXQgIjx0ZD4iICJ0ZW1wIiAiPC90ZD5c biIpCiAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmIChidWZmZXItc3Vic3Ry aW5nLW5vLXByb3BlcnRpZXMgc3RhIGVuZCkpKQogICAgICAgICAgICAgKGMKICAgICAgICAgICAg ICA7Oyhjb25jYXQgIjx0ZD4iICJ0ZW1wIiAiPC90ZD5cbiIpCiAgICAgICAgICAgICAgKHdpdGgt Y3VycmVudC1idWZmZXIgYnVmIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgY3N0IGNu ZCkpKSkKICAgICAgICAoc2V0cSBoIChjb25jYXQgdGQgaAogICAgICAgICAgICAgICAgICAgICAg ICAiPC90ZD5cbiIpKQogICAgICAgIChzZXRxIGh0bWwgKGNvbmNhdCBodG1sIGgpKQogICAgICAg IChzZXRxIGNzcyBjKQogICAgICAgIChraWxsLWJ1ZmZlciBidWYpKSkKICAgICAodAogICAgICAo ZXJyb3IgIlVoPyIpKSkKICAgIChsaXN0IGh0bWwgY3NzKSkpCgooZGVmY29uc3QgaGZ5dmlldy14 aHRtbC1oZWFkZXIKICAiPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwidXRmLThcIj8+ CjwhRE9DVFlQRSBodG1sIFBVQkxJQyBcIi0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU5cIgpcImh0 dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMTEvRFREL3hodG1sMTEuZHRkXCI+CjxodG1sIHhtbG5z PVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPgogIDxoZWFkPgogICAgPHRpdGxlPiVz PC90aXRsZT4KPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiPjwhLS0KYm9keSB7IGZvbnQtZmFtaWx5 OiBvdXRsaW5lLWNvdXJpZXIgbmV3OyAgZm9udC1zdHJldGNoOiBub3JtYWw7ICBmb250LXdlaWdo dDogNTAwOyAgZm9udC1zdHlsZTogbm9ybWFsOyAgY29sb3I6IHJnYigwLCAwLCAwKTsgIGZvbnQt c2l6ZTogMTBwdDsgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQogLS0+PC9zdHlsZT4KJXMKICA8 L2hlYWQ+CiAgPGJvZHk+XG4iKQoKKGRlZnZhciBoZnl2aWV3LXhodG1sLWZvb3RlciAiPC9ib2R5 PlxuPC9odG1sPlxuIikKCihkZWZ1biBoZnl2aWV3LXdtLWJvcmRlci1jb2xvciAoKQogICJSZXR1 cm4gQ1NTIGNvZGUgZm9yIGNvbG9yIHRvIHVzZSBpbiB3aW5kb3cgYm9yZGVycy4iCiAgKG9yICho ZnktdHJpcGxldCAiU3lzdGVtQWN0aXZlVGl0bGUiKQogICAgICAoaGZ5LXRyaXBsZXQgImJsdWUi KSkpCgooZGVmdmFyIGhmeS1ncmFiYmVkLWVjaG8tY29udGVudCBuaWwpCihkZWZ2YXIgaGZ5LWdy YWJiZWQtbWluaWJ1ZmZlci1jb250ZW50IG5pbCkKKGRlZnZhciBoZnl2aWV3LXByb21wdC1mYWNl IG5pbCkKCihkZWZ1biBoZnl2aWV3LWZyYW1lLW1pbmlidWZmICh1c2UtZ3JhYmJlZCkKICAiUmV0 dXJuIGh0bWwgY29kZSBmb3IgbWluaWJ1ZmZlci4KSWYgVVNFLUdSQUJCRUQgaXMgbm9uLW5pbCB1 c2Ugd2hhdCBoYXMgYmVlbiBncmFiYmVkIGJ5CmBoZnktZ3JhYi1lY2hvLWNvbnRlbnQnIG9yIGBo ZnktZ3JhYi1taW5pYnVmZmVyLWNvbnRlbnQnLgpPdGhlcndpc2UgbWFrZSBhIGRlZmF1bHQgY29u dGVudCBmb3IgdGhlIG1pbmlidWZmZXIuIgogIChpZiAoYW5kIHVzZS1ncmFiYmVkCiAgICAgICAg ICAgKG9yIGhmeS1ncmFiYmVkLWVjaG8tY29udGVudAogICAgICAgICAgICAgICBoZnktZ3JhYmJl ZC1taW5pYnVmZmVyLWNvbnRlbnQpKQogICAgICAobGV0KiAoKHN0ciAoaWYgaGZ5LWdyYWJiZWQt ZWNoby1jb250ZW50CiAgICAgICAgICAgICAgICAgICAgICBoZnktZ3JhYmJlZC1lY2hvLWNvbnRl bnQKICAgICAgICAgICAgICAgICAgICBoZnktZ3JhYmJlZC1taW5pYnVmZmVyLWNvbnRlbnQpKQog ICAgICAgICAgICAgKHRtcGJ1ZiAoZ2V0LWJ1ZmZlci1jcmVhdGUgIipoZnktbWluaWJ1ZmYtdGVt cCoiKSkKICAgICAgICAgICAgIChoYnVmICh3aXRoLWN1cnJlbnQtYnVmZmVyIHRtcGJ1ZgogICAg ICAgICAgICAgICAgICAgICAobGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkpCiAgICAgICAgICAg ICAgICAgICAgICAgKGVyYXNlLWJ1ZmZlcikKICAgICAgICAgICAgICAgICAgICAgICA7OyBGaXgt bWU6IG1vdmUgdGhlIHByb3BlcnRpemUgdG8gYSBuZXcKICAgICAgICAgICAgICAgICAgICAgICA7 OyBjb3B5LWJ1ZmZlciBpbiBoZnktZm9udGlmeS1idWZmZXIuIEV4cGxhaW5lZAogICAgICAgICAg ICAgICAgICAgICAgIDs7IGluIG1haWwgdG8gVml2ZWsuCiAgICAgICAgICAgICAgICAgICAgICAg KGluc2VydCAocHJvcGVydGl6ZSBzdHIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdyZWFkLW9ubHkgbmlsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnaW50YW5naWJsZSBuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdmaWVsZCBuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdtb2RpZmljYXRpb24taG9va3MgbmlsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnaW5zZXJ0LWluLWZyb250LWhvb2tzIG5pbAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luc2VydC1iZWhpbmQtaG9va3Mgbmls CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9pbnQtZW50ZXJl ZCBuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb2ludC1s ZWZ0IG5pbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbnQt c3RpY2t5IG5pbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jl YXItbm9uc3RpY2t5IG5pbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAoaHRtbGZvbnRpZnktYnVmZmVyKSkpKQogICAg ICAgICAgICAgYmR5LXN0YXJ0CiAgICAgICAgICAgICBiZHktZW5kCiAgICAgICAgICAgICBiZHkt dHh0CiAgICAgICAgICAgICBjc3Mtc3RhcnQKICAgICAgICAgICAgIGNzcy1lbmQKICAgICAgICAg ICAgIGNzcy10eHQpCiAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgaGJ1ZgogICAgICAgICAg KGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgICAgICAgIChzZWFyY2gtZm9yd2FyZCAiPHN0eWxl IHR5cGU9XCJ0ZXh0L2Nzc1wiPjwhLS0iKQogICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQog ICAgICAgICAgKHNldHEgY3NzLXN0YXJ0IChwb2ludCkpCiAgICAgICAgICAoc2VhcmNoLWZvcndh cmQgIi0tPjwvc3R5bGU+IikKICAgICAgICAgIChzZXRxIGNzcy1lbmQgKHBvaW50KSkKICAgICAg ICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgICAgICAoc2VhcmNoLWZvcndhcmQgIjxw cmU+IikKICAgICAgICAgIChzZXRxIGJkeS1zdGFydCAocG9pbnQpKQogICAgICAgICAgKGdvdG8t Y2hhciAocG9pbnQtbWF4KSkKICAgICAgICAgIChzZWFyY2gtYmFja3dhcmQgIjwvcHJlPiIpCiAg ICAgICAgICAoc2V0cSBiZHktZW5kIChwb2ludCkpCiAgICAgICAgICAobGlzdCAoYnVmZmVyLXN1 YnN0cmluZyBjc3Mtc3RhcnQgY3NzLWVuZCkKICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3Ry aW5nIGJkeS1zdGFydCBiZHktZW5kKSkpKQogICAgKGxldCAoKG1pbmktYmcgKGZhY2UtYXR0cmli dXRlIGhmeXZpZXctcHJvbXB0LWZhY2UgOmJhY2tncm91bmQpKQogICAgICAgICAgKG1pbmktZmcg KGZhY2UtYXR0cmlidXRlIGhmeXZpZXctcHJvbXB0LWZhY2UgOmZvcmVncm91bmQpKSkKICAgICAg KGlmIChlcSBtaW5pLWZnICd1bnNwZWNpZmllZCkKICAgICAgICAgIChzZXRxIG1pbmktZmcgIiIp CiAgICAgICAgKHNldHEgbWluaS1mZyAoY29uY2F0ICJjb2xvcjoiIChoZnktdHJpcGxldCBtaW5p LWZnKSAiOyAiKSkpCiAgICAgIChpZiAoZXEgbWluaS1iZyAndW5zcGVjaWZpZWQpCiAgICAgICAg ICAoc2V0cSBtaW5pLWJnICIiKQogICAgICAgIChzZXRxIG1pbmktYmcgKGNvbmNhdCAiYmFja2dy b3VuZDoiIChoZnktdHJpcGxldCBtaW5pLWJnKSAiOyAiKSkpCiAgICAgIChsaXN0IG5pbAogICAg ICAgICAgICAoY29uY2F0CiAgICAgICAgICAgICAiPHNwYW4gc3R5bGU9XCIiIG1pbmktZmcgbWlu aS1iZyAiXCI+IgogICAgICAgICAgICAgIiZuYnNwO00teCAiCiAgICAgICAgICAgICAiPC9zcGFu PiIKICAgICAgICAgICAgICImbmJzcDsiCiAgICAgICAgICAgICAiaGZ5dmlldy1mcmFtZSIKICAg ICAgICAgICAgICkpKSkpCgooZGVmdW4gaGZ5dmlldy1mcmFtZS0xKHdob2xlLWJ1ZmZlcnMgZnJh bWUtdGl0bGUpCiAgIlJldHVybiBidWZmZXIgd2l0aCBodG1sIGNvZGUgZm9yIGN1cnJlbnQgZnJh bWUuCklmIFdIT0xFLUJVRkZFUlMgaXMgbm9uLW5pbCB0aGVuIG1ha2Ugc2Nyb2xsYWJsZSBidWZm ZXJzIGluIHRoZQpodG1sIG91dHB1dC4gT3RoZXJ3aXNlIGp1c3QgbWFrZSBodG1sIGNvZGUgZm9y IHRoZSBjdXJyZW50bHkKdmlzaWJsZSBwYXJ0IG9mIHRoZSBidWZmZXJzLgoKRlJBTUUtVElUTEUg aXMgdGhlIHRpdGxlIHRvIHNob3cgb24gdGhlIHJlc3VsdGluZyBodG1sIHBhZ2UuIgogIChsZXQq ICgod3QgKHdpbmRvdy10cmVlKSkKICAgICAgICAgKGhmeXZpZXctc2VsZWN0ZWQtd2luZG93IChz ZWxlY3RlZC13aW5kb3cpKQogICAgICAgICAocmVzIChoZnl2aWV3LWZvbnRpZnktdHJlZSAoY2Fy IHd0KSB3aG9sZS1idWZmZXJzKSkKICAgICAgICAgKHRpdGxlLWJnLWNvbG9yIChoZnl2aWV3LXdt LWJvcmRlci1jb2xvcikpCiAgICAgICAgICh0aXRsZS1jb2xvciAob3IgKGhmeS10cmlwbGV0ICJT eXN0ZW1IaWxpZ2h0VGV4dCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2hpdGUi KSkKICAgICAgICAgKHRpdGxlLXN0eWxlIChjb25jYXQgKGZvcm1hdCAiYmFja2dyb3VuZC1jb2xv cjolczsgY29sb3I6JXM7IiB0aXRsZS1iZy1jb2xvciB0aXRsZS1jb2xvcikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImJvcmRlcjogbm9uZTsgcGFkZGluZzo0cHg7IHZlcnRpY2FsLWFs aWduOiBtaWRkbGU7IikpCiAgICAgICAgIChvdXRidWYgKGdldC1idWZmZXItY3JlYXRlICJmcmFt ZSIpKQogICAgICAgICBodG1sCiAgICAgICAgIGNzcwogICAgICAgICA7OyAoZmFjZS1hdHRyaWJ1 dGUgJ21pbmlidWZmZXItcHJvbXB0IDpmb3JlZ3JvdW5kKQogICAgICAgICAoaGZ5dmlldy1wcm9t cHQtZmFjZSAocGxpc3QtZ2V0IG1pbmlidWZmZXItcHJvbXB0LXByb3BlcnRpZXMgJ2ZhY2UpKQog ICAgICAgICBtaW5pYnVmCiAgICAgICAgIChmcmFtZS13aWR0aCAoKiAwLjU2IChmcmFtZS13aWR0 aCkpKQogICAgICAgICB0YWJsZS1zdHlsZQogICAgICAgICAoaWNvbi1maWxlIChleHBhbmQtZmls ZS1uYW1lICIuLi9ldGMvaW1hZ2VzL2ljb25zL2VtYWNzXzE2LnBuZyIgZXhlYy1kaXJlY3Rvcnkp KQogICAgICAgICAoaW1nLXRhZyAoaWYgKGZpbGUtZXhpc3RzLXAgaWNvbi1maWxlKQogICAgICAg ICAgICAgICAgICAgICAgKGNvbmNhdCAiPGltZyBzcmM9XCJmaWxlOi8vIiBpY29uLWZpbGUgIlwi IGhlaWdodD1cIjE2XCIgd2lkdGg9XCIxNlwiIC8+IikpKQoJIG1pbmktY3NzCgkgbWluaS1odG1s CiAgICAgICAgICkKICAgIChzZXRxIHRhYmxlLXN0eWxlCiAgICAgICAgICAoZm9ybWF0ICJib3Jk ZXI6IHNvbGlkICVzOyB3aWR0aDolc2VtOyIKICAgICAgICAgICAgICAgICAgKGhmeXZpZXctd20t Ym9yZGVyLWNvbG9yKQogICAgICAgICAgICAgICAgICBmcmFtZS13aWR0aAogICAgICAgICAgICAg ICAgICApKQogICAgKHNldHEgbWluaWJ1ZiAoaGZ5dmlldy1mcmFtZS1taW5pYnVmZiBoZnl2aWV3 LWZyYW1lLW1vZGUpKQogICAgKHNldHEgbWluaS1jc3MgIChudGggMCBtaW5pYnVmKSkKICAgIChz ZXRxIG1pbmktaHRtbCAobnRoIDEgbWluaWJ1ZikpCiAgICAod2hlbiAoc3RyaW5nPSBtaW5pLWh0 bWwgIiIpIChzZXRxIG1pbmktaHRtbCAiJm5ic3A7IikpCiAgICAoc2V0cSByZXMgKGhmeXZpZXct ZnJhbWUtdG8taHRtbCByZXMpKQogICAgKHNldHEgaHRtbCAobnRoIDAgcmVzKSkKICAgIChzZXRx IGNzcyAgKG50aCAxIHJlcykpCiAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBvdXRidWYKICAgICAg OzsobHdhcm4gdCA6d2FybmluZyAib3V0YnVmPSVzIiBvdXRidWYpCiAgICAgIChlcmFzZS1idWZm ZXIpCiAgICAgIChpbnNlcnQgKGZvcm1hdCBoZnl2aWV3LXhodG1sLWhlYWRlcgogICAgICAgICAg ICAgICAgICAgICAgKGNvbmNhdCAiRW1hY3MgZnJhbWUgZHVtcCAtICIgZnJhbWUtdGl0bGUpCiAg ICAgICAgICAgICAgICAgICAgICBjc3MpCiAgICAgICAgICAgICAgKGlmIG1pbmktY3NzIG1pbmkt Y3NzICIiKQogICAgICAgICAgICAgIChmb3JtYXQgIjx0YWJsZSBib3JkZXI9XCIwXCIgY2VsbHBh ZGRpbmc9XCIwXCIgY2VsbHNwYWNpbmc9XCIwXCIgc3R5bGU9XCIlc1wiPlxuIiB0YWJsZS1zdHls ZSkKICAgICAgICAgICAgICAiPHRyPlxuIgogICAgICAgICAgICAgIChmb3JtYXQgIjx0ZCBzdHls ZT1cIiVzXCI+JXMmbmJzcDsmbmJzcDslczwvdGQ+XG4iIHRpdGxlLXN0eWxlIGltZy10YWcKICAg ICAgICAgICAgICAgICAgICAgIChoZnl2aWV3LWRla2x1ZGdlLXN0cmluZyBmcmFtZS10aXRsZSkp CiAgICAgICAgICAgICAgIjwvdHI+XG4iCiAgICAgICAgICAgICAgIjx0cj5cbiIKICAgICAgICAg ICAgICBodG1sCiAgICAgICAgICAgICAgIjwvdHI+XG4iCiAgICAgICAgICAgICAgIjx0cj5cbiIK ICAgICAgICAgICAgICAiPHRkIHN0eWxlPVwicGFkZGluZzoxcHg7XCI+XG4iCiAgICAgICAgICAg ICAgbWluaS1odG1sCiAgICAgICAgICAgICAgIjwvdGQ+XG4iCiAgICAgICAgICAgICAgIjwvdHI+ XG4iCiAgICAgICAgICAgICAgIjwvdGFibGU+XG4iCiAgICAgICAgICAgICAgaGZ5dmlldy14aHRt bC1mb290ZXIpCiAgICAgIChicm93c2UtdXJsLW9mLWJ1ZmZlcikKICAgICAgb3V0YnVmKSkpCgoo ZGVmdW4gaGZ5LWdyYWItZWNoby1jb250ZW50ICgpCiAgIlJldHVybiBlY2hvIGFyZWEgY29udGVu dC4iCiAgKHNldHEgaGZ5LWdyYWJiZWQtZWNoby1jb250ZW50IChjdXJyZW50LW1lc3NhZ2UpKSkK CihkZWZ1biBoZnktZ3JhYi1taW5pYnVmZmVyLWNvbnRlbnQgKCkKICAiUmV0dXJuIG1pbmlidWZm ZXIgY29udGVudC4iCiAgOzsoaW50ZXJhY3RpdmUpCiAgKGxldCogKChtdyAobWluaWJ1ZmZlci13 aW5kb3cpKQogICAgICAgICAobWIgKHdpbmRvdy1idWZmZXIgbXcpKSkKICAgIChzZXRxIGhmeS1n cmFiYmVkLW1pbmlidWZmZXItY29udGVudAogICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIg bWIKICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZwogICAgICAgICAgICAgICAocG9pbnQt bWluKSAocG9pbnQtbWF4KSkpCiAgICAgICAgICAgICkpKQoKOzsoYWRkLWhvb2sgJ3ByZS1jb21t YW5kLWhvb2sgJ2dyYWItbWluaWJ1ZmZlci1jb250ZW50IG5pbCB0KQo7OyhyZW1vdmUtaG9vayAn cHJlLWNvbW1hbmQtaG9vayAnZ3JhYi1taW5pYnVmZmVyLWNvbnRlbnQpIHQpCgoocHJvdmlkZSAn aGZ5dmlldykKOzs7IGhmeXZpZXcuZWwgZW5kcyBoZXJlCg== --0016e68e9ff38fab350478e068a3-- ------------=_1260338705-29054-0 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 5002-done) by emacsbugs.donarmstrong.com; 9 Dec 2009 05:57:52 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.5 required=4.0 tests=AWL,HAS_BUG_NUMBER, MURPHY_DRUGS_REL8 autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from ironport2-out.pppoe.ca (ironport2-out.teksavvy.com [206.248.154.183]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nB95vovB028170 for <5002-done@emacsbugs.donarmstrong.com>; Tue, 8 Dec 2009 21:57:51 -0800 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArEEAHPLHkvO+INN/2dsb2JhbACBTNVHhCwEiho X-IronPort-AV: E=Sophos;i="4.47,366,1257138000"; d="scan'208";a="51079782" Received: from 206-248-131-77.dsl.teksavvy.com (HELO ceviche.home) ([206.248.131.77]) by ironport2-out.pppoe.ca with ESMTP; 09 Dec 2009 00:57:44 -0500 Received: by ceviche.home (Postfix, from userid 20848) id 162F1B4214; Wed, 9 Dec 2009 00:57:44 -0500 (EST) From: Stefan Monnier To: Vivek Dasmohapatra Subject: Re: bug#5002: patch Message-ID: References: Date: Wed, 09 Dec 2009 00:57:43 -0500 In-Reply-To: (Vivek Dasmohapatra's message of "Thu, 26 Nov 2009 05:32:35 +0000 (GMT)") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii > This patch should allow those props to be stripped. > A defcustom has been added and the properties listed in it should be > ripped out just after the buffer is copied. Installed, Stefan ------------=_1260338705-29054-0--