From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?utf-8?Q?Juhani_Viher=C3=A4koski?= Newsgroups: gmane.lisp.guile.devel Subject: tfib.scm Date: Sun, 26 Jul 2009 15:26:07 +0300 (EEST) Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="657408-2041777617-1248611167=:16144" X-Trace: ger.gmane.org 1248611207 25471 80.91.229.12 (26 Jul 2009 12:26:47 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 26 Jul 2009 12:26:47 +0000 (UTC) Cc: guile-devel@gnu.org To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun Jul 26 14:26:40 2009 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1MV2oI-0002qZ-SE for guile-devel@m.gmane.org; Sun, 26 Jul 2009 14:26:40 +0200 Original-Received: from localhost ([127.0.0.1]:55232 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MV2oH-00038Y-97 for guile-devel@m.gmane.org; Sun, 26 Jul 2009 08:26:37 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MV2o9-00038M-3n for guile-devel@gnu.org; Sun, 26 Jul 2009 08:26:29 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MV2o3-00037O-VW for guile-devel@gnu.org; Sun, 26 Jul 2009 08:26:28 -0400 Original-Received: from [199.232.76.173] (port=32961 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MV2o3-00037L-T9 for guile-devel@gnu.org; Sun, 26 Jul 2009 08:26:23 -0400 Original-Received: from mail.kapsi.fi ([217.30.184.167]:54499) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MV2o3-0001nG-6q for guile-devel@gnu.org; Sun, 26 Jul 2009 08:26:23 -0400 Original-Received: from kapsi.fi ([217.30.184.161] helo=lakka.kapsi) by mail.kapsi.fi with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1MV2nx-0004bf-UG; Sun, 26 Jul 2009 15:26:17 +0300 Original-Received: from moonshine (helo=localhost) by lakka.kapsi with local-esmtp (Exim 4.69) (envelope-from ) id 1MV2nn-0007u0-Ak; Sun, 26 Jul 2009 15:26:07 +0300 X-X-Sender: moonshine@lakka.kapsi In-Reply-To: X-SA-Exim-Connect-IP: 217.30.184.161 X-SA-Exim-Mail-From: moonshine@kapsi.fi X-SA-Exim-Scanned: No (on mail.kapsi.fi); SAEximRunCond expanded to false X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:8968 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. --657408-2041777617-1248611167=:16144 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed > At least I could easily put raw logs available to my webpage, I run the > benchmarks by hand anyway. Then I could try to polish my hacked benchmark > suite and send it upstream. There were some bugs introduced by my porting > efforts, I *think* I've fixed them all now :) If someone wants to try it it's > now available at > http://moonshine.kapsi.fi/bench-guile.tar.bz2 > > I am currently running the benchmarks and I will put the results for master > (compiled and interpreted) and 1.8.6 in text format to > http://moonshine.kapsi.fi/guile-results when finished. I'll try to hack > something neater during the next week or so. BTW, does anyone know if there > are guile bindings for any graphic library as I couldn't find any? If there > aren't, I'll do it in perl then, although I don't especially like perl. Hi, Results for guile-head are there, however not for 1.8.6 because I think there is a problem with threads (at least the same testcase works with git version). This program creates lots of threads but should only take some milliseconds to run on Linux. It goes into an infinite loop, or at least takes a very long time to execute as it run for several hours in the background while I was doing something else. Testcase attached. -- Juhani --657408-2041777617-1248611167=:16144 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=tfib.scm Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=tfib.scm DQoNCjstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KKGRl ZmluZSAocnVuLWJlbmNoIG5hbWUgY291bnQgb2s/IHJ1bikNCiAgKGxldCBs b29wICgoaSBjb3VudCkgKHJlc3VsdCAnKHVuZGVmaW5lZCkpKQ0KICAgIChp ZiAoPCAwIGkpDQogICAgICAobG9vcCAoLSBpIDEpIChydW4pKQ0KICAgICAg cmVzdWx0KSkpDQoNCihkZWZpbmUgKHJ1bi1iZW5jaG1hcmsgbmFtZSBjb3Vu dCBvaz8gcnVuLW1ha2VyIC4gYXJncykNCiAgKG5ld2xpbmUpDQogIChsZXQq ICgocnVuIChhcHBseSBydW4tbWFrZXIgYXJncykpDQogICAgICAgICAocmVz dWx0IChydW4tYmVuY2ggbmFtZSBjb3VudCBvaz8gcnVuKSkpDQogICAgKGlm IChub3QgKG9rPyByZXN1bHQpKQ0KICAgICAgKGJlZ2luDQogICAgICAgIChk aXNwbGF5ICIqKiogd3JvbmcgcmVzdWx0ICoqKiIpDQogICAgICAgIChuZXds aW5lKQ0KICAgICAgICAoZGlzcGxheSAiKioqIGdvdDogIikNCiAgICAgICAg KHdyaXRlIHJlc3VsdCkNCiAgICAgICAgKG5ld2xpbmUpKSkpKQ0KDQooZGVm aW5lIChmYXRhbC1lcnJvciAuIGFyZ3MpDQogIChmb3ItZWFjaCBkaXNwbGF5 IGFyZ3MpDQogIChuZXdsaW5lKQ0KICAoZXhpdCAxKSkNCg0KIChkZWZpbmUg KGNhbGwtd2l0aC1vdXRwdXQtZmlsZS90cnVuY2F0ZSBmaWxlbmFtZSBwcm9j KQ0KICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZSBmaWxlbmFtZSBwcm9jKSkN Cg0KOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQo7IE1h Y3Jvcy4uLg0KDQo7IFNwZWNpYWxpemUgZml4bnVtIGFuZCBmbG9udW0gYXJp dGhtZXRpYy4NCg0KOzsgVGhpcyBjb2RlIHNob3VsZCBiZSB1c2VkIHdoZW4g ZjY0dmVjdG9ycyBhcmUgYXZhaWxhYmxlLg0KOyhkZWYtbWFjcm8gKEZMT0FU dmVjdG9yLWNvbnN0IC4gbHN0KSAgIGAnLChsaXN0LT5mNjR2ZWN0b3IgbHN0 KSkNCjsoZGVmLW1hY3JvIChGTE9BVHZlY3Rvcj8geCkgICAgICAgICAgICBg KGY2NHZlY3Rvcj8gLHgpKQ0KOyhkZWYtbWFjcm8gKEZMT0FUdmVjdG9yIC4g bHN0KSAgICAgICAgIGAoZjY0dmVjdG9yICxAbHN0KSkNCjsoZGVmLW1hY3Jv IChGTE9BVG1ha2UtdmVjdG9yIG4gLiBpbml0KSBgKG1ha2UtZjY0dmVjdG9y ICxuICxAaW5pdCkpDQo7KGRlZi1tYWNybyAoRkxPQVR2ZWN0b3ItcmVmIHYg aSkgICAgICAgYChmNjR2ZWN0b3ItcmVmICx2ICxpKSkNCjsoZGVmLW1hY3Jv IChGTE9BVHZlY3Rvci1zZXQhIHYgaSB4KSAgICBgKGY2NHZlY3Rvci1zZXQh ICx2ICxpICx4KSkNCjsoZGVmLW1hY3JvIChGTE9BVHZlY3Rvci1sZW5ndGgg dikgICAgICBgKGY2NHZlY3Rvci1sZW5ndGggLHYpKQ0KOw0KOyhkZWYtbWFj cm8gKG51Yy1jb25zdCAuIGxzdCkNCjsgIGAnLChsaXN0LT52ZWN0b3INCjsg ICAgICAgKG1hcCAobGFtYmRhICh4KQ0KOyAgICAgICAgICAgICAgKGlmICh2 ZWN0b3I/IHgpDQo7ICAgICAgICAgICAgICAgIChsaXN0LT5mNjR2ZWN0b3Ig KHZlY3Rvci0+bGlzdCB4KSkNCjsgICAgICAgICAgICAgICAgeCkpDQo7ICAg ICAgICAgICAgbHN0KSkpDQoNCihkZWZpbmUgbWFrZS10aHJlYWQgY2FsbC13 aXRoLW5ldy10aHJlYWQpDQooZGVmaW5lIHRocmVhZC1qb2luISBqb2luLXRo cmVhZCkNCihkZWZpbmUgKHRocmVhZC1zdGFydCEgeCkgI2YpDQooZGVmaW5l LW1hY3JvIChiaXR3aXNlLW9yIC4gbHN0KSBgKGxvZ2lvciAsQGxzdCkpDQoo ZGVmaW5lLW1hY3JvIChiaXR3aXNlLWFuZCAuIGxzdCkgYChsb2dhbmQgLEBs c3QpKQ0KKGRlZmluZS1tYWNybyAoYml0d2lzZS1ub3QgLiBsc3QpIGAobG9n bm90ICxAbHN0KSkNCg0KDQo7IERvbid0IHNwZWNpYWxpemUgZml4bnVtIGFu ZCBmbG9udW0gYXJpdGhtZXRpYy4NCg0KKGRlZmluZS1tYWNybyAoRkxPQVR2 ZWN0b3ItY29uc3QgLiBsc3QpICAgYCcsKGxpc3QtPnZlY3RvciBsc3QpKQ0K KGRlZmluZS1tYWNybyAoRkxPQVR2ZWN0b3I/IHgpICAgICAgICAgICAgYCh2 ZWN0b3I/ICx4KSkNCihkZWZpbmUtbWFjcm8gKEZMT0FUdmVjdG9yIC4gbHN0 KSAgICAgICAgIGAodmVjdG9yICxAbHN0KSkNCihkZWZpbmUtbWFjcm8gKEZM T0FUbWFrZS12ZWN0b3IgbiAuIGluaXQpIGAobWFrZS12ZWN0b3IgLG4gLEBp bml0KSkNCihkZWZpbmUtbWFjcm8gKEZMT0FUdmVjdG9yLXJlZiB2IGkpICAg ICAgIGAodmVjdG9yLXJlZiAsdiAsaSkpDQooZGVmaW5lLW1hY3JvIChGTE9B VHZlY3Rvci1zZXQhIHYgaSB4KSAgICBgKHZlY3Rvci1zZXQhICx2ICxpICx4 KSkNCihkZWZpbmUtbWFjcm8gKEZMT0FUdmVjdG9yLWxlbmd0aCB2KSAgICAg IGAodmVjdG9yLWxlbmd0aCAsdikpDQoNCihkZWZpbmUtbWFjcm8gKG51Yy1j b25zdCAuIGxzdCkNCiAgYCcsKGxpc3QtPnZlY3RvciBsc3QpKQ0KDQooZGVm aW5lLW1hY3JvIChGTE9BVCsgLiBsc3QpIGAoKyAsQGxzdCkpDQooZGVmaW5l LW1hY3JvIChGTE9BVC0gLiBsc3QpIGAoLSAsQGxzdCkpDQooZGVmaW5lLW1h Y3JvIChGTE9BVCogLiBsc3QpIGAoKiAsQGxzdCkpDQooZGVmaW5lLW1hY3Jv IChGTE9BVC8gLiBsc3QpIGAoLyAsQGxzdCkpDQooZGVmaW5lLW1hY3JvIChG TE9BVD0gLiBsc3QpICBgKD0gLEBsc3QpKQ0KKGRlZmluZS1tYWNybyAoRkxP QVQ8IC4gbHN0KSAgYCg8ICxAbHN0KSkNCihkZWZpbmUtbWFjcm8gKEZMT0FU PD0gLiBsc3QpIGAoPD0gLEBsc3QpKQ0KKGRlZmluZS1tYWNybyAoRkxPQVQ+ IC4gbHN0KSAgYCg+ICxAbHN0KSkNCihkZWZpbmUtbWFjcm8gKEZMT0FUPj0g LiBsc3QpIGAoPj0gLEBsc3QpKQ0KKGRlZmluZS1tYWNybyAoRkxPQVRuZWdh dGl2ZT8gLiBsc3QpIGAobmVnYXRpdmU/ICxAbHN0KSkNCihkZWZpbmUtbWFj cm8gKEZMT0FUcG9zaXRpdmU/IC4gbHN0KSBgKHBvc2l0aXZlPyAsQGxzdCkp DQooZGVmaW5lLW1hY3JvIChGTE9BVHplcm8/IC4gbHN0KSAgICAgYCh6ZXJv PyAsQGxzdCkpDQooZGVmaW5lLW1hY3JvIChGTE9BVGFicyAuIGxzdCkgYChh YnMgLEBsc3QpKQ0KKGRlZmluZS1tYWNybyAoRkxPQVRzaW4gLiBsc3QpIGAo c2luICxAbHN0KSkNCihkZWZpbmUtbWFjcm8gKEZMT0FUY29zIC4gbHN0KSBg KGNvcyAsQGxzdCkpDQooZGVmaW5lLW1hY3JvIChGTE9BVGF0YW4gLiBsc3Qp IGAoYXRhbiAsQGxzdCkpDQooZGVmaW5lLW1hY3JvIChGTE9BVHNxcnQgLiBs c3QpIGAoc3FydCAsQGxzdCkpDQooZGVmaW5lLW1hY3JvIChGTE9BVG1pbiAu IGxzdCkgYChtaW4gLEBsc3QpKQ0KKGRlZmluZS1tYWNybyAoRkxPQVRtYXgg LiBsc3QpIGAobWF4ICxAbHN0KSkNCihkZWZpbmUtbWFjcm8gKEZMT0FUcm91 bmQgLiBsc3QpIGAocm91bmQgLEBsc3QpKQ0KKGRlZmluZS1tYWNybyAoRkxP QVRpbmV4YWN0LT5leGFjdCAuIGxzdCkgYChpbmV4YWN0LT5leGFjdCAsQGxz dCkpDQoNCihkZWZpbmUtbWFjcm8gKEdFTkVSSUMrIC4gbHN0KSBgKCsgLEBs c3QpKQ0KKGRlZmluZS1tYWNybyAoR0VORVJJQy0gLiBsc3QpIGAoLSAsQGxz dCkpDQooZGVmaW5lLW1hY3JvIChHRU5FUklDKiAuIGxzdCkgYCgqICxAbHN0 KSkNCihkZWZpbmUtbWFjcm8gKEdFTkVSSUMvIC4gbHN0KSBgKC8gLEBsc3Qp KQ0KKGRlZmluZS1tYWNybyAoR0VORVJJQ3F1b3RpZW50IC4gbHN0KSAgYChx dW90aWVudCAsQGxzdCkpDQooZGVmaW5lLW1hY3JvIChHRU5FUklDcmVtYWlu ZGVyIC4gbHN0KSBgKHJlbWFpbmRlciAsQGxzdCkpDQooZGVmaW5lLW1hY3Jv IChHRU5FUklDbW9kdWxvIC4gbHN0KSAgICBgKG1vZHVsbyAsQGxzdCkpDQoo ZGVmaW5lLW1hY3JvIChHRU5FUklDPSAuIGxzdCkgIGAoPSAsQGxzdCkpDQoo ZGVmaW5lLW1hY3JvIChHRU5FUklDPCAuIGxzdCkgIGAoPCAsQGxzdCkpDQoo ZGVmaW5lLW1hY3JvIChHRU5FUklDPD0gLiBsc3QpIGAoPD0gLEBsc3QpKQ0K KGRlZmluZS1tYWNybyAoR0VORVJJQz4gLiBsc3QpICBgKD4gLEBsc3QpKQ0K KGRlZmluZS1tYWNybyAoR0VORVJJQz49IC4gbHN0KSBgKD49ICxAbHN0KSkN CihkZWZpbmUtbWFjcm8gKEdFTkVSSUNleHB0IC4gbHN0KSBgKGV4cHQgLEBs c3QpKQ0KDQoNCjstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CjsgR2FicmllbCBiZW5jaG1hcmtzDQooZGVmaW5lIGJveWVyLWl0ZXJzICAg ICAgICAgMikNCihkZWZpbmUgYnJvd3NlLWl0ZXJzICAgICAgIDYwKQ0KKGRl ZmluZSBjcHN0YWstaXRlcnMgICAgICAxMDApDQooZGVmaW5lIGN0YWstaXRl cnMgICAgICAgICAxKQ0KKGRlZmluZSBkZGVyaXYtaXRlcnMgICAyMDAwMDAp DQooZGVmaW5lIGRlcml2LWl0ZXJzICAgIDIwMDAwMCkNCihkZWZpbmUgZGVz dHJ1Yy1pdGVycyAgICAgIDUwKQ0KKGRlZmluZSBkaXZpdGVyLWl0ZXJzICAx MDAwMDApDQooZGVmaW5lIGRpdnJlYy1pdGVycyAgIDEwMDAwMCkNCihkZWZp bmUgcHV6emxlLWl0ZXJzICAgICAgIDEwKQ0KKGRlZmluZSB0YWstaXRlcnMg ICAgICAgICAyMDApDQooZGVmaW5lIHRha2wtaXRlcnMgICAgICAgICAzMCkN CihkZWZpbmUgdHJhdjEtaXRlcnMgICAgICAgIDEwKQ0KKGRlZmluZSB0cmF2 Mi1pdGVycyAgICAgICAgIDIpDQooZGVmaW5lIHRyaWFuZ2wtaXRlcnMgICAg ICAgMSkNCg0KOyBLZXJuaWdoYW4gYW5kIFZhbiBXeWsgYmVuY2htYXJrcw0K KGRlZmluZSBhY2staXRlcnMgICAgICAgICAgIDEpDQooZGVmaW5lIGFycmF5 MS1pdGVycyAgICAgICAgMSkNCihkZWZpbmUgY2F0LWl0ZXJzICAgICAgICAg ICAxKQ0KKGRlZmluZSBzdHJpbmctaXRlcnMgICAgICAgIDEpDQooZGVmaW5l IHN1bTEtaXRlcnMgICAgICAgICAgMSkNCihkZWZpbmUgc3VtbG9vcC1pdGVy cyAgICAgICAxKQ0KKGRlZmluZSB0YWlsLWl0ZXJzICAgICAgICAgIDEpDQoo ZGVmaW5lIHdjLWl0ZXJzICAgICAgICAgICAgMSkNCg0KOyBDIGJlbmNobWFy a3MNCihkZWZpbmUgZmZ0LWl0ZXJzICAgICAgICAyMDAwKQ0KKGRlZmluZSBm aWItaXRlcnMgICAgICAgICAgIDUpDQooZGVmaW5lIGZpYmZwLWl0ZXJzICAg ICAgICAgMikNCihkZWZpbmUgbWJyb3QtaXRlcnMgICAgICAgMTAwKQ0KKGRl ZmluZSBudWNsZWljLWl0ZXJzICAgICAgIDUpDQooZGVmaW5lIHBucG9seS1p dGVycyAgIDEwMDAwMCkNCihkZWZpbmUgc3VtLWl0ZXJzICAgICAgIDEwMDAw KQ0KKGRlZmluZSBzdW1mcC1pdGVycyAgICAgIDUwMDApDQooZGVmaW5lIHRm aWItaXRlcnMgICAgICAgICAyMCkNCg0KOyBPdGhlciBiZW5jaG1hcmtzDQoo ZGVmaW5lIGNvbmZvcm0taXRlcnMgICAgICAgNCkNCihkZWZpbmUgZHluYW1p Yy1pdGVycyAgICAgICAyKQ0KKGRlZmluZSBlYXJsZXktaXRlcnMgICAgICAg MjApDQooZGVmaW5lIGZpYmMtaXRlcnMgICAgICAgICA1MCkNCihkZWZpbmUg Z3JhcGhzLWl0ZXJzICAgICAgIDMwKQ0KKGRlZmluZSBsYXR0aWNlLWl0ZXJz ICAgICAgIDEpDQooZGVmaW5lIG1hdHJpeC1pdGVycyAgICAgICA0MCkNCihk ZWZpbmUgbWF6ZS1pdGVycyAgICAgICAgNDAwKQ0KKGRlZmluZSBtYXplZnVu LWl0ZXJzICAgICAxMDApDQooZGVmaW5lIG5xdWVlbnMtaXRlcnMgICAgIDIw MCkNCihkZWZpbmUgcGFyYWZmaW5zLWl0ZXJzICAgMTAwKQ0KKGRlZmluZSBw ZXZhbC1pdGVycyAgICAgICAgMjApDQooZGVmaW5lIHBpLWl0ZXJzICAgICAg ICAgICAgMSkNCihkZWZpbmUgcHJpbWVzLWl0ZXJzICAgIDEwMDAwKQ0KKGRl ZmluZSByYXktaXRlcnMgICAgICAgICAgIDEpDQooZGVmaW5lIHNjaGVtZS1p dGVycyAgICAgMjAwMDApDQooZGVmaW5lIHNpbXBsZXgtaXRlcnMgICAxMDAw MCkNCihkZWZpbmUgc2xhdGV4LWl0ZXJzICAgICAgICAyKQ0KKGRlZmluZSBw ZXJtOS1pdGVycyAgICAgICAgIDEpDQooZGVmaW5lIG5ib3llci1pdGVycyAg ICAgICAxMCkNCihkZWZpbmUgc2JveWVyLWl0ZXJzICAgICAgIDEwKQ0KKGRl ZmluZSBnY2JlbmNoLWl0ZXJzICAgICAgIDEpDQooZGVmaW5lIGNvbXBpbGVy LWl0ZXJzICAgICAzMCkNCjs7OyBURklCIC0tIExpa2UgRklCIGJ1dCB1c2lu ZyB0aHJlYWRzLg0KDQooZGVmaW5lICh0ZmliIG4pDQogIChpZiAoPCBuIDIp DQogICAgICAxDQogICAgICAobGV0ICgoeCAobWFrZS10aHJlYWQgKGxhbWJk YSAoKSAodGZpYiAoLSBuIDIpKSkpKSkNCiAgICAgICAgKHRocmVhZC1zdGFy dCEgeCkNCiAgICAgICAgKGxldCAoKHkgKHRmaWIgKC0gbiAxKSkpKQ0KICAg ICAgICAgICgrICh0aHJlYWQtam9pbiEgeCkgeSkpKSkpDQoNCihkZWZpbmUg KGdvIG4gcmVwZWF0KQ0KICAobGV0IGxvb3AgKChyZXBlYXQgcmVwZWF0KQ0K ICAgICAgICAgICAgIChyZXN1bHQgJygpKSkNCiAgICAoaWYgKD4gcmVwZWF0 IDApDQogICAgICAgIChsZXQgKCh4IChtYWtlLXRocmVhZCAobGFtYmRhICgp ICh0ZmliIG4pKSkpKQ0KICAgICAgICAgICh0aHJlYWQtc3RhcnQhIHgpDQog ICAgICAgICAgKGxldCAoKHIgKHRocmVhZC1qb2luISB4KSkpDQogICAgICAg ICAgICAobG9vcCAoLSByZXBlYXQgMSkgcikpKQ0KICAgICAgICByZXN1bHQp KSkNCg0KKGRlZmluZSAobWFpbiAuIGFyZ3MpDQogIChydW4tYmVuY2htYXJr DQogICAidGZpYiINCiAgIHRmaWItaXRlcnMNCiAgIChsYW1iZGEgKHJlc3Vs dCkgKGVxdWFsPyByZXN1bHQgNjEwKSkNCiAgIChsYW1iZGEgKG4gcmVwZWF0 KSAobGFtYmRhICgpIChnbyBuIHJlcGVhdCkpKQ0KICAgMTQNCiAgIDEwMCkp DQoobWFpbikNCg0K --657408-2041777617-1248611167=:16144--