PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: "Julian Thomas" <jthomas at globeop dot com>
Subject: Problem wit loading CTLib via CGI on WinXp
Date: Dec 18 2008 12:07PM

Received: from gw.peppler.org (gw.peppler.org [207.234.209.79])
	by gw.peppler.org (8.12.11.20060308/8.12.10) with ESMTP id mBICN4Hd028867
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for ; Thu, 18 Dec 2008 07:23:04 -0500
Received: (from majordomo@localhost)
	by gw.peppler.org (8.12.11.20060308/8.12.10/Submit) id mBICN3xL028864
	for sybperl-l-outgoing; Thu, 18 Dec 2008 07:23:03 -0500
Content-Class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----_=_NextPart_001_01C96109.43121EE7"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4133
Subject: Problem wit loading CTLib via CGI on WinXp
Content-Transfer-Encoding: 7bit
Date: Thu, 18 Dec 2008 12:07:56 -0000
Message-ID: 
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
Thread-Topic: Problem wit loading CTLib via CGI on WinXp
thread-index: AclhCUMN/L/5w3wlTg6EfioqoNzNew==
Importance: normal
From: "Julian Thomas" 
To: 
X-OriginalArrivalTime: 18 Dec 2008 12:07:57.0556 (UTC) FILETIME=[43B8E340:01C96109]
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-1.5.11 (gw.peppler.org [207.234.209.79]); Thu, 18 Dec 2008 07:23:04 -0500 (EST)
X-Greylist: Delayed for 00:15:01 by milter-greylist-1.5.11 (gw.peppler.org [207.234.209.79]); Thu, 18 Dec 2008 07:23:00 -0500 (EST)
X-Virus-Scanned: ClamAV version 0.93, clamav-milter version 0.93 on gw.peppler.org
X-Virus-Scanned: ClamAV version 0.93, clamav-milter version 0.93 on gw.peppler.org
X-Virus-Status: Clean
X-Spam-Status: No, hits=1.0 required=5.0 tests=EXCUSE_16,HTML_20_30,
	HTML_MESSAGE,LINES_OF_YELLING,LINES_OF_YELLING_2,UPPERCASE_25_50 
	autolearn=no version=2.64
X-Spam-Level: *
X-Spam-Checker-Version: SpamAssassin 2.64 (2004-01-11) on gw.peppler.org
Sender: owner-sybperl-l@peppler.org
Precedence: bulk

This is a multi-part message in MIME format.

------_=_NextPart_001_01C96109.43121EE7
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_002_01C96109.43121EE7"

------_=_NextPart_002_01C96109.43121EE7
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hi=20
=20
The scripts work perfectly when run via  acommand prompt or through an
IDE
But when I try to run them via Apache2.2 I get the following errors.
=20

Software error:

Can't load 'D:/perl.5.8.8/site/lib/auto/Sybase/CTlib/CTlib.dll' for
module Sybase::CTlib: load_file:The specified module could not be found
at D:/perl.5.8.8/lib/DynaLoader.pm line 229.
 at D:/Apps/Apache2.2/cgi-bin/simple.cgi line 20
Compilation failed in require at D:/Apps/Apache2.2/cgi-bin/simple.cgi
line 20.
BEGIN failed--compilation aborted at
D:/Apps/Apache2.2/cgi-bin/simple.cgi line 20.

if i print the Environment out before the use Sybase::CTLib call I get
COMSPEC=3D C:\WINDOWS\system32\cmd.exe

DOCUMENT_ROOT=3D D:/Apps/Apache2.2/htdocs

GATEWAY_INTERFACE=3D CGI/1.1

HTTP_ACCEPT=3D */*

HTTP_ACCEPT_ENCODING=3D gzip, deflate

HTTP_ACCEPT_LANGUAGE=3D en-gb

HTTP_CONNECTION=3D Keep-Alive

HTTP_HOST=3D ldn1dpc383.globeop.com

HTTP_UA_CPU=3D x86

HTTP_USER_AGENT=3D Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET
CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR
3.0.04506.648)

LD_LIBRARY_PATH=3D Z:\Apps\sybase\OCS-12_5\dll

LIB=3D Z:\Apps\sybase\OCS-12_5\lib

PATH=3D
D:\Perl.5.8.8\bin;D:\Perl.5.8.8\site\bin;D:\Perl.5.8.8\bin;z:\Apps\sybas
e\odbc\ODBC;C:\Program Files\ActiveState Komodo Edit
4.2\;C:\Python25\;D:\Perl\bin;z:\Apps\sybase\OCS-12_5\lib3p;z:\Apps\syba
se\OCS-12_5\dll;z:\Apps\sybase\OCS-12_5\bin;C:\WINDOWS\system32;C:\WINDO
WS;C:\WINDOWS\System32\Wbem

PATHEXT=3D .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.py;.pyw

QUERY_STRING=3D=20

REMOTE_ADDR=3D 172.27.40.242

REMOTE_PORT=3D 3595

REQUEST_METHOD=3D GET

REQUEST_URI=3D /cgi-bin/printenv.cgi

SCRIPT_FILENAME=3D D:/Apps/Apache2.2/cgi-bin/printenv.cgi

SCRIPT_NAME=3D /cgi-bin/printenv.cgi

SERVER_ADDR=3D 172.27.40.242

SERVER_ADMIN=3D jthomas@globeop.com

SERVER_NAME=3D ldn1dpc383.globeop.com

SERVER_PORT=3D 80

SERVER_PROTOCOL=3D HTTP/1.1

SERVER_SIGNATURE=3D=20

SERVER_SOFTWARE=3D Apache/2.2.10 (Win32)

SYBASE=3D Z:\Apps\sybase

SYBASE_JRE=3D Z:\Apps\sybase\shared-1_0\JRE-1_3

SYBASE_OCS=3D OCS-12_5

SYSTEMROOT=3D C:\WINDOWS

WINDIR=3D C:\WINDOWS

Now this used to work so somthing has changed.
=20
I attach the http.conf file
=20
Any help would be appreciated
=20
Rgds
=20
Julian
=20
=20
=20

--------------------------------------------------------------------------
This email with all information contained herein or attached hereto may con=
tain confidential and/or privileged information intended for the addressee(=
s) only. If you have received this email in error, please contact the sende=
r and immediately delete this email in its entirety and any attachments the=
reto.
(H1)
=20

------_=_NextPart_002_01C96109.43121EE7
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<=
META content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Type">







Hi=20
 
The scrip= ts work=20 perfectly when run via  acommand prompt or through an=20 IDE
But when = I try to=20 run them via Apache2.2 I get the following errors.
 

Software error:

Can't load 'D:/perl.5.8.8/site/lib/auto/Sybase=
/CTlib/CTlib.dll' for module Sybase::CTlib: load_file:The specified module =
could not be found at D:/perl.5.8.8/lib/DynaLoader.pm line 229.
 at D:/Apps/Apache2.2/cgi-bin/simple.cgi line 20
Compilation failed in require at D:/Apps/Apache2.2/cgi-bin/simple.cgi line =
20.
BEGIN failed--compilation aborted at D:/Apps/Apache2.2/cgi-bin/simple.cgi l=
ine 20.
if i prin= t the=20 Environment out before the use Sybase::CTLib call I get

COMSPEC=3D C:\WINDOWS\system32\cmd.exe

DOCUMENT_ROOT=3D D:/Apps/Apache2.2/htdocs

GATEWAY_INTERFACE=3D CGI/1.1

HTTP_ACCEPT=3D */*

HTTP_ACCEPT_ENCODING=3D gzip, deflate

HTTP_ACCEPT_LANGUAGE=3D en-gb

HTTP_CONNECTION=3D Keep-Alive

HTTP_HOST=3D ldn1dpc383.globeop.com

HTTP_UA_CPU=3D x86

HTTP_USER_AGENT=3D Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .N= ET CLR=20 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR 3.0.04506.648)

LD_LIBRARY_PATH=3D Z:\Apps\sybase\OCS-12_5\dll

LIB=3D Z:\Apps\sybase\OCS-12_5\lib

PATH=3D=20 D:\Perl.5.8.8\bin;D:\Perl.5.8.8\site\bin;D:\Perl.5.8.8\bin;z:\Apps\sybase\o= dbc\ODBC;C:\Program=20 Files\ActiveState Komodo Edit=20 4.2\;C:\Python25\;D:\Perl\bin;z:\Apps\sybase\OCS-12_5\lib3p;z:\Apps\sybase\= OCS-12_5\dll;z:\Apps\sybase\OCS-12_5\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\= WINDOWS\System32\Wbem

PATHEXT=3D .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.py;.pyw

QUERY_STRING=3D

REMOTE_ADDR=3D 172.27.40.242

REMOTE_PORT=3D 3595

REQUEST_METHOD=3D GET

REQUEST_URI=3D /cgi-bin/printenv.cgi

SCRIPT_FILENAME=3D D:/Apps/Apache2.2/cgi-bin/printenv.cgi

SCRIPT_NAME=3D /cgi-bin/printenv.cgi

SERVER_ADDR=3D 172.27.40.242

SERVER_ADMIN=3D jthomas@globeop.com

SERVER_NAME=3D ldn1dpc383.globeop.com

SERVER_PORT=3D 80

SERVER_PROTOCOL=3D HTTP/1.1

SERVER_SIGNATURE=3D

SERVER_SOFTWARE=3D Apache/2.2.10 (Win32)

SYBASE=3D Z:\Apps\sybase

SYBASE_JRE=3D Z:\Apps\sybase\shared-1_0\JRE-1_3

SYBASE_OCS=3D OCS-12_5

SYSTEMROOT=3D C:\WINDOWS

WINDIR=3D C:\WINDOWS

Now this = used to=20 work so somthing has changed.
 
I attach = the=20 http.conf file
 
Any help = would be=20 appreciated
 
Rgds
 
Julian
 
 
 

This email with all= information contained herein or attached hereto may contain confidential a= nd/or privileged information intended for the addressee(s) only. If you hav= e received this email in error, please contact the sender and immediately d= elete this email in its entirety and any attachments thereto.
(H1)
 
= ------_=_NextPart_002_01C96109.43121EE7-- ------_=_NextPart_001_01C96109.43121EE7 Content-Type: application/octet-stream; name="httpd.conf" Content-Transfer-Encoding: base64 Content-Description: httpd.conf Content-Disposition: attachment; filename="httpd.conf" Iw0KIyBUaGlzIGlzIHRoZSBtYWluIEFwYWNoZSBIVFRQIHNlcnZlciBjb25m aWd1cmF0aW9uIGZpbGUuICBJdCBjb250YWlucyB0aGUNCiMgY29uZmlndXJh dGlvbiBkaXJlY3RpdmVzIHRoYXQgZ2l2ZSB0aGUgc2VydmVyIGl0cyBpbnN0 cnVjdGlvbnMuDQojIFNlZSA8VVJMOmh0dHA6Ly9odHRwZC5hcGFjaGUub3Jn L2RvY3MvMi4yPiBmb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24uDQojIEluIHBh cnRpY3VsYXIsIHNlZSANCiMgPFVSTDpodHRwOi8vaHR0cGQuYXBhY2hlLm9y Zy9kb2NzLzIuMi9tb2QvZGlyZWN0aXZlcy5odG1sPg0KIyBmb3IgYSBkaXNj dXNzaW9uIG9mIGVhY2ggY29uZmlndXJhdGlvbiBkaXJlY3RpdmUuDQojDQoj IERvIE5PVCBzaW1wbHkgcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zIGluIGhlcmUg d2l0aG91dCB1bmRlcnN0YW5kaW5nDQojIHdoYXQgdGhleSBkby4gIFRoZXkn cmUgaGVyZSBvbmx5IGFzIGhpbnRzIG9yIHJlbWluZGVycy4gIElmIHlvdSBh cmUgdW5zdXJlDQojIGNvbnN1bHQgdGhlIG9ubGluZSBkb2NzLiBZb3UgaGF2 ZSBiZWVuIHdhcm5lZC4gIA0KIw0KIyBDb25maWd1cmF0aW9uIGFuZCBsb2dm aWxlIG5hbWVzOiBJZiB0aGUgZmlsZW5hbWVzIHlvdSBzcGVjaWZ5IGZvciBt YW55DQojIG9mIHRoZSBzZXJ2ZXIncyBjb250cm9sIGZpbGVzIGJlZ2luIHdp dGggIi8iIChvciAiZHJpdmU6LyIgZm9yIFdpbjMyKSwgdGhlDQojIHNlcnZl ciB3aWxsIHVzZSB0aGF0IGV4cGxpY2l0IHBhdGguICBJZiB0aGUgZmlsZW5h bWVzIGRvICpub3QqIGJlZ2luDQojIHdpdGggIi8iLCB0aGUgdmFsdWUgb2Yg U2VydmVyUm9vdCBpcyBwcmVwZW5kZWQgLS0gc28gImxvZ3MvZm9vLmxvZyIN CiMgd2l0aCBTZXJ2ZXJSb290IHNldCB0byAiRDovQXBwcy9BcGFjaGUyLjIi IHdpbGwgYmUgaW50ZXJwcmV0ZWQgYnkgdGhlDQojIHNlcnZlciBhcyAiRDov QXBwcy9BcGFjaGUyLjIvbG9ncy9mb28ubG9nIi4NCiMNCiMgTk9URTogV2hl cmUgZmlsZW5hbWVzIGFyZSBzcGVjaWZpZWQsIHlvdSBtdXN0IHVzZSBmb3J3 YXJkIHNsYXNoZXMNCiMgaW5zdGVhZCBvZiBiYWNrc2xhc2hlcyAoZS5nLiwg ImM6L2FwYWNoZSIgaW5zdGVhZCBvZiAiYzpcYXBhY2hlIikuDQojIElmIGEg ZHJpdmUgbGV0dGVyIGlzIG9taXR0ZWQsIHRoZSBkcml2ZSBvbiB3aGljaCBo dHRwZC5leGUgaXMgbG9jYXRlZA0KIyB3aWxsIGJlIHVzZWQgYnkgZGVmYXVs dC4gIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IGFsd2F5cyBzdXBwbHkN CiMgYW4gZXhwbGljaXQgZHJpdmUgbGV0dGVyIGluIGFic29sdXRlIHBhdGhz IHRvIGF2b2lkIGNvbmZ1c2lvbi4NCg0KIw0KIyBTZXJ2ZXJSb290OiBUaGUg dG9wIG9mIHRoZSBkaXJlY3RvcnkgdHJlZSB1bmRlciB3aGljaCB0aGUgc2Vy dmVyJ3MNCiMgY29uZmlndXJhdGlvbiwgZXJyb3IsIGFuZCBsb2cgZmlsZXMg YXJlIGtlcHQuDQojDQojIERvIG5vdCBhZGQgYSBzbGFzaCBhdCB0aGUgZW5k IG9mIHRoZSBkaXJlY3RvcnkgcGF0aC4gIElmIHlvdSBwb2ludA0KIyBTZXJ2 ZXJSb290IGF0IGEgbm9uLWxvY2FsIGRpc2ssIGJlIHN1cmUgdG8gcG9pbnQg dGhlIExvY2tGaWxlIGRpcmVjdGl2ZQ0KIyBhdCBhIGxvY2FsIGRpc2suICBJ ZiB5b3Ugd2lzaCB0byBzaGFyZSB0aGUgc2FtZSBTZXJ2ZXJSb290IGZvciBt dWx0aXBsZQ0KIyBodHRwZCBkYWVtb25zLCB5b3Ugd2lsbCBuZWVkIHRvIGNo YW5nZSBhdCBsZWFzdCBMb2NrRmlsZSBhbmQgUGlkRmlsZS4NCiMNClNlcnZl clJvb3QgIkQ6L0FwcHMvQXBhY2hlMi4yIg0KDQojDQojIExpc3RlbjogQWxs b3dzIHlvdSB0byBiaW5kIEFwYWNoZSB0byBzcGVjaWZpYyBJUCBhZGRyZXNz ZXMgYW5kL29yDQojIHBvcnRzLCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0LiBT ZWUgYWxzbyB0aGUgPFZpcnR1YWxIb3N0Pg0KIyBkaXJlY3RpdmUuDQojDQoj IENoYW5nZSB0aGlzIHRvIExpc3RlbiBvbiBzcGVjaWZpYyBJUCBhZGRyZXNz ZXMgYXMgc2hvd24gYmVsb3cgdG8gDQojIHByZXZlbnQgQXBhY2hlIGZyb20g Z2xvbW1pbmcgb250byBhbGwgYm91bmQgSVAgYWRkcmVzc2VzLg0KIw0KI0xp c3RlbiAxMi4zNC41Ni43ODo4MA0KTGlzdGVuIDgwDQoNCiMNCiMgRHluYW1p YyBTaGFyZWQgT2JqZWN0IChEU08pIFN1cHBvcnQNCiMNCiMgVG8gYmUgYWJs ZSB0byB1c2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYSBtb2R1bGUgd2hpY2gg d2FzIGJ1aWx0IGFzIGEgRFNPIHlvdQ0KIyBoYXZlIHRvIHBsYWNlIGNvcnJl c3BvbmRpbmcgYExvYWRNb2R1bGUnIGxpbmVzIGF0IHRoaXMgbG9jYXRpb24g c28gdGhlDQojIGRpcmVjdGl2ZXMgY29udGFpbmVkIGluIGl0IGFyZSBhY3R1 YWxseSBhdmFpbGFibGUgX2JlZm9yZV8gdGhleSBhcmUgdXNlZC4NCiMgU3Rh dGljYWxseSBjb21waWxlZCBtb2R1bGVzICh0aG9zZSBsaXN0ZWQgYnkgYGh0 dHBkIC1sJykgZG8gbm90IG5lZWQNCiMgdG8gYmUgbG9hZGVkIGhlcmUuDQoj DQojIEV4YW1wbGU6DQojIExvYWRNb2R1bGUgZm9vX21vZHVsZSBtb2R1bGVz L21vZF9mb28uc28NCiMNCkxvYWRNb2R1bGUgYWN0aW9uc19tb2R1bGUgbW9k dWxlcy9tb2RfYWN0aW9ucy5zbw0KTG9hZE1vZHVsZSBhbGlhc19tb2R1bGUg bW9kdWxlcy9tb2RfYWxpYXMuc28NCkxvYWRNb2R1bGUgYXNpc19tb2R1bGUg bW9kdWxlcy9tb2RfYXNpcy5zbw0KTG9hZE1vZHVsZSBhdXRoX2Jhc2ljX21v ZHVsZSBtb2R1bGVzL21vZF9hdXRoX2Jhc2ljLnNvDQojTG9hZE1vZHVsZSBh dXRoX2RpZ2VzdF9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aF9kaWdlc3Quc28N CiNMb2FkTW9kdWxlIGF1dGhuX2FsaWFzX21vZHVsZSBtb2R1bGVzL21vZF9h dXRobl9hbGlhcy5zbw0KI0xvYWRNb2R1bGUgYXV0aG5fYW5vbl9tb2R1bGUg bW9kdWxlcy9tb2RfYXV0aG5fYW5vbi5zbw0KI0xvYWRNb2R1bGUgYXV0aG5f ZGJkX21vZHVsZSBtb2R1bGVzL21vZF9hdXRobl9kYmQuc28NCiNMb2FkTW9k dWxlIGF1dGhuX2RibV9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fZGJtLnNv DQpMb2FkTW9kdWxlIGF1dGhuX2RlZmF1bHRfbW9kdWxlIG1vZHVsZXMvbW9k X2F1dGhuX2RlZmF1bHQuc28NCkxvYWRNb2R1bGUgYXV0aG5fZmlsZV9tb2R1 bGUgbW9kdWxlcy9tb2RfYXV0aG5fZmlsZS5zbw0KI0xvYWRNb2R1bGUgYXV0 aG56X2xkYXBfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGhuel9sZGFwLnNvDQoj TG9hZE1vZHVsZSBhdXRoel9kYm1fbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGh6 X2RibS5zbw0KTG9hZE1vZHVsZSBhdXRoel9kZWZhdWx0X21vZHVsZSBtb2R1 bGVzL21vZF9hdXRoel9kZWZhdWx0LnNvDQpMb2FkTW9kdWxlIGF1dGh6X2dy b3VwZmlsZV9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aHpfZ3JvdXBmaWxlLnNv DQpMb2FkTW9kdWxlIGF1dGh6X2hvc3RfbW9kdWxlIG1vZHVsZXMvbW9kX2F1 dGh6X2hvc3Quc28NCiNMb2FkTW9kdWxlIGF1dGh6X293bmVyX21vZHVsZSBt b2R1bGVzL21vZF9hdXRoel9vd25lci5zbw0KTG9hZE1vZHVsZSBhdXRoel91 c2VyX21vZHVsZSBtb2R1bGVzL21vZF9hdXRoel91c2VyLnNvDQpMb2FkTW9k dWxlIGF1dG9pbmRleF9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0b2luZGV4LnNv DQojTG9hZE1vZHVsZSBjYWNoZV9tb2R1bGUgbW9kdWxlcy9tb2RfY2FjaGUu c28NCiNMb2FkTW9kdWxlIGNlcm5fbWV0YV9tb2R1bGUgbW9kdWxlcy9tb2Rf Y2Vybl9tZXRhLnNvDQpMb2FkTW9kdWxlIGNnaV9tb2R1bGUgbW9kdWxlcy9t b2RfY2dpLnNvDQojTG9hZE1vZHVsZSBjaGFyc2V0X2xpdGVfbW9kdWxlIG1v ZHVsZXMvbW9kX2NoYXJzZXRfbGl0ZS5zbw0KI0xvYWRNb2R1bGUgZGF2X21v ZHVsZSBtb2R1bGVzL21vZF9kYXYuc28NCiNMb2FkTW9kdWxlIGRhdl9mc19t b2R1bGUgbW9kdWxlcy9tb2RfZGF2X2ZzLnNvDQojTG9hZE1vZHVsZSBkYXZf bG9ja19tb2R1bGUgbW9kdWxlcy9tb2RfZGF2X2xvY2suc28NCkxvYWRNb2R1 bGUgZGJkX21vZHVsZSBtb2R1bGVzL21vZF9kYmQuc28NCiNMb2FkTW9kdWxl IGRlZmxhdGVfbW9kdWxlIG1vZHVsZXMvbW9kX2RlZmxhdGUuc28NCkxvYWRN b2R1bGUgZGlyX21vZHVsZSBtb2R1bGVzL21vZF9kaXIuc28NCiNMb2FkTW9k dWxlIGRpc2tfY2FjaGVfbW9kdWxlIG1vZHVsZXMvbW9kX2Rpc2tfY2FjaGUu c28NCiNMb2FkTW9kdWxlIGR1bXBpb19tb2R1bGUgbW9kdWxlcy9tb2RfZHVt cGlvLnNvDQpMb2FkTW9kdWxlIGVudl9tb2R1bGUgbW9kdWxlcy9tb2RfZW52 LnNvDQojTG9hZE1vZHVsZSBleHBpcmVzX21vZHVsZSBtb2R1bGVzL21vZF9l eHBpcmVzLnNvDQojTG9hZE1vZHVsZSBleHRfZmlsdGVyX21vZHVsZSBtb2R1 bGVzL21vZF9leHRfZmlsdGVyLnNvDQojTG9hZE1vZHVsZSBmaWxlX2NhY2hl X21vZHVsZSBtb2R1bGVzL21vZF9maWxlX2NhY2hlLnNvDQojTG9hZE1vZHVs ZSBmaWx0ZXJfbW9kdWxlIG1vZHVsZXMvbW9kX2ZpbHRlci5zbw0KI0xvYWRN b2R1bGUgaGVhZGVyc19tb2R1bGUgbW9kdWxlcy9tb2RfaGVhZGVycy5zbw0K I0xvYWRNb2R1bGUgaWRlbnRfbW9kdWxlIG1vZHVsZXMvbW9kX2lkZW50LnNv DQojTG9hZE1vZHVsZSBpbWFnZW1hcF9tb2R1bGUgbW9kdWxlcy9tb2RfaW1h Z2VtYXAuc28NCkxvYWRNb2R1bGUgaW5jbHVkZV9tb2R1bGUgbW9kdWxlcy9t b2RfaW5jbHVkZS5zbw0KI0xvYWRNb2R1bGUgaW5mb19tb2R1bGUgbW9kdWxl cy9tb2RfaW5mby5zbw0KTG9hZE1vZHVsZSBpc2FwaV9tb2R1bGUgbW9kdWxl cy9tb2RfaXNhcGkuc28NCiNMb2FkTW9kdWxlIGxkYXBfbW9kdWxlIG1vZHVs ZXMvbW9kX2xkYXAuc28NCiNMb2FkTW9kdWxlIGxvZ2lvX21vZHVsZSBtb2R1 bGVzL21vZF9sb2dpby5zbw0KTG9hZE1vZHVsZSBsb2dfY29uZmlnX21vZHVs ZSBtb2R1bGVzL21vZF9sb2dfY29uZmlnLnNvDQojTG9hZE1vZHVsZSBsb2df Zm9yZW5zaWNfbW9kdWxlIG1vZHVsZXMvbW9kX2xvZ19mb3JlbnNpYy5zbw0K I0xvYWRNb2R1bGUgbWVtX2NhY2hlX21vZHVsZSBtb2R1bGVzL21vZF9tZW1f Y2FjaGUuc28NCkxvYWRNb2R1bGUgbWltZV9tb2R1bGUgbW9kdWxlcy9tb2Rf bWltZS5zbw0KI0xvYWRNb2R1bGUgbWltZV9tYWdpY19tb2R1bGUgbW9kdWxl cy9tb2RfbWltZV9tYWdpYy5zbw0KTG9hZE1vZHVsZSBuZWdvdGlhdGlvbl9t b2R1bGUgbW9kdWxlcy9tb2RfbmVnb3RpYXRpb24uc28NCiNMb2FkTW9kdWxl IHByb3h5X21vZHVsZSBtb2R1bGVzL21vZF9wcm94eS5zbw0KI0xvYWRNb2R1 bGUgcHJveHlfYWpwX21vZHVsZSBtb2R1bGVzL21vZF9wcm94eV9hanAuc28N CiNMb2FkTW9kdWxlIHByb3h5X2JhbGFuY2VyX21vZHVsZSBtb2R1bGVzL21v ZF9wcm94eV9iYWxhbmNlci5zbw0KI0xvYWRNb2R1bGUgcHJveHlfY29ubmVj dF9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfY29ubmVjdC5zbw0KI0xvYWRN b2R1bGUgcHJveHlfZnRwX21vZHVsZSBtb2R1bGVzL21vZF9wcm94eV9mdHAu c28NCiNMb2FkTW9kdWxlIHByb3h5X2h0dHBfbW9kdWxlIG1vZHVsZXMvbW9k X3Byb3h5X2h0dHAuc28NCiNMb2FkTW9kdWxlIHJld3JpdGVfbW9kdWxlIG1v ZHVsZXMvbW9kX3Jld3JpdGUuc28NCkxvYWRNb2R1bGUgc2V0ZW52aWZfbW9k dWxlIG1vZHVsZXMvbW9kX3NldGVudmlmLnNvDQojTG9hZE1vZHVsZSBzcGVs aW5nX21vZHVsZSBtb2R1bGVzL21vZF9zcGVsaW5nLnNvDQojTG9hZE1vZHVs ZSBzc2xfbW9kdWxlIG1vZHVsZXMvbW9kX3NzbC5zbw0KI0xvYWRNb2R1bGUg c3RhdHVzX21vZHVsZSBtb2R1bGVzL21vZF9zdGF0dXMuc28NCiNMb2FkTW9k dWxlIHN1YnN0aXR1dGVfbW9kdWxlIG1vZHVsZXMvbW9kX3N1YnN0aXR1dGUu c28NCiNMb2FkTW9kdWxlIHVuaXF1ZV9pZF9tb2R1bGUgbW9kdWxlcy9tb2Rf dW5pcXVlX2lkLnNvDQojTG9hZE1vZHVsZSB1c2VyZGlyX21vZHVsZSBtb2R1 bGVzL21vZF91c2VyZGlyLnNvDQojTG9hZE1vZHVsZSB1c2VydHJhY2tfbW9k dWxlIG1vZHVsZXMvbW9kX3VzZXJ0cmFjay5zbw0KI0xvYWRNb2R1bGUgdmVy c2lvbl9tb2R1bGUgbW9kdWxlcy9tb2RfdmVyc2lvbi5zbw0KI0xvYWRNb2R1 bGUgdmhvc3RfYWxpYXNfbW9kdWxlIG1vZHVsZXMvbW9kX3Zob3N0X2FsaWFz LnNvDQoNCjxJZk1vZHVsZSAhbXBtX25ldHdhcmVfbW9kdWxlPg0KPElmTW9k dWxlICFtcG1fd2lubnRfbW9kdWxlPg0KIw0KIyBJZiB5b3Ugd2lzaCBodHRw ZCB0byBydW4gYXMgYSBkaWZmZXJlbnQgdXNlciBvciBncm91cCwgeW91IG11 c3QgcnVuDQojIGh0dHBkIGFzIHJvb3QgaW5pdGlhbGx5IGFuZCBpdCB3aWxs IHN3aXRjaC4gIA0KIw0KIyBVc2VyL0dyb3VwOiBUaGUgbmFtZSAob3IgI251 bWJlcikgb2YgdGhlIHVzZXIvZ3JvdXAgdG8gcnVuIGh0dHBkIGFzLg0KIyBJ dCBpcyB1c3VhbGx5IGdvb2QgcHJhY3RpY2UgdG8gY3JlYXRlIGEgZGVkaWNh dGVkIHVzZXIgYW5kIGdyb3VwIGZvcg0KIyBydW5uaW5nIGh0dHBkLCBhcyB3 aXRoIG1vc3Qgc3lzdGVtIHNlcnZpY2VzLg0KIw0KVXNlciBkYWVtb24NCkdy b3VwIGRhZW1vbg0KDQo8L0lmTW9kdWxlPg0KPC9JZk1vZHVsZT4NCg0KIyAn TWFpbicgc2VydmVyIGNvbmZpZ3VyYXRpb24NCiMNCiMgVGhlIGRpcmVjdGl2 ZXMgaW4gdGhpcyBzZWN0aW9uIHNldCB1cCB0aGUgdmFsdWVzIHVzZWQgYnkg dGhlICdtYWluJw0KIyBzZXJ2ZXIsIHdoaWNoIHJlc3BvbmRzIHRvIGFueSBy ZXF1ZXN0cyB0aGF0IGFyZW4ndCBoYW5kbGVkIGJ5IGENCiMgPFZpcnR1YWxI b3N0PiBkZWZpbml0aW9uLiAgVGhlc2UgdmFsdWVzIGFsc28gcHJvdmlkZSBk ZWZhdWx0cyBmb3INCiMgYW55IDxWaXJ0dWFsSG9zdD4gY29udGFpbmVycyB5 b3UgbWF5IGRlZmluZSBsYXRlciBpbiB0aGUgZmlsZS4NCiMNCiMgQWxsIG9m IHRoZXNlIGRpcmVjdGl2ZXMgbWF5IGFwcGVhciBpbnNpZGUgPFZpcnR1YWxI b3N0PiBjb250YWluZXJzLA0KIyBpbiB3aGljaCBjYXNlIHRoZXNlIGRlZmF1 bHQgc2V0dGluZ3Mgd2lsbCBiZSBvdmVycmlkZGVuIGZvciB0aGUNCiMgdmly dHVhbCBob3N0IGJlaW5nIGRlZmluZWQuDQojDQoNCiMNCiMgU2VydmVyQWRt aW46IFlvdXIgYWRkcmVzcywgd2hlcmUgcHJvYmxlbXMgd2l0aCB0aGUgc2Vy dmVyIHNob3VsZCBiZQ0KIyBlLW1haWxlZC4gIFRoaXMgYWRkcmVzcyBhcHBl YXJzIG9uIHNvbWUgc2VydmVyLWdlbmVyYXRlZCBwYWdlcywgc3VjaA0KIyBh cyBlcnJvciBkb2N1bWVudHMuICBlLmcuIGFkbWluQHlvdXItZG9tYWluLmNv bQ0KIw0KU2VydmVyQWRtaW4ganRob21hc0BnbG9iZW9wLmNvbQ0KDQojDQoj IFNlcnZlck5hbWUgZ2l2ZXMgdGhlIG5hbWUgYW5kIHBvcnQgdGhhdCB0aGUg c2VydmVyIHVzZXMgdG8gaWRlbnRpZnkgaXRzZWxmLg0KIyBUaGlzIGNhbiBv ZnRlbiBiZSBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHksIGJ1dCB3ZSByZWNv bW1lbmQgeW91IHNwZWNpZnkNCiMgaXQgZXhwbGljaXRseSB0byBwcmV2ZW50 IHByb2JsZW1zIGR1cmluZyBzdGFydHVwLg0KIw0KIyBJZiB5b3VyIGhvc3Qg ZG9lc24ndCBoYXZlIGEgcmVnaXN0ZXJlZCBETlMgbmFtZSwgZW50ZXIgaXRz IElQIGFkZHJlc3MgaGVyZS4NCiMNClNlcnZlck5hbWUgbGRuMWRwYzM4My5n bG9iZW9wLmNvbTo4MA0KDQojDQojIERvY3VtZW50Um9vdDogVGhlIGRpcmVj dG9yeSBvdXQgb2Ygd2hpY2ggeW91IHdpbGwgc2VydmUgeW91cg0KIyBkb2N1 bWVudHMuIEJ5IGRlZmF1bHQsIGFsbCByZXF1ZXN0cyBhcmUgdGFrZW4gZnJv bSB0aGlzIGRpcmVjdG9yeSwgYnV0DQojIHN5bWJvbGljIGxpbmtzIGFuZCBh bGlhc2VzIG1heSBiZSB1c2VkIHRvIHBvaW50IHRvIG90aGVyIGxvY2F0aW9u cy4NCiMNCkRvY3VtZW50Um9vdCAiRDovQXBwcy9BcGFjaGUyLjIvaHRkb2Nz Ig0KDQojDQojIEVhY2ggZGlyZWN0b3J5IHRvIHdoaWNoIEFwYWNoZSBoYXMg YWNjZXNzIGNhbiBiZSBjb25maWd1cmVkIHdpdGggcmVzcGVjdA0KIyB0byB3 aGljaCBzZXJ2aWNlcyBhbmQgZmVhdHVyZXMgYXJlIGFsbG93ZWQgYW5kL29y IGRpc2FibGVkIGluIHRoYXQNCiMgZGlyZWN0b3J5IChhbmQgaXRzIHN1YmRp cmVjdG9yaWVzKS4gDQojDQojIEZpcnN0LCB3ZSBjb25maWd1cmUgdGhlICJk ZWZhdWx0IiB0byBiZSBhIHZlcnkgcmVzdHJpY3RpdmUgc2V0IG9mIA0KIyBm ZWF0dXJlcy4gIA0KIw0KPERpcmVjdG9yeSAvPg0KICAgIE9wdGlvbnMgRm9s bG93U3ltTGlua3MNCiAgICBBbGxvd092ZXJyaWRlIE5vbmUNCiAgICBPcmRl ciBkZW55LGFsbG93DQogICAgRGVueSBmcm9tIGFsbA0KPC9EaXJlY3Rvcnk+ DQoNCiMNCiMgTm90ZSB0aGF0IGZyb20gdGhpcyBwb2ludCBmb3J3YXJkIHlv dSBtdXN0IHNwZWNpZmljYWxseSBhbGxvdw0KIyBwYXJ0aWN1bGFyIGZlYXR1 cmVzIHRvIGJlIGVuYWJsZWQgLSBzbyBpZiBzb21ldGhpbmcncyBub3Qgd29y a2luZyBhcw0KIyB5b3UgbWlnaHQgZXhwZWN0LCBtYWtlIHN1cmUgdGhhdCB5 b3UgaGF2ZSBzcGVjaWZpY2FsbHkgZW5hYmxlZCBpdA0KIyBiZWxvdy4NCiMN Cg0KIw0KIyBUaGlzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIHdoYXRldmVyIHlv dSBzZXQgRG9jdW1lbnRSb290IHRvLg0KIw0KPERpcmVjdG9yeSAiRDovQXBw cy9BcGFjaGUyLjIvaHRkb2NzIj4NCiAgICAjDQogICAgIyBQb3NzaWJsZSB2 YWx1ZXMgZm9yIHRoZSBPcHRpb25zIGRpcmVjdGl2ZSBhcmUgIk5vbmUiLCAi QWxsIiwNCiAgICAjIG9yIGFueSBjb21iaW5hdGlvbiBvZjoNCiAgICAjICAg SW5kZXhlcyBJbmNsdWRlcyBGb2xsb3dTeW1MaW5rcyBTeW1MaW5rc2lmT3du ZXJNYXRjaCBFeGVjQ0dJIE11bHRpVmlld3MNCiAgICAjDQogICAgIyBOb3Rl IHRoYXQgIk11bHRpVmlld3MiIG11c3QgYmUgbmFtZWQgKmV4cGxpY2l0bHkq IC0tLSAiT3B0aW9ucyBBbGwiDQogICAgIyBkb2Vzbid0IGdpdmUgaXQgdG8g eW91Lg0KICAgICMNCiAgICAjIFRoZSBPcHRpb25zIGRpcmVjdGl2ZSBpcyBi b3RoIGNvbXBsaWNhdGVkIGFuZCBpbXBvcnRhbnQuICBQbGVhc2Ugc2VlDQog ICAgIyBodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMi9tb2QvY29y ZS5odG1sI29wdGlvbnMNCiAgICAjIGZvciBtb3JlIGluZm9ybWF0aW9uLg0K ICAgICMNCiAgICBPcHRpb25zIEluZGV4ZXMgRm9sbG93U3ltTGlua3MNCg0K ICAgICMNCiAgICAjIEFsbG93T3ZlcnJpZGUgY29udHJvbHMgd2hhdCBkaXJl Y3RpdmVzIG1heSBiZSBwbGFjZWQgaW4gLmh0YWNjZXNzIGZpbGVzLg0KICAg ICMgSXQgY2FuIGJlICJBbGwiLCAiTm9uZSIsIG9yIGFueSBjb21iaW5hdGlv biBvZiB0aGUga2V5d29yZHM6DQogICAgIyAgIE9wdGlvbnMgRmlsZUluZm8g QXV0aENvbmZpZyBMaW1pdA0KICAgICMNCiAgICBBbGxvd092ZXJyaWRlIE5v bmUNCg0KICAgICMNCiAgICAjIENvbnRyb2xzIHdobyBjYW4gZ2V0IHN0dWZm IGZyb20gdGhpcyBzZXJ2ZXIuDQogICAgIw0KICAgIE9yZGVyIGFsbG93LGRl bnkNCiAgICBBbGxvdyBmcm9tIGFsbA0KDQo8L0RpcmVjdG9yeT4NCg0KIw0K IyBEaXJlY3RvcnlJbmRleDogc2V0cyB0aGUgZmlsZSB0aGF0IEFwYWNoZSB3 aWxsIHNlcnZlIGlmIGEgZGlyZWN0b3J5DQojIGlzIHJlcXVlc3RlZC4NCiMN CjxJZk1vZHVsZSBkaXJfbW9kdWxlPg0KICAgIERpcmVjdG9yeUluZGV4IGlu ZGV4Lmh0bWwNCjwvSWZNb2R1bGU+DQoNCiMNCiMgVGhlIGZvbGxvd2luZyBs aW5lcyBwcmV2ZW50IC5odGFjY2VzcyBhbmQgLmh0cGFzc3dkIGZpbGVzIGZy b20gYmVpbmcgDQojIHZpZXdlZCBieSBXZWIgY2xpZW50cy4gDQojDQo8Rmls ZXNNYXRjaCAiXlwuaHQiPg0KICAgIE9yZGVyIGFsbG93LGRlbnkNCiAgICBE ZW55IGZyb20gYWxsDQogICAgU2F0aXNmeSBBbGwNCjwvRmlsZXNNYXRjaD4N Cg0KIw0KIyBFcnJvckxvZzogVGhlIGxvY2F0aW9uIG9mIHRoZSBlcnJvciBs b2cgZmlsZS4NCiMgSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGFuIEVycm9yTG9n IGRpcmVjdGl2ZSB3aXRoaW4gYSA8VmlydHVhbEhvc3Q+DQojIGNvbnRhaW5l ciwgZXJyb3IgbWVzc2FnZXMgcmVsYXRpbmcgdG8gdGhhdCB2aXJ0dWFsIGhv c3Qgd2lsbCBiZQ0KIyBsb2dnZWQgaGVyZS4gIElmIHlvdSAqZG8qIGRlZmlu ZSBhbiBlcnJvciBsb2dmaWxlIGZvciBhIDxWaXJ0dWFsSG9zdD4NCiMgY29u dGFpbmVyLCB0aGF0IGhvc3QncyBlcnJvcnMgd2lsbCBiZSBsb2dnZWQgdGhl cmUgYW5kIG5vdCBoZXJlLg0KIw0KRXJyb3JMb2cgImxvZ3MvZXJyb3IubG9n Ig0KDQojDQojIExvZ0xldmVsOiBDb250cm9sIHRoZSBudW1iZXIgb2YgbWVz c2FnZXMgbG9nZ2VkIHRvIHRoZSBlcnJvcl9sb2cuDQojIFBvc3NpYmxlIHZh bHVlcyBpbmNsdWRlOiBkZWJ1ZywgaW5mbywgbm90aWNlLCB3YXJuLCBlcnJv ciwgY3JpdCwNCiMgYWxlcnQsIGVtZXJnLg0KIw0KTG9nTGV2ZWwgd2Fybg0K DQo8SWZNb2R1bGUgbG9nX2NvbmZpZ19tb2R1bGU+DQogICAgIw0KICAgICMg VGhlIGZvbGxvd2luZyBkaXJlY3RpdmVzIGRlZmluZSBzb21lIGZvcm1hdCBu aWNrbmFtZXMgZm9yIHVzZSB3aXRoDQogICAgIyBhIEN1c3RvbUxvZyBkaXJl Y3RpdmUgKHNlZSBiZWxvdykuDQogICAgIw0KICAgIExvZ0Zvcm1hdCAiJWgg JWwgJXUgJXQgXCIlclwiICU+cyAlYiBcIiV7UmVmZXJlcn1pXCIgXCIle1Vz ZXItQWdlbnR9aVwiIiBjb21iaW5lZA0KICAgIExvZ0Zvcm1hdCAiJWggJWwg JXUgJXQgXCIlclwiICU+cyAlYiIgY29tbW9uDQoNCiAgICA8SWZNb2R1bGUg bG9naW9fbW9kdWxlPg0KICAgICAgIyBZb3UgbmVlZCB0byBlbmFibGUgbW9k X2xvZ2lvLmMgdG8gdXNlICVJIGFuZCAlTw0KICAgICAgTG9nRm9ybWF0ICIl aCAlbCAldSAldCBcIiVyXCIgJT5zICViIFwiJXtSZWZlcmVyfWlcIiBcIiV7 VXNlci1BZ2VudH1pXCIgJUkgJU8iIGNvbWJpbmVkaW8NCiAgICA8L0lmTW9k dWxlPg0KDQogICAgIw0KICAgICMgVGhlIGxvY2F0aW9uIGFuZCBmb3JtYXQg b2YgdGhlIGFjY2VzcyBsb2dmaWxlIChDb21tb24gTG9nZmlsZSBGb3JtYXQp Lg0KICAgICMgSWYgeW91IGRvIG5vdCBkZWZpbmUgYW55IGFjY2VzcyBsb2dm aWxlcyB3aXRoaW4gYSA8VmlydHVhbEhvc3Q+DQogICAgIyBjb250YWluZXIs IHRoZXkgd2lsbCBiZSBsb2dnZWQgaGVyZS4gIENvbnRyYXJpd2lzZSwgaWYg eW91ICpkbyoNCiAgICAjIGRlZmluZSBwZXItPFZpcnR1YWxIb3N0PiBhY2Nl c3MgbG9nZmlsZXMsIHRyYW5zYWN0aW9ucyB3aWxsIGJlDQogICAgIyBsb2dn ZWQgdGhlcmVpbiBhbmQgKm5vdCogaW4gdGhpcyBmaWxlLg0KICAgICMNCiAg ICBDdXN0b21Mb2cgImxvZ3MvYWNjZXNzLmxvZyIgY29tbW9uDQoNCiAgICAj DQogICAgIyBJZiB5b3UgcHJlZmVyIGEgbG9nZmlsZSB3aXRoIGFjY2Vzcywg YWdlbnQsIGFuZCByZWZlcmVyIGluZm9ybWF0aW9uDQogICAgIyAoQ29tYmlu ZWQgTG9nZmlsZSBGb3JtYXQpIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcg ZGlyZWN0aXZlLg0KICAgICMNCiAgICAjQ3VzdG9tTG9nICJsb2dzL2FjY2Vz cy5sb2ciIGNvbWJpbmVkDQo8L0lmTW9kdWxlPg0KDQo8SWZNb2R1bGUgYWxp YXNfbW9kdWxlPg0KICAgICMNCiAgICAjIFJlZGlyZWN0OiBBbGxvd3MgeW91 IHRvIHRlbGwgY2xpZW50cyBhYm91dCBkb2N1bWVudHMgdGhhdCB1c2VkIHRv IA0KICAgICMgZXhpc3QgaW4geW91ciBzZXJ2ZXIncyBuYW1lc3BhY2UsIGJ1 dCBkbyBub3QgYW55bW9yZS4gVGhlIGNsaWVudCANCiAgICAjIHdpbGwgbWFr ZSBhIG5ldyByZXF1ZXN0IGZvciB0aGUgZG9jdW1lbnQgYXQgaXRzIG5ldyBs b2NhdGlvbi4NCiAgICAjIEV4YW1wbGU6DQogICAgIyBSZWRpcmVjdCBwZXJt YW5lbnQgL2ZvbyBodHRwOi8vbGRuMWRwYzM4My5nbG9iZW9wLmNvbS9iYXIN Cg0KICAgICMNCiAgICAjIEFsaWFzOiBNYXBzIHdlYiBwYXRocyBpbnRvIGZp bGVzeXN0ZW0gcGF0aHMgYW5kIGlzIHVzZWQgdG8NCiAgICAjIGFjY2VzcyBj b250ZW50IHRoYXQgZG9lcyBub3QgbGl2ZSB1bmRlciB0aGUgRG9jdW1lbnRS b290Lg0KICAgICMgRXhhbXBsZToNCiAgICAjIEFsaWFzIC93ZWJwYXRoIC9m dWxsL2ZpbGVzeXN0ZW0vcGF0aA0KICAgICMNCiAgICAjIElmIHlvdSBpbmNs dWRlIGEgdHJhaWxpbmcgLyBvbiAvd2VicGF0aCB0aGVuIHRoZSBzZXJ2ZXIg d2lsbA0KICAgICMgcmVxdWlyZSBpdCB0byBiZSBwcmVzZW50IGluIHRoZSBV UkwuICBZb3Ugd2lsbCBhbHNvIGxpa2VseQ0KICAgICMgbmVlZCB0byBwcm92 aWRlIGEgPERpcmVjdG9yeT4gc2VjdGlvbiB0byBhbGxvdyBhY2Nlc3MgdG8N CiAgICAjIHRoZSBmaWxlc3lzdGVtIHBhdGguDQoNCiAgICAjDQogICAgIyBT Y3JpcHRBbGlhczogVGhpcyBjb250cm9scyB3aGljaCBkaXJlY3RvcmllcyBj b250YWluIHNlcnZlciBzY3JpcHRzLiANCiAgICAjIFNjcmlwdEFsaWFzZXMg YXJlIGVzc2VudGlhbGx5IHRoZSBzYW1lIGFzIEFsaWFzZXMsIGV4Y2VwdCB0 aGF0DQogICAgIyBkb2N1bWVudHMgaW4gdGhlIHRhcmdldCBkaXJlY3Rvcnkg YXJlIHRyZWF0ZWQgYXMgYXBwbGljYXRpb25zIGFuZA0KICAgICMgcnVuIGJ5 IHRoZSBzZXJ2ZXIgd2hlbiByZXF1ZXN0ZWQgcmF0aGVyIHRoYW4gYXMgZG9j dW1lbnRzIHNlbnQgdG8gdGhlDQogICAgIyBjbGllbnQuICBUaGUgc2FtZSBy dWxlcyBhYm91dCB0cmFpbGluZyAiLyIgYXBwbHkgdG8gU2NyaXB0QWxpYXMN CiAgICAjIGRpcmVjdGl2ZXMgYXMgdG8gQWxpYXMuDQogICAgIw0KICAgIFNj cmlwdEFsaWFzIC9jZ2ktYmluLyAiRDovQXBwcy9BcGFjaGUyLjIvY2dpLWJp bi8iDQoNCjwvSWZNb2R1bGU+DQoNCjxJZk1vZHVsZSBjZ2lkX21vZHVsZT4N CiAgICAjDQogICAgIyBTY3JpcHRTb2NrOiBPbiB0aHJlYWRlZCBzZXJ2ZXJz LCBkZXNpZ25hdGUgdGhlIHBhdGggdG8gdGhlIFVOSVgNCiAgICAjIHNvY2tl dCB1c2VkIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIENHSSBkYWVtb24gb2Yg bW9kX2NnaWQuDQogICAgIw0KICAgICNTY3JpcHRzb2NrIGxvZ3MvY2dpc29j aw0KPC9JZk1vZHVsZT4NCg0KIw0KIyAiRDovQXBwcy9BcGFjaGUyLjIvY2dp LWJpbiIgc2hvdWxkIGJlIGNoYW5nZWQgdG8gd2hhdGV2ZXIgeW91ciBTY3Jp cHRBbGlhc2VkDQojIENHSSBkaXJlY3RvcnkgZXhpc3RzLCBpZiB5b3UgaGF2 ZSB0aGF0IGNvbmZpZ3VyZWQuDQojDQo8RGlyZWN0b3J5ICJEOi9BcHBzL0Fw YWNoZTIuMi9jZ2ktYmluIj4NCiAgICBBbGxvd092ZXJyaWRlIE5vbmUNCiAg ICBPcHRpb25zIE5vbmUNCiAgICBPcmRlciBhbGxvdyxkZW55DQogICAgQWxs b3cgZnJvbSBhbGwNCjwvRGlyZWN0b3J5Pg0KDQojDQojIERlZmF1bHRUeXBl OiB0aGUgZGVmYXVsdCBNSU1FIHR5cGUgdGhlIHNlcnZlciB3aWxsIHVzZSBm b3IgYSBkb2N1bWVudA0KIyBpZiBpdCBjYW5ub3Qgb3RoZXJ3aXNlIGRldGVy bWluZSBvbmUsIHN1Y2ggYXMgZnJvbSBmaWxlbmFtZSBleHRlbnNpb25zLg0K IyBJZiB5b3VyIHNlcnZlciBjb250YWlucyBtb3N0bHkgdGV4dCBvciBIVE1M IGRvY3VtZW50cywgInRleHQvcGxhaW4iIGlzDQojIGEgZ29vZCB2YWx1ZS4g IElmIG1vc3Qgb2YgeW91ciBjb250ZW50IGlzIGJpbmFyeSwgc3VjaCBhcyBh cHBsaWNhdGlvbnMNCiMgb3IgaW1hZ2VzLCB5b3UgbWF5IHdhbnQgdG8gdXNl ICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iIGluc3RlYWQgdG8NCiMga2Vl cCBicm93c2VycyBmcm9tIHRyeWluZyB0byBkaXNwbGF5IGJpbmFyeSBmaWxl cyBhcyB0aG91Z2ggdGhleSBhcmUNCiMgdGV4dC4NCiMNCkRlZmF1bHRUeXBl IHRleHQvcGxhaW4NCg0KPElmTW9kdWxlIG1pbWVfbW9kdWxlPg0KICAgICMN CiAgICAjIFR5cGVzQ29uZmlnIHBvaW50cyB0byB0aGUgZmlsZSBjb250YWlu aW5nIHRoZSBsaXN0IG9mIG1hcHBpbmdzIGZyb20NCiAgICAjIGZpbGVuYW1l IGV4dGVuc2lvbiB0byBNSU1FLXR5cGUuDQogICAgIw0KICAgIFR5cGVzQ29u ZmlnIGNvbmYvbWltZS50eXBlcw0KDQogICAgIw0KICAgICMgQWRkVHlwZSBh bGxvd3MgeW91IHRvIGFkZCB0byBvciBvdmVycmlkZSB0aGUgTUlNRSBjb25m aWd1cmF0aW9uDQogICAgIyBmaWxlIHNwZWNpZmllZCBpbiBUeXBlc0NvbmZp ZyBmb3Igc3BlY2lmaWMgZmlsZSB0eXBlcy4NCiAgICAjDQogICAgI0FkZFR5 cGUgYXBwbGljYXRpb24veC1nemlwIC50Z3oNCiAgICAjDQogICAgIyBBZGRF bmNvZGluZyBhbGxvd3MgeW91IHRvIGhhdmUgY2VydGFpbiBicm93c2VycyB1 bmNvbXByZXNzDQogICAgIyBpbmZvcm1hdGlvbiBvbiB0aGUgZmx5LiBOb3Rl OiBOb3QgYWxsIGJyb3dzZXJzIHN1cHBvcnQgdGhpcy4NCiAgICAjDQogICAg I0FkZEVuY29kaW5nIHgtY29tcHJlc3MgLloNCiAgICAjQWRkRW5jb2Rpbmcg eC1nemlwIC5neiAudGd6DQogICAgIw0KICAgICMgSWYgdGhlIEFkZEVuY29k aW5nIGRpcmVjdGl2ZXMgYWJvdmUgYXJlIGNvbW1lbnRlZC1vdXQsIHRoZW4g eW91DQogICAgIyBwcm9iYWJseSBzaG91bGQgZGVmaW5lIHRob3NlIGV4dGVu c2lvbnMgdG8gaW5kaWNhdGUgbWVkaWEgdHlwZXM6DQogICAgIw0KICAgIEFk ZFR5cGUgYXBwbGljYXRpb24veC1jb21wcmVzcyAuWg0KICAgIEFkZFR5cGUg YXBwbGljYXRpb24veC1nemlwIC5neiAudGd6DQoNCiAgICAjDQogICAgIyBB ZGRIYW5kbGVyIGFsbG93cyB5b3UgdG8gbWFwIGNlcnRhaW4gZmlsZSBleHRl bnNpb25zIHRvICJoYW5kbGVycyI6DQogICAgIyBhY3Rpb25zIHVucmVsYXRl ZCB0byBmaWxldHlwZS4gVGhlc2UgY2FuIGJlIGVpdGhlciBidWlsdCBpbnRv IHRoZSBzZXJ2ZXINCiAgICAjIG9yIGFkZGVkIHdpdGggdGhlIEFjdGlvbiBk aXJlY3RpdmUgKHNlZSBiZWxvdykNCiAgICAjDQogICAgIyBUbyB1c2UgQ0dJ IHNjcmlwdHMgb3V0c2lkZSBvZiBTY3JpcHRBbGlhc2VkIGRpcmVjdG9yaWVz Og0KICAgICMgKFlvdSB3aWxsIGFsc28gbmVlZCB0byBhZGQgIkV4ZWNDR0ki IHRvIHRoZSAiT3B0aW9ucyIgZGlyZWN0aXZlLikNCiAgICAjDQogICAgI0Fk ZEhhbmRsZXIgY2dpLXNjcmlwdCAuY2dpDQoNCiAgICAjIEZvciB0eXBlIG1h cHMgKG5lZ290aWF0ZWQgcmVzb3VyY2VzKToNCiAgICAjQWRkSGFuZGxlciB0 eXBlLW1hcCB2YXINCg0KICAgICMNCiAgICAjIEZpbHRlcnMgYWxsb3cgeW91 IHRvIHByb2Nlc3MgY29udGVudCBiZWZvcmUgaXQgaXMgc2VudCB0byB0aGUg Y2xpZW50Lg0KICAgICMNCiAgICAjIFRvIHBhcnNlIC5zaHRtbCBmaWxlcyBm b3Igc2VydmVyLXNpZGUgaW5jbHVkZXMgKFNTSSk6DQogICAgIyAoWW91IHdp bGwgYWxzbyBuZWVkIHRvIGFkZCAiSW5jbHVkZXMiIHRvIHRoZSAiT3B0aW9u cyIgZGlyZWN0aXZlLikNCiAgICAjDQogICAgI0FkZFR5cGUgdGV4dC9odG1s IC5zaHRtbA0KICAgICNBZGRPdXRwdXRGaWx0ZXIgSU5DTFVERVMgLnNodG1s DQo8L0lmTW9kdWxlPg0KDQojDQojIFRoZSBtb2RfbWltZV9tYWdpYyBtb2R1 bGUgYWxsb3dzIHRoZSBzZXJ2ZXIgdG8gdXNlIHZhcmlvdXMgaGludHMgZnJv bSB0aGUNCiMgY29udGVudHMgb2YgdGhlIGZpbGUgaXRzZWxmIHRvIGRldGVy bWluZSBpdHMgdHlwZS4gIFRoZSBNSU1FTWFnaWNGaWxlDQojIGRpcmVjdGl2 ZSB0ZWxscyB0aGUgbW9kdWxlIHdoZXJlIHRoZSBoaW50IGRlZmluaXRpb25z IGFyZSBsb2NhdGVkLg0KIw0KI01JTUVNYWdpY0ZpbGUgY29uZi9tYWdpYw0K DQojDQojIEN1c3RvbWl6YWJsZSBlcnJvciByZXNwb25zZXMgY29tZSBpbiB0 aHJlZSBmbGF2b3JzOg0KIyAxKSBwbGFpbiB0ZXh0IDIpIGxvY2FsIHJlZGly ZWN0cyAzKSBleHRlcm5hbCByZWRpcmVjdHMNCiMNCiMgU29tZSBleGFtcGxl czoNCiNFcnJvckRvY3VtZW50IDUwMCAiVGhlIHNlcnZlciBtYWRlIGEgYm9v IGJvby4iDQojRXJyb3JEb2N1bWVudCA0MDQgL21pc3NpbmcuaHRtbA0KI0Vy cm9yRG9jdW1lbnQgNDA0ICIvY2dpLWJpbi9taXNzaW5nX2hhbmRsZXIucGwi DQojRXJyb3JEb2N1bWVudCA0MDIgaHR0cDovL2xkbjFkcGMzODMuZ2xvYmVv cC5jb20vc3Vic2NyaXB0aW9uX2luZm8uaHRtbA0KIw0KDQojDQojIEVuYWJs ZU1NQVAgYW5kIEVuYWJsZVNlbmRmaWxlOiBPbiBzeXN0ZW1zIHRoYXQgc3Vw cG9ydCBpdCwgDQojIG1lbW9yeS1tYXBwaW5nIG9yIHRoZSBzZW5kZmlsZSBz eXNjYWxsIGlzIHVzZWQgdG8gZGVsaXZlcg0KIyBmaWxlcy4gIFRoaXMgdXN1 YWxseSBpbXByb3ZlcyBzZXJ2ZXIgcGVyZm9ybWFuY2UsIGJ1dCBtdXN0DQoj IGJlIHR1cm5lZCBvZmYgd2hlbiBzZXJ2aW5nIGZyb20gbmV0d29ya2VkLW1v dW50ZWQgDQojIGZpbGVzeXN0ZW1zIG9yIGlmIHN1cHBvcnQgZm9yIHRoZXNl IGZ1bmN0aW9ucyBpcyBvdGhlcndpc2UNCiMgYnJva2VuIG9uIHlvdXIgc3lz dGVtLg0KIw0KI0VuYWJsZU1NQVAgb2ZmDQojRW5hYmxlU2VuZGZpbGUgb2Zm DQoNCiMgU3VwcGxlbWVudGFsIGNvbmZpZ3VyYXRpb24NCiMNCiMgVGhlIGNv bmZpZ3VyYXRpb24gZmlsZXMgaW4gdGhlIGNvbmYvZXh0cmEvIGRpcmVjdG9y eSBjYW4gYmUgDQojIGluY2x1ZGVkIHRvIGFkZCBleHRyYSB