From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: char equivalence classes in search - why not symmetric? Date: Thu, 10 Sep 2015 14:46:39 -0700 (PDT) Message-ID: References: <2a7b9134-af2a-462d-af6c-d02bad60bbe8@default> <834mjecdy7.fsf@gnu.org> <38061f42-eaf1-47c6-b74d-f676ac952b18@default> <83r3miatvl.fsf@gnu.org> <21998.29683.916211.867479@a1i15.kph.uni-mainz.de> <9A972800-D8F0-4DA8-877E-07D5BDC2E1F9@gmail.com> <87oahd11i9.fsf@uwakimon.sk.tsukuba.ac.jp> <8cf269bc-69d8-4752-8506-de8d992512e1@default> <87mvwx0wdq.fsf@uwakimon.sk.tsukuba.ac.jp> <42be0ab7-f1e0-4fac-8b80-0e1686e88445@default> <87fv2o24mf.fsf@uwakimon.sk.tsukuba.ac.jp> <4bf04d46-418d-4950-9de3-d9f9130ce8bf@default> <116512ec-bdec-43de-afa9-dc01a57715e8@default> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="__1441921601312250337abhmp0013.oracle.com" X-Trace: ger.gmane.org 1441921642 17053 80.91.229.3 (10 Sep 2015 21:47:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 10 Sep 2015 21:47:22 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Sep 10 23:47:10 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Za9gO-000653-UL for ged-emacs-devel@m.gmane.org; Thu, 10 Sep 2015 23:47:05 +0200 Original-Received: from localhost ([::1]:52194 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Za9gO-000794-62 for ged-emacs-devel@m.gmane.org; Thu, 10 Sep 2015 17:47:04 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55955) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Za9g7-00078j-FZ for emacs-devel@gnu.org; Thu, 10 Sep 2015 17:46:51 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Za9g3-0007Gn-DE for emacs-devel@gnu.org; Thu, 10 Sep 2015 17:46:47 -0400 Original-Received: from userp1040.oracle.com ([156.151.31.81]:28285) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Za9g3-0007Fx-34 for emacs-devel@gnu.org; Thu, 10 Sep 2015 17:46:43 -0400 Original-Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t8ALkfxU031521 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 10 Sep 2015 21:46:42 GMT Original-Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userv0021.oracle.com (8.13.8/8.13.8) with ESMTP id t8ALkfSw018054 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Thu, 10 Sep 2015 21:46:41 GMT Original-Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by userv0122.oracle.com (8.13.8/8.13.8) with ESMTP id t8ALkfF8009631 for ; Thu, 10 Sep 2015 21:46:41 GMT In-Reply-To: <116512ec-bdec-43de-afa9-dc01a57715e8@default> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9 (901082) [OL 12.0.6691.5000 (x86)] X-Source-IP: userv0021.oracle.com [156.151.31.71] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 156.151.31.81 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:189824 Archived-At: --__1441921601312250337abhmp0013.oracle.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Yesterday I said: > 2. The code I have is not sufficient for everything. You can > use it to see what the behavior is for single-char entries in the > char table, which includes accented chars (chars with diacritics). > But it does not also handle multiple-char entries in the table. >=20 > For instance, you can search for "=C3=A9" and get char folding, but you > cannot search for "e=CC=81" and get char folding. The first of these is > just the char named LATIN SMALL LETTER E WITH ACUTE. The second is > plain "e" composed with "=CC=81" (the char named COMBINING ACUTE ACCENT)= . >=20 > Some more work would be needed to make such combinations work too. > As I said, I'm no expert on char tables. But the attached code > should give you a good idea of what is involved. The attached version seems to take care of this, so you can search with, say, the decomposition "e=CC=81" and get the same effect as searching for the fully composed char "=C3=A9". Again, just load the file, to try it out. Remember that M-s ' toggles char folding. At the end of the file there are a few strings you can use to test. When you see two consecutive strings there that look the same, the first is a decomposition, and the second is the same char fully composed. For example: "e=CC=81" "=C3=A9". (The first string is two chars, however i= t might be displayed.) `C-u C-x =3D' on the first char of the first string tells you: LATIN SMALL LETTER E, decomposition: (101) ('e') and on the second char it tells you: COMBINING ACUTE ACCENT, decomposition: (769) ('=CC=81'). `C-u C-x =3D' on the single char of the second string tells you: LATIN SMALL LETTER E WITH ACUTE, decomposition: (101 769) ('e' '=CC=81') --__1441921601312250337abhmp0013.oracle.com Content-Type: application/octet-stream; name="symmetric-char-fold.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="symmetric-char-fold.el" KHNldHEgY2hhcmFjdGVyLWZvbGQtc2VhcmNoIHQpCihsb2FkLWxpYnJhcnkgImNoYXJhY3Rlci1m b2xkIikKCihkZWZ2YXIgY2hhci1mb2xkLWRlY29tcHMgKCkKICAiTGlzdCBvZiBjb25zZXMgb2Yg YSBkZWNvbXBvc2l0aW9uIGFuZCBpdHMgYmFzZSBjaGFyLiIpCgooZGVmdW4gdXBkYXRlLWNoYXIt Zm9sZC10YWJsZSAoKQogICJVcGRhdGUgdGhlIHZhbHVlIG9mIHZhcmlhYmxlIGBjaGFyYWN0ZXIt Zm9sZC10YWJsZScuClRoZSBuZXcgdmFsdWUgcmVmbGVjdHMgdGhlIGN1cnJlbnQgdmFsdWUgb2Yg YGNoYXItZm9sZC1zeW1tZXRyaWMnLiIKICAoc2V0cSBjaGFyLWZvbGQtZGVjb21wcyAgKCkpCiAg KHNldHEgY2hhcmFjdGVyLWZvbGQtdGFibGUKICAgICAgICAobGV0KiAoKGVxdWl2ICAobWFrZS1j aGFyLXRhYmxlICdjaGFyYWN0ZXItZm9sZC10YWJsZSkpCiAgICAgICAgICAgICAgICh0YWJsZSAg KHVuaWNvZGUtcHJvcGVydHktdGFibGUtaW50ZXJuYWwgJ2RlY29tcG9zaXRpb24pKQogICAgICAg ICAgICAgICAoZnVuYyAgIChjaGFyLXRhYmxlLWV4dHJhLXNsb3QgdGFibGUgMSkpKQogICAgICAg ICAgOzsgRW5zdXJlIHRoZSB0YWJsZSBpcyBwb3B1bGF0ZWQuCiAgICAgICAgICAobWFwLWNoYXIt dGFibGUgKGxhbWJkYSAoaSB2KSAod2hlbiAoY29uc3AgaSkgKGZ1bmNhbGwgZnVuYyAoY2FyIGkp IHYgdGFibGUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZSkKICAgICAgICAgIDs7 IENvbXBpbGUgYSBsaXN0IG9mIGFsbCBjb21wbGV4IGNoYXJzIHRoYXQgZWFjaCBzaW1wbGUgY2hh ciBzaG91bGQgbWF0Y2guCiAgICAgICAgICAobWFwLWNoYXItdGFibGUKICAgICAgICAgICAobGFt YmRhIChpIGRlYykKICAgICAgICAgICAgICh3aGVuIChjb25zcCBkZWMpCiAgICAgICAgICAgICAg IDs7IERpc2NhcmQgYSBwb3NzaWJsZSBmb3JtYXR0aW5nIHRhZy4KICAgICAgICAgICAgICAgKHdo ZW4gKHN5bWJvbHAgKGNhciBkZWMpKQogICAgICAgICAgICAgICAgIChzZXRxIGRlYyAgKGNkciBk ZWMpKSkKICAgICAgICAgICAgICAgOzsgU2tpcCB0cml2aWFsIGNhc2VzIGxpa2UgP2EgZGVjb21w b3NpbmcgdG8gKD9hKS4KICAgICAgICAgICAgICAgKHVubGVzcyAoYW5kIChlcSBpIChjYXIgZGVj KSkgIChub3QgIChjZHIgZGVjKSkpCiAgICAgICAgICAgICAgICAgKGxldCAoKGQgICAgICAgICAg ICBkZWMpCiAgICAgICAgICAgICAgICAgICAgICAgKGZvbGQtZGVjb21wICB0KQogICAgICAgICAg ICAgICAgICAgICAgIGsgZm91bmQpCiAgICAgICAgICAgICAgICAgICAod2hpbGUgKGFuZCBkICAo bm90IGZvdW5kKSkKICAgICAgICAgICAgICAgICAgICAgKHNldHEgayAgKHBvcCBkKSkKICAgICAg ICAgICAgICAgICAgICAgOzsgSXMgayBhIG51bWJlciBvciBsZXR0ZXIsIHBlciB1bmljb2RlIHN0 YW5kYXJkPwogICAgICAgICAgICAgICAgICAgICAoc2V0cSBmb3VuZCAgKG1lbXEgKGdldC1jaGFy LWNvZGUtcHJvcGVydHkgayAnZ2VuZXJhbC1jYXRlZ29yeSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICcoTHUgTGwgTHQgTG0gTG8gTmQgTmwgTm8pKSkpCiAgICAgICAg ICAgICAgICAgICAoaWYgZm91bmQKICAgICAgICAgICAgICAgICAgICAgICA7OyBDaGVjayBpZiB0 aGUgZGVjb21wb3NpdGlvbiBoYXMgbW9yZSB0aGFuIG9uZSBsZXR0ZXIsCiAgICAgICAgICAgICAg ICAgICAgICAgOzsgYmVjYXVzZSB0aGVuIHdlIGRvbid0IHdhbnQgdGhlIGZpcnN0IGxldHRlciB0 byBtYXRjaAogICAgICAgICAgICAgICAgICAgICAgIDs7IHRoZSBkZWNvbXBvc2l0aW9uLgogICAg ICAgICAgICAgICAgICAgICAgIChkb2xpc3QgKGsgZCkKICAgICAgICAgICAgICAgICAgICAgICAg ICh3aGVuIChhbmQgZm9sZC1kZWNvbXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKG1lbXEgKGdldC1jaGFyLWNvZGUtcHJvcGVydHkgayAnZ2VuZXJhbC1jYXRlZ29yeSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhMdSBMbCBMdCBMbSBMbyBO ZCBObCBObykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBmb2xkLWRlY29tcCAg bmlsKSkpCiAgICAgICAgICAgICAgICAgICAgIDs7IElmIHRoZXJlJ3Mgbm8gbnVtYmVyIG9yIGxl dHRlciBvbiB0aGUKICAgICAgICAgICAgICAgICAgICAgOzsgZGVjb21wb3NpdGlvbiwgdGFrZSB0 aGUgZmlyc3QgY2hhcmFjdGVyIGluIGl0LgogICAgICAgICAgICAgICAgICAgICAoc2V0cSBmb3Vu ZCAgKGNhci1zYWZlIGRlYykpKQogICAgICAgICAgICAgICAgICAgOzsgRmluYWxseSwgd2Ugb25s eSBmb2xkIG11bHRpLWNoYXIgZGVjb21wb3NpdGlvbiBpZiBhdAogICAgICAgICAgICAgICAgICAg OzsgbGVhc3Qgb25lIG9mIHRoZSBjaGFycyBpcyBub24tc3BhY2luZyAoY29tYmluaW5nKS4KICAg ICAgICAgICAgICAgICAgICh3aGVuIGZvbGQtZGVjb21wCiAgICAgICAgICAgICAgICAgICAgIChz ZXRxIGZvbGQtZGVjb21wICBuaWwpCiAgICAgICAgICAgICAgICAgICAgIChkb2xpc3QgKGsgIGRl YykKICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIChub3QgZm9sZC1kZWNvbXApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPiAoZ2V0LWNoYXItY29kZS1wcm9wZXJ0 eSBrICdjYW5vbmljYWwtY29tYmluaW5nLWNsYXNzKSAwKSkKICAgICAgICAgICAgICAgICAgICAg ICAgIChzZXRxIGZvbGQtZGVjb21wICB0KSkpKQogICAgICAgICAgICAgICAgICAgOzsgQWRkIGkg dG8gdGhlIGxpc3Qgb2YgY2hhcmFjdGVycyB0aGF0IGsgY2FuCiAgICAgICAgICAgICAgICAgICA7 OyByZXByZXNlbnQuIEFsc28gcG9zc2libHkgYWRkIGl0cyBkZWNvbXBvc2l0aW9uLCBzbyB3ZSBj YW4KICAgICAgICAgICAgICAgICAgIDs7IG1hdGNoIG11bHRpLWNoYXIgcmVwcmVzZW50YXRpb25z IGxpa2UgKGZvcm1hdCAiYSVjIiA3NjkpCiAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIGZv dW5kICAobm90IChlcSBpIGspKSkKICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGNoci1zdHJn cyAgKGNvbnMgKGNoYXItdG8tc3RyaW5nIGkpIChhcmVmIGVxdWl2IGspKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgKGFzZXQgZXF1aXYgayAoaWYgZm9sZC1kZWNvbXAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyAoYXBwbHkgIydzdHJpbmcgZGVjKSBjaHIt c3RyZ3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoci1zdHJncykp KSkpKSkpCiAgICAgICAgICAgdGFibGUpCiAgICAgICAgICA7OyBBZGQgc29tZSBtYW51YWwgZW50 cmllcy4KICAgICAgICAgIChkb2xpc3QgKGl0ICcoKD9cIiAi77yCIiAi4oCcIiAi4oCdIiAi4oCd IiAi4oCeIiAi4rmCIiAi44CeIiAi4oCfIiAi4oCfIiAi4p2eIiAi4p2dIgogICAgICAgICAgICAg ICAgICAgICAgICAgIuKdoCIgIuKAnCIgIuKAniIgIuOAnSIgIuOAnyIgIvCfmbciICLwn5m2IiAi 8J+ZuCIgIsKrIiAiwrsiKQogICAgICAgICAgICAgICAgICAgICAgICAoPycgIuKdnyIgIuKdmyIg IuKdnCIgIuKAmCIgIuKAmSIgIuKAmiIgIuKAmyIgIuKAmiIgIvOggKIiICLina4iICLina8iICLi gLkiICLigLoiKQogICAgICAgICAgICAgICAgICAgICAgICAoP2AgIuKdmyIgIuKAmCIgIuKAmyIg IvOggKIiICLina4iICLigLkiKSkpCiAgICAgICAgICAgIChsZXQgKChpZHggICAgICAgIChjYXIg aXQpKQogICAgICAgICAgICAgICAgICAoY2hyLXN0cmdzICAoY2RyIGl0KSkpCiAgICAgICAgICAg ICAgKGFzZXQgZXF1aXYgaWR4IChhcHBlbmQgY2hyLXN0cmdzIChhcmVmIGVxdWl2IGlkeCkpKSkp CgogICAgICAgICAgOzsgLS0tLS0tLS04PC0tLS0tLXRoZSBvbmx5IGFkZGl0aW9uLS0tLS0tLS0t LS0tLS0tLQogICAgICAgICAgKHdoZW4gY2hhci1mb2xkLXN5bW1ldHJpYwogICAgICAgICAgICA7 OyBBZGQgYW4gZW50cnkgZm9yIGVhY2ggZXF1aXZhbGVudCBjaGFyLgogICAgICAgICAgICAobGV0 ICgob3RoZXJzICAoKSkpCiAgICAgICAgICAgICAgKG1hcC1jaGFyLXRhYmxlCiAgICAgICAgICAg ICAgIChsYW1iZGEgKGJhc2UgdikKICAgICAgICAgICAgICAgICAobGV0ICgoY2hyLXN0cmdzICAo YXJlZiBlcXVpdiBiYXNlKSkpCiAgICAgICAgICAgICAgICAgICAod2hlbiAoY29uc3AgY2hyLXN0 cmdzKQogICAgICAgICAgICAgICAgICAgICAoZG9saXN0IChzdHJnICAoY2RyIGNoci1zdHJncykp CiAgICAgICAgICAgICAgICAgICAgICAgKGlmICg8IChsZW5ndGggc3RyZykgMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHB1c2ggKGNvbnMgKHN0cmluZy10by1jaGFyIHN0cmcpIChyZW1v dmUgc3RyZyBjaHItc3RyZ3MpKSBvdGhlcnMpCiAgICAgICAgICAgICAgICAgICAgICAgICA7OyBB IGRlY29tcG9zaXRpb24uICBBZGQgaXQgYW5kIGl0cyBiYXNlIGNoYXIgdG8gYGNoYXItZm9sZC1k ZWNvbXBzJy4KICAgICAgICAgICAgICAgICAgICAgICAgIChwdXNoIChjb25zIHN0cmcgKGNoYXIt dG8tc3RyaW5nIGJhc2UpKSBjaGFyLWZvbGQtZGVjb21wcykpKSkpKQogICAgICAgICAgICAgICBl cXVpdikKICAgICAgICAgICAgICAoZG9saXN0IChpdCAgb3RoZXJzKQogICAgICAgICAgICAgICAg KGxldCAoKGJhc2UgICAgICAgKGNhciBpdCkpCiAgICAgICAgICAgICAgICAgICAgICAoY2hyLXN0 cmdzICAoY2RyIGl0KSkpCiAgICAgICAgICAgICAgICAgIChhc2V0IGVxdWl2IGJhc2UgKGFwcGVu ZCBjaHItc3RyZ3MgKGFyZWYgZXF1aXYgYmFzZSkpKSkpKSkKICAgICAgICAgIDs7IC0tLS0tLS0t ODwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgICAgICA7OyBD b252ZXJ0IHRoZSBsaXN0cyBvZiBjaGFyYWN0ZXJzIHdlIGNvbXBpbGVkIGludG8gcmVnZXhwcy4K ICAgICAgICAgIChtYXAtY2hhci10YWJsZQogICAgICAgICAgIChsYW1iZGEgKGkgdikgKGxldCAo KHJlICAocmVnZXhwLW9wdCAoY29ucyAoY2hhci10by1zdHJpbmcgaSkgdikpKSkKICAgICAgICAg ICAgICAgICAgICAgIChpZiAoY29uc3AgaSkKICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0 LWNoYXItdGFibGUtcmFuZ2UgZXF1aXYgaSByZSkKICAgICAgICAgICAgICAgICAgICAgICAgKGFz ZXQgZXF1aXYgaSByZSkpKSkKICAgICAgICAgICBlcXVpdikKICAgICAgICAgIGVxdWl2KSkpCgoo ZGVmdW4gY2hhcmFjdGVyLWZvbGQtdG8tcmVnZXhwIChzdHJpbmcgJm9wdGlvbmFsIGxheCkKICAi UmV0dXJuIGEgcmVnZXhwIG1hdGNoaW5nIGFueXRoaW5nIHRoYXQgY2hhcmFjdGVyLWZvbGRzIGlu dG8gU1RSSU5HLgpJZiBgY2hhcmFjdGVyLWZvbGQtc2VhcmNoJyBpcyBuaWwsIGp1c3QgYHJlZ2V4 cC1xdW90ZScgU1RSSU5HLgpPdGhlcndpc2U6CgpSZXBsYWNlIGFueSBkZWNvbXBvc2l0aW9ucyBp biBgY2hhcmFjdGVyLWZvbGQtdGFibGUnIGJ5IHRoZWlyIGJhc2UKY2hhcnMsIHNvIHNlYXJjaCB3 aWxsIG1hdGNoIGFsbCBlcXVpdmFsZW50cy4gIFRoZW4gcmVwbGFjZSBhbnkgY2hhcnMKaW4gU1RS SU5HIHRoYXQgaGF2ZSBlbnRyaWVzIGluIGBjaGFyYWN0ZXItZm9sZC10YWJsZScgYnkgdGhlaXIK ZW50cmllcyAod2hpY2ggYXJlIHJlZ2V4cHMpLCBhbmQgcmVwbGFjZSBvdGhlciBjaGFycyBpbiBT VFJJTkcgYnkKYHJlZ2V4cC1xdW90ZScgYXBwbGllZCB0byB0aGVtLgoKTm9uLW5pbCBMQVggbWVh bnMgYW55IHdoaXRlc3BhY2UgY2hhciBjYW4gbWF0Y2ggYW55IG51bWJlciBvZiB0aW1lcy4iCiAg KGlmIChub3QgY2hhcmFjdGVyLWZvbGQtc2VhcmNoKQogICAgICAocmVnZXhwLXF1b3RlIHN0cmlu ZykKICAgICh3aGVuIGNoYXItZm9sZC1kZWNvbXBzCiAgICAgIChkb2xpc3QgKGRlY29tcCAgY2hh ci1mb2xkLWRlY29tcHMpCiAgICAgICAgKHNldHEgc3RyaW5nICAocmVwbGFjZS1yZWdleHAtaW4t c3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgKHJlZ2V4cC1xdW90ZSAoY2FyIGRlY29tcCkp IChjZHIgZGVjb21wKSBzdHJpbmcgJ0ZJWEVELUNBU0UgJ0xJVEVSQUwpKSkpCiAgICAoYXBwbHkg Iydjb25jYXQKICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGMpIChpZiAoYW5kIGxheCAobWVt cSBjICcoP1xzID9cdCA/XHIgP1xuKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJb IFx0XG5cclx4YTBceDIwMDJceDJkXHgyMDBhXHgyMDJmXHgyMDVmXHgzMDAwXSsiCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAob3IgKGFyZWYgY2hhcmFjdGVyLWZvbGQtdGFibGUgYykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnZXhwLXF1b3RlIChzdHJpbmcgYykpKSkp CiAgICAgICAgICAgICAgICAgICBzdHJpbmcpKSkpCgooZGVmY3VzdG9tIGNoYXItZm9sZC1zeW1t ZXRyaWMgdAogICJOb24tbmlsIG1lYW5zIGNoYXItZm9sZCBzZWFyY2hpbmcgdHJlYXRzIGVxdWl2 YWxlbnQgY2hhcnMgdGhlIHNhbWUuClRoYXQgaXMsIHVzZSBvZiBhbnkgb2YgYSBzZXQgb2YgY2hh ci1mb2xkIGVxdWl2YWxlbnQgY2hhcnMgaW4gYSBzZWFyY2gKc3RyaW5nIGZpbmRzIGFueSBvZiB0 aGVtIGluIHRoZSB0ZXh0IGJlaW5nIHNlYXJjaGVkLgoKSWYgbmlsIHRoZW4gb25seSB0aGUgXCJi YXNlXCIgb3IgXCJjYW5vbmljYWxcIiBjaGFyIG9mIHRoZSBzZXQgbWF0Y2hlcwphbnkgb2YgdGhl bS4gIFRoZSBvdGhlcnMgbWF0Y2ggb25seSB0aGVtc2VsdmVzLCBldmVuIHdoZW4gY2hhci1mb2xk aW5nCmlzIHR1cm5lZCBvbi4iCiAgOnNldCAobGFtYmRhIChzeW0gZGVmcykKICAgICAgICAgKGN1 c3RvbS1zZXQtZGVmYXVsdCBzeW0gZGVmcykKICAgICAgICAgKHVwZGF0ZS1jaGFyLWZvbGQtdGFi bGUpKQogIDp0eXBlICdib29sZWFuIDpncm91cCAnaXNlYXJjaCkKCjs7IFRlc3QgYnkgc2VhcmNo aW5nIGZvciB0aGVzZSBzdHJpbmdzLgo7OyAoIvCdmo4iICLwnZmaIiAi8J2YpiIgIvCdl7IiICLw nZa+IiAi8J2WiiIgIvCdlZYiICLwnZSiIiAi8J2TriIgIvCdkoYiICLwnZGSIiAi8J2QniIgIu+9 hSIgIuOLjiIgIuOLjSIgIuKTlCIgIuKSoCIKOzsgICLihYciICLihK8iICLigpEiICJlzIMiICLh ur0iICJlzIkiICLhursiICJlzKMiICLhurkiICJlzLAiICLhuJsiICJlzK0iICLhuJkiICLhtYki ICJlzKciICLIqSIgImXMkSIgIsiHIgo7OyAiZcyPIiAiyIUiICJlzIwiICLEmyIgImXMqCIgIsSZ IiAiZcyHIiAixJciICJlzIYiICLElSIgImXMhCIgIsSTIiAiZcyIIiAiw6siICJlzIIiICLDqiIg ImXMgSIgIsOpIiAiZcyAIiAiw6giKQoK --__1441921601312250337abhmp0013.oracle.com--