From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Vivek Dasmohapatra Newsgroups: gmane.emacs.devel Subject: Re: hexl mode update Date: Tue, 21 Jul 2009 01:44:58 +0100 (BST) Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-503509624-1248137115=:27813" X-Trace: ger.gmane.org 1248137152 10106 80.91.229.12 (21 Jul 2009 00:45:52 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 21 Jul 2009 00:45:52 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jul 21 02:45:45 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1MT3UD-00060a-Vs for ged-emacs-devel@m.gmane.org; Tue, 21 Jul 2009 02:45:45 +0200 Original-Received: from localhost ([127.0.0.1]:51962 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MT3UD-00045a-DZ for ged-emacs-devel@m.gmane.org; Mon, 20 Jul 2009 20:45:41 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MT3U6-00045T-B9 for emacs-devel@gnu.org; Mon, 20 Jul 2009 20:45:34 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MT3U4-00045H-Bf for emacs-devel@gnu.org; Mon, 20 Jul 2009 20:45:33 -0400 Original-Received: from [199.232.76.173] (port=55149 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MT3U4-00045E-5p for emacs-devel@gnu.org; Mon, 20 Jul 2009 20:45:32 -0400 Original-Received: from flounder.pepperfish.net ([87.237.62.181]:51129) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MT3U3-00083v-BI for emacs-devel@gnu.org; Mon, 20 Jul 2009 20:45:31 -0400 Original-Received: from [213.165.225.94] (helo=[192.168.0.5]) by flounder.pepperfish.net with esmtpsa (Exim 4.69 #1 (Debian)) id 1MT3Te-00075e-Om for ; Tue, 21 Jul 2009 01:45:07 +0100 X-X-Sender: vivek@localhost In-Reply-To: User-Agent: Alpine 1.10 (DEB 962 2008-03-14) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:112875 Archived-At: This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323328-503509624-1248137115=:27813 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed On Thu, 16 Jul 2009, Stefan Monnier wrote: >>> Now would be a good time to submit it, >> Ok. Is there any particular branch/repo/etc you'd like a patch against? > > CVS trunk. Note that I haven't looked at your code yet. Please send it > to emacs-devel@gnu.org. Here it is. The user can select the "word size" hexl will use with defcustom (it currently screws up if you change this size behind hexl's back, ie after hexlifying a buffer but before unhexlifying it: this could be fixed by saving the word size used in a a local variable in the hexl buffer, let me know if you think this is important enough to add). Other than that, the hexl code doesn't seem to have changed since I last updated the patch from emacs 22 to emacs 23. The word-size could also be chosen at invocation time via a prefix arg, but I have not done this yet either: Again, let me know if you think it's worth adding. I originally prepared this patch for a friend who was debugging something and needed other word sizes: Upon investigation I discovered that the hexl binary had support for the word sizes 8, 16, 32 and 64 bits but the hexl mode code only supported one of those - hence this patch. --8323328-503509624-1248137115=:27813 Content-Type: TEXT/x-diff; name=hexl.variable-word-size.2009-07-21.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=hexl.variable-word-size.2009-07-21.patch ZGlmZiAtLWdpdCBhL2xpc3AvaGV4bC5lbCBiL2xpc3AvaGV4bC5lbA0KaW5k ZXggMmNkZDQ0OS4uMGVlYmU1NSAxMDA2NDQNCi0tLSBhL2xpc3AvaGV4bC5l bA0KKysrIGIvbGlzcC9oZXhsLmVsDQpAQCAtNTEsNiArNTEsMTMgQEANCiAg ICJFZGl0IGEgZmlsZSBpbiBhIGhleCBkdW1wIGZvcm1hdCB1c2luZyB0aGUg aGV4bCBmaWx0ZXIuIg0KICAgOmdyb3VwICdkYXRhKQ0KIA0KKyhkZWZjdXN0 b20gaGV4bC1iaXRzIDE2DQorICAiVGhlIGJpdCBncm91cGluZyB0aGF0IGhl eGwgd2lsbCB1c2UiDQorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOCApDQor ICAgICAgICAgICAgICAgICAoY29uc3QgMTYpDQorICAgICAgICAgICAgICAg ICAoY29uc3QgMzIpDQorICAgICAgICAgICAgICAgICAoY29uc3QgNjQpKQ0K KyAgOmdyb3VwICdoZXhsKQ0KIA0KIChkZWZjdXN0b20gaGV4bC1wcm9ncmFt ICJoZXhsIg0KICAgIlRoZSBwcm9ncmFtIHRoYXQgd2lsbCBoZXhsaWZ5IGFu ZCBkZWhleGxpZnkgaXRzIHN0ZGluLg0KQEAgLTEzNSw2ICsxNDIsMTUgQEAg UXVvdGluZyBjYW5ub3QgYmUgdXNlZCwgc28gdGhlIGFyZ3VtZW50cyBjYW5u b3QgdGhlbXNlbHZlcyBjb250YWluIHNwYWNlcy4iDQogDQogKHB1dCAnaGV4 bC1tb2RlICdtb2RlLWNsYXNzICdzcGVjaWFsKQ0KIA0KKzs7IDEwIGNoYXJz IGZvciB0aGUgImFkZHJlc3M6ICINCis7OyAzMiBjaGFycyBmb3IgdGhlIGhl eGxpZmllZCBieXRlcw0KKzs7IDEgY2hhciBmb3IgdGhlIHNwYWNlIA0KKzs7 IDE2IGNoYXJzIGZvciB0aGUgY2hhcmFjdGVyIGRpc3BsYXkNCis7OyBYIGNo YXJzIGZvciB0aGUgc3BhY2VzICgxMjggYml0cyBkaXZpZGVkIGJ5IHRoZSBo ZXhsLWJpdHMpDQorOzsgMSBjaGFyIGZvciB0aGUgbmV3bGluZS4NCisoZGVm dW4gaGV4bC1saW5lLWRpc3BsZW4gKCkNCisgICgrIDYwICgvIDEyOCAob3Ig aGV4bC1iaXRzIDE2KSkpKQ0KKw0KIDs7OyMjI2F1dG9sb2FkDQogKGRlZnVu IGhleGwtbW9kZSAoJm9wdGlvbmFsIGFyZykNCiAgICJcXDxoZXhsLW1vZGUt bWFwPkEgbW9kZSBmb3IgZWRpdGluZyBiaW5hcnkgZmlsZXMgaW4gaGV4IGR1 bXAgZm9ybWF0Lg0KQEAgLTIxMywyNyArMjI5LDMzIEBAIFlvdSBjYW4gdXNl IFxcW2hleGwtZmluZC1maWxlXSB0byB2aXNpdCBhIGZpbGUgaW4gSGV4bCBt b2RlLg0KICAgKHVubGVzcyAoZXEgbWFqb3ItbW9kZSAnaGV4bC1tb2RlKQ0K ICAgICAobGV0ICgobW9kaWZpZWQgKGJ1ZmZlci1tb2RpZmllZC1wKSkNCiAJ ICAoaW5oaWJpdC1yZWFkLW9ubHkgdCkNCi0JICAob3JpZ2luYWwtcG9pbnQg KC0gKHBvaW50KSAocG9pbnQtbWluKSkpKQ0KKwkgIChvcmlnaW5hbC1wb2lu dCAoLSAocG9pbnQpIChwb2ludC1taW4pKSkNCisJICBtYXgtYWRkcmVzcykN CiAgICAgICAoYW5kIChlb2JwKSAobm90IChib2JwKSkNCiAJICAgKHNldHEg b3JpZ2luYWwtcG9pbnQgKDEtIG9yaWdpbmFsLXBvaW50KSkpDQotICAgICAg OzsgSWYgYGhleGwtbW9kZScgaXMgaW52b2tlZCB3aXRoIGFuIGFyZ3VtZW50 IHRoZSBidWZmZXIgaXMgYXNzdW1lZCB0bw0KLSAgICAgIDs7IGJlIGluIGhl eGwgZm9ybWF0Lg0KLSAgICAgICh3aGVuIChtZW1xIGFyZyAnKDEgbmlsKSkN CisgICAgICAoaWYgKG5vdCAobWVtcSBhcmcgJygxIG5pbCkpKQ0KKwkgIDs7 IGlmIG5vIGFyZ3VtZW50IHRoZW4gd2UgZ3Vlc3MgYXQgaGV4bC1tYXgtYWRk cmVzcw0KKyAgICAgICAgICAoc2V0cSBtYXgtYWRkcmVzcyANCisgICAgICAg ICAgICAgICAgKCsgKCogKC8gKDEtIChidWZmZXItc2l6ZSkpIChoZXhsLWxp bmUtZGlzcGxlbikpIDE2KSAxNSkpDQorICAgICAgICAoc2V0cSBtYXgtYWRk cmVzcyAoMS0gKGJ1ZmZlci1zaXplKSkpDQogCTs7IElmIHRoZSBidWZmZXIn cyBFT0wgdHlwZSBpcyAtZG9zLCB3ZSBuZWVkIHRvIGFjY291bnQgZm9yDQog CTs7IGV4dHJhIENSIGNoYXJhY3RlcnMgYWRkZWQgd2hlbiBoZXhsaWZ5LWJ1 ZmZlciB3cml0ZXMgdGhlDQogCTs7IGJ1ZmZlciB0byBhIGZpbGUuDQogICAg ICAgICA7OyBGSVhNRTogVGhpcyBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50 IG11bHRpYnl0ZSBjb2Rpbmcgc3lzdGVtcy4NCiAJKHdoZW4gKGVxIChjb2Rp bmctc3lzdGVtLWVvbC10eXBlIGJ1ZmZlci1maWxlLWNvZGluZy1zeXN0ZW0p IDEpDQotICAgICAgICAgIChzZXRxIG9yaWdpbmFsLXBvaW50ICgrIChjb3Vu dC1saW5lcyAocG9pbnQtbWluKSAocG9pbnQpKQ0KKyAgICAgICAgICAoc2V0 cSBtYXgtYWRkcmVzcyAoKyAoY291bnQtbGluZXMgKHBvaW50LW1pbikgKHBv aW50LW1heCkpDQorCQkJICAgICAgIG1heC1hZGRyZXNzKSkNCisJICA7OyBC dXQgaWYgdGhlcmUncyBubyBuZXdsaW5lIGF0IHRoZSBsYXN0IGxpbmUsIHdl IGFyZSBvZmYgYnkNCisJICA7OyBvbmU7IGFkanVzdC4NCisJICAob3IgKGVx IChjaGFyLWJlZm9yZSAocG9pbnQtbWF4KSkgP1xuKQ0KKwkgICAgICAoc2V0 cSBtYXgtYWRkcmVzcyAoMS0gbWF4LWFkZHJlc3MpKSkNCisJICAoc2V0cSBv cmlnaW5hbC1wb2ludCAoKyAoY291bnQtbGluZXMgKHBvaW50LW1pbikgKHBv aW50KSkNCiAJCQkJICBvcmlnaW5hbC1wb2ludCkpDQogCSAgKG9yIChib2xw KSAoc2V0cSBvcmlnaW5hbC1wb2ludCAoMS0gb3JpZ2luYWwtcG9pbnQpKSkp DQogICAgICAgICAoaGV4bGlmeS1idWZmZXIpDQogICAgICAgICAocmVzdG9y ZS1idWZmZXItbW9kaWZpZWQtcCBtb2RpZmllZCkpDQotICAgICAgKHNldCAo bWFrZS1sb2NhbC12YXJpYWJsZSAnaGV4bC1tYXgtYWRkcmVzcykNCi0gICAg ICAgICAgIChsZXQqICgoZnVsbC1saW5lcyAoLyAoYnVmZmVyLXNpemUpIDY4 KSkNCi0gICAgICAgICAgICAgICAgICAobGFzdC1saW5lICglIChidWZmZXIt c2l6ZSkgNjgpKQ0KLSAgICAgICAgICAgICAgICAgIChsYXN0LWxpbmUtYnl0 ZXMgKCUgbGFzdC1saW5lIDUyKSkpDQotICAgICAgICAgICAgICgrIGxhc3Qt bGluZS1ieXRlcyAoKiBmdWxsLWxpbmVzIDE2KSAtMSkpKQ0KKyAgICAgICht YWtlLWxvY2FsLXZhcmlhYmxlICdoZXhsLW1heC1hZGRyZXNzKQ0KKyAgICAg IChzZXRxIGhleGwtbWF4LWFkZHJlc3MgbWF4LWFkZHJlc3MpDQogICAgICAg KGNvbmRpdGlvbi1jYXNlIG5pbA0KIAkgIChoZXhsLWdvdG8tYWRkcmVzcyBv cmlnaW5hbC1wb2ludCkNCiAJKGVycm9yIG5pbCkpKQ0KQEAgLTQzNiwxOSAr NDU4LDIzIEBAIEFzayB0aGUgdXNlciBmb3IgY29uZmlybWF0aW9uLiINCiAo ZGVmdW4gaGV4bC1jdXJyZW50LWFkZHJlc3MgKCZvcHRpb25hbCB2YWxpZGF0 ZSkNCiAgICJSZXR1cm4gY3VycmVudCBoZXhsLWFkZHJlc3MuIg0KICAgKGlu dGVyYWN0aXZlKQ0KLSAgKGxldCAoKGN1cnJlbnQtY29sdW1uICgtICglICgt IChwb2ludCkgKHBvaW50LW1pbikgLTEpIDY4KSAxMSkpDQorICAobGV0ICgo Y3VycmVudC1jb2x1bW4gDQorICAgICAgICAgKC0gKCUgKC0gKHBvaW50KSAo cG9pbnQtbWluKSAtMSkgKGhleGwtbGluZS1kaXNwbGVuKSkgMTEpKQ0KIAko aGV4bC1hZGRyZXNzIDApKQ0KICAgICAoaWYgKDwgY3VycmVudC1jb2x1bW4g MCkNCiAJKGlmIHZhbGlkYXRlDQogCSAgICAoZXJyb3IgIlBvaW50IGlzIG5v dCBvbiBhIGNoYXJhY3RlciBpbiB0aGUgZmlsZSIpDQogCSAgKHNldHEgY3Vy cmVudC1jb2x1bW4gMCkpKQ0KICAgICAoc2V0cSBoZXhsLWFkZHJlc3MNCi0J ICAoKyAoKiAoLyAoLSAocG9pbnQpIChwb2ludC1taW4pIC0xKSA2OCkgMTYp DQotCSAgICAgKGlmICg+PSBjdXJyZW50LWNvbHVtbiA0MSkNCi0JCSAoLSBj dXJyZW50LWNvbHVtbiA0MSkNCi0JICAgICAgICgvICgtIGN1cnJlbnQtY29s dW1uICAoLyBjdXJyZW50LWNvbHVtbiA1KSkgMikpKSkNCisJICAoKyAoKiAo LyAoLSAocG9pbnQpIChwb2ludC1taW4pIC0xKSANCisgICAgICAgICAgICAg ICAgICAgKGhleGwtbGluZS1kaXNwbGVuKSkgMTYpDQorCSAgICAgKGlmICg+ PSBjdXJyZW50LWNvbHVtbiAoLSAoaGV4bC1hc2NpaS1zdGFydC1jb2x1bW4p IDEwKSkNCisJCSAoLSBjdXJyZW50LWNvbHVtbiAoLSAoaGV4bC1hc2NpaS1z dGFydC1jb2x1bW4pIDEwKSkNCisgICAgICAgICAgICAgICAoLyAoLSBjdXJy ZW50LWNvbHVtbiANCisgICAgICAgICAgICAgICAgICAgICAoLyBjdXJyZW50 LWNvbHVtbiAoMSsgKC8gaGV4bC1iaXRzIDQpKSkpIDIpICkpICkNCiAgICAg KHdoZW4gKGludGVyYWN0aXZlLXApDQotICAgICAgKG1lc3NhZ2UgIkN1cnJl bnQgYWRkcmVzcyBpcyAlZC8weCUwOHgiIGhleGwtYWRkcmVzcyBoZXhsLWFk ZHJlc3MpKQ0KKyAgICAgIChtZXNzYWdlICJDdXJyZW50IGFkZHJlc3MgaXMg W2NvbHVtbjogJWRdICVkLzB4JTA4eCIgDQorICAgICAgICAgICAgICAgY3Vy cmVudC1jb2x1bW4gaGV4bC1hZGRyZXNzIGhleGwtYWRkcmVzcykpDQogICAg IGhleGwtYWRkcmVzcykpDQogDQogKGRlZnVuIGhleGwtcHJpbnQtY3VycmVu dC1wb2ludC1pbmZvICgpDQpAQCAtNDU3LDEwICs0ODMsMTggQEAgVGhpcyBm dW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIGVsZG9jIGNhbGxi YWNrLiINCiAgIChsZXQgKChhZGRyIChoZXhsLWN1cnJlbnQtYWRkcmVzcykp KQ0KICAgICAoZm9ybWF0ICJDdXJyZW50IGFkZHJlc3MgaXMgJWQvMHglMDh4 IiBhZGRyIGFkZHIpKSkNCiANCisoZGVmdW4gaGV4bC1hc2NpaS1zdGFydC1j b2x1bW4gKCkgDQorICAiQ29sdW1uIGF0IHdoaWNoIHRoZSBhc2NpaSBkaXNw bGF5IHN0YXJ0cy4iDQorICAoKyA0MyAoLyAxMjggaGV4bC1iaXRzKSkpDQor DQogKGRlZnVuIGhleGwtYWRkcmVzcy10by1tYXJrZXIgKGFkZHJlc3MpDQog ICAiUmV0dXJuIGJ1ZmZlciBwb3NpdGlvbiBmb3IgQUREUkVTUy4iDQogICAo aW50ZXJhY3RpdmUgIm5BZGRyZXNzOiAiKQ0KLSAgKCsgKCogKC8gYWRkcmVz cyAxNikgNjgpIDEwIChwb2ludC1taW4pICgvICgqICglIGFkZHJlc3MgMTYp IDUpIDIpKSkNCisgIChsZXQgKChOICgqICglIGFkZHJlc3MgMTYpIDIpKSkN CisgICAgKCsgKCogKC8gYWRkcmVzcyAxNikgKGhleGwtbGluZS1kaXNwbGVu KSkgOyBoZXhsIGxpbmUgbm8gKiBkaXNwbGF5IGxlbmd0aA0KKyAgICAgICAx MCAgICAgICAgICAgICAgICAgICAgICA7IDEwIGNoYXJzIGZvciB0aGUgImFk ZHJlc3M6ICIgcHJlZml4DQorICAgICAgIChwb2ludC1taW4pICAgICAgICAg ICAgIDsgYmFzZSBvZmZzZXQgKHBvaW50IHVzdWFsbHkgc3RhcnRzIGF0IDEs IG5vdCAwKQ0KKyAgICAgICAoKyBOICgvIE4gKC8gaGV4bC1iaXRzIDQpKSkg KSkgKSA7IGNoYXIgb2Zmc2V0IGludG8gaGV4bCBkaXNwbGF5IGxpbmUNCiAN CiAoZGVmdW4gaGV4bC1nb3RvLWFkZHJlc3MgKGFkZHJlc3MpDQogICAiR28g dG8gaGV4bC1tb2RlIChkZWNpbWFsKSBhZGRyZXNzIEFERFJFU1MuDQpAQCAt NTA1LDcgKzUzOSw3IEBAIFNpZ25hbCBlcnJvciBpZiBIRVgtQUREUkVTUyBp cyBvdXQgb2YgcmFuZ2UuIg0KICAgKGhleGwtZ290by1hZGRyZXNzICgtICho ZXhsLWN1cnJlbnQtYWRkcmVzcykgYXJnKSkpDQogDQogKGRlZnVuIGhleGwt Zm9yd2FyZC1jaGFyIChhcmcpDQotICAiTW92ZSB0byByaWdodCBBUkcgYnl0 ZXMgKGxlZnQgaWYgQVJHIG5lZ2F0aXZlKSBpbiBoZXhsLW1vZGUuIg0KKyAg Ik1vdmUgcmlnaHQgQVJHIGJ5dGVzIChsZWZ0IGlmIEFSRyBuZWdhdGl2ZSkg aW4gaGV4bC1tb2RlLiINCiAgIChpbnRlcmFjdGl2ZSAicCIpDQogICAoaGV4 bC1nb3RvLWFkZHJlc3MgKCsgKGhleGwtY3VycmVudC1hZGRyZXNzKSBhcmcp KSkNCiANCkBAIC01NDQsNyArNTc4LDcgQEAgU2lnbmFsIGVycm9yIGlmIEhF WC1BRERSRVNTIGlzIG91dCBvZiByYW5nZS4iDQogCQkgICAgICAgYWRkcmVz cykpKQ0KIA0KIChkZWZ1biBoZXhsLWZvcndhcmQtc2hvcnQgKGFyZykNCi0g ICJNb3ZlIHRvIHJpZ2h0IEFSRyBzaG9ydHMgKGxlZnQgaWYgQVJHIG5lZ2F0 aXZlKSBpbiBoZXhsLW1vZGUuIg0KKyAgIk1vdmUgcmlnaHQgQVJHIHNob3J0 cyAobGVmdCBpZiBBUkcgbmVnYXRpdmUpIGluIGhleGwtbW9kZS4iDQogICAo aW50ZXJhY3RpdmUgInAiKQ0KICAgKGhleGwtYmFja3dhcmQtc2hvcnQgKC0g YXJnKSkpDQogDQpAQCAtNTgzLDcgKzYxNyw3IEBAIFNpZ25hbCBlcnJvciBp ZiBIRVgtQUREUkVTUyBpcyBvdXQgb2YgcmFuZ2UuIg0KIAkJICAgICAgIGFk ZHJlc3MpKSkNCiANCiAoZGVmdW4gaGV4bC1mb3J3YXJkLXdvcmQgKGFyZykN Ci0gICJNb3ZlIHRvIHJpZ2h0IEFSRyB3b3JkcyAobGVmdCBpZiBBUkcgbmVn YXRpdmUpIGluIGhleGwtbW9kZS4iDQorICAiTW92ZSByaWdodCBBUkcgd29y ZHMgKGxlZnQgaWYgQVJHIG5lZ2F0aXZlKSBpbiBoZXhsLW1vZGUuIg0KICAg KGludGVyYWN0aXZlICJwIikNCiAgIChoZXhsLWJhY2t3YXJkLXdvcmQgKC0g YXJnKSkpDQogDQpAQCAtNjMwLDcgKzY2NCw3IEBAIFdpdGggcHJlZml4IGFy ZyBOLCBwdXRzIHBvaW50IE4gYnl0ZXMgb2YgdGhlIHdheSBmcm9tIHRoZSB0 cnVlIGJlZ2lubmluZy4iDQogKGRlZnVuIGhleGwtYmVnaW5uaW5nLW9mLWxp bmUgKCkNCiAgICJHb3RvIGJlZ2lubmluZyBvZiBsaW5lIGluIGhleGwgbW9k ZS4iDQogICAoaW50ZXJhY3RpdmUpDQotICAoZ290by1jaGFyICgrICgqICgv IChwb2ludCkgNjgpIDY4KSAxMSkpKQ0KKyAgKGdvdG8tY2hhciAoKyAoKiAo LyAocG9pbnQpIChoZXhsLWxpbmUtZGlzcGxlbikpIChoZXhsLWxpbmUtZGlz cGxlbikpIDExKSkpDQogDQogKGRlZnVuIGhleGwtZW5kLW9mLWxpbmUgKCkN CiAgICJHb3RvIGVuZCBvZiBsaW5lIGluIGhleGwgbW9kZS4iDQpAQCAtNjc1 LDEyICs3MDksMTIgQEAgSWYgdGhlcmUncyBubyBieXRlIGF0IHRoZSB0YXJn ZXQgYWRkcmVzcywgbW92ZSB0byB0aGUgZmlyc3Qgb3IgbGFzdCBsaW5lLiIN CiAgICAgKHJlY2VudGVyIDApKSkNCiANCiAoZGVmdW4gaGV4bC1iZWdpbm5p bmctb2YtMWstcGFnZSAoKQ0KLSAgIkdvIHRvIGJlZ2lubmluZyBvZiAxS0Ig Ym91bmRhcnkuIg0KKyAgIkdvIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1 cnJlbnQgMSBLaUIgYmxvY2siDQogICAoaW50ZXJhY3RpdmUpDQogICAoaGV4 bC1nb3RvLWFkZHJlc3MgKGxvZ2FuZCAoaGV4bC1jdXJyZW50LWFkZHJlc3Mp IC0xMDI0KSkpDQogDQogKGRlZnVuIGhleGwtZW5kLW9mLTFrLXBhZ2UgKCkN Ci0gICJHbyB0byBlbmQgb2YgMUtCIGJvdW5kYXJ5LiINCisgICJHbyB0byB0 aGUgZW5kIG9mIHRoZSBjdXJyZW50IDEgS2lCIGJsb2NrLiINCiAgIChpbnRl cmFjdGl2ZSkNCiAgIChoZXhsLWdvdG8tYWRkcmVzcyAobGV0ICgoYWRkcmVz cyAobG9naW9yIChoZXhsLWN1cnJlbnQtYWRkcmVzcykgMTAyMykpKQ0KIAkJ ICAgICAgIChpZiAoPiBhZGRyZXNzIGhleGwtbWF4LWFkZHJlc3MpDQpAQCAt NzEwLDYgKzc0NCwxNSBAQCBZb3UgbWF5IGFsc28gdHlwZSBvY3RhbCBkaWdp dHMsIHRvIGluc2VydCBhIGNoYXJhY3RlciB3aXRoIHRoYXQgY29kZS4iDQog DQogOzAwMDAwMDAwOiAwMDExIDIyMzMgNDQ1NSA2Njc3IDg4OTkgYWFiYiBj Y2RkIGVlZmYgIDAxMjM0NTY3ODlBQkNERUYNCiANCisoZGVmdW4gaGV4bC1v cHRpb25zICgmb3B0aW9uYWwgdGVzdCkNCisgIChsZXQgKChvcHRzIChvciB0 ZXN0IGhleGwtb3B0aW9ucykpKQ0KKyAgICAod2hlbiAobWVtcSBoZXhsLWJp dHMgJyg4IDE2IDMyIDY0KSkNCisgICAgICAod2hlbiAoc3RyaW5nLW1hdGNo ICJcXCguKlxcKS1ncm91cC1ieS1bMC05XSstYml0c1xcKC4qXFwpIiBvcHRz KQ0KKyAgICAgICAgKHNldHEgb3B0cyAoY29uY2F0IChtYXRjaC1zdHJpbmcg MSBvcHRzKSANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2gt c3RyaW5nIDIgb3B0cykpKSApIA0KKyAgICAgIChzZXRxIG9wdHMgKGZvcm1h dCAiJXMgLWdyb3VwLWJ5LSVkLWJpdHMgIiBvcHRzIGhleGwtYml0cykpICkN CisgICAgb3B0cykpDQorDQogOzs7IyMjYXV0b2xvYWQNCiAoZGVmdW4gaGV4 bGlmeS1idWZmZXIgKCkNCiAgICJDb252ZXJ0IGEgYmluYXJ5IGJ1ZmZlciB0 byBoZXhsIGZvcm1hdC4NCkBAIC03MzIsNyArNzc1LDcgQEAgVGhpcyBkaXNj YXJkcyB0aGUgYnVmZmVyJ3MgdW5kbyBpbmZvcm1hdGlvbi4iDQogICAgICAg ICAgICAobWFwY2FyIChsYW1iZGEgKHMpDQogICAgICAgICAgICAgICAgICAg ICAgKGlmIChub3QgKG11bHRpYnl0ZS1zdHJpbmctcCBzKSkgcw0KICAgICAg ICAgICAgICAgICAgICAgICAgKGVuY29kZS1jb2Rpbmctc3RyaW5nIHMgbG9j YWxlLWNvZGluZy1zeXN0ZW0pKSkNCi0gICAgICAgICAgICAgICAgICAgKHNw bGl0LXN0cmluZyBoZXhsLW9wdGlvbnMpKSkNCisgICAgICAgICAgICAgICAg ICAgKHNwbGl0LXN0cmluZyAoaGV4bC1vcHRpb25zKSkpKQ0KICAgICAoaWYg KD4gKHBvaW50KSAoaGV4bC1hZGRyZXNzLXRvLW1hcmtlciBoZXhsLW1heC1h ZGRyZXNzKSkNCiAJKGhleGwtZ290by1hZGRyZXNzIGhleGwtbWF4LWFkZHJl c3MpKSkpDQogDQpAQCAtNzQ5LDcgKzc5Miw3IEBAIFRoaXMgZGlzY2FyZHMg dGhlIGJ1ZmZlcidzIHVuZG8gaW5mb3JtYXRpb24uIg0KIAkoYnVmZmVyLXVu ZG8tbGlzdCB0KSkNCiAgICAgKGFwcGx5ICdjYWxsLXByb2Nlc3MtcmVnaW9u IChwb2ludC1taW4pIChwb2ludC1tYXgpDQogCSAgIChleHBhbmQtZmlsZS1u YW1lIGhleGwtcHJvZ3JhbSBleGVjLWRpcmVjdG9yeSkNCi0JICAgdCB0IG5p bCAiLWRlIiAoc3BsaXQtc3RyaW5nIGhleGwtb3B0aW9ucykpKSkNCisJICAg dCB0IG5pbCAiLWRlIiAoc3BsaXQtc3RyaW5nIChoZXhsLW9wdGlvbnMpKSkp KQ0KIA0KIChkZWZ1biBoZXhsLWNoYXItYWZ0ZXItcG9pbnQgKCkNCiAgICJS ZXR1cm4gY2hhciBmb3IgQVNDSUkgaGV4IGRpZ2l0cyBhdCBwb2ludC4iDQpA QCAtODQ2LDEyICs4ODksMTUgQEAgQ0ggbXVzdCBiZSBhIHVuaWJ5dGUgY2hh cmFjdGVyIHdob3NlIHZhbHVlIGlzIGJldHdlZW4gMCBhbmQgMjU1LiINCiAg IChsZXQgKChhZGRyZXNzIChoZXhsLWN1cnJlbnQtYWRkcmVzcyB0KSkpDQog ICAgICh3aGlsZSAoPiBudW0gMCkNCiAgICAgICAobGV0ICgoaGV4LXBvc2l0 aW9uDQotCSAgICAgKCsgKCogKC8gYWRkcmVzcyAxNikgNjgpDQorCSAgICAg KCsgKCogKC8gYWRkcmVzcyAxNikgKGhleGwtbGluZS1kaXNwbGVuKSkNCiAJ CTEwIChwb2ludC1taW4pDQogCQkoKiAyICglIGFkZHJlc3MgMTYpKQ0KIAkJ KC8gKCUgYWRkcmVzcyAxNikgMikpKQ0KIAkgICAgKGFzY2lpLXBvc2l0aW9u DQotCSAgICAgKCsgKCogKC8gYWRkcmVzcyAxNikgNjgpIDUxIChwb2ludC1t aW4pICglIGFkZHJlc3MgMTYpKSkNCisJICAgICAoKyAoKiAoLyBhZGRyZXNz IDE2KSAoaGV4bC1saW5lLWRpc3BsZW4pKSANCisgICAgICAgICAgICAgICAg KGhleGwtYXNjaWktc3RhcnQtY29sdW1uKSANCisgICAgICAgICAgICAgICAg KHBvaW50LW1pbikgDQorICAgICAgICAgICAgICAgICglIGFkZHJlc3MgMTYp KSkNCiAJICAgIGF0LWFzY2lpLXBvc2l0aW9uKQ0KIAkoaWYgKD0gKHBvaW50 KSBhc2NpaS1wb3NpdGlvbikNCiAJICAgIChzZXRxIGF0LWFzY2lpLXBvc2l0 aW9uIHQpKQ0KQEAgLTg2Nyw3ICs5MTMsNyBAQCBDSCBtdXN0IGJlIGEgdW5p Ynl0ZSBjaGFyYWN0ZXIgd2hvc2UgdmFsdWUgaXMgYmV0d2VlbiAwIGFuZCAy NTUuIg0KIAkoaWYgYXQtYXNjaWktcG9zaXRpb24NCiAJICAgIChwcm9nbg0K IAkgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpDQotCSAgICAgIChmb3J3YXJk LWNoYXIgNTEpDQorCSAgICAgIChmb3J3YXJkLWNoYXIgKGhleGwtYXNjaWkt c3RhcnQtY29sdW1uKSkNCiAJICAgICAgKGZvcndhcmQtY2hhciAoJSBhZGRy ZXNzIDE2KSkpKSkNCiAgICAgICAoc2V0cSBudW0gKDEtIG51bSkpKSkpDQog DQpAQCAtOTg1LDcgKzEwMzEsNyBAQCBUaGlzIGZ1bmN0aW9uIGlzIGFzc3Vt ZWQgdG8gYmUgdXNlZCBhcyBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYGhsLWxp bmUtbW9kZScuIg0KIA0KIChkZWZ1biBoZXhsLWZvbGxvdy1hc2NpaS1maW5k ICgpDQogICAiRmluZCBhbmQgaGlnaGxpZ2h0IHRoZSBBU0NJSSBlbGVtZW50 IGNvcnJlc3BvbmRpbmcgdG8gY3VycmVudCBwb2ludC4iDQotICAobGV0ICgo cG9zICgrIDUxDQorICAobGV0ICgocG9zICgrIChoZXhsLWFzY2lpLXN0YXJ0 LWNvbHVtbikNCiAJCSgtIChwb2ludCkgKGN1cnJlbnQtY29sdW1uKSkNCiAJ CShtb2QgKGhleGwtY3VycmVudC1hZGRyZXNzKSAxNikpKSkNCiAgICAgKG1v dmUtb3ZlcmxheSBoZXhsLWFzY2lpLW92ZXJsYXkgcG9zICgxKyBwb3MpKQ0K --8323328-503509624-1248137115=:27813--