From owner-freebsd-smp@FreeBSD.ORG  Sun Dec  3 00:51:12 2006
Return-Path: <owner-freebsd-smp@FreeBSD.ORG>
X-Original-To: freebsd-smp@freebsd.org
Delivered-To: freebsd-smp@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 81A6D16A568;
	Sun,  3 Dec 2006 00:51:12 +0000 (UTC)
	(envelope-from iedowse@iedowse.com)
Received: from nowhere.iedowse.com (nowhere.iedowse.com [82.195.144.75])
	by mx1.FreeBSD.org (Postfix) with SMTP id 2F3A843C9D;
	Sun,  3 Dec 2006 00:50:47 +0000 (GMT)
	(envelope-from iedowse@iedowse.com)
Received: from localhost  ([127.0.0.1] helo=iedowse.com)
	by nowhere.iedowse.com via local-iedowse id <aa75264@nowhere>;
	3 Dec 2006 00:51:10 +0000 (GMT)
To: Alfred Perlstein <alfred@freebsd.org>
In-Reply-To: Your message of "Fri, 01 Dec 2006 11:17:31 PST."
	<20061201191731.GR38808@elvis.mu.org> 
Date: Sun, 03 Dec 2006 00:51:09 +0000
From: Ian Dowse <iedowse@iedowse.com>
Message-ID: <200612030051.aa75264@nowhere.iedowse.com>
Cc: freebsd-smp@freebsd.org, freebsd-usb@freebsd.org
Subject: Re: RFC: Fixing USB ethernet for FreeBSD 7.0. 
X-BeenThere: freebsd-smp@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: FreeBSD SMP implementation group <freebsd-smp.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-smp>,
	<mailto:freebsd-smp-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-smp>
List-Post: <mailto:freebsd-smp@freebsd.org>
List-Help: <mailto:freebsd-smp-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-smp>,
	<mailto:freebsd-smp-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Dec 2006 00:51:12 -0000

In message <20061201191731.GR38808@elvis.mu.org>, Alfred Perlstein writes:
>I recently had the displeasure of trying to use an USB etherdongle
>under FreeBSD.  Result: panic when the interface was started.
>
>I fixed it using a stopgap:
>
>http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/usb/if_aue.c?rev=1.101&conte
>nt-type=text/x-cvsweb-markup
>
>There are still some major issues:
>1) requires Giant.
>2) several error paths will still panic the kernel.
>
>I would like to fix them, however that does not seem easy given the
>existing infrastructure.

FYI, some USB ethernet drivers are better than others in this respect
- for example, axe(4) uses sx locks and task queues to avoid the
worst of the issues. The problems remaining in axe are that the
error recovery code in axe_encap should use a task queue, and there
are some cases where if_ioctl routines are called with other locks
held.

On the issue of calling if_ioctl while holding locks, I think this
can happen when if_addmulti() holds locks and calls if_ioctl to
synchronise the hardware with the software state from ifp->if_multiaddrs.
Almost all other if_ioctl calls occur in a context where blocking
is allowed, so it may be possible to rework the if_addmulti() code
paths so that the outer ioctl() code could first update the software
state, release locks and then perform the if_ioctl to synchronise
the hardware state.

>Statement #2:
>Using callbacks to do all IO during an interrupt is programatically
>complex and painful.  For instance, take the case of the following
>code pulled from aue_stop() (which can be called from interrupt
>context):

Note though that most USB ethernet devices require just a single
USB transfer per packet, so it's typically only during error recovery
and setup that asynchronous I/O is too tricky. That's probably easy
enough to fix with a queued task, and since error recovery is rare
it doesn't matter too much if many devices share a task queue.

If there are devices requiring multiple commands to be sent during
normal sending/receiving of packets then you'd probably also want
a separate thread for the TX and RX paths if you were to do the
commands synchronously.

Ian

From owner-freebsd-smp@FreeBSD.ORG  Thu Dec  7 10:42:16 2006
Return-Path: <owner-freebsd-smp@FreeBSD.ORG>
X-Original-To: freebsd-smp@freebsd.org
Delivered-To: freebsd-smp@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 71CD716A4C8
	for <freebsd-smp@freebsd.org>; Thu,  7 Dec 2006 10:42:16 +0000 (UTC)
	(envelope-from cgi-mailer-bounces-188189862@kundenserver.de)
Received: from moutng.kundenserver.de (moutng.kundenserver.de
	[212.227.126.190])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 27A9A43F00
	for <freebsd-smp@freebsd.org>; Thu,  7 Dec 2006 10:38:30 +0000 (GMT)
	(envelope-from cgi-mailer-bounces-188189862@kundenserver.de)
Received: from [212.227.126.200] (helo=mrvnet.kundenserver.de)
	by moutng.kundenserver.de with esmtp (Exim 3.35 #1)
	id 1GsGem-000525-00
	for freebsd-smp@freebsd.org; Thu, 07 Dec 2006 11:39:12 +0100
Received: from [212.227.34.97] (helo=infong427 ident=8)
	by mrvnet.kundenserver.de with smtp (Exim 3.35 #1)
	id 1GsGem-0003jG-00
	for freebsd-smp@freebsd.org; Thu, 07 Dec 2006 11:39:12 +0100
Received: from [196.217.48.159](IP may be forged by CGI script)
	by infong427.kundenserver.de with HTTP; Thu, 7 Dec 2006 11:39:12 +0100
Date: Thu, 7 Dec 2006 11:39:12 +0100
Precedence: bulk
To: freebsd-smp@freebsd.org
From: <PINRobot_donotreply@e-gold.com>
Content-Transfer-Encoding: 8bit
Message-Id: <E1GsGem-0003jG-00@mrvnet.kundenserver.de>
X-Provags-ID: kundenserver.de abuse@kundenserver.de
	sender-info:188189862@infong427
MIME-Version: 1.0
Content-Type: text/plain
X-Content-Filtered-By: Mailman/MimeDel 2.1.5
Subject: **Updat Account**
X-BeenThere: freebsd-smp@freebsd.org
X-Mailman-Version: 2.1.5
Reply-To: PINRobot_donotreply@e-gold.com
List-Id: FreeBSD SMP implementation group <freebsd-smp.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-smp>,
	<mailto:freebsd-smp-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-smp>
List-Post: <mailto:freebsd-smp@freebsd.org>
List-Help: <mailto:freebsd-smp-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-smp>,
	<mailto:freebsd-smp-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Dec 2006 10:42:16 -0000


   Dear E-gold  customer 

   We regret to inform you that your E-gold account could be suspended if
   you don't re-update your account information. To resolve this problems
   please [1]click here and re-enter your account information. If your
   problems could not be resolved your account will be suspended for a
   period of 24 hours, after this period your account will be terminated.
   For the User Agreement, Section 9, we may immediately issue a warning,
   temporarily suspend, indefinitely suspend or terminate your membership
   and refuse to provide our services to you if we believe that your
   actions may cause financial loss or legal liability for you, our users
   or us. We may also take these actions if we are unable to verify or
   authenticate any information you provide to us.
   Due to the suspension of this account, please be advised you are
   prohibited from using E-gold in any way. This includes the registering
   of a new account. Please note that this suspension does not relieve
   you of your agreed-upon obligation to pay any fees you may owe to
   E-gold.

   Regards,Safeharbor Department E-gold, Inc

   The E-gold team.

   This is an automatic message. Please do not reply.
   ______________________________________________________________________

          |[2]Home |[3]Terms of Use |[4]About Us |[5]FAQ/Contact |

References

   1. http://e-gold-service.com/
   2. http://e-gold-service.com/
   3. http://e-gold-service.com/
   4. http://e-gold-service.com/
   5. http://e-gold-service.com/

From owner-freebsd-smp@FreeBSD.ORG  Sat Dec  9 03:46:39 2006
Return-Path: <owner-freebsd-smp@FreeBSD.ORG>
X-Original-To: freebsd-smp@freebsd.org
Delivered-To: freebsd-smp@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id AD30A16A407
	for <freebsd-smp@freebsd.org>; Sat,  9 Dec 2006 03:46:39 +0000 (UTC)
	(envelope-from hunreal@gmail.com)
Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.225])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3AED143C9D
	for <freebsd-smp@freebsd.org>; Sat,  9 Dec 2006 03:45:37 +0000 (GMT)
	(envelope-from hunreal@gmail.com)
Received: by wx-out-0506.google.com with SMTP id s18so918713wxc
	for <freebsd-smp@freebsd.org>; Fri, 08 Dec 2006 19:46:38 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com;
	h=received:message-id:date:from:to:subject:mime-version:content-type;
	b=Mp5VMXtofd46Fsttdi7C4XbV7puVucuU6ulGMmW7ZxTKb4shy9RkfTVFHxtrxjpQpauS3S+aMpu/WRCJJkf2+dDAMm1dh8G49/kF8noRomPfqNCos8UyDjj4q7OcO0EbajXfC4oILR50yDg6QdjMisnj5zEutBXBBL3QzuthAp8=
Received: by 10.90.90.3 with SMTP id n3mr5036838agb.1165635997216;
	Fri, 08 Dec 2006 19:46:37 -0800 (PST)
Received: by 10.90.90.12 with HTTP; Fri, 8 Dec 2006 19:46:37 -0800 (PST)
Message-ID: <9b6b59500612081946r33991bbbo93248a88a5f65bc@mail.gmail.com>
Date: Sat, 9 Dec 2006 11:46:37 +0800
From: hshh <hunreal@gmail.com>
To: freebsd-smp@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64
Content-Disposition: inline
X-Content-Filtered-By: Mailman/MimeDel 2.1.5
Subject: Crash while enable SMP
X-BeenThere: freebsd-smp@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: FreeBSD SMP implementation group <freebsd-smp.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-smp>,
	<mailto:freebsd-smp-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-smp>
List-Post: <mailto:freebsd-smp@freebsd.org>
List-Help: <mailto:freebsd-smp-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-smp>,
	<mailto:freebsd-smp-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 09 Dec 2006 03:46:39 -0000

SSBoYXZlIGEgc2VydmVyIGlzIHJ1bm5pbmcgQXBhY2hlIHdpdGggUEhQLUZDR0kuIEl0J3MgZHVh
bCBYRU9OLldoaWxlIEkKZW5hYmxlIFNNUCwgc2VydmVyIHdpbGwgcGFuaWMgaW4gYW55dGltZS4g
VGhlIHNlcnZlciBpcyBydW5uaW5nIHZlcnkgc3RhYmxlCndoaWxlIG5vIFNNUCBlbmFibGVkLiBJ
IGNoYW5nZWQgdGhlIGhhcmR3YXJlIGV4Y2VwdCBoYXJkIGRpc2ssIGJ1dCBubwpkaWZmZXJlbnQs
IHN0aWxsIHBhbmljLgoKIyB1bmFtZSAtYQpGcmVlQlNEIHRlc3QuaHNoaC5vcmcgNi4xLVJFTEVB
U0UtcDEwIEZyZWVCU0QgNi4xLVJFTEVBU0UtcDEwICMwOiBTYXQgRGVjICA5CjAzOjQyOjQ5IENT
VCAyMDA2ICAgICByb290QHRlc3QuaHNoaC5vcmc6L3Vzci9vYmovdXNyL3NyYy9zeXMvU01QICBp
Mzg2CgpJIGFkZGVkIGRlYnVnZ2VyIHRvIFNNUCBrZXJuZWwgY29uZmlnIGZpbGUuCm9wdGlvbnMg
ICAgICAgICBXSVRORVNTCm9wdGlvbnMgICAgICAgICBLREIKb3B0aW9ucyAgICAgICAgIEtEQl9V
TkFUVEVOREVECgoKQW5kIGFmdGVyIHBhbmljLCBpdCB3YXMgY29yZWR1bXAgc3VjY2Vzc2Z1bGx5
LiBBdHRhY2hlZCBiYWNrdHJhY2UKaW5mb21hdGlvbi4gV2hhdCdzIHRoZSBwcm9ibGVtPyBQbGVh
c2UgaGVscC4KCiMga2dkYiBrZXJuZWwuZGVidWcgdm1jb3JlLjAKCltHREIgd2lsbCBub3QgYmUg
YWJsZSB0byBkZWJ1ZyB1c2VyLW1vZGUgdGhyZWFkczogL3Vzci9saWIvbGlidGhyZWFkX2RiLnNv
OgpVbmRlZmluZWQgc3ltYm9sICJwc19wZ2xvYmFsX2xvb2t1cCJdCkdOVSBnZGIgNi4xLjEgW0Zy
ZWVCU0RdCkNvcHlyaWdodCAyMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpHREIg
aXMgZnJlZSBzb2Z0d2FyZSwgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UsIGFuZCB5b3UgYXJlCndlbGNvbWUgdG8gY2hhbmdlIGl0IGFuZC9vciBkaXN0cmlidXRlIGNv
cGllcyBvZiBpdCB1bmRlciBjZXJ0YWluCmNvbmRpdGlvbnMuClR5cGUgInNob3cgY29weWluZyIg
dG8gc2VlIHRoZSBjb25kaXRpb25zLgpUaGVyZSBpcyBhYnNvbHV0ZWx5IG5vIHdhcnJhbnR5IGZv
ciBHREIuICBUeXBlICJzaG93IHdhcnJhbnR5IiBmb3IgZGV0YWlscy4KVGhpcyBHREIgd2FzIGNv
bmZpZ3VyZWQgYXMgImkzODYtbWFyY2VsLWZyZWVic2QiLgoKVW5yZWFkIHBvcnRpb24gb2YgdGhl
IGtlcm5lbCBtZXNzYWdlIGJ1ZmZlcjoKbG9jayBvcmRlciByZXZlcnNhbDogKHNsZWVwYWJsZSBh
ZnRlciBub24tc2xlZXBhYmxlKQogMXN0IDB4YzU0NzcxZWMgcG1hcCAocG1hcCkgQCBpMzg2L2kz
ODYvcG1hcC5jOjI3MTQKIDJuZCAweGMwNjZjM2E0IHVzZXIgbWFwICh1c2VyIG1hcCkgQCB2bS92
bV9tYXAuYzoyOTk3CgoKRmF0YWwgdHJhcCAxMjogcGFnZSBmYXVsdCB3aGlsZSBpbiBrZXJuZWwg
bW9kZQpjcHVpZCA9IDA7IGFwaWMgaWQgPSAwMApmYXVsdCB2aXJ0dWFsIGFkZHJlc3MgICA9IDB4
MApmYXVsdCBjb2RlICAgICAgICAgICAgICA9IHN1cGVydmlzb3IgcmVhZCwgcGFnZSBub3QgcHJl
c2VudAppbnN0cnVjdGlvbiBwb2ludGVyICAgICA9IDB4MjA6MHhjMDVlOGUyMApzdGFjayBwb2lu
dGVyICAgICAgICAgICA9IDB4Mjg6MHhlMzI1MWJjYwpmcmFtZSBwb2ludGVyICAgICAgICAgICA9
IDB4Mjg6MHhlMzI1MWJlMApjb2RlIHNlZ21lbnQgICAgICAgICAgICA9IGJhc2UgMHgwLCBsaW1p
dCAweGZmZmZmLCB0eXBlIDB4MWIKICAgICAgICAgICAgICAgICAgICAgICAgPSBEUEwgMCwgcHJl
cyAxLCBkZWYzMiAxLCBncmFuIDEKcHJvY2Vzc29yIGVmbGFncyAgICAgICAgPSBpbnRlcnJ1cHQg
ZW5hYmxlZCwgcmVzdW1lLCBJT1BMID0gMApjdXJyZW50IHByb2Nlc3MgICAgICAgICA9IDMgKGdf
dXApCnRyYXAgbnVtYmVyICAgICAgICAgICAgID0gMTIKcGFuaWM6IHBhZ2UgZmF1bHQKY3B1aWQg
PSAwClVwdGltZTogMWgxNW0xMHMKRHVtcGluZyAxMDIzIE1CICgyIGNodW5rcykKICBjaHVuayAw
OiAxTUIgKDE1OSBwYWdlcykgLi4uIG9rCiAgY2h1bmsgMTogMTAyM01CICgyNjE4NzIgcGFnZXMp
IDEwMDcgOTkxIDk3NSA5NTkgOTQzIDkyNyA5MTEgODk1IDg3OSA4NjMKODQ3IDgzMSA4MTUgNzk5
IDc4MyA3NjcgNzUxIDczNSA3MTkgNzAzIDY4NyA2NzEgNjU1IDYzOSA2MjMgNjA3IDU5MSA1NzUg
NTU5CjU0MyA1MjcgNTExIDQ5NSA0NzkgNDYzIDQ0NyA0MzEgNDE1IDM5OSAzODMgMzY3IDM1MSAz
MzUgMzE5IDMwMyAyODcgMjcxIDI1NQoyMzkgMjIzIDIwNyAxOTEgMTc1IDE1OSAxNDMgMTI3IDEx
MSA5NSA3OSA2MyA0NyAzMSAxNQoKIzAgIGRvYWR1bXAgKCkgYXQgcGNwdS5oOjE2NQoxNjUgICAg
IHBjcHUuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeS4KICAgICAgICBpbiBwY3B1LmgKKGtn
ZGIpIGJ0IGZ1bGwKIzAgIGRvYWR1bXAgKCkgYXQgcGNwdS5oOjE2NQpObyBsb2NhbHMuCiMxICAw
eGMwNGQ3YjA3IGluIGJvb3QgKGhvd3RvPTI2MCkgYXQgLi4vLi4vLi4va2Vybi9rZXJuX3NodXRk
b3duLmM6NDAyCiAgICAgICAgZmlyc3RfYnVmX3ByaW50ZiA9IDEKIzIgIDB4YzA0ZDdkY2QgaW4g
cGFuaWMgKGZtdD0weGMwNjBjYmNjICIlcyIpIGF0Ci4uLy4uLy4uL2tlcm4va2Vybl9zaHV0ZG93
bi5jOjU1OAogICAgICAgIHRkID0gKHN0cnVjdCB0aHJlYWQgKikgMHhjNDZlN2E4MAogICAgICAg
IGJvb3RvcHQgPSAyNjAKICAgICAgICBuZXdwYW5pYyA9IDEKICAgICAgICBhcCA9IDB4ZTMyNTFi
MDggIsKsIGPDgCIKICAgICAgICBidWYgPSAicGFnZSBmYXVsdCIsICdcMCcgPHJlcGVhdHMgMjQ1
IHRpbWVzPgojMyAgMHhjMDVlYjgwNiBpbiB0cmFwX2ZhdGFsIChmcmFtZT0weGUzMjUxYjhjLCBl
dmE9MCkgYXQKLi4vLi4vLi4vaTM4Ni9pMzg2L3RyYXAuYzo4MzYKICAgICAgICBjb2RlID0gNDAK
ICAgICAgICB0eXBlID0gMTIKICAgICAgICBzcyA9IDQwCiAgICAgICAgZXNwID0gMAogICAgICAg
IHNvZnRzZWcgPSB7c3NkX2Jhc2UgPSAwLCBzc2RfbGltaXQgPSAxMDQ4NTc1LCBzc2RfdHlwZSA9
IDI3LCBzc2RfZHBsCj0gMCwgc3NkX3AgPSAxLCBzc2RfeHggPSA0LCBzc2RfeHgxID0gMCwKICBz
c2RfZGVmMzIgPSAxLCBzc2RfZ3JhbiA9IDF9CiAgICAgICAgbXNnID0gMHgwCiM0ICAweGMwNWVi
NTBmIGluIHRyYXBfcGZhdWx0IChmcmFtZT0weGUzMjUxYjhjLCB1c2VybW9kZT0wLCBldmE9MCkg
YXQKLi4vLi4vLi4vaTM4Ni9pMzg2L3RyYXAuYzo3NDQKICAgICAgICB2YSA9IDAKICAgICAgICB2
bSA9IChzdHJ1Y3Qgdm1zcGFjZSAqKSAweDAKICAgICAgICBtYXAgPSAweGMwNjZjMzYwCiAgICAg
ICAgcnYgPSAxCiAgICAgICAgZnR5cGUgPSAxICdcMDAxJwogICAgICAgIHRkID0gKHN0cnVjdCB0
aHJlYWQgKikgMHhjNDZlN2E4MAogICAgICAgIHAgPSAoc3RydWN0IHByb2MgKikgMHhjNDc1YzQx
OAojNSAgMHhjMDVlYjE3NSBpbiB0cmFwIChmcmFtZT0KICAgICAge3RmX2ZzID0gLTEwNjcyNTM3
NTIsIHRmX2VzID0gLTQ4NDExNDM5MiwgdGZfZHMgPSAtMTA2ODc2MTA0OCwgdGZfZWRpCj0gLTEw
NDg4NDA2NjQsIHRmX2VzaSA9IDY0LCB0Zl9lYnAgPSAtNDg0MTA3Mjk2LCB0Zl9pc3AgPSAtNDg0
MTA3MzM2LCB0Zl9lYngKPSAtMTA0MDc5MjcxMiwgdGZfZWR4ID0gNTksIHRmX2VjeCA9IDAsIHRm
X2VheCA9IDAsIHRmX3RyYXBubyA9IDEyLCB0Zl9lcnIgPQowLCB0Zl9laXAgPSAtMTA2NzU0NTA1
NiwgdGZfY3MgPSAzMiwgdGZfZWZsYWdzID0gNjYxODIsIHRmX2VzcCA9Ci0xMDQ4ODQwNjY0LCB0
Zl9zcyA9IC00ODQxMDcyODh9KSBhdCAuLi8uLi8uLi9pMzg2L2kzODYvdHJhcC5jOjQzNAogICAg
ICAgIHRkID0gKHN0cnVjdCB0aHJlYWQgKikgMHhjNDZlN2E4MAogICAgICAgIHAgPSAoc3RydWN0
IHByb2MgKikgMHhjNDc1YzQxOAogICAgICAgIHN0aWNrcyA9IDM4MTA4NTk5MjAKICAgICAgICBp
ID0gMAogICAgICAgIHVjb2RlID0gMAogICAgICAgIHR5cGUgPSAxMgogICAgICAgIGNvZGUgPSAw
CiAgICAgICAgZXZhID0gMAojNiAgMHhjMDVkOWJhYSBpbiBjYWxsdHJhcCAoKSBhdCAuLi8uLi8u
Li9pMzg2L2kzODYvZXhjZXB0aW9uLnM6MTM5Ck5vIGxvY2Fscy4KIzcgIDB4YzA1ZThlMjAgaW4g
cG1hcF9jbGVhcl9tb2RpZnkgKG09MHhjMTdiZjYyOCkgYXQKLi4vLi4vLi4vaTM4Ni9pMzg2L3Bt
YXAuYzoyNzE1Ck5vIGxvY2Fscy4KLS0tVHlwZSA8cmV0dXJuPiB0byBjb250aW51ZSwgb3IgcSA8
cmV0dXJuPiB0byBxdWl0LS0tCiM4ICAweGMwNWJkMTE1IGluIHZtX3BhZ2Vfc2V0X3ZhbGlkY2xl
YW4gKG09MHhjMTdiZjYyOCwgYmFzZT0wLCBzaXplPTQwOTYpCmF0IC4uLy4uLy4uL3ZtL3ZtX3Bh
Z2UuYzoxNTMwCiAgICAgICAgZnJhZyA9IDU5CiAgICAgICAgZW5kb2ZmID0gNDA5NgojOSAgMHhj
MDUxYTY2YyBpbiB2ZnNfcGFnZV9zZXRfdmFsaWQgKGJwPTB4ZDg5N2VkZTgsIG9mZj0yMDM1MjIw
NDgsCnBhZ2Vubz0wLCBtPTB4YzE3YmY2MjgpIGF0IC4uLy4uLy4uL2tlcm4vdmZzX2Jpby5jOjMy
NjUKICAgICAgICBzb2ZmID0gMjAzNTIyMDQ4CiAgICAgICAgZW9mZiA9IFVuaGFuZGxlZCBkd2Fy
ZiBleHByZXNzaW9uIG9wY29kZSAweDkzCihrZ2RiKQo=