From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from tb-mx1.topicbox.com (localhost.local [127.0.0.1]) by tb-mx1.topicbox.com (Postfix) with ESMTP id 3A4F348A75FC for <9fans@9fans.net>; Tue, 31 Mar 2020 03:43:10 -0400 (EDT) (envelope-from lucio.dere@gmail.com) Received: from tb-mx1.topicbox.com (localhost [127.0.0.1]) by tb-mx1.topicbox.com (Authentication Milter) with ESMTP id F0BB5C23816; Tue, 31 Mar 2020 03:43:10 -0400 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1585640590; b=wZ7rpw9G8TXt3JH9T3VXWsghHNgaxbPgmU2IGl53iq6C6LUanw +3Dunnl4nI1SOVKb49V4oSxVsVo9Q7JD3PCnfR4gkT3U0gHCRwX1RApV93d47vot avw+t0Ru2yJHdrGdTgn/PBqcPMfd9bxRrNNWiUHLmXTMLdY38h8lELd5jkqOgz82 ccDOtD4nrJuFlax7d4b3OKS5WYp3Hd71Io39VsZkFU3N6dPnwASZEe5d4LEACS/w sGIS8nY8TGX1aP+DeG2AiWzAsro5lkW5uhcA/0sZaIrueuJ/q+PGZ1Rol2YXzSqK 2x5HpI6rAbwWv/GaNnkvkUmAAcA6zvVlLqcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:from:date:message-id:subject:to:cc :content-type; s=arcseal; t=1585640590; bh=oLqX52OO6VJW5SWCsC6Qy 5F0JXnzmgusjqztTsQX9sQ=; b=tcseFTCZswV62J0Pbw3FglmOycdijgcrvlOVW HAp1Bg/0tfXoOD9Xxy27J2fS6sQCj+U6Y3mbDhsu/O8e5Y3QLwjeuTzk5TGZ+Efy GeIInzuZ3CBna7ajGy499vE0EHHrpd436OsHwIfR27sU21FW+xYIpFtUu3yLzc8d kP6Av2A/8LP+39yNfX/5B4QuC0VNtKfkNp45ieb6vIvmwuvC5eytTxDo8hXGq4Qk 0gbQvz8RaVLjeB4o4b4IKsSjUwKfn6WlgS8DVbAUW07ssZqeDKQqOKyIwVTv0Oz+ jOZfKE0pA3NOw5oVw+TIeN9G0wyWYk7DKPJS/gSQIAJpKXmHw== ARC-Authentication-Results: i=1; tb-mx1.topicbox.com; arc=none (no signatures found); bimi=none (Domain is not BIMI enabled); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=F2rGt9/z header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.208.195 (mail-lj1-f195.google.com); spf=pass smtp.mailfrom=lucio.dere@gmail.com smtp.helo=mail-lj1-f195.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=Y9bVkowP; x-ptr=pass smtp.helo=mail-lj1-f195.google.com policy.ptr=mail-lj1-f195.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 Authentication-Results: tb-mx1.topicbox.com; arc=none (no signatures found); bimi=none (Domain is not BIMI enabled); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=F2rGt9/z header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.208.195 (mail-lj1-f195.google.com); spf=pass smtp.mailfrom=lucio.dere@gmail.com smtp.helo=mail-lj1-f195.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=Y9bVkowP; x-ptr=pass smtp.helo=mail-lj1-f195.google.com policy.ptr=mail-lj1-f195.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgedugedrudeiiedguddvvdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecunecujfgurhephfffkf fuvfgtsehmtderredttdejnecuhfhrohhmpefnuhgtihhoucffvgcutfgvuceolhhutghi ohdruggvrhgvsehgmhgrihhlrdgtohhmqeenucfkphepvddtledrkeehrddvtdekrddule ehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepvddtledrkeeh rddvtdekrdduleehpdhhvghlohepmhgrihhlqdhljhduqdhfudelhedrghhoohhglhgvrd gtohhmpdhmrghilhhfrhhomhepoehluhgtihhordguvghrvgesghhmrghilhdrtghomheq ucfukfgkgfepuddtiedvhe X-ME-VSScore: 0 X-ME-VSCategory: clean Received-SPF: pass (gmail.com ... _spf.google.com: Sender is authorized to use 'lucio.dere@gmail.com' in 'mfrom' identity (mechanism 'include:_netblocks.google.com' matched)) receiver=tb-mx1.topicbox.com; identity=mailfrom; envelope-from="lucio.dere@gmail.com"; helo=mail-lj1-f195.google.com; client-ip=209.85.208.195 Received: from mail-lj1-f195.google.com (mail-lj1-f195.google.com [209.85.208.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tb-mx1.topicbox.com (Postfix) with ESMTPS for <9fans@9fans.net>; Tue, 31 Mar 2020 03:43:09 -0400 (EDT) (envelope-from lucio.dere@gmail.com) Received: by mail-lj1-f195.google.com with SMTP id n17so20926080lji.8 for <9fans@9fans.net>; Tue, 31 Mar 2020 00:43:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=oLqX52OO6VJW5SWCsC6Qy5F0JXnzmgusjqztTsQX9sQ=; b=F2rGt9/z8h+r3OkPSLtJfWQ4Dtff48wfqhFDcJ9b3lnMc/5rlm5ONlT88+xHtSfihP zJdY/qYDuuaTWmEx0YlEMhTvMur2a5rl9ebDVcM6tce3NK1DrdjQPrcRneuHA58FhPkR 1ke1HV3mvf0qCPZoz+xmDVocJ9kcZSoFpF2QqCPh7hG3017IpYfk6B+snsnFmrFavcDq 3My4ilugWLvxbrZmkdYb2LdkpsmS4A9DeBiW1sGUX7RiIiaDLhj91P2Cbpbc/gJrQpXx EfKNslU746zbjxpayyg/fB5aQ0cuU9mAyyKbYF3Dg7fZHL8nFSUFQxkfGzBuXfr7Caxq MiVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=oLqX52OO6VJW5SWCsC6Qy5F0JXnzmgusjqztTsQX9sQ=; b=Y9bVkowPf6x9UGAWgWnR+b4keSlhB6pDEF0zB/u9FRZ44fKn/l1JV+/7AAmqZ9wM/g km5jASAYoXjBJdebleAr0Vrzd1hh/KRhQqg/Wrnd82+CBqa7YnsvEbyd8QgqORfMGJHF OQsrAD3D40XPrLkR3a0l0fiSVSqwfLtqxh4EA1L3Ueo5DAfRp3Xx3wKo2trcDUFin/XJ q2d/IRNu68K4gUilWtMstrlo2yDeTULvi9TCEuoDtIFefhEXsTT6AZp+xXroda7bPHtA C1x+l/ozuj/55tLFnKCf+PCsAwRUXJ6pP7LHlruPsCj3rQRhGN5RgCJNk96c3GIO5uKN ut2g== X-Gm-Message-State: AGi0Pub2ZxBUcafU8K9uatOhva/bbL2BwEueWzWEK3aJiZcPYNbbi3rL ChnbZaYGftEdiyXBK0+mt61jq7DSePwev2p98Ouinnu+ X-Google-Smtp-Source: APiQypL6EjDrxMEcPnISRRTKkmUXE4Qmn9breDYJWWPmNYy8kFPbIytBrJ9Ee5AS1F+TO7ylc6wDZczDh5jmyPpSfJE= X-Received: by 2002:a2e:89d2:: with SMTP id c18mr8050050ljk.29.1585640587653; Tue, 31 Mar 2020 00:43:07 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:8897:0:0:0:0:0 with HTTP; Tue, 31 Mar 2020 00:43:06 -0700 (PDT) From: Lucio De Re Date: Tue, 31 Mar 2020 09:43:06 +0200 Message-ID: Subject: Re: [9fans] Git and heritage (Was: Software preservation in the post-hg era) To: 9fans <9fans@9fans.net> Cc: Sean Hinchee Content-Type: multipart/mixed; boundary="000000000000f81df105a221b77a" Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: 473f577c-7323-11ea-a268-ce8f189ed981 --000000000000f81df105a221b77a Content-Type: text/plain; charset="UTF-8" On 3/31/20, Sean Hinchee wrote: > [ ... ] > For now, as a stop-gap, I've made a GitHub organization in which I've > consolidated most of what I had indexed from Bitbucket and a few other > places. > > Thanks to people like Ori Bernstein, we have a native git client for > plan9 [3]; without a native client, this kind of transition wouldn't > be nearly as simple, thank you. > Ori's git9 is working better than adequately, although I tend to get tangled up in its interface a lot. Which brings me to submit my "enhancements" to 9front's "cmd/ssh.c"; these allow the Git URLs (a subspecies, if my Git Bible is to go by) to be handled a little more familiarly. Quite correctly, Cinap, no doubt others, pointed out that Plan 9 has a different representation for network addresses, one that seems better designed. The change I applied to ssh.c does nothing to limit use of the Plan 9 addressing style, it merely adds features that *do* belong in the SSH context. The price is minimal: conflicting address components may be supplied and something may break as a result, but the expectation is that such breakage would be under interactive supervision. What I think swings the balance entirely in favour of adding the enhancements is that Git likes to write URLs to the .git/config file and as a result using Plan 9 addresses does make the config file incompatible between Git as she is spoke and Plan 9's alternative. I don't know about anyone else, but I live in a hybrid environment and I fear this will bite me or someone I care about unnecessarily. With the ssh.c enhancements and very minor tweaks to git9/proto.c (so minor I'm having trouble finding them), one at least is able to avoid incompatibilities (well, I'm hoping so). I've attached the two patch sets, I make no claim to being a great coder, the focus was to make the changes (a) as clear as possible, (b) as unintrusive as possible. The copy of 9front "ssh.c" I based my changes on may not be the most recent. There's more to be said about converging the various Plan 9 flavours, I continually find cause to regret the paths that have been chosen; even though I am a faithful follower of the legacy system, I appreciate divergence when it causes Plan 9 on my desktop to interoperate better with the Posix and Posix-like systems I have reason to use. But I think the convergence tool chest lies with Ori's git9 and I would really like to assist making it not just robust, but irresistible. For that, my aim is to make it portable across all 9-flavours, very much including p9p. I see no reason not to migrate to git9 everywhere from the lesser Git ;-) Lucio. --000000000000f81df105a221b77a Content-Type: text/x-patch; charset="US-ASCII"; name="9f.ssh.patch" Content-Disposition: attachment; filename="9f.ssh.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 JSBhcGUvZGlmZiAtcCBzc2guYyAvbi9kdW1wLzIwMjAvMDIwMi85ZnJvbnQvc3lzL3NyYy9jbWQv c3NoLmMKKioqIHNzaC5jCVN1biBGZWIgIDIgMDg6MzQ6MTIgMjAyMAotLS0gL24vZHVtcC8yMDIw LzAyMDIvOWZyb250L3N5cy9zcmMvY21kL3NzaC5jCVNhdCBPY3QgMjggMTg6NTc6NDIgMjAxNwoq KioqKioqKioqKioqKiogdWNoYXIgc2lkWzI1Nl07CioqKiA4MSw4NyAqKioqCiAgY2hhciB0aHVt YlsyKlNIQTJfMjU2ZGxlbisxXSwgKnRodW1iZmlsZTsKICAKICBpbnQgZmQsIGludHIsIHJhdywg ZGVidWc7CiEgY2hhciAqdXNlciwgKnNlcnZpY2UsICpzdGF0dXMsICpob3N0LCAqcG9ydCwgKmNt ZDsKICAKICBPbmV3YXkgcmVjdiwgc2VuZDsKICB2b2lkIGRpc3BhdGNoKHZvaWQpOwotLS0gODEs ODcgLS0tLQogIGNoYXIgdGh1bWJbMipTSEEyXzI1NmRsZW4rMV0sICp0aHVtYmZpbGU7CiAgCiAg aW50IGZkLCBpbnRyLCByYXcsIGRlYnVnOwohIGNoYXIgKnVzZXIsICpzZXJ2aWNlLCAqc3RhdHVz LCAqaG9zdCwgKmNtZDsKICAKICBPbmV3YXkgcmVjdiwgc2VuZDsKICB2b2lkIGRpc3BhdGNoKHZv aWQpOwoqKioqKioqKioqKioqKioga2ZtdChGbXQgKmYpCioqKiAxMTMzLDExMzkgKioqKgogIHZv aWQKICB1c2FnZSh2b2lkKQogIHsKISAJZnByaW50KDIsICJ1c2FnZTogJXMgWy1kUl0gWy10IHRo dW1iZmlsZV0gWy1UIHRyaWVzXSBbLXUgdXNlcl0gWy1oXSBbLXAgcG9ydF0gW3VzZXJAXWhvc3Rb OnBvcnRdIFtjbWQgYXJncy4uLl1cbiIsIGFyZ3YwKTsKICAJZXhpdHMoInVzYWdlIik7CiAgfQog IAotLS0gMTEzMywxMTM5IC0tLS0KICB2b2lkCiAgdXNhZ2Uodm9pZCkKICB7CiEgCWZwcmludCgy LCAidXNhZ2U6ICVzIFstZFJdIFstdCB0aHVtYmZpbGVdIFstVCB0cmllc10gWy11IHVzZXJdIFst aF0gW3VzZXJAXWhvc3QgW2NtZCBhcmdzLi4uXVxuIiwgYXJndjApOwogIAlleGl0cygidXNhZ2Ui KTsKICB9CiAgCioqKioqKioqKioqKioqKiBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCioq KiAxMTU3LDExNzEgKioqKgogIAljYXNlICdkJzoKICAJCWRlYnVnKys7CiAgCQlicmVhazsKLSAJ Y2FzZSAnaCc6Ci0gCQlob3N0ID0gRUFSR0YodXNhZ2UoKSk7Ci0gCQlicmVhazsKLSAJY2FzZSAn cCc6Ci0gCQlwb3J0ID0gRUFSR0YodXNhZ2UoKSk7Ci0gCQlicmVhazsKICAJY2FzZSAnUic6CiAg CQlyYXcgPSAwOwogIAkJYnJlYWs7CiAgCWNhc2UgJ3QnOgogIAkJdGh1bWJmaWxlID0gRUFSR0Yo dXNhZ2UoKSk7CiAgCQlicmVhazsKLS0tIDExNTcsMTE3MSAtLS0tCiAgCWNhc2UgJ2QnOgogIAkJ ZGVidWcrKzsKICAJCWJyZWFrOwogIAljYXNlICdSJzoKICAJCXJhdyA9IDA7CiAgCQlicmVhazsK KyAJY2FzZSAndSc6CisgCQl1c2VyID0gRUFSR0YodXNhZ2UoKSk7CisgCQlicmVhazsKKyAJY2Fz ZSAnaCc6CisgCQlob3N0ID0gRUFSR0YodXNhZ2UoKSk7CisgCQlicmVhazsKICAJY2FzZSAndCc6 CiAgCQl0aHVtYmZpbGUgPSBFQVJHRih1c2FnZSgpKTsKICAJCWJyZWFrOwoqKioqKioqKioqKioq KiogbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoqKiogMTE3MywxMTgxICoqKioKICAJCU1h eFB3VHJpZXMgPSBzdHJ0b2woRUFSR0YodXNhZ2UoKSksICZzLCAwKTsKICAJCWlmKCpzICE9IDAp IHVzYWdlKCk7CiAgCQlicmVhazsKLSAJY2FzZSAndSc6Ci0gCQl1c2VyID0gRUFSR0YodXNhZ2Uo KSk7Ci0gCQlicmVhazsKICAJfSBBUkdFTkQ7CiAgCiAgCWlmKGhvc3QgPT0gbmlsKXsKLS0tIDEx NzMsMTE3OCAtLS0tCioqKioqKioqKioqKioqKiBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CioqKiAxMTkyLDEyMDUgKioqKgogIAkJCWhvc3QgPSBzOwogIAkJfQogIAl9Ci0gCWlmKHBvcnQg PT0gbmlsKXsKLSAJCXBvcnQgPSAic3NoIjsKLSAJCXMgPSBzdHJjaHIoaG9zdCwgJzonKTsKLSAJ CWlmKHMgIT0gbmlsKXsKLSAJCQkqcyA9ICdcMCc7Ci0gCQkJcG9ydCA9IHMrMTsKLSAJCX0KLSAJ fQogIAogIAlmb3IoY21kID0gbmlsOyAqYXJndiAhPSBuaWw7IGFyZ3YrKyl7CiAgCQlpZihjbWQg PT0gbmlsKXsKLS0tIDExODksMTE5NCAtLS0tCioqKioqKioqKioqKioqKiBtYWluKGludCBhcmdj LCBjaGFyICphcmd2W10pCioqKiAxMjEyLDEyMTggKioqKgogIAkJfQogIAl9CiAgCiEgCWlmKChm ZCA9IGRpYWwobmV0bWthZGRyKGhvc3QsIG5pbCwgcG9ydCksIG5pbCwgbmlsLCBuaWwpKSA8IDAp CiAgCQlzeXNmYXRhbCgiZGlhbDogJXIiKTsKICAKICAJc2VuZC52ID0gIlNTSC0yLjAtKDkpIjsK LS0tIDEyMDEsMTIwNyAtLS0tCiAgCQl9CiAgCX0KICAKISAJaWYoKGZkID0gZGlhbChuZXRta2Fk ZHIoaG9zdCwgbmlsLCAic3NoIiksIG5pbCwgbmlsLCBuaWwpKSA8IDApCiAgCQlzeXNmYXRhbCgi ZGlhbDogJXIiKTsKICAKICAJc2VuZC52ID0gIlNTSC0yLjAtKDkpIjsK --000000000000f81df105a221b77a Content-Type: text/x-patch; charset="US-ASCII"; name="git9.proto.patch" Content-Disposition: attachment; filename="git9.proto.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file2 JSBhcGUvZGlmZiAtcCBwcm90by5jIC9uL2R1bXAvMjAyMC8wMzMxL3Vzci9sdWNpby9Qcm9qZWN0 L2dpdDktbWFzdGVyL3Byb3RvLmMKKioqIHByb3RvLmMJVHVlIE1hciAzMSAwOToyMjo1MCAyMDIw Ci0tLSAvbi9kdW1wLzIwMjAvMDMzMS91c3IvbHVjaW8vUHJvamVjdC9naXQ5LW1hc3Rlci9wcm90 by5jCU1vbiBNYXIgMjMgMTU6NTc6NTkgMjAyMAoqKioqKioqKioqKioqKioKKioqIDEsNiAqKioq CiAgI2luY2x1ZGUgPHUuaD4KICAjaW5jbHVkZSA8bGliYy5oPgotICNpbmNsdWRlIDxzdGRpby5o PgogIAogICNpbmNsdWRlICJnaXQuaCIKICAKLS0tIDEsNSAtLS0tCioqKioqKioqKioqKioqKiBk aWFsaHR0cChDb25uICpjLCBjaGFyICpob3N0LCBjaGFyICpwb3J0CioqKiAyMzIsMjQxICoqKioK ICB9CiAgCiAgaW50CiEgZGlhbHNzaChDb25uICpjLCBjaGFyICpob3N0LCBjaGFyICpwb3J0LCBj aGFyICpwYXRoLCBjaGFyICpkaXJlY3Rpb24pCiAgewogIAlpbnQgcGlkLCBwZmRbMl07CiEgCWNo YXIgKnRhcmdldCwgY21kWzY0XTsKICAKICAJaWYocGlwZShwZmQpID09IC0xKQogIAkJc3lzZmF0 YWwoInVuYWJsZSB0byBvcGVuIHBpcGU6ICVyIik7Ci0tLSAyMzEsMjQwIC0tLS0KICB9CiAgCiAg aW50CiEgZGlhbHNzaChDb25uICpjLCBjaGFyICpob3N0LCBjaGFyICosIGNoYXIgKnBhdGgsIGNo YXIgKmRpcmVjdGlvbikKICB7CiAgCWludCBwaWQsIHBmZFsyXTsKISAJY2hhciBjbWRbNjRdOwog IAogIAlpZihwaXBlKHBmZCkgPT0gLTEpCiAgCQlzeXNmYXRhbCgidW5hYmxlIHRvIG9wZW4gcGlw ZTogJXIiKTsKKioqKioqKioqKioqKioqIGRpYWxzc2goQ29ubiAqYywgY2hhciAqaG9zdCwgY2hh ciAqcG9ydCwKKioqIDI0NywyNTcgKioqKgogIAkJZHVwKHBmZFswXSwgMCk7CiAgCQlkdXAocGZk WzBdLCAxKTsKICAJCXNucHJpbnQoY21kLCBzaXplb2YoY21kKSwgImdpdC0lcy1wYWNrIiwgZGly ZWN0aW9uKTsKLSAJCWlmIChwb3J0ICE9IG5pbCkgewotIAkJCXRhcmdldCA9IChjaGFyICopIG1h bGxvYyhzdHJsZW4oaG9zdCkgKyAxICsgc3RybGVuKHBvcnQpICsgMSk7Ci0gCQkJc3ByaW50Zih0 YXJnZXQsICIlczolcyIsIGhvc3QsIHBvcnQpOwotIAkJCWhvc3QgPSB0YXJnZXQ7Ci0gCQl9CiAg CQlpZihjaGF0dHlnaXQpCiAgCQkJZnByaW50KDIsICJleGVjIHNzaCAlcyAlcyAlc1xuIiwgaG9z dCwgY21kLCBwYXRoKTsKICAJCWV4ZWNsKCIvYmluL3NzaCIsICJzc2giLCBob3N0LCBjbWQsIHBh dGgsIG5pbCk7Ci0tLSAyNDYsMjUxIC0tLS0K --000000000000f81df105a221b77a--