delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/04/23/16:43:21

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=0.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,SPF_PASS,TBC
X-Spam-Check-By: sourceware.org
To: cygwin AT cygwin DOT com
From: Eric Lilja <mindcooler AT gmail DOT com>
Subject: C++ program produces no output (g++ 4.3.2, cygwin 1.7)
Date: Thu, 23 Apr 2009 22:42:47 +0200
Lines: 768
Message-ID: <gsqjs7$qsb$1@ger.gmane.org>
Mime-Version: 1.0
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

--------------050707000507090105070408
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi, attached is the source for a C++ program (with a Makefile) that 
produces no output when run (I tried redirecting stdout, that didn't 
work either). I'm running Cygwin 1.7 on a Vista32 machine, Cygwin was 
just updated.
The code was written september 2007 and then it ran and displayed its 
output just fine. It's a simple AVL Tree with a small test program.
I'm using g++ 4.3.2. Something seems to be up with cygcheck too, because 
I have attached the wierd looking output it gave me (and it took a while 
for it to complete as well).

Maybe someone could try the program I attached and see if they get the 
same problems as me?

I don't know how to use gdb, but I did try running my code under gdb, 
here's what I got:
$ gdb testavl.exe
GNU gdb 6.8.0.20080328-cvs (cygwin-special)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-cygwin"...
(gdb) run
Starting program: /cygdrive/c/coding/kurser/tddi01/avl_tree/testavl.exe
[New thread 3568.0xe70]

Program exited with code 030000000005.
You can't do that without a process to debug.
(gdb)

main() is in the file avl_tree-test.cc (notice the large block of code 
that has been if 0:ed out in that file).
Also notice the cout first in main() which should be displayed even if 
the program crashes as soon as it tries to instantiate AVL_Tree<int>.

Since this used to work and I haven't touched code I thought I might ask 
for advice here, since I'm using an upgraded compiler and the cygwin 1.7 
test release.

I tried the program under mintty and takecommand, same result.

- EL

--------------050707000507090105070408
Content-Type: text/plain;
 name="cygcheck.out"
Content-Transfer-Encoding: 8bit
Content-Disposition: inline;
 filename="cygcheck.out"


Cygwin Configuration Diagnostics
Current System Time: Thu Apr 23 22:22:17 2009

Windows Vista Business Ver 6.0 Build 6001 Service Pack 1

Path:	C:\cygwin\usr\local\bin
	C:\cygwin\bin
	C:\cygwin\bin
	C:\cygwin\usr\X11R6\bin
	C:\Program Files\PHP\
	C:\Windows\system32
	C:\Windows
	C:\Windows\System32\Wbem
	C:\emacs-23\bin
	C:\cygwin\bin
	C:\Program Files\Intel\WiFi\bin\

Output from C:\cygwin\bin\id.exe (nontsec)
UID: 1000(mindcooler) GID: 513(None)
0(root)               544(Administratörer)  545(Användare)
513(None)

Output from C:\cygwin\bin\id.exe (ntsec)
UID: 1000(mindcooler) GID: 513(None)
0(root)               544(Administratörer)  545(Användare)
513(None)

SysDir: C:\Windows\system32
WinDir: C:\Windows

USER = 'mindcooler'
PWD = '/cygdrive/c/coding/kurser/tddi01/avl_tree'
HOME = '/home/mindcooler'

HOMEPATH = '\Users\mindcooler'
MANPATH = '/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man'
APPDATA = 'C:\Users\mindcooler\AppData\Roaming'
HOSTNAME = 'mindcool-laptop'
DXSDK_DIR = 'C:\Program Files\Microsoft DirectX SDK (March 2009)\'
TERM = 'xterm'
PROCESSOR_IDENTIFIER = 'x86 Family 6 Model 15 Stepping 11, GenuineIntel'
WINDIR = 'C:\Windows'
PUBLIC = 'C:\Users\Public'
OLDPWD = '/cygdrive/c'
USERDOMAIN = 'mindcool-laptop'
PHPRC = 'C:\Program Files\PHP\'
OS = 'Windows_NT'
ALLUSERSPROFILE = 'C:\ProgramData'
!:: = '::\'
VS90COMNTOOLS = 'C:\vs9\Common7\Tools\'
TEMP = '/cygdrive/c/Users/MINDCO~1/AppData/Local/Temp'
COMMONPROGRAMFILES = 'C:\Program Files\Common Files'
USERNAME = 'mindcooler'
PROCESSOR_LEVEL = '6'
FP_NO_HOST_CHECK = 'NO'
SYSTEMDRIVE = 'C:'
USERPROFILE = 'C:\Users\mindcooler'
PS1 = '\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '
LOGONSERVER = '\\MINDCOOL-LAPTOP'
PROCESSOR_ARCHITECTURE = 'x86'
LOCALAPPDATA = 'C:\Users\mindcooler\AppData\Local'
ProgramData = 'C:\ProgramData'
SHLVL = '1'
PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'
HOMEDRIVE = 'C:'
COMSPEC = 'C:\Windows\system32\cmd.exe'
TMP = '/cygdrive/c/Users/MINDCO~1/AppData/Local/Temp'
SYSTEMROOT = 'C:\Windows'
PRINTER = 'Microsoft XPS Document Writer'
CVS_RSH = '/bin/ssh'
PROCESSOR_REVISION = '0f0b'
CLASSPATH = '.'
INFOPATH = '/usr/local/info:/usr/share/info:/usr/info:'
PROGRAMFILES = 'C:\Program Files'
NUMBER_OF_PROCESSORS = '2'
SESSIONNAME = 'Console'
COMPUTERNAME = 'MINDCOOL-LAPTOP'
_ = '/usr/bin/cygcheck.exe'

HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2
HKEY_CURRENT_USER\Software\Cygwin
HKEY_CURRENT_USER\Software\Cygwin\Program Options
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.com%2fcygwin
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.com%2fcygwin\OpenWithList
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2
  (default) = '/cygdrive'
  cygdrive flags = 0x00000022
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/
  (default) = 'C:\cygwin'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin
  (default) = 'C:\cygwin/bin'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib
  (default) = 'C:\cygwin/lib'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin
HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\Program Options

obcaseinsensitive set to 1

c:  hd  NTFS    159999Mb  45% CP CS UN PA FC     
d:  hd  FAT32     9988Mb  33% CP    UN           FAT32PART
e:  cd             N/A    N/A                    
f:  cd             N/A    N/A                    
z:  net NTFS    549999Mb  70% CP CS UN PA FC     

C:/cygwin      /          system  binmode
C:\cygwin\bin  /usr/bin   system  binmode
C:\cygwin\lib  /usr/lib   system  binmode
.              /cygdrive  user    binmode,cygdrive

Found: C:\cygwin\bin\awk.exe
Found: C:\cygwin\bin\awk.exe
Found: C:\cygwin\bin\awk.exe
 -> C:\cygwin\bin\gawk.exe
Found: C:\cygwin\bin\bash.exe
Found: C:\cygwin\bin\bash.exe
Found: C:\cygwin\bin\bash.exe
Found: C:\cygwin\bin\cat.exe
Found: C:\cygwin\bin\cat.exe
Found: C:\cygwin\bin\cat.exe
Found: C:\cygwin\bin\cp.exe
Found: C:\cygwin\bin\cp.exe
Found: C:\cygwin\bin\cp.exe
Found: C:\cygwin\bin\cpp.exe
Found: C:\cygwin\bin\cpp.exe
Found: C:\cygwin\bin\cpp.exe
 -> C:\cygwin\etc\alternatives\cpp
 -> C:\cygwin\bin\cpp-4.exe

--------------050707000507090105070408
Content-Type: application/octet-stream;
 name="cpp-program.tar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="cpp-program.tar"

QVZMX1RyZWUuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAADAwMDAwMDAAMDAwMDc2NQAwMDAxMDAxADAwMDAwMDAzMDYw
ADEwNjcyMzI3MjE1ADAxMTM3MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAEfkc3QA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATm9uZQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAvKgogKiBBVkxfVHJlZS5oICAgIChjKSBUb21t
eSBPbHNzb24sIElEQSwgMjAwNy0wNS0wMgogKgogKiBvcGVyYXRvcjw8IGb2
cnV0c+R0dHMgdmFyYSBkZWZpbmllcmFkIGb2ciBDb21wYXJhYmxlLgogKi8K
I2lmbmRlZiBBVkxUUkVFX0lOQwojZGVmaW5lIEFWTFRSRUVfSU5DCiNpbmNs
dWRlIDxpb3Nmd2Q+CiNpbmNsdWRlIDxzdGRleGNlcHQ+CgpjbGFzcyBhdmxf
dHJlZV9lcnJvciA6IHB1YmxpYyBzdGQ6OmxvZ2ljX2Vycm9yIAp7CnB1Ymxp
YzoKICAgZXhwbGljaXQgYXZsX3RyZWVfZXJyb3IoY29uc3Qgc3RkOjpzdHJp
bmcmIHdoYXRfYXJnKQogICAgICA6IHN0ZDo6bG9naWNfZXJyb3Iod2hhdF9h
cmcpIHt9Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhYmxlPiBjbGFz
cyBBVkxfVHJlZV9Ob2RlOwoKdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJs
ZT4KY2xhc3MgQVZMX1RyZWUgCnsKcHVibGljOgogICBBVkxfVHJlZSgpOwog
ICBBVkxfVHJlZShjb25zdCBBVkxfVHJlZSYpOwogICB+QVZMX1RyZWUoKTsK
ICAgQVZMX1RyZWUmIG9wZXJhdG9yPShBVkxfVHJlZSByaHMpOwoKICAgdm9p
ZCAgICAgICAgaW5zZXJ0KGNvbnN0IENvbXBhcmFibGUmIGVsZW1lbnQpOwog
ICB2b2lkICAgICAgICByZW1vdmUoY29uc3QgQ29tcGFyYWJsZSYgZWxlbWVu
dCk7ICAgCiAgIGJvb2wgICAgICAgIG1lbWJlcihjb25zdCBDb21wYXJhYmxl
JikgY29uc3Q7CiAgIENvbXBhcmFibGUmIHJldHJpZXZlKCk7CgogICBDb21w
YXJhYmxlJiBmaW5kKGNvbnN0IENvbXBhcmFibGUmIGVsZW1lbnQpIGNvbnN0
OwogICBDb21wYXJhYmxlJiBmaW5kX21pbigpIGNvbnN0OwogICBDb21wYXJh
YmxlJiBmaW5kX21heCgpIGNvbnN0OwoKICAgdm9pZCBjbGVhcigpOwogICBi
b29sIGVtcHR5KCkgY29uc3Q7CgogICB2b2lkIHByaW50KHN0ZDo6b3N0cmVh
bSYpIGNvbnN0OwogICB2b2lkIHByaW50X3RyZWUoc3RkOjpvc3RyZWFtJikg
Y29uc3Q7CgogICB2b2lkIHN3YXAoQVZMX1RyZWUmIG90aGVyKTsKCnByaXZh
dGU6CiAgIHR5cGVkZWYgQVZMX1RyZWVfTm9kZTxDb21wYXJhYmxlPiAgTm9k
ZTsKICAgdHlwZWRlZiBBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+KiBOb2Rl
X1BvaW50ZXI7CgogICBOb2RlX1BvaW50ZXIgICAgICAgICByb290XzsKICAg
bXV0YWJsZSBOb2RlX1BvaW50ZXIgY3VycmVudF87Cn07Cgp0ZW1wbGF0ZTx0
eXBlbmFtZSBDb21wYXJhYmxlPgp2b2lkIHN3YXAoQVZMX1RyZWU8Q29tcGFy
YWJsZT4mLCBBVkxfVHJlZTxDb21wYXJhYmxlPiYpOwoKdGVtcGxhdGU8dHlw
ZW5hbWUgQ29tcGFyYWJsZT4Kc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0
ZDo6b3N0cmVhbSYsIGNvbnN0IEFWTF9UcmVlPENvbXBhcmFibGU+Jik7Cgov
KiBDaGFuZ2VkIGZpbGUgdHlwZSB0byAuY2MgdG8gbWFrZSBlbWFjcyBsYXVu
Y2ggYysrIG1vZGUgZm9yIHRoZSBmaWxlLgogKiBBbHNvLCBpZiB5b3UncmUg
dGVzdGluZyB0aGlzIGlzIFZDLCBwdXQgZXZlcnl0aGluZyBpbiB0aGUgaGVh
ZGVyIGZpbGUKICogKHRoYXQgaXMsIGluIHRoaXMgZmlsZSkuICovCiNpbmNs
dWRlICJBVkxfVHJlZS5jYyIKCiNlbmRpZgoAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFWTF9U
cmVlLmNjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAwMDAwMDAwADAwMDA3NjUAMDAwMTAwMQAwMDAwMDAzMjcxNgAxMDY3
MjMyNzUzMwAwMTE1NDUAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABH5HN0AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5vbmUAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAALyoKICogQVZMX1RyZWUuaWNjICAgIChjKSBUb21teSBP
bHNzb24sIElEQSwgMjAwNy0wNS0wMgogKi8KI2luY2x1ZGUgPGlvc3RyZWFt
PgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c3RkZXhjZXB0Pgoj
aW5jbHVkZSAiQVZMX1RyZWUuaCIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8q
CiAqIEFWTF9UcmVlX05vZGUuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21w
YXJhYmxlPgpjbGFzcyBBVkxfVHJlZV9Ob2RlIAp7CiAgIGZyaWVuZCBjbGFz
cyBBVkxfVHJlZTxDb21wYXJhYmxlPjsKCiAgIEFWTF9UcmVlX05vZGUoY29u
c3QgQ29tcGFyYWJsZSYgZWxlbWVudCkKICAgICAgOiBlbGVtZW50XyhlbGVt
ZW50KSwgbGVmdF8oMCksIHJpZ2h0XygwKSwgaGVpZ2h0XygwKSB7fQoKICAg
QVZMX1RyZWVfTm9kZShjb25zdCBDb21wYXJhYmxlJiBlbGVtZW50LCBBVkxf
VHJlZV9Ob2RlKiBsZWZ0LCBBVkxfVHJlZV9Ob2RlKiByaWdodCkKICAgICAg
OiBlbGVtZW50XyhlbGVtZW50KSwgbGVmdF8obGVmdCksIHJpZ2h0XyhyaWdo
dCksIGhlaWdodF8oMCkge30KCiAgIENvbXBhcmFibGUgICAgIGVsZW1lbnRf
OwogICBBVkxfVHJlZV9Ob2RlKiBsZWZ0XzsKICAgQVZMX1RyZWVfTm9kZSog
cmlnaHRfOwogICBpbnQgICAgICAgICAgICBoZWlnaHRfOwoKICAgdHlwZWRl
ZiBBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+ICBOb2RlOwogICB0eXBlZGVm
IEFWTF9UcmVlX05vZGU8Q29tcGFyYWJsZT4qIE5vZGVfUG9pbnRlcjsKCiAg
IC8vIEb2bGphbmRlIGZ1bmt0aW9uZXIgYW5yb3BhcyBhdiBtb3RzdmFyYW5k
ZSBmdW5rdGlvbmVyIGkgQVZMX1RyZWUuCiAgIHN0YXRpYyB2b2lkIGluc2Vy
dChjb25zdCBDb21wYXJhYmxlJiwgTm9kZV9Qb2ludGVyJik7CiAgIHN0YXRp
YyB2b2lkIHJlbW92ZShjb25zdCBDb21wYXJhYmxlJiwgTm9kZV9Qb2ludGVy
Jik7CiAgIHN0YXRpYyB2b2lkIGNsZWFyKE5vZGVfUG9pbnRlciYpOwoKICAg
c3RhdGljIE5vZGVfUG9pbnRlciBmaW5kKGNvbnN0IENvbXBhcmFibGUmLCBj
b25zdCBOb2RlX1BvaW50ZXIpOwogICBzdGF0aWMgTm9kZV9Qb2ludGVyIGZp
bmRfbWluKGNvbnN0IE5vZGVfUG9pbnRlcik7CiAgIHN0YXRpYyBOb2RlX1Bv
aW50ZXIgZmluZF9tYXgoY29uc3QgTm9kZV9Qb2ludGVyKTsKCiAgIHN0YXRp
YyB2b2lkIHByaW50KHN0ZDo6b3N0cmVhbSYsIGNvbnN0IE5vZGVfUG9pbnRl
cik7CiAgIHN0YXRpYyB2b2lkIHByaW50X3RyZWUoc3RkOjpvc3RyZWFtJiwg
Y29uc3QgTm9kZV9Qb2ludGVyLCBpbnQgZGVwdGggPSAwKTsKCiAgIC8vIEb2
bGphbmRlIGZ1bmt0aW9uIGltcGxlbWVudGVyYXIgZGp1cCBrb3BpZXJpbmcg
b2NoIHRpbGxkZWxuaW5nLgogICBzdGF0aWMgTm9kZV9Qb2ludGVyIGNsb25l
KGNvbnN0IE5vZGVfUG9pbnRlcik7CgogICAvLyBG9mxqYW5kZSBoauRscGZ1
bmt0aW9uZXIg5HIgaW50ZXJuYSBm9nIgQVZMX1RyZWVfTm9kZS4KICAgc3Rh
dGljIHZvaWQgc2luZ2xlX3JvdGF0ZV93aXRoX2xlZnRfY2hpbGQoTm9kZV9Q
b2ludGVyJik7CiAgIHN0YXRpYyB2b2lkIHNpbmdsZV9yb3RhdGVfd2l0aF9y
aWdodF9jaGlsZChOb2RlX1BvaW50ZXImKTsKICAgc3RhdGljIHZvaWQgZG91
YmxlX3JvdGF0ZV93aXRoX2xlZnRfY2hpbGQoTm9kZV9Qb2ludGVyJik7CiAg
IHN0YXRpYyB2b2lkIGRvdWJsZV9yb3RhdGVfd2l0aF9yaWdodF9jaGlsZChO
b2RlX1BvaW50ZXImKTsKCiAgIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZV9oZWln
aHQoY29uc3QgTm9kZV9Qb2ludGVyKTsKICAgc3RhdGljIGludCAgbm9kZV9o
ZWlnaHQoY29uc3QgTm9kZV9Qb2ludGVyKTsKCiAgIHN0YXRpYyBpbnQgbWF4
KGludCB4LCBpbnQgeSkgeyByZXR1cm4gKHggPiB5ID8geCA6IHkpOyB9Cgog
ICBzdGF0aWMgdm9pZCBpbmRlbnQoc3RkOjpvc3RyZWFtJiBvcywgaW50IGxl
dmVsKTsKfTsKCi8qCiAqIEFWTC1yb3RhdGlvbmVyIG9jaCB0aWxsaPZyYW5k
ZSBoauRscGZ1bmt0aW9uZXIuCiAqLwoKLyoqCiAqIFJldHVybmVyYSBlbiBu
b2Qvc3VidHLkZHMgaPZqZC4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBh
cmFibGU+CmludApBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+OjoKbm9kZV9o
ZWlnaHQoY29uc3QgTm9kZV9Qb2ludGVyIHApCnsKICAgcmV0dXJuIChwICE9
IDAgPyBwLT5oZWlnaHRfIDogLTEpOwp9CgovKioKICogSnVzdGVyYSBo9mpk
ZW4gZvZyIG5vZGVuIHAuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJh
YmxlPgp2b2lkCkFWTF9UcmVlX05vZGU8Q29tcGFyYWJsZT46OgpjYWxjdWxh
dGVfaGVpZ2h0KGNvbnN0IE5vZGVfUG9pbnRlciBwKQp7CiAgIHAtPmhlaWdo
dF8gPSAxICsgbWF4KG5vZGVfaGVpZ2h0KHAtPmxlZnRfKSwgbm9kZV9oZWln
aHQocC0+cmlnaHRfKSk7Cn0KCi8qKgogKiBlbmtlbHJvdGF0aW9uIHbkbnN0
ZXIgbWVkIHbkbnN0ZXIgYmFybiBtZWQgbm9kZW4gazIgc29tIHBpdm90Lgog
Ki8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZApBVkxfVHJl
ZV9Ob2RlPENvbXBhcmFibGU+OjoKc2luZ2xlX3JvdGF0ZV93aXRoX2xlZnRf
Y2hpbGQoTm9kZV9Qb2ludGVyJiBrMikKewogICBOb2RlX1BvaW50ZXIgazEg
PSBrMi0+bGVmdF87CgogICBrMi0+bGVmdF8gPSBrMS0+cmlnaHRfOwogICBr
MS0+cmlnaHRfID0gazI7CgogICBrMi0+aGVpZ2h0XyA9IG1heChub2RlX2hl
aWdodChrMi0+bGVmdF8pLCBub2RlX2hlaWdodChrMi0+cmlnaHRfKSkgKyAx
OwogICBrMS0+aGVpZ2h0XyA9IG1heChub2RlX2hlaWdodChrMS0+bGVmdF8p
LCBrMi0+aGVpZ2h0XykgKyAxOwoKICAgazIgPSBrMTsKfQoKLyoqCiAqIEVu
a2Vscm90YXRpb24gbWVkIGj2Z2VyIGJhcm4gbWVkIG5vZGVuIGsxIHNvbSBw
aXZvdC4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+CnZvaWQK
QVZMX1RyZWVfTm9kZTxDb21wYXJhYmxlPjo6CnNpbmdsZV9yb3RhdGVfd2l0
aF9yaWdodF9jaGlsZChOb2RlX1BvaW50ZXImIGsxKQp7CiAgIE5vZGVfUG9p
bnRlciBrMiA9IGsxLT5yaWdodF87CgogICBrMS0+cmlnaHRfID0gazItPmxl
ZnRfOwogICBrMi0+bGVmdF8gPSBrMTsKCiAgIGsxLT5oZWlnaHRfID0gbWF4
KG5vZGVfaGVpZ2h0KGsxLT5yaWdodF8pLCBub2RlX2hlaWdodChrMS0+bGVm
dF8pKSArIDE7CiAgIGsyLT5oZWlnaHRfID0gbWF4KG5vZGVfaGVpZ2h0KGsy
LT5yaWdodF8pLCBrMS0+aGVpZ2h0XykgKyAxOwoKICAgazEgPSBrMjsKfQoK
LyoqCiAqIGR1YmJlbHJvdGF0aW9uIHbkbnN0ZXItaPZnZXIgbWVkIGRlbiBu
b2RlbiBrMyBzb20gcGl2b3QuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21w
YXJhYmxlPgp2b2lkCkFWTF9UcmVlX05vZGU8Q29tcGFyYWJsZT46Ogpkb3Vi
bGVfcm90YXRlX3dpdGhfbGVmdF9jaGlsZChOb2RlX1BvaW50ZXImIGszKQp7
CiAgIHNpbmdsZV9yb3RhdGVfd2l0aF9yaWdodF9jaGlsZChrMy0+bGVmdF8p
OwogICBzaW5nbGVfcm90YXRlX3dpdGhfbGVmdF9jaGlsZChrMyk7Cn0KCi8q
KgogKiBEdWJiZWxyb3RhdGlvbiBo9mdlci125G5zdGVyIG1lZCBub2RlbiBr
MyBzb20gcGl2b3QuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhYmxl
Pgp2b2lkCkFWTF9UcmVlX05vZGU8Q29tcGFyYWJsZT46Ogpkb3VibGVfcm90
YXRlX3dpdGhfcmlnaHRfY2hpbGQoTm9kZV9Qb2ludGVyJiBrMykKewogICBz
aW5nbGVfcm90YXRlX3dpdGhfbGVmdF9jaGlsZChrMy0+cmlnaHRfKTsKICAg
c2luZ2xlX3JvdGF0ZV93aXRoX3JpZ2h0X2NoaWxkKGszKTsKfQoKLyoKICog
1nZyaWdhIG1lZGxlbXNmdW5rdGlvbmVyIGb2ciBBVkxfVHJlZV9Ob2RlCiAq
LwoKLyoqCiAqIFPkdHQgaW4geCBpIHRy5GRldCBzb20gZXR0IG55dHQgbPZ2
LiBLb250cm9sbGVyYSBzZWRhbiB0cuRkZXRzIGJhbGFucyBvY2ggCiAqIGp1
c3RlcmEgdmlkIGJlaG92LgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFy
YWJsZT4Kdm9pZApBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+OjoKaW5zZXJ0
KGNvbnN0IENvbXBhcmFibGUmIHgsIE5vZGVfUG9pbnRlciYgdCkKewogICBp
ZiAodCA9PSAwKSAKICAgewogICAgICB0ID0gbmV3IE5vZGUoeCk7CiAgICAg
IHJldHVybjsKICAgfQoKICAgaWYgKHggPCB0LT5lbGVtZW50XykgCiAgIHsK
ICAgICAgaW5zZXJ0KHgsIHQtPmxlZnRfKTsKCiAgICAgIGlmIChub2RlX2hl
aWdodCh0LT5sZWZ0XykgLSBub2RlX2hlaWdodCh0LT5yaWdodF8pID09IDIp
CiAgICAgICAgIGlmICh4IDwgdC0+bGVmdF8tPmVsZW1lbnRfKQogICAgICAg
ICAgICBzaW5nbGVfcm90YXRlX3dpdGhfbGVmdF9jaGlsZCh0KTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICBkb3VibGVfcm90YXRlX3dpdGhfbGVmdF9j
aGlsZCh0KTsKICAgICAgZWxzZQogICAgICAgICBjYWxjdWxhdGVfaGVpZ2h0
KHQpOyAKICAgfQogICBlbHNlIGlmICh0LT5lbGVtZW50XyA8IHgpIAogICB7
CiAgICAgIGluc2VydCh4LCB0LT5yaWdodF8pOwoKICAgICAgaWYgKG5vZGVf
aGVpZ2h0KHQtPnJpZ2h0XykgLSBub2RlX2hlaWdodCh0LT5sZWZ0XykgPT0g
MikKICAgICAgICAgaWYgKHQtPnJpZ2h0Xy0+ZWxlbWVudF8gPCB4KQogICAg
ICAgICAgICBzaW5nbGVfcm90YXRlX3dpdGhfcmlnaHRfY2hpbGQodCk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgZG91YmxlX3JvdGF0ZV93aXRoX3Jp
Z2h0X2NoaWxkKHQpOwogICAgICBlbHNlCiAgICAgICAgIGNhbGN1bGF0ZV9o
ZWlnaHQodCk7CiAgIH0KICAgZWxzZSAKICAgewogICAgICB0aHJvdyBhdmxf
dHJlZV9lcnJvcigiaW5z5HR0bmluZzogZmlubnMgcmVkYW4iKTsKICAgfQp9
Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhYmxlPgp2b2lkCkFWTF9UcmVl
X05vZGU8Q29tcGFyYWJsZT46OgpyZW1vdmUoY29uc3QgQ29tcGFyYWJsZSYg
eCwgTm9kZV9Qb2ludGVyJiB0KQp7CiAgIGlmICh0ID09IDApIAogICB7CiAg
ICAgIHJldHVybjsgIC8vIEjkciBrYW4gZXR0IHVuZGFudGFnIGdlbmVyZXJh
cyBpIHN05GxsZXQgLi4uCiAgIH0KCiAgIGlmICh4IDwgdC0+ZWxlbWVudF8p
IAogICB7CiAgICAgIHJlbW92ZSh4LCB0LT5sZWZ0Xyk7CgogICAgICAvKiBJ
cyB0aGUgcmlnaHQgdHJlZSB0b28gYmlnPyAqLwogICAgICBpZiAobm9kZV9o
ZWlnaHQodC0+cmlnaHRfKSAtIG5vZGVfaGVpZ2h0KHQtPmxlZnRfKSA9PSAy
KQogICAgICB7CiAgICAgICAgIGlmIChub2RlX2hlaWdodCh0LT5yaWdodF8t
PmxlZnRfKSAtIG5vZGVfaGVpZ2h0KHQtPnJpZ2h0Xy0+cmlnaHRfKSA+IDAp
CiAgICAgICAgIHsKICAgICAgICAgICAgY291dCA8PCAiUGVyZm9ybWluZyBk
b3VibGVfcm90YXRlX3dpdGhfcmlnaHRfY2hpbGQuIiA8PCBlbmRsOwogICAg
ICAgICAgICBkb3VibGVfcm90YXRlX3dpdGhfcmlnaHRfY2hpbGQodCk7CiAg
ICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAg
IGNvdXQgPDwgIlBlcmZvcm1pbmcgc2luZ2xlX3JvdGF0ZV93aXRoX3JpZ2h0
X2NoaWxkLiIgPDwgZW5kbDsKICAgICAgICAgICAgc2luZ2xlX3JvdGF0ZV93
aXRoX3JpZ2h0X2NoaWxkKHQpOwogICAgICAgICB9CiAgICAgIH0KICAgfSAK
ICAgZWxzZSBpZiAodC0+ZWxlbWVudF8gPCB4KSAKICAgewogICAgICByZW1v
dmUoeCwgdC0+cmlnaHRfKTsKCiAgICAgIC8qIElzIHRoZSBsZWZ0IHRyZWUg
dG9vIGJpZz8gKi8KICAgICAgaWYgKG5vZGVfaGVpZ2h0KHQtPmxlZnRfKSAt
IG5vZGVfaGVpZ2h0KHQtPnJpZ2h0XykgPT0gMikKICAgICAgewogICAgICAg
ICBpZiAobm9kZV9oZWlnaHQodC0+bGVmdF8tPmxlZnRfKSAtIG5vZGVfaGVp
Z2h0KHQtPmxlZnRfLT5yaWdodF8pIDwgMCkKICAgICAgICAgewogICAgICAg
ICAgICBjb3V0IDw8ICJQZWZvcm1pbmcgZG91YmxlX3JvdGF0ZV93aXRoX2xl
ZnRfY2hpbGQiIDw8IGVuZGw7CiAgICAgICAgICAgIGRvdWJsZV9yb3RhdGVf
d2l0aF9sZWZ0X2NoaWxkKHQpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UK
ICAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8ICJQZXJmb3JtaW5nIHNp
bmdsZV9yb3RhdGVfd2l0aF9sZWZ0X2NoaWxkIiA8PCBlbmRsOwogICAgICAg
ICAgICBzaW5nbGVfcm90YXRlX3dpdGhfbGVmdF9jaGlsZCh0KTsKICAgICAg
ICAgfQogICAgICB9CiAgIH0gCiAgIGVsc2UgCiAgIHsKICAgICAgLy8gU/Zr
dCB25HJkZSBmaW5ucyBpIG5vZGVuIHQKICAgICAgTm9kZV9Qb2ludGVyIHRt
cDsKCiAgICAgIGlmICh0LT5sZWZ0XyAhPSAwICYmIHQtPnJpZ2h0XyAhPSAw
KSB7CiAgICAgICAgIC8vIE5vZGVuIGhhciB0duUgYmFybiBvY2ggZXJz5HR0
cyBtZWQgaW5vcmRlciBlZnRlcmb2bGphcmUKICAgICAgICAgdG1wID0gZmlu
ZF9taW4odC0+cmlnaHRfKTsKICAgICAgICAgdC0+ZWxlbWVudF8gPSB0bXAt
PmVsZW1lbnRfOwogICAgICAgICByZW1vdmUodC0+ZWxlbWVudF8sIHQtPnJp
Z2h0Xyk7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgIC8vIE5vZGVu
IGhhciBpbmdldCBlbGxlciBldHQgYmFybgogICAgICAgICB0bXAgPSB0OwoK
ICAgICAgICAgaWYgKHQtPmxlZnRfID09IDApCiAgICAgICAgICAgIHQgPSB0
LT5yaWdodF87CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgdCA9IHQtPmxl
ZnRfOwoKICAgICAgICAgZGVsZXRlIHRtcDsKCiAgICAgICAgIHJldHVybjsg
LyogU28gd2UgZG9uJ3QgdHJ5IHRvIGNhbGwgY2FsY3VsYXRlX2hlaWdodCgp
IGZvciB0aGlzIG5vZGUgd2UganVzdCBkZWxldGVkLiAqLwogICAgICB9CiAg
IH0KCiAgIC8qIFByb2JhYmx5IGRvbid0IGhhdmUgdG8gY2FsbCB0aGlzIG9m
dGVuIGJ1dCBpdCBtYWtlcyBmb3IgZWFzaWVyIGNvZGUuICovCiAgIGNhbGN1
bGF0ZV9oZWlnaHQodCk7Cn0KCi8qKgogKiBTa3JpdiB1dCBlbGVtZW50ZW4g
aSBzdGlnYW5kZSBvcmRuaW5nLgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29t
cGFyYWJsZT4Kdm9pZApBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+OjoKcHJp
bnQob3N0cmVhbSYgb3MsIGNvbnN0IE5vZGVfUG9pbnRlciB0KQp7CiAgIGlm
ICh0ICE9IDApIAogICB7CiAgICAgIHByaW50KG9zLCB0LT5sZWZ0Xyk7CiAg
ICAgIG9zIDw8IHQtPmVsZW1lbnRfIDw8ICIgIjsKICAgICAgcHJpbnQob3Ms
IHQtPnJpZ2h0Xyk7CiAgIH0KfQoKLyoqCiAqIHByaW50X3RyZWUoKSBn9nIg
ZW4gdHLkZHV0c2tyaWZ0LgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFy
YWJsZT4Kdm9pZApBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+OjoKcHJpbnRf
dHJlZShvc3RyZWFtJiBvcywgY29uc3QgTm9kZV9Qb2ludGVyIHQsIGludCBk
ZXB0aCkKewogICBpZiAodCAhPSAwKSAKICAgewogICAgICBwcmludF90cmVl
KG9zLCB0LT5yaWdodF8sIGRlcHRoICsgMSk7IAoKICAgICAgaWYgKHQtPnJp
Z2h0XyAhPSAwKSAKICAgICAgewogICAgICAgICBpbmRlbnQob3MsIGRlcHRo
KTsKICAgICAgICAgb3MgPDwgIiAvIiA8PCBlbmRsOwogICAgICB9CgogICAg
ICBpbmRlbnQob3MsIGRlcHRoKTsKICAgICAgb3MgPDwgdC0+ZWxlbWVudF8g
PDwgZW5kbDsKCiAgICAgIGlmICh0LT5sZWZ0XyAhPSAwKSAKICAgICAgewog
ICAgICAgICBpbmRlbnQob3MsIGRlcHRoKTsKICAgICAgICAgb3MgPDwgIiBc
XCIgPDwgZW5kbDsKICAgICAgfQoKICAgICAgcHJpbnRfdHJlZShvcywgdC0+
bGVmdF8sIGRlcHRoICsgMSk7IAogICB9Cn0KCi8qKgogKiBH9nIgZW4ga29w
aWEgYXYgdHLkZGV0IHQuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJh
YmxlPgpBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+KgpBVkxfVHJlZV9Ob2Rl
PENvbXBhcmFibGU+OjoKY2xvbmUoY29uc3QgTm9kZV9Qb2ludGVyIHQpCnsK
ICAgaWYgKHQgIT0gMCkKICAgICAgcmV0dXJuIG5ldyBOb2RlKHQtPmVsZW1l
bnRfLCBjbG9uZSh0LT5sZWZ0XyksIGNsb25lKHQtPnJpZ2h0XykpOwogICBl
bHNlCiAgICAgIHJldHVybiAwOwp9CgovKioKICogU/ZrIGVmdGVyIHggaSB0
cuRkZXQuIE9tIHbkcmRldCBoaXR0YXMgcmV0dXJuZXJhcyBwZWthcmVuIHRp
bGwgZGVuIG5vZGVuLAogKiBhbm5hcnMgZW4gdG9tcGVrYXJlLgogKi8KdGVt
cGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4KQVZMX1RyZWVfTm9kZTxDb21w
YXJhYmxlPioKQVZMX1RyZWVfTm9kZTxDb21wYXJhYmxlPjo6CmZpbmQoY29u
c3QgQ29tcGFyYWJsZSYgeCwgY29uc3QgTm9kZV9Qb2ludGVyIHQpCnsKICAg
aWYgKHQgPT0gMCkKICAgICAgcmV0dXJuIDA7CiAgIGVsc2UgaWYgKHggPCB0
LT5lbGVtZW50XykKICAgICAgcmV0dXJuIGZpbmQoeCwgdC0+bGVmdF8pOwog
ICBlbHNlIGlmICh0LT5lbGVtZW50XyA8IHgpCiAgICAgIHJldHVybiBmaW5k
KHgsIHQtPnJpZ2h0Xyk7CiAgIGVsc2UKICAgICAgcmV0dXJuIHQ7Cn0KCi8q
KgogKiBT9msgZGV0IG1pc3RhIHbkcmRldCBpIHRy5GRldCwgZHZzIGRlbiB2
5G5zdHJhc3RlIG5vZGVuIGkgdHLkZGV0LCBk5HIgZGV0IAogKiBtaW5zdGEg
duRyZGV0IGZpbm5zIG9jaCByZXR1cm5lcmFyIHBla2FyZW4gdGlsbCBkZW4g
bm9kZW4uIE9tIHRy5GRldCDkciAKICogdG9tdCByZXR1cm5lcmFzIGVuIHRv
bXBla2FyZS4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+CkFW
TF9UcmVlX05vZGU8Q29tcGFyYWJsZT4qCkFWTF9UcmVlX05vZGU8Q29tcGFy
YWJsZT46OgpmaW5kX21pbihjb25zdCBOb2RlX1BvaW50ZXIgdCkKewogICBp
ZiAodCA9PSAwKQogICAgICByZXR1cm4gMDsKICAgZWxzZSBpZiAodC0+bGVm
dF8gPT0gMCkKICAgICAgcmV0dXJuIHQ7CiAgIGVsc2UKICAgICAgcmV0dXJu
IGZpbmRfbWluKHQtPmxlZnRfKTsKfQoKLyoqCiAqIFP2ayBkZXQgbWlzdGEg
duRyZGV0IGkgdHLkZGV0LCBkdnMgZGVuIGj2Z3Jhc3RlIG5vZGVuIGkgdHLk
ZGV0LCBk5HIgZGV0IAogKiBzdPZyc3RhIHbkcmRldCBmaW5ucyBvY2ggcmV0
dXJuZXJhciBwZWthcmVuIHRpbGwgZGVuIG5vZGVuLiBPbSB0cuRkZXQg5HIK
ICogdG9tdCByZXR1cm5lcmFzIGVuIHRvbXBla2FyZS4KICovCnRlbXBsYXRl
PHR5cGVuYW1lIENvbXBhcmFibGU+CkFWTF9UcmVlX05vZGU8Q29tcGFyYWJs
ZT4qCkFWTF9UcmVlX05vZGU8Q29tcGFyYWJsZT46OgpmaW5kX21heChjb25z
dCBOb2RlX1BvaW50ZXIgdCkKewogICBOb2RlX1BvaW50ZXIgcCA9IHQ7CiAg
IGlmIChwICE9IDApIAogICB7CiAgICAgIHdoaWxlIChwLT5yaWdodF8gIT0g
MCkKICAgICAgICAgcCA9IHAtPnJpZ2h0XzsKICAgfQogICByZXR1cm4gcDsK
fQoKLyoqCiAqIFRhIGJvcnQgYWxsYSBub2RlciBpIHRy5GRldCB0LgogKi8K
dGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZApBVkxfVHJlZV9O
b2RlPENvbXBhcmFibGU+OjoKY2xlYXIoTm9kZV9Qb2ludGVyJiB0KQp7CiAg
IGlmICh0ICE9IDApIAogICB7CiAgICAgIGNsZWFyKHQtPmxlZnRfKTsKICAg
ICAgY2xlYXIodC0+cmlnaHRfKTsKICAgICAgZGVsZXRlIHQ7CiAgICAgIHQg
PSAwOwogICB9Cn0KCi8qKgogKiBpbmRlbnQoKSBn9nIgaW5kcmFnIG1vdHN2
YXJhbmRlIGRldCBha3R1ZWxsYSB0cuRkZGp1cGV0LgogKi8KdGVtcGxhdGU8
dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZCAKQVZMX1RyZWVfTm9kZTxDb21w
YXJhYmxlPjo6CmluZGVudChvc3RyZWFtJiBvcywgaW50IGxldmVsKQp7CiAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbGV2ZWw7ICsraSkKICAgICAgb3MgPDwg
IiAgIjsKfQoKLyoKICogS29uc3RydWt0b3JlciwgZGVzdHJ1a3RvciBvY2gg
dGlsbGRlbG5pbmcgZvZyIEFWTF9UcmVlIAogKi8KCi8qKgogKiBTdGFuZGFy
ZGtvbnN0cnVrdG9yIGb2ciBBVkwtdHLkZGV0LiBT5HR0ZXIgcm90cGVrYXJl
IG9jaCBwZWthcmVuIHRpbGwKICogYWt0dWVsbCAoc2VuYXN0IGJlc/ZrdGEp
IG5vZCB0aWxsIHRvbXBla2FyZS4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENv
bXBhcmFibGU+CkFWTF9UcmVlPENvbXBhcmFibGU+OjoKQVZMX1RyZWUoKSA6
IHJvb3RfKDApLCBjdXJyZW50XygwKQp7Cn0KCi8qKgogKiBLb3BpZXJpbmdz
a29uc3RydWt0b3IgZvZyIEFWTC10cuRkZXQuIEf2ciBlbiBkanVwIGtvcGll
cmluZyBhdiBkZXQgdHLkZAogKiBzb20gZ2VzIHNvbSBpbml0aWFsduRyZGUu
CiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhYmxlPgpBVkxfVHJlZTxD
b21wYXJhYmxlPjo6CkFWTF9UcmVlKGNvbnN0IEFWTF9UcmVlJiB2YWx1ZSkg
OiByb290XyhOb2RlOjpjbG9uZSh2YWx1ZS5yb290XykpLCBjdXJyZW50Xygw
KQp7Cn0KCi8qKgogKiBEZXN0cnVrdG9yIGb2ciBBVkwtdHLkZGV0LiDFdGVy
bORtbmFyIGFsbGEgbm9kZXIgaSB0cuRkZXQuCiAqLwp0ZW1wbGF0ZTx0eXBl
bmFtZSBDb21wYXJhYmxlPgpBVkxfVHJlZTxDb21wYXJhYmxlPjo6Cn5BVkxf
VHJlZSgpCnsKICAgTm9kZTo6Y2xlYXIocm9vdF8pOwp9CgovKioKICogVGls
bGRlbG5pbmdzb3BlcmF0b3IuIEf2ciBlbiBkanVwIGtvcGllcmluZyBhdiBk
ZXQgdHLkZCBzb20gZ2VzIHNvbSAKICogaPZnZXJhcmd1bWVudC4KICovCnRl
bXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+CkFWTF9UcmVlPENvbXBhcmFi
bGU+JgpBVkxfVHJlZTxDb21wYXJhYmxlPjo6Cm9wZXJhdG9yPShBVkxfVHJl
ZTxDb21wYXJhYmxlPiByaHMpCnsKICAgc3dhcChyaHMpOwogICByZXR1cm4g
KnRoaXM7Cn0KCi8qCiAqIFB1Ymxpa2EgbWVkbGVtc2Z1bmt0aW9uZXIgZvZy
IEFWTF9UcmVlCiAqLwoKLyoqCiAqIFPkdHQgaW4geCBpIHRy5GRldC4KICov
CnRlbXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+CnZvaWQKQVZMX1RyZWU8
Q29tcGFyYWJsZT46OgppbnNlcnQoY29uc3QgQ29tcGFyYWJsZSYgeCkKewog
ICBOb2RlOjppbnNlcnQoeCwgcm9vdF8pOwp9CgovKioKICogVGEgYm9ydCB4
IHVyIHRy5GRldC4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+
CnZvaWQKQVZMX1RyZWU8Q29tcGFyYWJsZT46OgpyZW1vdmUoY29uc3QgQ29t
cGFyYWJsZSYgeCkKewogICAvL3Rocm93IGF2bF90cmVlX2Vycm9yKCJyZW1v
dmU6IHNrYSBpbXBsZW1lbnRlcmFzISIpOwogICBOb2RlOjpyZW1vdmUoeCwg
cm9vdF8pOwp9CgovKioKICogUmV0dXJuZXJhIHNhbnQgb20geCBmaW5ucyBp
IHRy5GRldCwgYW5uYXJzIGZhbHNrdC4KICovCnRlbXBsYXRlPHR5cGVuYW1l
IENvbXBhcmFibGU+CmJvb2wKQVZMX1RyZWU8Q29tcGFyYWJsZT46OgptZW1i
ZXIoY29uc3QgQ29tcGFyYWJsZSYgeCkgY29uc3QKewogICBjdXJyZW50XyA9
IE5vZGU6OmZpbmQoeCwgcm9vdF8pOwogICByZXR1cm4gY3VycmVudF8gIT0g
MDsKfQoKLyoqCiAqIFJldHVybmVyYSBzYW50IG9tIHggZmlubnMgaSB0cuRk
ZXQsIGFubmFycyBmYWxza3QuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21w
YXJhYmxlPgpDb21wYXJhYmxlJgpBVkxfVHJlZTxDb21wYXJhYmxlPjo6CnJl
dHJpZXZlKCkKewogICBpZiAoY3VycmVudF8gPT0gMCkKICAgICAgdGhyb3cg
YXZsX3RyZWVfZXJyb3IoIuV0a29tc3Q6IGluZ2V0IGFrdHVlbGx0IGVsZW1l
bnQiKTsKICAgcmV0dXJuIGN1cnJlbnRfLT5lbGVtZW50OzsKfQoKLyoqCiAq
IFP2ayB1cHAgduRyZGV0IHggaSB0cuRkZXQuIFJldHVybmVyYSByZWZlcmVu
cyB0aWxsIHguCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhYmxlPgpD
b21wYXJhYmxlJgpBVkxfVHJlZTxDb21wYXJhYmxlPjo6CmZpbmQoY29uc3Qg
Q29tcGFyYWJsZSYgeCkgY29uc3QKewogICBjdXJyZW50XyA9IE5vZGU6OmZp
bmQoeCwgcm9vdF8pOwoKICAgaWYgKGN1cnJlbnRfID09IDApCiAgICAgIHRo
cm93IGF2bF90cmVlX2Vycm9yKCJz9mt0IHbkcmRlIGZpbm5zIGVqIGkgdHLk
ZGV0Iik7CgogICByZXR1cm4gY3VycmVudF8tPmVsZW1lbnRfOwp9CgovKioK
ICogU/ZrIHVwcCBkZXQgbWluc3RhIHbkcmRldCBpIHRy5GRldC4gUmV0dXJu
ZXJhIHJlZmVyZW5zIHRpbGwgduRyZGV0LgogKi8KdGVtcGxhdGU8dHlwZW5h
bWUgQ29tcGFyYWJsZT4KQ29tcGFyYWJsZSYKQVZMX1RyZWU8Q29tcGFyYWJs
ZT46OgpmaW5kX21pbigpIGNvbnN0CnsKICAgaWYgKHJvb3RfID09IDApCiAg
ICAgIHRocm93IGF2bF90cmVlX2Vycm9yKCJm9nJz9msgYXR0IGZpbm5hIG1p
bnN0IGkgdG9tdCB0cuRkIik7CgogICBjdXJyZW50XyA9IE5vZGU6OmZpbmRf
bWluKHJvb3RfKTsKICAgcmV0dXJuIGN1cnJlbnRfLT5lbGVtZW50XzsKfQoK
LyoqCiAqIFP2ayB1cHAgZGV0IHN09nJzdGEgduRyZGV0IGkgdHLkZGV0LiBS
ZXR1cm5lcmEgcmVmZXJlbnMgdGlsbCB25HJkZXQuCiAqLwp0ZW1wbGF0ZTx0
eXBlbmFtZSBDb21wYXJhYmxlPgpDb21wYXJhYmxlJgpBVkxfVHJlZTxDb21w
YXJhYmxlPjo6CmZpbmRfbWF4KCkgY29uc3QKewogICBpZiAocm9vdF8gPT0g
MCkKICAgICAgdGhyb3cgYXZsX3RyZWVfZXJyb3IoImb2cnP2ayBhdHQgZmlu
bmEgc3T2cnN0IGkgdG9tdCB0cuRkIik7CgogICBjdXJyZW50XyA9IE5vZGU6
OmZpbmRfbWF4KHJvb3RfKTsKICAgcmV0dXJuIGN1cnJlbnRfLT5lbGVtZW50
XzsKfQoKLyoqCiAqIFJldHVybmVyYXIgc2FudCBvbSB0cuRkZXQg5HIgdG9t
dCwgZmFsc2t0IGFubmFycy4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBh
cmFibGU+CmJvb2wKQVZMX1RyZWU8Q29tcGFyYWJsZT46OgplbXB0eSgpIGNv
bnN0CnsKICAgcmV0dXJuIHJvb3RfID09IDA7Cn0KCi8qKgogKiBU9m0gdHLk
ZGV0LgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZApB
VkxfVHJlZTxDb21wYXJhYmxlPjo6CmNsZWFyKCkKewogICBOb2RlOjpjbGVh
cihyb290Xyk7Cn0KCi8qKgogKiBTa3JpdiB1dCBhbGxhIGVsZW1lbnQgaSB0
cuRkZXQgaSBzdGlnYW5kZSBvcmRuaW5nLmFucm9wYXIgQVZMX1RyZWVfTm9k
ZTo6cHJpbnRfdHJlZSgpCiAqIGb2ciBhdHQgZ/ZyYSBzauRsdmEgdXRza3Jp
ZnRlbi4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+CnZvaWQK
QVZMX1RyZWU8Q29tcGFyYWJsZT46OgpwcmludChvc3RyZWFtJiBvcykgY29u
c3QKewogICBOb2RlOjpwcmludChvcywgcm9vdF8pOwp9CgovKioKICogcHJp
bnRfdHJlZSgpIGFucm9wYXIgQVZMX1RyZWVfTm9kZTo6cHJpbnRfdHJlZSgp
IGb2ciBhdHQgZ/ZyYSBlbiAKICogdHLkZHV0c2tyaWZ0LgogKi8KdGVtcGxh
dGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZApBVkxfVHJlZTxDb21wYXJh
YmxlPjo6CnByaW50X3RyZWUob3N0cmVhbSYgb3MpIGNvbnN0CnsKICAgTm9k
ZTo6cHJpbnRfdHJlZShvcywgcm9vdF8sIDApOwp9CgovKioKICogQnl0IGlu
bmVo5WxsIHDlIHRoaXMgb2NoIG90aGVyLiAoQm9yZGUgY3VycmVudF8gc+R0
dGFzIHRpbGwgMCBoZWxscmU/KQogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29t
cGFyYWJsZT4Kdm9pZApBVkxfVHJlZTxDb21wYXJhYmxlPjo6CnN3YXAoQVZM
X1RyZWU8Q29tcGFyYWJsZT4mIG90aGVyKQp7CiAgIHN0ZDo6c3dhcChyb290
Xywgb3RoZXIucm9vdF8pOwogICBzdGQ6OnN3YXAoY3VycmVudF8sIG90aGVy
LmN1cnJlbnRfKTsKfQoKLyoqCiAqIEJ5dCBpbm5laOVsbCBw5SB4IG9jaCB5
LgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZCBzd2Fw
KEFWTF9UcmVlPENvbXBhcmFibGU+JiB4LCBBVkxfVHJlZTxDb21wYXJhYmxl
PiYgeSkKewogICB4LnN3YXAoeSk7Cn0KCi8qKgogKiBH9nIgZW4gdHLkZHV0
c2tyaWZ0LgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kb3N0
cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvcywgY29uc3QgQVZMX1RyZWU8
Q29tcGFyYWJsZT4mIHRyZWUpCnsKICAgdHJlZS5wcmludF90cmVlKG9zKTsK
ICAgcmV0dXJuIG9zOwp9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAYXZsX3RyZWUtdGVzdC5jYwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAAMDAwMDc2
NQAwMDAxMDAxADAwMDAwMDEyNzYwADExMTc0MTUwMDczADAxMjcwNgAgMAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAB1c3RhciAgAEfkc3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAATm9uZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKgogKiBQ
cm9ncmFtIGNvbXBhcmVkIHRvIGFwcGxldCBmb3VuZCBhdCBodHRwOi8vd2Vi
cGFnZXMudWxsLmVzL3VzZXJzL2pyaWVyYS9Eb2NlbmNpYS9BVkwvQVZMJTIw
dHJlZSUyMGFwcGxldC5odG0KICovCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2lu
Y2x1ZGUgIkFWTF9UcmVlLmgiCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQg
bWFpbigpCnsKICAgY291dCA8PCAiRW50ZXJpbmcgbWFpbigpIiA8PCBlbmRs
OwogICB7CiAgICAgIC8qIExMIC0gc2luZ2xlX3JvdGF0aW9uX3dpdGhfbGVm
dF9jaGlsZCB0ZXN0ICovCiAgICAgIEFWTF9UcmVlPGludD4gYXZsX3RyZWU7
CgogICAgICBjb3V0IDw8ICJQZXJmb3JtaW5nIExMLXRlc3QuIiA8PCBlbmRs
OwogICAgICBjb3V0IDw8ICJTaG91bGQgcGVyZm9ybSBzaW5nbGVfcm90YXRl
X3dpdGhfbGVmdF9jaGlsZC4iIDw8IGVuZGw7CiAgICAgIC8qIEFwcGxldDog
NTAgcm90YXRlZCByaWdodCAqLwoKICAgICAgY291dCA8PCAiSW5zZXJ0aW5n
IDUwLCAyMiwgNzUsIDgwLCA0MywgMTUsIDkuIiA8PCBlbmRsOwogICAgICBh
dmxfdHJlZS5pbnNlcnQoNTApOwogICAgICBhdmxfdHJlZS5pbnNlcnQoMjIp
OwogICAgICBhdmxfdHJlZS5pbnNlcnQoNzUpOwogICAgICBhdmxfdHJlZS5p
bnNlcnQoODApOwogICAgICBhdmxfdHJlZS5pbnNlcnQoNDMpOwogICAgICBh
dmxfdHJlZS5pbnNlcnQoMTUpOwogICAgICBhdmxfdHJlZS5pbnNlcnQoOSk7
CgogICAgICBhdmxfdHJlZS5wcmludF90cmVlKGNvdXQpOwoKICAgICAgY291
dCA8PCBlbmRsIDw8IGVuZGw7CgogICAgICBjb3V0IDw8ICJSZW1vdmluZyA4
MC4iIDw8IGVuZGw7CiAgICAgIGF2bF90cmVlLnJlbW92ZSg4MCk7CgogICAg
ICBhdmxfdHJlZS5wcmludF90cmVlKGNvdXQpOwoKICAgICAgY291dCA8PCBl
bmRsIDw8IGVuZGw7CgogICAgICBjaW4uZ2V0KCk7CiAgIH0KICAgewogICAg
ICAvKiBMUiAtIGRvdWJsZV9yb3RhdGlvbl93aXRoX2xlZnRfY2hpbGQgdGVz
dCAqLwogICAgICBBVkxfVHJlZTxpbnQ+IGF2bF90cmVlOwoKICAgICAgY291
dCA8PCAiUGVyZm9ybWluZyBMUi1yZXN0LiIgPDwgZW5kbDsKICAgICAgY291
dCA8PCAiU2hvdWxkIHBlcmZvcm0gZG91YmxlX3JvdGF0ZV93aXRoX2xlZnRf
Y2hpbGQuIiA8PCBlbmRsOwogICAgICAvKiBBcHBsZXQ6IDIyIHJvdGF0ZWQg
bGVmdCwgNTAgcm90YXRlZCByaWdodCAqLwoKICAgICAgY291dCA8PCAiSW5z
ZXJ0aW5nIDUwLCAyMiwgNzUsIDgwLCA0MywgMTUsIDI4LiIgPDwgZW5kbDsK
ICAgICAgYXZsX3RyZWUuaW5zZXJ0KDUwKTsKICAgICAgYXZsX3RyZWUuaW5z
ZXJ0KDIyKTsKICAgICAgYXZsX3RyZWUuaW5zZXJ0KDc1KTsKICAgICAgYXZs
X3RyZWUuaW5zZXJ0KDgwKTsKICAgICAgYXZsX3RyZWUuaW5zZXJ0KDQzKTsK
ICAgICAgYXZsX3RyZWUuaW5zZXJ0KDE1KTsKICAgICAgYXZsX3RyZWUuaW5z
ZXJ0KDI4KTsKCiAgICAgIGF2bF90cmVlLnByaW50X3RyZWUoY291dCk7Cgog
ICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbDsKCiAgICAgIGNvdXQgPDwgIlJl
bW92aW5nIDgwLiIgPDwgZW5kbDsKICAgICAgYXZsX3RyZWUucmVtb3ZlKDgw
KTsKCiAgICAgIGF2bF90cmVlLnByaW50X3RyZWUoY291dCk7CgogICAgICBj
b3V0IDw8IGVuZGwgPDwgZW5kbDsKCiAgICAgIGNpbi5nZXQoKTsKICAgfQog
ICB7CiAgICAgIC8qIFJSIC0gc2luZ2xlX3JvdGF0aW9uX3dpdGhfcmlnaHRf
Y2hpbGQgdGVzdCAqLwogICAgICBBVkxfVHJlZTxpbnQ+IGF2bF90cmVlOwoK
ICAgICAgY291dCA8PCAiUGVyZm9ybWluZyBSUi10ZXN0LiIgPDwgZW5kbDsK
ICAgICAgY291dCA8PCAiU2hvdWxkIHBlcmZvcm0gc2luZ2xlX3JvdGF0ZV93
aXRoX3JpZ2h0X2NoaWxkLiIgPDwgZW5kbDsKICAgICAgLyogQXBwbGV0OiA1
MCByb3RhdGVkIGxlZnQgKi8KCiAgICAgIGNvdXQgPDwgIkluc2VydGluZyA1
MCwgMzUsIDc1LCAyNSwgNjUsIDg1LCA5NS4iIDw8IGVuZGw7CiAgICAgIGF2
bF90cmVlLmluc2VydCg1MCk7CiAgICAgIGF2bF90cmVlLmluc2VydCgzNSk7
CiAgICAgIGF2bF90cmVlLmluc2VydCg3NSk7CiAgICAgIGF2bF90cmVlLmlu
c2VydCgyNSk7CiAgICAgIGF2bF90cmVlLmluc2VydCg2NSk7CiAgICAgIGF2
bF90cmVlLmluc2VydCg4NSk7CiAgICAgIGF2bF90cmVlLmluc2VydCg5NSk7
CgogICAgICBhdmxfdHJlZS5wcmludF90cmVlKGNvdXQpOwoKICAgICAgY291
dCA8PCBlbmRsIDw8IGVuZGw7CgogICAgICBjb3V0IDw8ICJSZW1vdmluZyAy
NS4iIDw8IGVuZGw7CiAgICAgIGF2bF90cmVlLnJlbW92ZSgyNSk7CgogICAg
ICBhdmxfdHJlZS5wcmludF90cmVlKGNvdXQpOwoKICAgICAgY291dCA8PCBl
bmRsIDw8IGVuZGw7CgogICAgICBjaW4uZ2V0KCk7CiAgIH0KICAgewogICAg
ICAvKiBSTCAtIGRvdWJsZV9yb3RhdGlvbl93aXRoX3JpZ2h0X2NoaWxkIHRl
c3QgKi8KICAgICAgQVZMX1RyZWU8aW50PiBhdmxfdHJlZTsKCiAgICAgIGNv
dXQgPDwgIlBlcmZvcm1pbmcgUkwtdGVzdC4iIDw8IGVuZGw7CiAgICAgIGNv
dXQgPDwgIlNob3VsZCBwZXJmb3JtIGRvdWJsZV9yb3RhdGVfd2l0aF9yaWdo
dF9jaGlsZC4iIDw8IGVuZGw7CiAgICAgIC8qIEFwcGxldDogNzUgcm90YXRl
ZCByaWdodCwgNTAgcm90YXRlZCBsZWZ0ICovCgogICAgICBjb3V0IDw8ICJJ
bnNlcnRpbmcgNTAsIDI1LCA3NSwgMTUsIDY1LCA4MCwgNzAuIiA8PCBlbmRs
OwogICAgICBhdmxfdHJlZS5pbnNlcnQoNTApOwogICAgICBhdmxfdHJlZS5p
bnNlcnQoMjUpOwogICAgICBhdmxfdHJlZS5pbnNlcnQoNzUpOwogICAgICBh
dmxfdHJlZS5pbnNlcnQoMTUpOwogICAgICBhdmxfdHJlZS5pbnNlcnQoNjUp
OwogICAgICBhdmxfdHJlZS5pbnNlcnQoODApOwogICAgICBhdmxfdHJlZS5p
bnNlcnQoNzApOwoKICAgICAgYXZsX3RyZWUucHJpbnRfdHJlZShjb3V0KTsK
CiAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsOwoKICAgICAgY291dCA8PCAi
UmVtb3ZpbmcgMTUuIiA8PCBlbmRsOwogICAgICBhdmxfdHJlZS5yZW1vdmUo
MTUpOwoKICAgICAgYXZsX3RyZWUucHJpbnRfdHJlZShjb3V0KTsKCiAgICAg
IGNpbi5nZXQoKTsKICAgfQoKI2lmIDAKICBmb3IgKGludCBpID0gMTsgaSA8
PSAxMTsgaSsrKQogICAgYXZsX3RyZWUuaW5zZXJ0KGkpOwoKICB0cnkgCiAg
ewogICAgIGNvdXQgPDwgIkFWTC10cuRkIGVmdGVyIGluc+R0dG5pbmcgYXYg
MSwgMiwuLi4sIDExOlxuXG4iOwogICAgIGF2bF90cmVlLnByaW50X3RyZWUo
Y291dCk7CiAgICAgY291dCA8PCBlbmRsOwogIH0KICBjYXRjaCAoY29uc3Qg
ZXhjZXB0aW9uJiBlKSAKICB7CiAgICAgY291dCA8PCAnXG4nIDw8IGUud2hh
dCgpIDw8IGVuZGw7CiAgICAgY291dCA8PCAiQVZMLXRy5GQgaW5uZWjlbGxl
ciBlZnRlciBpbnPkdHRuaW5nIGF2IDEsIDIsLi4uLCAxMTpcblxuIjsKICAg
ICBhdmxfdHJlZS5wcmludChjb3V0KTsKICAgICBjb3V0IDw8IGVuZGw7CiAg
fQoKICB1bnNpZ25lZCBpbnQgIGNob2lzZTsKICB1bnNpZ25lZCBpbnQgIHZh
bHVlOwoKICB3aGlsZSAodHJ1ZSkgCiAgewogICAgY291dCA8PCBlbmRsOwog
ICAgY291dCA8PCAiMSAtIFPkdHQgaW4uXG4iOwogICAgY291dCA8PCAiMiAt
IFRhIGJvcnQuXG4iOwogICAgY291dCA8PCAiMyAtIFP2ayB25HJkZS5cbiI7
CiAgICBjb3V0IDw8ICI0IC0gU/ZrIG1pbnN0YS5cbiI7CiAgICBjb3V0IDw8
ICI1IC0gU/ZrIHN09nJzdGEuXG4iOwogICAgY291dCA8PCAiNiAtIFT2bSB0
cuRkZXQuXG4iOwogICAgY291dCA8PCAiNyAtIFNrcml2IHV0IG9yZG5hdC5c
biI7CiAgICBjb3V0IDw8ICI4IC0gU2tyaXYgdXQgdHLkZC5cbiI7CiAgICBj
b3V0IDw8ICIwIC0gQXZzbHV0YS5cbiIgPDwgZW5kbDsKICAgIGNvdXQgPDwg
IlZhbDogIjsKICAgIGNpbiA+PiBjaG9pc2U7CiAgICBjb3V0IDw8IGVuZGw7
CgogICAgdHJ5IAogICAgewogICAgICAgc3dpdGNoIChjaG9pc2UpIAogICAg
ICAgewoJICBjYXNlIDA6CgkgICAgIGNvdXQgPDwgIlNsdXQuIiA8PCBlbmRs
OwoJICAgICByZXR1cm4gMDsKCSAgY2FzZSAxOgoJICAgICBjb3V0IDw8ICJW
5HJkZSBhdHQgc+R0dGEgaW46ICI7CgkgICAgIGNpbiA+PiB2YWx1ZTsKCSAg
ICAgYXZsX3RyZWUuaW5zZXJ0KHZhbHVlKTsKCSAgICAgYnJlYWs7CgkgIGNh
c2UgMjoKCSAgICAgY291dCA8PCAiVuRyZGUgYXR0IHRhIGJvcnQ6ICI7Cgkg
ICAgIGNpbiA+PiB2YWx1ZTsKCSAgICAgYXZsX3RyZWUucmVtb3ZlKHZhbHVl
KTsKCSAgICAgYnJlYWs7CgkgIGNhc2UgMzoKICAgICAgICAgICAgIGNvdXQg
PDwgIlbkcmRlIGF0dCBz9mthIGVmdGVyOiAiOwoJICAgICBjaW4gPj4gdmFs
dWU7CgkgICAgIGlmIChhdmxfdHJlZS5tZW1iZXIodmFsdWUpKQoJCWNvdXQg
PDwgIlbkcmRldCAiIDw8IHZhbHVlIDw8ICIgZmlubnMgaSB0cuRkZXQuIiA8
PCBlbmRsOwoJICAgICBlbHNlCgkJY291dCA8PCAiVuRyZGV0ICIgPDwgdmFs
dWUgPDwgIiBmaW5ucyBlaiBpIHRy5GRldC4iIDw8IGVuZGw7CgkgICAgIGJy
ZWFrOwoJICBjYXNlIDQ6CgkgICAgIGlmIChhdmxfdHJlZS5lbXB0eSgpKQoJ
CWNvdXQgPDwgIlRy5GRldCDkciB0b210ISIgPDwgZW5kbDsKCSAgICAgZWxz
ZQoJCWNvdXQgPDwgIk1pbnN0YSB25HJkZXQgaSB0cuRkZXQg5HIgIiA8PCBh
dmxfdHJlZS5maW5kX21pbigpIDw8IGVuZGw7CgkgICAgIGJyZWFrOwoJICBj
YXNlIDU6CgkgICAgIGlmIChhdmxfdHJlZS5lbXB0eSgpKQoJCWNvdXQgPDwg
IlRy5GRldCDkciB0b210ISIgPDwgZW5kbDsKCSAgICAgZWxzZQoJCWNvdXQg
PDwgIlN09nJzdGEgduRyZGV0IGkgdHLkZGV0IORyICIgPDwgYXZsX3RyZWUu
ZmluZF9tYXgoKSA8PCBlbmRsOwoJICAgICBicmVhazsKCSAgY2FzZSA2OgoJ
ICAgICAvKiBEZXR0YSBib3JkZSBm9nJzdOVzIGJla3LkZnRhcyEgKi8KCSAg
ICAgYXZsX3RyZWUuY2xlYXIoKTsKCSAgICAgY291dCA8PCAiVHLkZGV0IORy
IHT2bXQhIiA8PCBlbmRsOwoJICAgICBicmVhazsKCSAgY2FzZSA3OgoJICAg
ICBpZiAoYXZsX3RyZWUuZW1wdHkoKSkgCgkgICAgIHsKCQljb3V0IDw8ICJU
cuRkZXQg5HIgdG9tdCEiIDw8IGVuZGw7CgkgICAgIH0KCSAgICAgZWxzZSAK
CSAgICAgewoJCWF2bF90cmVlLnByaW50KGNvdXQpOwoJCWNvdXQgPDwgZW5k
bDsKCSAgICAgfQoJICAgICBicmVhazsKCSAgY2FzZSA4OgoJICAgICBpZiAo
YXZsX3RyZWUuZW1wdHkoKSkgCgkgICAgIHsKCQljb3V0IDw8ICJUcuRkZXQg
5HIgdG9tdCEiIDw8IGVuZGw7CgkgICAgIH0KCSAgICAgZWxzZSAKCSAgICAg
ewoJCWF2bF90cmVlLnByaW50X3RyZWUoY291dCk7CgkJY291dCA8PCBlbmRs
OwoJICAgICB9CgkgICAgIGJyZWFrOwoJICBkZWZhdWx0OgoJICAgICBjb3V0
IDw8ICJGZWxha3RpZ3QgdmFsISIgPDwgJ1xiJyA8PCBlbmRsOwoJICAgICBi
cmVhazsKICAgICAgIH0KICAgIH0KICAgIGNhdGNoIChjb25zdCBleGNlcHRp
b24mIGUpIAogICAgewogICAgICAgY291dCA8PCBlLndoYXQoKSA8PCBlbmRs
OyAKICAgIH0KICAgIGNhdGNoICguLi4pIAogICAgewogICAgICAgY291dCA8
PCAiRXR0IG9r5G50IGZlbCBoYXIgaW50cuRmZmF0LiIgPDwgZW5kbDsgCiAg
ICB9CiAgfQojZW5kaWYKICByZXR1cm4gMDsKfQoAAAAAAAAAAAAAAAAAAAAA
TWFrZWZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAADAwMDAwMDAAMDAwMDc2NQAwMDAxMDAxADAwMDAwMDAwNDUz
ADEwNjcyMzI1NzE3ADAxMTI3MAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAEfkc3QA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATm9uZQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABDWFggPSBnKysKQ1hYRkxBR1MgPSAtV2FsbCAt
V2V4dHJhIC1zdGQ9YysrOTggLXBlZGFudGljIC1nIC1jCkxERkxBR1MgPSAt
byAkKEVYRUMpCkVYRUMgPSB0ZXN0YXZsLmV4ZQpPQkpFQ1RTID0gYXZsX3Ry
ZWUtdGVzdC5vCgphbGw6ICQoT0JKRUNUUykKCSQoQ1hYKSAkXiAkKExERkxB
R1MpCgphdmxfdHJlZS10ZXN0Lm86IGF2bF90cmVlLXRlc3QuY2MgQVZMX1Ry
ZWUuaCBBVkxfVHJlZS5jYwoJJChDWFgpICQoQ1hYRkxBR1MpICQ8CgpjbGVh
bjoKCXJtIC1mICQoT0JKRUNUUykgJChFWEVDKSAkKEVYRUMpLnN0YWNrZHVt
cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA


--------------050707000507090105070408
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
--------------050707000507090105070408--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019