MUSEUM-L Archives

Museum discussion list

MUSEUM-L@HOME.EASE.LSOFT.COM

Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Allan Mccollum <[log in to unmask]>
Reply To:
Museum discussion list <[log in to unmask]>
Date:
Sat, 18 Sep 1999 15:17:53 EDT
Content-Type:
multipart/mixed
Parts/Attachments:
text/plain (1420 bytes) , art_laws (713 kB)

A number of members wern't able to open my attachment (Arts and Cultural laws
in New York State), so I'm re-mailing in mime format...

Sorry!

Allan

 =========================================================================
In a message dated 9/17/99 8:34:31 PM, [log in to unmask] writes:

>Dear Josephine,
>
>I'm attaching here an exerpt from the New York State Consolidated Laws
>on Arts and Cultural Affairs, as it is to large for an email.
>
> Maybe it could be helpful to many people - gallerists in New York are
>breaking these laws constantly, and most New York artists don't know about
>them.
>
>I was shocked when I discovered it - Actual laws protecting artists!
>
>The surprise for me was that in New York State an art gallery is considered
>by law to have a fiduciary obligation to the artists: i.e., by law a gallery
>is not allowed to spend any of the artist's proceeds for ANYTHING ELSE, as,
>say, for their rent, phone bill, a new Condo in the Virgin Islands, gallery
>repairs, or whatever. When a gallery receives procceds for the sale of
>an artist's artwork, it is required that they hold it for the artist JUST
>LIKE A BANK!
>
>Also, the artist is always full owner of any consigned artwork until EVERY
>PENNY is paid to the artist.
>
>It's an interest body of laws.... I don't know if there are similar
>protections in other states...
>
>If the text attachment can't be opened, please let me know...
>
>Allan McCollum
>[log in to unmask]



Message-ID: <303174.3020451896@random-mac> Mime-Version: 1.0 Subject: art laws Content-Type: multipart/mixed; boundary="-" This is a MIME encoded message. Decode it with "munpack" or any other MIME reading software. Mpack/munpack is available via anonymous FTP in ftp.andrew.cmu.edu:pub/mpack/ --- Content-Type: multipart/appledouble; boundary="="; name="art laws" Content-Disposition: inline; filename="art laws" --= Content-Type: application/applefile Content-Transfer-Encoding: base64 Content-MD5: o8fsPv6TmAAbBXEVW/UzlQ== AAUWBwACAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAADAAAAVgAAAAgAAAAJAAAAXgAAACAAAAAI AAAAfgAAABAAAAAEAAAAjgAAAAAAAAACAAAAjgAAAb5hcnQgbGF3c1RFWFRUQkI2AQAAAACB AAAAAAAAAAAAAAAAAAAAAAAA/vFKy/7xUY9LbQwA/3V8NwAAAQAAAAE8AAAAPAAAAIIAaHR0 cDovL2FydHMudXNmLmVkdS9tdXNldW0vcGl4L1VTRkJ0Ry5naWYAQHIpN8FSGTcFAAAAAAAA AABodHRwOi8vYWRmb3JjZS5pbWdpcy5jb20vP2Fkc2Vydnw5fDEyODM5fDF8Mzd8bWlzYz1f QURGT1JDRV9USU1FXwDMoZ9DLzfv3Cs3CgAAAAAAAAAAaHR0cDovL3N0YWRpdW13ZWIuY29t L3RoZV9yZWdpc3RyYXRpb25fb2ZfYW5fYXJ0d29yay9pbWFnZXMvn0MvN+/cKzcKAAAAAAAA AABodHRwOi8vc3RhZGl1bXdlYi4AAAAWAAEAAAAAAAsACQAEAAAACQAAAAAAAAAAAAAAAAAC //4AAAAIACoABgF8Am4AAAAIAAIydQABdr4AAAEAAAABPAAAADwAAACCBdG12EouAAAAHACC AARzdHlsAAAAKlNPVVAAAAA2anN0ZgAAAEJ3cmN0AAAATnNsY3QAAABaA+j//wAAAAAHx0Yw A+j//wAAABoHx0Y4A+j//wAAAB4F0stkA+j//wAAACQF0suEA+j//wAAADAF0suo --= Content-Type: text/plain; name="art laws" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="art laws" Content-MD5: /bhzCX0yvT4Qjkojcb7qQQ== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0 cyBhbmQgQ3VsdHVyYWwgQWZmYWlycyAtIEluZGV4CgogICAgICAgQ2hhcHRlciAxMS1DIAog ICAgICAgVGl0bGUgQSAKICAgICAgIFRpdGxlIEFBMSAKICAgICAgIFRpdGxlIEIgCiAgICAg ICBUaXRsZSBCQTMgCiAgICAgICBBcnRpY2xlIDQgCiAgICAgICBUaXRsZSBCQTUgCiAgICAg ICBUaXRsZSBCQTcgCiAgICAgICBUaXRsZSBCQTggCiAgICAgICBUaXRsZSBCQTkgCiAgICAg ICBUaXRsZSBCQTEwIAogICAgICAgVGl0bGUgQyAKICAgICAgIFRpdGxlIENBMTEgCiAgICAg ICBUaXRsZSBDQTEyIAogICAgICAgVGl0bGUgQ0ExMyAKICAgICAgIFRpdGxlIENBMTQgCiAg ICAgICBUaXRsZSBDQTE1IAogICAgICAgVGl0bGUgQ0ExNiAKICAgICAgIFRpdGxlIEQgCiAg ICAgICBUaXRsZSBEQTE5IAogICAgICAgVGl0bGUgRSAKICAgICAgIFRpdGxlIEVBMjAgCiAg ICAgICBUaXRsZSBFQTIxIAogICAgICAgVGl0bGUgRUEyMiAKICAgICAgIFRpdGxlIEYgCiAg ICAgICBUaXRsZSBGQTIzIAogICAgICAgVGl0bGUgRyAKICAgICAgIFRpdGxlIEdBMjUgCiAg ICAgICBUaXRsZSBKIAogICAgICAgVGl0bGUgSkEzMSAKICAgICAgIFRpdGxlIEsgCiAgICAg ICBUaXRsZSBLQTMzIAogICAgICAgVGl0bGUgTCAKICAgICAgIFRpdGxlIExBMzUgCiAgICAg ICBUaXRsZSBNIAogICAgICAgVGl0bGUgTUEzNyAKICAgICAgIFRpdGxlIFMgCiAgICAgICBU aXRsZSBTQTU0IAogICAgICAgVGl0bGUgVCAKICAgICAgIFRpdGxlIFRBNTUgCiAgICAgICBU aXRsZSBVIAogICAgICAgVGl0bGUgVUE1NyAKICAgICAgIFRpdGxlIFVBNTctQSAKICAgICAg IFRpdGxlIFYgCiAgICAgICBUaXRsZSBWQTU5IAogICAgICAgVGl0bGUgVi0xIAogICAgICAg VGl0bGUgVi0xQTYwIAogICAgICAgVGl0bGUgVyAKICAgICAgIFRpdGxlIFdBNjEgCgoKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KCk5ldyBZb3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMg YW5kIEN1bHR1cmFsIEFmZmFpcnMKCiAgICAgICAgICAgICAgICAgIENIQVBURVIgMTEtQyBP RiBUSEUgQ09OU09MSURBVEVEIExBV1MKICAgICAgICAgICAgICAgICAgICAgIEFSVFMgQU5E IENVTFRVUkFMIEFGRkFJUlMgTEFXCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRJVExFIEEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIT1JUIFRJVExFCkFy dGljbGUKICAxLiAgICBTaG9ydCB0aXRsZSAoUyAxLjAxKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUSVRMRSBCCiAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTU9U SU9OIE9GIFRIRSBBUlRTCiAgMy4gICAgQ291bmNpbCBvbiB0aGUgYXJ0cyAoU1MgMy4wMS0z LjEzKQogIDQuICAgIEVtcGlyZSBTdGF0ZSBQbGF6YSBBcnQgQ29tbWlzc2lvbiAoU1MgNC4w MS00LjExKQogIDUuICAgIEFydCBjb21taXNzaW9uIChTUyA1LjAxLTUuMDUpCiAgNy4gICAg TmV3IFlvcmsgc3RhdGUgc3VtbWVyIHNjaG9vbCBvZiB0aGUgYXJ0cyAoU1MgNy4wMS03LjE1 KQogIDguICAgIE5ldyBZb3JrIHN0YXRlIHdyaXRlcmBzIGluc3RpdHV0ZSAoU1MgOC4wMS04 LjEzKQogIDkuICAgIE5ldyBZb3JrIHN0YXRlIHRoZWF0cmUgaW5zdGl0dXRlIGNvcnBvcmF0 aW9uIChTUyA5LjAxLTkuMTUpCiAgMTAuICAgSW5zdGl0dXRlIGZvciB0aGUgSHVkc29uIFJp dmVyIENvbGxlY3Rpb24gKFNTIDEwLjAxLTEwLjEzKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUSVRMRSBDCiAgICAgICAgICAgICBUUkFOU0FDVElPTlMgSU5WT0xWSU5H IEFSVElTVFMgQU5EIFRIRUlSIFdPUktTCiAgMTEuICAgRGVmaW5pdGlvbnMgKFMgMTEuMDEp CiAgMTIuICAgQXJ0aXN0LWFydCBtZXJjaGFudCByZWxhdGlvbnNoaXBzIChTUyAxMi4wMS0x Mi4wMykKICAxMy4gICBFeHByZXNzIHdhcnJhbnRpZXMgKFNTIDEzLjAxLTEzLjA3KQogIDE0 LiAgIFdvcmtzICBvZiAgZmluZSAgYXJ0OyAgc2N1bHB0dXJlICBhbmQgIG11bHRpcGxlcyAg Z2VuZXJhbGx5ICAoU1MKICAgICAgICAgIDE0LjAxLTE0LjA4KQogIDE1LiAgIFNhbGUgb2Yg dmlzdWFsIGFydCBvYmplY3RzIGFuZCBzY3VscHR1cmVzIHByb2R1Y2VkIGluICBtdWx0aXBs ZXMKICAgICAgICAgIChTUyAxNS4wMS0xNS4xOSkKICAxNi4gICBTZXZlcmFiaWxpdHkgKFMg MTYuMDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJVExFIEQKICAgICAg ICAgICAgICAgICAgICAgICAgICBSRUdVTEFUSU9OIE9GIFBVQkxJQwogICAgICAgICAgICAg RU5URVJUQUlOTUVOVFMgT1IgRVhISUJJVElPTlMgQlkgQ0lORU1BVE9HUkFQSAogIDE5LiAg IFB1YmxpYyAgZW50ZXJ0YWlubWVudHMgIG9yICBleGhpYml0aW9ucyAgYnkgY2luZW1hdG9n cmFwaCBvciBhbnkKICAgICAgICAgIG90aGVyICAgYXBwYXJhdHVzICAgZm9yICAgcHJvamVj dGluZyAgIG1vdmluZyAgIHBpY3R1cmVzICAgKFNTCiAgICAgICAgICAxOS4wMS0xOS4xNSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVElUTEUgRQogICAgICAgICAgICAg ICAgICBORVcgWU9SSyBTVEFURSBDVUxUVVJBTCBSRVNPVVJDRVMgQUNUCiAgMjAuICAgTmV3 IFlvcmsgU3RhdGUgQ3VsdHVyYWwgUmVzb3VyY2VzIEFjdCAoU1MgMjAuMDEtMjAuNDcpCiAg MjEuICAgVHJ1c3QgIEZvciAgQ3VsdHVyYWwgIFJlc291cmNlcyAgT2YgIFRoZSAgQ2l0eSAg T2YgIE5ldyBZb3JrIChTUwogICAgICAgICAgMjEuMDEtMjEuMTUpCiAgMjIuICAgVHJ1c3Qg Rm9yIEN1bHR1cmFsIFJlc291cmNlcyAgT2YgIFRoZSAgQ291bnR5ICBPZiAgT25vbmRhZ2Eg IChTUwogICAgICAgICAgMjIuMDEtMjIuMDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRJVExFIEYKICAgICAgICAgICAgICAgICAgICBUSEVBVFJJQ0FMIFNZTkRJQ0FU SU9OIEZJTkFOQ0lORwogIDIzLiAgIFJlZ3VsYXRpb24gb2YgdGhlYXRyaWNhbCBzeW5kaWNh dGlvbiBmaW5hbmNpbmcgKFNTIDIzLjAxLTIzLjIzKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUSVRMRSBHCiAgICAgICAgICAgICAgICAgIFJFR1VMQVRJT04gT0YgU0FM RSBPRiBUSEVBVFJFIFRJQ0tFVFMKICAqIDI1LiBUaWNrZXRzIHRvIHBsYWNlcyBvZiBlbnRl cnRhaW5tZW50IChTUyAyNS4wMS0yNS4zNSkKICAqIE5CICBFZmZlY3RpdmUgdW50aWwgOTgv MDYvMDEKICAqIDI1LiBUaGVhdHJlIHRpY2tldHMgKFNTIDI1LjAxLTI1LjI3KQogICogTkIg IEVmZmVjdGl2ZSA5OC8wNi8wMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU SVRMRSBKCiAgICAgICAgICAgIE9GRkVOU0VTIFJFTEFUSU5HIFRPIFVOQVVUSE9SSVpFRCBQ SE9UT0dSQVBIUyBBTkQKICAgICAgICAgICAgICAgICAgICAgIENFUlRBSU4gQ09QWVJJR0hU RUQgTUFURVJJQUxTCiAgMzEuICAgT2ZmZW5zZXMgIHJlbGF0aW5nIHRvIHVuYXV0aG9yaXpl ZCBwaG90b2dyYXBocyBhbmQgY2VydGFpbiBjb3B5LQogICAgICAgICAgcmlnaHRlZCBtYXRl cmlhbHMgKFNTIDMxLjAxLTMxLjA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUSVRMRSBLCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUkFERS1NQVJLUwog IDMzLiAgIE9mZmVuc2VzIGFnYWluc3QgdHJhZGUtbWFya3MgKFNTIDMzLjAxLTMzLjE1KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSVRMRSBMCiAgICAgICAgICAgICAg ICBQUk9URUNUSU9OIE9GIENISUxEIFBFUkZPUk1FUlMgQU5EIE1PREVMUwogIDM1LiAgIENo aWxkIHBlcmZvcm1lcnMgYW5kIG1vZGVscyAoU1MgMzUuMDEtMzUuMDcpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRJVExFIE0KICAgICAgICAgICAgICAgICAgICBUSEVB VFJJQ0FMIEVNUExPWU1FTlQgQ09OVFJBQ1RTOwogICAgICBTQUZFVFkgUFJFQ0FVVElPTlMg Rk9SIENFUlRBSU4gUEVSRk9STUVSUzsgUEVSRk9STUlORyBBUlRJU1RTCiAgMzcuICAgVGhl YXRyaWNhbCBlbXBsb3ltZW50IGNvbnRyYWN0czsgc2FmZXR5IHByZWNhdXRpb25zIGZvciAg Y2VydGFpbgogICAgICAgICAgcGVyZm9ybWVycyAoU1MgMzcuMDEtMzcuMTEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRJVExFIFMKICAgICAgICAgICAgICAgICAgICAg ICAgIEVYRUNVVElWRSBNQU5TSU9OIFRSVVNUCiAgNTQuICAgRXhlY3V0aXZlIG1hbnNpb24g dHJ1c3QgKFNTIDU0LjAxLTU0LjE3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUSVRMRSBUCiAgICAgICAgICAgICAgICAgICAgICAgICBOQVRVUkFMIEhFUklUQUdFIFRS VVNUCiAgNTUuICAgTmF0dXJhbCBoZXJpdGFnZSB0cnVzdCAoU1MgNTUuMDEtNTUuMjMpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJVExFIFUKICAgICAgICAgICAgICAg ICBESVZJU0lPTlMgT0YgSElTVE9SWSBBTkQgUFVCTElDIFJFQ09SRFMKICA1Ny4gICBEaXZp c2lvbnMgb2YgaGlzdG9yeSBhbmQgcHVibGljIHJlY29yZHMgKFNTIDU3LjAxLTU3LjExKQog IDU3LWEuIExvY2FsIGdvdmVybm1lbnQgcmVjb3JkcyBsYXcgKFNTIDU3LjEzLTU3LjM5KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSVRMRSBWCiAgICAgICAgICAgICAg ICAgICBBTUVSSUNBTiBNVVNFVU0gT0YgTkFUVVJBTCBISVNUT1JZCiAgICAgICAgICAgICAg ICAgICAgICAgICAgUExBTkVUQVJJVU0gQVVUSE9SSVRZCiAgNTkuICAgQW1lcmljYW4gIG11 c2V1bSAgb2YgIG5hdHVyYWwgIGhpc3RvcnkgcGxhbmV0YXJpdW0gYXV0aG9yaXR5IChTUwog ICAgICAgICAgNTkuMDEtNTkuMjcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VElUTEUgVi0xCiAgICAgICAgICAgICAgICAgICAgICAgU0FMRSBPRiBBVVRPR1JBUEhFRCBT UE9SVFMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MTEVDVElCTEVTCiAgNjAu ICAgU0FMRSBPRiBBVVRPR1JBUEhFRCBTUE9SVFMgQ09MTEVDVElCTEVTIChTUyA2MC4wMS02 MC4wNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVElUTEUgVwogICAgICAg ICAgICAgICAgICAgICAgICBNSVNDRUxMQU5FT1VTIFBST1ZJU0lPTlMKICA2MS4gICBNaXNj ZWxsYW5lb3VzIHByb3Zpc2lvbnMgKFNTIDYxLjAxLTYxLjEzKQoKCgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpOZXcgWW9yayBTdGF0ZSBDb25zb2xpZGF0ZWQgTGF3cwpBcnRzIGFuZCBDdWx0dXJh bCBBZmZhaXJzCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSVRMRSBBCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSE9SVCBUSVRMRQoKCgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpOZXcgWW9yayBTdGF0ZSBDb25zb2xpZGF0ZWQgTGF3cwpBcnRzIGFuZCBDdWx0 dXJhbCBBZmZhaXJzCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSVElDTEUg MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hPUlQgVElUTEUKU2VjdGlvbiAg MS4wMS4gIFNob3J0IHRpdGxlLgoKICBTICAxLjAxLiAgU2hvcnQgIHRpdGxlLiAgIFRoaXMg IGNoYXB0ZXIgIHNoYWxsICBiZSBrbm93biBhcyB0aGUgImFydHMgYW5kCmN1bHR1cmFsIGFm ZmFpcnMgbGF3IiBhbmQgbWF5IGJlIGNpdGVkIGFzIHN1Y2guCgoKCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk5ldyBZb3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFs IEFmZmFpcnMKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSVRMRSBCCiAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBST01PVElPTiBPRiBUSEUgQVJUUwoKCgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpOZXcgWW9yayBTdGF0ZSBDb25zb2xpZGF0ZWQgTGF3cwpBcnRzIGFu ZCBDdWx0dXJhbCBBZmZhaXJzCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFS VElDTEUgMwogICAgICAgICAgICAgICAgICAgICAgICAgICBDT1VOQ0lMIE9OIFRIRSBBUlRT ClNlY3Rpb24gMy4wMS4gIExlZ2lzbGF0aXZlIGZpbmRpbmdzIGFuZCBkZWNsYXJhdGlvbiBv ZiBwb2xpY3kuCiAgICAgICAgICAgICAgICAgICAzLjAzLiAgQ291bmNpbCBvbiB0aGUgYXJ0 cy4KICAgICAgICAgICAgICAgICAgIDMuMDUuICBHZW5lcmFsIHBvd2VycyBhbmQgZHV0aWVz IG9mIGNvdW5jaWwuCiAgICAgICAgICAgICAgICAgICAzLjA3LiAgU3RhdGUgIGZpbmFuY2lh bCAgYXNzaXN0YW5jZSAgZm9yIGltcHJvdmVtZW50LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5zaW9uICAgICAgICAgb3IKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlaGFi aWxpdGF0aW9uICAgIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBleGlzdGluZyAgYnVpbGRpbmdzLgogICAgICAgICAgICAgICAgICAg My4wOS4gIEFzc2lzdGFuY2Ugb2Ygb3RoZXIgYWdlbmNpZXMuCiAgICAgICAgICAgICAgICAg ICAzLjExLiAgR3JhbnRzICBieSAgY291bmNpbDsgIGNvbnNpZGVyYXRpb24gdG8gY2VydGFp bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXBwbGljYW50cy4KICAgICAgICAgICAgICAgICAgIDMuMTMuICBQYXJ0aWNpcGF0aW9uICBp biBwcm9ncmFtcyB0byBwcm9tb3RlIHByb2dyZXNzCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgIHNjaG9sYXJzaGlwICBpbgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlICBo dW1hbml0aWVzICBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRoZSBhcnRzLgoKICBTICAzLjAxLiAgTGVnaXNsYXRpdmUgIGZpbmRp bmdzICBhbmQgZGVjbGFyYXRpb24gb2YgcG9saWN5LiAgSXQgaXMgaGVyZWJ5CmZvdW5kIHRo YXQgbWFueSBvZiBvdXIgY2l0aXplbnMgbGFjayB0aGUgIG9wcG9ydHVuaXR5ICB0byAgdmll dywgIGVuam95ICBvcgpwYXJ0aWNpcGF0ZSAgaW4gIGxpdmluZyAgdGhlYXRyaWNhbCBwZXJm b3JtYW5jZXMsIG11c2ljYWwgY29uY2VydHMsIG9wZXJhcywKZGFuY2UgYW5kIGJhbGxldCBy ZWNpdGFscywgYXJ0IGV4aGliaXRzLCBleGFtcGxlcyBvZiBmaW5lIGFyY2hpdGVjdHVyZSwg YW5kCnRoZSAgcGVyZm9ybWluZyAgYW5kIGZpbmUgYXJ0cyBnZW5lcmFsbHkuICBJdCBpcyBo ZXJlYnkgZnVydGhlciBmb3VuZCB0aGF0LAp3aXRoIGluY3JlYXNpbmcgbGVpc3VyZSB0aW1l LCB0aGUgcHJhY3RpY2UgYW5kIGVuam95bWVudCBvZiB0aGUgYXJ0cyBhcmUgb2YKaW5jcmVh c2luZyAgaW1wb3J0YW5jZSAgYW5kICB0aGF0ICB0aGUgZ2VuZXJhbCB3ZWxmYXJlIG9mIHRo ZSBwZW9wbGUgb2YgdGhlCnN0YXRlIHdpbGwgYmUgcHJvbW90ZWQgYnkgZ2l2aW5nIGZ1cnRo ZXIgcmVjb2duaXRpb24gdG8gdGhlIGFydHMgYXMgYSB2aXRhbAphc3BlY3QgIG9mICBvdXIg Y3VsdHVyZSBhbmQgaGVyaXRhZ2UgYW5kIGFzIGEgdmFsdWVkIG1lYW5zIG9mIGV4cGFuZGlu ZyB0aGUKc2NvcGUgb2Ygb3VyIGVkdWNhdGlvbmFsIHByb2dyYW1zLgogIEl0ICBpcyBoZXJl YnkgZGVjbGFyZWQgdG8gYmUgdGhlIHBvbGljeSBvZiB0aGUgc3RhdGUgdG8gam9pbiB3aXRo IHByaXZhdGUKcGF0cm9ucyBhbmQgd2l0aCBpbnN0aXR1dGlvbnMgYW5kIHByb2Zlc3Npb25h bCBvcmdhbml6YXRpb25zIGNvbmNlcm5lZCB3aXRoCnRoZSBhcnRzIHRvIGluc3VyZSB0aGF0 IHRoZSByb2xlIG9mIHRoZSBhcnRzIGluIHRoZSBsaWZlIG9mIG91ciBjb21tdW5pdGllcwp3 aWxsIGNvbnRpbnVlIHRvIGdyb3cgYW5kIHdpbGwgcGxheSBhbiBldmVyIG1vcmUgc2lnbmlm aWNhbnQgIHBhcnQgIGluICB0aGUKd2VsZmFyZSAgYW5kICBlZHVjYXRpb25hbCBleHBlcmll bmNlIG9mIG91ciBjaXRpemVucyBhbmQgaW4gbWFpbnRhaW5pbmcgdGhlCnBhcmFtb3VudCBw b3NpdGlvbiBvZiB0aGlzIHN0YXRlIGluIHRoZSAgbmF0aW9uICBhbmQgIGluICB0aGUgIHdv cmxkICBhcyAgYQpjdWx0dXJhbCBjZW50ZXIuCiAgSXQgIGlzICBmdXJ0aGVyICBkZWNsYXJl ZCAgdGhhdCBhbGwgYWN0aXZpdGllcyB1bmRlcnRha2VuIGJ5IHRoZSBzdGF0ZSBpbgpjYXJy eWluZyBvdXQgdGhpcyBwb2xpY3kgc2hhbGwgYmUgZGlyZWN0ZWQgdG93YXJkIGVuY291cmFn aW5nIGFuZCBhc3Npc3RpbmcKcmF0aGVyIHRoYW4gaW4gYW55IHdheXMgbGltaXRpbmcgdGhl IGZyZWVkb20gb2YgYXJ0aXN0aWMgZXhwcmVzc2lvbiB0aGF0IGlzCmVzc2VudGlhbCBmb3Ig dGhlIHdlbGwtYmVpbmcgb2YgdGhlIGFydHMuCgogIFMgMy4wMy4gQ291bmNpbCBvbiB0aGUg YXJ0cy4gIDEuIFRoZSBjb3VuY2lsIG9uIHRoZSBhcnRzIGluIHRoZSBleGVjdXRpdmUKZGVw YXJ0bWVudCBpcyBoZXJlYnkgIGNvbnRpbnVlZC4gIFRoZSAgdHdlbnR5ICBtZW1iZXJzICBz aGFsbCAgYmUsICBicm9hZGx5CnJlcHJlc2VudGF0aXZlICBvZiAgYWxsICBmaWVsZHMgIG9m ICB0aGUgIHBlcmZvcm1pbmcgIGFuZCAgZmluZSBhcnRzLCB0byBiZQphcHBvaW50ZWQgYnkg dGhlIGdvdmVybm9yLCB3aXRoIHRoZSBhZHZpY2UgYW5kIGNvbnNlbnQgb2YgdGhlIHNlbmF0 ZSwgIGZyb20KYW1vbmcgIHByaXZhdGUgIGNpdGl6ZW5zICB3aG8gIGFyZSAgd2lkZWx5ICBr bm93biAgZm9yICB0aGVpciAgcHJvZmVzc2lvbmFsCmNvbXBldGVuY2UgYW5kIGV4cGVyaWVu Y2UgaW4gY29ubmVjdGlvbiB3aXRoIHRoZSBwZXJmb3JtaW5nIGFuZCBmaW5lICBhcnRzLgpJ biAgbWFraW5nICBzdWNoICBhcHBvaW50bWVudHMsICBkdWUgIGNvbnNpZGVyYXRpb24gIHNo YWxsICBiZSBnaXZlbiB0byB0aGUKcmVjb21tZW5kYXRpb25zIG1hZGUgYnkgcmVwcmVzZW50 YXRpdmUgY2l2aWMsIGVkdWNhdGlvbmFsIGFuZCAgcHJvZmVzc2lvbmFsCmFzc29jaWF0aW9u cyAgYW5kICBncm91cHMsICBjb25jZXJuZWQgIHdpdGggb3IgZW5nYWdlZCBpbiB0aGUgcHJv ZHVjdGlvbiBvcgpwcmVzZW50YXRpb24gb2YgdGhlIHBlcmZvcm1pbmcgYW5kIGZpbmUgYXJ0 cyBnZW5lcmFsbHkuCiAgMi4gIFRoZSB0ZXJtIG9mIG9mZmljZSBvZiBlYWNoIG1lbWJlciBv ZiB0aGUgY291bmNpbCBzaGFsbCBiZSBmaXZlIHllYXJzLgpWYWNhbmNpZXMgaW4gdGhlIGNv dW5jaWwgb2NjdXJyaW5nIG90aGVyd2lzZSB0aGFuIGJ5ICBleHBpcmF0aW9uICBvZiAgdGVy bSwKc2hhbGwgIGJlICBmaWxsZWQgIGZvciAgdGhlICB1bmV4cGlyZWQgIHRlcm0gaW4gdGhl IHNhbWUgbWFubmVyIGFzIG9yaWdpbmFsCmFwcG9pbnRtZW50cy4gICBUaGUgIGdvdmVybm9y ICBzaGFsbCAgZGVzaWduYXRlICAgYSAgIGNoYWlycGVyc29uICAgYW5kICAgYQp2aWNlLWNo YWlycGVyc29uICBmcm9tICB0aGUgbWVtYmVycyBvZiB0aGUgY291bmNpbCwgdG8gc2VydmUg YXMgc3VjaCBhdCB0aGUKcGxlYXN1cmUgb2YgdGhlIGdvdmVybm9yLiAgVGhlIGNoYWlycGVy c29uIHNoYWxsICBiZSAgdGhlICBjaGllZiAgZXhlY3V0aXZlCm9mZmljZXIgb2YgdGhlIGNv dW5jaWwuCiAgMy4gICBUaGUgY2hhaXJwZXJzb24gc2hhbGwgcmVjZWl2ZSBjb21wZW5zYXRp b24gZml4ZWQgYnkgdGhlIGdvdmVybm9yIGFuZApzaGFsbCBiZSByZWltYnVyc2VkIGZvciBh bGwgZXhwZW5zZXMgYWN0dWFsbHkgYW5kIG5lY2Vzc2FyaWx5ICBpbmN1cnJlZCAgYnkKaGlt ICBpbiAgdGhlICBwZXJmb3JtYW5jZSAgb2YgIGhpcyBkdXRpZXMgaGVyZXVuZGVyLCB3aXRo aW4gdGhlIGFtb3VudCBtYWRlCmF2YWlsYWJsZSBieSBhcHByb3ByaWF0aW9uIHRoZXJlZm9y LiAgVGhlICBvdGhlciAgbWVtYmVycyAgb2YgIHRoZSAgY291bmNpbApzaGFsbCAgcmVjZWl2 ZSAgbm8gY29tcGVuc2F0aW9uIGZvciB0aGVpciBzZXJ2aWNlcywgYnV0IHNoYWxsIGJlIHJl aW1idXJzZWQKZm9yICBhbGwgIGV4cGVuc2VzICBhY3R1YWxseSAgYW5kICBuZWNlc3Nhcmls eSAgaW5jdXJyZWQgIGJ5ICB0aGVtICBpbiAgdGhlCnBlcmZvcm1hbmNlICBvZiAgdGhlaXIg ZHV0aWVzIGhlcmV1bmRlciB3aXRoaW4gdGhlIGFtb3VudCBtYWRlIGF2YWlsYWJsZSBieQph cHByb3ByaWF0aW9uIHRoZXJlZm9yLgogIDQuICAgVGhlICBjaGFpcnBlcnNvbiAgbWF5ICBh cHBvaW50ICBzdWNoICBvZmZpY2VycywgIGV4cGVydHMgIGFuZCAgb3RoZXIKZW1wbG95ZWVz IGFzIGhlIG1heSBkZWVtICBuZWNlc3NhcnksICBwcmVzY3JpYmUgIHRoZWlyICBkdXRpZXMs ICBmaXggIHRoZWlyCmNvbXBlbnNhdGlvbiBhbmQgcHJvdmlkZSBmb3IgcmVpbWJ1cnNlbWVu dCBvZiB0aGVpciBleHBlbnNlcyB3aXRoaW4gYW1vdW50cwphdmFpbGFibGUgdGhlcmVmb3Ig YnkgYXBwcm9wcmlhdGlvbi4KCiAgUyAgMy4wNS4gR2VuZXJhbCBwb3dlcnMgYW5kIGR1dGll cyBvZiBjb3VuY2lsLiAgVGhlIGNvdW5jaWwgc2hhbGwgaGF2ZQp0aGUgZm9sbG93aW5nIHBv d2VycyBhbmQgZHV0aWVzOgogIDEuICAgVG8gIHN0aW11bGF0ZSAgYW5kICBlbmNvdXJhZ2Ug IHRocm91Z2hvdXQgdGhlIHN0YXRlIHRoZSBzdHVkeSBhbmQKcHJlc2VudGF0aW9uIG9mIHRo ZSBwZXJmb3JtaW5nIGFuZCBmaW5lIGFydHMgIGFuZCAgcHVibGljICBpbnRlcmVzdCAgYW5k CnBhcnRpY2lwYXRpb24gdGhlcmVpbjsKICAyLiAgIFRvICBtYWtlICBzdWNoICBzdXJ2ZXlz ICBhcyBtYXkgYmUgZGVlbWVkIGFkdmlzYWJsZSBvZiBwdWJsaWMgYW5kCnByaXZhdGUgaW5z dGl0dXRpb25zIGVuZ2FnZWQgd2l0aGluIHRoZSBzdGF0ZSBpbiBhcnRpc3RpYyAgYW5kICBj dWx0dXJhbAphY3Rpdml0aWVzLCAgaW5jbHVkaW5nICBidXQgIG5vdCAgbGltaXRlZCAgdG8s ICBtdXNpYywgIHRoZWF0cmUsICBkYW5jZSwKcGFpbnRpbmcsIHNjdWxwdHVyZSwgYXJjaGl0 ZWN0dXJlLCBhbmQgYWxsaWVkIGFydHMgYW5kICBjcmFmdHMsICBhbmQgIHRvCm1ha2UgICBy ZWNvbW1lbmRhdGlvbnMgICBjb25jZXJuaW5nICBhcHByb3ByaWF0ZSAgbWV0aG9kcyAgdG8g IGVuY291cmFnZQpwYXJ0aWNpcGF0aW9uIGluIGFuZCBhcHByZWNpYXRpb24gb2YgdGhlIGFy dHMgIHRvICBtZWV0ICB0aGUgIGxlZ2l0aW1hdGUKbmVlZHMgYW5kIGFzcGlyYXRpb25zIG9m IHBlcnNvbnMgaW4gYWxsIHBhcnRzIG9mIHRoZSBzdGF0ZTsKICAzLiAgIFRvICB0YWtlICBz dWNoICBzdGVwcyAgYXMgIG1heSAgYmUgIG5lY2Vzc2FyeSAgYW5kIGFwcHJvcHJpYXRlIHRv CmVuY291cmFnZSBwdWJsaWMgaW50ZXJlc3QgaW4gdGhlIGN1bHR1cmFsIGhlcml0YWdlIG9m IG91ciBzdGF0ZSAgYW5kICB0bwpleHBhbmQgdGhlIHN0YXRlYHMgY3VsdHVyYWwgcmVzb3Vy Y2VzOwogIDQuICBUbyBob2xkIHB1YmxpYyBvciBwcml2YXRlIGhlYXJpbmdzOwogIDUuICAg IFRvICAgZW50ZXIgIGludG8gIGNvbnRyYWN0cywgIHdpdGhpbiAgdGhlICBhbW91bnQgIGF2 YWlsYWJsZSAgYnkKYXBwcm9wcmlhdGlvbiB0aGVyZWZvciwgd2l0aCBpbmRpdmlkdWFscywg b3JnYW5pemF0aW9ucyBhbmQgaW5zdGl0dXRpb25zCmZvciAgc2VydmljZXMgIGZ1cnRoZXJp bmcgIHRoZSAgZWR1Y2F0aW9uYWwgIG9iamVjdGl2ZXMgb2YgdGhlIGNvdW5jaWxgcwpwcm9n cmFtczsKICA2LiAgICBUbyAgIGVudGVyICBpbnRvICBjb250cmFjdHMsICB3aXRoaW4gIHRo ZSAgYW1vdW50ICBhdmFpbGFibGUgIGJ5CmFwcHJvcHJpYXRpb24gIHRoZXJlZm9yLCAgd2l0 aCAgbG9jYWwgIGFuZCAgcmVnaW9uYWwgIGFzc29jaWF0aW9ucyAgIGZvcgpjb29wZXJhdGl2 ZSAgZW5kZWF2b3JzICBmdXJ0aGVyaW5nICB0aGUgIGVkdWNhdGlvbmFsICBvYmplY3RpdmVz ICBvZiB0aGUKY291bmNpbGBzIHByb2dyYW1zOwogIDcuICAgVG8gYWNjZXB0IGdpZnRzLCBj b250cmlidXRpb25zIGFuZCBiZXF1ZXN0cyBvZiB1bnJlc3RyaWN0ZWQgZnVuZHMKZnJvbSBp bmRpdmlkdWFscywgZm91bmRhdGlvbnMsIGNvcnBvcmF0aW9ucyBhbmQgb3RoZXIgIG9yZ2Fu aXphdGlvbnMgIG9yCmluc3RpdHV0aW9ucyBmb3IgdGhlIHB1cnBvc2Ugb2YgZnVydGhlcmlu ZyB0aGUgZWR1Y2F0aW9uYWwgb2JqZWN0aXZlcyBvZgp0aGUgY291bmNpbGBzIHByb2dyYW1z OwogIDguICAgVG8gbWFrZSBhbmQgc2lnbiBhbnkgYWdyZWVtZW50cyBhbmQgdG8gZG8gYW5k IHRvIHBlcmZvcm0gYW55IGFjdHMKdGhhdCBtYXkgYmUgbmVjZXNzYXJ5LCBkZXNpcmFibGUg b3IgcHJvcGVyIHRvIGNhcnJ5IG91dCB0aGUgcHVycG9zZXMgIG9mCnRoaXMgY2hhcHRlcjsK ICA5LiAgIFRvIHByb21vdGUgdG91cmlzbSBieSBzdXBwb3J0aW5nIGFydHMgYW5kIGN1bHR1 cmFsIHByb2plY3RzIHdoaWNoCndvdWxkICBzdGltdWxhdGUgIHRvdXJpc20gIGFuZCAgaW1w cm92ZSAgdGhlICBzdGF0ZWBzICBhdHRyYWN0aW9ucyAgIGZvcgp0b3VyaXN0cy4KMTAuICBU byAgYWRtaW5pc3RlciB0aGUgTmV3IFlvcmsgc3RhdGUgbXVzaWNhbCBpbnN0cnVtZW50IHJl dm9sdmluZyBmdW5kCmluIGFjY29yZGFuY2Ugd2l0aCB0aGUgcHJvdmlzaW9ucyBvZiBzZWN0 aW9uIG5pbmV0eS1zZXZlbi12IG9mIHRoZSBzdGF0ZQpmaW5hbmNlIGxhdy4KCiAgUyAzLjA3 LiBTdGF0ZSBmaW5hbmNpYWwgYXNzaXN0YW5jZSBmb3IgaW1wcm92ZW1lbnQsIGV4cGFuc2lv biBvciByZWhhLQpiaWxpdGF0aW9uICBvZiAgZXhpc3RpbmcgIGJ1aWxkaW5ncy4gMS4gQW55 IG90aGVyIHByb3Zpc2lvbiBvZiBhbnkgb3RoZXIKbGF3IHRvIHRoZSBjb250cmFyeSBub3R3 aXRoc3RhbmRpbmcsIHN0YXRlIGZpbmFuY2lhbCBhc3Npc3RhbmNlICBtYXkgIGJlCnByb3Zp ZGVkIGZvciB1cCB0byBmaWZ0eSBwZXJjZW50IG9mIHRoZSBhcHByb3ZlZCBjb3N0cyAoZXhj bHVkaW5nIGZlYXNpLQpiaWxpdHkgIHN0dWRpZXMsICBwbGFucyAgb3Igc2ltaWxhciBhY3Rp dml0aWVzKSBvZiBlbGlnaWJsZSBwcm9qZWN0cyBmb3IKdGhlIHJlaGFiaWxpdGF0aW9uIG9m IGV4aXN0aW5nIGJ1aWxkaW5ncywgaW5jbHVkaW5nICBsZWFzZWhvbGQgIGltcHJvdmUtCm1l bnRzLCBieSBhbiBlbGlnaWJsZSBub25wcm9maXQgY3VsdHVyYWwgb3JnYW5pemF0aW9uLCBh cyBwcm92aWRlZCBoZXJlLQppbi4gU3VjaCBmaW5hbmNpYWwgYXNzaXN0YW5jZSBtYXkgYmUg aW4gdGhlIGZvcm0gb2YgZ3JhbnRzIGFuZC9vciBsb2Fucy4KICAyLiAgQSAgbm9ucHJvZml0 ICBjdWx0dXJhbCAgb3JnYW5pemF0aW9uIG1heSBzdWJtaXQgYW4gYXBwbGljYXRpb24gZm9y CnN0YXRlIGZpbmFuY2lhbCBhc3Npc3RhbmNlIGZvciBlbGlnaWJsZSBwcm9qZWN0cyBhcyBw cm92aWRlZCBoZXJlaW4uIFRoZQpjb3VuY2lsLCBhZnRlciByZXZpZXcgb2YgdGhlIHByb2dy YW1tYXRpYyBhbmQgZmlzY2FsIG5lZWRzIGFuZCByZXNvdXJjZXMKb2YgdGhlIHByb2plY3Qg YW5kIHRoZSBvcmdhbml6YXRpb24sIHNoYWxsIG1ha2UgYSBkZXRlcm1pbmF0aW9uLCBzdWJq ZWN0CnRvIHRoZSByZXN0cmljdGlvbnMsIGxpbWl0YXRpb25zLCByZXNwb25zaWJpbGl0aWVz IGFuZCAgcmVxdWlyZW1lbnRzICBvZgp0aGlzIHNlY3Rpb24sIGFzIHRvIHRoZSBhbW91bnQg b2Ygc3RhdGUgZmluYW5jaWFsIGFzc2lzdGFuY2UgaW4gdGhlIGZvcm0Kb2YgIGEgIGdyYW50 IGFuZC9vciBzdGF0ZSBmaW5hbmNpYWwgYXNzaXN0YW5jZSBpbiB0aGUgZm9ybSBvZiBhIGxv YW4sIG9yCmFueSBjb21iaW5hdGlvbiB0aGVyZW9mLCB0aGF0IHRoZSBvcmdhbml6YXRpb24g IG1heSAgcmVjZWl2ZSwgIHByb3ZpZGVkLApob3dldmVyLCB0aGF0IHN1YmplY3QgdG8gdGhl IHJlcXVpcmVtZW50cyBlc3RhYmxpc2hlZCBoZXJlaW46CiAgKGEpICBBbnkgIGZpbmFuY2lh bCAgYXNzaXN0YW5jZSBpbiB0aGUgZm9ybSBvZiBhIGdyYW50IG1heSBiZSBwcm92aWRlZApm b3IgYW55IGFtb3VudCBmcm9tIGZ1bmRzIGFwcHJvcHJpYXRlZCBzcGVjaWZpY2FsbHkgdGhl cmVmb3IgdXAgIHRvICBhbmQKaW5jbHVkaW5nIHRoZSBhbW91bnQgb2YgZmlmdHkgdGhvdXNh bmQgZG9sbGFycy4KICAoYikgIEFueSAgZmluYW5jaWFsICBhc3Npc3RhbmNlICBpbiB0aGUg Zm9ybSBvZiBhIGxvYW4gbWF5IGJlIHByb3ZpZGVkCmZyb20gdGhlIGFydHMgY2FwaXRhbCBy ZXZvbHZpbmcgZnVuZCAgZXN0YWJsaXNoZWQgIHB1cnN1YW50ICB0byAgc2VjdGlvbgpuaW5l dHktc2V2ZW4teiBvZiB0aGUgc3RhdGUgZmluYW5jZSBsYXcgZm9yIGFueSBhbW91bnQgdXAg dG8gYW5kIGluY2x1ZC0KaW5nICB0aGUgIGFtb3VudCBvZiBvbmUgaHVuZHJlZCB0aG91c2Fu ZCBkb2xsYXJzLCBwcm92aWRlZCB0aGF0IGludGVyZXN0CmluIGFueSBzdWNoIGxvYW4gc2hh bGwgbm90IGV4Y2VlZCBhIG1heGltdW0gb2YgdGVuIG9yIGEgbWluaW11bSBvZiB0aHJlZQpw ZXJjZW50IHBlciBhbm51bS4KICAoYykgQW55IGNvbWJpbmVkIGZpbmFuY2lhbCBhc3Npc3Rh bmNlIGluIHRoZSBmb3JtIG9mICBhICBncmFudCAgYW5kICBhCmxvYW4gbWF5IGJlIHByb3Zp ZGVkIGZvciBhbiBhbW91bnQgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgYW1vdW50IG9mIG9u ZQpodW5kcmVkICB0aG91c2FuZCAgZG9sbGFycyBhbmQgbWF5IGluY2x1ZGUgYW55IGFtb3Vu dCBvZiBzdGF0ZSBmaW5hbmNpYWwKYXNzaXN0YW5jZSBpbiB0aGUgZm9ybSBvZiBhIGdyYW50 IGFuZCAgYW55ICBhbW91bnQgIG9mICBzdGF0ZSAgZmluYW5jaWFsCmFzc2lzdGFuY2UgIGlu IHRoZSBmb3JtIG9mIGEgbG9hbiwgYXMgc2hhbGwgYmUgZGV0ZXJtaW5lZCBieSB0aGUgY291 bmNpbApzdWJqZWN0IHRvIHRoZSBwcm92aXNpb25zIG9mIHBhcmFncmFwaHMgKGEpIGFuZCAo Yikgb2YgdGhpcyAgc3ViZGl2aXNpb24KYW5kICB0aGUgIHJlcXVpcmVtZW50cywgIGR1dGll cyAgYW5kICByZXNwb25zaWJpbGl0aWVzICBpbXBvc2VkICBieSB0aGlzCnNlY3Rpb24uCiAg KGQpIE5vdGhpbmcgY29udGFpbmVkIGhlcmVpbiBzaGFsbCBiZSBkZWVtZWQgdG8gcmVxdWly ZSBhcHByb3ZhbCBvZiAgYQp0b3RhbCAgb2YgIGZpZnR5ICB0aG91c2FuZCAgZG9sbGFycyBp biBzdGF0ZSBmaW5hbmNpYWwgYXNzaXN0YW5jZSBpbiB0aGUKZm9ybSBvZiBhIGdyYW50LCBv ciBhcHByb3ZhbCBvZiBhIHRvdGFsIG9mIG9uZSBodW5kcmVkIHRob3VzYW5kICBkb2xsYXJz CmluICBzdGF0ZSAgZmluYW5jaWFsIGFzc2lzdGFuY2UgaW4gdGhlIGZvcm0gb2YgYSBsb2Fu LCBvciB0byBwcmV2ZW50IHRoZQpjb3VuY2lsIGZyb20gYXBwcm92aW5nIGEgbG9hbiBvciBh bnkgY29tYmluYXRpb24gb2YgYSBncmFudCBhbmQgbG9hbiAgaW4KYW55ICBhbW91bnQsIHN1 YmplY3Qgb25seSB0byB0aGUgbGltaXRhdGlvbiBvbiBzdWNoIGZpbmFuY2lhbCBhc3Npc3Rh bmNlCmltcG9zZWQgYnkgcGFyYWdyYXBocyAoYSkgYW5kIChiKSBvZiB0aGlzIHN1YmRpdmlz aW9uLCBhbmQgdGhlIGNvdW5jaWxgcwpkZXRlcm1pbmF0aW9uIG9mIHRoZSBwcm9ncmFtbWF0 aWMgYW5kIGZpc2NhbCBuZWVkcyBhbmQgcmVzb3VyY2VzIG9mICB0aGUKcHJvamVjdCAgYW5k ICB0aGUgIG9yZ2FuaXphdGlvbiwgYW5kIG90aGVyIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNl Y3Rpb24sCmlycmVzcGVjdGl2ZSBvZiB0aGUgYW1vdW50IG9mIHN0YXRlIGZpbmFuY2lhbCBh c3Npc3RhbmNlIGluIHRoZSBmb3JtICBvZgphICBncmFudCAgYW5kL29yICBzdGF0ZSAgZmlu YW5jaWFsICBhc3Npc3RhbmNlICBpbiAgdGhlICBmb3JtICBvZiBhIGxvYW4KcmVxdWVzdGVk IG9yIHN1Z2dlc3RlZCBieSB0aGUgYXBwbGljYW50LgogIChlKSBUaGUgY291bmNpbCBtYXkg Y29udHJhY3QgIHdpdGggIG91dHNpZGUgIGVudGl0aWVzICB0byAgZWZmZWN0ICB0aGUKcHVy cG9zZXMgb2YgdGhpcyBwYXJhZ3JhcGggYW5kIHRvIGRpc2J1cnNlIGxvYW5zIGFuZCByZWNl aXZlIHBheW1lbnRzIG9uCnN1Y2ggbG9hbnMuCiAgMy4gIChhKSAgRm9yICB0aGUgIHB1cnBv c2VzIG9mIHRoaXMgc2VjdGlvbiwgb3JnYW5pemF0aW9ucyBvciBlbGlnaWJsZQpvcmdhbml6 YXRpb25zIHNoYWxsIG1lYW4gbm9ucHJvZml0IGN1bHR1cmFsIG9yZ2FuaXphdGlvbnMgd2hp Y2ggcmVjZWl2ZWQKZnVuZGluZyBmcm9tIHRoZSBjb3VuY2lsIGluIGVhY2ggb2YgIHRoZSAg dGhyZWUgIHByZXZpb3VzICBzdGF0ZSAgZmlzY2FsCnllYXJzICBhbmQgd2hpY2ggb3duIGEg Y29uZG9taW5pdW0gb3IgYSBidWlsZGluZyBvciBhIHBhcnQgb2YgYSBidWlsZGluZwpvciB3 aGljaCBvd24gc2hhcmVzIHJlcHJlc2VudGluZyBhIGNvb3BlcmF0aXZlIGludGVyZXN0IGlu IGEgYnVpbGRpbmcgb3IKd2hpY2ggaGF2ZSBlbnRlcmVkIGludG8gYSBsZWFzZS1wdXJjaGFz ZSBhZ3JlZW1lbnQgdG8gb3duIGEgYnVpbGRpbmcgIG9yCndoaWNoIGxlYXNlIGEgYnVpbGRp bmcgb3Igc3BhY2UgaW4gaXQsIGFuZCB3aGljaCBvcGVyYXRlIGEgcHJvZ3JhbSB0aGVyLQpl aW4sICBwcm92aWRlZCAgdGhhdCBldmlkZW5jZSBvZiBzdWNoIG93bmVyc2hpcCwgbGVhc2Ug b3IgbGVhc2UtcHVyY2hhc2UKYWdyZWVtZW50IHNoYWxsIGJlIHByb3ZpZGVkIGJ5IHRoZSBl bGlnaWJsZSBvcmdhbml6YXRpb24gaW4gc3VjaCAgbWFubmVyCmFuZCAgZm9ybSAgYXMgIGlz ICBzYXRpc2ZhY3RvcnkgdG8gdGhlIGNvdW5jaWwuIE5vdGhpbmcgY29udGFpbmVkIGhlcmVp bgpzaGFsbCBwcmV2ZW50IGFuIGVsaWdpYmxlIG9yZ2FuaXphdGlvbiBmcm9tIHJlY2Vpdmlu ZyBmaW5hbmNpYWwgIGFzc2lzdC0KYW5jZSB1bmRlciB0aGlzIHNlY3Rpb24gd2hpY2ggaGFz IHNhdGlzZmFjdG9yeSBvY2N1cGFuY3kgYWdyZWVtZW50cyBpbiBhCmJ1aWxkaW5nIHdoaWNo IGlzIG93bmVkIGJ5IGEgbG9jYWwgZ292ZXJubWVudC4KICAoYikgRWxpZ2libGUgb3JnYW5p emF0aW9ucyBzaGFsbCBub3QgaW5jbHVkZToKICAoMSkgcHVibGljIHNjaG9vbCBkaXN0cmlj dHMsIHRoZWlyIGNvbXBvbmVudHMsIGFuZCBhZmZpbGlhdGUgb3JnYW5pemEtCnRpb25zLCAg c3RhdGUgYWdlbmNpZXMgb3IgZGVwYXJ0bWVudHMsIG9yLCBleGNlcHQgYXMgcHJvdmlkZWQg aGVyZXVuZGVyLApwdWJsaWMgdW5pdmVyc2l0aWVzLCB0aGVpciBjb21wb25lbnRzIGFuZCBh ZmZpbGlhdGUgb3JnYW5pemF0aW9uczsgb3IKICAoMikgdGhlIHByb3Zpc2lvbnMgb2YgIHN1 YnBhcmFncmFwaCAgb25lICBvZiAgdGhpcyAgcGFyYWdyYXBoICB0byAgdGhlCmNvbnRyYXJ5 ICBub3R3aXRoc3RhbmRpbmcsIGEgcHVibGljIHVuaXZlcnNpdHksIGl0cyBjb21wb25lbnRz IG9yIGFmZmlsLQppYXRlIG9yZ2FuaXphdGlvbnMgbWF5IGJlIGZ1bmRlZCBpZiBpdCBzZXJ2 ZXMgYW5kIGlzIGxvY2F0ZWQgaW4gYSAgcnVyYWwKb3IgbWlub3JpdHkgY29tbXVuaXR5LCBh cyBzdWNoIHNoYWxsIGJlIGRldGVybWluZWQgYnkgdGhlIGNvdW5jaWwgcHVyc3UtCmFudCAg dG8gIHN1YmRpdmlzaW9ucyAgc2V2ZW4gIGFuZCAgZmlmdGVlbiBvZiB0aGlzIHNlY3Rpb24g YW5kIG1lZXRzIGFsbApvdGhlciBhcHBsaWNhYmxlIHJlcXVpcmVtZW50cyBmb3IgZnVuZGlu ZyB1bmRlciB0aGlzICBzZWN0aW9uLCAgcHJvdmlkZWQKdGhhdCAgYXBwbGljYXRpb25zICBm cm9tICBzdWNoICBlbnRpdGllcyAgZm9yIHN0YXRlIGZpbmFuY2lhbCBhc3Npc3RhbmNlCnNo YWxsIG5vdCBiZSBjb25zaWRlcmVkIGJ5IHRoZSBjb3VuY2lsIHByaW9yIHRvIERlY2VtYmVy IHRoaXJ0eS1maXJzdCBpbgphbnkgc3RhdGUgZmlzY2FsIHllYXIuCiAgKGMpIEVsaWdpYmxl IHByb2plY3RzIHNoYWxsIGluY2x1ZGU6CiAgKDEpIGltcHJvdmVtZW50LCBleHBhbnNpb24g b3IgcmVoYWJpbGl0YXRpb24gb2YgYSAgYnVpbGRpbmcgIGZvciAgYXJ0cwpwdXJwb3NlczsK ICAoMikgIGltcHJvdmVtZW50LCBleHBhbnNpb24gb3IgcmVoYWJpbGl0YXRpb24gb2YgZXhp c3RpbmcgYnVpbGRpbmdzIHRvCmluY3JlYXNlIG9yIGFzc3VyZSBwdWJsaWMgYWNjZXNzOwog ICgzKSBpbXByb3ZlbWVudCBvciByZWhhYmlsaXRhdGlvbiBvZiAgZXhpc3RpbmcgIGJ1aWxk aW5ncyAgZm9yICBlbmVyZ3kKY29uc2VydmF0aW9uIHB1cnBvc2VzIG9yIGZvciBzdWNoIG90 aGVyIHB1cnBvc2VzIGFzIHdpbGwgc2VydmUgdG8gcmVkdWNlCnRoZSBvcmdhbml6YXRpb25g cyBjb3N0cyBvZiBvcGVyYXRpb24gaW4gc3VjaCBidWlsZGluZzsKICAoNCkgIGltcHJvdmVt ZW50ICBvciAgcmVoYWJpbGl0YXRpb24gIG9mIGV4aXN0aW5nIGJ1aWxkaW5ncyB0byBhZGRy ZXNzCmtub3duIGhlYWx0aCBhbmQgc2FmZXR5IGRlZmljaWVuY2llczsKICAoNSkgaW1wcm92 ZW1lbnQsIGV4cGFuc2lvbiBvciByZWhhYmlsaXRhdGlvbiBvZiBleGlzdGluZyBidWlsZGlu Z3MgIHRvCnByb3ZpZGUgZm9yIGhhbmRpY2FwcGVkIGFjY2Vzc2liaWxpdHk7CiAgKDYpICBz dWNoICBvdGhlciAgcHJvamVjdHMgIG9mIHN1YnN0YW50aXZlIGNoYXJhY3RlciBhcyBhcmUg aW4ga2VlcGluZwp3aXRoIHRoZSBzcGlyaXQgYW5kIGludGVudCBvZiB0aGlzIHNlY3Rpb24u ICAgKGQpIE5vICBwcm9qZWN0ICBzaGFsbCAgYmUKY29uc2lkZXJlZCBlbGlnaWJsZSBpZiBp dCBpcyBhcHByb3ZlZCBmb3IgZmluYW5jaW5nIGZyb20gYW55IG90aGVyIHN0YXRlCmFzc2lz dGFuY2UgcHJvZ3JhbS4KICA0LiBFYWNoIGFwcGxpY2F0aW9uIGZvciBmaW5hbmNpYWwgYXNz aXN0YW5jZSBzaGFsbCBiZSBzdWJtaXR0ZWQgdG8gdGhlCmNvdW5jaWwgIGJ5IHRoZSBnb3Zl cm5pbmcgYm9keSBvZiB0aGUgZWxpZ2libGUgb3JnYW5pemF0aW9uLiBFYWNoIGFwcGxpLQpj YXRpb24gc2hhbGw6CiAgKGEpIGRlbW9uc3RyYXRlIHRoYXQgYWRlcXVhdGUgb3BlcmF0aW5n IHN1cHBvcnQgYW5kIHJlc291cmNlcyB3aWxsICBiZQphdmFpbGFibGUgIGF0ICB0aGUgIGNv bXBsZXRpb24gIG9mIHRoZSBwcm9qZWN0IHRvIHByb3ZpZGUgYW4gaW1wcm92ZWQgb3IKaW5j cmVhc2VkIGxldmVsIG9mIHNlcnZpY2U7CiAgKGIpIGNvbnRhaW4gdmVyaWZpY2F0aW9uIGlu IHN1Y2ggZm9ybSBhcyAgbWF5ICBiZSAgYWNjZXB0YWJsZSAgdG8gIHRoZQpjb3VuY2lsICB0 aGF0ICB0aGUgIHJlbWFpbmluZyAgY29zdCAgb2YgIHRoZSBwcm9qZWN0LCBleGNsdXNpdmUg b2Ygc3RhdGUKZmluYW5jaWFsIGFzc2lzdGFuY2UsIGhhcyBiZWVuIG9yIHdpbGwgYmUgb2J0 YWluZWQ7CiAgKGMpIGRlbW9uc3RyYXRlIHRoYXQgdGhlIHByb2plY3Qgd2lsbCBiZSAgY29t cGxldGVkICBwcm9tcHRseSAgYW5kICBpbgphY2NvcmRhbmNlIHdpdGggdGhlIGFwcGxpY2F0 aW9uOwogIChkKSAgZWl0aGVyIGRlbW9uc3RyYXRlIHRoYXQgdGhlIG9wZXJhdGlvbiBvZiB0 aGUgb3JnYW5pemF0aW9uIHdpbGwgYmUKbWFkZSBtb3JlIGVjb25vbWljYWwgb3IgZWZmaWNp ZW50IGFzIGEgY29uc2VxdWVuY2Ugb2YgYXBwcm92YWwgb3IgZGVtb24tCnN0cmF0ZSB0aGF0 IGhlYWx0aCBhbmQgc2FmZXR5IGNvbmNlcm5zIHdpbGwgYmUgIHJlcGFpcmVkICBvciAgYWNj ZXNzICB0bwpoYW5kaWNhcHBlZCBwcm92aWRlZDsKICAoZSkgIGRlbW9uc3RyYXRlIHRoYXQg dGhlIHByb2plY3Qgd2lsbCBiZSBjb25kdWN0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoCmFwcGxp Y2FibGUgZmVkZXJhbCwgc3RhdGUgYW5kIGxvY2FsIGxhd3MgYW5kIHJlZ3VsYXRpb25zOwog IChmKSBkZW1vbnN0cmF0ZSB0aGF0LCB3aGVyZSBhcHByb3ByaWF0ZSwgIGNvbXBldGl0aXZl ICBiaWRkaW5nICBwcm9jZS0KZHVyZXMgIHdpbGwgIGJlICBmb2xsb3dlZCAgYXMgIHJlcXVp cmVkICBieSAgbGF3LCAgb3IgcHJvdmlkZSBzdWNoIG90aGVyCmV2aWRlbmNlIG9mIGNvbXBl dGl0aW9uIGFzIHNoYWxsIGJlIHNhdGlzZmFjdG9yeSB0byB0aGUgY291bmNpbDsKICAoZykg cHJvdmlkZSBhbiBhc3Nlc3NtZW50IG9mIHRoZSB1c2VmdWwgbGlmZSBvZiB0aGUgcHJvamVj dCwgYW5kICBzdWNoCnJlY29tbWVuZGF0aW9uLCAgYW5hbHlzaXMgIG9mICBuZWVkcyAgb3Ig IGZlYXNpYmlsaXR5ICBzdHVkaWVzIGFzIG1heSBiZQpyZXF1aXJlZCBieSB0aGUgY291bmNp bCBwcm92aWRlZCwgaG93ZXZlciwgdGhhdCBmb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMKc2Vj dGlvbiB0aGUgdGVybSAidXNlZnVsIGxpZmUiIHNoYWxsIG1lYW4gc3VjaCBtZXRob2Qgb2Yg Y2FsY3VsYXRpbmcgdGhlCndvcnRoIG9mIGEgcHJvamVjdCBhbmQgdGhlIGFtb3VudCBvZiBh bm51YWwgZGVwcmVjaWF0aW9uICBuZWNlc3NhcnkgIGZvcgplZmZlY3RpbmcgIGNvbnRyYWN0 cyAgdW5kZXIgIHRoaXMgIHNlY3Rpb24gIGFzIHRoZSBjb3VuY2lsIHNoYWxsIHJlcXVpcmUK YWZ0ZXIgY29uc3VsdGF0aW9uIHdpdGggdGhlIHN0YXRlIGNvbXB0cm9sbGVyIGFuZCB1cG9u IGFwcHJvdmFsICBieSAgdGhlCnN0YXRlIGRpdmlzaW9uIG9mIHRoZSBidWRnZXQ7CiAgKGgp ICBkZW1vbnN0cmF0ZSAgdGhhdCAgY29udHJhY3RzICBmb3IgdGhlIHByb2plY3Qgd2lsbCBi ZSBleGVjdXRlZCBpbgphY2NvcmRhbmNlIHdpdGggc3ViZGl2aXNpb24gdHdlbHZlIG9mIHRo aXMgc2VjdGlvbjsKICAoaSkgcHJvdmlkZSBzdWNoIG90aGVyIGluZm9ybWF0aW9uIGFzIG1h eSBiZSByZXF1aXJlZCBieSAgdGhlICBjb3VuY2lsCmluY2x1ZGluZyAgc3VjaCBndWFyYW50 ZWVzIGFzIGFyZSBmdXJ0aGVyIHJlcXVpcmVkIGJ5IHN1YmRpdmlzaW9ucyBlaWdodAphbmQg bmluZSBvZiB0aGlzIHNlY3Rpb24uCiAgNS4gRWFjaCBvcmdhbml6YXRpb24gbWF5IHN1Ym1p dCBubyBtb3JlIHRoYW4gb25lIGFwcGxpY2F0aW9uIGFubnVhbGx5LgpBbnkgb3RoZXIgcHJv dmlzaW9uIG9mIHRoaXMgc2VjdGlvbiB0byB0aGUgY29udHJhcnkgbm90d2l0aHN0YW5kaW5n LCAgbm8Kb3JnYW5pemF0aW9uIHNoYWxsIHJlY2VpdmUgc3RhdGUgZmluYW5jaWFsIGFzc2lz dGFuY2UgdW5kZXIgdGhpcyBzZWN0aW9uCmZ1bmRpbmcgbW9yZSB0aGFuIHRocmVlIHllYXJz IGluIGFueSBjb25zZWN1dGl2ZSBmaXZlLXllYXIgcGVyaW9kLgogIDYuICAoYSkgIEVhY2gg IGFwcGxpY2F0aW9uICBmb3IgIHN0YXRlICBmaW5hbmNpYWwgIGFzc2lzdGFuY2Ugc2hhbGwg YmUKcmV2aWV3ZWQgYnkgdGhlIGNvdW5jaWwgZm9yIGl0cyBtZXJpdHMgIGFuZCAgZm9yICB0 aGUgIHByb2dyYW1tYXRpYyAgYW5kCmZpc2NhbCAgbmVlZHMgIGFuZCAgcmVzb3VyY2VzICBv ZiB0aGUgcHJvcG9zZWQgcHJvamVjdCBhbmQgdGhlIGFwcGxpY2FudApvcmdhbml6YXRpb24u IEFueSBhcHBsaWNhdGlvbiBmb3IgYSBwcm9qZWN0IHdob3NlIHRvdGFsIGNvc3QgIGVxdWFs cyAgb3IKZXhjZWVkcyAgdGhlICBzdW0gIG9mICB0aHJlZSAgaHVuZHJlZCAgdGhvdXNhbmQg IGRvbGxhcnMgd2hpY2ggaXMgZGVlbWVkCnByZWxpbWluYXJ5IGFjY2VwdGFibGUgc2hhbGwg YmUgc3VibWl0dGVkIGJ5IHRoZSBjb3VuY2lsIHRvIHRoZSBkb3JtaXRvLQpyeSBhdXRob3Jp dHkgb2YgdGhlIHN0YXRlIG9mIE5ldyBZb3JrIGZvciB0ZWNobmljYWwgcmV2aWV3LiAgICBQ cm92aWRlZCwKaG93ZXZlciwgIHRoYXQgIG5vdGhpbmcgIGNvbnRhaW5lZCBoZXJlaW4gc2hh bGwgcHJldmVudCB0aGUgY291bmNpbCBmcm9tCnN1Ym1pdHRpbmcgYW55IGFwcGxpY2F0aW9u IGZvciBmaW5hbmNpYWwgYXNzaXN0YW5jZSwgaXJyZXNwZWN0aXZlIG9mIHRoZQphbW91bnQg b2YgZmluYW5jaWFsIGFzc2lzdGFuY2UgcmVxdWVzdGVkIG9yIHRoZSB0b3RhbCBwcm9qZWN0 ICBjb3N0LCAgdG8KdGhlICBhdXRob3JpdHkgIGZvciB0ZWNobmljYWwgcmV2aWV3IGFuZCBy ZWNvbW1lbmRhdGlvbnMgcHVyc3VhbnQgdG8gdGhlCnByb3Zpc2lvbnMgb2YgdGhpcyBzZWN0 aW9uLgogIChiKSBXaXRoaW4gdGhpcnR5IGRheXMgb2YgdGhlIHJlY2VpcHQgb2YgYW4gYXBw bGljYXRpb24gZnJvbSB0aGUgY291bi0KY2lsLCB0aGUgYXV0aG9yaXR5IHNoYWxsIHByb3Zp ZGUgdGhlIGNvdW5jaWwgd2l0aCBhICB3cml0dGVuICBldmFsdWF0aW9uCm9mIHRoZSBwcm9q ZWN0IHdoaWNoIHNoYWxsIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBmYWN0b3JzOgogICgxKSAg ZmVhc2liaWxpdHkgIG9mICB0aGUgIHByb3Bvc2VkIHByb2plY3QgZnJvbSBhbiBlbmdpbmVl cmluZyBzdGFuZC0KcG9pbnQ7CiAgKDIpIHRvdGFsIHByb2plY3QgY29zdCBlc3RpbWF0ZTsK ICAoMykgcHJvcG9zZWQgcHJvamVjdCBzY2hlZHVsZTsKICAoNCkgdXNlZnVsIGxpZmUgb2Yg dGhlIHByb3Bvc2VkIHByb2plY3QgYXMgZGVmaW5lZCBwdXJzdWFudCAgdG8gIHBhcmEtCmdy YXBoIChiKSBvZiBzdWJkaXZpc2lvbiBmb3VyIG9mIHRoaXMgc2VjdGlvbjsKICAoNSkgIHN1 Y2ggb3RoZXIgZmFjdG9ycyB3aGljaCB0aGUgYXV0aG9yaXR5IHNoYWxsIGRldGVybWluZSBh cmUgYXBwbGktCmNhYmxlIHRvIGl0cyBldmFsdWF0aW9uIG9mIHRoZSBwcm9qZWN0LgogIChj KSBJZiB3aXRoaW4gdGhlIHRoaXJ0eS1kYXkgcGVyaW9kIHRoZSBhdXRob3JpdHkgZmluZHMg bW9yZSAgaW5mb3JtYS0KdGlvbiAgaXMgIG5lY2Vzc2FyeSwgdGhlIGF1dGhvcml0eSBzaGFs bCBzbyBub3RpZnkgdGhlIGNvdW5jaWwgYW5kIHNoYWxsCmhhdmUgYSBtYXhpbXVtIG9mIG5p bmV0eSBkYXlzIHRvIGNvbXBsZXRlIGl0cyByZXZpZXcuCiAgKGQpIENvbmN1cnJlbnQgd2l0 aCBpdHMgYXBwcm92YWwgb2YgIGFueSAgYXBwbGljYXRpb24sICB0aGUgIGF1dGhvcml0eQpz aGFsbCAgaW5jbHVkZSAgaXRzICByZWNvbW1lbmRhdGlvbiBhcyB0byB0aGUgbWFubmVyIGlu IHdoaWNoIHRoZSBkZXNpZ24KYW5kIGNvbnN0cnVjdGlvbiBvZiB0aGUgcHJvamVjdCBzaG91 bGQgYmUgbWFuYWdlZC4KICAoZSkgSW4gYW55IGNhc2Ugd2hlcmUgdGhlIGF1dGhvcml0eSBh bmQgdGhlIGNvdW5jaWwgYW5kIHRoZSAgb3JnYW5pemEtCnRpb24gIGhhdmUgYWdyZWVkIHRo YXQgdGhlIGF1dGhvcml0eSB3aWxsIGF3YXJkIGNvbnRyYWN0cyBmb3IgdGhlIGRlc2lnbgph bmQgY29uc3RydWN0aW9uIG9mIHRoZSBwcm9qZWN0LCB0aGUgYXV0aG9yaXR5IHNoYWxsIHBy ZXBhcmUgb3IgY2F1c2UgdG8KYmUgcHJlcGFyZWQgYSBmZWFzaWJpbGl0eSBkZXNpZ24gYW5k IHBlcmZvcm1hbmNlIHBsYW4gIHdoaWNoICBzaGFsbCAgc2V0CmZvcnRoICB0aGUgdGVybXMg YW5kIGNvbmRpdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb25zdHJ1Y3Rpb24gbWFuYWdl LQptZW50IHByb2Nlc3MuIFN1Y2ggcGxhbiBzaGFsbCBjb250YWluIHByb3Zpc2lvbnMgcmVs YXRpbmcgdG8gIHRoZSAgcmVsYS0KdGl2ZSAgcmVzcG9uc2liaWxpdGllcyAgb2YgIHRoZSAg YXV0aG9yaXR5LCAgYXBwcm9wcmlhdGUgcGVyZm9ybWFuY2UgYW5kCnN1cmV0eSBib25kcywg cmVtZWRpZXMgIGFnYWluc3QgIGFyY2hpdGVjdHMsICBjb250cmFjdG9ycyAgYW5kICBzdXJl dGllcwpkZWVtZWQgIHRvICBiZSAgaW4gZGVmYXVsdCBpbiB0aGUgcGVyZm9ybWFuY2Ugb2Yg dGhlaXIgb2JsaWdhdGlvbnMsIGFuZCwKZ2VuZXJhbGx5LCB0aGUgbWFuYWdlbWVudCBvZiB0 aGUgY29uc3RydWN0aW9uIHByb2Nlc3MgaW4gYSAgcHJvZmVzc2lvbmFsCm1hbm5lciBpbiBh Y2NvcmRhbmNlIHdpdGggcHJldmFpbGluZyBjb25zdHJ1Y3Rpb24gaW5kdXN0cnkgc3RhbmRh cmRzLgogIChmKSBTaG91bGQgdGhlIGF1dGhvcml0eSBmYWlsIHRvIHByb3ZpZGUgdGhlIGNv dW5jaWwgd2l0aCBhbiBhcHByb3ZhbCwKZGlzYXBwcm92YWwgIG9yIHJlcXVlc3QgZm9yIGFk ZGl0aW9uYWwgaW5mb3JtYXRpb24gd2l0aGluIHRoaXJ0eSBkYXlzIG9mCnJlY2VpcHQgb2Yg dGhlIG9yaWdpbmFsIGFwcGxpY2F0aW9uIG9yIHdpdGhpbiAgbmluZXR5ICBkYXlzICBhcyAg bWF5ICBiZQphcHByb3ByaWF0ZSwgIHRoZSAgYXBwbGljYXRpb24gc2hhbGwgYmUgc3VibWl0 dGVkIHRvIHRoZSBjb3VuY2lsIGZvciBpdHMKZmluYWwgYXBwcm92YWwgb3IgZGlzYXBwcm92 YWwuCiAgKGcpIElmIGFwcHJvdmVkIGJ5IHRoZSBhdXRob3JpdHksIHRoZSBhcHBsaWNhdGlv biBzaGFsbCBiZSByZXR1cm5lZCB0bwp0aGUgY291bmNpbCwgd2hpY2ggIG1heSAgcHJvdmlk ZSAgZmluYWwgIGFwcHJvdmFsICBmb3IgIHN0YXRlICBmaW5hbmNpYWwKYXNzaXN0YW5jZS4K ICAoaCkgU3ViamVjdCB0byBhcHByb3ZhbCBieSB0aGUgZGlyZWN0b3Igb2YgdGhlIGRpdmlz aW9uIG9mIHRoZSBidWRnZXQsCnRoZSAgY291bmNpbCAgc2hhbGwgZW50ZXIgaW50byBhbiBh Z3JlZW1lbnQgdG8gaW5zdXJlIHRoYXQgdGhlIGF1dGhvcml0eQpzaGFsbCBiZSByZWltYnVy c2VkIGZvciByZWFzb25hYmxlIGV4cGVuc2VzIGluY3VycmVkIGluICBmdWxmaWxsaW5nICBp dHMKcmVzcG9uc2liaWxpdGllcyAgdW5kZXIgIHRoaXMgc2VjdGlvbiBhbmQgc2hhbGwgYXV0 aG9yaXplIHBheW1lbnQgdG8gdGhlCmF1dGhvcml0eSBvdXQgb2YgbW9uaWVzIGVhcm5lZCBv biBpbnRlcmVzdCBpbiB0aGUgYXJ0cyBjYXBpdGFsIHJldm9sdmluZwpmdW5kIGVzdGFibGlz aGVkIHB1cnN1YW50IHRvIHNlY3Rpb24gbmluZXR5LXNldmVuLXogb2YgdGhlIHN0YXRlIGZp bmFuY2UKbGF3IG9yIGZyb20gYW55IG90aGVyIGZ1bmRzIGFsbG9jYXRlZCBieSBpdCB0byBm dWxmaWxsIHRoZSAgcHVycG9zZXMgIG9mCnRoaXMgIHNlY3Rpb24sICBwcm92aWRlZCwgIGhv d2V2ZXIsICB0aGF0ICBpbiBubyBldmVudCBzaGFsbCB0aGUgY291bmNpbAphdXRob3JpemUg cGF5bWVudCB1bmRlciB0aGlzIHBhcmFncmFwaCBhbiBhbW91bnQgZ3JlYXRlciB0aGFuIHRo ZSBzdW0gb2YKZmlmdHkgdGhvdXNhbmQgZG9sbGFycyBpbiBhbnkgc3RhdGUgZmlzY2FsIHll YXIuCiAgNy4gSW4gYXBwcm92aW5nIGFueSBhcHBsaWNhdGlvbiwgdGhlIGNvdW5jaWwgc2hh bGwgY29uc2lkZXI6CiAgKGEpIHRoZSBjb25kaXRpb24gb2YgdGhlIGV4aXN0aW5nIGJ1aWxk aW5nOwogIChiKSB0aGUgcmVjb21tZW5kYXRpb24gYW5kIGFuYWx5c2lzIG9mIG5lZWQgYXMg cHJvdmlkZWQgaW4gdGhlICBmZWFzaS0KYmlsaXR5IHN0dWR5IG9yIG90aGVyIGRvY3VtZW50 YXRpb24gcmVxdWlyZWQgYnkgdGhlIGNvdW5jaWw7CiAgKGMpIHRoZSBhdmFpbGFibGUgcmVz b3VyY2VzIGZvciB0aGUgcHJvamVjdDsKICAoZCkgIHRoZSAgbmF0dXJlICBvZiB0aGUgYWN0 aXZpdGllcyBwcm9wb3NlZCB0byB0YWtlIHBsYWNlIGF0IHRoZSBzaXRlCndoaWNoIGlzIHRo ZSBzdWJqZWN0IG9mIHRoZSBhcHBsaWNhdGlvbjsKICAoZSkgc3VjaCBvdGhlciBjcml0ZXJp YSBhcyB0aGUgY291bmNpbCBtYXkgZGVlbSBhcHByb3ByaWF0ZSBvciAgbmVjZXMtCnNhcnkg IHRvIHRoZSBhcHByb3ZhbCBvZiBhbnkgYXBwbGljYXRpb24sIGluY2x1ZGluZyB0aGUgZmlz Y2FsIHJlc291cmNlcwpvZiB0aGUgYXBwbGljYW50LCB3aGljaCBzaGFsbCBiZSBkZXRlcm1p bmVkIGFmdGVyIHJldmlldyBvZiBhbnkgIG9uZSAgb2YKdGhlIHByaW9yIHllYXJgcyByZXBv cnQgb2YgdGhlIGZvbGxvd2luZzogYSBmaW5hbmNpYWwgc3RhdGVtZW50IHByZXBhcmVkCmJ5 ICBhbiAgaW5kZXBlbmRlbnQgIGNlcnRpZmllZCBwdWJsaWMgYWNjb3VudGFudDsgYW4gYW5u dWFsIHN0YXRlbWVudCBvZgppbmNvbWUgYW5kIGV4cGVuc2VzOyBhIGZlZGVyYWwgdGF4ICBy ZXR1cm4gIHdpdGggIGFsbCAgaXRlbWl6YXRpb25zICBhbmQKYnJlYWtkb3duczsgb3IgYSBs b25nIGZvcm0gcmVwb3J0IGZyb20gdGhlIG9mZmljZSBvZiBjaGFyaXRpZXMgcmVnaXN0cmEt CnRpb247IGFuZAogIChmKSAgd2hlcmUgIGFwcHJvcHJpYXRlIGFuZCBpbiBrZWVwaW5nIHdp dGggdGhlIHByb3Zpc2lvbnMgb2Ygc3ViZGl2aS0Kc2lvbiBmaWZ0ZWVuIG9mIHRoaXMgc2Vj dGlvbiwgdGhlIG5lZWRzIG9mIHJ1cmFsIGFuZCAgbWlub3JpdHkgIGNvbW11bmktCnRpZXMu CiAgOC4gIEFueSAgb3RoZXIgIHByb3Zpc2lvbiAgb2YgIGxhdyAgb3Igb2YgdGhpcyBzZWN0 aW9uIHRvIHRoZSBjb250cmFyeQpub3R3aXRoc3RhbmRpbmcsIHN0YXRlIGZpbmFuY2lhbCBh c3Npc3RhbmNlIHNoYWxsIG5vdCBiZSBwcm92aWRlZCBwdXJzdS0KYW50IHRvIHRoaXMgc2Vj dGlvbiB1bnRpbCB0aGUgY291bmNpbCBoYXMgKGEpIGNvbnNpZGVyZWQgdGhlIHVzZWZ1bCBs aWZlCm9mIHRoZSBlbGlnaWJsZSBwcm9qZWN0IGFzIHN1Y2ggdGVybSBpcyBkZWZpbmVkIGhl cmVpbjsgIChiKSAgZGV0ZXJtaW5lZAp0aGUgIGdyYW50LCAgbG9hbiBvciBjb21iaW5lZCBh bW91bnQgb2Ygc3RhdGUgZmluYW5jaWFsIGFzc2lzdGFuY2UgdG8gYmUKcHJvdmlkZWQ7IGFu ZCAoYykgZXhlY3V0ZWQgYW4gYWdyZWVtZW50IHRvIHByb3ZpZGUgc3VjaCBhc3Npc3RhbmNl LiBTdWNoCmFncmVlbWVudCBzaGFsbCBiZSBleGVjdXRlZCBieSB0aGUgY291bmNpbCBhbmQg dGhlIG9yZ2FuaXphdGlvbiAgb3IsICBpbgp0aGUgIGNhc2UgIG9mIGEgbGVhc2Vob2xkIG9y IGxlYXNlLXB1cmNoYXNlIGFncmVlbWVudCwgd2l0aCB0aGUgZWxpZ2libGUKbm9ucHJvZml0 IGN1bHR1cmFsIG9yZ2FuaXphdGlvbiBhbmQsIHdoZXJlIGFwcHJvcHJpYXRlLCB0aGUgb3du ZXIgb2YgdGhlCnByb3BlcnR5IGZvciB3aGljaCB0aGUgZWxpZ2libGUgcHJvamVjdCAgaGFz ICBiZWVuICBwcm9wb3NlZC4gIEFueSAgc3VjaAphZ3JlZW1lbnQgIHNoYWxsICBwcm92aWRl ICBmb3IgIHRoZSBjcmVhdGlvbiBvZiBhIGxpZW4gb3Igb3RoZXIgc2VjdXJpdHkKaW50ZXJl c3Qgb3Igc3VjaCBvdGhlciBndWFyYW50ZWUgYXMgc2hhbGwgYmUgc2F0aXNmYWN0b3J5IHRv IHRoZSBjb3VuY2lsCnRvIGFzc3VyZSByZXBheW1lbnQgb2YgZmluYW5jaWFsIGFzc2lzdGFu Y2UgcHJvdmlkZWQgdW5kZXIgdGhpcyBzZWN0aW9uLgpTdWNoIGFncmVlbWVudCBzaGFsbCBh c3N1cmUgdGhhdCB0aGUgbGVuZ3RoIG9mIGEgbG9hbiBzaGFsbCAgbm90ICBleGNlZWQKdGhl ICB1c2VmdWwgIGxpZmUgIG9mIHRoZSBwcm9qZWN0IGFuZCBzaGFsbCBpbmNsdWRlLCBpbiBh ZGRpdGlvbiB0byBzdWNoCm90aGVyIHByb3Zpc2lvbnMgYXMgdGhlIGNvdW5jaWwgbWF5IHJl cXVpcmUsIHRoZSBmb2xsb3dpbmc6CiAgKGkpIHRoZSBhbW91bnQgb2YgZmluYW5jaWFsIGFz c2lzdGFuY2UsIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyAgdXBvbgp3aGljaCAgaXQgIGlz ICBwcm92aWRlZCwgdGhlIHVzZWZ1bCBsaWZlIG9mIHRoZSBlbGlnaWJsZSBwcm9qZWN0IGFu ZCB0aGUKbWV0aG9kIG9mIGRlcHJlY2lhdGluZyB0aGUgZWxpZ2libGUgcHJvamVjdCBmb3Ig cHVycG9zZXMgb2YgIHRoZSAgcmVwYXktCm1lbnQgcHJvdmlzaW9ucyBvZiB0aGUgYWdyZWVt ZW50OwogIChpaSkgYSByZXF1aXJlbWVudCB0aGF0IHRoZSBvcmdhbml6YXRpb24gcHJvdmlk ZSB0aGUgY291bmNpbCB3aXRoIHN1Y2gKcHJpb3IgIG5vdGljZSAgYXMgdGhlIGNvdW5jaWwg bWF5IHJlcXVpcmUgb2YgYSBzYWxlIG9yIG90aGVyIGRpc3Bvc2l0aW9uCm9mIHRoZSBzdWJq ZWN0IHByb3BlcnR5IG9yIG9mIGEgdGVybWluYXRpb24gb2YgdGhlIGxlYXNlICBwcmlvciAg dG8gIHRoZQpleHBpcmF0aW9uIG9mIHN1Y2ggdXNlZnVsIGxpZmUgb3IgdGhlIGV4cGlyYXRp b24gb2YgdGhlIHRlcm0gb2YgYW55IGxvYW4KbWFkZSBoZXJldW5kZXI7CiAgKGlpaSkgIGEg cmVxdWlyZW1lbnQgdGhhdCwgaW4gdGhlIGV2ZW50IG9mIHN1Y2ggc2FsZSBvciBkaXNwb3Np dGlvbiBvZgp0aGUgcHJvcGVydHkgb3IgdGVybWluYXRpb24gb2YgdGhlIGxlYXNlIHByaW9y IHRvIHRoZSBleHBpcmF0aW9uIG9mICB0aGUKdXNlZnVsICBsaWZlICBvciAgdGhlIGV4cGly YXRpb24gb2YgdGhlIHRlcm0gb2YgYW55IGxvYW4gbWFkZSBoZXJldW5kZXIsCnRoZSBvd25l ciBvZiB0aGUgc3ViamVjdCBwcm9wZXJ0eSBvciBzdWNoIG90aGVyIGd1YXJhbnRvciBzaGFs bCByZXBheSB0bwp0aGUgY291bmNpbCBhbiBhbW91bnQgZXF1YWwgdG8gdGhhdCBwb3J0aW9u IG9mIHRoZSBhcHByb3ZlZCBjb3N0cyBvZiB0aGUKcHJvamVjdCAgZmluYW5jZWQgIGJ5ICBm aW5hbmNpYWwgYXNzaXN0YW5jZSBwcm92aWRlZCB1bmRlciB0aGlzIHNlY3Rpb24sCmxlc3Mg YWNjdW11bGF0ZWQgZGVwcmVjaWF0aW9uLCBhcyBvZiB0aGUgZGF0ZSBvZiBzdWNoIHNhbGUs ICBkaXNwb3NpdGlvbgpvciAgdGVybWluYXRpb24sICBvciwgIGluIHRoZSBjYXNlIG9mIGEg bG9hbiBvciBhIGNvbWJpbmF0aW9uIG9mIGEgZ3JhbnQKYW5kIGxvYW4sIHJlcGF5IGFuIGFt b3VudCBlcXVhbCB0byB0aGUgdW5wYWlkIGJhbGFuY2Ugb2YgdGhlIGxvYW47CiAgKGl2KSBh IHJlcXVpcmVtZW50IHRoYXQsIHVwb24gYSBmaW5kaW5nIGJ5IHRoZSBjb3VuY2lsIHRoYXQg YSAgcHJvamVjdApoYXMgbm90IGJlZW4gY29tcGxldGVkLCBvciBoYXMgbm90IGJlZW4gY29t cGxldGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUKdGVybXMgIG9mICB0aGUgIGFncmVlbWVu dCwgIHRoZSAgZnVsbCBhbW91bnQgb2YgdGhlIGZpbmFuY2lhbCBhc3Npc3RhbmNlCnByb3Zp ZGVkIGluIHRoZSBmb3JtIG9mIGEgZ3JhbnQsIG9yIHRoZSBvdXRzdGFuZGluZyBiYWxhbmNl IG9mIGZpbmFuY2lhbAphc3Npc3RhbmNlIHByb3ZpZGVkIGluIHRoZSBmb3JtIG9mIGEgbG9h biBzaGFsbCBiZSByZXBhaWQgdG8gdGhlIGNvdW5jaWwKYnkgdGhlIGd1YXJhbnRvciwgcHJv dmlkZWQgdGhhdCB1cG9uIGEgc2hvd2luZyAgb2YgIGdvb2QgIGNhdXNlICBieSAgdGhlCm9y Z2FuaXphdGlvbiAgdGhlICBjb3VuY2lsIHNoYWxsIGdyYW50IGFuIGV4dGVuc2lvbiBvZiB1 cCB0byBuaW5ldHkgZGF5cwpmcm9tIHRoZSBkYXRlIG9mIHN1Y2ggZmluZGluZyB0byBhbGxv dyB0aGUgb3JnYW5pemF0aW9uIHRvIGNvbXBsZXRlICB0aGUKcHJvamVjdCAgaW4gIGFjY29y ZGFuY2UgIHdpdGggIHRoZSAgdGVybXMgIG9mIHRoZSBhZ3JlZW1lbnQsIGFuZCBmdXJ0aGVy CnByb3ZpZGVkIHRoYXQgdGhlIGNvdW5jaWwgc2hhbGwgcHJvdmlkZSBubyBtb3JlIHRoYW4g dHdvIHN1Y2ggZXh0ZW5zaW9ucwpmcm9tIHRoZSBkYXRlIG9mIHN1Y2ggZmluZGluZyB0byBh bGxvdyB0aGUgb3JnYW5pemF0aW9uIHRvIGNvbXBsZXRlICB0aGUKcHJvamVjdCBpbiBhY2Nv cmRhbmNlIHdpdGggdGhlIHRlcm1zIG9mIHRoZSBhZ3JlZW1lbnQuCiAgOS4gIEluIGFueSBj YXNlIGluIHdoaWNoIHN0YXRlIGZpbmFuY2lhbCBhc3Npc3RhbmNlIGlzIHByb3ZpZGVkIGlu IHRoZQpmb3JtICBvZiAgYSAgbG9hbiBvciBhcyBhIGNvbWJpbmF0aW9uIG9mIGEgZ3JhbnQg YW5kIGxvYW4sIHRoZSBmb2xsb3dpbmcKc2hhbGwgYWRkaXRpb25hbGx5IGJlIGluY2x1ZGVk IGluIHRoZSBhZ3JlZW1lbnQ6CiAgKGkpIGEgcmVxdWlyZW1lbnQgdGhhdCB0aGUgb3JnYW5p emF0aW9uIHNoYWxsIG9idGFpbiwgaW4gIGFkZGl0aW9uICB0bwpzdWNoICBvdGhlciAgc2Vj dXJpdHkgIGFzICBtYXkgIGJlICByZXF1aXJlZCAgYnkgdGhlIGNvdW5jaWwgb3IgYnkgb3Ro ZXIKcHJvdmlzaW9ucyBvZiBsYXcsIGFuIHVuZGVydGFraW5nIG9yIHN1cmV0eSAgYm9uZCAg ZnJvbSAgYW55ICBwZXJzb24gIG9yCmVudGl0eSAgd2hpY2ggIGhhcyAgY29udHJhY3RlZCB0 byBwZXJmb3JtIHdvcmsgb24gYW4gYXBwcm92ZWQgcHJvamVjdCB0bwphc3N1cmUgdGhlIGZh aXRoZnVsIHBlcmZvcm1hbmNlIG9mIHN1Y2ggcHJvamVjdCBhbmQvb3IgIGEgIGxhYm9yICBh bmQvb3IKbWF0ZXJpYWwgYm9uZCBhcyBtYXkgYmUgYXBwcm9wcmlhdGU7IGFuZAogIChpaSkg IGEgcmVxdWlyZW1lbnQgdGhhdCB0aGUgYXV0aG9yaXR5IHNoYWxsIHByb3ZpZGUgc3VjaCBj b25zdHJ1Y3Rpb24KbWFuYWdlbWVudCBzZXJ2aWNlcyBhcyBoYXZlIGJlZW4gc3BlY2lmaWVk IGFuZCAgYWdyZWVkICB0byAgcHVyc3VhbnQgIHRvCnBhcmFncmFwaHMgKGQpIGFuZCAoZSkg b2Ygc3ViZGl2aXNpb24gc2l4IG9mIHRoaXMgc2VjdGlvbi4KICAxMC4gQW55IGxpZW4sIHNl Y3VyaXR5IGludGVyZXN0IG9yIGd1YXJhbnRlZSBlc3RhYmxpc2hlZCBjcmVhdGVkIHVuZGVy CnRoZSAgcHJvdmlzaW9ucyBvZiBzdWJkaXZpc2lvbiBlaWdodCBvciBuaW5lIG9mIHRoaXMg c2VjdGlvbiBzaGFsbCBiZSBpbgphZGRpdGlvbiB0byBhbnkgb3RoZXIgcmlnaHRzIG9yIG9i bGlnYXRpb25zIG9mICB0aGUgIGNvdW5jaWwgIHVuZGVyICB0aGUKcHJvdmlzaW9ucyBvZiB0 aGUgbGllbiBsYXcgb3IgYW55IG90aGVyIGxhdy4KICAxMS4gICAgVGhlICBjb3VuY2lsICBz aGFsbCBjYXVzZSB0byBiZSBmaWxlZCBhbmQgdG8gYmUgcmVjb3JkZWQgaW4gdGhlCm9mZmlj ZSBvZiB0aGUgY291bnR5IGNsZXJrIGluIHRoZSBjb3VudHkgd2hlcmUgdGhlIHN1YmplY3Qg IHByb3BlcnR5ICBpcwpzaXR1YXRlZCAgYW55ICBsaWVuICBvciAgb3RoZXIgIHNlY3VyaXR5 ICBpbnRlcmVzdCBhcyBtYXkgYmUgcmVxdWlyZWQgdG8KYXNzdXJlICByZXBheW1lbnQgIG9m ICBmaW5hbmNpYWwgIGFzc2lzdGFuY2UgIGluICBhY2NvcmRhbmNlICB3aXRoICAgdGhlCnBy b3Zpc2lvbnMgIG9mICB0aGlzICBzZWN0aW9uLiAgVGhlIGRlcGFydG1lbnQgb2YgbGF3IHNo YWxsIHByb3ZpZGUgc3VjaAphc3Npc3RhbmNlIGFzIHRoZSBjb3VuY2lsIG1heSByZXF1aXJl IHRvIGNyZWF0ZSAgYW5kICBwZXJmZWN0ICBhbnkgIHN1Y2gKbGllbnMgb3Igb3RoZXIgc2Vj dXJpdHkgaW50ZXJlc3RzLgogIDEyLiAoYSkgQWxsIGNvbnRyYWN0cyBmb3IgZGVzaWduLCBj b25zdHJ1Y3Rpb24sIHNlcnZpY2VzIGFuZCBtYXRlcmlhbHMKcHVyc3VhbnQgdG8gdGhpcyBz ZWN0aW9uIG9mIHdoYXRldmVyIG5hdHVyZSBhbmQgYWxsIGRvY3VtZW50cyBzb2xpY2l0aW5n CmJpZHMgIG9yICBwcm9wb3NhbHMgIHRoZXJlZm9yICBzaGFsbCAgY29udGFpbiAgb3IgIG1h a2UgcmVmZXJlbmNlIHRvIHRoZQpmb2xsb3dpbmcgcHJvdmlzaW9uczoKICAoaSkgVGhhdCB0 aGUgY29udHJhY3RvciB3aWxsIG5vdCAgZGlzY3JpbWluYXRlICBhZ2FpbnN0ICBlbXBsb3ll ZXMgIG9yCmFwcGxpY2FudHMgIGZvciAgZW1wbG95bWVudCAgYmVjYXVzZSAgb2YgIHJhY2Us ICBjcmVlZCwgIGNvbG9yLCBuYXRpb25hbApvcmlnaW4sIHNleCwgYWdlLCBkaXNhYmlsaXR5 LCBvciBtYXJpdGFsIHN0YXR1cywgYW5kIHdpbGwgIHVuZGVydGFrZSAgb3IKY29udGludWUg ZXhpc3RpbmcgcHJvZ3JhbXMgb2YgYWZmaXJtYXRpdmUgYWN0aW9uIHRvIGVuc3VyZSB0aGF0 IG1pbm9yaXR5Cmdyb3VwIHBlcnNvbnMgYW5kIHdvbWVuIGFyZSBhZmZvcmRlZCBlcXVhbCBv cHBvcnR1bml0eSB3aXRob3V0IGRpc2NyaW1pLQpuYXRpb24uIFN1Y2ggcHJvZ3JhbXMgc2hh bGwgaW5jbHVkZSwgYnV0IG5vdCBiZSBsaW1pdGVkIHRvLCByZWNydWl0bWVudCwKZW1wbG95 bWVudCwgIGpvYiAgYXNzaWdubWVudCwgIHByb21vdGlvbiwgdXBncmFkaW5nLCBkZW1vdGlv biwgdHJhbnNmZXIsCmxheW9mZiwgdGVybWluYXRpb24sIHJhdGVzIG9mIHBheSBvciBvdGhl ciBmb3JtcyAgb2YgIGNvbXBlbnNhdGlvbiwgIGFuZApzZWxlY3Rpb24gIGZvciAgdHJhaW5p bmcgIGFuZCAgcmV0cmFpbmluZywgIGluY2x1ZGluZyBhcHByZW50aWNlc2hpcCBhbmQKb24t dGhlLWpvYiB0cmFpbmluZzsKICAoaWkpIFRoYXQgdGhlIGNvbnRyYWN0b3Igc2hhbGwgcmVx dWVzdCBhbnkgIGVtcGxveW1lbnQgIGFnZW5jeSwgIGxhYm9yCnVuaW9uLCAgb3IgIGF1dGhv cml6ZWQgIHJlcHJlc2VudGF0aXZlICBvZiAgd29ya2VycyAgd2l0aCB3aGljaCBpdCBoYXMg YQpjb2xsZWN0aXZlIGJhcmdhaW5pbmcgb3Igb3RoZXIgYWdyZWVtZW50IG9yIHVuZGVyc3Rh bmRpbmcgYW5kICB3aGljaCAgaXMKaW52b2x2ZWQgIGluIHRoZSBwZXJmb3JtYW5jZSBvZiB0 aGUgY29udHJhY3QgdG8gZnVybmlzaCBhIHdyaXR0ZW4gc3RhdGUtCm1lbnQgdGhhdCBpdCB3 aWxsICBub3QgIGRpc2NyaW1pbmF0ZSAgYmVjYXVzZSAgb2YgIHJhY2UsICBjcmVlZCwgIGNv bG9yLApuYXRpb25hbCAgb3JpZ2luLCAgc2V4LCAgYWdlLCAgZGlzYWJpbGl0eSAgb3IgbWFy aXRhbCBzdGF0dXMgYW5kIGl0IHdpbGwKY29vcGVyYXRlIGluIHRoZSBpbXBsZW1lbnRhdGlv biBvZiB0aGUgIGNvbnRyYWN0b3JgcyAgb2JsaWdhdGlvbnMgIGhlcmUtCnVuZGVyOwogIChp aWkpICBUaGF0ICB0aGUgY29udHJhY3RvciB3aWxsIHN0YXRlLCBpbiBhbnkgc29saWNpdGF0 aW9ucyBvciBhZHZlci0KdGlzZW1lbnRzIGZvciBlbXBsb3llZXMgcGxhY2VkIGJ5IG9yIG9u IGJlaGFsZiBvZiB0aGUgY29udHJhY3RvciBpbiAgdGhlCnBlcmZvcm1hbmNlICBvZiAgdGhl ICBjb250cmFjdCwgIHRoYXQgIGFsbCAgcXVhbGlmaWVkIGFwcGxpY2FudHMgd2lsbCBiZQph ZmZvcmRlZCBlcXVhbCBlbXBsb3ltZW50IG9wcG9ydHVuaXR5IHdpdGhvdXQgZGlzY3JpbWlu YXRpb24gYmVjYXVzZSAgb2YKcmFjZSwgIGNyZWVkLCAgY29sb3IsICBuYXRpb25hbCAgb3Jp Z2luLCBzZXgsIGFnZSwgZGlzYWJpbGl0eSBvciBtYXJpdGFsCnN0YXR1czsKICAoaXYpIFRo YXQgdGhlIGNvbnRyYWN0b3Igd2lsbCBpbmNsdWRlIHRoZSBwcm92aXNpb25zIG9mICBzdWJw YXJhZ3JhcGhzCihpKSAgdGhyb3VnaCAgKGlpaSkgIG9mICB0aGlzIHBhcmFncmFwaCBpbiBl dmVyeSBzdWJjb250cmFjdCBvciBwdXJjaGFzZQpvcmRlciBpbiBzdWNoIGEgbWFubmVyIHRo YXQgc3VjaCBwcm92aXNpb25zIHdpbGwgYmUgIGJpbmRpbmcgIHVwb24gIGVhY2gKc3ViY29u dHJhY3RvciAgb3IgIHZlbmRvciBhcyB0byBpdHMgd29yayBpbiBjb25uZWN0aW9uIHdpdGgg dGhlIGNvbnRyYWN0CndpdGggdGhlIGFnZW5jeS4KICAoYikgVGhlIGNvdW5jaWwgc2hhbGwg ZXN0YWJsaXNoIGFwcHJvcHJpYXRlIG1lYXN1cmVzLCAgcHJvY2VkdXJlcyAgYW5kCmd1aWRl bGluZXMgdG8gZW5zdXJlIHRoYXQgY29udHJhY3RvcnMgYW5kIHN1YmNvbnRyYWN0b3JzIHVu ZGVydGFrZSBtZWFuLQppbmdmdWwgIHByb2dyYW1zICB0byBlbXBsb3kgYW5kIHByb21vdGUg cXVhbGlmaWVkIG1pbm9yaXR5IGdyb3VwIG1lbWJlcnMKYW5kIHdvbWVuLiBTdWNoIHByb2Nl ZHVyZXMgbWF5IHJlcXVpcmUgYWZ0ZXIgbm90aWNlIGluIGEgIGJpZCAgc29saWNpdGEtCnRp b24sICB0aGUgIHN1Ym1pc3Npb24gIG9mICBhICBtaW5vcml0eSAgYW5kIHdvbWVuIHdvcmtm b3JjZSB1dGlsaXphdGlvbgpwcm9ncmFtIHByaW9yIHRvIHRoZSBhd2FyZCBvZiBhbnkgY29u dHJhY3QsIG9yIGF0IGFueSAgdGltZSAgdGhlcmVhZnRlciwKYW5kICBtYXkgIHJlcXVpcmUg IHRoZSAgc3VibWlzc2lvbiBvZiBjb21wbGlhbmNlIHJlcG9ydHMgcmVsYXRpbmcgdG8gdGhl Cm9wZXJhdGlvbiAgYW5kICBpbXBsZW1lbnRhdGlvbiAgb2YgIGFueSAgd29ya2ZvcmNlICB1 dGlsaXphdGlvbiAgcHJvZ3JhbQphZG9wdGVkICBoZXJldW5kZXIuICBUaGUgIGNvdW5jaWwg bWF5IHRha2UgYXBwcm9wcmlhdGUgYWN0aW9uLCBpbmNsdWRpbmcKdGhlIGltcG9zaXRpb25z ICBvZiAgc2FuY3Rpb25zICBmb3IgIG5vbi1jb21wbGlhbmNlICB0byAgZWZmZWN0dWF0ZSAg dGhlCnByb3Zpc2lvbnMgIG9mICB0aGlzICBzdWJkaXZpc2lvbiAgYW5kIHRoZSBtb25pdG9y aW5nIG9mIGNvbXBsaWFuY2Ugd2l0aAp0aGlzIHN1YmRpdmlzaW9uLgogIChjKSAoaSkgSW4g dGhlIHBlcmZvcm1hbmNlICBvZiAgcHJvamVjdHMgIHB1cnN1YW50ICB0byAgdGhpcyAgc2Vj dGlvbiwKbWlub3JpdHkgIGFuZCB3b21lbi1vd25lZCBidXNpbmVzcyBlbnRlcnByaXNlcyBz aGFsbCBiZSBnaXZlbiB0aGUgb3Bwb3ItCnR1bml0eSBmb3IgbWVhbmluZ2Z1bCBwYXJ0aWNp cGF0aW9uLiAgICBGb3IgIHB1cnBvc2VzICBoZXJlb2YsICBtaW5vcml0eQpidXNpbmVzcyBl bnRlcnByaXNlIHNoYWxsIG1lYW4gYW55IGJ1c2luZXNzIGVudGVycHJpc2Ugd2hpY2ggaXMg YXQgbGVhc3QKZmlmdHktb25lICBwZXIgY2VudHVtIG93bmVkIGJ5LCBvciBpbiB0aGUgY2Fz ZSBvZiBhIHB1YmxpY2x5IG93bmVkIGJ1c2ktCm5lc3MsIGF0IGxlYXN0IGZpZnR5LW9uZSBw ZXIgY2VudHVtIG9mIHRoZSBzdG9jayBvciBvdGhlciB2b3RpbmcgIGludGVyLQplc3QgIGlz ICBvd25lZCAgYnkgIGNpdGl6ZW5zIG9yIHBlcm1hbmVudCByZXNpZGVudCBhbGllbnMgd2hv IGFyZSBCbGFjaywKSGlzcGFuaWMsIEFzaWFuLCBBbWVyaWNhbiBJbmRpYW4sIFBhY2lmaWMg SXNsYW5kZXIsIG9yICBBbGFza2FuICBuYXRpdmUsCmFuZCAgc3VjaCBvd25lcnNoaXAgaW50 ZXJlc3QgaXMgcmVhbCwgc3Vic3RhbnRpYWwgYW5kIGNvbnRpbnVpbmcgYW5kIGhhcwp0aGUg YXV0aG9yaXR5IHRvIGluZGVwZW5kZW50bHkgY29udHJvbCB0aGUgZGF5IHRvIGRheSBidXNp bmVzcyBkZWNpc2lvbnMKb2YgdGhlIGVudGl0eSBmb3IgYXQgbGVhc3Qgb25lIHllYXI7IGFu ZCB3b21lbi1vd25lZCBidXNpbmVzcyBlbnRlcnByaXNlCnNoYWxsIG1lYW4gYW55IGJ1c2lu ZXNzIGVudGVycHJpc2UgIHdoaWNoICBpcyAgYXQgIGxlYXN0ICBmaWZ0eS1vbmUgIHBlcgpj ZW50dW0gIG93bmVkICBieSwgb3IgaW4gdGhlIGNhc2Ugb2YgYSBwdWJsaWNseSBvd25lZCBi dXNpbmVzcywgYXQgbGVhc3QKZmlmdHktb25lIHBlciBjZW50dW0gb2YgdGhlIHN0b2NrIHRv IG90aGVyIHZvdGluZyBpbnRlcmVzdHMgb2Ygd2hpY2ggIGlzCm93bmVkICBieSAgY2l0aXpl bnMgb3IgcGVybWFuZW50IHJlc2lkZW50IGFsaWVucyB3aG8gYXJlIHdvbWVuLCBhbmQgc3Vj aApvd25lcnNoaXAgaW50ZXJlc3QgaXMgcmVhbCwgIHN1YnN0YW50aWFsICBhbmQgIGNvbnRp bnVpbmcgIGFuZCAgaGFzICB0aGUKYXV0aG9yaXR5ICB0byBpbmRlcGVuZGVudGx5IGNvbnRy b2wgdGhlIGRheSB0byBkYXkgYnVzaW5lc3MgZGVjaXNpb25zIG9mCnRoZSBlbnRpdHkgZm9y IGF0IGxlYXN0IG9uZSB5ZWFyLgogIFRoZSBwcm92aXNpb25zIG9mIHRoaXMgc3ViZGl2aXNp b24gc2hhbGwgbm90IGJlIGNvbnN0cnVlZCB0byBsaW1pdCB0aGUKYWJpbGl0eSBvZiBhbnkg bWlub3JpdHkgYnVzaW5lc3MgZW50ZXJwcmlzZSB0byBiaWQgb24gYW55IGNvbnRyYWN0Lgog IChpaSkgSW4gb3JkZXIgdG8gaW1wbGVtZW50IHRoZSByZXF1aXJlbWVudHMgIGFuZCAgb2Jq ZWN0aXZlcyAgb2YgIHRoaXMKc2VjdGlvbiwgIHRoZSAgY291bmNpbCAgc2hhbGwgcmVxdWVz dCwgYXMgYXBwcm9wcmlhdGUsIHRoZSBhc3Npc3RhbmNlIG9mCm90aGVyICBzdGF0ZSAgYWdl bmNpZXMgIHRvICBtb25pdG9yICB0aGUgIGNvbnRyYWN0b3JzYCAgY29tcGxpYW5jZSAgd2l0 aApwcm92aXNpb25zICBoZXJlb2YsICBwcm92aWRlIGFzc2lzdGFuY2UgaW4gb2J0YWluaW5n IGNvbXBldGluZyBxdWFsaWZpZWQKbWlub3JpdHkgYW5kICB3b21lbi1vd25lZCAgYnVzaW5l c3MgIGVudGVycHJpc2VzICB0byAgcGVyZm9ybSAgY29udHJhY3RzCnByb3Bvc2VkICB0byAg YmUgYXdhcmRlZCwgYW5kIHRha2Ugb3RoZXIgYXBwcm9wcmlhdGUgbWVhc3VyZXMgdG8gaW1w cm92ZQp0aGUgYWNjZXNzIG9mIG1pbm9yaXR5IGFuZCB3b21lbi1vd25lZCAgYnVzaW5lc3Mg IGVudGVycHJpc2VzICB0byAgdGhlc2UKY29udHJhY3RzLgogIDEzLiAgSW4gIGFwcHJvdmlu ZyAgYXBwbGljYXRpb25zIHB1cnN1YW50IHRvIHRoaXMgc2VjdGlvbiwgdGhlIGNvdW5jaWwK c2hhbGwgc2VlayB0byBpbnN1cmUgdGhhdDoKICAoYSkgIHNpeHR5ICBwZXJjZW50IG9mIHRo ZSBmdW5kcyBhcHByb3ByaWF0ZWQgcHVyc3VhbnQgdG8gdGhpcyBzZWN0aW9uCmFuZCBtYWRl IGF2YWlsYWJsZSBmb3IgZ3JhbnRzLCBhbmQgIHNpeHR5ICBwZXJjZW50ICBvZiAgdGhlICBm dW5kcyAgbWFkZQphdmFpbGFibGUgIGZvciAgbG9hbnMgIHNoYWxsICBiZSAgbWFkZSAgYXZh aWxhYmxlIGluIHN1Y2ggYSBtYW5uZXIgYXMgdG8KaW5zdXJlIHRoYXQgdGhlIHJhdGlvIG9m IHRoZSBhbW91bnQgcmVjZWl2ZWQgd2l0aGluIGVhY2ggY291bnR5ICB0byAgdGhlCndob2xl ICBvZiB0aGUgZmluYW5jaWFsIGFzc2lzdGFuY2UgbWFkZSBhdmFpbGFibGUgcHVyc3VhbnQg dG8gdGhpcyBwYXJhLQpncmFwaCBpcyBubyBncmVhdGVyIHRoYW4gdGhlIHJhdGlvIG9mIHRo ZSBwb3B1bGF0aW9uIG9mIHN1Y2ggIGNvdW50eSAgdG8KdGhlIHBvcHVsYXRpb24gb2YgdGhl IHN0YXRlLCBwcm92aWRlZDsKICAoYikgIG5vdHdpdGhzdGFuZGluZyAgdGhlIHByb3Zpc2lv bnMgb2YgcGFyYWdyYXBoIChhKSBvZiB0aGlzIHN1YmRpdmktCnNpb24gdGhlIGNvdW5jaWwg c2hhbGwgbWFrZSBzdWNoIGFkZGl0aW9uYWwgYWxsb2NhdGlvbnMgIGZvciAgcnVyYWwgIGFu ZAptaW5vcml0eSBjb21tdW5pdGllcyBhcyB0byBpbnN1cmUgdGhhdCB0aGUgbmVlZHMgb2Yg Y3VsdHVyYWwgZGV2ZWxvcG1lbnQKYXJlIG1ldDsgYW5kCiAgKGMpICBhbnkgZnVuZHMgbWFk ZSBhdmFpbGFibGUgcHVyc3VhbnQgdG8gcGFyYWdyYXBoIChhKSBvciAoYikgb2YgdGhpcwpz dWJkaXZpc2lvbiB3aGljaCwgYnkgRGVjZW1iZXIgdGhpcnR5LWZpcnN0IG9mIHRoZSB5ZWFy ICBpbiAgd2hpY2ggIHRoaXMKc2VjdGlvbiAgc2hhbGwgIGhhdmUgYmVjb21lIGEgbGF3LCBh bmQgT2N0b2JlciB0aGlydHktZmlyc3Qgb2YgZWFjaCB5ZWFyCnRoZXJlYWZ0ZXIgYXJlIGRl Y2xpbmVkIGJ5IG9yIHdoaWNoIGNhbm5vdCBiZSB1c2VkIGJ5IHN1Y2ggb3JnYW5pemF0aW9u cwp3aXRoaW4gc3VjaCBjb3VudGllcywgYW5kL29yIHN1Y2ggY29tbXVuaXRpZXMsIGFzIHN1 Y2ggc2hhbGwgIGJlICBkZXRlci0KbWluZWQgIGJ5IHRoZSBjb3VuY2lsLCBzaGFsbCBiZSBt YWRlIGF2YWlsYWJsZSB0byBvdGhlciBlbGlnaWJsZSBub25wcm8tCmZpdCBjdWx0dXJhbCBv cmdhbml6YXRpb25zIGZvciBlbGlnaWJsZSBwcm9qZWN0cy4KICAxNC4gQW55IG90aGVyIHBy b3Zpc2lvbiBvZiB0aGlzIHNlY3Rpb24gb3Igb2YgYW55ICBvdGhlciAgbGF3ICB0byAgdGhl CmNvbnRyYXJ5ICBub3R3aXRoc3RhbmRpbmcsIHRoZSBjb3VuY2lsIHNoYWxsIHByb3ZpZGUg YSByZWFzb25hYmxlIGFtb3VudApub3QgZXhjZWVkaW5nIHNldmVuIGFuZCAgb25lLWhhbGYg IHBlcmNlbnQgIG9mICB0aGUgIGZ1bmRzICBhcHByb3ByaWF0ZWQKcHVyc3VhbnQgIHRvICB0 aGlzIHNlY3Rpb24gdG8gb3JnYW5pemF0aW9ucyBsb2NhdGVkIGluIHJ1cmFsIG9yIG1pbm9y aXR5CmNvbW11bml0aWVzLCBhcyBzdWNoIHNoYWxsIGJlIGRldGVybWluZWQgYnkgdGhlIGNv dW5jaWwsIHRvIG9idGFpbiB0ZWNoLQpuaWNhbCBhbmQvb3IgZmluYW5jaWFsIGFzc2lzdGFu Y2UgbmVjZXNzYXJ5IHRvIGJyaW5nIGEgcHJvamVjdCB0byAgZnJ1aS0KdGlvbiwgIHByb3Zp ZGVkLCAgaG93ZXZlciAgdGhhdCB0aGlzIHN1YmRpdmlzaW9uIHNoYWxsIG9ubHkgYmUgZWZm ZWN0aXZlCnVudGlsIE1hcmNoIHRoaXJ0eS1maXJzdCwgbmluZXRlZW4gaHVuZHJlZCBlaWdo dHktbmluZS4KICAxNS4gVGhlIGNvdW5jaWwgc2hhbGwgIGVzdGFibGlzaCAgYSAgd3JpdHRl biAgcG9saWN5ICByZWNvZ25pemluZyAgdGhlCmltcG9ydGFuY2UgIG9mICBhbmQgIG1ha2lu ZyBwcm92aXNpb24gdG8gZnVydGhlciBjdWx0dXJhbCBkZXZlbG9wbWVudCBpbgpydXJhbCBh bmQgbWlub3JpdHkgY29tbXVuaXRpZXMsIGFzIHN1Y2ggc2hhbGwgYmUgZGV0ZXJtaW5lZCBi eSB0aGUgY291bi0KY2lsLiBDb3BpZXMgb2YgdGhlIGNvdW5jaWwgcG9saWN5IGNvbmNlcm5p bmcgbWlub3JpdHkgYW5kIHJ1cmFsIGN1bHR1cmFsCmRldmVsb3BtZW50IHNoYWxsIGJlIHBy b3ZpZGVkIHRvIHRoZSBzZW5hdGUgIGZpbmFuY2UgIGFuZCAgdGhlICBhc3NlbWJseQp3YXlz IGFuZCBtZWFucyBjb21taXR0ZWVzLgogIDE2LiAgVG8gIGluc3VyZSAgZWZmZWN0aXZlICBl dmFsdWF0aW9uICBvZiBhcHBsaWNhdGlvbnMgbWFkZSB0byBpdCBmb3IKZmluYW5jaWFsIGFz c2lzdGFuY2UgdW5kZXIgdGhpcyBzZWN0aW9uIGF0ICBsZWFzdCAgdGhyZWUgIG9yICBvbmUt Zm91cnRoCndoaWNoZXZlciBpcyBsZXNzIG9mIHRoZSBwZXJzb25zIGRlc2lnbmF0ZWQgYnkg dGhlIGNoYWlybWFuIHRvIHByb3ZpZGUgYQpyZXZpZXcgIG9mICBzdWNoICBhcHBsaWNhdGlv biAgc2hhbGwgYmUgbGljZW5zZWQgcHJvZmVzc2lvbmFsIGVuZ2luZWVycy4KU3VjaCBlbmdp bmVlcnMgc2hhbGwgYmUgY2hvc2VuIGZvciB0aGVpciBleHBlcnRpc2UgIGluICB0aGUgIGRp c2NpcGxpbmVzCmNyaXRpY2FsICB0byB0aGUgZGVzaWduIHByb2Nlc3MgaW5jbHVkaW5nIGJ1 dCBub3QgbGltaXRlZCB0byBzdHJ1Y3R1cmFsLAptZWNoYW5pY2FsIGFuZCBlbGVjdHJpY2Fs IGFuZCBhY291c3RpY2FsLiBUaGUgIHJlY29tbWVuZGF0aW9ucyAgbWFkZSAgYnkKc3VjaCAg ZW5naW5lZXJzICBjb25jZXJuaW5nIGVhY2ggYXBwbGljYXRpb24gc2hhbGwgYmUgY29uc2lk ZXJlZCBzcGVjaWYtCmljYWxseSBhbmQgYXBhcnQgZnJvbSB0aGUgcmV2aWV3cyBvZiBhbnkg IG90aGVyICBwZXJzb25zICBkZXNpZ25hdGVkICB0bwpwcm92aWRlICBhICByZXZpZXcgb2Yg c3VjaCBhcHBsaWNhdGlvbnMsIGFuZCwgYW55IG90aGVyIHByb3Zpc2lvbiBvZiBhbnkKb3Ro ZXIgbGF3IHRvIHRoZSBjb250cmFyeSBub3R3aXRoc3RhbmRpbmcsIHN1Y2ggZW5naW5lZXJz IG1heSBiZSAgZGVzaWctCm5hdGVkICB0byAgY29uZHVjdCBhdWRpdHMgb3IgbWF5IGJlIHJl dGFpbmVkIGFzIGNvbnN1bHRhbnRzIGJ5IHRoZSBjb3VuLQpjaWwuIE5vdGhpbmcgY29udGFp bmVkIGhlcmVpbiBzaGFsbCBwcmV2ZW50IHRoZSBjb3VuY2lsIGZyb20gbWVldGluZyB0aGUK cmVxdWlyZW1lbnRzIG9mIHRoaXMgc3ViZGl2aXNpb24gYnkgcmV0YWluaW5nIGFuIGVuZ2lu ZWVyaW5nIGZpcm0gIGFzICBhCmNvbnN1bHRhbnQuICBOb3RoaW5nICBjb250YWluZWQgIGlu ICB0aGlzIHN1YmRpdmlzaW9uIHNoYWxsIGJlIGRlZW1lZCB0bwphZmZlY3QgcXVvcnVtIHJl cXVpcmVtZW50cyBvZiBhbnkgcmV2aWV3IGdyb3VwIG9yIHBhbmVsICBlc3RhYmxpc2hlZCAg YnkKdGhlICBjaGFpcm1hbiB0byByZXZpZXcgc3VjaCBhcHBsaWNhdGlvbnMsIG9yIHRvIHJl cXVpcmUgdGhlIHByZXNlbmNlIG9mCmFsbCBvZiBzdWNoIGVuZ2luZWVycyBhdCBlYWNoIHN1 Y2ggbWVldGluZyBvZiBlYWNoIHN1Y2ggcmV2aWV3IGdyb3VwICBvcgpwYW5lbC4gIFRoZSAg Y291bmNpbCBzaGFsbCBlc3RhYmxpc2ggYXBwcm9wcmlhdGUgcXVvcnVtIHJlcXVpcmVtZW50 cyBmb3IKdGhpcyBwYW5lbCBvciByZXZpZXcgZ3JvdXAuCiAgMTcuIEluIHRoZSBldmVudCBh biBlbGlnaWJsZSBvcmdhbml6YXRpb24gZmFpbHMgdG8gbWFrZSBhIHBheW1lbnQgb24gYQps b2FuIG9yIGZhaWxzIHRvIG1ha2UgYW55IG90aGVyIHBheW1lbnQgcmVxdWlyZWQgdW5kZXIg dGhlIHByb3Zpc2lvbnMgb2YKdGhpcyBzZWN0aW9uLCB0aGUgY291bmNpbCBzaGFsbCBpbmZv cm0gdGhlIGNvbXB0cm9sbGVyIG9mICBzdWNoICBmYWlsdXJlCmFuZCBvZiB0aGUgYW1vdW50 IG92ZXJkdWUsIHdoaWNoIGFtb3VudCB0aGUgY29tcHRyb2xsZXIgbWF5IHJlY292ZXIgZnJv bQphbnkgIHBheW1lbnRzIGR1ZSBmcm9tIHRoZSBzdGF0ZSB0byB0aGUgZWxpZ2libGUgb3Jn YW5pemF0aW9uLCBpbmNsdWRpbmcKbG9jYWwgYXNzaXN0YW5jZSBwYXltZW50cy4KICAxOC4g VGhlIGNvdW5jaWwgc2hhbGwgYWRvcHQgZ3VpZGVsaW5lcyB3aXRoaW4gc2l4dHkgZGF5cyBv ZiB0aGUgZWZmZWMtCnRpdmUgIGRhdGUgIG9mICB0aGlzIHNlY3Rpb24sIGFuZCBzaGFsbCBw cm9tdWxnYXRlIHJ1bGVzIGFuZCByZWd1bGF0aW9ucwpub3QgbGF0ZXIgdGhhbiBTZXB0ZW1i ZXIgZmlyc3QsIG5pbmV0ZWVuICBodW5kcmVkICBlaWdodHktZWlnaHQgIGFzICBhcmUKbmVj ZXNzYXJ5ICB0byAgY2Fycnkgb3V0IHRoZSBwdXJwb3NlcyBhbmQgcHJvdmlzaW9ucyBvZiB0 aGlzIHNlY3Rpb24uIEluCmFkZGl0aW9uIHRvIGFueSBvdGhlciByZXF1aXJlbWVudHMgc2V0 IGZvcnRoIGJ5IHRoaXMgc2VjdGlvbiwgdGhlICBjb3VuLQpjaWwgIHNoYWxsLCAgaW4gIGVz dGFibGlzaGluZyAgc3VjaCAgZ3VpZGVsaW5lcywgIHJ1bGVzIGFuZCByZWd1bGF0aW9ucywK ZGVsaW1pdCB0aGUgYXBwbGljYXRpb24gIHByb2Nlc3MsICBwcm92aWRlICBmb3IgIGFuICBh cHBlYWxzICBwcm9jZWR1cmUsCmVzdGFibGlzaCAgdGhlICB3cml0dGVuICBwb2xpY3kgIHJl cXVpcmVkIGJ5IHN1YmRpdmlzaW9uIGZpZnRlZW4gb2YgdGhpcwpzZWN0aW9uIGFuZCBlc3Rh Ymxpc2ggcHJvY2VkdXJlcyBmb3IgdGhlIHJlY291cG1lbnQgb2YgZmluYW5jaWFsIGFzc2lz dC0KYW5jZSBwcm92aWRlZCBpbiB0aGUgZXZlbnQgdGhhdCAgYSAgcHJvamVjdCAgaXMgIG5v dCAgY29tcGxldGVkICBvciAgbm90CmNvbXBsZXRlZCAgYXMgIHByb3Bvc2VkICBieSAgdGhl ICBhcHBsaWNhbnQgb3JnYW5pemF0aW9uLiBDb3BpZXMgb2Ygc3VjaApydWxlcyBhbmQgcmVn dWxhdGlvbnMgc2hhbGwgYmUgcHJvdmlkZWQgYXQgbGVhc3Qgc2l4dHkgZGF5cyBwcmlvciB0 byB0aGUKdGltZSB0aGV5IHNoYWxsIGJlIGVmZmVjdGl2ZSB0byB0aGUgc2VuYXRlICBmaW5h bmNlICBjb21taXR0ZWUgIGFuZCAgdGhlCmFzc2VtYmx5IHdheXMgYW5kIG1lYW5zIGNvbW1p dHRlZS4KICAxOS4gIFRoZSBjb3VuY2lsIHNoYWxsIHJlcG9ydCB0byB0aGUgZ292ZXJub3Is IHRoZSB0ZW1wb3JhcnkgcHJlc2lkZW50Cm9mIHRoZSBzZW5hdGUsIHRoZSBzcGVha2VyIG9m IHRoZSBhc3NlbWJseSwgdGhlICBjaGFpcnMgIG9mICB0aGUgIHNlbmF0ZQpmaW5hbmNlICBj b21taXR0ZWUgIGFuZCBhc3NlbWJseSB3YXlzIGFuZCBtZWFucyBjb21taXR0ZWUgbm90IGxh dGVyIHRoYW4KSmFudWFyeSBmaWZ0ZWVudGggb2YgZWFjaCB5ZWFyIGNvbmNlcm5pbmcgdGhl IGFtb3VudHMgIGFwcHJvcHJpYXRlZCAgYW5kCmV4cGVuZGVkICBwdXJzdWFudCB0byB0aGlz IHNlY3Rpb24sIHRoZSBudW1iZXIgb2YgYXBwbGljYXRpb25zIHJlY2VpdmVkLAp0aGUgdG90 YWwgYW1vdW50IG9mIGZpbmFuY2lhbCBhc3Npc3RhbmNlIHJlcXVlc3RlZCwgdGhlIHRvdGFs IG51bWJlciAgb2YKYXBwbGljYXRpb25zICBmdW5kZWQsICB0aGUgIGFtb3VudCAgb2YgIGZ1 bmRpbmcgcHJvdmlkZWQsIGFuZCBzdWNoIG90aGVyCmluZm9ybWF0aW9uIGFzIHRoZSBjaGFp cm1hbiBzaGFsbCBkZWVtIGFwcHJvcHJpYXRlLCBpbmNsdWRpbmcgYW55IHJlY29tLQptZW5k YXRpb25zIGZvciBwcm9ncmFtIGltcHJvdmVtZW50LCByZWNvbW1lbmRhdGlvbnMgZm9yICBp bmNyZWFzaW5nICB0aGUKdG90YWwgIGFtb3VudCAgb2YgIGZ1bmRpbmcgIGZyb20gc3RhdGUg YW5kIG5vbnN0YXRlIHNvdXJjZXMgYXZhaWxhYmxlIHRvCmluY3JlYXNlIHRvdGFsIGZ1bmRz IGZvciBwcm9qZWN0cyBhdmFpbGFibGUgdG8gIHRoZSAgYXJ0cyAgYW5kICBjdWx0dXJhbApj b21tdW5pdHkgIG9mICB0aGlzIHN0YXRlLCBpbiBwYXJ0aWN1bGFyIGZvciBydXJhbCBhbmQg bWlub3JpdHkgY29tbXVuaS0KdGllcywgYW5kIGlkZW50aWZpY2F0aW9uIG9mICBhbmQgIHBy b3Bvc2FscyAgZm9yICByZW1vdmluZyAgYmFycmllcnMgIG9yCmxpbWl0cyAgZmFjZWQgIGJ5 ICBjb21tdW5pdGllcyBpbiBhY2Nlc3NpbmcgdGhlIHByb2dyYW0gb3IgaW4gbWF4aW1pemlu Zwp1c2Ugb2YgZnVuZHMgcHJvdmlkZWQgaGVyZXVuZGVyLgoKICBTIDMuMDkuIEFzc2lzdGFu Y2Ugb2Ygb3RoZXIgYWdlbmNpZXMuICBUbyBlZmZlY3R1YXRlIHRoZSBwdXJwb3NlcyBvZiB0 aGlzCmFydGljbGUsIHRoZSBjb3VuY2lsIG9uIHRoZSBhcnRzIG1heSByZXF1ZXN0IGZyb20g IGFueSAgZGVwYXJ0bWVudCwgIGJvYXJkLApidXJlYXUsICBjb21taXNzaW9uICBvciAgb3Ro ZXIgIGFnZW5jeSAgb2YgIHRoZSAgc3RhdGUsICBhbmQgIHRoZSAgc2FtZSBhcmUKYXV0aG9y aXplZCB0byBwcm92aWRlLCBzdWNoIGFzc2lzdGFuY2UsIHNlcnZpY2VzIGFuZCBkYXRhICBh cyAgd2lsbCAgZW5hYmxlCnRoZSBjb3VuY2lsIHByb3Blcmx5IHRvIGNhcnJ5IG91dCBpdHMg cG93ZXJzIGFuZCBkdXRpZXMgaGVyZXVuZGVyLgoKICBTICAzLjExLiAgR3JhbnRzICBieSAg Y291bmNpbDsgIGNvbnNpZGVyYXRpb24gIHRvIGNlcnRhaW4gYXBwbGljYW50cy4gIEluCmlz c3VpbmcgZ3JhbnRzICB0byAgYXBwbGljYW50cyAgZm9yICBjb3VuY2lsICBmdW5kcyAgaW4g IHRoZSAgYXJlYSAgb2YgIHRoZQpwZXJmb3JtaW5nICBhcnRzICB0aGUgIGNvdW5jaWwgIG1h eSAgZ2l2ZSAgY29uc2lkZXJhdGlvbiB0byB0aGUgYXBwbGljYW50YHMKZGVtb25zdHJhdGlv biBvZiBhbiBhYmlsaXR5IHRvIGVuaGFuY2UgIHRoZSAgc3RhdGVgcyAgY2FwYWNpdHkgIHRv ICBhdHRyYWN0CnRvdXJpc3RzICBhcyAgZXZpZGVuY2VkICBieSAgc2hvd2luZyB0aGF0IHNp Z25pZmljYW50IG51bWJlcnMgb2YgcGVyc29ucyBpbgpzdWNoIGF1ZGllbmNlcyBhcmUgb3Ig d2lsbCBiZSBhdHRyYWN0ZWQgIHRvICB0aGUgIGFwcGxpY2FudGBzICBnZW9ncmFwaGljYWwK YXJlYSAgYnkgcmVhc29uIG9mIHN1Y2ggYXBwbGljYW50YHMgcHJvZ3JhbSBhbmQgZXZpZGVu Y2Ugb2YgYWR2ZXJ0aXNpbmcgYW5kCnB1YmxpY2l0eSBkZXNpZ25lZCBhbmQgcGxhbm5lZCBp biBzdWNoICBhICBtYW5uZXIgIGFzICB0byAgcmVhY2ggIHBvdGVudGlhbAphdWRpZW5jZXMg ZnJvbSBvdXRzaWRlIHRoZSBhcHBsaWNhbnRgcyBnZW9ncmFwaGljYWwgYXJlYS4KCiAgUyAg My4xMy4gUGFydGljaXBhdGlvbiBpbiBwcm9ncmFtcyB0byBwcm9tb3RlIHByb2dyZXNzIGFu ZCBzY2hvbGFyc2hpcCBpbgp0aGUgaHVtYW5pdGllcyBhbmQgdGhlIGFydHMuIDEuIEFzIHVz ZWQgIGluICB0aGlzICBzZWN0aW9uLCAgdGhlICBmb2xsb3dpbmcKdGVybXMgc2hhbGwgbWVh biBhbmQgaW5jbHVkZToKICBhLiAgICJNdW5pY2lwYWwgIGNvcnBvcmF0aW9uIi4gICBBIGNv dW50eSwgY2l0eSwgdG93biwgdmlsbGFnZSwgb3Igc2Nob29sCmRpc3RyaWN0IG9mIHRoZSBz dGF0ZSwgb3IgYSBib2FyZCBvZiBoaWdoZXIgZWR1Y2F0aW9uIGluIGEgIGNpdHkgIGhhdmlu ZyAgYQpwb3B1bGF0aW9uIG9mIG9uZSBtaWxsaW9uIG9yIG1vcmUuCiAgYi4gICAiTmF0aW9u YWwgIGZvdW5kYXRpb24gYWN0Ii4gIFRoZSBuYXRpb25hbCBmb3VuZGF0aW9uIG9uIHRoZSBh cnRzIGFuZApodW1hbml0aWVzICBhY3QgIG9mICBuaW5ldGVlbiAgaHVuZHJlZCAgc2l4dHkt Zml2ZSAgYW5kICBhbnkgIGZlZGVyYWwgIGxhd3MKYW1lbmRhdG9yeSBvciBzdXBwbGVtZW50 YWwgdGhlcmV0byBoZXJldG9mb3JlIG9yIGhlcmVhZnRlciBlbmFjdGVkLgogIDIuICAgQW55 ICBtdW5pY2lwYWwgIGNvcnBvcmF0aW9uIHNoYWxsIGhhdmUgcG93ZXIsIGVpdGhlciBpbmRp dmlkdWFsbHkgb3IKam9pbnRseSB3aXRoIG9uZSBvciAgbW9yZSAgb3RoZXIgIG11bmljaXBh bCAgY29ycG9yYXRpb25zLCAgdG8gIGFwcGx5ICBmb3IsCmFjY2VwdCwgIGFuZCBleHBlbmQg ZnVuZHMgbWFkZSBhdmFpbGFibGUgYnkgdGhlIGZlZGVyYWwgZ292ZXJubWVudCBwdXJzdWFu dAp0byB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgbmF0aW9uYWwgZm91bmRhdGlvbiBhY3QgaW4g IG9yZGVyICB0byAgYWRtaW5pc3RlciwKY29uZHVjdCAgb3IgIHBhcnRpY2lwYXRlIHdpdGgg dGhlIGZlZGVyYWwgZ292ZXJubWVudCBpbiBhIHByb2dyYW0gd2hpY2ggaGFzCmFzIGl0cyBw dXJwb3NlIHRoZSBwcm9tb3Rpb24gb2YgcHJvZ3Jlc3MgYW5kIHNjaG9sYXJzaGlwIGluIHRo ZSAgaHVtYW5pdGllcwphbmQgIHRoZSBhcnRzLiAgQW55IHN1Y2ggbXVuaWNpcGFsIGNvcnBv cmF0aW9uIGlzIGF1dGhvcml6ZWQgdG8gYXBwcm9wcmlhdGUKYW5kIGV4cGVuZCBzdWNoIHN1 bXMgYXMgYXJlIHJlcXVpcmVkIHRvIGFkbWluaXN0ZXIsIGNvbmR1Y3QsIG9yIHBhcnRpY2lw YXRlCmluICBhbnkgIHN1Y2ggIHByb2dyYW0gIGFuZCAgbWF5ICBwZXJmb3JtICBhbnkgIGFu ZCAgYWxsICBhY3RzIG5lY2Vzc2FyeSB0bwplZmZlY3R1YXRlIHRoZSBwdXJwb3NlcyBvZiBh bnkgc3VjaCBwcm9ncmFtLgogIDMuICBBbnkgbXVuaWNpcGFsIGNvcnBvcmF0aW9uLCBlaXRo ZXIgaW5kaXZpZHVhbGx5IG9yIGpvaW50bHkgd2l0aCBvbmUgb3IKbW9yZSBvdGhlciBtdW5p Y2lwYWwgY29ycG9yYXRpb25zLCBtYXkgZW50ZXIgaW50byBhZ3JlZW1lbnRzIHdpdGggIHBy aXZhdGUsCm5vbi1wcm9maXQgYWdlbmNpZXMgd2hpY2ggYXJlIGF1dGhvcml6ZWQgdG8gYXBw bHkgZm9yIGFuZCBhY2NlcHQgZnVuZHMgbWFkZQphdmFpbGFibGUgYnkgdGhlIGZlZGVyYWwg Z292ZXJubWVudCAgcHVyc3VhbnQgIHRvICB0aGUgIHByb3Zpc2lvbnMgIG9mICB0aGUKbmF0 aW9uYWwgZm91bmRhdGlvbiBhY3QuICBTdWNoIGFncmVlbWVudHMgbWF5IHByb3ZpZGUgdGhh dCBmdW5kcywgc2VydmljZXMsCm9yIGZhY2lsaXRpZXMgd2lsbCBiZSBtYWRlIGF2YWlsYWJs ZSBieSBhbnkgc3VjaCBtdW5pY2lwYWwgIGNvcnBvcmF0aW9uICBvcgptdW5pY2lwYWwgIGNv cnBvcmF0aW9ucyAgdG8gc3VjaCBwcml2YXRlLCBub24tcHJvZml0IGFnZW5jeSB1cG9uIHN1 Y2ggdGVybXMKYW5kIGNvbmRpdGlvbnMgYXMgbWF5ICBiZSAgcHJlc2NyaWJlZCAgYnkgIHN1 Y2ggIG11bmljaXBhbCAgY29ycG9yYXRpb24gIG9yCm11bmljaXBhbCAgY29ycG9yYXRpb25z LCBpbiBvcmRlciB0byBkZWZyYXkgdGhhdCBwb3J0aW9uIG9mIHRoZSBjb3N0IG9mIGFueQpw cm9ncmFtIGFkbWluaXN0ZXJlZCBieSBhbnkgc3VjaCBwcml2YXRlLCBub24tcHJvZml0IGFn ZW5jeSAgd2hpY2ggIGlzICBub3QKcGFpZCAgZm9yIGJ5IGZ1bmRzIG1hZGUgYXZhaWxhYmxl IGJ5IHRoZSBmZWRlcmFsIGdvdmVybm1lbnQuICBTdWNoIHByaXZhdGUsCm5vbi1wcm9maXQg YWdlbmN5IHNoYWxsIGZpbGUgYW5udWFsbHkgd2l0aCBlYWNoIHN1Y2ggbXVuaWNpcGFsICBj b3Jwb3JhdGlvbgp3aXRoICB3aGljaCBpdCBoYXMgZW50ZXJlZCBpbnRvIHN1Y2ggYW4gYWdy ZWVtZW50LCBvciBhdCBzdWNoIG1vcmUgZnJlcXVlbnQKcGVyaW9kcyBhcyBtYXkgYmUgcmVx dWlyZWQgYnkgc3VjaCBtdW5pY2lwYWxpdHksIGEgIGZpbmFuY2lhbCAgcmVwb3J0ICB3aXRo CnJlc3BlY3QgdG8gc3VjaCBwcm9ncmFtIG9yIHByb2dyYW1zIGFuZCBzaGFsbCBtYWtlIGF2 YWlsYWJsZSBmb3IgaW5zcGVjdGlvbgpvciBhdWRpdCBieSBlYWNoIHN1Y2ggbXVuaWNpcGFs IGNvcnBvcmF0aW9uLCBpdHMgYm9va3MsIHJlY29yZHMgIGFuZCAgb3RoZXIKZGF0YS4KICA0 LiAgIE5vICBmdW5kcywgIHNlcnZpY2VzLCAgb3IgIGZhY2lsaXRpZXMgIHNoYWxsICBiZSBt YWRlIGF2YWlsYWJsZSBieSBhCm11bmljaXBhbCBjb3Jwb3JhdGlvbiB0byBhICBwcml2YXRl LCAgbm9uLXByb2ZpdCAgYWdlbmN5ICBwdXJzdWFudCAgdG8gIHRoZQpwcm92aXNpb25zICBv ZiAgc3ViZGl2aXNpb24gIHRocmVlICBvZiAgdGhpcyBzZWN0aW9uIHVubGVzcyBzdWNoIGFn ZW5jeSBoYXMKb2J0YWluZWQgYXBwcm92YWwgb2YgaXRzIGFwcGxpY2F0aW9uIGZvciBhIGZl ZGVyYWwgZ3JhbnQtaW4tYWlkIGFzIHJlcXVpcmVkCmJ5ICB0aGUgIHByb3Zpc2lvbnMgIG9m ICB0aGUgIG5hdGlvbmFsICBmb3VuZGF0aW9uICBhY3QsIGFuZCBpdHMgcHJvZ3JhbSBpcwpk ZXNpZ25lZCB0byBwcm9tb3RlIHByb2dyZXNzIGFuZCBzY2hvbGFyc2hpcCBpbiB0aGUgaHVt YW5pdGllcyBhbmQgdGhlIGFydHMKd2l0aGluICB0aGUgIG11bmljaXBhbCAgY29ycG9yYXRp b24gb3IgbXVuaWNpcGFsIGNvcnBvcmF0aW9ucyB3aXRoIHdoaWNoIGl0CmhhcyBlbnRlcmVk IGludG8gc3VjaCBhbiBhZ3JlZW1lbnQuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk5ldyBZb3Jr IFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMKCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJUSUNMRSA0CiAgICAgICAgICAgICAg ICAgICAgRU1QSVJFIFNUQVRFIFBMQVpBIEFSVCBDT01NSVNTSU9OClNlY3Rpb24gNC4wMS4g TGVnaXNsYXRpdmUgZmluZGluZ3MgYW5kIGRlY2xhcmF0aW9uIG9mIHBvbGljeS4KICAgICAg ICA0LjAzLiBEZWZpbml0aW9ucy4KICAgICAgICA0LjA1LiBFbXBpcmUgc3RhdGUgcGxhemEg YXJ0IGNvbW1pc3Npb247IGNyZWF0aW9uLgogICAgICAgIDQuMDcuIFBvd2VycyBhbmQgZHV0 aWVzIG9mIGNvbW1pc3Npb24uCiAgICAgICAgNC4wOS4gQXBwb2ludG1lbnQgb2YgY3VyYXRv ciBhbmQgb3RoZXIgZW1wbG95ZWVzLgogICAgICAgIDQuMTEuIEFzc2lzdGFuY2Ugb2Ygc3Rh dGUgYWdlbmNpZXMgYW5kIHBvbGl0aWNhbCBzdWJkaXZpc2lvbnMuCgogIFMgICA0LjAxLiAg IExlZ2lzbGF0aXZlICAgZmluZGluZ3MgIGFuZCAgZGVjbGFyYXRpb24gIG9mICBwb2xpY3ku ICBUaGUKbGVnaXNsYXR1cmUgaGVyZWJ5IGZpbmRzICBhbmQgIGRlY2xhcmVzICB0aGF0ICB0 aGUgIEdvdmVybm9yICBOZWxzb24gIEEuClJvY2tlZmVsbGVyICBlbXBpcmUgIHN0YXRlIHBs YXphIGlzIGEgdW5pcXVlIGFyY2hpdGVjdHVyYWwgZW50aXR5IGFuZCBpcwppbnRlbnNpdmVs eSB1c2VkIGJ5ICB0aGUgIHB1YmxpYyAgZm9yICByZWNyZWF0aW9uLCAgZm9yICBjb252ZW50 aW9ucyAgb2YKYnVzaW5lc3MgIGFuZCAgZ292ZXJubWVudGFsIGdyb3VwcyBhbmQgZm9yIHBh cnRpY2lwYXRpb24gaW4gZXhoaWJpdHMgYW5kCmV4aGliaXRpb25zIG9mIHRoZSB2aXN1YWwg YW5kIHBlcmZvcm1pbmcgYXJ0cy4KICBJdCAgaXMgIGhlcmVieSBkZWNsYXJlZCBhIHBvbGlj eSBvZiB0aGUgc3RhdGUgdGhhdCB0aGVyZSBiZSBjcmVhdGVkIGluCnRoZSBleGVjdXRpdmUg ZGVwYXJ0bWVudCB0aGUgZW1waXJlIHN0YXRlIHBsYXphIGFydCBjb21taXNzaW9uLCAgd2l0 aCAgYQpsZWdpc2xhdGl2ZSAgbWFuZGF0ZSAgcmVnYXJkaW5nICB0aGUgIHdvcmtzIG9mIGFy dCBvZiBncmVhdCB2YWx1ZSB0byB0aGUKcGVvcGxlIG9mIHRoZSBzdGF0ZSBvZiBOZXcgWW9y ayB3aGljaCBhcmUgbG9jYXRlZCBpbiAgdGhlICBlbXBpcmUgIHN0YXRlCnBsYXphLgoKICBT ICA0LjAzLiAgRGVmaW5pdGlvbnMuICBFeGNlcHQgYXMgb3RoZXJ3aXNlIHByb3ZpZGVkIGhl cmVpbiBhbmQgdW5sZXNzCnRoZSBjb250ZXh0IHNoYWxsIG90aGVyd2lzZSByZXF1aXJlLCB0 aGUgZm9sbG93aW5nIHRlcm1zIGFzIHVzZWQgaW4gdGhpcwphcnRpY2xlIHNoYWxsIGhhdmUg dGhlIGZvbGxvd2luZyBtZWFuaW5nczoKICAxLiAgIkNvbW1pc3Npb24iICBzaGFsbCAgbWVh biAgdGhlICBlbXBpcmUgIHN0YXRlIHBsYXphIGFydCBjb21taXNzaW9uCmNyZWF0ZWQgYnkg dGhpcyBhcnRpY2xlLgogIDIuICAiRW1waXJlIHN0YXRlIHBsYXphIiBzaGFsbCBtZWFuIHRo ZSBHb3Zlcm5vciBOZWxzb24gQS4gUm9ja2VmZWxsZXIKZW1waXJlICBzdGF0ZSAgcGxhemEs ICBleGNsdWRpbmcgIHRoZSAgY3VsdHVyYWwgIGVkdWNhdGlvbiAgY2VudGVyLCAgdGhlCmxl Z2lzbGF0aXZlICBvZmZpY2UgYnVpbGRpbmcgYW5kIGFueSBvdGhlciBvZmZpY2VzIGFuZCBm YWNpbGl0aWVzIG9mIHRoZQpsZWdpc2xhdHVyZSBpbiBzYWlkIHBsYXphLgogIDMuICAgIlN0 YXRlICAgYWdlbmN5IiAgc2hhbGwgIG1lYW4gIGFueSAgc3RhdGUgIGJvYXJkLCAgYm9keSwg IGJ1cmVhdSwKY29tbWlzc2lvbiwgY291bmNpbCwgZGVwYXJ0bWVudCwgcHVibGljIGF1dGhv cml0eSwgIHB1YmxpYyAgY29ycG9yYXRpb24sCmRpdmlzaW9uLCBvZmZpY2UsIG9yIG90aGVy IGdvdmVybm1lbnRhbCBlbnRpdHkgcGVyZm9ybWluZyBhIGdvdmVybm1lbnRhbApvciBwcm9w cmlldGFyeSBmdW5jdGlvbiAgZm9yICB0aGUgIHN0YXRlLCAgYnV0ICBzaGFsbCAgbm90ICBp bmNsdWRlICB0aGUKbGVnaXNsYXR1cmUuCgogIFMgIDQuMDUuIEVtcGlyZSBzdGF0ZSBwbGF6 YSBhcnQgY29tbWlzc2lvbjsgY3JlYXRpb24uIDEuIFRoZSBlbXBpcmUgc3RhdGUKcGxhemEg YXJ0IGNvbW1pc3Npb24gaXMgaGVyZWJ5IGNyZWF0ZWQgaW4gdGhlIGV4ZWN1dGl2ZSBkZXBh cnRtZW50LgogIDIuICBUaGUgIGNvbW1pc3Npb24gIHNoYWxsICBiZSBsb2NhdGVkIGluIHRo ZSBlbXBpcmUgc3RhdGUgcGxhemEgaW4gc3BhY2UKZGVzaWduYXRlZCB0aGVyZWluIGJ5IHRo ZSBjb21taXNzaW9uZXIgb2YgZ2VuZXJhbCBzZXJ2aWNlcy4KICAzLiAgVGhlICBjb21taXNz aW9uICBzaGFsbCBjb25zaXN0IG9mIHR3ZW50eS1maXZlIG1lbWJlcnMuICBUd2VudHktb25l IG9mCnN1Y2ggbWVtYmVycyBzaGFsbCBiZSBhcHBvaW50ZWQgYnkgdGhlIGdvdmVybm9yIGJ5 IGFuZCB3aXRoIHRoZSBhZHZpY2UgIGFuZApjb25zZW50IG9mIHRoZSBzZW5hdGUsIGZvdXIg b2Ygd2hvbSBzaGFsbCBiZSBzbyBhcHBvaW50ZWQgb24gcmVjb21tZW5kYXRpb24Kb2YgdGhl IHRlbXBvcmFyeSBwcmVzaWRlbnQgb2YgdGhlIHNlbmF0ZSwgZm91ciAgb24gIHJlY29tbWVu ZGF0aW9uICBvZiAgdGhlCnNwZWFrZXIgIG9mICB0aGUgIGFzc2VtYmx5LCB0d28gb24gcmVj b21tZW5kYXRpb24gb2YgdGhlIG1pbm9yaXR5IGxlYWRlciBvZgp0aGUgc2VuYXRlIGFuZCAg dHdvICBvbiAgcmVjb21tZW5kYXRpb24gIG9mICB0aGUgIG1pbm9yaXR5ICBsZWFkZXIgIG9m ICB0aGUKYXNzZW1ibHkuICBUaGUgIGNvbW1pc3Npb25lciAgb2YgIGVkdWNhdGlvbiwgIHRo ZSAgY29tbWlzc2lvbmVyICBvZiBnZW5lcmFsCnNlcnZpY2VzLCB0aGUgY29tbWlzc2lvbmVy IG9mIHBhcmtzLCByZWNyZWF0aW9uIGFuZCAgaGlzdG9yaWMgIHByZXNlcnZhdGlvbgphbmQg dGhlIGNoYWlybWFuIG9mIHRoZSBzdGF0ZSBjb3VuY2lsIG9uIHRoZSBhcnRzIHNoYWxsIHNl cnZlIGFzIGV4IG9mZmljaW8KbWVtYmVycyBhbmQgc2hhbGwgaGF2ZSB0aGUgc2FtZSByaWdo dHMgYXMgb3RoZXIgbWVtYmVycy4KICA0LiAgVGhlICBnb3Zlcm5vciBzaGFsbCBkZXNpZ25h dGUgb25lIG9mIHRoZSBtZW1iZXJzIHRvIHNlcnZlIGFzIGNoYWlybWFuCm9mIHRoZSBjb21t aXNzaW9uLCBieSBhbmQgd2l0aCB0aGUgYWR2aWNlIGFuZCBjb25zZW50IG9mIHRoZSBzZW5h dGUuCiAgNS4gIFRoZSAgdGVybSBvZiBlYWNoIG1lbWJlciBhcHBvaW50ZWQgYnkgdGhlIGdv dmVybm9yIHNoYWxsIGJlIGZvciB0aHJlZQp5ZWFycyBwcm92aWRlZCwgaG93ZXZlciwgdGhh dCAgb2YgIHRoZSAgbWVtYmVycyAgZmlyc3QgIGFwcG9pbnRlZCAgKGEpICB0aGUKcGVyc29u cyAgYXBwb2ludGVkICBvbiAgcmVjb21tZW5kYXRpb24gIG9mICB0aGUgIHRlbXBvcmFyeSBw cmVzaWRlbnQgb2YgdGhlCnNlbmF0ZSBhbmQgdGhlIHNwZWFrZXIgb2YgdGhlIGFzc2VtYmx5 IHNoYWxsIGJlIGFwcG9pbnRlZCBmb3IgdGVybXMgIGVuZGluZwpEZWNlbWJlciB0aGlydHkt Zmlyc3QsIG5pbmV0ZWVuIGh1bmRyZWQgZWlnaHR5LXNpeCwgcHJvdmlkZWQsIGhvd2V2ZXIs IHRoYXQKdGhlIHBlcnNvbnMgZmlyc3Qgc28gYXBwb2ludGVkIG9uIG9yIGFmdGVyIERlY2Vt YmVyIHRoaXJ0eS1maXJzdCwgIG5pbmV0ZWVuCmh1bmRyZWQgICBlaWdodHktc2l4ICAgc2hh bGwgICBiZSAgIGFwcG9pbnRlZCAgZm9yICB0ZXJtcyAgZW5kaW5nICBEZWNlbWJlcgp0aGly dHktZmlyc3QsIG5pbmV0ZWVuIGh1bmRyZWQgZWlnaHR5LW5pbmU7IChiKSB0aGUgIHBlcnNv bnMgIGFwcG9pbnRlZCAgb24KcmVjb21tZW5kYXRpb24gb2YgdGhlIG1pbm9yaXR5IGxlYWRl ciBvZiB0aGUgc2VuYXRlIGFuZCB0aGUgbWlub3JpdHkgbGVhZGVyCm9mIHRoZSBhc3NlbWJs eSBzaGFsbCBiZSBhcHBvaW50ZWQgZm9yIHRlcm1zIGVuZGluZyBEZWNlbWJlciAgdGhpcnR5 LWZpcnN0LApuaW5ldGVlbiAgaHVuZHJlZCBlaWdodHktZml2ZSwgcHJvdmlkZWQsIGhvd2V2 ZXIsIHRoYXQgdGhlIHBlcnNvbnMgZmlyc3Qgc28KYXBwb2ludGVkIG9uIG9yIGFmdGVyIERl Y2VtYmVyIHRoaXJ0eS1maXJzdCwgIG5pbmV0ZWVuICBodW5kcmVkICBlaWdodHktc2l4CnNo YWxsIGJlIGFwcG9pbnRlZCBmb3IgdGVybXMgZW5kaW5nIERlY2VtYmVyIHRoaXJ0eS1maXJz dCwgbmluZXRlZW4gaHVuZHJlZAplaWdodHktZWlnaHQ7IGFuZCAoYykgdGhlIG90aGVyIG5p bmUgIHBlcnNvbnMgIGFwcG9pbnRlZCAgYnkgIHRoZSAgZ292ZXJub3IKc2hhbGwgYmUgYXBw b2ludGVkIGZvciB0ZXJtcyBlbmRpbmcgRGVjZW1iZXIgdGhpcnR5LWZpcnN0LCBuaW5ldGVl biBodW5kcmVkCmVpZ2h0eS1mb3VyLCBwcm92aWRlZCwgaG93ZXZlciwgdGhhdCB0aGUgcGVy c29ucyBzbyBhcHBvaW50ZWQgb24gIG9yICBhZnRlcgpEZWNlbWJlciAgdGhpcnR5LWZpcnN0 LCAgbmluZXRlZW4gaHVuZHJlZCBlaWdodHktc2l4IHNoYWxsIGJlIGFwcG9pbnRlZCBmb3IK dGVybXMgIGVuZGluZyAgRGVjZW1iZXIgIHRoaXJ0eS1maXJzdCwgICBuaW5ldGVlbiAgIGh1 bmRyZWQgICBlaWdodHktc2V2ZW4uClZhY2FuY2llcyBzaGFsbCBiZSBmaWxsZWQgZm9yIHRo ZSB1bmV4cGlyZWQgdGVybXMgaW4gdGhlIHNhbWUgbWFubmVyIGFzIHRoZQpvcmlnaW5hbCBh cHBvaW50bWVudC4gVGhlIGV4IG9mZmljaW8gbWVtYmVycyBzaGFsbCBzZXJ2ZSBvbmx5IGR1 cmluZyAgdGhlaXIKdGVudXJlcyBhcyBjb21taXNzaW9uZXIgb3IgY2hhaXJtYW4uCiAgNi4g IE1lbWJlcnMgc2hhbGwgcmVjZWl2ZSBubyBjb21wZW5zYXRpb24gZm9yIHRoZWlyIHNlcnZp Y2VzIGJ1dCBzaGFsbCBiZQphbGxvd2VkIHRoZWlyIHJlYXNvbmFibGUgZXhwZW5zZXMgYWN0 dWFsbHkgYW5kIG5lY2Vzc2FyaWx5IGluY3VycmVkIGluICB0aGUKcGVyZm9ybWFuY2UgIG9m ICB0aGVpciBkdXRpZXMuIE5vIG1lbWJlciBzaGFsbCBiZSBkaXNxdWFsaWZpZWQgZnJvbSBo b2xkaW5nCmFueSAgb3RoZXIgIHB1YmxpYyAgb2ZmaWNlICBvciAgZW1wbG95bWVudCAgYnkg IHJlYXNvbiAgb2YgIHN1Y2ggICBwZXJzb25gcwphcHBvaW50bWVudCAgb3IgIHNlcnZpY2Ug IGFzIGEgbWVtYmVyIG5vdHdpdGhzdGFuZGluZyB0aGUgcHJvdmlzaW9ucyBvZiBhbnkKb3Ro ZXIgbGF3IHRvIHRoZSBjb250cmFyeS4KICA3LiAgVGhlIGNvbW1pc3Npb24gc2hhbGwgY29u ZHVjdCBhdCBsZWFzdCBmb3VyIHJlZ3VsYXIgbWVldGluZ3MgYSB5ZWFyIGF0CnN1Y2ggdGlt ZXMgYW5kIHBsYWNlcyBhcyBtYXkgYmUgZml4ZWQgYnkgaXQuCiAgOC4gICBUaGlydGVlbiAg bWVtYmVycyAgc2hhbGwgIGNvbnN0aXR1dGUgYSBxdW9ydW0gZm9yIHRoZSB0cmFuc2FjdGlv biBvZgpidXNpbmVzcyBhbmQsIHVubGVzcyBhIGdyZWF0ZXIgbnVtYmVyICBpcyAgcmVxdWly ZWQgIGJ5ICB0aGUgIGJ5LWxhd3MsICB0aGUKY29tbWlzc2lvbiAgc2hhbGwgIGV4ZXJjaXNl IGl0cyBwb3dlcnMgYW5kIGR1dGllcyBieSBhIHZvdGUgb2YgdGhlIG1ham9yaXR5Cm9mIHRo ZSB0b3RhbCBtZW1iZXJzIG9mIHRoZSBjb21taXNzaW9uIHRoZW4gc2VydmluZy4KICA5LiAg VGhlICBjb21taXNzaW9uIHNoYWxsIGFkb3B0IGJ5LWxhd3MgZ292ZXJuaW5nIHRoZSBjYWxs aW5nIGFuZCBjb25kdWN0Cm9mIGl0cyBtZWV0aW5ncyBhbmQgYWxsIG90aGVyIG1hdHRlcnMg IHJlbGF0aW5nICB0byAgaXRzICBvcmdhbml6YXRpb24gIGFuZAppbnRlcm5hbCBvcGVyYXRp b25zLgoKICBTIDQuMDcuIFBvd2VycyBhbmQgZHV0aWVzIG9mIGNvbW1pc3Npb24uIFRoZSBj b21taXNzaW9uIHNoYWxsIGhhdmUgdGhlCmZvbGxvd2luZyByZXNwb25zaWJpbGl0aWVzLCBw b3dlcnMgYW5kIGR1dGllczoKICAxLiAgVG8gIG1ha2UgIHJlY29tbWVuZGF0aW9ucyB0byBz dGF0ZSBhZ2VuY2llcyByZWdhcmRpbmcgdGhlIGN1c3RvZHksCmRpc3BsYXksIGNvbnNlcnZh dGlvbiwgcHJlc2VydmF0aW9uIGFuZCBtYWludGVuYW5jZSBvZiB3b3JrcyBvZiAgYXJ0ICBp bgp0aGUgZW1waXJlIHN0YXRlIHBsYXphIHVuZGVyIHRoZSBqdXJpc2RpY3Rpb24gb2Ygc3Vj aCBhZ2VuY2llczsKICAyLiBUbyBhcHByYWlzZSBhbmQgY2F0YWxvZ3VlIHdvcmtzIG9mIGFy dCBpbiB0aGUgIGVtcGlyZSBzdGF0ZSBwbGF6YTsKICAzLiAgVG8gIGFkdmlzZSAgYW5kICBh c3Npc3QgIHN0YXRlICBhZ2VuY2llcyAgaW4gIHRoZSAgcHJlcGFyYXRpb24gYW5kCmRpc3Ry aWJ1dGlvbiBvZiBwdWJsaWNhdGlvbnMgYnkgc3VjaCBhZ2VuY2llczsKICA0LiAgVG8gbWFr ZSByZWNvbW1lbmRhdGlvbnMgdG8gdGhlIGdvdmVybm9yLCB0aGUgbGVnaXNsYXR1cmUgYW5k IHN0YXRlCmFnZW5jaWVzIHJlZ2FyZGluZyB0aGUgcHVyY2hhc2Ugb2Ygd29ya3Mgb2YgYXJ0 OwogIDUuICBUbyBhY3F1aXJlIGJ5IGdpZnQsIGdyYW50IG9yIGxvYW4gc3VjaCB3b3JrcyBv ZiBhcnQgYXMgaXQgZGVlbXMgdG8KYmUgaW4gdGhlIGJlc3QgaW50ZXJlc3RzIG9mIHRoZSBw ZW9wbGUgb2YgdGhlIHN0YXRlOwogIDYuIFRvIGVudGVyIGludG8gc3VjaCBjb250cmFjdHMg YXMgbWF5IGJlIG5lY2Vzc2FyeSBvciBhcHByb3ByaWF0ZSBmb3IKdGhlIHBlcmZvcm1hbmNl IG9mIHRoZSBmdW5jdGlvbnMgdmVzdGVkIGluIGl0IGJ5IHRoaXMgYXJ0aWNsZTsKICA3LiAg VG8gIHJlbmRlciAgc3VjaCAgYXNzaXN0YW5jZSAgYXMgIHRoZSAgbGVnaXNsYXR1cmUgb3Ig ZWl0aGVyIGhvdXNlCnRoZXJlb2YgbWF5IHJlcXVlc3Qgd2l0aCByZXNwZWN0IHRvIHRoZSBs ZWdpc2xhdGl2ZSBvZmZpY2UgYnVpbGRpbmcgIGFuZApvdGhlciAgb2ZmaWNlcyAgYW5kICBm YWNpbGl0aWVzICBvZiAgdGhlIGxlZ2lzbGF0dXJlIGluIHRoZSBlbXBpcmUgc3RhdGUKcGxh emE7CiAgOC4gIFRvICByZW5kZXIgIHN1Y2ggIGFzc2lzdGFuY2UgIGFzIHRoZSBjb21taXNz aW9uZXIgb2YgZWR1Y2F0aW9uIG1heQpyZXF1ZXN0IHdpdGggcmVzcGVjdCB0byB0aGUgY3Vs dHVyYWwgZWR1Y2F0aW9uIGNlbnRlcjsKICA5LiAgVG8gbWFrZSBhbiBhbm51YWwgcmVwb3J0 IHRvIHRoZSBnb3Zlcm5vciBhbmQgdGhlIGxlZ2lzbGF0dXJlIG9uIG9yCmJlZm9yZSBEZWNl bWJlciBmaWZ0ZWVudGggd2hpY2ggc2hhbGwgY29udGFpbiBhICBjb21wbGV0ZSAgaW52ZW50 b3J5ICBvZgp0aGUgIHdvcmtzICBvZiAgYXJ0ICBpbiAgdGhlIGVtcGlyZSBzdGF0ZSBwbGF6 YSBhbmQgc3VjaCByZWNvbW1lbmRhdGlvbnMKcGVydGluZW50IHRvIHRoZSBkdXRpZXMgb2Yg dGhlIGNvbW1pc3Npb24gYXMgaXQgIGRlZW1zICBhZHZpc2FibGUuICBTdWNoCnJlcG9ydCAg c2hhbGwgIGNvbnRhaW4gYSBmdWxsIGZpc2NhbCBhY2NvdW50aW5nIG9mIHRoZSBhY3Rpdml0 aWVzIG9mIHRoZQpjb21taXNzaW9uLCBib3RoIGN1cnJlbnQgYW5kIHByb2plY3RlZC4KCiAg UyAgNC4wOS4gIEFwcG9pbnRtZW50IG9mIGN1cmF0b3IgYW5kIG90aGVyIGVtcGxveWVlcy4g MS4gVGhlIGNoYWlybWFuLAp3aXRoIHRoZSBjb25jdXJyZW5jZSBvZiB0aGUgY29tbWlzc2lv biBhbmQgdGhlIGNvbW1pc3Npb25lciAgb2YgIGdlbmVyYWwKc2VydmljZXMsIHNoYWxsIGFw cG9pbnQgYSBjdXJhdG9yIHdobyBzaGFsbCBzZXJ2ZSBhdCB0aGUgcGxlYXN1cmUgb2YgdGhl CmNvbW1pc3Npb24uIFRoZSBjb21taXNzaW9uIHNoYWxsIHByZXNjcmliZSAgcG93ZXJzICBh bmQgIGR1dGllcyAgb2YgIHRoZQpjdXJhdG9yICBhbmQgIHNoYWxsIGZpeCBoaXMgY29tcGVu c2F0aW9uIHdpdGhpbiB0aGUgYW1vdW50cyBhcHByb3ByaWF0ZWQKdGhlcmVmb3IuCiAgMi4g IFRoZSBjb21taXNzaW9uIG1heSBhcHBvaW50IHN1Y2ggb3RoZXIgZW1wbG95ZWVzIGFzIGl0 IG1heSByZXF1aXJlLApwcmVzY3JpYmUgdGhlaXIgcG93ZXJzIGFuZCBkdXRpZXMgYW5kIGZp eCB0aGVpciBjb21wZW5zYXRpb24gd2l0aGluICB0aGUKYW1vdW50cyBhcHByb3ByaWF0ZWQg dGhlcmVmb3IuCgogIFMgIDQuMTEuICBBc3Npc3RhbmNlIG9mIHN0YXRlIGFnZW5jaWVzIGFu ZCBwb2xpdGljYWwgc3ViZGl2aXNpb25zLiBUaGUKY29tbWlzc2lvbiBtYXkgcmVxdWVzdCBh bmQgIHNoYWxsICByZWNlaXZlICBmcm9tICBhbnkgIHN0YXRlICBhZ2VuY3kgIG9yCnBvbGl0 aWNhbCAgc3ViZGl2aXNpb24gIG9mICB0aGUgc3RhdGUgc3VjaCBhc3Npc3RhbmNlIGFuZCBp bmZvcm1hdGlvbiBhcwp3aWxsIGVuYWJsZSBpdCB0byBjYXJyeSBvdXQgaXRzIGR1dGllcyBh bmQgYWNjb21wbGlzaCBpdHMgcHVycG9zZXMuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk5ldyBZ b3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMK CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSVElDTEUgNQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQVJUIENPTU1JU1NJT04KU2VjdGlvbiA1LjAxLiAgUHVy Y2hhc2Ugb2YgYXJ0IHByb2R1Y3Rpb25zIGluIGNlcnRhaW4gY2l0aWVzLgogICAgICAgIDUu MDMuICBBcnQgY29tbWlzc2lvbmVycy4KICAgICAgICA1LjA1LiAgU2VsZWN0aW9uIGFuZCBw bGFjaW5nIG9mIGFydCBwcm9kdWN0aW9ucy4KCiAgUyAgNS4wMS4gUHVyY2hhc2Ugb2YgYXJ0 IHByb2R1Y3Rpb25zIGluIGNlcnRhaW4gY2l0aWVzLiAgQ2l0aWVzIG9mIHRoZQpmaXJzdCBh bmQgc2Vjb25kIGNsYXNzIGFyZSBoZXJlYnkgYXV0aG9yaXplZCwgaW4gdGhlIGRpc2NyZXRp b24gb2YgdGhvc2UKb2ZmaWNlcnMgIG9yIGJvZGllcyBpbiBzdWNoIGNpdGllcyB0aGF0IGhh dmUgY2hhcmdlIG9mIHRoZSBhcHByb3ByaWF0aW9uCm9mIHRoZSBwdWJsaWMgZnVuZHMsIHRv IHB1cmNoYXNlIHdvcmtzIG9mIGFydCB3aGljaCBhcmUgIHRoZSAgcHJvZHVjdGlvbgpvZiBw cm9mZXNzaW9uYWwgYXJ0aXN0cyB3aG8gYXJlIGNpdGl6ZW5zIG9mIHRoZSBVbml0ZWQgU3Rh dGVzLCBhbmQgd2hpY2gKaGF2ZSBiZWVuIGV4ZWN1dGVkIGluIHRoZSBVbml0ZWQgU3RhdGVz LiAgVGhlIHdvcmQgICJwcm9kdWN0aW9ucyIgIHNoYWxsCmJlICBoZWxkICB0byAgaW5jbHVk ZSAgYW1vbmcgIG90aGVyICB3b3JrcyAgb2YgIGFydCwgIG11cmFsIHBhaW50aW5ncyBvcgpk ZWNvcmF0aW9ucyB3aGljaCBhcnRpc3RzIG1heSBiZSBlbXBsb3llZCB0byBwdXQgb24gdGhl IHdhbGxzIG9mICBwdWJsaWMKYnVpbGRpbmdzICBvZiAgc3VjaCBjaXRpZXMsIG1vc2FpYyBh bmQgc3RhaW5lZCBvciBwYWludGVkIGdsYXNzLiAgQSBjaXR5Cm9mIHRoZSBmaXJzdCBjbGFz cyBtYXkgZXhwZW5kIHVuZGVyICB0aGlzICBzZWN0aW9uICBhbnkgIGFtb3VudCAgbm90ICB0 bwpleGNlZWQgIGZpZnR5IHRob3VzYW5kIGRvbGxhcnMgYW5udWFsbHkuICBBIGNpdHkgb2Yg dGhlIHNlY29uZCBjbGFzcyBtYXkKZXhwZW5kIHVuZGVyIHRoaXMgc2VjdGlvbiBub3QgdG8g ZXhjZWVkIHRlbiB0aG91c2FuZCBkb2xsYXJzIGFubnVhbGx5LgoKICBTICA1LjAzLiBBcnQg Y29tbWlzc2lvbmVycy4gIFdoZXJlIHByb3Zpc2lvbiBpcyBub3QgbWFkZSBieSBsYXcgZm9y IGFuCmFydCBjb21taXNzaW9uIGZvciBhbnkgY2l0eSBvZiB0aGUgZmlyc3Qgb3Igc2Vjb25k IGNsYXNzLCB0aGUgIG1heW9yICBvZgpzdWNoICBjaXR5IHNoYWxsLCBhcyBzb29uIGFzIGFu eSBjaXR5IGRlY2lkZXMgdG8gZXhwZW5kIGFueSBtb25leXMgdW5kZXIKdGhlIHByb3Zpc2lv bnMgb2YgdGhpcyBhcnRpY2xlLCBhcHBvaW50IGFydCBjb21taXNzaW9uZXJzIGZvciBzdWNo IGNpdHkuClN1Y2ggIGNvbW1pc3Npb25lcnMgIHNoYWxsICBub3QgIGNvbnRhaW4gIG1vcmUg IHRoYW4gIGEgYmFyZSBtYWpvcml0eSBvZgpwZXJzb25zIHNlbGVjdGVkIGZyb20gYW55IG9u ZSBwb2xpdGljYWwgcGFydHkuICBJdCBzaGFsbCBiZSBjb21wb3NlZCAgb2YKcGVyc29ucyB3 aG8gYXJlIGV4cGVydHMgaW4gYXJ0IG1hdHRlcnMuCgogIFMgNS4wNS4gU2VsZWN0aW9uIGFu ZCBwbGFjaW5nIG9mIGFydCBwcm9kdWN0aW9ucy4gIEFsbCBhcnQgcHJvZHVjdGlvbnMKcHVy Y2hhc2VkIHVuZGVyIHRoaXMgYXJ0aWNsZSBzaGFsbCBiZSBzZWxlY3RlZCBieSB0aGUgYXJ0 IGNvbW1pc3Npb24gIG9mCnRoZSAgY2l0eSwgYW5kIHNoYWxsIGJlIHBsYWNlZCBpbiB0aGUg cHVibGljIGJ1aWxkaW5ncywgZ3JvdW5kcyBvciBwYXJrcwp0aGVyZW9mIGZvciB0aGUgcHVy cG9zZSBvZiBiZWF1dGlmeWluZyB0aGUgc2FtZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk5ldyBZ b3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMK CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJUSUNMRSA3CiAgICAgICAgICAg ICAgICBORVcgWU9SSyBTVEFURSBTVU1NRVIgU0NIT09MIE9GIFRIRSBBUlRTClNlY3Rpb24g IDcuMDEuIE5ldyBZb3JrIHN0YXRlIHN1bW1lciBzY2hvb2wgb2YgdGhlIGFydHMuCiAgICAg ICAgIDcuMDMuIE9iamVjdCBvZiB0aGUgc3VtbWVyIHNjaG9vbC4KICAgICAgICAgNy4wNS4g RXhlY3V0aXZlIGRpcmVjdG9yLgogICAgICAgICA3LjA3LiBBZHZpc29yeSBjb3VuY2lsOyBw b3dlcnMuCiAgICAgICAgIDcuMDkuIEFyZWFzIG9mIGluc3RydWN0aW9uOyBjcmVkaXRzLgog ICAgICAgICA3LjExLiBUdWl0aW9uLgogICAgICAgICA3LjEzLiBFbGlnaWJpbGl0eSByZXF1 aXJlbWVudHMgZm9yIGFkbWlzc2lvbi4KICAgICAgICAgNy4xNS4gUmVndWxhdGlvbnMgZm9y IGFkbWlzc2lvbiBhbmQgc2Nob2xhc3RpYyBjcmVkaXRzLgoKICBTICA3LjAxLiBOZXcgWW9y ayBzdGF0ZSBzdW1tZXIgc2Nob29sIG9mIHRoZSBhcnRzLiAgVGhlIE5ldyBZb3JrIHN0YXRl CnN1bW1lciBzY2hvb2wgb2YgdGhlIGFydHMgIHVuZGVyIHRoZSBqdXJpc2RpY3Rpb24gIGFu ZCAgY29udHJvbCAgb2YgIHRoZQplZHVjYXRpb24gZGVwYXJ0bWVudCBpcyBoZXJlYnkgY29u dGludWVkLgoKICBTIDcuMDMuIE9iamVjdCBvZiB0aGUgc3VtbWVyIHNjaG9vbC4gIFRoZSBw cmltYXJ5IG9iamVjdCBvZiB0aGUgc3VtbWVyCnNjaG9vbCBvZiB0aGUgYXJ0cyBpcyB0byBw cm92aWRlIHRvIGhpZ2ggc2Nob29sICBhbmQgIGNvbGxlZ2UgIHN0dWRlbnRzLAp3aG8gIGFy ZSByZXNpZGVudHMgb2YgdGhlIHN0YXRlIG9mIE5ldyBZb3JrLCBoYXZpbmcgZXhjZXB0aW9u YWwgYXJ0aXN0aWMKc2tpbGxzIGFuZCB0YWxlbnRzIGFuZCAgd2hvICBhcmUgIGludGVyZXN0 ZWQgIGluICBwdXJzdWluZyAgcHJvZmVzc2lvbmFsCmNhcmVlcnMgIGluICB0aGUgIGFydHMs ICBhbiBvcHBvcnR1bml0eSB0byByZWNlaXZlIGFkdmFuY2VkIHRyYWluaW5nIGFuZAppbnN0 cnVjdGlvbiBvbiB0aGUgaGlnaGVzdCAgcHJvZmVzc2lvbmFsICBsZXZlbCAgZnJvbSAgYXJ0 aXN0cyAgd2hvICBhcmUKZGlzdGluY3RseSAgcXVhbGlmaWVkIGJ5IGJhY2tncm91bmQsIHRy YWluaW5nLCBhbmQgZXhwZXJpZW5jZSB0byBwcm92aWRlCnN1Y2ggaW5zdHJ1Y3Rpb24sIGF0 IGxvY2F0aW9ucyB0byBiZSBkZXRlcm1pbmVkIGJ5IHRoZSAgY29tbWlzc2lvbmVyICBvZgpl ZHVjYXRpb24uCgogIFMgICA3LjA1LiAgRXhlY3V0aXZlICBkaXJlY3Rvci4gIDEuICBUaGUg IGV4ZWN1dGl2ZSAgZGlyZWN0b3IgIGhlcmV0b2ZvcmUKYXBwb2ludGVkIGJ5IHRoZSBjb21t aXNzaW9uZXIgb2YgZWR1Y2F0aW9uIHRvIGJlIHRoZSBoZWFkIG9mIHRoZSAgTmV3ICBZb3Jr CnN0YXRlICBzdW1tZXIgIHNjaG9vbCAgb2YgdGhlIGFydHMgc2hhbGwgY29udGludWUgaW4g b2ZmaWNlLiAgVGhlIGV4ZWN1dGl2ZQpkaXJlY3RvciBzaGFsbCBob2xkIG9mZmljZSBhdCB0 aGUgcGxlYXN1cmUgb2YgdGhlIGNvbW1pc3Npb25lciBvZiBlZHVjYXRpb24KYW5kIHNoYWxs IGJlIHN1YmplY3QgdG8gc3VjaCBydWxlcyBhbmQgcmVndWxhdGlvbnMgYXMgaGUgbWF5IHBy ZXNjcmliZS4KICAyLiBUaGUgY29tbWlzc2lvbmVyIG9mIGVkdWNhdGlvbiBtYXkgYXBwb2lu dCBzdWNoIGRlcHV0aWVzLCBkaXJlY3RvcnMgYW5kCm90aGVyICBvZmZpY2VycywgIHRlYWNo ZXJzLCAgZW1wbG95ZWVzLCAgYWdlbnRzLCAgY29uc3VsdGFudHMgIGFuZCAgc3BlY2lhbApj b21taXR0ZWVzICBhcyAgaGUgbWF5IGRlZW0gbmVjZXNzYXJ5IGZvciB0aGUgcHJvcGVyIGlt cGxlbWVudGF0aW9uIG9mIHRoaXMKYXJ0aWNsZSwgcHJlc2NyaWJlIHRoZWlyIGR1dGllcywg Zml4IHRoZWlyICBjb21wZW5zYXRpb24gIGFuZCAgcHJvdmlkZSAgZm9yCnJlaW1idXJzZW1l bnQgIG9mICB0aGVpciAgZXhwZW5zZXMgd2l0aGluIHRoZSBhbW91bnRzIGF2YWlsYWJsZSB0 aGVyZWZvciBieQphcHByb3ByaWF0aW9uLiBUaGUgZXhlY3V0aXZlIGRpcmVjdG9yIHNoYWxs IGRldmVsb3AgYSBwcm9ncmFtIGFuZCBwbGFuICBmb3IKdGhlICBlc3RhYmxpc2htZW50ICBv ZiAgYSAgc3VtbWVyIHNjaG9vbCBvZiB0aGUgYXJ0cyBpbiBhbGwgYnJhbmNoZXMgb2YgdGhl CmFydHMgIHdoZW5ldmVyICBwb3NzaWJsZSwgIGFuZCAgaW4gIGFjY29yZGFuY2UgIHdpdGgg IHRoZSAgcnVsZXMgIG9mICAgc3VjaApjb21taXNzaW9uZXIgIHNoYWxsICB1bmRlcnRha2Ug YWxsIG5lY2Vzc2FyeSBhY3Rpb24gdG8gZXhlY3V0ZSBzdWNoIHByb2dyYW0KYW5kIHBsYW4g aW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBwcm92aXNpb25zIG9mIHRoaXMgc2VjdGlvbi4gIFRo ZSAgZXhlY3V0aXZlCmRpcmVjdG9yICBzaGFsbCAgdW5kZXJ0YWtlIHRoZSBuZWNlc3Nhcnkg c3R1ZGllcyBhbmQgZXZhbHVhdGlvbnMgYW5kIHJlcG9ydAp0byBzdWNoIGNvbW1pc3Npb25l ciBmb3Igd2F5cyBhbmQgbWVhbnMgdG8gaW1wcm92ZSB0aGUgc3VtbWVyIHNjaG9vbCBvZiB0 aGUKYXJ0cy4KICAzLiAgVGhlICBleGVjdXRpdmUgZGlyZWN0b3Igc2hhbGwgcHVyc3VlIGEg Y291cnNlIG9mIGFjdGlvbiBpbiBjb25uZWN0aW9uCndpdGggdGhlIHBlcmZvcm1hbmNlIG9m IGhpcyBkdXRpZXMgYW5kIHJlc3BvbnNpYmlsaXRpZXMgIHRvICBlbmNvdXJhZ2UgIGFuZApv YnRhaW4gIHRoZSAgc2VydmljZXMsICBvbiAgYSAgdm9sdW50YXJ5IGJhc2lzLCBvZiB3ZWxs LWtub3duIGFuZCBxdWFsaWZpZWQKYXJ0aXN0cyBhbmQgcGVyZm9ybWVycyB3aG8gaGF2ZSBk aXN0aW5ndWlzaGVkIHRoZW1zZWx2ZXMgaW4gdGhlIHZpc3VhbCAgYW5kCnBlcmZvcm1pbmcg YXJ0cywgYW5kIHdobyBieSBiYWNrZ3JvdW5kLCB0cmFpbmluZyBhbmQgZXhwZXJpZW5jZSBj YW4gcHJvdmlkZQpzdWNoIGVzc2VudGlhbCBzZXJ2aWNlcyB0byB0aGUgc3R1ZGVudHMgd2l0 aGluIHRoZSBtZWFuaW5nICBhbmQgIGludGVudCAgb2YKdGhpcyBhcnRpY2xlLgoKICBTICA3 LjA3LiAgQWR2aXNvcnkgIGNvdW5jaWw7ICBwb3dlcnMuIDEuIFRoZSAgYWR2aXNvcnkgY291 bmNpbCBoZXJldG9mb3JlCmFwcG9pbnRlZCBieSB0aGUgY29tbWlzc2lvbmVyIG9mIGVkdWNh dGlvbiBpcyBoZXJlYnkgIGNvbnRpbnVlZCAgY29uc2lzdGluZwpvZiAgc2V2ZW4gIG1lbWJl cnMgd2hvIG5lZWQgbm90IGJlIHJlc2lkZW50cyBvZiB0aGUgc3RhdGUsIGFuZCBlYWNoIG9m IHdob20Kc2hhbGwgc2VydmUgYXQgdGhlIHBsZWFzdXJlIG9mIHN1Y2ggY29tbWlzc2lvbmVy LiAgVGhlIHRlcm0gIG9mICBvZmZpY2UgIG9mCm1lbWJlcnMgIG9mIHN1Y2ggY291bmNpbCBz aGFsbCBiZSBmb3IgdHdvIHllYXJzLiBUaGUgY2hhaXJwZXJzb24gaGVyZXRvZm9yZQpkZXNp Z25hdGVkIGJ5IHRoZSBtZW1iZXJzIHNoYWxsIGNvbnRpbnVlIGluICBvZmZpY2UgIGFuZCAg IHNoYWxsICBoYXZlICB0aGUKcmVzcG9uc2liaWxpdHkgb2YgZW5mb3JjaW5nIGFsbCBzdWNo IHJlZ3VsYXRpb25zIHBlcnRhaW5pbmcgdG8gc3VjaCBjb3VuY2lsCmFzIHdpbGwgYmUgcHJv bXVsZ2F0ZWQgYnkgc3VjaCBjb21taXNzaW9uZXIuCiAgMi4gIEluICB0aGUgIGV2ZW50ICB0 aGF0ICBhIHZhY2FuY3kgb2NjdXJzIG9uIHRoZSBhZHZpc29yeSBjb3VuY2lsIGVpdGhlcgpi ZWNhdXNlIG9mIGluY2FwYWNpdHksIGRlYXRoIG9yIGRpc2FiaWxpdHkgb3IgZXhwaXJhdGlv biBvZiAgYSAgdGVybSwgIHN1Y2gKdmFjYW5jeSBzaGFsbCBiZSBmaWxsZWQgYnkgYXBwb2lu dG1lbnQgb2YgdGhlIGNvbW1pc3Npb25lciBvZiBlZHVjYXRpb24gZm9yCnRoZSBiYWxhbmNl IG9mIHRoZSB1bmV4cGlyZWQgdGVybS4KICAzLiBUaGUgYWR2aXNvcnkgY291bmNpbCBzaGFs bCB2aXNpdCBhbmQgaW5zcGVjdCBhbGwgZmFjaWxpdGllcyBtYWludGFpbmVkCmFuZCBvcGVy YXRlZCBieSB0aGUgZGVwYXJ0bWVudCBvZiBlZHVjYXRpb24sIGFuZCBoYXZlICBzdWNoICBv dGhlciAgIHBvd2VycwphbmQgIGR1dGllcyAgYXMgIG1heSAgYmUgIHJlcXVpcmVkICBvciAg YXV0aG9yaXplZCAgYnkgIHRoZSBjb21taXNzaW9uZXIgb2YKZWR1Y2F0aW9uLgogIDQuIE1l ZXRpbmdzIG9mIHRoZSBhZHZpc29yeSBjb3VuY2lsIHNoYWxsIGJlIGJpLW1vbnRobHksIG9y IG1vcmUgb2Z0ZW4gYXMKdGhlIGNvbW1pc3Npb25lciBvZiBlZHVjYXRpb24gbWF5IGRpcmVj dC4KICA1LiAgVGhlIG1lbWJlcnMgb2YgdGhlIGFkdmlzb3J5IGNvdW5jaWwgc2hhbGwgc2Vy dmUgd2l0aG91dCBwYXkgYnV0IHNoYWxsCmJlIHBhaWQgdGhlaXIgYWN0dWFsIGV4cGVuc2Vz IG5lY2Vzc2FyaWx5ICBpbmN1cnJlZCAgaW4gIHRoZSAgZGlzY2hhcmdlICBvZgp0aGVpciAg b2ZmaWNpYWwgIGR1dGllcy4gIE5vIG1lbWJlciBvZiB0aGUgY291bmNpbCBzaGFsbCBoYXZl IGFueSBwZWN1bmlhcnkKaW50ZXJlc3QgaW4gYW55IGNvbnRyYWN0IHBlcnRhaW5pbmcgdG8g dGhlIG9wZXJhdGlvbiBhbmQgYWRtaW5pc3RyYXRpb24gIG9mCnRoZSBzdW1tZXIgc2Nob29s IG9mIHRoZSBhcnRzIG9yIG9mIGFueSBvZiBpdHMgZmFjaWxpdGllcy4KCiAgUyAgNy4wOS4g IEFyZWFzICBvZiAgaW5zdHJ1Y3Rpb247IGNyZWRpdHMuICBUaGUgc3VtbWVyIHNjaG9vbCBv ZiB0aGUgYXJ0cwpzaGFsbCBjb25zaXN0IG9mIHRoZSBmb2xsb3dpbmcgZGl2aXNpb25zOgog IDEuICBUaGVhdHJlLgogIDIuICBCYWxsZXQgYW5kIG1vZGVybiBkYW5jZS4KICAzLiAgVmlz dWFsIGFydHMuCiAgNC4gIEZpbG0vbWVkaWEuCiAgNS4gIE11c2ljL29yY2hlc3RyYWwgc3R1 ZGllcy9jaG9yYWwgc3R1ZGllcy4KICA2LiAgQ3JlYXRpdmUgd3JpdGluZy4KICA3LiAgVGVj aG5pY2FsIHRoZWF0cmUgYXJ0cy4KCiAgUyA3LjExLiBUdWl0aW9uLiBUaGUgZXhlY3V0aXZl IGRpcmVjdG9yIHNoYWxsLCBzdWJqZWN0IHRvIHRoZSBhcHByb3ZhbCBvZgp0aGUgY29tbWlz c2lvbmVyIG9mIGVkdWNhdGlvbiBhbmQgdGhlICBkaXJlY3RvciAgb2YgIHRoZSAgYnVkZ2V0 LCAgZml4ICBhbmQKZGV0ZXJtaW5lIHRoZSBhbW91bnQgb2YgdHVpdGlvbiB0byBiZSBwYWlk IGJ5IGVhY2ggYXBwbGljYW50IGZvciBhZG1pc3Npb24uClN1Y2ggdHVpdGlvbiBtYXkgIGJl ICBwYWlkICBieSAgdGhlICBsb2NhbCAgc2Nob29sICBkaXN0cmljdCAgd2hlcmVpbiAgc3Vj aAphcHBsaWNhbnQgIHJlc2lkZXMgIGluICB3aG9sZSAgb3IgIGluIHBhcnQuICBQYXltZW50 IG9mIHN1Y2ggdHVpdGlvbiBtYXkgYmUKd2FpdmVkIGluIHdob2xlIG9yIGluIHBhcnQgYnkg dGhlIGV4ZWN1dGl2ZSBkaXJlY3RvciB1cG9uIGEgcHJvcGVyICBzaG93aW5nCm9mIGZpbmFu Y2lhbCBoYXJkc2hpcCBieSBhbiBhcHBsaWNhbnQgZm9yIGFkbWlzc2lvbi4KCiAgUyAgNy4x My4gIEVsaWdpYmlsaXR5IHJlcXVpcmVtZW50cyBmb3IgYWRtaXNzaW9uLiAgMS4gIEFsbCBh cHBsaWNhbnRzIGZvcgphZG1pc3Npb24gbXVzdCBiZSByZXNpZGVudHMgb2YgdGhlIHN0YXRl LgogIDIuICBBbGwgIGFwcGxpY2FudHMgZm9yIGFkbWlzc2lvbiBtdXN0IGRlbW9uc3RyYXRl IHRvIHRoZSBzYXRpc2ZhY3Rpb24gb2YKdGhlIGNvbW1pc3Npb25lciBvZiBlZHVjYXRpb24g dGhhdCBzdWNoIGFwcGxpY2FudDoKICAoYSkgSW50ZW5kcyB0byBwdXJzdWUgYSBwcm9mZXNz aW9uYWwgY2FyZWVyIGluIHNvbWUgYnJhbmNoIG9mIHRoZSBhcnRzIGFzCmRlc2NyaWJlZCBp biBzZWN0aW9uIDcuMDkgb2YgdGhpcyBhcnRpY2xlOwogIChiKSAgUG9zc2Vzc2VzICB1bmlx dWUgYW5kIGRpc3RpbmN0aXZlIHNraWxscywgcXVhbGlmaWNhdGlvbnMgYW5kIHRhbGVudHMK aW4gdGhlIHZpc3VhbCBhbmQgcGVyZm9ybWluZyBhcnRzIG9yIHN1Y2ggb3RoZXIgYXJlYXMg cmVsYXRlZCB0byAgdGhlICBhcnRzCmFzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDcuMDkgb2Yg dGhpcyBhcnRpY2xlLgogIDMuICBBbGwgIGFwcGxpY2FudHMgIGZvciBhZG1pc3Npb24gc2hh bGwgYmUgc2VsZWN0ZWQgb24gdGhlIGJhc2lzIG9mIG9wZW4KY29tcGV0aXRpb24gdG8gZGV0 ZXJtaW5lIHRoZWlyIGRlbW9uc3RyYXRlZCBhbmQvb3IgIHBvdGVudGlhbCAgYWJpbGl0eSAg YW5kCnBlcmZvcm1hbmNlIGNhcGFiaWxpdGllcy4KCiAgUyAgIDcuMTUuICAgUmVndWxhdGlv bnMgICBmb3IgIGFkbWlzc2lvbiAgYW5kICBzY2hvbGFzdGljICBjcmVkaXRzLiAgIFRoZQpj b21taXNzaW9uZXIgb2YgZWR1Y2F0aW9uIG1heSBtYWtlIHN1Y2ggIHJlZ3VsYXRpb25zICBp biAgcmVsYXRpb24gIHRvICB0aGUKYWRtaXNzaW9uICBvZiBhcHBsaWNhbnRzIGludG8gYW55 IG9mIHRoZSBmYWNpbGl0aWVzIG9wZXJhdGVkIGFuZCBtYWludGFpbmVkCmJ5IHRoZSBzdW1t ZXIgc2Nob29sIG9mIHRoZSBhcnRzLiBUaGUgY29tbWlzc2lvbmVyIG1heSAgZnVydGhlciAg cHJvbXVsZ2F0ZQphbGwgIHN1Y2ggIHJ1bGVzICB3aGljaCAgaW4gIGhpcyAgZGlzY3JldGlv biAgYXJlICBuZWNlc3NhcnkgIGFuZCBwcm9wZXIgdG8KZWZmZWN0dWF0ZSB0aGUgZm9yZWdv aW5nLCBhbmQgIGluICBhZGRpdGlvbiAgdGhlcmV0byAgc3BlY2lmeSAgYW5kICBmdXJ0aGVy CnByZXNjcmliZSBhbGwgc2Nob2xhc3RpYyBjcmVkaXRzIGFuZCB0aGUgZGVncmVlIHRoZXJl b2YgdGhhdCBtYXkgYmUgZ3JhbnRlZAp0byB0aGUgc3R1ZGVudHMgYXR0ZW5kaW5nIHRoZSBm YWNpbGl0aWVzIG9mIHRoZSBzdW1tZXIgc2Nob29sIG9mICB0aGUgIGFydHMKdXBvbiBzdWNj ZXNzZnVsIGNvbXBsZXRpb24gb2YgY291cnNlcyBwcm92aWRlZC4KCgoKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KTmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVy YWwgQWZmYWlycwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJUSUNMRSA4 CiAgICAgICAgICAgICAgICAgICAgIE5FVyBZT1JLIFNUQVRFIFdSSVRFUlNgIElOU1RJVFVU RQpTZWN0aW9uIDguMDEuIExlZ2lzbGF0aXZlIGZpbmRpbmdzIGFuZCBkZWNsYXJhdGlvbiBv ZiBwb2xpY3kuCiAgICAgICAgICAgICAgICAgICA4LjAzLiBOZXcgWW9yayBzdGF0ZSB3cml0 ZXJzYCBpbnN0aXR1dGUuCiAgICAgICAgICAgICAgICAgICA4LjA1LiBPYmplY3RpdmVzLgog ICAgICAgICAgICAgICAgICAgOC4wNy4gU2l0ZS4KICAgICAgICAgICAgICAgICAgIDguMDku IEFkbWluaXN0cmF0aW9uLgogICAgICAgICAgICAgICAgICAgOC4xMS4gTmV3ICBZb3JrIHN0 YXRlIFdhbHQgV2hpdG1hbiBjaXRhdGlvbiBvZiBtZXJpdCBmb3IKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBvZXRzLgogICAgICAgICAgICAgICAgICAgOC4xMy4gTmV3IFlv cmsgc3RhdGUgRWRpdGggV2hhcnRvbiBjaXRhdGlvbiBvZiBtZXJpdCBmb3IKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpY3Rpb24gd3JpdGVycy4KClMgIDguMDEuIExlZ2lz bGF0aXZlIGZpbmRpbmdzIGFuZCBkZWNsYXJhdGlvbiBvZiBwb2xpY3kuIFRoZSBsZWdpc2xh dHVyZQpoZXJlYnkgZmluZHMgYW5kIGRlY2xhcmVzIHRoYXQgTmV3IFlvcmsgc3RhdGUgaXMg dW5pcXVlIGFtb25nIHN0YXRlcyBmb3IKaXRzIGNvbnRyaWJ1dGlvbiB0byB0aGUgYXJ0IG9m IHdyaXRpbmcgYW5kIGZvciB0aGUgc3BlY2lhbCByZXNvdXJjZXMgYW5kCm9wcG9ydHVuaXRp ZXMgaXQgb2ZmZXJzIHRvIHdyaXRlcnMuIEl0IGlzIGhlcmVieSBmdXJ0aGVyIGZvdW5kIHRo YXQgIHRoZQphcnQgIG9mIHdyaXRpbmcgaXMgb2YgaW5jcmVhc2luZyBpbXBvcnRhbmNlIGFu ZCB0aGF0IHRoZSBnZW5lcmFsIHdlbGZhcmUKb2YgdGhlIHBlb3BsZSBvZiB0aGUgc3RhdGUg d2lsbCBiZSBlbmhhbmNlZCBieSB0aGUgIGVzdGFibGlzaG1lbnQgIG9mICBhCmNlbnRlciBk ZXZvdGVkIHRvIHdyaXRpbmcgYW5kIHRoZSBhbGxpZWQgYXJ0cy4KSXQgIGlzIGhlcmVieSBk ZWNsYXJlZCBhIHBvbGljeSBvZiB0aGUgc3RhdGUgdGhhdCB0aGVyZSBiZSBjcmVhdGVkIGEg TmV3Cllvcmsgc3RhdGUgd3JpdGVyc2AgaW5zdGl0dXRlIHdpdGggYSBsZWdpc2xhdGl2ZSAg bWFuZGF0ZSAgdG8gIGVuY291cmFnZQp0aGUgIGRldmVsb3BtZW50IG9mIHdyaXRpbmcgc2tp bGxzIGF0IGFsbCBsZXZlbHMgb2YgZWR1Y2F0aW9uIHRocm91Z2hvdXQKdGhlICBzdGF0ZSwg dG8gcHJvdmlkZSBhIG1pbGlldSBmb3IgZXN0YWJsaXNoZWQgYW5kIGFzcGlyaW5nIHdyaXRl cnMgIHRvCndvcmsgIHRvZ2V0aGVyIHRvIGVuY291cmFnZSB0aGUgZGV2ZWxvcG1lbnQgb2Ys IGFuZCBpbmNyZWFzZSB0aGUgZnJlZWRvbQpvZiwgdGhlIGFydGlzdGljIGltYWdpbmF0aW9u IG9mIHRoaXMgYXJ0IGluIHRoZSBzdGF0ZSBvZiBOZXcgWW9yay4KClMgIDguMDMuICBOZXcg WW9yayBzdGF0ZSB3cml0ZXJzYCBpbnN0aXR1dGUuIFRoZSBOZXcgWW9yayBzdGF0ZSB3cml0 ZXJzYAppbnN0aXR1dGUgaXMgaGVyZWJ5IGVzdGFibGlzaGVkIHVuZGVyICB0aGUgIGp1cmlz ZGljdGlvbiAgb2YgIHRoZSAgc3RhdGUKdW5pdmVyc2l0eSBvZiBOZXcgWW9yay4KClMgOC4w NS4gT2JqZWN0aXZlcy4gVGhlIE5ldyBZb3JrIHN0YXRlIHdyaXRlcnNgIGluc3RpdHV0ZSBz aGFsbDoKMS4gIEVzdGFibGlzaCAgYW4gIGFydHMgIGFuZCAgY3VsdHVyYWwgcHJvZ3JhbSBm b3IgdGhlIHN0dWR5IG9mIGNyZWF0aXZlCndyaXRpbmcgaW4gdGhlIGNvbnRleHQgb2YgbGl0 ZXJhcnkgY3JpdGljaXNtLCB0aGUgaHVtYW5pdGllcyAgYW5kICBvdGhlcgpjcmVhdGl2ZSBh cnRzOwoyLiAgSGlyZSAgc3VjaCAgd3JpdGVycywgYXJ0aXN0cyBhbmQgb3RoZXIgcGVyc29u bmVsIGFzIG1heSBiZSBuZWNlc3NhcnkKZm9yIHByb2dyYW1zLCBjb3Vyc2VzLCB3b3Jrc2hv cHMsIGxlY3R1cmVzIGFuZCByZWFkaW5ncyB0byBlbmNvdXJhZ2UgdGhlCmRldmVsb3BtZW50 ICBvZiAgd3JpdGluZyAgc2tpbGxzICBpbiAgYWxsICBwaGFzZXMgIGFuZCBnZW5yZXMgb2Yg d3JpdGluZwppbmNsdWRpbmcgZmljdGlvbiwgIG5vbi1maWN0aW9uLCAgcG9ldHJ5LCAgam91 cm5hbGlzbSwgIHBsYXl3cml0aW5nICBhbmQKc2NyZWVud3JpdGluZzsKMy4gIE9mZmVyICBz dWNoICBzY2hvbGFyc2hpcHMsICBncmFudHMgYW5kIGF3YXJkcyBpbiB3cml0aW5nIGFzIG1h eSBoZWxwCmRldmVsb3AgdGhlIHRhbGVudCBvZiB3cml0ZXJzIGFuZCB0aGUgY3JhZnQgb2Yg d3JpdGluZzsKNC4gT2ZmZXIgcHJvZ3JhbXMgZm9yIHRlYWNoZXJzIGFuZCBoaWdoIHNjaG9v bCBzdHVkZW50cyBpbiBOZXcgWW9yayB0aGF0CndpbGwgc2VydmUgdG8gdHJhaW4gdGhlbSBp biB0aGUgY3JhZnQgb2Ygd3JpdGluZyBhbmQgZGVtb25zdHJhdGUgaXQgYXMgYQpjb21wbGVt ZW50IHRvIG90aGVyIGFyZWFzIG9mIGVkdWNhdGlvbjsKNS4gIEF1dGhvcml6ZSAgdGhlIHRy dXN0ZWVzIG9mIHRoZSBzdGF0ZSB1bml2ZXJzaXR5IHRvIGFjY2VwdCwgb24gYmVoYWxmCm9m IHRoZSBpbnN0aXR1dGUsIGdpZnRzLCAgY29udHJpYnV0aW9ucyAgYW5kICBiZXF1ZXN0cyAg b2YgIHVucmVzdHJpY3RlZApmdW5kcyAgICBmcm9tICAgaW5kaXZpZHVhbHMsICAgZm91bmRh dGlvbnMsICAgY29ycG9yYXRpb25zICAgYW5kICAgb3RoZXIKb3JnYW5pemF0aW9ucyAgb3Ig IGluc3RpdHV0aW9ucyAgZm9yICB0aGUgIHB1cnBvc2UgIG9mICBmdXJ0aGVyaW5nICAgdGhl Cmluc3RpdHV0ZWBzIG9iamVjdGl2ZXM7CjYuICBPZmZlciAgYXQgbGVhc3Qgb25lIGxlY3R1 cmUgYW5udWFsbHkgYnkgYSBkaXN0aW5ndWlzaGVkIHdyaXRlciBvbiBhbgphc3BlY3Qgb2Yg dGhlIGNyZWF0aXZlIGltYWdpbmF0aW9uIHdoaWNoIHdpbGwgZnVydGhlciB0aGUgb2JqZWN0 aXZlcyAgb2YKdGhlICBpbnN0aXR1dGVgcyBwcm9ncmFtcyBhbmQgd2hpY2ggd2lsbCBlbnJp Y2ggdGhlIGNvbW11bml0eWBzIGV4cG9zdXJlCnRvIHRoZSBhcnRzOwo3LiAgRXN0YWJsaXNo ICBhbmQgIG1haW50YWluIHN1Y2ggcHVibGljYXRpb25zLCByZWNvcmRzIGFuZCBkb2N1bWVu dHMgYXMKbWF5IGhlbHAgYXJ0cyBhdWRpZW5jZXMgZm9yIHRoZSBmdXR1cmUgYW5kIHN0aW11 bGF0ZSBhbmQgYWlkICB0aGUgIGNyYWZ0Cm9mIHdyaXRpbmc7CjguICBGb3N0ZXIgY29vcGVy YXRpb24gYW1vbmcgcHJvZ3JhbXMgZm9yIHdyaXRlcnMgaW4gTmV3IFlvcmssIGluY2x1ZGlu Zwp3b3Jrc2hvcHMgdGhhdCB3aWxsIHNlcnZlIHRvIGVuaGFuY2UgY29udGludWVkIGRldmVs b3BtZW50IGluIHRoZSAgY3JhZnQKb2YgIHdyaXRpbmcgYW5kIHRvIGluY3JlYXNlIG9wcG9y dHVuaXRpZXMgZm9yIHdyaXRlcnMgaW4gTmV3IFlvcmsgc3RhdGU7CmFuZAo5LiAgRGV2ZWxv cCAgb3RoZXIgIHByb2dyYW1zICB0aGF0IHdpbGwgZW5oYW5jZSB0aGUgY3JhZnQgb2Ygd3Jp dGluZyBhbmQKb3Bwb3J0dW5pdGllcyBmb3Igd3JpdGVycy4KClMgOC4wNy4gU2l0ZS4gVGhl IHNpdGUgb2YgdGhlIE5ldyBZb3JrIHN0YXRlIHdyaXRlcnNgIGluc3RpdHV0ZSBzaGFsbCBi ZQphdCB0aGUgc3RhdGUgdW5pdmVyc2l0eSBvZiBOZXcgWW9yayBhdCBBbGJhbnkuCgpTICA4 LjA5LiAgQWRtaW5pc3RyYXRpb24uICBUaGUgIGluc3RpdHV0ZSAgc2hhbGwgIGJlICBhZG1p bmlzdGVyZWQgIGJ5IGEKZGlyZWN0b3IgYXBwb2ludGVkIGJ5IHRoZSB0cnVzdGVlcyBvZiAg dGhlICBzdGF0ZSAgdW5pdmVyc2l0eSAgdXBvbiAgdGhlCnJlY29tbWVuZGF0aW9uIG9mIHRo ZSBjaGFuY2VsbG9yIG9mIHRoZSBzdGF0ZSB1bml2ZXJzaXR5LgoKICBTICA4LjExLiAgTmV3 IFlvcmsgc3RhdGUgV2FsdCBXaGl0bWFuIGNpdGF0aW9uIG9mIG1lcml0IGZvciBwb2V0cy4g MS4gVGhlCmdvdmVybm9yIHNoYWxsIGJpZW5uaWFsbHkgcHJlc2VudCB0aGUgTmV3IFlvcmsg c3RhdGUgV2FsdCBXaGl0bWFuICBjaXRhdGlvbgpvZiAgbWVyaXQgIHRvICBhIGRpc3Rpbmd1 aXNoZWQgTmV3IFlvcmsgcG9ldCB1cG9uIHRoZSByZWNvbW1lbmRhdGlvbiBvZiB0aGUKcGFu ZWwgY29uc3RpdHV0ZWQgaW4gdGhpcyBzZWN0aW9uLiBUaGUgcG9ldCBzZWxlY3RlZCAgc2hh bGwgIGJlICBjb25zaWRlcmVkCnRoZSAgc3RhdGUgIHBvZXQgYW5kIHRoZSBjaXRhdGlvbiBz aGFsbCBjYXJyeSBhbiBob25vcmFyaXVtIG9mIHRlbiB0aG91c2FuZApkb2xsYXJzLgogIDIu ICBUaGUgIGluc3RpdHV0ZSBzaGFsbCBiaWVubmlhbGx5IGFwcG9pbnQgYW5kIGNvbnZlbmUg YW4gYWR2aXNvcnkgcGFuZWwKb2YgZGlzdGluZ3Vpc2hlZCBwb2V0cyBhbmQgcGVyc29ucyB3 aXRoIHBhcnRpY3VsYXIgZXhwZXJ0aXNlIGluICB0aGUgIGZpZWxkCm9mIHBvZXRyeS4gVGhl IGRpcmVjdG9yIG9mIHRoZSBpbnN0aXR1dGUgc2hhbGwgYmUgYSBwZXJtYW5lbnQgbWVtYmVy IG9mIHRoZQphZHZpc29yeSBwYW5lbCBhbmQgZWFjaCBjdXJyZW50IHN0YXRlIHBvZXQgc2hh bGwgc2VydmUgYXMgYSBtZW1iZXIgIG9mICB0aGUKcGFuZWwgIGluICBjaG9vc2luZyAgdGhl ICBuZXh0ICBOZXcgWW9yayBzdGF0ZSBXYWx0IFdoaXRtYW4gcG9ldC4gVGhlIHBhbmVsCnNo YWxsIHJlY29tbWVuZCB0byB0aGUgZ292ZXJub3IgYSBwb2V0IHdob3NlIGFjaGlldmVtZW50 cyBtYWtlIGhpbSAgb3IgIGhlcgpkZXNlcnZpbmcgb2Ygc3VjaCByZWNvZ25pdGlvbi4KICAz LiBUaGUgc3RhdGUgcG9ldCBzaGFsbCBwcm9tb3RlIGFuZCBlbmNvdXJhZ2UgcG9ldHJ5IHdp dGhpbiB0aGUgc3RhdGUgYW5kCnNoYWxsIGdpdmUgdHdvIHB1YmxpYyByZWFkaW5ncyB3aXRo aW4gdGhlIHN0YXRlIGVhY2ggeWVhci4KICA0LiAgVGhlICBpbnN0aXR1dGUgIHNoYWxsIGVz dGFibGlzaCBzdWNoIHByb2NlZHVyZXMgYW5kIGd1aWRlbGluZXMgYXMgYXJlCm5lY2Vzc2Fy eSB0byBlZmZlY3QgdGhlIHByb3Zpc2lvbnMgb2YgdGhpcyBzZWN0aW9uLgoKICBTICA4LjEz LiAgTmV3ICBZb3JrICBzdGF0ZSAgRWRpdGggIFdoYXJ0b24gIGNpdGF0aW9uIG9mIG1lcml0 IGZvciBmaWN0aW9uCndyaXRlcnMuIDEuIFRoZSBnb3Zlcm5vciBzaGFsbCBiaWVubmlhbGx5 IHByZXNlbnQgdGhlIE5ldyBZb3JrIHN0YXRlICBFZGl0aApXaGFydG9uICBjaXRhdGlvbiAg b2YgIG1lcml0ICB0byAgYSAgZGlzdGluZ3Vpc2hlZCBOZXcgWW9yayBhdXRob3IgdXBvbiB0 aGUKcmVjb21tZW5kYXRpb24gb2YgIHRoZSAgcGFuZWwgIGNvbnN0aXR1dGVkICBpbiAgdGhp cyAgc2VjdGlvbi4gIFRoZSAgYXV0aG9yCnNlbGVjdGVkICBzaGFsbCBiZSBjb25zaWRlcmVk IHRoZSBzdGF0ZSBhdXRob3IgYW5kIHRoZSBjaXRhdGlvbiBzaGFsbCBjYXJyeQphbiBob25v cmFyaXVtIG9mIHRlbiB0aG91c2FuZCBkb2xsYXJzLgogIDIuICBUaGUgIGluc3RpdHV0ZSBz aGFsbCBiaWVubmlhbGx5IGFwcG9pbnQgYW5kIGNvbnZlbmUgYW4gYWR2aXNvcnkgcGFuZWwK b2YgZGlzdGluZ3Vpc2hlZCBhdXRob3JzIGFuZCBwZXJzb25zIHdpdGggcGFydGljdWxhciBl eHBlcnRpc2UgaW4gdGhlIGZpZWxkCm9mICBmaWN0aW9uLiAgVGhlICBkaXJlY3RvciBvZiB0 aGUgaW5zdGl0dXRlIHNoYWxsIGJlIGEgcGVybWFuZW50IG1lbWJlciBvZgp0aGUgYWR2aXNv cnkgcGFuZWwgYW5kIGVhY2ggY3VycmVudCBzdGF0ZSBhdXRob3Igc2hhbGwgc2VydmUgYXMg YSBtZW1iZXIgb2YKdGhlICBwYW5lbCAgaW4gIGNob29zaW5nICB0aGUgIHJlY2lwaWVudCAg b2YgIHRoZSBuZXh0IE5ldyBZb3JrIHN0YXRlIEVkaXRoCldoYXJ0b24gY2l0YXRpb24gb2Yg bWVyaXQuIFRoZSBwYW5lbCBzaGFsbCByZWNvbW1lbmQgIHRvICB0aGUgIGdvdmVybm9yICBh bgphdXRob3Igd2hvc2UgYWNoaWV2ZW1lbnRzIG1ha2UgaGltIG9yIGhlciBkZXNlcnZpbmcg b2Ygc3VjaCByZWNvZ25pdGlvbi4KICAzLiAgVGhlIHN0YXRlIGF1dGhvciBzaGFsbCBwcm9t b3RlIGFuZCBlbmNvdXJhZ2UgZmljdGlvbiB3aXRoaW4gdGhlIHN0YXRlCmFuZCBzaGFsbCBn aXZlIHR3byBwdWJsaWMgcmVhZGluZ3Mgd2l0aGluIHRoZSBzdGF0ZSBlYWNoIHllYXIuCiAg NC4gIFRoZSAgaW5zdGl0dXRlICBzaGFsbCBlc3RhYmxpc2ggc3VjaCBwcm9jZWR1cmVzIGFu ZCBndWlkZWxpbmVzIGFzIGFyZQpuZWNlc3NhcnkgdG8gZWZmZWN0IHRoZSBwcm92aXNpb25z IG9mIHRoaXMgc2VjdGlvbi4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUg Q29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQVJUSUNMRSA5CiAgICAgICAgICAgICAgICBORVcg WU9SSyBTVEFURSBUSEVBVFJFIElOU1RJVFVURSBDT1JQT1JBVElPTgpTZWN0aW9uICA5LjAx IExlZ2lzbGF0aXZlIGZpbmRpbmdzIGFuZCBkZWNsYXJhdGlvbi4KICAgICAgICAgOS4wMy4g RGVmaW5pdGlvbnMuCiAgICAgICAgIDkuMDUuIE5ldyBZb3JrIHN0YXRlIHRoZWF0cmUgaW5z dGl0dXRlIGNvcnBvcmF0aW9uLgogICAgICAgICA5LjA3LiBPYmplY3RpdmVzLgogICAgICAg ICA5LjA5LiBBZG1pbmlzdHJhdGlvbi4KICAgICAgICAgOS4xMS4gR2VuZXJhbCBwb3dlcnMg YW5kIGR1dGllcyBvZiB0aGUgY29ycG9yYXRpb24uCiAgICAgICAgIDkuMTMuIFJlcG9ydHMu CiAgICAgICAgIDkuMTUuIENvb3BlcmF0aW9uIGFuZCBhc3Npc3RhbmNlIG9mIG90aGVyIGFn ZW5jaWVzLgoKICBTICA5LjAxLiAgTGVnaXNsYXRpdmUgIGZpbmRpbmdzICBhbmQgIGRlY2xh cmF0aW9uLiBUaGUgbGVnaXNsYXR1cmUgaGVyZWJ5CmZpbmRzIGFuZCBkZWNsYXJlcyB0aGF0 IHRoZSBsZWdpc2xhdGl2ZSBmaW5kaW5ncyBzZXQgZG93biB1cG9uIHRoZSBjcmVhdGlvbgpv ZiAgdGhlICBlbXBpcmUgIHN0YXRlICB5b3V0aCAgdGhlYXRyZSAgaW5zdGl0dXRlIHB1cnN1 YW50IHRvIGNoYXB0ZXIgZWlnaHQKaHVuZHJlZCB0d2VudHktc2l4IG9mIHRoZSBsYXdzIG9m IG5pbmV0ZWVuIGh1bmRyZWQgIHNldmVudHktZm91ciwgIGNvbnRpbnVlCnRvIGJlIHZhbGlk IGFuZCBoZXJlYnkgcmVhZmZpcm1zIGFuZCByZXN0YXRlcyB0aGVzZSBmaW5kaW5nczoKICAx LiAgVGhlICBhcnRzICBhcmUgIGEgbW90aXZhdGluZyBmb3JjZSBpbiBvdXIgc2Nob29scyBh bmQgaW4gb3VyIHNvY2lldHkuClRoZXkgYXJlIGEgc2Vuc2l0aXppbmcgZXhwZXJpZW5jZSBm b3IgYSBmdWxsZXIgbGlmZSBhbmQgYSBjb21wbGVtZW50IHRvIHRoZQpza2lsbHMgb2YgcmVh ZGluZywgd3JpdGluZyBhbmQgbWF0aGVtYXRpY3MuCiAgMi4gVGhlIHVzZSBvZiBjcmVhdGl2 ZSBhcnRzIGZvciBjaGlsZHJlbiBhbmQgeW91dGggd2l0aGluIHRoZSBlZHVjYXRpb25hbApz dHJ1Y3R1cmUgaGFzIGJlZW4gc2hvd24gdG8gaW5jcmVhc2Ugc3R1ZGVudCBzdWNjZXNzIGlu IGFsbCBkaXNjaXBsaW5lcyBhbmQKdG8gZW5jb3VyYWdlIGVtb3Rpb25hbCBncm93dGguCiAg My4gIFRlYWNoZXJzICBzaG91bGQgIGJlICBleHBlcmllbmNlZCAgaW4gIHRoZSAgdXNlICBv ZiAgYXJ0cyBhbmQgdGhlYXRyZQp0ZWNobmlxdWVzIGluIHJlYWNoaW5nIGFuZCB3b3JraW5n IHdpdGggY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZSwgYXMgIHdlbGwKYXMgYmUgcHJlcGFy ZWQgaW4gdGhlIHVzZSBvZiBjb21tdW5pdHkgY3VsdHVyYWwgYW5kIGh1bWFuIHJlc291cmNl cy4KICBUaGUgIGxlZ2lzbGF0dXJlICBmdXJ0aGVyICBmaW5kcyAgdGhhdCAgdGhlcmUgIHNo b3VsZCAgYmUgYSBzdGF0ZSB0aGVhdHJlCmluc3RpdHV0ZSBkZWRpY2F0ZWQgdG8gYnJpbmdp bmcgYXJ0cyBpbiBlZHVjYXRpb24gdG8gdGhlIGNoaWxkcmVuIGFuZCB5b3VuZwpwZW9wbGUg b2YgdGhpcyBzdGF0ZS4KICBJdCAgaXMgIGZ1cnRoZXIgIGZvdW5kICB0aGF0IHN1Y2ggc3Rh dGUgdGhlYXRyZSBpbnN0aXR1dGUgc2hvdWxkIGVtYm9keSBhCm1vZGVsIHRoZWF0cmUgYW5k IGVkdWNhdGlvbiBwcm9ncmFtIGZvciB0aGUgY2hpbGRyZW4gb2YgTmV3IFlvcmsgc3RhdGUg IGFuZApzaG91bGQgIHN5bWJvbGl6ZSAgdGhlIGNvbW1pdG1lbnQgb2YgdGhlIHBlb3BsZSBv ZiB0aGUgc3RhdGUgb2YgTmV3IFlvcmsgdG8KdGhlIG1haW50ZW5hbmNlIGFuZCBkZXZlbG9w bWVudCBvZiB0aGVhdHJlIGFuZCBlZHVjYXRpb24gZm9yICBjaGlsZHJlbiAgYW5kCnlvdW5n ICBwZW9wbGUgd2hpbGUgbWFraW5nIHByb2dyYW1zIG9mIHN1Y2ggdGhlYXRyZSBpbnN0aXR1 dGUgYWNjZXNzaWJsZSB0bwp0aGUgZ2VuZXJhbCBwdWJsaWMuCiAgSXQgIGlzICBmdXJ0aGVy ICBmb3VuZCB0aGF0IHN1Y2ggc3RhdGUgdGhlYXRyZSBpbnN0aXR1dGUgc2hvdWxkIGVzdGFi bGlzaAphZmZpbGlhdGlvbnMgd2l0aCAgcHVibGljICBhbmQgIHByaXZhdGUgIHNjaG9vbHMs ICBpbnN0aXR1dGlvbnMgIG9mICBoaWdoZXIKbGVhcm5pbmcgIGFuZCAgYXJ0cyAgY2VudGVy cyAgdG8gIGFzc3VyZSAgZGVsaXZlcnkgb2YgaXRzIHNlcnZpY2VzIHRvIHlvdW5nCnBlb3Bs ZSB0aHJvdWdob3V0IHRoZSBzdGF0ZS4KICBJdCAgaXMgIHRoZXJlZm9yZSAgZm91bmQgYW5k IGRlY2xhcmVkIHRoYXQgdGhlc2UgZmluZGluZ3MgY2FuIGJlc3QgYmUgbWV0CnRocm91Z2gg dGhlIGVzdGFibGlzaG1lbnQgb2YgYSBwdWJsaWMgYmVuZWZpdCBjb3Jwb3JhdGlvbiB0byAg YmUgIGtub3duICBhcwp0aGUgIE5ldyBZb3JrIHN0YXRlIHRoZWF0cmUgaW5zdGl0dXRlIGNv cnBvcmF0aW9uIGFuZCB0aGUgcG93ZXJzIGFuZCBkdXRpZXMKb2YgdGhlIGNvcnBvcmF0aW9u IGRlZmluZWQgaW4gdGhpcyBhcnRpY2xlIGFyZSBuZWNlc3NhcnkgYW5kIHByb3BlciBmb3Ig dGhlCmFjaGlldmVtZW50IG9mIHRoZXNlIGVuZHMuCgogIFMgOS4wMy4gRGVmaW5pdGlvbnMu IEFzIHVzZWQgaW4gdGhpcyBhcnRpY2xlOgogIDEuICAiQ29ycG9yYXRpb24iICBzaGFsbCAg bWVhbiAgdGhlICBOZXcgIFlvcmsgIHN0YXRlICB0aGVhdHJlICBpbnN0aXR1dGUKY29ycG9y YXRpb24gY3JlYXRlZCBieSB0aGlzIGFydGljbGUuCiAgMi4gICJBZ2VuY3kiICBtZWFucyAg YW55ICBzdGF0ZSBib2FyZCwgYm9keSwgYnVyZWF1LCBjb21taXNzaW9uLCBjb3VuY2lsLApk ZXBhcnRtZW50LCBwdWJsaWMgYXV0aG9yaXR5LCBwdWJsaWMgY29ycG9yYXRpb24sIGRpdmlz aW9uLCBvZmZpY2Ugb3Igb3RoZXIKZ292ZXJubWVudGFsIG9yIHByb3ByaWV0YXJ5IGZ1bmN0 aW9uIGZvciB0aGUgc3RhdGUuCgogIFMgIDkuMDUuICBOZXcgIFlvcmsgc3RhdGUgdGhlYXRy ZSBpbnN0aXR1dGUgY29ycG9yYXRpb24uIFRoZSBlbXBpcmUgc3RhdGUKeW91dGggdGhlYXRy ZSBpbnN0aXR1dGUgaXMgY29udGludWVkIGFuZCByZWVzdGFibGlzaGVkIGFuZCByZWNvbnN0 aXR1dGVkIGFzCnRoZSBOZXcgWW9yayBzdGF0ZSB0aGVhdHJlIGluc3RpdHV0ZSBjb3Jwb3Jh dGlvbi4KCiAgUyAgOS4wNy4gIE9iamVjdGl2ZXMuICBUaGUgIE5ldyAgWW9yayBzdGF0ZSB0 aGVhdHJlIGluc3RpdHV0ZSBjb3Jwb3JhdGlvbgpzaGFsbDoKICAxLiAgRXN0YWJsaXNoIGEg dGhlYXRyZSBhbmQgZWR1Y2F0aW9uIHByb2dyYW0gZm9yIHRoZSBjaGlsZHJlbiwgeW91dGgg YW5kCmVkdWNhdG9ycyBvZiBOZXcgWW9yayBzdGF0ZSwgdG8gaW5jbHVkZSB0aGUgIHBlcmZv cm1pbmcgIGFuZCAgdmlzdWFsICBtZWRpYQp3aGlsZSAgZW1waGFzaXppbmcgIGRpdmVyc2l0 eSwgbXVsdGktY3VsdHVyYWxpc20gYW5kIGFzc3VyaW5nIGFjY2VzcyB0byBhbmQKaW52b2x2 ZW1lbnQgb2YgdGhlIGRpc2FibGVkOwogIDIuICBPZmZlciAgTmV3ICBZb3JrICBzdGF0ZSAg ZWxlbWVudGFyeSAgYW5kICBzZWNvbmRhcnkgIHNjaG9vbCAgdGVhY2hlcnMKaW4tc2Vydmlj ZSB0cmFpbmluZyBpbiB0aGUgdXNlIG9mIHRoZWF0cmUgYXJ0cyBhcyBhIGNvbW11bml0eSBy ZXNvdXJjZSwgIGFzCmEgIGNvbXBsZW1lbnQgIHRvICBhbGwgIG90aGVyICBhcmVhcyAgb2Yg IGVkdWNhdGlvbiwgYW5kIGFzIGFuIGV4dGVuc2lvbiBvZgpjbGFzc3Jvb20gY3VycmljdWx1 bTsKICAzLiAgT2ZmZXIgIGFjY3JlZGl0ZWQgIGludGVyc2hpcHMgIGluICB0aGVhdHJlIGFy dHMgZWR1Y2F0aW9uIHRvIHN0dWRlbnRzCmJlaW5nICB0cmFpbmVkICBhcyAgdGVhY2hlcnMg IGFuZCAgYXJ0aXN0cyAgYnkgIGJvdGggIHB1YmxpYyAgYW5kICAgcHJpdmF0ZQppbnN0aXR1 dGlvbnMgb2YgaGlnaGVyIGxlYXJuaW5nOwogIDQuICBPZmZlciAgb3Bwb3J0dW5pdGllcyAg Zm9yIGhpZ2ggc2Nob29sIGFuZCBjb2xsZWdlIGxldmVsIHN0dWRlbnRzIGZyb20KcHJpdmF0 ZSBhbmQgcHVibGljIGluc3RpdHV0aW9ucyBvZiBoaWdoZXIgbGVhcm5pbmcgdG8gIHBhcnRp Y2lwYXRlICBpbiAgdGhlCnRoZWF0cmUsIGVkdWNhdGlvbiBhbmQgYXJ0cyBtYW5hZ2VtZW50 IGFzcGVjdHMgb2YgdGhlIGNvcnBvcmF0aW9uIHRocm91Z2ggYQpwcmFjdGljdW07CiAgNS4g IE9mZmVyICBndWlkYW5jZSAgYW5kICBjb25zdWx0YXRpb24gIG9uIGFydHMgYW5kIGVkdWNh dGlvbiBwcm9ncmFtcyBpbgpwdWJsaWMgYW5kIHByaXZhdGUgZWxlbWVudGFyeSBhbmQgc2Vj b25kYXJ5ICBzY2hvb2xzICBhbmQgIGluc3RpdHV0aW9ucyAgb2YKaGlnaGVyIGxlYXJuaW5n IGFuZCBjb21tdW5pdHkgY2VudGVycyB0aHJvdWdob3V0IHRoZSBzdGF0ZTsKICA2LiAgU2Vy dmUgIGFzICBhIHByb2Zlc3Npb25hbCB0aGVhdHJlIGNvbXBhbnkgYW5kIGFuIGVkdWNhdGlv bmFsIHJlc291cmNlCmNlbnRlciBmb3IgY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZTsKICA3 LiAgT2ZmZXIgIHRvdXJpbmcgIHByb2dyYW1zIGluIHRoZWF0cmUgYW5kIGFzc29jaWF0ZWQg ZWR1Y2F0aW9uIHByb2dyYW1zCmZvciBjaGlsZHJlbiAgYW5kICB5b3VuZyAgcGVvcGxlICBp biAgcHVibGljICBhbmQgIHByaXZhdGUgIGVsZW1lbnRhcnkgIGFuZApzZWNvbmRhcnkgc2No b29scyB0aHJvdWdob3V0IHRoZSBzdGF0ZTsgYW5kCiAgOC4gIERldmVsb3AgIHRoZWF0cmUg YXVkaWVuY2VzIGZvciB0aGUgZnV0dXJlIGJ5IHN0aW11bGF0aW5nIGNoaWxkcmVuIGFuZAp5 b3VuZyBwZW9wbGUgd2hvIGhhdmUgaGFkIGxpdHRsZSBvciBubyBleHBlcmllbmNlIGluIHRo ZSBhcnRzLgoKICBTICAgOS4wOS4gIEFkbWluaXN0cmF0aW9uLiAgMS4gIFRoZSAgTmV3ICBZ b3JrICBzdGF0ZSAgdGhlYXRyZSAgaW5zdGl0dXRlCmNvcnBvcmF0aW9uIHNoYWxsIGJlIGEg Ym9keSBjb3Jwb3JhdGUgYW5kICBwb2xpdGljICBjb25zdGl0dXRpbmcgIGEgIHB1YmxpYwpi ZW5lZml0ICBjb3Jwb3JhdGlvbi4gIEl0ICBzaGFsbCAgaGF2ZSAgdGhlICBwb3dlcnMgIGFu ZCAgcHJpdmlsZWdlcyAgb2YgIGEKY29ycG9yYXRpb24gYW5kICBhbGwgIG9mICBpdHMgIGJ1 c2luZXNzICBzaGFsbCAgYmUgIHRyYW5zYWN0ZWQsICBhbGwgIGZ1bmRzCmludmVzdGVkLCAg YWxsIHdhcnJhbnRzIGZvciBtb25leSBkcmF3biBhbmQgcGF5bWVudHMgbWFkZSwgYW5kIGFs bCBjYXNoIGFuZApzZWN1cml0aWVzIGFuZCBhbnkgb3RoZXIgcGVyc29uYWwgYW5kIHJlYWwg cHJvcGVydHkgc2hhbGwgYmUgaGVsZCB1bmRlciBpdHMKY29ycG9yYXRlIG5hbWUuCiAgMi4g IFRoZSAgY29ycG9yYXRpb24gc2hhbGwgY29uc2lzdCBvZiBhIGJvYXJkIG9mIGRpcmVjdG9y cyBjb21wcmlzZWQgb2YgYQpjaGFpcnBlcnNvbiBhbmQgZm91cnRlZW4gdm90aW5nIG1lbWJl cnMgcmVwcmVzZW50aW5nIHRoZSB0aGVhdHJlLCBlZHVjYXRpb24KYW5kICBidXNpbmVzcyAg Y29tbXVuaXRpZXMgIHRvIGJlIGFwcG9pbnRlZCBieSBhbmQgc2VydmUgYXQgdGhlIHBsZWFz dXJlIG9mCnRoZSAgZ292ZXJub3IuICBFYWNoICBtZW1iZXIgIGFwcG9pbnRlZCAgc2hhbGwg IGJlICByZXByZXNlbnRhdGl2ZSAgb2YgIHRoZQpkaXNjaXBsaW5lcyAgYXBwbGljYWJsZSAg dG8gIHRoZSAgdGhlYXRyZSAgaW5zdGl0dXRlICBwcm9ncmFtLiBUaGUgYm9hcmQgb2YKZGly ZWN0b3JzIHNoYWxsIGNvbnNpc3Qgb2YgdHdvIG1lbWJlcnMgIHJlcHJlc2VudGluZyAgZXhl Y3V0aXZlcyAgZnJvbSAgdGhlCmNvcnBvcmF0ZSAgYnVzaW5lc3MgIHNlY3RvciAgdG8gIGJl ICBhcHBvaW50ZWQgYnkgdGhlIGdvdmVybm9yLCBvbmUgb2Ygd2hvbQpzaGFsbCBiZSBkZXNp Z25hdGVkIGFzIGNoYWlycGVyc29uICBhbmQgIHRoZSAgb3RoZXIgIHRvICBiZSAgZGVzaWdu YXRlZCAgYXMKdHJlYXN1cmVyOyAgIG9uZSAgIG1lbWJlciAgcmVwcmVzZW50aW5nICB0aGUg IHByYWN0aWNpbmcgIGxlZ2FsICBwcm9mZXNzaW9uCnNwZWNpYWxpemluZyBpbiBhcnRzIGFu ZCBlbnRlcnRhaW5tZW50IGxhdyB0byBiZSBhcHBvaW50ZWQgYnkgdGhlIGdvdmVybm9yOwpm b3VyIG1lbWJlcnMgcmVwcmVzZW50aW5nIGVsZW1lbnRhcnktbGV2ZWwgdGVhY2hlcnMsIHR3 byB0byBiZSBhcHBvaW50ZWQgYnkKdGhlIGdvdmVybm9yIGFuZCB0d28gIHRvICBiZSAgYXBw b2ludGVkICB1cG9uICB0aGUgIHJlY29tbWVuZGF0aW9uICBvZiAgdGhlCnRlbXBvcmFyeSAg ICBwcmVzaWRlbnQgICBvZiAgIHRoZSAgIHNlbmF0ZTsgICBmb3VyICAgbWVtYmVycyAgIHJl cHJlc2VudGluZwpzZWNvbmRhcnktbGV2ZWwgdGVhY2hlcnMsIHR3byB0byBiZSBhcHBvaW50 ZWQgdXBvbiAgdGhlICByZWNvbW1lbmRhdGlvbiAgb2YKdGhlICBzcGVha2VyICBvZiAgdGhl IGFzc2VtYmx5IGFuZCB0d28gdG8gYmUgYXBwb2ludGVkIGJ5IHRoZSBnb3Zlcm5vcjsgdHdv Cm1lbWJlcnMgcmVwcmVzZW50aW5nIGhpZ2hlciBlZHVjYXRpb24gcmVwcmVzZW50aW5nIHBy b2Zlc3Npb25hbHMgb3IgZmFjdWx0eQp3aG8gIHdvcmsgIHdpdGggIGNoaWxkcmVuICBhbmQg IHlvdW5nICBwZW9wbGUsICBvbmUgIHRvIGJlIGFwcG9pbnRlZCBieSB0aGUKZ292ZXJub3Ig YW5kIG9uZSB0byBiZSBhcHBvaW50ZWQgdXBvbiB0aGUgcmVjb21tZW5kYXRpb24gIG9mICB0 aGUgIG1pbm9yaXR5CmxlYWRlciAgb2YgIHRoZSAgc2VuYXRlOyAgdHdvICBtZW1iZXJzICBy ZXByZXNlbnRpbmcgIHByb2Zlc3Npb25hbCAgdGhlYXRyZQpzcGVjaWFsaXN0cywgb25lIHRv IGJlIGFwcG9pbnRlZCB1cG9uIHRoZSByZWNvbW1lbmRhdGlvbiAgb2YgIHRoZSAgbWlub3Jp dHkKbGVhZGVyICBvZiAgdGhlICBhc3NlbWJseSAgYW5kICBvbmUgIHRvICBiZSBhcHBvaW50 ZWQgYnkgdGhlIGdvdmVybm9yLiAgVGhlCnByZXNpZGVudCBvZiB0aGUgY2l0aXplbnMgZm9y IHRoZSBOZXcgWW9yayBzdGF0ZSAgdGhlYXRlciAgaW5zdGl0dXRlLCAgaW5jLgpzaGFsbCAg YmUgIGFuICBleCAgb2ZmaWNpbywgIG5vbi12b3RpbmcgbWVtYmVyLiBUaGUgbWVtYmVycyBm aXJzdCBhcHBvaW50ZWQKc2hhbGwgc2VydmUgZm9yIGEgcGVyaW9kIG9mIHRocmVlIHllYXJz OyB0aGVpciAgc3VjY2Vzc29ycyAgYW5kICBhbGwgIG90aGVyCmFwcG9pbnRlZCAgbWVtYmVy cyAgc2hhbGwgIHNlcnZlIGZvciBhIGZvdXIteWVhciB0ZXJtIGFuZCBlYWNoIG1lbWJlciBz aGFsbApjb250aW51ZSB0byBzZXJ2ZSB1bnRpbCB0aGUgYXBwb2ludG1lbnQgYW5kIHF1YWxp ZmljYXRpb24gIG9mICBoaXMgIG9yICBoZXIKc3VjY2Vzc29yLiAgIFZhY2FuY2llcyAgYW1v bmcgIG1lbWJlcnMgIG90aGVyd2lzZSB0aGFuIGJ5IHRoZSBleHBpcmF0aW9uIG9mCnRlcm0g c2hhbGwgYmUgZmlsbGVkIGJ5IHRoZSBhcHBvaW50aW5nIGF1dGhvcml0eSBmb3IgIHRoZSAg dW5leHBpcmVkICB0ZXJtLgpUaGUgIGNoYWlycGVyc29uICBhbmQgIG90aGVyICBtZW1iZXJz IG9mIHRoZSBib2FyZCBzaGFsbCBub3QgYmUgZW50aXRsZWQgdG8KY29tcGVuc2F0aW9uIGZv ciB0aGVpciBzZXJ2aWNlcyBidXQgc2hhbGwgYmUgZW50aXRsZWQgdG8gIHJlaW1idXJzZW1l bnQgZm9yCnRoZWlyICBhY3R1YWwgIGFuZCAgbmVjZXNzYXJ5IGV4cGVuc2VzIGluY3VycmVk IGluIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGVpcgpvZmZpY2lhbCBkdXRpZXMuIEEgbWFqb3Jp dHkgb2YgdGhlIGNoYWlycGVyc29uIGFuZCAgb3RoZXIgIG1lbWJlcnMgIG9mICB0aGUKYm9h cmQgIHNoYWxsIGNvbnN0aXR1dGUgYSBxdW9ydW0gZm9yIHRoZSB0cmFuc2FjdGlvbiBvZiB0 aGUgYnVzaW5lc3Mgb2YgdGhlCmNvcnBvcmF0aW9uLgogIDMuICAgTm8gICBtZW1iZXIsICBv ZmZpY2VyICBvciAgZW1wbG95ZWUgIG9mICB0aGUgIGNvcnBvcmF0aW9uICBzaGFsbCAgYmUK ZGlzcXVhbGlmaWVkIGZyb20gaG9sZGluZyBhbnkgb3RoZXIgcHVibGljIG9mZmljZSBvciBl bXBsb3ltZW50LCBub3IgIHNoYWxsCmhlICBvciAgc2hlICBmb3JmZWl0ICBhbnkgc3VjaCBv ZmZpY2Ugb3IgZW1wbG95bWVudCBieSByZWFzb24gb2YgaGlzIG9yIGhlcgphcHBvaW50bWVu dCAgaGVyZXVuZGVyICBub3R3aXRoc3RhbmRpbmcgIHRoZSAgcHJvdmlzaW9ucyAgb2YgIGFu eSAgZ2VuZXJhbCwKc3BlY2lhbCBvciBsb2NhbCBsYXcsIG9yZGluYW5jZSwgY2l0eSBvciBj b3VudHkgY2hhcnRlci4KICA0LiBUaGUgY29ycG9yYXRpb24gc2hhbGwgY29udGludWUgdW50 aWwgYWxsIGl0cyBsaWFiaWxpdGllcyBoYXZlIGJlZW4gbWV0Cm9yIG90aGVyd2lzZSBkaXNj aGFyZ2VkIGFuZCB1bnRpbCBpdHMgZXhpc3RlbmNlIHNoYWxsIGhhdmUgYmVlbiAgdGVybWlu YXRlZApieSAgbGF3LiAgVXBvbiAgdGhlIHRlcm1pbmF0aW9uIG9mIHRoZSBleGlzdGVuY2Ug b2YgdGhlIGNvcnBvcmF0aW9uLCBhbGwgb2YKaXRzIHJpZ2h0cyBhbmQgcHJvcGVydHkgc2hh bGwgcGFzcyB0byBhbmQgYmUgdmVzdGVkIGluIHRoZSBzdGF0ZS4KICA1LiAgVGhlICBjb3Jw b3JhdGlvbiAgc2hhbGwgaG9sZCByZWd1bGFyICBtZWV0aW5ncyBhdCBsZWFzdCBxdWFydGVy bHkgYW5kCnNoYWxsIGhvbGQgc3BlY2lhbCBtZWV0aW5ncyBvbiB0aGUgY2FsbCBvZiB0aGUg IGNoYWlycGVyc29uICBvciAgYW55ICB0aHJlZQptZW1iZXJzICB1cG9uICBnaXZpbmcgIG5v dGljZSAgdGhlcmVvZiB0byBhbGwgbWVtYmVycyBvZiB0aGUgY29ycG9yYXRpb24gYXQKbGVh c3QgZm9ydHktZWlnaHQgaG91cnMgaW4gYWR2YW5jZS4gQWxsIG1lZXRpbmdzIHNoYWxsIGJl IGhlbGQgYW5kICBub3RpY2VzCmZpbGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgb3BlbiBt ZWV0aW5ncyBsYXcuCiAgNi4gIFRoZSAgc2VjcmV0YXJ5ICBvZiAgdGhlICBjb3Jwb3JhdGlv biAgc2hhbGwgYmUgZWxlY3RlZCBmcm9tIHRoZSBib2FyZAptZW1iZXJzaGlwLgogIDcuICBU aGUgIGNvcnBvcmF0aW9uICBzaGFsbCAgYmUgIGFkbWluaXN0ZXJlZCBieSBhIHByb2R1Y2lu ZyBkaXJlY3RvciB3aG8Kc2hhbGwgYmUgYXBwb2ludGVkIGJ5IGFuZCBzZXJ2ZSBhdCB0aGUg cGxlYXN1cmUgb2YgdGhlIGJvYXJkIG9mICBkaXJlY3RvcnMuCiAgOC4gIFRoZSAgcHJvZHVj aW5nICBkaXJlY3RvciAgc2hhbGwgYmUgdGhlIGNoaWVmIGV4ZWN1dGl2ZSBvZmZpY2VyIG9m IHRoZQpjb3Jwb3JhdGlvbiwgYW5kIHNoYWxsLCBzdWJqZWN0IHRvIHRoZSBkaXJlY3Rpb24g b2YgdGhlICBjb3Jwb3JhdGlvbiwgIGhhdmUKZ2VuZXJhbCAgIHN1cGVydmlzaW9uICBvdmVy ICB0aGUgIGFkbWluaXN0cmF0aW9uLCAgYXJ0aXN0aWMgIHN0YW5kYXJkcyAgYW5kCm9wZXJh dGlvbiAgb2YgIHRoZSAgY29ycG9yYXRpb25gcyAgcHJvamVjdHMgIGFuZCAgZmFjaWxpdHku ICBUaGUgIHByb2R1Y2luZwpkaXJlY3RvciBzaGFsbCByZWNvbW1lbmQgdG8gdGhlIGNvcnBv cmF0aW9uIGFwcG9pbnRtZW50cyBhbmQgbm9uLXJlbmV3YWwgb2YKYWxsIG90aGVyIGVtcGxv eWVlcyBvZiB0aGUgY29ycG9yYXRpb24gIGFzICBwcmVzY3JpYmVkICBieSAgdGhlICBydWxl cyAgYW5kCnJlZ3VsYXRpb25zICBwZXJ0YWluaW5nICB0byBjaXZpbCBzZXJ2aWNlIGFuZCBw cm9mZXNzaW9uYWwgc3RhdHVzIGFjY29yZGluZwp0byB0aGUgbGF3cyBnb3Zlcm5pbmcgdGhl IE5ldyBZb3JrIHN0YXRlIGVtcGxveWVlcy4KICA5LiAgVGhlICBwcm9kdWNpbmcgIGRpcmVj dG9yICBhbmQgYWxsIG90aGVyIGVtcGxveWVlcyBvZiB0aGUgZW1waXJlIHN0YXRlCnRoZWF0 cmUgaW5zdGl0dXRlIGV4aXN0aW5nIHVuZGVyIHRoZSBqdXJpc2RpY3Rpb24gYW5kIGNvbnRy b2wgb2YgdGhlICBzdGF0ZQp1bml2ZXJzaXR5ICBzaGFsbCAgYmUgIHRyYW5zZmVycmVkICB0 byAgdGhlIGNvcnBvcmF0aW9uIGFzIGVtcGxveWVlcyBvZiB0aGUKc3RhdGUgb2YgTmV3IFlv cmssIHN1YmplY3QgdG8gdGhlIGFwcHJvdmFsIG9mIHRoZSBkaXJlY3RvciBvZiAgdGhlICBi dWRnZXQuClN1Y2ggdHJhbnNmZXIgc2hhbGwgbm90IGluIGFueSB3YXkgYWZmZWN0IHRoZSBj aXZpbCBzZXJ2aWNlIG9yIHByb2Zlc3Npb25hbApzdGF0dXMsICBjb250aW51aXR5ICBvZiAg c2VydmljZSwgIHJldGlyZW1lbnQgICBwbGFuICAgc3RhdHVzLCAgIGNvbGxlY3RpdmUKbmVn b3RpYXRpbmcgcmVwcmVzZW50YXRpb24sIHJpZ2h0IHRvIGNvbXBlbnNhdGlvbiwgZ3JhZGUg b3IgY29tcGVuc2F0aW9uIG9yCm90aGVyIHJpZ2h0cyBhbmQgcHJpdmlsZWdlcyBvZiBhbnkg ZW1wbG95ZWUgc28gdHJhbnNmZXJyZWQuCiAgMTAuICBUaGUgIHByb2R1Y2luZyAgZGlyZWN0 b3IgIHNoYWxsICBhdHRlbmQgYWxsIGNvcnBvcmF0aW9uIG1lZXRpbmdzIGFuZApzaGFsbCBo YXZlIHRoZSByaWdodCB0byBzcGVhayBhdCBzdWNoIG1lZXRpbmdzLCBidXQgc2hhbGwgaGF2 ZSBubyB2b3RlLgogIDExLiAgVGhlICBib2FyZCAgb2YgZGlyZWN0b3JzIHNoYWxsIGFkb3B0 IGJ5bGF3cyBnb3Zlcm5pbmcgdGhlIGNvbmR1Y3Qgb2YKaXRzIG1lZXRpbmdzIGFuZCBvdGhl ciBtYXR0ZXJzICBub3QgIGluY2x1ZGVkICBoZXJldW5kZXIgIHJlbGF0aW5nICB0byAgaXRz Cm9yZ2FuaXphdGlvbiBhbmQgb3BlcmF0aW9ucy4KICAxMi4gICBGb3IgICBwdXJwb3NlcyAg IG9mICBzZWN0aW9ucyAgc2V2ZW50eS10aHJlZSwgIHNldmVudHktdGhyZWUtYSAgYW5kCnNl dmVudHktZm91ciBvZiB0aGUgIHB1YmxpYyAgb2ZmaWNlcnMgIGxhdywgIHRoZSAgTmV3ICBZ b3JrICBzdGF0ZSAgdGhlYXRyZQppbnN0aXR1dGUgIGNvcnBvcmF0aW9uICBpcyAgYSAgc3Rh dGUgIGFnZW5jeSwgIHRoZSAgb2ZmaWNlcnMsICBtZW1iZXJzLCBhbmQKZW1wbG95ZWVzIG9m IHdoaWNoIGFyZSBzdWJqZWN0IHRvIHRoZSBwcm92aXNpb25zIHRoZXJlb2YuCgogIFMgIDku MTEuICBHZW5lcmFsICBwb3dlcnMgYW5kIGR1dGllcyBvZiB0aGUgY29ycG9yYXRpb24uIEZv ciBjYXJyeWluZyBvdXQKaXRzIHB1cnBvc2VzLCB0aGUgY29ycG9yYXRpb24gc2hhbGwgaGF2 ZSBwb3dlcjoKICAxLiBUbyBzdWUgYW5kIGJlIHN1ZWQ7CiAgMi4gVG8gaGF2ZSBhIHNlYWwg YW5kIGFsdGVyIHRoZSBzYW1lIGF0IHBsZWFzdXJlOwogIDMuICBUbyAgYWNxdWlyZSwgIGhv bGQgYW5kIGRpc3Bvc2Ugb2YgcGVyc29uYWwgcHJvcGVydHkgZm9yIGl0cyBjb3Jwb3JhdGUK cHVycG9zZXMsIGluY2x1ZGluZyB0aGUgcG93ZXIgdG8gcHVyY2hhc2UsIGFsdGVyLCBpbnN0 YWxsICBhbmQgIGRpc3Bvc2UgIG9mCmZpeHR1cmVzLCAgaW5zdGFsbGF0aW9ucyAgYW5kIGVx dWlwbWVudC4gVGhlIGNvcnBvcmF0aW9uIG1heSBkaXNwb3NlIG9mIGl0cwpvd24gcHJvcGVy dHkgdmFsdWVkIGluIGV4Y2VzcyBvZiBmaXZlIHRob3VzYW5kIGRvbGxhcnMsICBwcm92aWRl ZCAgaG93ZXZlciwKdGhhdCBhbnkgc3VjaCBhY3Rpb24gaXMgc3ViamVjdCB0byBhIHJlc29s dXRpb24gd2hpY2ggbXVzdCBiZSBhcHByb3ZlZCBieSBhCm1ham9yaXR5IG9mIHRoZSBib2Fy ZCBvZiBkaXJlY3RvcnMgYXQgYSBtZWV0aW5nIGFuZCBzdWNoIHJlc29sdXRpb24gbXVzdCBi ZQphcHByb3ZlZCBieSB0aGUgZGlyZWN0b3Igb2YgdGhlIGJ1ZGdldDsKICA0LiAgVG8gIGxl YXNlICBvdGhlciAgcmVhbCBwcm9wZXJ0eSBmcm9tIHRoZSBzdGF0ZSBhbmQgb3RoZXIgZW50 aXRpZXMgZm9yCnN1Y2ggdGVybXMgYW5kIHN1Y2ggY29uZGl0aW9ucyBhcyBtYXkgYmUgYWdy ZWVkIHVwb24gYW5kLCAgc3ViamVjdCAgdG8gIHRoZQpwcm92aXNpb25zIG9mIHN1Y2ggbGVh c2Ugb3IgbGVhc2VzLCB0byBzdWJsZWFzZSBzYWlkIHByb3BlcnR5IHRvIG90aGVyczsKICA1 LiBUbyBhcHBvaW50IHN1Y2ggZW1wbG95ZWVzIGFzIGl0IG1heSByZXF1aXJlIGZvciB0aGUg cGVyZm9ybWFuY2Ugb2YgaXRzCmR1dGllcywgIGFuZCAgdG8gIGZpeCAgYW5kICBkZXRlcm1p bmUgIHRoZWlyICBxdWFsaWZpY2F0aW9ucywgIGR1dGllcywgIGFuZApjb21wZW5zYXRpb24g IGFuZCAgdG8gIHJldGFpbiAgb3IgIGVtcGxveSAgY291bnNlbCwgIGF1ZGl0b3JzLCAgYW5k IHByaXZhdGUKY29uc3VsdGFudHMgb24gYSBjb250cmFjdCBiYXNpcyBvciBvdGhlcndpc2Ug Zm9yIHJlbmRlcmluZyBwcm9mZXNzaW9uYWwgIG9yCnRlY2huaWNhbCBzZXJ2aWNlcyBhbmQg YWR2aWNlOwogIDYuICBUbyAgbWFrZSAgYWxsICBjb250cmFjdHMgIG5lY2Vzc2FyeSAgYW5k ICBjb252ZW5pZW50IHRvIGNhcnJ5IG91dCBpdHMKcHVycG9zZXMgb2YgIHByb2R1Y3Rpb24s ICBlZHVjYXRpb24gIGFuZCAgb3BlcmF0aW9ucyAgYW5kICB0byAgZXhlY3V0ZSAgYWxsCmlu c3RydW1lbnRzIG5lY2Vzc2FyeSBhbmQgY29udmVuaWVudDsKICA3LiAgVG8gIGFjY2VwdCAg Z2lmdHMsICBncmFudHMsICBsb2FucyAgb3IgIGNvbnRyaWJ1dGlvbnMgZnJvbSB0aGUgVW5p dGVkClN0YXRlcywgdGhlIHN0YXRlIG9mIE5ldyBZb3JrLCBvciBhbnkgYWdlbmN5IG9yIGlu c3RydW1lbnRhbGl0eSAgb2YgIGVpdGhlcgpvZiAgdGhlbSwgIG9yICB0aGUgIGNpdHksIHRo ZSBjb3VudHksIG9yIGFuIGluZGl2aWR1YWwsIGZvdW5kYXRpb24sIGZpcm0gb3IKY29ycG9y YXRpb24sIGJ5IGJlcXVlc3Qgb3Igb3RoZXJ3aXNlLCBhbmQgdG8gZXhwZW5kIHRoZSAgcHJv Y2VlZHMgIGZvciAgYW55CnB1cnBvc2VzIG9mIHRoZSBjb3Jwb3JhdGlvbjsKICA4LiBUbyBi ZSByZXF1aXJlZCB0byBwYXkgbm8gdGF4ZXMgb3IgYXNzZXNzbWVudHMgdXBvbiBhbnkgb2Yg dGhlIHByb3BlcnR5CmFjcXVpcmVkIGJ5IG9yIHVuZGVyIGl0cyBqdXJpc2RpY3Rpb24sIGNv bnRyb2wgb3Igc3VwZXJ2aXNpb24gb3IgIHVwb24gIGl0cwphY3Rpdml0aWVzOyBhbmQKICA5 LiAgVG8gIGRvIGFsbCB0aGluZ3MgbmVjZXNzYXJ5IG9yIGNvbnZlbmllbnQgdG8gY2Fycnkg b3V0IHRoZSBmdW5jdGlvbnMsCnBvd2VycyBhbmQgZHV0aWVzIGV4cHJlc3NseSBzZXQgZm9y dGggaW4gdGhpcyBhcnRpY2xlLgoKICBTICA5LjEzLiAgUmVwb3J0cy4gIDEuICBGb3IgIHRo ZSAgcHVycG9zZXMgIG9mICBmdXJuaXNoaW5nIHRoZSBzdGF0ZSB3aXRoCnN5c3RlbWF0aWMg aW5mb3JtYXRpb24gcmVnYXJkaW5nIGl0cyBzdGF0dXMgYW5kIGFjdGl2aXRpZXMsIHRoZSBj b3Jwb3JhdGlvbgpzaGFsbCAgc3VibWl0ICB0byAgdGhlICBnb3Zlcm5vciwgdGhlIGNoYWly cGVyc29ucyBvZiB0aGUgYXNzZW1ibHkgd2F5cyBhbmQKbWVhbnMgYW5kIHNlbmF0ZSBmaW5h bmNlIGNvbW1pdHRlZXMgYW5kIHRoZSBjb21taXNzaW9uZXIgIG9mICB0YXhhdGlvbiAgYW5k CmZpbmFuY2UgIHdpdGhpbiBuaW5ldHkgZGF5cyBhZnRlciB0aGUgZW5kIG9mIHRoZSBjb3Jw b3JhdGlvbmBzIGZpc2NhbCB5ZWFyLAphIGNvbXBsZXRlIGFuZCBkZXRhaWxlZCAgcmVwb3J0 ICBzZXR0aW5nICBmb3J0aDogIChhKSAgaXRzICBvcGVyYXRpb25zICBhbmQKYWNjb21wbGlz aG1lbnRzOyAgKGIpICBhbiAgYXVkaXRlZCAgc3RhdGVtZW50ICBieSAgYW4gaW5kZXBlbmRl bnQgY2VydGlmaWVkCnB1YmxpYyBhY2NvdW50YW50ICBleHBlcmllbmNlZCAgaW4gIHRoZWF0 cmljYWwgIHByb2R1Y3Rpb25zICBpbmNsdWRpbmcgIGl0cwpyZWNlaXB0cyAgYW5kICBkaXNi dXJzZW1lbnRzLCAgb3IgcmV2ZW51ZXMgYW5kIGV4cGVuc2VzLCBkdXJpbmcgc3VjaCBmaXNj YWwKeWVhciBpbiBhY2NvcmRhbmNlIHdpdGggZ2VuZXJhbGx5IGFjY2VwdGVkIGFjY291bnRp bmcgcHJpbmNpcGxlczsgIGFuZCAgKGMpCml0cyAgYXNzZXRzICBhbmQgIGxpYWJpbGl0aWVz ICBhdCB0aGUgZW5kIG9mIGl0cyBmaXNjYWwgeWVhciwgaW5jbHVkaW5nIHRoZQpzdGF0dXMg b2YgcmVzZXJ2ZSwgc3BlY2lhbCBvciBvdGhlciBmdW5kcyBhbmQgaW5jbHVkaW5nICB0aGUg IHJlY2VpcHRzICBhbmQKcGF5bWVudHMgb2YgdGhlc2UgZnVuZHMuCiAgMi4gIFRoZSAgY29y cG9yYXRpb24gIHNoYWxsICBhbm51YWxseSAgc3VibWl0ICBhICBwcm9wb3NlZCAgYnVkZ2V0 IHRvIHRoZQpkaXJlY3RvciBvZiB0aGUgYnVkZ2V0IGF0IHRoZSBzYW1lIHRpbWUgYXMgYnVk Z2V0IHJlcXVlc3RzIGFyZSByZXF1aXJlZCAgdG8KYmUgIHN1Ym1pdHRlZCAgYnkgIHN0YXRl ICBhZ2VuY2llcy4gIFRoZSAgcHJvcG9zZWQgIGJ1ZGdldCAgc2hhbGwgY29udGFpbiBhCnBl cnNvbmFsIHNlcnZpY2VzIGJ1ZGdldCwgYW4gb3BlcmF0aW5nIGJ1ZGdldCwgYW4gZXF1aXBt ZW50IGJ1ZGdldCAgYW5kICBhbgplc3RpbWF0ZSAgb2YgIHJldmVudWVzLiAgSW4gIGFkZGl0 aW9uLCAgdGhlICBjb3Jwb3JhdGlvbiAgc2hhbGwgIHN1Ym1pdCAgYW4KZXhwZW5kaXR1cmUg cGxhbiBzdWJqZWN0IHRvIHRoZSBhcHByb3ZhbCBvZiAgdGhlICBkaXJlY3RvciAgb2YgIHRo ZSAgYnVkZ2V0CnByaW9yICB0byAgdGhlIGFsbG9jYXRpb24gb2YgYW55IGFwcHJvcHJpYXRp b24uIFN1Y2ggZXhwZW5kaXR1cmUgcGxhbiBzaGFsbApwcm92aWRlIGluZm9ybWF0aW9uIG9u IHN1Y2ggZnVuZHMgYW5kIGluIHN1Y2ggZGV0YWlsIGFzIG1heSBiZSByZXF1aXJlZCAgYnkK dGhlIGRpcmVjdG9yIG9mIHRoZSBidWRnZXQsIGFuZCBhbnkgc3Vic2VxdWVudCBhbWVuZG1l bnQgdG8gc3VjaCBwbGFuIHNoYWxsCnJlcXVpcmUgdGhlIHByaW9yIGFwcHJvdmFsIG9mIHRo ZSBkaXJlY3RvciBvZiB0aGUgYnVkZ2V0LgoKICBTICA5LjE1LiAgQ29vcGVyYXRpb24gIGFu ZCBhc3Npc3RhbmNlIG9mIG90aGVyIGFnZW5jaWVzLiAxLiBUbyBlZmZlY3QgdGhlCnB1cnBv c2VzIG9mIHRoaXMgYXJ0aWNsZSwgdGhlIGNvcnBvcmF0aW9uIG1heSByZXF1ZXN0IGZyb20g YW55ICBkZXBhcnRtZW50LApkaXZpc2lvbiwgIGNvbW1pc3Npb24sICBvciAgb3RoZXIgIGFn ZW5jeSAgb2YgIHRoZSAgc3RhdGUsIGFuZCB0aGUgc2FtZSBhcmUKYXV0aG9yaXplZCBhbmQg ZGlyZWN0ZWQgdG8gcHJvdmlkZSAgc3VjaCAgY29vcGVyYXRpb24gIGFuZCAgYXNzaXN0YW5j ZSAgYW5kCnNlcnZpY2VzICBvZiAgcHJvY2Vzc2luZyAgcGF5cm9sbCBmb3IgdGhlIGNvcnBv cmF0aW9uYHMgc3RhdGUgZW1wbG95ZWVzIGFuZApvdGhlciBzZXJ2aWNlcyBhcyB3b3VsZCBl bmFibGUgdGhlIGNvcnBvcmF0aW9uIHByb3Blcmx5IHRvICBjYXJyeSAgb3V0ICBpdHMKcG93 ZXJzIGFuZCBkdXRpZXMgaGVyZXVuZGVyLgogIDIuICBUaGUgIGludmVudG9yeSAgb2YgIHBo eXNpY2FsIGFuZCBvdGhlciBhc3NldHMgaW5jbHVkaW5nIHRoZSByaWdodHMgdG8KY2VydGFp biBwbGF5cyBhbmQgb3RoZXIgd29ya3MgYmVsb25naW5nIHRvIHRoZSBlbXBpcmUgc3RhdGUg IHlvdXRoICB0aGVhdHJlCmluc3RpdHV0ZSAgbG9jYXRlZCAgYXQgIHRoZSAgc3RhdGUgIHVu aXZlcnNpdHkgIGF0ICBBbGJhbnksIGF0IHRoZSByZXNlYXJjaApmb3VuZGF0aW9uIG9mIHRo ZSBzdGF0ZSB1bml2ZXJzaXR5IGFuZCBhdCB0aGUgZW1waXJlIHN0YXRlIHBlcmZvcm1pbmcg IGFydHMKY2VudGVyICBzaGFsbCAgYmUgIHRyYW5zZmVycmVkICB0byAgdGhlICBOZXcgIFlv cmsgIHN0YXRlIHRoZWF0cmUgaW5zdGl0dXRlCmNvcnBvcmF0aW9uIGFuZCBzaGFsbCBiZSBt YWRlIGltbWVkaWF0ZWx5IGF2YWlsYWJsZSB0byB0aGUgY29ycG9yYXRpb24gIGZvcgppdHMg IHByb2R1Y3Rpb24sICBlZHVjYXRpb24gIGFuZCAgb3BlcmF0aW9ucyAgcHJvZ3JhbXMgIGlu IGNhcnJ5aW5nIG91dCB0aGUKcHJvdmlzaW9ucyBvZiB0aGlzICBhcnRpY2xlLiAgVGhlICB0 cmFuc2ZlciAgb2YgIHN1Y2ggIGludmVudG9yeSAgc2hhbGwgIGJlCmNvbmR1Y3RlZCBpbiBj b25zdWx0YXRpb24gd2l0aCB0aGUgZW1waXJlIHN0YXRlIHBlcmZvcm1pbmcgYXJ0cyBjZW50 ZXIsIGFuZApzaGFsbCBiZSBzdWJqZWN0IHRvIHRoZSBhcHByb3ZhbCBvZiAgdGhlICBjb21t aXNzaW9uZXIgIG9mICB0aGUgIG9mZmljZSAgb2YKZ2VuZXJhbCBzZXJ2aWNlcy4KCgoKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0cyBh bmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QVJUSUNMRSAxMAogICAgICAgICAgICAgICAgIElOU1RJVFVURSBGT1IgVEhFIEhVRFNPTiBS SVZFUiBDT0xMRUNUSU9OClNlY3Rpb24gMTAuMDEuIExlZ2lzbGF0aXZlIGZpbmRpbmdzIGFu ZCBkZWNsYXJhdGlvbiBvZiBpbnRlbnQuCiAgICAgICAgMTAuMDMuIERlZmluaXRpb25zLgog ICAgICAgIDEwLjA1LiBJbnN0aXR1dGUgIGZvciAgdGhlICBIdWRzb24gIFJpdmVyICBDb2xs ZWN0aW9uOyBjcmVhdGlvbjsKICAgICAgICAgICAgICAgICAgICAgICAgICBib2FyZCBvZiBk aXJlY3RvcnM7IGdvdmVybmFuY2UuCiAgICAgICAgMTAuMDcuIE9iamVjdGl2ZXMuCiAgICAg ICAgMTAuMDkuIFJlcG9ydHMuCiAgICAgICAgMTAuMTEuIEFzc2lzdGFuY2Ugb2Ygb3RoZXIg YWdlbmNpZXMuCiAgICAgICAgMTAuMTMuIEFkZGl0aW9uYWwgY29uc2lkZXJhdGlvbnMgaW4g ZnVsZmlsbGluZyBpdHMgcmVzcG9uc2liaWwtCiAgICAgICAgICAgICAgICAgICAgICAgICAg aXRpZXMuCgogIFMgICAxMC4wMS4gICBMZWdpc2xhdGl2ZSAgZmluZGluZ3MgIGFuZCAgZGVj bGFyYXRpb24gIG9mICBpbnRlbnQuICBUaGUKbGVnaXNsYXR1cmUgaGVyZWJ5IGZpbmRzIGFu ZCBkZWNsYXJlcyB0aGF0IHRoZSBIdWRzb24gcml2ZXIgYXJlYSBvZiAgTmV3Cllvcmsgc3Rh dGUsIHdoaWNoIGluY2x1ZGVzIHRoYXQgYXJlYSBvZiB0aGUgc3RhdGUgYWRqYWNlbnQgdG8g dGhlIEh1ZHNvbgpyaXZlciBhbmQgIGV4dGVuZGluZyAgZnJvbSAgdGhlICBBZGlyb25kYWNr ICBNb3VudGFpbnMgIHRvICB0aGUgIHRpcCAgb2YKTWFuaGF0dGFuIElzbGFuZCBpbiB0aGUg Y2l0eSBvZiBOZXcgWW9yaywgaXMgdW5pcXVlIGZvciBpdHMgY29udHJpYnV0aW9uCnRvIHRo ZSBhcnRzLCBjdWx0dXJlLCBoaXN0b3J5IGFuZCBoZXJpdGFnZSBvZiB0aGlzICBzdGF0ZSwg IHRoaXMgIG5hdGlvbgphbmQgdGhlIHdvcmxkLgogIEl0IGlzIGZ1cnRoZXIgZm91bmQgYW5k IGRlY2xhcmVkIHRoYXQgZWZmb3J0cyB0byBpZGVudGlmeSBhbmQgY29uc2VydmUKdGhlIGxp dGVyYXJ5IGFuZCB2aXN1YWwgYXJ0cyByZWNvcmQgIG9mICB0aGUgIEh1ZHNvbiAgcml2ZXIg IHZhbGxleTsgIHRvCm1haW50YWluICBhbmQgIG1ha2UgIGFjY2Vzc2libGUgdGhlIGFydGlz dGljIGFuZCBjdWx0dXJhbCBtYXRlcmlhbHMgdGhhdApkb2N1bWVudCB0aGUgaGVyaXRhZ2Ug b2YgdGhpcyBhcmVhOyB0byBzdXBwb3J0ICByZXNlYXJjaCwgIHB1YmxpY2F0aW9ucywKZWR1 Y2F0aW9uYWwgICBwcm9ncmFtcyAgIGFuZCAgdG8gIHByb21vdGUgIGNvbnRlbXBvcmFyeSAg YXJ0aXN0aWMgIHdvcmtzCmludGVycHJldGluZyB0aGUgY3VsdHVyYWwgYW5kICBuYXR1cmFs ICBoaXN0b3J5ICBvZiAgdGhlICBhcmVhOyAgYW5kICB0bwpmYWNpbGl0YXRlICBzdGF0ZXdp ZGUsICBpbnRlcnN0YXRlICBhbmQgaW50ZXJuYXRpb25hbCBjb2xsYWJvcmF0aW9ucyBhbmQK ZXhjaGFuZ2UgcHJvZ3JhbXMgb2YgYXJ0LCBhcnRpc3RzIGFuZCBzY2hvbGFycyBjb25jZXJu aW5nICB0aGUgIGhpc3RvcnksCmFydCAgYW5kICBjdWx0dXJhbCAgY29udHJpYnV0aW9ucyAg b2YgIHRoZSAgYXJlYSB0byB0aGUgc3RhdGUgYW5kIHRvIHRoZQpjdWx0dXJhbCwgaGlzdG9y aWMgYW5kIGFydGlzdGljIGxpZmUgb2YgdGhlIGNvdW50cnkgYW5kIHRoZSB3b3JsZCBhcmUg aW4KZXZlcnkgIHJlc3BlY3QgIGluIHRoZSBwdWJsaWMgaW50ZXJlc3QgYW5kIHRvIHRoZSBi ZW5lZml0IG9mIGFsbCBwZXJzb25zCmluIHRoaXMgc3RhdGUuCiAgSXQgIGlzIGhlcmVieSBk ZWNsYXJlZCBhIHBvbGljeSBvZiB0aGUgc3RhdGUgdGhhdCB0aGVyZSBiZSBjcmVhdGVkIHRo ZQpJbnN0aXR1dGUgZm9yIHRoZSBIdWRzb24gUml2ZXIgQ29sbGVjdGlvbiB3aXRoIGEgbGVn aXNsYXRpdmUgbWFuZGF0ZSAgdG8KdGFrZSAgc3VjaCAgYWN0aW9ucyAgYXMgIGFyZSAgbmVj ZXNzYXJ5ICBhbmQgIGFwcHJvcHJpYXRlICB0byBhc3N1cmUgdGhlCnN0cmVuZ3RoZW5pbmcs IHBlcnBldHVhdGlvbiBhbmQgY29udGludWVkIGF2YWlsYWJpbGl0eSBvZiAgdGhlICBhcnRp c3RpYwphbmQgIGN1bHR1cmFsICBoZXJpdGFnZSAgb2YgIHRoZSAgSHVkc29uICByaXZlciAg YXJlYSB0byB0aGlzIHN0YXRlLCB0aGUKY291bnRyeSBhbmQgdGhlIHdvcmxkLgoKICBTICAx MC4wMy4gRGVmaW5pdGlvbnMuIEV4Y2VwdCBhcyBvdGhlcndpc2UgcHJvdmlkZWQgaGVyZWlu IGFuZCB1bmxlc3MgdGhlCmNvbnRleHQgc2hhbGwgb3RoZXJ3aXNlIHJlcXVpcmUsIGFzIHVz ZWQgaW4gdGhpcyBhcnRpY2xlOgogIDEuICAiSHVkc29uICByaXZlciAgYXJlYSIgb3IgIkh1 ZHNvbiByaXZlciB2YWxsZXkiIG1lYW5zIHRoZSBIdWRzb24gcml2ZXIKYW5kIGFkamFjZW50 ICBhcmVhcyAgYmV0d2VlbiAgdGhlICBBZGlyb25kYWNrICBNb3VudGFpbnMgIGFuZCAgdGhl ICB0aXAgIG9mCk1hbmhhdHRhbiBJc2xhbmQgaW4gdGhlIGNpdHkgb2YgTmV3IFlvcmsuCiAg Mi4gICJJbnN0aXR1dGUiICBtZWFucyAgdGhlICBJbnN0aXR1dGUgIGZvciAgdGhlICBIdWRz b24gUml2ZXIgQ29sbGVjdGlvbgpjcmVhdGVkIGJ5IHRoaXMgYXJ0aWNsZS4KICAzLiAgIlN0 YXRlICBhZ2VuY3kiICBtZWFucyAgYW55ICBzdGF0ZSAgYm9hcmQsICBib2R5LCBidXJlYXUs IGNvbW1pc3Npb24sCmNvdW5jaWwsIGRlcGFydG1lbnQsIHB1YmxpYyBhdXRob3JpdHksIHB1 YmxpYyBjb3Jwb3JhdGlvbiwgZGl2aXNpb24sIG9mZmljZQpvciAgb3RoZXIgIGdvdmVybm1l bnRhbCAgZW50aXR5ICBwZXJmb3JtaW5nICBhICBnb3Zlcm5tZW50YWwgb3IgcHJvcHJpZXRh cnkKZnVuY3Rpb24gZm9yIHRoZSBzdGF0ZS4KCiAgUyAgMTAuMDUuICBJbnN0aXR1dGUgIGZv ciB0aGUgSHVkc29uIFJpdmVyIENvbGxlY3Rpb247IGNyZWF0aW9uOyBib2FyZCBvZgpkaXJl Y3RvcnM7IGdvdmVybmFuY2UuIDEuIFRoZSBJbnN0aXR1dGUgZm9yIHRoZSBIdWRzb24gUml2 ZXIgQ29sbGVjdGlvbiAgaXMKaGVyZWJ5ICBlc3RhYmxpc2hlZCAgdW5kZXIgdGhlIGp1cmlz ZGljdGlvbiBvZiB0aGUgTmV3IFlvcmsgc3RhdGUgbXVzZXVtIG9mCnRoZSBzdGF0ZSBlZHVj YXRpb24gZGVwYXJ0bWVudC4KICAyLiAgVGhlICBpbnN0aXR1dGUgc2hhbGwgY29uc2lzdCBv ZiBmaWZ0ZWVuIG1lbWJlcnMuIE5pbmUgb2Ygc3VjaCBtZW1iZXJzCnNoYWxsIGJlIGFwcG9p bnRlZCBieSB0aGUgZ292ZXJub3IgYnkgYW5kIHdpdGggdGhlIGFkdmljZSAgYW5kICBjb25z ZW50ICBvZgp0aGUgIHNlbmF0ZSwgdHdvIG9mIHdob20gc2hhbGwgYmUgdGhlIGNvbW1pc3Np b25lciBvZiBwYXJrcywgcmVjcmVhdGlvbiBhbmQKaGlzdG9yaWMgcHJlc2VydmF0aW9uLCBh bmQgdGhlIGNoYWlybWFuIG9mIHRoZSBOZXcgWW9yayAgc3RhdGUgIGNvdW5jaWwgIG9uCnRo ZSBhcnRzIG9yIGhpcyBvciBoZXIgcmVwcmVzZW50YXRpdmUsIHR3byBvZiB3aG9tIHNoYWxs IGJlIHNvIGFwcG9pbnRlZCBvbgpyZWNvbW1lbmRhdGlvbiAgb2YgIHRoZSAgdGVtcG9yYXJ5 ICBwcmVzaWRlbnQgIG9mICB0aGUgICBzZW5hdGUsICAgdHdvICAgb24KcmVjb21tZW5kYXRp b24gb2YgdGhlIHNwZWFrZXIgb2YgdGhlIGFzc2VtYmx5LCBvbmUgb24gcmVjb21tZW5kYXRp b24gb2YgdGhlCm1pbm9yaXR5IGxlYWRlciBvZiB0aGUgc2VuYXRlIGFuZCBvbmUgb24gIHJl Y29tbWVuZGF0aW9uICBvZiAgdGhlICBtaW5vcml0eQpsZWFkZXIgIG9mICB0aGUgYXNzZW1i bHkuICBFYWNoIG1lbWJlciBzbyBhcHBvaW50ZWQgc2hhbGwgYmUgcmVwcmVzZW50YXRpdmUK b2YgdGhvc2UgZWR1Y2F0aW9uYWwgYW5kIGN1bHR1cmFsICBpbnN0aXR1dGlvbnMgIG9mICB0 aGUgIHN0YXRlICB0aGF0ICBob2xkCnNpZ25pZmljYW50ICBjb2xsZWN0aW9ucyAgb3IgIGNv bmR1Y3QgIGNvbnRpbnVpbmcgIHJlc2VhcmNoICBhbmQgIGVkdWNhdGlvbgpwcm9ncmFtcyBv biB0aGUgY3VsdHVyYWwgYW5kIG5hdHVyYWwgaGlzdG9yeSBvZiB0aGUgSHVkc29uIHJpdmVy IGFyZWEuICBUaGUKY29tbWlzc2lvbmVyICBvZiBlZHVjYXRpb24gc2hhbGwgYmUgYSBtZW1i ZXIgYW5kIHNoYWxsIHNlcnZlIGFzIGNoYWlybWFuIG9mCnRoZSBpbnN0aXR1dGUuIEZpdmUg b2Ygc3VjaCBtZW1iZXJzIHNoYWxsIGJlICBhcHBvaW50ZWQgIGJ5ICB0aGUgIGJvYXJkICBv ZgpyZWdlbnRzIGluIGNvbnN1bHRhdGlvbiB3aXRoIHRoZSBjb21taXNzaW9uZXIgb2YgZWR1 Y2F0aW9uLgogIDMuICBUaGUgIHRlcm0gb2YgZWFjaCBtZW1iZXIgYXBwb2ludGVkIGJ5IHRo ZSBnb3Zlcm5vciBzaGFsbCBiZSBmb3IgdGhyZWUKeWVhcnMgcHJvdmlkZWQsIGhvd2V2ZXIs IHRoYXQgIG9mICB0aGUgIG1lbWJlcnMgIGZpcnN0ICBhcHBvaW50ZWQgIChhKSAgdGhlCm1l bWJlcnMgZmlyc3QgYXBwb2ludGVkIG9uIHJlY29tbWVuZGF0aW9uIG9mIHRoZSB0ZW1wb3Jh cnkgcHJlc2lkZW50IG9mIHRoZQpzZW5hdGUgYW5kIHRoZSBzcGVha2VyIG9mIHRoZSBhc3Nl bWJseSBzaGFsbCBiZSBmb3IgdGVybXMgIGVuZGluZyAgRGVjZW1iZXIKdGhpcnR5LWZpcnN0 LCAgbmluZXRlZW4gaHVuZHJlZCBuaW5ldHksIHByb3ZpZGVkIGhvd2V2ZXIgdGhhdCBwZXJz b25zIGZpcnN0CnNvIGFwcG9pbnRlZCBhZnRlciBEZWNlbWJlciB0aGlydHktZmlyc3QsIG5p bmV0ZWVuIGh1bmRyZWQgbmluZXR5LCBzaGFsbCBiZQphcHBvaW50ZWQgICBmb3IgICB0ZXJt cyAgZW5kaW5nICBEZWNlbWJlciAgdGhpcnR5LWZpcnN0LCAgbmluZXRlZW4gIGh1bmRyZWQK bmluZXR5LXRocmVlOyBhbmQgKGIpICB0aGUgIHBlcnNvbnMgIGFwcG9pbnRlZCAgb24gIHJl Y29tbWVuZGF0aW9uICBvZiAgdGhlCm1pbm9yaXR5IGxlYWRlciBvZiB0aGUgc2VuYXRlIGFu ZCB0aGUgbWlub3JpdHkgbGVhZGVyIG9mIHRoZSBhc3NlbWJseSBzaGFsbApiZSBhcHBvaW50 ZWQgZm9yICB0ZXJtcyAgZW5kaW5nICBEZWNlbWJlciAgdGhpcnR5LWZpcnN0LCAgbmluZXRl ZW4gIGh1bmRyZWQKZWlnaHR5LW5pbmUsICBwcm92aWRlZCAgaG93ZXZlciAgdGhhdCAgcGVy c29ucyAgZmlyc3QgIHNvICBhcHBvaW50ZWQgIGFmdGVyCkRlY2VtYmVyIHRoaXJ0eS1maXJz dCwgbmluZXRlZW4gaHVuZHJlZCBlaWdodHktbmluZSwgc2hhbGwgYmUgYXBwb2ludGVkIGZv cgp0ZXJtcyAgZW5kaW5nIERlY2VtYmVyIHRoaXJ0eS1maXJzdCwgbmluZXRlZW4gaHVuZHJl ZCBuaW5ldHktdHdvLiBWYWNhbmNpZXMKc2hhbGwgYmUgZmlsbGVkIGZvciB0aGUgdW5leHBp cmVkIHRlcm1zIGluIHRoZSBzYW1lIG1hbm5lciBhcyB0aGUgIG9yaWdpbmFsCmFwcG9pbnRt ZW50LiAgIFRoZSAgIGNvbW1pc3Npb25lcnMgICBvZiAgIHBhcmtzLCAgcmVjcmVhdGlvbiAg YW5kICBoaXN0b3JpYwpwcmVzZXJ2YXRpb24gYW5kIGVkdWNhdGlvbiBhbmQgdGhlIGNoYWly bWFuIG9mIHRoZSBOZXcgWW9yayAgc3RhdGUgIGNvdW5jaWwKb24gdGhlIGFydHMgc2hhbGwg c2VydmUgb25seSBkdXJpbmcgaGlzIHRlbnVyZSBhcyBzdWNoIG9mZmljaWFsLgogIDQuICBN ZW1iZXJzIHNoYWxsIHJlY2VpdmUgbm8gY29tcGVuc2F0aW9uIGZvciB0aGVpciBzZXJ2aWNl cyBidXQgc2hhbGwgYmUKYWxsb3dlZCB0aGVpciByZWFzb25hYmxlIGV4cGVuc2VzIGFjdHVh bGx5IGFuZCBuZWNlc3NhcmlseSBpbmN1cnJlZCBpbiAgdGhlCnBlcmZvcm1hbmNlIG9mIHRo ZWlyIGR1dGllcywgd2l0aGluIHRoZSBmdW5kcyBhdmFpbGFibGUgZnJvbSBhcHByb3ByaWF0 aW9ucwptYWRlIHB1cnN1YW50IHRvIHNlY3Rpb24gbmluZXR5LXR3by1xIG9mIHRoZSBzdGF0 ZSBmaW5hbmNlIGxhdy4gIE5vICBtZW1iZXIKc2hhbGwgYmUgZGlzcXVhbGlmaWVkIGZyb20g aG9sZGluZyBhbnkgb3RoZXIgcHVibGljIG9mZmljZSBvciBlbXBsb3ltZW50IGJ5CnJlYXNv biBvZiBzdWNoIHBlcnNvbmBzIGFwcG9pbnRtZW50IG9yIHNlcnZpY2UgYXMgYSBtZW1iZXIg IG5vdHdpdGhzdGFuZGluZwp0aGUgcHJvdmlzaW9ucyBvZiBhbnkgb3RoZXIgbGF3IHRvIHRo ZSBjb250cmFyeS4KICA1LiAgVGhlICBpbnN0aXR1dGUgc2hhbGwgY29uZHVjdCBhdCBsZWFz dCBmb3VyIHJlZ3VsYXIgbWVldGluZ3MgYSB5ZWFyIGF0CnN1Y2ggdGltZXMgYW5kIHBsYWNl cyBhcyBtYXkgYmUgZml4ZWQgYnkgaXQuCiAgNi4gIEVpZ2h0ICBtZW1iZXJzICBzaGFsbCAg Y29uc3RpdHV0ZSAgYSAgcXVvcnVtICBmb3IgIHRoZSB0cmFuc2FjdGlvbiBvZgpidXNpbmVz cyBhbmQsIHVubGVzcyBhIGdyZWF0ZXIgbnVtYmVyICBpcyAgcmVxdWlyZWQgIGJ5ICB0aGUg IGJ5LWxhd3MsICB0aGUKaW5zdGl0dXRlIHNoYWxsIGV4ZXJjaXNlIGl0cyBwb3dlcnMgYW5k IGR1dGllcyBieSBhIHZvdGUgb2YgdGhlIG1ham9yaXR5IG9mCnRoZSB0b3RhbCBtZW1iZXJz IG9mIHRoZSBjb21taXNzaW9uIHRoZW4gc2VydmluZy4KICA3LiBUaGUgaW5zdGl0dXRlIHNo YWxsIGFkb3B0IGJ5LWxhd3MgZ292ZXJuaW5nIHRoZSBjYWxsaW5nIGFuZCBjb25kdWN0IG9m Cml0cyBtZWV0aW5ncyBhbmQgIGFsbCAgb3RoZXIgIG1hdHRlcnMgIHJlbGF0aW5nICB0byAg aXRzICBvcmdhbml6YXRpb24gIGFuZAppbnRlcm5hbCBvcGVyYXRpb25zLgoKICBTICAxMC4w Ny4gIE9iamVjdGl2ZXMuICAgVGhlICBJbnN0aXR1dGUgIGZvciAgdGhlIEh1ZHNvbiBSaXZl ciBDb2xsZWN0aW9uCnNoYWxsOgogIDEuICBUYWtlICBzdGVwcyAgdG8gZGV2ZWxvcCwgZW5o YW5jZSwgc3RpbXVsYXRlIGFuZCBmYWNpbGl0YXRlIHB1YmxpYyBhbmQKcHJpdmF0ZSBzdHVk eSBhbmQgYXBwcmVjaWF0aW9uIGFuZCBpbnRlcnByZXRhdGlvbiBvZiB0aGUgIGhlcml0YWdl LCAgbGVnYWN5CmFuZCBwYXRyaW1vbnkgb2YgdGhlIEh1ZHNvbiByaXZlciBhcmVhLgogIDIu ICBTdXBwb3J0ICByZXNlYXJjaCwgIHB1YmxpY2F0aW9ucywgIGVkdWNhdGlvbmFsICBwcm9n cmFtcyBhbmQgYXJ0aXN0aWMKd29ya3MgaW50ZXJwcmV0aW5nIHRoZSBjdWx0dXJhbCBhbmQg bmF0dXJhbCBoaXN0b3J5ICBvZiAgdGhlICBIdWRzb24gIHJpdmVyCnZhbGxleSAgIGFuZCAg YWR2aXNlICBhbmQgIGFzc2lzdCAgYW55ICBzdGF0ZSAgZGVwYXJ0bWVudCwgIGJvYXJkLCAg YnVyZWF1LApjb21taXNzaW9uIG9yIG90aGVyIGFnZW5jeSwgb3IgcG9saXRpY2FsIHN1YmRp dmlzaW9uIG9mIHRoZSBzdGF0ZSwgIGluICB0aGUKcHJlcGFyYXRpb24gIGFuZCAgZGlzdHJp YnV0aW9uICBvZiBwdWJsaWNhdGlvbnMgYnkgc3VjaCBhZ2VuY2llcyBjb25jZXJuaW5nCnRo ZSBIdWRzb24gcml2ZXIgYXJlYS4KICAzLiAgRmFjaWxpdGF0ZSBzdGF0ZXdpZGUsIGludGVy c3RhdGUgYW5kIGludGVybmF0aW9uYWwgY29sbGFib3JhdGlvbnMgYW5kCmV4Y2hhbmdlIHBy b2dyYW1zIG9mIGFydCwgYXJ0aXN0cyBhbmQgc2Nob2xhcnMgb24gdGhlIEh1ZHNvbiAgcml2 ZXIgIHNjaG9vbApvZiBwYWludGluZyBhbmQgdGhlIGFydCBoaXN0b3J5IG9mIHRoZSBIdWRz b24gcml2ZXIgdmFsbGV5LgogIDQuICBNYWludGFpbiAgYW5kICBtYWtlIGFjY2Vzc2libGUg YSBjb21wcmVoZW5zaXZlIHJlY29yZCBvZiB0aGUgYXJ0aXN0aWMKYW5kIGN1bHR1cmFsIG1h dGVyaWFscyB0aGF0IGRvY3VtZW50ICB0aGUgIGhlcml0YWdlICBvZiAgdGhlICBIdWRzb24g IHJpdmVyCnZhbGxleS4KICA1LiAgQ29udHJhY3QgIHdpdGggIG90aGVyICBjdWx0dXJhbCAg aW5zdGl0dXRpb25zICBmb3IgIHRoZSBtYW5hZ2VtZW50IG9mCnByb2plY3RzIHdoaWNoIGl0 IGluaXRpYXRlcyBvciBmYWNpbGl0YXRlcy4KICA2LiAgQWNjZXB0ICBhbmQgIGRpc2J1cnNl IHByaXZhdGUgYW5kIHB1YmxpYyBncmFudHMsIGdpZnRzLCBjb250cmlidXRpb25zCmFuZCBi ZXF1ZXN0cyBtYWRlIGluIGZ1cnRoZXJhbmNlIG9mIGl0cyBwdXJwb3Nlcy4KICA3LiAgQ29u ZHVjdCAgc3VjaCBzdXJ2ZXlzIGFzIG1heSBiZSBuZWNlc3NhcnksIHJlcXVpcmVkIG9yIGFw cHJvcHJpYXRlIG9mCnRoZSBwdWJsaWMgYW5kIHByaXZhdGUgaW5zdGl0dXRpb25zIGFuZCBp bmRpdmlkdWFscyBlbmdhZ2VkIGluIGN1bHR1cmFsIGFuZAphcnRpc3RpYyAgYWN0aXZpdGll cyAgaW4gdGhlIEh1ZHNvbiByaXZlciBhcmVhLCBhbmQgbWFrZSByZWNvbW1lbmRhdGlvbnMg b24KbWVhbnMgdG8gZW5jb3VyYWdlIGFuZCBleHBhbmQgcHVibGljIGFuZCBwcml2YXRlICBp bnRlcmVzdCAgaW4gIHRoZSAgSHVkc29uCnJpdmVyIGFyZWEuCiAgOC4gIEhvbGQgIHB1Ymxp YyAgaGVhcmluZ3MgIG9uICBtYXR0ZXJzICBwZXJ0aW5lbnQgIG9yIGFwcHJvcHJpYXRlIHRv IGl0cwpwdXJwb3Nlcy4KICA5LiAgRW50ZXIgIGludG8gIGNvbnRyYWN0cywgIHdpdGhpbiAg dGhlICBhbW91bnRzICBhcHByb3ByaWF0ZWQgIHRoZXJlZm9yCnB1cnN1YW50ICB0byAgc2Vj dGlvbiAgbmluZXR5LXR3by1xICBvZiAgdGhlICBzdGF0ZSAgIGZpbmFuY2UgICBsYXcsICAg d2l0aAppbmRpdmlkdWFscywgIG9yZ2FuaXphdGlvbnMgIGFuZCAgaW5zdGl0dXRpb25zICBm b3IgIGNvb3BlcmF0aXZlICBlbmRlYXZvcnMKZnVydGhlcmluZyB0aGUgY3VsdHVyYWwgYW5k IGFydGlzdGljIGludGVyZXN0cyBvZiB0aGUgSHVkc29uIHJpdmVyIGFyZWEgYW5kCnRoZSBv YmplY3RpdmVzIHN0YXRlZCBpbiB0aGlzIGFydGljbGUuCiAgMTAuICBFc3RhYmxpc2ggIGEg IE5ldyBZb3JrIHN0YXRlIEh1ZHNvbiByaXZlciBhcnQgY29sbGVjdGlvbiBjb21wb3NlZCBv ZgpwdWJsaWMgYW5kIHByaXZhdGUgaG9sZGluZ3MuIFRoZSBpbnN0aXR1dGUgc2hhbGwgY2F0 YWxvZ3VlIHdvcmtzIG9mIGFydCAgaW4KdGhlIE5ldyBZb3JrIHN0YXRlIEh1ZHNvbiByaXZl ciBhcnQgY29sbGVjdGlvbi4KICAxMS4gIE1ha2UgIGFuZCBzaWduIGFueSBhZ3JlZW1lbnRz IGFuZCBkbyBhbmQgcGVyZm9ybSBhbnkgYWN0cyBuZWNlc3NhcnksCmRlc2lyYWJsZSBvciBh cHByb3ByaWF0ZSB0byBjYXJyeSBvdXQgdGhlIHB1cnBvc2VzIG9mIHRoaXMgYXJ0aWNsZS4K CiAgUyAgMTAuMDkuICBSZXBvcnRzLiAgTm90ICBsYXRlciAgdGhhbiAgRmVicnVhcnkgIGZp cnN0ICBvZiAgZWFjaCB5ZWFyIHRoZQppbnN0aXR1dGUgc2hhbGwgcmVwb3J0IHRvIHRoZSBn b3Zlcm5vciBhbmQgdGhlIGxlZ2lzbGF0dXJlICBvbiAgdGhlICBuZWVkcywKb3Bwb3J0dW5p dGllcyBhbmQgcHJpb3JpdGllcyBmb3IgZGV2ZWxvcG1lbnQgb2YgaXRzIHByb2dyYW1zLgoK ICBTICAxMC4xMS4gIEFzc2lzdGFuY2UgIG9mICBvdGhlciAgYWdlbmNpZXMuIFRoZSBpbnN0 aXR1dGUgbWF5IHJlcXVlc3QgYW5kCnNoYWxsIHJlY2VpdmUgZnJvbSBhbnkgc3RhdGUgYWdl bmN5IG9yIHBvbGl0aWNhbCBzdWJkaXZpc2lvbiBvZiB0aGUgIHN0YXRlLAphbmQgIHRoZSBz YW1lIGFyZSBhdXRob3JpemVkIHRvIHByb3ZpZGUsIHN1Y2ggYXNzaXN0YW5jZSBhbmQgaW5m b3JtYXRpb24gYXMKd2lsbCBlbmFibGUgaXQgdG8gY2Fycnkgb3V0ICBpdHMgIHB1cnBvc2Vz ICBhbmQgIGR1dGllcyAgcHVyc3VhbnQgIHRvICB0aGlzCmFydGljbGUuCgogIFMgMTAuMTMu IEFkZGl0aW9uYWwgY29uc2lkZXJhdGlvbnMgaW4gZnVsZmlsbGluZyBpdHMgcmVzcG9uc2li aWxpdGllcy4gSW4KZnVsZmlsbGluZyBpdHMgcmVzcG9uc2liaWxpdGllcyB1bmRlciB0aGlz ICBhcnRpY2xlLCAgdGhlICBpbnN0aXR1dGUgIHNoYWxsCmFkZGl0aW9uYWxseToKICAxLiAg R2l2ZSAgY29uc2lkZXJhdGlvbiAgdG8gIHRoZSAgbGlrZWxpaG9vZCBvZiBhbnkgcHJvamVj dCB1bmRlcnRha2VuIHRvCmF0dHJhY3Qgb3IgZW5oYW5jZSB0b3VyaXNtIHRocm91Z2ggYSBn cmVhdGVyIGFwcHJlY2lhdGlvbiBvZiAgdGhlICBhcnRpc3RpYwphbmQgY3VsdHVyYWwgaGVy aXRhZ2Ugb2YgdGhlIEh1ZHNvbiByaXZlciBhcmVhLgogIDIuICBFbmNvdXJhZ2UgIHRoZSAg YXBwcmVjaWF0aW9uICBvZiAgdGhlIEh1ZHNvbiByaXZlciBhcmVhIGJ5IGluZGl2aWR1YWwK YXJ0aXN0cy4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUgQ29uc29saWRh dGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRJVExFIEMKICAgICAgICAgICAgVFJBTlNBQ1RJT05TIElOVk9MVklO RyBBUlRJU1RTIEFORCBUSEVJUiBXT1JLUwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpOZXcgWW9y ayBTdGF0ZSBDb25zb2xpZGF0ZWQgTGF3cwpBcnRzIGFuZCBDdWx0dXJhbCBBZmZhaXJzCgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlRJQ0xFIDExCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgREVGSU5JVElPTlMKU2VjdGlvbiAgMTEuMDEuIERlZmluaXRpb25z LgoKIFMgMTEuMDEuIERlZmluaXRpb25zLiBBcyB1c2VkIGluIHRoaXMgdGl0bGU6CiAxLiAg IkFydGlzdCIgIG1lYW5zICB0aGUgIGNyZWF0b3Igb2YgYSB3b3JrIG9mIGZpbmUgYXJ0IG9y LCBpbiB0aGUgY2FzZSBvZgptdWx0aXBsZXMsIHRoZSBwZXJzb24gd2hvIGNvbmNlaXZlZCBv ciBjcmVhdGVkIHRoZSBpbWFnZSB3aGljaCBpcyBjb250YWluZWQKaW4gIG9yICB3aGljaCAg Y29uc3RpdHV0ZXMgIHRoZSAgbWFzdGVyIGZyb20gd2hpY2ggdGhlIGluZGl2aWR1YWwgcHJp bnQgd2FzCm1hZGUuCiAyLiAgIkFydCAgbWVyY2hhbnQiICBtZWFucyAgYSAgcGVyc29uICB3 aG8gIGlzIGluIHRoZSBidXNpbmVzcyBvZiBkZWFsaW5nLApleGNsdXNpdmVseSBvciBub24t ZXhjbHVzaXZlbHksIGluIHdvcmtzIG9mIGZpbmUgYXJ0ICBvciAgbXVsdGlwbGVzLCAgb3Ig IGEKcGVyc29uIHdobyBieSBoaXMgb2NjdXBhdGlvbiBob2xkcyBoaW1zZWxmIG91dCBhcyBo YXZpbmcga25vd2xlZGdlIG9yIHNraWxsCnBlY3VsaWFyIHRvIHN1Y2ggIHdvcmtzLCAgb3Ig IHRvICB3aG9tICBzdWNoICBrbm93bGVkZ2UgIG9yICBza2lsbCAgbWF5ICBiZQphdHRyaWJ1 dGVkICBieSAgaGlzIGVtcGxveW1lbnQgb2YgYW4gYWdlbnQgb3Igb3RoZXIgaW50ZXJtZWRp YXJ5IHdobyBieSBoaXMKb2NjdXBhdGlvbiBob2xkcyBoaW1zZWxmIG91dCBhcyBoYXZpbmcg c3VjaCBrbm93bGVkZ2Ugb3IgIHNraWxsLiAgVGhlICB0ZXJtCiJhcnQgIG1lcmNoYW50IiAg aW5jbHVkZXMgIGFuICBhdWN0aW9uZWVyICB3aG8gIHNlbGxzICBzdWNoIHdvcmtzIGF0IHB1 YmxpYwphdWN0aW9uLCBhbmQgZXhjZXB0ICBpbiAgdGhlICBjYXNlICBvZiAgbXVsdGlwbGVz LCAgaW5jbHVkZXMgIHBlcnNvbnMsICBub3QKb3RoZXJ3aXNlIGRlZmluZWQgb3IgdHJlYXRl ZCBhcyBhcnQgbWVyY2hhbnRzIGhlcmVpbiwgd2hvIGFyZSBjb25zaWdub3JzIG9yCnByaW5j aXBhbHMgb2YgYXVjdGlvbmVlcnMuCiAzLiAiQXV0aG9yIiBvciAiYXV0aG9yc2hpcCIgcmVm ZXJzIHRvIHRoZSBjcmVhdG9yIG9mIGEgd29yayBvZiBmaW5lIGFydCBvcgptdWx0aXBsZSBv ciB0byB0aGUgcGVyaW9kLCBjdWx0dXJlLCBzb3VyY2Ugb3Igb3JpZ2luLCBhcyB0aGUgY2Fz ZSAgbWF5ICBiZSwKd2l0aCAgd2hpY2ggIHRoZSAgY3JlYXRpb24gb2Ygc3VjaCB3b3JrIGlz IGlkZW50aWZpZWQgaW4gdGhlIGRlc2NyaXB0aW9uIG9mCnRoZSB3b3JrLgogNC4gICJDcmVk aXRvcnMiICBtZWFucyAgImNyZWRpdG9yIiAgYXMgIGRlZmluZWQgIGluICBzdWJkaXZpc2lv biB0d2VsdmUgb2YKc2VjdGlvbiAxLTIwMSBvZiB0aGUgdW5pZm9ybSBjb21tZXJpY2FsIGNv ZGUuCiA1LiAgIkNvdW50ZXJmZWl0IiAgbWVhbnMgIGEgIHdvcmsgb2YgZmluZSBhcnQgb3Ig bXVsdGlwbGUgbWFkZSwgYWx0ZXJlZCBvcgpjb3BpZWQsIHdpdGggb3Igd2l0aG91dCBpbnRl bnQgdG8gZGVjZWl2ZSwgaW4gc3VjaCBtYW5uZXIgdGhhdCAgaXQgIGFwcGVhcnMKb3IgaXMg Y2xhaW1lZCB0byBoYXZlIGFuIGF1dGhvcnNoaXAgd2hpY2ggaXQgZG9lcyBub3QgaW4gZmFj dCBwb3NzZXNzLgogNi4gICJDZXJ0aWZpY2F0ZSAgb2YgIGF1dGhlbnRpY2l0eSIgIG1lYW5z ICBhICB3cml0dGVuIHN0YXRlbWVudCBieSBhbiBhcnQKbWVyY2hhbnQgY29uZmlybWluZywg YXBwcm92aW5nIG9yIGF0dGVzdGluZyB0byB0aGUgYXV0aG9yc2hpcCBvZiBhIHdvcmsgIG9m CmZpbmUgIGFydCAgb3IgIG11bHRpcGxlLCB3aGljaCBpcyBjYXBhYmxlIG9mIGJlaW5nIHVz ZWQgdG8gdGhlIGFkdmFudGFnZSBvcgpkaXNhZHZhbnRhZ2Ugb2Ygc29tZSBwZXJzb24uCiA3 LiAiQ29uc2VydmF0aW9uIiBtZWFucyBhY3RzIHRha2VuIHRvIGNvcnJlY3QgZGV0ZXJpb3Jh dGlvbiBhbmQgYWx0ZXJhdGlvbgphbmQgYWN0cyB0YWtlbiB0byBwcmV2ZW50LCBzdG9wIG9y IHJldGFyZCBkZXRlcmlvcmF0aW9uLgogOC4gICAiQ3JhZnQiICBtZWFucyAgYSAgZnVuY3Rp b25hbCAgb3IgIG5vbi1mdW5jdGlvbmFsICB3b3JrICBpbmRpdmlkdWFsbHkKZGVzaWduZWQs IGFuZCBjcmFmdGVkIGJ5IGhhbmQsIGluIGFueSBtZWRpdW0gaW5jbHVkaW5nIGJ1dCBub3Qg IGxpbWl0ZWQgIHRvCnRleHRpbGUsIHRpbGUsIHBhcGVyLCBjbGF5LCBnbGFzcywgZmliZXIs IHdvb2QsIG1ldGFsIG9yIHBsYXN0aWM7IHByb3ZpZGVkLApob3dldmVyLCB0aGF0IGlmIHBy b2R1Y2VkIGluIG11bHRpcGxlcywgY3JhZnQgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgIG1h c3MKcHJvZHVjZWQgb3IgcHJvZHVjZWQgaW4gb3RoZXIgdGhhbiBhIGxpbWl0ZWQgZWRpdGlv bi4KIDkuICAiRmluZSAgYXJ0IiAgbWVhbnMgIGEgcGFpbnRpbmcsIHNjdWxwdHVyZSwgZHJh d2luZywgb3Igd29yayBvZiBncmFwaGljCmFydCwgYW5kIHByaW50LCBidXQgbm90IG11bHRp cGxlcy4KIDEwLiAgIkxpbWl0ZWQgIGVkaXRpb24iICBtZWFucyB3b3JrcyBvZiBhcnQgcHJv ZHVjZWQgZnJvbSBhIG1hc3RlciwgYWxsIG9mCndoaWNoIGFyZSB0aGUgc2FtZSBpbWFnZSBh bmQgYmVhciBudW1iZXJzIG9yIG90aGVyIG1hcmtpbmdzIHRvICBkZW5vdGUgIHRoZQpsaW1p dGVkICBwcm9kdWN0aW9uIHRoZXJlb2YgdG8gYSBzdGF0ZWQgbWF4aW11bSBudW1iZXIgb2Yg bXVsdGlwbGVzLCBvciBhcmUKb3RoZXJ3aXNlIGhlbGQgb3V0IGFzIGxpbWl0ZWQgdG8gYSBt YXhpbXVtIG51bWJlciBvZiBtdWx0aXBsZXMuCiAxMS4gICJNYXN0ZXIiICAgd2hlbiAgdXNl ZCAgYWxvbmUgaXMgdXNlZCBpbiBsaWV1IG9mIGFuZCBtZWFucyB0aGUgc2FtZSBhcwpzdWNo IHRoaW5ncyBhcyBwcmludGluZyBwbGF0ZSwgc3RvbmUsIGJsb2NrLCBzY3JlZW4sIHBob3Rv Z3JhcGhpYyAgbmVnYXRpdmUKb3IgIG90aGVyICBsaWtlIG1hdGVyaWFsIHdoaWNoIGNvbnRh aW5zIGFuIGltYWdlIHVzZWQgdG8gcHJvZHVjZSB2aXN1YWwgYXJ0Cm9iamVjdHMgaW4gbXVs dGlwbGVzLCBvciBpbiB0aGUgY2FzZSBvZiBzY3VscHR1cmVzLCBhICBtb2xkLCAgbW9kZWws ICBjYXN0LApmb3JtICBvciBvdGhlciBwcm90b3R5cGUsIG90aGVyIHRoYW4gZnJvbSBnbGFz cywgd2hpY2ggYWRkaXRpb25hbCBtdWx0aXBsZXMKb2Ygc2N1bHB0dXJlIGFyZSBwcm9kdWNl ZCwgZmFicmljYXRlZCBvciBjYXJ2ZWQuCiAxMi4gICJPbiAgY29uc2lnbm1lbnQiICBtZWFu cyAgdGhhdCAgbm8gIHRpdGxlICB0bywgZXN0YXRlIGluLCBvciByaWdodCB0bwpwb3NzZXNz aW9uIG9mLCB0aGUgd29yayBvZiBmaW5lIGFydCBvciBtdWx0aXBsZSB0aGF0IGlzIHN1cGVy aW9yIHRvIHRoYXQgb2YKdGhlIGNvbnNpZ25vciB2ZXN0cyBpbiB0aGUgY29uc2lnbmVlLCBu b3R3aXRoc3RhbmRpbmcgdGhlIGNvbnNpZ25lZWBzIHBvd2VyCm9yIGF1dGhvcml0eSB0byB0 cmFuc2ZlciBvciBjb252ZXkgYWxsIHRoZSByaWdodCwgdGl0bGUgYW5kIGludGVyZXN0IG9m IHRoZQpjb25zaWdub3IsIGluIGFuZCB0byBzdWNoIHdvcmssIHRvIGEgdGhpcmQgcGVyc29u LgogMTMuICJQZXJzb24iIG1lYW5zIGFuIGluZGl2aWR1YWwsIHBhcnRuZXJzaGlwLCBjb3Jw b3JhdGlvbiwgYXNzb2NpYXRpb24gb3IKb3RoZXIgZ3JvdXAsIGhvd2V2ZXIgb3JnYW5pemVk LgogMTQuICJQcmludCIgaW4gYWRkaXRpb24gdG8gbWVhbmluZyBhIG11bHRpcGxlIHByb2R1 Y2VkIGJ5LCBidXQgbm90IGxpbWl0ZWQKdG8sIHN1Y2ggcHJvY2Vzc2VzIGFzICBlbmdyYXZp bmcsICBldGNoaW5nLCAgd29vZGN1dHRpbmcsICBsaXRob2dyYXBoeSAgYW5kCnNlcmlncmFw aHksICBhbHNvICBtZWFucyAgbXVsdGlwbGVzIHByb2R1Y2VkIG9yIGRldmVsb3BlZCBmcm9t IHBob3RvZ3JhcGhpYwpuZWdhdGl2ZXMsIG9yIGFueSBjb21iaW5hdGlvbiB0aGVyZW9mLgog MTUuICJQcm9vZnMiIG1lYW5zIG11bHRpcGxlcyB3aGljaCBhcmUgdGhlIHNhbWUgYXMsIGFu ZCB3aGljaCBhcmUgcHJvZHVjZWQKZnJvbSB0aGUgc2FtZSBtYXN0ZXJzIGFzLCB0aGUgbXVs dGlwbGVzIGluIGEgbGltaXRlZCAgZWRpdGlvbiwgIGJ1dCAgd2hpY2gsCndoZXRoZXIgc28g ZGVzaWduYXRlZCBvciBub3QsIGFyZSBzZXQgYXNpZGUgZnJvbSBhbmQgYXJlIGluIGFkZGl0 aW9uIHRvIHRoZQpsaW1pdGVkIGVkaXRpb24gdG8gd2hpY2ggdGhleSByZWxhdGUuCiAxNi4g ICJSZXByb2R1Y3Rpb24iICBtZWFucyAgYSAgY29weSwgaW4gYW55IG1lZGl1bSwgb2YgYSB3 b3JrIG9mIGZpbmUgYXJ0LAp0aGF0ICBpcyAgZGlzcGxheWVkICBvciAgcHVibGlzaGVkICB1 bmRlciAgY2lyY3Vtc3RhbmNlcyAgdGhhdCwgIHJlYXNvbmFibHkKY29uc3RydWVkLCBldmlu Y2VzIGFuIGludGVudCB0aGF0IGl0IGJlIHRha2VuIGFzIGEgcmVwcmVzZW50YXRpb24gb2Yg YSB3b3JrCm9mIGZpbmUgYXJ0IGFzIGNyZWF0ZWQgYnkgdGhlIGFydGlzdC4KIDE3LiAgIlJl cHJvZHVjdGlvbiAgcmlnaHQiICBtZWFucyBhIHJpZ2h0IHRvIHJlcHJvZHVjZSwgcHJlcGFy ZSBkZXJpdmF0aXZlCndvcmtzIG9mLCBkaXN0cmlidXRlIGNvcGllcyBvZiwgcHVibGljbHkg cGVyZm9ybSBvciBwdWJsaWNseSBkaXNwbGF5IGEgd29yawpvZiBmaW5lIGFydC4KIDE4LiAg IlNjdWxwdHVyZSIgIG1lYW5zICBhICB0aHJlZS1kaW1lbnNpb25hbCAgZmluZSAgYXJ0ICBv YmplY3QgcHJvZHVjZWQsCmZhYnJpY2F0ZWQgb3IgY2FydmVkIGluIG11bHRpcGxlIGZyb20g YSBtb2xkLCBtb2RlbCwgY2FzdCwgIGZvcm0gIG9yICBvdGhlcgpwcm90b3R5cGUsICBvdGhl ciAgdGhhbiBmcm9tIGdsYXNzLCBzb2xkLCBvZmZlcmVkIGZvciBzYWxlIG9yIGNvbnNpZ25l ZCBpbiwKaW50byBvciBmcm9tIHRoaXMgc3RhdGUgZm9yIGFuIGFtb3VudCBpbiBleGNlc3Mg b2YgZmlmdGVlbiBodW5kcmVkIGRvbGxhcnMuCiAxOS4gICJTaWduZWQiICBtZWFucyAgYXV0 b2dyYXBoZWQgIGJ5ICB0aGUgIGFydGlzdGBzICBvd24gaGFuZCwgYW5kIG5vdCBieQptZWNo YW5pY2FsIG1lYW5zIG9mIHJlcHJvZHVjdGlvbiwgYWZ0ZXIgdGhlIG11bHRpcGxlIHdhcyBw cm9kdWNlZCwgIHdoZXRoZXIKb3Igbm90IHRoZSBtYXN0ZXIgd2FzIHNpZ25lZCBvciB1bnNp Z25lZC4KIDIwLiAgIlZpc3VhbCAgYXJ0ICBtdWx0aXBsZXMiICBvciAgIm11bHRpcGxlcyIg IG1lYW5zIHByaW50cywgcGhvdG9ncmFwaHMsCnBvc2l0aXZlIG9yIG5lZ2F0aXZlLCBzY3Vs cHR1cmUgYW5kIHNpbWlsYXIgYXJ0IG9iamVjdHMgIHByb2R1Y2VkICBpbiAgbW9yZQp0aGFu IG9uZSBjb3B5IGFuZCBzb2xkLCBvZmZlcmVkIGZvciBzYWxlIG9yIGNvbnNpZ25lZCBpbiwg aW50byBvciBmcm9tIHRoaXMKc3RhdGUgZm9yIGFuIGFtb3VudCBpbiBleGNlc3Mgb2Ygb25l IGh1bmRyZWQgZG9sbGFycyBleGNsdXNpdmUgb2YgYW55IGZyYW1lCm9yICBpbiAgdGhlICBj YXNlICBvZiAgc2N1bHB0dXJlLCAgYW4gIGFtb3VudCAgaW4gZXhjZXNzIG9mIGZpZnRlZW4g aHVuZHJlZApkb2xsYXJzLiBQYWdlcyBvciBzaGVldHMgdGFrZW4gZnJvbSBib29rcyBhbmQg IG1hZ2F6aW5lcyAgYW5kICBvZmZlcmVkICBmb3IKc2FsZSAgb3IgIHNvbGQgIGFzICB2aXN1 YWwgIGFydCAgb2JqZWN0cyAgc2hhbGwgIGJlIGluY2x1ZGVkLCBidXQgYm9va3MgYW5kCm1h Z2F6aW5lcyBhcmUgZXhjbHVkZWQuCiAyMS4gICJXcml0dGVuICBpbnN0cnVtZW50IiAgbWVh bnMgIGEgd3JpdHRlbiBvciBwcmludGVkIGFncmVlbWVudCwgYmlsbCBvZgpzYWxlLCBpbnZv aWNlLCBjZXJ0aWZpY2F0ZSBvZiBhdXRoZW50aWNpdHksIGNhdGFsb2d1ZSBvciBhbnkgb3Ro ZXIgIHdyaXR0ZW4Kb3IgIHByaW50ZWQgIG5vdGUgb3IgbWVtb3JhbmR1bSBvciBsYWJlbCBk ZXNjcmliaW5nIHRoZSB3b3JrIG9mIGZpbmUgYXJ0IG9yCm11bHRpcGxlIHdoaWNoIGlzIHRv IGJlIHNvbGQsIGV4Y2hhbmdlZCBvciBjb25zaWduZWQgYnkgYW4gYXJ0IG1lcmNoYW50LgoK CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpOZXcgWW9yayBTdGF0ZSBDb25zb2xpZGF0ZWQgTGF3cwpB cnRzIGFuZCBDdWx0dXJhbCBBZmZhaXJzCgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQVJUSUNMRSAxMgogICAgICAgICAgICAgICAgICAgIEFSVElTVC1BUlQgTUVSQ0hBTlQg UkVMQVRJT05TSElQUwpTZWN0aW9uIDEyLjAxLiBBcnRpc3QtYXJ0IG1lcmNoYW50IHJlbGF0 aW9uc2hpcHMuCiAgICAgICAgMTIuMDMuIEV4ZW1wdGlvbiBmcm9tIHNlaXp1cmUuCgogIFMg IDEyLjAxLiAgQXJ0aXN0LWFydCAgbWVyY2hhbnQgIHJlbGF0aW9uc2hpcHMuIDEuIE5vdHdp dGhzdGFuZGluZyBhbnkKY3VzdG9tLCBwcmFjdGljZSBvciB1c2FnZSBvZiB0aGUgdHJhZGUs IGFueSAgcHJvdmlzaW9uICBvZiAgdGhlICB1bmlmb3JtCmNvbW1lcmNpYWwgIGNvZGUgIG9y IGFueSBvdGhlciBsYXcsIHN0YXR1dGUsIHJlcXVpcmVtZW50IG9yIHJ1bGUsIG9yIGFueQph Z3JlZW1lbnQsIG5vdGUsIG1lbW9yYW5kdW0gb3Igd3JpdGluZyB0byB0aGUgY29udHJhcnk6 CiAgKGEpICBXaGVuZXZlciAgYW4gIGFydGlzdCAgb3IgIGNyYWZ0c3BlcnNvbiwgIGhpcyAg aGVpcnMgIG9yICBwZXJzb25hbApyZXByZXNlbnRhdGl2ZXMsIGRlbGl2ZXJzIG9yIGNhdXNl cyB0byBiZSBkZWxpdmVyZWQgYSB3b3JrIG9mIGZpbmUgIGFydCwKY3JhZnQgIG9yIGEgcHJp bnQgb2YgaGlzIG93biBjcmVhdGlvbiB0byBhbiBhcnQgbWVyY2hhbnQgZm9yIHRoZSBwdXJw b3NlCm9mIGV4aGliaXRpb24gYW5kL29yIHNhbGUgIG9uICBhICBjb21taXNzaW9uLCAgZmVl ICBvciAgb3RoZXIgIGJhc2lzICBvZgpjb21wZW5zYXRpb24sIHRoZSBkZWxpdmVyeSB0byBh bmQgYWNjZXB0YW5jZSB0aGVyZW9mIGJ5IHRoZSBhcnQgbWVyY2hhbnQKZXN0YWJsaXNoZXMg YSBjb25zaWdub3IvY29uc2lnbmVlIHJlbGF0aW9uc2hpcCBhcyBiZXR3ZWVuIHN1Y2ggYXJ0 aXN0IG9yCmNyYWZ0c3BlcnNvbiBhbmQgc3VjaCBhcnQgbWVyY2hhbnQgd2l0aCByZXNwZWN0 IHRvIHRoZSBzYWlkIHdvcmssIGFuZDoKICAoaSkgIHN1Y2ggY29uc2lnbmVlIHNoYWxsIHRo ZXJlYWZ0ZXIgYmUgZGVlbWVkIHRvIGJlIHRoZSBhZ2VudCBvZiBzdWNoCmNvbnNpZ25vciB3 aXRoIHJlc3BlY3QgdG8gdGhlIHNhaWQgd29yazsKICAoaWkpIHN1Y2ggd29yayBpcyB0cnVz dCBwcm9wZXJ0eSBpbiB0aGUgaGFuZHMgb2YgdGhlIGNvbnNpZ25lZSBmb3IgdGhlCmJlbmVm aXQgb2YgdGhlIGNvbnNpZ25vcjsKICAoaWlpKSAgYW55ICBwcm9jZWVkcyBmcm9tIHRoZSBz YWxlIG9mIHN1Y2ggd29yayBhcmUgdHJ1c3QgZnVuZHMgaW4gdGhlCmhhbmRzIG9mIHRoZSBj b25zaWduZWUgZm9yIHRoZSBiZW5lZml0IG9mIHRoZSBjb25zaWdub3I7CiAgKGl2KSAgc3Vj aCAgd29yayAgc2hhbGwgIHJlbWFpbiAgdHJ1c3QgIHByb3BlcnR5ICBub3R3aXRoc3RhbmRp bmcgIGl0cwpwdXJjaGFzZSBieSB0aGUgY29uc2lnbmVlIGZvciBoaXMgb3duIGFjY291bnQg dW50aWwgdGhlIHByaWNlIGlzIHBhaWQgaW4KZnVsbCAgdG8gIHRoZSBjb25zaWdub3I7IHBy b3ZpZGVkIHRoYXQsIGlmIHN1Y2ggd29yayBpcyByZXNvbGQgdG8gYSBib25hCmZpZGUgdGhp cmQgcGFydHkgYmVmb3JlIHRoZSBjb25zaWdub3IgaGFzIGJlZW4gcGFpZCBpbiBmdWxsLCB0 aGUgIHJlc2FsZQpwcm9jZWVkcyAgYXJlICB0cnVzdCBmdW5kcyBpbiB0aGUgaGFuZHMgb2Yg dGhlIGNvbnNpZ25lZSBmb3IgdGhlIGJlbmVmaXQKb2YgdGhlIGNvbnNpZ25vciB0byB0aGUg ZXh0ZW50IG5lY2Vzc2FyeSB0byBwYXkgYW55IGJhbGFuY2Ugc3RpbGwgZHVlIHRvCnRoZSAg Y29uc2lnbm9yICBhbmQgIHN1Y2ggdHJ1c3RlZXNoaXAgc2hhbGwgY29udGludWUgdW50aWwg dGhlIGZpZHVjaWFyeQpvYmxpZ2F0aW9uICBvZiAgdGhlICBjb25zaWduZWUgIHdpdGggIHJl c3BlY3QgIHRvICBzdWNoICB0cmFuc2FjdGlvbiAgaXMKZGlzY2hhcmdlZCBpbiBmdWxsOyBh bmQKICAodikgIG5vICBzdWNoICB0cnVzdCAgcHJvcGVydHkgIG9yICB0cnVzdCAgZnVuZHMg IHNoYWxsICBiZSBzdWJqZWN0IG9yCnN1Ym9yZGluYXRlIHRvIGFueSBjbGFpbXMsIGxpZW5z IG9yIHNlY3VyaXR5IGludGVyZXN0ICBvZiAgYW55ICBraW5kICBvcgpuYXR1cmUgd2hhdHNv ZXZlci4KICAoYikgIFdhaXZlciBvZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgc2VjdGlvbiBp cyBhYnNvbHV0ZWx5IHZvaWQgZXhjZXB0CnRoYXQgYSBjb25zaWdub3IgbWF5IGxhd2Z1bGx5 IHdhaXZlIHRoZSBwcm92aXNpb25zIG9mICBjbGF1c2UgIChpaWkpICBvZgpwYXJhZ3JhcGgg KGEpIG9mIHRoaXMgc3ViZGl2aXNpb24sIGlmIHN1Y2ggd2FpdmVyIGlzIGNsZWFyLCBjb25z cGljdW91cywKaW4gd3JpdGluZyBhbmQgc3Vic2NyaWJlZCBieSB0aGUgY29uc2lnbm9yLCBw cm92aWRlZDoKICAoaSkgIG5vICBzdWNoICB3YWl2ZXIgIHNoYWxsICBiZSAgdmFsaWQgIHdp dGggcmVzcGVjdCB0byB0aGUgZmlyc3QgdHdvCnRob3VzYW5kIGZpdmUgaHVuZHJlZCBkb2xs YXJzIG9mIGdyb3NzIHByb2NlZWRzIG9mIHNhbGVzIHJlY2VpdmVkIGluIGFueQp0d2VsdmUt bW9udGggIHBlcmlvZCAgY29tbWVuY2luZyAgd2l0aCB0aGUgZGF0ZSBvZiB0aGUgZXhlY3V0 aW9uIG9mIHN1Y2gKd2FpdmVyOwogIChpaSkgIG5vICBzdWNoIHdhaXZlciBzaGFsbCBiZSB2 YWxpZCB3aXRoIHJlc3BlY3QgdG8gdGhlIHByb2NlZWRzIG9mIGEKd29yayBpbml0aWFsbHkg cmVjZWl2ZWQgb24gY29uc2lnbm1lbnQgYnV0IHN1YnNlcXVlbnRseSBwdXJjaGFzZWQgYnkg dGhlCmNvbnNpZ25lZSBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGZvciBoaXMgb3duIGFjY291 bnQ7IGFuZAogIChpaWkpICBubyAgc3VjaCAgd2FpdmVyICBzaGFsbCBpbnVyZSB0byB0aGUg YmVuZWZpdCBvZiB0aGUgY29uc2lnbmVlYHMKY3JlZGl0b3JzIGluIGFueSBtYW5uZXIgd2hp Y2ggbWlnaHQgYmUgaW5jb25zaXN0ZW50IHdpdGggdGhlIGNvbnNpZ25vcmBzCnJpZ2h0cyB1 bmRlciB0aGlzIHN1YmRpdmlzaW9uLgogIChjKSAgcHJvY2VlZHMgZnJvbSB0aGUgc2FsZSBv ZiBjb25zaWduZWQgd29ya3MgY292ZXJlZCBieSB0aGlzIHNlY3Rpb24Kc2hhbGwgYmUgZGVl bWVkIHRvIGJlIHJldmVudWUgZnJvbSB0aGUgc2FsZSBvZiB0YW5naWJsZSAgZ29vZHMgIGFu ZCAgbm90CnJldmVudWUgIGZyb20gIHRoZSAgcHJvdmlzaW9uICBvZiAgc2VydmljZXMgIHRv IHRoZSBjb25zaWdub3Igb3Igb3RoZXJzLApleGNlcHQgdGhhdCB0aGUgcHJvdmlzaW9ucyBv ZiB0aGlzIHBhcmFncmFwaCBzaGFsbCBub3QgYXBwbHkgdG8gcHJvY2VlZHMKZnJvbSB0aGUg c2FsZSBvZiBjb25zaWduZWQgd29ya3Mgc29sZCBhdCBwdWJsaWMgYXVjdGlvbi4KICAyLiAg Tm90aGluZyBpbiB0aGlzIHNlY3Rpb24gc2hhbGwgYmUgY29uc3RydWVkIHRvIGhhdmUgYW55 IGVmZmVjdCB1cG9uCmFueSB3cml0dGVuIG9yIG9yYWwgIGNvbnRyYWN0ICBvciAgYXJyYW5n ZW1lbnQgIGluICBleGlzdGVuY2UgIHByaW9yICB0bwpTZXB0ZW1iZXIgIGZpcnN0LCAgbmlu ZXRlZW4gIGh1bmRyZWQgIHNpeHR5LW5pbmUgb3IgdG8gYW55IGV4dGVuc2lvbnMgb3IKcmVu ZXdhbHMgdGhlcmVvZiBleGNlcHQgYnkgdGhlIG11dHVhbCB3cml0dGVuICBjb25zZW50ICBv ZiAgdGhlICBwYXJ0aWVzCnRoZXJldG8uCgogIFMgIDEyLjAzLiBFeGVtcHRpb24gZnJvbSBz ZWl6dXJlLiBObyBwcm9jZXNzIG9mIGF0dGFjaG1lbnQsIGV4ZWN1dGlvbiwKc2VxdWVzdHJh dGlvbiwgcmVwbGV2aW4sIGRpc3RyZXNzIG9yIGFueSBraW5kIG9mIHNlaXp1cmUgc2hhbGwg YmUgc2VydmVkCm9yICBsZXZpZWQgIHVwb24gIGFueSAgd29yayAgb2YgZmluZSBhcnQgd2hp bGUgdGhlIHNhbWUgaXMgZW5yb3V0ZSB0byBvcgpmcm9tLCBvciB3aGlsZSBvbiBleGhpYml0 aW9uIG9yIGRlcG9zaXRlZCBieSBhIG5vbnJlc2lkZW50IGV4aGliaXRvciAgYXQKYW55ICBl eGhpYml0aW9uICBoZWxkICB1bmRlciAgdGhlIGF1c3BpY2VzIG9yIHN1cGVydmlzaW9uIG9m IGFueSBtdXNldW0sCmNvbGxlZ2UsIHVuaXZlcnNpdHkgb3IgIG90aGVyICBub25wcm9maXQg IGFydCAgZ2FsbGVyeSwgIGluc3RpdHV0aW9uICBvcgpvcmdhbml6YXRpb24gIHdpdGhpbiAg YW55IGNpdHkgb3IgY291bnR5IG9mIHRoaXMgc3RhdGUgZm9yIGFueSBjdWx0dXJhbCwKZWR1 Y2F0aW9uYWwsIGNoYXJpdGFibGUgb3Igb3RoZXIgcHVycG9zZSBub3QgY29uZHVjdGVkIGZv ciBwcm9maXQgdG8gdGhlCmV4aGliaXRvciwgIG5vciAgc2hhbGwgIHN1Y2ggIHdvcmsgb2Yg ZmluZSBhcnQgYmUgc3ViamVjdCB0byBhdHRhY2htZW50LApzZWl6dXJlLCBsZXZ5IG9yIHNh bGUsIGZvciBhbnkgIGNhdXNlICB3aGF0ZXZlciAgaW4gIHRoZSAgaGFuZHMgIG9mICB0aGUK YXV0aG9yaXRpZXMgb2Ygc3VjaCBleGhpYml0aW9uIG9yIG90aGVyd2lzZS4KCgoKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQg Q3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJUSUNM RSAxMwogICAgICAgICAgICAgICAgICAgICAgICAgIEVYUFJFU1MgV0FSUkFOVElFUwpTZWN0 aW9uIDEzLjAxLiBFeHByZXNzIHdhcnJhbnRpZXMuCiAgICAgICAgICAgICAgICAgICAxMy4w My4gRmFsc2lmeWluZyAgY2VydGlmaWNhdGVzIG9mIGF1dGhlbnRpY2l0eSBvcgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnkgIHNpbWlsYXIg IHdyaXR0ZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW5zdHJ1bWVudC4KICAgICAgICAgICAgICAgICAgIDEzLjA1LiBFeHByZXNzIHdhcnJh bnRpZXMgZm9yIG11bHRpcGxlcy4KICAgICAgICAgICAgICAgICAgIDEzLjA3LiBDb25zdHJ1 Y3Rpb24uCgogIFMgIDEzLjAxLiAgRXhwcmVzcyAgd2FycmFudGllcy4gIE5vdHdpdGhzdGFu ZGluZyAgYW55IHByb3Zpc2lvbiBvZiBhbnkKb3RoZXIgbGF3IHRvIHRoZSBjb250cmFyeToK ICAxLiAgV2hlbmV2ZXIgIGFuIGFydCBtZXJjaGFudCwgaW4gc2VsbGluZyBvciBleGNoYW5n aW5nIGEgd29yayBvZiBmaW5lCmFydCwgZnVybmlzaGVzIHRvIGEgYnV5ZXIgb2Ygc3VjaCB3 b3JrIHdobyBpcyAgbm90ICBhbiAgYXJ0ICBtZXJjaGFudCAgYQpjZXJ0aWZpY2F0ZSBvZiBh dXRoZW50aWNpdHkgb3IgYW55IHNpbWlsYXIgd3JpdHRlbiBpbnN0cnVtZW50IGl0OgogIChh KSBTaGFsbCBiZSBwcmVzdW1lZCB0byBiZSBwYXJ0IG9mIHRoZSBiYXNpcyBvZiB0aGUgYmFy Z2FpbjsgYW5kCiAgKGIpICBTaGFsbCBjcmVhdGUgYW4gZXhwcmVzcyB3YXJyYW50eSBmb3Ig dGhlIG1hdGVyaWFsIGZhY3RzIHN0YXRlZCBhcwpvZiB0aGUgZGF0ZSBvZiBzdWNoIHNhbGUg b3IgZXhjaGFuZ2UuCiAgMi4gIEV4Y2VwdCAgYXMgIHByb3ZpZGVkICBpbiAgc3ViZGl2aXNp b24gIGZvdXIgIG9mIHRoaXMgc2VjdGlvbiwgc3VjaAp3YXJyYW50eSBzaGFsbCBub3QgYmUg bmVnYXRlZCBvciBsaW1pdGVkIHByb3ZpZGVkIHRoYXQgaW4gY29uc3RydWluZyB0aGUKZGVn cmVlICBvZiAgd2FycmFudHksIGR1ZSByZWdhcmQgc2hhbGwgYmUgZ2l2ZW4gdGhlIHRlcm1p bm9sb2d5IHVzZWQgYW5kCnRoZSBtZWFuaW5nIGFjY29yZGVkIHN1Y2ggdGVybWlub2xvZ3kg YnkgdGhlIGN1c3RvbXMgYW5kICB1c2FnZSAgb2YgIHRoZQp0cmFkZSAgYXQgIHRoZSAgdGlt ZSBhbmQgaW4gdGhlIGxvY2FsaXR5IHdoZXJlIHRoZSBzYWxlIG9yIGV4Y2hhbmdlIHRvb2sK cGxhY2UuCiAgMy4gIExhbmd1YWdlICB1c2VkIGluIGEgY2VydGlmaWNhdGUgb2YgYXV0aGVu dGljaXR5IG9yIHNpbWlsYXIgd3JpdHRlbgppbnN0cnVtZW50LCBzdGF0aW5nIHRoYXQ6CiAg KGEpICBUaGUgIHdvcmsgaXMgYnkgYSBuYW1lZCBhdXRob3Igb3IgaGFzIGEgbmFtZWQgYXV0 aG9yc2hpcCwgd2l0aG91dAphbnkgbGltaXRpbmcgd29yZHMsIG1lYW5zIHVuZXF1aXZvY2Fs bHksIHRoYXQgdGhlIHdvcmsgaXMgYnkgc3VjaCAgbmFtZWQKYXV0aG9yIG9yIGhhcyBzdWNo IG5hbWVkIGF1dGhvcnNoaXA7CiAgKGIpICBUaGUgIHdvcmsgIGlzICAiYXR0cmlidXRlZCB0 byBhIG5hbWVkIGF1dGhvciIgbWVhbnMgYSB3b3JrIG9mIHRoZQpwZXJpb2Qgb2YgdGhlIGF1 dGhvciwgYXR0cmlidXRlZCB0byBoaW0sIGJ1dCBub3Qgd2l0aCBjZXJ0YWludHkgYnkgIGhp bTsKb3IKICAoYykgIFRoZSB3b3JrIGlzIG9mIHRoZSAic2Nob29sIG9mIGEgbmFtZWQgYXV0 aG9yIiBtZWFucyBhIHdvcmsgb2YgdGhlCnBlcmlvZCBvZiB0aGUgYXV0aG9yLCBieSBhIHB1 cGlsIG9yIGNsb3NlIGZvbGxvd2VyIG9mICB0aGUgIGF1dGhvciwgIGJ1dApub3QgYnkgdGhl IGF1dGhvci4KICA0LiAoYSkgQW4gZXhwcmVzcyB3YXJyYW50eSBhbmQgZGlzY2xhaW1lcnMg aW50ZW5kZWQgdG8gbmVnYXRlIG9yIGxpbWl0CnN1Y2ggd2FycmFudHkgc2hhbGwgYmUgY29u c3RydWVkIHdoZXJldmVyIHJlYXNvbmFibGUgYXMgY29uc2lzdGVudCAgd2l0aAplYWNoIG90 aGVyIGJ1dCBzdWJqZWN0IHRvIHRoZSBwcm92aXNpb25zIG9mIHNlY3Rpb24gMi0yMDIgb2Yg dGhlIHVuaWZvcm0KY29tbWVyY2lhbCBjb2RlIG9uIHBhcm9sIG9yIGV4dHJpbnNpYyBldmlk ZW5jZSwgbmVnYXRpb24gIG9yICBsaW1pdGF0aW9uCmlzIGlub3BlcmF0aXZlIHRvIHRoZSBl eHRlbnQgdGhhdCBzdWNoIGNvbnN0cnVjdGlvbiBpcyB1bnJlYXNvbmFibGUuCiAgKGIpIFN1 Y2ggbmVnYXRpb24gb3IgbGltaXRhdGlvbiBzaGFsbCBiZSBkZWVtZWQgdW5yZWFzb25hYmxl IGlmOgogIChpKSAgdGhlICBkaXNjbGFpbWVyICBpcyAgbm90ICBjb25zcGljdW91cywgd3Jp dHRlbiBhbmQgYXBhcnQgZnJvbSB0aGUKd2FycmFudHksIGluIHdvcmRzIHdoaWNoIGNsZWFy bHkgYW5kIHNwZWNpZmljYWxseSBhcHByaXNlIHRoZSBidXllciB0aGF0CnRoZSBzZWxsZXIg YXNzdW1lcyBubyByaXNrLCBsaWFiaWxpdHkgb3IgcmVzcG9uc2liaWxpdHkgZm9yIHRoZSBt YXRlcmlhbApmYWN0cyBzdGF0ZWQgIGNvbmNlcm5pbmcgIHN1Y2ggIHdvcmsgIG9mICBmaW5l ICBhcnQuICBXb3JkcyAgb2YgIGdlbmVyYWwKZGlzY2xhaW1lciBhcmUgbm90IHN1ZmZpY2ll bnQgdG8gbmVnYXRlIG9yIGxpbWl0IGFuIGV4cHJlc3Mgd2FycmFudHk7IG9yCiAgKGlpKSAg dGhlICB3b3JrIG9mIGZpbmUgYXJ0IGlzIHByb3ZlZCB0byBiZSBhIGNvdW50ZXJmZWl0IGFu ZCB0aGlzIHdhcwpub3QgY2xlYXJseSBpbmRpY2F0ZWQgaW4gdGhlIGRlc2NyaXB0aW9uIG9m IHRoZSB3b3JrOyBvcgogIChpaWkpIHRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBpcyBwcm92 ZWQgdG8gYmUsIGFzIG9mIHRoZSBkYXRlIG9mIHNhbGUKb3IgZXhjaGFuZ2UsIGZhbHNlLCBt aXN0YWtlbiBvciBlcnJvbmVvdXMuCgpTICAxMy4wMy4gRmFsc2lmeWluZyBjZXJ0aWZpY2F0 ZXMgb2YgYXV0aGVudGljaXR5IG9yIGFueSBzaW1pbGFyIHdyaXR0ZW4KaW5zdHJ1bWVudC4g QSBwZXJzb24gd2hvLCB3aXRoIGludGVudCAgdG8gIGRlZnJhdWQsICBkZWNlaXZlICBvciAg aW5qdXJlCmFub3RoZXIsICBtYWtlcywgIHV0dGVycyAgb3IgaXNzdWVzIGEgY2VydGlmaWNh dGUgb2YgYXV0aGVudGljaXR5IG9yIGFueQpzaW1pbGFyIHdyaXR0ZW4gaW5zdHJ1bWVudCBm b3IgYSB3b3JrIG9mIGZpbmUgYXJ0IGF0dGVzdGluZyB0byAgbWF0ZXJpYWwKZmFjdHMgIHdo aWNoICB0aGUgIHdvcmsgIGRvZXMgbm90IGluIGZhY3QgcG9zc2VzcyBpcyBndWlsdHkgb2Yg YSBjbGFzcyBBCm1pc2RlbWVhbm9yLgoKICBTICAxMy4wNS4gIEV4cHJlc3MgIHdhcnJhbnRp ZXMgIGZvciBtdWx0aXBsZXMuIDEuIFdoZW4gYW4gYXJ0IG1lcmNoYW50CmZ1cm5pc2hlcyB0 aGUgbmFtZSBvZiB0aGUgYXJ0aXN0IG9mIGEgbXVsdGlwbGUsIG9yICBvdGhlcndpc2UgIGZ1 cm5pc2hlcwppbmZvcm1hdGlvbiAgIHJlcXVpcmVkICAgYnkgIHRoaXMgIHRpdGxlICBmb3Ig IGFueSAgdGltZSAgcGVyaW9kICBhcyAgdG8KdHJhbnNhY3Rpb25zIGluY2x1ZGluZyBvZmZl cnMsIHNhbGVzIG9yIGNvbnNpZ25tZW50cywgdGhlIHByb3Zpc2lvbnMgIG9mCnNlY3Rpb24g MTMuMDEgb2YgdGhpcyBhcnRpY2xlIHNoYWxsIGFwcGx5IGV4Y2VwdCB0aGF0IHNhaWQgc2Vj dGlvbiBzaGFsbApiZSBkZWVtZWQgdG8gIGluY2x1ZGUgIHNhbGVzICB0byAgYXJ0ICBtZXJj aGFudHMuICBUaGUgIGV4aXN0ZW5jZSAgb2YgIGEKcmVhc29uYWJsZSAgYmFzaXMgIGluICBm YWN0ICBmb3IgIGluZm9ybWF0aW9uICB3YXJyYW50ZWQgIHNoYWxsIG5vdCBiZSBhCmRlZmVu c2UgaW4gYW4gYWN0aW9uIHRvIGVuZm9yY2Ugc3VjaCB3YXJyYW50eSwgZXhjZXB0ICBpbiAg dGhlICBjYXNlICBvZgpwaG90b2dyYXBocyAgcHJvZHVjZWQgIHByaW9yICB0byAgbmluZXRl ZW4gIGh1bmRyZWQgZmlmdHksIGFuZCBtdWx0aXBsZXMKcHJvZHVjZWQgcHJpb3IgdG8gbmlu ZXRlZW4gaHVuZHJlZC4KICAyLiBUaGUgcHJvdmlzaW9ucyBvZiBzdWJkaXZpc2lvbiBmb3Vy IG9mIHNlY3Rpb24gMTMuMDEgb2YgdGhpcyBhcnRpY2xlCnNoYWxsIGFwcGx5IHdoZW4gYW4g YXJ0IG1lcmNoYW50IGRpc2NsYWltcyBrbm93bGVkZ2UgYXMgIHRvICBhICBtdWx0aXBsZQph Ym91dCAgd2hpY2ggIGluZm9ybWF0aW9uICBpcyAgcmVxdWlyZWQgIGJ5IHRoaXMgdGl0bGUs IHByb3ZpZGVkIHRoYXQgaW4KYWRkaXRpb24sICBzdWNoICBkaXNjbGFpbWVyICBzaGFsbCAg YmUgICBpbmVmZmVjdGl2ZSAgIHVubGVzcyAgIGNsZWFybHksCnNwZWNpZmljYWxseSBhbmQg Y2F0ZWdvcmljYWxseSBzdGF0ZWQgYXMgdG8gZWFjaCBpdGVtIG9mIGluZm9ybWF0aW9uIGFu ZApjb250YWluZWQgaW4gdGhlIHBoeXNpY2FsIGNvbnRleHQgb2Ygb3RoZXIgbGFuZ3VhZ2Ug IHNldHRpbmcgIGZvcnRoICB0aGUKcmVxdWlyZWQgaW5mb3JtYXRpb24gYXMgdG8gYSBzcGVj aWZpYyBtdWx0aXBsZS4KCiAgUyAgMTMuMDcuICBDb25zdHJ1Y3Rpb24uIDEuIFRoZSByaWdo dHMgYW5kIGxpYWJpbGl0aWVzIGNyZWF0ZWQgYnkgdGhpcwphcnRpY2xlIHNoYWxsIGJlIGNv bnN0cnVlZCB0byBiZSBpbiBhZGRpdGlvbiB0byBhbmQgbm90IGluIHN1YnN0aXR1dGlvbiwK ZXhjbHVzaW9uICBvciAgZGlzcGxhY2VtZW50ICBvZiBvdGhlciByaWdodHMgYW5kIGxpYWJp bGl0aWVzIHByb3ZpZGVkIGJ5CmxhdywgaW5jbHVkaW5nIHRoZSAgbGF3ICBvZiAgcHJpbmNp cGFsICBhbmQgIGFnZW50LCAgZXhjZXB0ICB3aGVyZSAgc3VjaApjb25zdHJ1Y3Rpb24gd291 bGQsIGFzIGEgbWF0dGVyIG9mIGxhdywgYmUgdW5yZWFzb25hYmxlLgogIDIuICBObyAgYXJ0 ICBtZXJjaGFudCAgd2hvLCAgYXMgIGJ1eWVyLCBpcyBleGNsdWRlZCBmcm9tIG9idGFpbmlu ZyB0aGUKYmVuZWZpdHMgb2YgYW4gZXhwcmVzcyB3YXJyYW50eSB1bmRlciAgdGhpcyAgYXJ0 aWNsZSAgc2hhbGwgIHRoZXJlYnkgIGJlCmRlcHJpdmVkIG9mIHRoZSBiZW5lZml0cyBvZiBh bnkgb3RoZXIgcHJvdmlzaW9uIG9mIGxhdy4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTmV3IFlv cmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJUSUNMRSAxNAogICAgICAgICAg ICBXT1JLUyBPRiBGSU5FIEFSVDsgU0NVTFBUVVJFIEFORCBNVUxUSVBMRVMgR0VORVJBTExZ ClNlY3Rpb24gMTQuMDEuIFJpZ2h0IHRvIHJlcHJvZHVjZSB3b3JrcyBvZiBmaW5lIGFydC4K ICAgICAgIDE0LjAzLiBBcnRpc3RzIGF1dGhvcnNoaXAgcmlnaHRzLgogICAgICAgMTQuMDUu IFNjdWxwdHVyZTsgaWRlbnRpZnlpbmcgbWFyay4KICAgICAgIDE0LjA2LiBTY3VscHR1cmU7 IHdyaXR0ZW4gcmVjb3Jkcy4KICAgICAgIDE0LjA3LiBTY3VscHR1cmU7IHVuYXV0aG9yaXpl ZCBjYXN0LgogICAgICAgMTQuMDguIFZpb2xhdGlvbnMuCgogIFMgIDE0LjAxLiAgUmlnaHQg dG8gcmVwcm9kdWNlIHdvcmtzIG9mIGZpbmUgYXJ0LiAxLiBXaGVuZXZlciBhIHdvcmsgb2YK ZmluZSBhcnQgaXMgc29sZCBvciBvdGhlcndpc2UgdHJhbnNmZXJyZWQgYnkgb3Igb24gYmVo YWxmIG9mIHRoZSAgYXJ0aXN0CndobyAgIGNyZWF0ZWQgICBpdCwgIG9yICBoaXMgIGhlaXJz ICBvciAgcGVyc29uYWwgIHJlcHJlc2VudGF0aXZlcywgIHRoZQpyZXByb2R1Y3Rpb24gcmln aHQgdGhlcmV0byBpcyByZXNlcnZlZCB0byB0aGUgZ3JhbnRvciAgdW50aWwgIGl0ICBwYXNz ZXMKaW50byAgdGhlICBwdWJsaWMgZG9tYWluIGJ5IGFjdCBvciBvcGVyYXRpb24gb2YgbGF3 IHVubGVzcyBzdWNoIHJpZ2h0IGlzCnNvb25lciBleHByZXNzbHkgdHJhbnNmZXJyZWQgYnkg YW4gaW5zdHJ1bWVudCwgIG5vdGUgIG9yICBtZW1vcmFuZHVtICBpbgp3cml0aW5nICBzaWdu ZWQgIGJ5ICB0aGUgIG93bmVyICBvZiAgdGhlICByaWdodHMgIGNvbnZleWVkICBvciAgaGlz IGR1bHkKYXV0aG9yaXplZCBhZ2VudC4KICAyLiAgIFdoZW5ldmVyICAgYW4gICBleGNsdXNp dmUgIG9yICBub24tZXhjbHVzaXZlICBjb252ZXlhbmNlICBvZiAgYW55CnJlcHJvZHVjdGlv biByaWdodCBpcyBtYWRlIGJ5IHRoZSBob2xkZXIgb2YgIHN1Y2ggIHJpZ2h0LCAgb3IgIGhp cyAgZHVseQphdXRob3JpemVkICBhZ2VudCwgIG93bmVyc2hpcCAgb2YgdGhlIHBoeXNpY2Fs IHdvcmsgb2YgZmluZSBhcnQgc2hhbGwgYmUKcHJlc3VtZWQgdG8gcmVtYWluIHdpdGggYW5k IGJlIHJlc2VydmVkIHRvIHRoZSBncmFudG9yIHVubGVzcyAgZXhwcmVzc2x5CnRyYW5zZmVy cmVkICBpbiB3cml0aW5nIGJ5IGFuIGluc3RydW1lbnQsIG5vdGUgb3IgbWVtb3JhbmR1bSBv ciBieSBvdGhlcgp3cml0dGVuIG1lYW5zLCBzaWduZWQgYnkgdGhlIGdyYW50b3Igb3IgaGlz IGR1bHkgYXV0aG9yaXplZCBhZ2VudC4KICAzLiAgVGhpcyAgYXJ0aWNsZSBzaGFsbCBub3Qg YXBwbHkgdG8gdGhlIHNhbGUsIGNvbnZleWFuY2UsIGRvbmF0aW9uIG9yCm90aGVyIHRyYW5z ZmVyIG9mIHRoZSBwaHlzaWNhbCB3b3JrIG9mIGZpbmUgYXJ0IHdoaWNoIGRvZXMgbm90IGlu Y2x1ZGUgYQpjb252ZXlhbmNlIG9mIGEgcmVwcm9kdWN0aW9uIHJpZ2h0IGluIHN1Y2ggd29y ay4KICA0LiAgTm90aGluZyAgaGVyZWluIGNvbnRhaW5lZCwgaG93ZXZlciwgc2hhbGwgYmUg Y29uc3RydWVkIHRvIHByb2hpYml0CnRoZSBmYWlyIHVzZSBvZiBzdWNoIHdvcmsgb2YgZmlu ZSBhcnQuCiAgNS4gIE5vdGhpbmcgIGluIHRoaXMgc2VjdGlvbiBzaGFsbCBvcGVyYXRlIG9y IGJlIGNvbnN0cnVlZCB0byBjb25mbGljdAp3aXRoIGFueSByaWdodHMgb3IgbGlhYmlsaXRp ZXMgdW5kZXIgZmVkZXJhbCBjb3B5cmlnaHQgbGF3LgoKICBTICAgMTQuMDMuICAgQXJ0aXN0 cyAgYXV0aG9yc2hpcCAgcmlnaHRzLiAgMS4gIEV4Y2VwdCAgYXMgIGxpbWl0ZWQgIGJ5CnN1 YmRpdmlzaW9uIHRocmVlIG9mIHRoaXMgc2VjdGlvbiwgb24gYW5kIGFmdGVyIEphbnVhcnkg Zmlyc3QsICBuaW5ldGVlbgpodW5kcmVkICBlaWdodHktZml2ZSwgbm8gcGVyc29uIG90aGVy IHRoYW4gdGhlIGFydGlzdCBvciBhIHBlcnNvbiBhY3RpbmcKd2l0aCB0aGUgYXJ0aXN0YHMg Y29uc2VudCBzaGFsbCBrbm93aW5nbHkgZGlzcGxheSBpbiBhIHBsYWNlICBhY2Nlc3NpYmxl CnRvICB0aGUgcHVibGljIG9yIHB1Ymxpc2ggYSB3b3JrIG9mIGZpbmUgYXJ0IG9yIGxpbWl0 ZWQgZWRpdGlvbiBtdWx0aXBsZQpvZiBub3QgbW9yZSB0aGFuIHRocmVlIGh1bmRyZWQgY29w aWVzIGJ5IHRoYXQgYXJ0aXN0IG9yICBhICByZXByb2R1Y3Rpb24KdGhlcmVvZiAgaW4gIGFu IGFsdGVyZWQsIGRlZmFjZWQsIG11dGlsYXRlZCBvciBtb2RpZmllZCBmb3JtIGlmIHRoZSB3 b3JrCmlzIGRpc3BsYXllZCwgcHVibGlzaGVkIG9yIHJlcHJvZHVjZWQgYXMgYmVpbmcgdGhl IHdvcmsgb2YgIHRoZSAgYXJ0aXN0LApvciAgdW5kZXIgIGNpcmN1bXN0YW5jZXMgIHVuZGVy IHdoaWNoIGl0IHdvdWxkIHJlYXNvbmFibHkgYmUgcmVnYXJkZWQgYXMKYmVpbmcgdGhlIHdv cmsgb2YgdGhlIGFydGlzdCwgYW5kIGRhbWFnZSB0byB0aGUgYXJ0aXN0YHMgIHJlcHV0YXRp b24gIGlzCnJlYXNvbmFibHkgIGxpa2VseSAgdG8gIHJlc3VsdCB0aGVyZWZyb20sIGV4Y2Vw dCB0aGF0IHRoaXMgc2VjdGlvbiBzaGFsbApub3QgYXBwbHkgdG8gc2VxdWVudGlhbCBpbWFn ZXJ5IHN1Y2ggYXMgdGhhdCBpbiBtb3Rpb24gcGljdHVyZXMuCiAgMi4gIChhKSAgRXhjZXB0 ICBhcyAgbGltaXRlZCBieSBzdWJkaXZpc2lvbiB0aHJlZSBvZiB0aGlzIHNlY3Rpb24sIHRo ZQphcnRpc3Qgc2hhbGwgcmV0YWluIGF0IGFsbCB0aW1lcyB0aGUgcmlnaHQgdG8gY2xhaW0g YXV0aG9yc2hpcCwgb3IsICBmb3IKanVzdCBhbmQgdmFsaWQgcmVhc29uLCB0byBkaXNjbGFp bSBhdXRob3JzaGlwIG9mIHN1Y2ggd29yay4gVGhlIHJpZ2h0IHRvCmNsYWltIGF1dGhvcnNo aXAgc2hhbGwgaW5jbHVkZSB0aGUgcmlnaHQgb2YgdGhlIGFydGlzdCB0byAgaGF2ZSAgaGlz ICBvcgpoZXIgIG5hbWUgIGFwcGVhciAgb24gb3IgaW4gY29ubmVjdGlvbiB3aXRoIHN1Y2gg d29yayBhcyB0aGUgYXJ0aXN0LiBUaGUKcmlnaHQgdG8gZGlzY2xhaW0gYXV0aG9yc2hpcCBz aGFsbCBpbmNsdWRlIHRoZSByaWdodCBvZiAgdGhlICBhcnRpc3QgIHRvCnByZXZlbnQgIGhp cyAgb3IgIGhlciAgbmFtZSBmcm9tIGFwcGVhcmluZyBvbiBvciBpbiBjb25uZWN0aW9uIHdp dGggc3VjaAp3b3JrIGFzIHRoZSBhcnRpc3QuIEp1c3QgYW5kIHZhbGlkICByZWFzb24gIGZv ciAgZGlzY2xhaW1pbmcgIGF1dGhvcnNoaXAKc2hhbGwgIGluY2x1ZGUgIHRoYXQgIHRoZSAg d29yayAgaGFzIGJlZW4gYWx0ZXJlZCwgZGVmYWNlZCwgbXV0aWxhdGVkIG9yCm1vZGlmaWVk IG90aGVyIHRoYW4gYnkgdGhlIGFydGlzdCwgd2l0aG91dCAgdGhlICBhcnRpc3RgcyAgY29u c2VudCwgIGFuZApkYW1hZ2UgIHRvIHRoZSBhcnRpc3RgcyByZXB1dGF0aW9uIGlzIHJlYXNv bmFibHkgbGlrZWx5IHRvIHJlc3VsdCBvciBoYXMKcmVzdWx0ZWQgdGhlcmVmcm9tLgogIChi KSAgVGhlIHJpZ2h0cyBjcmVhdGVkIGJ5IHRoaXMgc3ViZGl2aXNpb24gc2hhbGwgZXhpc3Qg aW4gYWRkaXRpb24gdG8KYW55IG90aGVyICByaWdodHMgIGFuZCAgZHV0aWVzICB3aGljaCAg bWF5ICBub3cgIG9yICBpbiAgdGhlICBmdXR1cmUgIGJlCmFwcGxpY2FibGUuCiAgMy4gKGEp IEFsdGVyYXRpb24sIGRlZmFjZW1lbnQsIG11dGlsYXRpb24gb3IgbW9kaWZpY2F0aW9uIG9m IHN1Y2ggd29yawpyZXN1bHRpbmcgZnJvbSB0aGUgcGFzc2FnZSAgb2YgIHRpbWUgIG9yICB0 aGUgIGluaGVyZW50ICBuYXR1cmUgIG9mICB0aGUKbWF0ZXJpYWxzICB3aWxsICBub3QgIGJ5 IGl0c2VsZiBjcmVhdGUgYSB2aW9sYXRpb24gb2Ygc3ViZGl2aXNpb24gb25lIG9mCnRoaXMg c2VjdGlvbiBvciBhIHJpZ2h0IHRvIGRpc2NsYWltIGF1dGhvcnNoaXAgdW5kZXIgc3ViZGl2 aXNpb24gdHdvICBvZgp0aGlzICBzZWN0aW9uOyAgcHJvdmlkZWQgIHN1Y2ggIGFsdGVyYXRp b24sICBkZWZhY2VtZW50LCAgbXV0aWxhdGlvbiAgb3IKbW9kaWZpY2F0aW9uIHdhcyBub3Qg dGhlIHJlc3VsdCBvZiBncm9zcyBuZWdsaWdlbmNlICBpbiAgbWFpbnRhaW5pbmcgIG9yCnBy b3RlY3RpbmcgdGhlIHdvcmsgb2YgZmluZSBhcnQuCiAgKGIpIEluIHRoZSBjYXNlIG9mIGEg cmVwcm9kdWN0aW9uLCBhIGNoYW5nZSB0aGF0IGlzIGFuIG9yZGluYXJ5IHJlc3VsdApvZiB0 aGUgbWVkaXVtIG9mIHJlcHJvZHVjdGlvbiBkb2VzIG5vdCBieSBpdHNlbGYgY3JlYXRlIGEg IHZpb2xhdGlvbiAgb2YKc3ViZGl2aXNpb24gIG9uZSBvZiB0aGlzIHNlY3Rpb24gb3IgYSBy aWdodCB0byBkaXNjbGFpbSBhdXRob3JzaGlwIHVuZGVyCnN1YmRpdmlzaW9uIHR3byBvZiB0 aGlzIHNlY3Rpb24uCiAgKGMpICBDb25zZXJ2YXRpb24gIHNoYWxsICBub3QgIGNvbnN0aXR1 dGUgIGFuICBhbHRlcmF0aW9uLCBkZWZhY2VtZW50LAptdXRpbGF0aW9uIG9yIG1vZGlmaWNh dGlvbiB3aXRoaW4gdGhlIG1lYW5pbmcgb2YgIHRoaXMgIHNlY3Rpb24sICB1bmxlc3MKdGhl IGNvbnNlcnZhdGlvbiB3b3JrIGNhbiBiZSBzaG93biB0byBiZSBuZWdsaWdlbnQuCiAgKGQp ICBUaGlzICBzZWN0aW9uIHNoYWxsIG5vdCBhcHBseSB0byB3b3JrIHByZXBhcmVkIHVuZGVy IGNvbnRyYWN0IGZvcgphZHZlcnRpc2luZyBvciB0cmFkZSB1c2UgdW5sZXNzIHRoZSBjb250 cmFjdCBzbyBwcm92aWRlcy4KICAoZSkgIFRoZSAgcHJvdmlzaW9ucyBvZiB0aGlzIHNlY3Rp b24gc2hhbGwgYXBwbHkgb25seSB0byB3b3JrcyBvZiBmaW5lCmFydCBvciBsaW1pdGVkIGVk aXRpb24gbXVsdGlwbGVzIG9mIG5vdCBtb3JlIHRoYW4gdGhyZWUgIGh1bmRyZWQgIGNvcGll cwprbm93aW5nbHkgIGRpc3BsYXllZCAgaW4gIGEgcGxhY2UgYWNjZXNzaWJsZSB0byB0aGUg cHVibGljLCBwdWJsaXNoZWQgb3IKcmVwcm9kdWNlZCBpbiB0aGlzIHN0YXRlLgogIDQuIChh KSBBbiBhcnRpc3QgYWdncmlldmVkIHVuZGVyIHN1YmRpdmlzaW9uIG9uZSBvciBzdWJkaXZp c2lvbiB0d28gb2YKdGhpcyBzZWN0aW9uIHNoYWxsIGhhdmUgYSBjYXVzZSAgb2YgIGFjdGlv biAgZm9yICBsZWdhbCAgYW5kICBpbmp1bmN0aXZlCnJlbGllZi4KICAoYikgIE5vICBhY3Rp b24gIG1heSBiZSBtYWludGFpbmVkIHRvIGVuZm9yY2UgYW55IGxpYWJpbGl0eSB1bmRlciB0 aGlzCnNlY3Rpb24gdW5sZXNzIGJyb3VnaHQgd2l0aGluIHRocmVlIHllYXJzIG9mIHRoZSBh Y3QgIGNvbXBsYWluZWQgIG9mICBvcgpvbmUgIHllYXIgIGFmdGVyICB0aGUgIGNvbnN0cnVj dGl2ZSAgZGlzY292ZXJ5IG9mIHN1Y2ggYWN0LCB3aGljaGV2ZXIgaXMKbG9uZ2VyLgoKIFMg IDE0LjA1LiAgU2N1bHB0dXJlOyAgaWRlbnRpZnlpbmcgIG1hcmsuICAxLiAgRXZlcnkgIHNj dWxwdHVyZSAgcHJvZHVjZWQsCmZhYnJpY2F0ZWQgb3IgY2FydmVkIGluIG9yIGZyb20gdGhp cyBzdGF0ZSBhZnRlciAgSmFudWFyeSAgZmlyc3QsICBuaW5ldGVlbgpodW5kcmVkICBuaW5l dHktb25lICBzaGFsbCAgY29udGFpbiB0aGVyZW9uLCBpbiBhIGNsZWFyIGFuZCBsZWdpYmxl IGZhc2hpb24KYW5kIGluIGFuIGVhc2lseSBhY2Nlc3NpYmxlIGxvY2F0aW9uLCBhIGRpc3Rp bmN0aXZlIG1hcmsgIHdoaWNoICBpZGVudGlmaWVzCnRoZSAgZm91bmRyeSBvciBvdGhlciBw cm9kdWN0aW9uIGZhY2lsaXR5IGF0IHdoaWNoIHN1Y2ggc2N1bHB0dXJlIHdhcyBtYWRlLAph bmQgdGhlIHllYXIgdGhhdCBzdWNoIHNjdWxwdHVyZSB3YXMgbWFkZS4gVGhpcyBzZWN0aW9u IHNoYWxsIGFsc28gYXBwbHkgdG8KdW5pcXVlIHdvcmtzIG9mIHNjdWxwdHVyZSBwcm9kdWNl ZCwgZmFicmljYXRlZCBvciBjYXJ2ZWQgaW4gdGhpcyBzdGF0ZS4KIDIuICBJdCBzaGFsbCBi ZSB1bmxhd2Z1bCBmb3IgYSBmb3VuZHJ5IG9yIG90aGVyIHByb2R1Y3Rpb24gZmFjaWxpdHkg KGEpIHRvCmZhaWwgb3IgcmVmdXNlIHRvIGFmZml4IGFuIGlkZW50aWZ5aW5nIG1hcmsgYW5k IHRoZSB5ZWFyIG9yIChiKSB0byBhZmZpeCAgYQpmYWxzZSAgaWRlbnRpZnlpbmcgIG1hcmsg b3IgaW5jb3JyZWN0IHllYXIgdG8gYW55IHNjdWxwdHVyZSBwcm9kdWNlZCBieSBpdC4KTm90 d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92aXNpb24gb2YgbGF3LCB2aW9sYXRpb24gb2Yg IHRoaXMgIHN1YmRpdmlzaW9uCnNoYWxsICBiZSBwdW5pc2hhYmxlIGJ5IGEgY2l2aWwgcGVu YWx0eSBub3QgdG8gZXhjZWVkIGZpdmUgdGhvdXNhbmQgZG9sbGFycwpmb3IgZWFjaCB1bmxh YmVsZWQgb3IgbWlzbGFiZWxlZCBzY3VscHR1cmUuCiAzLiBJdCBzaGFsbCBiZSB1bmxhd2Z1 bCBmb3IgYW55IHBlcnNvbiB0byBkZWZhY2UsIG1hcmsgb3ZlciBvciB0YW1wZXIgd2l0aAp0 aGUgaWRlbnRpZnlpbmcgbWFyayBhbmQgZGF0ZSByZXF1aXJlZCBieSB0aGlzIHNlY3Rpb24g dG8gYmUgaW5jbHVkZWQgb24gIGEKc2N1bHB0dXJlLiAgTm90d2l0aHN0YW5kaW5nICBhbnkg IG90aGVyIHByb3Zpc2lvbiBvZiBsYXcsIHZpb2xhdGlvbiBvZiB0aGlzCnN1YmRpdmlzaW9u IHNoYWxsIGJlIHB1bmlzaGFibGUgYnkgYSAgY2l2aWwgIHBlbmFsdHkgIG5vdCAgdG8gIGV4 Y2VlZCAgZml2ZQp0aG91c2FuZCAgZG9sbGFycyAgZm9yIGVhY2ggaW5zdGFuY2Ugb2YgZGVm YWNpbmcsIG1hcmtpbmcgb3ZlciBvciB0YW1wZXJpbmcKd2l0aCBzdWNoIGlkZW50aWZ5aW5n IG1hcmsgb3IgZGF0ZS4gQW55IHZpb2xhdGlvbiBvZiB0aGlzIHN1YmRpdmlzaW9uIHNoYWxs CmJlIHB1bmlzaGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBwZW5hbCBsYXcuCgogUyAg MTQuMDYuICBTY3VscHR1cmU7ICB3cml0dGVuICByZWNvcmRzLiAgMS4gQW55IGZvdW5kcnkg b3IgcGVyc29uIGluIHRoaXMKc3RhdGUgcHJvZHVjaW5nIG9uZSBvciBtb3JlIHNjdWxwdHVy ZXMgZm9yIGFueSAgcGVyc29uICBzdWJzZXF1ZW50ICB0byAgdGhlCmVmZmVjdGl2ZSAgZGF0 ZSBvZiB0aGlzIGFydGljbGUgc2hhbGwgcHJlcGFyZSwgYW5kIG1haW50YWluIGZvciBhIHBl cmlvZCBvZgpub3QgbGVzcyB0aGFuIHR3ZW50eS1maXZlIHllYXJzIGZyb20gdGhlIGRhdGUg b2Ygc3VjaCAgcHJvZHVjdGlvbiwgIHJlY29yZHMKdGhhdCAgc2hhbGwgY29udGFpbiBhbGwg b2YgdGhlIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGJlIHByb3ZpZGVkIHB1cnN1YW50CnRv IHN1YmRpdmlzaW9ucyBvbmUgYW5kIHR3byBvZiBzZWN0aW9uIDE1LjEwIG9mIHRoaXMgY2hh cHRlci4gU3VjaCAgcmVjb3JkcwpzaGFsbCAgYmUgIG9wZW4gIGZvciAgaW5zcGVjdGlvbiAg YnkgIHRoZSAgYXR0b3JuZXkgZ2VuZXJhbCBkdXJpbmcgb3JkaW5hcnkKYnVzaW5lc3MgaG91 cnMgdXBvbiBub3RpY2Ugb2Ygbm8gbGVzcyB0aGFuIHRocmVlIGJ1c2luZXNzIGRheXMuCiAy LiBBIGR1cGxpY2F0ZSBvZiB0aGUgd3JpdHRlbiBpbnN0cnVtZW50IHByb3ZpZGVkIHRvIGEg cHVyY2hhc2VyIGJ5IGFuIGFydAptZXJjaGFudCBvciBhcnQgbWVyY2hhbnRgcyBhZ2VudCBz dXBwbHlpbmcgaW5mb3JtYXRpb24gcHVyc3VhbnQgdG8gIGFydGljbGUKZmlmdGVlbiAgb2Yg dGhpcyBjaGFwdGVyIHNoYWxsIGJlIHJldGFpbmVkIGJ5IHN1Y2ggYXJ0IG1lcmNoYW50IGFu ZCB0aGUgYXJ0Cm1lcmNoYW50YHMgYWdlbnQgZm9yIGEgcGVyaW9kIG9mIG5vdCBsZXNzIHRo YW4gdGVuIHllYXJzIGZyb20gdGhlICBkYXRlICBvZgpzYWxlICBvZiAgdGhlICB3b3JrLCAg YW5kICBzaGFsbCAgYmUgIHNpbWlsYXJseSBjb25zaWRlcmVkIGEgY2VydGlmaWNhdGUgb2YK YXV0aGVudGljaXR5IHN1YmplY3QgdG8gdGhlIHByb3Zpc2lvbnMgb2Ygc2VjdGlvbiAxMy4w MyBvZiB0aGlzIGNoYXB0ZXIuCgogUyAgMTQuMDcuIFNjdWxwdHVyZTsgdW5hdXRob3JpemVk IGNhc3QuIDEuIEZvciBwdXJwb3NlcyBvZiB0aGlzIHNlY3Rpb24gYW4KInVuYXV0aG9yaXpl ZCBzY3VscHR1cmUgY2FzdCIgc2hhbGwgbWVhbiBhbnkgc2N1bHB0dXJlIGNyZWF0ZWQgYnkg YW4gYXJ0aXN0CndoaWNoICBpcyAgcHJvZHVjZWQsICBmYWJyaWNhdGVkLCAgb3IgY2FydmVk IGVpdGhlciBiZWZvcmUgb3IgZm9sbG93aW5nIHRoZQpkZWF0aCBvZiBzdWNoIGFydGlzdCB3 aXRob3V0IHRoZSB3cml0dGVuIHBlcm1pc3Npb24gb2YgdGhlICBhcnRpc3QgIG9yICB0aGUK ZXN0YXRlLCBoZWlycywgb3Igb3RoZXIgbGVnYWwgcmVwcmVzZW50YXRpdmUgb2YgdGhlIGFy dGlzdC4KIDIuICBJdCAgc2hhbGwgIGJlICB1bmxhd2Z1bCB0byBwcm9kdWNlLCBvZmZlciBm b3Igc2FsZSwgc2VsbCBvciBjb25zaWduIGFuCnVuYXV0aG9yaXplZCBzY3VscHR1cmUgY2Fz dCwgcHJvdmlkZWQsIGhvd2V2ZXIsIHRoYXQgdGhpcyBwcm9oaWJpdGlvbiBzaGFsbApub3Qg IGFwcGx5ICB3aGVyZSAgdGhlICBwaHJhc2UgICJUSElTICBJUyAgQSBSRVBST0RVQ1RJT04i IGlzIGltcHJpbnRlZCBhbmQKYXBwZWFycyBpbiBhIGNsZWFyIGFuZCBsZWdpYmxlIGZhc2hp b24gb24gZWFjaCBzdWNoIHNjdWxwdHVyZSBpbiAgdGhlICBzYW1lCmxvY2F0aW9uICBhbmQg d2l0aCB0aGUgc2FtZSBzaXplIGxldHRlcmluZyBhcyB0aGUgZGF0ZSBhbmQgaWRlbnRpZnlp bmcgbWFyawphcyByZXF1aXJlZCBieSBzZWN0aW9uIDE0LjA1IG9mIHRoaXMgYXJ0aWNsZS4K CiBTICAxNC4wOC4gIFZpb2xhdGlvbnMuICBBbnkgIHZpb2xhdGlvbiBvZiB0aGUgcHJvdmlz aW9ucyBvZiBzZWN0aW9uIDE0LjA1LAoxNC4wNiBvciAxNC4wNyBvZiB0aGlzIGFydGljbGUg IG1heSBiZSBlbmZvcmNlZCBieSB0aGUgYXR0b3JuZXkgZ2VuZXJhbCAgaW4KYWNjb3JkYW5j ZSB3aXRoIHRoZSBwcm92aXNpb25zIG9mIHNlY3Rpb24gMTUuMTcgb2YgdGhpcyBjaGFwdGVy LgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpOZXcgWW9yayBTdGF0ZSBDb25zb2xpZGF0ZWQgTGF3 cwpBcnRzIGFuZCBDdWx0dXJhbCBBZmZhaXJzCgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBUlRJQ0xFIDE1CiAgICAgIFNBTEUgT0YgVklTVUFMIEFSVCBPQkpFQ1RTIEFO RCBTQ1VMUFRVUkVTIFBST0RVQ0VEIElOIE1VTFRJUExFUwpTZWN0aW9uIDE1LjAxLiBGdWxs ICBkaXNjbG9zdXJlICBpbiAgdGhlIHNhbGUgb2YgY2VydGFpbiB2aXN1YWwgYXJ0IG9iamVj dHMKICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZWQgaW4gbXVsdGlwbGVzLgogICAgICAg MTUuMDMuIEluZm9ybWF0aW9uIHJlcXVpcmVkLgogICAgICAgMTUuMDUuIEluZm9ybWF0aW9u ICByZXF1aXJlZDsgIG5pbmV0ZWVuICBodW5kcmVkICBmaWZ0eSAgdG8gIEphbnVhcnkKICAg ICAgICAgICAgICAgICAgICAgZmlyc3QsIG5pbmV0ZWVuIGh1bmRyZWQgZWlnaHR5LXR3by4K ICAgICAgIDE1LjA3LiBJbmZvcm1hdGlvbiAgcmVxdWlyZWQ7ICBuaW5ldGVlbiAgaHVuZHJl ZCB0byBuaW5ldGVlbiBodW5kcmVkCiAgICAgICAgICAgICAgICAgICAgIGZvcnR5LW5pbmUu CiAgICAgICAxNS4wOS4gSW5mb3JtYXRpb24gcmVxdWlyZWQ7IHByZS1uaW5ldGVlbiBodW5k cmVkLgogICAgICAgMTUuMTAuIEluZm9ybWF0aW9uIHJlcXVpcmVkIGZvciBzY3VscHR1cmVz LgogICAgICAgMTUuMTEuIEV4cHJlc3Mgd2FycmFudGllcy4KICAgICAgIDE1LjEzLiBDb25z dHJ1Y3Rpb24uCiAgICAgICAxNS4xNS4gUmVtZWRpZXMgYW5kIGVuZm9yY2VtZW50LgogICAg ICAgMTUuMTcuIEVuam9pbmluZyB2aW9sYXRpb25zLgogICAgICAgMTUuMTkuIEFwcGxpY2F0 aW9uIG9mIHRoZSBhcnRpY2xlLgoKIFMgIDE1LjAxLiAgRnVsbCAgZGlzY2xvc3VyZSAgaW4g IHRoZSAgc2FsZSAgb2YgIGNlcnRhaW4gdmlzdWFsIGFydCBvYmplY3RzCnByb2R1Y2VkIGlu IG11bHRpcGxlcy4gMS4gQW4gYXJ0IG1lcmNoYW50ICBzaGFsbCAgbm90ICBzZWxsICBvciAg Y29uc2lnbiAgYQptdWx0aXBsZSAgaW4sICBpbnRvICBvciAgZnJvbSAgdGhpcyAgc3RhdGUg IHVubGVzcyAgYSB3cml0dGVuIGluc3RydW1lbnQgaXMKZnVybmlzaGVkIHRvIHRoZSBwdXJj aGFzZXIgb3IgY29uc2lnbmVlLCBhdCBoaXMgcmVxdWVzdCwgb3IgIGluICBhbnkgIGV2ZW50 CnByaW9yICB0byAgYSAgc2FsZSBvciBjb25zaWdubWVudCwgd2hpY2ggc2V0cyBmb3J0aCBh cyB0byBlYWNoIG11bHRpcGxlIHRoZQpkZXNjcmlwdGl2ZSBpbmZvcm1hdGlvbiByZXF1aXJl ZCBieSB0aGlzIGFydGljbGUgZm9yIHRoZSAgYXBwcm9wcmlhdGUgIHRpbWUKcGVyaW9kLiAg SWYgIGEgIHByb3NwZWN0aXZlIHB1cmNoYXNlciBzbyByZXF1ZXN0cywgdGhlIGluZm9ybWF0 aW9uIHNoYWxsIGJlCnRyYW5zbWl0dGVkIHRvIGhpbSBwcmlvciB0byB0aGUgcGF5bWVudCAg b3IgIHBsYWNpbmcgIG9mICBhbiAgb3JkZXIgIGZvciAgYQptdWx0aXBsZS4gIElmICBwYXlt ZW50ICBpcyBtYWRlIGJ5IGEgcHVyY2hhc2VyIHByaW9yIHRvIGRlbGl2ZXJ5IG9mIHN1Y2gg YW4KYXJ0IG11bHRpcGxlLCB0aGlzIGluZm9ybWF0aW9uIHNoYWxsIGJlIHN1cHBsaWVkIGF0 IHRoZSB0aW1lIG9mIG9yIHByaW9yIHRvCmRlbGl2ZXJ5LiAgV2l0aCAgcmVzcGVjdCAgdG8g YXVjdGlvbnMsIHRoaXMgaW5mb3JtYXRpb24gbWF5IGJlIGZ1cm5pc2hlZCBpbgpjYXRhbG9n dWVzIG9yIG90aGVyIHdyaXR0ZW4gIG1hdGVyaWFscyAgd2hpY2ggIGFyZSAgcmVhZGlseSAg YXZhaWxhYmxlICBmb3IKY29uc3VsdGF0aW9uICBhbmQgIHB1cmNoYXNlICBwcmlvciAgdG8g IHNhbGUsIHByb3ZpZGVkIHRoYXQgYSBiaWxsIG9mIHNhbGUsCnJlY2VpcHQgb3IgaW52b2lj ZSBkZXNjcmliaW5nIHRoZSB0cmFuc2FjdGlvbiBpcyB0aGVuIHByb3ZpZGVkIHdoaWNoICBt YWtlcwpyZWZlcmVuY2UgIHRvICB0aGUgIGNhdGFsb2d1ZSAgYW5kICBsb3QgbnVtYmVyIGlu IHdoaWNoIHN1Y2ggaW5mb3JtYXRpb24gaXMKc3VwcGxpZWQuIEluZm9ybWF0aW9uICBzdXBw bGllZCAgcHVyc3VhbnQgIHRvICB0aGlzICBzdWJkaXZpc2lvbiAgc2hhbGwgIGJlCmNsZWFy bHksICBzcGVjaWZpY2FsbHkgYW5kIGRpc3RpbmN0bHkgYWRkcmVzc2VkIHRvIGVhY2ggaXRl bSBhcyByZXF1aXJlZCBieQp0aGlzICBhcnRpY2xlICBmb3IgIGFueSAgdGltZSAgcGVyaW9k ICB1bmxlc3MgIHRoZSAgcmVxdWlyZWQgIGRhdGEgIGlzICBub3QKYXBwbGljYWJsZS4gIFRo aXMgIHNlY3Rpb24gIGlzICBhcHBsaWNhYmxlICB0byAgdHJhbnNhY3Rpb25zIGJ5IGFuZCBi ZXR3ZWVuCm1lcmNoYW50cywgbm9uLW1lcmNoYW50cywgYW5kICBvdGhlcnMgIGNvbnNpZGVy ZWQgIGFydCAgbWVyY2hhbnRzICBmb3IgIHRoZQpwdXJwb3NlcyBvZiB0aGlzIGFydGljbGUu CiAyLiBBbiBhcnQgbWVyY2hhbnQgc2hhbGwgbm90IGNhdXNlIGEgY2F0YWxvZ3VlLCBwcm9z cGVjdHVzLCBmbHllciBvciBvdGhlcgp3cml0dGVuIG1hdGVyaWFsIG9yIGFkdmVydGlzZW1l bnQgdG8gYmUgZGlzdHJpYnV0ZWQgaW4sIGludG8gb3IgIGZyb20gIHRoaXMKc3RhdGUgIHdo aWNoIHNvbGljaXRzIGEgZGlyZWN0IHNhbGUsIGJ5IGludml0aW5nIHRyYW5zbWl0dGFsIG9m IHBheW1lbnQgZm9yCmEgc3BlY2lmaWMgbXVsdGlwbGUsIHVubGVzcyAgaXQgIGNsZWFybHkg IHNldHMgIGZvcnRoLCAgaW4gIGNsb3NlICBwaHlzaWNhbApwcm94aW1pdHkgIHRvICB0aGUg IHBsYWNlIGluIHN1Y2ggbWF0ZXJpYWwgd2hlcmUgdGhlIG11bHRpcGxlIGlzIGRlc2NyaWJl ZCwKdGhlIGRlc2NyaXB0aXZlIGluZm9ybWF0aW9uIHJlcXVpcmVkIGJ5IHRoaXMgYXJ0aWNs ZSAgZm9yICB0aGUgIGFwcHJvcHJpYXRlCnRpbWUgcGVyaW9kLiBJbiBsaWV1IG9mIHRoaXMg cmVxdWlyZWQgaW5mb3JtYXRpb24sIHN1Y2ggd3JpdHRlbiBtYXRlcmlhbCBvcgphZHZlcnRp c2luZyBtYXkgc2V0IGZvcnRoIHRoZSBtYXRlcmlhbCBjb250YWluZWQgaW4gIHRoZSAgZm9s bG93aW5nICBxdW90ZWQKcGFzc2FnZSwgb3IgdGhlIHBhc3NhZ2UgaXRzZWxmLCBjb250YWlu aW5nIHRlcm1zIHRoZSBub25vYnNlcnZhbmNlIG9mIHdoaWNoCnNoYWxsIGNvbnN0aXR1dGUg YSB2aW9sYXRpb24gb2YgdGhpcyBhcnRpY2xlLCAgaWYgIHRoZSAgYXJ0ICBtZXJjaGFudCAg dGhlbgpzdXBwbGllcyAgdGhlICByZXF1aXJlZCAgaW5mb3JtYXRpb24gIHByaW9yICB0byAg b3IgIHdpdGggIGRlbGl2ZXJ5ICBvZiB0aGUKbXVsdGlwbGU6CiAiQXJ0aWNsZSAgZmlmdGVl biAgb2YgIHRoZSBOZXcgWW9yayBhcnRzIGFuZCBjdWx0dXJhbCBhZmZhaXJzIGxhdyBwcm92 aWRlcwpmb3IgZGlzY2xvc3VyZSBpbiB3cml0aW5nIG9mIGNlcnRhaW4gaW5mb3JtYXRpb24g IGNvbmNlcm5pbmcgIG11bHRpcGxlcyAgb2YKcHJpbnRzICBhbmQgIHBob3RvZ3JhcGhzIHdo ZW4gc29sZCBmb3IgbW9yZSB0aGFuIG9uZSBodW5kcmVkIGRvbGxhcnMgKCQxMDApCmVhY2gs IGV4Y2x1c2l2ZSBvZiBhbnkgZnJhbWUsIGFuZCBvZiBzY3VscHR1cmUgIHdoZW4gIHNvbGQg IGZvciAgbW9yZSAgdGhhbgpmaWZ0ZWVuICBodW5kcmVkICBkb2xsYXJzLCAgcHJpb3IgIHRv ICBlZmZlY3RpbmcgIGEgIHNhbGUgb2YgdGhlbS4gVGhpcyBsYXcKcmVxdWlyZXMgZGlzY2xv c3VyZSBvZiBzdWNoIG1hdHRlcnMgYXMgdGhlICBpZGVudGl0eSAgb2YgIHRoZSAgYXJ0aXN0 LCAgdGhlCmFydGlzdGBzIHNpZ25hdHVyZSwgdGhlIG1lZGl1bSwgd2hldGhlciB0aGUgbXVs dGlwbGUgaXMgYSByZXByb2R1Y3Rpb24sIHRoZQp0aW1lIHdoZW4gdGhlIG11bHRpcGxlIHdh cyBwcm9kdWNlZCwgdXNlIG9mIHRoZSBtYXN0ZXIgd2hpY2ggIHByb2R1Y2VkICB0aGUKbXVs dGlwbGUsICBhbmQgIHRoZSAgbnVtYmVyICBvZiAgbXVsdGlwbGVzICBpbiAgYSAgYGxpbWl0 ZWQgIGVkaXRpb25gLiBJZiBhCnByb3NwZWN0aXZlIHB1cmNoYXNlciBzbyByZXF1ZXN0cywg dGhlIGluZm9ybWF0aW9uIHNoYWxsIGJlIHRyYW5zbWl0dGVkICB0bwpoaW0gIHByaW9yIHRv IHBheW1lbnQgb3IgdGhlIHBsYWNpbmcgb2YgYW4gb3JkZXIgZm9yIGEgbXVsdGlwbGUuIElm IHBheW1lbnQKaXMgbWFkZSBieSBhIHB1cmNoYXNlciBwcmlvciB0byBkZWxpdmVyeSBvZiAg c3VjaCAgYW4gIGFydCAgbXVsdGlwbGUsICB0aGlzCmluZm9ybWF0aW9uICB3aWxsIGJlIHN1 cHBsaWVkIGF0IHRoZSB0aW1lIG9mIG9yIHByaW9yIHRvIGRlbGl2ZXJ5LCBpbiB3aGljaApj YXNlIHRoZSBwdXJjaGFzZXIgaXMgZW50aXRsZWQgdG8gYSAgcmVmdW5kICBpZiwgIGZvciAg cmVhc29ucyAgcmVsYXRlZCAgdG8KbWF0dGVyIGNvbnRhaW5lZCBpbiBzdWNoIGluZm9ybWF0 aW9uLCBoZSByZXR1cm5zIHRoZSBtdWx0aXBsZSBzdWJzdGFudGlhbGx5CmluIHRoZSBjb25k aXRpb24gaW4gd2hpY2ggcmVjZWl2ZWQsIHdpdGhpbiB0aGlydHkgZGF5cyBvZiByZWNlaXZp bmcgaXQuICBJbgphZGRpdGlvbiwgIGlmICBhZnRlciAgcGF5bWVudCAgYW5kICBkZWxpdmVy eSwgIGl0ICBpcyAgYXNjZXJ0YWluZWQgdGhhdCB0aGUKaW5mb3JtYXRpb24gcHJvdmlkZWQg aXMgaW5jb3JyZWN0IHRoZSBwdXJjaGFzZXIgbWF5IGJlIGVudGl0bGVkIHRvICBjZXJ0YWlu CnJlbWVkaWVzLiIKIFRoaXMgIHJlcXVpcmVtZW50ICBpcyAgbm90ICBhcHBsaWNhYmxlICB0 byAgZ2VuZXJhbCAgd3JpdHRlbiAgbWF0ZXJpYWwgIG9yCmFkdmVydGlzaW5nIHdoaWNoIGRv ZXMgbm90IGNvbnN0aXR1dGUgYW4gb2ZmZXIgdG8gZWZmZWN0IGEgc3BlY2lmaWMgc2FsZS4K IDMuICBJbiAgZWFjaCAgcGxhY2UgIG9mICBidXNpbmVzcyAgaW4gIHRoZSAgc3RhdGUgd2hl cmUgYW4gYXJ0IG1lcmNoYW50IGlzCnJlZ3VsYXJseSBlbmdhZ2VkIGluIHNhbGVzIG9mIG11 bHRpcGxlcywgdGhlIGFydCBtZXJjaGFudCBzaGFsbCBwb3N0ICBpbiAgYQpjb25zcGljdW91 cyAgcGxhY2UsICBhICBzaWduICB3aGljaCwgIGluICBhICBsZWdpYmxlICBmb3JtYXQsICBj b250YWlucyB0aGUKaW5mb3JtYXRpb24gaW5jbHVkZWQgaW4gdGhlIGZvbGxvd2luZyBwYXNz YWdlOgogIkFydGljbGUgIGZpZnRlZW4gIG9mICB0aGUgTmV3IFlvcmsgYXJ0cyBhbmQgY3Vs dHVyYWwgYWZmYWlycyBsYXcgcHJvdmlkZXMKZm9yIHRoZSBkaXNjbG9zdXJlIGluIHdyaXRp bmcgb2YgIGNlcnRhaW4gIGluZm9ybWF0aW9uICBjb25jZXJuaW5nICBwcmludHMsCnBob3Rv Z3JhcGhzICBhbmQgIHNjdWxwdHVyZS4gIFRoaXMgIGluZm9ybWF0aW9uICBpcyAgYXZhaWxh YmxlICB0byAgeW91ICBpbgphY2NvcmRhbmNlIHdpdGggdGhhdCBsYXcuIgoKICBTICAxNS4w My4gIEluZm9ybWF0aW9uICByZXF1aXJlZC4gIFRoZSAgZm9sbG93aW5nIGluZm9ybWF0aW9u IHNoYWxsIGJlCnN1cHBsaWVkLCBhcyBpbmRpY2F0ZWQsIGFzIHRvIGVhY2ggbXVsdGlwbGUg cHJvZHVjZWQgb24gb3IgYWZ0ZXIgSmFudWFyeQpmaXJzdCwgbmluZXRlZW4gaHVuZHJlZCBl aWdodHktdHdvOgogIDEuIEFydGlzdC4gU3RhdGUgdGhlIG5hbWUgb2YgdGhlIGFydGlzdC4K ICAyLiAgU2lnbmF0dXJlLiAgSWYgIHRoZSAgYXJ0aXN0YHMgIG5hbWUgYXBwZWFycyBvbiB0 aGUgbXVsdGlwbGUsIHN0YXRlCndoZXRoZXIgdGhlIG11bHRpcGxlIHdhcyBzaWduZWQgYnkg dGhlIGFydGlzdC4gIElmICBub3QgIHNpZ25lZCAgYnkgIHRoZQphcnRpc3QgIHRoZW4gc3Rh dGUgdGhlIHNvdXJjZSBvZiB0aGUgYXJ0aXN0YHMgbmFtZSBvbiB0aGUgbXVsdGlwbGUsIHN1 Y2gKYXMgd2hldGhlciB0aGUgYXJ0aXN0IHBsYWNlZCBoaXMgc2lnbmF0dXJlIG9uIHRoZSAg bWFzdGVyLCAgd2hldGhlciAgaGlzCm5hbWUgIHdhcyAgc3RhbXBlZCAgb3IgIGVzdGF0ZSBz dGFtcGVkIG9uIHRoZSBtdWx0aXBsZSwgb3Igd2FzIGZyb20gc29tZQpvdGhlciBzb3VyY2Ug b3IgaW4gc29tZSBvdGhlciBtYW5uZXIgcGxhY2VkIG9uIHRoZSBtdWx0aXBsZS4KICAzLiAg TWVkaXVtICBvciAgcHJvY2Vzcy4gKGEpIERlc2NyaWJlIHRoZSBtZWRpdW0gb3IgcHJvY2Vz cywgYW5kIHdoZXJlCnBlcnRpbmVudCB0byBwaG90b2dyYXBoaWMgcHJvY2Vzc2VzIHRoZSBt YXRlcmlhbCwgdXNlZCBpbiBwcm9kdWNpbmcgIHRoZQptdWx0aXBsZSwgIHN1Y2ggIGFzICB3 aGV0aGVyICB0aGUgbXVsdGlwbGUgd2FzIHByb2R1Y2VkIHRocm91Z2ggZXRjaGluZywKZW5n cmF2aW5nLCBsaXRob2dyYXBoaWMsICBzZXJpZ3JhcGhpYyAgb3IgIGEgIHBhcnRpY3VsYXIg IG1ldGhvZCAgYW5kL29yCm1hdGVyaWFsICAgdXNlZCAgIGluICAgdGhlICBwaG90b2dyYXBo aWMgIGRldmVsb3BpbmcgIHByb2Nlc3Nlcy4gIElmICBhbgplc3RhYmxpc2hlZCB0ZXJtLCBp biBhY2NvcmRhbmNlIHdpdGggdGhlIHVzYWdlIG9mIHRoZSB0cmFkZSwgIGNhbm5vdCAgYmUK ZW1wbG95ZWQgIGFjY3VyYXRlbHkgIHRvICBkZXNjcmliZSB0aGUgbWVkaXVtIG9yIHByb2Nl c3MsIGEgYnJpZWYsIGNsZWFyCmRlc2NyaXB0aW9uIHNoYWxsIGJlIG1hZGUuCiAgKGIpICBJ ZiAgdGhlICBwdXJwb3J0ZWQgYXJ0aXN0IHdhcyBkZWNlYXNlZCBhdCB0aGUgdGltZSB0aGUg bWFzdGVyIHdhcwptYWRlIHdoaWNoIHByb2R1Y2VkIHRoZSBtdWx0aXBsZSwgdGhpcyBzaGFs bCBiZSBzdGF0ZWQuCiAgKGMpICBJZiAgdGhlICBtdWx0aXBsZSAgb3IgdGhlIGltYWdlIG9u IG9yIGluIHRoZSBtYXN0ZXIgY29uc3RpdHV0ZXMgYQptZWNoYW5pY2FsLCAgcGhvdG9tZWNo YW5pY2FsLCAgaGFuZC1tYWRlICAgb3IgICBwaG90b2dyYXBoaWMgICB0eXBlICAgb2YKcmVw cm9kdWN0aW9uLCAgb3IgaXMgYSByZXByb2R1Y3Rpb24sIG9mIGFuIGltYWdlIHByb2R1Y2Vk IGluIGEgZGlmZmVyZW50Cm1lZGl1bSwgZm9yIGEgcHVycG9zZSBvdGhlciB0aGFuIHRoZSAg Y3JlYXRpb24gIG9mICB0aGUgIG11bHRpcGxlICBiZWluZwpkZXNjcmliZWQsICB0aGlzIGlu Zm9ybWF0aW9uIGFuZCB0aGUgcmVzcGVjdGl2ZSBtZWRpdW1zIHNoYWxsIGJlIHN0YXRlZC4K ICAoZCkgIElmICBwYXJhZ3JhcGggIChjKSAgb2YgIHRoaXMgIHN1YmRpdmlzaW9uICBpcyBh cHBsaWNhYmxlLCBhbmQgdGhlCm11bHRpcGxlIGlzIG5vdCBzaWduZWQsIHN0YXRlIHdoZXRo ZXIgdGhlIGFydGlzdCBhdXRob3JpemVkIG9yICBhcHByb3ZlZAppbiAgd3JpdGluZyAgdGhl ICBtdWx0aXBsZSAgb3IgIHRoZSAgZWRpdGlvbiBvZiB3aGljaCB0aGUgbXVsdGlwbGUgYmVp bmcKZGVzY3JpYmVkIGlzIG9uZS4KICA0LiBVc2Ugb2YgbWFzdGVyLiAoYSkgSWYgdGhlIG11 bHRpcGxlIGlzIGEgInBvc3RodW1vdXMiIG11bHRpcGxlLCB0aGF0CmlzLCBpZiB0aGUgbWFz dGVyIHdhcyBjcmVhdGVkIGR1cmluZyB0aGUgbGlmZSAgb2YgIHRoZSAgYXJ0aXN0ICBidXQg IHRoZQptdWx0aXBsZSB3YXMgcHJvZHVjZWQgYWZ0ZXIgdGhlIGFydGlzdGBzIGRlYXRoLCB0 aGlzIHNoYWxsIGJlIHN0YXRlZC4KICAoYikgIElmICB0aGUgIG11bHRpcGxlICB3YXMgIG1h ZGUgZnJvbSBhIG1hc3RlciB3aGljaCBwcm9kdWNlZCBhIHByaW9yCmxpbWl0ZWQgZWRpdGlv biwgb3IgZnJvbSBhIG1hc3RlciB3aGljaCBjb25zdGl0dXRlcyBvciB3YXMgbWFkZSAgZnJv bSAgYQpyZXByb2R1Y3Rpb24gIG9mICBhICBwcmlvciAgbXVsdGlwbGUgb3Igb2YgYSBtYXN0 ZXIgd2hpY2ggcHJvZHVjZWQgcHJpb3IKbXVsdGlwbGVzLCB0aGlzIHNoYWxsIGJlIHN0YXRl ZC4KICA1LiAgVGltZSAgcHJvZHVjZWQuICBBcyAgdG8gIG11bHRpcGxlcyBwcm9kdWNlZCBh ZnRlciBuaW5ldGVlbiBodW5kcmVkCmZvcnR5LW5pbmUsICBzdGF0ZSAgdGhlICB5ZWFyICBv ciAgYXBwcm94aW1hdGUgIHllYXIgIHRoZSAgbXVsdGlwbGUgIHdhcwpwcm9kdWNlZC4gIEFz ICB0byAgbXVsdGlwbGVzICBwcm9kdWNlZCAgcHJpb3IgdG8gbmluZXRlZW4gaHVuZHJlZCBm aWZ0eSwKc3RhdGUgdGhlIHllYXIsIGFwcHJveGltYXRlIHllYXIgb3IgcGVyaW9kICB3aGVu ICB0aGUgIG1hc3RlciAgd2FzICBtYWRlCndoaWNoICBwcm9kdWNlZCAgdGhlICBtdWx0aXBs ZSBhbmQvb3Igd2hlbiB0aGUgcGFydGljdWxhciBtdWx0aXBsZSBiZWluZwpkZXNjcmliZWQg d2FzIHByb2R1Y2VkLiBUaGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgIHN1YmRpdmlzaW9uICBz aGFsbCAgYmUKc2F0aXNmaWVkIHdoZW4gdGhlIHllYXIgc3RhdGVkIGlzIGFwcHJveGltYXRl bHkgYWNjdXJhdGUuCiAgNi4gU2l6ZSBvZiB0aGUgZWRpdGlvbi4gKGEpIElmIHRoZSBtdWx0 aXBsZSBiZWluZyBkZXNjcmliZWQgaXMgb2ZmZXJlZAphcyBvbmUgb2YgYSBsaW1pdGVkIGVk aXRpb24sIHRoaXMgc2hhbGwgYmUgc28gc3RhdGVkLCAgYXMgIHdlbGwgIGFzICB0aGUKbnVt YmVyICBvZiBtdWx0aXBsZXMgaW4gdGhlIGVkaXRpb24sIGFuZCB3aGV0aGVyIGFuZCBob3cg dGhlIG11bHRpcGxlIGlzCm51bWJlcmVkLgogIChiKSAgVW5sZXNzICBvdGhlcndpc2UgIGRp c2Nsb3NlZCwgIHRoZSAgbnVtYmVyICBvZiAgbXVsdGlwbGVzICBzdGF0ZWQKcHVyc3VhbnQg dG8gcGFyYWdyYXBoICAoYSkgIG9mICB0aGlzICBzdWJkaXZpc2lvbiAgc2hhbGwgIGNvbnN0 aXR1dGUgIGFuCmV4cHJlc3MgIHdhcnJhbnR5LCAgYXMgIGRlZmluZWQgIGluIHNlY3Rpb24g MTMuMDEgb2YgdGhpcyB0aXRsZSwgdGhhdCBubwphZGRpdGlvbmFsIG51bWJlcmVkIG11bHRp cGxlcyBvZiB0aGUgc2FtZSBpbWFnZSwgIGV4Y2x1c2l2ZSAgb2YgIHByb29mcywKaGF2ZSBi ZWVuIHByb2R1Y2VkLgogIChjKSAgVGhlICBudW1iZXIgb2YgbXVsdGlwbGVzIHN0YXRlZCBw dXJzdWFudCB0byBwYXJhZ3JhcGggKGEpIG9mIHRoaXMKc3ViZGl2aXNpb24gc2hhbGwgYWxz byBjb25zdGl0dXRlIGFuIGV4cHJlc3MgIHdhcnJhbnR5LCAgYXMgIGRlZmluZWQgIGluCnNl Y3Rpb24gIDEzLjAxICBvZiAgdGhpcyB0aXRsZSwgdGhhdCBubyBhZGRpdGlvbmFsIG11bHRp cGxlcyBvZiB0aGUgc2FtZQppbWFnZSwgd2hldGhlciBkZXNpZ25hdGVkICJwcm9vZnMiIG90 aGVyIHRoYW4gdHJpYWwgcHJvb2ZzLCBudW1iZXJlZCAgb3IKb3RoZXJ3aXNlLCAgaGF2ZSAg YmVlbiBwcm9kdWNlZCBpbiBhbiBhbW91bnQgd2hpY2ggZXhjZWVkcyB0aGUgbnVtYmVyIGlu CnRoZSBsaW1pdGVkIGVkaXRpb24gYnkgdHdlbnR5IG9yIHR3ZW50eSBwZXJjZW50LCB3aGlj aGV2ZXIgaXMgZ3JlYXRlci4KICAoZCkgIElmICB0aGUgIG51bWJlciAgb2YgIG11bHRpcGxl cyAgZXhjZWVkcyAgdGhlIG51bWJlciBpbiB0aGUgc3RhdGVkCmxpbWl0ZWQgZWRpdGlvbiBh cyBwcm92aWRlZCBpbiBwYXJhZ3JhcGggKGMpIG9mIHRoaXMgIHN1YmRpdmlzaW9uLCAgdGhl bgpzdGF0ZSAgdGhlICBudW1iZXIgb2YgcHJvb2ZzIG90aGVyICB0aGFuIHRyaWFsIHByb29m cywgb3Igb3RoZXIgbnVtYmVyZWQKb3IgdW5udW1iZXJlZCBtdWx0aXBsZXMsIGluIHRoZSBz YW1lIG9yIG90aGVyIHByaW9yICBlZGl0aW9ucywgIHByb2R1Y2VkCmZyb20gIHRoZSAgc2Ft ZSBtYXN0ZXIgYXMgZGVzY3JpYmVkIGluIHBhcmFncmFwaCAoYikgb2Ygc3ViZGl2aXNpb24g Zm91cgpvZiB0aGlzIHNlY3Rpb24sIGFuZCB3aGV0aGVyIGFuZCBob3cgdGhleSBhcmUgc2ln bmVkIGFuZCBudW1iZXJlZC4KCiAgUyAgMTUuMDUuICBJbmZvcm1hdGlvbiAgcmVxdWlyZWQ7 ICBuaW5ldGVlbiAgaHVuZHJlZCAgZmlmdHkgdG8gSmFudWFyeQpmaXJzdCwgbmluZXRlZW4g aHVuZHJlZCAgZWlnaHR5LXR3by4gIFRoZSAgaW5mb3JtYXRpb24gIHdoaWNoICBzaGFsbCAg YmUKc3VwcGxpZWQgIGFzICB0byAgZWFjaCBtdWx0aXBsZSBwcm9kdWNlZCBkdXJpbmcgdGhl IHBlcmlvZCBmcm9tIG5pbmV0ZWVuCmh1bmRyZWQgZmlmdHkgdG8gIEphbnVhcnkgIGZpcnN0 LCAgbmluZXRlZW4gIGh1bmRyZWQgIGVpZ2h0eS10d28sICBzaGFsbApjb25zaXN0ICBvZiAg dGhlICBpbmZvcm1hdGlvbiAgcmVxdWlyZWQgYnkgc2VjdGlvbiAxNS4wMyBvZiB0aGlzIGFy dGljbGUKZXhjZXB0ICBmb3IgIHBhcmFncmFwaCAgKGQpICBvZiAgc3ViZGl2aXNpb24gIHRo cmVlLCAgcGFyYWdyYXBoICAoYikgIG9mCnN1YmRpdmlzaW9uICBmb3VyICBhbmQgcGFyYWdy YXBocyAoYykgYW5kIChkKSBvZiBzdWJkaXZpc2lvbiBzaXggb2Ygc3VjaApzZWN0aW9uLgoK ICBTICAxNS4wNy4gIEluZm9ybWF0aW9uICByZXF1aXJlZDsgbmluZXRlZW4gaHVuZHJlZCB0 byBuaW5ldGVlbiBodW5kcmVkCmZvcnR5LW5pbmUuIFRoZSBpbmZvcm1hdGlvbiB3aGljaCBz aGFsbCBiZSBzdXBwbGllZCBhcyB0byBlYWNoICBtdWx0aXBsZQpwcm9kdWNlZCAgZHVyaW5n ICB0aGUgIHBlcmlvZCAgZnJvbSAgbmluZXRlZW4gIGh1bmRyZWQgIHRocm91Z2ggbmluZXRl ZW4KaHVuZHJlZCBmb3J0eS1uaW5lIHNoYWxsIGNvbnNpc3Qgb2YgdGhlIGluZm9ybWF0aW9u IHJlcXVpcmVkIGJ5ICBzZWN0aW9uCjE1LjAzICBvZiAgdGhpcyAgYXJ0aWNsZSAgZXhjZXB0 ICBmb3IgIHBhcmFncmFwaHMgIChiKSwgIChjKSAgYW5kIChkKSBvZgpzdWJkaXZpc2lvbiB0 aHJlZSBhbmQgc3ViZGl2aXNpb25zIGZvdXIgYW5kIHNpeCBvZiBzdWNoIHNlY3Rpb24uCgog IFMgIDE1LjA5LiAgSW5mb3JtYXRpb24gcmVxdWlyZWQ7IHByZS1uaW5ldGVlbiBodW5kcmVk LiBUaGUgaW5mb3JtYXRpb24Kd2hpY2ggc2hhbGwgYmUgc3VwcGxpZWQgYXMgdG8gZWFjaCBt dWx0aXBsZSBwcm9kdWNlZCBwcmlvciAgdG8gIG5pbmV0ZWVuCmh1bmRyZWQgIHNoYWxsICBj b25zaXN0ICBvZiB0aGUgaW5mb3JtYXRpb24gcmVxdWlyZWQgYnkgc2VjdGlvbiAxNS4wMyBv Zgp0aGlzIGFydGljbGUgZXhjZXB0IGZvciBzdWJkaXZpc2lvbiB0d28sIHBhcmFncmFwaHMg KGIpLCAoYykgYW5kIChkKSAgb2YKc3ViZGl2aXNpb24gdGhyZWUgYW5kIHN1YmRpdmlzaW9u cyBmb3VyIGFuZCBzaXggb2Ygc3VjaCBzZWN0aW9uIDE1LjAzLgoKIFMgMTUuMTAuIEluZm9y bWF0aW9uIHJlcXVpcmVkIGZvciBzY3VscHR1cmVzLiAxLiBUaGUgZm9sbG93aW5nIGluZm9y bWF0aW9uCnNoYWxsIGJlIHN1cHBsaWVkIGFzIGluZGljYXRlZCBpbiBhIHdyaXR0ZW4gaW5z dHJ1bWVudCBhcyB0byBlYWNoICBtdWx0aXBsZQpwcm9kdWNlZCwgZmFicmljYXRlZCBvciBj YXJ2ZWQsIG9uIG9yIGFmdGVyIEphbnVhcnkgZmlyc3QsIG5pbmV0ZWVuIGh1bmRyZWQKbmlu ZXR5LW9uZToKIChhKSBBcnRpc3QuIFN0YXRlIHRoZSBuYW1lIG9mIHRoZSBhcnRpc3QuCiAo YikgVGl0bGUuIFN0YXRlIHRoZSB0aXRsZSBvZiB0aGUgc2N1bHB0dXJlLgogKGMpICBGb3Vu ZHJ5LiBTdGF0ZSB0aGUgbmFtZSwgaWYga25vd24sIG9mIHRoZSBmb3VuZHJ5IHdoaWNoIG9y IHBlcnNvbiB3aG8KcHJvZHVjZWQsIGZhYnJpY2F0ZWQgb3IgY2FydmVkIHRoZSBzY3VscHR1 cmUuCiAoZCkgTWVkaXVtLiBEZXNjcmliZSB0aGUgbWVkaXVtIG9yIHByb2Nlc3MgdXNlZCBp biBwcm9kdWNpbmcgdGhlIG11bHRpcGxlLgpJZiBhbiBlc3RhYmxpc2hlZCB0ZXJtLCBpbiBh Y2NvcmRhbmNlIHdpdGggdGhlIHVzYWdlIG9mIHRoZSAgdHJhZGUsICBjYW5ub3QKYmUgIGVt cGxveWVkICBhY2N1cmF0ZWx5ICB0byBkZXNjcmliZSB0aGUgbWVkaXVtIG9yIHByb2Nlc3Ms IGEgYnJpZWYsIGNsZWFyCmRlc2NyaXB0aW9uIHNoYWxsIGJlIG1hZGUuCiAoZSkgRGltZW5z aW9ucy4gU3RhdGUgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIHNjdWxwdHVyZS4KIChmKSAgVGlt ZSAgcHJvZHVjZWQuICBTdGF0ZSB0aGUgeWVhciB0aGUgc2N1bHB0dXJlIHdhcyBjYXN0LCBm YWJyaWNhdGVkIG9yCmNhcnZlZC4KIChnKSAgTnVtYmVyICBjYXN0LiAgU3RhdGUgIHRoZSBu dW1iZXIgb2Ygc2N1bHB0dXJlIGNhc3RzLCBhY2NvcmRpbmcgdG8gdGhlCmJlc3QgaW5mb3Jt YXRpb24gYXZhaWxhYmxlLCBwcm9kdWNlZCBvciBmYWJyaWNhdGVkIG9yIGNhcnZlZCBhcyBv ZiB0aGUgZGF0ZQpvZiB0aGUgc2FsZS4KIChoKSAgSWYgIHRoZSAgcHVycG9ydGVkICBhcnRp c3Qgd2FzIGRlY2Vhc2VkIGF0IHRoZSB0aW1lIHRoZSBzY3VscHR1cmUgd2FzCnByb2R1Y2Vk LCB0aGlzIHNoYWxsIGJlIHN0YXRlZC4KIChpKSBVc2Ugb2YgbWFzdGVyLiBTdGF0ZSB3aGV0 aGVyIHRoZSBzY3VscHR1cmUgaXMgYXV0aG9yaXplZCBieSB0aGUgYXJ0aXN0Cm9yLCBpZiBw cm9kdWNlZCBhZnRlciB0aGUgYXJ0aXN0YHMgZGVhdGgsICB3aGV0aGVyICBpdCAgd2FzICBh dXRob3JpemVkICBpbgp3cml0aW5nICAgYnkgICB0aGUgICBhcnRpc3QgICBvciAgYnkgIHRo ZSAgZXN0YXRlLCAgaGVpcnMgIG9yICBvdGhlciAgbGVnYWwKcmVwcmVzZW50YXRpdmVzIG9m IHRoZSBhcnRpc3QuIEluIHRoZSBldmVudCBvZiBhICBzYWxlICBhZnRlciAgdGhlICBpbml0 aWFsCnNhbGUsICB0aGUgYXJ0IG1lcmNoYW50IG1heSBkaXNjbG9zZSBpbiB3cml0aW5nIGV2 aWRlbmNlIG9mIHN1Y2ggcmVhc29uYWJsZQppbnF1aXJpZXMgYXMgaGF2ZSBiZWVuIG1hZGUg cHVyc3VhbnQgdG8gc3ViZGl2aXNpb24gdHdvIG9mIHNlY3Rpb24gMTUuMTUgb2YKdGhpcyAg YXJ0aWNsZSBhbmQgYW55IGluZm9ybWF0aW9uIGltcGFydGVkIGFzIG1heSBiZSByZWxldmFu dCBpbiBmdWxmaWxsaW5nCnRoZSBpbnRlbnQgb2YgdGhpcyBwYXJhZ3JhcGguCiAyLiAgIEZv ciAgbGltaXRlZCAgZWRpdGlvbiAgc2N1bHB0dXJlICBwcm9kdWNlZCBvbiBvciBhZnRlciBK YW51YXJ5IGZpcnN0LApuaW5ldGVlbiBodW5kcmVkIG5pbmV0eS1vbmUsIGluIGFkZGl0aW9u IHRvIHRoZSBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byAgYmUKcHJvdmlkZWQgIHB1cnN1YW50 ICB0byBzdWJkaXZpc2lvbiBvbmUgb2YgdGhpcyBzZWN0aW9uLCB0aGUgZm9sbG93aW5nIGl0 ZW1zCm9mIGluZm9ybWF0aW9uIHNoYWxsIGFsc28gIGJlICBwcm92aWRlZCAgdG8gIHRoZSAg cHVyY2hhc2VyICBpbiAgYSAgd3JpdHRlbgppbnN0cnVtZW50OgogKGEpIHdoZXRoZXIgYW5k IGhvdyB0aGUgc2N1bHB0dXJlIGFuZCB0aGUgZWRpdGlvbiBpcyBudW1iZXJlZDsKIChiKSAg dGhlIHNpemUgb2YgdGhlIGVkaXRpb24gb3IgcHJvcG9zZWQgZWRpdGlvbiBhbmQgdGhlIHNp emUgb2YgYW55IHByaW9yCmVkaXRpb24gb3IgZWRpdGlvbnMgb2YgdGhlIHNhbWUgIHNjdWxw dHVyZSwgIHJlZ2FyZGxlc3MgIG9mICB0aGUgIGNvbG9yICBvcgptYXRlcmlhbCB1c2VkOwog KGMpIHdoZXRoZXIgYWRkaXRpb25hbCBzY3VscHR1cmUgY2FzdHMgaGF2ZSBiZWVuIHByb2R1 Y2VkIGluIGV4Y2VzcyBvZiB0aGUKc3RhdGVkIHNpemUgb2YgdGhlIGVkaXRpb24gb3IgcHJv cG9zZWQgZWRpdGlvbiBhbmQsIGlmIHNvLCB0aGUgdG90YWwgbnVtYmVyCm9mICBzdWNoICBl eGNlc3MgIGNhc3RzIHByb2R1Y2VkIG9yIHByb3Bvc2VkIHRvIGJlIHByb2R1Y2VkIGFuZCB3 aGV0aGVyIGFuZApob3cgdGhleSBhcmUgb3Igd2lsbCBiZSBudW1iZXJlZCBhY2NvcmRpbmcg dG8gdGhlIHN0YXRlZCBpbnRlbnRpb24gIG9mICB0aGUKYXJ0aXN0IG9yIGEgc3RhdGVtZW50 IHRoYXQgdGhlIGFydGlzdCBoYXMgbm90IGRpc2Nsb3NlZCBoaXMgaW50ZW50aW9uIGFib3V0 CnRoZSBudW1iZXIgb2YgYWRkaXRpb25hbCBjYXN0cyBvciAgdGhlaXIgIG51bWJlcmluZy4g IEFkZGl0aW9uYWwgIHNjdWxwdHVyZQpjYXN0cyAgc2hhbGwgIGluY2x1ZGUgIGFsbCAgY2Fz dHMgIGZyb20gdGhlIHNhbWUgbWFzdGVyIHJlZ2FyZGxlc3Mgb2YgdGhlaXIKY29sb3IsIG1h dGVyaWFsIG9yIHNpemU7IGFuZAogKGQpIHdoZXRoZXIgdGhlIGFydGlzdCBoYXMgc3RhdGVk IGluIHdyaXRpbmcgYSBsaW1pdGF0aW9uIG9uIHRoZSBudW1iZXIgb2YKYWRkaXRpb25hbCBz Y3VscHR1cmUgY2FzdHMgdG8gYmUgcHJvZHVjZWQgaW4gZXhjZXNzIG9mIHRoZSBzdGF0ZWQg IHNpemUgIG9mCnRoZSBlZGl0aW9uIG9yIHByb3Bvc2VkIGVkaXRpb24gYW5kLCBpZiBzbywg dGhlIHRvdGFsIG51bWJlciBvZiBzdWNoIGV4Y2VzcwpjYXN0cyBwcm9kdWNlZCBvciBwcm9w b3NlZCB0byBiZSBwcm9kdWNlZCBhbmQgd2hldGhlciBhbmQgaG93IHRoZXkgIGFyZSAgb3IK d2lsbCAgYmUgIG51bWJlcmVkICBhY2NvcmRpbmcgIHRvIHRoZSBzdGF0ZWQgaW50ZW50aW9u IG9mIHRoZSBhcnRpc3Qgb3IgdGhlCmVzdGF0ZSwgaGVpcnMgb3Igb3RoZXIgbGVnYWwgcmVw cmVzZW50YXRpdmVzIG9mIHRoZSBhcnRpc3Qgb3IgIGEgIHN0YXRlbWVudAp0aGF0ICB0aGUg IGFydGlzdCAgaGFzICBub3QgIGRpc2Nsb3NlZCAgaGlzICBpbnRlbnRpb24gIGFib3V0IHRo ZSBudW1iZXIgb2YKYWRkaXRpb25hbCBjYXN0cyBvciAgdGhlaXIgIG51bWJlcmluZy4gIEFk ZGl0aW9uYWwgIHNjdWxwdHVyZSAgY2FzdHMgIHNoYWxsCmluY2x1ZGUgIGFsbCBjYXN0cyBm cm9tIHRoZSBzYW1lIG1hc3RlciByZWdhcmRsZXNzIG9mIHRoZWlyIGNvbG9yLCBtYXRlcmlh bApvciBzaXplLgogMy4gICBGb3IgIGNvcGllcyAgb2Ygc2N1bHB0dXJlIG5vdCBtYWRlIGZy b20gdGhlIG1hc3RlciBhbmQgcHJvZHVjZWQgYWZ0ZXIKSmFudWFyeSBmaXJzdCwgbmluZXRl ZW4gaHVuZHJlZCBuaW5ldHktb25lLCBpbiBhZGRpdGlvbiB0byB0aGUgIGluZm9ybWF0aW9u CnJlcXVpcmVkICB0byAgYmUgIHByb3ZpZGVkICBwdXJzdWFudCAgdG8gIHN1YmRpdmlzaW9u cyAgb25lIGFuZCB0d28gb2YgdGhpcwpzZWN0aW9uLCB0aGUgZm9sbG93aW5nIGl0ZW1zIG9m IGluZm9ybWF0aW9uIHNoYWxsIGFsc28gYmUgcHJvdmlkZWQgIHRvICB0aGUKcHVyY2hhc2Vy IGluIGEgd3JpdHRlbiBpbnN0cnVtZW50OgogKGEpIHRoZSBtZWFucyBieSB3aGljaCB0aGUg Y29weSB3YXMgbWFkZTsKIChiKSAgd2hldGhlciB0aGUgY29weSB3YXMgYXV0aG9yaXplZCBi eSB0aGUgYXJ0aXN0IG9yIHRoZSBlc3RhdGUsIGhlaXJzIG9yCm90aGVyIGxlZ2FsIHJlcHJl c2VudGF0aXZlcyBvZiB0aGUgYXJ0aXN0OyBhbmQKIChjKSB3aGV0aGVyIHRoZSBjb3B5IGlz IG9mIHRoZSBzYW1lIG1hdGVyaWFsIGFuZCBzaXplIGFzIHRoZSBtYXN0ZXIuCgogIFMgIDE1 LjExLiAgRXhwcmVzcyAgd2FycmFudGllcy4gIEluZm9ybWF0aW9uICBwcm92aWRlZCBwdXJz dWFudCB0byB0aGUKcHJvdmlzaW9ucyBvZiB0aGlzIGFydGljbGUgc2hhbGwgY3JlYXRlIGFu IGV4cHJlc3Mgd2FycmFudHkgcHVyc3VhbnQgIHRvCnNlY3Rpb24gIDEzLjA1ICBvZiAgdGhp cyAgdGl0bGUuICBXaGVuICBzdWNoIGluZm9ybWF0aW9uIGlzIG5vdCBzdXBwbGllZApiZWNh dXNlIG5vdCBhcHBsaWNhYmxlLCB0aGlzIHNoYWxsIGNvbnN0aXR1dGUgYW4gZXhwcmVzcyAg d2FycmFudHkgIHRoYXQKc3VjaCByZXF1aXJlZCBpbmZvcm1hdGlvbiBpcyBub3QgYXBwbGlj YWJsZS4KCiAgUyAxNS4xMy4gQ29uc3RydWN0aW9uLiAxLiBUaGUgcmlnaHRzLCBsaWFiaWxp dGllcyBhbmQgcmVtZWRpZXMgY3JlYXRlZApieSB0aGlzIGFydGljbGUgc2hhbGwgYmUgY29u c3RydWVkIHRvIGJlICBpbiAgYWRkaXRpb24gIHRvICBhbmQgIG5vdCAgaW4Kc3Vic3RpdHV0 aW9uLCBleGNsdXNpb24gb3IgZGlzcGxhY2VtZW50IG9mIG90aGVyIHJpZ2h0cywgbGlhYmls aXRpZXMgYW5kCnJlbWVkaWVzIHByb3ZpZGVkIGJ5IGxhdywgZXhjZXB0IHdoZXJlIHN1Y2gg IGNvbnN0cnVjdGlvbiAgd291bGQsICBhcyAgYQptYXR0ZXIgb2YgbGF3LCBiZSB1bnJlYXNv bmFibGUuCiAgMi4gIFdoZW5ldmVyICBhbiAgYXJ0aXN0ICBzZWxscyAgb3IgIGNvbnNpZ25z ICBhICBtdWx0aXBsZSAgb2YgaGlzIG93bgpjcmVhdGlvbiwgdGhlIGFydGlzdCBzaGFsbCBp bmN1ciAgdGhlICBvYmxpZ2F0aW9ucyAgcHJlc2NyaWJlZCAgYnkgIHRoaXMKYXJ0aWNsZSAg Zm9yICBhbiAgYXJ0ICBtZXJjaGFudCwgIGJ1dCAgYW4gIGFydGlzdCBzaGFsbCBub3Qgb3Ro ZXJ3aXNlIGJlCnJlZ2FyZGVkIGFzIGFuIGFydCBtZXJjaGFudC4KICAzLiBBbiBhcnRpc3Qg b3IgbWVyY2hhbnQgd2hvIGNvbnNpZ25zIGEgbXVsdGlwbGUgdG8gYSBtZXJjaGFudCBmb3Ig dGhlCnB1cnBvc2Ugb2YgZWZmZWN0aW5nIGEgc2FsZSBvZiB0aGUgbXVsdGlwbGUgc2hhbGwg aGF2ZSBubyBsaWFiaWxpdHkgdG8gYQpwdXJjaGFzZXIgdW5kZXIgdGhpcyBhcnRpY2xlIGlm IHN1Y2ggY29uc2lnbm9yLCBhcyB0byB0aGUgY29uc2lnbmVlLCBoYXMKY29tcGxpZWQgd2l0 aCB0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIGFydGljbGUuCiAgNC4gIFdoZW4gIGEgIG1lcmNo YW50ICBoYXMgIGFncmVlZCAgdG8gIHNlbGwgYSBtdWx0aXBsZSBvbiBiZWhhbGYgb2YgYQpj b25zaWdub3IsIHdobyBpcyBub3QgYW4gIGFydCAgbWVyY2hhbnQsICBvciAgd2hlbiAgYW4g IGFydGlzdCAgaGFzICBub3QKY29uc2lnbmVkICBhICBtdWx0aXBsZSB0byBhIG1lcmNoYW50 LCBidXQgdGhlIG1lcmNoYW50IGhhcyBhZ3JlZWQgdG8gYWN0CmFzIHRoZSBhZ2VudCBmb3Ig YW4gYXJ0aXN0IGZvciB0aGUgcHVycG9zZSBvZiBzdXBwbHlpbmcgdGhlICBpbmZvcm1hdGlv bgpyZXF1aXJlZCBieSB0aGlzIGFydGljbGUsIHN1Y2ggbWVyY2hhbnQgc2hhbGwgaW5jdXIg bGlhYmlsaXRpZXMgb2Ygb3RoZXIKbWVyY2hhbnRzIHByZXNjcmliZWQgYnkgdGhpcyBhcnRp Y2xlIGFzIHRvIGEgcHVyY2hhc2VyLgogIDUuICBXaGVuIGFuIGFydCBtZXJjaGFudCBvciBt ZXJjaGFudCBpcyBsaWFibGUgdG8gYSBwdXJjaGFzZXIgcHVyc3VhbnQKdG8gdGhlIHByb3Zp c2lvbnMgb2YgdGhpcyBhcnRpY2xlLCBhcyBhIHJlc3VsdCBvZiBwcm92aWRpbmcgIGluZm9y bWF0aW9uCmluICB0aGUgIHNpdHVhdGlvbnMgIHJlZmVycmVkICB0byBhYm92ZSBpbiB0aGlz IHNlY3Rpb24sIGFzIHdlbGwgYXMgd2hlbgpzdWNoIGEgbWVyY2hhbnQgcHVyY2hhc2VkIHN1 Y2ggYSBtdWx0aXBsZSBmcm9tIGFub3RoZXIgbWVyY2hhbnQsIGlmICB0aGUKbWVyY2hhbnQg IG9yICBhcnQgbWVyY2hhbnQgY2FuIGVzdGFibGlzaCB0aGF0IGhpcyBsaWFiaWxpdHkgcmVz dWx0cyBmcm9tCmluY29ycmVjdCBpbmZvcm1hdGlvbiB3aGljaCB3YXMgcHJvdmlkZWQgYnkg IHRoZSAgY29uc2lnbm9yLCAgYXJ0aXN0ICBvcgptZXJjaGFudCAgdG8gIGhpbSAgaW4gIHdy aXRpbmcsIHRoZSBtZXJjaGFudCB3aG8gaXMgbGlhYmxlIGluIGdvb2QgZmFpdGgKcmVsaWVk IG9uIHN1Y2ggaW5mb3JtYXRpb24sIHRoZSAgY29uc2lnbm9yLCAgYXJ0aXN0ICBvciAgbWVy Y2hhbnQgIHNoYWxsCnNpbWlsYXJseSAgaW5jdXIgc3VjaCBsaWFiaWxpdGllcyBhcyB0byB0 aGUgcHVyY2hhc2VyIGFuZCBzdWNoIG1lcmNoYW50LgoKICBTICAxNS4xNS4gIFJlbWVkaWVz ICBhbmQgIGVuZm9yY2VtZW50LiAxLiBBbiBhcnQgbWVyY2hhbnQsIGluY2x1ZGluZyBhCm1l cmNoYW50IGNvbnNpZ25lZSwgd2hvIG9mZmVycyBvciBzZWxscyBhIG11bHRpcGxlIGluLCBp bnRvIG9yIGZyb20gdGhpcwpzdGF0ZSB3aXRob3V0IHByb3ZpZGluZyB0aGUgaW5mb3JtYXRp b24gcmVxdWlyZWQgYnkgdGhpcyBhcnRpY2xlIGZvciB0aGUKYXBwcm9wcmlhdGUgdGltZSBw ZXJpb2QsIG9yIHdobyBwcm92aWRlcyByZXF1aXJlZCBpbmZvcm1hdGlvbiAgd2hpY2ggIGlz Cm1pc3Rha2VuLCAgZXJyb25lb3VzICBvciAgdW50cnVlLCAgZXhjZXB0ICBmb3IgIGhhcm1s ZXNzICBlcnJvcnMgc3VjaCBhcwp0eXBvZ3JhcGhpY2FsIGVycm9ycywgc2hhbGwgYmUgbGlh YmxlICB0byAgdGhlICBwdXJjaGFzZXIgIHRvICB3aG9tICB0aGUKbXVsdGlwbGUgIHdhcyAg c29sZC4gIFRoZSAgbWVyY2hhbnRgcyAgbGlhYmlsaXR5ICBzaGFsbCAgY29uc2lzdCAgb2Yg dGhlCmNvbnNpZGVyYXRpb24gcGFpZCBieSB0aGUgcHVyY2hhc2VyICB3aXRoICBpbnRlcmVz dCAgZnJvbSAgdGhlICB0aW1lICBvZgpwYXltZW50ICBhdCAgdGhlICByYXRlICBwcmVzY3Jp YmVkICBieSBzZWN0aW9uIGZpdmUgdGhvdXNhbmQgZm91ciBvZiB0aGUKY2l2aWwgcHJhY3Rp Y2UgbGF3IGFuZCBydWxlcyBvciBhbnkgc3VjY2Vzc29yIHByb3Zpc2lvbnMgIHRoZXJldG8s ICB1cG9uCnRoZSAgcmV0dXJuIG9mIHRoZSBtdWx0aXBsZSBpbiBzdWJzdGFudGlhbGx5IHRo ZSBzYW1lIGNvbmRpdGlvbiBpbiB3aGljaApyZWNlaXZlZCBieSB0aGUgcHVyY2hhc2VyLiBU aGlzICByZW1lZHkgIHNoYWxsICBub3QgIGJhciAgb3IgIGJlICBkZWVtZWQKaW5jb25zaXN0 ZW50IHdpdGggYSBjbGFpbSBmb3IgZGFtYWdlcyBvciB3aXRoIHRoZSBleGVyY2lzZSBvZiBh ZGRpdGlvbmFsCnJlbWVkaWVzIG90aGVyd2lzZSBhdmFpbGFibGUgdG8gdGhlIHB1cmNoYXNl ci4KICAyLiBJbiBhbnkgcHJvY2VlZGluZyBpbiB3aGljaCBhbiBhcnQgbWVyY2hhbnQgcmVs aWVzIHVwb24gYSBkaXNjbGFpbWVyCm9mIGtub3dsZWRnZSBhcyB0byBhbnkgcmVsZXZhbnQg aW5mb3JtYXRpb24gcmVxdWlyZWQgYnkgdGhpcyBhcnRpY2xlIGZvcgp0aGUgIGFwcHJvcHJp YXRlIHRpbWUgcGVyaW9kLCBzdWNoIGRpc2NsYWltZXIgc2hhbGwgYmUgZWZmZWN0aXZlIG9u bHkgaWYKaXQgY29tcGxpZXMgd2l0aCB0aGUgcHJvdmlzaW9ucyBvZiBzZWN0aW9uIDEzLjA1 IG9mIHRoaXMgIHRpdGxlLCAgdW5sZXNzCnRoZSAgY2xhaW1hbnQgIGlzICBhYmxlICB0byAg ZXN0YWJsaXNoICB0aGF0IHRoZSBtZXJjaGFudCBmYWlsZWQgdG8gbWFrZQpyZWFzb25hYmxl IGlucXVpcmllcywgYWNjb3JkaW5nIHRvIHRoZSBjdXN0b20gYW5kIHVzYWdlIG9mIHRoZSB0 cmFkZSwgdG8KYXNjZXJ0YWluICB0aGUgIHJlbGV2YW50ICBpbmZvcm1hdGlvbiAgb3IgdGhh dCBzdWNoIHJlbGV2YW50IGluZm9ybWF0aW9uCndvdWxkIGhhdmUgYmVlbiBhc2NlcnRhaW5l ZCBhcyBhIHJlc3VsdCBvZiBzdWNoIHJlYXNvbmFibGUgaW5xdWlyaWVzLgogIDMuICAoYSkg IFRoZSAgcHVyY2hhc2VyICBvZiAgc3VjaCAgYSBtdWx0aXBsZSBtYXkgcmVjb3ZlciBmcm9t IHRoZSBhcnQKbWVyY2hhbnQgYW4gYW1vdW50IGVxdWFsIHRvIHRocmVlIHRpbWVzICB0aGUg IGFtb3VudCAgcmVjb3ZlcmFibGUgIHVuZGVyCnN1YmRpdmlzaW9uICBvbmUgIG9mIHRoaXMg c2VjdGlvbiBpZiBhbiBhcnQgbWVyY2hhbnQgb2ZmZXJzLCBjb25zaWducyBvcgpzZWxscyBh IG11bHRpcGxlIGFuZDoKICAoaSkgIHdpbGxmdWxseSAgZmFpbHMgIHRvICBwcm92aWRlICB0 aGUgIGluZm9ybWF0aW9uICByZXF1aXJlZCBieSB0aGlzCmFydGljbGUgZm9yIHRoZSBhcHBy b3ByaWF0ZSB0aW1lIHBlcmlvZDsKICAoaWkpIGtub3dpbmdseSBwcm92aWRlcyBmYWxzZSBp bmZvcm1hdGlvbjsgb3IKICAoaWlpKSAgdGhlICBwdXJjaGFzZXIgIGNhbiAgZXN0YWJsaXNo ICB0aGF0IHRoZSBtZXJjaGFudCB3aWxsZnVsbHkgYW5kCmZhbHNlbHkgZGlzY2xhaW1lZCBr bm93bGVkZ2UgYXMgdG8gYW55IHJlcXVpcmVkIGluZm9ybWF0aW9uLgogIChiKSAgUHVyc3Vh bnQgIHRvIHN1YnBhcmFncmFwaHMgKGkpIGFuZCAoaWlpKSBvZiBwYXJhZ3JhcGggKGEpIG9m IHRoaXMKc3ViZGl2aXNpb24sIGEgbWVyY2hhbnQgbWF5IGludHJvZHVjZSBldmlkZW5jZSBv ZiB0aGUgcmVsZXZhbnQgdXNhZ2UgYW5kCmN1c3RvbSAgb2YgIHRoZSB0cmFkZSBpbiBhbnkg cHJvY2VlZGluZyBpbiB3aGljaCBzdWNoIHRyZWJsZSBkYW1hZ2VzIGFyZQpzb3VnaHQuIFRo aXMgc3ViZGl2aXNpb24gc2hhbGwgbm90IGJlIGRlZW1lZCB0byBuZWdhdGUgdGhlIGFwcGxp Y2FiaWxpdHkKb2YgIGFydGljbGUgIHRoaXJ0ZWVuICBvZiAgdGhpcyAgY2hhcHRlciAgYXMg dG8gYXV0aGVudGljaXR5IGFuZCBhcnRpY2xlCnRoaXJ0ZWVuIGlzIGFwcGxpY2FibGUsIGFz IHRvIGF1dGhlbnRpY2l0eSwgdG8gdGhlIG11bHRpcGxlcyBjb3ZlcmVkICBieQp0aGUgcHJv dmlzaW9ucyBvZiB0aGlzIGFydGljbGUuCiAgNC4gIEluICBhbnkgYWN0aW9uIHRvIGVuZm9y Y2UgYW55IHByb3Zpc2lvbiBvZiB0aGlzIGFydGljbGUsIHRoZSBjb3VydAptYXkgYWxsb3cg dGhlIHByZXZhaWxpbmcgcHVyY2hhc2VyIHRoZSBjb3N0cyBvZiB0aGUgYWN0aW9uIHRvZ2V0 aGVyIHdpdGgKcmVhc29uYWJsZSBhdHRvcm5leXNgIGFuZCBleHBlcnQgd2l0bmVzc2VzYCBm ZWVzLiBJbiB0aGUgZXZlbnQsIGhvd2V2ZXIsCnRoZSBjb3VydCBkZXRlcm1pbmVzIHRoYXQg YW4gYWN0aW9uIHRvIGVuZm9yY2Ugd2FzIGJyb3VnaHQgaW4gYmFkICBmYWl0aAppdCAgbWF5 IGFsbG93IHN1Y2ggZXhwZW5zZXMgdG8gdGhlIGFydCBtZXJjaGFudCBhcyBpdCBkZWVtcyBh cHByb3ByaWF0ZS4KICA1LiAgQW4gIGFjdGlvbiAgdG8gIGVuZm9yY2UgIGFueSBsaWFiaWxp dHkgdW5kZXIgdGhpcyBhcnRpY2xlIHNoYWxsIGJlCmJyb3VnaHQgd2l0aGluIHRoZSBwZXJp b2QgcHJlc2NyaWJlZCBmb3Igc3VjaCBhY3Rpb25zIGJ5IGFydGljbGUgdHdvICBvZgp0aGUg dW5pZm9ybSBjb21tZXJjaWFsIGNvZGUuCgogUyAxNS4xNy4gRW5qb2luaW5nIHZpb2xhdGlv bnMuIEFueSB2aW9sYXRpb24gb2YgdGhpcyBhcnRpY2xlIG9yIG9mIHNlY3Rpb24KMTQuMDUs IDE0LjA2IG9yIDE0LjA3IG9mIHRoaXMgY2hhcHRlciBzaGFsbCBiZSBkZWVtZWQgdG8gIGJl ICB1bmxhd2Z1bCAgZm9yCnRoZSAgcHVycG9zZXMgIG9mICBpbnZva2luZyAgc2VjdGlvbnMg IHRocmVlICBodW5kcmVkICBmb3J0eS1uaW5lIGFuZCB0aHJlZQpodW5kcmVkIGZpZnR5IG9m IGFydGljbGUgdHdlbnR5LXR3by1BIG9mIHRoZSBnZW5lcmFsIGJ1c2luZXNzIGxhdywgYW5k ICBhbnkKcGVyc29uICB3aG8gIGVuZ2FnZXMgaW4gcmVwZWF0ZWQgdmlvbGF0aW9ucyBvZiB0 aGlzIGFydGljbGUgc2hhbGwgYmUgZGVlbWVkCnRvIGhhdmUgZGVtb25zdHJhdGVkIHRoZSBw ZXJzaXN0ZW50IGZyYXVkIG9yIGlsbGVnYWxpdHkgbmVjZXNzYXJ5IHRvIGludm9rZQpzdWJk aXZpc2lvbiAgdHdlbHZlICBvZiAgc2VjdGlvbiAgc2l4dHktdGhyZWUgIG9mICB0aGUgIGV4 ZWN1dGl2ZSAgbGF3LiBUaGUKYXR0b3JuZXkgZ2VuZXJhbCBtYXkgYnJpbmcgYW4gYWN0aW9u IHB1cnN1YW50IHRvICBhcnRpY2xlICB0d2VudHktdHdvLUEgIG9mCnRoZSAgZ2VuZXJhbCBi dXNpbmVzcyBsYXcgb3IgYSBwcm9jZWVkaW5nIHB1cnN1YW50IHRvIHN1YmRpdmlzaW9uIHR3 ZWx2ZSBvZgpzZWN0aW9uIHNpeHR5LXRocmVlIG9mIHRoZSBleGVjdXRpdmUgIGxhdyAgdG8g IGVuam9pbiAgdmlvbGF0aW9ucyAgb2YgIHRoaXMKYXJ0aWNsZSAgYW5kICBzZWVrIHJlc3Rp dHV0aW9uIGZvciBhbnkgcGVyc29uIGVudGl0bGVkIHRoZXJldG8uIEluIGFueSBzdWNoCmFj dGlvbiBvciBwcm9jZWVkaW5nLCB0aGUgYXR0b3JuZXkgZ2VuZXJhbCBtYXkgcmVjb3Zlciwg aW4gYWRkaXRpb24gdG8gIGFueQpvdGhlciAgcmVsaWVmICBwcm92aWRlZCBpbiB0aG9zZSBz dGF0dXRlcywgYSBjaXZpbCBwZW5hbHR5IG9mIG5vdCBtb3JlIHRoYW4KZml2ZSBodW5kcmVk IGRvbGxhcnMgdG8gYmUgZm9yZmVpdGVkIHRvIHRoZSBzdGF0ZSwgcHJvdmlkZWQsIGhvd2V2 ZXIsICB0aGF0CndpdGggIHJlc3BlY3QgIHRvIGFjdGlvbnMgYnJvdWdodCBwdXJzdWFudCB0 byB0aGlzIHNlY3Rpb24gdG8gd2hpY2ggYXJ0aWNsZQp0d2VudHktdHdvLUEgb2YgdGhlIGdl bmVyYWwgIGJ1c2luZXNzICBsYXcgIGFwcGxpZXMsICB0aGUgIGZvcmVnb2luZyAgY2l2aWwK cGVuYWx0eSAgc2hhbGwgIGJlICBpbiBsaWV1IG9mIGFueSBwZW5hbHR5IHNldCBmb3J0aCB0 aGVyZWluLiBJbiBjb25uZWN0aW9uCndpdGggYW55IHN1Y2ggcHJvcG9zZWQgIGFjdGlvbiAg b3IgIHByb2NlZWRpbmcsICB0aGUgIGF0dG9ybmV5ICBnZW5lcmFsICBpcwphdXRob3JpemVk ICB0byAgdGFrZSAgcHJvb2YgYW5kIG1ha2UgYSBkZXRlcm1pbmF0aW9uIG9mIHRoZSByZWxl dmFudCBmYWN0cywKYW5kIHRvIGlzc3VlIHN1YnBvZW5hcyBpbiBhY2NvcmRhbmNlIHdpdGgg dGhlIGNpdmlsIHByYWN0aWNlIGxhdyBhbmQgcnVsZXMuCgogIFMgIDE1LjE5LiAgQXBwbGlj YXRpb24gb2YgdGhlIGFydGljbGUuIFRoaXMgYXJ0aWNsZSBzaGFsbCBhcHBseSB0byB0aGUK dmlzdWFsIGFydCBvYmplY3RzIGdvdmVybmVkIGJ5IHRoaXMgYXJ0aWNsZSB3aGljaCBhcmUg c29sZCwgb2ZmZXJlZCAgZm9yCnNhbGUsICBjb25zaWduZWQgIG9yIHBvc3Nlc3NlZCB3aXRo IGludGVudCB0byBzZWxsIGluLCBpbnRvIG9yIGZyb20gdGhpcwpzdGF0ZS4gV2l0aCByZXNw ZWN0IHRvIHN1Y2ggbXVsdGlwbGVzIGNvbXBsaWFuY2Ugd2l0aCB0aGlzIGFydGljbGUgc2hh bGwKY29tbWVuY2Ugc2l4IG1vbnRocyBhZnRlciBKYW51YXJ5IGZpcnN0LCBuaW5ldGVlbiBo dW5kcmVkIGVpZ2h0eS1maXZlLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpOZXcgWW9yayBTdGF0 ZSBDb25zb2xpZGF0ZWQgTGF3cwpBcnRzIGFuZCBDdWx0dXJhbCBBZmZhaXJzCgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBUlRJQ0xFIDE2CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU0VWRVJBQklMSVRZClNlY3Rpb24gMTYuMDEuIFNldmVyYWJpbGl0 eS4KCiAgICBTICAxNi4wMS4gIFNldmVyYWJpbGl0eS4gIEVmZmVjdCBvZiB1bmNvbnN0aXR1 dGlvbmFsaXR5IGluIHBhcnQuIElmIGFueQpjbGF1c2UsIHNlbnRlbmNlLCBwYXJhZ3JhcGgs IHN1YmRpdmlzaW9uLCBzZWN0aW9uIG9yICBwYXJ0ICBvZiAgdGhpcyAgdGl0bGUKc2hhbGwg IGJlICBhZGp1ZGdlZCAgYnkgIGFueSBjb3VydCBvZiBjb21wZXRlbnQganVyaXNkaWN0aW9u IHRvIGJlIGludmFsaWQsCnN1Y2gganVkZ21lbnQgc2hhbGwgbm90IGFmZmVjdCwgaW1wYWly IG9yIGludmFsaWRhdGUgdGhlIHJlbWFpbmRlciB0aGVyZW9mLApidXQgIHNoYWxsIGJlIGNv bmZpbmVkIGluIGl0cyBvcGVyYXRpb24gdG8gdGhlIGNsYXVzZSwgc2VudGVuY2UsIHBhcmFn cmFwaCwKc3ViZGl2aXNpb24sIHNlY3Rpb24gb3IgcGFydCB0aGVyZW9mIGRpcmVjdGx5IGlu dm9sdmVkIGluICB0aGUgIGNvbnRyb3ZlcnN5CmluIHdoaWNoIHN1Y2gganVkZ21lbnQgc2hh bGwgaGF2ZSBiZWVuIHJlbmRlcmVkLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpOZXcgWW9yayBT dGF0ZSBDb25zb2xpZGF0ZWQgTGF3cwpBcnRzIGFuZCBDdWx0dXJhbCBBZmZhaXJzCgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVElUTEUgRAogICAgICAgICAgICAgICAg ICAgIFJFR1VMQVRJT04gT0YgUFVCTElDIEVOVEVSVEFJTk1FTlRTCiAgICAgICAgICAgICAg ICAgICAgICBPUiBFWEhJQklUSU9OUyBCWSBDSU5FTUFUT0dSQVBICgoKCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk5ldyBZb3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1 cmFsIEFmZmFpcnMKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSVElDTEUg MTkKICAgICAgICAgICBQVUJMSUMgRU5URVJUQUlOTUVOVFMgT1IgRVhISUJJVElPTlMgQlkg Q0lORU1BVE9HUkFQSAogICAgICAgICAgIE9SIEFOWSBPVEhFUiBBUFBBUkFUVVMgRk9SIFBS T0pFQ1RJTkcgTU9WSU5HIFBJQ1RVUkVTClNlY3Rpb24gMTkuMDEuIEZpcmVwcm9vZiBib290 aCBmb3IgY2luZW1hdG9ncmFwaCBvciBhbnkgb3RoZXIgYXBwYXJhdHVzIGZvcgogICAgICBw cm9qZWN0aW5nIG1vdmluZyBwaWN0dXJlcy4KICAgMTkuMDMuIENvbnN0cnVjdGlvbiBvZiBi b290aDsgYXBwcm92YWwgb2YgcGxhbnMgYW5kIHNwZWNpZmljYXRpb25zLgogICAxOS4wNS4g VGhpcyBhcnRpY2xlIG5vdCByZXRyb2FjdGl2ZSB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMu CiAgIDE5LjA3LiBJbnNwZWN0aW9uOyBjZXJ0aWZpY2F0ZSBmb3IgcGVybWFuZW50IGJvb3Ro cy4KICAgMTkuMDkuIFBvcnRhYmxlIGJvb3RoIGZvciB0ZW1wb3JhcnkgZXhoaWJpdGlvbnMu CiAgIDE5LjExLiBFeGVtcHRpb24gIGFuZCByZXF1aXJlbWVudHMgZm9yIG1pbmlhdHVyZSBj aW5lbWF0b2dyYXBoIG1hY2hpbmVzLgogICAxOS4xMy4gSW5zcGVjdGlvbjsgICBjZXJ0aWZp Y2F0ZSAgIGZvciAgcG9ydGFibGUgIGJvb3RocyAgYW5kICBtaW5pYXR1cmUKICAgICAgY2lu ZW1hdG9ncmFwaCBtYWNoaW5lcy4KICAgMTkuMTUuIFBlbmFsdHkgZm9yIHZpb2xhdGluZyB0 aGlzIGFydGljbGUuCgogICAgUyAgMTkuMDEuICAgRmlyZXByb29mIGJvb3RoIGZvciBjaW5l bWF0b2dyYXBoIG9yIGFueSBvdGhlciBhcHBhcmF0dXMKZm9yIHByb2plY3RpbmcgbW92aW5n IHBpY3R1cmVzLiAgTm8gY2luZW1hdG9ncmFwaCBvciBhbnkgb3RoZXIgYXBwYXJhdHVzCmZv ciAgcHJvamVjdGluZyAgbW92aW5nIHBpY3R1cmVzLCBzYXZlIGFzIGV4Y2VwdGVkIGluIHNl Y3Rpb25zIDE5LjA1IGFuZAoxOS4wOSBvZiB0aGlzIGFydGljbGUsIHdoaWNoIGFwcGFyYXR1 cyB1c2VzIGNvbWJ1c3RpYmxlICBmaWxtcyAgb2YgIG1vcmUKdGhhbiAgdGVuICBpbmNoZXMg IGluICBsZW5ndGgsICBzaGFsbCAgYmUgIHNldCB1cCBmb3IgdXNlIG9yIHVzZWQgaW4gYW55 CmJ1aWxkaW5nLCBwbGFjZSBvZiAgcHVibGljICBhc3NlbWJsYWdlICBvciAgZW50ZXJ0YWlu bWVudCwgIHVubGVzcyAgc3VjaAphcHBhcmF0dXMgIGZvciAgdGhlICBwcm9qZWN0aW5nICBv ZiAgbW92aW5nICBwaWN0dXJlcyAgc2hhbGwgYmUgaW5jbG9zZWQKdGhlcmVpbiBpbiBhIGJv b3RoIG9yIGluY2xvc3VyZSBjb25zdHJ1Y3RlZCBvZiBjb25jcmV0ZSwgIGJyaWNrLCAgaG9s bG93CnRpbGUgIG9yICBvdGhlciAgYXBwcm92ZWQgIGZpcmVwcm9vZiAgbWF0ZXJpYWwgb3Ig YW55IGFwcHJvdmVkIGZpcmVwcm9vZgpmcmFtZXdvcmsgY292ZXJlZCBvciBsaW5lZCB3aXRo ICBhc2Jlc3RvcyAgYm9hcmQsICBvciAgd2l0aCAgc29tZSAgb3RoZXIKYXBwcm92ZWQgIGZp cmUgcmVzaXN0aW5nIG1hdGVyaWFsLCBhbmQgdW5sZXNzIHN1Y2ggYm9vdGggc2hhbGwgaGF2 ZSBiZWVuCmNvbnN0cnVjdGVkIGFzIHByb3ZpZGVkICBpbiAgc2VjdGlvbiAgMTkuMDMgIG9m ICB0aGlzICBhcnRpY2xlICBhbmQgIHRoZQpjZXJ0aWZpY2F0ZSAgcHJvdmlkZWQgIGluICBz ZWN0aW9uIDE5LjA3IG9mIHRoaXMgYXJ0aWNsZSBzaGFsbCBoYXZlIGJlZW4KaXNzdWVkIHRv IHRoZSBvd25lciBvciBsZXNzZWUgb2YgdGhlICBwcmVtaXNlcyAgd2hlcmVpbiAgc3VjaCAg Ym9vdGggIGlzCnNpdHVhdGVkLgoKICAgIFMgICAxOS4wMy4gICAgQ29uc3RydWN0aW9uICAg b2YgICBib290aDsgICBhcHByb3ZhbCAgIG9mICBwbGFucyAgYW5kCnNwZWNpZmljYXRpb25z LiAgVGhlIGJvb3RocyAgcHJvdmlkZWQgIGZvciAgaW4gIHNlY3Rpb24gIDE5LjAxICBvZiAg dGhpcwphcnRpY2xlIHNoYWxsIGJlIGNvbnN0cnVjdGVkIGFjY29yZGluZyB0byBwbGFucyBh bmQgc3BlY2lmaWNhdGlvbnMgd2hpY2gKc2hhbGwgaGF2ZSBiZWVuIGZpcnN0IGFwcHJvdmVk LCAgaW4gIGEgIGNpdHksICBieSAgdGhlICBtYXlvciAgb3IgIGNoaWVmCmV4ZWN1dGl2ZSAg b2ZmaWNlciAgb2YgIHRoZSAgY2l0eSAgZGVwYXJ0bWVudCAgaGF2aW5nIHN1cGVydmlzaW9u IG9mIHRoZQplcmVjdGlvbiBvZiBidWlsZGluZ3MgaW4gc3VjaCBjaXR5OyBpbiBhIHZpbGxh Z2UsIGJ5IHRoZSBtYXlvciAgb2YgIHN1Y2gKdmlsbGFnZTsgIGluICBhIHRvd24gb3V0c2lk ZSB0aGUgYm91bmRhcmllcyBvZiBhIGNpdHkgb3IgdmlsbGFnZSwgYnkgdGhlCnN1cGVydmlz b3IgIG9mICBzdWNoICB0b3duLiAgIFByb3ZpZGVkLCAgaG93ZXZlciwgIHRoYXQgIG5vICBw bGFucyAgIGFuZApzcGVjaWZpY2F0aW9ucyAgZm9yIHRoZSBjb25zdHJ1Y3Rpb24gb2Ygc3Vj aCBib290aHMgc2hhbGwgYmUgYXBwcm92ZWQgYnkKYW55IHB1YmxpYyBvZmZpY2lhbCwgdW5s ZXNzIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzIGFyZSBzdWJzdGFudGlhbGx5CnByb3Zp ZGVkIGZvciBpbiBzdWNoIHBsYW5zIGFuZCBzcGVjaWZpY2F0aW9uczoKICAgIDEuICAgRGlt ZW5zaW9ucy4gICBTdWNoIGJvb3RocyBzaGFsbCBiZSBhdCBsZWFzdCBzaXggZmVldCBpbiBo ZWlnaHQuCklmIG9uZSBtYWNoaW5lIGlzIHRvIGJlIG9wZXJhdGVkIGluIHN1Y2ggYm9vdGgg dGhlIGZsb29yIHNwYWNlIHNoYWxsICBiZQpub3QgIGxlc3MgIHRoYW4gZm9ydHktZWlnaHQg c3F1YXJlIGZlZXQuICBJZiBtb3JlIHRoYW4gb25lIG1hY2hpbmUgaXMgdG8KYmUgb3BlcmF0 ZWQgdGhlcmVpbiwgYW4gYWRkaXRpb25hbCAgdHdlbnR5LWZvdXIgIHNxdWFyZSAgZmVldCAg c2hhbGwgIGJlCnByb3ZpZGVkIGZvciBlYWNoIHN1Y2ggYWRkaXRpb25hbCBtYWNoaW5lLgog ICAgMi4gICBHZW5lcmFsICBzcGVjaWZpY2F0aW9ucy4gIEluIGNhc2Ugc3VjaCBib290aCBp cyBub3QgY29uc3RydWN0ZWQKb2YgY29uY3JldGUsIGJyaWNrLCBob2xsb3cgdGlsZSBvciAg b3RoZXIgIGFwcHJvdmVkICBmaXJlcHJvb2YgIG1hdGVyaWFsCnRoYW4gIGFzYmVzdG9zLCAg c3VjaCBib290aCBzaGFsbCBiZSBjb25zdHJ1Y3RlZCB3aXRoIGFuIGFuZ2xlIGZyYW1ld29y awpvZiBhcHByb3ZlZCBmaXJlcHJvb2YgbWF0ZXJpYWwsIHRoZSBhbmdsZXMgdG8gYmUgbm90 IGxlc3MgdGhhbiAgb25lICBhbmQKb25lLXF1YXJ0ZXIgIGluY2hlcyAgYnkgIHRocmVlLXNp eHRlZW50aHMgb2YgYW4gaW5jaCB0aGljaywgdGhlIGFkamFjZW50Cm1lbWJlcnMgYmVpbmcg am9pbmVkIGZpcm1seSB3aXRoICBhbmdsZSAgcGxhdGVzICBvZiAgbWV0YWwuICAgVGhlICBh bmdsZQptZW1iZXJzICBvZiAgdGhlIGZyYW1ld29yayBzaGFsbCBiZSBzcGFjZWQgbm90IG1v cmUgdGhhbiBmb3VyIGZlZXQgYXBhcnQKb24gdGhlIHNpZGVzIGFuZCBub3QgbW9yZSB0aGFu IHRocmVlIGZlZXQgYXBhcnQgb24gdGhlICBmcm9udCAgYW5kICBiYWNrCmFuZCAgdG9wICBv ZiBzdWNoIGJvb3RoLiAgVGhlIHNoZWV0cyBvZiBhc2Jlc3RvcyBib2FyZCBvciBvdGhlciBh cHByb3ZlZApmaXJlLXJlc2lzdGluZyBtYXRlcmlhbCBzaGFsbCBiZSBhdCBsZWFzdCAgb25l LXF1YXJ0ZXIgIG9mICBhbiAgaW5jaCAgaW4KdGhpY2tuZXNzICBhbmQgIHNoYWxsICBiZSBz ZWN1cmVseSBhdHRhY2hlZCB0byB0aGUgZnJhbWV3b3JrIGJ5IG1lYW5zIG9mCm1ldGFsIGJv bHRzIGFuZCByaXZldHMuICBUaGUgZmlyZS1yZXNpc3RpbmcgIG1hdGVyaWFsICBzaGFsbCAg Y29tcGxldGVseQpjb3ZlciAgdGhlICBzaWRlcywgIHRvcCAgYW5kICBhbGwgam9pbnRzIG9m IHN1Y2ggYm9vdGguICBUaGUgZmxvb3Igc3BhY2UKb2NjdXBpZWQgYnkgdGhlIGJvb3RoIHNo YWxsIGJlIGNvdmVyZWQgd2l0aCBmaXJlLXJlc2lzdGluZyBtYXRlcmlhbCAgbm90Cmxlc3Mg IHRoYW4gIHRocmVlLWVpZ2h0aHMgIG9mICBhbiBpbmNoIGluIHRoaWNrbmVzcy4gIFRoZSBi b290aCBzaGFsbCBiZQppbnN1bGF0ZWQgc28gdGhhdCBpdCB3aWxsIG5vdCBjb25kdWN0IGVs ZWN0cmljaXR5IHRvIGFueSAgb3RoZXIgIHBvcnRpb24Kb2YgIHRoZSBidWlsZGluZy4gIFRo ZXJlIHNoYWxsIGJlIHByb3ZpZGVkIGZvciB0aGUgYm9vdGggYSBkb29yIG5vdCBsZXNzCnRo YW4gdHdvIGZlZXQgd2lkZSBhbmQgZml2ZSBmZWV0IHRlbiBpbmNoZXMgaGlnaCwgY29uc2lz dGluZyBvZiBhbiBhbmdsZQpmcmFtZSAgb2YgIGFwcHJvdmVkICBmaXJlcHJvb2YgIG1hdGVy aWFsIGNvdmVyZWQgd2l0aCBzaGVldHMgb2YgYXBwcm92ZWQKZmlyZXByb29mIG1hdGVyaWFs IG9uZS1xdWFydGVyIG9mIGFuIGluY2ggdGhpY2ssICBhbmQgIGF0dGFjaGVkICB0byAgdGhl CmZyYW1ld29yayAgb2YgIHRoZSBib290aCBieSBoaW5nZXMsIGluIHN1Y2ggYSBtYW5uZXIg dGhhdCB0aGUgZG9vciBzaGFsbApiZSBrZXB0IGNsb3NlZCBhdCBhbGwgdGltZXMsIHdoZW4g bm90IHVzZWQgZm9yIGluZ3Jlc3Mgb3IgZWdyZXNzLgogICAgVGhlICBvcGVyYXRpbmcgIHdp bmRvd3MsIG9uZSBmb3IgZWFjaCBtYWNoaW5lIHRvIGJlIG9wZXJhdGVkIHRoZXJlaW4KYW5k IG9uZSBmb3IgdGhlIG9wZXJhdG9yIHRoZXJlb2YsIHNoYWxsIGJlICBubyAgbGFyZ2VyICB0 aGFuICByZWFzb25hYmx5Cm5lY2Vzc2FyeSwgIHRvICBzZWN1cmUgIHRoZSAgZGVzaXJlZCAg c2VydmljZSwgIGFuZCBzaHV0dGVycyBvZiBhcHByb3ZlZApmaXJlcHJvb2YgbWF0ZXJpYWwg c2hhbGwgYmUgcHJvdmlkZWQgZm9yIGVhY2ggd2luZG93LiAgV2hlbiB0aGUgIHdpbmRvd3MK YXJlIG9wZW4sIHRoZSBzaHV0dGVycyBzaGFsbCBiZSBzbyBzdXNwZW5kZWQgYW5kIGFycmFu Z2VkIHRoYXQgdGhleSB3aWxsCmF1dG9tYXRpY2FsbHkgY2xvc2UgdGhlIHdpbmRvdyBvcGVu aW5ncywgIHVwb24gIHRoZSAgb3BlcmF0aW5nICBvZiAgc29tZQpzdWl0YWJsZSBmdXNpYmxl IG9yIG1lY2hhbmljYWwgcmVsZWFzaW5nIGRldmljZS4KICAgIFdoZXJlICBhICBib290aCAg aXMgIHNvICBidWlsdCAgdGhhdCAgaXQgIG1heSBiZSBjb25zdHJ1Y3RlZCB0byBvcGVuCmRp cmVjdGx5IG9uIHRoZSBvdXRzaWRlIG9mIHRoZSBidWlsZGluZyB0aHJvdWdoIGEgIHdpbmRv dywgIHN1Y2ggIHdpbmRvdwpzaGFsbCBiZSBwZXJtaXR0ZWQgZm9yIHRoZSBjb21mb3J0IG9m IHRoZSBvcGVyYXRvciwgYnV0IHN1Y2ggYm9vdGggc2hhbGwKbm90IGJlIGV4ZW1wdGVkIGZy b20gdGhlIHJlcXVpcmVtZW50IG9mIHRoZSBpbnN0YWxsYXRpb24gb2YgYSB2ZW50ICBmbHVl CmFzICBoZXJlaW5hZnRlciAgcHJlc2NyaWJlZC4gICBTYWlkICBib290aCAgc2hhbGwgIGNv bnRhaW4gIGFuICBhcHByb3ZlZApmaXJlcHJvb2YgYm94IGZvciB0aGUgc3RvcmFnZSBvZiBm aWxtcyBub3Qgb24gIHRoZSAgcHJvamVjdGluZyAgbWFjaGluZS4KRmlsbXMgc2hhbGwgbm90 IGJlIHN0b3JlZCBpbiBhbnkgb3RoZXIgcGxhY2Ugb24gdGhlIHByZW1pc2VzOyB0aGV5IHNo YWxsCmJlIHJld291bmQgYW5kIHJlcGFpcmVkIGVpdGhlciBpbiB0aGUgYm9vdGggb3IgaW4g c29tZSAgb3RoZXIgIGZpcmVwcm9vZgppbmNsb3N1cmUuICAgVGhlIGJvb3RoIGluIHdoaWNo IHRoZSBwaWN0dXJlIG1hY2hpbmUgaXMgb3BlcmF0ZWQgc2hhbGwgYmUKcHJvdmlkZWQgd2l0 aCBhbiBvcGVuaW5nIG9yIHZlbnQgZmx1ZSBpbiBpdHMgcm9vZiBvciB1cHBlciBwYXJ0ICBv ZiAgaXRzCnNpZGUgIHdhbGwgIGxlYWRpbmcgIHRvICB0aGUgIG91dGRvb3IgIGFpci4gICBU aGUgdmVudCBmbHVlIHNoYWxsIGhhdmUgYQptaW5pbXVtIGNyb3NzLXNlY3Rpb25hbCAgYXJl YSAgb2YgIGZpZnR5ICBzcXVhcmUgIGluY2hlcyAgYW5kICBzaGFsbCAgYmUKZmlyZXByb29m LiAgIFdoZW4gIHRoZSBib290aCBpcyBpbiB1c2UgdGhlcmUgc2hhbGwgYmUgYSBjb25zdGFu dCBjdXJyZW50Cm9mIGFpciBwYXNzaW5nIG91dHdhcmQgdGhyb3VnaCBzYWlkIG9wZW5pbmcg b3IgdmVudCBmbHVlIGF0IHRoZSByYXRlICBvZgpub3QgbGVzcyB0aGFuIHRoaXJ0eSBjdWJp YyBmZWV0IHBlciBtaW51dGUuCgogIFMgICAxOS4wNS4gICBUaGlzICBhcnRpY2xlICBub3Qg IHJldHJvYWN0aXZlICB1bmRlciAgY2VydGFpbiAgY29uZGl0aW9ucy4KU2VjdGlvbnMgMTku MDEgYW5kIDE5LjAzIG9mIHRoaXMgYXJ0aWNsZSBzaGFsbCBub3QgYmUgcmV0cm9hY3RpdmUg IGZvciAgYW55CmJvb3RoICBhcHByb3ZlZCAgYnkgIHRoZSAgYXBwcm9wcmlhdGUgcHVibGlj IGF1dGhvcml0eSBvciBvZmZpY2lhbCBwcmlvciB0bwpNYXJjaCB0aGlyZCwgbmluZXRlZW4g aHVuZHJlZCBmb3J0eS1vbmUsIHByb3ZpZGVkIHN1Y2ggYm9vdGggaGF2ZSBvciBiZSAgc28K cmVjb25zdHJ1Y3RlZCAgb2YgIHRoZSAgc2FtZSBtYXRlcmlhbCBhcyB0byBoYXZlIGRpbWVu c2lvbnMgYXMgc3BlY2lmaWVkIGluCnNlY3Rpb24gIDE5LjAzICBvZiAgdGhpcyAgYXJ0aWNs ZTsgIHByb3ZpZGVkICBzdWNoICBib290aCAgY29uZm9ybSAgdG8gIHRoZQpzcGVjaWZpY2F0 aW9uICBvZiAgc2VjdGlvbiAgMTkuMDMgb2YgdGhpcyBhcnRpY2xlIGFzIHJlZ2FyZHMgdmVu dCBmbHVlLCBib3gKZm9yIHN0b3JhZ2Ugb2YgZmlsbXMsIHNwZWNpZmljYXRpb25zIGZvciBy ZXdpbmRpbmcgYW5kIHJlcGFpcmluZyBmaWxtcyAgYW5kCnNwZWNpZmljYXRpb25zICBmb3Ig IHdpbmRvd3MgYW5kIGRvb3JzLCBhbmQgcHJvdmlkZWQgc3VjaCBib290aCBiZSBvZiByaWdp ZApmaXJlcHJvb2YgbWF0ZXJpYWwsIGFuZCBiZSBpbnN1bGF0ZWQgc28gYXMgbm90IHRvICBj b25kdWN0ICBlbGVjdHJpY2l0eSAgdG8KYW55ICBvdGhlciAgcGFydCAgb2YgIHRoZSAgYnVp bGRpbmcgIGFuZCAgYmUgc28gc2VwYXJhdGVkIGZyb20gYW55IGFkamFjZW50CmNvbWJ1c3Rp YmxlIG1hdGVyaWFsIGFzIG5vdCB0byBjb21tdW5pY2F0ZSBmaXJlICB0aHJvdWdoICBpbnRl bnNlICBoZWF0ICBpbgpjYXNlIG9mIGNvbWJ1c3Rpb24gd2l0aGluIHRoZSBib290aC4KCiAg UyAgMTkuMDcuICAgSW5zcGVjdGlvbjsgIGNlcnRpZmljYXRlICBmb3IgIHBlcm1hbmVudCAg Ym9vdGhzLiAgIEFmdGVyIHRoZQpjb25zdHJ1Y3Rpb24gb2Ygc3VjaCBib290aCBzaGFsbCBo YXZlIGJlZW4gY29tcGxldGVkLCAgdGhlICBwdWJsaWMgIG9mZmljZXIKY2hhcmdlZCAgaGVy ZWluICB3aXRoIHRoZSBkdXR5IG9mIHBhc3NpbmcgdXBvbiB0aGUgcGxhbnMgYW5kIHNwZWNp ZmljYXRpb25zCnRoZXJlZm9yIHNoYWxsIHdpdGhpbiB0aHJlZSBkYXlzIGFmdGVyIHJlY2Vp cHQgb2Ygbm90aWNlICBpbiAgd3JpdGluZyAgdGhhdApzdWNoICBib290aCAgaGFzICBiZWVu ICBjb21wbGV0ZWQgY2F1c2Ugc3VjaCBib290aCB0byBiZSBpbnNwZWN0ZWQuICBJZiB0aGUK cHJvdmlzaW9ucyBvZiBzZWN0aW9ucyAxOS4wMSBhbmQgMTkuMDMgb2YgdGhpcyBhcnRpY2xl IGhhdmUgIGJlZW4gIGNvbXBsaWVkCndpdGgsICBzdWNoICBwdWJsaWMgIG9mZmljZXIgIHNo YWxsICBpc3N1ZSAgdG8gIHRoZSAgb3duZXIgb3IgbGVzc2VlIG9mIHRoZQpwcmVtaXNlcyB3 aGVyZWluIHN1Y2ggYm9vdGggaXMgc2l0dWF0ZWQgIGEgIGNlcnRpZmljYXRlICBzdGF0aW5n ICB0aGF0ICB0aGUKcHJvdmlzaW9ucyAgb2YgIHNlY3Rpb25zIDE5LjAxIGFuZCAxOS4wMyBv ZiB0aGlzIGFydGljbGUgaGF2ZSBiZWVuIGNvbXBsaWVkCndpdGguCgogIFMgIDE5LjA5LiAg IFBvcnRhYmxlICBib290aCAgZm9yICB0ZW1wb3JhcnkgIGV4aGliaXRpb25zLiAgICBXaGVy ZSBtb3Rpb24KcGljdHVyZXMgYXJlIGV4aGliaXRlZCBkYWlseSBmb3Igbm90IG1vcmUgdGhh biBvbmUgbW9udGgsIG9yIG5vdCBtb3JlIG9mdGVuCnRoYW4gIHRocmVlICB0aW1lcyBhIHdl ZWssIGluIGVkdWNhdGlvbmFsIG9yIHJlbGlnaW91cyBpbnN0aXR1dGlvbnMgb3IgYm9uYQpm aWRlIHNvY2lhbCwgc2NpZW50aWZpYywgcG9saXRpY2FsIG9yIGF0aGxldGljIGNsdWJzLCBh IHBvcnRhYmxlIGJvb3RoICBtYXkKYmUgIHN1YnN0aXR1dGVkIGZvciB0aGUgYm9vdGggcmVx dWlyZWQgaW4gc2VjdGlvbnMgMTkuMDEgYW5kIDE5LjAzICBvZiB0aGlzCmFydGljbGUuICBT dWNoIGJvb3RoIHNoYWxsIGhhdmUgYSBoZWlnaHQgb2Ygbm90IGxlc3MgdGhhbiBzaXggZmVl dCAgYW5kICBhbgphcmVhICBvZiAgbm90ICBsZXNzICB0aGFuICB0d2VudHkgIHNxdWFyZSAg ZmVldCBhbmQgc2hhbGwgYmUgY29uc3RydWN0ZWQgb2YKYXNiZXN0b3MgYm9hcmQsIHNoZWV0 IHN0ZWVsIG9mIG5vIGxlc3MgIGdhdWdlICB0aGFuICB0d2VudHktZm91cjsgIG9yICBzb21l Cm90aGVyICBhcHByb3ZlZCAgZmlyZXByb29mICBtYXRlcmlhbC4gIFN1Y2ggcG9ydGFibGUg Ym9vdGggc2hhbGwgY29uZm9ybSB0bwp0aGUgc3BlY2lmaWNhdGlvbnMgb2Ygc2VjdGlvbiAx OS4wMyAgb2YgIHRoaXMgIGFydGljbGUgIHdpdGggIHJlZmVyZW5jZSAgdG8Kd2luZG93cyAg YW5kIGRvb3IsIGJ1dCBub3Qgd2l0aCByZWZlcmVuY2UgdG8gdmVudCBmbHVlcy4gIFRoZSBm bG9vciBvZiBzdWNoCmJvb3RoIHNoYWxsIGJlIGVsZXZhdGVkIGFib3ZlIHRoZSBwZXJtYW5l bnQgc3VwcG9ydCBvbiB3aGljaCBpdCAgaXMgIHBsYWNlZApieSAgYSAgc3BhY2UgIG9mIGF0 IGxlYXN0IG9uZS1oYWxmIGluY2gsIHN1ZmZpY2llbnQgdG8gYWxsb3cgdGhlIHBhc3NhZ2Ug b2YKYWlyIGJldHdlZW4gdGhlIGZsb29yIG9mIHRoZSBib290aCBhbmQgdGhlICBwbGF0Zm9y bSAgb24gIHdoaWNoICB0aGUgIGJvb3RoCnJlc3RzLCAgYW5kICB0aGUgIGJvb3RoICBzaGFs bCAgYmUgIGluc3VsYXRlZCAgc28gIHRoYXQgaXQgd2lsbCBub3QgY29uZHVjdAplbGVjdHJp Y2l0eSB0byBhbnkgb3RoZXIgcG9ydGlvbiBvZiB0aGUgYnVpbGRpbmcuCgogIFMgICAxOS4x MS4gICAgRXhlbXB0aW9uICBhbmQgIHJlcXVpcmVtZW50cyAgZm9yICBtaW5pYXR1cmUgIGNp bmVtYXRvZ3JhcGgKbWFjaGluZXMuICBUaGUgYWJvdmUgIHNlY3Rpb25zLCAgMTkuMDEsICAx OS4wMywgIDE5LjA1LCAgMTkuMDcgIGFuZCAgMTkuMDksCnJlZmVycmluZyB0byBwZXJtYW5l bnQgYW5kIHBvcnRhYmxlIGJvb3Rocywgc2hhbGwgbm90IGFwcGx5IHRvOgogIDEuICAgQW55 ICBtaW5pYXR1cmUgIG1vdGlvbiBwaWN0dXJlIG1hY2hpbmUgaW4gd2hpY2ggdGhlIG1heGlt dW0gZWxlY3RyaWMKY3VycmVudCB1c2VkIGZvciB0aGUgbGlnaHQgc2hhbGwgYmUgdGhyZWUg aHVuZHJlZCBhbmQgIGZpZnR5ICB3YXR0cy4gICBTdWNoCm1pbmlhdHVyZSAgbWFjaGluZSAg c2hhbGwgIGJlICBvcGVyYXRlZCAgaW4gIGFuICBhcHByb3ZlZCAgYm94IG9mIGZpcmVwcm9v ZgptYXRlcmlhbCBjb25zdHJ1Y3RlZCB3aXRoIGEgZnVzaWJsZSBsaW5rIG9yIG90aGVyIGFw cHJvdmVkIHJlbGVhc2luZyBkZXZpY2UKdG8gIGNsb3NlICBpbnN0YW50YW5lb3VzbHkgIGFu ZCBjb21wbGV0ZWx5IGluIGNhc2Ugb2YgY29tYnVzdGlvbiB3aXRoaW4gdGhlCmJveC4gIFRo ZSBsaWdodCBpbiBzYWlkIG1pbmlhdHVyZSBtYWNoaW5lIHNoYWxsIGJlIGNvbXBsZXRlbHkg aW5jbG9zZWQgaW4gYQptZXRhbCBsYW50ZXJuIGJveCBjb3ZlcmVkIHdpdGggYW4gdW5yZW1v dmFibGUgcm9vZjsKICAyLiAgIFRoZSAgdXNlICBvciAgb3BlcmF0aW9uICBvZiAgYW55ICBz by1jYWxsZWQgbWluaWF0dXJlIG1vdGlvbiBwaWN0dXJlCmFwcGFyYXR1cyB3aGljaCB1c2Vz ICBvbmx5ICBhbiAgZW5jbG9zZWQgIGluY2FuZGVzY2VudCAgZWxlY3RyaWMgIGxhbXAgIGFu ZAphcHByb3ZlZCAgYWNldGF0ZSAgb2YgIGNlbGx1bG9zZSAgb3IgIHNsb3cgIGJ1cm5pbmcg IGZpbG1zLCAgYW5kIGlzIG9mIHN1Y2gKY29uc3RydWN0aW9uIHRoYXQgZmlsbXMgb3JkaW5h cmlseSB1c2VkICBvbiAgZnVsbC1zaXplICBjb21tZXJjaWFsICBwaWN0dXJlCmFwcGFyYXR1 cyBjYW5ub3QgYmUgdXNlZCB0aGVyZXdpdGguCgogIFMgIDE5LjEzLiAgIEluc3BlY3Rpb247 ICBjZXJ0aWZpY2F0ZSAgZm9yICBwb3J0YWJsZSAgYm9vdGhzIGFuZCBtaW5pYXR1cmUKY2lu ZW1hdG9ncmFwaCBtYWNoaW5lcy4gIEJlZm9yZSBtb3ZpbmcgcGljdHVyZXMgc2hhbGwgYmUg ZXhoaWJpdGVkICB3aXRoICBhCnBvcnRhYmxlIGJvb3RoLCB1bmRlciBzZWN0aW9uIDE5LjA5 IG9mIHRoaXMgYXJ0aWNsZSwgYW5kIGJlZm9yZSBhIG1pbmlhdHVyZQptYWNoaW5lIHdpdGhv dXQgYSBib290aCBzaGFsbCBiZSB1c2VkIGFzIHByZXNjcmliZWQgIGluICBzZWN0aW9uICAx OS4xMSAgb2YKdGhpcyAgYXJ0aWNsZSwgIHRoZXJlICBzaGFsbCBiZSBvYnRhaW5lZCBmcm9t IHRoZSBhcHByb3ByaWF0ZSBhdXRob3JpdHksIGFzCmRlZmluZWQgaW4gc2VjdGlvbiAxOS4w MyBvZiB0aGlzIGFydGljbGUsIGEgY2VydGlmaWNhdGUgb2YgYXBwcm92YWwuCgogIFMgIDE5 LjE1LiAgIFBlbmFsdHkgIGZvciB2aW9sYXRpbmcgdGhpcyBhcnRpY2xlLiAgVGhlIHZpb2xh dGlvbiBvZiBhbnkgb2YKdGhlIHByb3Zpc2lvbnMgb2YgIHRoaXMgIGFydGljbGUgIHNoYWxs ICBjb25zdGl0dXRlICBhICBtaXNkZW1lYW5vci4gICBUaGlzCmFydGljbGUgIHNoYWxsICBu b3QgYXBwbHkgdG8gY2l0aWVzIHdoaWNoIGhhdmUgbG9jYWwgbGF3cyBvciBvcmRpbmFuY2Vz IG5vdwppbiBmb3JjZSB3aGljaCBwcm92aWRlIGZvciBmaXJlcHJvb2YgYm9vdGhzIG9mIGFu eSBraW5kIGZvciBtb3ZpbmcgIHBpY3R1cmUKbWFjaGluZXMgIG9yICBhcHBhcmF0dXMsICBu b3IgIHRvICBhIHBsYWNlIG9mIHB1YmxpYyBhc3NlbWJseSBhcyBkZWZpbmVkIGluCnN1YmRp dmlzaW9uIHR3ZWx2ZSBvZiBzZWN0aW9uIHR3byBvZiB0aGUgIGxhYm9yICBsYXcgIGFuZCAg c3ViamVjdCAgdG8gIHRoZQpyZXF1aXJlbWVudHMgb2YgdGhlIGxhYm9yIGxhdyBhbmQgdGhl IHJ1bGVzIGFkb3B0ZWQgdGhlcmV1bmRlci4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTmV3IFlv cmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVElUTEUgRQogICAgICAgICAgICAg ICAgICBORVcgWU9SSyBTVEFURSBDVUxUVVJBTCBSRVNPVVJDRVMgQUNUCgoKCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk5ldyBZb3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1 bHR1cmFsIEFmZmFpcnMKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlRJQ0xF IDIwCiAgICAgICAgICAgICAgICAgIE5FVyBZT1JLIFNUQVRFIENVTFRVUkFMIFJFU09VUkNF UyBBQ1QKU2VjdGlvbiAyMC4wMS4gU2hvcnQgdGl0bGUuCiAgICAgICAgMjAuMDMuIEdlbmVy YWwgZGVmaW5pdGlvbnMuCiAgICAgICAgMjAuMDUuIExlZ2lzbGF0aXZlIGZpbmRpbmdzIGFu ZCBkZXRlcm1pbmF0aW9ucywgYW5kIHN0YXRlbWVudCBvZgogICAgICAgICAgICAgICAgIHB1 cnBvc2VzLgogICAgICAgIDIwLjA3LiBDcmVhdGlvbiBhbmQgcHVycG9zZXMgb2YgYSB0cnVz dC4KICAgICAgICAyMC4wOS4gQWRtaW5pc3RyYXRpb24gb2YgYSB0cnVzdC4KICAgICAgICAy MC4xMS4gR2VuZXJhbCBwb3dlcnMgb2YgYSB0cnVzdC4KICAgICAgICAyMC4xMy4gU3BlY2lh bCBwb3dlcnMgb2YgYSB0cnVzdC4KICAgICAgICAyMC4xNS4gUmVzb3VyY2VzIG9mIGEgdHJ1 c3QuCiAgICAgICAgMjAuMTcuIEJvbmRzIGFuZCBub3RlcyBvZiBhIHRydXN0LgogICAgICAg IDIwLjE5LiBTZWN1cml0eSBmb3IgYm9uZHMgb3Igbm90ZXMuCiAgICAgICAgMjAuMjEuIFJl c2VydmUgZnVuZC4KICAgICAgICAyMC4yMy4gU3RhdGVgcyByaWdodCB0byByZXF1aXJlIGEg cmVkZW1wdGlvbiBvZiBib25kcy4KICAgICAgICAyMC4yNS4gUmVtZWRpZXMgb2YgYm9uZGhv bGRlcnMgYW5kIG5vdGVob2xkZXJzLgogICAgICAgIDIwLjI3LiBTdGF0ZSBhbmQgbXVuaWNp cGFsaXRpZXMgbm90IGxpYWJsZSBvbiBib25kcyBhbmQgbm90ZXMuCiAgICAgICAgMjAuMjku IEFncmVlbWVudCBvZiB0aGUgc3RhdGUuCiAgICAgICAgMjAuMzEuIEJvbmRzIGFuZCBub3Rl cyBhcyBsZWdhbCBpbnZlc3RtZW50cy4KICAgICAgICAyMC4zMy4gRXhlbXB0aW9uIGZyb20g dGF4YXRpb24uCiAgICAgICAgMjAuMzUuIEFjdGlvbnMgYnkgYW5kIGFnYWluc3QgYSB0cnVz dC4KICAgICAgICAyMC4zNy4gQ29vcGVyYXRpb24gd2l0aCB0aGUgc3RhdGUsIGNvdW50aWVz IGFuZCBtdW5pY2lwYWxpdGllcy4KICAgICAgICAyMC4zOS4gQW5udWFsIGFuZCBvdGhlciBy ZXBvcnRzLgogICAgICAgIDIwLjQxLiBDb25zdHJ1Y3Rpb24uCiAgICAgICAgMjAuNDMuIElu Y29uc2lzdGVudCBwcm92aXNpb25zIG9mIG90aGVyIGxhd3Mgc3VwZXJzZWRlZC4KICAgICAg ICAyMC40NS4gU2VwYXJhYmlsaXR5LgogICAgICAgIDIwLjQ3LiBBcHBsaWNhdGlvbiBvZiBs YXcuCgogIFMgIDIwLjAxLiBTaG9ydCB0aXRsZS4gVGhpcyBhY3Qgc2hhbGwgYmUga25vd24g YW5kIG1heSBiZSBjaXRlZCBhcyB0aGUKIk5ldyBZb3JrIFN0YXRlIEN1bHR1cmFsIFJlc291 cmNlcyBBY3QiLgoKICBTICAyMC4wMy4gIEdlbmVyYWwgZGVmaW5pdGlvbnMuIEFzIHVzZWQg b3IgcmVmZXJyZWQgdG8gaW4gdGhpcyBhcnRpY2xlCmFuZCBpbiBhbnkgc3BlY2lhbCBsYXcg Y3JlYXRpbmcgYSB0cnVzdCBmb3IgY3VsdHVyYWwgIHJlc291cmNlcywgIGV4Y2VwdAphcyAg b3RoZXJ3aXNlICBwcm92aWRlZCAgaW4gc3VjaCBsYXcsIHRoZSBmb2xsb3dpbmcgdGVybXMg c2hhbGwgaGF2ZSB0aGUKZm9sbG93aW5nIG1lYW5pbmdzOgogIDEuICJCb2FyZCIgIG9yICJi b2FyZCBvZiB0cnVzdGVlcyIgc2hhbGwgbWVhbiB0aGUgYm9hcmQgb2YgdHJ1c3RlZXMgb2YK YSB0cnVzdCBmb3IgY3VsdHVyYWwgcmVzb3VyY2VzLgogIDIuICJCb25kcyAgYW5kIG5vdGVz IiBzaGFsbCBtZWFuIHRoZSBib25kcyBhbmQgbm90ZXMgaXNzdWVkIGJ5IGEgdHJ1c3QKZm9y IGN1bHR1cmFsIHJlc291cmNlcy4KICAzLiAiQ29tYmluZWQtdXNlIGZhY2lsaXR5IiBzaGFs bCBtZWFuIGFueSBzdHJ1Y3R1cmUgb3IgaW1wcm92ZW1lbnQgYW5kCmFueSBhZGpvaW5pbmcg c3RydWN0dXJlcyBvciBpbXByb3ZlbWVudHMgdGhhdCBhcmUgb3IgYXJlIHRvIGJlICBkZXNp Z25lZAp0byAgIGJlICBhbmQgIHVwb24gIGNvbXBsZXRpb24gIGFyZSAgdXNlZCAgb3IgIG9j Y3VwaWVkICBpbiAgcGFydCAgYnkgIGEKcGFydGljaXBhdGluZyBjdWx0dXJhbCBpbnN0aXR1 dGlvbiBhbmQgaW4gIHBhcnQgIGJ5ICBvdGhlciAgcGVyc29ucyAgd2hvCnNoYWxsICBwYXkg IHRheCAgZXF1aXZhbGVuY3kgIHBheW1lbnRzICB0byB0aGUgdHJ1c3QgcHVyc3VhbnQgdG8g c2VjdGlvbgoyMC4xMyBvZiB0aGlzICBhcnRpY2xlLCAgYW55ICByZWFsICBwcm9wZXJ0eSAg dXNlZCAgb3IgIHRvICBiZSAgdXNlZCAgaW4KY29ubmVjdGlvbiAgIHRoZXJld2l0aCwgIGFu ZCAgYW55ICBhbmQgIGFsbCAgcmVjcmVhdGlvbmFsLCAgZWR1Y2F0aW9uYWwsCmN1bHR1cmFs LCAgb2ZmaWNlLCAgbGl2aW5nLCAgcmVoZWFyc2FsLCAgcGFya2luZywgIHJlc3RhdXJhbnQs ICAgcmV0YWlsLApzdG9yYWdlICBhbmQgIG90aGVyIGZhY2lsaXRpZXMgbmVjZXNzYXJ5IG9y IGRlc2lyYWJsZSBpbiBjb25uZWN0aW9uIHdpdGgKdGhlIGFjdGl2aXRpZXMgb2YgdGhlIHBh cnRpY2lwYXRpbmcgY3VsdHVyYWwgaW5zdGl0dXRpb24gb3IgIHN1Y2ggIG90aGVyCnBlcnNv bi4KICA0LiAiQ29udmV5IiAgc2hhbGwgIG1lYW4gIHRvIGNvbnZleSwgZ3JhbnQsIHNlbGws IGxpY2Vuc2UsIGxlYXNlLCBzdWItCmxlYXNlLCBhc3NpZ24sIHRyYW5zZmVyLCBvciBvdGhl cndpc2UgZGlzcG9zZSBvZiByZWFsIHByb3BlcnR5LCBhbmQgIHRoZQp0ZXJtICAiY29udmV5 YW5jZSIgIHNoYWxsICBtZWFuICBhbmQgaW5jbHVkZSB0aGUgZXF1aXZhbGVudCBub3VuIGZv cm0gb2YKZWFjaCBzdWNoIHZlcmIgaW5jbHVkZWQgd2l0aGluIHRoZSBtZWFuaW5nIG9mIHRo ZSB2ZXJiICJ0byBjb252ZXkuIiAgVGhlCnRlcm1zICAidG8gIGNvbnZleSIgIG9yICJjb252 ZXlhbmNlIiBzaGFsbCBub3QgaW5jbHVkZSB0aGUgY3JlYXRpb24gb2YgYQptb3J0Z2FnZSBv ciBvdGhlciBsaWVuIG9uIHJlYWwgcHJvcGVydHkgdW5sZXNzIHN1Y2ggbW9ydGdhZ2Ugb3Ig bGllbiBoYXMKYmVlbiAgZm9yZWNsb3NlZCBvciB0aGUgbW9ydGdhZ2VlIG9yIGxpZW5ob2xk ZXIgb2Ygc3VjaCBtb3J0Z2FnZSBvciBsaWVuCmhhcyB0YWtlbiBwb3NzZXNzaW9uIG9mIHN1 Y2ggcmVhbCBwcm9wZXJ0eS4KICA1LiAiQ3VsdHVyYWwgICBmYWNpbGl0eSIgICBzaGFsbCAg IG1lYW4gIGFueSAgc3RydWN0dXJlLCAgaW1wcm92ZW1lbnQsCmZ1cm5pc2hpbmcsIGVxdWlw bWVudCBvciBvdGhlciByZWFsIG9yIHBlcnNvbmFsIHByb3BlcnR5IHRoYXQgaXMgIG9yICBp cwp0byAgYmUgIHVzZWQsICBvd25lZCwgb3Igb2NjdXBpZWQgaW4gd2hvbGUgb3IgaW4gcGFy dCBieSBhIHBhcnRpY2lwYXRpbmcKY3VsdHVyYWwgaW5zdGl0dXRpb24sIGluY2x1ZGluZyBi dXQgbm90IGxpbWl0ZWQgdG8gIG11c2V1bXMsICBwZXJmb3JtaW5nCmFydHMgICBjZW50ZXJz LCAgIHB1YmxpYyAgIHRlbGV2aXNpb24gICBhbmQgIHJhZGlvICBzdGF0aW9ucywgIHRoZWF0 ZXJzLAphdWRpdG9yaXVtcywgbGlicmFyaWVzLCBleGhpYml0aW9uLCAgcGVyZm9ybWFuY2Ug IGFuZCAgcmVoZWFyc2FsICBzcGFjZSwKZ2FsbGVyaWVzLCBhcnRpc3RzYCBhbmQgZGFuY2Vy c2Agc3R1ZGlvcywgcmVjb3JkaW5nIHN0dWRpb3MsIGFuZCBhbnkgYW5kCmFsbCByZWNyZWF0 aW9uYWwsICBlZHVjYXRpb25hbCwgIGN1bHR1cmFsLCAgb2ZmaWNlLCAgbGl2aW5nLCAgcmVo ZWFyc2FsLApwYXJraW5nLCAgcmVzdGF1cmFudCwgIHJldGFpbCwgc3RvcmFnZSBhbmQgb3Ro ZXIgZmFjaWxpdGllcyBuZWNlc3Nhcnkgb3IKZGVzaXJhYmxlICBpbiAgY29ubmVjdGlvbiAg d2l0aCAgdGhlICBhY3Rpdml0aWVzICBvZiAgdGhlICBwYXJ0aWNpcGF0aW5nCmN1bHR1cmFs IGluc3RpdHV0aW9uLgogIDYuICJEZXZlbG9wIiAgc2hhbGwgIG1lYW4gIHRvIGRlc2lnbiwg Y29uc3RydWN0LCBhY3F1aXJlLCByZWNvbnN0cnVjdCwKcmVoYWJpbGl0YXRlLCAgZXhwYW5k LCAgbW9kZXJuaXplLCAgcmVwYWlyICBvciAgb3RoZXJ3aXNlICBpbXByb3ZlICByZWFsCnBy b3BlcnR5ICBmb3IgIHVzZSAgb3IgY29udmV5YW5jZSwgYW5kIHRoZSB0ZXJtICJkZXZlbG9w bWVudCIgc2hhbGwgbWVhbgphbmQgaW5jbHVkZSB0aGUgZXF1aXZhbGVudCBub3VuIGZvcm0g b2YgZWFjaCBzdWNoIHZlcmIgIGluY2x1ZGVkICB3aXRoaW4KdGhlIG1lYW5pbmcgb2YgdGhl IHZlcmIgInRvIGRldmVsb3AuIgogIDcuICJEZXZlbG9wZXIiICBzaGFsbCAgbWVhbiAgYW55 ICBwZXJzb24gIGFwcHJvdmVkIGJ5IGEgdHJ1c3QgYXMgYmVpbmcKcXVhbGlmaWVkIGFuZCBl bGlnaWJsZSB0byBlbnRlciBpbnRvIGFuIGFncmVlbWVudCB3aXRoIGEgdHJ1c3QgIGZvciAg dGhlCmRldmVsb3BtZW50IG9mIGEgY29tYmluZWQtdXNlIGZhY2lsaXR5IG9yIGFueSBwYXJ0 IG9yIHBvcnRpb24gdGhlcmVvZiBvcgphIGN1bHR1cmFsIGZhY2lsaXR5IG9yIGFueSBwYXJ0 IG9yIHBvcnRpb24gdGhlcmVvZi4KICA4LiAiRXhlbXB0ICByZWFsICBwcm9wZXJ0eSIgIHNo YWxsIG1lYW4gcmVhbCBwcm9wZXJ0eSBleGVtcHQgZnJvbSByZWFsCnByb3BlcnR5IHRheGF0 aW9uIHB1cnN1YW50IHRvIHNlY3Rpb24gIGZvdXIgIGh1bmRyZWQgIHR3ZW50eS1hICBvciAg Zm91cgpodW5kcmVkIHR3ZW50eS1iIG9mIHRoZSByZWFsIHByb3BlcnR5IHRheCBsYXcuCiAg OS4gIkdvdmVybmluZyAgYm9keSIgc2hhbGwgbWVhbiB0aGUgYm9hcmQgb3IgYm9keSBpbiB3 aGljaCB0aGUgZ2VuZXJhbApsZWdpc2xhdGl2ZSBwb3dlcnMgb2YgYSBtdW5pY2lwYWxpdHkg b3IgY291bnR5IGFyZSB2ZXN0ZWQuCiAgMTAuICJHb3Zlcm5vciIgc2hhbGwgbWVhbiB0aGUg Z292ZXJub3Igb2YgdGhlIHN0YXRlLgogIDExLiAiSW5zdGl0dXRpb25hbCAgcG9ydGlvbiIg IHNoYWxsICBtZWFuICB0aGUgIHBhcnQgIG9yICBwb3J0aW9uIG9mIGEKY29tYmluZWQtdXNl IGZhY2lsaXR5IHRoYXQgcHJpb3IgdG8gY29tcGxldGlvbiBpcyAgZGVzaWduZWQgIHRvICBi ZSAgYW5kCnVwb24gIGNvbXBsZXRpb24gIGlzICB1c2VkICBvciAgb2NjdXBpZWQgIGJ5ICBh ICBwYXJ0aWNpcGF0aW5nICBjdWx0dXJhbAppbnN0aXR1dGlvbi4gIFRoZSBpbnN0aXR1dGlv bmFsIHBvcnRpb24gc2hhbGwgaW5jbHVkZSB0aGUgcmVhbCAgcHJvcGVydHkKdXNlZCAgb3Ig IHRvICBiZSB1c2VkIGluIGNvbm5lY3Rpb24gdGhlcmV3aXRoOyBhbnkgYW5kIGFsbCByZWNy ZWF0aW9uYWwsCmVkdWNhdGlvbmFsLCBjdWx0dXJhbCwgb2ZmaWNlLCBsaXZpbmcsIHJlaGVh cnNhbCwgIHBhcmtpbmcsICByZXN0YXVyYW50LApyZXRhaWwsICAgc3RvcmFnZSAgIGFuZCAg b3RoZXIgIGZhY2lsaXRpZXMgIG5lY2Vzc2FyeSAgb3IgIGRlc2lyYWJsZSAgaW4KY29ubmVj dGlvbiAgd2l0aCAgdGhlICAgYWN0aXZpdGllcyAgIG9mICAgdGhlICAgcGFydGljaXBhdGlu ZyAgIGN1bHR1cmFsCmluc3RpdHV0aW9uOyAgYW5kIGFueSBpbnRlcmVzdCBpbiBhIGNvbWJp bmVkLXVzZSBmYWNpbGl0eSB3aGljaCBwcmlvciB0bwpjb21wbGV0aW9uIGlzIGRlc2lnbmVk IHRvICBiZSAgYW5kICB1cG9uICBjb21wbGV0aW9uICBpcyAgb3duZWQgIGJ5LCAgb3IKY29u dmV5ZWQgIHRvLCAgYSBwYXJ0aWNpcGF0aW5nIGN1bHR1cmFsIGluc3RpdHV0aW9uIGpvaW50 bHkgb3IgaW4gY29tbW9uCndpdGggYSB0cnVzdCwgYSBkZXZlbG9wZXIsIG9yIGFuIG93bmVy LCB0byB0aGUgZXh0ZW50IG9mIHRoZSBpbnRlcmVzdCBvZgpzdWNoIHBhcnRpY2lwYXRpbmcg Y3VsdHVyYWwgaW5zdGl0dXRpb24uCiAgMTIuICJNYXlvciIgIHNoYWxsICBtZWFuICB0aGUg IG1heW9yICBvciBoaWdoZXN0IGVsZWN0ZWQgb2ZmaWNpYWwgb2YgYQptdW5pY2lwYWxpdHku CiAgMTMuICJNdW5pY2lwYWxpdHkiICAgc2hhbGwgIG1lYW4gIGFueSAgY2l0eSAgaW4gIHRo ZSAgc3RhdGUgIGhhdmluZyAgYQpwb3B1bGF0aW9uIG9mIG9uZSBtaWxsaW9uIG9yIG1vcmUg cGVvcGxlLgogIDE0LiAiQ291bnR5IiAgc2hhbGwgIG1lYW4gIGFueSAgY291bnR5ICBpbiAg dGhlICBzdGF0ZSBleGNlcHQgYSBjb3VudHkKbG9jYXRlZCB3aG9sbHkgd2l0aGluIGEgY2l0 eS4KICAxNS4gIk5vbi1pbnN0aXR1dGlvbmFsICBwb3J0aW9uIiAgc2hhbGwgIG1lYW4gdGhl IHBhcnQgb3IgcG9ydGlvbiBvZiBhCmNvbWJpbmVkLXVzZSBmYWNpbGl0eSBvdGhlciB0aGFu ICB0aGUgIGluc3RpdHV0aW9uYWwgIHBvcnRpb24uICAgSWYgIHRoZQpub24taW5zdGl0dXRp b25hbCAgIHBvcnRpb24sICAgb3IgICBhbnkgIHBhcnQgIHRoZXJlb2YsICBjb25zaXN0cyAg b2YgIGEKY29uZG9taW5pdW0sIHRoZSBjb25zZW50IG9mIHRoZSB0cnVzdCB3aGljaCBoYXMg IGRldmVsb3BlZCAgb3IgIGFwcHJvdmVkCnRoZSAgZGV2ZWxvcGVyICBvZiAgc3VjaCAgY29u ZG9taW5pdW0gIHNoYWxsICBiZSAgcmVxdWlyZWQgIHByaW9yIHRvIGFueQphbWVuZG1lbnQg b2YgdGhlIGRlY2xhcmF0aW9uIG9mIHN1Y2ggY29uZG9taW5pdW0gcHVyc3VhbnQgdG8gc3Vi ZGl2aXNpb24KbmluZSBvZiBzZWN0aW9uIHRocmVlIGh1bmRyZWQgdGhpcnR5LW5pbmUtbiBv ZiB0aGUgcmVhbCBwcm9wZXJ0eSBsYXcgYW5kCnByaW9yIHRvIGFueSBhbWVuZG1lbnQgb2Yg dGhlIGJ5LWxhd3Mgb2Ygc3VjaCAgY29uZG9taW5pdW0gIHB1cnN1YW50ICB0bwpwYXJhZ3Jh cGggIChqKSBvZiBzdWJkaXZpc2lvbiBvbmUgb2Ygc2VjdGlvbiB0aHJlZSBodW5kcmVkIHRo aXJ0eS1uaW5lLXYKb2YgdGhlIHJlYWwgcHJvcGVydHkgbGF3LCBhbmQgd2hldGhlciBvciBu b3Qgc3VjaCB0cnVzdCBpcyBhIHVuaXQgIG93bmVyCm9mIHN1Y2ggY29uZG9taW5pdW0sIGl0 IG1heSBleGVyY2lzZSB0aGUgcmlnaHRzIG9mIHRoZSBib2FyZCBvZiBtYW5hZ2VycwphbmQg YW4gYWdncmlldmVkIHVuaXQgb3duZXIgdW5kZXIgc2VjdGlvbiB0aHJlZSBodW5kcmVkIHRo aXJ0eS1uaW5lLWogb2YKdGhlIHJlYWwgcHJvcGVydHkgbGF3IGluIHRoZSBjYXNlIG9mIGEg ZmFpbHVyZSBvZiBhbnkgdW5pdCBvd25lciBvZiBzdWNoCmNvbmRvbWluaXVtIHRvIGNvbXBs eSB3aXRoIHRoZSBieS1sYXdzIG9mIHN1Y2ggY29uZG9taW5pdW0gYW5kIHdpdGggIHRoZQpy dWxlcywgcmVndWxhdGlvbnMsIGFuZCBkZWNpc2lvbnMgYWRvcHRlZCBwdXJzdWFudCB0aGVy ZXRvLgogIDE2LiAiT3duZXIiICBzaGFsbCAgbWVhbiAgYW55ICBwZXJzb24sIG90aGVyIHRo YW4gYSB0cnVzdCBmb3IgY3VsdHVyYWwKcmVzb3VyY2VzLCB0byB3aG9tIGFueSByZWFsIHBy b3BlcnR5LCBjb25zaXN0aW5nIG9mIGFsbCBvciBhbnkgIHBhcnQgIG9mCnRoZSAgbm9uLWlu c3RpdHV0aW9uYWwgIHBvcnRpb24gIG9mIGEgY29tYmluZWQtdXNlIGZhY2lsaXR5LCBvciBp biBvciBvbgp3aGljaCBhbGwgb3IgYW55IHBhcnQgb2Ygc3VjaCBwb3J0aW9uIHByaW9yIHRv IGNvbXBsZXRpb24gaXMgZGVzaWduZWQgdG8KYmUgYW5kIHVwb24gY29tcGxldGlvbiBpcyBk ZXZlbG9wZWQsIGlzIGNvbnZleWVkLgogIDE3LiAiUGFydGljaXBhdGluZyBjdWx0dXJhbCBp bnN0aXR1dGlvbiIgc2hhbGwgbWVhbiBhIHBlcnNvbiBkZXNjcmliZWQKaW4gdGhlIHNwZWNp YWwgbGF3IGNyZWF0aW5nIGEgdHJ1c3QuCiAgMTguICJOb3QtZm9yLXByb2ZpdCBjdWx0dXJh bCBvcmdhbml6YXRpb24iIHNoYWxsIG1lYW4gYSBub3QtZm9yLXByb2ZpdApjb3Jwb3JhdGlv biBkZXNjcmliZWQgaW4gdGhlIHNwZWNpYWwgbGF3IGNyZWF0aW5nIGEgdHJ1c3QgaW4gYW55 ICBjb3VudHkKYW5kICB3aGljaCAgaXMgYWJsZSB0byBkZW1vbnN0cmF0ZSBhbnkgb25lIG9m IHRoZSBmb2xsb3dpbmcgdGhyZWUgcHJvb2ZzCm9mIG5vdC1mb3ItcHJvZml0IHN0YXR1czog YWNjZXB0YW5jZSBvZiBub24tcHJvZml0IHN0YXR1cyBieSB0aGUgIFUuICBTLgp0cmVhc3Vy eSAgZGVwYXJ0bWVudCAgdW5kZXIgIHNlY3Rpb24gIDUwMSAgKGMpICgzKSBvZiB0aGUgVS4g Uy4gaW50ZXJuYWwKcmV2ZW51ZSBjb2RlOyBmaWxpbmcgd2l0aCB0aGUgYm9hcmQgb2YgcmVn ZW50cyBvZiB0aGUgc3RhdGUgb2YgTmV3ICBZb3JrCnB1cnN1YW50ICB0byBzZWN0aW9uIHR3 byBodW5kcmVkIHNpeHRlZW4gb2YgdGhlIGVkdWNhdGlvbiBsYXc7IG9yIGZpbGluZwp3aXRo IHRoZSAgc2VjcmV0YXJ5ICBvZiAgc3RhdGUgIHVuZGVyICB0aGUgIHJlZ2lzdHJhdGlvbiAg b2YgIGNoYXJpdGFibGUKb3JnYW5pemF0aW9ucywgIHB1cnN1YW50ICB0byAgc2VjdGlvbiAg b25lICBodW5kcmVkICBzZXZlbnR5LXR3byAgb2YgdGhlCmV4ZWN1dGl2ZSAgbGF3OyAgcHJv dmlkZWQgIHRoYXQgIHN1Y2ggIG9yZ2FuaXphdGlvbiAgc2hhbGwgICBoYXZlICAgYmVlbgpp bmNvcnBvcmF0ZWQgIG9yICBzaGFsbCAgaGF2ZSAgbWFkZSB0aGUgYXBwcm9wcmlhdGUgZmls aW5nIGF0IGxlYXN0IGZpdmUKeWVhcnMgcHJpb3IgdG8gdGhlIGRhdGUgb24gd2hpY2ggdGhl IHRydXN0ICBhcHByb3ZlcyAgYSAgbG9hbiAgZm9yICBzdWNoCm9yZ2FuaXphdGlvbi4KICAx OS4gIlBlcnNvbiIgIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCwgYSBwYXJ0bmVyc2hpcCwg YW4gYXNzb2NpYXRpb24sCmEgam9pbnQgc3RvY2sgY29tcGFueSwgYW4gdW5pbmNvcnBvcmF0 ZWQgb3JnYW5pemF0aW9uLCBhIHRydXN0IChhcyAgZGlzLQp0aW5ndWlzaGVkICAgZnJvbSAg YSAgdHJ1c3QgIGZvciAgY3VsdHVyYWwgIHJlc291cmNlcyksICBhICBjb3Jwb3JhdGlvbiwK aW5jbHVkaW5nIGFueSBwdWJsaWMgY29ycG9yYXRpb24sIGFueSBjb3Jwb3JhdGlvbiBmb3Jt ZWQgb3RoZXIgdGhhbiAgZm9yCnByb2ZpdCAgYW5kICBhbnkgIGNvcnBvcmF0aW9uICBmb3Jt ZWQgIGZvciBwcm9maXQsIGFsbCBhcyBjbGFzc2lmaWVkIGFuZApkZWZpbmVkIHJlc3BlY3Rp dmVseSBpbiBzZWN0aW9ucyBzaXh0eS1maXZlIGFuZCBzaXh0eS1zaXggb2YgdGhlIGdlbmVy YWwKY29uc3RydWN0aW9uICBsYXcsICBvciAgYSAgZ292ZXJubWVudCBvciBwb2xpdGljYWwg c3ViZGl2aXNpb24gb3IgYWdlbmN5CnRoZXJlb2YuCiAgMjAuICJSZWFsIHByb3BlcnR5IiBz aGFsbCBtZWFuIGFueSBsYW5kLCB3YXRlciwgc3RydWN0dXJlcywgYnVpbGRpbmdzLAppbXBy b3ZlbWVudHMgb3IgIGFueSAgcmlnaHRzICBvciAgaW50ZXJlc3QgIHRoZXJlaW4sICBpbmNs dWRpbmcgIHdpdGhvdXQKbGltaXRhdGlvbiAgYWlyLCBzcGFjZSBvciBkZXZlbG9wbWVudCBy aWdodHMsIGludGVyZXN0cyBpbiBzdWNoIHByb3BlcnR5Cmxlc3MgIHRoYW4gIGZ1bGwgIHRp dGxlLCAgc3VjaCAgYXMgIHBlcm1hbmVudCAgb3IgIHRlbXBvcmFyeSAgZWFzZW1lbnRzLApy aWdodHMtb2Ytd2F5LCAgZnJhbmNoaXNlcywgIHVzZXMsICBsZWFzZWhvbGRzLCAgbGljZW5z ZXMsIGFuZCBhbGwgb3RoZXIKaW5jb3Jwb3JlYWwgaGVyZWRpdGFtZW50cyBpbiBldmVyeSBs ZWdhbCBvciBlcXVpdGFibGUgIGVzdGF0ZSwgIGludGVyZXN0Cm9yICByaWdodCwgIGFuZCAg YW55ICBhbmQgIGFsbCAgb3RoZXIgdGhpbmdzIGFuZCByaWdodHMgdXN1YWxseSBpbmNsdWRl ZAp3aXRoaW4gdGhlIHRlcm0gInJlYWwgcHJvcGVydHkiLgogIDIxLiAiU3BlY2lhbCAgbGF3 IiAgc2hhbGwgIG1lYW4gIGFuICBhY3Qgb2YgdGhlIGxlZ2lzbGF0dXJlIGNyZWF0aW5nIGEK dHJ1c3QgZm9yIGN1bHR1cmFsIHJlc291cmNlcyBwdXJzdWFudCB0byB0aGlzIGFydGljbGUu CiAgMjIuICJTdGF0ZSIgc2hhbGwgbWVhbiB0aGUgc3RhdGUgb2YgTmV3IFlvcmsuCiAgMjMu ICJUYXgtZXF1aXZhbGVuY3kgIHBheW1lbnRzIiBzaGFsbCBtZWFuIHRoZSBwYXltZW50cyBy ZXF1aXJlZCB0byBiZQptYWRlIHB1cnN1YW50IHRvIHN1YmRpdmlzaW9uIHRocmVlIG9mIHNl Y3Rpb24gMjAuMTMgb2YgdGhpcyBhcnRpY2xlLgogIDI0LiAiVHJ1c3QgIGZvciAgY3VsdHVy YWwgIHJlc291cmNlcyIgIG9yICAidHJ1c3QiIHNoYWxsIG1lYW4gYSBwdWJsaWMKYmVuZWZp dCBjb3Jwb3JhdGlvbiBjcmVhdGVkIGJ5IHNwZWNpYWwgbGF3LgogIDI1LiAiVHJ1c3RlZSIg IHNoYWxsIG1lYW4gYSBtZW1iZXIgb2YgdGhlIGJvYXJkIG9mIHRydXN0ZWVzIG9mIGEgdHJ1 c3QKZm9yIGN1bHR1cmFsIHJlc291cmNlcy4KCiAgUyAgMjAuMDUuICBMZWdpc2xhdGl2ZSAg ZmluZGluZ3MgIGFuZCBkZXRlcm1pbmF0aW9ucywgYW5kIHN0YXRlbWVudCBvZgpwdXJwb3Nl cy4gMS4gVGhlIGxlZ2lzbGF0dXJlIGhlcmVieSBmaW5kcywgZGV0ZXJtaW5lcyBhbmQgZGVj bGFyZXM6CiAgKGEpIHRoYXQgY3VsdHVyYWwgaW5zdGl0dXRpb25zIGluIHRoZSBzdGF0ZSBw cm9tb3RlIHB1YmxpYyBpbnRlcmVzdCBpbgphbmQga25vd2xlZGdlIG9mIHRoZSBhcnRzIGFu ZCBvdGhlciBjdWx0dXJhbCBhY3Rpdml0aWVzOyBhdHRyYWN0IGFydGlzdHMKYW5kICBvdGhl cnMgIHdpdGggIGNyZWF0aXZlIHRhbGVudHMgd2hvIGxpdmUgaW4gcHJveGltaXR5IHRvIGFu ZCBwZXJmb3JtCndvcmsgcmVsYXRlZCB0byBzdWNoIGluc3RpdHV0aW9uczsgYW5kIG90aGVy d2lzZSB2aXRhbGx5ICBjb250cmlidXRlICB0bwplZHVjYXRpb25hbCwgIHJlY3JlYXRpb25h bCAgYW5kIGN1bHR1cmFsIGFjdGl2aXRpZXMgYW5kIG9wcG9ydHVuaXRpZXMgb2YKYmVuZWZp dCB0byB0aGUgcGVvcGxlIG9mIHRoZSBzdGF0ZTsgYW5kIHRoYXQgc3VjaCBpbnN0aXR1dGlv bnMgcHJvdmlkZSBhCndlYWx0aCAgb2Ygc3BlY2lhbGl6ZWQgZWR1Y2F0aW9uYWwgYW5kIGN1 bHR1cmFsIGFjdGl2aXRpZXMgZGVzaWduZWQgZm9yLAphbW9uZyAgb3RoZXJzLCAgc3R1ZGVu dHMsICBtaW5vcml0eSAgYW5kICBldGhuaWMgICBwb3B1bGF0aW9ucywgICBzZW5pb3IKY2l0 aXplbnMsICB0aGUgIHVuZW1wbG95ZWQsICBjb25zdW1lcnMgIGFuZCAgY2l0aXplbnMgIGlu dGVyZXN0ZWQgaW4gdGhlCnBlcmZvcm1pbmcgYXJ0czsgYW5kIHRoYXQgaXQgaXMgdGhlIHNl bnNlIG9mIHRoZSAgbGVnaXNsYXR1cmUgIHRoYXQgIHRoZQpjb250cmlidXRpb25zICBvZiBz dWNoIGluc3RpdHV0aW9ucyB0byB0aGUgcGVvcGxlIG9mIE5ldyBZb3JrIHN0YXRlIGhhdmUK YmVlbiBleGNlcHRpb25hbDsKICAoYikgIHRoYXQgc3VjaCBpbnN0aXR1dGlvbnMgYXJlIGVz c2VudGlhbCB0byB0aGUgZXhpc3RlbmNlIG9mIGN1bHR1cmFsCmNlbnRlcnMgaW4gdGhlIHN0 YXRlLCBjb250cmlidXRlIHRvIHRoZSBjb250aW51ZWQgZXhpc3RlbmNlICBhbmQgIGdyb3d0 aAppbiAgdGhlICBzdGF0ZSAgb2YgIGluZHVzdHJpZXMgIHJlbGF0ZWQgIHRvICB0aGUgYXJ0 cyBhbmQgb3RoZXIgY3VsdHVyYWwKYWN0aXZpdGllcywgYXR0cmFjdCByZXNpZGVudHMgb2Yg YW5kIHZpc2l0b3JzIHRvICB0aGUgIHN0YXRlLCAgaW5jbHVkaW5nCnBhdHJvbnMgIG9mIHRo ZSBhcnRzLCBnZW5lcmF0ZSBzdWJzdGFudGlhbCB0YXggYW5kIG90aGVyIHJldmVudWVzIGlu IGFuZApmb3IgdGhlIHN0YXRlLCBhbmQgb3RoZXJ3aXNlIHZpdGFsbHkgY29udHJpYnV0ZSB0 byB0aGUgZWNvbm9teSAgYW5kICB0YXgKYmFzZSBvZiB0aGUgc3RhdGU7CiAgKGMpICB0aGF0 ICByZWNvZ25pemluZyAgdGhlIGltcG9ydGFuY2Ugb2YgYW5kIHB1YmxpYyBwdXJwb3NlIHNl cnZlZCBieQpzdWNoIGluc3RpdHV0aW9ucywgdGhlIHN0YXRlIGhhcyBhcHByb3ByaWF0ZWQg YW5kICBleHBlbmRlZCAgc3Vic3RhbnRpYWwKZnVuZHMgZm9yIGFuZCBoYXMgb3RoZXJ3aXNl IHN1cHBvcnRlZCBhbmQgYXNzaXN0ZWQgc3VjaCBpbnN0aXR1dGlvbnM7CiAgKGQpICB0aGF0 IHRoZXJlIGlzIGEgc2VyaW91cyBzaG9ydGFnZSBvZiByZXF1aXJlZCBzcGFjZSBhbmQgZmFj aWxpdGllcwpmb3IgdGhlIGNvbnRpbnVlZCBleGlzdGVuY2UsIHByb3BlciBvcGVyYXRpb24g YW5kIG5lZWRlZCBncm93dGggb2YgIHN1Y2gKaW5zdGl0dXRpb25zICBhbmQgIHRoYXQgIHRo ZXJlICBpcyBhIHNlcmlvdXMgc2hvcnRhZ2Ugb2YgcmVxdWlyZWQgbW9kZXJuCmVxdWlwbWVu dCwgZnVybmlzaGluZyBhbmQgaW5zdGFsbGF0aW9ucyAgZm9yICB0aGUgIGNvbnRpbnVlZCAg ZXhpc3RlbmNlLApwcm9wZXIgb3BlcmF0aW9uIGFuZCBuZWVkZWQgZ3Jvd3RoIG9mIHN1Y2gg aW5zdGl0dXRpb25zOwogIChlKSB0aGF0IG93aW5nIHRvIGluZmxhdGlvbiwgaW5jcmVhc2Vz IGluIHRoZSBjb3N0IG9mIGVuZXJneSBhbmQgb3RoZXIKZWNvbm9taWMgZm9yY2VzLCBvcGVy YXRpbmcgZXhwZW5zZXMgb2YgIG1hbnkgIHN1Y2ggIGluc3RpdHV0aW9ucyAgZXhjZWVkCnJl dmVudWVzICBmcm9tICBlbmRvd21lbnRzICBhbmQgIG90aGVyICBzb3VyY2VzOyBzdWZmaWNp ZW50IGZ1bmRzIHRvIHBheQpvcGVyYXRpbmcgZXhwZW5zZXMgYW5kIHRoZSBjb3N0cyBvZiBu ZWVkZWQgIGV4cGFuc2lvbiwgIGltcHJvdmVtZW50ICBhbmQKcmVoYWJpbGl0YXRpb24gIG9m IHRoZSBzcGFjZSBhbmQgZmFjaWxpdGllcyBvZiBzdWNoIGluc3RpdHV0aW9ucyBhcmUgbm90 CmF2YWlsYWJsZSBmcm9tIHRoZSBzdGF0ZSwgbXVuaWNpcGFsaXRpZXMgb3IgY291bnRpZXMg IGluICB0aGUgIHN0YXRlICBvcgpvdGhlciBwYXN0IHNvdXJjZXMgb2Ygc3VjaCBmdW5kczsg YW5kIHVubGVzcyBjb3JyZWN0aXZlIGFjdGlvbiBpcyB0YWtlbiwKdGhlICAgbmVlZGVkICAg ZXhwYW5zaW9uLCAgIGltcHJvdmVtZW50LCAgIGVxdWlwcGluZywgICBmdXJuaXNoaW5nICAg YW5kCnJlaGFiaWxpdGF0aW9uIG9mIHRoZSBzcGFjZSBhbmQgZmFjaWxpdGllcyBvZiBzdWNo IGluc3RpdHV0aW9ucyB3aWxsIG5vdApiZSB1bmRlcnRha2VuIGFuZCBzdWNoIGluc3RpdHV0 aW9ucyB3aWxsIGJlICByZXF1aXJlZCAgdG8gIGludmFkZSAgdGhlaXIKZW5kb3dtZW50cyAg YW5kICBvdGhlciBjYXBpdGFsIGFzc2V0cyB0byBwYXkgb3BlcmF0aW5nIGV4cGVuc2VzLCB0 aGVyZWJ5CmVuZGFuZ2VyaW5nIHRoZSBjb250aW51ZWQgZXhpc3RlbmNlIGFuZCBvcGVyYXRp b24gb2Ygc3VjaCBpbnN0aXR1dGlvbnM7CiAgKGYpICB0aGF0ICBhICBwdWJsaWMgIHB1cnBv c2Ugd291bGQgYmUgc2VydmVkIGFuZCB0aGUgaW50ZXJlc3RzIG9mIHRoZQpwZW9wbGUgb2Yg dGhlIHN0YXRlIHdvdWxkIGJlIHByb21vdGVkIGlmIHRoZSBjb2xsZWN0aW9ucywgZW5kb3dt ZW50cyBhbmQKb3RoZXIgIGNhcGl0YWwgIGFzc2V0cyBvZiBzdWNoIGluc3RpdHV0aW9ucyB3 ZXJlIHByZXNlcnZlZCBhbmQgZXhwYW5kZWQ7CmlmIGNvbnRpbnVlZCBvcGVyYXRpb24gaW4g dGhlIHN0YXRlIGFuZCAgbmVlZGVkICBleHBhbnNpb24sICBpbXByb3ZlbWVudAphbmQgcmVo YWJpbGl0YXRpb24gb2YgdGhlIHNwYWNlIGFuZCBmYWNpbGl0aWVzIG9mIHN1Y2ggaW5zdGl0 dXRpb25zIHdlcmUKZW5jb3VyYWdlZDsgYW5kIGlmIGFjdGlvbiAgd2VyZSAgdGFrZW4gIHRv ICBwZXJtaXQgIHN1Y2ggIG9wZXJhdGlvbiAgYW5kCmV4cGFuc2lvbiwgIGltcHJvdmVtZW50 IGFuZCByZWhhYmlsaXRhdGlvbiB3aXRob3V0IGFkZGl0aW9uYWwgZnVuZHMgZnJvbQpvciAg YWR2ZXJzZSAgZWZmZWN0cyAgb24gIHRoZSAgdGF4ICBiYXNlICBvZiAgdGhlICBzdGF0ZSwg IGNvdW50aWVzICAgb3IKbXVuaWNpcGFsaXRpZXMgb2YgdGhlIHN0YXRlOwogIChnKSAgdGhh dCAgbWFueSBzdWNoIGluc3RpdHV0aW9ucyBvd24gb3IgcGxhbiB0byBhY3F1aXJlIHZhbHVh YmxlIHJlYWwKcHJvcGVydHkgb3IgaW50ZXJlc3RzIGluIHJlYWwgcHJvcGVydHkgd2hpY2gg IGFyZSAgdW51c2VkICBvciAgdW5kZXJ1dGktCmxpemVkLCBhbmQgc3VjaCBpbnN0aXR1dGlv bnMgYXJlIHVuYWJsZSBwcm9wZXJseSB0byBkZXZlbG9wIG9yIG90aGVyd2lzZQpmdWxseSB0 byB1dGlsaXplIGFuZCByZWFsaXplIHRoZSB2YWx1ZSBvZiBzdWNoIHJlYWwgIHByb3BlcnR5 ICBvd2luZyAgaW4KcGFydCAgdG8gIGxhY2sgIG9mICBleHBlcnRpc2UgIGFuZCAgaW4gcGFy dCB0byByaXNrcyB0byB0aGVpciBlbmRvd21lbnQsCmNvbGxlY3Rpb25zIGFuZCBvdGhlciBj YXBpdGFsIGFzc2V0czsKICAoaCkgdGhhdCBhcHByb3ByaWF0ZSBkZXZlbG9wbWVudCBhbmQg dXRpbGl6YXRpb24gb2Ygc3VjaCByZWFsIHByb3BlcnR5CmFuZCBpbnRlcmVzdCBpbiByZWFs IHByb3BlcnR5IGFuZCB0aGUgcHVyY2hhc2Ugb2YgY2FwaXRhbCBlcXVpcG1lbnQgIGFuZApv dGhlciAgcGVyc29uYWwgIHByb3BlcnR5ICB3b3VsZCBmb3N0ZXIgY29udGludWVkIG9wZXJh dGlvbiBpbiB0aGUgc3RhdGUKYW5kIG5lZWRlZCBleHBhbnNpb24sIGltcHJvdmVtZW50IGFu ZCByZWhhYmlsaXRhdGlvbiBvZiAgdGhlICBzcGFjZSAgYW5kCmZhY2lsaXRpZXMgb2Ygc3Vj aCBpbnN0aXR1dGlvbnMgd2l0aG91dCBhZGRpdGlvbmFsIGZ1bmRzIGZyb20gb3IgYWR2ZXJz ZQplZmZlY3RzIG9uIHRoZSB0YXggYmFzZSBvZiB0aGUgc3RhdGUsIGNvdW50aWVzIG9yIG11 bmljaXBhbGl0aWVzIG9mICB0aGUKc3RhdGU7ICB3b3VsZCAgaGVscCAgcHJvdmlkZSBzdWl0 YWJsZSBob3VzaW5nIGFjY29tbW9kYXRpb25zLCBjb21tZXJjaWFsCnVzZXMgYW5kIHJlbGF0 ZWQgZmFjaWxpdGllcyBpbiBwcm94aW1pdHkgdG8gc3VjaCBpbnN0aXR1dGlvbnM7IGFuZCB3 b3VsZApvdGhlcndpc2UgcHJvbW90ZSB0aGUgaW50ZXJlc3Qgb2YgdGhlIHBlb3BsZSBvZiB0 aGUgc3RhdGU7CiAgKGkpICB0aGF0ICBkZXZlbG9wbWVudCAgb2Ygc3VpdGFibGUgaG91c2lu ZyBhY2NvbW1vZGF0aW9ucywgY29tbWVyY2lhbAp1c2VzLCBhbmQgcmVsYXRlZCBmYWNpbGl0 aWVzIGNvbXBhdGlibGUgd2l0aCBhbmQgY29tcGxlbWVudGFyeSAgdG8gIHN1Y2gKaW5zdGl0 dXRpb25zIHdvdWxkIGhlbHAgdG8gbWFpbnRhaW4sIHN0cmVuZ3RoZW4gYW5kIHJldml0YWxp emUgdGhlIGFyZWFzCmluIHdoaWNoIHN1Y2ggaW5zdGl0dXRpb25zIGFyZSAgbG9jYXRlZCwg IHRoYXQgIHN1Y2ggIGRldmVsb3BtZW50ICB3b3VsZAplbmNvdXJhZ2UgIHN1Y2ggIGluc3Rp dHV0aW9ucyAgdG8gIGNvbnRpbnVlICBvcGVyYXRpb24gaW4gc3VjaCBhcmVhcyBhbmQKcGVy bWl0IG5lZWRlZCBleHBhbnNpb24sIGltcHJvdmVtZW50IGFuZCByZWhhYmlsaXRhdGlvbiBv ZiB0aGUgc3BhY2UgYW5kCmZhY2lsaXRpZXMgIG9mICBzdWNoICBpbnN0aXR1dGlvbnMsICBh bmQgIHRoYXQgYSBwdWJsaWMgcHVycG9zZSB3b3VsZCBiZQpzZXJ2ZWQgYW5kIHRoZSBpbnRl cmVzdHMgb2YgdGhlIHBlb3BsZSBvZiB0aGUgc3RhdGUgd291bGQgYmUgcHJvbW90ZWQgYnkK dGhlICAgZGV2ZWxvcG1lbnQgICBvZiAgc3VjaCAgYWNjb21tb2RhdGlvbnMsICB1c2VzICBh bmQgIGZhY2lsaXRpZXMgIGluCmNvbWJpbmF0aW9uIHdpdGggdGhlIGZhY2lsaXRpZXMgb2Yg c3VjaCBpbnN0aXR1dGlvbnM7CihqKSAgdGhhdCAgbWFueSAgbm90LWZvci1wcm9maXQgIGN1 bHR1cmFsICBvcmdhbml6YXRpb25zICBhcmUgaW4gbmVlZCBvZgpkZXZlbG9wbWVudCBhbmQv b3IgcmVoYWJpbGl0YXRpb24gb2Ygc3VmZmljaWVudCBhbmQgYXBwcm9wcmlhdGUgc3BhY2Ug dG8KYXNzdXJlICB0aGVpciAgY29udGludWVkICBleGlzdGVuY2UgIGFuZCAgYmVuZWZpdCAg Zm9yIHRoZSBwZW9wbGUgb2YgdGhlCnN0YXRlOyBhbmQgdGhhdCBzdWZmaWNpZW50IGZ1bmRz IHRvIHBheSB0aGUgY29zdHMgb2Ygc3VjaCAgbmVlZGVkICBzcGFjZQphbmQgIGZhY2lsaXRp ZXMgIG9mICBzdWNoIG9yZ2FuaXphdGlvbnMgYXJlIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxl IGZyb20KdGhlIHN0YXRlLCBjb3VudGllcyBvciBtdW5pY2lwYWxpdGllczsgYW5kIHRoYXQg YSAgcHJvZ3JhbSAgd2hpY2ggIHdvdWxkCnV0aWxpemUgIGN1cnJlbnQgIHJlc291cmNlcyAg YW5kIGJyaW5nIHRvIGJlYXIgb3RoZXIgcG9zc2libGUgYWRkaXRpb25hbApyZXNvdXJjZXMg Zm9yIHRoZSAgZGV2ZWxvcG1lbnQgIGFuZCAgcmVoYWJpbGl0YXRpb24gIG9mICBzdWNoICBz cGFjZSAgaXMKZXNzZW50aWFsIHRvIHRoZSBjb250aW51ZWQgZXhpc3RlbmNlIGFuZCBvcGVy YXRpb24gb2Ygc3VjaCBvcmdhbml6YXRpb25zCmFuZCBpcyB0aGVyZWZvcmUgZm91bmQgYnkg dGhlIGxlZ2lzbGF0dXJlIHRvIGJlIGluIHRoZSBwdWJsaWMgIGludGVyZXN0OwphbmQKICAo aykgIHRoYXQgIGJhc2VkICBvbiAgcGFzdCAgZXhwZXJpZW5jZSwgIHRoZSBwcml2YXRlIHNl Y3RvciBhbG9uZSB3aWxsCmNvbnRpbnVlIHRvIGJlIHVuYWJsZSBwcm9wZXJseSB0byBkZXZl bG9wIHN1Y2ggIHJlYWwgIHByb3BlcnR5ICBhbmQgIHRoZQpyZXF1aXJlbWVudHMgIG9mICBz dWNoICBpbnN0aXR1dGlvbnMgIHdpbGwgIG5vdCBiZSBtZXQgdW5sZXNzIGNvcnJlY3RpdmUK YWN0aW9uIGlzIHRha2VuLgogIDIuICBUaGUgbGVnaXNsYXR1cmUgZnVydGhlciBmaW5kcywg ZGV0ZXJtaW5lcyBhbmQgZGVjbGFyZXMgdGhhdCBhIHB1Yi0KbGljIHB1cnBvc2Ugd291bGQg YmUgc2VydmVkIGFuZCB0aGUgaW50ZXJlc3RzIG9mIHRoZSBwZW9wbGUgb2YgdGhlIHN0YXRl CndvdWxkIGJlIHByb21vdGVkIGJ5IGFwcHJvcHJpYXRlIGRldmVsb3BtZW50IG9mIHVudXNl ZCBhbmQgdW5kZXJ1dGlsaXplZApyZWFsIHByb3BlcnR5IGFuZCBpbnRlcmVzdHMgaW4gcmVh bCBwcm9wZXJ0eSBvZiBzdWNoIGluc3RpdHV0aW9uczsgIHRoYXQKYXBwcm9wcmlhdGUgIGRl dmVsb3BtZW50ICBvZiBzdWNoIHJlYWwgcHJvcGVydHkgaW5jbHVkZXMgY29uc3RydWN0aW9u IG9mCmN1bHR1cmFsICBmYWNpbGl0aWVzICBhbmQgIG9mICBjb21iaW5lZC11c2UgIGZhY2ls aXRpZXMgIGNvbnNpc3RpbmcgICBvZgppbnN0aXR1dGlvbmFsICAgcG9ydGlvbnMgICAoaW5j bHVkaW5nICAgdGhlICBleHBhbnNpb24sICBpbXByb3ZlbWVudCAgb3IKcmVoYWJpbGl0YXRp b24gb2YgdGhlIHNwYWNlIGFuZCBmYWNpbGl0aWVzICBvZiAgc3VjaCAgaW5zdGl0dXRpb25z KSAgYW5kCm5vbi1pbnN0aXR1dGlvbmFsICBwb3J0aW9ucyAgKGluY2x1ZGluZyBzdWl0YWJs ZSBob3VzaW5nIGFjY29tbW9kYXRpb25zLApyZWxhdGVkIGZhY2lsaXRpZXMgIGFuZCAgb3Ro ZXIgIGxhd2Z1bCAgdXNlcyAgY29tcGF0aWJsZSAgd2l0aCAgdXNlcyAgb2YKaW5zdGl0dXRp b25hbCAgcG9ydGlvbnMgIG9mICBzdWNoIGZhY2lsaXRpZXMgYW5kIGVtYm9keWluZyBhcmNo aXRlY3R1cmFsCmFuZCBkZXNpZ24gY2hhcmFjdGVyaXN0aWNzIGFjY2VwdGFibGUgdG8gc3Vj aCAgaW5zdGl0dXRpb25zKTsgIGFuZCAgdGhhdApjb25zdHJ1Y3Rpb24gIG9mICBjdWx0dXJh bCAgZmFjaWxpdGllcyAgYW5kICBvZiAgY29tYmluZWQtdXNlIGZhY2lsaXRpZXMKb2Z0ZW4g cHJvdmlkZXMgdGhlIG9ubHkgZWNvbm9taWNhbGx5IGZlYXNpYmxlIG1ldGhvZCBmb3IgdXRp bGl6aW5nICBzdWNoCnJlYWwgIHByb3BlcnR5ICBmb3IgIG5lZWRlZCBleHBhbnNpb24sIGlt cHJvdmVtZW50IGFuZCByZWhhYmlsaXRhdGlvbiBvZgp0aGUgc3BhY2UgYW5kIGZhY2lsaXRp ZXMgb2Ygc3VjaCBpbnN0aXR1dGlvbnMuCiAgMy4gIFRoZSBsZWdpc2xhdHVyZSBmdXJ0aGVy IGZpbmRzLCBkZXRlcm1pbmVzIGFuZCBkZWNsYXJlcyB0aGF0IGEgcHViLQpsaWMgcHVycG9z ZSB3b3VsZCBiZSBzZXJ2ZWQgYW5kIHRoZSBpbnRlcmVzdHMgb2YgdGhlIHBlb3BsZSBvZiB0 aGUgc3RhdGUKd291bGQgIGJlICBwcm9tb3RlZCAgYnkgIHRoZSBjcmVhdGlvbiBwdXJzdWFu dCB0byB0aGlzIGFydGljbGUgb2YgcHVibGljCmJlbmVmaXQgY29ycG9yYXRpb25zLCBrbm93 biBhcyB0cnVzdHMgZm9yIGN1bHR1cmFsIHJlc291cmNlcywgdG8gcHJvdmlkZQpmb3IgIHRo ZSAgYXBwcm9wcmlhdGUgIGRldmVsb3BtZW50ICBvZiAgdW51c2VkICBhbmQgIHVuZGVydXRp bGl6ZWQgIHJlYWwKcHJvcGVydHkgYW5kIGludGVyZXN0cyBpbiByZWFsIHByb3BlcnR5IG9m IHN1Y2ggaW5zdGl0dXRpb25zIGFuZCBmb3IgdGhlCmNvbnN0cnVjdGlvbiwgIGVxdWlwcGlu ZyAgYW5kIGZ1cm5pc2hpbmcgb2YgY29tYmluZWQtdXNlIGZhY2lsaXRpZXMsIGFuZApvZiBj dWx0dXJhbCBmYWNpbGl0aWVzIGluIGFjY29yZGFuY2UgIHdpdGggIHRoaXMgIGFydGljbGU7 ICB0aGF0ICBpdCAgaXMKbmVjZXNzYXJ5ICB0byAgZ3JhbnQgdG8gdHJ1c3RzIGZvciBjdWx0 dXJhbCByZXNvdXJjZXMgdGhlIHBvd2VycywgcmlnaHRzCmFuZCBkdXRpZXMgcHJvdmlkZWQg YnkgdGhpcyBhcnRpY2xlIHdoaWNoIGluY2x1ZGUgdGhlIGRlbGVnYXRpb24gb2YgcGFydApv ZiAgdGhlICBzb3ZlcmVpZ24gIHBvd2VyICBvZiB0aGUgc3RhdGU7IHRoYXQgdGhlIGNyZWF0 aW9uIG9mIHRydXN0cyBmb3IKY3VsdHVyYWwgcmVzb3VyY2VzLCB0aGUgZXhlcmNpc2Ugb2Yg c3VjaCBwb3dlcnMgYW5kIHJpZ2h0cywgdGhlICBwZXJmb3ItCm1hbmNlIG9mIHN1Y2ggZHV0 aWVzLCBhbmQgdGhlIGNhcnJ5aW5nIG91dCBvZiB0aGUgcHVycG9zZXMgb2YgdHJ1c3RzIGZv cgpjdWx0dXJhbCByZXNvdXJjZXMgYXJlIGluIGFsbCByZXNwZWN0cyBmb3IgdGhlIGJlbmVm aXQgb2YgdGhlIHBlb3BsZSAgb2YKdGhlICBzdGF0ZSAgYW5kICBhcmUgIGFuZCAgd2lsbCAg c2VydmUgYSBwdWJsaWMgcHVycG9zZTsgYW5kIHRoYXQgaW4gdGhlCmV4ZXJjaXNlIG9mIHN1 Y2ggcG93ZXJzIGFuZCByaWdodHMsIHRoZSBwZXJmb3JtYW5jZSBvZiBzdWNoICBkdXRpZXMg IGFuZAp0aGUgY2Fycnlpbmcgb3V0IG9mIHN1Y2ggcHVycG9zZXMsIHRydXN0cyBmb3IgY3Vs dHVyYWwgcmVzb3VyY2VzIGNyZWF0ZWQKdW5kZXIgIHRoaXMgIGFydGljbGUgIHdpbGwgIGJl ICBwZXJmb3JtaW5nICBhbiAgZXNzZW50aWFsICAgcHVibGljICAgYW5kCmdvdmVybm1lbnRh bCBmdW5jdGlvbi4KCiAgUyAgMjAuMDcuICBDcmVhdGlvbiAgYW5kICBwdXJwb3NlcyAgb2Yg IGEgdHJ1c3QuICAxLiAgQSB0cnVzdCBzaGFsbCBiZQpjcmVhdGVkIGJ5IGEgc3BlY2lhbCBs YXcgYXMgYSBjb3Jwb3JhdGUgZ292ZXJubWVudGFsIGFnZW5jeSBhbmQgYSBwdWJsaWMKYmVu ZWZpdCAgY29ycG9yYXRpb24sIGNvbnN0aXR1dGluZyBhIHBvbGl0aWNhbCBzdWJkaXZpc2lv biBvZiB0aGUgc3RhdGUuCkEgdHJ1c3QgYW5kIGl0cyBjb3Jwb3JhdGUgZXhpc3RlbmNlIHNo YWxsIGNvbnRpbnVlIHVudGlsICB0ZXJtaW5hdGVkICBieQpsYXc7ICBwcm92aWRlZCwgIGhv d2V2ZXIsICB0aGF0IG5vIHN1Y2ggbGF3IHNoYWxsIHRha2UgZWZmZWN0IHNvIGxvbmcgYXMK dGhlIHRydXN0IHNoYWxsIGhhdmUgIGJvbmRzLCAgbm90ZXMgIG9yICBvdGhlciAgb2JsaWdh dGlvbnMgIG91dHN0YW5kaW5nCnVubGVzcyAgYWRlcXVhdGUgIHByb3Zpc2lvbiBoYXMgYmVl biBtYWRlIGZvciB0aGUgcGF5bWVudCB0aGVyZW9mLiAgVXBvbgp0ZXJtaW5hdGlvbiBvZiB0 aGUgZXhpc3RlbmNlIG9mIGEgdHJ1c3QsIGFsbCBpdHMgcmlnaHRzICBhbmQgIHByb3BlcnRp ZXMKbm90IG90aGVyd2lzZSBkaXNwb3NlZCBvZiBzaGFsbCBwYXNzIHRvIGFuZCBiZSB2ZXN0 ZWQgaW4gdGhlIHN0YXRlLiAgQW55Cm5ldCAgZWFybmluZ3MgIG9mICBhICB0cnVzdCwgIGJl eW9uZCAgdGhhdCAgbmVjZXNzYXJ5ICB0byAgIHJldGlyZSAgIGFueQppbmRlYnRlZG5lc3Mg IG9mICBhIHRydXN0IG9yIHRvIGltcGxlbWVudCB0aGUgcHVycG9zZXMgc2V0IGZvcnRoIGlu IHRoaXMKYXJ0aWNsZSBhbmQgaW4gYW55IHNwZWNpYWwgbGF3LCBtYXkgbm90IGludXJlICB0 byAgdGhlICBiZW5lZml0ICBvZiAgYW55CnBlcnNvbiAgb3RoZXIgIHRoYW4gIHRoZSAgc3Rh dGUsIGNvdW50eSBvciB0aGUgbXVuaWNpcGFsaXR5IGluIHdoaWNoIHRoZQpwcmluY2lwYWwg b2ZmaWNlIG9mIHRoZSB0cnVzdCBpcyBsb2NhdGVkLgogIDIuIEEgdHJ1c3Qgc2hhbGwgZXhl cmNpc2UgdGhlIHBvd2VycyBncmFudGVkIHRvIGl0IGJ5IHRoaXMgYXJ0aWNsZSBhbmQKYnkg c3BlY2lhbCBsYXcgaW4gY29vcGVyYXRpb24gd2l0aCBwYXJ0aWNpcGF0aW5nICBjdWx0dXJh bCAgaW5zdGl0dXRpb25zCnNvbGVseSAgYW5kICBleGNsdXNpdmVseSAgaW4gZnVydGhlcmFu Y2Ugb2YgdGhlIHB1cnBvc2VzIG9mIHRoaXMgYXJ0aWNsZQphbmQgc3VjaCBzcGVjaWFsIGxh dy4gICBCZWZvcmUgIGVudGVyaW5nICBpbnRvICBhbnkgIGFncmVlbWVudCAgZm9yICB0aGUK Y29uc3RydWN0aW9uIG9mIGEgY29tYmluZWQtdXNlIGZhY2lsaXR5LCBhIGZhY2lsaXR5IGZv ciBhIG5vdC1mb3ItcHJvZml0CmN1bHR1cmFsIG9yZ2FuaXphdGlvbiwgb3IgYmVmb3JlICBt YWtpbmcgIGEgIGxvYW4gIHRvICBhICBub3QtZm9yLXByb2ZpdApjdWx0dXJhbCBvcmdhbml6 YXRpb24sIHRoZSBib2FyZCBvZiB0cnVzdGVlcyBzaGFsbCBob2xkIGEgcHVibGljIGhlYXJp bmcKYW5kIHRoZXJlYWZ0ZXIgc2hhbGwgZGV0ZXJtaW5lIHRoYXQgZGV2ZWxvcG1lbnQgb2Yg c3VjaCBmYWNpbGl0eSBvciAgdGhlCm1ha2luZyAgb2YgIHN1Y2ggIGxvYW4gaXMgdGhlIG1v c3QgZmVhc2libGUgbWVhbnMgYnkgd2hpY2ggc3VjaCBwdXJwb3NlcwptYXkgYmUgZWZmZWN0 dWF0ZWQgYW5kIHRoYXQgdGhlIGFyY2hpdGVjdHVyYWwgYW5kIGRlc2lnbiBjaGFyYWN0ZXJp c3RpY3MKb2YgIHRoZSAgbm9uLWluc3RpdHV0aW9uYWwgIHBvcnRpb24gIGFyZSAgY29tcGF0 aWJsZSAgd2l0aCAgdGhvc2Ugb2YgdGhlCmluc3RpdHV0aW9uYWwgcG9ydGlvbiBvZiBzdWNo IGNvbWJpbmVkLXVzZSAgZmFjaWxpdHkuICAgTm90aWNlICBvZiAgc3VjaApwdWJsaWMgaGVh cmluZyBzaGFsbCBiZSBwdWJsaXNoZWQgYXQgbGVhc3Qgb25jZSBubyBsZXNzIHRoYW4gdHdl bnR5IGRheXMKcHJpb3IgdG8gc3VjaCBoZWFyaW5nIGluIGEgIG5ld3NwYXBlciAgb2YgIGdl bmVyYWwgIGNpcmN1bGF0aW9uICBpbiAgdGhlCm11bmljaXBhbGl0eSAgb3IgIGNvdW50eSAg aW4gIHdoaWNoIHN1Y2ggZmFjaWxpdHkgaXMgbG9jYXRlZC4gIE5vdGljZSBvZgpzdWNoIHB1 YmxpYyBoZWFyaW5nIHNoYWxsIGJlIHNlcnZlZCBieSBjZXJ0aWZpZWQgbWFpbCB1cG9uIHRo ZSAgY2hhaXJtYW4Kb2YgIHRoZSBwbGFubmluZyBib2FyZCBvZiBhbnkgY291bnR5IGluIHdo aWNoIHN1Y2ggY29tYmluZWQtdXNlIGZhY2lsaXR5CmlzIG9yIGlzIGRlc2lnbmVkIHRvIGJl IGRldmVsb3BlZCwgZXhjZXB0IHRoYXQgaW4gYSAgbXVuaWNpcGFsaXR5LCAgc3VjaApub3Rp Y2Ugc2hhbGwgYmUgc28gc2VydmVkIHVwb24gdGhlIGNoYWlybWFuIG9mIHRoZSBsb2NhbCBj b21tdW5pdHkgYm9hcmQKaW4gdGhlIGFyZWEgaW4gd2hpY2ggc3VjaCBmYWNpbGl0eSBpcyBv ciBpcyBkZXNpZ25lZCAgdG8gIGJlICBkZXZlbG9wZWQ7CmFuZCAgbm90aWNlICBvZiBzdWNo IHB1YmxpYyBoZWFyaW5nIHNoYWxsIGJlIHNlcnZlZCB1cG9uIHRoZSBjaGFpcm1hbiBvZgp0 aGUgcGxhbm5pbmcgYm9hcmQsIG9yIGVxdWl2YWxlbnQgIGJvYXJkLCAgb2YgIGFueSAgY291 bnR5ICBpbiAgd2hpY2ggIGEKZmFjaWxpdHkgIGZvciAgYSBub3QtZm9yLXByb2ZpdCBjdWx0 dXJhbCBvcmdhbml6YXRpb24gaXMsIG9yIGlzIGRlc2lnbmVkCnRvIGJlLCBkZXZlbG9wZWQs IG9yIGluIHdoaWNoLCBpbiB0aGUgY2FzZSBvZiBhIGxvYW4sICBhICBub3QtZm9yLXByb2Zp dApjdWx0dXJhbCBvcmdhbml6YXRpb24gaXMgbG9jYXRlZC4KCiAgUyAyMC4wOS4gQWRtaW5p c3RyYXRpb24gb2YgYSB0cnVzdC4gIDEuICBBIHRydXN0IHNoYWxsIGJlIGFkbWluaXN0ZXJl ZApieSBhIGJvYXJkIG9mIHRydXN0ZWVzLCBhbGwgb2Ygd2hvbSBzaGFsbCBiZSBhcHBvaW50 ZWQgIGFzICBwcm92aWRlZCAgYnkKc3BlY2lhbCAgbGF3LiAgICBUaGUgIG51bWJlciAgb2Yg dHJ1c3RlZXMsIHRoZWlyIHF1YWxpZmljYXRpb25zLCBhbmQgdGhlCmR1cmF0aW9uIG9mIHRo ZWlyIHJlc3BlY3RpdmUgdGVybXMgb2Ygb2ZmaWNlIHNoYWxsIGJlIHNldCBmb3J0aCAgaW4g IHRoZQpzcGVjaWFsIGxhdy4KICAyLiBUaGUgc3BlY2lhbCBsYXcgY3JlYXRpbmcgYSB0cnVz dCBtYXkgcHJvdmlkZSBmb3IgdGhlIGFwcG9pbnRtZW50IG9mCmEgdHJ1c3RlZSBhcyBjaGFp cm1hbiBvZiB0aGUgYm9hcmQgb2YgdHJ1c3RlZXMgYW5kIGZvciAgdGhlICBhcHBvaW50bWVu dApvZiBhIHRydXN0ZWUgYXMgcHJlc2lkZW50IGFuZCBjaGllZiBleGVjdXRpdmUgb2ZmaWNl ciBvZiB0aGUgdHJ1c3QuICBUaGUKY2hhaXJtYW4gb2YgdGhlIGJvYXJkIG9mIHRydXN0ZWVz IGFuZCB0aGUgcHJlc2lkZW50IGFuZCBjaGllZiAgZXhlY3V0aXZlCm9mZmljZXIgIG9mICB0 aGUgIHRydXN0ICBzaGFsbCAgaGF2ZSAgc3VjaCAgcG93ZXJzICBhbmQgZHV0aWVzIGFzIG1h eSBiZQpwcmVzY3JpYmVkIGJ5IHNwZWNpYWwgbGF3LgogIDMuICBObyAgdHJ1c3RlZSAgb3Ro ZXIgIHRoYW4gdGhlIHByZXNpZGVudCBhbmQgY2hpZWYgZXhlY3V0aXZlIG9mZmljZXIKc2hh bGwgcmVjZWl2ZSwgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSwgYW55IHNhbGFyeSBvciBvdGhl ciAgY29tcGVuc2F0aW9uCmZyb20gIGEgIHRydXN0LCAgaW4gIGFueSAgY2FwYWNpdHkuICAg RWFjaCAgdHJ1c3RlZSBzaGFsbCBiZSBlbnRpdGxlZCB0bwpyZWltYnVyc2VtZW50IGZvciBo aXMgYWN0dWFsIGFuZCAgbmVjZXNzYXJ5ICBleHBlbnNlcyAgaW5jdXJyZWQgIGluICB0aGUK cGVyZm9ybWFuY2Ugb2YgaGlzIGR1dGllcyBhcyBhIHRydXN0ZWUuICBFYWNoIHRydXN0ZWUg c2hhbGwgYmUgZGVlbWVkIHRvCmJlICBhICBzdGF0ZSAgb2ZmaWNlciAgZm9yICBwdXJwb3Nl cyAgb2YgIHNlY3Rpb25zICAgc2V2ZW50eS10aHJlZSAgIGFuZApzZXZlbnR5LWZvdXIgIG9m ICB0aGUgIHB1YmxpYyBvZmZpY2VycyBsYXcuICBOb3R3aXRoc3RhbmRpbmcgYW55dGhpbmcg dG8KdGhlIGNvbnRyYXJ5IGNvbnRhaW5lZCBpbiBhbnkgZ2VuZXJhbCwgc3BlY2lhbCBvciBs b2NhbCAgbGF3ICBjb25jZXJuaW5nCnRoZSAgaG9sZGluZyBvZiBkdWFsIG9mZmljZXMsIGFu IG9mZmljZXIgb3IgZW1wbG95ZWUgb2YgdGhlIHN0YXRlIG9yIGFueQpwb2xpdGljYWwgc3Vi ZGl2aXNpb24gb2YgdGhlIHN0YXRlLCBvciBhbnkgYWdlbmN5IG9yIGluc3RydW1lbnRhbGl0 eSAgb2YKdGhlICBzdGF0ZSBvciBhbnkgc3VjaCBwb2xpdGljYWwgc3ViZGl2aXNpb24sIG9y IGFueSBwdWJsaWMgY29ycG9yYXRpb24sCm1heSBiZSBhcHBvaW50ZWQgYXMgcHJlc2lkZW50 IGFuZCBjaGllZiBleGVjdXRpdmUgb2ZmaWNlciAgb2YgIGEgIHRydXN0LAphbmQgIHN1Y2gg IG9mZmljZXJzIGFuZCBlbXBsb3llZXMgbWF5IGJlIGFwcG9pbnRlZCBhcyB0cnVzdGVlcy4g IE5vIHN1Y2gKb2ZmaWNlciBvciBlbXBsb3llZSBzaGFsbCBmb3JmZWl0IGhpcyBvZmZpY2Ug b3IgZW1wbG95bWVudCBieSByZWFzb24gIG9mCmhpcyAgYWNjZXB0YW5jZSAgb3IgYXBwb2lu dG1lbnQgYXMgYSB0cnVzdGVlLCBvZmZpY2VyLCBlbXBsb3llZSBvciBhZ2VudApvZiB0aGUg dHJ1c3QuICBObyBtb3JlIHRoYW4gb25lIHBlcnNvbiBzZXJ2aW5nIG9uIHRoZSBib2FyZCBv ZiB0cnVzdGVlcywKb3IgIGVxdWl2YWxlbnQgIGJvZHksICBvZiAgZWFjaCAgcGFydGljaXBh dGluZyBjdWx0dXJhbCBpbnN0aXR1dGlvbiB3aXRoCndoaWNoIHRoZSB0cnVzdCBoYXMgZW50 ZXJlZCAgaW50byAgYSAgZmluYW5jaW5nICBhZ3JlZW1lbnQgIHNoYWxsICBzZXJ2ZQpjb25j dXJyZW50bHkgb24gdGhlIGJvYXJkIG9mIHRydXN0ZWVzIG9mIGEgdHJ1c3QuIEFueSB0cnVz dGVlIG9mIGEgdHJ1c3QKd2hvIGlzIGNvbmN1cnJlbnRseSBzZXJ2aW5nIG9uIHRoZSAgYm9h cmQgIG9mICB0cnVzdGVlcywgIG9yICBlcXVpdmFsZW50CmJvZHksICBvZiAgYSAgcGFydGlj aXBhdGluZyAgY3VsdHVyYWwgIGluc3RpdHV0aW9uICBzaGFsbCAgcmVmcmFpbiAgZnJvbQpw YXJ0aWNpcGF0aW5nIGluIGRpc2N1c3Npb25zIG9yIHZvdGluZyBvbiAgbWF0dGVycyAgcGVy dGFpbmluZyAgdG8gIHN1Y2gKcGFydGljaXBhdGluZyAgY3VsdHVyYWwgIGluc3RpdHV0aW9u LiAgRWFjaCAgdHJ1c3RlZSAgbWF5IGJlIHJlbW92ZWQgZm9yCmNhdXNlIGFzIHByb3ZpZGVk IGJ5IHNwZWNpYWwgbGF3LgogIDQuIEV4Y2VwdCBhcyBvdGhlcndpc2UgcHJvdmlkZWQgaW4g dGhpcyBhcnRpY2xlIG9yIGJ5IHNwZWNpYWwgbGF3LCAoYSkKYSBtYWpvcml0eSBvZiB0aGUg dHJ1c3RlZXMgdGhlbiBpbiBvZmZpY2Ugc2hhbGwgY29uc3RpdHV0ZSBhIHF1b3J1bSAgZm9y CnRoZSB0cmFuc2FjdGlvbiBvZiBhbnkgYnVzaW5lc3Mgb3IgdGhlIGV4ZXJjaXNlIG9mIGFu eSBwb3dlciBieSBhIHRydXN0OwphbmQgKGIpIHRoZSBwb3dlcnMgb2YgdGhlIHRydXN0IHNo YWxsIGJlIHZlc3RlZCBpbiwgYW5kIGJlIGV4ZXJjaXNlZCAgYnkKdGhlICBhZmZpcm1hdGl2 ZSAgdm90ZSAgb2YsICBhICBtYWpvcml0eSAgb2YgdGhlIG1lbWJlcnMgb2YgdGhlIGJvYXJk IG9mCnRydXN0ZWVzIHByZXNlbnQgYXQgYSBtZWV0aW5nICBhdCAgd2hpY2ggIGEgIHF1b3J1 bSAgaXMgIGluICBhdHRlbmRhbmNlOwpwcm92aWRlZCwgIGhvd2V2ZXIsIHRoYXQgYW55IGFj dGlvbiByZXF1aXJlZCBvciBwZXJtaXR0ZWQgdG8gYmUgdGFrZW4gYXQKYSBtZWV0aW5nIG9m IHRoZSBib2FyZCBvZiB0cnVzdGVlcyBtYXkgYmUgdGFrZW4gd2l0aG91dCBhIG1lZXRpbmcg aWYgYWxsCnRoZSAgbWVtYmVycyAgb2YgdGhlIGJvYXJkIG9mIHRydXN0ZWVzIHRoZW4gaW4g b2ZmaWNlIGNvbnNlbnQgdGhlcmV0byBpbgp3cml0aW5nIGFuZCBwcm92aWRlZCBmdXJ0aGVy IHRoYXQgb25lIG9yIG1vcmUgdHJ1c3RlZXMgIG1heSAgcGFydGljaXBhdGUKaW4gIGEgbWVl dGluZyBieSBtZWFucyBvZiBjb25mZXJlbmNlIHRlbGVwaG9uZSBvciBzaW1pbGFyIGNvbW11 bmljYXRpb25zCmVxdWlwbWVudCBhbGxvd2luZyBhbGwgcGVyc29ucyBwYXJ0aWNpcGF0aW5n IGluIHRoZSBtZWV0aW5nIHRvIGhlYXIgZWFjaApvdGhlciAgYXQgdGhlIHNhbWUgdGltZSBh bmQgcGFydGljaXBhdGlvbiBieSBzdWNoIG1lYW5zIHNoYWxsIGNvbnN0aXR1dGUKcHJlc2Vu Y2UgaW4gcGVyc29uIGF0IGEgbWVldGluZy4gIE5vIHRydXN0ZWUgIG1heSAgdm90ZSAgYnkg IHByb3h5LiAgVGhlCnRydXN0ICBtYXkgIGRlbGVnYXRlIHRvIG9uZSBvciBtb3JlIG9mIGl0 cyB0cnVzdGVlcywgb2ZmaWNlcnMsIGFnZW50cyBvcgplbXBsb3llZXMgc3VjaCBwb3dlcnMg YW5kIGR1dGllcyBhcyBpdCBtYXkgZGVlbSBwcm9wZXIuCiAgNS4gIFRoZSAgdHJ1c3RlZXMs ICBvZmZpY2VycyAgYW5kICBlbXBsb3llZXMgIG9mICBhIHRydXN0IHNoYWxsIG5vdCBiZQpw ZXJzb25hbGx5IGxpYWJsZSBmb3IgYW55IGRlYnQsIG9ibGlnYXRpb24gb3IgbGlhYmlsaXR5 IGluY3VycmVkICBieSAgb3IKaW1wb3NlZCB1cG9uIHRoZSB0cnVzdCBhdCBhbnkgdGltZS4K ICA2LiBBIHRydXN0IG1heSBtYWtlIHBheW1lbnRzIHRvIG9yIG9uIGJlaGFsZiBvZiBpdHMg dHJ1c3RlZXMsIG9mZmljZXJzCmFuZCBlbXBsb3llZXMgaW4gYWNjb3JkYW5jZSB3aXRoIGFu ZCB0byB0aGUgc2FtZSBleHRlbnQgYXMgYXV0aG9yaXplZCBieQp0aGUgIHByb3Zpc2lvbnMg IG9mICBzZWN0aW9ucyAgc2V2ZW4gIGh1bmRyZWQgIHR3ZW50eS1vbmUgIHRocm91Z2ggc2V2 ZW4KaHVuZHJlZCB0d2VudHktc2l4IG9mIHRoZSBidXNpbmVzcyBjb3Jwb3JhdGlvbiBsYXcg YXMgYW1lbmRlZCBmcm9tICB0aW1lCnRvICB0aW1lICB3aXRoICB0aGUgIHNhbWUgIGVmZmVj dCBhcyB0aG91Z2ggc3VjaCBzZWN0aW9ucyBhcHBsaWVkIHRvIHRoZQp0cnVzdCwgaXRzIHRy dXN0ZWVzLCBvZmZpY2VycyBhbmQgZW1wbG95ZWVzOyBwcm92aWRlZCwgaG93ZXZlciwgIHRo YXQgIGEKdHJ1c3QgIHNoYWxsICBzYXZlICBoYXJtbGVzcyAgYW5kICBpbmRlbW5pZnkgIGl0 cyB0cnVzdGVlcywgb2ZmaWNlcnMgYW5kCmVtcGxveWVlcyAgYWdhaW5zdCAgYW55ICBjbGFp bSwgIGRlbWFuZCwgIHN1aXQgIG9yICBqdWRnbWVudCAgYmFzZWQgICBvbgphbGxlZ2F0aW9u cyAgdGhhdCAgZmluYW5jaWFsICBsb3NzICBoYXMgIGJlZW4gc3VzdGFpbmVkIGJ5IGFueSBw ZXJzb24gaW4KY29ubmVjdGlvbiB3aXRoIHRoZSBhY3F1aXNpdGlvbiwgZGlzcG9zaXRpb24g b3IgaG9sZGluZyBvZiBib25kcywgbm90ZXMsCnNlY3VyaXRpZXMgb3Igb3RoZXIgb2JsaWdh dGlvbnMgb2YgYSB0cnVzdCwgb3IgdGhvc2Ugb2YgYW55IG90aGVyIHB1YmxpYwpjb3Jwb3Jh dGlvbiBpZiBzdWNoIGxvc3MgIGFsbGVnZWRseSAgcmVzdWx0ZWQgIGZyb20gIGRlYWxpbmdz ICB3aXRoICB0aGUKdHJ1c3QsICB1bmxlc3MgIHN1Y2ggIHRydXN0ZWUsICBvZmZpY2VyICBv ciBlbXBsb3llZSBpcyBmb3VuZCBieSBhIGZpbmFsCmp1ZGljaWFsIGRldGVybWluYXRpb24g bm90IHRvIGhhdmUgYWN0ZWQgaW4gZ29vZCAgZmFpdGggIGZvciAgYSAgcHVycG9zZQp3aGlj aCBoZSByZWFzb25hYmx5IGJlbGlldmVkIHRvIGJlIGluIHRoZSBiZXN0IGludGVyZXN0cyBv ZiB0aGUgdHJ1c3Qgb3IKbm90IHRvIGhhdmUgaGFkIHJlYXNvbmFibGUgY2F1c2UgdG8gYmVs aWV2ZSB0aGF0IGhpcyBjb25kdWN0IHdhcyBsYXdmdWw7CmFuZCAgcHJvdmlkZWQgIGZ1cnRo ZXIgdGhhbiBubyB0cnVzdGVlLCBvZmZpY2VyIG9yIGVtcGxveWVlIG9mIHRoZSB0cnVzdApz aGFsbCBiZSBsaWFibGUgdG8gYW55IHBlcnNvbiBvdGhlciB0aGFuIHRoZSB0cnVzdCBiYXNl ZCBzb2xlbHkgIG9uICBoaXMKb3IgIGhlciAgY29uZHVjdCAgaW4gdGhlIGV4ZWN1dGlvbiBv ZiBzdWNoIG9mZmljZSwgdW5sZXNzIHRoZSBjb25kdWN0IG9mCnN1Y2ggdHJ1c3RlZSwgb2Zm aWNlciBvciBlbXBsb3llZSB3aXRoIHJlc3BlY3QgdG8gdGhlICBwZXJzb24gIGFzc2VydGlu ZwpsaWFiaWxpdHkgIGNvbnN0aXR1dGVkIGdyb3NzIG5lZ2xpZ2VuY2Ugb3Igd2FzIGludGVu ZGVkIHRvIGNhdXNlIHRoZSByZS0Kc3VsdGluZyBoYXJtIHRvIHRoZSAgcGVyc29uICBhc3Nl cnRpbmcgIHN1Y2ggIGxpYWJpbGl0eS4gICBBICB0cnVzdCAgbWF5CnByb2N1cmUgIGluc3Vy YW5jZSAgb3IgIGJlICBpbmRlbW5pZmllZCAgd2l0aCAgcmVzcGVjdCAgdG8gIGFueSAgcGF5 bWVudApwZXJtaXR0ZWQgdW5kZXIgdGhpcyBzdWJkaXZpc2lvbiBpbiBzdWNoIGFtb3VudHMg YW5kIHdpdGggc3VjaCAgaW5zdXJlcnMKb3Igb3RoZXIgcGVyc29ucyBhcyBpdCBkZWVtcyBk ZXNpcmFibGUuCgogIFMgIDIwLjExLiAgR2VuZXJhbCBwb3dlcnMgb2YgYSB0cnVzdC4gIElu IGFkZGl0aW9uIHRvIHRoZSBvdGhlciBwb3dlcnMKY29uZmVycmVkIGJ5IHRoaXMgYXJ0aWNs ZSBhbmQgYnkgc3BlY2lhbCBsYXcsIGEgIHRydXN0ICBzaGFsbCAgaGF2ZSAgdGhlCmZvbGxv d2luZyBnZW5lcmFsIHBvd2VyczoKICAxLiAgdG8gc3VlIGFuZCBiZSBzdWVkLAogIDIuICB0 byBoYXZlIGEgc2VhbCBhbmQgYWx0ZXIgdGhlIHNhbWUgYXQgcGxlYXN1cmUsCiAgMy4gIHRv IG1ha2UgYW5kIGV4ZWN1dGUgY29udHJhY3RzIGFuZCBhbGwgb3RoZXIgaW5zdHJ1bWVudHMs IGluY2x1ZGluZwp3aXRob3V0IGxpbWl0YXRpb24gaW5zdHJ1bWVudHMgb2YgZ3VhcmFudGVl IGFuZCBpbmRlbW5pZmljYXRpb24sCiAgNC4gdG8gaW5jdXIgbGlhYmlsaXRpZXMsIGJvcnJv dyBtb25leSBhdCBzdWNoIHJhdGVzIG9mIGludGVyZXN0IGFzIHRoZQp0cnVzdCBtYXkgZGV0 ZXJtaW5lLCBpc3N1ZSBpdHMgbm90ZXMsIGJvbmRzIGFuZCBvdGhlciAgb2JsaWdhdGlvbnMs ICBhbmQKbm90d2l0aHN0YW5kaW5nICBzdWJkaXZpc2lvbiAgdGhyZWUgb2Ygc2VjdGlvbiAy MC4zMyBvZiB0aGlzIGFydGljbGUsIGlmCmluIGl0cyBzb2xlIGRpc2NyZXRpb24gdGhlIHRy dXN0IHNvIGRldGVybWluZXMgYW5kICBkZWNsYXJlcywgIHRvICBpc3N1ZQpib25kcyAgYW5k ICBub3RlcywgdGhlIGluY29tZSBmcm9tIGFuZCBpbnRlcmVzdCBvbiB3aGljaCBtYXkgYmUg dGF4ZWQgb3IKdGF4YWJsZSBieSB0aGUgVW5pdGVkIFN0YXRlcywgYnkgdGhlIHN0YXRlLCBh bmQgaWYgIGFwcGxpY2FibGUsICBieSAgYW55Cm11bmljaXBhbGl0eSAgb3IgIG90aGVyIHBv bGl0aWNhbCBzdWJkaXZpc2lvbiBpbiB0aGUgc3RhdGUsIG9yIGJ5IGFueSBvZgp0aGVtLCBh bmQgdG8gc2VjdXJlIGFueSBvZiBpdHMgb2JsaWdhdGlvbnMgYnkgbW9ydGdhZ2Ugb3IgcGxl ZGdlIG9mICBhbGwKb3IgIGFueSAgb2YgIGl0cyAgcmVhbCAgYW5kICBwZXJzb25hbCAgcHJv cGVydHkgb3IgYW55IGludGVyZXN0IHRoZXJlaW4sCndoZXJldmVyIHNpdHVhdGVkLAogIDUu ICB0byAgaW52ZXN0IGFuZCByZWludmVzdCBhbnkgZnVuZHMgaGVsZCBpbiByZXNlcnZlIG9y IHNpbmtpbmcgZnVuZHMKb3IgYW55IG90aGVyIGZ1bmRzIG5vdCAgcmVxdWlyZWQgIGZvciAg aW1tZWRpYXRlICB1c2UgIG9yICBkaXNidXJzZW1lbnQsCmluY2x1ZGluZyBwcm9jZWVkcyBm cm9tIHRoZSBzYWxlIG9mIGFueSBib25kcyBvciBub3RlcyBhbmQgYW55IHJldmVudWVzLApy ZWNlaXB0cywgYm9ycm93aW5ncyBhbmQgaW5jb21lLCBpbiBvYmxpZ2F0aW9ucyBvZiBvciBn dWFyYW50ZWVkIGJ5ICB0aGUKVW5pdGVkICBTdGF0ZXMsICB0aGUgc3RhdGUgb3IgYW55IHBv bGl0aWNhbCBzdWJkaXZpc2lvbiBvZiB0aGUgc3RhdGUsIG9yCmFueSBhZ2VuY3kgb3IgaW5z dHJ1bWVudGFsaXR5IG9mIGFueSBvZiB0aGVtLCBvciBjZXJ0aWZpY2F0ZXMgb2YgIGRlcG9z LQppdCwgIHNhdmluZ3MgYWNjb3VudHMsIHRpbWUgZGVwb3NpdHMgb3Igb3RoZXIgb2JsaWdh dGlvbnMgb3IgYWNjb3VudHMgb2YKYmFua3Mgb3IgdHJ1c3QgY29tcGFuaWVzIGluIHRoZSBz dGF0ZSwgc2VjdXJlZCwgaWYgdGhlICB0cnVzdCAgc2hhbGwgIHNvCnJlcXVpcmUsIGluIHN1 Y2ggbWFubmVyIGFzIHRoZSB0cnVzdCBtYXkgc28gZGV0ZXJtaW5lLAogIDYuIHRvIGFkb3B0 LCBhbWVuZCBvciByZXBlYWwgYnktbGF3cyBmb3IgaXRzIG9yZ2FuaXphdGlvbiBhbmQgaW50 ZXJuYWwKbWFuYWdlbWVudCwgdGhlIHBvd2VyIHRvIGFtZW5kLCBhbHRlciAgb3IgIHJlcGVh bCAgd2hpY2ggIHNoYWxsICBub3QgIGJlCmFicmlkZ2VkICBieSAgYW55ICBjb3ZlbmFudCAg d2l0aCBib25kaG9sZGVycywgYW5kIHJ1bGVzIGFuZCByZWd1bGF0aW9ucwpnb3Zlcm5pbmcg dGhlICBleGVyY2lzZSAgb2YgIGl0cyAgcG93ZXJzICBhbmQgIHRoZSAgZnVsZmlsbG1lbnQg IG9mICBpdHMKcHVycG9zZXMsCiAgNy4gdG8gYWNxdWlyZSBvciBjb250cmFjdCB0byBhY3F1 aXJlIGJ5IGdyYW50LCBwdXJjaGFzZSwgb3Igb3RoZXJ3aXNlLAphbnkgcmVhbCwgcGVyc29u YWwgb3IgbWl4ZWQgcHJvcGVydHkgb3IgYW55IGludGVyZXN0ICB0aGVyZWluOyAgdG8gIG93 biwKaG9sZCwgIGNsZWFyLCAgaW1wcm92ZSwgIG1haW50YWluLCAgZGV2ZWxvcCwgIG9wZXJh dGUsICBlbXBsb3ksICB1c2UgYW5kCm90aGVyd2lzZSBkZWFsIGluLCBhbmQgdG8gIHNlbGws ICBhc3NpZ24sICBleGNoYW5nZSwgIHRyYW5zZmVyLCAgY29udmV5LApsZWFzZSwgbW9ydGdh Z2UsIGdyYW50IGEgc2VjdXJpdHkgaW50ZXJlc3QgaW4gb3Igb3RoZXJ3aXNlIGRpc3Bvc2Ug b2Ygb3IKZW5jdW1iZXIgdGhlIHNhbWUsCiAgOC4gdG8gYXBwb2ludCBzdWNoIG9mZmljZXJz IGFuZCBoaXJlIHN1Y2ggZW1wbG95ZWVzIGFzIGl0IG1heSByZXF1aXJlLAp0byBmaXggYW5k IGRldGVybWluZSB0aGVpciBxdWFsaWZpY2F0aW9ucywgZHV0aWVzIGFuZCAgY29tcGVuc2F0 aW9uICBhbmQKdG8gIHJldGFpbiAgb3IgIGVtcGxveSAgb3RoZXIgIGFnZW50cywgIGluY2x1 ZGluZyAgYnV0ICBub3QgIGxpbWl0ZWQgIHRvCmFyY2hpdGVjdHMsIGNvdW5zZWwsIGF1ZGl0 b3JzLCBlbmdpbmVlcnMgYW5kIHByaXZhdGUgIGNvbnN1bHRhbnRzICBvbiAgYQpjb250cmFj dCAgYmFzaXMgIG9yICBvdGhlcndpc2UgIGZvciAgcmVuZGVyaW5nIHByb2Zlc3Npb25hbCBv ciB0ZWNobmljYWwKc2VydmljZXMgYW5kIGFkdmljZSwKICA5LiAgdG8gIG1ha2UgIHBsYW5z LCAgc3VydmV5cywgIGFuZCAgc3R1ZGllcyAgbmVjZXNzYXJ5LCBjb252ZW5pZW50IG9yCmRl c2lyYWJsZSB0byB0aGUgZWZmZWN0dWF0aW9uIG9mIGl0cyBwdXJwb3NlcyBhbmQgcG93ZXJz IGFuZCB0byAgcHJlcGFyZQpyZWNvbW1lbmRhdGlvbnMgaW4gcmVnYXJkIHRoZXJldG8sCiAg MTAuICB0byAgcHJvY3VyZSAgaW5zdXJhbmNlICBhZ2FpbnN0ICBhbnkgIGxvc3MgaW4gY29u bmVjdGlvbiB3aXRoIGl0cwpwcm9wZXJ0eSwgYXNzZXRzIGFuZCBvcGVyYXRpb25zIGluIHN1 Y2ggYW1vdW50cyBhbmQgZnJvbSAgc3VjaCAgaW5zdXJlcnMKYXMgaXQgZGVlbXMgZGVzaXJh YmxlLAogIDExLiAgIHRvICAgZW50ZXIgIGludG8gIGFncmVlbWVudHMgIHdpdGggIHRoZSAg c3RhdGUsICBhbnkgIGNvdW50eSAgb3IKbXVuaWNpcGFsaXR5IGFuZCB0aGUgVW5pdGVkIFN0 YXRlcywgb3IgYW55IGFnZW5jeSBvciBpbnN0cnVtZW50YWxpdHkgIG9mCmFueSBvZiB0aGVt LCBvciBhbnkgb3RoZXIgcGVyc29uIGZvciBhbnkgbGF3ZnVsIHB1cnBvc2VzLAogIDEyLiAg dG8gIGFjY2VwdCAgZ3JhbnRzLCAgbG9hbnMgIG9yICBjb250cmlidXRpb25zIGZyb20gdGhl IHN0YXRlLCBhbnkKY291bnR5ICBvciAgbXVuaWNpcGFsaXR5ICBhbmQgIHRoZSAgVW5pdGVk ICBTdGF0ZXMsICBvciAgYW55ICBhZ2VuY3kgIG9yCmluc3RydW1lbnRhbGl0eSAgb2YgYW55 IG9mIHRoZW0sIGFuZCBmcm9tIGFueSBvdGhlciBwZXJzb24gb3Igc291cmNlIGFuZAp0byBl eHBlbmQgdGhlIHByb2NlZWRzIHRoZXJlb2YsCjEzLiAgdG8gbWFrZSBsb2FucyB0byBhIHBh cnRpY2lwYXRpbmcgY3VsdHVyYWwgaW5zdGl0dXRpb24gaW4gYWNjb3JkYW5jZQp3aXRoIGFu IGFncmVlbWVudCBiZXR3ZWVuICB0aGUgIHRydXN0ICBhbmQgIHRoZSAgcGFydGljaXBhdGlu ZyAgY3VsdHVyYWwKaW5zdGl0dXRpb24gICBmb3IgICB0aGUgICBkZXZlbG9wbWVudCAgb2Yg IGN1bHR1cmFsICBmYWNpbGl0aWVzICBvciAgdGhlCmluc3RpdHV0aW9uYWwgcG9ydGlvbiBv ZiBjb21iaW5lZC11c2UgZmFjaWxpdGllcywgYW5kCiAgMTQuICB0byAgZG8gIGFueSAgYW5k IGFsbCB0aGluZ3MgbmVjZXNzYXJ5LCBjb252ZW5pZW50IG9yIGRlc2lyYWJsZSB0bwpjYXJy eSBvdXQgaXRzIHB1cnBvc2VzIGFuZCBleGVyY2lzZSBpdHMgcG93ZXJzLgoKICBTICAyMC4x My4gIFNwZWNpYWwgIHBvd2VycyAgb2YgIGEgIHRydXN0LiAgIDEuIEEgdHJ1c3Qgc2hhbGwg aGF2ZSBzdWNoCnNwZWNpYWwgcG93ZXJzIHdpdGggcmVzcGVjdCB0byBhc3Npc3RpbmcgcGFy dGljaXBhdGluZyAgY3VsdHVyYWwgIGluc3RpLQp0dXRpb25zICBvciAgb3RoZXIgbm90LWZv ci1wcm9maXQgY3VsdHVyYWwgb3JnYW5pemF0aW9ucyBhcyBhcmUgcHJvdmlkZWQKYnkgc3Bl Y2lhbCBsYXc7IHByb3ZpZGVkLCB0aGF0IGEgdHJ1c3QgbWF5IG5vdCBkZXZlbG9wIG9yICBj YXVzZSAgdG8gIGJlCmRldmVsb3BlZCAgYSBjb21iaW5lZC11c2UgZmFjaWxpdHkgZm9yIHVz ZSBvciBvY2N1cGFuY3kgYnkgYSBwYXJ0aWNpcGF0LQppbmcgY3VsdHVyYWwgaW5zdGl0dXRp b24gdW5sZXNzIChpKSBpbiBhIG11bmljaXBhbGl0eSAgc3VjaCAgaW5zdGl0dXRpb24Kc2hh bGwgIGhhdmUgaGFkIGF2ZXJhZ2UgYW5udWFsIGFkbWlzc2lvbnMgb2YgYXQgbGVhc3QgZml2 ZSBodW5kcmVkIHRob3UtCnNhbmQgcGVyc29ucyBhcyBzaG93biBvbiB0aGUgcmVjb3JkcyBv ZiBzdWNoIGluc3RpdHV0aW9uIGZvciBhIHBlcmlvZCBvZgphdCBsZWFzdCBmaXZlIHllYXJz IHByaW9yIHRvIGVpdGhlciB0aGUgZWZmZWN0aXZlIGRhdGUgb2YgIHRoaXMgIGFydGljbGUK b3IgIHRoZSAgZGF0ZSAgb24gIHdoaWNoICBhIHRydXN0IGZpcnN0IGVudGVycyBpbnRvIGFu IGFncmVlbWVudCBmb3IgdGhlCmRldmVsb3BtZW50IG9mIGEgY29tYmluZWQtdXNlIGZhY2ls aXR5IGZvciB0aGUgdXNlIG9yIG9jY3VwYW5jeSBieSAgc3VjaAppbnN0aXR1dGlvbiwgIChp aSkgIGluIGEgY2l0eSBoYXZpbmcgYSBwb3B1bGF0aW9uIG9mIG9uZSBodW5kcmVkIHR3ZW50 eS0KZml2ZSB0aG91c2FuZCBvciBtb3JlLCBzdWNoIGluc3RpdHV0aW9uIHNoYWxsIGhhdmUg IGhhZCAgYXZlcmFnZSAgYW5udWFsCmFkbWlzc2lvbnMgb2YgYXQgbGVhc3QgZmlmdHkgdGhv dXNhbmQgcGVyc29ucyBhcyBzaG93biBvbiB0aGUgcmVjb3JkcyBvZgpzdWNoICBpbnN0aXR1 dGlvbiAgZm9yICBzdWNoICBwZXJpb2QgIGFuZCAgKGlpaSkgaW4gYW55IG90aGVyIGNpdHks IHN1Y2gKaW5zdGl0dXRpb24gc2hhbGwgaGF2ZSBzdWNoIG1pbmltdW0gYXZlcmFnZSBhbm51 YWwgYWRtaXNzaW9ucyBhcyBhcmUgc2V0CmZvcnRoIGluIHRoZSBzcGVjaWFsIGxhdyAgY3Jl YXRpbmcgIGEgIHRydXN0OyAgcHJvdmlkZWQsICBob3dldmVyLCAgd2l0aApyZXNwZWN0ICB0 byAgYSBwYXJ0aWNpcGF0aW5nIGN1bHR1cmFsIGluc3RpdHV0aW9uIHRoYXQgaXMgYSBwdWJs aWMgdGVsZS0KdmlzaW9uIHN0YXRpb24gd2l0aCByZXNwZWN0IHRvIHdoaWNoIGEgdHJ1c3Qg ZW50ZXJlZCBhbiBhZ3JlZW1lbnQgIHByaW9yCnRvICBKYW51YXJ5IGZpcnN0LCBuaW5ldGVl biBodW5kcmVkIG5pbmV0eSB0aGUgZm9yZWdvaW5nIHNoYWxsIG5vdCBhcHBseQphbmQgcHJv dmlkZWQgZnVydGhlciB0aGF0IHRoZSBkZWNpc2lvbiBvZiB0aGUgdHJ1c3QgaW4gZGV0ZXJt aW5pbmcgIHN1Y2gKYXZlcmFnZSBhbm51YWwgYWRtaXNzaW9ucyBzaGFsbCBiZSBmaW5hbC4K ICAyLiAgQSAgdHJ1c3QgIG1heSAgbm90ICBhY3F1aXJlICByZWFsIHByb3BlcnR5IGJ5IGNv bmRlbW5hdGlvbiwgdW5sZXNzCm90aGVyd2lzZSBwcm92aWRlZCBieSBzcGVjaWFsIGxhdy4K ICAzLiBGb3Igc28gbG9uZyBhcyBhbnkgcmVhbCBwcm9wZXJ0eSwgY29uc2lzdGluZyBvZiBh bGwgb3IgYW55IHBhcnQgIG9mCnRoZSAgbm9uLWluc3RpdHV0aW9uYWwgIHBvcnRpb24gIG9m ICBhIGNvbWJpbmVkLXVzZSBmYWNpbGl0eSBvciBpbiBvciBvbgp3aGljaCBhbGwgb3IgYW55 IHBhcnQgb2Ygc3VjaCBwb3J0aW9uIHByaW9yIHRvIGNvbXBsZXRpb24gaXMgZGVzaWduZWQg dG8KYmUgYW5kIHVwb24gY29tcGxldGlvbiBpcyBkZXZlbG9wZWQgc2hhbGwgYmUgZXhlbXB0 IGZyb20gIHJlYWwgIHByb3BlcnR5CnRheGF0aW9uIHB1cnN1YW50IHRvIHNlY3Rpb24gMjAu MzMgb2YgdGhpcyBhcnRpY2xlLCB0aGUgb3duZXJzIGZyb20gdGltZQp0byB0aW1lIG9mIHN1 Y2ggcmVhbCBwcm9wZXJ0eSBzaGFsbCBwYXkgdG8gdGhlIHRydXN0IHdoaWNoIGhhcyBkZXZl bG9wZWQKb3IgIGFwcHJvdmVkICB0aGUgIGRldmVsb3BlciAgb2Ygc3VjaCBmYWNpbGl0eSwg YW5udWFsIG9yIG90aGVyIHBlcmlvZGljCmFtb3VudHMsIGFzIHRheC1lcXVpdmFsZW5jeSBw YXltZW50cywgYXQgbGVhc3QgZXF1YWwgdG8gdGhlIHJlYWwgcHJvcGVyLQp0eSB0YXhlcyB0 aGF0IHdvdWxkIGhhdmUgb3RoZXJ3aXNlIGJlZW4gcGFpZCBvciBwYXlhYmxlICBpbiAgcmVz cGVjdCAgb2YKc3VjaCAgcmVhbCAgcHJvcGVydHk7IHByb3ZpZGVkLCBob3dldmVyLCB0aGF0 IHRoZSBzcGVjaWFsIGxhdyBjcmVhdGluZyBhCnRydXN0IG1heSBwcm92aWRlIGEgbWV0aG9k IGZvciBjYWxjdWxhdGluZyBzdWNoIHJlYWwgcHJvcGVydHkgdGF4ZXMgIGZvcgpwdXJwb3Nl cyBvZiBkZXRlcm1pbmluZyB0aGUgYW1vdW50IG9mIHN1Y2ggdGF4LWVxdWl2YWxlbmN5IHBh eW1lbnRzOyBhbmQKcHJvdmlkZWQgZnVydGhlciB0aGF0IHRoZSBzcGVjaWFsIGxhdyBjcmVh dGluZyBhIHRydXN0IHNoYWxsIHNwZWNpZnkgdGhlCnB1cnBvc2VzICBmb3IgIHdoaWNoICB0 aGUgdHJ1c3Qgc2hhbGwgdXNlIG9yIGV4cGVuZCBzdWNoIHRheC1lcXVpdmFsZW5jeQpwYXlt ZW50cywgdGhlIG1lYW5zIGZvciBlbmZvcmNpbmcgc3VjaCBwYXltZW50cyBhbmQgIHRoZSAg cHJpb3JpdGllcyAgaW4KZmF2b3Igb2YgYSB0cnVzdCBpbiBjb25uZWN0aW9uIHdpdGggc3Vj aCBlbmZvcmNlbWVudC4KICA0LiAgQSAgdHJ1c3QgYW5kIHRoZSBwYXJ0aWNpcGF0aW5nIGN1 bHR1cmFsIGluc3RpdHV0aW9uIHdpdGggd2hpY2ggdGhlCnRydXN0IGhhcyBlbnRlcmVkIGlu dG8gYW4gYWdyZWVtZW50IGZvciB0aGUgZGV2ZWxvcG1lbnQgb2YgIGEgIGNvbWJpbmVkLQp1 c2UgZmFjaWxpdHksIGFueSBmYWNpbGl0eSBmb3IgYSBub3QtZm9yLXByb2ZpdCBjdWx0dXJh bCBvcmdhbml6YXRpb24gb3IKYSAgcHVibGljICB0ZWxldmlzaW9uICBmYWNpbGl0eSBwcmlv ciB0byBKYW51YXJ5IGZpcnN0LCBuaW5ldGVlbiBodW5kcmVkCm5pbmV0eSBzaGFsbCBlYWNo IGhhdmUgYWxsIHJpZ2h0cyBwcm92aWRlZCBieSBsYXcsIGFzIGlmIGVhY2ggIHdlcmUgIHRo ZQpvd25lciBvZiBzdWNoIGZhY2lsaXR5IGFuZCB0aGUgcmVhbCBwcm9wZXJ0eSBpbiBvciBv biB3aGljaCBzdWNoIGZhY2lsaS0KdHkgaXMgb3IgaXMgZGVzaWduZWQgdG8gYmUgZGV2ZWxv cGVkLCB0byBjb250ZXN0IGluIHdob2xlIG9yIGluIHBhcnQgYW55CmFzc2Vzc21lbnQgb3Ig cmV2aXNlZCBhc3Nlc3NtZW50IG9mIHRoZSB2YWx1ZSBvZiBzdWNoIGZhY2lsaXR5IGFuZCBw cm9wLQplcnR5LCAgb3IgYW55IHBvcnRpb24gdGhlcmVvZiwgYnkgYXBwcm9wcmlhdGUgbGVn YWwgcHJvY2VlZGluZ3MsIGFuZCBmb3IKcHVycG9zZXMgb2YgdGhpcyBzdWJkaXZpc2lvbiBm b3VyLCBlYWNoIHNoYWxsIGJlIGRlZW1lZCB0byBiZSAgYSAgcGVyc29uCmFnZ3JpZXZlZC4g IEVhY2ggIG93bmVyICByZXF1aXJlZCAgdG8gbWFrZSB0YXgtZXF1aXZhbGVuY3kgcGF5bWVu dHMgdG8gYQp0cnVzdCBzaGFsbCBoYXZlIGFsbCByaWdodHMgcHJvdmlkZWQgYnkgbGF3LCBh cyBpZiBoZSB3ZXJlIHRoZSBvd25lciAgb2YKdGhlICByZWFsICBwcm9wZXJ0eSAgd2l0aCAg cmVzcGVjdCAgdG8gd2hpY2ggaGUgaXMgcmVxdWlyZWQgdG8gbWFrZSBzdWNoCnBheW1lbnRz LCB0byBjb250ZXN0IGluIHdob2xlIG9yICBpbiAgcGFydCAgYW55ICBhc3Nlc3NtZW50ICBv ciAgcmV2aXNlZAphc3Nlc3NtZW50IG9mIHRoZSB2YWx1ZSBvZiBzdWNoIHJlYWwgcHJvcGVy dHksIGFuZCBlYWNoIHN1Y2ggb3duZXIgc2hhbGwKYmUgZGVlbWVkIHRvIGJlIGEgcGVyc29u IGFnZ3JpZXZlZCBmb3IgcHVycG9zZXMgb2YgdGhpcyBzdWJkaXZpc2lvbi4KICA1LiAgU3Vi amVjdCAgdG8gIGFueSAgYWdyZWVtZW50ICB3aXRoIGhvbGRlcnMgb2YgaXRzIG5vdGVzIG9y IGJvbmRzLCBhCnRydXN0IG1heSBlbnRlciBpbnRvIGFuIGFncmVlbWVudCB0byBwYXkgb3Ig Y2F1c2UgdG8gYmUgcGFpZCwgIGJ5ICBtZWFucwp3aGljaCBtYXkgaW5jbHVkZSBhbiBhZ3Jl ZW1lbnQgd2l0aCBhIHBhcnRpY2lwYXRpbmcgY3VsdHVyYWwgaW5zdGl0dXRpb24KaW4gIGEg bXVuaWNpcGFsaXR5IG9yIGEgbm90LWZvci1wcm9maXQgY3VsdHVyYWwgaW5zdGl0dXRpb24g aW4gYSBjb3VudHksCmEgZGV2ZWxvcGVyIG9yIGFuIG93bmVyLCBhbm51YWwgc3VtcyBpbiBs aWV1IG9mICB0YXhlcyAgdG8gIGFueSAgbXVuaWNpLQpwYWxpdHkgIG9yICBwb2xpdGljYWwg IHN1YmRpdmlzaW9uICBvZiB0aGUgc3RhdGUsIGluIHJlc3BlY3Qgb2YgYW55IHJlYWwKcHJv cGVydHkgd2hpY2ggaXMgZXhlbXB0IGZyb20gdGF4YXRpb24gcHVyc3VhbnQgdG8gc2VjdGlv biAyMC4zMyBvZiB0aGlzCmFydGljbGUgYW5kIGlzIGxvY2F0ZWQgaW4gc3VjaCBtdW5pY2lw YWxpdHkgb3IgcG9saXRpY2FsIHN1YmRpdmlzaW9uLCBvcgp0aGUgc3BlY2lhbCBsYXcgY3Jl YXRpbmcgYSB0cnVzdCBtYXkgcHJvdmlkZSBmb3Igc3VjaCBwYXltZW50cyAgaW4gIGxpZXUK b2YgdGF4ZXMuCgogIFMgIDIwLjE1LiAgIFJlc291cmNlcyAgb2YgIGEgIHRydXN0LiAgMS4g IEEgdHJ1c3QgbWF5IHJlY2VpdmUsIGFjY2VwdCwKaW52ZXN0LCBhZG1pbmlzdGVyLCBleHBl bmQgYW5kICBkaXNidXJzZSAgZm9yICBpdHMgIGNvcnBvcmF0ZSAgcHVycG9zZXMsCmluY2x1 ZGluZyAgd2l0aG91dCAgbGltaXRhdGlvbiAgdGhlICBvcGVyYXRpb24gYW5kIGFkbWluaXN0 cmF0aW9uIG9mIHRoZQp0cnVzdCwgYW55IHJldmVudWVzIGFuZCBtb25pZXMgbWFkZSBhdmFp bGFibGUgb3IgdG8gYmUgbWFkZSBhdmFpbGFibGUgdG8KaXQgIGZyb20gYW55IG9yIGFsbCBz b3VyY2VzLCBpbmNsdWRpbmcgZ2lmdHMsIGdyYW50cywgbG9hbnMgYW5kIHBheW1lbnRzCmZy b20gdGhlIHN0YXRlLCBhbnkgY291bnR5IG9yIG11bmljaXBhbGl0eSBhbmQgdGhlICBVbml0 ZWQgIFN0YXRlcywgIGFuZAphbnkgYWdlbmN5IG9yIGluc3RydW1lbnRhbGl0eSBvZiBhbnkg b2YgdGhlbSwgYW5kIGZyb20gYW55IG90aGVyIHBlcnNvbi4KICAyLiAgQSAgdHJ1c3QgIHNo YWxsICBrZWVwICBzZXBhcmF0ZSAgYm9va3MgIGFuZCAgcmVjb3JkcyBvZiBhY2NvdW50IGlu CmNvbm5lY3Rpb24gd2l0aCBlYWNoIGNvbWJpbmVkLXVzZSBmYWNpbGl0eSBhbmQgIGVhY2gg IGN1bHR1cmFsICBmYWNpbGl0eQphbmQgc2hhbGwgbm90IHNwZW5kIG9yIGNvbW1pbmdsZSBh bnkgbW9uaWVzIHJlY2VpdmVkIGJ5IGl0IGluIGNvbm5lY3Rpb24Kd2l0aCBzdWNoIGZhY2ls aXR5IHdpdGggYW55IG90aGVyIG1vbmllcyByZWNlaXZlZCBieSAgaXQgIGluICBjb25uZWN0 aW9uCndpdGggIGFueSAgb3RoZXIgIGZhY2lsaXR5OyBwcm92aWRlZCwgaG93ZXZlciwgdGhl IHRydXN0IG1heSBjaGFyZ2UgZWFjaApzdWNoIGZhY2lsaXR5IGl0cyBjb3N0cyBvZiBhZG1p bmlzdHJhdGlvbiAgYW5kICBvcGVyYXRpb24gIGFsbG9jYWJsZSAgdG8KZWFjaCAgc3VjaCAg ZmFjaWxpdHksICBhbmQgIGVzdGFibGlzaCAgb3IgbWFpbnRhaW4gc3VjaCByZXNlcnZlcyBm b3IgdGhlCnBheW1lbnQgb2Ygc3VjaCBjb3N0cyBhcyB0aGUgdHJ1c3QgZGVlbXMgbmVjZXNz YXJ5LgogIDMuICAgIFRoZSAgIGNvbXB0cm9sbGVyICAgb2YgIHRoZSAgc3RhdGUgIG9yICBo aXMgIGxlZ2FsbHkgIGF1dGhvcml6ZWQKcmVwcmVzZW50YXRpdmUgYW5kIHRoZSBjaGllZiAg ZmlzY2FsICBvZmZpY2VyICBvZiAgdGhlICBtdW5pY2lwYWxpdHkgIG9yCmNvdW50eSAgaW4g IHdoaWNoICBhICB0cnVzdCAgc2hhbGwgIGRldmVsb3Agb3IgY2F1c2UgdG8gYmUgZGV2ZWxv cGVkIGFueQpjb21iaW5lZC11c2UgZmFjaWxpdHkgIG9yICBhICBmYWNpbGl0eSAgZm9yICBh ICBub3QtZm9yLXByb2ZpdCAgY3VsdHVyYWwKb3JnYW5pemF0aW9uICAgb3IgIGFueSAgY3Vs dHVyYWwgIGZhY2lsaXR5ICBvciAgaGlzICBsZWdhbGx5ICBhdXRob3JpemVkCnJlcHJlc2Vu dGF0aXZlIHNoYWxsIGJlIGF1dGhvcml6ZWQgZnJvbSB0aW1lICB0byAgdGltZSAgdG8gIGV4 YW1pbmUgIHRoZQpib29rcyAgYW5kICBhY2NvdW50cyBvZiB0aGUgdHJ1c3QgaW5jbHVkaW5n IGl0cyByZWNlaXB0cywgZGlzYnVyc2VtZW50cywKY29udHJhY3RzLCByZXNlcnZlcywgaW52 ZXN0bWVudHMsIGFuZCBhbnkgb3RoZXIgbWF0dGVycyByZWxhdGluZyB0byAgaXRzCmZpbmFu Y2lhbCBzdGFuZGluZy4gIFN1Y2ggYW4gZXhhbWluYXRpb24gc2hhbGwgYmUgY29uZHVjdGVk IGJ5IGVhY2ggc3VjaApvZmZpY2VyIGF0IGxlYXN0IG9uY2UgIGluICBldmVyeSAgdGhyZWUg IHllYXJzOyAgZWFjaCAgc3VjaCAgb2ZmaWNlciAgaXMKYXV0aG9yaXplZCwgIGhvd2V2ZXIs ICB0byAgYWNjZXB0ICBmcm9tICB0aGUgIHRydXN0LCAgaW4gbGlldSBvZiBzdWNoIGFuCmV4 YW1pbmF0aW9uLCBhbiBleHRlcm5hbCBleGFtaW5hdGlvbiBvZiBpdHMgYm9va3MgYW5kIGFj Y291bnRzIG1hZGUgYnkgYQpjZXJ0aWZpZWQgcHVibGljIGFjY291bnRhbnQgYWNjZXB0YWJs ZSB0byBzdWNoIG9mZmljZXIuCgogIFMgMjAuMTcuIEJvbmRzIGFuZCBub3RlcyBvZiBhIHRy dXN0LiAgMS4gIEEgdHJ1c3Qgc2hhbGwgaGF2ZSB0aGUgcG93ZXIKYW5kIGlzIGhlcmVieSBh dXRob3JpemVkIHRvIGlzc3VlIGZyb20gdGltZSB0byB0aW1lIGl0cyBib25kcyBhbmQgIG5v dGVzCmluICBzdWNoICBwcmluY2lwYWwgYW1vdW50cyBhcyB0aGUgdHJ1c3Qgc2hhbGwgZGV0 ZXJtaW5lIHRvIGJlIG5lY2Vzc2FyeQpmb3IgYWNoaWV2aW5nIGFueSBvZiBpdHMgY29ycG9y YXRlIHB1cnBvc2VzLCBpbmNsdWRpbmc6IChhKSB0aGUgIHBheW1lbnQKb2YgIGFsbCBvciBh bnkgcGFydCBvZiB0aGUgY29zdCBvZiBkZXZlbG9waW5nIGN1bHR1cmFsIGZhY2lsaXRpZXMg b3IgdGhlCmluc3RpdHV0aW9uYWwgIHBvcnRpb24gIG9mICBjb21iaW5lZC11c2UgIGZhY2ls aXRpZXM7ICAgKGIpICAgZGV2ZWxvcGluZwpmYWNpbGl0aWVzICBmb3Igbm90LWZvci1wcm9m aXQgY3VsdHVyYWwgb3JnYW5pemF0aW9uczsgKGMpIHRoZSBtYWtpbmcgb2YKbG9hbnMgcHVy c3VhbnQgdG8gdGhpcyBhcnRpY2xlIHRvIG5vdC1mb3ItcHJvZml0IGN1bHR1cmFsICBvcmdh bml6YXRpb25zCmFuZCAgdG8gcGFydGljaXBhdGluZyBjdWx0dXJhbCBpbnN0aXR1dGlvbnM7 IChkKSB0aGUgcGF5bWVudCBvZiBpbnRlcmVzdApvbiBib25kcyBhbmQgbm90ZXMgb2YgdGhl IHRydXN0OyAoZSkgdGhlIGVzdGFibGlzaG1lbnQgIG9mICByZXNlcnZlcyAgdG8Kc2VjdXJl ICBzdWNoICBib25kcyBhbmQgbm90ZXMgb2YgdGhlIHRydXN0OyAoZikgIHRoZSBwYXltZW50 IG9mIGV4cGVuc2VzCmluY3VycmVkIGluIGNvbm5lY3Rpb24gd2l0aCB0aGUgaXNzdWFuY2Ug b2YgdGhlIGJvbmRzIGFuZCBub3RlcyAgb2YgIHRoZQp0cnVzdDsgIGFuZCAgKGcpICBkdXJp bmcgIHRoZSAgcGVyaW9kICBvZiAgZGV2ZWxvcG1lbnQgb2YgYSBjb21iaW5lZC11c2UKZmFj aWxpdHkgb3IgYSBjdWx0dXJhbCBmYWNpbGl0eSBvciBvdGhlciAgZmFjaWxpdHkgIGF1dGhv cml6ZWQgIGJ5ICB0aGlzCmFydGljbGUsICB0aGUgIHBheW1lbnQgIG9mICBvdGhlciAgZXhw ZW5zZXMgYnV0LCBleGNlcHQgaW4gdGhlIGNhc2Ugb2YgYQp0cnVzdCBjcmVhdGVkIHByaW9y IHRvIHRoZSBlZmZlY3RpdmUgZGF0ZSBvZiB0aGlzIHNlY3Rpb24sIHN1Y2ggZXhwZW5zZXMK c2hhbGwgIG5vdCAgaW5jbHVkZSAgb3BlcmF0aW5nICBleHBlbnNlcyAgb2YgIHRoZSBwYXJ0 aWNpcGF0aW5nIGN1bHR1cmFsCmluc3RpdHV0aW9uLiBBbGwgYm9uZHMgb3Igbm90ZXMgIGFu ZCAgdGhlICBpbnRlcmVzdCAgY291cG9ucyAgYXBwbGljYWJsZQp0aGVyZXRvICB3aGV0aGVy ICBvciBub3QgaW4gbmVnb3RpYWJsZSBmb3JtIGFyZSBoZXJlYnkgbWFkZSBhbmQgc2hhbGwg YmUKY29uc3RydWVkIHRvIGJlIG5lZ290aWFibGUgaW5zdHJ1bWVudHMgYW5kIGludmVzdG1l bnQgIHNlY3VyaXRpZXMgIHVuZGVyCmFydGljbGUgZWlnaHQgb2YgdGhlIHVuaWZvcm0gY29t bWVyY2lhbCBjb2RlLgogIDIuICBBICB0cnVzdCBzaGFsbCBoYXZlIHRoZSBwb3dlciB0byBp c3N1ZSBmcm9tIHRpbWUgdG8gdGltZSAoYSkgbm90ZXMKdG8gcmVuZXcgbm90ZXMsIChiKSBi b25kcyB0byBwYXkgbm90ZXMsIGluY2x1ZGluZyB0aGUgIGludGVyZXN0ICB0aGVyZW9uCmFu ZCAgcmVkZW1wdGlvbiAgcHJlbWl1bSwgIGlmICBhbnksIChjKSBib25kcyB0byByZWZ1bmQg YW55IGJvbmRzIG9mIHRoZQp0cnVzdCB0aGVuIG91dHN0YW5kaW5nLCBpbmNsdWRpbmcgdGhl IHBheW1lbnQgb2YgYW55IHJlZGVtcHRpb24gIHByZW1pdW0KdGhlcmVvbiAgYW5kICBhbnkg IGludGVyZXN0ICBhY2NydWVkICBvciAgdG8gIGFjY3J1ZSAgdG8gdGhlIGVhcmxpZXN0IG9y CnN1YnNlcXVlbnQgZGF0ZSBvZiByZWRlbXB0aW9uLCBwdXJjaGFzZSBvciBtYXR1cml0eSBv ZiBzdWNoICBib25kcy4gIFRoZQpyZWZ1bmRpbmcgIGJvbmRzICBtYXkgIGJlIGV4Y2hhbmdl ZCBmb3IgdGhlIGJvbmRzIHRvIGJlIHJlZnVuZGVkIG9yIHNvbGQKYW5kIHRoZSBwcm9jZWVk cyBhcHBsaWVkIHRvIHRoZSBwdXJjaGFzZSwgcmVkZW1wdGlvbiBvciBwYXltZW50IG9mICBz dWNoCmJvbmRzLCAgYW5kICBwZW5kaW5nIHN1Y2ggcHVyY2hhc2UsIHJlZGVtcHRpb24gb3Ig cGF5bWVudCwgc3VjaCBwcm9jZWVkcwptYXkgYmUgaW52ZXN0ZWQgYW5kIHJlaW52ZXN0ZWQg aW4gb2JsaWdhdGlvbnMgb2Ygb3IgIGd1YXJhbnRlZWQgIGJ5ICB0aGUKVW5pdGVkICBTdGF0 ZXMsIHRoZSBzdGF0ZSwgb3IgYW55IHBvbGl0aWNhbCBzdWJkaXZpc2lvbiBvZiB0aGUgc3Rh dGUsIG9yCmFueSBhZ2VuY3kgb3IgaW5zdHJ1bWVudGFsaXR5IG9mIGFueSBvZiB0aGVtLCBz ZWN1cmVkIGluIHN1Y2ggbWFubmVyICBhcwp0aGUgIHRydXN0ICBzaGFsbCAgZGV0ZXJtaW5l LCBtYXR1cmluZyBhdCBzdWNoIHRpbWUgb3IgdGltZXMgYXMgc2hhbGwgYmUKYXBwcm9wcmlh dGUgdG8gYXNzdXJlIHRoZSBwcm9tcHQgcGF5bWVudCwgYXMgdG8gdGhlIHByaW5jaXBhbCwg IGludGVyZXN0CmFuZCByZWRlbXB0aW9uIHByZW1pdW0sIGlmIGFueSwgb24gdGhlIG91dHN0 YW5kaW5nIGJvbmRzIHRvIGJlIHJlZnVuZGVkLgpBIHRydXN0IHNoYWxsIGhhdmUgcG93ZXIg b3V0IG9mIGFueSBmdW5kcyBhdmFpbGFibGUgdGhlcmVmb3IgdG8gcHVyY2hhc2UKKGFzICBk aXN0aW5ndWlzaGVkICBmcm9tICB0aGUgIHBvd2VyICBvZiByZWRlbXB0aW9uIGhlcmVpbiBw cm92aWRlZCkgYW55CmJvbmRzIG9yIG5vdGVzIG9mIHRoZSAgdHJ1c3QsICBhbmQgIGFsbCAg Ym9uZHMgIHNvICBwdXJjaGFzZWQgIHNoYWxsICBiZQpjYW5jZWxsZWQuCiAgMy4gIFdpdGgg IHJlc3BlY3QgdG8gbm90ZXMgb3IgYm9uZHMgaXNzdWVkIG9yIHJlbmV3ZWQgb24gYW5kIGFm dGVyIHRoZQplZmZlY3RpdmUgZGF0ZSBvZiB0aGlzIHRpdGxlLCBubyBub3RlIG9yIHJlbmV3 YWwgIHRoZXJlb2YgIHNoYWxsICBtYXR1cmUKbW9yZSAgdGhhbiAgZml2ZSAgeWVhcnMgZnJv bSBhbmQgYWZ0ZXIgdGhlIGRhdGUgb2YgdGhlIG9yaWdpbmFsIGlzc3VlIG9mCnN1Y2ggbm90 ZSwgYW5kIG5vIGJvbmQgb3IgYm9uZCBpc3N1ZWQgdG8gcmVmdW5kIHN1Y2ggYm9uZCAgc2hh bGwgIG1hdHVyZQptb3JlICB0aGFuIHRoaXJ0eSB5ZWFycyBmcm9tIGFuZCBhZnRlciB0aGUg ZGF0ZSBvZiB0aGUgb3JpZ2luYWwgaXNzdWUgb2YKc3VjaCBib25kLCBwcm92aWRlZCwgaG93 ZXZlciwgbm8gYm9uZCAgaXNzdWVkICB0byAgcmVmdW5kICBib25kcyAgaXNzdWVkCnByaW9y IHRvIHRoZSBlZmZlY3RpdmUgZGF0ZSBvZiB0aGlzIHNlY3Rpb24gc2hhbGwgbWF0dXJlIG1v cmUgdGhhbiBmaWZ0eQp5ZWFycyBmcm9tIGFuZCBhZnRlciB0aGUgZGF0ZSBvZiB0aGUgb3Jp Z2luYWwgaXNzdWUgb2YgIGFueSAgc3VjaCAgYm9uZC4KTm90d2l0aHN0YW5kaW5nICB0aGUg IGZvcmVnb2luZywgbm90ZXMgaXNzdWVkIGJ5IGEgdHJ1c3QgZm9yIHRoZSBwdXJwb3NlCm9m IHJlcGF5aW5nIGFkdmFuY2VzIGZyb20gYSAgcGFydGljaXBhdGluZyAgY3VsdHVyYWwgIGlu c3RpdHV0aW9uICB3aGljaAp1c2VzICBvciAgb2NjdXBpZXMgIHRoZSBpbnN0aXR1dGlvbmFs IHBvcnRpb24gb2YgYSBjb21iaW5lZC11c2UgZmFjaWxpdHkKdGhlIGNvc3Qgb2YgZGV2ZWxv cG1lbnQgb2Ygd2hpY2ggd2FzIHBhaWQgd2l0aCB0aGUgcHJvY2VlZHMgb2YgYm9uZHMgIG9m CnRoZSAgdHJ1c3QgIHdoaWNoIHdlcmUgaXNzdWVkIHByaW9yIHRvIFNlcHRlbWJlciBmaXJz dCwgbmluZXRlZW4gaHVuZHJlZApuaW5ldHktb25lLCBzaGFsbCBtYXR1cmUgbm8gbGF0ZXIg dGhhbiBzZXZlbiB5ZWFycyBmcm9tICBhbmQgIGFmdGVyICB0aGUKZGF0ZSAgb2YgIG9yaWdp bmFsICBpc3N1ZSAgb2Ygc3VjaCBub3RlLCBhbmQgYm9uZHMgaXNzdWVkIGJ5IGEgdHJ1c3Qg Zm9yCnN1Y2ggcHVycG9zZSwgaW5jbHVkaW5nIGJvbmRzIGlzc3VlZCB0byByZWZ1bmQgc3Vj aCBub3Rlcywgc2hhbGwgIG1hdHVyZQpubyAgbGF0ZXIgIHRoYW4gZmlmdHkgeWVhcnMgZnJv bSBhbmQgYWZ0ZXIgdGhlIGRhdGUgb2Ygb3JpZ2luYWwgaXNzdWUgb2YKc3VjaCBib25kcy4K ICA0LiAgVGhlICBpc3N1YW5jZSBvZiBib25kcyBhbmQgbm90ZXMgYnkgYSB0cnVzdCBzaGFs bCBiZSBhdXRob3JpemVkIGJ5CnJlc29sdXRpb24gb2YgdGhlIHRydXN0IHdpdGhvdXQgZnVy dGhlciBhdXRob3JpemF0aW9uIG9yIGFwcHJvdmFsLCB3aGljaApyZXNvbHV0aW9uIHNoYWxs IGJlIGEgcGFydCBvZiB0aGUgY29udHJhY3Qgd2l0aCB0aGUgaG9sZGVycyBvZiB0aGUgYm9u ZHMKb3Igbm90ZXMgdGhlcmVieSBhdXRob3JpemVkLiAgU3VjaCAgcmVzb2x1dGlvbiAgbWF5 ICBwcm92aWRlICB0aGF0ICBzdWNoCmJvbmRzICBhbmQgIG5vdGVzICBtYXkgIGJlIHJlZ2lz dGVyZWQgb3IgcmVnaXN0cmFibGUgYXMgdG8gcHJpbmNpcGFsIGFuZAppbnRlcmVzdCBvciBh cyB0byBpbnRlcmVzdCBhbG9uZSBhbmQgdGhhdCBzdWNoIGJvbmRzIGFuZCAgbm90ZXMgIG1h eSAgYmUKcGF5YWJsZSAgYXQgIHN1Y2ggcGxhY2Ugb3IgcGxhY2VzLCB3aXRoaW4gb3Igd2l0 aG91dCB0aGUgc3RhdGUsIG1heSBiZWFyCmludGVyZXN0IGF0IHN1Y2ggcmF0ZSBvciByYXRl cywgbWF5IGJlIHBheWFibGUgYW5kIG1hdHVyZSBhdCAgc3VjaCAgdGltZQpvciAgdGltZXMs ICBtYXkgIGJlIGluIHN1Y2ggZm9ybSBhbmQgZXZpZGVuY2VkIGluIHN1Y2ggbWFubmVyLCBt YXkgYmUgaW4Kc3VjaCAgZGVub21pbmF0aW9ucywgIGFuZCAgbWF5ICBjb250YWluICBzdWNo ICAgb3RoZXIgICBwcm92aXNpb25zICAgbm90CmluY29uc2lzdGVudCAgd2l0aCAgdGhpcyAg YXJ0aWNsZSwgaW5jbHVkaW5nIHByb3Zpc2lvbnMgYXMgdG8gcmVzZXJ2ZSBvcgpzaW5raW5n IGZ1bmRzLCBwYXltZW50LCByZWRlbXB0aW9uICBvciAgcmVmdW5kaW5nICBvZiAgYm9uZHMg IG9yICBub3RlcywKc2VjdXJpdHkgIHRoZXJlZm9yLCAgZXZlbnRzICBvZiAgZGVmYXVsdCwg IHJlbWVkaWVzICBvZiAgYm9uZGhvbGRlcnMgIG9yCm5vdGVob2xkZXJzLCBhcHBvaW50bWVu dCBvZiB0cnVzdGVlcywgYXMgZGlzdGluZ3Vpc2hlZCBmcm9tICBtZW1iZXJzICBvZgp0aGUg IGJvYXJkICBvZiAgdHJ1c3RlZXMgIG9mICBhICB0cnVzdCBmb3IgY3VsdHVyYWwgcmVzb3Vy Y2VzLCBvciBmaXNjYWwKYWdlbnRzLCBjdXN0b2R5LCBjb2xsZWN0aW9uLCBzZWN1cmluZywg aW52ZXN0bWVudCAgYW5kICBwYXltZW50ICBvZiAgYW55Cm1vbmV5ICBhbmQgIGFtZW5kbWVu dCBvciBhYnJvZ2F0aW9uIG9mIHN1Y2ggcHJvdmlzaW9ucywgYWxsIGFzIHRoZSB0cnVzdApt YXkgZGV0ZXJtaW5lOyBwcm92aWRlZCB0aGF0IHN1Y2ggcmVzb2x1dGlvbiBtYXkgcHJvdmlk ZSBmb3IgdGhlICBtYW5uZXIKb2YgZGV0ZXJtaW5pbmcgYW55IG9yIGFsbCBvZiB0aGUgZm9y ZWdvaW5nIHByb3Zpc2lvbnMgZm9yIHN1Y2ggYm9uZHMgYW5kCm5vdGVzIGluIGxpZXUgb2Yg ZGV0ZXJtaW5pbmcgc3VjaCBwcm92aXNpb25zLgogIDUuICBCb25kcyAgbWF5ICBiZSBpc3N1 ZWQgaW4gb25lIG9yIG1vcmUgc2VyaWVzIGFzIHNlcmlhbCBib25kcywgb3IgYXMKdGVybSBi b25kcywgb3IgYXMgYSAgY29tYmluYXRpb24gIHRoZXJlb2YuICAgQW55ICBzaWduYXR1cmUs ICBtYW51YWwgIG9yCmZhY3NpbWlsZSwgIG9mICBhbiAgb2ZmaWNlciAgb2YgdGhlIHRydXN0 IGFwcGVhcmluZyBvbiBib25kcyBvciBub3RlcyBvcgpjb3Vwb25zIHNoYWxsIGJlIHZhbGlk IGFuZCBzdWZmaWNpZW50IGZvciBhbGwgcHVycG9zZXMgIHdoZXRoZXIgIG9yICBub3QKc3Vj aCAgb2ZmaWNlciAgc2hhbGwgIHRoZW4gYmUgaW4gb2ZmaWNlLiAgVGhlIHRydXN0IG1heSBh bHNvIHByb3ZpZGUgZm9yCnRoZSBhdXRoZW50aWNhdGlvbiBvZiB0aGUgYm9uZHMgb3Igbm90 ZXMgYnkgYSB0cnVzdGVlIChhcyAgZGlzdGluZ3Vpc2hlZApmcm9tICBhICBtZW1iZXIgIG9m ICB0aGUgIGJvYXJkICBvZiAgdHJ1c3RlZXMgIG9mICBhICB0cnVzdCBmb3IgY3VsdHVyYWwK cmVzb3VyY2VzKSBvciBmaXNjYWwgYWdlbnQuCiAgNi4gIFRoZSBib25kcyBvciBub3RlcyBv ZiBhIHRydXN0IG1heSBiZSBzb2xkIGF0IHN1Y2ggcHJpY2VzIGF0IGEgcHViLQpsaWMgb3Ig cHJpdmF0ZSBzYWxlLCBpbiBzdWNoIG1hbm5lciBhbmQgZnJvbSB0aW1lIHRvICB0aW1lLCAg YXMgIG1heSAgYmUKZGV0ZXJtaW5lZCAgYnkgIHRoZSAgdHJ1c3QsIGFuZCB0aGUgdHJ1c3Qg bWF5IHBheSBhbGwgZXhwZW5zZXMsIHByZW1pdW1zCmFuZCAgY29tbWlzc2lvbnMgIHdoaWNo ICBpdCAgbWF5ICBkZWVtICBuZWNlc3NhcnkgIG9yICBhZHZhbnRhZ2VvdXMgICBpbgpjb25u ZWN0aW9uICB3aXRoICB0aGUgIGlzc3VhbmNlIGFuZCBzYWxlIHRoZXJlb2YuIE5vIGJvbmRz IG9yIG5vdGVzIG9mIGEKdHJ1c3QgbWF5IGJlIHNvbGQgYXQgYSBwcml2YXRlIHNhbGUgIHVu bGVzcyAgc3VjaCAgc2FsZSAgYW5kICB0aGUgIHRlcm1zCnRoZXJlb2YgIGhhdmUgIGJlZW4g IGFwcHJvdmVkIGluIHdyaXRpbmcgYnkgdGhlIGNvbXB0cm9sbGVyIG9mIHRoZSBzdGF0ZQph bmQgdGhlIGNoaWVmIGZpc2NhbCBvZmZpY2VyIG9mIHRoZSBtdW5pY2lwYWxpdHkgb3IgY291 bnR5IGluIHdoaWNoICB0aGUKY29tYmluZWQtdXNlIGZhY2lsaXR5IG9yIGN1bHR1cmFsIGZh Y2lsaXR5IGZvciB3aGljaCBzdWNoIGJvbmRzIG9yIG5vdGVzCmFyZSBpc3N1ZWQgaXMgbG9j YXRlZC4KICA3LiAgTmVpdGhlciAgdGhlICB0cnVzdGVlcywgIG9mZmljZXJzIG9yIGVtcGxv eWVlcyBvZiBhIHRydXN0LCBub3IgYW55CnBhcnRpY2lwYXRpbmcgY3VsdHVyYWwgaW5zdGl0 dXRpb24gb3IgdGhlIG1lbWJlcnMsIGRpcmVjdG9ycywgIHRydXN0ZWVzLApvZmZpY2VycyAg b3IgIGVtcGxveWVlcyBvZiBzdWNoIGluc3RpdHV0aW9uLCBub3IgYW55IHBlcnNvbiBleGVj dXRpbmcgb3IKYXV0aGVudGljYXRpbmcgdGhlIGJvbmRzIG9yIG5vdGVzIG9mIHRoZSB0cnVz dCBzaGFsbCBiZSAgbGlhYmxlICBvbiAgdGhlCmJvbmRzICBvciAgbm90ZXMgIG9yICBiZSAg c3ViamVjdCAgdG8gYW55IHBlcnNvbmFsIG9yIG90aGVyIGxpYWJpbGl0eSBvcgphY2NvdW50 YWJpbGl0eSBieSByZWFzb24gb2YgdGhlIGlzc3VhbmNlIHRoZXJlb2YuCgogIFMgIDIwLjE5 LiAgU2VjdXJpdHkgIGZvciAgYm9uZHMgIG9yICBub3Rlcy4gICAxLiAgVGhlIHByaW5jaXBh bCBvZiBhbmQKaW50ZXJlc3Qgb24gYW55IGJvbmRzIG9yIG5vdGVzIGlzc3VlZCBieSBhIHRy dXN0IG1heSAgYmUgIHNlY3VyZWQgIGJ5ICBhCnBsZWRnZSAgb2YgIGFueSAgcmV2ZW51ZXMg IGFuZCAgcmVjZWlwdHMgb2YgdGhlIHRydXN0LCBpbmNsdWRpbmcgd2l0aG91dApsaW1pdGF0 aW9uIHRoZSByZWNlaXB0IG9mICBzdW1zICBhcyAgdGF4LWVxdWl2YWxlbmN5ICBwYXltZW50 cyAgb3IgIGxvYW4KcmVwYXltZW50cywgIGFuZCAgbWF5ICBiZSAgc2VjdXJlZCBieSBhIGxl YXNlLCBsb2FuIGFncmVlbWVudCwgbW9ydGdhZ2UsCnBsZWRnZSwgc2VjdXJpdHkgaW50ZXJl c3Qgb3Igb3RoZXIgaW5zdHJ1bWVudCBjb3ZlcmluZyBhbGwgb3IgIGFueSAgcGFydApvZiAg YSAgY29tYmluZWQtdXNlICBmYWNpbGl0eSBvciBjdWx0dXJhbCBmYWNpbGl0eSBhcyBhdXRo b3JpemVkIGJ5IHRoaXMKYXJ0aWNsZSwgIGluY2x1ZGluZyAgYW55ICBhZGRpdGlvbnMsICBp bXByb3ZlbWVudHMsICBleHRlbnNpb25zICB0byAgIG9yCmVubGFyZ2VtZW50cyAgb2Ygc3Vj aCBhIGZhY2lsaXR5IHRoZXJlYWZ0ZXIgbWFkZS4gIEJvbmRzIG9yIG5vdGVzIGlzc3VlZApm b3IgYSBjb21iaW5lZC11c2UgZmFjaWxpdHkgIG9yIGN1bHR1cmFsIGZhY2lsaXR5IGFzIGF1 dGhvcml6ZWQgYnkgIHRoaXMKYXJ0aWNsZSAgbWF5ICBhbHNvICBiZSAgc2VjdXJlZCAgYnkg IGFuICBhc3NpZ25tZW50IG9mIGFueSBsZWFzZSBvZiBzdWNoCmNvbWJpbmVkLXVzZSBmYWNp bGl0eSBvciBjdWx0dXJhbCBmYWNpbGl0eSBhcyBhdXRob3JpemVkIGJ5IHRoaXMgYXJ0aWNs ZQphbmQgIGJ5ICBhbiAgYXNzaWdubWVudCBvZiB0aGUgcmV2ZW51ZXMgYW5kIHJlY2VpcHRz IG9mIGEgdHJ1c3QgZnJvbSBhbnkKc3VjaCAgbGVhc2UgIGFuZCAgYnkgIHRoZSAgYXNzaWdu bWVudCAgb2YgIGFueSAgbG9hbiAgYWdyZWVtZW50ICB3aXRoICBhCnBhcnRpY2lwYXRpbmcg IGN1bHR1cmFsIGluc3RpdHV0aW9uIGFuZCBieSBhbiBhc3NpZ25tZW50IG9mIHRoZSByZXZl bnVlcwphbmQgcmVjZWlwdHMgb2YgYSAgdHJ1c3QgIGZyb20gIGFueSAgc3VjaCAgbG9hbiAg YWdyZWVtZW50ICBhbmQgIGJ5ICB0aGUKYXNzaWdubWVudCAgIG9mICAgYW55ICBtb3J0Z2Fn ZSwgIHBsZWRnZSwgIHNlY3VyaXR5ICBpbnRlcmVzdCAgb3IgIG90aGVyCmluc3RydW1lbnQg Y292ZXJpbmcgYSBjb21iaW5lLXVzZSBmYWNpbGl0eSBvciBjdWx0dXJhbCBmYWNpbGl0eS4K ICAyLiAgQSAgdHJ1c3QgbWF5IHByb3ZpZGUgaW4gYW55IHByb2NlZWRpbmdzIHVuZGVyIHdo aWNoIGJvbmRzIG9yIG5vdGVzCm1heSBiZSBhdXRob3JpemVkIGZvciB0aGUgdGltZSBhbmQg bWFubmVyICBvZiAgYW5kICB0aGUgIHJlcXVpc2l0ZXMgIGZvcgpkaXNidXJzZW1lbnRzICBm b3IgIHRoZSAgY29zdCAgb2YgIGEgIGNvbWJpbmVkLXVzZSBmYWNpbGl0eSAgb3IgY3VsdHVy YWwKZmFjaWxpdHkgYXV0aG9yaXplZCBieSAgdGhpcyAgYXJ0aWNsZSwgIGFuZCAgZm9yICBh bGwgIGNlcnRpZmljYXRlcyAgYW5kCmFwcHJvdmFscyAgb2YgIGNvbnN0cnVjdGlvbiAgYW5k ICBkaXNidXJzZW1lbnRzICBhcyB0aGUgdHJ1c3Qgc2hhbGwgZGVlbQpuZWNlc3NhcnkuCiAg My4gIEFueSAgcGxlZGdlICBieSAgYSAgdHJ1c3QgIG9mLCAgb3IgIHNlY3VyaXR5ICBpbnRl cmVzdCBncmFudGVkIGluLAplYXJuaW5ncywgcmV2ZW51ZXMgb3Igb3RoZXIgbW9uaWVzLCBp bmNsdWRpbmcgdGF4LWVxdWl2YWxlbmN5ICBwYXltZW50cywKYWNjb3VudHMsICAgY29udHJh Y3QgIHJpZ2h0cywgIGdlbmVyYWwgIGludGFuZ2libGVzICBvciAgb3RoZXIgIHBlcnNvbmFs CnByb3BlcnR5IHNoYWxsIGJlIHZhbGlkIGFuZCBiaW5kaW5nIGZyb20gdGhlIHRpbWUgIHdo ZW4gIHRoZSAgcGxlZGdlICBpcwptYWRlOyAgdGhlICBlYXJuaW5ncywgcmV2ZW51ZXMgb3Ig b3RoZXIgbW9uaWVzIHNvIHBsZWRnZWQgYW5kIHRoZXJlYWZ0ZXIKcmVjZWl2ZWQgYnkgdGhl IHRydXN0IHNoYWxsIGltbWVkaWF0ZWx5IGJlIHN1YmplY3QgdG8gdGhlIGxpZW4gIG9mICBz dWNoCnBsZWRnZSAgb3Igb3RoZXIgc2VjdXJpdHkgaW50ZXJlc3QsIHdpdGhvdXQgYW55IHBo eXNpY2FsIGRlbGl2ZXJ5IG9mIHRoZQpjb2xsYXRlcmFsIHRoZXJlb2Ygb3IgZnVydGhlciBh Y3QsIGFuZCB0aGUgbGllbiBvZiBhbnkgIHN1Y2ggIHBsZWRnZSAgb3IKb3RoZXIgIHNlY3Vy aXR5ICBpbnRlcmVzdCAgc2hhbGwgIGJlICB2YWxpZCAgYW5kICBiaW5kaW5nIGFzIGFnYWlu c3QgYWxsCnBhcnRpZXMgaGF2aW5nIGNsYWltcyBvZiBhbnkga2luZCBpbiB0b3J0LCBjb250 cmFjdCBvciBvdGhlcndpc2UgYWdhaW5zdAp0aGUgIHRydXN0IGlycmVzcGVjdGl2ZSBvZiB3 aGV0aGVyIHN1Y2ggcGFydGllcyBoYXZlIG5vdGljZSB0aGVyZW9mLiAgTm8KcmVzb2x1dGlv biBvciBhbnkgb3RoZXIgaW5zdHJ1bWVudCBieSB3aGljaCBhIHBsZWRnZSBvciAgb3RoZXIg IHNlY3VyaXR5CmludGVyZXN0ICBpcyAgY3JlYXRlZCAgbmVlZCAgYmUgIHJlY29yZGVkLCBh bmQgbm8gbm90aWNlIHRoZXJlb2YgbmVlZCBiZQpmaWxlZCBpbiBhbnkgcHVibGljIG9mZmlj ZS4KICA0LiAgSW4gIHRoZSBkaXNjcmV0aW9uIG9mIGEgdHJ1c3QsIHRoZSBib25kcyBtYXkg YmUgc2VjdXJlZCBieSBhIHRydXN0CmluZGVudHVyZSwgd2hpY2ggbWF5IGNvbnRhaW4gYW55 IGxhd2Z1bCBwcm92aXNpb25zICBmb3IgIHByb3RlY3RpbmcgIGFuZAplbmZvcmNpbmcgdGhl IHJpZ2h0cyBhbmQgcmVtZWRpZXMgb2YgdGhlIGJvbmRob2xkZXJzLCBieSBhbmQgYmV0d2Vl biB0aGUKdHJ1c3QgYW5kIGEgY29ycG9yYXRlIHRydXN0ZWUsIGFzIGRpc3Rpbmd1aXNoZWQg ZnJvbSAgYSAgbWVtYmVyICBvZiAgdGhlCmJvYXJkICBvZiAgdHJ1c3RlZXMgIG9mICBhIHRy dXN0LCB3aGljaCBtYXkgYmUgYW55IHRydXN0IGNvbXBhbnkgb3IgYmFuawpoYXZpbmcgdGhl IHBvd2VycyBvZiBhIHRydXN0IGNvbXBhbnkgaW4gdGhlIHN0YXRlLiAgQSB0cnVzdCBtYXkg IHByb3ZpZGUKYnkgc3VjaCB0cnVzdCBpbmRlbnR1cmUgZm9yIHRoZSBwYXltZW50IG9mIHRo ZSBwcm9jZWVkcyBvZiB0aGUgYm9uZHMgYW5kCnRoZSByZXZlbnVlcyBvZiBhIGNvbWJpbmVk LXVzZSBmYWNpbGl0eSBvciBjdWx0dXJhbCBmYWNpbGl0eSAgYXV0aG9yaXplZApieSAgdGhp cyAgYXJ0aWNsZSB0byB0aGUgdHJ1c3RlZSB1bmRlciBzdWNoIHRydXN0IGluZGVudHVyZSBv ciBvdGhlciBkZS0KcG9zaXRvcnksICBhbmQgIGZvciAgdGhlICBtZXRob2QgIG9mICBkaXNi dXJzZW1lbnQgIHRoZXJlb2YsICB3aXRoICBzdWNoCnNhZmVndWFyZHMgIGFuZCByZXN0cmlj dGlvbnMgYXMgaXQgbWF5IGRldGVybWluZS4gIElmIHRoZSBib25kcyBzaGFsbCBiZQpzZWN1 cmVkIGJ5IGEgdHJ1c3QgaW5kZW50dXJlIHRoZSBib25kaG9sZGVycyBzaGFsbCBoYXZlIG5v IGF1dGhvcml0eSAgdG8KYXBwb2ludCBhIHNlcGFyYXRlIHRydXN0ZWUgdG8gcmVwcmVzZW50 IHRoZW0uCgogIFMgMjAuMjEuIFJlc2VydmUgZnVuZC4gQSB0cnVzdCBtYXkgY3JlYXRlIGFu ZCBlc3RhYmxpc2ggYSByZXNlcnZlIGZ1bmQKdG8gc2VjdXJlIHRoZSBib25kcyBvZiBhIHRy dXN0IGFuZCBtYXkgcGF5IGludG8gc3VjaCAgcmVzZXJ2ZSAgZnVuZCAgYW55Cm1vbmllcyB3 aGljaCBtYXkgYmUgbWFkZSBhdmFpbGFibGUgdG8gdGhlIHRydXN0IGZvciB0aGUgcHVycG9z ZXMgb2Ygc3VjaApmdW5kIGZyb20gIGFueSAgc291cmNlLCAgaW5jbHVkaW5nICB3aXRob3V0 ICBsaW1pdGF0aW9uICB0YXgtZXF1aXZhbGVuY3kKcGF5bWVudHMuICBUaGUgbW9uaWVzIGhl bGQgaW4gb3IgY3JlZGl0ZWQgdG8gYW55IHN1Y2ggcmVzZXJ2ZSBmdW5kIHNoYWxsCmJlIHVz ZWQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIHByb2NlZWRpbmdzIHVuZGVyICB3aGlj aCAgdGhlICBib25kcwpzaGFsbCBiZSBpc3N1ZWQgb3IgYXMgcHJvdmlkZWQgYnkgc3BlY2lh bCBsYXcuCgogIFMgIDIwLjIzLiAgIFN0YXRlYHMgIHJpZ2h0IHRvIHJlcXVpcmUgYSByZWRl bXB0aW9uIG9mIGJvbmRzLiAgTm90d2l0aC0Kc3RhbmRpbmcgYW5kIGluIGFkZGl0aW9uIHRv IGFueSBwcm92aXNpb25zIGZvciB0aGUgcmVkZW1wdGlvbiAgb2YgIGJvbmRzCndoaWNoICBt YXkgYmUgY29udGFpbmVkIGluIGFueSBjb250cmFjdCB3aXRoIHRoZSBob2xkZXJzIG9mIHRo ZSBib25kcyBvZgphIHRydXN0LCB0aGUgc3RhdGUgIG1heSwgIHVwb24gIGZ1cm5pc2hpbmcg IHN1ZmZpY2llbnQgIGZ1bmRzICB0aGVyZWZvciwKcmVxdWlyZSB0aGUgdHJ1c3QgdG8gcmVk ZWVtLCBwcmlvciB0byBtYXR1cml0eSwgYXMgYSB3aG9sZSwgYW55IGlzc3VlIG9mCmJvbmRz IG9uIGFueSBpbnRlcmVzdCBwYXltZW50IGRhdGUgbm90IGxlc3MgdGhhbiB0d2VudHkgeWVh cnMgYWZ0ZXIgIHRoZQpkYXRlICBvZiB0aGUgYm9uZHMgb2Ygc3VjaCBpc3N1ZSBhdCBvbmUg aHVuZHJlZCBmaXZlIHBlciBjZW50dW0gb2YgdGhlaXIKZmFjZSB2YWx1ZSBhbmQgYWNjcnVl ZCBpbnRlcmVzdCBvciBhdCBzdWNoIGxvd2VyIHJlZGVtcHRpb24gcHJpY2UgYXMgbWF5CmJl IHByb3ZpZGVkIGluIHRoZSBib25kcyBpbiBjYXNlIG9mIHRoZSByZWRlbXB0aW9uIHRoZXJl b2YgYXMgYSB3aG9sZSBvbgp0aGUgcmVkZW1wdGlvbiBkYXRlLiAgTm90aWNlIG9mIHN1Y2gg cmVkZW1wdGlvbiBzaGFsbCAgYmUgIHB1Ymxpc2hlZCAgYXQKbGVhc3QgIHR3aWNlICBpbiAg YXQgIGxlYXN0ICB0d28gIG5ld3NwYXBlcnMgIHB1Ymxpc2hpbmcgYW5kIGNpcmN1bGF0aW5n CnJlc3BlY3RpdmVseSBpbiB0aGUgY2l0aWVzIG9mIEFsYmFueSBhbmQgTmV3IFlvcmssIHRo ZSBmaXJzdCBwdWJsaWNhdGlvbgp0byBiZSBhdCBsZWFzdCB0aGlydHkgZGF5cyBiZWZvcmUg dGhlIGRhdGUgb2YgcmVkZW1wdGlvbi4KCiAgUyAgMjAuMjUuICBSZW1lZGllcyAgb2YgIGJv bmRob2xkZXJzIGFuZCBub3RlaG9sZGVycy4gIDEuICBUaGUgc3VwcmVtZQpjb3VydCBzaGFs bCBoYXZlIGp1cmlzZGljdGlvbiBvZiBhbnkgc3VpdCwgYWN0aW9uIG9yIHByb2NlZWRpbmcg Ynkgb3Igb24KYmVoYWxmICBvZiAgdGhlICBob2xkZXJzICBvZiAgYW55IGJvbmRzIG9yIG5v dGVzIGlzc3VlZCBieSBhIHRydXN0LiAgVGhlCnZlbnVlIG9mIGFueSBzdWNoIHN1aXQsIGFj dGlvbiwgb3IgIHByb2NlZWRpbmcgIHNoYWxsICBiZSAgbGFpZCAgaW4gIHRoZQpjb3VudHkg aW4gd2hpY2ggdGhlIHByaW5jaXBhbCBvZmZpY2Ugb2YgdGhlIHRydXN0IGlzIGxvY2F0ZWQu CiAgMi4gIEJlZm9yZSAgdGhlIHByaW5jaXBhbCBvZiBub3RlcyBvciBib25kcyBvZiBhIHRy dXN0IGlzIGRlY2xhcmVkIGR1ZQphbmQgcGF5YWJsZSBieSBvciBvbiBiZWhhbGYgIG9mICBi b25kaG9sZGVycyAgYW5kICBub3RlaG9sZGVycyAgdGhlcmVvZiwKdGhpcnR5ICBkYXlzICBu b3RpY2Ugc2hhbGwgZmlyc3QgYmUgZ2l2ZW4gaW4gd3JpdGluZyB0byB0aGUgZ292ZXJub3Is IHRvCnRoZSBhdHRvcm5leSBnZW5lcmFsIG9mIHRoZSBzdGF0ZSwgdG8gdGhlIG1heW9yIG9m IHRoZSAgbXVuaWNpcGFsaXR5ICBvcgpjaGllZiAgZXhlY3V0aXZlICBvZmZpY2VyIG9mIHRo ZSBjb3VudHkgaW4gd2hpY2ggdGhlIHByaW5jaXBhbCBvZmZpY2Ugb2YKdGhlIHRydXN0IGlz IGxvY2F0ZWQgYW5kIHRvIHRoZSB0cnVzdC4KCiAgUyAyMC4yNy4gIFN0YXRlIGFuZCBtdW5p Y2lwYWxpdGllcyBub3QgbGlhYmxlIG9uIGJvbmRzIGFuZCBub3Rlcy4gIFRoZQpib25kcywg bm90ZXMgYW5kIG90aGVyIG9ibGlnYXRpb25zIG9mIHRoZSB0cnVzdCBzaGFsbCBub3QgYmUg YSAgZGVidCAgb2YKdGhlIHN0YXRlIG9yIG9mIGFueSBtdW5pY2lwYWxpdHkgb3IgY291bnR5 IGluIHRoZSBzdGF0ZSwgYW5kIG5laXRoZXIgdGhlCnN0YXRlIG5vciBhbnkgbXVuaWNpcGFs aXR5IG9yIGNvdW50eSBzaGFsbCBiZSBsaWFibGUgdGhlcmVvbi4KCiAgUyAgMjAuMjkuICBB Z3JlZW1lbnQgb2YgdGhlIHN0YXRlLiBUaGUgc3RhdGUgZG9lcyBoZXJlYnkgcGxlZGdlIHRv IGFuZAphZ3JlZSB3aXRoIHRoZSBob2xkZXJzIG9mIGFueSBib25kcyBvciBub3RlcyBvZiBh IHRydXN0IHRoYXQgIHRoZSAgc3RhdGUKd2lsbCAgbm90IGxpbWl0IG9yIGFsdGVyIHRoZSBy aWdodHMgdmVzdGVkIGluIGEgdHJ1c3QgYnkgdGhpcyBhcnRpY2xlIG9yCmJ5IHNwZWNpYWwg bGF3IHRvIGZ1bGZpbGwgdGhlIHRlcm1zIG9mICBhbnkgIGFncmVlbWVudHMgIG1hZGUgIHdp dGggIHRoZQpob2xkZXJzICB0aGVyZW9mLCAgb3IgIGluIGFueSB3YXkgaW1wYWlyIHRoZSBy aWdodHMgYW5kIHJlbWVkaWVzIG9mIHN1Y2gKaG9sZGVycyB1bnRpbCBzdWNoIGJvbmRzIG9y IG5vdGVzIHRvZ2V0aGVyIHdpdGggIHRoZSAgaW50ZXJlc3QgIHRoZXJlb24sCndpdGggIGlu dGVyZXN0IG9uIGFueSB1bnBhaWQgaW5zdGFsbG1lbnRzIG9mIGludGVyZXN0LCBhbmQgYWxs IGNvc3RzIGFuZApleHBlbnNlcyBpbiBjb25uZWN0aW9uIHdpdGggYW55IGFjdGlvbiBvciBw cm9jZWVkaW5ncyBieSBvciBvbiBiZWhhbGYgb2YKc3VjaCAgaG9sZGVycywgIGFyZSAgZnVs bHkgIG1ldCBhbmQgZGlzY2hhcmdlZC4gQSB0cnVzdCBpcyBhdXRob3JpemVkIHRvCmluY2x1 ZGUgdGhpcyBwbGVkZ2UgYW5kIGFncmVlbWVudCBvZiB0aGUgc3RhdGUgaW4gYW55IGFncmVl bWVudCB3aXRoIHRoZQpob2xkZXJzIG9mIHN1Y2ggYm9uZHMgb3Igbm90ZXMuCgogIFMgMjAu MzEuIEJvbmRzIGFuZCBub3RlcyBhcyBsZWdhbCBpbnZlc3RtZW50cy4gIFRoZSBib25kcyBh bmQgbm90ZXMgb2YKYSB0cnVzdCBhcmUgaGVyZWJ5IG1hZGUgc2VjdXJpdGllcyBpbiAgd2hp Y2ggIGFsbCAgcHVibGljICBvZmZpY2VycyAgYW5kCmJvZGllcyAgb2YgdGhpcyBzdGF0ZSBh bmQgYWxsIG11bmljaXBhbGl0aWVzIGFuZCBwb2xpdGljYWwgc3ViZGl2aXNpb25zLAphbGwg aW5zdXJhbmNlIGNvbXBhbmllcyBhbmQgYXNzb2NpYXRpb25zIGFuZCBvdGhlciBwZXJzb25z ICBjYXJyeWluZyAgb24KYW4gIGluc3VyYW5jZSAgYnVzaW5lc3MsICBhbGwgIGJhbmtzLCAg YmFua2VycywgdHJ1c3QgY29tcGFuaWVzLCBzYXZpbmdzCmJhbmtzIGFuZCBzYXZpbmdzIGFz c29jaWF0aW9ucywgaW5jbHVkaW5nIHNhdmluZ3MgYW5kIGxvYW4gYXNzb2NpYXRpb25zLApi dWlsZGluZyAgYW5kICBsb2FuIGFzc29jaWF0aW9ucywgaW52ZXN0bWVudCBjb21wYW5pZXMg YW5kIG90aGVyIHBlcnNvbnMKY2Fycnlpbmcgb24gYSBiYW5raW5nIGJ1c2luZXNzLCBhbGwg IGFkbWluaXN0cmF0b3JzLCAgZ3VhcmRpYW5zLCAgZXhlY3UtCnRvcnMsICB0cnVzdGVlcyBh bmQgb3RoZXIgZmlkdWNpYXJpZXMsIGFuZCBhbGwgb3RoZXIgcGVyc29ucyB3aG8gYXJlIG5v dwpvciBtYXkgaGVyZWFmdGVyIGJlIGF1dGhvcml6ZWQgdG8gaW52ZXN0IGluIGJvbmRzIG9y ICBvdGhlciAgb2JsaWdhdGlvbnMKb2YgdGhlIHN0YXRlLCBtYXkgcHJvcGVybHkgYW5kIGxl Z2FsbHkgaW52ZXN0IGZ1bmRzIGluY2x1ZGluZyBjYXBpdGFsIGluCnRoZWlyIGNvbnRyb2wg b3IgYmVsb25naW5nIHRvIHRoZW0uICBUaGUgYm9uZHMgYW5kIG5vdGVzIGFyZSBhbHNvIGhl cmVieQptYWRlICBzZWN1cml0aWVzICB3aGljaCBtYXkgYmUgZGVwb3NpdGVkIHdpdGggYW5k IG1heSBiZSByZWNlaXZlZCBieSBhbGwKcHVibGljIG9mZmljZXJzIGFuZCBib2RpZXMgb2Yg dGhpcyAgc3RhdGUgIGFuZCAgYWxsICBtdW5pY2lwYWxpdGllcyAgYW5kCnBvbGl0aWNhbCBz dWJkaXZpc2lvbnMgZm9yIGFueSBwdXJwb3NlIGZvciB3aGljaCB0aGUgZGVwb3NpdCBvZiBi b25kcyBvcgpvdGhlciBvYmxpZ2F0aW9ucyBvZiB0aGlzIHN0YXRlIGlzIG5vdyBvciBtYXkg aGVyZWFmdGVyIGJlIGF1dGhvcml6ZWQuCgogIFMgIDIwLjMzLiAgRXhlbXB0aW9uICBmcm9t IHRheGF0aW9uLiAgMS4gIEl0IGlzIGhlcmVieSBkZXRlcm1pbmVkIHRoYXQKdGhlIGNyZWF0 aW9uIG9mIGEgdHJ1c3QgcHVyc3VhbnQgdG8gdGhpcyBhcnRpY2xlIGFuZCB0aGUgY2Fycnlp bmcgb3V0IG9mCml0cyBjb3Jwb3JhdGUgcHVycG9zZXMgYXJlIGluIGFsbCByZXNwZWN0cyBm b3IgdGhlIGJlbmVmaXQgb2YgdGhlIHBlb3BsZQpvZiB0aGUgc3RhdGUsIGZvciB0aGUgaW1w cm92ZW1lbnQgb2YgdGhlaXIgaGVhbHRoIGFuZCB3ZWxmYXJlLCAgYW5kICBmb3IKdGhlICBw cm9tb3Rpb24gIG9mICB0aGUgZWNvbm9teTsgdGhhdCBzYWlkIHB1cnBvc2VzIGFyZSBwdWJs aWMgcHVycG9zZXM7CmFuZCB0aGF0IGEgdHJ1c3Qgd2lsbCBwZXJmb3JtICBhbiAgZXNzZW50 aWFsICBnb3Zlcm5tZW50YWwgIGZ1bmN0aW9uICBieQpleGVyY2lzaW5nICB0aGUgIHBvd2Vy cyBjb25mZXJyZWQgdXBvbiBpdCBieSB0aGlzIGFydGljbGUgYW5kIGJ5IHNwZWNpYWwKbGF3 LgogIDIuICBOb3R3aXRoc3RhbmRpbmcgIGFueSAgb3RoZXIgIHByb3Zpc2lvbiAgb2YgIGFu eSAgb3RoZXIgIGxhdyB0byB0aGUKY29udHJhcnksIHRoZSBpbmNvbWUsIG1vbmllcywgb3Bl cmF0aW9ucyBhbmQgcHJvcGVydGllcyBvZiBhIHRydXN0IHNoYWxsCmJlICBleGVtcHQgZnJv bSB0YXhhdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiBhbnkgYW5kIGFsbCBz dGF0ZQphbmQgIGxvY2FsICBpbmNvbWUsICBmcmFuY2hpc2UsICBvY2N1cGFuY3ksICB0cmFu c2ZlciwgIHJlY29yZGluZywgIHJlYWwKcHJvcGVydHksICAgc2FsZXMgIGFuZCAgY29tcGVu c2F0aW5nICB1c2UgIHRheGF0aW9uLiAgIEFueSAgY29tYmluZWQtdXNlCmZhY2lsaXR5LCBp bmNsdWRpbmcgdGhlIG5vbi1pbnN0aXR1dGlvbmFsIHBvcnRpb24gdGhlcmVvZiwgYW55ICBm YWNpbGl0eQpmb3IgIGEgIG5vdC1mb3ItcHJvZml0ICBjdWx0dXJhbCAgb3JnYW5pemF0aW9u IGFuZCBhbnkgcHVibGljIHRlbGV2aXNpb24KZmFjaWxpdHkgd2l0aCByZXNwZWN0IHRvIHdo aWNoIGEgdHJ1c3QgZW50ZXJlZCAgYW4gIGFncmVlbWVudCAgcHJpb3IgIHRvCkphbnVhcnkg Zmlyc3QsIG5pbmV0ZWVuIGh1bmRyZWQgbmluZXR5IHdoaWNoIGhhcyBiZWVuIGRldmVsb3Bl ZCBieSBvciBvbgpiZWhhbGYgb2YsIG9yIHB1cnN1YW50IHRvIGFuIGFncmVlbWVudCB3aXRo LCBvciBpbiB3aG9sZSBvciBpbiBwYXJ0IHdpdGgKdGhlIHByb2NlZWRzIG9mIGEgbG9hbiBm cm9tIGEgdHJ1c3QgYW5kIGFueSByZWFsIHByb3BlcnR5IGluIG9yIG9uIHdoaWNoCmFsbCBv ciBhbnkgcGFydCBvZiBhbnkgc3VjaCBmYWNpbGl0eSBwcmlvciB0byBjb21wbGV0aW9uIGlz IGRlc2lnbmVkICB0bwpiZSAgYW5kICB1cG9uIGNvbXBsZXRpb24gaXMgZGV2ZWxvcGVkIHNo YWxsIGJlIGV4ZW1wdCBmcm9tIHJlYWwgcHJvcGVydHkKdGF4YXRpb24gZnJvbSBhbmQgYWZ0 ZXIgdGhlIGRhdGUgb24gd2hpY2ggc3VjaCByZWFsIHByb3BlcnR5ICBoYXMgIGZpcnN0CmJl ZW4gIGNvbnZleWVkICB0byAgdGhlICB0cnVzdCwgIG9yICBpbiB0aGUgY2FzZSBvZiB0aGUg ZGV2ZWxvcG1lbnQgb2YgYQpwdWJsaWMgdGVsZXZpc2lvbiBmYWNpbGl0eSB3aXRoIHJlc3Bl Y3QgdG8gIHdoaWNoICBhICB0cnVzdCAgZW50ZXJlZCAgYW4KYWdyZWVtZW50ICBwcmlvciAg dG8gIEphbnVhcnkgZmlyc3QsIG5pbmV0ZWVuIGh1bmRyZWQgbmluZXR5IGJ5IGEgcHVibGlj CnRlbGV2aXNpb24gIHN0YXRpb24gIG9yICBhICBmYWNpbGl0eSAgZm9yICBhICAgbm90LWZv ci1wcm9maXQgICBjdWx0dXJhbApvcmdhbml6YXRpb24gIGluICB3aG9sZSBvciBpbiBwYXJ0 IHdpdGggcHJvY2VlZHMgb2YgYSBsb2FuIGZyb20gYSB0cnVzdCwKZnJvbSBhbmQgYWZ0ZXIg dGhlIGRhdGUgb24gd2hpY2ggIHN1Y2ggIHJlYWwgIHByb3BlcnR5ICBoYXMgIGZpcnN0ICBi ZWVuCmNvbnZleWVkICB0byAgc3VjaCBzdGF0aW9uLiBJbiB0aGUgY2FzZSBvZiBhIGNvbWJp bmVkLXVzZSBmYWNpbGl0eSBmb3IgYQpwZXJmb3JtaW5nIGFydHMgIGNlbnRlciAgd2l0aCAg cmVzcGVjdCAgdG8gIHdoaWNoICBhICB0cnVzdCAgZW50ZXJlZCAgYW4KYWdyZWVtZW50ICAg cHJpb3IgICB0byAgSmFudWFyeSAgZmlyc3QsICBuaW5ldGVlbiAgaHVuZHJlZCAgbmluZXR5 LCAgdGhlCm5vbi1pbnN0aXR1dGlvbmFsICBwb3J0aW9uICBzaGFsbCAgbm90ICBiZSAgZXhl bXB0ICBmcm9tICByZWFsICBwcm9wZXJ0eQp0YXhhdGlvbiAgZnJvbSBhbmQgYWZ0ZXIgdGhl IGRhdGUgYSB0cnVzdCBjb252ZXlzIHN1Y2ggbm9uLWluc3RpdHV0aW9uYWwKcG9ydGlvbiB0 byBhbnkgbm9uLWV4ZW1wdCB0aGlyZCBwYXJ0eS4KICAzLiAgVGhlICBzdGF0ZSBjb3ZlbmFu dHMgd2l0aCBhbGwgaG9sZGVycyBhbmQgdHJhbnNmZXJlZXMgb2YgYm9uZHMgYW5kCm5vdGVz IGlzc3VlZCBieSBhIHRydXN0LCBpbiAgY29uc2lkZXJhdGlvbiAgb2YgIHRoZSAgYWNjZXB0 YW5jZSAgb2YgIGFuZApwYXltZW50ICBmb3IgdGhlIGJvbmRzIGFuZCBub3RlcywgdGhhdCB0 aGUgYm9uZHMgYW5kIG5vdGVzIG9mIHRoZSB0cnVzdCwKYW5kIHRoZSBpbnRlcmVzdCB0aGVy ZW9uIGFuZCBpbmNvbWUgdGhlcmVmcm9tIGFuZCAgYWxsICBpdHMgIHByb3BlcnRpZXMsCmlu Y29tZSwgIGZlZXMsICBjaGFyZ2VzLCAgZ2lmdHMsICBncmFudHMsICByZXZlbnVlcywgcmVj ZWlwdHMsIGFuZCBvdGhlcgptb25pZXMgcmVjZWl2ZWQgb3IgdG8gYmUgcmVjZWl2ZWQsIHNo YWxsICBhdCAgYWxsICB0aW1lcyAgYmUgIGZyZWUgIGZyb20KaW5jb21lIGFuZCBvdGhlciB0 YXhhdGlvbiwgZXhjZXB0IGZvciBlc3RhdGUgb3IgZ2lmdCB0YXhlcyBvbiBzdWNoIGJvbmRz CmFuZCBub3RlcyBhbmQgdGF4ZXMgb24gdHJhbnNmZXJzLgoKICBTIDIwLjM1LiAgQWN0aW9u cyBieSBhbmQgYWdhaW5zdCBhIHRydXN0LiAgMS4gIFRoZSBzdXByZW1lIGNvdXJ0IHNoYWxs CmhhdmUgZXhjbHVzaXZlIGp1cmlzZGljdGlvbiBvZiBhbnkgYWN0aW9uLCBzdWl0ICBvciAg c3BlY2lhbCAgcHJvY2VlZGluZwpicm91Z2h0ICBieSAgb3IgIGFnYWluc3Qgb3IgaW52b2x2 aW5nIGEgdHJ1c3QuICBUaGUgdmVudWUgb2YgYW55IGFjdGlvbiwKc3VpdCBvciBzcGVjaWFs IHByb2NlZWRpbmcgYnJvdWdodCBhZ2FpbnN0IGEgdHJ1c3Qgc2hhbGwgYmUgbGFpZCBpbiAg dGhlCmNpdHkgYW5kIGNvdW50eSBpbiB3aGljaCBpdHMgcHJpbmNpcGFsIG9mZmljZSBpcyBs b2NhdGVkLgogIDIuICBBbnkgIGFjdGlvbiAgb3IgIHByb2NlZWRpbmcgIHRvIHdoaWNoIGEg dHJ1c3Qgb3IgdGhlIHBlb3BsZSBvZiB0aGUKc3RhdGUsIGEgY291bnR5IG9yIGEgbXVuaWNp cGFsaXR5IG1heSBiZSBwYXJ0aWVzLCBpbiB3aGljaCBhbnkgIHF1ZXN0aW9uCmFyaXNlcyAg YXMgIHRvICB0aGUgdmFsaWRpdHkgb2YgdGhpcyBhcnRpY2xlIG9yIHRoZSBzcGVjaWFsIGxh dyBjcmVhdGluZwp0aGUgdHJ1c3QsIHNoYWxsICBiZSAgcHJlZmVycmVkICBvdmVyICBhbGwg IG90aGVyICBjaXZpbCAgY2F1c2VzICBleGNlcHQKZWxlY3Rpb24gIGNhdXNlcyAgaW4gIGFs bCAgY291cnRzICBvZiAgdGhlICBzdGF0ZSBhbmQgc2hhbGwgYmUgaGVhcmQgYW5kCmRldGVy bWluZWQgaW4gcHJlZmVyZW5jZSB0byBhbGwgb3RoZXIgIGNpdmlsICBidXNpbmVzcyAgcGVu ZGluZyAgdGhlcmVpbgpleGNlcHQgIGVsZWN0aW9uICBjYXVzZXMsIGlycmVzcGVjdGl2ZSBv ZiBwb3NpdGlvbiBvbiB0aGUgY2FsZW5kYXIuICBUaGUKc2FtZSBwcmVmZXJlbmNlIHNoYWxs IGJlIGdyYW50ZWQgdXBvbiBhcHBsaWNhdGlvbiBvZiBjb3Vuc2VsIHRvIGEgIHRydXN0Cmlu ICBhbnkgIGFjdGlvbiAgb3IgcHJvY2VlZGluZyBpbiB3aGljaCB0aGUgdHJ1c3QgaXMgYSBw YXJ0eSBvciBpbiB3aGljaApzdWNoIGNvdW5zZWwgbWF5IGJlIGFsbG93ZWQgdG8gaW50ZXJ2 ZW5lLgogIDMuICBFeGNlcHQgIGFzICBvdGhlcndpc2UgIGV4cHJlc3NseSBwcm92aWRlZCBi eSBhIGxlYXNlLCBzdWJsZWFzZSwgb3IKb3RoZXIgYWdyZWVtZW50IHRvICB3aGljaCAgaXQg IGlzICBhICBwYXJ0eSwgIGEgIHBhcnRpY2lwYXRpbmcgIGN1bHR1cmFsCmluc3RpdHV0aW9u ICBvciBub3QtZm9yLXByb2ZpdCBjdWx0dXJhbCBvcmdhbml6YXRpb24gc2hhbGwgbm90IGJl IGxpYWJsZQp0byBhbnkgcGVyc29uIGZvciBhbnkgY2xhaW0sIGxvc3MsIGNvc3Qgb3IgZGFt YWdlICBhcmlzaW5nICBmcm9tICBvciAgaW4KY29ubmVjdGlvbiAgd2l0aCAgdGhlIGRldmVs b3BtZW50IG9mIGEgY29tYmluZWQtdXNlIGZhY2lsaXR5LCBhIGZhY2lsaXR5CmZvciBhICBu b3QtZm9yLXByb2ZpdCAgY3VsdHVyYWwgIG9yZ2FuaXphdGlvbiAgb3IgIGEgIHB1YmxpYyAg dGVsZXZpc2lvbgpmYWNpbGl0eSAgd2l0aCAgcmVzcGVjdCAgdG8gIHdoaWNoIGEgdHJ1c3Qg ZW50ZXJlZCBhbiBhZ3JlZW1lbnQgcHJpb3IgdG8KSmFudWFyeSBmaXJzdCwgbmluZXRlZW4g aHVuZHJlZCBuaW5ldHksIG9yIGFueSBwYXJ0IG9yIHBvcnRpb24gIHRoZXJlb2YuCgogIFMg IDIwLjM3LiAgIENvb3BlcmF0aW9uICB3aXRoICB0aGUgc3RhdGUsIGNvdW50aWVzIGFuZCBt dW5pY2lwYWxpdGllcy4KQW55IGFnZW5jeSBvciAgZGVwYXJ0bWVudCAgb2YgIHRoZSAgc3Rh dGUsICBvZiAgdGhlICBjb3VudHkgIG9yICBvZiAgYW55Cm11bmljaXBhbGl0eSAgbWF5IHJl bmRlciBzdWNoIHNlcnZpY2VzIHRvIGEgdHJ1c3QgYXMgbWF5IGJlIHJlcXVlc3RlZCBieQp0 aGUgdHJ1c3QuICBVcG9uIHJlcXVlc3Qgb2YgYSB0cnVzdCwgYW55IHN1Y2ggYWdlbmN5ICBv ciAgZGVwYXJ0bWVudCAgaXMKaGVyZWJ5ICBhdXRob3JpemVkICBhbmQgZW1wb3dlcmVkIHRv IHRyYW5zZmVyIHRvIHRoZSB0cnVzdCBzdWNoIG9mZmljZXJzCmFuZCBlbXBsb3llZXMgYXMg dGhlIHRydXN0IG1heSBkZWVtICBuZWNlc3NhcnkgIGZyb20gIHRpbWUgIHRvICB0aW1lICB0 bwphc3Npc3QgIHRoZSB0cnVzdCBpbiBjYXJyeWluZyBvdXQgaXRzIGZ1bmN0aW9ucy4gIE9m ZmljZXJzIGFuZCBlbXBsb3llZXMKc28gdHJhbnNmZXJyZWQgc2hhbGwgbm90IGxvc2UgdGhl aXIgY2l2aWwgc2VydmljZSBzdGF0dXMgb3IgIHJpZ2h0cy4gICBBCnRydXN0ICBtYXkgIGVu dGVyIGludG8gYW4gYWdyZWVtZW50IHRvIHBheSwgb3IgY2F1c2UgdG8gYmUgcGFpZCBieSBt ZWFucwp3aGljaCBtYXkgaW5jbHVkZSBhbiBhZ3JlZW1lbnQgd2l0aCBhIHBhcnRpY2lwYXRp bmcgY3VsdHVyYWwgaW5zdGl0dXRpb24Kb3IgIG5vdC1mb3ItcHJvZml0ICBjdWx0dXJhbCAg b3JnYW5pemF0aW9uLCAgYSAgZGV2ZWxvcGVyICBvciAgYW4gb3duZXIsCmNvbXBlbnNhdGlv biB0byB0aGUgc3RhdGUsIGEgIGNvdW50eSAgb3IgIGEgIG11bmljaXBhbGl0eSAgZm9yICBz ZXJ2aWNlcwpyZW5kZXJlZCB0byB0aGUgdHJ1c3QuCgogIFMgIDIwLjM5LiAgQW5udWFsICBh bmQgb3RoZXIgcmVwb3J0cy4gIDEuICBBIHRydXN0IHNoYWxsIHN1Ym1pdCB0byB0aGUKZ292 ZXJub3IgYW5kIHRvIHRoZSBtYXlvciBvciBjaGllZiBleGVjdXRpdmUgb2ZmaWNlciBhbmQg IHRoZSAgZ292ZXJuaW5nCmJvZHkgIG9mICB0aGUgIG11bmljaXBhbGl0eSAgb3IgIGNvdW50 eSBpbiB3aGljaCBpdHMgcHJpbmNpcGFsIG9mZmljZSBpcwpsb2NhdGVkLCB3aXRoaW4gbmlu ZXR5IGRheXMgIGFmdGVyICB0aGUgIGVuZCAgb2YgIGVhY2ggIGZpc2NhbCAgeWVhciwgIGEK Y29tcGxldGUgIGFuZCAgZGV0YWlsZWQgIHJlcG9ydCAgc2V0dGluZyAgZm9ydGg6ICAoYSkg aXRzIG9wZXJhdGlvbnMgYW5kCmFjY29tcGxpc2htZW50czsgKGIpIGl0cyByZWNlaXB0cyBh bmQgZXhwZW5kaXR1cmVzLCBpbiAgYWNjb3JkYW5jZSAgd2l0aAp0aGUgIGNhdGVnb3JpZXMg IG9yIGNsYXNzaWZpY2F0aW9ucyBlc3RhYmxpc2hlZCBieSB0aGUgdHJ1c3QgZm9yIGl0cyBv d24Kb3BlcmF0aW5nIGFuZCBjYXBpdGFsIG91dGxheSBwdXJwb3NlczsgKGMpIGl0cyBhc3Nl dHMgYW5kIGxpYWJpbGl0aWVzIGF0CnRoZSAgIGVuZCAgIG9mICAgaXRzICBmaXNjYWwgIHll YXIgIGluY2x1ZGluZyAgdGhlICBzdGF0dXMgIG9mICByZXNlcnZlLApkZXByZWNpYXRpb24s IHNwZWNpYWwgb3Igb3RoZXIgZnVuZHM7IGFuZCAoZCkgYSBzY2hlZHVsZSAgb2YgIGl0cyAg Ym9uZHMKYW5kICBvdGhlciAgb2JsaWdhdGlvbnMgIG91dHN0YW5kaW5nICBhdCAgdGhlICBl bmQgIG9mICBpdHMgZmlzY2FsIHllYXIsCnRvZ2V0aGVyIHdpdGggYSBzdGF0ZW1lbnQgb2Yg dGhlIGFtb3VudHMgcmVkZWVtZWQgIGFuZCAgaW5jdXJyZWQgIGR1cmluZwpzdWNoIGZpc2Nh bCB5ZWFyLgogIDIuICBBICB0cnVzdCAgc2hhbGwgIHN1Ym1pdCAgdG8gdGhlIGdvdmVybm9y IGFuZCB0byB0aGUgbWF5b3Igb3IgY2hpZWYKZXhlY3V0aXZlIG9mZmljZXIgYW5kIHRoZSBn b3Zlcm5pbmcgYm9keSBvZiB0aGUgbXVuaWNpcGFsaXR5ICBvciAgY291bnR5CmluICB3aGlj aCAgaXRzICBwcmluY2lwYWwgIG9mZmljZSAgaXMgIGxvY2F0ZWQsIHdpdGhpbiB0aGlydHkg ZGF5cyBhZnRlcgpyZWNlaXB0IHRoZXJlb2YsIGEgY29weSBvZiB0aGUgcmVwb3J0IG9mIGV2 ZXJ5IGV4dGVybmFsICBleGFtaW5hdGlvbiAgb2YKdGhlICBib29rcyBhbmQgYWNjb3VudHMg b2YgdGhlIHRydXN0LCBvdGhlciB0aGFuIHJlcG9ydHMgb2YgZXhhbWluYXRpb25zCmJ5IGFu eSBzdGF0ZSwgY291bnR5IG9yIG11bmljaXBhbCBvZmZpY2lhbC4KCiAgUyAgMjAuNDEuICBD b25zdHJ1Y3Rpb24uICAgVGhpcyAgYXJ0aWNsZSAgYW5kIGVhY2ggc3BlY2lhbCBsYXcgZW5h Y3RlZApwdXJzdWFudCB0byB0aGlzIGFydGljbGUsIGJlaW5nIG5lY2Vzc2FyeSBmb3IgdGhl IHdlbGZhcmUgb2YgIHRoZSAgc3RhdGUKYW5kICBpdHMgIGluaGFiaXRhbnRzLCAgc2hhbGwg YmUgbGliZXJhbGx5IGNvbnN0cnVlZCBzbyBhcyB0byBlZmZlY3R1YXRlCml0cyBwdXJwb3Nl cy4KCiAgUyAyMC40My4gSW5jb25zaXN0ZW50IHByb3Zpc2lvbnMgb2Ygb3RoZXIgbGF3cyBz dXBlcnNlZGVkLiAgSW5zb2ZhciBhcwp0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIGFydGljbGUg YW5kIGVhY2ggc3BlY2lhbCBsYXcgZW5hY3RlZCBwdXJzdWFudCAgdG8KdGhpcyAgYXJ0aWNs ZSAgYXJlICBpbmNvbnNpc3RlbnQgIHdpdGggIHRoZSBwcm92aXNpb25zIG9mIGFueSBvdGhl ciBsYXcsCmdlbmVyYWwsIHNwZWNpYWwgb3IgbG9jYWwsIHRoZSBwcm92aXNpb25zIG9mIHRo aXMgYXJ0aWNsZSBhbmQgZWFjaCAgc3VjaApzcGVjaWFsIGxhdyBzaGFsbCBiZSBjb250cm9s bGluZy4KCiAgUyAgMjAuNDUuICAgU2VwYXJhYmlsaXR5LiAgIElmICBhbnkgIHByb3Zpc2lv biAgb2YgYW55IHNlY3Rpb24gb2YgdGhpcwphcnRpY2xlIGFuZCBlYWNoIHNwZWNpYWwgbGF3 IGVuYWN0ZWQgcHVyc3VhbnQgdG8gIHRoaXMgIGFydGljbGUgIG9yICB0aGUKYXBwbGljYXRp b24gIHRoZXJlb2YgIHRvICBhbnkgIHBlcnNvbiAgb3IgIGNpcmN1bXN0YW5jZSAgc2hhbGwg YmUganVkZ2VkCmludmFsaWQgYnkgYSBjb3VydCBvZiBjb21wZXRlbnQganVyaXNkaWN0aW9u LCAgc3VjaCAgb3JkZXIgIG9yICBqdWRnbWVudApzaGFsbCAgYmUgIGNvbmZpbmVkICBpbiBp dHMgb3BlcmF0aW9uIHRvIHRoZSBjb250cm92ZXJzeSBpbiB3aGljaCBpdCB3YXMKcmVuZGVy ZWQsIGFuZCBzaGFsbCBub3QgIGFmZmVjdCAgb3IgIGludmFsaWRhdGUgIHRoZSAgcmVtYWlu ZGVyICBvZiAgYW55CnByb3Zpc2lvbiAgb2YgIGFueSAgc2VjdGlvbiBvZiB0aGlzIGFydGlj bGUgYW5kIGVhY2ggc3VjaCBzcGVjaWFsIGxhdyBvcgp0aGUgYXBwbGljYXRpb24gdGhlcmVv ZiB0byBhbnkgb3RoZXIgcGVyc29uICBvciAgY2lyY3Vtc3RhbmNlcywgIGFuZCAgdG8KdGhp cyAgZW5kICBlYWNoICBwcm92aXNpb24gIG9mIHRoaXMgYXJ0aWNsZSBhbmQgZWFjaCBzdWNo IHNwZWNpYWwgbGF3IGlzCmhlcmVieSBkZWNsYXJlZCB0byBiZSBzZXZlcmFibGUuCgogIFMg IDIwLjQ3LiAgQXBwbGljYXRpb24gb2YgbGF3LiBBbnkgb3RoZXIgcHJvdmlzaW9uIG9mIGFu eSBvdGhlciBsYXcgdG8KdGhlIGNvbnRyYXJ5IG5vdHdpdGhzdGFuZGluZywgYWxsIG9mIHRo ZSBhcHBsaWNhYmxlICBwcm92aXNpb25zICBvZiAgdGhlCmdlbmVyYWwgIG11bmljaXBhbCBs YXcsIG9yIG9mIGFueSBvdGhlciBsYXcsIHNoYWxsIGFwcGx5IHRvIHRoZSBOZXcgWW9yawpz dGF0ZSBjdWx0dXJhbCByZXNvdXJjZXMgYWN0IGhlcmVpbiBjb250aW51ZWQgaW4gdGhlIHNh bWUgbWFubmVyICBhcyAgaWYKdGhlICBsYW5ndWFnZSAgb2YgIHN1Y2ggIGxhdyAgaGFkICBi ZWVuICBpbmNvcnBvcmF0ZWQgIGluIGZ1bGwgaW50byB0aGlzCmFydGljbGUsIGV4Y2VwdCB0 byB0aGUgZXh0ZW50IHRoYXQgc3VjaCBwcm92aXNpb25zIGFyZSBpbmNvbnNpc3RlbnQgd2l0 aAp0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIGFydGljbGUuIEZvciB0aGUgcHVycG9zZXMgb2Yg YXJ0aWNsZSBmaWZ0ZWVuLUEgb2YKdGhlIGV4ZWN1dGl2ZSBsYXcgb25seSwgYSB0cnVzdCBz aGFsbCBiZSBkZWVtZWQgYSBzdGF0ZSBhZ2VuY3kgIGFzICB0aGF0CnRlcm0gICBpcyAgIHVz ZWQgICBpbiAgc3VjaCAgYXJ0aWNsZSwgIGFuZCAgaXRzICBjb250cmFjdHMgIGZvciAgZGVz aWduLApjb25zdHJ1Y3Rpb24sIHNlcnZpY2VzIGFuZCBtYXRlcmlhbHMgc2hhbGwgIGJlICBk ZWVtZWQgIHN0YXRlICBjb250cmFjdHMKd2l0aGluIHRoZSBtZWFuaW5nIG9mIHRoYXQgdGVy bSBhcyBzZXQgZm9ydGggaW4gc3VjaCBhcnRpY2xlLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpO ZXcgWW9yayBTdGF0ZSBDb25zb2xpZGF0ZWQgTGF3cwpBcnRzIGFuZCBDdWx0dXJhbCBBZmZh aXJzCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJUSUNMRSAyMQogICAgICAg ICAgVFJVU1QgRk9SIENVTFRVUkFMIFJFU09VUkNFUyBPRiBUSEUgQ0lUWSBPRiBORVcgWU9S SwpTZWN0aW9uIDIxLjAxLiBTcGVjaWFsIGRlZmluaXRpb25zLgogICAgICAgIDIxLjAzLiBM ZWdpc2xhdGl2ZSBmaW5kaW5ncyBhbmQgc3RhdGVtZW50IG9mIHB1cnBvc2VzLgogICAgICAg IDIxLjA1LiBDcmVhdGlvbiBhbmQgYWRtaW5pc3RyYXRpb24gb2YgdGhlIHRydXN0LgogICAg ICAgIDIxLjA3LiBTcGVjaWFsICAgcG93ZXJzICBvZiAgdGhlICB0cnVzdCAgcmVsYXRpbmcg IHRvICBhc3Npc3RpbmcKICAgICAgICAgICAgICAgICBwYXJ0aWNpcGF0aW5nIGN1bHR1cmFs IGluc3RpdHV0aW9ucy4KICAgICAgICAyMS4wOS4gU3BlY2lhbCAgcHJvdmlzaW9ucyAgcmVs YXRpbmcgIHRvIHRoZSBhY3F1aXNpdGlvbiBvZiByZWFsCiAgICAgICAgICAgICAgICAgcHJv cGVydHkuCiAgICAgICAgMjEuMTEuIFNwZWNpYWwgIHByb3Zpc2lvbnMgcmVsYXRpbmcgdG8g dGF4LWVxdWl2YWxlbmN5IHBheW1lbnRzLgogICAgICAgIDIxLjEzLiBTcGVjaWFsICAgcHJv dmlzaW9ucyAgIHJlbGF0aW5nICAgdG8gIHRoZSAgZmluYW5jaW5nICBhbmQKICAgICAgICAg ICAgICAgICBkZXZlbG9wbWVudCAgb2YgIGNvbWJpbmVkLXVzZSAgZmFjaWxpdGllcyAgIG9y ICAgcHVibGljCiAgICAgICAgICAgICAgICAgdGVsZXZpc2lvbiBmYWNpbGl0aWVzLgogICAg ICAgIDIxLjE1LiBBcHBsaWNhdGlvbiBvZiBsYXcuCgogIFMgMjEuMDEuIFNwZWNpYWwgIGRl ZmluaXRpb25zLiBBcyB1c2VkIG9yIHJlZmVycmVkIHRvIGluIHRoaXMgYXJ0aWNsZSwKYWxs IHRlcm1zIHNoYWxsIGhhdmUgdGhlIG1lYW5pbmdzIHNldCBmb3J0aCBpbiAgc2VjdGlvbiAg MjAuMDMgIG9mICB0aGlzCmNoYXB0ZXIsICBleGNlcHQgdGhhdCB0aGUgZm9sbG93aW5nIHRl cm1zIHNoYWxsIGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuLQppbmdzOgogIDEuICJDaXR5IiBz aGFsbCBtZWFuIHRoZSBjaXR5IG9mIE5ldyBZb3JrLgogIDIuICJNYXlvciIgc2hhbGwgbWVh biB0aGUgbWF5b3Igb2YgdGhlIGNpdHkuCiAgMy4gIlBhcnRpY2lwYXRpbmcgY3VsdHVyYWwg aW5zdGl0dXRpb24iICBzaGFsbCAgbWVhbiAgYW55ICBjb3Jwb3JhdGlvbgpmb3JtZWQgIG90 aGVyICB0aGFuIGZvciBwcm9maXQgd2hpY2ggb3BlcmF0ZXMgb3IgbWFrZXMgYXZhaWxhYmxl IGZhY2lsaS0KdGllcyBmb3IgY3VsdHVyYWwgYWN0aXZpdGllcyBpbiB0aGUgY2l0eSwgaW5j bHVkaW5nIGJ1dCBub3QgIGxpbWl0ZWQgIHRvCm11c2V1bXMsICBwZXJmb3JtaW5nIGFydHMg Y2VudGVycywgcHVibGljIHRlbGV2aXNpb24gYW5kIHJhZGlvIHN0YXRpb25zLAp0aGVhdGVy cywgYXVkaXRvcml1bXMsIGxpYnJhcmllcywgZXhoaWJpdGlvbiwgcGVyZm9ybWFuY2UgYW5k ICByZWhlYXJzYWwKc3BhY2UsICBnYWxsZXJpZXMsIGFydGlzdHNgIGFuZCBkYW5jZXJzYCBz dHVkaW9zLCByZWNvcmRpbmcgc3R1ZGlvcywgYW5kCnJlY3JlYXRpb25hbCwgZWR1Y2F0aW9u YWwsIG9mZmljZSwgbGl2aW5nLCBwYXJraW5nLCAgcmVzdGF1cmFudCwgIHJldGFpbApvciAg c3RvcmFnZSAgc3BhY2UgIHJlbGF0ZWQgdG8gYW55IG9mIHRoZSBmb3JlZ29pbmcuIFRoZSBk ZWNpc2lvbiBvZiB0aGUKdHJ1c3QgaW4gZGV0ZXJtaW5pbmcgdGhhdCBhICBjb3Jwb3JhdGlv biAgaXMgIGEgIHBhcnRpY2lwYXRpbmcgIGN1bHR1cmFsCmluc3RpdHV0aW9uICBzaGFsbCAg YmUgIGZpbmFsIGFuZCBjb25jbHVzaXZlLiAgVGhlIGFubnVhbCBhdmVyYWdlIGFkbWlzLQpz aW9ucyBvZiBlYWNoIGNvcnBvcmF0aW9uIHdoaWNoIHdvdWxkIGl0c2VsZiBxdWFsaWZ5IGFz IGEgIHBhcnRpY2lwYXRpbmcKY3VsdHVyYWwgIGluc3RpdHV0aW9uIGFuZCB3aGljaCBsZWFz ZXMgb3IgbGljZW5zZXMgc3BhY2UgaW4gYSBwZXJmb3JtaW5nCmFydHMgIGNlbnRlciAgZnJv bSAgYW5vdGhlciAgcGFydGljaXBhdGluZyAgY3VsdHVyYWwgIGluc3RpdHV0aW9uICAgKHRo ZQoibGVzc29yIikgc2hhbGwgYmUgYXR0cmlidXRlZCB0byB0aGUgbGVzc29yIGZvciBwdXJw b3NlcyBvZiB0aGlzIGFydGljbGUKYW5kIGFydGljbGUgdHdlbnR5IG9mIHRoaXMgY2hhcHRl ci4KICA0LiAgIlRydXN0IGZvciBjdWx0dXJhbCByZXNvdXJjZXMiIG9yICJ0cnVzdCIgc2hh bGwgbWVhbiB0aGUgdHJ1c3QgZm9yCmN1bHR1cmFsIHJlc291cmNlcyBvZiB0aGUgY2l0eSBv ZiBOZXcgWW9yayBjcmVhdGVkIGJ5IHRoaXMgYXJ0aWNsZS4KCiAgUyAgMjEuMDMuICAgTGVn aXNsYXRpdmUgIGZpbmRpbmdzICBhbmQgc3RhdGVtZW50IG9mIHB1cnBvc2VzLiAgMS4gIFRo ZQpsZWdpc2xhdHVyZSBoZXJlYnkgZmluZHMsIGRldGVybWluZXMgYW5kIGRlY2xhcmVzOgog IChhKSAgdGhhdCAgaXQgaXMgZXNzZW50aWFsIGZvciB0aGUgZ2VuZXJhbCBhbmQgZWNvbm9t aWMgd2VsZmFyZSBvZiB0aGUKcGVvcGxlIG9mIHRoZSBzdGF0ZSBmb3IgIHRoZSAgY2l0eSAg dG8gIHJlbWFpbiAgYSAgdW5pcXVlICBuYXRpb25hbCAgYW5kCmludGVybmF0aW9uYWwgY2Vu dGVyIGZvciBjdWx0dXJhbCBhY3Rpdml0aWVzIGFuZCBhZmZhaXJzOwogIChiKSAgIHRoYXQg ICB0aGUgIGNpdHlgcyAgcG9zaXRpb24gIGFzICBzdWNoICBhICB1bmlxdWUgIG5hdGlvbmFs ICBhbmQKaW50ZXJuYXRpb25hbCBjdWx0dXJhbCBjZW50ZXIgaXMgZXNzZW50aWFsIHRvIGl0 cyBwb3NpdGlvbiBhcyAgYSAgY2VudGVyCmZvciAgbmF0aW9uYWwgIGFuZCAgaW50ZXJuYXRp b25hbCAgZmluYW5jZSwgIGNvbW11bmljYXRpb25zLCBwdWJsaXNoaW5nLAplbnRlcnRhaW5t ZW50LCAgIGNvbnZlbnRpb25zLCAgIHRyYW5zcG9ydGF0aW9uLCAgIHNoaXBwaW5nICAgYW5k ICAgb3RoZXIKZW50ZXJwcmlzZXMsICBhcyAgd2VsbCAgYXMgIHBoaWxhbnRocm9waWMgYW5k IGVkdWNhdGlvbmFsIGFjdGl2aXRpZXMgYW5kCmluc3RpdHV0aW9uczsKICAoYykgICB0aGF0 ICBjZXJ0YWluICBhcmVhcyAgb2YgIHRoZSAgY2l0eSAgd2lsbCAgYmUgIHN0cmVuZ3RoZW5l ZCAgYW5kCnJldml0YWxpemVkIGJ5LCBhbmQgdGhlIGNpdHlgcyAgcmVwdXRhdGlvbiAgYW5k ICBwb3NpdGlvbiAgYXMgIGEgIHVuaXF1ZQpuYXRpb25hbCAgYW5kICBpbnRlcm5hdGlvbmFs IGNlbnRlciB3aWxsIGJlIGVuaGFuY2VkIGJ5LCB0aGUgZGV2ZWxvcG1lbnQKb2YgY29tYmlu ZWQtdXNlIGZhY2lsaXRpZXMgIGFuZCAgY3VsdHVyYWwgIGZhY2lsaXRpZXMgIGluICB0aGUg IGNpdHkgIGFzCnByb3ZpZGVkIGJ5IHRoaXMgYXJ0aWNsZSBhbmQgYnkgYXJ0aWNsZSB0d2Vu dHkgb2YgdGhpcyB0aXRsZTsKICAoZCkgIHRoYXQgIGNlcnRhaW4gIGN1bHR1cmFsICBpbnN0 aXR1dGlvbnMgIGxvY2F0ZWQgIGluICB0aGUgIGNpdHkgYXJlCmludmFsdWFibGUgY3VsdHVy YWwsIGVkdWNhdGlvbmFsIGFuZCByZWNyZWF0aW9uYWwgcmVzb3VyY2VzIG9mIHRoZSBzdGF0 ZQphbmQgIHRoZSBjb250aW51ZWQgb3BlcmF0aW9uIG9mIHN1Y2ggaW5zdGl0dXRpb25zIGlu IHRoZSBjaXR5IGlzIGZvciB0aGUKYmVuZWZpdCBvZiB0aGUgcGVvcGxlIG9mIHRoZSBzdGF0 ZTsKICAoZSkgIHRoYXQgIGJ5IHJlYXNvbiBvZiB0aGUgc2V2ZXJlIGVjb25vbWljIGFuZCBm aXNjYWwgcHJvYmxlbXMgZmFjaW5nCmJvdGggdGhlIHN0YXRlIGFuZCAgY2l0eSwgIG5laXRo ZXIgIHRoZSAgc3RhdGUgIG5vciAgdGhlICBjaXR5ICBpcyAgYWJsZQphZGVxdWF0ZWx5ICB0 byAgc3VwcG9ydCAgdGhlICBjdWx0dXJhbCBpbnN0aXR1dGlvbnMgb2YgdGhlIGNpdHkgaW4g dGhlaXIKZWZmb3J0cyAgYm90aCAgdG8gIHByb3ZpZGUgIGN1bHR1cmFsLCAgIHJlY3JlYXRp b25hbCAgIGFuZCAgIGVkdWNhdGlvbmFsCm9wcG9ydHVuaXRpZXMgdG8gdGhlIHBlb3BsZSBv ZiB0aGUgc3RhdGUgYW5kIHRvIG1haW50YWluIHRoZSBwb3NpdGlvbiBvZgp0aGUgY2l0eSBh cyBhIHVuaXF1ZSBuYXRpb25hbCBhbmQgaW50ZXJuYXRpb25hbCBjdWx0dXJhbCBjZW50ZXI7 IGFuZAogIChmKSAgdGhhdCAgaXQgIGlzICBpbiAgdGhlIGludGVyZXN0IG9mIHRoZSBwZW9w bGUgb2YgdGhlIHN0YXRlIGFuZCBmb3IKdGhlaXIgYmVuZWZpdCBhbmQgd2VsZmFyZSB0byBl bmNvdXJhZ2UgdGhlIGNyZWF0aXZlIGFuZCAgaW5ub3ZhdGl2ZSAgdXNlCm9mICBwdWJsaWMg IGFuZCAgcHJpdmF0ZSAgcmVzb3VyY2VzIGluIG9yZGVyIHRvIHByZXNlcnZlIGFuZCBwcm90 ZWN0IHRoZQpjdWx0dXJhbCByZXNvdXJjZXMgb2YgdGhlIGNpdHkgYW5kIG90aGVyd2lzZSB0 byBlZmZlY3R1YXRlIHRoZSAgcHVycG9zZXMKb2YgIHRoaXMgIGFydGljbGUgIGFuZCBhcnRp Y2xlIHR3ZW50eSBvZiB0aGlzIGNoYXB0ZXIgYnkgdGhlIGNyZWF0aW9uIG9mCnRoZSB0cnVz dCBmb3IgY3VsdHVyYWwgcmVzb3VyY2VzIG9mIHRoZSBjaXR5IG9mIE5ldyBZb3JrLgogIDIu ICBUaGUgbGVnaXNsYXR1cmUgaGVyZWJ5IGZ1cnRoZXIgZmluZHMsIGRldGVybWluZXMgYW5k IGRlY2xhcmVzIHRoYXQKdGhlIGNyZWF0aW9uIG9mIHRoZSB0cnVzdCBmb3IgY3VsdHVyYWwg cmVzb3VyY2VzIG9mIHRoZSBjaXR5IG9mIE5ldyBZb3JrCmFuZCAgdGhlICBkZWxlZ2F0aW9u ICB0byB0aGUgdHJ1c3Qgb2YgcGFydCBvZiB0aGUgc292ZXJlaWduIHBvd2VyIG9mIHRoZQpz dGF0ZSBhcmUgaW4gYWxsIHJlc3BlY3RzIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgcGVvcGxl IG9mIHRoZSBzdGF0ZSBhbmQKY29uc3RpdHV0ZSBhIGdvdmVybm1lbnRhbCwgc3RhdGUsIG11 bmljaXBhbCBhbmQgcHVibGljIHB1cnBvc2U7IGFuZCB0aGF0CnRoZSBleGVyY2lzZSBieSB0 aGUgdHJ1c3Qgb2YgdGhlIGZ1bmN0aW9ucyAgYW5kICBwb3dlcnMgIGdyYW50ZWQgIHRvICBp dAp1bmRlciAgdGhpcyAgYXJ0aWNsZSAgY29uc3RpdHV0ZXMgdGhlIHBlcmZvcm1hbmNlIG9m IGFuIGVzc2VudGlhbCBwdWJsaWMKYW5kIGdvdmVybm1lbnRhbCBmdW5jdGlvbi4KCiAgUyAg MjEuMDUuICBDcmVhdGlvbiAgYW5kICBhZG1pbmlzdHJhdGlvbiAgb2YgIHRoZSB0cnVzdC4g IDEuICBUaGVyZSBpcwpoZXJlYnkgY3JlYXRlZCB0aGUgdHJ1c3QgZm9yIGN1bHR1cmFsIHJl c291cmNlcyBvZiB0aGUgY2l0eSBvZiBOZXcgIFlvcmsKd2hpY2ggIHNoYWxsIGhhdmUgYWxs IHRoZSBwb3dlcnMsIHJpZ2h0cywgcHJpdmlsZWdlcyBhbmQgZXhlbXB0aW9ucyBvZiBhCnRy dXN0IGZvciBjdWx0dXJhbCByZXNvdXJjZXMgZGVzY3JpYmVkIGluIGFydGljbGUgdHdlbnR5 IG9mIHRoaXMgY2hhcHRlcgphbmQgdGhpcyBhcnRpY2xlLgogIDIuIFRoZSBib2FyZCBvZiB0 cnVzdGVlcyBvZiB0aGUgdHJ1c3Qgc2hhbGwgY29uc2lzdCBvZiBzZXZlbiB0cnVzdGVlcywK YXMgZm9sbG93czogdGhlIGRlcHV0eSBtYXlvciBvZiBmaW5hbmNlIGFuZCBlY29ub21pYyBk ZXZlbG9wbWVudCBvZiAgdGhlCmNpdHkgIG9mICBOZXcgIFlvcmssICB0aGUgIGNoYWlycGVy c29uICBvZiAgdGhlIE5ldyBZb3JrIGNpdHkgaW5kdXN0cmlhbApkZXZlbG9wbWVudCBhZ2Vu Y3kgYW5kIGZpdmUgdHJ1c3RlZXMgdG8gYmUgYXBwb2ludGVkIGJ5IHRoZSAgbWF5b3IuICBU aGUKbWF5b3IgIHNoYWxsICBkZXNpZ25hdGUgIG9uZSAgb2YgIHRoZSB0cnVzdGVlcyBhcHBv aW50ZWQgYnkgdGhlIG1heW9yIGFzCmNoYWlybWFuIG9mIHRoZSBib2FyZCBvZiB0cnVzdGVl cy4gVGhlIGNoYWlybWFuIHNoYWxsIHByZXNpZGUgIG92ZXIgIGFsbAptZWV0aW5ncyAgb2Yg IHRoZSAgYm9hcmQgIG9mICB0cnVzdGVlcywgIGFuZCBhZnRlciBjb25zdWx0YXRpb24gd2l0 aCB0aGUKbWF5b3IsIHRoZSBjaGFpcm1hbiBtYXkgYXBwb2ludCBhIHRydXN0ZWUgd2hvIG1h eSAgYmUgIHRoZSAgY2hhaXJtYW4gIGFzCnByZXNpZGVudCAgYW5kICBjaGllZiAgZXhlY3V0 aXZlIG9mZmljZXIgb2YgdGhlIHRydXN0LiAgVGhlIGNoYWlybWFuIGFuZAp0aGUgcHJlc2lk ZW50IGFuZCBjaGllZiBleGVjdXRpdmUgb2ZmaWNlciBzaGFsbCAgaGF2ZSAgc3VjaCAgcG93 ZXJzICBhbmQKZHV0aWVzIGFzIGFyZSBzZXQgZm9ydGggaW4gdGhlIGJ5LWxhd3Mgb2YgdGhl IHRydXN0LiAgVHJ1c3RlZXMgYXBwb2ludGVkCmJ5IHRoZSBtYXlvciBzaGFsbCBiZSBhcHBv aW50ZWQgIGZvciAgYSAgdGVybSAgb2YgIHNpeCAgeWVhcnMgIGZyb20gIHRoZQplZmZlY3Rp dmUgIGRhdGVzIG9mIHRoZWlyIGFwcG9pbnRtZW50czsgcHJvdmlkZWQsIGhvd2V2ZXIsIHRo YXQgdGhlIHRlcm0Kb2Ygb2ZmaWNlIG9mIHR3byB0cnVzdGVlcyBmaXJzdCBhcHBvaW50ZWQs IG90aGVyIHRoYW4gdGhlICBjaGFpcm1hbiAgYW5kCnRoZSAgcHJlc2lkZW50LCAgc2hhbGwg IGJlICBmaXZlICB5ZWFycywgIGFuZCAgdGhlIHRlcm0gb2Ygb2ZmaWNlIG9mIG9uZQp0cnVz dGVlIGZpcnN0IGFwcG9pbnRlZCwgb3RoZXIgdGhhbiAgdGhlICBjaGFpcm1hbiAgYW5kICB0 aGUgIHByZXNpZGVudCwKc2hhbGwgIGJlICBmb3VyIHllYXJzLiAgQWxsIHRydXN0ZWVzIHNo YWxsIGNvbnRpbnVlIHRvIGhvbGQgb2ZmaWNlIHVudGlsCnRoZWlyIHN1Y2Nlc3NvcnMgaGF2 ZSBiZWVuIGFwcG9pbnRlZC4gIElmIGF0IGFueSB0aW1lIHRoZXJlIGlzIGEgdmFjYW5jeQpp biAgdGhlICBtZW1iZXJzaGlwICBvZiAgdGhlICBib2FyZCAgb2YgIHRydXN0ZWVzLCAgYnkg IHJlYXNvbiBvZiBkZWF0aCwKcmVzaWduYXRpb24sIGRpc3F1YWxpZmljYXRpb24gb3Igb3Ro ZXJ3aXNlLCBzdWNoIHZhY2FuY3kgc2hhbGwgYmUgZmlsbGVkCmZvciAgdGhlICB1bmV4cGly ZWQgdGVybSBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgdGhlIG9yaWdpbmFsIGFwcG9pbnRtZW50 LgpUaGUgbWF5b3IgbWF5IHJlbW92ZSBhbnkgdHJ1c3RlZSBmcm9tIG9mZmljZSBmb3IgY2F1 c2UuCgogIFMgMjEuMDcuIFNwZWNpYWwgcG93ZXJzIG9mIHRoZSB0cnVzdCByZWxhdGluZyB0 byBhc3Npc3RpbmcgcGFydGljaXBhdC0KaW5nICBjdWx0dXJhbCAgaW5zdGl0dXRpb25zLiBJ biBhZGRpdGlvbiB0byBzdWNoIHBvd2VycyBhcyBhcmUgY29uZmVycmVkCmVsc2V3aGVyZSBp biBhcnRpY2xlIHR3ZW50eSBvZiB0aGlzIGNoYXB0ZXIgYW5kIHRoaXMgYXJ0aWNsZSwgdGhl ICB0cnVzdApzaGFsbCAgaGF2ZSAgdGhlICBmb2xsb3dpbmcgIHBvd2VycyAgd2hpY2ggIG1h eSAgYmUgIGV4ZXJjaXNlZCwgIGF0ICB0aGUKZGlzY3JldGlvbiBvZiB0aGUgYm9hcmQgb2Yg dHJ1c3RlZXMsIHNvbGVseSBhbmQgZXhjbHVzaXZlbHkgaW4gIGZ1cnRoZXItCmFuY2UgIG9m ICBpdHMgIGNvcnBvcmF0ZSAgcHVycG9zZXMgIHdpdGggIG9yICB3aXRob3V0ICBwdWJsaWMg YXVjdGlvbiBvcgpiaWRkaW5nOgogIDEuIHRvIHVuZGVydGFrZSBzdXJ2ZXlzICBvZiAgdGhl ICBwcmVzZW50ICBhbmQgIGFudGljaXBhdGVkICBuZWVkcyAgb2YKY3VsdHVyYWwgaW5zdGl0 dXRpb25zIGluIHRoZSBjaXR5LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBu ZWVkCmZvciAgZGV2ZWxvcG1lbnQgIG9mICB0aGUgIGZhY2lsaXRpZXMgIG9mIHN1Y2ggaW5z dGl0dXRpb25zLCBpbiBvcmRlciB0bwpkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIHRy dXN0IG1heSBlZmZlY3RpdmVseSBleGVyY2lzZSAgaXRzICBwb3dlcnMKYW5kIGZ1bGZpbGwg aXRzIHB1cnBvc2VzIGluIGNvb3BlcmF0aW9uIHdpdGggYW55IHN1Y2ggaW5zdGl0dXRpb247 CiAgMi4gIHRvICBhY3F1aXJlLCBjb25zdHJ1Y3QsIGluc3RhbGwsIGVxdWlwLCBmdXJuaXNo LCByZW5vdmF0ZSwgbW9kZXJuLQppemUsIGFuZCBvdGhlcndpc2UgZGV2ZWxvcCBjb21iaW5l ZC11c2UgZmFjaWxpdGllcyBhbmQgY3VsdHVyYWwgIGZhY2lsaS0KdGllcyBvciBjYXVzZSBz dWNoIGNvbWJpbmVkLXVzZSBmYWNpbGl0aWVzIGFuZCBjdWx0dXJhbCBmYWNpbGl0aWVzIHRv IGJlCnNvIGRldmVsb3BlZCwgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgYXJ0aWNsZSBhbmQg YXJ0aWNsZSB0d2VudHkgb2YgdGhpcwp0aXRsZSwgIHRvIGFjcXVpcmUgaW4gY29ubmVjdGlv biB0aGVyZXdpdGggcmVhbCBwcm9wZXJ0eSBvciBpbnRlcmVzdHMgaW4KcmVhbCBwcm9wZXJ0 eSBvZiBhIHBhcnRpY2lwYXRpbmcgY3VsdHVyYWwgaW5zdGl0dXRpb24gb3Igb2YgdGhlIGNp dHksIG9yCm9mIHRoZSBkZXZlbG9wZXIgb3Igb3RoZXIgcGVyc29ucyB3aG9zZSBwYXJ0aWNp cGF0aW9uICB0aGUgIHRydXN0ICBkZWVtcwpuZWNlc3NhcnkgIGZvciAgdGhlICBkZXZlbG9w bWVudCAgb2YgIGFueSAgc3VjaCBjb21iaW5lZC11c2UgZmFjaWxpdHkgb3IKY3VsdHVyYWwg ZmFjaWxpdHksIHN1YmplY3QgKGlmIGFwcGxpY2FibGUpIHRvIHRoZSByZXRlbnRpb24gb3Ig IGNyZWF0aW9uCmJ5IGFueSBzdWNoIHBhcnRpZXMgb2YgYW55IGZ1dHVyZSBvciByZW1haW5k ZXIgaW50ZXJlc3RzIGluIHN1Y2ggcHJvcGVyLQp0eSwgIGFsbCBvZiB3aGljaCBzaGFsbCBi ZSB2YWxpZCBub3R3aXRoc3RhbmRpbmcgYW55IHJ1bGUgYWdhaW5zdCBwZXJwZS0KdHVpdGll cywgYW5kICBpbiAgY29ubmVjdGlvbiAgdGhlcmV3aXRoLCAgdG8gIGluc3RhbGwgIG9yICBj YXVzZSAgdG8gIGJlCmluc3RhbGxlZCAgd2F0ZXIsICBmdWVsLCBnYXMsIGVsZWN0cmljYWws IHRlbGVwaG9uZSwgaGVhdGluZywgYWlyLWNvbmRpLQp0aW9uaW5nIGFuZCBvdGhlciB1dGls aXR5IHNlcnZpY2VzLCBpbmNsdWRpbmcgYXBwcm9wcmlhdGUgY29ubmVjdGlvbnM7CiAgMy4g dG8gbWFpbnRhaW4sIHJlcGFpciwga2VlcCB1cCwgbWFuYWdlIGFuZCBvcGVyYXRlIGl0cyBy ZWFsICBwcm9wZXJ0eQphbmQgIGFueSAgY29tYmluZWQtdXNlIGZhY2lsaXR5IG9yIHBhcnQg dGhlcmVvZiBvciBhbnkgY3VsdHVyYWwgZmFjaWxpdHkKb3IgcGFydCB0aGVyZW9mIGRldmVs b3BlZCBieSBvciBwdXJzdWFudCB0byBhbiAgYWdyZWVtZW50ICB3aXRoICBpdCwgIGJ5Cm1l YW5zICB3aGljaCBtYXkgaW5jbHVkZSB0aGUgZW5mb3JjZW1lbnQgb2YgaXRzIHJ1bGVzIGFu ZCByZWd1bGF0aW9ucyBpbgp0aGUgbWFubmVyIGRlc2NyaWJlZCBpbiBzdWJkaXZpc2lvbiBk IG9mIHNlY3Rpb24gdHdvIGh1bmRyZWQgdHdvIG9mICB0aGUKbm90LWZvci1wcm9maXQgIGNv cnBvcmF0aW9uICBsYXcgIHdpdGggIHRoZSAgc2FtZSAgZWZmZWN0IGFzIHRob3VnaCBzdWNo CnN1YmRpdmlzaW9uIGFwcGxpZWQgdG8gdGhlIHRydXN0IGFuZCB0byBzdWNoIHByb3BlcnR5 ICBhbmQgIGNvbWJpbmVkLXVzZQpmYWNpbGl0eSBvciBjdWx0dXJhbCBmYWNpbGl0eTsKICA0 LiAgdG8gb2ZmZXIgdG8gY29udmV5IGFuZCB0byBjb252ZXkgYWxsIG9yIGFueSBwYXJ0IG9m IHRoZSBub24taW5zdGktCnR1dGlvbmFsIHBvcnRpb24gb2YgYSBjb21iaW5lZC11c2UgZmFj aWxpdHkgb3IgYW55IGludGVyZXN0IHRoZXJlaW4sIGFuZAp0byB0YWtlIGFueSBhbmQgYWxs IGFjdGlvbnMgZGVlbWVkIG5lY2Vzc2FyeSBvciBhcHByb3ByaWF0ZSBieSB0aGUgdHJ1c3QK dG8gYWR2ZXJ0aXNlLCBwcm9tb3RlLCAgZW5jb3VyYWdlLCAgYW5kICBlZmZlY3QgIHN1Y2gg IGNvbnZleWFuY2VzLCAgYWxsCmZ1dHVyZSAgb3IgIHJlbWFpbmRlciAgaW50ZXJlc3RzICBj cmVhdGVkICBvciAgcmV0YWluZWQgIGJ5IHRoZSB0cnVzdCBpbgpjb25uZWN0aW9uIHRoZXJl d2l0aCB3aGljaCAgc2hhbGwgIGJlICB2YWxpZCAgbm90d2l0aHN0YW5kaW5nICBhbnkgIHJ1 bGUKYWdhaW5zdCBwZXJwZXR1aXRpZXM7CiAgNS4gIHRvICBjb252ZXkgIHdpdGggIG9yICB3 aXRob3V0ICBjb25zaWRlcmF0aW9uLCAgdG8gIGEgcGFydGljaXBhdGluZwpjdWx0dXJhbCBp bnN0aXR1dGlvbiB0aGUgaW5zdGl0dXRpb25hbCBwb3J0aW9uIG9mIGEgY29tYmluZWQtdXNl IGZhY2lsaS0KdHkgb3IgYSBjdWx0dXJhbCBmYWNpbGl0eSBkZXZlbG9wZWQgaW4gY29vcGVy YXRpb24gd2l0aCBzdWNoIGluc3RpdHV0aW9uCmFuZCBhbnkgcmVhbCBwcm9wZXJ0eSBoZWxk IGJ5IHRoZSB0cnVzdCBpbiBjb25uZWN0aW9uIHdpdGggc3VjaCBkZXZlbG9wLQptZW50Owog IDYuIHRvIGVudGVyIGludG8gYSBwYXJ0bmVyc2hpcCwgam9pbnQgdmVudHVyZSBvciBvdGhl ciAgZW50ZXJwcmlzZSAgaW4KYW55IGNhcGFjaXR5IGRlZW1lZCBieSBpdCB0byBiZSBhcHBy b3ByaWF0ZSwgZm9yIHRoZSBwdXJwb3NlIG9mIGRldmVsb3AtCmluZyAgYW5kICBvcGVyYXRp bmcgIGEgIGNvbWJpbmVkLXVzZSAgZmFjaWxpdHkgIG9yIGFueSBwYXJ0IHRoZXJlb2Ygb3Ig YQpjdWx0dXJhbCBmYWNpbGl0eSBvciBhbnkgcGFydCB0aGVyZW9mOwogIDcuIHRvIGNvbnZl eSwgd2l0aG91dCBwdWJsaWMgYXVjdGlvbiBvciBiaWRkaW5nLCBhbnkgcmVhbCBwcm9wZXJ0 eSAgdG8KYSAgZGV2ZWxvcGVyICBmb3IgIHRoZSAgcHVycG9zZSAgb2YgIGRldmVsb3Bpbmcg IHRoZXJlaW4gIG9yICB0aGVyZW9uICBhCmNvbWJpbmVkLXVzZSBmYWNpbGl0eSwgb3IgYSBw YXJ0ICBvciAgcG9ydGlvbiAgdGhlcmVvZiwgIG9yICBhICBjdWx0dXJhbApmYWNpbGl0eSwg IG9yICBhbnkgIHBhcnQgIG9yIHBvcnRpb24gdGhlcmVvZiwgc3ViamVjdCB0byB0aGUgY3Jl YXRpb24gb3IKcmV0ZW50aW9uIGJ5IHRoZSB0cnVzdCBhbmQvb3IgYSBwYXJ0aWNpcGF0aW5n ICBjdWx0dXJhbCAgaW5zdGl0dXRpb24gIG9mCnN1Y2ggIGZ1dHVyZSAgb3IgcmVtYWluZGVy IGludGVyZXN0cyBpbiBzdWNoIHByb3BlcnR5IGFzIGl0IGRlZW1zIGFwcHJvLQpwcmlhdGUs IGFsbCBvZiB3aGljaCBzaGFsbCBiZSB2YWxpZCAgbm90d2l0aHN0YW5kaW5nICBhbnkgIHJ1 bGUgIGFnYWluc3QKcGVycGV0dWl0aWVzOwogIDguICB0byAgcHVyY2hhc2UgIG9yIGxlYXNl IHRoZSBpbnN0aXR1dGlvbmFsIHBvcnRpb24gb2YgYSBjb21iaW5lZC11c2UKZmFjaWxpdHkg b3IgYWxsIG9yIGFueSBwb3J0aW9uIG9mIGEgY3VsdHVyYWwgZmFjaWxpdHkgZnJvbSB0aGUg ZGV2ZWxvcGVyCnRoZXJlb2YgZm9yIHVzZSBhbmQgb2NjdXBhbmN5IGJ5IGEgcGFydGljaXBh dGluZyBjdWx0dXJhbCBpbnN0aXR1dGlvbjsKICA5LiB0byBmdXJuaXNoIGN1bHR1cmFsIGlu c3RpdHV0aW9ucyB3aXRoIGFkdmljZSBhbmQgd2l0aCB0ZWNobmljYWwgYW5kCm90aGVyICBh c3Npc3RhbmNlOyAgdG8gIGFjdCBhcyBsaWFpc29uIHdpdGggZmVkZXJhbCwgc3RhdGUgYW5k IG11bmljaXBhbAphbmQgb3RoZXIgbG9jYWwgYXV0aG9yaXRpZXMgYW5kIHdpdGggdXNlcnMg YW5kIG9jY3VwYW50cyBvZiBjb21iaW5lZC11c2UKZmFjaWxpdGllcyBhbmQgY3VsdHVyYWwg ZmFjaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gdGhlIGN1bHR1cmFsLCAgcmVjcmUtCmF0aW9u YWwgIGFuZCAgZWR1Y2F0aW9uYWwgIGFjdGl2aXRpZXMgcHJvdmlkZWQgYnkgY3VsdHVyYWwg aW5zdGl0dXRpb25zOwphbmQgb3RoZXJ3aXNlIHRvIGZvc3RlciBhbmQgZW5jb3VyYWdlIGdy ZWF0ZXIgcHVibGljIGtub3dsZWRnZSAgb2YsICBhbmQKcGFydGljaXBhdGlvbiAgaW4sIHRo ZSBjdWx0dXJhbCwgcmVjcmVhdGlvbmFsIGFuZCBlZHVjYXRpb25hbCBhY3Rpdml0aWVzCm9m IHN1Y2ggaW5zdGl0dXRpb25zOwogIDEwLiB0byBvcmdhbml6ZSBvbmUgb3IgbW9yZSB3aG9s bHktb3duZWQgc3Vic2lkaWFyeSBjb3Jwb3JhdGlvbnMgdW5kZXIKYW55IGFwcGxpY2FibGUg cHJvdmlzaW9uIG9mIGxhdyBhbmQgdG8gcGVyZm9ybSB0aHJvdWdoIHN1Y2ggc3Vic2lkaWFy aWVzCm9yIGNhdXNlIHN1Y2ggc3Vic2lkaWFyaWVzIHRvIHBlcmZvcm0gYWxsIG9yIGFueSBw YXJ0IG9mIGl0cyBwb3dlcnMgIGFuZApmdW5jdGlvbnM7CiAgMTEuICB0byAgZXN0YWJsaXNo ICBhbmQgIHByb211bGdhdGUgIHN1Y2ggcnVsZXMgYW5kIHJlZ3VsYXRpb25zIGFzIHRoZQp0 cnVzdCBtYXkgZGVlbSBuZWNlc3NhcnksIGNvbnZlbmllbnQgb3IgZGVzaXJhYmxlIGZvciB0 aGUgdXNlIGFuZCBvcGVyYS0KdGlvbiBvZiBhbnkgY29tYmluZWQtdXNlIGZhY2lsaXR5LCBv ciBwYXJ0IHRoZXJlb2YsIG9yIGN1bHR1cmFsICBmYWNpbGktCnR5LCAgb3IgIHBhcnQgdGhl cmVvZiwgYW5kIGZvciB0aGUgdXNlIG9mIGFueSByZWFsIHByb3BlcnR5IGRldmVsb3BlZCBv cgp0byBiZSBkZXZlbG9wZWQgYnkgb3IgcHVyc3VhbnQgdG8gYW4gYWdyZWVtZW50IHdpdGgg IGl0LCAgaW5jbHVkaW5nICBidXQKbm90IGxpbWl0ZWQgdG8gcnVsZXMgYW5kIHJlZ3VsYXRp b25zIGdvdmVybmluZyB0aGUgY29uZHVjdCBhbmQgc2FmZXR5IG9mCnRoZSBwdWJsaWMgb24g c3VjaCBwcmVtaXNlczsKICAxMi4gdG8gbWFrZSBhbmQgZXhlY3V0ZSBzdWNoIGFncmVlbWVu dHMsIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24sCmluc3RydW1lbnRzICBvZiAgY29u dmV5YW5jZSAgYW5kICBhZ3JlZW1lbnRzIHdpdGggcGFydGljaXBhdGluZyBjdWx0dXJhbApp bnN0aXR1dGlvbnMgd2l0aCByZXNwZWN0IHRvIHRoZSAgYXJjaGl0ZWN0dXJhbCAgYW5kICBk ZXNpZ24gIGNoYXJhY3Rlci0KaXN0aWNzICBvZiBhbnkgY29tYmluZWQtdXNlIGZhY2lsaXR5 IG9yIGN1bHR1cmFsIGZhY2lsaXR5LCBhcyBhcmUgbmVjZXMtCnNhcnkgb3IgY29udmVuaWVu dCBmb3IgdGhlIGV4ZXJjaXNlIG9mICBpdHMgIGNvcnBvcmF0ZSAgcG93ZXJzICBhbmQgIHRo ZQpmdWxmaWxsbWVudCBvZiBpdHMgcHVycG9zZXM7IGFuZAogIDEzLiB0byBtYWtlIGxvYW5z IGluIGFjY29yZGFuY2Ugd2l0aCBhcnRpY2xlIHR3ZW50eSBvZiB0aGlzIGNoYXB0ZXIuCgog IFMgMjEuMDkuIFNwZWNpYWwgIHByb3Zpc2lvbnMgcmVsYXRpbmcgdG8gdGhlIGFjcXVpc2l0 aW9uIG9mIHJlYWwgcHJvcC0KZXJ0eS4gIDEuIFN1YmplY3QgdG8gc3ViZGl2aXNpb24gdHdv IG9mICB0aGlzICBzZWN0aW9uLCAgdGhlICB0cnVzdCAgbWF5CmFjcXVpcmUgIHJlYWwgcHJv cGVydHkgYnkgY29uZGVtbmF0aW9uIHB1cnN1YW50IHRvIHRoZSBwcm92aXNpb25zIG9mIHRo ZQplbWluZW50IGRvbWFpbiBwcm9jZWR1cmUgbGF3IHdoZXJlIG5vdCBpbmNvbnNpc3RlbnQg d2l0aCAgdGhpcyAgYXJ0aWNsZS4KUHJpb3IgIHRvICB0aGUgIGNvbW1lbmNlbWVudCBvZiBh bnkgY29uZGVtbmF0aW9uIHByb2NlZWRpbmdzIHB1cnN1YW50IHRvCnRoaXMgc2VjdGlvbiwg dGhlIHRydXN0IHNoYWxsIGNhdXNlIGEgc3VydmV5IGFuZCBtYXAgb2YgdGhlIHByb3BlcnR5 ICB0bwpiZSBjb25kZW1uZWQgdG8gYmUgbWFkZSBhbmQgZmlsZWQgaW4gaXRzIG9mZmljZSBh bmQgdG8gYmUgYW5uZXhlZCB0aGVyZS0KdG8gIGEgY2VydGlmaWNhdGUsIGV4ZWN1dGVkIGJ5 IHN1Y2ggb2ZmaWNlciBvciBlbXBsb3llZSBhcyB0aGUgdHJ1c3QgbWF5CmRlc2lnbmF0ZSwg c3RhdGluZyB0aGF0IHRoZSBhY3F1aXNpdGlvbiBvZiAgdGhlICBwcm9wZXJ0eSAgZGVzY3Jp YmVkICBpbgpzdWNoICBzdXJ2ZXkgIGFuZCAgbWFwICBoYXMgYmVlbiBkZXRlcm1pbmVkIGJ5 IHRoZSB1bmFuaW1vdXMgdm90ZSBvZiBpdHMKYm9hcmQgb2YgdHJ1c3RlZXMgdG8gYmUgbmVj ZXNzYXJ5IGZvciB0aGUgZnVsZmlsbG1lbnQgb2YgIGl0cyAgY29ycG9yYXRlCnB1cnBvc2Vz LiAgQWxsIGNvbmRlbW5hdGlvbiBwcm9jZWVkaW5ncyBicm91Z2h0IGJ5IHRoZSB0cnVzdCBw dXJzdWFudCB0bwp0aGlzIHNlY3Rpb24gc2hhbGwgYmUgYnJvdWdodCBpbiBzdXByZW1lIGNv dXJ0LCBOZXcgWW9yayBjb3VudHksIGFuZCB0aGUKY29tcGVuc2F0aW9uIHRvIGJlIHBhaWQg c2hhbGwgYmUgZGV0ZXJtaW5lZCBieSB0aGUgY291cnQgd2l0aG91dCBhICBqdXJ5CmFuZCAg d2l0aG91dCAgdGhlICBhcHBvaW50bWVudCAgb2YgY29tbWlzc2lvbmVycy4gVGhlIGNvdXJ0 IHNoYWxsIGRlY3JlZQp0aGF0IHRpdGxlIHRvIGFueSByZWFsICBwcm9wZXJ0eSAgc3ViamVj dCAgdG8gIGNvbmRlbW5hdGlvbiAgcHJvY2VlZGluZ3MKYnJvdWdodCAgcHVyc3VhbnQgdG8g dGhpcyBzZWN0aW9uIHNoYWxsIHZlc3QgaW4gdGhlIHRydXN0IHVwb24gdGhlIGVudHJ5CmFu ZCBmaWxpbmcgb2YgYW4gb3JkZXIgb2YgaW1tZWRpYXRlIHBvc3Nlc3Npb24sIGdyYW50ZWQg cHVyc3VhbnQgdG8gIHRoZQpwcm92aXNpb25zICBvZiAgdGhlICBlbWluZW50ICBkb21haW4g cHJvY2VkdXJlIGxhdyBhbmQgcHJvdmlkaW5nIGZvciB0aGUKZGVwb3NpdCByZXF1aXJlZCBi eSBzdWNoIHNlY3Rpb247IHByb3ZpZGVkIHRoYXQgIHRoZSAgdHJ1c3QgIHNoYWxsICBoYXZl CmZpcnN0ICBjb21wbGllZCAgd2l0aCAgY2hhcHRlciBvbmUgdGhvdXNhbmQgb25lIGh1bmRy ZWQgc2l4dHktb25lIG9mIHRoZQpsYXdzIG9mIG5pbmV0ZWVuIGh1bmRyZWQgc2V2ZW50eS1v bmUgYW5kIHRoZSAgZGVwb3NpdCAgb3IgIHBheW1lbnQgIG1hZGUKdGhlcmV1bmRlciAgc2hh bGwgYmUgY3JlZGl0ZWQgYWdhaW5zdCB0aGUgZGVwb3NpdCByZXF1aXJlZCB1bmRlciBlbWlu ZW50CmRvbWFpbiBwcm9jZWR1cmUgbGF3LiBObyBhd2FyZCBvZiBjb21wZW5zYXRpb24gIHNo YWxsICBiZSAgaW5jcmVhc2VkICBieQpyZWFzb24gb2YgYW55IGluY3JlYXNlIGluIHRoZSB2 YWx1ZSBvZiByZWFsIHByb3BlcnR5IGNhdXNlZCBieSB0aGUgYWN0dS0KYWwgb3IgcHJvcG9z ZWQgYWNxdWlzaXRpb24sIHVzZSwgZGV2ZWxvcG1lbnQgb3IgZGlzcG9zaXRpb24gYnkgdGhl IHRydXN0Cm9mIGFueSBvdGhlciByZWFsIHByb3BlcnR5LgogIDIuICBUaGUgdHJ1c3Qgc2hh bGwgaGF2ZSB0aGUgcG93ZXIgdG8gYWNxdWlyZSBieSBjb25kZW1uYXRpb24gb25seSB0aGUK cmVhbCBwcm9wZXJ0eSBkZXNjcmliZWQgYXMgZm9sbG93czoKICBBbnkgcmVhbCBwcm9wZXJ0 eSBzaXR1YXRlLCBseWluZyBhbmQgYmVpbmcgaW4gdGhlIEJvcm91Z2ggIG9mICBNYW5oYXQt CnRhbiwgIENpdHksICBDb3VudHkgIGFuZCAgU3RhdGUgIG9mICBOZXcgIFlvcmssIGJvdW5k ZWQgYW5kIGRlc2NyaWJlZCBhcwpmb2xsb3dzOgogIEJFR0lOTklORyBhdCBhIHBvaW50IG9u IHRoZSBub3J0aGVybHkgc2lkZSBvZiA1M3JkIFN0cmVldCBkaXN0YW50ICAzMDYKZmVldCA5 IGluY2hlcyBlYXN0ZXJseSBmcm9tIHRoZSBjb3JuZXIgZm9ybWVkIGJ5IHRoZSBpbnRlcnNl Y3Rpb24gb2YgdGhlCm5vcnRoZXJseSAgc2lkZSAgb2YgIDUzcmQgIFN0cmVldCBhbmQgdGhl IGVhc3Rlcmx5IHNpZGUgb2YgQXZlbnVlIG9mIHRoZQpBbWVyaWNhcyAoZm9ybWVybHkgU2l4 dGggQXZlbnVlKTsgIHJ1bm5pbmcgIHRoZW5jZSAgbm9ydGhlcmx5LCAgcGFyYWxsZWwKd2l0 aCBBdmVudWUgb2YgdGhlIEFtZXJpY2FzLCAxMDAgZmVldCA1IGluY2hlcyB0byB0aGUgY2Vu dGVyIGxpbmUgb2YgdGhlCmJsb2NrIGJldHdlZW4gNTNyZCBhbmQgNTR0aCBTdHJlZXRzOwog IHRoZW5jZSAgZWFzdGVybHksIGFsb25nIHNhaWQgY2VudGVyIGxpbmUgb2YgdGhlIGJsb2Nr LCA3OCBmZWV0IDMgaW5jaC0KZXM7CiAgdGhlbmNlIHNvdXRoZXJseSwgYWdhaW4gcGFyYWxs ZWwgd2l0aCBBdmVudWUgb2YgdGhlIEFtZXJpY2FzLCAxMDAgZmVldAo1IGluY2hlcyB0byB0 aGUgbm9ydGhlcmx5IHNpZGUgb2YgNTNyZCBTdHJlZXQ7IGFuZAogIHRoZW5jZSB3ZXN0ZXJs eSBhbG9uZyB0aGUgbm9ydGhlcmx5IHNpZGUgb2YgNTNyZCAgU3RyZWV0LCAgNzggIGZlZXQg IDMKaW5jaGVzIHRvIHRoZSBwb2ludCBvciBwbGFjZSBvZiBCZWdpbm5pbmcuCiAgMy4gQWxs IHJlYWwgcHJvcGVydHksIG90aGVyIHRoYW4gdGhlIHJlYWwgcHJvcGVydHkgZGVzY3JpYmVk IGluIHN1YmRpLQp2aXNpb24gIHR3byAgb2YgIHRoaXMgIHNlY3Rpb24sICBpbiAgb3IgIG9u ICB3aGljaCAgYWxsIG9yIGFueSBwYXJ0IG9mIGEKY29tYmluZWQtdXNlIGZhY2lsaXR5IGlz IG9yIGlzIGRlc2lnbmVkIHRvIGJlIGRldmVsb3BlZCAoaSkgIHNoYWxsICBoYXZlCmJlZW4g IG93bmVkICBpbiBmZWUgYnkgYSBwYXJ0aWNpcGF0aW5nIGN1bHR1cmFsIGluc3RpdHV0aW9u IGZvciBhIHBlcmlvZApvZiBhdCBsZWFzdCBmaXZlIHllYXJzIHByaW9yIHRvIHRoZSBkYXRl IG9uIHdoaWNoIHRoZSB0cnVzdCBmaXJzdCBlbnRlcnMKaW50byBhbiBhZ3JlZW1lbnQgZm9y IHRoZSBkZXZlbG9wbWVudCBvZiBzdWNoIGZhY2lsaXR5OyAgb3IgIChpaSkgIHNoYWxsCmhh dmUgIGJlZW4gIG93bmVkICBieSB0aGUgY2l0eSBwcmlvciB0byB0aGUgZGF0ZSBvbiB3aGlj aCB0aGUgdHJ1c3Qgb3IgYQpwYXJ0aWNpcGF0aW5nIGN1bHR1cmFsIGluc3RpdHV0aW9uIGZp cnN0IGVudGVycyBpbnRvICBhbiAgYWdyZWVtZW50ICBmb3IKdGhlIGRldmVsb3BtZW50IG9m IHN1Y2ggZmFjaWxpdHk7IG9yIChpaWkpIHRoZSBwcm9wb3NlZCB1c2Ugb2Ygc3VjaCByZWFs CnByb3BlcnR5ICBmb3IgIGFsbCBvciBhbnkgcGFydCBvZiB0aGUgY29tYmluZWQgdXNlIGZh Y2lsaXR5IGRldmVsb3BlZCBvcgpkZXNpZ25lZCB0byBiZSBkZXZlbG9wZWQgb24gc3VjaCBy ZWFsIHByb3BlcnR5IHNoYWxsIGhhdmUgYmVlbiAgYXBwcm92ZWQKYnkgIHRoZSAgbWF5b3Ig IGJ5ICB3cml0dGVuICBpbnN0cnVtZW50ICBkZWxpdmVyZWQgIHRvIHRoZSB0cnVzdCBhbmQg dGhlCnBhcnRpY2lwYXRpbmcgY3VsdHVyYWwgaW5zdGl0dXRpb247IG9yIChpdikgd2l0aCAg cmVzcGVjdCAgdG8gIGEgIHB1YmxpYwp0ZWxldmlzaW9uICBzdGF0aW9uICB3aXRoICByZXNw ZWN0IHRvIHdoaWNoIGEgdHJ1c3QgZW50ZXJlZCBhbiBhZ3JlZW1lbnQKcHJpb3IgdG8gSmFu dWFyeSBmaXJzdCwgbmluZXRlZW4gaHVuZHJlZCBuaW5ldHkgc3VjaCByZWFsIHByb3BlcnR5 IHNoYWxsCmV4Y2VlZCBvbmUgaHVuZHJlZCB0aG91c2FuZCBzcXVhcmUgZmVldCBpbiBhcmVh LCAgYW5kICBzaGFsbCAgaGF2ZSAgYmVlbgpvd25lZCAgb3IgIGxlYXNlZCAgYnkgIHN1Y2gg cHVibGljIHRlbGV2aXNpb24gc3RhdGlvbiBmb3IgYSBwZXJpb2Qgb2YgYXQKbGVhc3QgIGZp dmUgeWVhcnMgcHJpb3IgdG8gdGhlIGRhdGUgb24gd2hpY2ggdGhlIHRydXN0IGZpcnN0IGVu dGVycyBpbnRvCmFuIGFncmVlbWVudCBmb3IgdGhlIGRldmVsb3BtZW50IG9mICBhICBjb21i aW5lZC11c2UgIGZhY2lsaXR5ICBvciAgc3VjaApwdWJsaWMgdGVsZXZpc2lvbiBmYWNpbGl0 eSBvciBtYWtlcyBhIGxvYW4gdG8gc3VjaCBzdGF0aW9uLgoKICBTIDIxLjExLiBTcGVjaWFs ICBwcm92aXNpb25zIHJlbGF0aW5nIHRvIHRheC1lcXVpdmFsZW5jeSBwYXltZW50cy4gIDEu ClRoZSB0cnVzdCBzaGFsbCB1c2UgYW5kIGFwcGx5IGluIHRoZSBmb2xsb3dpbmcgb3JkZXIg dGhlIHRheC1lcXVpdmFsZW5jeQpwYXltZW50cyBpdCByZWNlaXZlcyBpbiByZXNwZWN0IG9m IGVhY2ggY29tYmluZWQtdXNlIGZhY2lsaXR5OgogIChhKSB0aGUgdHJ1c3Qgc2hhbGwgZmly c3QgcGF5IHRoZSBjb3N0cyBvZiBhZG1pbmlzdHJhdGlvbiBvZiB0aGUgdHJ1c3QKYWxsb2Nh YmxlIHRvIHN1Y2ggY29tYmluZWQtdXNlIGZhY2lsaXR5ICBpbiAgYWNjb3JkYW5jZSAgd2l0 aCAgZ2VuZXJhbGx5CmFjY2VwdGVkICBhY2NvdW50aW5nICBwcmluY2lwbGVzIGNvbnNpc3Rl bnRseSBhcHBsaWVkLCBpbmNsdWRpbmcgd2l0aG91dApsaW1pdGF0aW9uLCB0aGUgY29zdHMg b2YgY29sbGVjdGluZyBzdWNoIHRheC1lcXVpdmFsZW5jeSAgcGF5bWVudHMsICBhbmQKZXN0 YWJsaXNoIG9yIG1haW50YWluIHN1Y2ggcmVzZXJ2ZXMgZm9yIHRoZSBwYXltZW50IG9mIHN1 Y2ggY29zdHMgYXMgdGhlCnRydXN0IGRlZW1zIG5lY2Vzc2FyeTsKICAoYikgIHRoZSAgdHJ1 c3Qgc2hhbGwgdGhlbiBwYXkgdG8gdGhlIGNpdHksIGZyb20gYW5kIGFmdGVyIHRoZSBkYXRl IG9uCndoaWNoIHRoZSB0cnVzdCBhY3F1aXJlcyBhbnkgcmVhbCBwcm9wZXJ0eSBkZXNjcmli ZWQgaW4gc3ViZGl2aXNpb24gIHR3bwpvZiAgc2VjdGlvbiAgMjEuMDkgIG9mICB0aGlzIGFy dGljbGUgb3IgYW55IG90aGVyIHJlYWwgcHJvcGVydHkgaW4gb3Igb24Kd2hpY2ggYWxsIG9y IGFueSBwYXJ0IG9mIGEgY29tYmluZWQgdXNlIGZhY2lsaXR5IGlzIG9yIGlzIGRlc2lnbmVk IHRvIGJlCmRldmVsb3BlZCBhZnRlciBKYW51YXJ5IGZpcnN0LCBuaW5ldGVlbiBodW5kcmVk IG5pbmV0eS1zZXZlbiwgYXMgIG5lYXJseQphcyAgcHJhY3RpY2FibGUgIGluICBhY2NvcmRh bmNlICB3aXRoIHRoZSBhcHBsaWNhYmxlIHNjaGVkdWxlIGZvciBtYWtpbmcKcmVhbCBwcm9w ZXJ0eSB0YXggcGF5bWVudHMgdG8gdGhlIGNpdHkgd2l0aCByZXNwZWN0ICB0byAgc3VjaCAg cHJvcGVydHksCmFubnVhbCAgYW1vdW50cyAgZXF1YWwgIHRvICB0aGUgdG90YWwgYXNzZXNz ZWQgdmFsdWF0aW9uLCBmb3IgdGhlIGZpc2NhbAp5ZWFyIG9mIHN1Y2ggYWNxdWlzaXRpb24s ICBvZiAgYW55ICBzdWNoICBhY3F1aXJlZCAgcmVhbCAgcHJvcGVydHkgIHdpdGgKcmVzcGVj dCAgdG8gIHdoaWNoICByZWFsIHByb3BlcnR5IHRheGVzIHdlcmUgcGFpZCB0byB0aGUgY2l0 eSBkdXJpbmcgdGhlCmZpc2NhbCB5ZWFyIGltbWVkaWF0ZWx5IHByZWNlZGluZyBzdWNoIGFj cXVpc2l0aW9uLCAgbXVsdGlwbGllZCAgYnkgIHRoZQpyZWFsICBwcm9wZXJ0eSB0YXggcmF0 ZSBhcHBsaWNhYmxlIHRvIHN1Y2ggYWNxdWlyZWQgcHJvcGVydHkgZHVyaW5nIGVhY2gKZmlz Y2FsIHllYXIgaW4gd2hpY2ggc3VjaCBhbW91bnRzIGFyZSByZXF1aXJlZCB0byBiZSBwYWlk OyBwcm92aWRlZCB0aGF0CnRoZSBhbW91bnQgcGFpZCBieSB0aGUgdHJ1c3QgIHB1cnN1YW50 ICB0byAgdGhpcyAgcGFyYWdyYXBoICBkdXJpbmcgIGFueQpmaXNjYWwgeWVhciBzaGFsbCBu b3QgYmUgbGVzcyB0aGFuIHRoZSBhbW91bnQgcGFpZCBieSB0aGUgdHJ1c3QgcHVyc3VhbnQK dG8gdGhpcyBwYXJhZ3JhcGggZHVyaW5nIHRoZSBpbW1lZGlhdGVseSBwcmVjZWRpbmcgZmlz Y2FsIHllYXI7CiAgKGMpIGlmLCBmb3IgYW55IGZpc2NhbCB5ZWFyIG9mIHRoZSBjaXR5IHVw IHRvIGFuZCBpbmNsdWRpbmcgdGhlIGZpc2NhbAp5ZWFyICBlbmRpbmcgIHRlbiB5ZWFycyBh ZnRlciB0aGUgdGF4YWJsZSBzdGF0dXMgZGF0ZSBuZXh0IGZvbGxvd2luZyB0aGUKY29tcGxl dGlvbiBvZiBjb25zdHJ1Y3Rpb24gb2YgIHRoZSAgbm9uLWluc3RpdHV0aW9uYWwgIHBvcnRp b24gIG9mICBzdWNoCmZhY2lsaXR5LCAgdGhlIGFtb3VudCByZXF1aXJlZCB0byBiZSBwYWlk IGJ5IHRoZSB0cnVzdCBwdXJzdWFudCB0byBwYXJhLQpncmFwaCAoYikgb2YgdGhpcyBzdWJk aXZpc2lvbiBpcyBsZXNzIHRoYW4gdGVuIHBlciBjZW50dW0gb2YgdGhlICBhZ2dyZS0KZ2F0 ZSBhbW91bnQgb2YgdGF4LWVxdWl2YWxlbmN5IHBheW1lbnRzIHJlY2VpdmVkIGJ5IHRoZSB0 cnVzdCBpbiByZXNwZWN0Cm9mIHN1Y2ggcG9ydGlvbiBkdXJpbmcgdGhlIHNhbWUgZmlzY2Fs IHllYXIsIHRoZW4gdGhlIHRydXN0IHNoYWxsIHBheSB0bwp0aGUgIGNpdHksIGluIGxpZXUg b2YgdGhlIGFtb3VudCByZXF1aXJlZCB0byBiZSBwYWlkIGJ5IHRoZSB0cnVzdCBwdXJzdS0K YW50IHRvIHBhcmFncmFwaCAoYikgb2YgdGhpcyBzdWJkaXZpc2lvbiwgYW4gYW1vdW50ICBl cXVhbCAgdG8gIHRlbiAgcGVyCmNlbnR1bSBvZiB0aGUgYWdncmVnYXRlIGFtb3VudCBvZiBz dWNoIHRheC1lcXVpdmFsZW5jeSBwYXltZW50czsKICAoZCkgIHRoZSB0cnVzdCBzaGFsbCB0 aGVuIHBheSB0byB0aGUgY2l0eSBhbiBhbW91bnQgZXF1YWwgdG8gZmlmdHkgcGVyCmNlbnR1 bSBvZiAgdGhlICBpbmNyZWFzZSAgaW4gIHRoZSAgYW1vdW50ICBvZiAgdGF4LWVxdWl2YWxl bmN5ICBwYXltZW50cwpyZWNlaXZlZCAgYnkgIHRoZSAgdHJ1c3QgIGluIHJlc3BlY3Qgb2Yg dGhlIG5vbi1pbnN0aXR1dGlvbmFsIHBvcnRpb24gb2YKc3VjaCBmYWNpbGl0eSwgZHVyaW5n IGVhY2ggZmlzY2FsIHllYXIgb2YgdGhlIGNpdHkgZm9sbG93aW5nIHRoZSAgZmlzY2FsCnll YXIgIGJlZ2lubmluZyAgdGVuICB5ZWFycyBhZnRlciB0aGUgdGF4YWJsZSBzdGF0dXMgZGF0 ZSBuZXh0IGZvbGxvd2luZwp0aGUgY29tcGxldGlvbiBvZiBjb25zdHJ1Y3Rpb24gb2Ygc3Vj aCBwb3J0aW9uLCBhYm92ZSB0aGUgYW1vdW50IG9mICB0aGUKdGF4LWVxdWl2YWxlbmN5IHBh eW1lbnRzIHJlY2VpdmVkIGJ5IGl0IGR1cmluZyB0aGUgZmlzY2FsIHllYXIgYmVnaW5uaW5n CnRlbiAgeWVhcnMgIGFmdGVyICBzdWNoIHRheGFibGUgc3RhdHVzIGRhdGUsIHN1Y2ggcGF5 bWVudHMgdG8gYmUgbWFkZSBieQp0aGUgdHJ1c3QgYXQgdGhlIGVuZCBvZiBlYWNoIGZpc2Nh bCB5ZWFyIG9mIHRoZSBjaXR5IGZvciB3aGljaCB0aGV5ICBhcmUKcmVxdWlyZWQgIHRvIGJl IG1hZGU7IHRvIHRoZSBleHRlbnQgdGhhdCBzdWNoIGluY3JlYXNlIGhhcyByZXN1bHRlZCBm cm9tCmEgY2hhbmdlIGluIHRoZSBhc3Nlc3NlZCB2YWx1YXRpb24gb3IgdGhlIHJlYWwgcHJv cGVydHkgdGF4IHJhdGUgYXBwbGllZAp0byBzdWNoIHBvcnRpb247CiAgKGUpIHdpdGggcmVt YWluaW5nIGFtb3VudHMsIHRvIHBheSBwcmluY2lwYWwgYW5kICBpbnRlcmVzdCAgb24gIGJv bmRzLApub3RlcyAgYW5kICBvdGhlciBvYmxpZ2F0aW9ucyBvZiB0aGUgdHJ1c3QgaXNzdWVk IHRvIGZpbmFuY2UgZGV2ZWxvcG1lbnQKb2YgYWxsIG9yIGFueSBwYXJ0IG9mIHRoZSBpbnN0 aXR1dGlvbmFsICBwb3J0aW9uICBvZiAgc3VjaCAgY29tYmluZWQtdXNlCmZhY2lsaXR5LCAg YW5kICBlc3RhYmxpc2ggIG9yICBtYWludGFpbiAgcmVzZXJ2ZXMgIHRvIHBheSBvciBzZWN1 cmUgc3VjaApib25kcywgbm90ZXMgb3Igb3RoZXIgb2JsaWdhdGlvbnMgZXF1YWwgdG8gbm8g bW9yZSB0aGFuIHRoZSBzdW0gcmVxdWlyZWQKdG8gYmUgcGFpZCB0byBzdWNoIHJlc2VydmVz ICBzbyAgdGhhdCAgdGhlICBtb25leXMgIHRoZW4gIGhlbGQgIGluICBzdWNoCnJlc2VydmVz IGVxdWFsIHRoZSBhZ2dyZWdhdGUgYW1vdW50IG9mIHRoZSB0aGVuIG91dHN0YW5kaW5nIHBy aW5jaXBhbCBvZgpzdWNoICBib25kcyAgcGx1cyAgYW55ICByZWRlbXB0aW9uICBwcmVtaXVt ICB0aGVyZW9uIGFuZCBhbnkgaW50ZXJlc3QgdG8KYWNjcnVlIHRoZXJlb24gdG8gdGhlIGVh cmxpZXN0IG9yIHN1YnNlcXVlbnQgZGF0ZSBvZiBwYXltZW50IG9yICByZWRlbXAtCnRpb24g dGhlcmVvZjsKICAoZikgdW5sZXNzIG90aGVyd2lzZSBwcm92aWRlZCBieSBhIHJlc29sdXRp b24gb2YgdGhlIGJvYXJkIG9mIGVzdGltYXRlCm9mICB0aGUgIGNpdHksICBvciBzdWNjZXNz b3IgYm9keSwgYmVnaW5uaW5nIHdpdGggdGhlIGZpc2NhbCB5ZWFyIG9mIHRoZQp0cnVzdCBp biB3aGljaCB0aGUgdHJ1c3QgaGFzIHBhaWQsICByZWRlZW1lZCAgb3IgIG90aGVyd2lzZSAg cmV0aXJlZCAgb3IKcHJvdmlkZWQgIGEgIHJlc2VydmUgIHRvIHJlZGVlbSBvciBvdGhlcndp c2UgcmV0aXJlIGFsbCBib25kcywgbm90ZXMgYW5kCm9ibGlnYXRpb25zICBvZiAgdGhlICB0 cnVzdCAgaXNzdWVkIHRvIGZpbmFuY2UgZGV2ZWxvcG1lbnQgb2YgYWxsIG9yIGFueQpwYXJ0 IG9mIHRoZSBpbnN0aXR1dGlvbmFsIHBvcnRpb24gb2YgIHN1Y2ggIGNvbWJpbmVkLXVzZSAg ZmFjaWxpdHksICB0aGUKdHJ1c3QgIHNoYWxsIHRoZW4gcGF5IGZyb20gdGltZSB0byB0aW1l IHRoZSBjb3N0cyBvZiBvcGVyYXRpbmcgYW5kIG1haW4tCnRhaW5pbmcgdGhlIGluc3RpdHV0 aW9uYWwgcG9ydGlvbiwgZGV2ZWxvcGVkIGJ5ICBvciAgb24gIGJlaGFsZiAgb2YgIHRoZQp0 cnVzdCwgIG9mIHN1Y2ggY29tYmluZWQtdXNlIGZhY2lsaXR5LCBpbmNsdWRpbmcgd2l0aG91 dCBsaW1pdGF0aW9uLCB0aGUKY29zdHMgb2YgbGlnaHRpbmcsIGhlYXRpbmcsIGNvb2xpbmcs IHNlY3VyaXR5LCBtYWludGVuYW5jZSwgcmVwYWlycyAgYW5kCm5lY2Vzc2FyeSAgcmVwbGFj ZW1lbnRzOyBwcm92aWRlZCB0aGF0IGF0IHRoZSBlbmQgb2YgZWFjaCBmaXNjYWwgeWVhciBv Zgp0aGUgY2l0eSBhZnRlciBjb21tZW5jZW1lbnQgb2YgcGF5bWVudCBvZiBzdWNoIGNvc3Rz LCAgdGhlICB0cnVzdCAgc2hhbGwKaGF2ZSAgc3VmZmljaWVudCAgZnVuZHMgIHRvICBtYWtl IHRoZSBwYXltZW50cyB0aGVuIHJlcXVpcmVkIHVuZGVyIHBhcmEtCmdyYXBocyAoYiksIChj KSBhbmQgKGQpIG9mIHRoaXMgc3ViZGl2aXNpb247IGFuZAogIChnKSB0aGUgdHJ1c3Qgc2hh bGwgdGhlbiBwYXkgdG8gdGhlIGNpdHkgdGhlIGVudGlyZSByZW1haW5pbmcgIGJhbGFuY2UK YXQgdGhlIGVuZCBvZiBlYWNoIGZpc2NhbCB5ZWFyIG9mIHRoZSB0cnVzdC4KICBUaGUgIHBy b3Zpc2lvbnMgIG9mICBwYXJhZ3JhcGhzICAoYiksICAoYykgYW5kIChkKSBvZiB0aGlzIHN1 YmRpdmlzaW9uCnNoYWxsIGJlIHN1YmplY3QgdG8gYW55IGFncmVlbWVudCAgdW5kZXIgIHN1 YmRpdmlzaW9uICBmaXZlICBvZiAgc2VjdGlvbgoyMC4xMyBvZiBhcnRpY2xlIHR3ZW50eSBv ZiB0aGlzIGNoYXB0ZXIuCiAgMi4gU29sZWx5IGZvciBwdXJwb3NlcyBvZiBkZXRlcm1pbmlu ZyB0aGUgYW1vdW50IG9mIHRoZSB0YXgtZXF1aXZhbGVuLQpjeSAgcGF5bWVudHMgIHJlcXVp cmVkICB0byAgYmUgIHBhaWQgIGluICByZXNwZWN0ICBvZiB0aGUgcmVhbCBwcm9wZXJ0eSwK Y29uc2lzdGluZyBvZiB0aGUgbm9uLWluc3RpdHV0aW9uYWwgcG9ydGlvbiwgb3IgYW55IHBh cnQgdGhlcmVvZiwgIG9mICBhCmNvbWJpbmVkLXVzZSAgZmFjaWxpdHkgb3IgaW4gb3Igb24g d2hpY2ggYWxsIG9yIGFueSBwYXJ0IG9mIHN1Y2ggcG9ydGlvbgpwcmlvciB0byBjb21wbGV0 aW9uIGlzIGRlc2lnbmVkIHRvIGJlIGFuZCB1cG9uIGNvbXBsZXRpb24gIGlzICBkZXZlbG9w ZWQKZm9yICByZXNpZGVudGlhbCAgdXNlLCAgc3VjaCAgcmVhbCBwcm9wZXJ0eSBzaGFsbCBi ZSBkZWVtZWQgdG8gYmUgZXhlbXB0CmZyb20gIHJlYWwgIHByb3BlcnR5ICB0YXhhdGlvbiAg YXMgIGZvbGxvd3M6ICBkdXJpbmcgICB0aGUgICBwZXJpb2QgICBvZgpjb25zdHJ1Y3Rpb24g IG9mICBzdWNoICBwb3J0aW9uLCAgc3VjaCAgZXhlbXB0aW9uICBzaGFsbCBjb25zaXN0IG9m IGZ1bGwKZXhlbXB0aW9uLCBhbmQgZm9yIGEgcGVyaW9kIG5vdCB0byBleGNlZWQgdGVuICB5 ZWFycyAgaW4gIHRoZSAgYWdncmVnYXRlCmFmdGVyICB0aGUgdGF4YWJsZSBzdGF0dXMgZGF0 ZSBpbiB0aGUgY2l0eSBuZXh0IGZvbGxvd2luZyB0aGUgY29tcGxldGlvbgpvZiBzdWNoIGNv bnN0cnVjdGlvbiwgc3VjaCBleGVtcHRpb24gc2hhbGwgY29uc2lzdCBvZiB0d28geWVhcnMg b2YgIGZ1bGwKZXhlbXB0aW9uLCAgZm9sbG93ZWQgIGJ5ICB0d28gIHllYXJzIG9mIGV4ZW1w dGlvbiBmcm9tIGVpZ2h0eSBwZXJjZW50IG9mCnN1Y2ggdGF4YXRpb24sIGZvbGxvd2VkIGJ5 IHR3byB5ZWFycyBvZiBleGVtcHRpb24gZnJvbSBzaXh0eSBwZXJjZW50ICBvZgpzdWNoICB0 YXhhdGlvbiwgZm9sbG93ZWQgYnkgdHdvIHllYXJzIG9mIGV4ZW1wdGlvbiBmcm9tIGZvcnR5 IHBlcmNlbnQgb2YKc3VjaCB0YXhhdGlvbiwgZm9sbG93ZWQgYnkgdHdvIHllYXJzIG9mIGV4 ZW1wdGlvbiBmcm9tIHR3ZW50eSBwZXJjZW50IG9mCnN1Y2ggdGF4YXRpb247IHByb3ZpZGVk IHRoYXQgZHVyaW5nIHN1Y2ggcGVyaW9kIG9mIGNvbnN0cnVjdGlvbiBhbmQgc3VjaAp0ZW4t eWVhciBwZXJpb2QgdGF4LWVxdWl2YWxlbmN5IHBheW1lbnRzIHNoYWxsIGJlIG1hZGUgd2l0 aCAgcmVzcGVjdCAgdG8Kc3VjaCAgcmVhbCBwcm9wZXJ0eSBhdCBsZWFzdCBlcXVhbCB0byB0 aGUgYW1vdW50IGNvbXB1dGVkIGJ5IG11bHRpcGx5aW5nCihhKSB0aGUgYW1vdW50IHdoaWNo IGJlYXJzIHRoZSBzYW1lIHJhdGlvIHRvIHRoZSBhc3Nlc3NlZCB2YWx1YXRpb24sIGZvcgp0 aGUgIGZpc2NhbCAgeWVhciAgb2YgIHRoZSAgY2l0eSAgcHJpb3IgIHRvICB0aGUgIGNvbW1l bmNlbWVudCAgb2YgIHN1Y2gKY29uc3RydWN0aW9uLCAgb2YgIHRoZSBsYW5kIGNvbXByaXNp bmcgdGhlIHpvbmluZyBsb3Qgb3IgbG90cywgZXhjbHVzaXZlCm9mIHRoZSByZWFsIHByb3Bl cnR5IGRlc2NyaWJlZCBpbiBzdWJkaXZpc2lvbiB0d28gb2YgIHNlY3Rpb24gIDIxLjA5ICBv Zgp0aGlzICBhcnRpY2xlICBvbiB3aGljaCBhbGwgb3IgYW55IHBhcnQgb2Ygc3VjaCBjb21i aW5lZC11c2UgZmFjaWxpdHkgaXMKb3IgaXMgZGVzaWduZWQgdG8gYmUgZGV2ZWxvcGVkIGFz IHRoZSBmbG9vciBhcmVhIHVzZWQgb3IgZGVzaWduZWQgdG8gIGJlCnVzZWQgIGluICB0aGUg bm9uLWluc3RpdHV0aW9uYWwgcG9ydGlvbiBvZiBzdWNoIGZhY2lsaXR5IGZvciByZXNpZGVu dGlhbAp1c2UgYmVhcnMgdG8gdGhlIGFnZ3JlZ2F0ZSBmbG9vciBhcmVhIHBlcm1pdHRlZCAg dG8gIGJlICBjb25zdHJ1Y3RlZCAgb24Kc3VjaCAgbG90ICBvciAgbG90cyB1bmRlciBhcHBs aWNhYmxlIHpvbmluZyByZWd1bGF0aW9ucyBpbiBlZmZlY3QgYXQgdGhlCnRpbWUgb2YgY29t bWVuY2VtZW50IG9mIHN1Y2ggY29uc3RydWN0aW9uIGJ5IChiKSB0aGUgcmVhbCAgcHJvcGVy dHkgIHRheApyYXRlIGluIHRoZSBjaXR5IGZvciBzdWNoIGZpc2NhbCB5ZWFyLgogIDMuICBU aGUgZXhlcmNpc2Ugb2YgdGhlIHBvd2VyIGdyYW50ZWQgdG8gdGhlIHRydXN0IGJ5IHRoaXMg YXJ0aWNsZSBhbmQKYXJ0aWNsZSB0d2VudHkgb2YgdGhpcyBjaGFwdGVyIHRvIGNvbGxlY3Qg dGF4LWVxdWl2YWxlbmN5IHBheW1lbnRzICBmcm9tCm93bmVycyAgaXMgIGluICBhbGwgIHJl c3BlY3RzIGZvciB0aGUgZ2VuZXJhbCB3ZWxmYXJlIGFuZCBiZW5lZml0IG9mIHRoZQpwZW9w bGUgb2YgdGhlIHN0YXRlLCBhbmQgd2l0aCByZXNwZWN0ICB0byAgc3VjaCAgb3duZXJzLCAg aGFzICB0aGUgIHNhbWUKZWZmZWN0ICBhcyB0aG91Z2ggc3VjaCB0YXgtZXF1aXZhbGVuY3kg cGF5bWVudHMgd2VyZSB0YXhlcyBhcyBkZWZpbmVkIGluCnRoZSByZWFsIHByb3BlcnR5IHRh eCBsYXcgd2hpY2ggaGFkIGJlZW4gZHVseSBsZXZpZWQgIGFuZCAgaW1wb3NlZCAgdXBvbgpz dWNoIG93bmVycyBieSB0aGUgY2l0eS4KICA0LiAgSWYgIGFueSAgb3duZXIgIHNoYWxsICBm YWlsICB0byAgbWFrZSAgdGF4LWVxdWl2YWxlbmN5IHBheW1lbnRzIGFzCnJlcXVpcmVkIGJ5 IHRoaXMgYXJ0aWNsZSBhbmQgYXJ0aWNsZSB0d2VudHkgb2YgdGhpcyBjaGFwdGVyLCAgdGhl ICB0cnVzdApzaGFsbCBoYXZlIGEgbGllbiBvbiB0aGUgcmVhbCBwcm9wZXJ0eSBpbiByZXNw ZWN0IG9mIHdoaWNoIHN1Y2ggcGF5bWVudHMKd2VyZSAgcmVxdWlyZWQgIHRvICBiZSBtYWRl IGFzIGlmIHRoZSB0YXgtZXF1aXZhbGVuY3kgcGF5bWVudHMgd2VyZSByZWFsCnByb3BlcnR5 IHRheGVzIGFuZCB0aGUgdHJ1c3Qgd2VyZSBhIHRheCBkaXN0cmljdCB3aXRoaW4gdGhlICBt ZWFuaW5nICBvZgp0aGUgIHJlYWwgcHJvcGVydHkgdGF4IGxhdy4gU3VjaCBsaWVuIHNoYWxs IGhhdmUgYWxsIHRoZSBwcmlvcml0aWVzIG9mIGEKbGllbiAgZm9yICB0YXhlcyBvZiBzdWNo IHJlYWwgcHJvcGVydHkgaW4gZmF2b3Igb2YgdGhlIGNpdHkgYW5kIHNoYWxsIGJlCmVuZm9y Y2VhYmxlIGJ5IHRoZSB0cnVzdCBpbiB0aGUgbWFubmVyIHByb3ZpZGVkIGZvciAgdGhlICBj b2xsZWN0aW9uICBvZgp0YXggbGllbnMgaW4gdGl0bGUgdHdvIG9mIHN1Y2ggYXJ0aWNsZSBl bGV2ZW47IHByb3ZpZGVkIHRoYXQgaW4gcGxhY2Ugb2YKYW55ICBwZXJpb2QgIG9mICByZWRl bXB0aW9uICBwcm92aWRlZCAgYnkgbGF3IG5vIGp1ZGdtZW50IG9mIGZvcmVjbG9zdXJlCnNo YWxsIGJlIGVudGVyZWQgdW50aWwgdGhyZWUgeWVhcnMgYWZ0ZXIgdGhlIGRhdGUgb24gIHdo aWNoICBzdWNoICBvd25lcgpmaXJzdCAgZmFpbGVkIHRvIG1ha2Ugc3VjaCBwYXltZW50czsg YW5kIHByb3ZpZGVkIGZ1cnRoZXIgdGhhdCBmcm9tIHN1Y2gKZGF0ZSBpbnRlcmVzdCBzaGFs bCBhY2NydWUgb24gc3VjaCBsaWVuIGF0IHRoZSByYXRlIGZvciBsYXRlIHBheW1lbnQgIG9m CnJlYWwgcHJvcGVydHkgdGF4ZXMgaW4gdGhlIGNpdHkuCgogIFMgMjEuMTMuIFNwZWNpYWwg cHJvdmlzaW9ucyAgcmVsYXRpbmcgdG8gdGhlIGZpbmFuY2luZyBhbmQgZGV2ZWxvcG1lbnQK b2YgIGNvbWJpbmVkLXVzZSAgZmFjaWxpdGllcyAgb3IgIHB1YmxpYyAgIHRlbGV2aXNpb24g ICBmYWNpbGl0aWVzLiAgIDEuCk5vdHdpdGhzdGFuZGluZyAgYW55ICBvZiB0aGUgcG93ZXJz IGdyYW50ZWQgdG8gdGhlIHRydXN0IGJ5IHRoaXMgYXJ0aWNsZQpvciBieSBhcnRpY2xlIHR3 ZW50eSBvZiB0aGlzIHRpdGxlLCB0aGUgdHJ1c3Qgc2hhbGwgbmVpdGhlciAgY29udmV5ICBu b3IKY2F1c2UgIHRvICBiZSAgY29udmV5ZWQgYW55IHJlYWwgcHJvcGVydHkgdGhhdCBpcyBw YXJ0IG9mIGEgY29tYmluZWQtdXNlCmZhY2lsaXR5IHVubGVzcyB0aGUgaW5zdHJ1bWVudCAg b2YgIHN1Y2ggIGNvbnZleWFuY2UsICBvciAgYW4gIGFncmVlbWVudApyZWxhdGluZyAgdGhl cmV0bywgIGNvbnRhaW5zICBhICBwcm92aXNpb24gdGhhdCBubyBwZXJzb24gb3RoZXIgdGhh biB0aGUKdHJ1c3Qgb3IgYSBwYXJ0aWNpcGF0aW5nIGN1bHR1cmFsIGluc3RpdHV0aW9uIG1h eSBhY3F1aXJlLCAgZGlyZWN0bHkgIG9yCmluZGlyZWN0bHksICBhbiAgaW50ZXJlc3QgaW4g dGhlIGluc3RpdHV0aW9uYWwgcG9ydGlvbiBvZiBhIGNvbWJpbmVkLXVzZQpmYWNpbGl0eSBk ZXZlbG9wZWQgb3IgZGVzaWduZWQgdG8gYmUgZGV2ZWxvcGVkIGZvciB1c2Ugb3IgIG9jY3Vw YW5jeSAgYnkKc3VjaCAgaW5zdGl0dXRpb24sICBhdCBhbnkgdGltZSBwcmlvciB0byB0aGUg ZGF0ZSBvbiB3aGljaCBhbGwgYm9uZHMgYW5kCm5vdGVzIG9mIHRoZSB0cnVzdCBpc3N1ZWQg dG8gZmluYW5jZSBjb25zdHJ1Y3Rpb24gb2Ygc3VjaCAgcG9ydGlvbiAgaGF2ZQpiZWVuIGZ1 bGx5IHBhaWQsIHdoaWNoIGludGVyZXN0IHdvdWxkIGVudGl0bGUgc3VjaCBwZXJzb24gdG8g YSBkZWR1Y3Rpb24KZm9yIGRlcHJlY2lhdGlvbiB3aXRoIHJlc3BlY3QgdG8gc3VjaCBpbnRl cmVzdCB1bmRlciB0aGUgIHByb3Zpc2lvbnMgIG9mCnRoZSAgVW5pdGVkICBTdGF0ZXMgIGlu dGVybmFsICByZXZlbnVlICBjb2RlIG9mIDE5ODYsIGFzIGFtZW5kZWQsIG9yIGFueQpzdWNj ZXNzb3IgZmVkZXJhbCB0YXggb3IgcmV2ZW51ZSBhY3QsIGlmIHRoZSBkZXZlbG9wbWVudCBv ZiBhbnkgcGFydCAgb2YKc3VjaCAgcG9ydGlvbiAgaGFzICBiZWVuICBmaW5hbmNlZCBpbiB3 aG9sZSBvciBpbiBwYXJ0IGJ5IGJvbmRzIG9yIG5vdGVzCmlzc3VlZCBieSB0aGUgdHJ1c3Qu CiAgMi4gIE5vICBpbmRpdmlkdWFsICB3aG8gc2VydmVzIG9uIHRoZSBib2FyZCBvZiB0cnVz dGVlcywgb3IgZXF1aXZhbGVudApib2R5LCBvZiBhIHBhcnRpY2lwYXRpbmcgY3VsdHVyYWwg aW5zdGl0dXRpb24gc2hhbGwgYmUgYSAgZGV2ZWxvcGVyICBvZiwKb3IgICBzaGFyZSAgIGlu ICBhbnkgIHByb2ZpdHMgIGFyaXNpbmcgIGZyb20gIHRoZSAgZGV2ZWxvcG1lbnQgIG9mLCAg dGhlCm5vbi1pbnN0aXR1dGlvbmFsICBwb3J0aW9uICBvZiAgYSAgY29tYmluZWQtdXNlICBm YWNpbGl0eSAgZGV2ZWxvcGVkICBvcgpkZXNpZ25lZCAgdG8gIGJlICBkZXZlbG9wZWQgIGZv ciAgdXNlICBvciBvY2N1cGFuY3kgYnkgc3VjaCBpbnN0aXR1dGlvbjsKcHJvdmlkZWQgdGhh dDogKGEpIGEgcGVyc29uIGluIHdoaWNoIHN1Y2ggIGluZGl2aWR1YWwgIGhhcyAgYSAgZmlu YW5jaWFsCmludGVyZXN0ICBub3QgZXhjZWVkaW5nIGZpdmUgcGVyIGNlbnR1bSBvZiB0aGUg ZXF1aXR5IG9mIHN1Y2ggcGVyc29uIG1heQpiZSBhIGRldmVsb3BlciBvZiwgYW5kICBtYXkg IHNoYXJlICBpbiAgYW55ICBwcm9maXRzICBhcmlzaW5nICBmcm9tICB0aGUKZGV2ZWxvcG1l bnQgIG9mLCAgc3VjaCAgbm9uLWluc3RpdHV0aW9uYWwgIHBvcnRpb24sICBpZiAgc3VjaCBp bmRpdmlkdWFsCnJlZnJhaW5zIGZyb20gdm90aW5nIGF0ICBhbnkgIG1lZXRpbmcgIG9mICB0 aGUgIGJvYXJkICBvZiAgdHJ1c3RlZXMsICBvcgplcXVpdmFsZW50ICBib2R5LCAgb2YgIHN1 Y2ggIGluc3RpdHV0aW9uICBvbiAgYW55IG1hdHRlciByZWxhdGluZyB0byB0aGUKYXBwcm92 YWwgYnkgdGhlIHRydXN0IG9mIHN1Y2ggcGVyc29uIGFzIGEgZGV2ZWxvcGVyIG9mIHN1Y2gg cG9ydGlvbiAgYW5kCnRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhbnkgYWdyZWVtZW50 IHJlbGF0aW5nIHRoZXJldG87IChiKSBhIHBlcnNvbgppbiB3aGljaCBzdWNoIGluZGl2aWR1 YWwgaGFzIGEgZmluYW5jaWFsIGludGVyZXN0IG1heSBtYWtlIGEgbG9hbiB0byB0aGUKdHJ1 c3QsICB0byAgYSBkZXZlbG9wZXIgb3IgdG8gYW55IG90aGVyIHBlcnNvbiBpbiB0aGUgb3Jk aW5hcnkgY291cnNlIG9mCmJ1c2luZXNzICBpbiAgY29ubmVjdGlvbiAgd2l0aCAgc3VjaCAg ZGV2ZWxvcG1lbnQ7ICBhbmQgIChjKSAgYW55ICAgc3VjaAppbmRpdmlkdWFsICBtYXkgIHB1 cmNoYXNlIG9yIHJlbnQgYW4gYXBhcnRtZW50LCBvciBhbnkgaW50ZXJlc3QgdGhlcmVpbiwK aW4gc3VjaCBwb3J0aW9uLCBmb3IgZmFpciBtYXJrZXQgdmFsdWUuCiAgMy4gIE5vICB0cnVz dGVlIG9mIHRoZSB0cnVzdCBhbmQgbm8gcGVyc29uIGluIHdoaWNoIHN1Y2ggdHJ1c3RlZSBo YXMgYQpmaW5hbmNpYWwgaW50ZXJlc3Qgc2hhbGwgYmUgYSBkZXZlbG9wZXIgb2YgdGhlIG5v bi1pbnN0aXR1dGlvbmFsIHBvcnRpb24Kb2YgYW55IGNvbWJpbmVkLXVzZSBmYWNpbGl0eS4K CiAgUyAgMjEuMTUuICBBcHBsaWNhdGlvbiBvZiBsYXcuIEFueSBvdGhlciBwcm92aXNpb24g b2YgYW55IG90aGVyIGxhdyB0bwp0aGUgY29udHJhcnkgbm90d2l0aHN0YW5kaW5nOgogIDEu IEFsbCBvZiB0aGUgYXBwbGljYWJsZSBwcm92aXNpb25zIG9mIHRoZSBnZW5lcmFsIG11bmlj aXBhbCBsYXcgb3Igb2YKYW55IG90aGVyIGxhdyBzaGFsbCBhcHBseSB0byB0aGUgdHJ1c3Qg IGhlcmVpbiAgY29udGludWVkICBpbiAgdGhlICBzYW1lCm1hbm5lciBhcyBpZiB0aGUgbGFu Z3VhZ2Ugb2Ygc3VjaCBsYXcgaGFkIGJlZW4gaW5jb3Jwb3JhdGVkIGluIGZ1bGwgaW50bwp0 aGlzIGFydGljbGUsIGV4Y2VwdCB0byB0aGUgZXh0ZW50IHRoYXQgc3VjaCBwcm92aXNpb25z IGFyZSBpbmNvbnNpc3RlbnQKd2l0aCB0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIGFydGljbGUu CiAgMi4gIFRoZSByZXBlYWwgb2YgYXJ0aWNsZSB0aGlydGVlbi1GIG9mIHRoZSBnZW5lcmFs IG11bmljaXBhbCBsYXcsIGFuZAp0aGUgZW5hY3RtZW50IG9mIHRoaXMgYXJ0aWNsZSAgd2l0 aCAgbW9kaWZpY2F0aW9ucyAgYXMgIHRvICB0aGUgIGdlbmVyYWwKcmVmZXJlbmNlICBvZiAg c2VjdGlvbnMgIHdpdGhpbiAgdGhpcyBhcnRpY2xlLCBzaGFsbCBub3QgYmUgY29uc3RydWVk IHRvCnRha2UgYXdheSwgaW1wYWlyLCAgb3IgIGFmZmVjdCAgYW55ICByaWdodCwgIHJlbWVk eSwgIHJlc3BvbnNpYmlsaXR5ICBvcgphdXRob3JpdHkgYWNxdWlyZWQgb3IgZ2l2ZW4gYnkg dGhlIHByb3Zpc2lvbnMgc28gcmVwZWFsZWQsIGluY2x1ZGluZyBhbnkKY292ZW5hbnRzIHdp dGggYm9uZGhvbGRlcnMgb3IgYW55IGxlZ2FsIGNvbnRyYWN0cyBvciBhZ3JlZW1lbnRzIHdp dGggYW55CnBlcnNvbiBvciBwb2xpdGljYWwgc3ViZGl2aXNpb24gb2YgdGhpcyBzdGF0ZTsg YW5kIGFsbCBleGlzdGluZyBzdWl0cyBvcgpwcm9jZWVkaW5ncyBtYXkgYmUgY29udGludWVk IGFuZCBjb21wbGV0ZWQ7IGFuZCBhbGwgIG9mZmVuc2VzICBjb21taXR0ZWQKb3IgIHBlbmFs dGllcyBvciBmb3JmZWl0dXJlcyBpbmN1cnJlZCBzaGFsbCBjb250aW51ZSBhbmQgcmVtYWlu IGluIGZvcmNlCndpdGggdGhlIHNhbWUgZWZmZWN0IGFzIGlmIHRoaXMgYXJ0aWNsZSBoYWQg bm90IGJlY29tZSBsYXcuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk5ldyBZb3JrIFN0YXRlIENv bnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMKCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBUlRJQ0xFIDIyCiAgICAgICAgIFRSVVNUIEZPUiBDVUxU VVJBTCBSRVNPVVJDRVMgT0YgVEhFIENPVU5UWSBPRiBPTk9OREFHQQpTZWN0aW9uIDIyLjAx LiBTcGVjaWFsIGRlZmluaXRpb25zLgogICAgICAgIDIyLjAzLiBMZWdpc2xhdGl2ZSBmaW5k aW5ncyBhbmQgc3RhdGVtZW50IG9mIHB1cnBvc2VzLgogICAgICAgIDIyLjA1LiBDcmVhdGlv biBhbmQgYWRtaW5pc3RyYXRpb24gb2YgdGhlIHRydXN0LgogICAgICAgIDIyLjA3LiBTcGVj aWFsICAgcG93ZXJzICBvZiAgdGhlICB0cnVzdCAgcmVsYXRpbmcgIHRvICBhc3Npc3RpbmcK ICAgICAgICAgICAgICAgICBwYXJ0aWNpcGF0aW5nIGN1bHR1cmFsIGluc3RpdHV0aW9ucy4K ICAgICAgICAyMi4wOS4gU3BlY2lhbCAgIHByb3Zpc2lvbnMgICByZWxhdGluZyAgIHRvICB0 aGUgIGZpbmFuY2luZyAgYW5kCiAgICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnQgb2YgZmFj aWxpdGllcyBpbiB0aGUgY291bnR5IG9mIE9ub25kYWdhLgoKICBTIDIyLjAxLiBTcGVjaWFs IGRlZmluaXRpb25zLiAgQXMgdXNlZCBvciByZWZlcnJlZCB0byBpbiB0aGlzIGFydGljbGUs CmFsbCB0ZXJtcyBzaGFsbCBoYXZlIHRoZSBtZWFuaW5ncyBzZXQgZm9ydGggaW4gIHNlY3Rp b24gIDIwLjAzICBvZiAgdGhpcwpjaGFwdGVyLCAgZXhjZXB0ICB0aGF0ICB0aGUgIGZvbGxv d2luZyAgdGVybXMgIHNoYWxsICBoYXZlIHRoZSBmb2xsb3dpbmcKbWVhbmluZ3M6CiAgMS4g IkNvdW50eSIgc2hhbGwgbWVhbiB0aGUgY291bnR5IG9mIE9ub25kYWdhLgogIDIuICJDb3Vu dHkgZXhlY3V0aXZlIiBzaGFsbCBtZWFuIHRoZSBjb3VudHkgZXhlY3V0aXZlIG9mIHRoZSBj b3VudHkgb2YKT25vbmRhZ2EuCiAgMy4gIk5vdC1mb3ItcHJvZml0ICBjdWx0dXJhbCBvcmdh bml6YXRpb24iIHNoYWxsIG1lYW4gYSBub3QtZm9yLXByb2ZpdApjdWx0dXJhbCBvcmdhbml6 YXRpb24gYXMgZGVmaW5lZCBpbiBzZWN0aW9uIDIwLjAzIG9mIHRoaXMgY2hhcHRlciAgd2hp Y2gKaXMgbG9jYXRlZCBpbiB0aGUgY291bnR5IG9mIE9ub25kYWdhLgogIDQuICJGYWNpbGl0 eSIgIHNoYWxsICBtZWFuICBhICBmYWNpbGl0eSAgZm9yIGEgbm90LWZvci1wcm9maXQgY3Vs dHVyYWwKb3JnYW5pemF0aW9uLgogIDUuICJUcnVzdCAgZm9yIGN1bHR1cmFsIHJlc291cmNl cyIgb3IgInRydXN0IiBzaGFsbCBtZWFuIHRoZSB0cnVzdCBmb3IKY3VsdHVyYWwgcmVzb3Vy Y2VzIG9mIHRoZSBjb3VudHkgb2YgT25vbmRhZ2EgY3JlYXRlZCBieSB0aGlzIGFydGljbGUu CgogIFMgIDIyLjAzLiAgTGVnaXNsYXRpdmUgIGZpbmRpbmdzICBhbmQgIHN0YXRlbWVudCBv ZiBwdXJwb3Nlcy4gIDEuICBUaGUKbGVnaXNsYXR1cmUgaGVyZWJ5IGZpbmRzLCBkZXRlcm1p bmVzIGFuZCBkZWNsYXJlczoKICAoYSkgdGhhdCBjZXJ0YWluIG1ham9yIGN1bHR1cmFsIGlu c3RpdHV0aW9ucyBsb2NhdGVkIGluIHRoZSBjb3VudHkgYXJlCmludmFsdWFibGUgY3VsdHVy YWwsIGVkdWNhdGlvbmFsIGFuZCByZWNyZWF0aW9uYWwgcmVzb3VyY2VzIG9mIHRoZSBzdGF0 ZQphbmQgIHRoZSAgY29udGludWVkICBvcGVyYXRpb24gb2Ygc3VjaCBpbnN0aXR1dGlvbnMg aW4gdGhlIGNvdW50eSBpcyBmb3IKdGhlIGJlbmVmaXQgb2YgdGhlIHBlb3BsZSBvZiB0aGUg c3RhdGUgYW5kIHRoZSBjb3VudHk7CiAgKGIpICB0aGF0ICBieSByZWFzb24gb2YgdGhlIHNl dmVyZSBlY29ub21pYyBhbmQgZmlzY2FsIHByb2JsZW1zIGZhY2luZwpib3RoIHRoZSBzdGF0 ZSBhbmQgY291bnR5LCBuZWl0aGVyIHRoZSBzdGF0ZSAgbm9yICB0aGUgIGNvdW50eSAgaXMg IGFibGUKYWRlcXVhdGVseSAgdG8gIHN1cHBvcnQgdGhlIGN1bHR1cmFsIGluc3RpdHV0aW9u cyBvZiB0aGUgY291bnR5IGluIHRoZWlyCmVmZm9ydHMgIGJvdGggIHRvICBwcm92aWRlICBj dWx0dXJhbCwgICByZWNyZWF0aW9uYWwgICBhbmQgICBlZHVjYXRpb25hbApvcHBvcnR1bml0 aWVzICB0byAgdGhlICBwZW9wbGUgb2YgdGhlIHN0YXRlIGFuZCB0byBpbXByb3ZlIHRoZSB2 aWFiaWxpdHkKYW5kIGdyb3d0aCBvZiBjdWx0dXJhbCBvcmdhbml6YXRpb25zIGluIHRoZSBj b3VudHk7IGFuZAogIChjKSAgdGhhdCAgaXQgIGlzICBpbiAgdGhlIGludGVyZXN0IG9mIHRo ZSBwZW9wbGUgb2YgdGhlIHN0YXRlIGFuZCBmb3IKdGhlaXIgYmVuZWZpdCBhbmQgd2VsZmFy ZSB0byBlbmNvdXJhZ2UgdGhlIGNyZWF0aXZlIGFuZCAgaW5ub3ZhdGl2ZSAgdXNlCm9mICBw dWJsaWMgIGFuZCAgcHJpdmF0ZSAgcmVzb3VyY2VzIGluIG9yZGVyIHRvIHByZXNlcnZlIGFu ZCBwcm90ZWN0IHRoZQpjdWx0dXJhbCByZXNvdXJjZXMgIG9mICB0aGUgIGNvdW50eSAgYW5k ICBvdGhlcndpc2UgIHRvICBlZmZlY3R1YXRlICB0aGUKcHVycG9zZXMgIG9mICB0aGlzICBh cnRpY2xlICBhbmQgIGFydGljbGUgIHR3ZW50eSBvZiB0aGlzIGNoYXB0ZXIgYnkgdGhlCmNy ZWF0aW9uIG9mIHRoZSB0cnVzdCBmb3IgY3VsdHVyYWwgcmVzb3VyY2VzIG9mIHRoZSBjb3Vu dHkgb2YgIE9ub25kYWdhLgogIDIuICBUaGUgbGVnaXNsYXR1cmUgaGVyZWJ5IGZ1cnRoZXIg ZmluZHMsIGRldGVybWluZXMgYW5kIGRlY2xhcmVzIHRoYXQKdGhlIGNyZWF0aW9uIG9mIHRo ZSB0cnVzdCAgZm9yICBjdWx0dXJhbCAgcmVzb3VyY2VzICBvZiAgdGhlICBjb3VudHkgIG9m Ck9ub25kYWdhICBhbmQgdGhlIGRlbGVnYXRpb24gdG8gdGhlIHRydXN0IG9mIHBhcnQgb2Yg dGhlIHNvdmVyZWlnbiBwb3dlcgpvZiB0aGUgc3RhdGUgYXJlIGluIGFsbCByZXNwZWN0cyBm b3IgdGhlIGJlbmVmaXQgb2YgdGhlICBwZW9wbGUgIG9mICB0aGUKc3RhdGUgIGFuZCAgY29u c3RpdHV0ZSAgYSAgZ292ZXJubWVudGFsLCAgc3RhdGUsICBtdW5pY2lwYWwgIGFuZCAgcHVi bGljCnB1cnBvc2U7IGFuZCB0aGF0IHRoZSBleGVyY2lzZSBieSB0aGUgdHJ1c3Qgb2YgdGhl IGZ1bmN0aW9ucyBhbmQgIHBvd2VycwpncmFudGVkICB0byAgaXQgIHVuZGVyICB0aGlzICBh cnRpY2xlICBjb25zdGl0dXRlcyB0aGUgcGVyZm9ybWFuY2Ugb2YgYW4KZXNzZW50aWFsIHB1 YmxpYyBhbmQgZ292ZXJubWVudGFsIGZ1bmN0aW9uLgoKICBTICAyMi4wNS4gIENyZWF0aW9u ICBhbmQgIGFkbWluaXN0cmF0aW9uICBvZiAgdGhlIHRydXN0LiAgMS4gIFRoZXJlIGlzCmhl cmVieSBjcmVhdGVkIHRoZSAgdHJ1c3QgIGZvciAgY3VsdHVyYWwgIHJlc291cmNlcyAgb2Yg IHRoZSAgY291bnR5ICBvZgpPbm9uZGFnYSAgd2hpY2ggIHNoYWxsICBoYXZlICBhbGwgIHRo ZSAgcG93ZXJzLCAgcmlnaHRzLCAgcHJpdmlsZWdlcyBhbmQKZXhlbXB0aW9ucyBvZiBhIHRy dXN0IGZvciBjdWx0dXJhbCByZXNvdXJjZXMgZGVzY3JpYmVkIGluIGFydGljbGUgdHdlbnR5 Cm9mIHRoaXMgY2hhcHRlciBhbmQgdGhpcyBhcnRpY2xlLgogIDIuICBUaGUgYm9hcmQgb2Yg dHJ1c3RlZXMgb2YgdGhlIHRydXN0IHNoYWxsIGNvbnNpc3Qgb2YgZml2ZSB0cnVzdGVlcywK YWxsIG9mIHdob20gc2hhbGwgYmUgYXBwb2ludGVkIGJ5IHRoZSBjb3VudHkgZXhlY3V0aXZl IHdpdGggdGhlIGFwcHJvdmFsCm9mICB0aGUgY291bnR5IGxlZ2lzbGF0dXJlIGFmdGVyIGNv bnN1bHRhdGlvbiB3aXRoIHBlcnNvbnMgZGVzaWduYXRlZCBieQpwYXJ0aWNpcGF0aW5nICBj dWx0dXJhbCAgaW5zdGl0dXRpb25zLiAgIFRoZSAgY291bnR5ICBleGVjdXRpdmUsICAgYWZ0 ZXIKY29uc3VsdGF0aW9uICB3aXRoICBzdWNoIHBlcnNvbnMsIHNoYWxsIGFwcG9pbnQgYSB0 cnVzdGVlIGFzIGNoYWlybWFuIG9mCnRoZSBib2FyZCBvZiB0cnVzdGVlcy4gIFRoZSBjaGFp cm1hbiBzaGFsbCBwcmVzaWRlIG92ZXIgYWxsIG1lZXRpbmdzICBvZgp0aGUgYm9hcmQgb2Yg dHJ1c3RlZXMsIGFuZCBhZnRlciBjb25zdWx0YXRpb24gd2l0aCB0aGUgY291bnR5IGV4ZWN1 dGl2ZSwKdGhlIGNoYWlybWFuIHNoYWxsIGFwcG9pbnQgYSB0cnVzdGVlIGFzIHByZXNpZGVu dCAgYW5kICBjaGllZiAgZXhlY3V0aXZlCm9mZmljZXIgIG9mICB0aGUgIHRydXN0LiAgIFRo ZSAgY2hhaXJtYW4gIGFuZCAgdGhlICBwcmVzaWRlbnQgIGFuZCBjaGllZgpleGVjdXRpdmUg b2ZmaWNlciBzaGFsbCBoYXZlIHN1Y2ggcG93ZXJzIGFuZCBkdXRpZXMgYXMgYXJlIHNldCBm b3J0aCAgaW4KdGhlIGJ5LWxhd3Mgb2YgdGhlIHRydXN0LiAgVHJ1c3RlZXMgc2hhbGwgYmUg YXBwb2ludGVkIGZvciBhIHRlcm0gb2Ygc2l4CnllYXJzIGZyb20gdGhlIGVmZmVjdGl2ZSBk YXRlcyBvZiB0aGVpciBhcHBvaW50bWVudHM7IHByb3ZpZGVkLCBob3dldmVyLAp0aGF0ICB0 aGUgdGVybSBvZiBvZmZpY2Ugb2YgdHdvIHRydXN0ZWVzIGZpcnN0IGFwcG9pbnRlZCwgb3Ro ZXIgdGhhbiB0aGUKY2hhaXJtYW4gYW5kIHRoZSBwcmVzaWRlbnQsIHNoYWxsIGJlIGZpdmUg eWVhcnMsIGFuZCB0aGUgdGVybSBvZiAgb2ZmaWNlCm9mICBvbmUgIHRydXN0ZWUgIGZpcnN0 ICBhcHBvaW50ZWQsICBvdGhlciAgdGhhbiAgdGhlICBjaGFpcm1hbiAgYW5kIHRoZQpwcmVz aWRlbnQsIHNoYWxsIGJlIGZvdXIgeWVhcnMuICBBbGwgdHJ1c3RlZXMgIHNoYWxsICBjb250 aW51ZSAgdG8gIGhvbGQKb2ZmaWNlICB1bnRpbCB0aGVpciBzdWNjZXNzb3JzIGhhdmUgYmVl biBhcHBvaW50ZWQuIElmIGF0IGFueSB0aW1lIHRoZXJlCmlzIGEgdmFjYW5jeSBpbiB0aGUg bWVtYmVyc2hpcCBvZiB0aGUgYm9hcmQgb2YgdHJ1c3RlZXMsICBieSAgcmVhc29uICBvZgpk ZWF0aCwgcmVzaWduYXRpb24sIGRpc3F1YWxpZmljYXRpb24gb3Igb3RoZXJ3aXNlLCBzdWNo IHZhY2FuY3kgc2hhbGwgYmUKZmlsbGVkIGZvciB0aGUgdW5leHBpcmVkICB0ZXJtICBpbiAg dGhlICBzYW1lICBtYW5uZXIgIGFzICB0aGUgIG9yaWdpbmFsCmFwcG9pbnRtZW50LiBUaGUg Y291bnR5IGV4ZWN1dGl2ZSBtYXkgcmVtb3ZlIGFueSB0cnVzdGVlIGZyb20gb2ZmaWNlIGZv cgpjYXVzZS4KCiAgUyAgIDIyLjA3LiAgIFNwZWNpYWwgICBwb3dlcnMgIG9mICB0aGUgIHRy dXN0ICByZWxhdGluZyAgdG8gIGFzc2lzdGluZwpwYXJ0aWNpcGF0aW5nIGN1bHR1cmFsIGlu c3RpdHV0aW9ucy4gIEluIGFkZGl0aW9uIHRvIHN1Y2ggcG93ZXJzIGFzICBhcmUKY29uZmVy cmVkICBlbHNld2hlcmUgaW4gYXJ0aWNsZSB0d2VudHkgb2YgdGhpcyBjaGFwdGVyIGFuZCB0 aGlzIGFydGljbGUsCnRoZSB0cnVzdCBzaGFsbCBoYXZlIHRoZSBmb2xsb3dpbmcgcG93ZXJz IHdoaWNoIG1heSBiZSBleGVyY2lzZWQsIGF0IHRoZQpkaXNjcmV0aW9uICAgb2YgIHRoZSAg Ym9hcmQgIG9mICB0cnVzdGVlcywgIHNvbGVseSAgYW5kICBleGNsdXNpdmVseSAgaW4KZnVy dGhlcmFuY2Ugb2YgaXRzIGNvcnBvcmF0ZSBwdXJwb3NlcyB3aXRoIG9yIHdpdGhvdXQgcHVi bGljIGF1Y3Rpb24gIG9yCmJpZGRpbmc6CiAgMS4gIHRvICB1bmRlcnRha2UgIHN1cnZleXMg IG9mICB0aGUgIHByZXNlbnQgIGFuZCBhbnRpY2lwYXRlZCBuZWVkcyBvZgpub3QtZm9yLXBy b2ZpdCBjdWx0dXJhbCBvcmdhbml6YXRpb25zIGluIHRoZSBjb3VudHksICBpbmNsdWRpbmcg IHdpdGhvdXQKbGltaXRhdGlvbiAgIHRoZSAgIG5lZWQgIGZvciAgZGV2ZWxvcG1lbnQgIG9m ICB0aGUgIGZhY2lsaXRpZXMgIG9mICBzdWNoCm9yZ2FuaXphdGlvbnMsIGluIG9yZGVyIHRv ICBkZXRlcm1pbmUgIHdoZXRoZXIgIG9yICBub3QgIHRoZSAgdHJ1c3QgIG1heQplZmZlY3Rp dmVseSAgZXhlcmNpc2UgaXRzIHBvd2VycyBhbmQgZnVsZmlsbCBpdHMgcHVycG9zZXMgaW4g Y29vcGVyYXRpb24Kd2l0aCBhbnkgc3VjaCBvcmdhbml6YXRpb25zOwogIDIuICB0byBkZXZl bG9wIGZhY2lsaXRpZXMgZm9yIG5vdC1mb3ItcHJvZml0IGN1bHR1cmFsIG9yZ2FuaXphdGlv bnMgb3IKY2F1c2Ugc3VjaCBmYWNpbGl0aWVzIHRvIGJlIGRldmVsb3BlZCwgaW4gYWNjb3Jk YW5jZSB3aXRoICB0aGlzICBhcnRpY2xlCmFuZCAgYXJ0aWNsZSAgdHdlbnR5IG9mIHRoaXMg Y2hhcHRlciwgdG8gYWNxdWlyZSBpbiBjb25uZWN0aW9uIHRoZXJld2l0aApyZWFsIHByb3Bl cnR5IG9mIGEgbm90LWZvci1wcm9maXQgY3VsdHVyYWwgb3JnYW5pemF0aW9uLCBzdWJqZWN0 IHRvICB0aGUKcmV0ZW50aW9uICBvciAgY3JlYXRpb24gIGJ5IHN1Y2ggb3JnYW5pemF0aW9u IG9mIGFueSBmdXR1cmUgb3IgcmVtYWluZGVyCmludGVyZXN0cyBpbiBzdWNoIHByb3BlcnR5 LCBhbGwgb2Ygd2hpY2ggc2hhbGwgYmUgdmFsaWQgIG5vdHdpdGhzdGFuZGluZwphbnkgIHJ1 bGUgIGFnYWluc3QgcGVycGV0dWl0aWVzLCBhbmQgaW4gY29ubmVjdGlvbiB0aGVyZXdpdGgs IHRvIGluc3RhbGwKb3IgY2F1c2UgdG8gIGJlICBpbnN0YWxsZWQgIHdhdGVyLCAgZnVlbCwg IGdhcywgIGVsZWN0cmljYWwsICB0ZWxlcGhvbmUsCmhlYXRpbmcsICAgYWlyLWNvbmRpdGlv bmluZyAgIGFuZCAgIG90aGVyICB1dGlsaXR5ICBzZXJ2aWNlcywgIGluY2x1ZGluZwphcHBy b3ByaWF0ZSBjb25uZWN0aW9uczsKICAzLiAgdG8gbWFpbnRhaW4sIHJlcGFpciwga2VlcCB1 cCwgbWFuYWdlIGFuZCBvcGVyYXRlIGl0cyByZWFsIHByb3BlcnR5CmFuZCBhbnkgZmFjaWxp dHkgZm9yIGEgIG5vdC1mb3ItcHJvZml0ICBjdWx0dXJhbCAgb3JnYW5pemF0aW9uICBvciAg cGFydAp0aGVyZW9mIGRldmVsb3BlZCBieSBvciBwdXJzdWFudCB0byBhbiBhZ3JlZW1lbnQg d2l0aCBpdCwgYnkgbWVhbnMgd2hpY2gKbWF5IGluY2x1ZGUgdGhlIGVuZm9yY2VtZW50IG9m IGl0cyBydWxlcyBhbmQgcmVndWxhdGlvbnMgaW4gIHRoZSAgbWFubmVyCmRlc2NyaWJlZCAg IGluICAgc3ViZGl2aXNpb24gIGQgIG9mICBzZWN0aW9uICB0d28gIGh1bmRyZWQgIHR3byAg b2YgIHRoZQpub3QtZm9yLXByb2ZpdCBjb3Jwb3JhdGlvbiBsYXcgd2l0aCAgdGhlICBzYW1l ICBlZmZlY3QgIGFzICB0aG91Z2ggIHN1Y2gKc3ViZGl2aXNpb24gYXBwbGllZCB0byB0aGUg dHJ1c3QgYW5kIHRvIHN1Y2ggcHJvcGVydHkgYW5kIGZhY2lsaXR5OwogIDQuICB0byAgb2Zm ZXIgIHRvICBjb252ZXkgIGFuZCAgdG8gIGNvbnZleSAgYWxsICBvciAgYW55ICBwYXJ0ICBv ZiB0aGUKbm9uLWluc3RpdHV0aW9uYWwgcG9ydGlvbiBvZiBhIGZhY2lsaXR5IG9yIGFueSBp bnRlcmVzdCB0aGVyZWluLCBhbmQgIHRvCnRha2UgYW55IGFuZCBhbGwgYWN0aW9ucyBkZWVt ZWQgbmVjZXNzYXJ5IG9yIGFwcHJvcHJpYXRlIGJ5IHRoZSB0cnVzdCB0bwphZHZlcnRpc2Us IHByb21vdGUsIGVuY291cmFnZSwgYW5kIGVmZmVjdCBzdWNoIGNvbnZleWFuY2VzLCAgYWxs ICBmdXR1cmUKb3IgIHJlbWFpbmRlciAgaW50ZXJlc3RzICBjcmVhdGVkIG9yIHJldGFpbmVk IGJ5IHRoZSB0cnVzdCBpbiBjb25uZWN0aW9uCnRoZXJld2l0aCAgd2hpY2ggIHNoYWxsICBi ZSAgdmFsaWQgIG5vdHdpdGhzdGFuZGluZyAgYW55ICBydWxlICAgYWdhaW5zdApwZXJwZXR1 aXRpZXM7CiAgNS4gIHRvICBjb252ZXkgIHdpdGggIG9yICB3aXRob3V0ICBjb25zaWRlcmF0 aW9uLCAgdG8gYSBub3QtZm9yLXByb2ZpdApjdWx0dXJhbCBvcmdhbml6YXRpb24gdGhlIGlu c3RpdHV0aW9uYWwgcG9ydGlvbiBvZiBhIGZhY2lsaXR5ICBkZXZlbG9wZWQKaW4gIGNvb3Bl cmF0aW9uIHdpdGggc3VjaCBvcmdhbml6YXRpb24gYW5kIGFueSByZWFsIHByb3BlcnR5IGhl bGQgYnkgdGhlCnRydXN0IGluIGNvbm5lY3Rpb24gd2l0aCBzdWNoIGRldmVsb3BtZW50Owog IDYuICB0byAgZW50ZXIgaW50byBhIHBhcnRuZXJzaGlwLCBqb2ludCB2ZW50dXJlIG9yIG90 aGVyIGVudGVycHJpc2UgaW4KYW55IGNhcGFjaXR5IGRlZW1lZCAgYnkgIGl0ICB0byAgYmUg IGFwcHJvcHJpYXRlLCAgZm9yICB0aGUgIHB1cnBvc2UgIG9mCmRldmVsb3BpbmcgIGFuZCAg b3BlcmF0aW5nICBhICBmYWNpbGl0eSAgZm9yICBhICBub3QtZm9yLXByb2ZpdCBjdWx0dXJh bApvcmdhbml6YXRpb24gb3IgYW55IHBhcnQgdGhlcmVvZjsKICA3LiAgdG8gY29udmV5LCB3 aXRob3V0IHB1YmxpYyBhdWN0aW9uIG9yIGJpZGRpbmcsIGFueSByZWFsIHByb3BlcnR5IHRv CmEgZGV2ZWxvcGVyIGZvciB0aGUgcHVycG9zZSBvZiBkZXZlbG9waW5nIHRoZXJlaW4gb3Ig dGhlcmVvbiBhIGZhY2lsaXR5LApvciAgYSAgcGFydCAgb3IgcG9ydGlvbiB0aGVyZW9mLCBz dWJqZWN0IHRvIHRoZSBjcmVhdGlvbiBvciByZXRlbnRpb24gYnkKdGhlIHRydXN0IG9mIHN1 Y2ggZnV0dXJlIG9yIHJlbWFpbmRlciBpbnRlcmVzdHMgaW4gc3VjaCBwcm9wZXJ0eSAgYXMg IGl0CmRlZW1zICBhcHByb3ByaWF0ZSwgYWxsIG9mIHdoaWNoIHNoYWxsIGJlIHZhbGlkIG5v dHdpdGhzdGFuZGluZyBhbnkgcnVsZQphZ2FpbnN0IHBlcnBldHVpdGllczsKICA4LiAgdG8g IHB1cmNoYXNlIG9yIGxlYXNlIHRoZSBpbnN0aXR1dGlvbmFsIHBvcnRpb24gb2YgYSBmYWNp bGl0eSBmcm9tCnRoZSBkZXZlbG9wZXIgdGhlcmVvZiBmb3IgdXNlIGFuZCBvY2N1cGFuY3kg YnkgYSBub3QtZm9yLXByb2ZpdCBjdWx0dXJhbApvcmdhbml6YXRpb247CiAgOS4gIHRvICBm dXJuaXNoICBub3QtZm9yLXByb2ZpdCBjdWx0dXJhbCBvcmdhbml6YXRpb25zIHdpdGggYWR2 aWNlIGFuZAp3aXRoIHRlY2huaWNhbCBhbmQgb3RoZXIgYXNzaXN0YW5jZTsgdG8gYWN0ICBh cyAgbGlhaXNvbiAgd2l0aCAgZmVkZXJhbCwKc3RhdGUgIGFuZCAgbXVuaWNpcGFsICBhbmQg IG90aGVyICBsb2NhbCAgYXV0aG9yaXRpZXMgYW5kIHdpdGggdXNlcnMgYW5kCm9jY3VwYW50 cyBvZiBmYWNpbGl0aWVzIHdpdGggcmVzcGVjdCB0byB0aGUgY3VsdHVyYWwsICByZWNyZWF0 aW9uYWwgIGFuZAplZHVjYXRpb25hbCAgICBhY3Rpdml0aWVzICAgIHByb3ZpZGVkICAgIGJ5 ICAgIG5vdC1mb3ItcHJvZml0ICAgY3VsdHVyYWwKb3JnYW5pemF0aW9uczsgYW5kIG90aGVy d2lzZSB0byAgZm9zdGVyICBhbmQgIGVuY291cmFnZSAgZ3JlYXRlciAgcHVibGljCmtub3ds ZWRnZSAgb2YsICBhbmQgIHBhcnRpY2lwYXRpb24gIGluLCAgdGhlICBjdWx0dXJhbCwgcmVj cmVhdGlvbmFsIGFuZAplZHVjYXRpb25hbCBhY3Rpdml0aWVzIG9mIHN1Y2ggb3JnYW5pemF0 aW9uczsKICAxMC4gdG8gb3JnYW5pemUgb25lIG9yIG1vcmUgd2hvbGx5LW93bmVkIHN1YnNp ZGlhcnkgY29ycG9yYXRpb25zIHVuZGVyCmFueSBhcHBsaWNhYmxlIHByb3Zpc2lvbiBvZiBs YXcgYW5kIHRvIHBlcmZvcm0gdGhyb3VnaCBzdWNoIHN1YnNpZGlhcmllcwpvciAgY2F1c2Ug c3VjaCBzdWJzaWRpYXJpZXMgdG8gcGVyZm9ybSBhbGwgb3IgYW55IHBhcnQgb2YgaXRzIHBv d2VycyBhbmQKZnVuY3Rpb25zOwogIDExLiAgdG8gIGVzdGFibGlzaCAgYW5kICBwcm9tdWxn YXRlICBzdWNoIHJ1bGVzIGFuZCByZWd1bGF0aW9ucyBhcyB0aGUKdHJ1c3QgbWF5IGRlZW0g bmVjZXNzYXJ5LCAgY29udmVuaWVudCAgb3IgIGRlc2lyYWJsZSAgZm9yICB0aGUgIHVzZSAg YW5kCm9wZXJhdGlvbiAgb2YgYW55IGZhY2lsaXR5LCBvciBwYXJ0IHRoZXJlb2YsIGFuZCBm b3IgdGhlIHVzZSBvZiBhbnkgcmVhbApwcm9wZXJ0eSBkZXZlbG9wZWQgb3IgdG8gYmUgZGV2 ZWxvcGVkIGJ5IG9yICBwdXJzdWFudCAgdG8gIGFuICBhZ3JlZW1lbnQKd2l0aCAgaXQsICBp bmNsdWRpbmcgIGJ1dCBub3QgbGltaXRlZCB0byBydWxlcyBhbmQgcmVndWxhdGlvbnMgZ292 ZXJuaW5nCnRoZSBjb25kdWN0IGFuZCBzYWZldHkgb2YgdGhlIHB1YmxpYyBvbiBzdWNoIHBy ZW1pc2VzOwogIDEyLiB0byBtYWtlIGFuZCBleGVjdXRlIHN1Y2ggYWdyZWVtZW50cywgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiwKaW5zdHJ1bWVudHMgb2YgY29udmV5YW5jZSBh bmQgYWdyZWVtZW50cyAgd2l0aCAgbm90LWZvci1wcm9maXQgIGN1bHR1cmFsCm9yZ2FuaXph dGlvbnMgICB3aXRoICAgcmVzcGVjdCAgIHRvICAgdGhlICAgYXJjaGl0ZWN0dXJhbCAgIGFu ZCAgIGRlc2lnbgpjaGFyYWN0ZXJpc3RpY3Mgb2YgYW55IGZhY2lsaXR5LCBhcyBhcmUgbmVj ZXNzYXJ5IG9yIGNvbnZlbmllbnQgZm9yICB0aGUKZXhlcmNpc2UgIG9mICBpdHMgIGNvcnBv cmF0ZSBwb3dlcnMgYW5kIHRoZSBmdWxmaWxsbWVudCBvZiBpdHMgcHVycG9zZXM7CmFuZAog IDEzLiB0byBtYWtlIGxvYW5zIGluIGFjY29yZGFuY2Ugd2l0aCBhcnRpY2xlIHR3ZW50eSBv ZiB0aGlzIGNoYXB0ZXIuCgogIFMgMjIuMDkuIFNwZWNpYWwgcHJvdmlzaW9ucyAgcmVsYXRp bmcgdG8gdGhlIGZpbmFuY2luZyBhbmQgZGV2ZWxvcG1lbnQKb2YgZmFjaWxpdGllcyBpbiB0 aGUgY291bnR5IG9mIE9ub25kYWdhLiAxLiBObyBpbmRpdmlkdWFsIHdobyBzZXJ2ZXMgIG9u CnRoZSAgYm9hcmQgb2YgdHJ1c3RlZXMsIG9yIGVxdWl2YWxlbnQgYm9keSwgb2YgYSBub3Qt Zm9yLXByb2ZpdCBjdWx0dXJhbApvcmdhbml6YXRpb24gc2hhbGwgYmUgYSBkZXZlbG9wZXIg b2YsIG9yIHNoYXJlIGluICBhbnkgIHByb2ZpdHMgIGFyaXNpbmcKZnJvbSAgdGhlICBkZXZl bG9wbWVudCAgb2YsICB0aGUgbm9uLWluc3RpdHV0aW9uYWwgcG9ydGlvbiBvZiBhIGZhY2ls aXR5CmRldmVsb3BlZCBvciBkZXNpZ25lZCB0byBiZSBkZXZlbG9wZWQgIGZvciAgdXNlICBv ciAgb2NjdXBhbmN5ICBieSAgc3VjaApvcmdhbml6YXRpb247IHByb3ZpZGVkIHRoYXQ6IChh KSBhIHBlcnNvbiBpbiB3aGljaCBzdWNoIGluZGl2aWR1YWwgaGFzIGEKZmluYW5jaWFsIGlu dGVyZXN0IG5vdCBleGNlZWRpbmcgZml2ZSBwZXIgY2VudHVtIG9mIHRoZSBlcXVpdHkgIG9m ICBzdWNoCnBlcnNvbiAgbWF5IGJlIGEgZGV2ZWxvcGVyIG9mLCBhbmQgbWF5IHNoYXJlIGlu IGFueSBwcm9maXRzIGFyaXNpbmcgZnJvbQp0aGUgZGV2ZWxvcG1lbnQgb2YsIHN1Y2ggbm9u LWluc3RpdHV0aW9uYWwgcG9ydGlvbiwgaWYgIHN1Y2ggIGluZGl2aWR1YWwKcmVmcmFpbnMg IGZyb20gIHZvdGluZyAgYXQgIGFueSAgbWVldGluZyAgb2YgIHRoZSAgYm9hcmQgb2YgdHJ1 c3RlZXMsIG9yCmVxdWl2YWxlbnQgYm9keSwgb2Ygc3VjaCBpbnN0aXR1dGlvbiAgb24gIGFu eSAgbWF0dGVyICByZWxhdGluZyAgdG8gIHRoZQphcHByb3ZhbCAgYnkgdGhlIHRydXN0IG9m IHN1Y2ggcGVyc29uIGFzIGEgZGV2ZWxvcGVyIG9mIHN1Y2ggcG9ydGlvbiBhbmQKdGhlIHRl cm1zIGFuZCBjb25kaXRpb25zIG9mIGFueSBhZ3JlZW1lbnQgcmVsYXRpbmcgdGhlcmV0bzsg KGIpIGEgcGVyc29uCmluIHdoaWNoIHN1Y2ggaW5kaXZpZHVhbCBoYXMgYSBmaW5hbmNpYWwg aW50ZXJlc3QgbWF5IG1ha2UgYSBsb2FuIHRvIHRoZQp0cnVzdCwgdG8gYSBkZXZlbG9wZXIg b3IgdG8gYW55IG90aGVyIHBlcnNvbiBpbiB0aGUgb3JkaW5hcnkgIGNvdXJzZSAgb2YKYnVz aW5lc3MgICBpbiAgY29ubmVjdGlvbiAgd2l0aCAgc3VjaCAgZGV2ZWxvcG1lbnQ7ICBhbmQg IChjKSAgYW55ICBzdWNoCmluZGl2aWR1YWwgbWF5IHB1cmNoYXNlIG9yIHJlbnQgYW4gYXBh cnRtZW50LCBvciBhbnkgIGludGVyZXN0ICB0aGVyZWluLAppbiBzdWNoIHBvcnRpb24sIGZv ciBmYWlyIG1hcmtldCB2YWx1ZS4KICAyLiAgIE5vIHRydXN0ZWUgb2YgdGhlIHRydXN0IGFu ZCBubyBwZXJzb24gaW4gd2hpY2ggc3VjaCB0cnVzdGVlIGhhcyBhCmZpbmFuY2lhbCBpbnRl cmVzdCBzaGFsbCBiZSBhIGRldmVsb3BlciBvZiB0aGUgbm9uLWluc3RpdHV0aW9uYWwgcG9y dGlvbgpvZiBhbnkgZmFjaWxpdHkuCiAgMy4gIEluICBhbnkgY2FzZSBpbiB3aGljaCByZWFs IHByb3BlcnR5LCBjb25zaXN0aW5nIG9mIGFsbCBvciBhbnkgcGFydApvZiB0aGUgbm9uLWlu c3RpdHV0aW9uYWwgcG9ydGlvbiBvZiBhIGNvbWJpbmVkLXVzZSBmYWNpbGl0eSBvciBpbiBv ciAgb24Kd2hpY2ggYWxsIG9yIGFueSBwYXJ0IG9mIHN1Y2ggcG9ydGlvbiBwcmlvciB0byBj b21wbGV0aW9uIGlzIGRlc2lnbmVkIHRvCmJlIGFuZCB1cG9uIGNvbXBsZXRpb24gIGlzICBk ZXZlbG9wZWQsICBpcyAgZXhlbXB0ICBmcm9tICByZWFsICBwcm9wZXJ0eQp0YXhhdGlvbiAg cHVyc3VhbnQgIHRvICBzZWN0aW9uICAyMC4zMyBvZiB0aGlzIHRpdGxlLCBhbmQgc3ViamVj dCB0byBhbnkKYWdyZWVtZW50cyB3aXRoIHRoZSBob2xkZXJzIG9mIGl0cyBib25kcyBvciBu b3RlcywgdGhlIHRydXN0ICBzaGFsbCAgcGF5Cm9yICBjYXVzZSAgdG8gIGJlICBwYWlkICBi eSAgbWVhbnMgd2hpY2ggbWF5IGluY2x1ZGUgYW4gYWdyZWVtZW50IHdpdGggYQpwYXJ0aWNp cGF0aW5nIG5vdC1mb3ItcHJvZml0IGN1bHR1cmFsIG9yZ2FuaXphdGlvbiwgYSAgZGV2ZWxv cGVyICBvciAgYW4Kb3duZXIsICBhbm51YWwgIHN1bXMgIGluICBsaWV1IG9mIHRheGVzIHRv IGFueSBtdW5pY2lwYWxpdHkgb3IgcG9saXRpY2FsCnN1YmRpdmlzaW9uIG9mIHRoZSBzdGF0 ZSB0byB3aGljaCBzdWNoIHRheGVzIHdvdWxkICBvdGhlcndpc2UgIGJlICBvd2VkLApwcm92 aWRlZCAgdGhhdCAgc3VjaCAgcGF5bWVudHMgIGluICBsaWV1ICBvZiB0YXhlcyBzaGFsbCBi ZSBmb3IgdGhlIGZ1bGwKYW1vdW50IG9mIGFueSBzdWNoIHRheCBwYXltZW50cyBkdWUgYW5k IG93aW5nLCB1bmxlc3Mgc3VjaCAgbXVuaWNpcGFsaXR5Cm9yICBvdGhlciAgcG9saXRpY2Fs ICBzdWJkaXZpc2lvbiAgc2hhbGwgYWdyZWUgdG8gYSBsZXNzZXIgcGF5bWVudCBmb3IgYQps ZW5ndGggb2YgdGltZSB0byBiZSBzcGVjaWZpZWQgaW4gYW4gYWdyZWVtZW50ICBiZXR3ZWVu ICB0aGUgIHRydXN0ICBhbmQKc3VjaCAgbXVuaWNpcGFsaXR5ICBvciAgcG9saXRpY2FsIHN1 YmRpdmlzaW9uOyBhbmQgcHJvdmlkZWQgZnVydGhlciB0aGF0CnRoZSB0cnVzdCBzaGFsbCBu b3QgYmUgZW1wb3dlcmVkIHRvIHJlY2VpdmUgIHRheCAgZXF1aXZhbGVuY3kgIHBheW1lbnRz OwphbmQgIGZ1cnRoZXIgIHByb3ZpZGVkLCAgdGhhdCB0aGUgbm9uLWluc3RpdHV0aW9uYWwg cG9ydGlvbiBzaGFsbCBub3QgYmUKZXhlbXB0IGZyb20gcmVhbCBwcm9wZXJ0eSB0YXhhdGlv biBmcm9tICBhbmQgIGFmdGVyICB0aGUgIGRhdGUgIGEgIHRydXN0CmNvbnZleXMgc3VjaCBu b24taW5zdGl0dXRpb25hbCBwb3J0aW9uIHRvIGFueSBub24tZXhlbXB0IHRoaXJkIHBhcnR5 LgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpOZXcgWW9yayBTdGF0ZSBDb25zb2xpZGF0ZWQgTGF3 cwpBcnRzIGFuZCBDdWx0dXJhbCBBZmZhaXJzCgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVElUTEUgRgogICAgICAgICAgICAgICAgICAgICAgVEhFQVRSSUNBTCBTWU5E SUNBVElPTiBGSU5BTkNJTkcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUg Q29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFSVElDTEUgMjMKICAgICAgICAgICAgIFJFR1VMQVRJ T04gT0YgVEhFQVRSSUNBTCBTWU5ESUNBVElPTiBGSU5BTkNJTkcKU2VjdGlvbiAyMy4wMS4g TGVnaXNsYXRpdmUgZmluZGluZ3MgYW5kIGRlY2xhcmF0aW9uIG9mIHBvbGljeS4KICAgICAg ICAyMy4wMy4gRGVmaW5pdGlvbnMuCiAgICAgICAgMjMuMDUuIEludmVzdGlnYXRpb25zLgog ICAgICAgIDIzLjA3LiBSZWNvcmRzOyBiYW5rIGFjY291bnRzLgogICAgICAgIDIzLjA4LiBQ cm9jZWVkcyBmcm9tIGFkdmFuY2UgdGlja2V0IHNhbGVzOyByZWZ1bmRzLgogICAgICAgIDIz LjA5LiBBcHBsaWNhdGlvbiBvZiBhcnRpY2xlOyBleGVtcHRpb25zLgogICAgICAgIDIzLjEx LiBJbmp1bmN0aW9uczsgbW9kaWZpY2F0aW9uIG9yIGRpc3NvbHV0aW9uLgogICAgICAgIDIz LjEzLiBBcHBsaWNhdGlvbiAgb2YgIHRoZSBwcm92aXNpb25zIG9mIGNpdmlsIHByYWN0aWNl IGxhdyBhbmQKICAgICAgICAgICAgICAgICBydWxlcy4KICAgICAgICAyMy4xNS4gSW1tdW5p dHkuCiAgICAgICAgMjMuMTcuIEVuZm9yY2VtZW50IGJ5IGF0dG9ybmV5IGdlbmVyYWwuCiAg ICAgICAgMjMuMTkuIFVubGF3ZnVsIHJldGVudGlvbiBvZiBwYXltZW50cy4KICAgICAgICAy My4yMS4gVmlvbGF0aW9ucyBhbmQgcGVuYWx0aWVzLgogICAgICAgIDIzLjIzLiBQcm9oaWJp dGVkIGFjdGl2aXRpZXMgb2YgdGlja2V0IGRpc3RyaWJ1dG9ycy4KCiAgUyAgMjMuMDEuIExl Z2lzbGF0aXZlIGZpbmRpbmdzIGFuZCBkZWNsYXJhdGlvbiBvZiBwb2xpY3kuIFRoZSBsZWdp c2xhdHVyZQpoZXJlYnkgZmluZHMgYW5kIGRlY2xhcmVzIHRoYXQ6CiAgMS4gVGhlIG1haW50 ZW5hbmNlIGFuZCB3ZWxsLWJlaW5nIG9mIHRoZSBsZWdpdGltYXRlIHRoZWF0cmUgaW4gdGhp cyBzdGF0ZQppcyBlc3NlbnRpYWwgdG8gdGhlIGN1bHR1cmFsLCBtb3JhbCBhbmQgYXJ0aXN0 aWMgd2VsbC1iZWluZyBvZiAgdGhlICBwZW9wbGUKb2YgdGhlIHN0YXRlLgogIDIuICBJdCBp cyBoZXJlYnkgZGV0ZXJtaW5lZCBhbmQgZGVjbGFyZWQgdGhhdCB0aGUgcHJvbW90aW9uIGFu ZCBmaW5hbmNpbmcKb2YgdGhlYXRyaWNhbCBwcm9kdWN0aW9ucywgYXMgZGVmaW5lZCBpbiB0 aGlzIGFydGljbGUsIGFyZSBtYXR0ZXJzIGFmZmVjdGVkCndpdGggIGEgcHVibGljIGludGVy ZXN0IGFuZCBzdWJqZWN0IHRvIHRoZSBzdXBlcnZpc2lvbiBvZiB0aGUgc3RhdGUgZm9yIHRo ZQpwdXJwb3NlIG9mIHNhZmVndWFyZGluZyBpbnZlc3RvcnMgYW5kIG90aGVyIG1lbWJlcnMg b2YgdGhlICBwdWJsaWMgIGFnYWluc3QKZnJhdWQsICBmcmF1ZHVsZW50ICBhY2NvdW50aW5n cywgZmluYW5jaWFsIG1pc2NvbmR1Y3QsIGV4b3JiaXRhbnQgcmF0ZXMgYW5kCnNpbWlsYXIg YWJ1c2VzLgogICAzLiAgSXQgIGlzICBmdXJ0aGVyICBkZXRlcm1pbmVkICBhbmQgIGRlY2xh cmVkIHRoYXQgdGhlIGludGVncml0eSBvZiBib3gKb2ZmaWNlIG9wZXJhdGlvbnMgYXMgIHRo ZXkgIHJlbGF0ZSAgdG8gIHRoZSAgYWxsb2NhdGlvbiwgIGRpc3RyaWJ1dGlvbiAgYW5kCmFk dmFuY2Ugc2FsZSBvZiB0aWNrZXRzIHRvIHRoZSBwdWJsaWMgZm9yIHRoZWF0cmljYWwgcHJv ZHVjdGlvbnMsIGNvbmNlcnRzLApzcG9ydGluZyBldmVudHMgb3Igb3RoZXIgZXZlbnRzLCBh cyBkZWZpbmVkIGhlcmVpbiwgaXMgIGEgIG1hdHRlciAgYWZmZWN0ZWQKd2l0aCAgYSBwdWJs aWMgaW50ZXJlc3QgYW5kIHN1YmplY3QgdG8gdGhlIHN1cGVydmlzaW9uIG9mIHRoZSBzdGF0 ZSBmb3IgdGhlCnB1cnBvc2Ugb2Ygc2FmZWd1YXJkaW5nIHRpY2tldCBwdXJjaGFzZXJzIGFn YWluc3QgcHJhY3RpY2VzIHdoaWNoICBsZWFkICB0bwpjaGFyZ2VzICBiZXlvbmQgdGhlIHBy ZW1pdW0gcGVybWl0dGVkIGJ5IGxhdyBmb3IgdGlja2V0cyB0byBzdWNoIGV2ZW50cywgdG8K dGhlIGluYWJpbGl0eSBvZiBzdWNoIHB1cmNoYXNlcnMgdG8gb2J0YWluIGFuIGV4Y2hhbmdl IG9mIHRpY2tldHMgb3IgcmVmdW5kCmZvbGxvd2luZyAgdGhlIG5vbnBlcmZvcm1hbmNlIG9m IHRoZSBldmVudCBmb3Igd2hpY2ggdGlja2V0cyB3ZXJlIHB1cmNoYXNlZAppbiBhZHZhbmNl LCBhbmQgdG8gb3RoZXIgc2ltaWxhciBhYnVzZXMuCgogIFMgIDIzLjAzLiAgRGVmaW5pdGlv bnMuICAxLiAgVGhlICBmb2xsb3dpbmcgIHRlcm1zLCAgd2hlbmV2ZXIgIHVzZWQgb3IKcmVm ZXJyZWQgdG8gaW4gdGhpcyBhcnRpY2xlLCBzaGFsbCBoYXZlIHRoZSBmb2xsb3dpbmcgIG1l YW5pbmdzLCAgdW5sZXNzCnRoZSBjb250ZXh0IGNsZWFybHkgcmVxdWlyZXMgb3RoZXJ3aXNl OgogIChhKSAgQSAgInRoZWF0cmljYWwgIHByb2R1Y3Rpb24iIHNoYWxsIG1lYW4gdGhvc2Ug bGl2ZS1zdGFnZWQgZHJhbWF0aWMKcHJvZHVjdGlvbnMsIGRyYW1hdGljLW11c2ljYWwgcHJv ZHVjdGlvbnMgYW5kIGNvbmNlcnRzLCAgYXMgIGRlZmluZWQgIGluCnRoaXMgc3ViZGl2aXNp b24sIHdoaWNoIGhlcmVhZnRlciBhcmUgc2hvd24gdG8gdGhlIHB1YmxpYyBmb3IgcHJvZml0 IGFuZAp3aGljaCBhcmUgZmluYW5jZWQgd2hvbGx5IG9yIGluIHBhcnQgYnkgdGhlIG9mZmVy aW5nIG9yIHNhbGUgaW4gb3IgIGZyb20KdGhpcyAgc3RhdGUsICBkaXJlY3RseSwgb3IgdGhy b3VnaCBhZ2VudHMgb3IgZGlzdHJpYnV0b3JzLCBvZiBpbnZlc3RtZW50CmFncmVlbWVudHMs ICBldmlkZW5jZXMgIG9mICBpbnRlcmVzdCwgIGxpbWl0ZWQgIHBhcnRuZXJzaGlwcywgICBw cm9kdWNlcgpzaGFyZXMsIGVxdWl0eSBvciBkZWJ0IHNlY3VyaXRpZXMsIHByZS1vcmdhbml6 YXRpb24gc3Vic2NyaXB0aW9ucyBvciBhbnkKb3RoZXIgc3luZGljYXRpb24gcGFydGljaXBh dGlvbiwgd2hlbiBhbnkgcGVyc29ucyBhcmUgb2ZmZXJlZCwgc29saWNpdGVkCnRvICBwdXJj aGFzZSBvciBzZWxsLCBkaXJlY3RseSBvciBpbmRpcmVjdGx5LCBzdWNoIHN5bmRpY2F0aW9u IGludGVyZXN0cwpmb3IgbW9uZXlzIG9yIHNlcnZpY2VzIHdpdGhpbiBvciBmcm9tIHRoZSBz dGF0ZSBvZiBOZXcgIFlvcms7ICBwcm92aWRlZCwKaG93ZXZlciwgdGhhdCBmb3IgcHVycG9z ZXMgb2YgcGFyYWdyYXBocyAoaCkgYW5kIChpKSBvZiB0aGlzIHN1YmRpdmlzaW9uCmEgICJ0 aGVhdHJpY2FsICBwcm9kdWN0aW9uIiAgc2hhbGwgICBtZWFuICAgYW55ICAgbGl2ZS1zdGFn ZWQgICBkcmFtYXRpYwpwcm9kdWN0aW9uLCBkcmFtYXRpYy1tdXNpY2FsIHByb2R1Y3Rpb24g b3IgY29uY2VydCB3aGljaCBpcyBwcmVzZW50ZWQgdG8KdGhlIHB1YmxpYyBpbiBhIHBsYWNl IG9mIGVudGVydGFpbm1lbnQgYXMgZGVmaW5lZCBpbiB0aGlzIHN1YmRpdmlzaW9uLgogIChi KSAgIkZyYXVkIiwgICJkZWNlaXQiLCBhbmQgImRlZnJhdWQiLCBhcyBzdWNoIHRlcm1zIGFy ZSB1c2VkIGluIHRoaXMKYXJ0aWNsZSwgYXJlIG5vdCBsaW1pdGVkIHRvIGNvbW1vbi1sYXcg ZGVjZWl0LgogIChjKSAgIlN5bmRpY2F0aW9uIiAgc2hhbGwgIG1lYW4gIGFsbCAgZm9ybXMs ICBtZXRob2RzICBhbmQgZGV2aWNlcyBmb3IKcG9vbGluZyBvZiBpbnZlc3RtZW50IGZ1bmRz IGZvciB0aGUgY2hpZWYgcHVycG9zZSBvZiBwYXJ0aWNpcGF0aW5nIGluICBhCnRoZWF0cmlj YWwgcHJvZHVjdGlvbiBjb21wYW55LCBhcyBkZWZpbmVkIGhlcmVpbi4KICAoZCkgQSAicHJp bmNpcGFsIiBzaGFsbCBtZWFuIGFuZCBpbmNsdWRlIGV2ZXJ5IHBlcnNvbiBvciBmaXJtIGRp cmVjdGx5Cm9yIGluZGlyZWN0bHkgY29udHJvbGxpbmcgIHRoZSAgYnVzaW5lc3MgIGFmZmFp cnMgIG9yICBvcGVyYXRpb25zICBvZiAgYQp0aGVhdHJpY2FsICBwcm9kdWN0aW9uICBjb21w YW55ICBvciAgb2YgYSB0aWNrZXQgZGlzdHJpYnV0b3IsIGFzIGRlZmluZWQKaGVyZWluLgog IChlKSAgQSAgInBlcnNvbiIgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsLCBmaXJtLCBjb21w YW55LCBwYXJ0bmVyc2hpcCwKY29ycG9yYXRpb24sIHRydXN0IG9yIGFzc29jaWF0aW9uLgog IChmKSAgQSAgImNvbmNlcnQiICBzaGFsbCAgbWVhbiBhbnkgbGl2ZSBwZXJmb3JtYW5jZSB3 aGV0aGVyIG11c2ljYWwgb3IKc3Bva2VuLCBkcmFtYXRpYyBvciBub25kcmFtYXRpYywgYnkg b25lIG9yICBtb3JlICBwZXJmb3JtZXJzLCAgd2hpY2ggIGlzCnByZXNlbnRlZCAgdG8gdGhl IHB1YmxpYyBpbiBhIHBsYWNlIG9mIGVudGVydGFpbm1lbnQsIGFzIGRlZmluZWQgaW4gdGhp cwpzdWJkaXZpc2lvbi4KICAoZykgIEEgICJzcG9ydGluZyAgZXZlbnQiICBzaGFsbCBoYXZl IHRoZSBzYW1lIG1lYW5pbmcgYXMgc2V0IGZvcnRoIGluCnN1YmRpdmlzaW9uIHRocmVlIG9m IHNlY3Rpb24gMjMuMjMgb2YgdGhpcyBhcnRpY2xlLgogIChoKSAgVGhlICB0ZXJtICAiZXZl bnQiIHNoYWxsIG1lYW4gYSB0aGVhdHJpY2FsIHByb2R1Y3Rpb24gb3Igc3BvcnRpbmcKZXZl bnQsIGFzIHRob3NlIHRlcm1zIGFyZSBkZWZpbmVkIGluICB0aGlzICBzdWJkaXZpc2lvbiwg IG9yICBhbnkgIG90aGVyCnB1YmxpYyBleGhpYml0aW9uLCBnYW1lLCBzaG93LCBjb250ZXN0 IG9yIHBlcmZvcm1hbmNlIHdoaWNoIGlzIHByZXNlbnRlZAp0byAgdGhlICBwdWJsaWMgIGlu ICBhICBwbGFjZSAgb2YgIGVudGVydGFpbm1lbnQgIGFzICBkZWZpbmVkICBpbiAgIHRoaXMK c3ViZGl2aXNpb24uCiAgKGkpICBBICAicGxhY2Ugb2YgZW50ZXJ0YWlubWVudCIgc2hhbGwg bWVhbiBhIHRoZWF0cmUsIGRpbm5lciB0aGVhdHJlLApoYWxsLCBjb2xpc2V1bSwgY29udmVu dGlvbiBjZW50ZXIsIGFyZW5hLCBhdWRpdG9yaXVtLCAgc3RhZGl1bSwgIGNvbmNlcnQKaGFs bCwgIGdhcmRlbiwgIG91dGRvb3IgIHNwYWNlIG9yIG90aGVyIHBsYWNlIG9mIGFtdXNlbWVu dCBvcGVyYXRlZCBhcyBhCmZvciBwcm9maXQgIGVudGl0eSAgYW5kICBsb2NhdGVkICBpbiAg dGhpcyAgc3RhdGUgIGluICB3aGljaCAgdGhlYXRyaWNhbApwcm9kdWN0aW9ucywgc3BvcnRp bmcgZXZlbnRzIG9yIG90aGVyIGV2ZW50cyBhcmUgcHJlc2VudGVkLgogIChqKSAgQSAidGhl YXRyaWNhbCBwcm9kdWN0aW9uIGNvbXBhbnkiIHNoYWxsIG1lYW4gYW55IGVudGl0eSBmb3Jt ZWQgdG8KKGkpIGRldmVsb3AsIHByb2R1Y2UsIGludmVzdCBpbiBvciBvdGhlcndpc2UgZXhw bG9pdCwgb3IgYW55IGNvbWJpbmF0aW9uCnRoZXJlb2YsICBvbmUgIG9yIG1vcmUgc3BlY2lm aWVkIG9yIG5vbnNwZWNpZmllZCB0aGVhdHJpY2FsIHByb2R1Y3Rpb25zLAphbmQgKGlpKSBj b25kdWN0IGFsbCBhY3Rpdml0aWVzIHJlbGF0ZWQgdGhlcmV0by4KICAoaykgIFRoZSAgdGVy bSAiYWR2YW5jZSB0aWNrZXQiIHNoYWxsIG1lYW4gYSB0aWNrZXQgb2YgYWRtaXNzaW9uICBz b2xkCm1vcmUgdGhhbiB0d2VsdmUgaG91cnMgaW4gYWR2YW5jZSBvZiB0aGUgIHRpbWUgIG9m ICBwZXJmb3JtYW5jZSAgb2YgIHRoZQpldmVudCBmb3Igd2hpY2ggdGhlIHRpY2tldCBpcyBw dXJjaGFzZWQuCiAgKGwpICBUaGUgIHRlcm0gInRpY2tldCBkaXN0cmlidXRvciIgc2hhbGwg aGF2ZSB0aGUgc2FtZSBtZWFuaW5nIGFzIHNldApmb3J0aCBpbiBzdWJkaXZpc2lvbiBvbmUg b2Ygc2VjdGlvbiAyMy4yMyBvZiB0aGlzIGFydGljbGUuCiAgMi4gIEFjY3VyYXRlICBib29r cyBhbmQgcmVjb3JkcyBvZiBhY2NvdW50IHNoYWxsIGJlIG1haW50YWluZWQgYnkgZWFjaAp0 aGVhdHJpY2FsIHByb2R1Y3Rpb24gY29tcGFueS4gRXZlcnkgcHJvZHVjZXIgb2YgYSB0aGVh dHJpY2FsIHByb2R1Y3Rpb24Kc2hhbGwgIGF0ICBsZWFzdCBvbmNlIGZvciBlYWNoIHR3ZWx2 ZSBtb250aCBmaXNjYWwgcGVyaW9kIGJlZ2lubmluZyB3aXRoCnRoZSBpbml0aWFsIGV4cGVu ZGl0dXJlIG9mIGludmVzdG9yc2AgZnVuZHMgKG90aGVyICB0aGFuICB0aG9zZSAgb2YgIGFu eQpwcmluY2lwYWwpLCAgd2l0aGluIGZvdXIgbW9udGhzIGFmdGVyIHRoZSBlbmQgb2Ygc3Vj aCBwZXJpb2Qgb3IgdGhlIGxhc3QKcHVibGljIHBlcmZvcm1hbmNlICBvZiAgdGhlICBvcmln aW5hbCAgcHJvZHVjdGlvbiAgaW4gIE5ldyAgWW9yayAgc3RhdGUsCndoaWNoZXZlciAgaXMg IHNvb25lciwgZnVybmlzaCB0byBhbGwgaW52ZXN0b3JzIGFuZCB0byB0aGUgZGVwYXJ0bWVu dCBvZgpsYXcgYSB3cml0dGVuIGJhbGFuY2Ugc2hlZXQgYW5kIHN0YXRlbWVudCBvZiBwcm9m aXQgYW5kIGxvc3Mgd2hpY2ggc2hhbGwKYmUgIHByZXBhcmVkICBieSBhbiBpbmRlcGVuZGVu dCBwdWJsaWMgYWNjb3VudGFudCBhbmQgY29udGFpbiBhbiBleHByZXNzCm9waW5pb24gYnkg c3VjaCBhY2NvdW50YW50ICB0aGF0ICBzdWNoICBzdGF0ZW1lbnRzICBmYWlybHkgIHByZXNl bnQgIHRoZQpmaW5hbmNpYWwgICBwb3NpdGlvbiAgIGFuZCAgcmVzdWx0cyAgb2YgIG9wZXJh dGlvbnMgIG9mICB0aGUgIHRoZWF0cmljYWwKcHJvZHVjdGlvbiBjb21wYW55LCBoZXJlaW5h ZnRlciByZWZlcnJlZCB0byAgYXMgICJjZXJ0aWZpZWQgIHN0YXRlbWVudCIuCk5vdHdpdGhz dGFuZGluZyAgdGhlIGFmb3Jlc2FpZCwgaW4gbm8gZXZlbnQgc2hhbGwgYSBwcm9kdWNlciBi ZSByZXF1aXJlZApieSB0aGlzIHN1YmRpdmlzaW9uIHRvIHN1Ym1pdCBjZXJ0aWZpZWQgc3Rh dGVtZW50cyB0byBpbnZlc3RvcnMgZm9yICBhbnkKcGVyaW9kICBsZXNzICB0aGFuIHR3ZWx2 ZSBtb250aHMgZm9sbG93aW5nIHRoZSBwZXJpb2QgY292ZXJlZCBieSBhIHByaW9yCmNlcnRp ZmllZCBzdGF0ZW1lbnQuIElycmVzcGVjdGl2ZSBvZiAgdGhlICBhZm9yZXNhaWQsICBhbmQg IGluICBhZGRpdGlvbgp0aGVyZXRvLCAgZXZlcnkgIHN1Y2ggIHByb2R1Y2VyIHNoYWxsIGFs c28gZnVybmlzaCBlYWNoIGludmVzdG9yIGFuZCB0aGUKZGVwYXJ0bWVudCBvZiBsYXcgd2l0 aCBhbiBhY2N1cmF0ZSBhbmQgdHJ1dGhmdWwgIGl0ZW1pemVkICBzdGF0ZW1lbnQgIG9mCmlu Y29tZSAgYW5kICBleHBlbmRpdHVyZSAgZm9yICBldmVyeSAgc2l4ICBtb250aCBwZXJpb2Qg bm90IGNvdmVyZWQgYnkgYQpwcmV2aW91c2x5IGlzc3VlZCBjZXJ0aWZpZWQgc3RhdGVtZW50 IG9yIGEgY2VydGlmaWVkIHN0YXRlbWVudCAgcmVxdWlyZWQKdG8gIGJlICBpc3N1ZWQgIGhl cmV1bmRlciAgZm9yICBhICBwZXJpb2QgIGVuZGluZyAgYXQgIHN1Y2ggIHRpbWUsIHdoaWNo CmFkZGl0aW9uYWwgc3RhdGVtZW50IHNoYWxsIGJlIHN1YnNjcmliZWQgdG8gYnkgdGhlIHBy b2R1Y2VyIGFzIGFjY3VyYXRlLAphbmQgIG1heSAgYmUgIHN1Ym1pdHRlZCAgd2l0aGluIHRo cmVlIG1vbnRocyBhZnRlciB0aGUgY2xvc2Ugb2Ygc3VjaCBzaXgKbW9udGggcGVyaW9kLiBG b2xsb3dpbmcgdGhlIGxhc3QgcHVibGljIHBlcmZvcm1hbmNlIGluIE5ldyBZb3JrIHN0YXRl IG9mCnRoZSAgb3JpZ2luYWwgIHByb2R1Y3Rpb24sICB0aGUgIHByb2R1Y2VyIHNoYWxsIGFj Y3VyYXRlbHkgcmVwb3J0IHRvIHRoZQppbnZlc3RvcnMgYW5kIHRoZSBkZXBhcnRtZW50IG9m IGxhdywgYXQgbGVhc3Qgb25jZSAgd2l0aGluICBmb3VyICBtb250aHMKYWZ0ZXIgIHRoZSAg ZW5kICBvZiBlYWNoIHllYXIgdGhlcmVhZnRlciwgd2l0aCByZXNwZWN0IHRvIGFueSBzdWJz ZXF1ZW50CmVhcm5pbmdzIG9yIGV4cGVuZGl0dXJlcyBieSB0aGUgdGhlYXRyaWNhbCBwcm9k dWN0aW9uLCAgd2hpY2ggIHNoYWxsICBiZQp0cnV0aGZ1bCAgYW5kICBhY2N1cmF0ZSBhbmQg d2hpY2ggc2hhbGwgYmUgc3Vic2NyaWJlZCB0byBieSB0aGUgcHJvZHVjZXIKYXMgYWNjdXJh dGUuIFRoZSBhdHRvcm5leSAgZ2VuZXJhbCAgbWF5ICBhZG9wdCwgIHByb211bGdhdGUsICBh bWVuZCAgYW5kCnJlc2NpbmQgICBydWxlcyAgIGFuZCAgIHJlZ3VsYXRpb25zICAgc2V0dGlu ZyAgIGZvcnRoICBvdGhlciAgYWNjb3VudGluZwpyZXF1aXJlbWVudHMgdGhhbiBzZXQgZm9y dGggYWJvdmUsIHdoaWNoIG1heSBiZSBzZWxlY3RlZCBieSAgYSAgcHJvZHVjZXIKaW4gbGll dSBvZiB0aGUgYWNjb3VudGluZyByZXF1aXJlbWVudHMgc2V0IGZvcnRoIGFib3ZlLiAgVXBv biBjb25kaXRpb25zCnNldCBmb3J0aCBieSB0aGUgIGF0dG9ybmV5ICBnZW5lcmFsLCAgc3Vj aCAgcnVsZXMgIGFuZCAgcmVndWxhdGlvbnMgIG1heQpmdXJ0aGVyICBwcm92aWRlICBmb3Ig dGhlIGlzc3VhbmNlIG9mIGFuIGV4ZW1wdGlvbiBmcm9tIHRoZSByZXF1aXJlbWVudHMKaGVy ZWluIChpKSBmb3IgIG9mZmVyaW5ncyAgb2YgIGxlc3MgIHRoYW4gIHR3byAgaHVuZHJlZCAg ZmlmdHkgIHRob3VzYW5kCmRvbGxhcnMsICAoaWkpICBmb3Igb2ZmZXJpbmdzIG1hZGUgdG8g bGVzcyB0aGFuIHRoaXJ0eS1zaXggcGVyc29ucyBpbiBvcgpmcm9tIHRoaXMgc3RhdGUsIG9y IChpaWkpIGZvciBzdWNoIG90aGVyIG9mZmVyaW5ncyBhbmQgdXBvbiAgc3VjaCAgb3RoZXIK Z3JvdW5kcyBhcyBtYXkgYmUgZGV0ZXJtaW5lZCBieSB0aGUgYXR0b3JuZXkgZ2VuZXJhbC4K ICBUaGlzICBzdWJkaXZpc2lvbiAgc2hhbGwgIG5vdCAgYXBwbHkgIHRvICBhbnkgIHByb2R1 Y3Rpb24gIHdob3NlIGZpcnN0CnBlcmZvcm1hbmNlIGluIE5ldyBZb3JrIHN0YXRlICBwcmVj ZWRlZCAgSnVuZSAgZmlyc3QsICBuaW5ldGVlbiAgaHVuZHJlZApzaXh0eS1mb3VyLgogIDMu ICBFeGNlcHQgIGFzICBvdGhlcndpc2UgIHByb3ZpZGVkIGhlcmVpbiwgbm8gb2ZmZXJpbmcg b2Ygc3luZGljYXRpb24KaW50ZXJlc3RzIGluIGEgdGhlYXRyaWNhbCBwcm9kdWN0aW9uIGNv bXBhbnksIGFzIGRlZmluZWQgIGhlcmVpbiwgIHNoYWxsCmJlICBtYWRlICB3aXRoaW4gIG9y ICBmcm9tIHRoaXMgc3RhdGUgd2l0aG91dCB0aGUgdXNlIG9mIGEgcHJvc3BlY3R1cyBvcgpv ZmZlcmluZyBjaXJjdWxhciBtYWtpbmcgZnVsbCBhbmQgIGZhaXIgIGRpc2Nsb3N1cmUgIG9m ICBtYXRlcmlhbCAgZmFjdHMKcGVydGFpbmluZyAgdG8gIHRoZSAgcGFydGljdWxhciAgdmVu dHVyZS4gIFRoZSBhdHRvcm5leSBnZW5lcmFsIG1heSBhbHNvCmlzc3VlIHJ1bGVzIGFuZCBy ZWd1bGF0aW9ucyAgcmVxdWlyaW5nICB0aGUgIHN1Ym1pc3Npb24gIHRvICBwcm9zcGVjdGl2 ZQppbnZlc3RvcnMgIGluIHN1Y2ggb2ZmZXJpbmdzIGFuIG9mZmVyaW5nIGNpcmN1bGFyIGFu ZCBhbWVuZG1lbnRzIHRoZXJldG8KY29udGFpbmluZyBhIGNvbmNpc2UgYW5kIGFjY3VyYXRl ICBkZXNjcmlwdGlvbiAgb2YgIHRoZSAgbmF0dXJlICBvZiAgdGhlCm9mZmVyaW5nLCAgcHJv Zml0cyAgdG8gIHByb21vdGVycyAgYW5kICBvdGhlcnMsICB0aGUgIGJhY2tncm91bmQgIG9m IHRoZQpwcm9kdWNlcnMsIGEgIGRlc2NyaXB0aW9uICBvZiAgc3Vic2lkaWFyeSAgcmlnaHRz ICBhbmQgIG90aGVyICBwZXJ0aW5lbnQKaW5mb3JtYXRpb24gIGFzICB3aWxsICBhZmZvcmQg IHBvdGVudGlhbCAgaW52ZXN0b3JzICBvciAgcHVyY2hhc2VycyAgYW5kCnBhcnRpY2lwYW50 cyBhbiBhZGVxdWF0ZSBiYXNpcyB1cG9uIHdoaWNoIHRvIGZvdW5kIHRoZWlyICBqdWRnbWVu dCwgIGJ1dAp0aGUgIGF0dG9ybmV5ICBnZW5lcmFsICBzaGFsbCAgYWNjZXB0IG9mZmVyaW5n IGxpdGVyYXR1cmUgZmlsZWQgd2l0aCB0aGUKU2VjdXJpdGllcyBhbmQgRXhjaGFuZ2UgQ29t bWlzc2lvbiBhbmQgYXV0aG9yaXplZCBmb3IgdXNlIGJ5IHN1Y2ggYWdlbmN5CmFzICBjb21w bHlpbmcgIHRoZXJld2l0aCBhcyBvZiB0aGUgZGF0ZSBvZiByZWNlaXB0IG9mIGEgdHJ1ZSBj b3B5IGJ5IHRoZQpkZXBhcnRtZW50IG9mIGxhdyBvZiBzdWNoIGxpdGVyYXR1cmUgYW5kIHBy b29mIG9mIGF1dGhvcml6YXRpb24gIGJ5ICB0aGUKU2VjdXJpdGllcyAgYW5kICBFeGNoYW5n ZSAgQ29tbWlzc2lvbiAgYnkgIGFmZmlkYXZpdCAgb3IgIG90aGVyd2lzZS4gVGhlCmF0dG9y bmV5IGdlbmVyYWwgbWF5IGFsc28gcHJvdmlkZSBmb3IgdGhlIG1ldGhvZCBvZiBmaWxpbmcg IG9mICBvZmZlcmluZwpsaXRlcmF0dXJlICBvdGhlciAgdGhhbiAgdGhhdCAgZmlsZWQgIHdp dGggIHRoZSAgU2VjdXJpdGllcyBhbmQgRXhjaGFuZ2UKQ29tbWlzc2lvbiwgYXMgd2VsbCBh cyB1bmRlcmx5aW5nIGRvY3VtZW50cywgd2l0aCB0aGUgZGVwYXJ0bWVudCBvZiAgbGF3CmF0 ICBpdHMgIG9mZmljZSAgaW4gIHRoZSAgY2l0eSBvZiBOZXcgWW9yaywgcHJpb3IgdG8gdGhl IG9mZmVyaW5nIG9mIHRoZQpzeW5kaWNhdGlvbiBpbnRlcmVzdCBpbnZvbHZlZDsgaG93ZXZl ciwgYW55IHN1Y2ggcmVndWxhdGlvbiAgYWxzbyAgc2hhbGwKcHJvdmlkZSAgdGhhdCAgYWxs ICBmdW5kcyAgZGVyaXZlZCAgZnJvbSAgdGhlICBzYWxlICBvZiAgc3VjaCB0aGVhdHJpY2Fs CnN5bmRpY2F0aW9uIGludGVyZXN0cyBzaGFsbCBiZSBoZWxkIGluIHRydXN0IGluIGEgc3Bl Y2lhbCAgYmFuayAgYWNjb3VudAp1bnRpbCAgdGhlICBhdHRvcm5leSBnZW5lcmFsIGhhcyBp c3N1ZWQgdG8gdGhlIGlzc3VlciBvciBvdGhlciBvZmZlcm9yIGEKbGV0dGVyIHN0YXRpbmcg dGhhdCB0aGUgb2ZmZXJpbmcgaGFzIGJlZW4gcGVybWl0dGVkIHRvIGJlIGZpbGVkOyBidXQg IGluCnRoYXQgIGV2ZW50ICBzdWNoICByZWd1bGF0aW9uICBwcm9tdWxnYXRlZCBieSB0aGUg YXR0b3JuZXkgZ2VuZXJhbCBzaGFsbAphbHNvIHByb3ZpZGUgdGhhdCB0aGUgYXR0b3JuZXkg Z2VuZXJhbCwgIG5vdCAgbGF0ZXIgIHRoYW4gIGZpZnRlZW4gIGRheXMKYWZ0ZXIgc3VjaCBz dWJtaXNzaW9uLCBzaGFsbCBpc3N1ZSBzdWNoIGEgbGV0dGVyIG9yLCBpbiB0aGUgYWx0ZXJu YXRpdmUsCmEgIG5vdGlmaWNhdGlvbiAgaW4gIHdyaXRpbmcgIGluZGljYXRpbmcgICBkZWZp Y2llbmNpZXMgICB0aGVyZWluLiAgIFRoZQpwcm92aXNpb25zIG9mIHRoaXMgc3ViZGl2aXNp b24gc2hhbGwgbm90IGFwcGx5IHRvIG9mZmVyaW5ncyB0byBsZXNzIHRoYW4KdGhpcnR5LXNp eCBwZXJzb25zIHdoZXJlIGV4cHJlc3Mgd2FpdmVycyBpbiB3cml0aW5nIHRvICB0aGUgIGZp bGluZyAgYW5kCm9mZmVyaW5nICBjaXJjdWxhciAgcmVxdWlyZW1lbnRzICBvZiB0aGlzIHN1 YmRpdmlzaW9uIGFyZSBmaWxlZCB3aXRoIHRoZQpkZXBhcnRtZW50IG9mIGxhdyBieSBvciBv biBiZWhhbGYgb2YgYWxsIGludmVzdG9ycy4KICA0LiAgQSAgbGltaXRlZCAgcGFydG5lcnNo aXAgdGhhdCBpcyBhIHRoZWF0cmljYWwgcHJvZHVjdGlvbiBjb21wYW55IGlzCmV4ZW1wdCBm cm9tIHRoZSByZXF1aXJlbWVudCBmb3IgcHVibGlzaGluZyAgaXRzICBjZXJ0aWZpY2F0ZSAg b3IgIG5vdGljZQp1bmRlciBzZWN0aW9ucyBuaW5ldHktb25lLCAxMjEtMjAxIGFuZCAxMjEt OTAyIG9mIHRoZSBwYXJ0bmVyc2hpcCBsYXcgc28KbG9uZyBhcyB0aGUgd29yZHMgImxpbWl0 ZWQgcGFydG5lcnNoaXAiIGFwcGVhciBpbiBpdHMgbmFtZS4KICA1LiAgSXQgc2hhbGwgYmUg dW5sYXdmdWwgZm9yIGFueSBwZXJzb24sIGluIGNvbm5lY3Rpb24gd2l0aCB0aGUgb2ZmZXIs CnNhbGUsICBvciAgcHVyY2hhc2UgIG9mICBhbnkgIHN5bmRpY2F0aW9uICBpbnRlcmVzdCAg aW4gIGFueSAgdGhlYXRyaWNhbApwcm9kdWN0aW9uIGNvbXBhbnksIGFzIGRlZmluZWQgaGVy ZWluLCBkaXJlY3RseSBvciBpbmRpcmVjdGx5OgogIChhKSBUbyBlbXBsb3kgYW55IGRldmlj ZSwgc2NoZW1lLCBvciBhcnRpZmljZSB0byBkZWZyYXVkOwogIChiKSAgVG8gIHdpbGxmdWxs eSAgbWFrZSBhbnkgdW50cnVlIHN0YXRlbWVudCBvZiBhIG1hdGVyaWFsIGZhY3Qgb3IgdG8K b21pdCB0byBzdGF0ZSBhIG1hdGVyaWFsIGZhY3QgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIG1h a2Ugc3VjaCAgc3RhdGVtZW50Cm1hZGUsIG5vdCBtaXNsZWFkaW5nOyBvcgogIChjKSAgVG8g IGVuZ2FnZSAgaW4gIGFueSBhY3QsIHByYWN0aWNlLCBvciBjb3Vyc2Ugb2YgYnVzaW5lc3Mg d2hpY2ggaGUKa25vd3Mgb3IgcmVhc29uYWJseSBzaG91bGQgaGF2ZSBrbm93biBvcGVyYXRl cyBvciAgd291bGQgIG9wZXJhdGUgIGFzICBhCmZyYXVkIG9yIGRlY2VpdCB1cG9uIGFueSBw ZXJzb24uCiAgNi4gQW55IHBlcnNvbiwgcGFydG5lcnNoaXAsIGNvcnBvcmF0aW9uLCBjb21w YW55LCB0cnVzdCBvciBhc3NvY2lhdGlvbgpvciBhbnkgYWdlbnQgb3IgZW1wbG95ZWUgdGhl cmVvZiwgd2hvIChvciB3aGljaCksIGhhdmluZyBlbmdhZ2VkIGluICBhbnkKYWN0ICBvciAg cHJhY3RpY2UgIGNvbnN0aXR1dGluZyAgYSB2aW9sYXRpb24gb2Ygc3ViZGl2aXNpb24gZml2 ZSBvZiB0aGlzCnNlY3Rpb24sICBjb21taXRzICBhZGRpdGlvbmFsICBhY3RzICB1bmRlciAg c3VjaCAgY2lyY3Vtc3RhbmNlcyAgYXMgICB0bwpjb25zdGl0dXRlICBhICBmZWxvbnksICB0 aGUgIGNyaW1lIG9mIGNvbnNwaXJhY3ksIHBldGl0IGxhcmNlbnksIG9yIG1vcmUKdGhhbiBv bmUgb2YgdGhlIGFmb3Jlc2FpZCwgc2hhbGwgYmUgcHVuaXNoYWJsZSB0aGVyZWZvciwgYXMg d2VsbCBhcyAgZm9yCnRoZSB2aW9sYXRpb24gb2Ygc3ViZGl2aXNpb24gZml2ZSBvZiB0aGlz IHNlY3Rpb24sIGFuZCBtYXkgYmUgcHJvc2VjdXRlZApmb3IgZWFjaCBjcmltZSwgc2VwYXJh dGVseSBvciBpbiB0aGUgIHNhbWUgIGluZm9ybWF0aW9uICBvciAgaW5kaWN0bWVudCwKbm90 d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92aXNpb24gb2YgbGF3LgoKICAgIFMgMjMuMDUu IEludmVzdGlnYXRpb25zLiAxLiBXaGVuZXZlciBpdCBzaGFsbCBhcHBlYXIgdG8gdGhlIGF0 dG9ybmV5CmdlbmVyYWwgZWl0aGVyIHVwb24gY29tcGxhaW50IG9yIG90aGVyd2lzZSB0aGF0 IGFueSBwZXJzb24gaGFzICB2aW9sYXRlZApvciAgaXMgIGFib3V0ICB0byAgdmlvbGF0ZSAg YW55ICBwcm92aXNpb24gIG9mICB0aGlzIGFydGljbGUsIG9yIHRoYXQgaGUKYmVsaWV2ZXMg aXQgbmVjZXNzYXJ5IHRvIGFpZCBpbiB0aGUgZW5mb3JjZW1lbnQgb2YgdGhpcyAgYXJ0aWNs ZSAgb3IgIGluCnRoZSBwcmVzY3JpYmluZyBvZiBydWxlcyBvciByZWd1bGF0aW9ucyBoZXJl dW5kZXIsIHRoZSBhdHRvcm5leSBnZW5lcmFsOgogICAgKGEpIE1heSBtYWtlIHN1Y2ggcHVi bGljIG9yIHByaXZhdGUgaW52ZXN0aWdhdGlvbnMgd2l0aGluIG9yIG91dHNpZGUKb2YgdGhp cyBzdGF0ZSBhcyBoZSBkZWVtcyBuZWNlc3NhcnkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYW55 IHBlcnNvbiAgaGFzCnZpb2xhdGVkICBvciAgaXMgIGFib3V0ICB0byB2aW9sYXRlIGFueSBw cm92aXNpb24gb2YgdGhpcyBhcnRpY2xlIG9yIGFueQpydWxlIG9yIHJlZ3VsYXRpb24gaGVy ZXVuZGVyLCBvciB0byAgYWlkICBpbiAgdGhlICBlbmZvcmNlbWVudCAgb2YgIHRoaXMKYXJ0 aWNsZSBvciBpbiB0aGUgcHJlc2NyaWJpbmcgb2YgcnVsZXMgYW5kIGZvcm1zIGhlcmV1bmRl cjsgYW5kCiAgICAoYikgTWF5IHJlcXVpcmUgb3IgcGVybWl0IGFueSBwZXJzb24gdG8gZmls ZSBhIHN0YXRlbWVudCBpbiB3cml0aW5nLAp1bmRlciBvYXRoIG9yIG90aGVyd2lzZSBhcyB0 aGUgYXR0b3JuZXkgZ2VuZXJhbCBkZXRlcm1pbmVzLCAgYXMgIHRvICBhbGwKdGhlIGZhY3Rz IGFuZCBjaXJjdW1zdGFuY2VzIGNvbmNlcm5pbmcgdGhlIG1hdHRlciB0byBiZSBpbnZlc3Rp Z2F0ZWQuCiAgICAyLiAgVGhlICBhdHRvcm5leSAgZ2VuZXJhbCwgIG9yICBhbnkgIG9mZmlj ZXIgIGRlc2lnbmF0ZWQgYnkgaGltLCBpcwplbXBvd2VyZWQgdG8gc3VicG9lbmEgd2l0bmVz c2VzLCBjb21wZWwgdGhlaXIgYXR0ZW5kYW5jZSwgIGV4YW1pbmUgIHRoZW0KdW5kZXIgIG9h dGggIGJlZm9yZSAgaGltICBvciAgYSAgY291cnQgIG9mICByZWNvcmQgb3IgYSBqdWRnZSBv ciBqdXN0aWNlCnRoZXJlb2YsIGFuZCByZXF1aXJlIHRoZSBwcm9kdWN0aW9uIG9mIGFueSAg Ym9va3MgIG9yICBwYXBlcnMgIHdoaWNoICBoZQpkZWVtcyAgcmVsZXZhbnQgIG9yICBtYXRl cmlhbCB0byB0aGUgaW5xdWlyeS4gU3VjaCBwb3dlciBvZiBzdWJwb2VuYSBhbmQKZXhhbWlu YXRpb24gc2hhbGwgbm90IGFiYXRlIG9yIHRlcm1pbmF0ZSBieSAgcmVhc29uICBvZiAgYW55 ICBhY3Rpb24gIG9yCnByb2NlZWRpbmcgYnJvdWdodCBieSB0aGUgYXR0b3JuZXkgZ2VuZXJh bCB1bmRlciB0aGlzIGFydGljbGUuCiAgICAzLiAgTm8gIHBlcnNvbiAgc2hhbGwgIGJlICBl eGN1c2VkICBmcm9tICBhdHRlbmRpbmcgIHN1Y2ggaW5xdWlyeSBpbgpwdXJzdWFuY2UgdG8g dGhlIG1hbmRhdGUgb2YgYSBzdWJwb2VuYSwgb3IgZnJvbSAgcHJvZHVjaW5nICBhICBwYXBl ciAgb3IKYm9vaywgIG9yICBmcm9tICBiZWluZyAgZXhhbWluZWQgb3IgcmVxdWlyZWQgdG8g YW5zd2VyIGEgcXVlc3Rpb24gb24gdGhlCmdyb3VuZCBvZiBmYWlsdXJlIG9mIHRlbmRlciBv ciBwYXltZW50IG9mIGEgd2l0bmVzcyBmZWUgYW5kL29yICBtaWxlYWdlLAp1bmxlc3MgYXQg dGhlIHRpbWUgb2Ygc3VjaCBhcHBlYXJhbmNlIG9yIHByb2R1Y3Rpb24sIGFzIHRoZSBjYXNl IG1heSBiZSwKc3VjaCB3aXRuZXNzIG1ha2VzIGRlbWFuZCBmb3Igc3VjaCBwYXltZW50IGFz IGEgY29uZGl0aW9uICBwcmVjZWRlbnQgIHRvCnRoZSAgb2ZmZXJpbmcgIG9mICB0ZXN0aW1v bnkgIG9yIHByb2R1Y3Rpb24gcmVxdWlyZWQgYnkgdGhlIHN1YnBvZW5hIGFuZAp1bmxlc3Mg c3VjaCBwYXltZW50IGlzIG5vdCB0aGVyZXVwb24gbWFkZS4gVGhlIHByb3Zpc2lvbiBmb3Ig cGF5bWVudCAgb2YKd2l0bmVzcyAgZmVlICBhbmQvb3IgbWlsZWFnZSBzaGFsbCBub3QgYXBw bHkgdG8gYW55IG9mZmljZXIsIGRpcmVjdG9yIG9yCnBlcnNvbiBpbiB0aGUgZW1wbG95IG9m IGFueSBwZXJzb24sIHBhcnRuZXJzaGlwLCAgY29ycG9yYXRpb24sICBjb21wYW55LAp0cnVz dCAgb3IgYXNzb2NpYXRpb24gd2hvc2UgY29uZHVjdCBvciBwcmFjdGljZXMgYXJlIGJlaW5n IGludmVzdGlnYXRlZC4KICAgIDQuICBJZiAgYSBwZXJzb24gc3VicG9lbmFlZCB0byBhdHRl bmQgc3VjaCBpbnF1aXJ5IGZhaWxzIHRvIG9iZXkgdGhlCmNvbW1hbmQgb2YgYSBzdWJwb2Vu YSB3aXRob3V0ICByZWFzb25hYmxlICBjYXVzZSwgIG9yICBpZiAgYSAgcGVyc29uICBpbgph dHRlbmRhbmNlIHVwb24gc3VjaCBpbnF1aXJ5IHNoYWxsIHdpdGhvdXQgcmVhc29uYWJsZSBj YXVzZSByZWZ1c2UgdG8gYmUKc3dvcm4gb3IgdG8gYmUgZXhhbWluZWQgb3IgdG8gYW5zd2Vy IGEgcXVlc3Rpb24gb3IgdG8gcHJvZHVjZSBhbmQgcGVybWl0CnJlYXNvbmFibGUgIGV4YW1p bmF0aW9uICBvZiBhIGJvb2sgb3IgcGFwZXIgd2hlbiBvcmRlcmVkIHNvIHRvIGRvIGJ5IHRo ZQpvZmZpY2VyICBjb25kdWN0aW5nICBzdWNoICBpbnF1aXJ5LCAgb3IgIGlmICAgYSAgIHBl cnNvbiwgICBwYXJ0bmVyc2hpcCwKY29ycG9yYXRpb24sICBjb21wYW55LCAgdHJ1c3QgIG9y ICBhc3NvY2lhdGlvbiAgZmFpbHMgdG8gcGVyZm9ybSBhbnkgYWN0CnJlcXVpcmVkIGhlcmV1 bmRlciB0byBiZSBwZXJmb3JtZWQsIGhlIHNoYWxsIGJlIGd1aWx0eSBvZiBhIG1pc2RlbWVh bm9yLgogICAgNS4gIEl0ICBzaGFsbCAgYmUgIHRoZSAgZHV0eSBvZiBhbGwgcHVibGljIG9m ZmljZXJzLCB0aGVpciBkZXB1dGllcywKYXNzaXN0YW50cywgc3Vib3JkaW5hdGVzLCBjbGVy a3Mgb3IgZW1wbG95ZWVzIGFuZCBhbGwgb3RoZXIgIHBlcnNvbnMgIHRvCnJlbmRlciAgYW5k ICBmdXJuaXNoIHRvIHRoZSBhdHRvcm5leSBnZW5lcmFsIG9yIG90aGVyIGRlc2lnbmF0ZWQg b2ZmaWNlcgp3aGVuIHJlcXVlc3RlZCBhbGwgaW5mb3JtYXRpb24gYW5kIGFzc2lzdGFuY2Ug IGluICB0aGVpciAgcG9zc2Vzc2lvbiAgb3IKd2l0aGluIHRoZWlyIHBvd2VyIHdpdGggcmVz cGVjdCB0byBhbGwgbWF0dGVycyBiZWluZyBpbnZlc3RpZ2F0ZWQgYnkgdGhlCmF0dG9ybmV5 IGdlbmVyYWwgdW5kZXIgdGhpcyBhcnRpY2xlLiBBbnkgb2ZmaWNlciBwYXJ0aWNpcGF0aW5n ICBpbiAgc3VjaAppbnF1aXJ5IGFuZCBhbnkgcGVyc29uIGV4YW1pbmVkIGFzIGEgd2l0bmVz cyB1cG9uIHN1Y2ggaW5xdWlyeSB3aG8gc2hhbGwKZGlzY2xvc2UgdG8gYW55IHBlcnNvbiBv dGhlciB0aGFuIGhpcyBhdHRvcm5leSBvciB0aGUgIGF0dG9ybmV5ICBnZW5lcmFsCnRoZSAg bmFtZSBvZiBhbnkgd2l0bmVzcyBleGFtaW5lZCBvciBhbnkgb3RoZXIgaW5mb3JtYXRpb24g b2J0YWluZWQgdXBvbgpzdWNoIGlucXVpcnkgZXhjZXB0IGFzIGRpcmVjdGVkIGJ5IHRoZSBh dHRvcm5leSBnZW5lcmFsIHNoYWxsIGJlICBndWlsdHkKb2YgYSBtaXNkZW1lYW5vci4KCiAg IFMgIDIzLjA3LiAgUmVjb3JkczsgIGJhbmsgYWNjb3VudHMuIEFsbCBtb25leXMgcmFpc2Vk IGZyb20gdGhlIG9mZmVyIGFuZApzYWxlIG9mIHN5bmRpY2F0aW9uICBpbnRlcmVzdHMgIGlu ICBhICB0aGVhdHJpY2FsICBwcm9kdWN0aW9uICBjb21wYW55LCAgYXMKZGVmaW5lZCAgaGVy ZWluLCAgc2hhbGwgIGJlICBoZWxkICBpbiBhIHNwZWNpYWwgYmFuayBhY2NvdW50IGluIHRy dXN0IHVudGlsCmFjdHVhbGx5ICBlbXBsb3llZCAgZm9yICBwcmUtcHJvZHVjdGlvbiAgb3Ig IHByb2R1Y3Rpb24gIHB1cnBvc2VzICBvZiAgIHRoZQpwYXJ0aWN1bGFyICB0aGVhdHJpY2Fs ICBwcm9kdWN0aW9uICBjb21wYW55ICBvciByZXR1cm5lZCB0byB0aGUgaW52ZXN0b3Igb3IK aW52ZXN0b3JzICB0aGVyZW9mLiAgQWxsICB0aGUgIHJlY29yZHMgIG9mICBzdWNoICBiYW5r ICBhY2NvdW50ICBhbmQgICBiYW5rCnRyYW5zYWN0aW9ucyBzaGFsbCBiZSBwcmVzZXJ2ZWQg Zm9yIGF0IGxlYXN0IHR3byB5ZWFycy4gSXQgc2hhbGwgYmUgY2xlYXJseQpzZXQgZm9ydGgg aW4gd3JpdGluZyBpbiBhbiAgaW52ZXN0bWVudCAgYWdyZWVtZW50ICBhbmQgIGFueSAgcHJv c3BlY3R1cyAgb3IKY2lyY3VsYXIgIGRpc3RyaWJ1dGVkICB0byBlYWNoIGludmVzdG9yIGlu IGEgdGhlYXRyaWNhbCBwcm9kdWN0aW9uIGNvbXBhbnksCmFzIGRlZmluZWQgaGVyZWluLCB0 aGF0IGFsbCBtb25leXMgIHJhaXNlZCAgZnJvbSAgdGhlICBvZmZlciAgYW5kICBzYWxlICBv ZgpzeW5kaWNhdGlvbiAgaW50ZXJlc3RzICBpbiAgYSAgdGhlYXRyaWNhbCAgcHJvZHVjdGlv biAgY29tcGFueSwgIGFzIGRlZmluZWQKaGVyZWluLCBzaGFsbCBiZSBoZWxkIGluIGEgc3Bl Y2lhbCBiYW5rIGFjY291bnQgIGluICB0cnVzdCAgdW50aWwgIGFjdHVhbGx5CmVtcGxveWVk ICBmb3IgIHByZS1wcm9kdWN0aW9uICBvciAgcHJvZHVjdGlvbiAgcHVycG9zZXMgIG9mICB0 aGUgcGFydGljdWxhcgp0aGVhdHJpY2FsIHByb2R1Y3Rpb24gY29tcGFueSBvciByZXR1cm5l ZCAgdG8gIHRoZSAgaW52ZXN0b3IgIG9yICBpbnZlc3RvcnMKdGhlcmVvZi4gIEFueSAgcHJv dmlzaW9uICBvZiAgYW55ICBjb250cmFjdCAgb3IgYWdyZWVtZW50IG9yIHVuZGVyc3RhbmRp bmcsCndoZXRoZXIgb3JhbCBvciBpbiB3cml0aW5nLCB3aGVyZWJ5IGEgcGVyc29uIHdobyBz byBwdXJjaGFzZXMgIGFuICBpbnRlcmVzdAppbiBhbnkgdGhlYXRyaWNhbCBwcm9kdWN0aW9u IGNvbXBhbnkgc3luZGljYXRpb24sIGFzIGRlZmluZWQgaGVyZWluLCB3YWl2ZXMKYW55IHBy b3Zpc2lvbiBvZiB0aGlzIHNlY3Rpb24gaXMgYWJzb2x1dGVseSB2b2lkLgoKICAgUyAgMjMu MDguICBQcm9jZWVkcyAgZnJvbSAgYWR2YW5jZSAgdGlja2V0IHNhbGVzOyByZWZ1bmRzLiAx LiBBbnkgdGlja2V0CmRpc3RyaWJ1dG9yIHdobyBvZmZlcnMgb3Igc2VsbHMgdG8gdGhlIHB1 YmxpYyBpbiBvciBmcm9tIHRoZSBzdGF0ZSAgb2YgIE5ldwpZb3JrLCAgYWR2YW5jZSAgdGlj a2V0cyAgb2YgIGFkbWlzc2lvbiAgdG8gIGV2ZW50cyAgdG8gYmUgaGVsZCBpbiBwbGFjZXMg b2YKZW50ZXJ0YWlubWVudCwgb3Igd2hvIGNvbnRyYWN0cyBmb3IgdGhlIHNhbGUgb2YgIHN1 Y2ggIGFkdmFuY2UgIHRpY2tldHMgIG9mCmFkbWlzc2lvbiwgIGFuZCAgYWNjZXB0cyBpbiBh ZHZhbmNlIHBhcnRpYWwgb3IgZnVsbCBwYXltZW50IG9mIHRoZSBwdXJjaGFzZQpwcmljZSB0 aGVyZWZvciwgc2hhbGwsIG5vIGxhdGVyIHRoYW4gdGhlIG5leHQgYnVzaW5lc3MgIGRheSAg YWZ0ZXIgIHJlY2VpcHQKdGhlcmVvZiwgIGRlcG9zaXQgYWxsIHN1Y2ggYWR2YW5jZSBwYXlt ZW50cyBpbiBhbiBlc2Nyb3cgYWNjb3VudCBpbiBhIGJhbmssCnRydXN0ICBjb21wYW55LCAg c2F2aW5ncyAgYmFuaywgIG9yICBzdGF0ZSAgb3IgIGZlZGVyYWwgIHNhdmluZ3MgIGFuZCAg bG9hbgphc3NvY2lhdGlvbiwgIGxvY2F0ZWQgIGluICB0aGlzICBzdGF0ZS4gIEEgc2VwYXJh dGUgZXNjcm93IGFjY291bnQgc2hhbGwgYmUKZXN0YWJsaXNoZWQgZm9yIGVhY2ggcGxhY2Ug b2YgZW50ZXJ0YWlubWVudC4gIE1vbmllcyAgZGVwb3NpdGVkICBpbiAgZXNjcm93CnNoYWxs IGJlIHJlbGVhc2VkIHVwb24gcGVyZm9ybWFuY2Ugb2YgZWFjaCBldmVudCBmb3Igd2hpY2gg c3VjaCBtb25pZXMgaGF2ZQpiZWVuIGRlcG9zaXRlZCB0byB0aGUgZXh0ZW50IHRoYXQgc3Vj aCBtb25pZXMgcmVwcmVzZW50IHBheW1lbnQgZm9yIGFkdmFuY2UKdGlja2V0cyAgc29sZCAg Zm9yICB0aGUgIHBlcmZvcm1lZCAgZXZlbnQuICBUaGUgIHBlcnNvbiB3aG8gb2ZmZXJzIG9y IHNlbGxzCmFkdmFuY2UgdGlja2V0cyBzaGFsbCBub3QgIGJlICByZXF1aXJlZCAgdG8gIGtl ZXAgIGluICBzZXBhcmF0ZSAgZGVwb3NpdG9yeQphY2NvdW50cyAgdGhlICBmdW5kcyAgb2Yg IHRoZSBzZXBhcmF0ZSB0aWNrZXQgcHVyY2hhc2VycyBmcm9tIHdob20gcGF5bWVudHMKaGF2 ZSBiZWVuIHJlY2VpdmVkLCBwcm92aWRlZCBoaXMgYm9va3Mgb2YgYWNjb3VudCBzaGFsbCAg Y2xlYXJseSAgc2hvdyAgdGhlCm51bWJlciAgb2YgIHRpY2tldHMgIHNvbGQgIGF0ICBlYWNo ICBwcmljZSAgZm9yIGVhY2ggdGhlYXRyaWNhbCBwcm9kdWN0aW9uLApjb25jZXJ0IG9yIHNw b3J0aW5nIGV2ZW50IGZvciB3aGljaCBhICBzZXBhcmF0ZSAgZXNjcm93ICBhY2NvdW50ICBo YXMgIGJlZW4KZXN0YWJsaXNoZWQsIGFuZCB0aGUgdG90YWwgYW1vdW50IG9mIGFkdmFuY2Ug dGlja2V0IHJldmVudWVzLiAgRWFjaCBhZHZhbmNlCnRpY2tldCBwdXJjaGFzZXIgc2hhbGws IHVudGlsIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgZXZlbnQgIGZvciAgd2hpY2ggIHRoZQph ZHZhbmNlICB0aWNrZXQgIGhhcyAgYmVlbiAgcHVyY2hhc2VkLCAgcmV0YWluICBhIHByb3Bl cnR5IGludGVyZXN0IGluIHRoYXQKcG9ydGlvbiBvZiB0aGUgZGVwb3NpdCB3aGljaCBlcXVh bHMgdGhlIGFtb3VudCBoZSBoYXMgcGFpZCBmb3Igc3VjaCBhZHZhbmNlCnRpY2tldCwgIGFu ZCAgc2hhbGwgIGJlICBlbnRpdGxlZCAgdG8gIGEgIHJlZnVuZCAgZm9yICBzdWNoICBhbW91 bnQgIGlmIHRoZQpwZXJmb3JtYW5jZSBvZiB0aGUgZXZlbnQgZm9yICB3aGljaCAgc3VjaCAg dGlja2V0ICBoYXMgIGJlZW4gIHB1cmNoYXNlZCAgaW4KYWR2YW5jZSAgaGFzICBiZWVuICBj YW5jZWxsZWQgIG9yICByZXNjaGVkdWxlZCwgIGV4Y2VwdCAgYXMgcHJvdmlkZWQgZm9yIGJ5 CnN1YmRpdmlzaW9uIHRocmVlIG9mIHRoaXMgc2VjdGlvbi4KICAyLiAgSW4gIGxpZXUgIG9m ICB0aGUgIGRlcG9zaXQgIG9mIGFsbCBzdWNoIGFkdmFuY2UgcGF5bWVudHMgaW4gYW4gZXNj cm93CmFjY291bnQgYXMgIHByb3ZpZGVkICBpbiAgc3ViZGl2aXNpb24gIG9uZSAgb2YgIHRo aXMgIHNlY3Rpb24sICBhbnkgIHRpY2tldApkaXN0cmlidXRvciB3aG8gb2ZmZXJzIG9yIHNl bGxzIGFkdmFuY2UgdGlja2V0cyBtYXkgcG9zdCB3aXRoIHRoZSBzZWNyZXRhcnkKb2Ygc3Rh dGUgaW4gYSBmb3JtLCBzdWJzdGFuY2UgIGFuZCAgYW1vdW50ICBzYXRpc2ZhY3RvcnkgIHRv ICB0aGUgIGF0dG9ybmV5CmdlbmVyYWwsICBhICBsZXR0ZXIgb2YgY3JlZGl0IGRyYXduIG9u IGEgYmFuaywgdHJ1c3QgY29tcGFueSwgc2F2aW5ncyBiYW5rLApvciBzdGF0ZSBvciBmZWRl cmFsIHNhdmluZ3MgYW5kIGxvYW4gYXNzb2NpYXRpb24sIGxvY2F0ZWQgaW4gdGhpcyBzdGF0 ZSwgb3IKYSAgYm9uZCAgb3IgIGNvbnRyYWN0ICBvZiBpbmRlbW5pdHksIGlzc3VlZCBieSBh IHN1cmV0eSBjb21wYW55IGxpY2Vuc2VkIHRvCmV4ZWN1dGUgc3VjaCBhbiBpbnN0cnVtZW50 IGluIHRoaXMgc3RhdGUsIHN1Y2ggbGV0dGVyIG9mICBjcmVkaXQsICBib25kICBvcgpjb250 cmFjdCAgb2YgIGluZGVtbml0eSAgdG8gYmUgaW4gZmF2b3Igb2YgdGhlIHN0YXRlIGZvciB0 aGUgYmVuZWZpdCBvZiBhbnkKcGVyc29uIHdobyBoYXMgcHVyY2hhc2VkIGFuIGFkdmFuY2Ug dGlja2V0IGlmIHBlcmZvcm1hbmNlIG9mIHRoZSBldmVudCAgZm9yCndoaWNoICBzdWNoICB0 aWNrZXQgIGhhcyAgYmVlbiBwdXJjaGFzZWQgaGFzIGJlZW4gY2FuY2VsbGVkIG9yIHJlc2No ZWR1bGVkLApleGNlcHQgYXMgcHJvdmlkZWQgZm9yIGJ5IHN1YmRpdmlzaW9uIHRocmVlIG9m IHRoaXMgc2VjdGlvbi4gVGhlIGFtb3VudCAgb2YKdGhlIGVzY3JvdyBhY2NvdW50IHJlcXVp cmVkIHRvIGJlIGVzdGFibGlzaGVkIHVuZGVyIHN1YmRpdmlzaW9uIG9uZSBvZiB0aGlzCnNl Y3Rpb24gbWF5IGJlIHJlZHVjZWQgYnkgdGhlIGFtb3VudCBvZiAgdGhlICBsZXR0ZXIgIG9m ICBjcmVkaXQsICBib25kICBvcgpjb250cmFjdCAgb2YgIGluZGVtbml0eSAgcHJvdmlkZWQg Zm9yIGluIHRoaXMgc3ViZGl2aXNpb24gcHJvdmlkZWQgdGhhdCB0aGUKY29tYmluZWQgYW1v dW50IG9mIG1vbmV5IGhlbGQgaW4gc3VjaCBlc2Nyb3cgYWNjb3VudCBhbmQgdGhlIHZhbHVl IG9mICBzdWNoCmxldHRlciBvZiBjcmVkaXQsIGJvbmQgb3IgY29udHJhY3Qgb2YgaW5kZW1u aXR5IHNoYWxsIGF0IGFsbCB0aW1lcyBhdCBsZWFzdApiZSBlcXVhbCB0byB0aGUgYW1vdW50 IG9mIG1vbmV5IGNvbGxlY3RlZCBmcm9tIGFkdmFuY2UgdGlja2V0IHNhbGVzIGZvciBhbGwK ZXZlbnRzIHRvIGJlIGhlbGQgYXQgZWFjaCBwbGFjZSBvZiBlbnRlcnRhaW5tZW50LgogIDMu ICBUaGUgIHJlZnVuZCAgcHJvdmlzaW9ucyAgb2YgIHN1YmRpdmlzaW9ucyBvbmUgYW5kIHR3 byBvZiB0aGlzIHNlY3Rpb24Kc2hhbGwgbm90IGFwcGx5IHdoZXJlIChpKSB0aGVyZSB3YXMg bm8gbWF0ZXJpYWwgY2hhbmdlIGluIHRoZSB0aW1lICBvZiAgdGhlCnBlcmZvcm1hbmNlICBv ZiAgdGhlICBldmVudCBvciBpbiB0aGUgbG9jYXRpb24gYXQgd2hpY2ggdGhlIGV2ZW50IHdh cyBoZWxkOwooaWkpIHRoZSBwZXJmb3JtYW5jZSBvZiBzdWNoIGV2ZW50IHdhcyByZXNjaGVk dWxlZCBkdWUgdG8gYW4gIEFjdCAgb2YgIEdvZCwKd2FyLCByaW90IG9yIG90aGVyIGNhdGFz dHJvcGhlIGFzIHRvIHdoaWNoIG5lZ2xpZ2VuY2Ugb3Igd2lsbGZ1bCBtaXNjb25kdWN0Cm9u IHRoZSBwYXJ0IG9mIHRoZSB0aWNrZXQgZGlzdHJpYnV0b3Igd2hvICBvZmZlcmVkICBvciAg c29sZCAgc3VjaCAgYWR2YW5jZQp0aWNrZXRzICB3YXMgbm90IHRoZSBwcm94aW1hdGUgY2F1 c2UgYW5kIHdoZXJlIHRoZSBhZHZhbmNlIHRpY2tldCBwdXJjaGFzZXIKd2FzIGdpdmVuIHRo ZSAgcmlnaHQgIHRvICB1c2UgIGhpcyAgb3IgIGhlciAgdGlja2V0ICBmb3IgIHN1Y2ggIHJl c2NoZWR1bGVkCnBlcmZvcm1hbmNlIG9yIHRoZSByaWdodCB0byBleGNoYW5nZSBzdWNoIHRp Y2tldCBmb3IgYSB0aWNrZXQgY29tcGFyYWJsZSBpbgpwcmljZSBhbmQgbG9jYXRpb24gdG8g YW5vdGhlciwgc2ltaWxhciBldmVudDsgb3IgIChpaWkpICB0aGUgIGJhY2sgIG9mICB0aGUK dGlja2V0ICBjb25zcGljdW91c2x5ICBzdGF0ZXMgIHRoYXQgIGlmICB0aGUgIHBlcmZvcm1h bmNlICBpcyAgY2FuY2VsbGVkIG9yCnJlc2NoZWR1bGVkLCB0aGUgdGlja2V0IGRpc3RyaWJ1 dG9yIHNoYWxsIG5vdCBiZSAgcmVxdWlyZWQgIHRvICByZWZ1bmQgIHRoZQp0aWNrZXQgIHBy aWNlICBpZiAgdGhlICB0aWNrZXQgIHB1cmNoYXNlciBpcyBnaXZlbiB0aGUgcmlnaHQsIHdp dGhpbiB0d2VsdmUKbW9udGhzIG9mIHRoZSBvcmlnaW5hbGx5IHNjaGVkdWxlZCBkYXRlIG9m IHRoZSAgcGVyZm9ybWFuY2UsICB0byAgYXR0ZW5kICBhCnJlc2NoZWR1bGVkICBwZXJmb3Jt YW5jZSBvZiB0aGUgc2FtZSBldmVudCBvciB0byBleGNoYW5nZSBzdWNoIHRpY2tldCBmb3Ig YQp0aWNrZXQgY29tcGFyYWJsZSBpbiBwcmljZSBhbmQgbG9jYXRpb24gdG8gYW5vdGhlciwg c2ltaWxhciBldmVudC4KCiAgICBTICAyMy4wOS4gIEFwcGxpY2F0aW9uICBvZiAgYXJ0aWNs ZTsgIGV4ZW1wdGlvbnMuICAxLiBUaGUgcHJvdmlzaW9ucyBvZgphcnRpY2xlIHR3ZW50eS10 aHJlZS1BIG9mIHRoZSBnZW5lcmFsIGJ1c2luZXNzIGxhdyBzaGFsbCBub3QgYmUgIGFwcGxp Y2FibGUKdG8gIG9mZmVyaW5ncyAgc3ViamVjdCB0byB0aGUgcmVxdWlyZW1lbnRzIG9mIHRo aXMgYXJ0aWNsZSwgb3Igd2l0aCByZXNwZWN0CnRvIHN1Y2ggb2ZmZXJpbmdzLCB0byBwcm9k dWNlcnMgb3IgcHJpbmNpcGFscyB0aGVyZW9mLgogICAyLiAgVGhlICBwcm92aXNpb25zIG9m IHN1YmRpdmlzaW9ucyBvbmUgYW5kIHR3byBvZiBzZWN0aW9uIDIzLjA4IG9mIHRoaXMKYXJ0 aWNsZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55ICB0aWNrZXQgIGRpc3RyaWJ1dG9yICB3aG8g IG9mZmVycyAgb3IgIHNlbGxzCmFkdmFuY2UgIHRpY2tldHMgIG9mICBhZG1pc3Npb24sIGFz IHNldCBmb3J0aCBpbiBzdWNoIHN1YmRpdmlzaW9ucywgaWYgc3VjaAp0aWNrZXQgZGlzdHJp YnV0b3Igb3IgYSBwcmluY2lwYWwgdGhlcmVvZiB3aGljaCBvd25zIG9yICBjb250cm9scyAg YSAgZmlmdHkKcGVyY2VudCAgb3IgIGdyZWF0ZXIgIGludGVyZXN0ICBpbiBzdWNoIHRpY2tl dCBkaXN0cmlidXRvciBvciB3aGljaCBvd25zIG9yCmNvbnRyb2xzIGxlc3MgdGhhbiBhIGZp ZnR5IHBlcmNlbnQgaW50ZXJlc3QgIGJ1dCAgYXQgIGxlYXN0ICBhICB0d2VudHktZml2ZQpw ZXJjZW50ICBpbnRlcmVzdCAgaW4gIHN1Y2ggdGlja2V0IGRpc3RyaWJ1dG9yIGFuZCBhY3Rp dmVseSBwYXJ0aWNpcGF0ZXMgaW4KdGhlIGRheS10by1kYXkgbWFuYWdlbWVudCBvZiBzdWNo IHRpY2tldCBkaXN0cmlidXRvciBvciBvdGhlcndpc2UgZXhlcmNpc2VzCm1hbmFnZXJpYWwg Y29udHJvbDoKICAgIChhKSAgaGFzLCAgZm9yICBhICBwZXJpb2QgaW4gZXhjZXNzIG9mIHRl biB5ZWFycywgcHJvZHVjZWQgb3IgcHJlc2VudGVkCmV2ZW50cyBhdCB0aGUgc2FtZSBwbGFj ZSBvZiBlbnRlcnRhaW5tZW50IG9yIHByb2R1Y2VkIG9yICBwcmVzZW50ZWQgIGV2ZW50cwp1 bmRlciB0aGUgc2FtZSBjb3Jwb3JhdGUgb3Igb3JnYW5pemF0aW9uYWwgbmFtZTsgb3IKICAg KGIpICBjb250cm9scywgIGlzIGNvbnRyb2xsZWQgYnkgb3IgdW5kZXIgY29tbW9uIGNvbnRy b2wgd2l0aCBhbnkgdGlja2V0CmRpc3RyaWJ1dG9yIHdoaWNoIGhhcywgZm9yIGEgcGVyaW9k IGluIGV4Y2VzcyBvZiAgdGVuICB5ZWFycywgIHByb2R1Y2VkICBvcgpwcmVzZW50ZWQgIGV2 ZW50cyAgYXQgIHRoZSAgc2FtZSAgcGxhY2UgIG9mICBlbnRlcnRhaW5tZW50ICBvciAgcHJv ZHVjZWQgb3IKcHJlc2VudGVkIGV2ZW50cyB1bmRlciB0aGUgc2FtZSBjb3Jwb3JhdGUgb3Ig b3JnYW5pemF0aW9uYWwgbmFtZTsgb3IKICAgKGMpICBtYWludGFpbnMgIG1pbmltdW0gIG5l dCAgY2FwaXRhbCBvZiBvbmUgaHVuZHJlZCB0aG91c2FuZCBkb2xsYXJzIG9yCm1pbmltdW0g bmV0IHdvcnRoIG9yLCBpZiBhIGNvcnBvcmF0aW9uLCBzaGFyZWhvbGRlcmBzIGVxdWl0eSBv ZiB0d28gaHVuZHJlZAp0aG91c2FuZCBkb2xsYXJzOyBvcgogICAoZCkgIG9mZmVycyAgb3Ig c2VsbHMgYWR2YW5jZSB0aWNrZXRzIG9mIGFkbWlzc2lvbiB0byBhIHRoZWF0cmUgb3Igb3Ro ZXIKcGxhY2Ugb2YgZW50ZXJ0YWlubWVudCBhcyBkZWZpbmVkIGluIHNlY3Rpb24gIDIzLjAz ICBvZiAgdGhpcyAgYXJ0aWNsZSAgKGkpCndoaWNoIGNvbnRhaW5zIG5vIG1vcmUgdGhhbiBu aW5ldHktbmluZSBzZWF0cyBmb3IgcGF5aW5nIGN1c3RvbWVycywgb3IgKGlpKQpmb3Igd2hp Y2ggdGhlIGF2ZXJhZ2UgdGlja2V0IHNhbGUgcmV2ZW51ZXMsIGFzIG1lYXN1cmVkIG92ZXIg dGhlICBwcmVjZWRpbmcKZmlmdHktdHdvICB3ZWVrICBwZXJpb2QsICBkb2VzIG5vdCBleGNl ZWQgdHdvIHRob3VzYW5kIGZpdmUgaHVuZHJlZCBkb2xsYXJzCnBlciB3ZWVrIGZvciBlYWNo IHdlZWsgZm9yIHdoaWNoIHRpY2tldHMgYXJlIHNvbGQ7IG9yCiAgIChlKSAgIGlzICAgYSAg bm90LWZvci1wcm9maXQsICBlZHVjYXRpb25hbCwgIGNoYXJpdGFibGUsICBvciAgdGF4LWV4 ZW1wdApvcmdhbml6YXRpb24gd2hpY2ggc2VsbHMgdGlja2V0cyB0byBhbiBldmVudCBwcm9k dWNlZCBvciBwcmVzZW50ZWQgIGJ5ICB0aGUKb3JnYW5pemF0aW9uLgogICBUaGUgIGF0dG9y bmV5IGdlbmVyYWwgbWF5IGZyb20gdGltZSB0byB0aW1lIG1ha2UsIGFtZW5kIGFuZCByZXNj aW5kIHN1Y2gKcnVsZXMgYW5kIHJlZ3VsYXRpb25zIGFzIGFyZSBuZWNlc3NhcnkgdG8gY2Fy cnkgb3V0IHRoZSBwcm92aXNpb25zIG9mICB0aGlzCmFydGljbGUsIG5vdHdpdGhzdGFuZGlu ZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgc2VjdGlvbiwgcHJvdmlkaW5nIGZvcgpl eGVtcHRpb25zIHRoZXJlZnJvbSB3aGVuIGhlIGZpbmRzIHN1Y2ggYWN0aW9uIGlzIG5vdCBp bmNvbnNpc3RlbnQgd2l0aCB0aGUKcHVibGljICBpbnRlcmVzdCAgYW5kICBkZWZpbmluZyAg YW55ICB0ZXJtcywgIHdoZXRoZXIgIG9yICBub3QgdXNlZCBpbiB0aGlzCmFydGljbGUsICBp bnNvZmFyICBhcyAgdGhlICBkZWZpbml0aW9ucyAgYXJlICBub3QgIGluY29uc2lzdGVudCAg d2l0aCAgIHRoZQpwcm92aXNpb25zIG9mIHN1Y2ggYXJ0aWNsZS4KCiAgUyAgMjMuMTEuICBJ bmp1bmN0aW9uczsgIG1vZGlmaWNhdGlvbiAgb3IgIGRpc3NvbHV0aW9uLiAgMS4gIFdoZW5l dmVyIHRoZQphdHRvcm5leSBnZW5lcmFsIHNoYWxsIGJlbGlldmUgZnJvbSBldmlkZW5jZSBz YXRpc2ZhY3RvcnkgdG8gaGltICB0aGF0ICBhbnkKcGVyc29uICBoYXMgIGVuZ2FnZWQgIG9y ICBpcyAgYWJvdXQgIHRvICBlbmdhZ2UgIGluICBhbnkgIGFjdCAgb3IgIHByYWN0aWNlCmNv bnN0aXR1dGluZyBhIHZpb2xhdGlvbiBvZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgYXJ0aWNs ZSBvciAgYW55ICBydWxlICBvcgpyZWd1bGF0aW9uICBoZXJldW5kZXIsICBoZSAgbWF5ICBp biAgaGlzICBkaXNjcmV0aW9uIGJyaW5nIGFuIGFjdGlvbiBpbiB0aGUKc3VwcmVtZSBjb3Vy dCBvZiB0aGUgc3RhdGUgb2YgTmV3IFlvcmsgdG8gZW5qb2luIHRoZSBhY3RzIG9yIHByYWN0 aWNlcyAgYW5kCnRvICBlbmZvcmNlICBjb21wbGlhbmNlICB3aXRoICB0aGlzICBhcnRpY2xl ICBvciAgYW55ICBydWxlICBvciAgcmVndWxhdGlvbgpoZXJldW5kZXIuIFVwb24gYSBwcm9w ZXIgc2hvd2luZyBhIHBlcm1hbmVudCAgb3IgIHRlbXBvcmFyeSAgaW5qdW5jdGlvbiAgb3IK cmVzdHJhaW5pbmcgIG9yZGVyIHNoYWxsIGJlIGdyYW50ZWQsIHdoaWNoIG1heSBpbmNsdWRl IHRoZSBhcHBvaW50bWVudCBvZiBhCnRlbXBvcmFyeSBvciBwZXJtYW5lbnQgcmVjZWl2ZXIg b2YgYWxsIG9mICB0aGUgIGFzc2V0cyAgYW5kICBhZmZhaXJzICBvZiAgYQp0aGVhdHJpY2Fs ICBwcm9kdWN0aW9uLCAgYXMgIGRlZmluZWQgaGVyZWluLCBmb3IgdGhlIHB1cnBvc2Ugb2Yg dHJhbnNhY3RpbmcKdGhlIGFmZmFpcnMgb3IgbGlxdWlkYXRpbmcgc3VjaCBwcm9kdWN0aW9u LCAgdXBvbiAgY29uZGl0aW9ucyAgc2V0ICBieSAgdGhlCmNvdXJ0LCAgd2hlbmV2ZXIgc3Vj aCByZWxpZWYgaXMgZGVlbWVkIGJ5IHN1Y2ggY291cnQgaW4gdGhlIGludGVyZXN0IG9mIHRo ZQppbnZlc3RvciBhbmQgdGhlIHB1YmxpYyBnZW5lcmFsbHkuIFVwb24gYSBzaG93aW5nIGJ5 IHRoZSAgYXR0b3JuZXkgIGdlbmVyYWwKdGhhdCAgYSAgdmlvbGF0aW9uIG9mIHRoaXMgYXJ0 aWNsZSBvciBhbnkgcnVsZSBvciByZWd1bGF0aW9uIHRoZXJldW5kZXIgaGFzCm9jY3VycmVk LCBoZSBtYXkgaW5jbHVkZSBpbiBhbiBhY3Rpb24gdW5kZXIgdGhpcyBhcnRpY2xlIGFuIGFw cGxpY2F0aW9uICB0bwpkaXJlY3QgICByZXN0aXR1dGlvbiAgb2YgIGFueSAgbW9uZXlzICBv ciAgcHJvcGVydHkgIG9idGFpbmVkICBkaXJlY3RseSAgb3IKaW5kaXJlY3RseSBieSBzdWNo IHZpb2xhdGlvbi4gIFdoZW5ldmVyIHRoZSBjb3VydCBzaGFsbCAgZGV0ZXJtaW5lICB0aGF0 ICBhCnZpb2xhdGlvbiAgb2YgIHRoaXMgIGFydGljbGUgIGhhcyAgb2NjdXJyZWQsICB0aGUg IGNvdXJ0IG1heSBpbXBvc2UgYSBjaXZpbApwZW5hbHR5IG9mIG5vdCBtb3JlIHRoYW4gb25l IHRob3VzYW5kIGRvbGxhcnMgZm9yIGVhY2ggc3VjaCB2aW9sYXRpb24uCiAgMi4gIEFueSAg cGVyc29uICBhZ2FpbnN0ICB3aG9tICBhbiAgaW5qdW5jdGlvbiBoYXMgYmVlbiBncmFudGVk IHVuZGVyIHRoZQpwcm92aXNpb25zIG9mIHRoaXMgYXJ0aWNsZSBtYXkgYXBwbHkgdG8gdGhl IHN1cHJlbWUgY291cnQgYXQgYW55IHRpbWUgYWZ0ZXIKZml2ZSAgeWVhcnMgIGZyb20gdGhl IGRhdGUgc3VjaCBwZXJtYW5lbnQgaW5qdW5jdGlvbiBiZWNhbWUgZWZmZWN0aXZlLCB1cG9u CmF0IGxlYXN0ICBzaXh0eSAgZGF5c2AgIG5vdGljZSAgdG8gIHRoZSAgYXR0b3JuZXkgIGdl bmVyYWwsICBmb3IgIGFuICBvcmRlcgpkaXNzb2x2aW5nICBzdWNoICBpbmp1bmN0aW9uICBv ciAgbW9kaWZ5aW5nICB0aGUgIHNhbWUgIHVwb24gc3VjaCB0ZXJtcyBhbmQKY29uZGl0aW9u cyBhcyB0aGUgY291cnQgZGVlbXMgbmVjZXNzYXJ5IG9yIGRlc2lyYWJsZS4gU3VjaCBhcHBs aWNhdGlvbiAgZm9yCmRpc3NvbHV0aW9uICBvciAgbW9kaWZpY2F0aW9uIG9mIHN1Y2ggaW5q dW5jdGlvbiBzaGFsbCBjb250YWluIGEgcmVjaXRhdGlvbgpvZiB0aGUgZmFjdHMgYW5kIGNp cmN1bXN0YW5jZXMgd2hpY2ggY2F1c2VkIHRoZSBncmFudGluZyBvZiB0aGUgaW5qdW5jdGlv bjsKdGhlICBvY2N1cGF0aW9uIGFuZCBlbXBsb3ltZW50IG9mIHRoZSBwZXJzb24gbWFraW5n IHRoZSBhcHBsaWNhdGlvbiBhbmQgaGlzCmZpbmFuY2lhbCByZW11bmVyYXRpb24gdGhlcmVm cm9tIHNpbmNlIHRoZSB0aW1lIHRoZSBpbmp1bmN0aW9uIHdhcyBncmFudGVkOwpoaXMgIG5l dCAgd29ydGggIGF0ICB0aGUgIHRpbWUgIG9mIHRoZSBhcHBsaWNhdGlvbiBhbmQgdGhlIHNv dXJjZXMgdGhlcmVvZiwKdG9nZXRoZXIgd2l0aCBhbnkgb3RoZXIgIGZhY3RzICBiZWFyaW5n ICB1cG9uICB0aGUgIHJlYXNvbmFibGVuZXNzICBvZiAgdGhlCmFwcGxpY2F0aW9uICBhbmQg dGhlIGNoYXJhY3RlciBvZiB0aGUgYXBwbGljYW50LCBhcyBtYXkgZW5hYmxlIHRoZSBjb3Vy dCB0bwppc3N1ZSBhbiBvcmRlciB0aGF0IHdpbGwgIHByb3Blcmx5ICBkaXNwb3NlICBvZiAg c3VjaCAgYXBwbGljYXRpb24gIGluICB0aGUKaW50ZXJlc3RzICBvZiAganVzdGljZS4gQSBj b3B5IG9mIHN1Y2ggYXBwbGljYXRpb24sIHRvZ2V0aGVyIHdpdGggY29waWVzIG9mCmFueSBv dGhlciBwYXBlcnMgaW4gc3VwcG9ydCB0aGVyZW9mLCBzaGFsbCAgYmUgIHNlcnZlZCAgdXBv biAgdGhlICBhdHRvcm5leQpnZW5lcmFsICBhdCAgbGVhc3Qgc2l4dHkgZGF5cyBwcmlvciB0 byB0aGUgcmV0dXJuIGRhdGUgdGhlcmVvZi4gSW4gYWRkaXRpb24KdGhlcmV0byB0aGUgYXBw bGljYW50IHNoYWxsIGZpbGUgd2l0aCAgdGhlICBjb3VydCAgYSAgZ29vZCAgYW5kICBzdWZm aWNpZW50CnN1cmV0eSAgYm9uZCAgaW4gIHRoZSBzdW0gb2Ygb25lIHRob3VzYW5kIGRvbGxh cnMgZ3VhcmFudGVlaW5nIHRoYXQgaGUgd2lsbApwYXkgYWxsIGNvc3RzIGFuZCBleHBlbnNl cyBvZiBhbiBpbnZlc3RpZ2F0aW9uIGJ5IHRoZSBhdHRvcm5leSAgZ2VuZXJhbCAgb2YKc3Vj aCAgYXBwbGljYW50ICBhbmQgIHRoZSAgc3RhdGVtZW50cyBhbmQgY2xhaW1zIGFsbGVnZWQg aW4gdGhlIGFwcGxpY2F0aW9uCnRvZ2V0aGVyIHdpdGggYW55IGZ1cnRoZXIgaW52ZXN0aWdh dGlvbiB3aGljaCB0aGUgYXR0b3JuZXkgZ2VuZXJhbCBtYXkgZGVlbQpuZWNlc3NhcnkgIG9y ICBkZXNpcmFibGUgIHRvICBkZXRlcm1pbmUgIHdoZXRoZXIgIGhlICBzaG91bGQgY29uc2Vu dCB0byB0aGUKYXBwbGljYXRpb24sIG9wcG9zZSB0aGUgc2FtZSBvciBtYWtlICBzdWNoICBv dGhlciAgcmVjb21tZW5kYXRpb25zICB0byAgdGhlCmNvdXJ0IGFzIGluIGhpcyBvcGluaW9u IGFyZSBkZXNpcmFibGUgdG8gYmUgaW5jbHVkZWQgaW4gYW55IG1vZGlmaWNhdGlvbiBvZgpz dWNoIGluanVuY3Rpb24uIFNob3VsZCBpdCBhcHBlYXIgaW4gdGhlIGNvdXJzZSBvZiAgc3Vj aCAgaW52ZXN0aWdhdGlvbiAgYnkKdGhlICBhdHRvcm5leSBnZW5lcmFsIHRoYXQgc2FpZCBz dW0gaXMgbm90IHN1ZmZpY2llbnQsIHRoZSBhdHRvcm5leSBnZW5lcmFsCm1heSBhcHBseSB0 byB0aGUgY291cnQgYnkgdXN1YWwgbm90aWNlIG9mIG1vdGlvbiBvciBvcmRlciB0byBzaG93 IGNhdXNlIGZvcgphbiAgaW5jcmVhc2UgIGluIHRoZSBhbW91bnQgb2Ygc2VjdXJpdHkgb3Ig ZnVydGhlciBzdXJldHkgYm9uZCBuZWNlc3NhcnkgdG8KZnVsbHkgcGF5IGFsbCBvZiB0aGUg Y29zdHMgb2YgdGhlIGludmVzdGlnYXRpb24gYW5kIHRoZSBjb3VydCAgbWF5ICByZXF1aXJl CnN1Y2ggIGZ1cnRoZXIgIGJvbmQgIGFzICB0aGUgc2l0dWF0aW9uIHJlcXVpcmVzIHRvIGZ1 bGx5IHBheSBzdWNoIGNvc3RzIGFuZApleHBlbnNlcy4gVXBvbiB0aGUgY29tcGxldGlvbiBv ZiBzdWNoIGludmVzdGlnYXRpb24sIHRoZSAgYXR0b3JuZXkgIGdlbmVyYWwKbWF5ICBmaWxl ICBhbiAgYW5zd2VyICB0byAgc3VjaCBhcHBsaWNhdGlvbiBzZXR0aW5nIGZvcnRoIHN1Y2gg ZmFjdHMgYXMgYXJlCnBlcnRpbmVudCB0byB0aGUgZGV0ZXJtaW5hdGlvbiBieSB0aGUgY291 cnQgb2YgdGhlICBtYXR0ZXIgIGJlZm9yZSAgaXQgIGFuZAp3aGV0aGVyIHNhaWQgaW5qdW5j dGlvbiBzaG91bGQgYmUgZGlzc29sdmVkLCBtb2RpZmllZCBvciBjb250aW51ZWQgaW4gd2hv bGUKb3IgaW4gIHBhcnQgIGFuZCAgd2hhdCAgY29uZGl0aW9ucywgIGlmICBhbnksICBzaGFs bCAgYmUgIGF0dGFjaGVkICB0byAgYW55CmRpc3NvbHV0aW9uICBvciAgbW9kaWZpY2F0aW9u IG9mIHNhaWQgaW5qdW5jdGlvbi4gQWZ0ZXIgYSBoZWFyaW5nIHVwb24gc3VjaAphcHBsaWNh dGlvbiBhbmQgYWZ0ZXIgYW55IGZ1cnRoZXIgaW52ZXN0aWdhdGlvbiwgcHJvb2Ygb3IgIHRl c3RpbW9ueSAgd2hpY2gKdGhlICBjb3VydCAgbWF5ICBvcmRlciwgIGl0IG1heSBtYWtlIGEg ZmluYWwgb3JkZXIgZGlzc29sdmluZyB0aGUgcGVybWFuZW50CmluanVuY3Rpb24gb3IgbW9k aWZ5aW5nIHRoZSBzYW1lIHVwb24gc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBhcyAgaW4g IGl0cwpvcGluaW9uICBhcmUgIGp1c3QgIGFuZCAgZGVzaXJhYmxlLCAgb3IgIGluICBpdHMg IGRpc2NyZXRpb24sICBtYXkgZGVueSB0aGUKYXBwbGljYXRpb24uIFN1Y2ggb3JkZXIgc2hh bGwgY29udGFpbiBhIGRpcmVjdGlvbiB0aGF0IHRoZSBhcHBsaWNhbnQgcGF5IHRvCnRoZSAg YXR0b3JuZXkgIGdlbmVyYWwgIHRoZSAgY29zdHMgIGFuZCAgZXhwZW5zZXMgIG9mICB0aGUg aW52ZXN0aWdhdGlvbiBpbgpjb25uZWN0aW9uIHdpdGggdGhlIHByb2NlZWRpbmcsIGFuZCBh bnkganVkZ21lbnQgIGVudGVyZWQgIHRoZXJlb24gIG1heSAgYmUKZW5mb3JjZWQgIGRpcmVj dGx5IGFnYWluc3QgdGhlIHN1cmV0eSBvbiB0aGUgYm9uZC4gVGhlIGNvdXJ0IHNoYWxsIGdy YW50IG5vCnRlbXBvcmFyeSBvciBvdGhlciByZWxpZWYgZnJvbSB0aGUgaW5qdW5jdGlvbiAg aW4gIGZvcmNlICBwZW5kaW5nICBhICBmaW5hbApkZXRlcm1pbmF0aW9uICBvZiAgc3VjaCAg YXBwbGljYXRpb24uIE5vIGFwcGxpY2F0aW9uIHVuZGVyIHRoaXMgc3ViZGl2aXNpb24Kc2hh bGwgYmUgZW50ZXJ0YWluZWQ6IChhKSB3aGVyZSB0aGUgaW5qdW5jdGlvbiB3YXMgZ3JhbnRl ZCBhcyAgYW4gIGluY2lkZW50CnRvICBhICBjcmltZSBvZiB3aGljaCB0aGUgYXBwbGljYW50 IGhhcyBiZWVuIGNvbnZpY3RlZCwgbm9yIChiKSBpbiBhbnkgY2FzZQp3aGVyZSB0aGUgYXBw bGljYW50IGhhcyBiZWVuIGNvbnZpY3RlZCBvZiBhIGZlbG9ueSBvciBhIGNyaW1lIHRoYXQg d291bGQgYmUKYSAgZmVsb255ICBpZiAgY29tbWl0dGVkIGluIHRoZSBzdGF0ZSBvZiBOZXcg WW9yayBzaW5jZSB0aGUgaXNzdWFuY2Ugb2YgdGhlCmluanVuY3Rpb24sIG5vciAoYykgY29u dmljdGVkIGF0IGFueSB0aW1lIG9mIGFueSAgY3JpbWUgIGludm9sdmluZyAgc3RvY2tzLApi b25kcywgIGludmVzdG1lbnRzLCAgc2VjdXJpdGllcywgb3IgbGlrZSBpbnN0cnVtZW50cywg bm9yIChkKSBjb252aWN0ZWQgYXQKYW55IHRpbWUgb2YgYW55IGNyaW1lIGludm9sdmluZyB0 aGVhdHJpY2FsIHN5bmRpY2F0aW9uIGludGVyZXN0cywgd2hpY2ggYXJlCnRoZSAgc3ViamVj dCAgbWF0dGVyICBvZiB0aGlzIGFydGljbGUuIE5vciBzaGFsbCBhbnl0aGluZyBjb250YWlu ZWQgaW4gdGhpcwpzdWJkaXZpc2lvbiBiZSBjb25zdHJ1ZWQgdG8gZGVueSB0byBvciBpbnRl cmZlcmUgIHdpdGggIHRoZSAgcG93ZXIgIG9mICB0aGUKYXR0b3JuZXkgIGdlbmVyYWwgIHRv ICBicmluZyAgYW55ICBvdGhlciAgYWN0aW9uICBvciAgcHJvY2VlZGluZywgIGNpdmlsIG9y CmNyaW1pbmFsLCBhZ2FpbnN0IHRoZSBhcHBsaWNhbnQgYXQgYW55IHRpbWUuCgogIFMgIDIz LjEzLiAgQXBwbGljYXRpb24gb2YgdGhlIHByb3Zpc2lvbnMgb2YgY2l2aWwgcHJhY3RpY2Ug bGF3IGFuZCBydWxlcy4KVGhlIHByb3Zpc2lvbnMgb2YgdGhlIGNpdmlsIHByYWN0aWNlIGxh dyAgYW5kICBydWxlcyAgc2hhbGwgIGFwcGx5ICB0byAgYWxsCmFjdGlvbnMgIGFuZCAgcHJv Y2VlZGluZ3MgIGJyb3VnaHQgIHVuZGVyICB0aGlzICBhcnRpY2xlICBleGNlcHQgIGFzIGhl cmVpbgpvdGhlcndpc2UgcHJvdmlkZWQuCgogICAgUyAgMjMuMTUuICBJbW11bml0eS4gVXBv biBhbnkgaW52ZXN0aWdhdGlvbiBvciBwcm9jZWVkaW5nIGJlZm9yZSB0aGUKYXR0b3JuZXkg Z2VuZXJhbCBvciBvdGhlciBvZmZpY2VyIGRlc2lnbmF0ZWQgYnkgaGltLCBvciBpbiBhbnkg IGNyaW1pbmFsCnByb2NlZWRpbmcgIGJlZm9yZSAgYW55ICBjb3VydCwgcHVyc3VhbnQgdG8g b3IgZm9yIGEgdmlvbGF0aW9uIG9mIGFueSBvZgp0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIGFy dGljbGUsIHRoZSBhdHRvcm5leSBnZW5lcmFsICBvciAgb3RoZXIgIG9mZmljZXIKZGVzaWdu YXRlZCAgYnkgIGhpbSBvciB0aGUgY291cnQsIG1heSBjb25mZXIgaW1tdW5pdHkgaW4gYWNj b3JkYW5jZSB3aXRoCnRoZSBwcm92aXNpb25zIG9mIHNlY3Rpb24gNTAuMjAgb2YgdGhlIGNy aW1pbmFsIHByb2NlZHVyZSBsYXcuCgogIFMgIDIzLjE3LiAgRW5mb3JjZW1lbnQgIGJ5ICBh dHRvcm5leSAgZ2VuZXJhbC4gIFRoZSAgYXR0b3JuZXkgZ2VuZXJhbCBtYXkKcHJvc2VjdXRl IGV2ZXJ5IHBlcnNvbiBjaGFyZ2VkIHdpdGggYSBjcmltaW5hbCBvZmZlbnNlIGluIHZpb2xh dGlvbiBvZiB0aGlzCmFydGljbGUgIGFuZCAgcmVndWxhdGlvbnMgIGlzc3VlZCB0aGVyZXVu ZGVyLCBvciBhbnkgdmlvbGF0aW9uIG9mIGFueSBvdGhlcgpsYXcgb2YgdGhpcyBzdGF0ZSBh cHBsaWNhYmxlIHRvIG9yIGluIHJlc3BlY3QgdG8gIGZyYXVkdWxlbnQgIHByYWN0aWNlcyAg aW4KY29ubmVjdGlvbiAgd2l0aCB0aGUgb2ZmZXIsIHNhbGUsIG5lZ290aWF0aW9uIG9yIGFk dmVydGlzaW5nIG9mIHN5bmRpY2F0aW9uCmludGVyZXN0cyBpbiAgdGhlYXRyaWNhbCAgcHJv ZHVjdGlvbnMsICBhcyAgZGVmaW5lZCAgaGVyZWluLiAgSW4gIGFsbCAgc3VjaApwcm9jZWVk aW5ncywgIHRoZSAgYXR0b3JuZXkgIGdlbmVyYWwgIG1heSBhcHBlYXIgaW4gcGVyc29uIG9y IGJ5IGhpcyBkZXB1dHkKYmVmb3JlIGFueSBjb3VydCBvZiByZWNvcmQgb3IgYW55IGdyYW5k IGp1cnkgYW5kIGV4ZXJjaXNlICBhbGwgIHRoZSAgcG93ZXJzCmFuZCAgcGVyZm9ybSBhbGwg dGhlIGR1dGllcyBpbiByZXNwZWN0IG9mIHN1Y2ggYWN0aW9ucyBvciBwcm9jZWVkaW5ncyB3 aGljaAp0aGUgZGlzdHJpY3QgYXR0b3JuZXkgd291bGQgb3RoZXJ3aXNlIGJlIGF1dGhvcml6 ZWQgb3IgcmVxdWlyZWQgdG8gZXhlcmNpc2UKb3IgIHBlcmZvcm07ICBvciAgdGhlICBhdHRv cm5leSAgZ2VuZXJhbCAgbWF5ICBpbiAgaGlzICBkaXNjcmV0aW9uIHRyYW5zbWl0CmV2aWRl bmNlLCBwcm9vZiBhbmQgaW5mb3JtYXRpb24gYXMgdG8gc3VjaCBvZmZlbnNlIHRvIHRoZSBk aXN0cmljdCBhdHRvcm5leQpvZiAgdGhlIGNvdW50eSBvciBjb3VudGllcyBpbiB3aGljaCB0 aGUgYWxsZWdlZCB2aW9sYXRpb24gaGFzIG9jY3VycmVkLCBhbmQKZXZlcnkgZGlzdHJpY3Qg YXR0b3JuZXkgdG8gd2hvbSBzdWNoIGV2aWRlbmNlLCBwcm9vZiBhbmQgaW5mb3JtYXRpb24g aXMgIHNvCnRyYW5zbWl0dGVkICBtYXkgIHByb2NlZWQgIHRvICBpbnZlc3RpZ2F0ZSAgYW5k ICBwcm9zZWN1dGUgYW55IGNvcnBvcmF0aW9uLApjb21wYW55LCBhc3NvY2lhdGlvbiwgb3Ig b2ZmaWNlciwgbWFuYWdlciBvciBhZ2VudCB0aGVyZW9mLCBvciBhbnkgZmlybSAgb3IKcGVy c29uICBjaGFyZ2VkICB3aXRoICBzdWNoICB2aW9sYXRpb24uIEluIGFueSBzdWNoIHByb2Nl ZWRpbmcsIHdoZXJlaW4gdGhlCmF0dG9ybmV5IGdlbmVyYWwgaGFzIGFwcGVhcmVkIGVpdGhl ciBpbiBwZXJzb24gb3IgYnkgZGVwdXR5LCAgdGhlICBkaXN0cmljdAphdHRvcm5leSAgc2hh bGwgIG9ubHkgIGV4ZXJjaXNlICBzdWNoIHBvd2VycyBhbmQgcGVyZm9ybSBzdWNoIGR1dGll cyBhcyBhcmUKcmVxdWlyZWQgb2YgaGltIGJ5IHRoZSBhdHRvcm5leSBnZW5lcmFsIG9yIHRo ZSBkZXB1dHkgYXR0b3JuZXkgIGdlbmVyYWwgIHNvCmFwcGVhcmluZy4KCiAgIFMgIDIzLjE5 LiAgVW5sYXdmdWwgIHJldGVudGlvbiAgb2YgIHBheW1lbnRzLiAgQW55ICBwcm9kdWNlciwg IHByb21vdGVyLApwcmluY2lwYWwsIGVtcGxveWVlLCAgZ2VuZXJhbCAgbWFuYWdlciwgIGNv bXBhbnkgIG1hbmFnZXIgIG9yICBhZ2VudCAgb2YgIGEKdGhlYXRyaWNhbCAgcHJvZHVjdGlv biAgY29tcGFueSwgYXMgZGVmaW5lZCBoZXJlaW4sIHdobyBrbm93aW5nbHkgcmVjZWl2ZXMs CmRpcmVjdGx5IG9yIGluZGlyZWN0bHksIGZyb20gYW55IHN1cHBsaWVyLCBhZHZlcnRpc2lu ZyBhZ2VuY3ksIHB1YmxpY2F0aW9uLAp0aGVhdHJlICBvd25lciwgIHRoZWF0cmUgIHRyZWFz dXJlciwgIHRpY2tldCBhZ2VudCwgdGlja2V0IGJyb2tlciwgb3Igb3RoZXIKZmlybSBvciBw ZXJzb24gaGF2aW5nIGRlYWxpbmdzICB3aXRoLCAgb3IgIGFwcGxpY2FibGUgIHRvLCAgdGhl ICB0aGVhdHJpY2FsCnByb2R1Y3Rpb24gIGNvbXBhbnksICBvciAgZnJvbSAgYW55ICBlbXBs b3llZXMgb3IgYWdlbnRzIHRoZXJlb2YsIGFueSBjYXNoLApjaGVja3MsIHJlYmF0ZXMsICBj b21taXNzaW9ucywgIGdpZnRzLCAgZ3JhdHVpdGllcyAgb3IgIG90aGVyICBwYXltZW50cyAg b3IKY29uc2lkZXJhdGlvbiAgZm9yICByZWFzb24gb2YgdGhlIGJ1c2luZXNzIG9wZXJhdGlv bnMsIG1hbmFnZW1lbnQsIGJpZGRpbmcsCm5lZ290aWF0aW9uIG9yIG90aGVyIG9wZXJhdGlv biBvZiBzdWNoICB0aGVhdHJpY2FsICBwcm9kdWN0aW9uICBjb21wYW55ICBvcgphcmlzaW5n ICBvdXQgb2YgdGhlIGJ1c2luZXNzIG9mIHN1Y2ggdGhlYXRyaWNhbCBwcm9kdWN0aW9uIGNv bXBhbnksIGFuZCB3aG8KZG9lcyBub3QgcGF5IHN1Y2ggYW1vdW50cyBvciBjb25zaWRlcmF0 aW9uIGludG8gc3VjaCB0aGVhdHJpY2FsICBwcm9kdWN0aW9uCmNvbXBhbnkgIHdpdGhpbiBh IHBlcmlvZCBvZiBzZXZlbnR5LXR3byBob3VycyB0aGVyZWFmdGVyLCBleGNlcHQgd2hlcmUg c3VjaApyZXRlbnRpb24gaXMgZXhwcmVzc2x5IHBlcm1pdHRlZCBieSB0aGUgdGhlYXRyaWNh bCBwcm9kdWN0aW9uICBjb21wYW55ICBhbmQKd2hlcmUgYSB3cml0dGVuIGludmVzdG9yIGFn cmVlbWVudCBzaWduZWQgYnkgYWxsIGludmVzdG9ycyByZXByZXNlbnRlZCB0aGF0CnN1Y2gg cmV0ZW50aW9uIHdvdWxkIGJlIHBlcm1pdHRlZCBieSAgdGhlICB0aGVhdHJpY2FsICBwcm9k dWN0aW9uICBjb21wYW55LApzaGFsbCAgYmUgIGd1aWx0eSAgb2YgIGEgbWlzZGVtZWFub3Is IHB1bmlzaGFibGUgYnkgYSBmaW5lIG9mIG5vdCBtb3JlIHRoYW4KZml2ZSBodW5kcmVkIGRv bGxhcnMgb3IgaW1wcmlzb25tZW50IGZvciBub3QgbW9yZSB0aGFuIG9uZSB5ZWFyLCBvciBi b3RoLgoKICBTICAyMy4yMS4gVmlvbGF0aW9ucyBhbmQgcGVuYWx0aWVzLiBBbnkgcGVyc29u LCBwYXJ0bmVyc2hpcCwgY29ycG9yYXRpb24sCmNvbXBhbnksIHRydXN0IG9yIGFzc29jaWF0 aW9uIHdpbGxmdWxseSB2aW9sYXRpbmcgYW55IG9mIHRoZSBwcm92aXNpb25zICBvZgp0aGlz IGFydGljbGUgb3IgYW55IHJ1bGUgb3IgcmVndWxhdGlvbiBpc3N1ZWQgdGhlcmV1bmRlciBz aGFsbCBiZSBndWlsdHkgb2YKYSBtaXNkZW1lYW5vciBwdW5pc2hhYmxlIGJ5IGEgZmluZSBv ZiBub3QgbW9yZSB0aGFuIGZpdmUgIGh1bmRyZWQgIGRvbGxhcnMsCm9yIGltcHJpc29ubWVu dCBmb3Igbm90IG1vcmUgdGhhbiBvbmUgeWVhciwgb3IgYm90aC4KCiAgUyAgMjMuMjMuICAg UHJvaGliaXRlZCAgYWN0aXZpdGllcyAgb2YgIHRpY2tldCAgZGlzdHJpYnV0b3JzLiAxLiBU aGUgdGVybQoidGlja2V0IGRpc3RyaWJ1dG9yIiBzaGFsbCBtZWFuIGFsbCBvd25lcnMsIG9w ZXJhdG9ycyBvciBvcGVyYXRpbmcgIGxlc3NlZXMKd2hldGhlciAgYW4gIGluZGl2aWR1YWws ICBmaXJtLCBjb21wYW55LCBwYXJ0bmVyc2hpcCwgY29ycG9yYXRpb24sIHRydXN0IG9yCmFz c29jaWF0aW9uIHdobyBjb250cm9sIHRoZSBvcGVyYXRpb24gb2YgYSBwbGFjZSBvZiBlbnRl cnRhaW5tZW50LCBhcyAgdGhhdAp0ZXJtICBpcyAgZGVmaW5lZCBpbiB0aGlzIGFydGljbGUs IGluY2x1ZGluZyB0aGUgYWxsb2NhdGlvbiBvciBkaXN0cmlidXRpb24Kb2YgdGlja2V0cyB0 byBhbnkgZXZlbnQsIGFzIHRoYXQgdGVybSBpcyBkZWZpbmVkIGluIHRoaXMgYXJ0aWNsZSwg IGFuZCAgYWxsCmNvbnRyb2xsaW5nIHBhcnRuZXJzLCBhbmQgY29udHJvbGxpbmcgc3RvY2to b2xkZXJzIGFuZCBjb250cm9sbGluZyBvZmZpY2VycwpvZiB0aGUgYWZvcmVzYWlkOyBhbmQg YWxsIGFnZW50cywgcmVwcmVzZW50YXRpdmVzLCBlbXBsb3llZXMgYW5kICBsaWNlbnNlZXMK b2YgIGFueSAgb2YgIHRoZSAgYWZvcmVtZW50aW9uZWQsICBpbmNsdWRpbmcgIHdpdGhvdXQg bGltaXRhdGlvbiBib3ggb2ZmaWNlCnRyZWFzdXJlcnMgYW5kIGFzc2lzdGFudCB0cmVhc3Vy ZXJzIG9mIHBsYWNlcyBvZiBlbnRlcnRhaW5tZW50LCB3aG8gZm9yIGFueQpwZXJpb2QgICBv ZiAgdGltZSAgaGF2ZSAgY29udHJvbCAgb2YgIHRoZSAgYWxsb2NhdGlvbiAgb3IgIGRpc3Ry aWJ1dGlvbiAgYnkKZGVzaWduYXRpb24gb3IgYXV0aG9yaXR5IG9mIHRoZSBhZm9yZW1lbnRp b25lZCwgb2YgIHRpY2tldHMgIGluICBjb25uZWN0aW9uCndpdGggIHRoZSAgc2hvd2luZyAg b2YgIGV2ZW50cywgYnV0IHNoYWxsIG5vdCBpbmNsdWRlIHN1Ym9yZGluYXRlIHBlcnNvbm5l bApwZXJmb3JtaW5nIG5vbi1kaXNjcmV0aW9uYXJ5IG9yIG1pbmlzdGVyaWFsIGZ1bmN0aW9u cyAgaW4gIGNvbm5lY3Rpb24gIHdpdGgKdGhlIGFsbG9jYXRpb24gb3IgZGlzdHJpYnV0aW9u IG9mIHRpY2tldHMgZm9yIGV2ZW50cy4KICAgMi4gIEEgICJ0aGVhdHJpY2FsICBwcm9kdWN0 aW9uIiBhcyB1c2VkIGluIHRoaXMgc2VjdGlvbiBzaGFsbCBtZWFuIHRob3NlCmxpdmUtc3Rh Z2VkICBkcmFtYXRpYyAgICBwcm9kdWN0aW9ucywgIGRyYW1hdGljLW11c2ljYWwgICBwcm9k dWN0aW9ucyAgIGFuZApjb25jZXJ0cyAgYXMgIGRlZmluZWQgIGluIHNlY3Rpb24gMjMuMDMg b2YgdGhpcyBjaGFwdGVyIHdoaWNoIGhlcmVhZnRlciBhcmUKc2hvd24gdG8gdGhlIHB1Ymxp YyBpbiBhIHBsYWNlIG9mIGVudGVydGFpbm1lbnQuCiAgIDMuIEEgInNwb3J0aW5nIGV2ZW50 IiBhcyB1c2VkIGluIHRoaXMgc2VjdGlvbiBzaGFsbCBtZWFuIHRob3NlIGNvbnRlc3RzLApn YW1lcywgb3Igb3RoZXIgZXZlbnRzIGludm9sdmluZyBhdGhsZXRpYyAgb3IgIHBoeXNpY2Fs ICBza2lsbHMgIHdoaWNoICBhcmUKc2hvd24gIHRvIHRoZSBwdWJsaWMgaW4gYSBwbGFjZSBv ZiBlbnRlcnRhaW5tZW50IGFuZCB3aG9zZSBwYXJ0aWNpcGFudHMgYXJlCnBhaWQgZm9yIHRo ZSBleGhpYml0aW9uIG9mIHRoZWlyICBhdGhsZXRpYyAgb3IgIHBoeXNpY2FsICBza2lsbHMs ICBidXQgIG5vdApleGhpYml0aW9ucyAgdW5kZXIgIHRoZSAganVyaXNkaWN0aW9uICBvZiB0 aGUgc3RhdGUgcmFjaW5nIG9yIHN0YXRlIGhhcm5lc3MKcmFjaW5nIGNvbW1pc3Npb25zLgog ICA0LiAgSXQgc2hhbGwgYmUgaWxsZWdhbCBhbmQgcHJvaGliaXRlZCBmb3IgYW55IG93bmVy LCBsZXNzZWUgb3Igb3BlcmF0b3IKb3IgbWFuYWdlciAgb3IgIHRyZWFzdXJlciAgb3IgIGFz c2lzdGFudCAgdHJlYXN1cmVyICBvciAgYW55ICBvdGhlciAgdGlja2V0CmRpc3RyaWJ1dG9y ICBvZiAgYSAgcGxhY2UgIG9mIGVudGVydGFpbm1lbnQsIGFzIGRlZmluZWQgaW4gdGhpcyBh cnRpY2xlLCB0bwpzZWxsIHRpY2tldHMgdG8gYW55IGV2ZW50IHRvIGJlIGhlbGQgaW4gdGhp cyBzdGF0ZSBkaXJlY3RseSBvciAgaW5kaXJlY3RseSwKdGhyb3VnaCAgYWdlbnRzLCAgZW1w bG95ZWVzICBvciAgb3RoZXJ3aXNlLCB1bmxlc3MgYW5kIHVudGlsIHRoZXJlIGlzIGZpbGVk CndpdGggdGhlIGRlcGFydG1lbnQgb2YgIGxhdyAgb2YgIHRoZSAgc3RhdGUgIG9mICBOZXcg IFlvcmsgIGJ5ICB0aGUgIHRpY2tldApkaXN0cmlidXRvciwgIGRpcmVjdGx5ICBvciAgaW5k aXJlY3RseSwgIGNvbnRyb2xsaW5nICB0aGUgIGRpc3RyaWJ1dGlvbiAgb2YKdGlja2V0cyBh IHJlZ2lzdHJhdGlvbiBrbm93biBhcyAgYSAgInRpY2tldCAgZGlzdHJpYnV0b3IgIHJlZ2lz dHJhdGlvbiIgIG9uCndoaWNoICBzaGFsbCAgYmUgIGNvbnRhaW5lZCAgdGhlICBuYW1lcywg IGFkZHJlc3NlcyBhbmQgY29ubmVjdGlvbiB3aXRoIHRoZQpkaXN0cmlidXRpb24gb2YgdGlj a2V0cyBvZiBhbGwgdGlja2V0IGRpc3RyaWJ1dG9ycywgYXMgZGVmaW5lZCAgaGVyZWluLCAg b24KZm9ybXMgIGlzc3VlZCAgYnkgIHRoZSAgYXR0b3JuZXkgIGdlbmVyYWwgIG9mICB0aGUg IHN0YXRlICBvZiAgTmV3IFlvcmssIGFzCmFwcGxpY2FibGUgdG8gc3VjaCByZWdpc3RyYXRp b24gYW5kIGFtZW5kbWVudHMgdGhlcmV0by4gSXQgc2hhbGwgYmUgaWxsZWdhbApmb3IgIGFu eSAgdGlja2V0ICBkaXN0cmlidXRvciB0byBzZWxsIHRpY2tldHMsIG9yIGNvbnRyb2wgdGhl IHNhbGUgdGhlcmVvZiwKdW5sZXNzIG5hbWVkIG9uIHN1Y2ggcmVnaXN0cmF0aW9uLiBUaGUg YXR0b3JuZXkgZ2VuZXJhbCBtYXkgaXNzdWUgYW4gIG9yZGVyCmNhbmNlbGxpbmcgb3Igc3Vz cGVuZGluZyB0aGUgbmFtZSBvZiBhIHBhcnRpY3VsYXIgaW5kaXZpZHVhbCBvciBpbmRpdmlk dWFscwpmcm9tIHN1Y2ggcmVnaXN0cmF0aW9uIG9yIGlzc3VlIGFuIG9yZGVyIGJhcnJpbmcg c3VjaCBwZXJzb24gIGZyb20gIHNlbGxpbmcKYW55ICB0aWNrZXRzICB0byBhbnkgZXZlbnQg dG8gYmUgaGVsZCBpbiB0aGlzIHN0YXRlIGFzIGFmb3Jlc2FpZCB3aGV0aGVyIG9yCm5vdCB0 aGUgcGVyc29uYHMgbmFtZSAgYXBwZWFycyAgb24gIGFueSAgcGFydGljdWxhciAgcmVnaXN0 cmF0aW9uICBhZnRlciAgYQpoZWFyaW5nLCAgY29uZHVjdGVkICBieSAgaGltICBvciAgYSAg ZGVzaWduYXRlZCAgb2ZmaWNlciwgIHdoZW4sIGJhc2VkIHVwb24Kc3Vic3RhbnRpYWwgZXZp ZGVuY2Ugb24gdGhlIGVudGlyZSByZWNvcmQsICBpdCAgaXMgIGRldGVybWluZWQgIHRoYXQ6 ICBzdWNoCnRpY2tldCAgZGlzdHJpYnV0b3IgIG9yICBhbnkgIHBlcnNvbiB3aG8gcmVzZWxs cyB0aWNrZXRzIHRvIGFueSBldmVudCB0byBiZQpoZWxkICBpbiAgdGhpcyAgc3RhdGUgIHN1 YnNlcXVlbnQgIHRvICBPY3RvYmVyICBmaXJzdCwgICBuaW5ldGVlbiAgIGh1bmRyZWQKc2l4 dHktZml2ZSwgIGRpcmVjdGx5ICBvciAgaW5kaXJlY3RseSwgIGhhcyAgd2lsbGZ1bGx5ICBh aWRlZCwgIGFiZXR0ZWQgIG9yCnBhcnRpY2lwYXRlZCBpbiBleGFjdGluZywgZGVtYW5kaW5n LCBhY2NlcHRpbmcgb3IgIHJlY2VpdmluZywgIGRpcmVjdGx5ICBvcgppbmRpcmVjdGx5LCAg YW55ICBwcmVtaXVtICBvciBwcmljZSBpbiBleGNlc3Mgb2YgdGhlIHJlZ3VsYXIgb3IgZXN0 YWJsaXNoZWQKcHJpY2Ugb3IgY2hhcmdlLCBwbHVzIGxhd2Z1bCB0YXhlcywgYXMgcHJpbnRl ZCB1cG9uIHRoZSBmYWNlIG9mIGVhY2ggdGlja2V0Cm9yICBvdGhlciAgZXZpZGVuY2Ugb2Yg dGhlIHJpZ2h0IG9mIGVudHJ5IHRoZXJldG8sIGZvciB0aWNrZXRzIHRvIGFueSBldmVudAp0 byBiZSBoZWxkIGluIHRoaXMgc3RhdGUgZnJvbSBtZW1iZXJzIG9mIHRoZSBwdWJsaWMgb3Ig IHRpY2tldCAgYnJva2VycyAgb3IKYWdlbnRzLCAgd2hldGhlciAgZGVzaWduYXRlZCAgYXMg IHByaWNlLCBncmF0dWl0eSBvciBvdGhlcndpc2U7IG9yIHdoZW5ldmVyCnN1Y2ggdGlja2V0 IGRpc3RyaWJ1dG9yIGhhcyBiZWVuIGNvbnZpY3RlZCBvZiBhbnkgIGNyaW1lICByZWxhdGlu ZyAgdG8gIHRoZQpzYWxlICBvZiAgdGlja2V0cyAgdG8gYW55IGV2ZW50LCBvciB2aW9sYXRp b25zIG9mIHRoaXMgYXJ0aWNsZTsgb3Igd2hlbmV2ZXIKc3VjaCB0aWNrZXQgZGlzdHJpYnV0 b3Igc2hhbGwgaGF2ZSBlbmdhZ2VkIGluIGFueSAgcHJhY3RpY2UgIGluICBjb25uZWN0aW9u CndpdGggIHRoZSAgc2FsZSAgb2YgdGlja2V0cyB0byBhbnkgZXZlbnQgd2hpY2ggb3BlcmF0 ZXMgYXMgYSBmcmF1ZCB1cG9uIHRoZQpwdWJsaWMgb3IgYW1vdW50cyB0byBmaW5hbmNpYWwg bWlzY29uZHVjdCwgb3IgdGhlICBleGFjdGluZyAgb2YgIGV4b3JiaXRhbnQKcmF0ZXMgIG9y ICBvdGhlciAgc2ltaWxhciAgYWJ1c2VzOyAgb3IgIHdoZW5ldmVyIGFueSB0aWNrZXQgZGlz dHJpYnV0b3IgaGFzCndpbGxmdWxseSB2aW9sYXRlZCBhbnkgcHJvdmlzaW9uIG9mIHRoaXMg YXJ0aWNsZSBvciBhbnkgcnVsZSBvciAgcmVndWxhdGlvbgppc3N1ZWQgICB0aGVyZXVuZGVy LiAgIFRoZSAgYXR0b3JuZXkgIGdlbmVyYWwgIG1heSAgYWxzbyAgaXNzdWUgIHJ1bGVzICBh bmQKcmVndWxhdGlvbnMgcmVsYXRpbmcgdG8gdGhlIG1haW50ZW5hbmNlIG9mIGJveCBvZmZp Y2UgcmVjb3JkcyBvZiBwbGFjZXMgIG9mCmVudGVydGFpbm1lbnQgIGFuZCAgd2l0aCAgcmVz cGVjdCAgdG8gIHRoZSAgZmlsaW5nICBhbmQgIGNvbnRlbnQgIG9mIHRpY2tldApkaXN0cmli dXRvciByZWdpc3RyYXRpb25zLCBpbmNsdWRpbmcgIGV4ZW1wdGlvbnMgIHJlbGF0aW5nICB0 byAgZWR1Y2F0aW9uYWwKaW5zdGl0dXRpb25zICB3aGljaCAgdGhlIGF0dG9ybmV5IGdlbmVy YWwgbWF5IGRldGVybWluZSB0byBiZSBpbiB0aGUgcHVibGljCmludGVyZXN0LgogICA1LiAg QWxsICB0aWNrZXQgIGRpc3RyaWJ1dG9ycyAgYXMgIGRlZmluZWQgaW4gdGhpcyBzZWN0aW9u IHNoYWxsIGtlZXAgb3IKY2F1c2UgdG8gYmUga2VwdCBib29rcywgcmVjb3JkcywgbWVtb3Jh bmRhIG9yIGNvcnJlc3BvbmRlbmNlIGNvbnRhaW5pbmcgdGhlCmZvbGxvd2luZyAgaW5mb3Jt YXRpb24gIGluICBjb25uZWN0aW9uICB3aXRoICB0aGUgIHNhbGUgIG9yIGRpc3RyaWJ1dGlv biBvZgp0aWNrZXRzOgogIChhKSAgVGhlICBudW1iZXIgIG9mICB0aWNrZXRzICBzb2xkLCAg YWxsb2NhdGVkICBvciBkaXN0cmlidXRlZCB0byB0aWNrZXQKYnJva2VycyBsaWNlbnNlZCBw dXJzdWFudCB0byBhcnRpY2xlIHR3ZW50eS1maXZlIG9mIHRoaXMgY2hhcHRlciAgb3IgIG90 aGVyCmtub3duICBicm9rZXJzLCAgc3BlY2lmeWluZyAgdGhlICBwcmljZSAgYW5kICBsb2Nh dGlvbiBvZiBlYWNoIHRpY2tldCBzb2xkLAphbGxvY2F0ZWQgIG9yICBkaXN0cmlidXRlZCAg dG8gIGVhY2ggIGJyb2tlciAgYW5kICB0aGUgIGRhdGUgIGFuZCAgdGltZSAgb2YKcGVyZm9y bWFuY2Ugb2YgZWFjaCBzdWNoIHRpY2tldC4KICAoYikgIFRoZSAgbnVtYmVyICBvZiAgdGlj a2V0cyAgYW1vbmcgIHRob3NlICBhbGxvY2F0ZWQgYW5kIGRpc3RyaWJ1dGVkIHRvCmJyb2tl cnMgIGJ5ICB0aWNrZXQgIGRpc3RyaWJ1dG9ycywgIHJldHVybmVkICBieSAgZWFjaCAgYnJv a2VyICB0byAgIHRpY2tldApkaXN0cmlidXRvcnMgc3BlY2lmeWluZyB0aGUgcHJpY2Ugb2Yg ZWFjaCBzdWNoIHJldHVybmVkIHRpY2tldCBhbmQgdGhlIGRhdGUKYW5kIHRpbWUgb2YgcGVy Zm9ybWFuY2Ugb2YgZWFjaCBzdWNoIHRpY2tldC4KICAoYykgIFRoZSAgbnVtYmVyICBvZiAg dGlja2V0cyAgc29sZCAgb3IgIGRpc3RyaWJ1dGVkICBhcyBob3VzZSBzZWF0cyB3aXRoCnJl Y2lwaWVudHMgdGhlcmVvZjsgb3IgdG8gZHVseSBsaWNlbnNlZCB0aGVhdHJlIHBhcnR5ICBh Z2VudHMgIHJlcHJlc2VudGluZwpjaGFyaXRhYmxlIG9yIGVsZWVtb3N5bmFyeSBvcmdhbml6 YXRpb25zLCBzcGVjaWZ5aW5nIHRoZSBwcmljZSBhbmQgbG9jYXRpb24Kb2YgZWFjaCB0aWNr ZXQgc29sZCwgYWxsb2NhdGVkIG9yIGRpc3RyaWJ1dGVkIGFuZCAgdGhlICBkYXRlICBhbmQg IHRpbWUgIG9mCnBlcmZvcm1hbmNlIG9mIGVhY2ggc3VjaCB0aWNrZXQuCiAgKGQpIEFsbCBt YWlsIG9yZGVyIGNvcnJlc3BvbmRlbmNlLCBpbmNsdWRpbmcgZGlzcG9zaXRpb24gdGhlcmVv Zi4KICBBbGwgIHJlY29yZHMgIHJlcXVpcmVkICB0byAgYmUgIGtlcHQgIHB1cnN1YW50ICB0 byAgdGhpcyBzZWN0aW9uIHNoYWxsIGJlCnByZXNlcnZlZCBmb3IgYSBwZXJpb2Qgb2Ygbm90 IGxlc3MgdGhhbiBvbmUgeWVhciBzdWJzZXF1ZW50IHRvIHRoZSBkYXRlICBvZgpwZXJmb3Jt YW5jZSB0byB3aGljaCBzdWNoIHJlY29yZCByZWxhdGVzLgogIDYuIEFueSBwZXJzb24gYWdn cmlldmVkIGJ5IGFuIG9yZGVyIG9mIHRoZSBhdHRvcm5leSBnZW5lcmFsIGhlcmV1bmRlciBt YXkKb2J0YWluIGEgcmV2aWV3IG9mIHN1Y2ggb3JkZXIgaW4gdGhlICBhcHBlbGxhdGUgIGRp dmlzaW9uICBvZiAgdGhlICBzdXByZW1lCmNvdXJ0IHB1cnN1YW50IHRvIGFydGljbGUgc2V2 ZW50eS1laWdodCBvZiB0aGUgY2l2aWwgcHJhY3RpY2UgbGF3IGFuZCBydWxlcwpieSBmaWxp bmcgaW4gc3VjaCBjb3VydCB3aXRoaW4gdGVuIGRheXMgYWZ0ZXIgdGhlIGVudHJ5IG9mICBz dWNoICBvcmRlciwgIGEKbm90aWNlICBvZiAgcGV0aXRpb24sICBwZXRpdGlvbiAgYW5kICBz dWl0YWJsZSAgYWZmaWRhdml0cyAgYXMgIHByb3ZpZGVkIGluCnN1YmRpdmlzaW9uIChjKSBv ZiBzZWN0aW9uIHNldmVuIHRob3VzYW5kIGVpZ2h0IGh1bmRyZWQgZm91ciBvZiAgdGhlICBj aXZpbApwcmFjdGljZSAgbGF3ICBhbmQgcnVsZXMsIHByYXlpbmcgdGhhdCB0aGUgb3JkZXIg b2YgdGhlIGF0dG9ybmV5IGdlbmVyYWwgYmUKbW9kaWZpZWQgb3Igc2V0IGFzaWRlIGluIHdo b2xlIG9yIGluIHBhcnQgdXBvbiBhbnkgb2YgdGhlIGdyb3VuZHMgc2V0IGZvcnRoCmluIHNl Y3Rpb24gc2V2ZW4gdGhvdXNhbmQgZWlnaHQgaHVuZHJlZCB0aHJlZSBvZiB0aGUgY2l2aWwg cHJhY3RpY2UgbGF3IGFuZApydWxlcy4KICA3LiAgSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlz IHNlY3Rpb24gaXMgaW4gY29uZmxpY3Qgd2l0aCBhbnkgcHJvdmlzaW9uIG9mCmFueSBsYXcg b2YgdGhlIHN0YXRlIG9mIE5ldyBZb3JrIG9yIGFueSBtdW5pY2lwYWxpdHkgb3Igc3ViZGl2 aXNpb24gdGhlcmVvZgpvciAgYW55ICBydWxlICBvciAgcmVndWxhdGlvbiAgdGhlcmVvZiAg aW4gZm9yY2Ugb24gT2N0b2JlciBmaXJzdCwgbmluZXRlZW4KaHVuZHJlZCBzaXh0eS1maXZl LCB0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIHNlY3Rpb24gc2hhbGwgcHJldmFpbC4KCgoKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0cyBh bmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRJVExFIEcKICAgICAgICAgICAgICAgICAgIFJFR1VMQVRJT04gT0YgU0FMRSBPRiBUSEVB VFJFIFRJQ0tFVFMKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUgQ29uc29s aWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKiBBUlRJQ0xFIDI1CiAgICAgICAgICAgICAgICAgICBUSUNLRVRT IFRPIFBMQUNFUyBPRiBFTlRFUlRBSU5NRU5UClNlY3Rpb24gMjUuMDEuIExlZ2lzbGF0aXZl IGZpbmRpbmdzLgogICAgICAgIDI1LjAzLiBEZWZpbml0aW9ucy4KICAgICAgICAyNS4wNS4g RXhlbXB0aW9ucy4KICAgICAgICAyNS4wNy4gVGlja2V0IHByaWNlcy4KICAgICAgICAyNS4w OC4gQWRkaXRpb25hbCBwcmludGluZyBvbiB0aWNrZXRzLgogICAgICAgIDI1LjA5LiBUaWNr ZXQgc3BlY3VsYXRvcnMuCiAgICAgICAgMjUuMTEuIFJlc2FsZXMgb2YgdGlja2V0cyB3aXRo aW4gb25lIHRob3VzYW5kIGZlZXQgb2YgYSBwbGFjZSBvZgogICAgICAgICAgICAgICAgIGVu dGVydGFpbm1lbnQgIGhhdmluZyAgYSAgcGVybWFuZW50IHNlYXRpbmcgY2FwYWNpdHkgaW4K ICAgICAgICAgICAgICAgICBleGNlc3Mgb2YgZml2ZSB0aG91c2FuZCBwZXJzb25zLgogICAg ICAgIDI1LjEzLiBMaWNlbnNpbmcgb2YgdGlja2V0IHJlc2VsbGVycy4KICAgICAgICAyNS4x NS4gQm9uZC4KICAgICAgICAyNS4xNy4gU3VwZXJ2aXNpb24gYW5kIHJlZ3VsYXRpb24uCiAg ICAgICAgMjUuMTkuIFBvc3Rpbmcgb2YgbGljZW5zZSBvciBjZXJ0aWZpY2F0ZS4KICAgICAg ICAyNS4yMS4gUmVtb3ZhbCBvZiBvZmZpY2UuCiAgICAgICAgMjUuMjMuIFBvc3Rpbmcgb2Yg cHJpY2UgbGlzdHM7IGluZm9ybWF0aW9uIHRvIHB1cmNoYXNlci4KICAgICAgICAyNS4yNS4g UmVjb3JkcyBvZiBwdXJjaGFzZXMgYW5kIHNhbGVzLgogICAgICAgIDI1LjI3LiBDb21taXNz aW9ucyB0byBlbXBsb3llZXMgb2YgcGxhY2VzIG9mIGVudGVydGFpbm1lbnQuCiAgICAgICAg MjUuMjkuIFVubGF3ZnVsIGNoYXJnZXMgaW4gY29ubmVjdGlvbiB3aXRoIHRpY2tldHMuCiAg ICAgICAgMjUuMzEuIFN1c3BlbnNpb24gb3IgcmV2b2NhdGlvbiBvZiBsaWNlbnNlcy4KICAg ICAgICAyNS4zMy4gUHJpdmF0ZSByaWdodCBvZiBhY3Rpb24uCiAgICAgICAgMjUuMzUuIENy aW1pbmFsIHBlbmFsdGllcy4KICAgICAgICAqIE5CIEVmZmVjdGl2ZSB1bnRpbCA5OS8wNi8w MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEFSVElDTEUgMjUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUSEVBVFJFIFRJQ0tFVFMKU2VjdGlvbiAyNS4wMS4gTWF0 dGVycyBvZiBwdWJsaWMgaW50ZXJlc3QuCiAgICAgICAgMjUuMDMuIFJlc2VsbGluZyBvZiB0 aWNrZXRzIG9mIGFkbWlzc2lvbjsgbGljZW5zZXM7IGZlZXMuCiAgICAgICAgMjUuMDUuIFRp Y2tldCBzcGVjdWxhdG9ycy4KICAgICAgICAyNS4wNy4gQm9uZC4KICAgICAgICAyNS4wOS4g U3VzcGVuc2lvbiBvciByZXZvY2F0aW9uIG9mIGxpY2Vuc2VzLgogICAgICAgIDI1LjExLiBT dXBlcnZpc2lvbiBhbmQgcmVndWxhdGlvbi4KICAgICAgICAyNS4xMy4gUHJpbnRpbmcgcHJp Y2Ugb24gdGlja2V0LgogICAgICAgIDI1LjE1LiBQb3N0aW5nIG9mIGxpY2Vuc2Ugb3IgY2Vy dGlmaWNhdGUuCiAgICAgICAgMjUuMTcuIFJlbW92YWwgb2Ygb2ZmaWNlLgogICAgICAgIDI1 LjE5LiBQb3N0aW5nIG9mIHByaWNlIGxpc3RzOyBpbmZvcm1hdGlvbiB0byAgcHVyY2hhc2Vy LgogICAgICAgIDI1LjIxLiBSZWNvcmRzIG9mIHB1cmNoYXNlcyBhbmQgc2FsZXMuCiAgICAg ICAgMjUuMjMuIENvbW1pc3Npb25zIHRvIGVtcGxveWVlcyBvZiB0aGVhdHJlcy4KICAgICAg ICAyNS4yNS4gVmlvbGF0aW9uczsgcGVuYWx0aWVzLgogICAgICAgIDI1LjI3LiBVbmxhd2Z1 bCBjaGFyZ2VzIGluIGNvbm5lY3Rpb24gd2l0aCB0aGVhdHJlIHRpY2tldHMuCiAgICAgICAg KiBOQiBFZmZlY3RpdmUgOTkvMDYvMDEKCiAgKiBTIDI1LjAxLiBMZWdpc2xhdGl2ZSAgZmlu ZGluZ3MuICBUaGUgIGxlZ2lzbGF0dXJlIGZpbmRzIGFuZCBkZWNsYXJlcwp0aGF0IHRoZSBw cmljZSBvZiBvciBjaGFyZ2UgZm9yIGFkbWlzc2lvbiB0byBwbGFjZXMgb2YgZW50ZXJ0YWlu bWVudCAgaXMKYSBtYXR0ZXIgb2YgcHVibGljIGludGVyZXN0IGFuZCBzdWJqZWN0IHRvIHRo ZSBzdXBlcnZpc2lvbiBvZiB0aGUgYXBwcm8tCnByaWF0ZSBwb2xpdGljYWwgc3ViZGl2aXNp b25zIG9mIHRoZSBzdGF0ZSBmb3IgdGhlIHB1cnBvc2Ugb2Ygc2FmZWd1YXJkLQppbmcgIHRo ZSAgcHVibGljICBhZ2FpbnN0IGZyYXVkLCBleHRvcnRpb24sIGV4b3JiaXRhbnQgcmF0ZXMg YW5kIHNpbWlsYXIKYWJ1c2VzLiAgVGhlIGxlZ2lzbGF0dXJlIGZ1cnRoZXIgZmluZHMgdGhh dCBtYW55IHRpY2tldCByZXNlbGxlcnMgYWR2ZXItCnRpc2UgYW5kIHNlbGwgdGlja2V0cyB0 byBOZXcgWW9yayBzdGF0ZSByZXNpZGVudHMgZnJvbSBsb2NhdGlvbnMgb3V0c2lkZQp0aGUg c3RhdGUuIEl0IGlzICB0aGUgIGxlZ2lzbGF0dXJlYHMgIGludGVudCAgdGhhdCAgZ292ZXJu bWVudGFsICBib2RpZXMKY2hhcmdlZCAgd2l0aCBlbmZvcmNlbWVudCBvZiB0aGlzIGFydGlj bGUgaGF2ZSB0aGUgYXV0aG9yaXR5IHRvIHJlZ3VsYXRlCnRoZSBhY3Rpdml0aWVzIG9mIG91 dC1vZi1zdGF0ZSByZXNlbGxlcnMgd2l0aGluIHRoaXMgc3RhdGUgdG8gIHRoZSAgZnVsbApl eHRlbnQgIG9mICB0aGUgc3RhdGVgcyBwb3dlcnMgdW5kZXIgdGhlIGZlZGVyYWwgYW5kIHN0 YXRlIGNvbnN0aXR1dGlvbnMKYW5kIHRoYXQgdGhpcyBhcnRpY2xlIGJlIGNvbnN0cnVlZCBp biBsaWdodCBvZiB0aGlzIHB1cnBvc2UuICBUaGUgbGVnaXMtCmxhdHVyZSBmdXJ0aGVyIGZp bmRzIHRoYXQgY2lyY3Vtc3RhbmNlcyBvY2Nhc2lvbmFsbHkgYXJpc2UgdGhhdCBwcmVjbHVk ZQp0aGUgdXNlIG9mIHRpY2tldHMgcHVyY2hhc2VkIGluIGFkdmFuY2UgYW5kIHRoYXQgcGVv cGxlIG5lZWQgdG8gIHJlY292ZXIKdGhlaXIgZXhwZW5zZXMuICBUaGlzIGxlZ2lzbGF0aW9u IHJlY29nbml6ZXMgdGhhdCBuZWVkIGluIHNldmVyYWwgb2YgaXRzCnByb3Zpc2lvbnMuIEl0 IGlzIHRoZSBpbnRlbnQgb2YgdGhlIGxlZ2lzbGF0dXJlIHRoYXQgZW5mb3JjZW1lbnQgb2Yg dGhpcwphcnRpY2xlICBzaGFsbCAgYWxzbyAgZGlmZmVyZW50aWF0ZSAgYmV0d2VlbiAgdGhv c2UgIHdobyAgd291bGQgbGF3ZnVsbHkKcmVjb3ZlciB0aGVpciBleHBlbnNlcyBhbmQgdGhv c2Ugd2hvIHdvdWxkIGdhaW4gc3Vic3RhbnRpYWwgcHJvZml0cyBmcm9tCnVubGF3ZnVsIHJl c2VsbGluZyBvZiB0aWNrZXRzLgogICogTkIgRWZmZWN0aXZlIHVudGlsIDk5LzA2LzAxCiAg KiBTIDI1LjAxLiBNYXR0ZXJzIG9mIHB1YmxpYyBpbnRlcmVzdC4gSXQgIGlzICBoZXJlYnkg IGRldGVybWluZWQgIGFuZApkZWNsYXJlZCAgdGhhdCAgdGhlIHByaWNlIG9mIG9yIGNoYXJn ZSBmb3IgYWRtaXNzaW9uIHRvIHRoZWF0cmVzLCBwbGFjZXMKb2YgYW11c2VtZW50IG9yIGVu dGVydGFpbm1lbnQsIG9yIG90aGVyIHBsYWNlcyB3aGVyZSBwdWJsaWMgZXhoaWJpdGlvbnMs CmdhbWVzLCBjb250ZXN0cyBvciBwZXJmb3JtYW5jZXMgYXJlIGhlbGQgaXMgYSAgbWF0dGVy ICBhZmZlY3RlZCAgd2l0aCAgYQpwdWJsaWMgIGludGVyZXN0IGFuZCBzdWJqZWN0IHRvIHRo ZSBzdXBlcnZpc2lvbiBvZiB0aGUgYXBwcm9wcmlhdGUgcG9saS0KdGljYWwgc3ViZGl2aXNp b25zIG9mIHRoZSBzdGF0ZSBmb3IgIHRoZSAgcHVycG9zZSAgb2YgIHNhZmVndWFyZGluZyAg dGhlCnB1YmxpYyBhZ2FpbnN0IGZyYXVkLCBleHRvcnRpb24sIGV4b3JiaXRhbnQgcmF0ZXMg YW5kIHNpbWlsYXIgYWJ1c2VzLgogICogTkIgRWZmZWN0aXZlIDk5LzA2LzAxCgogICogUyAy NS4wMy4gRGVmaW5pdGlvbnMuICBBcyB1c2VkIGluIHRoaXMgYXJ0aWNsZSB0aGUgdGVybTog IDEuICJFbnRlci0KdGFpbm1lbnQiIG1lYW5zIGFsbCBmb3JtcyBvZiBlbnRlcnRhaW5tZW50 IGluY2x1ZGluZywgIGJ1dCAgbm90ICBsaW1pdGVkCnRvLCAgdGhlYXRyaWNhbCBvciBvcGVy YXRpYyBwZXJmb3JtYW5jZXMsIGNvbmNlcnRzLCBtb3Rpb24gcGljdHVyZXMsIGFsbApmb3Jt cyBvZiBlbnRlcnRhaW5tZW50IGF0IGZhaXIgZ3JvdW5kcywgYW11c2VtZW50IHBhcmtzIGFu ZCBhbGwgdHlwZXMgb2YKYXRobGV0aWMgY29tcGV0aXRpb25zIGluY2x1ZGluZyBmb290YmFs bCwgYmFza2V0YmFsbCwgYmFzZWJhbGwsICBib3hpbmcsCnRlbm5pcywgIGhvY2tleSwgIGFu ZCBhbnkgb3RoZXIgc3BvcnQsIGFuZCBhbGwgb3RoZXIgZm9ybXMgb2YgZGl2ZXJzaW9uLApy ZWNyZWF0aW9uIG9yIHNob3cuCiAgMi4gIkNvbW1pc3Npb25lciIgbWVhbnMgdGhlIGNvbW1p c3Npb25lciBvZiBsaWNlbnNlcyBvZiB0aGUgIHBvbGl0aWNhbApzdWJkaXZpc2lvbiAgaW4g IHdoaWNoICBzdWNoICBwZXJzb24gaW50ZW5kcyB0byBjb25kdWN0IGJ1c2luZXNzLCBhbmQg aWYKdGhlcmUgaXMgbm8gc3VjaCBjb21taXNzaW9uZXIsIHRoZW4gdGhlIGNoaWVmIGV4ZWN1 dGl2ZSBvZmZpY2VyICB0aGVyZW9mCnNoYWxsIGJlIGRlZW1lZCB0aGUgY29tbWlzc2lvbmVy IGZvciBwdXJwb3NlcyBvZiB0aGlzIGFydGljbGUuCiAgMy4gICJFc3RhYmxpc2hlZCAgcHJp Y2UiICBtZWFucyB0aGUgcHJpY2UgZml4ZWQgYnkgdGhlIG9wZXJhdG9yIG9mIGFueQpwbGFj ZSBvZiBlbnRlcnRhaW5tZW50IGZvciBhZG1pc3Npb24gdGhlcmV0bywgd2hpY2ggbXVzdCBi ZSAgcHJpbnRlZCAgb3IKZW5kb3JzZWQgb24gZWFjaCB0aWNrZXQgb2YgYWRtaXNzaW9uLgog IDQuICJNYXhpbXVtIHByZW1pdW0gcHJpY2UiIG1lYW5zIGFueSBwcmVtaXVtIG9yIHByaWNl IGluIGV4Y2VzcyBvZiB0aGUKZXN0YWJsaXNoZWQgIHByaWNlIHByaW50ZWQgb3IgZW5kb3Jz ZWQgb24gdGhlIHRpY2tldCBwdXJzdWFudCB0byBzZWN0aW9uCjI1LjA3IG9mIHRoaXMgYXJ0 aWNsZSwgcGx1cyBsYXdmdWwgdGF4ZXMsIHNvIHRoYXQgdGhlIHVsdGltYXRlIHByaWNlICB0 bwp0aGUgIHB1cmNoYXNlciBvZiBhbnkgc3VjaCB0aWNrZXQgc2hhbGwgbm90IGV4Y2VlZCB0 aGUgc3VtIG9mIHRoZSBlc3RhYi0KbGlzaGVkIHByaWNlIHBsdXMgZml2ZSBkb2xsYXJzIG9y IHRlbiBwZXJjZW50IG9mIHRoZSBlc3RhYmxpc2hlZCAgcHJpY2UsCndoaWNoZXZlciBpcyBn cmVhdGVyLCBwbHVzIGxhd2Z1bCB0YXhlcy4KICA1LiAiTm90LWZvci1wcm9maXQgb3JnYW5p emF0aW9uIiBtZWFucyBhIGRvbWVzdGljIGNvcnBvcmF0aW9uIGluY29ycG8tCnJhdGVkIHB1 cnN1YW50IHRvIG9yIG90aGVyd2lzZSBzdWJqZWN0IHRvIHRoZSBub3QtZm9yLXByb2ZpdCBj b3Jwb3JhdGlvbgpsYXcsIGEgY2hhcml0YWJsZSBvcmdhbml6YXRpb24gcmVnaXN0ZXJlZCB3 aXRoIHRoZSBzZWNyZXRhcnkgb2Ygc3RhdGUsIGEKcmVsaWdpb3VzICBjb3Jwb3JhdGlvbiAg YXMgIGRlZmluZWQgIGluIHNlY3Rpb24gc2l4dHktc2l4IG9mIHRoZSBnZW5lcmFsCmNvbnN0 cnVjdGlvbiBsYXcsIGEgdHJ1c3RlZSBhcyBkZWZpbmVkIGluIHNlY3Rpb24gOC0xLjQgb2Yg dGhlICBlc3RhdGVzLApwb3dlcnMgIGFuZCB0cnVzdHMgbGF3LCBhbiBpbnN0aXR1dGlvbiBv ciBjb3Jwb3JhdGlvbiBmb3JtZWQgcHVyc3VhbnQgdG8KdGhlIGVkdWNhdGlvbiBsYXcsIGEg c3BlY2lhbCBhY3QgY29ycG9yYXRpb24gY3JlYXRlZCBwdXJzdWFudCB0byBjaGFwdGVyCmZv dXIgaHVuZHJlZCBzaXh0eS1laWdodCBvZiB0aGUgbGF3cyBvZiBlaWdodGVlbiBodW5kcmVk IG5pbmV0eS1uaW5lLCBhcwphbWVuZGVkLCBhIHNwZWNpYWwgIGFjdCAgY29ycG9yYXRpb24g IGZvcm1lZCAgcHVyc3VhbnQgIHRvICBjaGFwdGVyICB0d28KaHVuZHJlZCBmaWZ0eS1zaXgg b2YgdGhlIGxhd3Mgb2YgbmluZXRlZW4gaHVuZHJlZCBzZXZlbnRlZW4sIGFzIGFtZW5kZWQs CmEgY29ycG9yYXRpb24gYXV0aG9yaXplZCBwdXJzdWFudCB0byBhbiBhY3Qgb2YgY29uZ3Jl c3MgYXBwcm92ZWQgSmFudWFyeQpmaWZ0aCwgIG5pbmV0ZWVuIGh1bmRyZWQgZml2ZSwgKDMz IHN0YXQuIDU5OSksIGFzIGFtZW5kZWQsIGEgY29ycG9yYXRpb24KZXN0YWJsaXNoZWQgYnkg bWVyZ2VyIG9mIGNoYXJpdGFibGUgb3JnYW5pemF0aW9ucyBwdXJzdWFudCB0byAgYW4gIG9y ZGVyCm9mICB0aGUgc3VwcmVtZSBjb3VydCwgTmV3IFlvcmsgY291bnR5IGRhdGVkIEp1bHkg dHdlbnR5LWZpcnN0LCBuaW5ldGVlbgpodW5kcmVkIGVpZ2h0eS1zaXggYW5kIGZpbGVkIGlu IHRoZSBkZXBhcnRtZW50IG9mIHN0YXRlIG9uIEp1bHkgIHR3ZW50eS0KbmludGgsICBuaW5l dGVlbiAgaHVuZHJlZCBlaWdodHktc2l4LCBvciBhIGNvcnBvcmF0aW9uIGhhdmluZyB0YXgg ZXhlbXB0CnN0YXR1cyB1bmRlciBzZWN0aW9uIDUwMSAoYykgKDMpIG9mIHRoZSBVbml0ZWQg U3RhdGVzICBJbnRlcm5hbCAgUmV2ZW51ZQpDb2RlLCAgYW5kIHNoYWxsIGZ1cnRoZXIgYmUg ZGVlbWVkIHRvIG1lYW4gYW5kIGluY2x1ZGUgYW55IGZlZGVyYXRpb24gb2YKY2hhcml0YWJs ZSBvcmdhbml6YXRpb25zLgogIDYuICJPcGVyYXRvciIgbWVhbnMgYW55IHBlcnNvbiB3aG8g b3ducywgb3BlcmF0ZXMsIG9yIGNvbnRyb2xzIGEgcGxhY2UKb2YgZW50ZXJ0YWlubWVudCBv ciB3aG8gcHJvbW90ZXMgb3IgcHJvZHVjZXMgYW4gZW50ZXJ0YWlubWVudC4KICA3LiAiUGxh Y2Ugb2YgZW50ZXJ0YWlubWVudCIgbWVhbnMgYW55IHByaXZhdGVseSBvciBwdWJsaWNseSBv d25lZCAgYW5kCm9wZXJhdGVkIGVudGVydGFpbm1lbnQgZmFjaWxpdHkgc3VjaCBhcyBhIHRo ZWF0cmUsIHN0YWRpdW0sIGFyZW5hLCByYWNlLQp0cmFjaywgIG11c2V1bSwgIGFtdXNlbWVu dCAgcGFyaywgIG9yICBvdGhlciAgcGxhY2UgIHdoZXJlIHBlcmZvcm1hbmNlcywKY29uY2Vy dHMsIGV4aGliaXRzLCBhdGhsZXRpYyBnYW1lcyBvciBjb250ZXN0cyBhcmUgIGhlbGQgIGZv ciAgd2hpY2ggIGFuCmVudHJ5IGZlZSBpcyBjaGFyZ2VkLgogIDguICAiUGh5c2ljYWwgIHN0 cnVjdHVyZSIgIG1lYW5zIHRoZSBwbGFjZSBvZiBlbnRlcnRhaW5tZW50LCBvciBpbiB0aGUK Y2FzZSB3aGVyZSBhIHN0cnVjdHVyZSBlaXRoZXIgcGFydGlhbGx5IG9yIHdob2xseSBzdXJy b3VuZHMgdGhlIHBsYWNlIG9mCmVudGVydGFpbm1lbnQsIHN1Y2ggc3Vycm91bmRpbmcgc3Ry dWN0dXJlLgogIDkuICJSZXNhbGUiIG1lYW5zIGFueSBzYWxlIG9mIGEgdGlja2V0IG90aGVy IHRoYW4gYSBzYWxlIGJ5IHRoZSBvcGVyYS0KdG9yIG9yIHRoZSBvcGVyYXRvcmBzIGFnZW50 IHdobyBpcyBleHByZXNzbHkgYXV0aG9yaXplZCAgdG8gIG1ha2UgIGZpcnN0CnNhbGVzICBv ZiBzdWNoIHRpY2tldHMuIFJlc2FsZSBzaGFsbCBpbmNsdWRlIHNhbGVzIGJ5IGFueSBtZWFu cywgaW5jbHVkLQppbmcgaW4gcGVyc29uLCBvciBieSBtZWFucyBvZiB0ZWxlcGhvbmUsIG1h aWwsIGRlbGl2ZXJ5IHNlcnZpY2UsIGZhY3NpbS0KaWxlIG9yIG90aGVyIGVsZWN0cm9uaWMg bWVhbnMsIHdoZXJlIGVpdGhlciBidXllciBvciBzZWxsZXIgIGlzICBsb2NhdGVkCmluIHRo aXMgc3RhdGUuCiAgMTAuICAiVGlja2V0IiBtZWFucyBhbnkgZXZpZGVuY2Ugb2YgdGhlIHJp Z2h0IG9mIGVudHJ5IHRvIGFueSBwbGFjZSBvZgplbnRlcnRhaW5tZW50LgogICogTkIgRWZm ZWN0aXZlIHVudGlsIDk5LzA2LzAxCiAgKiBTIDI1LjAzLiBSZXNlbGxpbmcgb2YgdGlja2V0 cyBvZiBhZG1pc3Npb247IGxpY2Vuc2VzOyAgZmVlcy4gIDEuICBObwpwZXJzb24sICBmaXJt ICBvciAgY29ycG9yYXRpb24gc2hhbGwgcmVzZWxsIG9yIGVuZ2FnZSBpbiB0aGUgYnVzaW5l c3Mgb2YKcmVzZWxsaW5nIGFueSB0aWNrZXRzIG9mIGFkbWlzc2lvbiBvciBhbnkgb3RoZXIg ZXZpZGVuY2Ugb2YgdGhlIHJpZ2h0IG9mCmVudHJ5IHRvIGEgdGhlYXRyZSwgcGxhY2Ugb2Yg YW11c2VtZW50IG9yIGVudGVydGFpbm1lbnQsIG9yIG90aGVyIHBsYWNlcwp3aGVyZSAgcHVi bGljICBleGhpYml0aW9ucywgZ2FtZXMsIGNvbnRlc3RzIG9yIHBlcmZvcm1hbmNlcyBhcmUg aGVsZCwgb3IKb3duLCBjb25kdWN0IG9yIG1haW50YWluIGFueSBvZmZpY2UsIGJyYW5jaCBv ZmZpY2UsICBidXJlYXUsICBhZ2VuY3kgIG9yCnN1Yi1hZ2VuY3kgIGZvciBzdWNoIGJ1c2lu ZXNzIHdpdGhvdXQgaGF2aW5nIGZpcnN0IHByb2N1cmVkIGEgbGljZW5zZSBvcgpjZXJ0aWZp Y2F0ZSB0aGVyZWZvciBmcm9tIHRoZSBjb21taXNzaW9uZXIgb2YgbGljZW5zZXMgb2YgdGhl ICBwb2xpdGljYWwKc3ViZGl2aXNpb24gaW4gd2hpY2ggc3VjaCBwZXJzb24gaW50ZW5kcyB0 byBjb25kdWN0IHN1Y2ggYnVzaW5lc3MgYW5kIGlmCnRoZXJlICBiZSBubyBzdWNoIGNvbW1p c3Npb25lciwgdGhlbiB0aGUgY2hpZWYgZXhlY3V0aXZlIG9mZmljZXIgdGhlcmVvZgpzaGFs bCBiZSBkZWVtZWQgdG8gYmUgdGhlIGNvbW1pc3Npb25lciBmb3IgdGhlIHB1cnBvc2VzIG9m IHRoaXMgYXJ0aWNsZS4KQSBsaWNlbnNlIGZvciB0aGUgcHJpbmNpcGFsIG9mZmljZSBzaGFs bCBiZSBncmFudGVkIHVwb24gdGhlIHBheW1lbnQgIGJ5Cm9yICBvbiBiZWhhbGYgb2YgdGhl IGFwcGxpY2FudCBvZiBhIGZlZSBvZiB0d28gaHVuZHJlZCBkb2xsYXJzIGFuZCBzaGFsbApi ZSByZW5ld2VkIHVwb24gdGhlIHBheW1lbnQgb2YgYSBsaWtlIGZlZSBhbm51YWxseTsgIGFu ZCAgYSAgY2VydGlmaWNhdGUKc2hhbGwgIGJlICBncmFudGVkIGZvciBlYWNoIGJyYW5jaCBv ZmZpY2UsIGJ1cmVhdSwgYWdlbmN5IG9yIHN1Yi1hZ2VuY3ksCnVwb24gcGF5bWVudCBieSBv ciBvbiBiZWhhbGYgb2YgYW4gYXBwbGljYW50IG9mIGEgZmVlIG9mICBmaWZ0eSAgZG9sbGFy cwphbmQgIHNoYWxsICBiZSAgcmVuZXdlZCAgdXBvbiAgdGhlICBwYXltZW50IG9mIGEgbGlr ZSBmZWUgYW5udWFsbHkuIFN1Y2gKbGljZW5zZSBvciBjZXJ0aWZpY2F0ZSBzaGFsbCBub3Qg YmUgdHJhbnNmZXJyZWQgb3IgYXNzaWduZWQsICBleGNlcHQgIGJ5CnBlcm1pc3Npb24gIG9m IHN1Y2ggY29tbWlzc2lvbmVyLiBObyBjaGFuZ2UgaW4gdGhlIGxvY2F0aW9uIG9mIHRoZSBw cmVtLQppc2VzIGNvdmVyZWQgYnkgc3VjaCBsaWNlbnNlIG9yIGNlcnRpZmljYXRlIHNoYWxs ICBiZSAgbWFkZSwgIGV4Y2VwdCAgYnkKcGVybWlzc2lvbiAgb2YgIHN1Y2ggIGNvbW1pc3Np b25lciwgYW5kIHVwb24gdGhlIHBheW1lbnQgb2YgYSBmZWUgb2YgdGVuCmRvbGxhcnMuIFN1 Y2ggbGljZW5zZSBvciBjZXJ0aWZpY2F0ZSBzaGFsbCBydW4gdG8gdGhlIGZpcnN0IGRheSBv ZiBKYW51LQphcnkgbmV4dCBlbnN1aW5nIHRoZSBkYXRlIHRoZXJlb2YsIHVubGVzcyBzb29u ZXIgcmV2b2tlZCBieSBzdWNoIGNvbW1pcy0Kc2lvbmVyLiBTdWNoIGxpY2Vuc2Ugb3IgY2Vy dGlmaWNhdGUgc2hhbGwgIGJlICBncmFudGVkICB1cG9uICBhICB3cml0dGVuCmFwcGxpY2F0 aW9uICBzZXR0aW5nICBmb3J0aCAgc3VjaCAgaW5mb3JtYXRpb24gIGFzIHN1Y2ggY29tbWlz c2lvbmVyIG1heQpyZXF1aXJlIGluIG9yZGVyIHRvIGVuYWJsZSBoaW0gdG8gY2FycnkgaW50 byBlZmZlY3QgIHRoZSAgcHJvdmlzaW9ucyAgb2YKdGhpcyAgYXJ0aWNsZSAgYW5kICBzaGFs bCAgYmUgIGFjY29tcGFuaWVkIGJ5IHByb29mIHNhdGlzZmFjdG9yeSB0byBzdWNoCmNvbW1p c3Npb25lciBvZiB0aGUgbW9yYWwgY2hhcmFjdGVyIG9mICB0aGUgIGFwcGxpY2FudC4gIE5v ICBsaWNlbnNlICBvcgpjZXJ0aWZpY2F0ZSAgc2hhbGwgIGJlICBpc3N1ZWQgIGZvciBhbnkg b2ZmaWNlIG9yIGJyYW5jaCBvZmZpY2UsIGJ1cmVhdSwKYWdlbmN5IG9yIHN1Yi1hZ2VuY3kg dW5sZXNzIHN1Y2ggb2ZmaWNlIG9yIGJyYW5jaCBvZmZpY2UsIGJ1cmVhdSwgYWdlbmN5Cm9y IHN1Yi1hZ2VuY3kgc2hhbGwgYmUgYSBzdWl0YWJsZSBwbGFjZSBmb3IgdGhlIGNvbmR1Y3Qg b2Ygc2FpZCBidXNpbmVzcwphbmQgc2hhbGwgbWVldCB3aXRoIHRoZSBhcHByb3ZhbCBvZiBz dWNoIGNvbW1pc3Npb25lci4KICAyLiBUaGlzIHNlY3Rpb24gc2hhbGwgbm90IGFwcGx5IHRv IGFueSAgcGVyc29uLCAgZmlybSAgb3IgIGNvcnBvcmF0aW9uCndoaWNoICBwdXJjaGFzZXMg IGFueSB0aWNrZXRzIGFzIGRlZmluZWQgaW4gdGhpcyBzZWN0aW9uIHdpdGggdGhlIGludGVu dApvZiB1c2luZyB0aGUgdGlja2V0cyBzb2xlbHkgZm9yIHRoZWlyIG93biB1c2Ugb3IgdGhl IHVzZSBvZiB0aGVpciAgaW52aS0KdGVlcywgIGVtcGxveWVlcyBhbmQgYWdlbnRzIGFuZCBy ZXNlbGxzIHRoZW0gYXQgYSBwcmljZSBub3QgaW4gZXhjZXNzIG9mCnRoYXQgcGVybWl0dGVk IGJ5IHNlY3Rpb24gMjUuMTMgb2YgdGhpcyBhcnRpY2xlIHNob3VsZCB0aGV5IG5vIGxvbmdl ciBiZQphYmxlIHRvIHVzZSB0aGVtLgogICogTkIgRWZmZWN0aXZlIDk5LzA2LzAxCgogICog UyAyNS4wNS4gRXhlbXB0aW9ucy4gIDEuICBFeGNlcHQgIGFzICBwcm92aWRlZCBpbiBzdWJk aXZpc2lvbiB0d28gb2YKc2VjdGlvbiAyNS4wNyBhbmQgc2VjdGlvbiAyNS4xMSBvZiB0aGlz IGFydGljbGUsIHRoaXMgYXJ0aWNsZSBzaGFsbCAgbm90CmFwcGx5ICB0byAgYW55ICBwZXJz b24sICBmaXJtIG9yIGNvcnBvcmF0aW9uIHdoaWNoIHB1cmNoYXNlcyBhbnkgdGlja2V0cwp3 aXRoIHRoZSBpbnRlbnQgb2YgdXNpbmcgdGhlIHRpY2tldHMgc29sZWx5IGZvciB0aGVpciBv d24gdXNlIG9yIHRoZSB1c2UKb2YgdGhlaXIgaW52aXRlZXMsIGVtcGxveWVlcyBhbmQgYWdl bnRzIG9yIHdoaWNoICBwdXJjaGFzZXMgIHRpY2tldHMgIG9uCmJlaGFsZiAgb2YgIG90aGVy cyAgd2l0aCAgdGhlICBpbnRlbnQgIG9mIHJlc2VsbGluZyBzdWNoIHRpY2tldHMgdG8gc3Vj aApvdGhlcnMgd2l0aG91dCByZWFsaXppbmcgYSBwcm9maXQgdGhlcmVmcm9tLgogIDIuIEV4 Y2VwdCBhcyBwcm92aWRlZCBpbiBzZWN0aW9uIDI1LjExIG9mIHRoaXMgYXJ0aWNsZSwgIHRo aXMgIGFydGljbGUKc2hhbGwgIG5vdCBhcHBseSB0byBhbnkgbm90LWZvci1wcm9maXQgb3Jn YW5pemF0aW9uLCBvciBwZXJzb24gYWN0aW5nIG9uCmJlaGFsZiBvZiBzdWNoIG5vdC1mb3It cHJvZml0IG9yZ2FuaXphdGlvbiwgc28gbG9uZyBhcyBhbnkgcHJvZml0ICByZWFsLQppemVk ICBmcm9tICB0aWNrZXQgcmVzZWxsaW5nIGlzIHdob2xseSBkZWRpY2F0ZWQgdG8gdGhlIHB1 cnBvc2VzIG9mIHN1Y2gKbm90LWZvci1wcm9maXQgb3JnYW5pemF0aW9uLgogICogTkIgRWZm ZWN0aXZlIHVudGlsIDk5LzA2LzAxCiAgKiBTIDI1LjA1LiBUaWNrZXQgc3BlY3VsYXRvcnMu IEFueSBwZXJzb24gd2hvOiAgMS4gQ29uZHVjdHMgb24gIG9yICBpbgphbnkgIHN0cmVldCBp biBhIGNpdHkgb3IgaW4gdGhlIGNvdW50eSBvZiBOYXNzYXUgdGhlIGJ1c2luZXNzIG9mIHNl bGxpbmcKb3Igb2ZmZXJpbmcgZm9yIHNhbGUgYW55IHRpY2tldCBvZiBhZG1pc3Npb24gb3Ig YW55ICBvdGhlciAgZXZpZGVuY2UgIG9mCnRoZSAgcmlnaHQgIG9mICBlbnRyeSAgdG8gIGFu eSBwZXJmb3JtYW5jZSBvciBleGhpYml0aW9uIGluIG9yIGFib3V0IHRoZQpwcmVtaXNlcyBv ZiBhbnkgdGhlYXRyZSBvciBjb25jZXJ0ICBoYWxsLCAgcGxhY2UgIG9mICBwdWJsaWMgIGFt dXNlbWVudCwKY2lyY3VzIG9yIGNvbW1vbiBzaG93OyBvcgogIDIuICBTb2xpY2l0cyAgb24g b3IgaW4gYW55IHN0cmVldCBpbiBhIGNpdHkgb3IgaW4gdGhlIGNvdW50eSBvZiBOYXNzYXUK Ynkgd29yZHMsIHNpZ25zLCBjaXJjdWxhcnMgb3Igb3RoZXIgbWVhbnMgYW55ICBwZXJzb24g IHRvICBwdXJjaGFzZSAgYW55CnN1Y2ggdGlja2V0IG9yIG90aGVyIGV2aWRlbmNlIG9mIHRo ZSByaWdodCBvZiBlbnRyeTsgb3IKICAzLiAgSW4gb3IgZnJvbSBhbnkgYnVpbGRpbmcsIHN0 b3JlLCBzaG9wLCBib290aCwgeWFyZCwgZ2FyZGVuIG9yIGluIG9yCmZyb20gYW55IG9wZW5p bmcsIHdpbmRvdywgZG9vciwgaGFsbHdheSwgY29ycmlkb3IgIG9yICBpbiAgb3IgIGZyb20g IGFueQpwbGFjZSAgb2YgIGluZ3Jlc3Mgb3IgZWdyZXNzIHRvIG9yIGZyb20gYW55IGJ1aWxk aW5nLCBwbGFjZSBvZiBidXNpbmVzcywKc3RvcmUsIHNob3AsIGJvb3RoLCB5YXJkIG9yIGdh cmRlbiBpbiBhIGNpdHkgb3IgaW4gdGhlIGNvdW50eSBvZiAgTmFzc2F1CmluZGljYXRlcywg IGhvbGRzICBvdXQgb3Igb2ZmZXJzIGZvciBzYWxlIHRvIGFueSBwZXJzb24gb3IgcGVyc29u cyBvbiBvcgppbiB0aGUgc3RyZWV0IGJ5IHdvcmQgb2YgbW91dGgsIGNyeWluZywgY2FsbGlu Zywgc2hvdXRpbmcgb3Igb3RoZXIgbWVhbnMKdGhhdCBzdWNoIHRpY2tldCBvciAgb3RoZXIg IGV2aWRlbmNlICBvZiAgdGhlICByaWdodCAgb2YgIGVudHJ5ICBtYXkgIGJlCnB1cmNoYXNl ZCAgaW4gIHN1Y2ggIGJ1aWxkaW5nLCAgc3RvcmUsICBzaG9wLCBib290aCwgeWFyZCwgZ2Fy ZGVuIG9yIGFueQpvdGhlciBwbGFjZTsgb3IKICA0LiBJbiBvciBmcm9tIGFueSBzdWNoIHBs YWNlIG9yIHBsYWNlcyBpbiBhIGNpdHkgb3IgaW4gdGhlICBjb3VudHkgIG9mCk5hc3NhdSAg c29saWNpdHMgIGJ5ICB3b3JkICBvZiBtb3V0aCwgY3J5aW5nLCBjYWxsaW5nLCBzaG91dGlu ZyBvciBvdGhlcgptZWFucyBhbnkgcGVyc29uIG9uIG9yIGluIHRoZSBzdHJlZXQgdG8gIHB1 cmNoYXNlICBhbnkgIHN1Y2ggIHRpY2tldCAgb3IKb3RoZXIgZXZpZGVuY2Ugb2YgdGhlIHJp Z2h0IG9mIGVudHJ5LCBpcyBndWlsdHkgb2YgYSBtaXNkZW1lYW5vci4KICAqIE5CIEVmZmVj dGl2ZSA5OS8wNi8wMQoKICAqIFMgMjUuMDcuIFRpY2tldCAgcHJpY2VzLiAgMS4gIEV2ZXJ5 ICBvcGVyYXRvciAgb2YgIGEgcGxhY2Ugb2YgZW50ZXItCnRhaW5tZW50IHNoYWxsLCBpZiBh IHByaWNlIGJlIGNoYXJnZWQgZm9yIGFkbWlzc2lvbiAgdGhlcmV0bywgIHByaW50ICBvcgpl bmRvcnNlICBvbiAgdGhlICBmYWNlICBvZiAgZWFjaCBzdWNoIHRpY2tldCB0aGUgZXN0YWJs aXNoZWQgcHJpY2UuIFN1Y2gKb3BlcmF0b3Igc2hhbGwgbGlrZXdpc2UgYmUgcmVxdWlyZWQg dG8gcHJpbnQgb3IgZW5kb3JzZSBvbiAgZWFjaCAgdGlja2V0CnRoZSAgbWF4aW11bSBwcmVt aXVtIHByaWNlIGF0IHdoaWNoIHN1Y2ggdGlja2V0IG9yIG90aGVyIGV2aWRlbmNlIG9mIHRo ZQpyaWdodCBvZiBlbnRyeSBtYXkgYmUgcmVzb2xkIG9yIG9mZmVyZWQgZm9yIHJlc2FsZS4K ICAyLiBNYXhpbXVtIHByZW1pdW0gcHJpY2UuIEl0IHNoYWxsIGJlIHVubGF3ZnVsIGZvciBh bnkgcGVyc29uLCBmaXJtIG9yCmNvcnBvcmF0aW9uIHRvIHJlc2VsbCBvciBvZmZlciB0byBy ZXNlbGwgYW55ICB0aWNrZXQgIHRvICBhbnkgIHBsYWNlICBvZgplbnRlcnRhaW5tZW50IGZv ciBtb3JlIHRoYW4gdGhlIG1heGltdW0gcHJlbWl1bSBwcmljZS4KICAqIE5CIEVmZmVjdGl2 ZSB1bnRpbCA5OS8wNi8wMQogICogUyAyNS4wNy4gQm9uZC4gIFRoZSAgY29tbWlzc2lvbmVy ICBzaGFsbCByZXF1aXJlIHRoZSBhcHBsaWNhbnQgZm9yIGEKbGljZW5zZSB0byBmaWxlIHdp dGggdGhlIGFwcGxpY2F0aW9uIHRoZXJlZm9yIGEgYm9uZCBpbiBkdWUgZm9ybSB0byAgdGhl CnBlb3BsZSAgb2YgIHRoZSBwb2xpdGljYWwgc3ViZGl2aXNpb24gaW4gd2hpY2ggc3VjaCBs aWNlbnNlIGlzIGlzc3VlZCBpbgp0aGUgcGVuYWwgc3VtIG9mIG9uZSB0aG91c2FuZCBkb2xs YXJzLCB3aXRoIHR3byBvciBtb3JlIHN1ZmZpY2llbnQgc3VyZS0KdGllcyBvciBhIGR1bHkg YXV0aG9yaXplZCBzdXJldHkgY29tcGFueSwgd2hpY2ggYm9uZCBzaGFsbCAgYmUgIGFwcHJv dmVkCmJ5IHN1Y2ggY29tbWlzc2lvbmVyLiBFYWNoIHN1Y2ggYm9uZCBzaGFsbCBiZSBjb25k aXRpb25lZCB0aGF0IHRoZSBvYmxpLQpnb3IgIHdpbGwgIG5vdCAgYmUgIGd1aWx0eSAgb2Yg IGFueSBmcmF1ZCBvciBleHRvcnRpb24sIHdpbGwgbm90IHZpb2xhdGUKZGlyZWN0bHkgb3Ig aW5kaXJlY3RseSBhbnkgb2YgdGhlIHByb3Zpc2lvbnMgb2YgdGhpcyBhcnRpY2xlIG9yICBh bnkgIG9mCnRoZSAgcHJvdmlzaW9ucyBvZiB0aGUgbGljZW5zZSBvciBjZXJ0aWZpY2F0ZSBw cm92aWRlZCBmb3IgaW4gdGhpcyBhcnRpLQpjbGUsIHdpbGwgY29tcGx5IHdpdGggdGhlIHBy b3Zpc2lvbnMgb2YgdGhpcyBhcnRpY2xlIGFuZCAgd2lsbCAgcGF5ICBhbGwKZGFtYWdlcyAg b2NjYXNpb25lZCB0byBhbnkgcGVyc29uIGJ5IHJlYXNvbiBvZiBhbnkgbWlzc3RhdGVtZW50 LCBtaXNyZXAtCnJlc2VudGF0aW9uLCBmcmF1ZCBvciBkZWNlaXQgb3IgYW55IHVubGF3ZnVs IGFjdCAgb3IgIG9taXNzaW9uICBvZiAgc3VjaApvYmxpZ29yLCBoaXMgYWdlbnRzIG9yIGVt cGxveWVlcywgd2hpbGUgYWN0aW5nIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlaXIKZW1wbG95 bWVudCwgbWFkZSwgY29tbWl0dGVkIG9yIG9taXR0ZWQgaW4gY29ubmVjdGlvbiB3aXRoIHRo ZSBwcm92aXNpb25zCm9mICB0aGlzICBhcnRpY2xlIGluIHRoZSBidXNpbmVzcyBjb25kdWN0 ZWQgdW5kZXIgc3VjaCBsaWNlbnNlIG9yIGNhdXNlZApieSBhbnkgb3RoZXIgdmlvbGF0aW9u IG9mIHRoaXMgYXJ0aWNsZSBpbiBjYXJyeWluZyBvbiB0aGUgIGJ1c2luZXNzICBmb3IKd2hp Y2ggc3VjaCBsaWNlbnNlIGlzIGdyYW50ZWQuIFN1Y2ggY29tbWlzc2lvbmVyIHNoYWxsIGtl ZXAgYm9va3Mgd2hlcmUtCmluICBzaGFsbCAgYmUgZW50ZXJlZCBpbiBhbHBoYWJldGljYWwg b3JkZXIgYWxsIGxpY2Vuc2VzIGdyYW50ZWQgYW5kIGFsbApib25kcyByZWNlaXZlZCBieSBo aW0gYXMgcHJvdmlkZWQgZm9yIGluIHRoaXMgYXJ0aWNsZSwgdGhlIGRhdGUgIG9mICB0aGUK aXNzdWFuY2UgIG9mICBzdWNoICBsaWNlbnNlICBhbmQgIHRoZSBmaWxpbmcgb2Ygc3VjaCBi b25kcywgd2hpY2ggcmVjb3JkCnNoYWxsIGJlIG9wZW4gdG8gcHVibGljIGluc3BlY3Rpb24u ICBBICBzdWl0ICB0byAgcmVjb3ZlciAgb24gIHRoZSAgYm9uZApyZXF1aXJlZCB0byBiZSBm aWxlZCBieSB0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIGFydGljbGUgbWF5IGJlIGJyb3VnaHQg aW4KdGhlICBuYW1lICBvZiB0aGUgcGVyc29uIGRhbWFnZWQsIHVwb24gdGhlIGJvbmQgZGVw b3NpdGVkIHdpdGggdGhlIHBvbGktCnRpY2FsIHN1YmRpdmlzaW9uIGJ5IHN1Y2ggbGljZW5z ZWQgIHBlcnNvbiwgIGluICBhICBjb3VydCAgb2YgIGNvbXBldGVudApqdXJpc2RpY3Rpb24u IFRoZSBhbW91bnQgb2YgZGFtYWdlcyBjbGFpbWVkIGJ5IHRoZSBwbGFpbnRpZmYgYW5kIG5v dCB0aGUKcGVuYWx0eSAgbmFtZWQgaW4gdGhlIGJvbmQgc2hhbGwgZGV0ZXJtaW5lIHRoZSBq dXJpc2RpY3Rpb24gb2YgdGhlIGNvdXJ0CmluIHdoaWNoIHRoZSBhY3Rpb24gaXMgYnJvdWdo dC4gT25lIG9yIG1vcmUgcmVjb3ZlcmllcyBvciBwYXltZW50cyAgdXBvbgpzdWNoICBib25k IHNoYWxsIG5vdCB2aXRpYXRlIHRoZSBzYW1lIGJ1dCBzdWNoIGJvbmQgc2hhbGwgcmVtYWlu IGluIGZ1bGwKZm9yY2UgYW5kIGVmZmVjdCwgcHJvdmlkZWQsIGhvd2V2ZXIsIHRoYXQgdGhl IGFnZ3JlZ2F0ZSAgYW1vdW50ICBvZiAgYWxsCnN1Y2ggcmVjb3ZlcmllcyBvciBwYXltZW50 cyBzaGFsbCBub3QgZXhjZWVkIHRoZSBwZW5hbCBzdW0gdGhlcmVvZi4gVXBvbgp0aGUgIGNv bW1lbmNlbWVudCAgb2YgIGFueSBhY3Rpb24gb3IgYWN0aW9ucyBhZ2FpbnN0IHRoZSBzdXJl dHkgdXBvbiBhbnkKc3VjaCBib25kIGZvciBhIHN1bSBvciBzdW1zIGFnZ3JlZ2F0aW5nIG9y IGV4Y2VlZGluZyB0aGUgYW1vdW50IG9mICBzdWNoCmJvbmQgIHRoZSAgY29tbWlzc2lvbmVy ICBzaGFsbCByZXF1aXJlIGEgbmV3IGFuZCBhZGRpdGlvbmFsIGJvbmQgaW4gbGlrZQphbW91 bnQgYXMgdGhlIG9yaWdpbmFsIG9uZSwgd2hpY2ggc2hhbGwgYmUgZmlsZWQgd2l0aCAgdGhl ICBjb21taXNzaW9uZXIKd2l0aGluICB0aGlydHkgZGF5cyBhZnRlciB0aGUgZGVtYW5kIHRo ZXJlZm9yLiBGYWlsdXJlIHRvIGZpbGUgc3VjaCBib25kCndpdGhpbiBzdWNoIHBlcmlvZCBz aGFsbCBjb25zdGl0dXRlIGNhdXNlICBmb3IgIHRoZSAgcmV2b2NhdGlvbiAgb2YgIHRoZQps aWNlbnNlICB0aGVyZXRvZm9yZSAgaXNzdWVkIHRvIHRoZSBsaWNlbnNlZSB1cG9uIHdob20g c3VjaCBkZW1hbmQgc2hhbGwKaGF2ZSBiZWVuIG1hZGUuIEFueSBzdWl0IG9yICBhY3Rpb24g IGFnYWluc3QgIHRoZSAgc3VyZXR5ICBvbiAgYW55ICBib25kCnJlcXVpcmVkIGJ5IHRoZSBw cm92aXNpb25zIG9mIHRoaXMgc2VjdGlvbiBzaGFsbCBiZSBjb21tZW5jZWQgd2l0aGluIG9u ZQp5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gc2hhbGwgaGF2ZSBhY2NydWVkLgog ICogTkIgRWZmZWN0aXZlIDk5LzA2LzAxCgogICogUyAyNS4wOC4gQWRkaXRpb25hbCAgcHJp bnRpbmcgIG9uIHRpY2tldHMuIEV2ZXJ5IG9wZXJhdG9yIG9mIGEgcGxhY2UKb2YgZW50ZXJ0 YWlubWVudCBoYXZpbmcgYSBwZXJtYW5lbnQgc2VhdGluZyBjYXBhY2l0eSBpbiBleGNlc3Mg IG9mICBmaXZlCnRob3VzYW5kICBwZXJzb25zICBzaGFsbCwgIGlmICBhIHByaWNlIGJlIGNo YXJnZWQgZm9yIGFkbWlzc2lvbiB0aGVyZXRvLApwcmludCBvciBlbmRvcnNlIGluIGEgY2xl YXIgYW5kIGxlZ2libGUgbWFubmVyICBvbiAgZWFjaCAgdGlja2V0LCAgIlRoaXMKdGlja2V0 ICBtYXkgIG5vdCAgYmUgIHJlc29sZCBieSBhbiB1bmxpY2Vuc2VkIHZlbmRvciB3aXRoaW4g b25lIHRob3VzYW5kCmZlZXQgZnJvbSB0aGUgcGh5c2ljYWwgc3RydWN0dXJlIG9mIHRoaXMg cGxhY2UgIG9mICBlbnRlcnRhaW5tZW50ICB1bmRlcgpwZW5hbHR5IG9mIGxhdyIuCiAgKiBO QiBSZXBlYWxlZCA5OS8wNi8wMQoKICAqIFMgMjUuMDkuIFRpY2tldCAgc3BlY3VsYXRvcnMu ICAgIDEuICBBbnkgIHBlcnNvbiB3aG8gaW4gdmlvbGF0aW9uIG9mCnN1YmRpdmlzaW9uIHR3 byBvZiBzZWN0aW9uIDI1LjA3ICBhbmQgIHNlY3Rpb24gIDI1LjEzICBvZiAgdGhpcyAgYXJ0 aWNsZQp1bmxhd2Z1bGx5ICByZXNlbGxzICBvciBvZmZlcnMgdG8gcmVzZWxsIG9yIHNvbGlj aXRzIHRoZSBwdXJjaGFzZSBvZiBhbnkKdGlja2V0IHRvIGFueSBwbGFjZSBvZiBlbnRlcnRh aW5tZW50IHNoYWxsIGJlIGd1aWx0eSAgb2YgIHRpY2tldCAgc3BlY3UtCmxhdGlvbi4KICAy LiAgQW55ICBwZXJzb24sIGZpcm0gb3IgY29ycG9yYXRpb24gd2hpY2ggaW4gdmlvbGF0aW9u IG9mIHN1YmRpdmlzaW9uCnR3byBvZiBzZWN0aW9uIDI1LjA3ICBhbmQgIHNlY3Rpb24gIDI1 LjEzICBvZiAgdGhpcyAgYXJ0aWNsZSAgdW5sYXdmdWxseQpyZXNlbGxzLCAgb2ZmZXJzICB0 byByZXNlbGwsIG9yIHB1cmNoYXNlcyB3aXRoIHRoZSBpbnRlbnQgdG8gcmVzZWxsIGZpdmUK b3IgbW9yZSB0aWNrZXRzIHRvIGFueSBwbGFjZSBvZiBlbnRlcnRhaW5tZW50IHNoYWxsIGJl IGd1aWx0eSBvZiAgYWdncmEtCnZhdGVkIHRpY2tldCBzcGVjdWxhdGlvbi4KICAqIE5CIEVm ZmVjdGl2ZSB1bnRpbCA5OS8wNi8wMQogICogUyAyNS4wOS4gU3VzcGVuc2lvbiBvciByZXZv Y2F0aW9uIG9mIGxpY2Vuc2VzLiBJbiB0aGUgZXZlbnQgdGhhdCBhbnkKbGljZW5zZWUgIHNo YWxsIGJlIGd1aWx0eSBvZiBhbnkgZnJhdWQgb3IgbWlzcmVwcmVzZW50YXRpb24gb3Igb3Ro ZXJ3aXNlCnZpb2xhdGUgYW55IG9mIHRoZSBwcm92aXNpb25zIG9mIHRoaXMgYXJ0aWNsZSBv ciBhbnkgb3RoZXIgbGF3IG9yICBsb2NhbApvcmRpbmFuY2UsICBzdWNoICBjb21taXNzaW9u ZXIgIHNoYWxsIGJlIGVtcG93ZXJlZCwgb24gZ2l2aW5nIGZpdmUgZGF5c2AKbm90aWNlIGJ5 IG1haWwgdG8gc3VjaCBsaWNlbnNlZSwgIGFuZCAgb24gIGFmZm9yZGluZyAgc3VjaCAgbGlj ZW5zZWUgIGFuCm9wcG9ydHVuaXR5IHRvIGFuc3dlciB0aGUgY2hhcmdlcyBtYWRlIGFnYWlu c3QgaGltLCB0byBzdXNwZW5kIG9yIHJldm9rZQp0aGUgbGljZW5zZSBpc3N1ZWQgdG8gaGlt LgogICogTkIgRWZmZWN0aXZlIDk5LzA2LzAxCgogICogUyAyNS4xMS4gUmVzYWxlcyAgb2Yg IHRpY2tldHMgd2l0aGluIG9uZSB0aG91c2FuZCBmZWV0IG9mIGEgcGxhY2Ugb2YKZW50ZXJ0 YWlubWVudCBoYXZpbmcgYSBwZXJtYW5lbnQgc2VhdGluZyAgY2FwYWNpdHkgIGluICBleGNl c3MgIG9mICBmaXZlCnRob3VzYW5kICBwZXJzb25zLiAgMS4gIE5vICBwZXJzb24sICBmaXJt LCBjb3Jwb3JhdGlvbiBvciBub3QtZm9yLXByb2ZpdApvcmdhbml6YXRpb24gc2hhbGwgcmVz ZWxsLCBvZmZlciB0byByZXNlbGwgb3Igc29saWNpdCB0aGUgcmVzYWxlIG9mICBhbnkKdGlj a2V0IHRvIGFueSBwbGFjZSBvZiBlbnRlcnRhaW5tZW50IGhhdmluZyBhIHBlcm1hbmVudCBz ZWF0aW5nIGNhcGFjaXR5CmluICBleGNlc3MgIG9mICBmaXZlICB0aG91c2FuZCBwZXJzb25z IHdpdGhpbiBvbmUgdGhvdXNhbmQgZmVldCBmcm9tIHRoZQpwaHlzaWNhbCBzdHJ1Y3R1cmUg b2Ygc3VjaCBwbGFjZSBvZiBlbnRlcnRhaW5tZW50ICB1bmxlc3MgIHN1Y2ggIHBlcnNvbiwK ZmlybSwgIG9yICBjb3Jwb3JhdGlvbiAgaXMgIGxhd2Z1bGx5ICByZXNlbGxpbmcgIHRpY2tl dHMgZnJvbSBhIGxvY2F0aW9uCmxpY2Vuc2VkIHB1cnN1YW50IHRvIHNlY3Rpb24gMjUuMTMg b2YgdGhpcyBhcnRpY2xlLgogIDIuIE5vdHdpdGhzdGFuZGluZyBzdWJkaXZpc2lvbiBvbmUg b2YgdGhpcyBzZWN0aW9uLCAgYW4gIG9wZXJhdG9yICBtYXkKZGVzaWduYXRlICBhbiAgYXJl YSAgd2l0aGluICB0aGUgIHByb3BlcnR5ICBsaW5lIG9mIHN1Y2ggcGxhY2Ugb2YgZW50ZXIt CnRhaW5tZW50IGhhdmluZyBhIHBlcm1hbmVudCBzZWF0aW5nIGNhcGFjaXR5IGluIGV4Y2Vz cyBvZiBmaXZlICB0aG91c2FuZApwZXJzb25zIGZvciB0aGUgbGF3ZnVsIHJlc2FsZSBvZiB0 aWNrZXRzIG9ubHkgdG8gZXZlbnRzIGF0IHN1Y2ggcGxhY2Ugb2YKZW50ZXJ0YWlubWVudCAg YnkgYW55IHBlcnNvbiwgZmlybSwgY29ycG9yYXRpb24gb3Igbm90LWZvci1wcm9maXQgb3Jn YW4tCml6YXRpb24gd2hpY2ggcHVyY2hhc2VkICB0aGUgIHRpY2tldHMgIGZvciAgdGhlICBw dXJwb3NlcyAgZGVzY3JpYmVkICBpbgpzZWN0aW9uIDI1LjA1IG9mIHRoaXMgYXJ0aWNsZSBh bmQgaXMgbm8gbG9uZ2VyIGFibGUgdG8gdXNlIHRoZW0uCiAgKiBOQiBFZmZlY3RpdmUgdW50 aWwgOTkvMDYvMDEKICAqIFMgMjUuMTEuIFN1cGVydmlzaW9uICBhbmQgIHJlZ3VsYXRpb24u ICBTdWNoIGNvbW1pc3Npb25lciBzaGFsbCBoYXZlCnBvd2VyLCB1cG9uIGNvbXBsYWludCBv ZiBhbnkgY2l0aXplbiBvciBvbiBoaXMgb3duIGluaXRpYXRpdmUsIHRvIGludmVzLQp0aWdh dGUgdGhlIGJ1c2luZXNzLCBidXNpbmVzcyBwcmFjdGljZXMgYW5kIGJ1c2luZXNzIG1ldGhv ZHMgb2YgYW55IHN1Y2gKbGljZW5zZWUgaWYgaW4gdGhlIG9waW5pb24gb2Ygc3VjaCBjb21t aXNzaW9uZXIgIHN1Y2ggIGludmVzdGlnYXRpb24gIGlzCndhcnJhbnRlZC4gIEVhY2ggIHN1 Y2ggIGxpY2Vuc2VlICBzaGFsbCAgYmUgIG9ibGlnZWQsIG9uIHJlcXVlc3Qgb2Ygc3VjaApj b21taXNzaW9uZXIsIHRvIHN1cHBseSBzdWNoIGluZm9ybWF0aW9uIGFzIG1heSBiZSAgcmVx dWlyZWQgIGNvbmNlcm5pbmcKaGlzIGJ1c2luZXNzLCBidXNpbmVzcyBwcmFjdGljZXMgb3Ig YnVzaW5lc3MgbWV0aG9kcy4gRWFjaCBvd25lciwgb3BlcmEtCnRvciwgIHByb2R1Y2VyLCAg bWFuYWdlciBvciBlbXBsb3llZSBvZiBhbnkgdGhlYXRyZSwgdGhlYXRyaWNhbCBjb21wYW55 LApwbGFjZSBvZiBhbXVzZW1lbnQgb3IgZW50ZXJ0YWlubWVudCwgb3Igb3RoZXIgcGxhY2Ug d2hlcmUgcHVibGljIGV4aGliaS0KdGlvbnMsIGdhbWVzLCBjb250ZXN0cyBvciBwZXJmb3Jt YW5jZXMgYXJlIGhlbGQgc2hhbGwgYWxzbyAgYmUgIG9ibGlnZWQsCm9uICByZXF1ZXN0ICBv ZiAgc3VjaCBjb21taXNzaW9uZXIsIHRvIHN1cHBseSBzdWNoIGluZm9ybWF0aW9uIGFzIG1h eSBiZQpyZXF1aXJlZCBjb25jZXJuaW5nIHRoZSBidXNpbmVzcywgYnVzaW5lc3MgcHJhY3Rp Y2VzIG9yIGJ1c2luZXNzIG1ldGhvZHMKb2YgYW55IGxpY2Vuc2VlLiBTdWNoIGNvbW1pc3Np b25lciwgaW4gIGVuZm9yY2luZyAgdGhpcyAgYXJ0aWNsZSwgIHNoYWxsCmhhdmUgdGhlIHBv d2VyIHRvIHByb211bGdhdGUgc3VjaCBydWxlcyBhbmQgcmVndWxhdGlvbnMgYXMgbWF5IGJl IGRlZW1lZApuZWNlc3NhcnkgZm9yIHRoZSBwcm90ZWN0aW9uIG9mIHRoZSBwdWJsaWMuCiAg KiBOQiBFZmZlY3RpdmUgOTkvMDYvMDEKCiAgKiBTIDI1LjEzLiBMaWNlbnNpbmcgIG9mICB0 aWNrZXQgIHJlc2VsbGVycy4gTm8gcGVyc29uLCBmaXJtIG9yIGNvcnBvLQpyYXRpb24gc2hh bGwgcmVzZWxsIG9yIGVuZ2FnZSBpbiB0aGUgYnVzaW5lc3Mgb2YgcmVzZWxsaW5nICBhbnkg IHRpY2tldHMKdG8gIGEgIHBsYWNlICBvZiAgZW50ZXJ0YWlubWVudCAgb3Igb3duLCBjb25k dWN0IG9yIG1haW50YWluIGFueSBvZmZpY2UsCmJyYW5jaCBvZmZpY2UsIGJ1cmVhdSwgYWdl bmN5IG9yIHN1Yi1hZ2VuY3kgZm9yICBzdWNoICBidXNpbmVzcyAgd2l0aG91dApoYXZpbmcg IGZpcnN0ICBwcm9jdXJlZCAgYSAgbGljZW5zZSAgb3IgY2VydGlmaWNhdGUgZm9yIGVhY2gg bG9jYXRpb24gYXQKd2hpY2ggYnVzaW5lc3Mgd2lsbCBiZSBjb25kdWN0ZWQgZnJvbSB0aGUg Y29tbWlzc2lvbmVyICBvZiAgbGljZW5zZXMgIG9mCnRoZSAgcG9saXRpY2FsICBzdWJkaXZp c2lvbiBpbiB3aGljaCBzdWNoIHBlcnNvbiBpbnRlbmRzIHRvIGNvbmR1Y3Qgc3VjaApidXNp bmVzcy4gQSBsaWNlbnNlIGZvciB0aGUgcHJpbmNpcGFsIG9mZmljZSBzaGFsbCBiZSBncmFu dGVkICB1cG9uICB0aGUKcGF5bWVudCBieSBvciBvbiBiZWhhbGYgb2YgdGhlIGFwcGxpY2Fu dCBvZiBhIGZlZSBvZiB0d28gaHVuZHJlZCBkb2xsYXJzCmFuZCAgc2hhbGwgIGJlICByZW5l d2VkICB1cG9uICB0aGUgcGF5bWVudCBvZiBhIGxpa2UgZmVlIGFubnVhbGx5OyBhbmQgYQpj ZXJ0aWZpY2F0ZSBzaGFsbCBiZSAgZ3JhbnRlZCAgYnkgIHN1Y2ggIGNvbW1pc3Npb25lciAg Zm9yICBlYWNoICBicmFuY2gKb2ZmaWNlLCAgYnVyZWF1LCAgYWdlbmN5IG9yIHN1Yi1hZ2Vu Y3kgb2YgdGhlIHByaW5jaXBhbCwgdXBvbiBwYXltZW50IGJ5Cm9yIG9uIGJlaGFsZiBvZiBh biBhcHBsaWNhbnQgb2YgYSBmZWUgb2YgIGZpZnR5ICBkb2xsYXJzICBhbmQgIHNoYWxsICBi ZQpyZW5ld2VkIHVwb24gdGhlIHBheW1lbnQgb2YgYSBsaWtlIGZlZSBhbm51YWxseS4gU3Vj aCBsaWNlbnNlIG9yIGNlcnRpZi0KaWNhdGUgc2hhbGwgbm90IGJlIHRyYW5zZmVycmVkIG9y IGFzc2lnbmVkLCBleGNlcHQgYnkgcGVybWlzc2lvbiBvZiBzdWNoCmNvbW1pc3Npb25lci4g IE5vIGNoYW5nZSBpbiB0aGUgbG9jYXRpb24gb2YgdGhlIHByZW1pc2VzIGNvdmVyZWQgYnkg c3VjaApsaWNlbnNlIG9yIGNlcnRpZmljYXRlIHNoYWxsIGJlICBtYWRlLCAgZXhjZXB0ICBi eSAgcGVybWlzc2lvbiAgb2YgIHN1Y2gKY29tbWlzc2lvbmVyLCBhbmQgdXBvbiB0aGUgcGF5 bWVudCBvZiBhIGZlZSBvZiB0ZW4gZG9sbGFycy4gU3VjaCBsaWNlbnNlCm9yICBjZXJ0aWZp Y2F0ZSAgc2hhbGwgIHJ1biB0byB0aGUgZmlyc3QgZGF5IG9mIEphbnVhcnkgbmV4dCBlbnN1 aW5nIHRoZQpkYXRlIHRoZXJlb2YsIHVubGVzcyBzb29uZXIgcmV2b2tlZCBieSBzdWNoIGNv bW1pc3Npb25lci4gIFN1Y2ggIGxpY2Vuc2UKb3IgY2VydGlmaWNhdGUgc2hhbGwgYmUgZ3Jh bnRlZCB1cG9uIGEgd3JpdHRlbiBhcHBsaWNhdGlvbiBzZXR0aW5nIGZvcnRoCnN1Y2ggaW5m b3JtYXRpb24gYXMgc3VjaCBjb21taXNzaW9uZXIgbWF5IHJlcXVpcmUgaW4gb3JkZXIgdG8g ZW5hYmxlIGhpbQpvciAgaGVyIHRvIGNhcnJ5IGludG8gZWZmZWN0IHRoZSBwcm92aXNpb25z IG9mIHRoaXMgYXJ0aWNsZSBhbmQgc2hhbGwgYmUKYWNjb21wYW5pZWQgYnkgcHJvb2Ygc2F0 aXNmYWN0b3J5IHRvICBzdWNoICBjb21taXNzaW9uZXIgIG9mICB0aGUgIG1vcmFsCmNoYXJh Y3RlciAgb2YgIHRoZSBhcHBsaWNhbnQuICBObyBsaWNlbnNlIG9yIGNlcnRpZmljYXRlIHNo YWxsIGJlIGlzc3VlZApmb3IgYW55IG9mZmljZSBvciBicmFuY2ggb2ZmaWNlLCBidXJlYXUs ICBhZ2VuY3kgIG9yICBzdWItYWdlbmN5ICB1bmxlc3MKc3VjaCAgb2ZmaWNlICBvciAgYnJh bmNoIG9mZmljZSwgYnVyZWF1LCBhZ2VuY3kgb3Igc3ViLWFnZW5jeSBzaGFsbCBiZSBhCnN1 aXRhYmxlIHBsYWNlIGZvciB0aGUgY29uZHVjdCBvZiBzYWlkIGJ1c2luZXNzIGFuZCBzaGFs bCBtZWV0IHdpdGggIHRoZQphcHByb3ZhbCBvZiBzdWNoIGNvbW1pc3Npb25lci4KICAqIE5C IEVmZmVjdGl2ZSB1bnRpbCA5OS8wNi8wMQogICogUyAyNS4xMy4gUHJpbnRpbmcgcHJpY2Ug b24gdGlja2V0LiBFdmVyeSBwZXJzb24sIGZpcm0gb3IgY29ycG9yYXRpb24Kd2hvICBvd25z LCAgb3BlcmF0ZXMgb3IgY29udHJvbHMgYSB0aGVhdHJlLCBwbGFjZSBvZiBhbXVzZW1lbnQg b3IgZW50ZXItCnRhaW5tZW50LCBvciBvdGhlciBwbGFjZSB3aGVyZSBwdWJsaWMgZXhoaWJp dGlvbnMsICBnYW1lcywgIGNvbnRlc3RzICBvcgpwZXJmb3JtYW5jZXMgIGFyZSBoZWxkIHNo YWxsLCBpZiBhIHByaWNlIGJlIGNoYXJnZWQgZm9yIGFkbWlzc2lvbiB0aGVyZS0KdG8sIHBy aW50IG9uIHRoZSBmYWNlIG9mIGVhY2ggc3VjaCB0aWNrZXQgb3Igb3RoZXIgZXZpZGVuY2Ug b2YgdGhlIHJpZ2h0Cm9mIGVudHJ5IHRoZSBwcmljZSBjaGFyZ2VkIHRoZXJlZm9yIGJ5IHN1 Y2ggcGVyc29uLCBmaXJtIG9yIGNvcnBvcmF0aW9uLgpTdWNoIHBlcnNvbiwgZmlybSBvciBj b3Jwb3JhdGlvbiBzaGFsbCBsaWtld2lzZSBiZSByZXF1aXJlZCB0byBwcmludCAgb3IKZW5k b3JzZSAgdGhlcmVvbiAgdGhlICBtYXhpbXVtICBwcmVtaXVtIChub3QgdG8gZXhjZWVkIHR3 byBkb2xsYXJzLCBwbHVzCmxhd2Z1bCB0YXhlcyksIGF0IHdoaWNoIHN1Y2ggdGlja2V0IG9y IG90aGVyIGV2aWRlbmNlIG9mICB0aGUgIHJpZ2h0ICBvZgplbnRyeSAgbWF5IGJlIHJlc29s ZCBvciBvZmZlcmVkIGZvciByZXNhbGUuIEl0IHNoYWxsIGJlIHVubGF3ZnVsIGZvciBhbnkK cGVyc29uLCBmaXJtIG9yIGNvcnBvcmF0aW9uIHRvIHJlc2VsbCBvciBvZmZlciB0byByZXNl bGwgc3VjaCB0aWNrZXQgIG9yCm90aGVyICBldmlkZW5jZSAgb2YgdGhlIHJpZ2h0IG9mIGVu dHJ5IGF0IGFueSBwcmVtaXVtIG9yIHByaWNlIGluIGV4Y2VzcwpvZiBzdWNoIG1heGltdW0g cHJlbWl1bSBwcmludGVkIG9yIGVuZG9yc2VkIHRoZXJlb24sIHBsdXMgbGF3ZnVsICB0YXhl cywKb3IgIHNvICB0aGF0ICB0aGUgIHVsdGltYXRlICBwcmljZSB0byB0aGUgcHVyY2hhc2Vy IG9mIHN1Y2ggdGlja2V0IHNoYWxsCmV4Y2VlZCBhIHN1bSBpbiBleGNlc3Mgb2YgdHdvIGRv bGxhcnMgb3ZlciBhbmQgYWJvdmUgdGhlIG9yaWdpbmFsICBwcmljZQpjaGFyZ2VkICBmb3Ig IGFkbWlzc2lvbiAgYXMgIHByaW50ZWQgIG9uIHRoZSBmYWNlIG9mIGVhY2ggc3VjaCB0aWNr ZXQgb3IKb3RoZXIgZXZpZGVuY2Ugb2YgdGhlIHJpZ2h0IG9mIGVudHJ5LCBwbHVzIGxhd2Z1 bCB0YXhlcy4KICAqIE5CIEVmZmVjdGl2ZSA5OS8wNi8wMQoKICAqIFMgMjUuMTUuIEJvbmQu ICBUaGUgIGNvbW1pc3Npb25lciAgc2hhbGwgcmVxdWlyZSB0aGUgYXBwbGljYW50IGZvciBh CmxpY2Vuc2UgdG8gZmlsZSB3aXRoIHRoZSBhcHBsaWNhdGlvbiB0aGVyZWZvciBhIGJvbmQg aW4gZHVlIGZvcm0gdG8gIHRoZQpwZW9wbGUgIG9mICB0aGUgcG9saXRpY2FsIHN1YmRpdmlz aW9uIGluIHdoaWNoIHN1Y2ggbGljZW5zZSBpcyBpc3N1ZWQgaW4KdGhlIHBlbmFsIHN1bSBv ZiBvbmUgdGhvdXNhbmQgZG9sbGFycywgd2l0aCB0d28gb3IgbW9yZSBzdWZmaWNpZW50IHN1 cmUtCnRpZXMgb3IgYSBkdWx5IGF1dGhvcml6ZWQgc3VyZXR5IGNvbXBhbnksIHdoaWNoIGJv bmQgc2hhbGwgIGJlICBhcHByb3ZlZApieSBzdWNoIGNvbW1pc3Npb25lci4gRWFjaCBzdWNo IGJvbmQgc2hhbGwgYmUgY29uZGl0aW9uZWQgdGhhdCB0aGUgb2JsaS0KZ29yICB3aWxsICBu b3QgIGJlICBndWlsdHkgIG9mICBhbnkgZnJhdWQgb3IgZXh0b3J0aW9uLCB3aWxsIG5vdCB2 aW9sYXRlCmRpcmVjdGx5IG9yIGluZGlyZWN0bHkgYW55IG9mIHRoZSBwcm92aXNpb25zIG9m IHRoaXMgYXJ0aWNsZSBvciAgYW55ICBvZgp0aGUgIHByb3Zpc2lvbnMgb2YgdGhlIGxpY2Vu c2Ugb3IgY2VydGlmaWNhdGUgcHJvdmlkZWQgZm9yIGluIHRoaXMgYXJ0aS0KY2xlLCB3aWxs IGNvbXBseSB3aXRoIHRoZSBwcm92aXNpb25zIG9mIHRoaXMgYXJ0aWNsZSBhbmQgIHdpbGwg IHBheSAgYWxsCmRhbWFnZXMgIG9jY2FzaW9uZWQgdG8gYW55IHBlcnNvbiBieSByZWFzb24g b2YgYW55IG1pc3N0YXRlbWVudCwgbWlzcmVwLQpyZXNlbnRhdGlvbiwgZnJhdWQgb3IgZGVj ZWl0IG9yIGFueSB1bmxhd2Z1bCBhY3QgIG9yICBvbWlzc2lvbiAgb2YgIHN1Y2gKb2JsaWdv ciwgIGhpcyAgb3IgaGVyIGFnZW50cyBvciBlbXBsb3llZXMsIHdoaWxlIGFjdGluZyB3aXRo aW4gdGhlIHNjb3BlCm9mIHRoZWlyIGVtcGxveW1lbnQsIG1hZGUsIGNvbW1pdHRlZCBvciBv bWl0dGVkIGluIGNvbm5lY3Rpb24gIHdpdGggIHRoZQpwcm92aXNpb25zICBvZiB0aGlzIGFy dGljbGUgaW4gdGhlIGJ1c2luZXNzIGNvbmR1Y3RlZCB1bmRlciBzdWNoIGxpY2Vuc2UKb3Ig Y2F1c2VkIGJ5IGFueSBvdGhlciB2aW9sYXRpb24gb2YgdGhpcyAgYXJ0aWNsZSAgaW4gIGNh cnJ5aW5nICBvbiAgdGhlCmJ1c2luZXNzIGZvciB3aGljaCBzdWNoIGxpY2Vuc2UgaXMgZ3Jh bnRlZC4gU3VjaCBjb21taXNzaW9uZXIgc2hhbGwga2VlcApib29rcyB3aGVyZWluIHNoYWxs IGJlIGVudGVyZWQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyIGFsbCBsaWNlbnNlcyBncmFudC0K ZWQgIGFuZCAgYWxsICBib25kcyByZWNlaXZlZCBieSBoaW0gYXMgcHJvdmlkZWQgZm9yIGlu IHRoaXMgYXJ0aWNsZSwgdGhlCmRhdGUgb2YgdGhlIGlzc3VhbmNlIG9mIHN1Y2ggbGljZW5z ZSBhbmQgdGhlIGZpbGluZyBvZiBzdWNoIGJvbmRzLCB3aGljaApyZWNvcmQgc2hhbGwgYmUg b3BlbiB0byBwdWJsaWMgaW5zcGVjdGlvbi4gQSBzdWl0IHRvIHJlY292ZXIgb24gdGhlIGJv bmQKcmVxdWlyZWQgdG8gYmUgZmlsZWQgYnkgdGhlIHByb3Zpc2lvbnMgb2YgdGhpcyBhcnRp Y2xlIG1heSBiZSBicm91Z2h0IGluCnRoZSBuYW1lIG9mIHRoZSBwZXJzb24gZGFtYWdlZCwg dXBvbiB0aGUgYm9uZCBkZXBvc2l0ZWQgd2l0aCAgdGhlICBwb2xpLQp0aWNhbCAgc3ViZGl2 aXNpb24gIGJ5ICBzdWNoICBsaWNlbnNlZCAgcGVyc29uLCAgaW4gYSBjb3VydCBvZiBjb21w ZXRlbnQKanVyaXNkaWN0aW9uLiBUaGUgYW1vdW50IG9mIGRhbWFnZXMgY2xhaW1lZCBieSB0 aGUgcGxhaW50aWZmIGFuZCBub3QgdGhlCnBlbmFsdHkgbmFtZWQgaW4gdGhlIGJvbmQgc2hh bGwgZGV0ZXJtaW5lIHRoZSBqdXJpc2RpY3Rpb24gb2YgdGhlICBjb3VydAppbiAgd2hpY2gg dGhlIGFjdGlvbiBpcyBicm91Z2h0LiBPbmUgb3IgbW9yZSByZWNvdmVyaWVzIG9yIHBheW1l bnRzIHVwb24Kc3VjaCBib25kIHNoYWxsIG5vdCB2aXRpYXRlIHRoZSBzYW1lIGJ1dCBzdWNo IGJvbmQgc2hhbGwgcmVtYWluIGluICBmdWxsCmZvcmNlICBhbmQgIGVmZmVjdCwgIHByb3Zp ZGVkLCBob3dldmVyLCB0aGF0IHRoZSBhZ2dyZWdhdGUgYW1vdW50IG9mIGFsbApzdWNoIHJl Y292ZXJpZXMgb3IgcGF5bWVudHMgc2hhbGwgbm90IGV4Y2VlZCB0aGUgcGVuYWwgc3VtIHRo ZXJlb2YuIFVwb24KdGhlIGNvbW1lbmNlbWVudCBvZiBhbnkgYWN0aW9uIG9yIGFjdGlvbnMg YWdhaW5zdCB0aGUgIHN1cmV0eSAgdXBvbiAgYW55CnN1Y2ggIGJvbmQgZm9yIGEgc3VtIG9y IHN1bXMgYWdncmVnYXRpbmcgb3IgZXhjZWVkaW5nIHRoZSBhbW91bnQgb2Ygc3VjaApib25k IHRoZSBjb21taXNzaW9uZXIgc2hhbGwgcmVxdWlyZSBhIG5ldyBhbmQgYWRkaXRpb25hbCAg Ym9uZCAgaW4gIGxpa2UKYW1vdW50ICBhcyAgdGhlIG9yaWdpbmFsIG9uZSwgd2hpY2ggc2hh bGwgYmUgZmlsZWQgd2l0aCB0aGUgY29tbWlzc2lvbmVyCndpdGhpbiB0aGlydHkgZGF5cyBh ZnRlciB0aGUgZGVtYW5kIHRoZXJlZm9yLiBGYWlsdXJlIHRvIGZpbGUgc3VjaCAgYm9uZAp3 aXRoaW4gIHN1Y2ggIHBlcmlvZCAgc2hhbGwgIGNvbnN0aXR1dGUgIGNhdXNlIGZvciB0aGUg cmV2b2NhdGlvbiBvZiB0aGUKbGljZW5zZSBwdXJzdWFudCB0byBzZWN0aW9uIDI1LjMxIG9m IHRoaXMgYXJ0aWNsZSB0aGVyZXRvZm9yZSBpc3N1ZWQgIHRvCnRoZSAgbGljZW5zZWUgIHVw b24gIHdob20gIHN1Y2ggZGVtYW5kIHNoYWxsIGhhdmUgYmVlbiBtYWRlLiBBbnkgc3VpdCBv cgphY3Rpb24gYWdhaW5zdCB0aGUgc3VyZXR5IG9uIGFueSBib25kIHJlcXVpcmVkIGJ5IHRo ZSBwcm92aXNpb25zIG9mIHRoaXMKc2VjdGlvbiBzaGFsbCBiZSBjb21tZW5jZWQgd2l0aGlu IG9uZSB5ZWFyIGFmdGVyICB0aGUgIGNhdXNlICBvZiAgYWN0aW9uCnNoYWxsIGhhdmUgYWNj cnVlZC4KICAqIE5CIEVmZmVjdGl2ZSB1bnRpbCA5OS8wNi8wMQogICogUyAyNS4xNS4gUG9z dGluZyAgb2YgIGxpY2Vuc2UgIG9yICBjZXJ0aWZpY2F0ZS4gSW1tZWRpYXRlbHkgdXBvbiB0 aGUKcmVjZWlwdCBvZiB0aGUgbGljZW5zZSBvciBjZXJ0aWZpY2F0ZSBpc3N1ZWQgcHVyc3Vh bnQgdG8gdGhpcyBhcnRpY2xlIGJ5CnN1Y2ggY29tbWlzc2lvbmVyLCB0aGUgbGljZW5zZWUg bmFtZWQgdGhlcmVpbiBzaGFsbCBjYXVzZSAgc3VjaCAgbGljZW5zZQp0byAgYmUgIHBvc3Rl ZCAgYW5kIGF0IGFsbCB0aW1lcyBkaXNwbGF5ZWQgaW4gYSBjb25zcGljdW91cyBwbGFjZSBp biB0aGUKcHJpbmNpcGFsIG9mZmljZSBvZiBzdWNoIGJ1c2luZXNzIGZvciB3aGljaCAgaXQg IGlzICBpc3N1ZWQsICBhbmQgIHNoYWxsCmNhdXNlICB0aGUgIGNlcnRpZmljYXRlIGZvciBl YWNoIGJyYW5jaCBvZmZpY2UsIGJ1cmVhdSwgYWdlbmN5IG9yIHN1Yi1hLQpnZW5jeSB0byBi ZSBwb3N0ZWQgYW5kIGF0IGFsbCB0aW1lcyBkaXNwbGF5ZWQgaW4gYSBjb25zcGljdW91cyBw bGFjZSAgaW4Kc3VjaCBicmFuY2ggb2ZmaWNlLCBidXJlYXUsIGFnZW5jeSBvciBzdWItYWdl bmN5IGZvciB3aGljaCBpdCBpcyBpc3N1ZWQsCnNvICB0aGF0ICBhbGwgIHBlcnNvbnMgIHZp c2l0aW5nICBzdWNoICBwcmluY2lwYWwgb2ZmaWNlLCBicmFuY2ggb2ZmaWNlLApidXJlYXUs IGFnZW5jeSBvciBzdWItYWdlbmN5IG1heSByZWFkaWx5IHNlZSB0aGUgc2FtZS4gU3VjaCAg bGljZW5zZSAgb3IKY2VydGlmaWNhdGUgIHNoYWxsICBhdCAgYWxsIHJlYXNvbmFibGUgdGlt ZXMgYmUgc3ViamVjdCB0byBpbnNwZWN0aW9uIGJ5CnN1Y2ggY29tbWlzc2lvbmVyIG9yIGhp cyBhdXRob3JpemVkIGluc3BlY3RvcnMuIEl0IHNoYWxsIGJlIHVubGF3ZnVsIGZvcgphbnkg cGVyc29uLCBmaXJtLCBwYXJ0bmVyc2hpcCBvciBjb3Jwb3JhdGlvbiAgaG9sZGluZyAgc3Vj aCAgbGljZW5zZSAgb3IKY2VydGlmaWNhdGUgIHRvICBwb3N0ICBzdWNoICBsaWNlbnNlICBv ciAgY2VydGlmaWNhdGUgIG9yIHRvIHBlcm1pdCBzdWNoCmNlcnRpZmljYXRlIHRvIGJlIHBv c3RlZCB1cG9uIHByZW1pc2VzIG90aGVyIHRoYW4gdGhvc2UgZGVzY3JpYmVkIHRoZXJlLQpp biBvciB0byB3aGljaCBpdCBoYXMgYmVlbiB0cmFuc2ZlcnJlZCBwdXJzdWFudCAgdG8gIHRo ZSAgcHJvdmlzaW9ucyAgb2YKdGhpcyAgYXJ0aWNsZSBvciB1bmxhd2Z1bGx5IHRvIGFsdGVy LCBkZWZhY2Ugb3IgZGVzdHJveSBhbnkgc3VjaCBsaWNlbnNlCm9yIGNlcnRpZmljYXRlLgog ICogTkIgRWZmZWN0aXZlIDk5LzA2LzAxCgogICogUyAyNS4xNy4gU3VwZXJ2aXNpb24gIGFu ZCAgcmVndWxhdGlvbi4gIFRoZSAgY29tbWlzc2lvbmVyIHNoYWxsIGhhdmUKcG93ZXIsIHVw b24gY29tcGxhaW50IG9mIGFueSBwZXJzb24gb3Igb24gaGlzIG9yIGhlciBvd24gaW5pdGlh dGl2ZSwgIHRvCmludmVzdGlnYXRlIHRoZSBidXNpbmVzcywgYnVzaW5lc3MgcHJhY3RpY2Vz IGFuZCBidXNpbmVzcyBtZXRob2RzIG9mIGFueQpzdWNoICBsaWNlbnNlZSB3aGljaCByZWxh dGVzIHRvIHRoaXMgc3RhdGVgcyBvciBhbnkgb3RoZXIgc3RhdGVgcyB0aWNrZXQKcmVzYWxl IGxhdywgb3IgaW4gcmVnYXJkcyB0byB0aWNrZXQgIHJlc2FsZSAgcHJhY3RpY2VzICBnZW5l cmFsbHkuICBFYWNoCnN1Y2ggIGxpY2Vuc2VlICBzaGFsbCAgYmUgIG9ibGlnZWQsICBvbiAg dGhlICByZWFzb25hYmxlIHJlcXVlc3Qgb2Ygc3VjaApjb21taXNzaW9uZXIsIHRvIHN1cHBs eSBzdWNoIGluZm9ybWF0aW9uIGFzIG1heSBiZSAgcmVxdWlyZWQgIGNvbmNlcm5pbmcKaGlz ICBvciAgaGVyICBidXNpbmVzcywgIGJ1c2luZXNzIHByYWN0aWNlcyBvciBidXNpbmVzcyBt ZXRob2RzIHByb3ZpZGVkCnRoYXQgdGhlIGluZm9ybWF0aW9uIHJlcXVlc3RlZCBpcyByZWxh dGVkIHRvIHRoZSBjb21wbGFpbnQgIHdoaWNoICBmb3Jtcwp0aGUgIGJhc2lzICBvZiAgc3Vj aCBpbnZlc3RpZ2F0aW9uLiBFYWNoIG9wZXJhdG9yIG9mIGFueSBwbGFjZSBvZiBlbnRlci0K dGFpbm1lbnQgc2hhbGwgYWxzbyBiZSBvYmxpZ2VkLCBvbiAgcmVxdWVzdCAgb2YgIHN1Y2gg IGNvbW1pc3Npb25lciwgIHRvCnN1cHBseSAgc3VjaCAgaW5mb3JtYXRpb24gIGFzICBtYXkg IGJlIHJlcXVpcmVkIGNvbmNlcm5pbmcgdGhlIGJ1c2luZXNzLApidXNpbmVzcyBwcmFjdGlj ZXMgb3IgYnVzaW5lc3MgbWV0aG9kcyBvZiBhbnkgbGljZW5zZWUgcHJvdmlkZWQgdGhhdCB0 aGUKaW5mb3JtYXRpb24gcmVxdWVzdGVkIGlzIHJlbGF0ZWQgdG8gdGhlIGNvbXBsYWludCB3 aGljaCBmb3JtcyB0aGUgIGJhc2lzCm9mIHN1Y2ggaW52ZXN0aWdhdGlvbi4gU3VjaCBjb21t aXNzaW9uZXIgc2hhbGwgaGF2ZSB0aGUgcG93ZXIgdG8gcHJvbXVsLQpnYXRlICBzdWNoICBy dWxlcyAgYW5kICByZWd1bGF0aW9ucyAgYXMgIG1heSBiZSBkZWVtZWQgbmVjZXNzYXJ5IGZv ciB0aGUKZW5mb3JjZW1lbnQgb2YgdGhpcyBhcnRpY2xlLgogICogTkIgRWZmZWN0aXZlIHVu dGlsIDk5LzA2LzAxCiAgKiBTIDI1LjE3LiBSZW1vdmFsIG9mIG9mZmljZS4gSWYgdGhlIGhv bGRlciBvZiBhbiB1bmV4cGlyZWQgbGljZW5zZSBvcgpjZXJ0aWZpY2F0ZSBpc3N1ZWQgcHVy c3VhbnQgdG8gdGhpcyBhcnRpY2xlICBzaGFsbCAgcmVtb3ZlICB0aGUgIG9mZmljZSwKYnJh bmNoICBvZmZpY2UsICBidXJlYXUsIGFnZW5jeSBvciBzdWItYWdlbmN5IHRvIGEgcGxhY2Ug b3RoZXIgdGhhbiB0aGF0CmRlc2NyaWJlZCBpbiB0aGUgbGljZW5zZSBvciBjZXJ0aWZpY2F0 ZSwgaGUgc2hhbGwgd2l0aGluIHRoZSB0d2VudHktZm91cgpob3VycyBpbW1lZGlhdGVseSBm b2xsb3dpbmcgc3VjaCByZW1vdmFsLCBnaXZlIHdyaXR0ZW4gIG5vdGljZSAgb2YgIHN1Y2gK cmVtb3ZhbCAgdG8gIHN1Y2ggY29tbWlzc2lvbmVyLCB3aGljaCBub3RpY2Ugc2hhbGwgZGVz Y3JpYmUgdGhlIHByZW1pc2VzCnRvIHdoaWNoIHN1Y2ggcmVtb3ZhbCBpcyBtYWRlIGFuZCB0 aGUgZGF0ZSBvbiB3aGljaCAgaXQgIHdhcyAgbWFkZSwgIGFuZApzZW5kICBzdWNoIGxpY2Vu c2Ugb3IgY2VydGlmaWNhdGUgdG8gc3VjaCBjb21taXNzaW9uZXIsIGF0IGhpcyBvZmZpY2Ug aW4KdGhlIHBvbGl0aWNhbCBzdWJkaXZpc2lvbiwgYW5kIHN1Y2ggY29tbWlzc2lvbmVyIHNo YWxsIGNhdXNlIHRvIGJlIHdyaXQtCnRlbiBvciBzdGFtcGVkIGFjcm9zcyB0aGUgZmFjZSBv ZiBzdWNoIGxpY2Vuc2Ugb3IgY2VydGlmaWNhdGUgIGEgIHN0YXRlLQptZW50ICB0byAgdGhl ICBlZmZlY3QgdGhhdCB0aGUgaG9sZGVyIG9mIHN1Y2ggbGljZW5zZSBoYXMgcmVtb3ZlZCBv biB0aGUKZGF0ZSBzdGF0ZWQgaW4gc3VjaCB3cml0dGVuIG5vdGljZSBzdWNoIHByaW5jaXBh bCBvZmZpY2UsIGJyYW5jaCBvZmZpY2UsCmJ1cmVhdSwgYWdlbmN5IG9yIHN1Yi1hZ2VuY3kg ZnJvbSB0aGUgcGxhY2Ugb3JpZ2luYWxseSBkZXNjcmliZWQgaW4gc3VjaApsaWNlbnNlIG9y IGNlcnRpZmljYXRlIHRvIHRoZSBwbGFjZSBkZXNjcmliZWQgaW4gIHN1Y2ggIHdyaXR0ZW4g IG5vdGljZSwKYW5kICBzdWNoICBsaWNlbnNlICBvciBjZXJ0aWZpY2F0ZSB3aXRoIHRoZSBl bmRvcnNlbWVudCB0aGVyZW9uIHNoYWxsIGJlCnJldHVybmVkIHRvIHRoZSBsaWNlbnNlZSBu YW1lZCB0aGVyZWluLiAgIE5vICB0aWNrZXRzLCAgb3IgIGV2aWRlbmNlICBvcgp0b2tlbnMg dGhlcmVvZiwgc2hhbGwgYmUgc29sZCBhdCBhbnkgcGxhY2Ugb3RoZXIgdGhhbiBwbGFjZXMg Zm9yIHdoaWNoIGEKbGljZW5zZSAgb3IgY2VydGlmaWNhdGUgcHJvdmlkZWQgZm9yIGJ5IHRo aXMgYXJ0aWNsZSBoYXMgYmVlbiBpc3N1ZWQgYW5kCnBvc3RlZC4KICAqIE5CIEVmZmVjdGl2 ZSA5OS8wNi8wMQoKICAqIFMgMjUuMTkuIFBvc3RpbmcgIG9mICBsaWNlbnNlICBvciAgY2Vy dGlmaWNhdGUuIEltbWVkaWF0ZWx5IHVwb24gdGhlCnJlY2VpcHQgb2YgdGhlIGxpY2Vuc2Ug b3IgY2VydGlmaWNhdGUgaXNzdWVkIHB1cnN1YW50IHRvIHRoaXMgYXJ0aWNsZSBieQpzdWNo IGNvbW1pc3Npb25lciwgdGhlIGxpY2Vuc2VlIG5hbWVkIHRoZXJlaW4gc2hhbGwgY2F1c2Ug IHN1Y2ggIGxpY2Vuc2UKdG8gIGJlICBwb3N0ZWQgIGFuZCBhdCBhbGwgdGltZXMgZGlzcGxh eWVkIGluIGEgY29uc3BpY3VvdXMgcGxhY2UgaW4gdGhlCnByaW5jaXBhbCBvZmZpY2Ugb2Yg c3VjaCBidXNpbmVzcyBmb3Igd2hpY2ggIGl0ICBpcyAgaXNzdWVkLCAgYW5kICBzaGFsbApj YXVzZSAgdGhlICBjZXJ0aWZpY2F0ZSBmb3IgZWFjaCBicmFuY2ggb2ZmaWNlLCBidXJlYXUs IGFnZW5jeSBvciBzdWItYS0KZ2VuY3kgdG8gYmUgcG9zdGVkIGFuZCBhdCBhbGwgdGltZXMg ZGlzcGxheWVkIGluIGEgY29uc3BpY3VvdXMgcGxhY2UgIGluCnN1Y2ggYnJhbmNoIG9mZmlj ZSwgYnVyZWF1LCBhZ2VuY3kgb3Igc3ViLWFnZW5jeSBmb3Igd2hpY2ggaXQgaXMgaXNzdWVk LApzbyAgdGhhdCAgYWxsICBwZXJzb25zICB2aXNpdGluZyAgc3VjaCAgcHJpbmNpcGFsIG9m ZmljZSwgYnJhbmNoIG9mZmljZSwKYnVyZWF1LCBhZ2VuY3kgb3Igc3ViLWFnZW5jeSBtYXkg cmVhZGlseSBzZWUgdGhlIHNhbWUuIFN1Y2ggIGxpY2Vuc2UgIG9yCmNlcnRpZmljYXRlICBz aGFsbCAgYXQgIGFsbCByZWFzb25hYmxlIHRpbWVzIGJlIHN1YmplY3QgdG8gaW5zcGVjdGlv biBieQpzdWNoIGNvbW1pc3Npb25lciBvciBoaXMgYXV0aG9yaXplZCBpbnNwZWN0b3JzLiBJ dCBzaGFsbCBiZSB1bmxhd2Z1bCBmb3IKYW55IHBlcnNvbiwgZmlybSwgcGFydG5lcnNoaXAg b3IgY29ycG9yYXRpb24gIGhvbGRpbmcgIHN1Y2ggIGxpY2Vuc2UgIG9yCmNlcnRpZmljYXRl ICB0byAgcG9zdCAgc3VjaCAgbGljZW5zZSAgb3IgIGNlcnRpZmljYXRlICBvciB0byBwZXJt aXQgc3VjaApjZXJ0aWZpY2F0ZSB0byBiZSBwb3N0ZWQgdXBvbiBwcmVtaXNlcyBvdGhlciB0 aGFuIHRob3NlIGRlc2NyaWJlZCB0aGVyZS0KaW4gb3IgdG8gd2hpY2ggaXQgaGFzIGJlZW4g dHJhbnNmZXJyZWQgcHVyc3VhbnQgIHRvICB0aGUgIHByb3Zpc2lvbnMgIG9mCnRoaXMgIGFy dGljbGUgb3IgdW5sYXdmdWxseSB0byBhbHRlciwgZGVmYWNlIG9yIGRlc3Ryb3kgYW55IHN1 Y2ggbGljZW5zZQpvciBjZXJ0aWZpY2F0ZS4KICAqIE5CIEVmZmVjdGl2ZSB1bnRpbCA5OS8w Ni8wMQogICogUyAyNS4xOS4gUG9zdGluZyBvZiBwcmljZSBsaXN0czsgaW5mb3JtYXRpb24g dG8gcHVyY2hhc2VyLiBJbiAgZXZlcnkKcHJpbmNpcGFsICBvZmZpY2UgIG9yIGJyYW5jaCBv ZmZpY2UsIGJ1cmVhdSwgYWdlbmN5IG9yIHN1Yi1hZ2VuY3kgb2YgYW55CmxpY2Vuc2VlIHVu ZGVyIHRoaXMgYXJ0aWNsZSwgdGhlcmUgc2hhbGwgYmUgY29uc3BpY3VvdXNseSBwb3N0ZWQg YW5kICBhdAphbGwgIHRpbWVzICBkaXNwbGF5ZWQgIGEgIHByaWNlICBsaXN0ICBzaG93aW5n ICB0aGUgcHJpY2UgY2hhcmdlZCBieSB0aGUKcGVyc29uLCBmaXJtIG9yIGNvcnBvcmF0aW9u IG93bmluZywgb3BlcmF0aW5nIG9yIGNvbnRyb2xsaW5nICB0aGUgIHRoZWEtCnRyZSwgIHBs YWNlIG9mIGFtdXNlbWVudCBvciBlbnRlcnRhaW5tZW50LCBvciB0aGUgcGxhY2Ugd2hlcmUg dGhlIHB1YmxpYwpleGhpYml0aW9uLCBnYW1lLCBjb250ZXN0IG9yIHBlcmZvcm1hbmNlIGZv ciB3aGljaCAgYSAgdGlja2V0ICBpcyAgYmVpbmcKc29sZCAgYnkgIHN1Y2ggIGxpY2Vuc2Vl LCAgdG9nZXRoZXIgd2l0aCB0aGUgcHJpY2UgYmVpbmcgY2hhcmdlZCBieSBzdWNoCmxpY2Vu c2VlIGZvciB0aGUgcmVzYWxlIG9mIHN1Y2ggdGlja2V0LCBzbyAgdGhhdCAgYWxsICBwZXJz b25zICB2aXNpdGluZwpzdWNoIHBsYWNlIG1heSByZWFkaWx5IHNlZSB0aGUgc2FtZS4gIFRo ZSBsaWNlbnNlZSBzaGFsbCBhbHNvIG9uIHJlcXVlc3QKZnVybmlzaCAgZWFjaCAgcHVyY2hh c2VyICBvZiAgYSAgdGlja2V0ICB3aXRoIGEgcmVjZWlwdCBzaG93aW5nIHRoZSBzYW1lCmlu Zm9ybWF0aW9uLgogICogTkIgRWZmZWN0aXZlIDk5LzA2LzAxCgogICogUyAyNS4yMS4gUmVt b3ZhbCBvZiBvZmZpY2UuIElmIHRoZSBob2xkZXIgb2YgYW4gdW5leHBpcmVkIGxpY2Vuc2Ug b3IKY2VydGlmaWNhdGUgIGlzc3VlZCAgcHVyc3VhbnQgIHRvICB0aGlzIGFydGljbGUgc2hh bGwgcmVtb3ZlIHRoZSBvZmZpY2UsCmJyYW5jaCBvZmZpY2UsIGJ1cmVhdSwgYWdlbmN5IG9y IHN1Yi1hZ2VuY3kgdG8gYSBwbGFjZSBvdGhlciAgdGhhbiAgdGhhdApkZXNjcmliZWQgIGlu ICB0aGUgIGxpY2Vuc2UgIG9yICBjZXJ0aWZpY2F0ZSwgaGUgb3Igc2hlIHNoYWxsIHdpdGhp biB0aGUKdHdlbnR5LWZvdXIgaG91cnMgIGltbWVkaWF0ZWx5ICBmb2xsb3dpbmcgIHN1Y2gg IHJlbW92YWwsICBnaXZlICB3cml0dGVuCm5vdGljZSBvZiBzdWNoIHJlbW92YWwgdG8gc3Vj aCBjb21taXNzaW9uZXIsIHdoaWNoIG5vdGljZSBzaGFsbCBkZXNjcmliZQp0aGUgIHByZW1p c2VzIHRvIHdoaWNoIHN1Y2ggcmVtb3ZhbCBpcyBtYWRlIGFuZCB0aGUgZGF0ZSBvbiB3aGlj aCBpdCB3YXMKbWFkZSwgYW5kIHNlbmQgc3VjaCBsaWNlbnNlIG9yIGNlcnRpZmljYXRlIHRv IHN1Y2ggY29tbWlzc2lvbmVyLCBhdCAgaGlzCm9yICBoZXIgb2ZmaWNlIGluIHRoZSBwb2xp dGljYWwgc3ViZGl2aXNpb24sIGFuZCBzdWNoIGNvbW1pc3Npb25lciBzaGFsbApjYXVzZSB0 byBiZSB3cml0dGVuIG9yIHN0YW1wZWQgIGFjcm9zcyAgdGhlICBmYWNlICBvZiAgc3VjaCAg bGljZW5zZSAgb3IKY2VydGlmaWNhdGUgIGEgIHN0YXRlbWVudCAgdG8gdGhlIGVmZmVjdCB0 aGF0IHRoZSBob2xkZXIgb2Ygc3VjaCBsaWNlbnNlCmhhcyByZW1vdmVkIG9uIHRoZSBkYXRl IHN0YXRlZCBpbiBzdWNoICB3cml0dGVuICBub3RpY2UgIHN1Y2ggIHByaW5jaXBhbApvZmZp Y2UsICBicmFuY2ggIG9mZmljZSwgIGJ1cmVhdSwgIGFnZW5jeSAgb3IgIHN1Yi1hZ2VuY3kg ZnJvbSB0aGUgcGxhY2UKb3JpZ2luYWxseSBkZXNjcmliZWQgIGluICBzdWNoICBsaWNlbnNl ICBvciAgY2VydGlmaWNhdGUgIHRvICB0aGUgIHBsYWNlCmRlc2NyaWJlZCAgaW4gIHN1Y2gg d3JpdHRlbiBub3RpY2UsIGFuZCBzdWNoIGxpY2Vuc2Ugb3IgY2VydGlmaWNhdGUgd2l0aAp0 aGUgZW5kb3JzZW1lbnQgdGhlcmVvbiBzaGFsbCBiZSByZXR1cm5lZCB0byB0aGUgbGljZW5z ZWUgbmFtZWQgdGhlcmVpbi4KTm8gdGlja2V0cyBzaGFsbCBiZSBzb2xkIGF0IGFueSBwbGFj ZSBvdGhlciAgdGhhbiAgcGxhY2VzICBmb3IgIHdoaWNoICBhCmxpY2Vuc2UgIG9yIGNlcnRp ZmljYXRlIHByb3ZpZGVkIGZvciBieSB0aGlzIGFydGljbGUgaGFzIGJlZW4gaXNzdWVkIGFu ZApwb3N0ZWQuCiAgKiBOQiBFZmZlY3RpdmUgdW50aWwgOTkvMDYvMDEKICAqIFMgMjUuMjEu IFJlY29yZHMgb2YgcHVyY2hhc2VzIGFuZCBzYWxlcy4gRXZlcnkgbGljZW5zZWUgc2hhbGwg YXQgYWxsCnRpbWVzIGtlZXAgZnVsbCBhbmQgYWNjdXJhdGUgc2V0cyBvZiByZWNvcmRzIHNo b3dpbmcgdGhlIHByaWNlcyBhdCB3aGljaAphbGwgdGlja2V0cyBoYXZlIGJlZW4gYm91Z2h0 IGFuZCBzb2xkIGJ5IHN1Y2ggbGljZW5zZWUgYW5kIHRoZSBuYW1lcyBhbmQKYWRkcmVzc2Vz IG9mIHRoZSBwZXJzb24sIGZpcm0gb3IgY29ycG9yYXRpb24gZnJvbSB3aG9tIHRoZXkgd2Vy ZSBib3VnaHQuCiAgKiBOQiBFZmZlY3RpdmUgOTkvMDYvMDEKCiAgKiBTIDI1LjIzLiBQb3N0 aW5nICBvZiBwcmljZSBsaXN0czsgaW5mb3JtYXRpb24gdG8gcHVyY2hhc2VyLiBJbiBldmVy eQpwcmluY2lwYWwgb2ZmaWNlIG9yIGJyYW5jaCBvZmZpY2UsIGJ1cmVhdSwgYWdlbmN5IG9y IHN1Yi1hZ2VuY3kgIG9mICBhbnkKbGljZW5zZWUgIHVuZGVyIHRoaXMgYXJ0aWNsZSwgdGhl cmUgc2hhbGwgYmUgY29uc3BpY3VvdXNseSBwb3N0ZWQgYW5kIGF0CmFsbCB0aW1lcyBkaXNw bGF5ZWQgYSBwcmljZSBsaXN0IHNob3dpbmcgdGhlIGVzdGFibGlzaGVkICBwcmljZSAgY2hh cmdlZApieSAgdGhlICBvcGVyYXRvciAgb2YgIHRoZSAgcGxhY2Ugb2YgZW50ZXJ0YWlubWVu dCBmb3Igd2hpY2ggYSB0aWNrZXQgaXMKYmVpbmcgc29sZCBieSBzdWNoIGxpY2Vuc2VlLCB0 b2dldGhlciB3aXRoIHRoZSBwcmljZSAgYmVpbmcgIGNoYXJnZWQgIGJ5CnN1Y2ggIGxpY2Vu c2VlIGZvciB0aGUgcmVzYWxlIG9mIHN1Y2ggdGlja2V0LCBzbyB0aGF0IGFsbCBwZXJzb25z IHZpc2l0LQppbmcgc3VjaCBwbGFjZSBtYXkgcmVhZGlseSBzZWUgdGhlIHNhbWUuICAgVGhl IGxpY2Vuc2VlICBzaGFsbCAgYWxzbyAgb24KcmVxdWVzdCAgZnVybmlzaCAgZWFjaCAgcHVy Y2hhc2VyIG9mIGEgdGlja2V0IHdpdGggYSByZWNlaXB0IHNob3dpbmcgdGhlCnNhbWUgaW5m b3JtYXRpb24uCiAgKiBOQiBFZmZlY3RpdmUgdW50aWwgOTkvMDYvMDEKICAqIFMgMjUuMjMu IENvbW1pc3Npb25zIHRvIGVtcGxveWVlcyBvZiB0aGVhdHJlcy4gICBObyAgbGljZW5zZWUg IHNoYWxsCnBheSAgdG8gIGFueSBvZmZpY2VyIG9yIGVtcGxveWVlIG9mIGFueSB0aGVhdHJl IG9yIHBsYWNlIG9mIGFtdXNlbWVudCBvcgplbnRlcnRhaW5tZW50IG9yIG90aGVyIHBsYWNl IHdoZXJlIHB1YmxpYyBleGhpYml0aW9ucywgIGdhbWVzLCAgY29udGVzdHMKb3IgIHBlcmZv cm1hbmNlcyAgYXJlIGhlbGQsIG9yIHRvIGFueSBwcm9kdWNlciBvciBtYW5hZ2VyIG9yIGVt cGxveWVlIG9mCmFueSB0aGVhdHJpY2FsIG9yIG90aGVyIGV4aGliaXRpb24gb3IgdGhlYXRy aWNhbCAgY29tcGFueSwgIGFueSAgY29tbWlzLQpzaW9uLCBncmF0dWl0eSBvciBib251cyBp biBjb25uZWN0aW9uIHdpdGggdGhlIHNhbGUsIGRlbGl2ZXJ5IG9yIHBheW1lbnQKb2YgIHRp Y2tldHMgb3IgaW4gY29ubmVjdGlvbiB3aXRoIHRoZSBidXNpbmVzcyBiZWluZyBkb25lIGJ5 IHN1Y2ggbGljZW4tCnNlZSBpbiB0aWNrZXRzIG9mIGFkbWlzc2lvbiB0byBzdWNoIHBsYWNl cy4KICAqIE5CIEVmZmVjdGl2ZSA5OS8wNi8wMQoKICAqIFMgMjUuMjUuIFJlY29yZHMgb2Yg cHVyY2hhc2VzIGFuZCBzYWxlcy4gRXZlcnkgbGljZW5zZWUgc2hhbGwgYXQgYWxsCnRpbWVz IGtlZXAgZnVsbCBhbmQgYWNjdXJhdGUgc2V0cyBvZiByZWNvcmRzIHNob3dpbmcgdGhlIHBy aWNlcyBhdCB3aGljaAphbGwgdGlja2V0cyBoYXZlIGJlZW4gYm91Z2h0IGFuZCBzb2xkIGJ5 IHN1Y2ggbGljZW5zZWUgYW5kIHRoZSBuYW1lcyBhbmQKYWRkcmVzc2VzIG9mIHRoZSBwZXJz b24sIGZpcm0gb3IgY29ycG9yYXRpb24gZnJvbSB3aG9tIHRoZXkgd2VyZSBib3VnaHQuClRo ZXNlIHJlY29yZHMgc2hhbGwgYmUgbWFkZSBhdmFpbGFibGUgdXBvbiByZXF1ZXN0IHRvIHRo ZSBzdGF0ZSBhdHRvcm5leQpnZW5lcmFsLCAgY29tbWlzc2lvbmVyICBvciAgb3RoZXIgIGdv dmVybm1lbnRhbCAgYm9keSAgd2l0aCAgdGhlIGV4cHJlc3MKYXV0aG9yaXR5IHRvIGVuZm9y Y2UgYW55IHNlY3Rpb24gb2YgdGhpcyBhcnRpY2xlLiBUaGVzZSByZWNvcmRzIHNoYWxsIGJl CnJldGFpbmVkIGZvciBhIHBlcmlvZCBvZiBub3QgbGVzcyB0aGFuIHR3byB5ZWFycy4KICAq IE5CIEVmZmVjdGl2ZSB1bnRpbCA5OS8wNi8wMQogICogUyAyNS4yNS4gVmlvbGF0aW9uczsg cGVuYWx0aWVzLiAxLiBFdmVyeSBwZXJzb24sIGZpcm0gb3IgY29ycG9yYXRpb24Kd2hvIHJl c2VsbHMgYW55IHN1Y2ggdGlja2V0IG9yIG90aGVyICBldmlkZW5jZSAgb2YgIHJpZ2h0ICBv ZiAgZW50cnkgIG9yCmVuZ2FnZXMgIGluICB0aGUgYnVzaW5lc3Mgb2YgcmVzZWxsaW5nIGFu eSBzdWNoIHRpY2tldCBvciBvdGhlciBldmlkZW5jZQpvZiB0aGUgcmlnaHQgIG9mICBlbnRy eSwgIHdpdGhvdXQgIGZpcnN0ICBoYXZpbmcgIHByb2N1cmVkICB0aGUgIGxpY2Vuc2UKcHJl c2NyaWJlZCBhbmQgZmlsaW5nIG9mIGEgYm9uZCByZXF1aXJlZCBieSB0aGlzIGFydGljbGUg c2hhbGwgYmUgZ3VpbHR5Cm9mICBhICBtaXNkZW1lYW5vci4gIEV2ZXJ5ICBwZXJzb24sIGZp cm0gb3IgY29ycG9yYXRpb24gd2hvIHZpb2xhdGVzIGFueQpwcm92aXNpb24gb2YgdGhpcyBh cnRpY2xlIHNoYWxsIGJlIGd1aWx0eSBvZiBhIG1pc2RlbWVhbm9yLiBBIGNvbnZpY3Rpb24K Zm9yIGFueSB2aW9sYXRpb24gaGVyZW9mIHNoYWxsIGJlIHB1bmlzaGFibGUgYnkgYSBmaW5l IG5vdCB0byBleGNlZWQgdHdvCmh1bmRyZWQgZmlmdHkgZG9sbGFycyBmb3IgdGhlIGZpcnN0 IHZpb2xhdGlvbiwgZml2ZSBodW5kcmVkIGRvbGxhcnMgIGZvcgp0aGUgIHNlY29uZCAgdmlv bGF0aW9uICBhbmQgIG9uZSAgdGhvdXNhbmQgIGRvbGxhcnMgIGZvciAgYW55IHN1YnNlcXVl bnQKdmlvbGF0aW9uIG9yIGJ5IGltcHJpc29ubWVudCBmb3IgYSBwZXJpb2Qgbm90IHRvICBl eGNlZWQgIG9uZSAgeWVhciwgIG9yCmJvdGggc3VjaCBmaW5lIGFuZCBpbXByaXNvbm1lbnQg YXMgaGVyZWluIHByb3ZpZGVkLgogIDIuICBOb3R3aXRoc3RhbmRpbmcgdGhlIHByb3Zpc2lv bnMgb2Ygc3ViZGl2aXNpb24gb25lIG9mIHRoaXMgc2VjdGlvbiwKYW55IHBlcnNvbiB3aG8g aGFzIG5vdCAgcHJldmlvdXNseSAgYmVlbiAgY29udmljdGVkICBvZiAgdmlvbGF0aW5nICB0 aGlzCnNlY3Rpb24gIGFuZCAgd2hvICBzZWxscyAgbGVzcyAgdGhhbiAgc2l4ICB0aWNrZXRz ICBzaGFsbCBiZSBndWlsdHkgb2YgYQp2aW9sYXRpb24sIGFuZCB1cG9uIGNvbnZpY3Rpb24g c2hhbGwgYmUgcHVuaXNoYWJsZSAgYnkgIGEgIGZpbmUgIG5vdCAgdG8KZXhjZWVkIG9uZSBo dW5kcmVkIGRvbGxhcnMuCiAgKiBOQiBFZmZlY3RpdmUgOTkvMDYvMDEKCiAgKiBTIDI1LjI3 LiBDb21taXNzaW9ucyAgdG8gIGVtcGxveWVlcyAgb2YgIHBsYWNlcyBvZiBlbnRlcnRhaW5t ZW50LiBObwpsaWNlbnNlZSBzaGFsbCBwYXkgdG8gYW55IG9mZmljZXIgb3IgZW1wbG95ZWUg b2YgIGFueSAgcGxhY2UgIG9mICBlbnRlci0KdGFpbm1lbnQsIGFueSBjb21taXNzaW9uLCBn cmF0dWl0eSBvciBib251cyBpbiBjb25uZWN0aW9uIHdpdGggdGhlIHNhbGUsCmRlbGl2ZXJ5 ICBvciBwYXltZW50IG9mIHRpY2tldHMgb3IgaW4gY29ubmVjdGlvbiB3aXRoIHRoZSBidXNp bmVzcyBiZWluZwpkb25lIGJ5IHN1Y2ggbGljZW5zZWUgaW4gdGlja2V0cyBvZiBhZG1pc3Np b24gdG8gc3VjaCBwbGFjZS4KICAqIE5CIEVmZmVjdGl2ZSB1bnRpbCA5OS8wNi8wMQogICog UyAyNS4yNy4gVW5sYXdmdWwgY2hhcmdlcyBpbiBjb25uZWN0aW9uIHdpdGggdGhlYXRyZSB0 aWNrZXRzLiAxLiBBbnkKb3duZXIsIG9wZXJhdGluZyBsZXNzZWUsIG9wZXJhdG9yLCBtYW5h Z2VyLCB0cmVhc3VyZXIgb3IgYXNzaXN0YW50IHRyZWEtCnN1cmVyIG9mIGFueSB0aGVhdHJl IHdoZXJlaW4gcHVibGljIHBlcmZvcm1hbmNlcyBhcmUgIGhlbGQsICBvciAgb2YgIGFueQpz dGFkaXVtLCAgYXJlbmEsICBnYXJkZW4gIG9yICBvdGhlciAgcGxhY2Ugb2YgYW11c2VtZW50 IHNob3dpbmcgc3BvcnRpbmcKZXZlbnRzLCBvciBoaXMgYWdlbnQsIHJlcHJlc2VudGF0aXZl LCBlbXBsb3llZSBvciAgbGljZW5zZWUgIHdobywgIGlmICBhCnByaWNlICBiZSAgY2hhcmdl ZCAgZm9yICBhZG1pc3Npb24gIHRoZXJldG8sIGV4YWN0cywgZGVtYW5kcywgYWNjZXB0cyBv cgpyZWNlaXZlcywgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSwgYW55IHByZW1pdW0gb3IgcHJp Y2UgaW4gZXhjZXNzIG9mICB0aGUKcmVndWxhciAgb3IgIGVzdGFibGlzaGVkICBwcmljZSBv ciBjaGFyZ2UsIHBsdXMgbGF3ZnVsIHRheGVzLCBhcyBwcmludGVkCnVwb24gdGhlIGZhY2Ug b2YgZWFjaCB0aWNrZXQgb3Igb3RoZXIgZXZpZGVuY2Ugb2YgIHRoZSAgcmlnaHQgIG9mICBl bnRyeQp0aGVyZXRvLCAgd2hldGhlciAgZGVzaWduYXRlZCAgYXMgcHJpY2UsIGdyYXR1aXR5 IG9yIG90aGVyd2lzZSwgc2hhbGwgYmUKZ3VpbHR5IG9mIGEgbWlzZGVtZWFub3IuIEEgY29u dmljdGlvbiBmb3IgZWFjaCB2aW9sYXRpb24gaGVyZW9mIHNoYWxsIGJlCnB1bmlzaGFibGUg YnkgYSBmaW5lIG5vdCB0byBleGNlZWQgZml2ZSBodW5kcmVkIGRvbGxhcnMgb3IgYnkgIGlt cHJpc29uLQptZW50IGZvciBhIHBlcmlvZCBub3QgdG8gZXhjZWVkIG9uZSB5ZWFyLCBvciBi b3RoLgogIDIuICBUaGUgIHByb3Zpc2lvbnMgIG9mICB0aGlzICBzZWN0aW9uIHNoYWxsIGFs c28gYXBwbHkgdG8gdGhlIHNhbGUgb2YKdGhlYXRyZSB0aWNrZXRzIGFuZCB0aWNrZXRzIGZv ciBzcG9ydGluZyBldmVudHMgdG8gcGVyc29ucyAgbGljZW5zZWQgIHRvCnJlc2VsbCAgdGhl YXRyZSB0aWNrZXRzIGFuZCB0aWNrZXRzIGZvciBzcG9ydGluZyBldmVudHMsIHB1cnN1YW50 IHRvIHRoZQpwcm92aXNpb25zIG9mIHRoaXMgYXJ0aWNsZS4KICAzLiBJbiBhbnkgcHJvc2Vj dXRpb24gdW5kZXIgdGhpcyBzZWN0aW9uIHRoZSAgYXR0b3JuZXkgIGdlbmVyYWwgIHNoYWxs CmhhdmUgIGNvbmN1cnJlbnQganVyaXNkaWN0aW9uIHdpdGggYW55IGRpc3RyaWN0IGF0dG9y bmV5IGFuZCBpbiBhbnkgc3VjaApwcm9zZWN1dGlvbiBoZSBvciBoaXMgZGVwdXR5IHNoYWxs IGV4ZXJjaXNlIGFsbCB0aGUgcG93ZXJzICBhbmQgIHBlcmZvcm0KYWxsIHRoZSBkdXRpZXMg d2hpY2ggdGhlIGRpc3RyaWN0IGF0dG9ybmV5IHdvdWxkIG90aGVyd2lzZSBiZSBhdXRob3Jp emVkCnRvIGV4ZXJjaXNlIG9yIHBlcmZvcm0gdGhlcmVpbi4KICAqIE5CIEVmZmVjdGl2ZSA5 OS8wNi8wMQoKICAqIFMgMjUuMjkuIFVubGF3ZnVsIGNoYXJnZXMgaW4gY29ubmVjdGlvbiB3 aXRoIHRpY2tldHMuIDEuIE5vIG9wZXJhdG9yCm9mICBhbnkgIHBsYWNlICBvZiAgZW50ZXJ0 YWlubWVudCwgIG9yIGhpcyBvciBoZXIgYWdlbnQsIHJlcHJlc2VudGF0aXZlLAplbXBsb3ll ZSBvciBsaWNlbnNlZSBzaGFsbCwgaWYgYSBwcmljZSBiZSBjaGFyZ2VkIGZvciBhZG1pc3Np b24gdGhlcmV0bywKZXhhY3QsIGRlbWFuZCwgYWNjZXB0IG9yIHJlY2VpdmUsIGRpcmVjdGx5 IG9yIGluZGlyZWN0bHksIGFueSBwcmVtaXVtIG9yCnByaWNlIGluIGV4Y2VzcyBvZiB0aGUg IGVzdGFibGlzaGVkICBwcmljZSAgcGx1cyAgbGF3ZnVsICB0YXhlcyAgd2hldGhlcgpkZXNp Z25hdGVkICBhcyAgcHJpY2UsICBncmF0dWl0eSAgb3IgIG90aGVyd2lzZS4gTm90aGluZyBo ZXJlaW4gc2hhbGwgYmUKY29uc3RydWVkIHRvIHByb2hpYml0IGEgc2VydmljZSBjaGFyZ2Ug YnkgYWdlbnRzICBvZiAgdGhlICBvcGVyYXRvciAgZm9yCnNwZWNpYWwgIHNlcnZpY2VzLCBp bmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvLCBzYWxlcyBhd2F5IGZyb20gdGhlIGJveApv ZmZpY2UsIGNyZWRpdCBjYXJkIHNhbGVzIG9yIGRlbGl2ZXJ5LgogIDIuIEluIGFueSBwcm9z ZWN1dGlvbiB1bmRlciB0aGlzIHNlY3Rpb24gdGhlICBhdHRvcm5leSAgZ2VuZXJhbCAgc2hh bGwKaGF2ZSAgY29uY3VycmVudCBqdXJpc2RpY3Rpb24gd2l0aCBhbnkgZGlzdHJpY3QgYXR0 b3JuZXkgYW5kIGluIGFueSBzdWNoCnByb3NlY3V0aW9uIGhlIG9yIHNoZSBvciBoaXMgb3Ig aGVyIGRlcHV0eSBzaGFsbCBleGVyY2lzZSBhbGwgdGhlIHBvd2VycwphbmQgcGVyZm9ybSBh bGwgdGhlIGR1dGllcyB3aGljaCB0aGUgZGlzdHJpY3QgYXR0b3JuZXkgIHdvdWxkICBvdGhl cndpc2UKYmUgYXV0aG9yaXplZCB0byBleGVyY2lzZSBvciBwZXJmb3JtIHRoZXJlaW4uCiAg KiBOQiBSZXBlYWxlZCA5OS8wNi8wMQoKICAqIFMgMjUuMzEuIFN1c3BlbnNpb24gb3IgcmV2 b2NhdGlvbiBvZiBsaWNlbnNlcy4gSW4gdGhlIGV2ZW50IHRoYXQgYW55CmxpY2Vuc2VlIHNo YWxsIGhhdmUgYmVlbiBjb252aWN0ZWQgb2YgYSBjcmltZSBkZWZpbmVkIGluIHRoaXMgYXJ0 aWNsZSBvcgpvZiAgYSAgY3JpbWUgIGludm9sdmluZyAgZnJhdWQgIG9yICBtaXNyZXByZXNl bnRhdGlvbiBpbiByZWxhdGlvbiB0byB0aGUKcmVzYWxlIG9mIHRpY2tldHMgdG8gYSBwbGFj ZSBvZiBlbnRlcnRhaW5tZW50LCBvciBoYXMgYmVlbiBjb252aWN0ZWQgIG9mCnN1Y2ggb2Zm ZW5zZSB3aXRoaW4gdGhlIHBhc3QgZml2ZSB5ZWFycywgdGhlIGNvbW1pc3Npb25lciBtYXks IGZvbGxvd2luZwphIGhlYXJpbmcgb24gd3JpdHRlbiBub3RpY2UgYnkgY2VydGlmaWVkIG1h aWwgdG8gc3VjaCBsaWNlbnNlZSB3aGVyZSB0aGUKbGljZW5zZWUgIGhhcyBhbiBvcHBvcnR1 bml0eSB0byBiZSBoZWFyZCBhbmQgcHJlc2VudCBldmlkZW5jZSwgcmV2b2tlIG9yCnN1c3Bl bmQgYW55IGxpY2Vuc2UgdGhlcmV0bywgcHJvdmlkZWQgaG93ZXZlciwgd2hlcmUgc3VjaCBj b252aWN0aW9uICBpcwpvZiAgYSAgY3JpbWUgIGRlZmluZWQgcHVyc3VhbnQgdG8gdGhlIGxh d3Mgb2YgYW55IG90aGVyIHN0YXRlLCBvciBvZiB0aGUKVW5pdGVkIFN0YXRlcywgdGhlIHVu ZGVybHlpbmcgb2ZmZW5zZSBzaGFsbCBjb25zdGl0dXRlIGEgY3JpbWUgdW5kZXIgdGhlCmxh d3Mgb2YgdGhpcyBzdGF0ZSBmb3Igd2hpY2ggc3VzcGVuc2lvbiBvciByZXZvY2F0aW9uIG9m IGxpY2Vuc2VzIG1heSBiZQplZmZlY3R1YXRlZCB1bmRlciB0aGlzIHNlY3Rpb24uICBTdWNo ICBoZWFyaW5nICBzaGFsbCAgYmUgIGNvbmR1Y3RlZCAgaW4KYWNjb3JkYW5jZSB3aXRoIHRo ZSBwcm9jZWR1cmVzIGVzdGFibGlzaGVkIGJ5IHRoZSBjb21taXNzaW9uZXIgdGhlcmVmb3Iu ClN1Y2ggIHByb2NlZHVyZXMgIHNoYWxsICBiZSAgY29uc2lzdGVudCB3aXRoIHRoZSBwcm92 aXNpb25zIHNldCBmb3J0aCBpbgphcnRpY2xlIHRocmVlIG9mIHRoZSBzdGF0ZSBhZG1pbmlz dHJhdGl2ZSBwcm9jZWR1cmUgYWN0LgogICogTkIgUmVwZWFsZWQgOTkvMDYvMDEKCiAgKiBT IDI1LjMzLiBQcml2YXRlICByaWdodCAgb2YgIGFjdGlvbi4gIE5vdHdpdGhzdGFuZGluZyAg YW55ICByaWdodCBvZgphY3Rpb24gZ3JhbnRlZCB0byBhbnkgZ292ZXJubWVudGFsIGJvZHkg cHVyc3VhbnQgdG8gIHRoaXMgIGNoYXB0ZXIsICBhbnkKcGVyc29uIHdobyBoYXMgYmVlbiBp bmp1cmVkIGJ5IHJlYXNvbiBvZiBhIHZpb2xhdGlvbiBvZiB0aGlzIGFydGljbGUgbWF5CmJy aW5nICBhbiAgYWN0aW9uIGluIGhpcyBvciBoZXIgb3duIG5hbWUgdG8gZW5qb2luIHN1Y2gg dW5sYXdmdWwgYWN0LCBhbgphY3Rpb24gdG8gcmVjb3ZlciBoaXMgb3IgaGVyIGFjdHVhbCBk YW1hZ2VzIG9yIGZpZnR5IGRvbGxhcnMsICB3aGljaGV2ZXIKaXMgIGdyZWF0ZXIsIG9yIGJv dGggc3VjaCBhY3Rpb25zLiBUaGUgY291cnQgbWF5IGF3YXJkIHJlYXNvbmFibGUgYXR0b3It Cm5leWBzIGZlZXMgdG8gYSBwcmV2YWlsaW5nIHBsYWludGlmZi4KICAqIE5CIFJlcGVhbGVk IDk5LzA2LzAxCgogICogUyAyNS4zNS4gQ3JpbWluYWwgIHBlbmFsdGllcy4gIDEuICBBbnkg IHBlcnNvbiwgIGZpcm0gb3IgY29ycG9yYXRpb24Kd2hpY2ggaXMgY29udmljdGVkIG9mIHZp b2xhdGluZyBzZWN0aW9uIDI1LjI5IG9mIHRoaXMgYXJ0aWNsZSAgc2hhbGwgIGJlCmd1aWx0 eSAgb2YgYSBtaXNkZW1lYW5vciBwdW5pc2hhYmxlIGJ5IGEgZmluZSBub3QgdG8gZXhjZWVk IGZpdmUgaHVuZHJlZApkb2xsYXJzLCBvciBieSBhIHRlcm0gb2YgaW1wcmlzb25tZW50IG5v dCB0byBleGNlZWQgb25lIHllYXIsIG9yIGJ5IGJvdGgKc3VjaCBmaW5lIGFuZCBpbXByaXNv bm1lbnQuCiAgMi4gQW55IHBlcnNvbiwgZmlybSBvciBjb3Jwb3JhdGlvbiB3aGljaCAgaXMg IGNvbnZpY3RlZCAgb2YgIHZpb2xhdGluZwpzdWJkaXZpc2lvbiAgdHdvICBvZiAgc2VjdGlv biAyNS4wOSBvZiB0aGlzIGFydGljbGUgc2hhbGwgYmUgZ3VpbHR5IG9mIGEKbWlzZGVtZWFu b3IgcHVuaXNoYWJsZSBieSBhIHRlcm0gb2YgaW1wcmlzb25tZW50IG5vdCB0byBleGNlZWQg b25lICB5ZWFyCm9yICBieSAgYSAgZmluZSAgbm90ICB0byBleGNlZWQgdGhyZWUgaHVuZHJl ZCBmaWZ0eSBkb2xsYXJzIG9uIHRoZSBmaXJzdApjb252aWN0aW9uOyBzaXggaHVuZHJlZCBk b2xsYXJzIG9uIHRoZSBzZWNvbmQgY29udmljdGlvbjsgYW5kIG9uZSAgdGhvdS0Kc2FuZCAg b25lIGh1bmRyZWQgZG9sbGFycywgb24gZWFjaCBzdWJzZXF1ZW50IGNvbnZpY3Rpb24gb3Ig YnkgYm90aCBzdWNoCmZpbmUgYW5kIGltcHJpc29ubWVudC4KICAzLiBBbnkgcGVyc29uLCBm aXJtIG9yIGNvcnBvcmF0aW9uIHdoaWNoICBpcyAgY29udmljdGVkICBvZiAga25vd2luZ2x5 CnZpb2xhdGluZyAgc3ViZGl2aXNpb24gIG9uZSBvZiBzZWN0aW9uIDI1LjA3IG9yIHNlY3Rp b24gMjUuMTMgb3Igc2VjdGlvbgoyNS4xNSBvZiB0aGlzIGFydGljbGUgc2hhbGwgYmUgZ3Vp bHR5IG9mIGEgbWlzZGVtZWFub3IgcHVuaXNoYWJsZSAgYnkgIGEKdGVybSAgb2YgaW1wcmlz b25tZW50IG5vdCB0byBleGNlZWQgb25lIGh1bmRyZWQgZWlnaHR5IGRheXMgb3IgYnkgYSBm aW5lCm5vdCB0byBleGNlZWQgdHdvIGh1bmRyZWQgZmlmdHkgZG9sbGFycyBvbiB0aGUgIGZp cnN0ICBjb252aWN0aW9uOyAgZml2ZQpodW5kcmVkICBkb2xsYXJzICBvbiAgdGhlIHNlY29u ZCBjb252aWN0aW9uOyBhbmQgb25lIHRob3VzYW5kIGRvbGxhcnMgb24KZWFjaCBzdWJzZXF1 ZW50IGNvbnZpY3Rpb24gb3IgYnkgYm90aCBzdWNoIGZpbmUgYW5kIGltcHJpc29ubWVudC4K ICA0LiBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHBlbmFsdHkgd2hpY2ggIG1heSAgYmUg IGltcG9zZWQgIGZvciAgYW55Cm90aGVyICB2aW9sYXRpb24gIG9mIHRoaXMgYXJ0aWNsZSwg YW55IHBlcnNvbiwgZmlybSBvciBjb3Jwb3JhdGlvbiB3aGljaAppcyBjb252aWN0ZWQgb2Yg dmlvbGF0aW5nIHNlY3Rpb24gMjUuMTEgb2YgdGhpcyBhcnRpY2xlIHNoYWxsIGJlICBndWls dHkKb2YgYSB2aW9sYXRpb24gcHVuaXNoYWJsZSBieSBhIGZpbmUgbm90IHRvIGV4Y2VlZCBv bmUgaHVuZHJlZCBkb2xsYXJzIG9uCnRoZSAgIGZpcnN0ICAgY29udmljdGlvbjsgIHR3byAg aHVuZHJlZCAgZmlmdHkgIGRvbGxhcnMgIG9uICB0aGUgIHNlY29uZApjb252aWN0aW9uOyBh bmQgZml2ZSBodW5kcmVkIGRvbGxhcnMgb24gZWFjaCBzdWJzZXF1ZW50IGNvbnZpY3Rpb24u CiAgNS4gQW55IHBlcnNvbiwgZmlybSBvciBjb3Jwb3JhdGlvbiB3aGljaCAgaXMgIGNvbnZp Y3RlZCAgb2YgIHZpb2xhdGluZwpzdWJkaXZpc2lvbiAgb25lICBvZiAgc2VjdGlvbiAyNS4w OSBvZiB0aGlzIGFydGljbGUgc2hhbGwgYmUgZ3VpbHR5IG9mIGEKdmlvbGF0aW9uIHB1bmlz aGFibGUgYnkgYSBmaW5lIG5vdCB0byBleGNlZWQgdHdvIGh1bmRyZWQgZG9sbGFycy4KICA2 LiBBbnkgcGVyc29uLCBmaXJtIG9yIGNvcnBvcmF0aW9uIHdoaWNoIGlzIGNvbnZpY3RlZCBv ZiB2aW9sYXRpbmcgYW55Cm90aGVyIHNlY3Rpb24gb2YgdGhpcyBhcnRpY2xlIHNoYWxsIGJl IGd1aWx0eSBvZiBhIHZpb2xhdGlvbiAgcHVuaXNoYWJsZQpieSBhIGZpbmUgbm90IHRvIGV4 Y2VlZCBvbmUgaHVuZHJlZCBkb2xsYXJzLgogICogTkIgUmVwZWFsZWQgOTkvMDYvMDEKCgoK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0 cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVElUTEUgSgogICAgICAgICAgICAgT0ZGRU5TRVMgUkVMQVRJTkcgVE8gVU5BVVRIT1JJ WkVEICBQSE9UT0dSQVBIUwogICAgICAgICAgICAgICAgICAgIEFORCBDRVJUQUlOIENPUFlS SUdIVEVEIE1BVEVSSUFMUwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpOZXcgWW9yayBTdGF0ZSBD b25zb2xpZGF0ZWQgTGF3cwpBcnRzIGFuZCBDdWx0dXJhbCBBZmZhaXJzCgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQVJUSUNMRSAzMQogICAgICAgICAgICAgT0ZGRU5TRVMg UkVMQVRJTkcgVE8gVU5BVVRIT1JJWkVEICBQSE9UT0dSQVBIUwogICAgICAgICAgICAgICAg ICAgIEFORCBDRVJUQUlOIENPUFlSSUdIVEVEIE1BVEVSSUFMUwpTZWN0aW9uIDMxLjAxLiBV bmF1dGhvcml6ZWQgICBwaG90b2dyYXBocyAgIGFuZCAgIHNvdW5kICAgcmVjb3JkaW5ncyAg b2YKICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlcy4KICAgICAgICAzMS4wMy4g UHJvZHVjaW5nICB1bnB1Ymxpc2hlZCwgIHVuZGVkaWNhdGVkIG9yIGNvcHlyaWdodGVkIG9w ZXJhCiAgICAgICAgICAgICAgICAgICAgICBvciBkcmFtYXRpYyBjb21wb3NpdGlvbiwgd2l0 aG91dCBjb25zZW50IG9mIG93bmVyLgogICAgICAgIDMxLjA0LiBDb3B5cmlnaHRzLgogICAg ICAgIDMxLjA1LiBQcmludGluZywgICBwdWJsaXNoaW5nICBvciAgc2VsbGluZyAgY29weXJp Z2h0ZWQgIG11c2ljYWwKICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0aW9uIHdpdGhv dXQgY29uc2VudCBvZiBvd25lci4KCiAgUyAgIDMxLjAxLiAgIFVuYXV0aG9yaXplZCAgIHBo b3RvZ3JhcGhzICAgYW5kICAgc291bmQgICByZWNvcmRpbmdzICBvZgpwZXJmb3JtYW5jZXMu IDEuIERlZmluaXRpb25zLiAgVGhlICBmb2xsb3dpbmcgIHdvcmRzICBhcyAgdXNlZCAgaW4g IHRoaXMKc2VjdGlvbiBzaGFsbCBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CiAgKGEp ICAiUGVyZm9ybWFuY2UiICBzaGFsbCBtZWFuIGFueSBwcmVzZW50YXRpb24gY29uc2lzdGlu ZyBpbiB3aG9sZSBvcgppbiBwYXJ0IG9mIGEgbXVzaWNhbCwgZHJhbWF0aWMsIGRhbmNlIG9y IG90aGVyIHN0YWdlIHJlbmRpdGlvbiBieSBsaXZpbmcKcGVyc29ucyB3aG8gYXBwZWFyIGlu IHRoZSBpbW1lZGlhdGUgcHJlc2VuY2Ugb2YgdGhlaXIgYXVkaWVuY2UuCiAgKGIpICAiVGhl YXRyZSIgIHNoYWxsICBtZWFuICBhICBjb25jZXJ0IGhhbGwsIHJlY2l0YWwgaGFsbCwgdGhl YXRyZSBvcgpvdGhlciBhdWRpdG9yaXVtIGluIHdoaWNoIGEgcGVyZm9ybWFuY2UgaXMgIHJl bmRlcmVkICBhbmQgIGFkbWlzc2lvbiAgdG8Kd2hpY2ggIGlzIGxpbWl0ZWQgYnkgaXRzIG1h bmFnZW1lbnQgdG8gcGVyc29ucyBob2xkaW5nIGFkbWlzc2lvbiB0aWNrZXRzCm9yIG90aGVy IHdyaXR0ZW4gZXZpZGVuY2Ugb2YgcGVybWlzc2lvbiB0byBlbnRlci4KICAoYykgICJNYW5h Z2VtZW50IiAgc2hhbGwgbWVhbjogKGkpIHRoZSBvcGVyYXRvciBvZiBhIHRoZWF0cmU7IGFu ZCAoaWkpCndpdGggcmVzcGVjdCB0byBhIHBhcnRpY3VsYXIgcGVyZm9ybWFuY2UsIHRoZSBw ZXJzb24gaGlyaW5nIHRoZSAgdGhlYXRyZQp0byAgcHJlc2VudCAgc3VjaCAgcGVyZm9ybWFu Y2UgIHVubGVzcyAgc3VjaCBwZXJzb24gc2hhbGwgaGF2ZSBhZ3JlZWQgaW4Kd3JpdGluZyB3 aXRoIHN1Y2ggb3BlcmF0b3Igbm90IHRvIHBob3RvZ3JhcGggb3IgbWFrZSBzb3VuZCByZWNv cmRpbmdzIG9mCnN1Y2ggcGVyZm9ybWFuY2UuCiAgMi4gIE5vIHBlcnNvbiBzaGFsbCB0YWtl IGFueSBwaG90b2dyYXBoIG9yIG1ha2UgYW55IHNvdW5kIHJlY29yZGluZyBvZgphbnkgcGVy Zm9ybWFuY2UgcHJlc2VudGVkIGluIGEgdGhlYXRyZSB3aXRob3V0IGhhdmluZyBmaXJzdCBv YnRhaW5lZCB0aGUKd3JpdHRlbiAgY29uc2VudCAgb2YgIHRoZSAgbWFuYWdlbWVudCAgdG8g IGRvICBzby4gVGhlIG1hbmFnZW1lbnQgb2YgYW55CnRoZWF0cmUgbWF5IG1haW50YWluIGFu IGFjdGlvbiBmb3IgYW4gaW5qdW5jdGlvbiwgYW4gYWNjb3VudGluZywgb3IgIGZvcgpkYW1h Z2VzICByZXN1bHRpbmcgIGZyb20gIG9yICBpbiAgcmVzcGVjdCAgb2YgIGFueSAgcGhvdG9n cmFwaHMgb3Igc291bmQKcmVjb3JkaW5ncyBvZiBhbnkgcGVyZm9ybWFuY2UgbWFkZSB3aXRo b3V0IHRoZSBjb25zZW50IHJlcXVpcmVkIGJ5ICB0aGlzCnNlY3Rpb24gIGhhdmluZyAgYmVl biAgb2J0YWluZWQsICBvciByZXN1bHRpbmcgZnJvbSBvciBpbiByZXNwZWN0IG9mIGFueQpk aXN0cmlidXRpb24gb3IgYXR0ZW1wdGVkIGRpc3RyaWJ1dGlvbiBvZiBhbnkgc3VjaCBwaG90 b2dyYXBocyBvciAgc291bmQKcmVjb3JkaW5ncyBvciByZXByb2R1Y3Rpb25zIHRoZXJlb2Yu CiAgMy4gSWYgYW55IHBlcnNvbiBhZG1pdHRlZCBvciBzZWVraW5nIGFkbWlzc2lvbiB0byBh IHRoZWF0cmUgaW4gd2hpY2ggYQpwZXJmb3JtYW5jZSBpcyB0byBiZSBvciBpcyBiZWluZyBw cmVzZW50ZWQsIGF0dGVtcHRzIHRvIGJyaW5nICBpbnRvLCAgb3IKYnJpbmdzICBpbnRvICBz dWNoICB0aGVhdHJlICBhbnkgIHBob3RvZ3JhcGhpYyBvciBzb3VuZCByZWNvcmRpbmcgZGV2 aWNlCndpdGhvdXQgaGF2aW5nIGZpcnN0IG9idGFpbmVkIHRoZSB3cml0dGVuIGNvbnNlbnQg b2YgdGhlICBtYW5hZ2VtZW50ICB0bwpkbyAgc28sICBzdWNoICBtYW5hZ2VtZW50ICBzaGFs bCAgaGF2ZSAgdGhlICByaWdodCB0byByZXF1ZXN0IGFuZCBvYnRhaW4KcG9zc2Vzc2lvbiBv ZiBzdWNoIHBob3RvZ3JhcGhpYyBvciAgc291bmQgIHJlY29yZGluZyAgZGV2aWNlICB1bnRp bCAgdGhlCmNvbmNsdXNpb24gIG9mIHN1Y2ggcGVyZm9ybWFuY2UuIFRoZSBtYW5hZ2VtZW50 IHNoYWxsIGdpdmUgYSByZWNlaXB0IGZvcgpzdWNoIGRldmljZSwgYW5kIHNoYWxsIGJlIGxp YWJsZSBmb3IgYW55IGRhbWFnZSB0byBzdWNoIGRldmljZSAgb3IgIGxvc3MKb3IgdGhlZnQg b2Ygc3VjaCBkZXZpY2Ugd2hpbGUgaW4gdGhlaXIgY2FyZS4KICA0LiBJZiBhbnkgcGVyc29u IGFkbWl0dGVkIG9yIHNlZWtpbmcgYWRtaXNzaW9uIHRvIGEgdGhlYXRyZSBpbiB3aGljaCBh CnBlcmZvcm1hbmNlIGlzIHRvIGJlIG9yIGlzIGJlaW5nIHByZXNlbnRlZCwgcmVmdXNlcyBv ciBmYWlscyB0byBnaXZlICBvcgpzdXJyZW5kZXIgcG9zc2Vzc2lvbiBvZiBhbnkgcGhvdG9n cmFwaGljIG9yIHNvdW5kIHJlY29yZGluZyBkZXZpY2Ugd2hpY2gKc3VjaCBwZXJzb24gaGFz IGJyb3VnaHQgaW50byBvciBhdHRlbXB0cyAgdG8gIGJyaW5nICBpbnRvICBzdWNoICB0aGVh dHJlCndpdGhvdXQgIGhhdmluZyAgZmlyc3Qgb2J0YWluZWQgdGhlIHdyaXR0ZW4gY29uc2Vu dCBvZiB0aGUgbWFuYWdlbWVudCB0bwpkbyBzbywgdGhlbiB0aGUgbWFuYWdlbWVudCBzaGFs bCBoYXZlIHRoZSByaWdodCB0byAgcmVtb3ZlICBzdWNoICBwZXJzb24KdGhlcmVmcm9tICBv ciAgcmVmdXNlICBhZG1pc3Npb24gIHRoZXJldG8gIHRvICBzdWNoICBwZXJzb24sICBhbmQg IHNoYWxsCnRoZXJlLXVwb24gb2ZmZXIgdG8gcmVmdW5kIGFuZCwgdW5sZXNzIHN1Y2ggb2Zm ZXIgaXMgcmVmdXNlZCwgcmVmdW5kICB0bwpzdWNoIHBlcnNvbiB0aGUgcHJpY2UgcGFpZCBi eSBzdWNoIHBlcnNvbiBmb3IgYWRtaXNzaW9uIHRvIHN1Y2ggdGhlYXRyZS4KSWYgc3VjaCBw ZXJzb24gcmVmdXNlcyB0byBsZWF2ZSBzdWNoIHRoZWF0cmUgYWZ0ZXIgaGF2aW5nIGJlZW4g IGluZm9ybWVkCmJ5ICB0aGUgIG1hbmFnZW1lbnQgdGhlcmVvZiB0aGF0IHBvc3Nlc3Npb24g b2YgYW55IHBob3RvZ3JhcGhpYyBvciBzb3VuZApyZWNvcmRpbmcgZGV2aWNlIGluIHN1Y2gg dGhlYXRyZSB3aXRob3V0ICB0aGUgIHdyaXR0ZW4gIGNvbnNlbnQgIG9mICB0aGUKbWFuYWdl bWVudCAgaXMgIHByb2hpYml0ZWQsICB0aGVuICBzdWNoICBwZXJzb24gIHNoYWxsICBiZSAg ZGVlbWVkIHRvIGJlCnJlbWFpbmluZyBpbiB0aGUgdGhlYXRyZSB1bmxhd2Z1bGx5IHdpdGhp biB0aGUgIG1lYW5pbmcgIG9mICBzdWJkaXZpc2lvbgpmaXZlICBvZiAgc2VjdGlvbiAgMTQw LjAwICBhbmQgIHNlY3Rpb24gIDE0MC4wNSBvZiB0aGUgcGVuYWwgbGF3LCBhbmQgaW4KYWRk aXRpb24sIHRoZSBtYW5hZ2VtZW50IHNoYWxsIGhhdmUgdGhlIHJpZ2h0IHRvIG1haW50YWlu IGFuICBhY3Rpb24gIGluCnRyZXNwYXNzIGFuZCBmb3IgcHVuaXRpdmUgZGFtYWdlcyBhZ2Fp bnN0IHN1Y2ggcGVyc29uLgogIDUuICBUaGUgY3JpbWluYWwgcGVuYWx0aWVzIGFuZCBjaXZp bCByZW1lZGllcyBwcm92aWRlZCBieSB0aGlzIHNlY3Rpb24Kc2hhbGwgYmUgd2l0aG91dCBm b3JjZSBvciBlZmZlY3QgdW5sZXNzIHRoZSBtYW5hZ2VtZW50ICBvZiAgdGhlICB0aGVhdHJl CnNoYWxsICBoYXZlICBwb3N0ZWQgIHNpZ25zIGF0IHRoZSBib3ggb2ZmaWNlIGFuZCBhdCBv ciBuZWFyIHRoZSBhdWRpZW5jZQplbnRyYW5jZSB0byB0aGUgcG9ydGlvbiBvZiB0aGUgdGhl YXRyZSB3aGVyZWluIHRoZSBwZXJmb3JtYW5jZSBpcyB0byAgYmUKcHJlc2VudGVkICBhbmQg IHByaW50ZWQgIGluICBhbnkgIHByb2dyYW0gIHdoaWNoIG1heSBiZSBmdXJuaXNoZWQgdG8g dGhlCmF1ZGllbmNlIGZvciBzdWNoIHBlcmZvcm1hbmNlLCBzdGF0aW5nIGluIHN1YnN0YW5j ZSBhcyBmb2xsb3dzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXQVJOSU5H CiAgVGhlICBwaG90b2dyYXBoaW5nICBvciAgc291bmQgIHJlY29yZGluZyAgb2YgIGFueSAg cGVyZm9ybWFuY2UgIG9yIHRoZQpwb3NzZXNzaW9uIG9mIGFueSBkZXZpY2UgIGZvciAgc3Vj aCAgcGhvdG9ncmFwaGluZyAgb3IgIHNvdW5kICByZWNvcmRpbmcKaW5zaWRlIHRoaXMgdGhl YXRyZSwgd2l0aG91dCB0aGUgd3JpdHRlbiBwZXJtaXNzaW9uIG9mIHRoZSBtYW5hZ2VtZW50 IGlzCnByb2hpYml0ZWQgYnkgbGF3LiBPZmZlbmRlcnMgbWF5IGJlIGVqZWN0ZWQgYW5kIGxp YWJsZSBmb3IgIGRhbWFnZXMgIGFuZApvdGhlciBsYXdmdWwgcmVtZWRpZXMuCgogIFMgIDMx LjAzLiAgUHJvZHVjaW5nICB1bnB1Ymxpc2hlZCwgdW5kZWRpY2F0ZWQgb3IgY29weXJpZ2h0 ZWQgb3BlcmEgb3IKZHJhbWF0aWMgY29tcG9zaXRpb24sIHdpdGhvdXQgY29uc2VudCBvZiBv d25lci4gQW55IHBlcnNvbiB3aG8gY2F1c2VzIHRvCmJlICBwdWJsaWNseSAgcGVyZm9ybWVk ICBvciAgcmVwcmVzZW50ZWQgIGZvciAgcHJvZml0ICBhbnkgIHVucHVibGlzaGVkLAp1bmRl ZGljYXRlZCBvciBjb3B5cmlnaHRlZCBkcmFtYXRpYyBjb21wb3NpdGlvbiwgb3IgbXVzaWNh bCAgY29tcG9zaXRpb24Ka25vd24gIGFzICBhbiAgb3BlcmEsIHdpdGhvdXQgdGhlIGNvbnNl bnQgb2YgaXRzIG93bmVyIG9yIHByb3ByaWV0b3IsIG9yCndobywga25vd2luZyB0aGF0IHN1 Y2ggZHJhbWF0aWMgb3IgbXVzaWNhbCBjb21wb3NpdGlvbiAgaXMgIHVucHVibGlzaGVkLAp1 bmRlZGljYXRlZCAgb3IgIGNvcHlyaWdodGVkICBhbmQgIHdpdGhvdXQgIHRoZSAgY29uc2Vu dCBvZiBpdHMgb3duZXIgb3IKcHJvcHJpZXRvciwgcGVybWl0cywgYWlkcyAgb3IgIHRha2Vz ICBwYXJ0ICBpbiAgc3VjaCAgYSAgcGVyZm9ybWFuY2UgIG9yCnJlcHJlc2VudGF0aW9uLCBz aGFsbCBiZSBndWlsdHkgb2YgYSBtaXNkZW1lYW5vci4KCiAgUyAzMS4wNC4gQ29weXJpZ2h0 cy4gMS4gQXMgdXNlZCBpbiB0aGlzIHNlY3Rpb246CiAgKGEpICAiQ29weXJpZ2h0IG93bmVy IiBtZWFucyB0aGUgb3duZXIgb2YgYSBjb3B5cmlnaHQgb2YgYSBub25kcmFtYXRpYwptdXNp Y2FsIHdvcmsgcmVjb2duaXplZCBhbmQgZW5mb3JjZWFibGUgdW5kZXIgdGhlIGNvcHlyaWdo dCBsYXdzIG9mICB0aGUKVW5pdGVkICBTdGF0ZXMgIHB1cnN1YW50ICB0byBUaXRsZSAxNyBv ZiB0aGUgVW5pdGVkIFN0YXRlcyBDb2RlLCBQdWIuIEwuCjk0LTU1MyAoMTcgVS5TLkMuIFMg MTAxIGV0IHNlcS4pLiAiQ29weXJpZ2h0IG93bmVyIiAgc2hhbGwgIG5vdCAgaW5jbHVkZQp0 aGUgIG93bmVyIG9mIGEgY29weXJpZ2h0IGluIGEgbW90aW9uIHBpY3R1cmUgb3IgYXVkaW92 aXN1YWwgd29yaywgb3IgaW4KcGFydCBvZiBhIG1vdGlvbiBwaWN0dXJlIG9yIGF1ZGlvdmlz dWFsIHdvcmsuCiAgKGIpICAiUGVyZm9ybWluZyAgcmlnaHRzICBzb2NpZXR5IiBtZWFucyBh biBhc3NvY2lhdGlvbiBvciBjb3Jwb3JhdGlvbgp0aGF0IGxpY2Vuc2VzIHRoZSBwdWJsaWMg cGVyZm9ybWFuY2Ugb2YgIG5vbmRyYW1hdGljICBtdXNpY2FsICB3b3JrcyAgb24KYmVoYWxm ICBvZiAgY29weXJpZ2h0IG93bmVycywgc3VjaCBhcyB0aGUgQW1lcmljYW4gU29jaWV0eSBv ZiBDb21wb3NlcnMsCkF1dGhvcnMgYW5kIFB1Ymxpc2hlcnMgKEFTQ0FQKSwgQnJvYWRjYXN0 IE11c2ljLCBJbmMuIChCTUkpLCBhbmQgIFNFU0FDLApJbmMuCiAgKGMpICAgIlByb3ByaWV0 b3IiICAgbWVhbnMgICB0aGUgIG93bmVyICBvZiAgYSAgcmV0YWlsICBlc3RhYmxpc2htZW50 LApyZXN0YXVyYW50LCBpbm4sIGJhciwgdGF2ZXJuLCBvciBhbnkgb3RoZXIgc2ltaWxhciBw bGFjZSBvZiBidXNpbmVzcyAgb3IKcHJvZmVzc2lvbmFsICBvZmZpY2UgIGxvY2F0ZWQgIGlu ICB0aGlzICBzdGF0ZSAgaW4gIHdoaWNoIHRoZSBwdWJsaWMgbWF5CmFzc2VtYmxlIGFuZCBp biAgd2hpY2ggIG5vbmRyYW1hdGljICBtdXNpY2FsICB3b3JrcyAgbWF5ICBiZSAgcGVyZm9y bWVkLApicm9hZGNhc3QsIG9yIG90aGVyd2lzZSB0cmFuc21pdHRlZC4KICAoZCkgICJSb3lh bHR5IiAgb3IgICJyb3lhbHRpZXMiIG1lYW5zIHRoZSBmZWVzIHBheWFibGUgdG8gYSBwZXJm b3JtaW5nCnJpZ2h0cyBzb2NpZXR5IGZvciBwdWJsaWMgcGVyZm9ybWFuY2UgcmlnaHRzLgog IDIuICBObyAgcGVyZm9ybWluZyAgcmlnaHRzIHNvY2lldHkgc2hhbGwgZW50ZXIgaW50bywg b3Igb2ZmZXIgdG8gZW50ZXIKaW50bywgYSBjb250cmFjdCBmb3IgdGhlIHBheW1lbnQgb2Yg cm95YWx0aWVzIGJ5IGEgcHJvcHJpZXRvciB1bmxlc3MgIGF0CnRoZSAgdGltZSAgb2YgIHRo ZSAgb2ZmZXIsICBvciAgYW55ICB0aW1lICB0aGVyZWFmdGVyLCBidXQgbm8gbGF0ZXIgdGhh bgpzZXZlbnR5LXR3byBob3VycyBwcmlvciB0byB0aGUgZXhlY3V0aW9uIG9mIHRoYXQgY29u dHJhY3QsICBpdCAgcHJvdmlkZXMKdG8gdGhlIHByb3ByaWV0b3IgaW4gd3JpdGluZywgdGhl IGZvbGxvd2luZzoKICAoYSkgYSBzY2hlZHVsZSBvZiB0aGUgcmF0ZXMgYW5kIHRlcm1zIG9m IHJveWFsdGllcyB1bmRlciB0aGUgY29udHJhY3Q7CiAgKGIpICB1cG9uIHRoZSByZXF1ZXN0 IG9mIHRoZSBwcm9wcmlldG9yLCB0aGUgb3Bwb3J0dW5pdHkgdG8gcmV2aWV3IHRoZQptb3N0 IGN1cnJlbnQgYXZhaWxhYmxlIGxpc3Qgb2YgdGhlIG1lbWJlcnMgb3IgYWZmaWxpYXRlcyBy ZXByZXNlbnRlZCAgYnkKdGhlIHNvY2lldHk7CiAgKGMpICBub3RpY2UgIHRoYXQgIGl0IHdp bGwgbWFrZSBhdmFpbGFibGUsIHVwb24gd3JpdHRlbiByZXF1ZXN0IG9mIGFueQpwcm9wcmll dG9yIG9yICBib25hICBmaWRlICB0cmFkZSAgYXNzb2NpYXRpb25zICByZXByZXNlbnRpbmcg IGdyb3VwcyAgb2YKcHJvcHJpZXRvcnMsICBhdCAgdGhlICBzb2xlIGV4cGVuc2Ugb2YgdGhl IHByb3ByaWV0b3Igb3IgYm9uYSBmaWRlIHRyYWRlCmFzc29jaWF0aW9ucyByZXByZXNlbnRp bmcgZ3JvdXBzIG9mIHByb3ByaWV0b3JzIGJ5IGVsZWN0cm9uaWMgIG1lYW5zICBvcgpvdGhl cndpc2UsIHRoZSBtb3N0IGN1cnJlbnQgYXZhaWxhYmxlIGxpc3Rpbmcgb2YgdGhlIGNvcHly aWdodGVkIG11c2ljYWwKd29ya3MgaW4gc3VjaCBwZXJmb3JtaW5nIHJpZ2h0cyBzb2NpZXR5 YHMgcmVwZXJ0b3J5LCBwcm92aWRlZCB0aGF0ICBzdWNoCm5vdGljZSBzaGFsbCBzcGVjaWZ5 IHRoZSBtZWFuIGJ5IHdoaWNoIHN1Y2ggaW5mb3JtYXRpb24gY2FuIGJlIHNlY3VyZWQ7CiAg KGQpICBub3RpY2UgIHRoYXQgIHRoZSAgcGVyZm9ybWluZyAgcmlnaHRzICBzb2NpZXR5ICBo YXMgIGEgIHRvbGwgZnJlZQp0ZWxlcGhvbmUgbnVtYmVyIHdoaWNoIGNhbiBiZSB1c2VkIHRv IGFuc3dlciBpbnF1aXJpZXMgb2YgIGEgIHByb3ByaWV0b3IKcmVnYXJkaW5nIHNwZWNpZmlj IG11c2ljYWwgd29ya3MgYW5kIHRoZSBjb3B5cmlnaHQgb3duZXJzIHJlcHJlc2VudGVkIGJ5 CnRoYXQgcGVyZm9ybWluZyByaWdodHMgc29jaWV0eTsgYW5kCiAgKGUpICBub3RpY2UgIHRo YXQgIGl0ICBjb21wbGllcyAgd2l0aCBmZWRlcmFsIGxhdyBhbmQgb3JkZXJzIG9mIGNvdXJ0 cwpoYXZpbmcgIGFwcHJvcHJpYXRlICBqdXJpc2RpY3Rpb24gIHJlZ2FyZGluZyAgdGhlICBy YXRlcyAgYW5kICB0ZXJtcyAgb2YKcm95YWx0aWVzICBhbmQgIHRoZSAgY2lyY3Vtc3RhbmNl cyAgdW5kZXIgIHdoaWNoIGxpY2Vuc2VzIGZvciByaWdodHMgZm9yCnB1YmxpYyBwZXJmb3Jt YW5jZXMgYXJlIG9mZmVyZWQgdG8gYW55IHByb3ByaWV0b3IuCiAgMy4gIEV2ZXJ5ICBjb250 cmFjdCBiZXR3ZWVuIGEgcGVyZm9ybWluZyByaWdodHMgc29jaWV0eSBhbmQgcHJvcHJpZXRv cgpmb3IgdGhlIHBheW1lbnQgb2YgdGhlIHJveWFsdGllcyBleGVjdXRlZCAgaXNzdWVkICBv ciAgcmVuZXdlZCAgaW4gIHRoaXMKc3RhdGUgb24gb3IgYWZ0ZXIgdGhlIGVmZmVjdGl2ZSBk YXRlIG9mIHRoaXMgc2VjdGlvbiBzaGFsbDoKICAoYSkgYmUgaW4gd3JpdGluZzsKICAoYikg YmUgc2lnbmVkIGJ5IHRoZSBwYXJ0aWVzOyBhbmQKICAoYykgaW5jbHVkZSBhdCBsZWFzdCB0 aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgogICgxKSAgdGhlICBwcm9wcmlldG9yYHMgIG5h bWUgIGFuZCAgYnVzaW5lc3MgIGFkZHJlc3MgIGFuZCB0aGUgbmFtZSBhbmQKbG9jYXRpb24g b2YgZWFjaCBwbGFjZSBvZiBidXNpbmVzcyB0byB3aGljaCB0aGUgY29udHJhY3QgYXBwbGll czsKICAoMikgdGhlIG5hbWUgYW5kIGFkZHJlc3Mgb2YgdGhlIHBlcmZvcm1pbmcgcmlnaHRz IHNvY2lldHk7CiAgKDMpIHRoZSBkdXJhdGlvbiBvZiB0aGUgY29udHJhY3Q7IGFuZAogICg0 KSAgdGhlICBzY2hlZHVsZSBvZiByYXRlcyBhbmQgdGVybXMgb2YgdGhlIHJveWFsdGllcyB0 byBiZSBjb2xsZWN0ZWQKdW5kZXIgdGhlIGNvbnRyYWN0LCBpbmNsdWRpbmcgYW55IHNsaWRp bmcgIHNjYWxlICBvciAgc2NoZWR1bGUgIGZvciAgYW55CmluY3JlYXNlIG9yIGRlY3JlYXNl IG9mIHRob3NlIHJhdGVzIGZvciB0aGUgZHVyYXRpb24gb2YgdGhhdCBjb250cmFjdC4KICA0 LiAgTm8gIHBlcmZvcm1pbmcgIHJpZ2h0cyAgc29jaWV0eSwgIG9yIGFueSBhZ2VudCBvciBl bXBsb3llZSB0aGVyZW9mCnNoYWxsOgogIChhKSAgd2l0aCByZXNwZWN0IHRvIGNvbnRyYWN0 cyBleGVjdXRlZCwgaXNzdWVkIG9yIHJlbmV3ZWQgb24gb3IgYWZ0ZXIKdGhlIGVmZmVjdGl2 ZSBkYXRlIG9mIHRoaXMgc2VjdGlvbiwgY29sbGVjdCBvciBhdHRlbXB0IHRvIGNvbGxlY3Qg ZnJvbSBhCnByb3ByaWV0b3IgIGxpY2Vuc2VkIGJ5IHRoYXQgcGVyZm9ybWluZyByaWdodHMg c29jaWV0eSBhIHJveWFsdHkgcGF5bWVudApleGNlcHQgYXMgcHJvdmlkZWQgaW4gYSBjb250 cmFjdCBleGVjdXRlZCBwdXJzdWFudCB0byB0aGUgcHJvdmlzaW9ucyAgb2YKdGhpcyBzZWN0 aW9uOwogIChiKSBlbnRlciBvbnRvIHRoZSBwcmVtaXNlcyBvZiBhIHByb3ByaWV0b3JgcyBi dXNpbmVzcyBmb3IgdGhlIHB1cnBvc2UKb2YgZGlzY3Vzc2luZyBhIGNvbnRyYWN0ICBmb3Ig IHBheW1lbnQgIG9mICByb3lhbHRpZXMgIGZvciAgdGhlICB1c2UgIG9mCmNvcHlyaWdodGVk ICB3b3JrcyAgYnkgdGhhdCBwcm9wcmlldG9yIHdpdGhvdXQgZmlyc3QgaWRlbnRpZnlpbmcg aGltc2VsZgpvciBoZXJzZWxmIHRvIHRoZSBwcm9wcmlldG9yIG9yIGhpcyBvciBoZXIgZW1w bG95ZWVzIGFuZCBkaXNjbG9zaW5nIHRoYXQKdGhlICBhZ2VudCAgaXMgIGFjdGluZyAgb24g IGJlaGFsZiBvZiBzdWNoIHBlcmZvcm1pbmcgcmlnaHRzIHNvY2lldHkgYW5kCmRpc2Nsb3Np bmcgdGhlIHB1cnBvc2Ugb2YgdGhlIGRpc2N1c3Npb247IGFuZAogIChjKSAgZmFpbCAgdG8g IHByb3ZpZGUgIHdyaXR0ZW4gIG5vdGljZSAgdG8gYSBwcm9wcmlldG9yIG9yIGhpcyBvciBo ZXIKZW1wbG95ZWVzIHdpdGhpbiAgc2V2ZW50eS10d28gIGhvdXJzICBhZnRlciAgZW50ZXJp bmcgIHRoZSAgcHJvcHJpZXRvcmBzCmJ1c2luZXNzICBmb3IgIHRoZSAgcHVycG9zZSAgb2Yg IGludmVzdGlnYXRpbmcgdGhlIHBvc3NpYmxlIHBlcmZvcm1hbmNlLApicm9hZGNhc3Rpbmcg IG9yICB0cmFuc21pc3Npb24gIG9mICBub24tZHJhbWF0aWMgIG11c2ljYWwgICB3b3Jrcywg ICBhbmQKZGlzY2xvc2luZyAgdGhhdCAgc3VjaCAgYWdlbnQgb3IgZW1wbG95ZWUgd2FzIGlu dmVzdGlnYXRpbmcgb24gYmVoYWxmIG9mCnN1Y2ggcGVyZm9ybWluZyByaWdodHMgc29jaWV0 eSBhbmQgZGlzY2xvc2luZzoKICAoMSkgdGhlIG5hbWUgb2YgdGhlIHBlcmZvcm1pbmcgcmln aHRzIHNvY2lldHk7CiAgKDIpICAgdGhlICAgZGF0ZSAgb24gIHdoaWNoICBzdWNoICBhZ2Vu dCAgb3IgIGVtcGxveWVlICBjb25kdWN0ZWQgIHRoZQppbnZlc3RpZ2F0aW9uOyBhbmQKICAo MykgICB0aGUgIGNvcHlyaWdodGVkICB3b3JrcyAgaW4gIHN1Y2ggIHBlcmZvcm1pbmcgIHJp Z2h0cyAgc29jaWV0eWBzCnJlcGVydG9yeSBwZXJmb3JtZWQgYXQgdGhlIGJ1c2luZXNzIGR1 cmluZyB0aGUgaW52ZXN0aWdhdGlvbi4KICA1LiAgIEFueSAgcGVyc29uICB3aG8gc3VmZmVy cyBhIHZpb2xhdGlvbiBvZiB0aGlzIHNlY3Rpb24gbWF5IGJyaW5nIGFuCmFjdGlvbiB0byBy ZWNvdmVyIGFjdHVhbCBkYW1hZ2VzIGFuZCByZWFzb25hYmxlIGF0dG9ybmV5YHMgZmVlcyBh bmQgc2VlawphbiAgaW5qdW5jdGlvbiAgb3IgYW55IG90aGVyIHJlbWVkeSBhdmFpbGFibGUg YXQgbGF3IG9yIGluIGVxdWl0eS4gIFRoaXMKc2VjdGlvbiBzaGFsbCBub3QgYXBwbHkgdG8g Y29udHJhY3RzIGJldHdlZW4gcGVyZm9ybWluZyByaWdodHMgc29jaWV0aWVzCmFuZCBicm9h ZGNhc3RlcnMgbGljZW5zZWQgYnkgdGhlIGZlZGVyYWwgY29tbXVuaWNhdGlvbnMgY29tbWlz c2lvbiBvciB0bwpjb250cmFjdHMgIHdpdGggIGNhYmxlICBvcGVyYXRvcnMsICBwcm9ncmFt bWVycyAgb3IgIG90aGVyICB0cmFuc21pc3Npb24Kc2VydmljZXMuICBUaGlzIHNlY3Rpb24g c2hhbGwgYWxzbyBub3QgYXBwbHkgdG8gaW52ZXN0aWdhdGlvbnMgY29uZHVjdGVkCmJ5IGxh dyBlbmZvcmNlbWVudCBhZ2VuY2llcyBvciBvdGhlciBwZXJzb25zIHdpdGggcmVzcGVjdCB0 byBhIHN1c3BlY3RlZAp2aW9sYXRpb24gb2YgYXJ0aWNsZSB0d28gaHVuZHJlZCBzZXZlbnR5 LWZpdmUgb2YgdGhlIHBlbmFsIGxhdy4KCiAgUyAgIDMxLjA1LiAgIFByaW50aW5nLCAgIHB1 Ymxpc2hpbmcgIG9yICBzZWxsaW5nICBjb3B5cmlnaHRlZCAgbXVzaWNhbApjb21wb3NpdGlv biB3aXRob3V0IGNvbnNlbnQgb2Ygb3duZXIuIFdob2V2ZXIgcHJpbnRzLCBwdWJsaXNoZXMs ICBzZWxscywKZGlzdHJpYnV0ZXMgIG9yICBjaXJjdWxhdGVzLCAgb3IgIGNhdXNlcyB0byBi ZSBwcmludGVkLCBwdWJsaXNoZWQsIHNvbGQsCmRpc3RyaWJ1dGVkIG9yIGNpcmN1bGF0ZWQg IGZvciAgcHJvZml0ICBhbnkgIGNpcmN1bGFyLCAgcGFtcGhsZXQsICBjYXJkLApoYW5kYmls bCwgICBhZHZlcnRpc2VtZW50LCAgcHJpbnRlZCAgcGFwZXIsICBib29rLCAgbmV3c3BhcGVy ICBvciAgb3RoZXIKZG9jdW1lbnQgIGNvbnRhaW5pbmcgIHRoZSAgd29yZHMgIG9yICBtdXNp Y2FsICBzY29yZSAgb2YgICBhbnkgICBtdXNpY2FsCmNvbXBvc2l0aW9uICB3aGljaCBvciBh bnkgcGFydCBvZiB3aGljaCBpcyBjb3B5cmlnaHRlZCB1bmRlciB0aGUgbGF3cyBvZgp0aGUg VW5pdGVkIFN0YXRlcywgd2l0aG91dCBmaXJzdCBoYXZpbmcgIG9idGFpbmVkICB0aGUgIGNv bnNlbnQgIG9mICB0aGUKb3duZXIgIG9yICBwcm9wcmlldG9yIG9mIHN1Y2ggY29weXJpZ2h0 ZWQgbXVzaWNhbCBjb21wb3NpdGlvbiwgaXMgZ3VpbHR5Cm9mIGEgbWlzZGVtZWFub3IuCgoK Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk5ldyBZb3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFy dHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRJVExFIEsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSQURFLU1BUktT CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk5ldyBZb3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdz CkFydHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMKCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBUlRJQ0xFIDMzCiAgICAgICAgICAgICAgICAgICAgICBPRkZFTlNFUyBBR0FJTlNU IFRSQURFLU1BUktTClNlY3Rpb24gMzMuMDEuIFRyYWRlLW1hcmsgZGVmaW5lZC4KICAgICAg ICAzMy4wMy4gQWZmaXhpbmcgZGVmaW5lZC4KICAgICAgICAzMy4wNS4gQXJ0aWNsZSBvZiBt ZXJjaGFuZGlzZSBkZWZpbmVkLgogICAgICAgIDMzLjA3LiBJbWl0YXRpb24gb2YgYSB0cmFk ZS1tYXJrIGRlZmluZWQuCiAgICAgICAgMzMuMDkuIE9mZmVuc2VzIGFnYWluc3QgdHJhZGUt bWFya3MuCiAgICAgICAgMzMuMTEuIFJlZmlsbGluZyBvciBzZWxsaW5nIHRyYWRlLW1hcmsg Ym90dGxlcyBhbmQgdmVzc2Vscy4KICAgICAgICAzMy4xMy4gS2VlcGluZyAgdHJhZGUtbWFy ayAgYm90dGxlcyAgYW5kICB2ZXNzZWxzIHdpdGggaW50ZW50IHRvCiAgICAgICAgICAgICAg ICAgICAgcmVmaWxsIG9yIHNlbGwgdGhlbS4KICAgICAgICAzMy4xNS4gU2VhcmNoICAgZm9y ICB0cmFkZS1tYXJrICBib3R0bGVzICBhbmQgIHZlc3NlbHMgIGtlcHQgIGluCiAgICAgICAg ICAgICAgICAgICAgdmlvbGF0aW9uIG9mIGxhdyBhdXRob3JpemVkLgoKICBTICAzMy4wMS4g ICBUcmFkZS1tYXJrICBkZWZpbmVkLiAgIEEgICJ0cmFkZS1tYXJrIiAgaXMgIGEgbWFyayB1 c2VkIHRvCmluZGljYXRlIHRoZSBtYWtlciwgb3duZXIgb3Igc2VsbGVyIG9mIGFuIGFydGlj bGUgIG9mICBtZXJjaGFuZGlzZSwgIGFuZAppbmNsdWRlcywgIGFtb25nICBvdGhlciB0aGlu Z3MsIGFueSBuYW1lIG9mIGEgcGVyc29uLCBvciBjb3Jwb3JhdGlvbiwgb3IKYW55IGxldHRl ciwgd29yZCwgZGV2aWNlLCBlbWJsZW0sIGZpZ3VyZSwgc2VhbCwgc3RhbXAsICBkaWFncmFt LCAgYnJhbmQsCndyYXBwZXIsIHRpY2tldCwgc3RvcHBlciwgbGFiZWwsIG9yIG90aGVyIG1h cmssIGxhd2Z1bGx5IGFkb3B0ZWQgYnkgaGltLAphbmQgdXN1YWxseSBhZmZpeGVkIHRvIGFu IGFydGljbGUgb2YgbWVyY2hhbmRpc2UgdG8gZGVub3RlIHRoYXQgdGhlIHNhbWUKd2FzICBp bXBvcnRlZCwgbWFudWZhY3R1cmVkLCBwcm9kdWNlZCwgc29sZCwgY29tcG91bmRlZCwgYm90 dGxlZCwgcGFja2VkCm9yIG90aGVyd2lzZSBwcmVwYXJlZCBieSBoaW07IGFuZCBhbHNvIGEg IHNpZ25hdHVyZSAgb3IgIG1hcmssICB1c2VkICBvcgpjb21tb25seSBwbGFjZWQgYnkgYSBw YWludGVyLCBzY3VscHRvciBvciBvdGhlciBhcnRpc3QsIHVwb24gYSBwYWludGluZywKZHJh d2luZywgZW5ncmF2aW5nLCBzdGF0dWUgb3Igb3RoZXIgd29yayBvZiBhcnQsIHRvICBpbmRp Y2F0ZSAgdGhhdCAgdGhlCnNhbWUgd2FzIGRlc2lnbmVkIG9yIGV4ZWN1dGVkIGJ5IGhpbS4K CiAgUyAgMzMuMDMuICAgQWZmaXhpbmcgZGVmaW5lZC4gIEEgdHJhZGUtbWFyayBpcyBkZWVt ZWQgdG8gYmUgYWZmaXhlZCB0bwphbiBhcnRpY2xlIG9mIG1lcmNoYW5kaXNlLCB3aGVuIGl0 IGlzIHBsYWNlZCBpbiBhbnkgbWFubmVyIGluIG9yIHVwb246CiAgMS4gVGhlIGFydGljbGUg aXRzZWxmOyBvcgogIDIuICBBICBib3gsIGJhbGUsIGJhcnJlbCwgYm90dGxlLCBjYXNlLCBj YXNrLCBwbGF0dGVyLCBvciBvdGhlciB2ZXNzZWwKb3IgcGFja2FnZSwgb3IgYSBjb3Zlciwg d3JhcHBlciwgc3RvcHBlciwgYnJhbmQsIGxhYmVsLCBvciAgb3RoZXIgIHRoaW5nCmluLCAg YnkgIG9yICB3aXRoICB3aGljaCAgdGhlICBnb29kcyAgYXJlICBwYWNrZWQsIGluY2xvc2Vk IG9yIG90aGVyd2lzZQpwcmVwYXJlZCBmb3Igc2FsZSBvciBkaXNwb3NpdGlvbi4KCiAgUyAg MzMuMDUuICBBcnRpY2xlIG9mIG1lcmNoYW5kaXNlIGRlZmluZWQuICBUaGUgZXhwcmVzc2lv biAiYXJ0aWNsZSBvZgptZXJjaGFuZGlzZSwgIiBhcyB1c2VkIGluIHRoZSAgcHJlY2VkaW5n ICB0d28gIHNlY3Rpb25zLCAgc2lnbmlmaWVzICBhbnkKZ29vZHMsICB3YXJlcywgIHdvcmsg IG9mICBhcnQsICBjb21tb2RpdHksICBjb21wb3VuZCwgIG1peHR1cmUgIG9yIG90aGVyCnBy ZXBhcmF0aW9uIG9yIHRoaW5nLCB3aGljaCBtYXkgYmUgbGF3ZnVsbHkga2VwdCBvciBvZmZl cmVkIGZvciBzYWxlLgoKICBTICAzMy4wNy4gIEltaXRhdGlvbiAgb2YgIGEgIHRyYWRlLW1h cmsgIGRlZmluZWQuICBBbiAgImltaXRhdGlvbiBvZiBhCnRyYWRlLW1hcmsiIGlzIHRoYXQg d2hpY2ggc28gZmFyIHJlc2VtYmxlcyBhIGdlbnVpbmUgdHJhZGUtbWFyayBhcyB0byBiZQps aWtlbHkgIHRvICBpbmR1Y2UgIHRoZSBiZWxpZWYgdGhhdCBpdCBpcyBnZW51aW5lLCB3aGV0 aGVyIGJ5IHRoZSB1c2Ugb2YKd29yZHMgb3IgbGV0dGVycywgc2ltaWxhciBpbiBhcHBlYXJh bmNlIG9yIGluIHNvdW5kLCAgb3IgIGJ5ICBhbnkgIHNpZ24sCmRldmljZSBvciBvdGhlciBt ZWFucyB3aGF0c29ldmVyLgoKICBTIDMzLjA5LiBPZmZlbnNlcyBhZ2FpbnN0IHRyYWRlLW1h cmtzLiBBIHBlcnNvbiB3aG86CiAgMS4gRmFsc2VseSBtYWtlcyBvciBjb3VudGVyZmVpdHMg YSB0cmFkZS1tYXJrOyBvcgogIDIuICBBZmZpeGVzICB0byAgYW55ICBhcnRpY2xlICBvZiAg bWVyY2hhbmRpc2UsIGEgZmFsc2Ugb3IgY291bnRlcmZlaXQKdHJhZGUtbWFyaywga25vd2lu ZyB0aGUgc2FtZSB0byBiZSBmYWxzZSBvciBjb3VudGVyZmVpdCwgb3IgdGhlICBnZW51aW5l CnRyYWRlLW1hcmssICBvciAgYW4gIGltaXRhdGlvbiBvZiB0aGUgdHJhZGUtbWFyayBvZiBh bm90aGVyLCB3aXRob3V0IHRoZQpsYXR0ZXJgcyBjb25zZW50OyBvcgogIDMuICBLbm93aW5n bHkgIHNlbGxzLCAgb3IgIGtlZXBzICBvciAgb2ZmZXJzICBmb3IgIHNhbGUsIGFuIGFydGlj bGUgb2YKbWVyY2hhbmRpc2UgdG8gd2hpY2ggaXMgYWZmaXhlZCBhIGZhbHNlIG9yICBjb3Vu dGVyZmVpdCAgdHJhZGUtbWFyaywgIG9yCnRoZSAgZ2VudWluZSAgdHJhZGUtbWFyaywgIG9y IGFuIGltaXRhdGlvbiBvZiB0aGUgdHJhZGUtbWFyayBvZiBhbm90aGVyLAp3aXRob3V0IHRo ZSBsYXR0ZXJgcyBjb25zZW50OyBvcgogIDQuICBIYXMgIGluICBoaXMgcG9zc2Vzc2lvbiBh IGNvdW50ZXJmZWl0IHRyYWRlLW1hcmssIGtub3dpbmcgaXQgdG8gYmUKY291bnRlcmZlaXQs IG9yIGEgZGllLCBwbGF0ZSwgYnJhbmQgb3Igb3RoZXIgdGhpbmcgZm9yICB0aGUgIHB1cnBv c2UgIG9mCmZhbHNlbHkgbWFraW5nIG9yIGNvdW50ZXJmZWl0aW5nIGEgdHJhZGUtbWFyazsg b3IKICA1LiAgTWFrZXMgIG9yICBzZWxscywgIG9yICBvZmZlcnMgdG8gc2VsbCBvciBkaXNw b3NlIG9mLCBvciBoYXMgaW4gaGlzCnBvc3Nlc3Npb24gd2l0aCBpbnRlbnQgdG8gc2VsbCBv ciBkaXNwb3NlIG9mLCBhbiBhcnRpY2xlIG9mICBtZXJjaGFuZGlzZQp3aXRoICBzdWNoICBh IHRyYWRlLW1hcmsgb3IgbGFiZWwgYXMgdG8gYXBwZWFyIHRvIGluZGljYXRlIHRoZSBxdWFu dGl0eSwKcXVhbGl0eSwgY2hhcmFjdGVyLCBwbGFjZSAgb2YgIG1hbnVmYWN0dXJlICBvciAg cHJvZHVjdGlvbiwgIG9yICBwZXJzb25zCm1hbnVmYWN0dXJpbmcsICBwYWNraW5nLCAgYm90 dGxpbmcsIGJveGluZyBvciBwcm9kdWNpbmcgdGhlIGFydGljbGUsIGJ1dApub3QgaW5kaWNh dGluZyBpdCB0cnVseTsgb3IKICA2LiAgS25vd2luZ2x5ICBzZWxscywgIG9mZmVycyBvciBl eHBvc2VzIGZvciBzYWxlLCBhbnkgZ29vZHMgd2hpY2ggYXJlCnJlcHJlc2VudGVkIGluIGFu eSBtYW5uZXIsIGJ5IHdvcmQgIG9yICBkZWVkLCAgdG8gIGJlICB0aGUgIG1hbnVmYWN0dXJl LApwYWNraW5nLCBib3R0bGluZywgYm94aW5nIG9yIHByb2R1Y3Qgb2YgYW55IHBlcnNvbiwg ZmlybSBvciBjb3Jwb3JhdGlvbiwKb3RoZXIgdGhhbiBoaW1zZWxmLCB1bmxlc3Mgc3VjaCBn b29kcyAgYXJlICBjb250YWluZWQgIGluICB0aGUgIG9yaWdpbmFsCnBhY2thZ2UsICBib3gg IG9yICBib3R0bGUgIGFuZCAgdW5kZXIgIHRoZSBsYWJlbHMsIG1hcmtzIG9yIG5hbWVzIHBs YWNlZAp0aGVyZW9uIGJ5IHRoZSBtYW51ZmFjdHVyZXIgd2hvIGlzIGVudGl0bGVkIHRvIHVz ZSAgc3VjaCAgbWFya3MsICBuYW1lcywKYnJhbmRzIG9yIHRyYWRlLW1hcmtzOyBvcgogIDcu ICBTaGFsbCBzZWxsIG9yIHNoYWxsIGV4cG9zZSBmb3Igc2FsZSBhbnkgZ29vZHMgaW4gYnVs aywgdG8gd2hpY2ggbm8KbGFiZWwgb3IgdHJhZGUtbWFyayBzaGFsbCBiZSBhdHRhY2hlZCwg YW5kIHNoYWxsIGJ5IHJlcHJlc2VudGF0aW9uLCBuYW1lCm9yICBtYXJrICB3cml0dGVuICBv ciBwcmludGVkIHRoZXJlb24sIHJlcHJlc2VudCB0aGF0IHN1Y2ggZ29vZHMgYXJlIHRoZQpw cm9kdWN0aW9uIG9yIG1hbnVmYWN0dXJlIG9mIGEgcGVyc29uIHdobyBpcyBub3QgdGhlIG1h bnVmYWN0dXJlcjsgb3IKICA4LiAgU2hhbGwgIGtub3dpbmdseSAgc2VsbCwgIG9mZmVyICBv ciAgZXhwb3NlIGZvciBzYWxlIGFueSBhcnRpY2xlIG9mCm1lcmNoYW5kaXNlLCBhbmQgc2hh bGwgb3JhbGx5IG9yIGJ5IHJlcHJlc2VudGF0aW9uLCBuYW1lIG9yIG1hcmsgd3JpdHRlbgpv ciAgcHJpbnRlZCB0aGVyZW9uIG9yIGF0dGFjaGVkIHRoZXJldG8gdXNlZCBpbiBjb25uZWN0 aW9uIHRoZXJld2l0aCwgb3IKYnkgYWR2ZXJ0aXNlbWVudCwgb3Igb3RoZXJ3aXNlLCBpbiBh bnkgbWFubmVyIHdoYXRzb2V2ZXIgbWFrZSBhbnkgIGZhbHNlCnJlcHJlc2VudGF0aW9uICBh cyAgdG8gdGhlIHBlcnNvbiBieSB3aG9tIHN1Y2ggYXJ0aWNsZSBvZiBtZXJjaGFuZGlzZSBv cgp0aGUgbWF0ZXJpYWwgdGhlcmVvZiB3YXMgbWFkZSwgb3Igd2FzIGluICB3aG9sZSAgb3Ig IGluICBwYXJ0ICBwcm9kdWNlZCwKbWFudWZhY3R1cmVkLCBmaW5pc2hlZCwgcHJvY2Vzc2Vk LCB0cmVhdGVkLCBtYXJrZXRlZCwgcGFja2VkLCBib3R0bGVkIG9yCmJveGVkLCBvciBmYWxz ZWx5IHJlcHJlc2VudCB0aGF0IHN1Y2ggIGFydGljbGUgIG9mICBtZXJjaGFuZGlzZSAgb3Ig IHRoZQptYXRlcmlhbCAgb3IgIGFueSAgcGFydCAgdGhlcmVvZiBoYXMgb3IgbWF5IHByb3Bl cmx5IGhhdmUgYW55IHRyYWRlLW1hcmsKYXR0YWNoZWQgdG8gaXQgb3IgdXNlZCBpbiBjb25u ZWN0aW9uIHdpdGggaXQsIG9yIGlzIG9yIG1heSAgcHJvcGVybHkgIGJlCmluZGljYXRlZCBv ciBpZGVudGlmaWVkIGJ5IGFueSB0cmFkZS1tYXJrLCBpcyBndWlsdHkgb2YgYSBtaXNkZW1l YW5vci4KCiAgUyAgMzMuMTEuICBSZWZpbGxpbmcgIG9yICBzZWxsaW5nICB0cmFkZS1tYXJr IGJvdHRsZXMgYW5kIHZlc3NlbHMuIEFueQpwZXJzb24gZW5nYWdlZCBpbiBtYWtpbmcsIGJv dHRsaW5nLCBwYWNraW5nLCAgc2VsbGluZyAgb3IgIGRpc3Bvc2luZyAgb2YKbWlsaywgIGFs ZSwgIGJlZXIsIGNpZGVyLCBtaW5lcmFsIHdhdGVyIG9yIG90aGVyIGJldmVyYWdlLCBvciBp biBtYWtpbmcsCnNlbGxpbmcgb3IgZGlzcG9zaW5nIG9mIGFydGljbGVzIG9mIHBhc3RyeSwg bWF5IHJlZ2lzdGVyICBoaXMgIHRpdGxlICBhcwpvd25lciAgb2YgIGEgIHRyYWRlLW1hcmsg IGJ5ICBmaWxpbmcgd2l0aCB0aGUgc2VjcmV0YXJ5IG9mIHN0YXRlIGFuZCB0aGUKY2xlcmsg b2YgdGhlIGNvdW50eSB3aGVyZSB0aGUgcHJpbmNpcGFsIHBsYWNlIG9mIGJ1c2luZXNzIG9m IHN1Y2ggcGVyc29uCmlzICBzaXR1YXRlZCwgIGEgZGVzY3JpcHRpb24gb2YgdGhlIG1hcmtz IGFuZCBkZXZpY2VzIHVzZWQgYnkgaGltIGluIGhpcwpidXNpbmVzcywgYW5kIGluICBjYXNl ICB0aGUgIHNhbWUgIGhhcyAgbm90ICBiZWVuICBoZXJldG9mb3JlICBwdWJsaXNoZWQKYWNj b3JkaW5nICB0byAgdGhlIGxhd3MgZXhpc3RpbmcgYXQgdGhlIHRpbWUgb2YgcHVibGljYXRp b24sIGNhdXNpbmcgdGhlCnNhbWUgdG8gYmUgcHVibGlzaGVkIGluIGEgbmV3c3BhcGVyIG9m IHRoZSBjb3VudHksIHRocmVlIHdlZWtzIGRhaWx5LCBpZgppbiAgdGhlIGNpdHkgb2YgTmV3 IFlvcmsgb3IgQnJvb2tseW4sIGFuZCB3ZWVrbHkgaWYgaW4gYW55IG90aGVyIHBhcnQgb2YK dGhlIHN0YXRlOyBidXQgbm8gdHJhZGUtbWFyayBzaGFsbCBiZSBmaWxlZCB3aGljaCBpcyAg bm90ICBhbmQgIGNhbiAgbm90CmJlY29tZSAgYSAgbGF3ZnVsICB0cmFkZS1tYXJrLCAgb3Ig d2hpY2ggaXMgbWVyZWx5IHRoZSBuYW1lIG9mIGEgcGVyc29uLApmaXJtIG9yIGNvcnBvcmF0 aW9uIHVuYWNjb21wYW5pZWQgYnkgYSBtYXJrIHN1ZmZpY2llbnQgdG8gZGlzdGluZ3Vpc2gg aXQKZnJvbSB0aGUgc2FtZSBuYW1lIHdoZW4gdXNlZCBieSBhbm90aGVyIHBlcnNvbi4gQWZ0 ZXIgc3VjaCByZWdpc3RyYXRpb24sCnRoZSB1c2Ugd2l0aG91dCB0aGUgY29uc2VudCBvZiB0 aGUgb3duZXIgb2YgdGhlIHRyYWRlLW1hcmsgc28gZGVzY3JpYmVkLApvciAgdGhlIGZpbGxp bmcgb2YgYW55IGJvdHRsZSwgc2lwaG9uLCBiYXJyZWwsIHBsYXR0ZXIsIHZlc3NlbCwgb3Ig dGhpbmcKZm9yIHRoZSBwdXJwb3NlIG9mIHNhbGUsIG9yIGZvciB0aGUgc2FsZSwgdGhlcmVp biwgb2YgYW55IGFydGljbGUgb2YgdGhlCnNhbWUgIGdlbmVyYWwgIG5hdHVyZSAgYW5kICBx dWFsaXR5ICB3aGljaCAgc2FpZCBib3R0bGUsIHNpcGhvbiwgYmFycmVsLApwbGF0dGVyLCAg dmVzc2VsICBvciAgb3RoZXIgIHRoaW5nICAgYmVmb3JlICAgY29udGFpbmVkLCAgIHdpdGhv dXQgICB0aGUKb2JsaXRlcmF0aW9uICBvciAgZGVmYWNlbWVudCAgb2YgIHRoZSAgdHJhZGUt bWFyayAgdXBvbiAgaXQsICB3aGVuICBzdWNoCnRyYWRlLW1hcmsgY2FuIGJlIG9ibGl0ZXJh dGVkIG9yIGRlZmFjZWQgd2l0aG91dCBzdWJzdGFudGlhbCAgaW5qdXJ5ICB0bwp0aGUgIGJv dHRsZSwgIHNpcGhvbiwgIGJhcnJlbCwgIHBsYXR0ZXIsICB2ZXNzZWwgb3Igb3RoZXIgdGhp bmcgc28gYXMgdG8KcHJldmVudCBpdHMgd3JvbmdmdWwgdXNlLCBzaGFsbCBiZSBkZWVtZWQg YSBtaXNkZW1lYW5vci4KCiAgUyAgMzMuMTMuIEtlZXBpbmcgdHJhZGUtbWFyayBib3R0bGVz IGFuZCB2ZXNzZWxzIHdpdGggaW50ZW50IHRvIHJlZmlsbApvciBzZWxsIHRoZW0uIEFueSBw ZXJzb24gZW5nYWdlZCBpbiB0aGUgYnVzaW5lc3Mgb2YgYnV5aW5nICBhbmQgIHNlbGxpbmcK Ym90dGxlcywgIHNpcGhvbnMsICBiYXJyZWxzLCAgcGxhdHRlcnMsICBvciBvdGhlciB2ZXNz ZWxzIG9yIHRoaW5ncywgd2hvCnNoYWxsIHdpdGggaW50ZW50IHRvIGRlZnJhdWQgdGhlIHJl Z2lzdGVyZWQgIG93bmVyICBvZiAgdGhlICB0cmFkZS1tYXJrLAprbm93aW5nbHkgIHNlbGwg IG9yICBvZmZlciBmb3Igc2FsZSBhbnkgYm90dGxlLCBzaXBob24sIGJhcnJlbCwgcGxhdHRl ciwKdmVzc2VsLCBvciBvdGhlciB0aGluZ3MsIHRvIGFueSBwZXJzb24sIHdobyBoZSAgaGFz ICByZWFzb24gIHRvICBiZWxpZXZlCndyb25nZnVsbHkgIGludGVuZHMgIHRvICB1c2UgIHRo ZSAgdHJhZGUtbWFyayAgdXBvbiAgaXQsIG9yIHRvIGZpbGwgc3VjaApib3R0bGUsIHNpcGhv biwgYmFycmVsLCBwbGF0dGVyLCB2ZXNzZWwgb3Igb3RoZXIgdGhpbmcgaW4gIHZpb2xhdGlv biAgb2YKdGhlIHByZWNlZGluZyBzZWN0aW9uLCBzaGFsbCBiZSBkZWVtZWQgZ3VpbHR5IG9m IGEgbWlzZGVtZWFub3IuCgogIFMgIDMzLjE1LiAgU2VhcmNoIGZvciB0cmFkZS1tYXJrIGJv dHRsZXMgYW5kIHZlc3NlbHMga2VwdCBpbiB2aW9sYXRpb24Kb2YgbGF3IGF1dGhvcml6ZWQu IFdoZW5ldmVyIGEgcmVnaXN0ZXJlZCBvd25lciBvZiBhIHRyYWRlLW1hcmssICBvciAgaGlz CmFnZW50LCAgbWFrZXMgIG9hdGggIGJlZm9yZSBhIG1hZ2lzdHJhdGUgdGhhdCBoZSBoYXMg YSByZWFzb24gdG8gYmVsaWV2ZQphbmQgZG9lcyBiZWxpZXZlLCBzdGF0aW5nIHRoZSBncm91 bmRzIG9mICBoaXMgIGJlbGllZiwgIHRoYXQgIGEgIGJvdHRsZSwKc2lwaG9uLCAgYmFycmVs LCAgcGxhdHRlciwgIHZlc3NlbCAgb3Igb3RoZXIgdGhpbmcgdG8gd2hpY2ggaXMgYWZmaXhl ZCBhCnRyYWRlLW1hcmsgYmVsb25naW5nIHRvIGhpbSBpcyBiZWluZyB1c2VkIG9yIGZpbGxl ZCwgb3IgaGFzIGJlZW4gc29sZCBvcgpvZmZlcmVkIGZvciBzYWxlLCBieSBhbnkgcGVyc29u IHdob21zb2V2ZXIgaW4gdmlvbGF0aW9uIG9mIHRoZSBwcmVjZWRpbmcKc2VjdGlvbiwgdGhl biB0aGUgbWFnaXN0cmF0ZSBtYXkgaXNzdWUgYSBzZWFyY2ggd2FycmFudCB0byBkaXNjb3Zl ciAgdGhlCnRoaW5nICBhbmQgY2F1c2UgdGhlIHBlcnNvbiBoYXZpbmcgaXQgaW4gcG9zc2Vz c2lvbiB0byBiZSBicm91Z2h0IGJlZm9yZQpoaW0gYW5kICBtYXkgIHRoZXJldXBvbiAgaW5x dWlyZSAgaW50byAgdGhlICBjaXJjdW1zdGFuY2VzLCAgYW5kICBpZiAgb24KZXhhbWluYXRp b24sICBoZSAgZmluZHMgIHRoYXQgc3VjaCBwZXJzb24gaGFzIGJlZW4gZ3VpbHR5IG9mIHRo ZSBvZmZlbnNlCmNoYXJnZWQsIGhlIG1heSBob2xkIHRoZSBvZmZlbmRlciB0byBiYWlsIHRv IGF3YWl0ICB0aGUgIGFjdGlvbiAgb2YgIHRoZQpncmFuZCAganVyeSwgIGFuZCAgdGhlIG9m ZmVuZGVyIHNoYWxsIGFsc28gYmUgbGlhYmxlIHRvIGFuIGFjdGlvbiBvbiB0aGUKY2FzZSBm b3IgZGFtYWdlcywgZm9yIHN1Y2ggd3JvbmdmdWwgdXNlIG9mIHN1Y2ggdHJhZGUtbWFyayBh dCAgdGhlICBzdWl0Cm9mICB0aGUgIG93bmVyICB0aGVyZW9mLCAgYW5kICB0aGUgIHBhcnR5 IGFnZ3JpZXZlZCwgc2hhbGwgYWxzbyBoYXZlIGhpcwpyZW1lZHkgYWNjb3JkaW5nIHRvIHRo ZSBjb3Vyc2Ugb2YgZXF1aXR5IHRvIGVuam9pbiB0aGUgd3JvbmdmdWwgIHVzZSAgb2YKaGlz IHRyYWRlLW1hcmssIGFuZCB0byByZWNvdmVyIGNvbXBlbnNhdGlvbiB0aGVyZWZvciBpbiBh bnkgY291cnQgaGF2aW5nCmp1cmlzZGljdGlvbiBvdmVyIHRoZSBwZXJzb24gZ3VpbHR5IG9m IHN1Y2ggd3JvbmdmdWwgdXNlLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU5ldyBZb3JrIFN0 YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMKCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJVExFIEwKICAgICAgICAgICAgICAgIFBS T1RFQ1RJT04gT0YgQ0hJTEQgUEVSRk9STUVSUyBBTkQgTU9ERUxTCgoKCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tTmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3Vs dHVyYWwgQWZmYWlycwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSVElDTEUg MzUKICAgICAgICAgICAgICAgICAgICAgICBDSElMRCBQRVJGT1JNRVJTIEFORCBNT0RFTFMK U2VjdGlvbiAzNS4wMS4gQ2hpbGQgcGVyZm9ybWVycy4KICAgICAgICAzNS4wMy4gSnVkaWNp YWwgIGFwcHJvdmFsICBvZiAgY2VydGFpbiBjb250cmFjdHMgZm9yIHNlcnZpY2VzIG9mCiAg ICAgICAgICAgICAgICAgICAgaW5mYW50czsgIGVmZmVjdCAgb2YgICBhcHByb3ZhbDsgICBn dWFyZGlhbnNoaXAgICBvZgogICAgICAgICAgICAgICAgICAgIHNhdmluZ3MuCiAgICAgICAg MzUuMDUuIEVtcGxveW1lbnQgb2YgY2hpbGRyZW4gYXMgbW9kZWxzLgogICAgICAgIDM1LjA3 LiBVbmxhd2Z1bCBleGhpYml0aW9ucy4KCiAgUyAgMzUuMDEuICBDaGlsZCAgcGVyZm9ybWVy cy4gIDEuICBJdCAgc2hhbGwgIGJlICB1bmxhd2Z1bCwgIGV4Y2VwdCBhcwpvdGhlcndpc2Ug cHJvdmlkZWQgaW4gdGhpcyBzZWN0aW9uLCB0byBlbXBsb3ksIG9yIHRvIGV4aGliaXQgb3Ig Y2F1c2UgdG8KYmUgIGV4aGliaXRlZCwgIG9yICB0byAgdXNlLCAgb3IgIGhhdmUgIGN1c3Rv ZHkgIG9mLCAgZm9yIHRoZSBwdXJwb3NlIG9mCmV4aGliaXRpb24sIHVzZSBvciBlbXBsb3lt ZW50LCBhbnkgY2hpbGQgdW5kZXIgdGhlIGFnZSBvZiBzaXh0ZWVuIHllYXJzLApvciAgZm9y ICBvbmUgIHdobyAgaGFzICB0aGUgIGNhcmUsIGN1c3RvZHkgb3IgY29udHJvbCBvZiBzdWNo IGNoaWxkIGFzIGEKcGFyZW50LCByZWxhdGl2ZSwgZ3VhcmRpYW4sIGVtcGxveWVyIG9yIG90 aGVyd2lzZSwgdG8gZXhoaWJpdCwgdXNlIG9yIHRvCnByb2N1cmUgb3IgY29uc2VudCB0byB0 aGUgdXNlIG9yIGV4aGliaXRpb24gb2Ygc3VjaCBjaGlsZCwgb3IgdG8gbmVnbGVjdApvciB0 byByZWZ1c2UgdG8gcmVzdHJhaW4gc3VjaCBjaGlsZCBmcm9tIGVuZ2FnaW5nIG9yIGFjdGlu ZyBpbiBhICBwdWJsaWMKb3IgIHByaXZhdGUgIHBsYWNlLCAgZXhjZXB0ICBhcyAgaGVyZWlu YWZ0ZXIgcHJvdmlkZWQsIHdoZXRoZXIgb3Igbm90IGFuCmFkbWlzc2lvbiBmZWUgaXMgY2hh cmdlZCBhbmQgd2hldGhlciBvciBub3QgIHN1Y2ggIGNoaWxkICBvciAgYW55ICBvdGhlcgpw ZXJzb24gIGlzICB0byAgYmUgY29tcGVuc2F0ZWQgZm9yIHRoZSB1c2Ugb2Ygc3VjaCBjaGls ZCB0aGVyZWluLCBpbiB0aGUKZm9sbG93aW5nIGFjdGl2aXRpZXM6CiAgKGEpICBJbiAgc2lu Z2luZzsgb3IgZGFuY2luZzsgb3IgcGxheWluZyB1cG9uIGEgbXVzaWNhbCBpbnN0cnVtZW50 OyBvcgphY3RpbmcsIG9yIGluIHJlaGVhcnNpbmcgZm9yLCBvciBwZXJmb3JtaW5nIGluIGEg dGhlYXRyaWNhbCAgcGVyZm9ybWFuY2UKb3IgIGFwcGVhcmluZyAgaW4gIGEgIHBhZ2VhbnQ7 IG9yIGFzIGEgc3ViamVjdCBmb3IgdXNlLCBpbiBvciBmb3IsIG9yIGluCmNvbm5lY3Rpb24g d2l0aCB0aGUgbWFraW5nIG9mIGEgbW90aW9uIHBpY3R1cmUgZmlsbTsgb3IKICAoYikgSW4g cmVoZWFyc2luZyBmb3Igb3IgcGVyZm9ybWluZyBpbiBhIHJhZGlvIG9yIHRlbGV2aXNpb24g YnJvYWRjYXN0Cm9yIHByb2dyYW0uCiAgMi4gIFRoZSAgcHJvdmlzaW9ucyBvZiBzdWJkaXZp c2lvbiBvbmUgb2YgdGhpcyBzZWN0aW9uIHNoYWxsIG5vdCBhcHBseQp0byB0aGUgcGFydGlj aXBhdGlvbiBvciBlbXBsb3ltZW50LCB1c2Ugb3IgZXhoaWJpdGlvbiBvZiBhbnkgY2hpbGQg aW4gIGEKY2h1cmNoLCAgYWNhZGVteSAgb3IgIHNjaG9vbCwgaW5jbHVkaW5nIGEgZGFuY2lu ZyBvciBkcmFtYXRpYyBzY2hvb2wsIGFzCnBhcnQgb2YgdGhlIHJlZ3VsYXIgc2VydmljZXMg b3IgYWN0aXZpdGllcyB0aGVyZW9mIHJlc3BlY3RpdmVseTsgIG9yICBpbgp0aGUgIGFubnVh bCAgZ3JhZHVhdGlvbiBleGVyY2lzZXMgb2YgYW55IHN1Y2ggYWNhZGVteSBvciBzY2hvb2w7 IG9yIGluIGEKcHJpdmF0ZSBob21lOyBvciBpbiBhbnkgIHBsYWNlICB3aGVyZSAgc3VjaCAg cGVyZm9ybWFuY2UgIGlzICB1bmRlciAgdGhlCmRpcmVjdGlvbiwgIGNvbnRyb2wgIG9yICBz dXBlcnZpc2lvbiBvZiBhIGRlcGFydG1lbnQgb2YgZWR1Y2F0aW9uOyBvciBpbgp0aGUgcGVy Zm9ybWFuY2Ugb2YgcmFkaW8gb3IgdGVsZXZpc2lvbiBwcm9ncmFtcyBpbiBjYXNlcyB3aGVy ZSB0aGUgY2hpbGQKb3IgIGNoaWxkcmVuICBicm9hZGNhc3RpbmcgZG8gc28gZnJvbSBhIHNj aG9vbCwgY2h1cmNoLCBhY2FkZW15LCBtdXNldW0sCmxpYnJhcnkgb3Igb3RoZXIgcmVsaWdp b3VzLCBjaXZpYyBvciBlZHVjYXRpb25hbCBpbnN0aXR1dGlvbiwgb3IgZm9yIG5vdAptb3Jl ICB0aGFuICB0d28gIGhvdXJzICBhICB3ZWVrIGZyb20gdGhlIHN0dWRpb3Mgb2YgYSByZWd1 bGFybHkgbGljZW5zZWQKYnJvYWRjYXN0aW5nIGNvbXBhbnksIHdoZXJlIHRoZSBwZXJmb3Jt YW5jZSBvZiB0aGUgY2hpbGQgb3IgY2hpbGRyZW4gIGlzCm9mICBhICBub25wcm9mZXNzaW9u YWwgY2hhcmFjdGVyIGFuZCBvY2N1cnMgZHVyaW5nIGhvdXJzIHdoZW4gYXR0ZW5kYW5jZQpm b3IgaW5zdHJ1Y3Rpb24gaXMgbm90IHJlcXVpcmVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUg ZWR1Y2F0aW9uIGxhdy4KICAzLiBOb3R3aXRoc3RhbmRpbmcgdGhlIGZvcmVnb2luZyBwcm92 aXNpb25zIG9mIHN1YmRpdmlzaW9uIG9uZSBvZiB0aGlzCnNlY3Rpb24sIHN1Y2ggYSBjaGls ZCBtYXkgYmUgZW1wbG95ZWQsIHVzZWQgb3IgZXhoaWJpdGVkIGluIGFueSAgb2YgIHRoZQpl eGhpYml0aW9ucywgIHJlaGVhcnNhbHMgb3IgcGVyZm9ybWFuY2VzIHNldCBmb3J0aCBpbiBz dWJkaXZpc2lvbiBvbmUgb2YKdGhpcyBzZWN0aW9uIGlmIGEgY2hpbGQgcGVyZm9ybWVyIHBl cm1pdCBoYXMgYmVlbiBpc3N1ZWQgYXMgIGhlcmVpbmFmdGVyCnByb3ZpZGVkLgogIDQuICBB ICBjaGlsZCAgcGVyZm9ybWVyICBwZXJtaXQgIHNoYWxsIGJlIGlzc3VlZCBieSB0aGUgbWF5 b3Igb3Igb3RoZXIKY2hpZWYgIGV4ZWN1dGl2ZSAgb2ZmaWNlciAgb2YgIHRoZSAgY2l0eSwg IHRvd24gIG9yICB2aWxsYWdlICB3aGVyZSAgdGhlCmV4aGliaXRpb24sIHJlaGVhcnNhbCBv ciBwZXJmb3JtYW5jZSB3aWxsIHRha2UgcGxhY2UuCiAgNS4gQW4gYXBwbGljYXRpb24gZm9y IGEgY2hpbGQgcGVyZm9ybWVyIHBlcm1pdCBzaGFsbCBiZSBtYWRlIG9uIGEgZm9ybQpwcmVz Y3JpYmVkIGJ5IHRoZSBpc3N1aW5nIGF1dGhvcml0eSBhbmQgc2hhbGwgY29udGFpbiAgc3Vj aCAgbWF0dGVycyAgYXMKdGhlIGlzc3VpbmcgYXV0aG9yaXR5IG1heSBkZWVtIHRvIGJlIG5l Y2Vzc2FyeSwgaW5jbHVkaW5nIHRoZSBmb2xsb3dpbmc6CiAgKGEpIFRoZSB0cnVlIGFuZCBz dGFnZSBuYW1lIGFuZCB0aGUgYWdlIG9mIHRoZSBjaGlsZCwgYW5kIHRoZSBuYW1lIGFuZAph ZGRyZXNzIG9mIGhpcyBwYXJlbnQgb3IgZ3VhcmRpYW47CiAgKGIpIFRoZSB3cml0dGVuIGNv bnNlbnQgb2YgdGhlIHBhcmVudCBvciBndWFyZGlhbjsKICAoYykgIFRoZSAgbmF0dXJlLCAg dGltZSwgZHVyYXRpb24gYW5kIG51bWJlciBvZiBwZXJmb3JtYW5jZXMsIHRvZ2V0aGVyCndp dGggdGhlIHBsYWNlIGFuZCBuYXR1cmUgb2YgdGhlIGV4aGliaXRpb247CiAgKGQpIEEgZGV0 YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhlIGVudGlyZSBwYXJ0IHRvIGJlIHRha2VuIGFuZCBl YWNoIGFuZApldmVyeSBhY3QgYW5kIHRoaW5nIHRvICBiZSAgZG9uZSAgYW5kICBwZXJmb3Jt ZWQsICBleGNlcHQgIHRoYXQgIGlmICB0aGUKcGVyZm9ybWFuY2UgIGlzICBpbiAgY29ubmVj dGlvbiAgd2l0aCBhIHJhZGlvIG9yIHRlbGV2aXNpb24gcHJvZ3JhbSwgdGhlCmFwcGxpY2F0 aW9uIHNoYWxsIGNvbnRhaW4gYSBnZW5lcmFsIHN0YXRlbWVudCAgZGVzY3JpYmluZyAgdGhl ICBwYXJ0ICBvcgpwYXJ0cyB0byBiZSB0YWtlbiBieSB0aGUgY2hpbGQgYW5kIHRoZSBuYXR1 cmUgb2YgdGhlIHJhZGlvIG9yIHRlbGV2aXNpb24KcHJvZ3JhbS4KICA2LiAgVGhlICBtYXlv ciAgb3IgIG90aGVyIGNoaWVmIGV4ZWN1dGl2ZSBvZmZpY2VyIG9mIHRoZSBjaXR5LCB0b3du IG9yCnZpbGxhZ2Ugd2hlcmUgdGhlIGV4aGliaXRpb24sIHJlaGVhcnNhbCBvciBwZXJmb3Jt YW5jZSB3aWxsICB0YWtlICBwbGFjZQptYXkgIHNvbGljaXQgdGhlIGFzc2lzdGFuY2Ugb2Yg dGhlIFNvY2lldHkgZm9yIHRoZSBQcmV2ZW50aW9uIG9mIENydWVsdHkKdG8gQ2hpbGRyZW4g aW4gTmV3IFlvcmsgY2l0eSwgIGFuZCAgb3V0c2lkZSAgTmV3ICBZb3JrICBjaXR5LCAgd2l0 aCAgdGhlClNvY2lldHkgIGZvciAgdGhlICBQcmV2ZW50aW9uICBvZiAgQ3J1ZWx0eSAgdG8g IENoaWxkcmVuICBvciBvdGhlciBjaGlsZApwcm90ZWN0aXZlIG9yZ2FuaXphdGlvbiwgaWYg dGhlcmUgYmUgb25lIGFuZCBzdWNoIG90aGVyIHN0YXRlIGFuZCAgbG9jYWwKYWdlbmNpZXMg YXMgaGUgbWF5IGRldGVybWluZS4KICA3LiAgTm8gY2hpbGQgc2hhbGwgcGVyZm9ybSBleGNl cHQgYXMgcHJvdmlkZWQgaW4gdGhlIHBlcm1pdC4gTm8gcGVybWl0CnNoYWxsIGJlIGlzc3Vl ZCBmb3IgdGhlIGV4aGliaXRpb24sIHJlaGVhcnNhbCBvciBwZXJmb3JtYW5jZSBvZiBhICBj aGlsZAp3aGljaCBpcyBoYXJtZnVsIHRvIHRoZSB3ZWxmYXJlLCBkZXZlbG9wbWVudCBvciBw cm9wZXIgZWR1Y2F0aW9uIG9mIHN1Y2gKY2hpbGQuIEEgcGVybWl0IG1heSBiZSByZXZva2Vk IGJ5IHRoZSBpc3N1aW5nIGF1dGhvcml0eSBmb3IgZ29vZCAgY2F1c2UuCiAgOC4gVmlvbGF0 aW9uIG9mIHRoaXMgc2VjdGlvbiBzaGFsbCBiZSBhIG1pc2RlbWVhbm9yLgoKICBTIDM1LjAz LiBKdWRpY2lhbCAgYXBwcm92YWwgIG9mICBjZXJ0YWluICBjb250cmFjdHMgIGZvciAgc2Vy dmljZXMgIG9mCmluZmFudHM7IGVmZmVjdCBvZiBhcHByb3ZhbDsgZ3VhcmRpYW5zaGlwIG9m IHNhdmluZ3MuICAgIDEuICBBICBjb250cmFjdAptYWRlICBieSAgYW4gIGluZmFudCAgb3Ig bWFkZSBieSBhIHBhcmVudCBvciBndWFyZGlhbiBvZiBhbiBpbmZhbnQsIG9yIGEKY29udHJh Y3QgcHJvcG9zZWQgdG8gYmUgc28gbWFkZSwgIHVuZGVyICB3aGljaCAgKGEpICB0aGUgIGlu ZmFudCAgaXMgIHRvCnBlcmZvcm0gIG9yICByZW5kZXIgIHNlcnZpY2VzICBhcyAgYW4gIGFj dG9yLCBhY3RyZXNzLCBkYW5jZXIsIG11c2ljaWFuLAp2b2NhbGlzdCBvciBvdGhlciBwZXJm b3JtaW5nIGFydGlzdCwgb3IgYXMgYSBwYXJ0aWNpcGFudCAgb3IgIHBsYXllciAgaW4KcHJv ZmVzc2lvbmFsICBzcG9ydHMsICBvciAoYikgYSBwZXJzb24gaXMgZW1wbG95ZWQgdG8gcmVu ZGVyIHNlcnZpY2VzIHRvCnRoZSBpbmZhbnQgaW4gIGNvbm5lY3Rpb24gIHdpdGggIHN1Y2gg IHNlcnZpY2VzICBvZiAgdGhlICBpbmZhbnQgIG9yICBpbgpjb25uZWN0aW9uIHdpdGggY29u dHJhY3RzIHRoZXJlZm9yLCBtYXkgYmUgYXBwcm92ZWQgYnkgdGhlIHN1cHJlbWUgY291cnQK b3IgdGhlIHN1cnJvZ2F0ZWBzIGNvdXJ0IGFzIHByb3ZpZGVkIGluIHRoaXMgc2VjdGlvbiB3 aGVyZSB0aGUgaW5mYW50IGlzCmEgIHJlc2lkZW50ICBvZiAgdGhpcyAgc3RhdGUgIG9yICB0 aGUgIHNlcnZpY2VzICBvZiB0aGUgaW5mYW50IGFyZSB0byBiZQpwZXJmb3JtZWQgb3IgcmVu ZGVyZWQgaW4gdGhpcyBzdGF0ZS4gSWYgdGhlIGNvbnRyYWN0IGlzIHNvIGFwcHJvdmVkICB0 aGUKaW5mYW50ICBtYXkgbm90LCBlaXRoZXIgZHVyaW5nIGhpcyBtaW5vcml0eSBvciB1cG9u IHJlYWNoaW5nIGhpcyBtYWpvcmktCnR5LCBkaXNhZmZpcm0gdGhlIGNvbnRyYWN0IG9uIHRo ZSBncm91bmQgb2YgaW5mYW5jeSBvciBhc3NlcnQgIHRoYXQgIHRoZQpwYXJlbnQgIG9yICBn dWFyZGlhbiAgbGFja2VkICBhdXRob3JpdHkgdG8gbWFrZSB0aGUgY29udHJhY3QuIEEgY29u dHJhY3QKbW9kaWZpZWQsIGFtZW5kZWQgb3IgYXNzaWduZWQgYWZ0ZXIgIGl0cyAgYXBwcm92 YWwgIHVuZGVyICB0aGlzICBzZWN0aW9uCnNoYWxsIGJlIGRlZW1lZCBhIG5ldyBjb250cmFj dC4KICAyLiAgKGEpICBBcHByb3ZhbCAgb2YgIHRoZSBjb250cmFjdCBwdXJzdWFudCB0byB0 aGlzIHNlY3Rpb24gc2hhbGwgbm90CmV4ZW1wdCBhbnkgcGVyc29uIGZyb20gYW55IG90aGVy IGxhdyB3aXRoIHJlc3BlY3QgdG8gbGljZW5zZXMsICBjb25zZW50cwpvciAgYXV0aG9yaXph dGlvbnMgIHJlcXVpcmVkIGZvciBhbnkgY29uZHVjdCwgZW1wbG95bWVudCwgdXNlIG9yIGV4 aGliaS0KdGlvbiBvZiB0aGUgaW5mYW50IGluIHRoaXMgc3RhdGUsIG5vciBsaW1pdCBpbiBh bnkgbWFubmVyIHRoZSBkaXNjcmV0aW9uCm9mIHRoZSBsaWNlbnNpbmcgYXV0aG9yaXR5IG9y IG90aGVyIHBlcnNvbnMgY2hhcmdlZCAgd2l0aCAgdGhlICBhZG1pbmlzLQp0cmF0aW9uIG9m IHN1Y2ggcmVxdWlyZW1lbnRzLCBub3IgZGlzcGVuc2Ugd2l0aCBhbnkgb3RoZXIgcmVxdWly ZW1lbnQgb2YKbGF3IHJlbGF0aW5nIHRvIHRoZSBpbmZhbnQuCiAgKGIpICBObyAgY29udHJh Y3QgIHNoYWxsIGJlIGFwcHJvdmVkIHdoaWNoIHByb3ZpZGVzIGZvciBhbiBlbXBsb3ltZW50 LAp1c2Ugb3IgZXhoaWJpdGlvbiBvZiB0aGUgaW5mYW50LCB3aXRoaW4gb3Igd2l0aG91dCB0 aGUgc3RhdGUsICB3aGljaCAgaXMKcHJvaGliaXRlZCBieSBsYXcgYW5kIGNvdWxkIG5vdCBi ZSBsaWNlbnNlZCB0byB0YWtlIHBsYWNlIGluIHRoaXMgc3RhdGUuCiAgKGMpICBObyBjb250 cmFjdCBzaGFsbCBiZSBhcHByb3ZlZCB1bmxlc3MgKGkpIHRoZSB3cml0dGVuIGFjcXVpZXNj ZW5jZQp0byBzdWNoIGNvbnRyYWN0IG9mIHRoZSBwYXJlbnQgIG9yICBwYXJlbnRzICBoYXZp bmcgIGN1c3RvZHksICBvciAgb3RoZXIKcGVyc29uICBoYXZpbmcgY3VzdG9keSBvZiB0aGUg aW5mYW50LCBpcyBmaWxlZCBpbiB0aGUgcHJvY2VlZGluZyBvciAoaWkpCnRoZSBjb3VydCBz aGFsbCBmaW5kIHRoYXQgdGhlIGluZmFudCBpcyBlbWFuY2lwYXRlZC4KICAoZCkgTm8gY29u dHJhY3Qgc2hhbGwgYmUgYXBwcm92ZWQgaWYgdGhlIHRlcm0gZHVyaW5nIHdoaWNoIHRoZSAg aW5mYW50CmlzIHRvIHBlcmZvcm0gb3IgcmVuZGVyIHNlcnZpY2VzIG9yIGR1cmluZyB3aGlj aCBhIHBlcnNvbiBpcyBlbXBsb3llZCB0bwpyZW5kZXIgIHNlcnZpY2VzICB0byAgdGhlICBp bmZhbnQsICBpbmNsdWRpbmcgIGFueSBleHRlbnNpb25zIHRoZXJlb2YgYnkKb3B0aW9uIG9y IG90aGVyd2lzZSwgZXh0ZW5kcyBmb3IgYSBwZXJpb2Qgb2YgbW9yZSB0aGFuIHRocmVlIHll YXJzICBmcm9tCnRoZSAgZGF0ZSAgb2YgIGFwcHJvdmFsICBvZiAgdGhlIGNvbnRyYWN0LCBw cm92aWRlZCwgaG93ZXZlciB0aGF0IGlmIHRoZQpjb3VydCBmaW5kcyB0aGF0IHN1Y2ggaW5m YW50IGlzIHJlcHJlc2VudGVkIGJ5IHF1YWxpZmllZCBjb3Vuc2VsIGV4cGVyaS0KZW5jZWQg d2l0aCBlbnRlcnRhaW5tZW50IGluZHVzdHJ5IGxhdyBhbmQgcHJhY3RpY2VzIHN1Y2ggY29u dHJhY3QgbWF5IGJlCmZvciBhIHBlcmlvZCBvZiBub3QgbW9yZSB0aGFuIHNldmVuIHllYXJz LiAgSWYgdGhlIGNvbnRyYWN0IGNvbnRhaW5zIGFueQpjb3ZlbmFudCBvciBjb25kaXRpb24g d2hpY2ggZXh0ZW5kcyBiZXlvbmQgc3VjaCB0aHJlZSAgeWVhcnMgIG9yLCAgd2hlcmUKdGhl ICBjb3VydCAgZmluZHMgdGhhdCB0aGUgaW5mYW50IGlzIHJlcHJlc2VudGVkIGJ5IHF1YWxp ZmllZCBjb3Vuc2VsIGFzCnByb3ZpZGVkIGluIHRoaXMgcGFyYWdyYXBoLCBzZXZlbiB5ZWFy cywgdGhlIHNhbWUgIG1heSAgYmUgIGFwcHJvdmVkICBpZgpmb3VuZCB0byBiZSByZWFzb25h YmxlIGFuZCBmb3Igc3VjaCBwZXJpb2QgYXMgdGhlIGNvdXJ0IG1heSBkZXRlcm1pbmUuCiAg KGUpICBJZiAgdGhlICBjb3VydCAgd2hpY2ggIGhhcyAgYXBwcm92ZWQgIGEgY29udHJhY3Qg cHVyc3VhbnQgdG8gdGhpcwpzZWN0aW9uIHNoYWxsIGZpbmQgdGhhdCB0aGUgd2VsbC1iZWlu ZyBvZiB0aGUgaW5mYW50IGlzICBiZWluZyAgaW1wYWlyZWQKYnkgIHRoZSAgcGVyZm9ybWFu Y2UgdGhlcmVvZiwgaXQgbWF5LCBhdCBhbnkgdGltZSBkdXJpbmcgdGhlIHRlcm0gb2YgdGhl CmNvbnRyYWN0IGR1cmluZyB3aGljaCBzZXJ2aWNlcyBhcmUgdG8gYmUgIHBlcmZvcm1lZCAg YnkgIHRoZSAgaW5mYW50ICBvcgpyZW5kZXJlZCBieSBvciB0byB0aGUgaW5mYW50IG9yIGR1 cmluZyB0aGUgdGVybSBvZiBhbnkgb3RoZXIgY292ZW5hbnQgb3IKY29uZGl0aW9uICBvZiAg dGhlIGNvbnRyYWN0LCBlaXRoZXIgcmV2b2tlIGl0cyBhcHByb3ZhbCBvZiB0aGUgY29udHJh Y3QsCm9yIGRlY2xhcmUgc3VjaCBhcHByb3ZhbCByZXZva2VkIHVubGVzcyBhIG1vZGlmaWNh dGlvbiBvZiAgdGhlICBjb250cmFjdAp3aGljaCAgdGhlICBjb3VydCBmaW5kcyB0byBiZSBh cHByb3ByaWF0ZSBpbiB0aGUgY2lyY3Vtc3RhbmNlcyBpcyBhZ3JlZWQKdXBvbiBieSB0aGUg cGFydGllcyBhbmQgdGhlIGNvbnRyYWN0IGFzIG1vZGlmaWVkIGlzIGFwcHJvdmVkIGJ5IG9y ZGVyIG9mCnRoZSBjb3VydC4gQXBwbGljYXRpb24gZm9yIGFuIG9yZGVyIHB1cnN1YW50IHRv IHRoaXMgIHBhcmFncmFwaCAgbWF5ICBiZQptYWRlIGJ5IHRoZSBpbmZhbnQsIG9yIGhpcyBw YXJlbnQgb3IgcGFyZW50cywgb3IgZ3VhcmRpYW4sIG9yIGhpcyBsaW1pdC0KZWQgIGd1YXJk aWFuIGFwcG9pbnRlZCBwdXJzdWFudCB0byB0aGlzIHNlY3Rpb24sIG9yIGJ5IHRoZSBwZXJz b24gaGF2aW5nCnRoZSBjYXJlIGFuZCBjdXN0b2R5IG9mIHRoZSBpbmZhbnQsIG9yIGJ5IGEg c3BlY2lhbCAgZ3VhcmRpYW4gIGFwcG9pbnRlZApmb3IgIHRoZSAgcHVycG9zZSAgYnkgdGhl IGNvdXJ0IG9uIGl0cyBvd24gbW90aW9uLiBUaGUgb3JkZXIgZ3JhbnRpbmcgb3IKZGVueWlu ZyB0aGUgYXBwbGljYXRpb24gc2hhbGwgYmUgbWFkZSBhZnRlciBoZWFyaW5nLCB1cG9uIG5v dGljZSB0byAgdGhlCnBhcnRpZXMgIHRvICB0aGUgcHJvY2VlZGluZyBpbiB3aGljaCB0aGUg Y29udHJhY3Qgd2FzIGFwcHJvdmVkLCBnaXZlbiBpbgpzdWNoIG1hbm5lciBhcyB0aGUgY291 cnQgc2hhbGwgZGlyZWN0LiBSZXZvY2F0aW9uIG9mIHRoZSBhcHByb3ZhbCBvZiB0aGUKY29u dHJhY3Qgc2hhbGwgbm90IGFmZmVjdCBhbnkgcmlnaHQgb2YgYWN0aW9uIGV4aXN0aW5nIGF0 ICB0aGUgIGRhdGUgIG9mCnRoZSAgcmV2b2NhdGlvbiwgIGV4Y2VwdCAgdGhhdCB0aGUgY291 cnQgbWF5IGRldGVybWluZSB0aGF0IGEgcmVmdXNhbCB0bwpwZXJmb3JtIG9uIHRoZSBncm91 bmQgb2YgaW1wYWlybWVudCBvZiB0aGUgd2VsbC1iZWluZyBvZiB0aGUgaW5mYW50ICB3YXMK anVzdGlmaWVkLgogIDMuICAoYSkgIFRoZSBjb3VydCBtYXkgd2l0aGhvbGQgaXRzIGFwcHJv dmFsIG9mIHRoZSBjb250cmFjdCB1bnRpbCB0aGUKZmlsaW5nIG9mIGNvbnNlbnQgYnkgdGhl IHBhcmVudCBvciBwYXJlbnRzIGVudGl0bGVkIHRvIHRoZSAgZWFybmluZ3MgIG9mCnRoZSBp bmZhbnQsIG9yIG9mIHRoZSBpbmZhbnQgaWYgaGUgaXMgZW50aXRsZWQgdG8gaGlzIG93biBl YXJuaW5ncywgdGhhdAphICBwYXJ0ICBvZiB0aGUgaW5mYW50YHMgbmV0IGVhcm5pbmdzIGZv ciBzZXJ2aWNlcyBwZXJmb3JtZWQgb3IgcmVuZGVyZWQKZHVyaW5nIHRoZSB0ZXJtIG9mIHRo ZSBjb250cmFjdCBiZSBzZXQgYXNpZGUgYW5kIHNhdmVkICBmb3IgIHRoZSAgaW5mYW50CnB1 cnN1YW50IHRvIHRoZSBvcmRlciBvZiB0aGUgY291cnQgYW5kIHVuZGVyIGd1YXJkaWFuc2hp cCBhcyBwcm92aWRlZCBpbgp0aGlzICBzZWN0aW9uLCAgdW50aWwgIGhlIGF0dGFpbnMgaGlz IG1ham9yaXR5IG9yIHVudGlsIGZ1cnRoZXIgb3JkZXIgb2YKdGhlIGNvdXJ0LiBTdWNoIGNv bnNlbnQgc2hhbGwgbm90IGJlIGRlZW1lZCB0byBjb25zdGl0dXRlICBhbiAgZW1hbmNpcGEt CnRpb24gb2YgdGhlIGluZmFudC4KICAoYikgVGhlIGNvdXJ0IHNoYWxsIGZpeCB0aGUgYW1v dW50IG9yIHByb3BvcnRpb24gb2YgbmV0IGVhcm5pbmdzIHRvIGJlCnNldCAgYXNpZGUgIGFz ICBpdCAgZGVlbXMgIGZvciB0aGUgYmVzdCBpbnRlcmVzdHMgb2YgdGhlIGluZmFudCwgYW5k IHRoZQphbW91bnQgb3IgcHJvcG9ydGlvbiBzbyBmaXhlZCBtYXksIHVwb24gc3Vic2VxdWVu dCBhcHBsaWNhdGlvbiwgYmUgbW9kaS0KZmllZCBpbiB0aGUgZGlzY3JldGlvbiBvZiB0aGUg Y291cnQsIHdpdGhpbiB0aGUgbGltaXRzICBvZiAgdGhlICBjb25zZW50CmdpdmVuICBhdCAg dGhlICB0aW1lIHRoZSBjb250cmFjdCB3YXMgYXBwcm92ZWQuIEluIGZpeGluZyBzdWNoIGFt b3VudCBvcgpwcm9wb3J0aW9uLCBjb25zaWRlcmF0aW9uIHNoYWxsIGJlIGdpdmVuIHRvIHRo ZSBmaW5hbmNpYWwgIGNpcmN1bXN0YW5jZXMKb2YgIHRoZSAgcGFyZW50IG9yIHBhcmVudHMg ZW50aXRsZWQgdG8gdGhlIGVhcm5pbmdzIG9mIHRoZSBpbmZhbnQgYW5kIHRvCnRoZSBuZWVk cyBvZiB0aGVpciBvdGhlciBjaGlsZHJlbiwgb3IgaWYgdGhlIGluZmFudCBpcyBlbnRpdGxl ZCAgdG8gIGhpcwpvd24gIGVhcm5pbmdzICBhbmQgIGlzICBtYXJyaWVkLCAgdG8gdGhlIG5l ZWRzIG9mIGhpcyBmYW1pbHkuIFVubGVzcyB0aGUKaW5mYW50IGlzIGF0IHRoZSB0aW1lIHRo ZXJlb2YgZW50aXRsZWQgdG8gaGlzIG93biBlYXJuaW5ncyAgYW5kICBoYXMgIG5vCmRlcGVu ZGVudHMsICB0aGUgIGNvdXJ0IHNoYWxsIG5vdCBjb25kaXRpb24gaXRzIGFwcHJvdmFsIG9m IHRoZSBjb250cmFjdAp1cG9uIGNvbnNlbnQgdG8gdGhlIHNldHRpbmcgYXNpZGUgb2YgYW4g YW1vdW50IG9yIHByb3BvcnRpb24gIGluICBleGNlc3MKb2Ygb25lLWhhbGYgb2YgdGhlIG5l dCBlYXJuaW5ncy4KICAoYykgIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBzdWJkaXZpc2lv biwgbmV0IGVhcm5pbmdzIHNoYWxsIG1lYW4gdGhlCmdyb3NzIGVhcm5pbmdzIHJlY2VpdmVk IGZvciBzZXJ2aWNlcyBwZXJmb3JtZWQgb3IgcmVuZGVyZWQgYnkgdGhlIGluZmFudApkdXJp bmcgdGhlIHRlcm0gb2YgdGhlIGNvbnRyYWN0LCBsZXNzIChpKSBhbGwgc3VtcyByZXF1aXJl ZCBieSBsYXcgdG8gYmUKcGFpZCBhcyB0YXhlcyB0byBhbnkgZ292ZXJubWVudCBvciBzdWJk aXZpc2lvbiB0aGVyZW9mIHdpdGggIHJlc3BlY3QgIHRvCm9yICBieSAgcmVhc29uIG9mIHN1 Y2ggZWFybmluZ3M7IChpaSkgcmVhc29uYWJsZSBzdW1zIHRvIGJlIGV4cGVuZGVkIGZvcgp0 aGUgc3VwcG9ydCwgY2FyZSwgZWR1Y2F0aW9uLCB0cmFpbmluZyBhbmQgIHByb2Zlc3Npb25h bCAgbWFuYWdlbWVudCAgb2YKdGhlIGluZmFudDsgYW5kIChpaWkpIHJlYXNvbmFibGUgZmVl cyBhbmQgZXhwZW5zZXMgcGFpZCBvciB0byBiZSBwYWlkIGluCmNvbm5lY3Rpb24gd2l0aCB0 aGUgcHJvY2VlZGluZywgdGhlIGNvbnRyYWN0IGFuZCBpdHMgcGVyZm9ybWFuY2UuCiAgNC4g IChhKSBBIHByb2NlZWRpbmcgZm9yIHRoZSBhcHByb3ZhbCBvZiBhIGNvbnRyYWN0IHNoYWxs IGJlIGNvbW1lbmNlZApieSB2ZXJpZmllZCBwZXRpdGlvbiBvZiB0aGUgZ3VhcmRpYW4gb2Yg dGhlIGluZmFudGBzIHBlcnNvbiBvciBwcm9wZXJ0eSwKb3Igb2YgdGhlIGluZmFudCwgb3Ig b2YgYSBwYXJlbnQsIG9yIG9mIGFueSBpbnRlcmVzdGVkIHBlcnNvbiwgb3Igb2YgYW55CnJl bGF0aXZlIG9mIHRoZSBpbmZhbnQgb24gaGlzIGJlaGFsZi4gSWYgIGEgIGd1YXJkaWFuICBv ZiAgdGhlICBpbmZhbnRgcwpwZXJzb24gIG9yICBwcm9wZXJ0eSAgaGFzIGJlZW4gYXBwb2lu dGVkIG9yIHF1YWxpZmllZCBpbiB0aGlzIHN0YXRlLCB0aGUKcGV0aXRpb24gc2hhbGwgYmUg bWFkZSB0byB0aGUgY291cnQgYnkgd2hpY2ggIGhlICB3YXMgIGFwcG9pbnRlZCAgb3IgIGlu CndoaWNoICBoZSBxdWFsaWZpZWQuIElmIHRoZXJlIGlzIG5vIHN1Y2ggZ3VhcmRpYW4sIHRo ZSBwZXRpdGlvbiBzaGFsbCBiZQptYWRlIHRvIHRoZSBzdXByZW1lIGNvdXJ0IG9yIHRoZSBz dXJyb2dhdGVgcyAgY291cnQgIGluICB0aGUgIGNvdW50eSAgaW4Kd2hpY2ggIHRoZSAgaW5m YW50ICByZXNpZGVzLCBvciBpZiBoZSBpcyBub3QgYSByZXNpZGVudCBvZiB0aGUgc3RhdGUs IGluCmFueSBjb3VudHkgaW4gd2hpY2ggdGhlIGluZmFudCBpcyB0byBiZSBlbXBsb3llZCB1 bmRlciB0aGUgY29udHJhY3QuCiAgKGIpIFRoZSBmb2xsb3dpbmcgcGVyc29ucywgb3RoZXIg dGhhbiBvbmUgd2hvICBpcyAgdGhlICBwZXRpdGlvbmVyICBvcgpqb2lucyBpbiB0aGUgcGV0 aXRpb24sIHNoYWxsIGJlIHNlcnZlZCB3aXRoIGFuIG9yZGVyIG9yIGNpdGF0aW9uIHRvIHNo b3cKY2F1c2UgIHdoeSAgdGhlICBwZXRpdGlvbiBzaG91bGQgbm90IGJlIGdyYW50ZWQ6IChp KSB0aGUgaW5mYW50LCBpZiBvdmVyCnRoZSBhZ2Ugb2YgZm91cnRlZW4geWVhcnMsIChpaSkg IGhpcyAgZ3VhcmRpYW4gIG9yICBndWFyZGlhbnMsICBpZiAgYW55LAp3aGV0aGVyIG9yIG5v dCBhcHBvaW50ZWQgb3IgcXVhbGlmaWVkIGluIHRoaXMgc3RhdGU7IChpaWkpIGVhY2ggcGFy dHkgdG8KdGhlICBjb250cmFjdDsgIChpdikgdGhlIHBhcmVudCBvciBwYXJlbnRzIG9mIHRo ZSBpbmZhbnQ7ICh2KSBhbnkgcGVyc29uCmhhdmluZyB0aGUgY2FyZSBhbmQgY3VzdG9keSBv ZiB0aGUgaW5mYW50OyAodmkpIHRoZSBwZXJzb24gd2l0aCB3aG9tIHRoZQppbmZhbnQgcmVz aWRlczsgYW5kICh2aWkpIGlmIGl0IGFwcGVhcnMgdGhhdCB0aGUgaW5mYW50IGlzIG1hcnJp ZWQsICBoaXMKc3BvdXNlLiAgU2VydmljZSBzaGFsbCBiZSBtYWRlIGluIHN1Y2ggbWFubmVy IGFzIHRoZSBjb3VydCBzaGFsbCBkaXJlY3QsCmF0IGxlYXN0IGVpZ2h0IGRheXMgYmVmb3Jl IHRoZSB0aW1lIGF0IHdoaWNoIHRoZSBwZXRpdGlvbiBpcyBub3RpY2VkICB0bwpiZSBoZWFy ZCwgdW5sZXNzIHRoZSBjb3VydCBzaGFsbCBmaXggYSBzaG9ydGVyIHRpbWUuCiAgNS4gIFRo ZSBwZXRpdGlvbiBzaGFsbCBoYXZlIGFubmV4ZWQgYSBjb21wbGV0ZSBjb3B5IG9mIHRoZSBj b250cmFjdCBvcgpwcm9wb3NlZCBjb250cmFjdCBhbmQgc2hhbGwgc2V0IGZvcnRoOgogIChh KSBUaGUgZnVsbCBuYW1lLCByZXNpZGVuY2UgYW5kIGRhdGUgb2YgYmlydGggb2YgdGhlIGlu ZmFudDsKICAoYikgIFRoZSAgbmFtZSAgYW5kICByZXNpZGVuY2Ugb2YgYW55IGxpdmluZyBw YXJlbnQgb2YgdGhlIGluZmFudCwgdGhlCm5hbWUgYW5kIHJlc2lkZW5jZSBvZiB0aGUgcGVy c29uIHdobyBoYXMgY2FyZSBhbmQgY3VzdG9keSBvZiB0aGUgaW5mYW50LAphbmQgdGhlIG5h bWUgYW5kIHJlc2lkZW5jZSBvZiB0aGUgcGVyc29uIHdpdGggd2hvbSB0aGUgaW5mYW50IHJl c2lkZXM7CiAgKGMpIFdoZXRoZXIgdGhlIGluZmFudCBoYXMgaGFkIGF0IGFueSB0aW1lICBh ICBndWFyZGlhbiAgYXBwb2ludGVkICBieQp3aWxsIG9yIGRlZWQgb3IgYnkgYSBjb3VydCBv ZiBhbnkganVyaXNkaWN0aW9uOwogIChkKSAgV2hldGhlciAgdGhlIGluZmFudCBpcyBhIHJl c2lkZW50IG9mIHRoZSBzdGF0ZSwgb3IgaWYgaGUgaXMgbm90IGEKcmVzaWRlbnQsIHRoYXQg dGhlIHBldGl0aW9uIGlzIGZvciBhcHByb3ZhbCBvZiBhIGNvbnRyYWN0ICBmb3IgIHBlcmZv cm0tCmFuY2UgIG9yICByZW5kZXJpbmcgb2Ygc2VydmljZXMgYnkgdGhlIGluZmFudCBhbmQg dGhlIHBsYWNlIGluIHRoZSBzdGF0ZQp3aGVyZSB0aGUgc2VydmljZXMgYXJlIHRvIGJlIHBl cmZvcm1lZCBvciByZW5kZXJlZDsKICAoZSkgQSBicmllZiBzdGF0ZW1lbnQgYXMgdG8gdGhl IGluZmFudGBzIGVtcGxveW1lbnQgIGFuZCAgY29tcGVuc2F0aW9uCnVuZGVyIHRoZSBjb250 cmFjdCBvciBwcm9wb3NlZCBjb250cmFjdDsKICAoZikgIChpKSAgQSAgc3RhdGVtZW50ICB0 aGF0IHRoZSB0ZXJtIG9mIHRoZSBjb250cmFjdCBkdXJpbmcgd2hpY2ggdGhlCmluZmFudCBp cyB0byBwZXJmb3JtIG9yIHJlbmRlciBzZXJ2aWNlcyBvciAgZHVyaW5nICB3aGljaCAgYSAg cGVyc29uICBpcwplbXBsb3llZCAgdG8gIHJlbmRlciBzZXJ2aWNlcyB0byB0aGUgaW5mYW50 IGNhbiBpbiBubyBldmVudCBleHRlbmQgZm9yIGEKcGVyaW9kIG9mIG1vcmUgdGhhbiB0aHJl ZSAgeWVhcnMgIGZyb20gIHRoZSAgZGF0ZSAgb2YgIGFwcHJvdmFsICBvZiAgdGhlCmNvbnRy YWN0LCAgYW5kICAoaWkpIGFuIGVudW1lcmF0aW9uIG9mIGFueSBvdGhlciBjb3ZlbmFudHMg b3IgY29uZGl0aW9ucwpjb250YWluZWQgaW4gdGhlIGNvbnRyYWN0IHdoaWNoIGV4dGVuZCBi ZXlvbmQgIHN1Y2ggIHRocmVlICB5ZWFycyAgb3IgIGEKc3RhdGVtZW50ICB0aGF0ICB0aGUg Y29udHJhY3QgY29udGFpbnMgbm8gc3VjaCBvdGhlciBjb3ZlbmFudHMgb3IgY29uZGktCnRp b25zOwogIChnKSBBIHN0YXRlbWVudCBhcyB0byB3aG8gaXMgZW50aXRsZWQgdG8gdGhlIGlu ZmFudGBzIGVhcm5pbmdzIGFuZCwgaWYKdGhlIGluZmFudCBpcyBub3Qgc28gZW50aXRsZWQs IGZhY3RzIHJlZ2FyZGluZyB0aGUgcHJvcGVydHkgIGFuZCAgZmluYW4tCmNpYWwgY2lyY3Vt c3RhbmNlcyBvZiB0aGUgcGFyZW50IG9yIHBhcmVudHMgd2hvIGFyZSBzbyBlbnRpdGxlZDsK ICAoaCkgIFRoZSBmYWN0cyB3aXRoIHJlc3BlY3QgdG8gYW55IHByZXZpb3VzIGFwcGxpY2F0 aW9uIGZvciB0aGUgcmVsaWVmCnNvdWdodCBpbiB0aGUgcGV0aXRpb24gb3Igc2ltaWxhciBy ZWxpZWYgd2l0aCByZXNwZWN0IHRvIHRoZSBpbmZhbnQ7CiAgKGkpIEEgc2NoZWR1bGUgc2hv d2luZyB0aGUgaW5mYW50YHMgZ3Jvc3MgZWFybmluZ3MsIGVzdGltYXRlZCAgb3V0bGF5cwph bmQgIGVzdGltYXRlZCAgbmV0ICBlYXJuaW5ncyAgYXMgIGRlZmluZWQgIGluIHN1YmRpdmlz aW9uIHRocmVlIG9mIHRoaXMKc2VjdGlvbjsKICAoaikgVGhlIGludGVyZXN0ICBvZiAgdGhl ICBwZXRpdGlvbmVyICBpbiAgdGhlICBjb250cmFjdCAgb3IgIHByb3Bvc2VkCmNvbnRyYWN0 IG9yIGluIHRoZSBpbmZhbnRgcyBwZXJmb3JtYW5jZSB1bmRlciBpdDsKICAoaykgU3VjaCBv dGhlciBmYWN0cyByZWdhcmRpbmcgdGhlIGluZmFudCwgaGlzIGZhbWlseSBhbmQgcHJvcGVy dHksIGFzCnNob3cgIHRoYXQgIHRoZSAgY29udHJhY3QgIGlzICByZWFzb25hYmxlIGFuZCBw cm92aWRlbnQgYW5kIGZvciB0aGUgYmVzdAppbnRlcmVzdHMgb2YgdGhlIGluZmFudC4KICBJ ZiBubyBndWFyZGlhbiBvZiB0aGUgcHJvcGVydHkgb2YgdGhlIGluZmFudCAgaGFzICBiZWVu ICBhcHBvaW50ZWQgIG9yCnF1YWxpZmllZCAgaW4gIHRoaXMgc3RhdGUsIHRoZSBwZXRpdGlv biBzaGFsbCBhbHNvIHByYXkgZm9yIHRoZSBhcHBvaW50LQptZW50IG9mIGEgbGltaXRlZCBn dWFyZGlhbiBhcyBwcm92aWRlZCAgaW4gIHN1YmRpdmlzaW9uICBzZXZlbiAgb2YgIHRoaXMK c2VjdGlvbi4gICAgVGhlICBwZXRpdGlvbiAgbWF5IG5vbWluYXRlIGEgcGVyc29uIHRvIGJl IGFwcG9pbnRlZCBhcyBzdWNoCmxpbWl0ZWQgZ3VhcmRpYW4sIHNldHRpbmcgZm9ydGggcmVh c29ucyB3aHkgdGhlIHBlcnNvbiAgbm9taW5hdGVkICB3b3VsZApiZSAgYSBwcm9wZXIgYW5k IHN1aXRhYmxlIHBlcnNvbiB0byBiZSBhcHBvaW50ZWQgYXMgbGltaXRlZCBndWFyZGlhbiBh bmQKc2V0dGluZyBmb3J0aCB0aGUgaW50ZXJlc3Qgb2YgdGhlIHBlcnNvbiBzbyBub21pbmF0 ZWQgaW4gdGhlIGNvbnRyYWN0IG9yCnByb3Bvc2VkIGNvbnRyYWN0IG9yIGluIHRoZSBpbmZh bnRgcyBwZXJmb3JtYW5jZSB1bmRlciBpdC4KICA2LiBBdCBhbnkgdGltZSBhZnRlciB0aGUg ZmlsaW5nIG9mIHRoZSBwZXRpdGlvbiB0aGUgY291cnQsIGlmIGl0IGRlZW1zCml0IGFkdmlz YWJsZSwgbWF5IGFwcG9pbnQgYSBzcGVjaWFsIGd1YXJkaWFuIHRvIHJlcHJlc2VudCB0aGUg IGludGVyZXN0cwpvZiB0aGUgaW5mYW50LgogIDcuICBJZiAgYSBndWFyZGlhbiBvZiB0aGUg cHJvcGVydHkgb2YgdGhlIGluZmFudCBoYXMgYmVlbiBhcHBvaW50ZWQgb3IKcXVhbGlmaWVk IGluIHRoaXMgc3RhdGUsIGhlIHNoYWxsIHJlY2VpdmUgIGFuZCAgaG9sZCAgYW55ICBuZXQg IGVhcm5pbmdzCmRpcmVjdGVkICBieSAgdGhlICBjb3VydCAgdG8gIGJlIHNldCBhc2lkZSBm b3IgdGhlIGluZmFudCBhcyBwcm92aWRlZCBpbgpzdWJkaXZpc2lvbiB0aHJlZS4gSW4gIGFu eSAgb3RoZXIgIGNhc2UgIGEgIGxpbWl0ZWQgIGd1YXJkaWFuICBzaGFsbCAgYmUKYXBwb2lu dGVkICBmb3IgIHN1Y2ggIHB1cnBvc2UuIEEgcGFyZW50LCBndWFyZGlhbiBvciBvdGhlciBw ZXRpdGlvbmVyIGlzCm5vdCBpbmVsaWdpYmxlIHRvIGJlIGFwcG9pbnRlZCBhcyBsaW1pdGVk ICBndWFyZGlhbiAgYnkgIHJlYXNvbiAgb2YgIGhpcwppbnRlcmVzdCAgaW4gIGFueSAgcGFy dCAgb2YgIHRoZSBpbmZhbnRgcyBlYXJuaW5ncyB1bmRlciB0aGUgY29udHJhY3Qgb3IKcHJv cG9zZWQgY29udHJhY3Qgb3IgYnkgcmVhc29uIG9mIHRoZSBmYWN0IHRoYXQgaGUgIGlzICBh ICBwYXJ0eSAgdG8gIG9yCm90aGVyd2lzZSAgaW50ZXJlc3RlZCAgaW4gIHRoZSAgY29udHJh Y3QgIG9yIGluIHRoZSBpbmZhbnRgcyBwZXJmb3JtYW5jZQp1bmRlciB0aGUgY29udHJhY3Qs IHByb3ZpZGVkIHN1Y2ggaW50ZXJlc3QgaXMgZGlzY2xvc2VkLgogIElmIHRoZSBjb250cmFj dCBpcyBhcHByb3ZlZCBhbmQgaWYgIHRoZSAgY291cnQgIHNoYWxsICBkaXJlY3QgIHRoYXQg IGEKcG9ydGlvbiAgb2YgIHRoZSAgbmV0ICBlYXJuaW5ncyAgYmUgc2V0IGFzaWRlIGFzIHBy b3ZpZGVkIGluIHN1YmRpdmlzaW9uCnRocmVlIG9mIHRoaXMgc2VjdGlvbiwgdGhlIGxpbWl0 ZWQgZ3VhcmRpYW4gc2hhbGwgcXVhbGlmeSBpbiB0aGUgIG1hbm5lcgpwcm92aWRlZCAgd2l0 aCAgcmVzcGVjdCAgdG8gIGEgIGdlbmVyYWwgIGd1YXJkaWFuIG9mIHRoZSBwcm9wZXJ0eSBv ZiB0aGUKaW5mYW50IGFwcG9pbnRlZCBieSB0aGUgY291cnQgaW4gd2hpY2ggdGhlIHByb2Nl ZWRpbmcgaXMgaGFkLCAgYW5kICB3aXRoCnJlc3BlY3QgIHRvIG5ldCBlYXJuaW5ncyBvcmRl cmVkIHRvIGJlIHNldCBhc2lkZSBzaGFsbCBiZSBzdWJqZWN0IHRvIGFsbApwcm92aXNpb25z IGFwcGxpY2FibGUgdG8gYSBnZW5lcmFsIGd1YXJkaWFuIHNvIGFwcG9pbnRlZC4KICBJZiBh IGd1YXJkaWFuIG9mIHRoZSBwcm9wZXJ0eSBvZiB0aGUgaW5mYW50IGlzIGFwcG9pbnRlZCBv ciAgcXVhbGlmaWVzCmFmdGVyICB0aGUgIGFwcG9pbnRtZW50ICBvZiBhIGxpbWl0ZWQgZ3Vh cmRpYW4sIHRoZSBsaW1pdGVkIGd1YXJkaWFuIG1heQpjb250aW51ZSB0byBhY3Qgd2l0aCBy ZXNwZWN0IHRvIGVhcm5pbmdzIHVuZGVyIHRoZSBjb250cmFjdCBhcHByb3ZlZCAgYnkKdGhl ICBjb3VydCAgdW50aWwgdGhlIHRlcm1pbmF0aW9uIG9mIHRoZSBjb250cmFjdDsgdXBvbiBz dWNoIHRlcm1pbmF0aW9uCmhlIHNoYWxsIHRyYW5zZmVyIHRvIHRoZSBndWFyZGlhbiBvZiB0 aGUgaW5mYW50YHMgcHJvcGVydHkgdGhlIGZ1bmRzICBvZgp0aGUgaW5mYW50IGluIGhpcyBo YW5kcy4KICA4LiAgKGEpICBUaGUgIGluZmFudCBzaGFsbCBhdHRlbmQgcGVyc29uYWxseSBi ZWZvcmUgdGhlIGNvdXJ0IHVwb24gdGhlCmhlYXJpbmcgb2YgdGhlIHBldGl0aW9uLiBVcG9u IHN1Y2ggaGVhcmluZywgYW5kIHVwb24gc3VjaCAgcHJvb2YgIGFzICBpdApkZWVtcyAgbmVj ZXNzYXJ5ICBhbmQgIGFkdmlzYWJsZSwgIHRoZSAgY291cnQgIHNoYWxsICBtYWtlIHN1Y2gg b3JkZXIgYXMKanVzdGljZSBhbmQgdGhlIGJlc3QgaW50ZXJlc3RzIG9mIHRoZSBpbmZhbnQg cmVxdWlyZS4KICAoYikgVGhlIGNvdXJ0IGF0IHN1Y2ggaGVhcmluZyBvciBvbiBhbiAgYWRq b3Vybm1lbnQgIHRoZXJlb2YgIG1heSwgIGJ5Cm9yZGVyOgogIChpKSAgZGV0ZXJtaW5lICBh bnkgIGlzc3VlICBhcmlzaW5nICBmcm9tICB0aGUgIHBsZWFkaW5ncyBvciBwcm9vZiBhbmQK cmVxdWlyZWQgdG8gYmUgZGV0ZXJtaW5lZCBmb3IgZmluYWwgZGlzcG9zaXRpb24gb2YgdGhl IG1hdHRlciwgaW5jbHVkaW5nCmlzc3VlcyB3aXRoIHJlc3BlY3QgdG8gdGhlIGFnZSBvciBl bWFuY2lwYXRpb24gb2YgIHRoZSAgaW5mYW50ICBvciAgd2l0aApyZXNwZWN0IHRvIGVudGl0 bGVtZW50IG9mIGFueSBwZXJzb24gdG8gaGlzIGVhcm5pbmdzOwogIChpaSkgIGRpc2FwcHJv dmUgIHRoZSAgY29udHJhY3Qgb3IgcHJvcG9zZWQgY29udHJhY3Qgb3IgYXBwcm92ZSBpdCwg b3IKYXBwcm92ZSBpdCB1cG9uIHN1Y2ggY29uZGl0aW9ucywgd2l0aCByZXNwZWN0ICB0byAg bW9kaWZpY2F0aW9uICBvZiAgdGhlCnRlcm1zIHRoZXJlb2Ygb3Igb3RoZXJ3aXNlLCBhcyBp dCBzaGFsbCBkZXRlcm1pbmU7CiAgKGlpaSkgIGFwcG9pbnQgIGEgbGltaXRlZCBndWFyZGlh biBhcyBwcm92aWRlZCBpbiBzdWJkaXZpc2lvbiBzZXZlbiBvZgp0aGlzIHNlY3Rpb24uCiAg KGMpIElmIHRoZSBjb250cmFjdCBpcyBhcHByb3ZlZCAgdXBvbiAgY29uZGl0aW9uICBvZiAg Y29uc2VudCAgdGhhdCAgYQpwb3J0aW9uICBvZiAgdGhlICBuZXQgIGVhcm5pbmdzICBvZiB0 aGUgaW5mYW50IHVuZGVyIHRoZSBjb250cmFjdCBiZSBzZXQKYXNpZGUsIHRoZSBjb3VydCBz aGFsbCBmaXggdGhlIGFtb3VudCBvciBwcm9wb3J0aW9uIG9mIG5ldCAgZWFybmluZ3MgIHRv CmJlIHNldCBhc2lkZSBhbmQgaWYgdGhlIGNvdXJ0IHNoYWxsIGZpbmQgdGhhdCBjb25zZW50 IG9yIGNvbnNlbnRzIHRoZXJlLQp0byAgaGF2ZSAgYmVlbiAgZmlsZWQgIGFzIHByb3ZpZGVk IGluIHN1YmRpdmlzaW9uIHRocmVlIG9mIHRoaXMgc2VjdGlvbiwKc2hhbGwgZ2l2ZSBkaXJl Y3Rpb25zIHdpdGggcmVzcGVjdCB0byBjb21wdXRhdGlvbiBvZiBhbmQgcGF5bWVudCBvZiBz dW1zCnRvIGJlIHNldCBhc2lkZS4KCiAgICBTICAzNS4wNS4gIEVtcGxveW1lbnQgb2YgY2hp bGRyZW4gYXMgbW9kZWxzLiAxLiBJdCBzaGFsbCBiZSB1bmxhd2Z1bAp0byBlbXBsb3ksIHVz ZSwgZXhoaWJpdCBvciBjYXVzZSB0byBiZSBleGhpYml0ZWQgIGEgIG1pbm9yICBhcyAgYSAg bW9kZWwKdW5sZXNzOgogICAgKGEpICBBICBjaGlsZCAgbW9kZWwgIHdvcmsgIHBlcm1pdCAg aGFzICBiZWVuICBpc3N1ZWQgYXMgaGVyZWluYWZ0ZXIKcHJvdmlkZWQ7IGFuZAogICAgKGIp ICBTdWNoICBlbXBsb3ltZW50LCAgdXNlICBvciBleGhpYml0aW9uIGlzIGluIGFjY29yZGFu Y2Ugd2l0aCB0aGUKcnVsZXMgYW5kIHJlZ3VsYXRpb25zIHByb211bGdhdGVkIGJ5IHRoZSBj b21taXNzaW9uZXIgIG9mICBlZHVjYXRpb24gIGFzCmhlcmVpbmFmdGVyIHByb3ZpZGVkLgog ICAgMi4gIEl0ICBzaGFsbCAgYmUgIHVubGF3ZnVsIGZvciBhbnkgcGFyZW50IG9yIGd1YXJk aWFuIG9mIGEgbWlub3IgdG8Kb2J0YWluIG9yIGNvbnNlbnQgdG8gdGhlIGVtcGxveW1lbnQg b3IgZXhoaWJpdGlvbiBvZiAgc3VjaCAgbWlub3IgIGFzICBhCm1vZGVsIHVubGVzcyBhIHBl cm1pdCBoYXMgYmVlbiBpc3N1ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgc2VjdGlvbi4K ICAgIDMuIEFuIGFwcGxpY2F0aW9uIGZvciBhIHBlcm1pdCBmb3IgdGhlIGVtcGxveW1lbnQg b3IgZXhoaWJpdGlvbiBvZiBhCm1pbm9yIGFzIGEgbW9kZWwgc2hhbGwgYmUgbWFkZSAgYnkg IHN1Y2ggIG1pbm9yICBvciAgYnkgIGhpcyAgcGFyZW50ICBvcgpndWFyZGlhbiBvbiBhIGZv cm0gcHJlc2NyaWJlZCBieSB0aGUgY29tbWlzc2lvbmVyIG9mIGVkdWNhdGlvbiBhbmQgc2hh bGwKY29udGFpbiBzdWNoIG1hdHRlcnMgYXMgdGhlIGNvbW1pc3Npb25lciBtYXkgZGV0ZXJt aW5lIHRvIGJlICBuZWNlc3NhcnksCmluY2x1ZGluZyB0aGUgZm9sbG93aW5nOgogICAgKGEp IFRoZSBtaW5vcmBzIG5hbWUsIGFkZHJlc3MsIGRhdGUgb2YgYmlydGgsIGFuZCBpZiB0aGUg bWlub3IgaXMgb2YKc2Nob29sIGFnZSwgdGhlIG5hbWUgYW5kIGFkZHJlc3Mgb2YgdGhlIHNj aG9vbCB0aGUgbWlub3IgYXR0ZW5kcyBhbmQsIGlmCnRoZSBhcHBsaWNhdGlvbiBpcyBtYWRl IGJ5IGhpcyBwYXJlbnQgb3IgZ3VhcmRpYW4gb2YgYSBtaW5vciBvdmVyIHR3ZWx2ZQp5ZWFy cyBvZiBhZ2UgdGhlIGNvbnNlbnQgb2Ygc3VjaCBtaW5vcjsKICAgIChiKSAgVGhlIG5hbWUg YW5kIGFkZHJlc3Mgb2YgdGhlIHBhcmVudCBvciBndWFyZGlhbiwgYW5kIHRoZSBjb25zZW50 Cm9mIHRoZSBwYXJlbnQgb3IgZ3VhcmRpYW4gdG8gdGhlIGlzc3VhbmNlIG9mIHRoZSBwZXJt aXQ7CiAgICAoYykgIEEgIGNlcnRpZmljYXRlICBmcm9tICBhICBwaHlzaWNpYW4gIHNob3dp bmcgIHRoYXQgIHRoZSBtaW5vciBpcwpwaHlzaWNhbGx5IGZpdCB0byBiZSBlbXBsb3llZCBv ciBleGhpYml0ZWQgYXMgYSBtb2RlbC4gSW4gYSBjaXR5IG9mIG92ZXIKb25lICBtaWxsaW9u ICBwb3B1bGF0aW9uIHN1Y2ggY2VydGlmaWNhdGUgc2hhbGwgYmUgaXNzdWVkIGJ5IGEgcGh5 c2ljaWFuCmRlc2lnbmF0ZWQgYnkgdGhlIGRlcGFydG1lbnQgb2YgaGVhbHRoIGlmIHRoZSBt aW5vciBpcyBvZiBzY2hvb2wgYWdlLgogICAgNC4gQSBjaGlsZCBtb2RlbCB3b3JrIHBlcm1p dCBzaGFsbCBiZSBpc3N1ZWQgdXBvbiBhcHBsaWNhdGlvbiB0byB0aGUKc3VwZXJpbnRlbmRl bnQgb2Ygc2Nob29scyBpbiBjaXRpZXMgYW5kICBzY2hvb2wgIGRpc3RyaWN0cyAgZW1wbG95 aW5nICBhCnN1cGVyaW50ZW5kZW50IG9mIHNjaG9vbHMgYW5kIGVsc2V3aGVyZSB1cG9uIGFw cGxpY2F0aW9uIHRvIHRoZSBkaXN0cmljdApzdXBlcmludGVuZGVudCBvZiBzY2hvb2xzLiAg QSAgc3VwZXJpbnRlbmRlbnQgIG9mICBzY2hvb2xzICBvciAgZGlzdHJpY3QKc3VwZXJpbnRl bmRlbnQgIG9mICBzY2hvb2xzICBtYXksICBpbiBhY2NvcmRhbmNlIHdpdGggcmVndWxhdGlv bnMgb2YgdGhlCmNvbW1pc3Npb25lciBvZiBlZHVjYXRpb24sIGRlc2lnbmF0ZSAgaW4gIHdy aXRpbmcgIG9uZSAgb3IgIG1vcmUgIHB1YmxpYwpzY2hvb2wgb2ZmaWNpYWxzIHRvIGFjdCBh cyBjZXJ0aWZpY2F0aW5nIG9mZmljZXIgaW4gaGlzIHN0ZWFkLgogICAgNS4gIEEgIGNoaWxk ICBtb2RlbCAgd29yayAgcGVybWl0IG1heSBiZSBpc3N1ZWQgYnkgdGhlIGNlcnRpZmljYXRp bmcKb2ZmaWNlciBpZiBoZSBmaW5kcyB0aGF0IHRoZSBlbXBsb3ltZW50IG9yIGV4aGliaXRp b24gb2YgdGhlIG1pbm9yIGFzICBhCm1vZGVsICB3aWxsICBub3QgIGJlIGhhcm1mdWwgdG8g aGlzIGhlYWx0aCBhbmQgd2VsZmFyZSwgYW5kIHRoYXQsIGluIHRoZQpjYXNlIG9mIGEgbWlu b3Igb2YgIHNjaG9vbCAgYWdlLCAgdGhlICBtaW5vcmBzICBlZHVjYXRpb24gIHdpbGwgIG5v dCAgYmUKbmVnbGVjdGVkLgogICAgNi4gQSBjaGlsZCBtb2RlbCB3b3JrIHBlcm1pdDoKICAg IChhKSAgU2hhbGwgIGJlIHNpZ25lZCBieSBlYWNoIHBlcnNvbiBlbXBsb3lpbmcsIHVzaW5n LCBvciBleGhpYml0aW5nCnRoZSBtaW5vciBwcmlvciAgdG8gIHRoZSAgY29tbWVuY2VtZW50 ICBvZiAgdGhlICBtaW5vcmBzICBlbXBsb3ltZW50ICBvcgpleGhpYml0aW9uICBhbmQgIHNo YWxsICBwZXJtaXQgdGhlIGVtcGxveW1lbnQsIHVzZSBvciBleGhpYml0aW9uIG9mIHN1Y2gK bWlub3Igb25seSB3aGVuIHNpZ25lZCBieSBzdWNoIHBlcnNvbjsKICAgIChiKSAgU2hhbGwg IG5vdCBiZSB2YWxpZCB3aGVuIGF0dGVuZGFuY2UgZm9yIGluc3RydWN0aW9uIGlzIHJlcXVp cmVkCmluIGFjY29yZGFuY2Ugd2l0aCB0aGUgZWR1Y2F0aW9uIGxhdzsKICAgIChjKSBTaGFs bCB0ZXJtaW5hdGUgb25lIHllYXIgYWZ0ZXIgdGhlIGRhdGUgb2YgaXNzdWFuY2U7CiAgICAo ZCkgTWF5IGJlIHJldm9rZWQgYnkgdGhlIGNlcnRpZmljYXRpbmcgb2ZmaWNlciBhdCBhbnkg dGltZSBmb3IgZ29vZApjYXVzZS4KICAgIDcuICAgVGhlICAgY29tbWlzc2lvbmVyICAgb2Yg IGVkdWNhdGlvbiAgbWF5ICBwcm9tdWxnYXRlICBydWxlcyAgYW5kCnJlZ3VsYXRpb25zIHRv IGNhcnJ5IG91dCB0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIHNlY3Rpb24uIFN1Y2ggcnVsZXMg IGFuZApyZWd1bGF0aW9ucyBzaGFsbCBiZSBkZXNpZ25lZCB0byBwcm90ZWN0IHRoZSBoZWFs dGggYW5kIHdlbGZhcmUgb2YgY2hpbGQKbW9kZWxzIGFuZCB0byBpbnN1cmUgdGhhdCB0aGUg Y29uZGl0aW9ucyB1bmRlciB3aGljaCBzdWNoICBjaGlsZCAgbW9kZWxzCmFyZSBlbXBsb3ll ZCwgdXNlZCBvciBleGhpYml0ZWQgd2lsbCBub3QgaW1wYWlyIHRoZWlyIGhlYWx0aCBvciB3 ZWxmYXJlLgogICAgOC4gIFRoaXMgIHNlY3Rpb24gIHNoYWxsICBub3QgIGFwcGx5ICB0byAg dGhlICBlbXBsb3ltZW50LCAgdXNlLCAgb3IKZXhoaWJpdGlvbiBvZiBhIG1pbm9yIGFzIGEg bW9kZWw6CiAgICAoYSkgIEluIGEgdGVsZXZpc2lvbiBicm9hZGNhc3Qgb3IgcHJvZ3JhbSBm b3Igd2hvbSBhIHBlcm1pdCBoYXMgYmVlbgppc3N1ZWQgcHVyc3VhbnQgdG8gc2VjdGlvbiAz NS4wMSBvZiB0aGlzIGFydGljbGU7CiAgICAoYikgIEJ5ICBhICBmZWRlcmFsLCAgc3RhdGUg IG9yICBtdW5pY2lwYWwgIGdvdmVybm1lbnQgIG9yIHBvbGl0aWNhbApzdWJkaXZpc2lvbiBv ciBhZ2VuY3kgdGhlcmVvZiwgb3IgIGJ5ICBhbnkgIGNvcnBvcmF0aW9uLCAgdW5pbmNvcnBv cmF0ZWQKYXNzb2NpYXRpb24sICBjb21tdW5pdHkgY2hlc3QsIGZ1bmQgb3IgZm91bmRhdGlv biBvcmdhbml6ZWQgYW5kIG9wZXJhdGVkCmV4Y2x1c2l2ZWx5IGZvciByZWxpZ2lvdXMsIGNo YXJpdGFibGUgb3IgZWR1Y2F0aW9uYWwgcHVycG9zZXMsICBubyAgcGFydApvZiAgdGhlICBu ZXQgIGVhcm5pbmdzICBvZiAgd2hpY2ggIGludXJlcyAgdG8gdGhlIGJlbmVmaXQgb2YgYW55 IHByaXZhdGUKc2hhcmVob2xkZXIgb3IgaW5kaXZpZHVhbC4KICAgIDkuIFZpb2xhdGlvbiBv ZiB0aGlzIHNlY3Rpb24gc2hhbGwgYmUgYSBtaXNkZW1lYW5vci4KCiAgICBTICAzNS4wNy4g IFVubGF3ZnVsICBleGhpYml0aW9ucy4gIDEuICBJdCAgc2hhbGwgYmUgdW5sYXdmdWwgZm9y IGFueQpwZXJzb24gdG8gZW1wbG95LCB1c2UsIG9yIGV4aGliaXQgYW55IGNoaWxkIHVuZGVy IHNpeHRlZW4geWVhcnMgb2YgIGFnZSwKb3IgIGZvciAgYSAgcGFyZW50LCAgZ3VhcmRpYW4g IG9yIGVtcGxveWVyIHRvIGNvbnNlbnQgdG8gb3IgdG8gcmVmdXNlIHRvCnJlc3RyYWluIHN1 Y2ggY2hpbGQgaW4gZW5nYWdpbmcgb3IgYWN0aW5nOgogICAgYS4gIEFzICBhIHJvcGUgb3Ig d2lyZSB3YWxrZXIsIGd5bW5hc3QgKGV4Y2VwdCBpbiBhIG5vbi1wcm9mZXNzaW9uYWwKY2Fw YWNpdHkgb3IgYWN0aXZpdHkpLCByaWRlciB1cG9uIGEgaG9yc2Ugb3Igb3RoZXIgYW5pbWFs IChleGNlcHQgIGluICBhCm5vbi1wcm9mZXNzaW9uYWwgIGhvcnNlICBzaG93KSwgb3IgYXMg YW4gYWNyb2JhdCwgb3IgdXBvbiBhbnkgYmljeWNsZSBvcgpvdGhlciBtZWNoYW5pY2FsIHZl aGljbGUgb3IgY29udHJpdmFuY2UgdW5sZXNzIGEgY2hpbGQgcGVyZm9ybWVyICBwZXJtaXQK aXMgIGlzc3VlZCAgcHVyc3VhbnQgdG8gdGhlIHByb3Zpc2lvbnMgb2Ygc2VjdGlvbiAzNS4w MSBvZiB0aGlzIGFydGljbGUsCmFuZCB0aGUgY2hpbGQgaXMgcHJvdGVjdGVkIGJ5IHRoZSB1 c2Ugb2Ygc2FmZXR5ICBkZXZpY2VzICBvciAgcHJvdGVjdGl2ZQplcXVpcG1lbnQgIHdoaWNo ICBjb21wbHkgd2l0aCB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgRmVkZXJhbCBPY2N1cGF0aW9u YWwKU2FmZXR5IGFuZCBIZWFsdGggQWN0IHByb3ZpZGVkLCAgaG93ZXZlciwgIHRoYXQgIHdo ZXJlICBhbiAgYWN0aXZpdHkgIGlzCmV4ZW1wdCAgZnJvbSAgdGhlICBwZXJtaXQgIHJlcXVp cmVtZW50ICBvZiAgdGhpcyAgcGFyYWdyYXBoICBiZWNhdXNlIHRoZQphY3Rpdml0eSBpcyBu b24tcHJvZmVzc2lvbmFsLCB0aGUgYWN0aXZpdHkgc2hhbGwgc3RpbGwgIGJlICByZXF1aXJl ZCAgdG8KY29tcGx5IHdpdGggdGhlIHJlcXVpcmVtZW50IG9mIHRoaXMgcGFyYWdyYXBoIHJl bGF0aW5nIHRvIHNhZmV0eSBkZXZpY2VzCmFuZCBwcm90ZWN0aXZlIGVxdWlwbWVudDsgb3IK ICAgIChiKSBBcyBhIHdyZXN0bGVyLCBib3hlciwgb3IgY29udG9ydGlvbmlzdDsgb3IKICAg IChjKSAgSW4gIGJlZ2dpbmcgIG9yICByZWNlaXZpbmcgIG9yIHNvbGljaXRpbmcgYWxtcyBp biBhbnkgbWFubmVyIG9yCnVuZGVyIGFueSBwcmV0ZW5zZSwgb3IgaW4gYW55IG1lbmRpY2Fu dCBvY2N1cGF0aW9uOyBvciBpbiAgZ2F0aGVyaW5nICBvcgpwaWNraW5nICByYWdzLCBvciBj b2xsZWN0aW5nIGNpZ2FyIHN0dW1wczsgb3IgY29sbGVjdGluZyBib25lcyBvciByZWZ1c2UK ZnJvbSBtYXJrZXRzIG9yIHN0cmVldHM7IG9yIGluIHBlZGRsaW5nOyBvcgogICAgKGQpICBJ biBhbnkgaWxsZWdhbCwgaW5kZWNlbnQsIG9yIGltbW9yYWwgZXhoaWJpdGlvbiBvciBwcmFj dGljZTsgb3IKaW4gdGhlICBleGhpYml0aW9uICBvZiAgYW55ICBzdWNoICBjaGlsZCAgd2hl biAgbWVudGFsbHkgIGlsbCwgIG1lbnRhbGx5CnJldGFyZGVkLCAgb3IgIHdoZW4gIHByZXNl bnRpbmcgIHRoZSAgYXBwZWFyYW5jZSAgb2YgIGFueSAgZGVmb3JtaXR5ICBvcgp1bm5hdHVy YWwgcGh5c2ljYWwgZm9ybWF0aW9uIG9yIGRldmVsb3BtZW50OyBvcgogICAgKGUpIEluIGFu eSBwcmFjdGljZSBvciBleGhpYml0aW9uIG9yIHBsYWNlIGRhbmdlcm91cyBvciBpbmp1cmlv dXMgdG8KdGhlIGxpZmUsIGxpbWIsIGhlYWx0aCBvciBtb3JhbHMgb2Ygc3VjaCBjaGlsZCBw cm92aWRlZCwgIGhvd2V2ZXIsICB0aGF0CnRoZSAgcHJvdmlzaW9ucyBvZiB0aGlzIHBhcmFn cmFwaCBzaGFsbCBub3QgYXBwbHkgdG8gc2VydmljZSBhcyBhIG1lbWJlcgpvZiBhIGNlcnRp ZmllZCB2b2x1bnRlZXIgYW1idWxhbmNlIHNlcnZpY2UgdW5kZXIgdGhlIHN1cGVydmlzaW9u ICBvZiAgYW4KZW1lcmdlbmN5IG1lZGljYWwgdGVjaG5pY2lhbiBhcyBwcm92aWRlZCBpbiBh cnRpY2xlIHRoaXJ0eSBvZiB0aGUgcHVibGljCmhlYWx0aCBsYXcgYnkgeW91dGhmdWwgdm9s dW50ZWVycyBhdCBsZWFzdCBmaWZ0ZWVuIHllYXJzIG9mIGFnZSB3aG8gaG9sZAphIGN1cnJl bnQgQW1lcmljYW4gUmVkIENyb3NzIGFkdmFuY2VkIGZpcnN0IGFpZCBhbmQgZW1lcmdlbmN5 IGNhcmUgY2FyZC4KICAgIDIuIFZpb2xhdGlvbiBvZiB0aGlzIHNlY3Rpb24gc2hhbGwgYmUg YSBtaXNkZW1lYW5vci4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1OZXcgWW9yayBTdGF0ZSBD b25zb2xpZGF0ZWQgTGF3cwpBcnRzIGFuZCBDdWx0dXJhbCBBZmZhaXJzCgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUSVRMRSBNCiAgICAgICAgICAgICAgICAgICAgVEhF QVRSSUNBTCBFTVBMT1lNRU5UIENPTlRSQUNUUzsKICAgICAgICAgICAgICAgICAgICAgICAg IFNBRkVUWSBQUkVDQVVUSU9OUyBGT1IKICAgICAgICAgICAgICAgICBDRVJUQUlOIFBFUkZP Uk1FUlM7IFBFUkZPUk1JTkcgQVJUSVNUUwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU5ldyBZ b3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMK CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlRJQ0xFIDM3CiAgICAgICAgICAg ICAgICAgICAgVEhFQVRSSUNBTCBFTVBMT1lNRU5UIENPTlRSQUNUUzsKICAgICAgICAgICAg ICAgICAgICAgICAgIFNBRkVUWSBQUkVDQVVUSU9OUyBGT1IKICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ0VSVEFJTiBQRVJGT1JNRVJTClNlY3Rpb24gMzcuMDEuIERlZmluaXRpb25z LgogICAgICAgICAzNy4wMy4gVGhlYXRyaWNhbCBlbXBsb3ltZW50OyBjb250cmFjdHMuCiAg ICAgICAgIDM3LjA1LiBUaGVhdHJpY2FsICAgZW1wbG95bWVudDsgIGZpbmFuY2lhbCAgaW52 ZXN0aWdhdGlvbnMgIGFuZAogICAgICAgICAgICAgICAgICAgICBzZWN1cml0eS4KICAgICAg ICAgMzcuMDcuIFBlcmZvcm1pbmcgIGFydGlzdHM7IGFkcyBmb3IgYXZhaWxhYmlsaXR5IG9m IGVtcGxveW1lbnQuCiAgICAgICAgIDM3LjA5LiBQcm90ZWN0aW9uIG9mIGFlcmlhbCBwZXJm b3JtZXJzIGZyb20gYWNjaWRlbnRhbCBmYWxscy4KICAgICAgICAgMzcuMTEuIFByZXZlbnRp b24gIG9mIHBlcnNvbmFsIGluanVyaWVzIGF0IGNhcm5pdmFscywgZmFpcnMgYW5kCiAgICAg ICAgICAgICAgICAgICAgIGFtdXNlbWVudCBwYXJrcy4KCiAgUyAgMzcuMDEuICBEZWZpbml0 aW9ucy4gIEFzICB1c2VkICBpbiBzZWN0aW9ucyAzNy4wMyBhbmQgMzcuMDUgb2YgdGhpcwph cnRpY2xlOgogIDEuICAiUGVyc29uIiAgbWVhbnMgIGFueSAgaW5kaXZpZHVhbCwgIGNvbXBh bnksICBzb2NpZXR5LCBhc3NvY2lhdGlvbiwKY29ycG9yYXRpb24sIG1hbmFnZXIsIGNvbnRy YWN0b3IsICBzdWJjb250cmFjdG9yLCAgcGFydG5lcnNoaXAsICBidXJlYXUsCmFnZW5jeSwg c2VydmljZSwgb2ZmaWNlIG9yIHRoZSBhZ2VudCBvciBlbXBsb3llZSBvZiB0aGUgZm9yZWdv aW5nLgogIDIuICAiRmVlIiAgbWVhbnMgIGFueXRoaW5nICBvZiAgdmFsdWUsICBpbmNsdWRp bmcgIGFueSAgbW9uZXkgb3Igb3RoZXIKdmFsdWFibGUgY29uc2lkZXJhdGlvbiBjaGFyZ2Vk LCBjb2xsZWN0ZWQsIHJlY2VpdmVkLCAgcGFpZCAgb3IgIHByb21pc2VkCmZvciAgYW55ICBz ZXJ2aWNlLCAgb3IgIGFjdCAgcmVuZGVyZWQgb3IgdG8gYmUgcmVuZGVyZWQgYnkgYW4gZW1w bG95bWVudAphZ2VuY3ksIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gbW9uZXkgcmVj ZWl2ZWQgYnkgIHN1Y2ggIGFnZW5jeSAgb3IKaXRzICBlbWlncmFudCAgYWdlbnQgIHdoaWNo ICBpcyAgbW9yZSAgdGhhbiAgdGhlICBhbW91bnQgIHBhaWQgYnkgaXQgZm9yCnRyYW5zcG9y dGF0aW9uLCB0cmFuc2ZlciBvZiBiYWdnYWdlLCBvciBib2FyZCBhbmQgbG9kZ2luZyBvbiAg YmVoYWxmICBvZgphbnkgYXBwbGljYW50IGZvciBlbXBsb3ltZW50LgogIDMuICAiVGhlYXRy aWNhbCAgZW1wbG95bWVudCAgYWdlbmN5IiAgbWVhbnMgIGFueSBwZXJzb24gKGFzIGRlZmlu ZWQgaW4Kc3ViZGl2aXNpb24gb25lIGhlcmVvZikgd2hvIHByb2N1cmVzIG9yIGF0dGVtcHRz IHRvICBwcm9jdXJlICBlbXBsb3ltZW50Cm9yIGVuZ2FnZW1lbnRzIGZvciBjaXJjdXMsIHZh dWRldmlsbGUsIHRoZSB2YXJpZXR5IGZpZWxkLCB0aGUgbGVnaXRpbWF0ZQp0aGVhdGVyLCBt b3Rpb24gIHBpY3R1cmVzLCAgcmFkaW8sICB0ZWxldmlzaW9uLCAgcGhvbm9ncmFwaCAgcmVj b3JkaW5ncywKdHJhbnNjcmlwdGlvbnMsIG9wZXJhLCBjb25jZXJ0LCBiYWxsZXQsIG1vZGVs aW5nIG9yIG90aGVyIGVudGVydGFpbm1lbnRzCm9yIGV4aGliaXRpb25zIG9yIHBlcmZvcm1h bmNlcywgYnV0ICBzdWNoICB0ZXJtICBkb2VzICBub3QgIGluY2x1ZGUgIHRoZQpidXNpbmVz cyAgb2YgIG1hbmFnaW5nIHN1Y2ggZW50ZXJ0YWlubWVudHMsIGV4aGliaXRpb25zIG9yIHBl cmZvcm1hbmNlcywKb3IgdGhlIGFydGlzdHMgb3IgYXR0cmFjdGlvbnMgY29uc3RpdHV0aW5n IHRoZSBzYW1lLCB3aGVyZSBzdWNoIGJ1c2luZXNzCm9ubHkgaW5jaWRlbnRhbGx5IGludm9s dmVzIHRoZSBzZWVraW5nIG9mIGVtcGxveW1lbnQgdGhlcmVmb3IuCiAgNC4gICJUaGVhdHJp Y2FsICBlbmdhZ2VtZW50IiAgbWVhbnMgIGFueSBlbmdhZ2VtZW50IG9yIGVtcGxveW1lbnQg b2YgYQpwZXJzb24gYXMgYW4gYWN0b3IsIHBlcmZvcm1lciBvciBlbnRlcnRhaW5lciBpbiBl bXBsb3ltZW50IGRlc2NyaWJlZCAgaW4Kc3ViZGl2aXNpb24gdGhyZWUgb2YgdGhpcyBzZWN0 aW9uLgoKICBTICAzNy4wMy4gIFRoZWF0cmljYWwgZW1wbG95bWVudDsgY29udHJhY3RzLiBF dmVyeSBsaWNlbnNlZCBwZXJzb24gd2hvCnNoYWxsIHByb2N1cmUgZm9yIG9yIG9mZmVyIHRv IGFuIGFwcGxpY2FudCBhIHRoZWF0cmljYWwgZW5nYWdlbWVudCBzaGFsbApoYXZlICBleGVj dXRlZCAgaW4gIGR1cGxpY2F0ZSAgYSAgY29udHJhY3QgIG9yIGRlbGl2ZXIgdG8gdGhlIHBh cnRpZXMgYXMKaGVyZWluIHNldCBmb3J0aCBhIHN0YXRlbWVudCBjb250YWluaW5nIHRoZSAg bmFtZSAgYW5kICBhZGRyZXNzICBvZiAgdGhlCmFwcGxpY2FudDsgIHRoZSBuYW1lIGFuZCBh ZGRyZXNzIG9mIHRoZSBlbXBsb3llciBvZiB0aGUgYXBwbGljYW50IGFuZCBvZgp0aGUgcGVy c29uIGFjdGluZyBmb3Igc3VjaCBlbXBsb3llciBpbiAgZW1wbG95aW5nICBzdWNoICBhcHBs aWNhbnQ7ICB0aGUKdGltZSAgYW5kICBkdXJhdGlvbiAgb2YgIHN1Y2ggIGVuZ2FnZW1lbnQ7 IHRoZSBhbW91bnQgdG8gYmUgcGFpZCB0byBzdWNoCmFwcGxpY2FudDsgdGhlIGNoYXJhY3Rl ciBvZiBlbnRlcnRhaW5tZW50IHRvIGJlIGdpdmVuIG9yIHNlcnZpY2VzIHRvICBiZQpyZW5k ZXJlZDsgIHRoZSBudW1iZXIgb2YgcGVyZm9ybWFuY2VzIHBlciBkYXkgb3IgcGVyIHdlZWsg dGhhdCBhcmUgdG8gYmUKZ2l2ZW4gYnkgc2FpZCBhcHBsaWNhbnQ7IGlmIGEgdmF1ZGV2aWxs ZSBlbmdhZ2VtZW50LCAgdGhlICBuYW1lICBvZiAgdGhlCnBlcnNvbiAgYnkgIHdob20gIHRo ZSAgdHJhbnNwb3J0YXRpb24gIGlzICB0byAgYmUgIHBhaWQsICBhbmQgIGlmIGJ5IHRoZQph cHBsaWNhbnQsIGVpdGhlciB0aGUgY29zdCBvZiB0cmFuc3BvcnRhdGlvbiBiZXR3ZWVuICB0 aGUgIHBsYWNlcyAgd2hlcmUKc2FpZCAgZW50ZXJ0YWlubWVudCAgb3IgIHNlcnZpY2VzICBh cmUgIHRvICBiZSBnaXZlbiBvciByZW5kZXJlZCwgb3IgdGhlCmF2ZXJhZ2UgY29zdCBvZiB0 cmFuc3BvcnRhdGlvbiBiZXR3ZWVuIHRoZSBwbGFjZXMgIHdoZXJlICBzdWNoICBzZXJ2aWNl cwphcmUgIHRvICBiZSBnaXZlbiBvciByZW5kZXJlZDsgYW5kIGlmIGEgZHJhbWF0aWMgZW5n YWdlbWVudCwgdGhlIGNvc3Qgb2YKdHJhbnNwb3J0YXRpb24gdG8gdGhlIHBsYWNlIHdoZXJl IHRoZSBzZXJ2aWNlcyBiZWdpbiwgIGlmICBwYWlkICBieSAgdGhlCmFwcGxpY2FudDsgYW5k IHRoZSBncm9zcyBjb21taXNzaW9uIG9yIGZlZXMgdG8gYmUgcGFpZCBieSBzYWlkIGFwcGxp Y2FudAphbmQgdG8gd2hvbS4gIFN1Y2ggIGNvbnRyYWN0cyAgb3IgIHN0YXRlbWVudHMgIHNo YWxsICBjb250YWluICBubyAgb3RoZXIKY29uZGl0aW9ucyAgYW5kICBwcm92aXNpb25zICBl eGNlcHQgIHN1Y2ggIGFzICBhcmUgZXF1aXRhYmxlIGJldHdlZW4gdGhlCnBhcnRpZXMgdGhl cmV0byBhbmQgZG8gbm90IGNvbnN0aXR1dGUgIGFuICB1bnJlYXNvbmFibGUgIHJlc3RyaWN0 aW9uICBvZgpidXNpbmVzcy4gIEZvcm1zICBvZiBzdWNoIGNvbnRyYWN0IGFuZCBzdGF0ZW1l bnQgaW4gYmxhbmsgc2hhbGwgYmUgZmlyc3QKYXBwcm92ZWQgYnkgdGhlIGNvbW1pc3Npb25l ciBhbmQgaGlzIGRldGVybWluYXRpb24gc2hhbGwgIGJlICByZXZpZXdhYmxlCmJ5ICBjZXJ0 aW9yYXJpLiAgT25lICBvZiAgc3VjaCBkdXBsaWNhdGUgY29udHJhY3RzIG9yIG9mIHN1Y2gg c3RhdGVtZW50cwpzaGFsbCBiZSBkZWxpdmVyZWQgdG8gdGhlIHBlcnNvbiBlbmdhZ2luZyB0 aGUgYXBwbGljYW50ICBhbmQgIHRoZSAgb3RoZXIKc2hhbGwgIGJlICByZXRhaW5lZCBieSB0 aGUgYXBwbGljYW50LiBUaGUgbGljZW5zZWQgcGVyc29uIHByb2N1cmluZyBzdWNoCmVuZ2Fn ZW1lbnQgZm9yIHN1Y2ggYXBwbGljYW50IHNoYWxsIGtlZXAgb24gZmlsZSAgb3IgIGVudGVy ICBpbiAgYSAgYm9vawpwcm92aWRlZCBmb3IgdGhhdCBwdXJwb3NlIGEgY29weSBvZiBzdWNo IGNvbnRyYWN0IG9yIHN0YXRlbWVudC4KClMgMzcuMDUuIFRoZWF0cmljYWwgZW1wbG95bWVu dDsgZmluYW5jaWFsIGludmVzdGlnYXRpb25zIGFuZCBzZWN1cml0eS4gQQp0aGVhdHJpY2Fs ICBlbXBsb3ltZW50ICBhZ2VudCAgc2hhbGwgIGludmVzdGlnYXRlICB3aGV0aGVyICBvciAg bm90ICBhbnkKZW1wbG95ZXIgIChwZXJzb24sIGZpcm0gb3IgY29ycG9yYXRpb24pIHdobyBp cyBvZmZlcmluZyBlbXBsb3ltZW50IHRvIGFuCmFwcGxpY2FudCBmb3IgZW1wbG95bWVudCwg aGFzIGRlZmF1bHRlZCBpbiB0aGUgcGF5bWVudCBvZiBzYWxhcmllcywgZmVlcwpvciAgb3Ro ZXIgIGNvbXBlbnNhdGlvbiAgdG8gIGFueSBwZXJmb3JtZXIgb3IgZ3JvdXAgb2YgcGVyZm9y bWVycyBvciBoYXMKbGVmdCBzdHJhbmRlZCBhbnkgcGVyZm9ybWluZyBjb21wYW5pZXMgb3Ig aW5kaXZpZHVhbHMgb3IgZ3JvdXBzLCAgZHVyaW5nCnRoZSBmaXZlIHllYXJzIHByZWNlZGlu ZyB0aGUgZGF0ZSBvZiB0aGUgYXBwbGljYXRpb24uIEFuIGFnZW50IHNoYWxsIG5vdApwcm9j dXJlIG9yIHVuZGVydGFrZSB0byBwcm9jdXJlIGVtcGxveW1lbnQgb3IgZW5nYWdlbWVudHMg b24gdGhlIHBhcnQgb2YKYW55ICBwZXJmb3JtZXIgb3IgZ3JvdXBzIG9mIHBlcmZvcm1lcnMg Zm9yIGFuIGVtcGxveWVyIHdobyBoYXMgZmFpbGVkIHRvCnBheSBzYWxhcmllcywgZmVlcyBv ciBvdGhlciBjb21wZW5zYXRpb24sIG9yIHdobyBoYXMgbGVmdCAgc3RyYW5kZWQgIGFueQpw ZXJmb3JtZXIgIG9yICBncm91cHMgIG9mICBwZXJmb3JtZXJzICBvciAgYW55ICBwZXJmb3Jt aW5nICBjb21wYW5pZXMgb3IKaW5kaXZpZHVhbHMgZHVyaW5nIHRoZSBmaXZlIHllYXJzIHBy ZWNlZGluZyB0aGUgZGF0ZSBvZiB0aGUgYXBwbGljYXRpb24sCnVubGVzcyAgc3VjaCAgZW1w bG95ZXIgIChwZXJzb24sICBmaXJtICBvciAgY29ycG9yYXRpb24pICBzaGFsbCAgcHJvdmlk ZQpzdWZmaWNpZW50ICBzZWN1cml0eSAgZm9yICB0aGUgIGRpcmVjdCAgYmVuZWZpdCAgb2Yg IHRoZSAgcGVyZm9ybWVyICAgb3IKcGVyZm9ybWVycyAgYW5kICBpbiAgYW4gIGFtb3VudCBh bXBsZSB0byBwYXkgdGhlIHBlcmZvcm1lciBvciBwZXJmb3JtZXJzCnRoZWlyIGZ1bGwgY29t cGVuc2F0aW9uICBmb3IgIHRoZSAgc3BlY2lmaWVkICBlbXBsb3ltZW50ICBvciAgZW5nYWdl bWVudApkZXNpZ25hdGVkICBpbiAgdGhlIGVtcGxveW1lbnQgb3IgZW5nYWdlbWVudCBjb250 cmFjdC4gVGhlIHByb3Zpc2lvbnMgb2YKdGhpcyBzZWN0aW9uIHNoYWxsIG5vdCBhcHBseSB0 byBlbXBsb3ltZW50IG9yIGVuZ2FnZW1lbnRzIGluIG1vZGVsaW5nLgoKICBTIDM3LjA3LiBQ ZXJmb3JtaW5nIGFydGlzdHM7IGFkcyBmb3IgYXZhaWxhYmlsaXR5IG9mIGVtcGxveW1lbnQu IDEuIEl0CnNoYWxsIGJlIHVubGF3ZnVsIGZvciBhbnkgcGVyc29uLCAgZmlybSwgIGNvcnBv cmF0aW9uLCAgYXNzb2NpYXRpb24sICBvcgphZ2VudCAgb3IgIGVtcGxveWVlICB0aGVyZW9m LCAgaG9sZGluZyAgaXRzZWxmICBvdXQgdG8gdGhlIHB1YmxpYyBieSBhbnkKZGVzaWduYXRp b24gaW5kaWNhdGluZyBhIGNvbm5lY3Rpb24gd2l0aCBzaG93ICBidXNpbmVzcyAgaW5jbHVk aW5nLCAgYnV0Cm5vdCAgbGltaXRlZCAgdG8sICB0YWxlbnQgIGFnZW50LCB0YWxlbnQgc2Nv dXQsIHBlcnNvbmFsIG1hbmFnZXIsIGFydGlzdAptYW5hZ2VyLCBpbXByZXNhcmlvLCAgY2Fz dGluZyAgZGlyZWN0b3IsICBwdWJsaWMgIHJlbGF0aW9ucyAgYWR2aXNvciAgb3IKY29uc3Vs dGFudCwgcHJvbW90aW9uIGFkdmlzb3Igb3IgY29uc3VsdGFudCwgdG8KICAoYSkgIE1ha2Us ICBwdWJsaXNoLCBkaXNzZW1pbmF0ZSwgY2lyY3VsYXRlIG9yIHBsYWNlIGJlZm9yZSB0aGUg cHVibGljCm9yIGNhdXNlIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdG8gIGJlICBtYWRlLCAg cHVibGlzaGVkLCAgZGlzc2VtaW5hdGVkLApjaXJjdWxhdGVkICBvciAgcGxhY2VkIGJlZm9y ZSB0aGUgcHVibGljIGluIHRoaXMgc3RhdGUgYW4gYWR2ZXJ0aXNlbWVudCwKc29saWNpdGF0 aW9uLCBhbm5vdW5jZW1lbnQsIG5vdGljZSBvciBzdGF0ZW1lbnQgIHdoaWNoICByZXByZXNl bnRzICB0aGF0CnN1Y2ggIHBlcnNvbiwgIGZpcm0sIGNvcnBvcmF0aW9uIG9yIGFzc29jaWF0 aW9uIGhhcyBlbXBsb3ltZW50IGF2YWlsYWJsZQpvciBpcyBhYmxlIHRvIHNlY3VyZSBhbnkg ZW1wbG95bWVudCAgaW4gIHRoZSAgZmllbGQgIG9mICBzaG93ICBidXNpbmVzcywKaW5jbHVk aW5nLCAgIGJ1dCAgbm90ICBsaW1pdGVkICB0bywgIHRoZWF0cmUsICBtb3Rpb24gIHBpY3R1 cmVzLCAgcmFkaW8sCnRlbGV2aXNpb24sIHBob25vZ3JhcGggcmVjb3JkcywgIGNvbW1lcmNp YWxzLCAgb3BlcmEsICBjb25jZXJ0cywgIGRhbmNlLAptb2RlbGluZyAgb3IgIGFueSBvdGhl ciBlbnRlcnRhaW5tZW50cywgZXhoaWJpdGlvbnMgb3IgcGVyZm9ybWFuY2VzIHdoZW4KYW4g YWR2YW5jZSBmZWUgb2YgYW55IG5hdHVyZSBpcyBhIGNvbmRpdGlvbiB0byBzdWNoIGVtcGxv eW1lbnQ7IG9yCiAgKGIpICBBY2NlcHQgIGZyb20gIGEgIG1lbWJlciAgb2YgdGhlIHB1Ymxp YyBhbnkgZmVlLCByZXRhaW5lciwgc2FsYXJ5LAphZHZhbmNlIHBheW1lbnQgb3Igb3RoZXIg IGNvbXBlbnNhdGlvbiAgb2YgIGFueSAgbmF0dXJlICBpbiAgcmV0dXJuICBmb3IKc2Vydmlj ZXMgb3Igb3RoZXJ3aXNlLCBvdGhlciB0aGFuIChpKSByZXBheW1lbnQgZm9yIGFkdmFuY2Vz IG9yIGV4cGVuc2VzCmFjdHVhbGx5IGluY3VycmVkIGZvciBvciBvbiBiZWhhbGYgb2Ygc3Vj aCBtZW1iZXIgb2YgdGhlIHB1YmxpYywgb3IgKGlpKQphZ3JlZWQgICBjb21taXNzaW9ucywg IHJveWFsdGllcyAgb3IgIHNpbWlsYXIgIGNvbXBlbnNhdGlvbiAgYmFzZWQgIHVwb24KcGF5 bWVudHMgcmVjZWl2ZWQgYnkgb3Igb24gYmVoYWxmIG9mIHN1Y2ggbWVtYmVyICBvZiAgdGhl ICBwdWJsaWMgIGFzICBhCnJlc3VsdCBvZiBoaXMgZW1wbG95bWVudCBpbiB0aGUgZmllbGQg b2Ygc2hvdyBidXNpbmVzcy4KICAyLiBXaGVuZXZlciB0aGVyZSBzaGFsbCBiZSBhIHZpb2xh dGlvbiBvZiB0aGlzIHNlY3Rpb24sIGFuIGFwcGxpY2F0aW9uCm1heSBiZSBtYWRlIGJ5IHRo ZSBhdHRvcm5leSBnZW5lcmFsIGluIHRoZSBuYW1lIG9mICB0aGUgIHBlb3BsZSAgb2YgIHRo ZQpzdGF0ZSAgb2YgTmV3IFlvcmsgdG8gYSBjb3VydCBvciBqdXN0aWNlIGhhdmluZyBqdXJp c2RpY3Rpb24gdG8gaXNzdWUgYW4KaW5qdW5jdGlvbiwgYW5kIHVwb24gbm90aWNlIHRvIHRo ZSBkZWZlbmRhbnQgb2Ygbm90IGxlc3MgdGhhbiBmaXZlIGRheXMsCnRvICBlbmpvaW4gIGFu ZCAgcmVzdHJhaW4gIHRoZSBjb250aW51YW5jZSBvZiBzdWNoIHZpb2xhdGlvbnM7IGFuZCBp ZiBpdApzaGFsbCBhcHBlYXIgdG8gdGhlIHNhdGlzZmFjdGlvbiAgb2YgIHRoZSAgY291cnQg IG9yICBqdXN0aWNlICB0aGF0ICB0aGUKZGVmZW5kYW50ICBoYXMsICBpbiAgZmFjdCwgIHZp b2xhdGVkICB0aGlzIHNlY3Rpb24sIGFuIGluanVuY3Rpb24gbWF5IGJlCmlzc3VlZCBieSBz dWNoIGNvdXJ0IG9yIGp1c3RpY2UsIGVuam9pbmluZyBhbmQgcmVzdHJhaW5pbmcgIGFueSAg ZnVydGhlcgp2aW9sYXRpb24sICB3aXRob3V0ICByZXF1aXJpbmcgIHByb29mIHRoYXQgYW55 IHBlcnNvbiBoYXMsIGluIGZhY3QsIGJlZW4KaW5qdXJlZCBvciBkYW1hZ2VkIHRoZXJlYnku IEluIGFueSBzdWNoIHByb2NlZWRpbmcsIHRoZSBjb3VydCAgbWF5ICBtYWtlCmFsbG93YW5j ZXMgIHRvICB0aGUgIGF0dG9ybmV5ICBnZW5lcmFsICBhcyAgcHJvdmlkZWQgaW4gcGFyYWdy YXBoIHNpeCBvZgpzdWJkaXZpc2lvbiAoYSkgb2Ygc2VjdGlvbiAgZWlnaHR5LXRocmVlICBo dW5kcmVkICB0aHJlZSAgb2YgIHRoZSAgY2l2aWwKcHJhY3RpY2UgIGxhdyAgYW5kIHJ1bGVz LCBhbmQgZGlyZWN0IHJlc3RpdHV0aW9uLiBJbiBjb25uZWN0aW9uIHdpdGggYW55CnN1Y2gg cHJvcG9zZWQgYXBwbGljYXRpb24sIHRoZSBhdHRvcm5leSBnZW5lcmFsIGlzICBhdXRob3Jp emVkICB0byAgdGFrZQpwcm9vZiAgYW5kICBtYWtlICBhICBkZXRlcm1pbmF0aW9uICBvZiAg dGhlICByZWxldmFudCBmYWN0cyBhbmQgdG8gaXNzdWUKc3VicG9lbmFzIGluIGFjY29yZGFu Y2Ugd2l0aCB0aGUgY2l2aWwgcHJhY3RpY2UgbGF3IGFuZCBydWxlcy4KCiAgUyAgMzcuMDku IFByb3RlY3Rpb24gb2YgYWVyaWFsIHBlcmZvcm1lcnMgZnJvbSBhY2NpZGVudGFsIGZhbGxz LiAxLiBObwpwZXJzb24gc2hhbGwgcGFydGljaXBhdGUgaW4gYW55IHB1YmxpYyBwZXJmb3Jt YW5jZSBvciAgZXhoaWJpdGlvbiAgb24gIGEKdHJhcGV6ZSwgdGlnaHRyb3BlLCB3aXJlLCBy aW5ncywgcm9wZXMsIHBvbGVzLCBvciBvdGhlciBhZXJpYWwgYXBwYXJhdHVzCndoaWNoIHJl cXVpcmVzIHNraWxsLCB0aW1pbmcgb3IgYmFsYW5jZSBhbmQgd2hpY2ggY3JlYXRlcyBhICBz dWJzdGFudGlhbApyaXNrICB0byAgaGltc2VsZiBvciBvdGhlcnMgb2Ygc2VyaW91cyBpbmp1 cnkgZnJvbSBmYWxsaW5nLCB1bmxlc3MgdGhlcmUKc2hhbGwgYmUgcHJvdmlkZWQgZm9yIHN1 Y2ggcGVyZm9ybWFuY2UgYSBzYWZldHkgYmVsdCwgbGlmZS1uZXQsIG9yIG90aGVyCnNhZmV0 eSAgZGV2aWNlICBvZiAgc2ltaWxhciAgcHVycG9zZSAgc3VpdGFibHkgY29uc3RydWN0ZWQg YW5kIHBsYWNlZCB0bwphcnJlc3Qgb3IgY3VzaGlvbiBoaXMgZmFsbCBhbmQgbWluaW1pemUg dGhlICByaXNrICBvZiAgc3VjaCAgaW5qdXJ5LiAgTm8Kb3duZXIsICBhZ2VudCwgIGxlc3Nl ZSwgIG1hbmFnZXIgIG9yIG90aGVyIHBlcnNvbiBpbiBjaGFyZ2Ugb2YgYSBjaXJjdXMsCmNh cm5pdmFsLCBmYWlyLCB0aGVhdHJlLCBtb3ZpbmctcGljdHVyZSBob3VzZSwgIHB1YmxpYyAg aGFsbCwgIG9yICBvdGhlcgpwdWJsaWMgIHBsYWNlICBvZiBhc3NlbWJseSwgcmVzb3J0IG9y IGFtdXNlbWVudCwgc2hhbGwgcGVybWl0IGFueSBwZXJzb24KdG8gdGFrZSBwYXJ0IGluIGEg cGVyZm9ybWFuY2Ugc3BlY2lmaWVkIGhlcmVpbiAgd2l0aG91dCAgcHJvdmlkaW5nICBzdWNo CnNhZmV0eSAgZGV2aWNlLiAgQW55ICBzdWNoIGFlcmlhbCBwZXJmb3JtYW5jZSBvciBleGhp Yml0aW9uIHdpdGhvdXQgc3VjaApzYWZldHkgZGV2aWNlIGluIHdoaWNoIHRoZSBoZWlnaHQg b2YgcG9zc2libGUgZmFsbCBpcyBtb3JlICB0aGFuICB0d2VudHkKZmVldCwgIHNoYWxsIGJl IHByZXN1bWVkIHRvIGNyZWF0ZSBhIHN1YnN0YW50aWFsIHJpc2sgb2Ygc2VyaW91cyBpbmp1 cnkuCiAgMi4gIFRoZSAgY29tbWlzc2lvbmVyICBvZiAgbGFib3IgIG1heSBtYWtlIHJ1bGVz IHN1cHBsZW1lbnRhcnkgdG8gdGhpcwpzZWN0aW9uIGRlc2lnbmF0aW5nIHNhZmV0eSBkZXZp Y2VzIG9mIGFuICBhcHByb3ZlZCAgdHlwZSwgIHN0cmVuZ3RoICBhbmQKbG9jYXRpb24gICBh bmQgICBvdGhlcndpc2UgICBlZmZlY3R1YXRpbmcgICB0aGUgICBwdXJwb3NlcyAgaGVyZW9m LiAgVGhlCmNvbW1pc3Npb25lciBtYXkgYWxzbyBncmFudCB2YXJpYXRpb25zIHB1cnN1YW50 ICB0byAgdGhlICBwcm92aXNpb25zICBvZgpzZWN0aW9uICB0aGlydHkgIG9mICB0aGUgIGxh Ym9yIGxhdy4gVmlvbGF0aW9ucyBvZiB0aGlzIHNlY3Rpb24gc2hhbGwgYmUKcHVuaXNoYWJs ZSBhcyBwcm92aWRlZCBpbiBzZWN0aW9uIHR3byBodW5kcmVkIHRoaXJ0ZWVuIG9mIHRoZSBs YWJvciAgbGF3CmZvciB2aW9sYXRpb25zIHRoZXJldW5kZXIuCiAgMy4gIEluICBhY3Rpbmcg dXBvbiBhbiBhcHBsaWNhdGlvbiBmb3IgYSB2YXJpYXRpb24sIHRoZSBib2FyZCBtYXkgdGFr ZQppbnRvIGNvbnNpZGVyYXRpb24gdGhlIGF2YWlsYWJpbGl0eSwgaW4gd2hvbGUgb3IgIHBh cnQsICBvZiAgcHJhY3RpY2FibGUKc2FmZXR5ICBkZXZpY2VzICBmb3IgIGEgcGFydGljdWxh ciB0eXBlIG9mIHBlcmZvcm1hbmNlIG9yIGV4aGliaXRpb24gYW5kCnRoZSBoaXN0b3J5IGFu ZCBuYXR1cmUgb2YgdGhlIGFjY2lkZW50cyBpbmN1cnJlZCBpbiBzdWNoIHBlcmZvcm1hbmNl ICBvcgpleGhpYml0aW9uLiAgVGhlICBwcm92aXNpb25zICBvZiBzdWJkaXZpc2lvbiBvbmUg b2YgdGhpcyBzZWN0aW9uIGFuZCB0aGUKcnVsZXMgb2YgdGhlIGJvYXJkIGlzc3VlZCBwdXJz dWFudCB0byB0aGlzIHNlY3Rpb24gc2hhbGwgYmUgaW5hcHBsaWNhYmxlCnRvICBhbnkgIHBl cmZvcm1hbmNlIG9yIGV4aGliaXRpb24gY29uY2VybmluZyB3aGljaCBhIHZhcmlhdGlvbiBo YXMgYmVlbgppc3N1ZWQgdG8gdGhlIGV4dGVudCBzcGVjaWZpZWQgaW4gc3VjaCB2YXJpYXRp b24uCgogIFMgIDM3LjExLiAgUHJldmVudGlvbiAgb2YgcGVyc29uYWwgaW5qdXJpZXMgYXQg Y2Fybml2YWxzLCBmYWlycyBhbmQKYW11c2VtZW50IHBhcmtzLiBUaGUgY29tbWlzc2lvbmVy IG9mIGxhYm9yIG1heSAgbWFrZSAgcnVsZXMgIGd1YXJkaW5nCmFnYWluc3QgIHBlcnNvbmFs ICBpbmp1cmllcyAgaW4gIHRoZSBhc3NlbWJseSwgZGlzYXNzZW1ibHkgYW5kIHVzZSBvZgph bXVzZW1lbnQgZGV2aWNlcyBhbmQgdGVtcG9yYXJ5IHN0cnVjdHVyZXMgYXQgIGNhcm5pdmFs cywgIGZhaXJzICBhbmQKYW11c2VtZW50ICBwYXJrcyAgdG8gIHBlcnNvbnMgZW1wbG95ZWQg YXQgb3IgdG8gcGVyc29ucyBhdHRlbmRpbmcgdGhlCmNhcm5pdmFscywgZmFpcnMgYW5kIGFt dXNlbWVudCBwYXJrcyB3aGVyZSB0aGUgY2Fybml2YWxzLCAgZmFpcnMgIGFuZAphbXVzZW1l bnQgIHBhcmtzICBhcmUgbG9jYXRlZCBvdXRzaWRlIHRoZSBjaXR5IG9mIE5ldyBZb3JrLCBh bmQgd2hlcmUKdGhlIGNhcm5pdmFscywgZmFpcnMgYW5kIGFtdXNlbWVudCBwYXJrcyBhcmUg bG9jYXRlZCB3aXRoaW4gdGhlICBjaXR5Cm9mICBOZXcgWW9yaywgdGhlIGRlcGFydG1lbnQg b2YgYnVpbGRpbmdzIG9mIHRoZSBjaXR5IG9mIE5ldyBZb3JrIG1heQptYWtlIGFuZCBlbmZv cmNlIHN1Y2ggcnVsZXMuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tTmV3IFlvcmsgU3RhdGUg Q29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVElUTEUgUwogICAgICAgICAgICAgICAgICBBUlRJ Q0xFIDU0IC0tIEVYRUNVVElWRSBNQU5TSU9OIFRSVVNUCgoKCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tTmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwg QWZmYWlycwoKICAgICAgICAgICAgICAgICAgQVJUSUNMRSA1NCAtLSBFWEVDVVRJVkUgTUFO U0lPTiBUUlVTVAogU2VjdGlvbiA1NC4wMS4gU2hvcnQgdGl0bGUuCiAgICAgICAgIDU0LjAz LiBEZWZpbml0aW9ucy4KICAgICAgICAgNTQuMDUuIEV4ZWN1dGl2ZSBNYW5zaW9uIFRydXN0 LgogICAgICAgICA1NC4wNy4gUHVycG9zZXMgYW5kIHBvd2VycyBvZiB0aGUgdHJ1c3QuCiAg ICAgICAgIDU0LjA5LiBUZW1wb3JhcnkgYXNzaWdubWVudCBhbmQgdHJhbnNmZXIgb2YgZW1w bG95ZWVzLgogICAgICAgICA1NC4xMS4gU2VydmljZXMgcHJvdmlkZWQgYnkgc3RhdGUgb2Zm aWNpYWxzLgogICAgICAgICA1NC4xMy4gTW9uZXlzIG9mIHRoZSB0cnVzdC4KICAgICAgICAg NTQuMTUuIENyZWF0aW9uIG9mIHRydXN0IGEgcHVibGljIHB1cnBvc2UuCiAgICAgICAgIDU0 LjE3LiBNZW1iZXJzIGFuZCBlbXBsb3llZXMgbm90IHRvIHByb2ZpdC4KCiAgUyAgNTQuMDEu ICBTaG9ydCAgdGl0bGUuICBUaGlzICB0aXRsZSAgbWF5ICBiZSBjaXRlZCBhcyB0aGUgIkV4 ZWN1dGl2ZQpNYW5zaW9uIFRydXN0IEFjdCIuCgogIFMgNTQuMDMuIERlZmluaXRpb25zLiBX aGVuIHVzZWQgb3IgcmVmZXJyZWQgdG8gaW4gdGhpcyB0aXRsZSwgdW5sZXNzIGEKZGlmZmVy ZW50IG1lYW5pbmcgY2xlYXJseSBhcHBlYXJzIGZyb20gdGhlICBjb250ZXh0LCAgdGhlICB0 ZXJtcyAgbGlzdGVkCmJlbG93IHNoYWxsIGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nczoK ICAxLiAgIlRydXN0IiAgc2hhbGwgIG1lYW4gIHRoZSAgdHJ1c3QgIGNyZWF0ZWQgYnkgc2Vj dGlvbiA1NC4wNSBvZiB0aGlzCnRpdGxlLgogIDIuICAgIkV4ZWN1dGl2ZSAgIG1hbnNpb24i ICAgc2hhbGwgICBtZWFuICB0aGUgIGxhbmRzICBhbmQgIHN0cnVjdHVyZXMKY29uc3RpdHV0 aW5nIHRoZSBleGVjdXRpdmUgcmVzaWRlbmNlIG9mIHRoZSBnb3Zlcm5vciBhdCAxMzggRWFn bGUgU3RyZWV0CmluIEFsYmFueSwgTmV3IFlvcmsuCiAgMy4gICJSZWFsICBwcm9wZXJ0eSIg IHNoYWxsICBtZWFuICBsYW5kcywgIHN0cnVjdHVyZXMsICBmcmFuY2hpc2UgIGFuZAppbnRl cmVzdCBpbiBsYW5kcyBhbmQgYW55IGFuZCBhbGwgdGhpbmdzICB1c3VhbGx5ICBpbmNsdWRl ZCAgd2l0aGluICB0aGUKc2FpZCB0ZXJtLiBUaGUgdGVybSAicmVhbCBwcm9wZXJ0eSIgYXMg dXNlZCBpbiB0aGlzIHRpdGxlLCBzaGFsbCBleGNsdWRlCnRoZSBleGVjdXRpdmUgbWFuc2lv bi4KCiAgUyAgNTQuMDUuICBFeGVjdXRpdmUgTWFuc2lvbiBUcnVzdC4gMS4gQSB0cnVzdCBr bm93biBhcyB0aGUgIkV4ZWN1dGl2ZQpNYW5zaW9uIFRydXN0IiBpcyBoZXJlYnkgY3JlYXRl ZC4gVGhlIHRydXN0IHNoYWxsIGJlICBhICBib2R5ICBjb3Jwb3JhdGUKYW5kIHBvbGl0aWMg YW5kIGl0cyBleGlzdGVuY2Ugc2hhbGwgY29tbWVuY2UgdXBvbiB0aGUgYXBwb2ludG1lbnQg b2YgdGhlCm1lbWJlcnMgYXMgaGVyZWluIHByb3ZpZGVkLgogIDIuICBUaGUgIHRydXN0ICBz aGFsbCBjb25zaXN0IG9mIHRoZSBjb21taXNzaW9uZXIgb2YgZ2VuZXJhbCBzZXJ2aWNlcywK dGhlIGNvbW1pc3Npb25lciBvZiBwYXJrcywgcmVjcmVhdGlvbiAgYW5kICBoaXN0b3JpYyAg cHJlc2VydmF0aW9uLCAgdGhlCmNvbW1pc3Npb25lciAgb2YgZWR1Y2F0aW9uLCB0aGUgY2hh aXJtYW4gb2YgdGhlIGJvYXJkIG9mIHRydXN0ZWVzIG9mIHRoZQpOZXctWW9yayBIaXN0b3Jp Y2FsICBTb2NpZXR5ICBhbmQgIGEgIHByaXZhdGUgIGNpdGl6ZW4gIGFwcG9pbnRlZCAgdG8g IGEKdGhyZWUteWVhciAgdGVybSAgb2YgIG1lbWJlcnNoaXAgIGJ5ICB0aGUgZ292ZXJub3I7 IHN1Y2ggcHJpdmF0ZSBjaXRpemVuCnNoYWxsIGJlIGEgcGVyc29uIGtub3duIGZvciBwcm9m ZXNzaW9uYWwgY29tcGV0ZW5jZSAgYW5kICBleHBlcmllbmNlICBpbgp0aGUgIGZpZWxkIG9m IGhpc3RvcnksIGFyY2hpdGVjdHVyZSwgYXJ0LCBkZXNpZ24gb3IgbXVzZXVtIHNlcnZpY2Vz LiBUaGUKZGlyZWN0b3Igb2YgdGhlIGJ1ZGdldCBhbmQgYSBkZXNpZ25lZSBvZiB0aGUgIGdv dmVybm9yICBzaGFsbCAgc2VydmUgIGFzCm5vbi12b3RpbmcgbWVtYmVycyBvZiB0aGUgdHJ1 c3QuCiAgMy4gIFRoZSAgcG93ZXJzICBvZiAgdGhlICB0cnVzdCAgc2hhbGwgYmUgdmVzdGVk IGluIGFuZCBleGVyY2lzZWQgYnkgYQptYWpvcml0eSBvZiB0aGUgdm90aW5nIG1lbWJlcnMg dGhlcmVvZi4KICA0LiAgVGhlIGNvbW1pc3Npb25lciBvZiBnZW5lcmFsIHNlcnZpY2VzIHNo YWxsIHNlcnZlIGFzIGNoYWlycGVyc29uIG9mCnRoZSB0cnVzdC4KICA1LiAgVGhlICBtZW1i ZXJzICBvZiAgdGhlICB0cnVzdCBzaGFsbCBzZXJ2ZSB3aXRob3V0IGNvbXBlbnNhdGlvbiwg YnV0CnNoYWxsIGJlICBlbnRpdGxlZCAgdG8gIHJlaW1idXJzZW1lbnQgIG9mICB0aGVpciAg YWN0dWFsICBhbmQgIG5lY2Vzc2FyeQpleHBlbnNlcyBpbmN1cnJlZCBpbiB0aGUgcGVyZm9y bWFuY2Ugb2YgdGhlaXIgb2ZmaWNpYWwgZHV0aWVzLgogIDYuIFRoZSB0cnVzdCBzaGFsbCBi ZSBzdWJqZWN0IHRvIHRoZSBwcm92aXNpb25zIG9mIGFydGljbGUgMTUtQSBvZiB0aGUKZXhl Y3V0aXZlIGxhdy4KICA3LiAgVGhlICB0cnVzdCAgYW5kICBpdHMgIGNvcnBvcmF0ZSAgZXhp c3RlbmNlICBzaGFsbCAgY29udGludWUgIHVudGlsCnRlcm1pbmF0ZWQgYnkgbGF3LCBwcm92 aWRlZCwgaG93ZXZlciwgdGhhdCBubyBzdWNoIGxhdyBzaGFsbCB0YWtlIGVmZmVjdApzbyAg bG9uZyAgYXMgIHRoZSAgdHJ1c3QgIHNoYWxsICBoYXZlIGZpbmFuY2lhbCBvYmxpZ2F0aW9u cyBvdXRzdGFuZGluZywKdW5sZXNzIGFkZXF1YXRlIHByb3Zpc2lvbiBoYXMgYmVlbiBtYWRl IGZvciAgdGhlICBwYXltZW50ICB0aGVyZW9mLCAgYW5kCnVudGlsIGFycmFuZ2VtZW50cyBo YXZlIGJlZW4gbWFkZSBmb3IgdGhlIGFkZXF1YXRlIGNhcmUgYW5kIGNvbnNlcnZhdGlvbgpv ZiBpdHMgYXJ0aWZhY3RzIGFuZCBjb2xsZWN0aW9ucy4gVXBvbiB0ZXJtaW5hdGlvbiBvZiB0 aGUgIGV4aXN0ZW5jZSAgb2YKdGhlIHRydXN0LCBhbGwgaXRzIHJpZ2h0cyBhbmQgcHJvcGVy dGllcyBzaGFsbCB2ZXN0IGluIHRoZSBzdGF0ZS4KCiAgUyAgNTQuMDcuICBQdXJwb3NlcyBh bmQgcG93ZXJzIG9mIHRoZSB0cnVzdC4gVGhlIHB1cnBvc2VzIG9mIHRoZSB0cnVzdApzaGFs bCBiZSB0byBwcmVzZXJ2ZSwgaW1wcm92ZSBhbmQgcHJvbW90ZSB0aGUgIGV4ZWN1dGl2ZSAg bWFuc2lvbiAgYXMgIGEKaGlzdG9yaWNhbCAgYW5kIGN1bHR1cmFsIHJlc291cmNlIG9mIHRo ZSBzdGF0ZSBvZiBOZXcgWW9yaywgaW5jbHVkaW5nIGJ5Cm9wZXJhdGlvbiBvZiBhbiBleGVj dXRpdmUgbWFuc2lvbiBtdXNldW0sIGFuZCB0byBzZXJ2ZSBhcyBhIGZvY2FsICBwb2ludApm b3IgIHRoZSAgcmVjZWlwdCAgYW5kIGFkbWluaXN0cmF0aW9uIG9mIHByaXZhdGUsIGdpZnRz LCBkZXZpc2VzLCBsb2FucywKYW5kIGJlcXVlc3RzIG1hZGUgb3IgZG9uYXRlZCB0byB0aGVz ZSBlbmRzLiBUbyBjYXJyeSBvdXQgc3VjaCAgcHVycG9zZXMsCnRoZSB0cnVzdCBzaGFsbCBo YXZlIHBvd2VyOgogIDEuICBUbyBhY2NlcHQgdW5jb25kaXRpb25hbCBnaWZ0cywgZGV2aXNl cyBhbmQgYmVxdWVzdHMsIGFuZCwgd2l0aCB0aGUKYXBwcm92YWwgb2YgdGhlIGRpcmVjdG9y IG9mICB0aGUgIGJ1ZGdldCwgIGNvbmRpdGlvbmFsICBnaWZ0cywgIGRldmlzZXMsCmxvYW5z LCAgYW5kICBiZXF1ZXN0cywgIG9mIHJlYWwgb3IgcGVyc29uYWwgcHJvcGVydHkgZm9yIHRo ZSBwdXJwb3NlcyBvZgpwcmVzZXJ2aW5nLCBpbXByb3Zpbmcgb3IgcHJvbW90aW5nIHRoZSBl eGVjdXRpdmUgbWFuc2lvbiBhcyBhIGhpc3RvcmljYWwKYW5kIGN1bHR1cmFsIHJlc291cmNl IG9mIHRoZSBzdGF0ZSBvZiBOZXcgWW9yay4KICAyLiAgVG8gYWNjZXB0LCBhZG1pbmlzdGVy IGFuZCBleHBlbmQgZnVuZHMgbWFkZSBhdmFpbGFibGUgdG8gdGhlIHRydXN0CmJ5IHByaXZh dGUgZG9uYXRpb24gb3IgcHVibGljIGdyYW50IG9yICBhcHByb3ByaWF0aW9uICBmb3IgIGFu eSAgb2YgIGl0cwpwdXJwb3Nlcy4KICAzLiAgVG8gIG9wZXJhdGUgIGFuICBleGVjdXRpdmUg IG1hbnNpb24gIG11c2V1bSAgd2l0aGluICB0aGUgZXhlY3V0aXZlCm1hbnNpb24uCiAgNC4g IFRvICBhY3F1aXJlIGFydGlmYWN0cyBvciBmdXJuaXNoaW5ncyB0byBlbmhhbmNlIHRoZSBo aXN0b3JpY2FsIGFuZApjdWx0dXJhbCBjaGFyYWN0ZXIgb2YgdGhlIGV4ZWN1dGl2ZSBtYW5z aW9uLCBhbmQgb3RoZXIgcmVhbCBvciAgcGVyc29uYWwKcHJvcGVydHkgIGJ5IHB1cmNoYXNl LCBnaWZ0LCBiZXF1ZXN0LCBsb2FuLCBvciBleGNoYW5nZSwgZm9yIHVzZSBpbiwgb24sCm9y IHRvIGJlbmVmaXQgdGhlIGV4ZWN1dGl2ZSBtYW5zaW9uLCAgaXRzICBncm91bmRzLCAgYW5k ICBhbnkgIGV4ZWN1dGl2ZQptYW5zaW9uICBtdXNldW0gIG9wZXJhdGVkICBieSB0aGUgdHJ1 c3QuIFRoZSBjb3N0IG9mIGFjcXVpc2l0aW9uIG9mIHN1Y2gKcHJvcGVydHksIGV4Y2x1c2l2 ZSBvZiBzZXJ2aWNlcyBwcm92aWRlZCBieSBhbnkgc3RhdGUgZGVwYXJ0bWVudCwgYm9hcmQs CmNvbW1pc3Npb24gb3IgYWdlbmN5LCBzaGFsbCBiZSBwYWlkIGZyb20gZnVuZHMgYXZhaWxh YmxlIHRvIHRoZSB0cnVzdC4KICA1LiAgVG8gIHJldGFpbiBvciwgYXMgYXBwcm9wcmlhdGUs IHRyYW5zZmVyIGltbWVkaWF0ZSBqdXJpc2RpY3Rpb24gYW5kCmNvbnRyb2wgb3ZlciBhbnkg cHJvcGVydHkgYWNxdWlyZWQgYnkgdGhlIHRydXN0IHRvIHRoZSBvZmZpY2Ugb2YgZ2VuZXJh bApzZXJ2aWNlcyBvciBvdGhlciBhcHByb3ByaWF0ZSBwdWJsaWMgYm9keSBvciBhZ2VuY3kg d2l0aCBpdHMgY29uc2VudCBhbmQKdGhlIHByaW9yIGFwcHJvdmFsIG9mIHRoZSBkaXJlY3Rv ciBvZiB0aGUgYnVkZ2V0LgogIDYuICBUbyAgdW5kZXJ0YWtlICBhbnkgIHdvcmssICBpbmNs dWRpbmcgIGZ1cm5pc2hpbmcgIG9mICBzZXJ2aWNlcyBhbmQKbWF0ZXJpYWxzLCByZXF1aXJl ZCB0byBwcmVzZXJ2ZSwgcmVzdG9yZSwgbWFpbnRhaW4sIGltcHJvdmUgIG9yICBwcm9tb3Rl CnRoZSAgaGlzdG9yaWNhbCAgb3IgIGN1bHR1cmFsIHNpZ25pZmljYW5jZSBvciBjaGFyYWN0 ZXIgb2YgdGhlIGV4ZWN1dGl2ZQptYW5zaW9uIGFuZCB0aGUgZXhlY3V0aXZlIG1hbnNpb24g bXVzZXVtLCAgb3IgIGFueSAgcHJvcGVydHkgIGFzc29jaWF0ZWQKd2l0aCAgdGhlbSAgcmVs YXRlZCAgdG8gIHRoZWlyICBoaXN0b3JpY2FsICBhbmQgY3VsdHVyYWwgY2hhcmFjdGVyLCB1 cG9uCnJlcXVlc3Qgb3IgYXBwcm92YWwgb2YgdGhlIG9mZmljZSBvZiAgZ2VuZXJhbCAgc2Vy dmljZXMsICBhbmQgIHdpdGggIHRoZQpwcmlvciBhcHByb3ZhbCBvZiB0aGUgZGlyZWN0b3Ig b2YgdGhlIGJ1ZGdldC4KICA3LiAgVG8gdW5kZXJ0YWtlIG9yIGNvbW1pc3Npb24gcmVzZWFy Y2ggb3Igc3R1ZGllcyBhbmQgdG8gbWFrZSByZXBvcnRzCnJlbGF0aW5nIHRvIHRoZSBleGVj dXRpdmUgbWFuc2lvbiwgaW5jbHVkaW5nICBkZXZlbG9wbWVudCAgb2YgIGEgIG1hc3Rlcgpw bGFuICBmb3IgIHRoZSBwcmVzZXJ2YXRpb24gYW5kIG1haW50ZW5hbmNlIG9mIHRoZSBleGVj dXRpdmUgbWFuc2lvbiBhbmQKaXRzIGdyb3VuZHMgYXMgYSBoaXN0b3JpYyBhbmQgY3VsdHVy YWwgcmVzb3VyY2UgIG9mICB0aGUgIHN0YXRlICBvZiAgTmV3CllvcmsuCiAgOC4gVG8gYXBw b2ludCBhbmQgZW1wbG95IHN1Y2ggb2ZmaWNlcnMsIGVtcGxveWVlcyBhbmQgc3RhZmYsIHF1 YWxpZmllZApieSB0cmFpbmluZyBhbmQgZXhwZXJpZW5jZSwgd2hvIHNoYWxsIGJlIGRlZW1l ZCB0byBiZSAgc3RhdGUgIGVtcGxveWVlcywKYW5kICB0byAgcmV0YWluIHN1Y2ggZXhwZXJ0 IGxlZ2FsLCBmaW5hbmNpYWwsIGFyY2hpdGVjdHVyYWwsIGN1cmF0b3JpYWwsCmNvbnNlcnZh dGlvbiBhbmQgb3RoZXIgY29uc3VsdGFudCBzZXJ2aWNlcyAgYXMgIGl0ICBkZWVtcyAgbmVj ZXNzYXJ5ICB0bwpjYXJyeSAgb3V0ICBpdHMgIGNvcnBvcmF0ZSBwdXJwb3NlcywgaW5jbHVk aW5nIG9wZXJhdGlvbiBvZiBhbiBleGVjdXRpdmUKbWFuc2lvbiBtdXNldW0uCiAgOS4gIFRv ICBzZWxsIGFuZCBjb252ZXkgcmVhbCBvciBwZXJzb25hbCBwcm9wZXJ0eSBvciBpbnRlcmVz dCB0aGVyZWluLAphY3F1aXJlZCBieSBhbmQgdW5kZXIgdGhlIGp1cmlzZGljdGlvbiBvZiB0 aGUgdHJ1c3QgYW5kIHN1cnBsdXMgIHRvICBpdHMKbmVlZHMgIGFuZCAgdGhlICBuZWVkcyAg b2YgIHRoZSBleGVjdXRpdmUgbWFuc2lvbiwgZXhjbHVkaW5nIHByb3BlcnR5IHRvCndoaWNo IHRoZSBzdGF0ZSBvZiBOZXcgWW9yayBoYXMgIHRpdGxlLCAgaW4gIGFjY29yZGFuY2UgIHdp dGggIGdlbmVyYWxseQphY2NlcHRlZCAgbXVzZXVtICBzdGFuZGFyZHMsICBwcm92aWRlZCBz dWNoIHNhbGUgYW5kIGNvbnZleWFuY2UgcmVjZWl2ZXMKdGhlIHByaW9yIGFwcHJvdmFsIG9m IHRoZSBkaXJlY3RvciBvZiB0aGUgYnVkZ2V0IGFuZCBkb2VzIG5vdCBjb250cmF2ZW5lCnRo ZSB0ZXJtcyBvciBjb25kaXRpb25zIG9mIGFueSBnaWZ0LCBkZXZpc2UsIGxvYW4sIG9yIGJl cXVlc3QuIFRoZSB0cnVzdApzaGFsbCByZXRhaW4gdGhlIHByb2NlZWRzIGRlcml2ZWQgdGhl cmVmcm9tIGZvciBpdHMgIGNvcnBvcmF0ZSAgcHVycG9zZXMKaW4gYWNjb3JkYW5jZSB3aXRo IGdlbmVyYWxseSBhY2NlcHRlZCBtdXNldW0gc3RhbmRhcmRzLgogIDEwLiAgVG8gIHBhcnRp Y2lwYXRlICBhbmQgIGNvb3BlcmF0ZSAgd2l0aCAgb3RoZXIgIHB1YmxpYyAgYW5kIHByaXZh dGUKYWdlbmNpZXMgaGF2aW5nIG11dHVhbCBpbnRlcmVzdHMgYW5kIHB1cnBvc2VzICBpbiAg YXBwcm9wcmlhdGUgIHByb2dyYW1zCmFuZCAgcHJvamVjdHMgaW50ZW5kZWQgdG8gcHJlc2Vy dmUsIGltcHJvdmUgYW5kIHByb21vdGUgdGhlIGhpc3RvcmljIGFuZApjdWx0dXJhbCBzaWdu aWZpY2FuY2UgYW5kIGNoYXJhY3RlciBvZiB0aGUgZXhlY3V0aXZlIG1hbnNpb24gb3IgIG9m ICB0aGUKcHJvcGVydGllcyAgYW5kICBhY3Rpdml0aWVzICBhc3NvY2lhdGVkICB3aXRoICB0 aGUgIGhpc3RvcmljIG9yIGN1bHR1cmFsCnNpZ25pZmljYW5jZSBvZiBzdWNoIG1hbnNpb24g b3IgZXhlY3V0aXZlIG1hbnNpb24gbXVzZXVtLgogIDExLiAgVG8gIGFkbWluaXN0ZXIsICBt YW5hZ2UgIG9yICBvcGVyYXRlIGFueSBwcm9wZXJ0eSBhY3F1aXJlZCBieSB0aGUKdHJ1c3Qg cGVuZGluZyB0cmFuc2ZlciBvciBqdXJpc2RpY3Rpb24gdGhlcmVvZiwgYW5kIHRvICByZXRh aW4gIGZvciAgaXRzCmNvcnBvcmF0ZSAgcHVycG9zZXMgIGFueSAgcmVjZWlwdHMsICByZXZl bnVlcyBvciBpbmNvbWUgZGVyaXZlZCBmcm9tIHRoZQpvcGVyYXRpb24gb3IgdXNlIG9mIHN1 Y2ggcHJvcGVydHkgZHVyaW5nIHRoZSBwZW5kZW5jeSBvZiBzdWNoICB0cmFuc2Zlci4KICAx Mi4gVG8gc3VlIGFuZCBiZSBzdWVkLgogIDEzLiBUbyBoYXZlIGEgc2VhbCBhbmQgYWx0ZXIg dGhlIHNhbWUgYXQgcGxlYXN1cmUuCiAgMTQuIFRvIGRvIGFsbCB0aGluZ3MgbmVjZXNzYXJ5 IG9yIGNvbnZlbmllbnQgdG8gY2Fycnkgb3V0IHRoZSBwdXJwb3NlcwpvZiB0aGlzIHRydXN0 LgoKICBTICA1NC4wOS4gIFRlbXBvcmFyeSBhc3NpZ25tZW50IGFuZCB0cmFuc2ZlciBvZiBl bXBsb3llZXMuIFdoZW5ldmVyIGluCnRoZSBvcGluaW9uIG9mIHRoZSB0cnVzdCBpdCB3b3Vs ZCBiZSBpbiB0aGUgIHB1YmxpYyAgaW50ZXJlc3QsICBpdCAgbWF5LAphZnRlciAgcHJpb3Ig IGFwcHJvdmFsICBvZiAgdGhlICBkaXJlY3RvciAgb2YgIHRoZSAgYnVkZ2V0LCAgcmVxdWVz dCB0aGUKdGVtcG9yYXJ5IGFzc2lnbm1lbnQgYW5kIHRyYW5zZmVyIG9mIGNlcnRhaW4gIGVt cGxveWVlcyAgb2YgIGFueSAgYm9hcmQsCmNvbW1pc3Npb24sICAgYWdlbmN5ICBvciAgZGVw YXJ0bWVudCAgb2YgIHRoZSAgc3RhdGUgIG9yICBpdHMgIHBvbGl0aWNhbApzdWJkaXZpc2lv bnMsIGFuZCBzYWlkIGJvYXJkLCBjb21taXNzaW9uLCBhZ2VuY3kgb3IgIGRlcGFydG1lbnQs ICBpZiAgaW4KaXRzIG9waW5pb24gc3VjaCB0cmFuc2ZlciB3aWxsIG5vdCBpbnRlcmZlcmUg d2l0aCB0aGUgcGVyZm9ybWFuY2Ugb2YgaXRzCmR1dGllcyBhbmQgZnVuY3Rpb25zLCBtYXkg bWFrZSBzdWNoICBhc3NpZ25tZW50ICBhbmQgIHRyYW5zZmVyICBvZiAgc2FpZAplbXBsb3ll ZXMgIHRvICB0aGUgIHRydXN0LiAgU3VjaCAgYXNzaWdubWVudCAgYW5kICB0cmFuc2ZlciBv ciBleHRlbnNpb24KdGhlcmVvZiBzaGFsbCAgbm90ICBhZmZlY3QgIHRoZSAgY2l2aWwgIHNl cnZpY2UgIHN0YXR1cywgIGNvbnRpbnVpdHkgIG9mCnNlcnZpY2UsICByZXRpcmVtZW50ICBw bGFuICBzdGF0dXMsICByaWdodCAgdG8gIGNvbXBlbnNhdGlvbiwgIGdyYWRlICBvcgpjb21w ZW5zYXRpb24gIG9yICBvdGhlciAgcmlnaHRzICBvciAgcHJpdmlsZWdlcyAgb2YgIGFueSAg IGVtcGxveWVlICAgc28KdHJhbnNmZXJyZWQuCgogIFMgNTQuMTEuIFNlcnZpY2VzIHByb3Zp ZGVkIGJ5IHN0YXRlIG9mZmljaWFscy4gMS4gVGhlIGF0dG9ybmV5IGdlbmVyYWwKc2hhbGwg ZnVybmlzaCBhbnkgYW5kIGFsbCBuZWNlc3NhcnkgbGVnYWwgc2VydmljZXMgYW5kIGFkdmlj ZSwgaW5jbHVkaW5nCmV4YW1pbmF0aW9uICBvZiAgdGl0bGUgdG8gcmVhbCBwcm9wZXJ0eSwg cmVxdWlyZWQgdG8gYXNzaXN0IHRoZSB0cnVzdCBpbgphY2NvbXBsaXNoaW5nIGl0cyBjb3Jw b3JhdGUgc2VydmljZXMuCiAgMi4gIFRoZSAgY29tbWlzc2lvbmVyIG9mIGVkdWNhdGlvbiBz aGFsbCBhZHZpc2UgdGhlIHRydXN0IHdpdGggcmVzcGVjdAp0byAgdGhlICBjdXN0b2R5LCAg dXNlLCAgY2F0YWxvZ2luZywgIHJlc3RvcmF0aW9uLCAgZGVhY2Nlc3Npb25pbmcsICBhbmQK Y29udHJvbCAgb2YgIG9yaWdpbmFsIGRvY3VtZW50cywgYXJ0aWZhY3RzIGFuZCBmdXJuaXNo aW5ncyBoYXZpbmcgdW5pcXVlCmhpc3RvcmljIHNpZ25pZmljYW5jZS4KCiAgUyAgNTQuMTMu ICBNb25leXMgIG9mICB0aGUgIHRydXN0LiAgMS4gVGhlIGhlYWQgb2YgdGhlIGRpdmlzaW9u IG9mIHRoZQp0cmVhc3VyeSBpbiAgdGhlICBkZXBhcnRtZW50ICBvZiAgdGF4YXRpb24gIGFu ZCAgZmluYW5jZSAgc2hhbGwgIGJlICB0aGUKY3VzdG9kaWFuIG9mIHRoZSBmdW5kcyBvZiB0 aGUgdHJ1c3QuIERpc2J1cnNlbWVudHMgZnJvbSB0aGUgZnVuZHMgb2YgdGhlCnRydXN0IHNo YWxsIGJlIG1hZGUgYnkgdGhlIGN1c3RvZGlhbiBvciBzdWNoIHBlcnNvbiBhcyBtYXkgYmUg YXV0aG9yaXplZApieSAgaGltICBvbmx5IHVwb24gd2FycmFudHMgc2lnbmVkIGJ5IHRoZSBj aGFpcnBlcnNvbiBvZiB0aGUgdHJ1c3Qgb3IgYW4Kb2ZmaWNpYWwgdGhlcmVvZiBhdXRob3Jp emVkIHRvIGRvIHNvLgogIDIuICAgVGhlICAgY29tcHRyb2xsZXIgICBvZiAgdGhlICBzdGF0 ZSAgYW5kICBoaXMgIGxlZ2FsbHkgIGF1dGhvcml6ZWQKcmVwcmVzZW50YXRpdmVzIGFyZSBo ZXJlYnkgYXV0aG9yaXplZCBhbmQgZW1wb3dlcmVkIGZyb20gdGltZSB0byB0aW1lIHRvCmV4 YW1pbmUgIHRoZSAgYWNjb3VudHMgIGFuZCAgYm9va3MgIG9mIHRoZSB0cnVzdCBpbmNsdWRp bmcgaXRzIHJlY2VpcHRzLApkaXNidXJzZW1lbnRzLCBjb250cmFjdHMsIGludmVzdG1lbnRz IGFuZCBhbnkgb3RoZXIgbWF0dGVycyByZWxhdGluZyAgdG8KaXRzICBmaW5hbmNpYWwgIHN0 YW5kaW5nLiBUaGUgcmVwb3J0IG9mIGFueSBzdWNoIGF1ZGl0IHNoYWxsIGJlIGluY2x1ZGVk CmluIHRoZSByZXBvcnQgcmVxdWlyZWQgYnkgc3ViZGl2aXNpb24gdGhyZWUgb2YgdGhpcyBz ZWN0aW9uLgogIDMuICBUaGUgIHRydXN0ICBzaGFsbCAgc3VibWl0ICB0byB0aGUgZ292ZXJu b3IsIHRoZSBjaGFpcnBlcnNvbiBvZiB0aGUKc2VuYXRlIGZpbmFuY2UgY29tbWl0dGVlLCB0 aGUgY2hhaXJwZXJzb24gb2YgdGhlIGFzc2VtYmx5IHdheXMgYW5kIG1lYW5zCmNvbW1pdHRl ZSBhbmQgdGhlIHN0YXRlIGNvbXB0cm9sbGVyLCB3aXRoaW4gbmluZXR5IGRheXMgYWZ0ZXIg dGhlIGVuZCBvZgppdHMgZmlzY2FsIHllYXIgKHdoaWNoIHNoYWxsIGJlIHRoZSBzYW1lIGFz IHRoZSBzdGF0ZWBzIGZpc2NhbCB5ZWFyKSwgIGEKY29tcGxldGUgIGFuZCAgZGV0YWlsZWQg IHJlcG9ydCAgb2YgIGl0cyBvcGVyYXRpb25zIGFuZCBhY2NvbXBsaXNobWVudHMsCmluY2x1 ZGluZyBzdGFmZmluZyBhbmQgdGVtcG9yYXJ5IHRyYW5zZmVyIGFuZCBhc3NpZ25tZW50ICBv ZiAgZW1wbG95ZWVzLAppdHMgIHJlY2VpcHRzICBhbmQgZGlzYnVyc2VtZW50cywgYW55IGFj cXVpc2l0aW9ucyBhbmQgZGVhY2Nlc3Npb25zLCBhbmQKaXRzIGFzc2V0cyBhbmQgbGlhYmls aXRpZXMuCgogIFMgIDU0LjE1LiAgQ3JlYXRpb24gIG9mICB0cnVzdCAgYSAgcHVibGljIHB1 cnBvc2UuIEl0IGlzIGhlcmVieSBmb3VuZCwKZGV0ZXJtaW5lZCBhbmQgZGVjbGFyZWQgdGhh dCB0aGUgY3JlYXRpb24gb2YgdGhlIHRydXN0IGFuZCB0aGUgIGNhcnJ5aW5nCm91dCAgb2Yg aXRzIGNvcnBvcmF0ZSBwdXJwb3NlcyBpcyBpbiBhbGwgcmVzcGVjdHMgZm9yIHRoZSBiZW5l Zml0IG9mIHRoZQpwZW9wbGUgb2YgdGhlIHN0YXRlIG9mIE5ldyBZb3JrLCBmb3IgdGhlIHBy ZXNlcnZhdGlvbiwgIGltcHJvdmVtZW50ICBhbmQKcHJvbW90aW9uIG9mIHRoZSBleGVjdXRp dmUgbWFuc2lvbiBhcyBhIGhpc3RvcmljYWwgYW5kIGN1bHR1cmFsIHJlc291cmNlCm9mIHRo ZSBzdGF0ZSBvZiBOZXcgWW9yaywgYW5kIGlzIGEgcHVibGljIHB1cnBvc2UsICBpbiAgdGhh dCAgdGhlICB0cnVzdAp3aWxsIGJlIHBlcmZvcm1pbmcgYW4gZXNzZW50aWFsIGdvdmVybm1l bnRhbCBmdW5jdGlvbiBpbiB0aGUgZXhlcmNpc2Ugb2YKdGhlIHBvd2VycyBjb25mZXJyZWQg dXBvbiBpdCBieSB0aGlzIHRpdGxlIGFuZCB0aGUgdHJ1c3QgIHNoYWxsICBub3QgIGJlCnJl cXVpcmVkICB0byAgcGF5IHRheGVzIG9yIGFzc2Vzc21lbnRzIHVwb24gYW55IG9mIHRoZSBw cm9wZXJ0eSBhY3F1aXJlZApieSBpdCBvciB1bmRlciBpdHMganVyaXNkaWN0aW9uIGFuZCBj b250cm9sLCBvciB1cG9uIGl0cyAgYWN0aXZpdGllcyAgaW4KdGhlICBvcGVyYXRpb24gIGFu ZCBtYWludGVuYW5jZSBvZiBzdWNoIHByb3BlcnRpZXMgb3IgdXNlIG9mIGFueSBtb25leXMs CnJldmVudWVzIG9yIG90aGVyIGluY29tZSByZWNlaXZlZCBieSB0aGUgdHJ1c3RzLiBBbGwg Y29udHJpYnV0aW9ucyAgbWFkZQp0byAgdGhlICB0cnVzdCAgd2hldGhlciAgYnkgIGdpZnQs ICBkZXZpc2UgIG9yICBiZXF1ZXN0IHNoYWxsIHF1YWxpZnkgYXMKZGVkdWN0aW9ucyBpbiBj b21wdXRpbmcgdGhlIG5ldCB0YXhhYmxlIGluY29tZSAgb2YgIHRoZSAgZG9ub3IgIGZvciAg dGhlCnB1cnBvc2VzICBvZiAgYW55ICBpbmNvbWUgIHRheCAgaW1wb3NlZCAgYnkgIHRoZSAg c3RhdGUgb3IgYW55IHBvbGl0aWNhbApzdWJkaXZpc2lvbiB0aGVyZW9mLiBUaGUgdHJ1c3Qg IGlzICBhdXRob3JpemVkICB0byAgc2VlayAgZXhlbXB0aW9uICBmb3IKZmVkZXJhbCB0YXgg cHVycG9zZXMuCgogIFMgIDU0LjE3LiAgTWVtYmVycyAgYW5kIGVtcGxveWVlcyBub3QgdG8g cHJvZml0LiBObyBvZmZpY2VyLCBtZW1iZXIgb3IKZW1wbG95ZWUgb2YgdGhlIHRydXN0IHNo YWxsIHJlY2VpdmUgIG9yICBtYXkgIGJlICBsYXdmdWxseSAgZW50aXRsZWQgIHRvCnJlY2Vp dmUgICBhbnkgICBwZWN1bmlhcnkgIHByb2ZpdCAgZnJvbSAgdGhlICBvcGVyYXRpb24gIHRo ZXJlb2YgIGV4Y2VwdApyZWFzb25hYmxlIGNvbXBlbnNhdGlvbiBmb3Igc2VydmljZXMgaW4g ZWZmZWN0aW5nIG9uZSAgb3IgIG1vcmUgIG9mICBpdHMKcHVycG9zZXMgYXMgc2V0IGZvcnRo IGluIHRoaXMgdGl0bGUuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tTmV3IFlvcmsgU3RhdGUg Q29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVElUTEUgVAogICAgICAgICAgICAgICAgICAgICAg ICAgTkFUVVJBTCBIRVJJVEFHRSBUUlVTVAoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU5ldyBZ b3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMK CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlRJQ0xFIDU1CiAgICAgICAgICAg ICAgICAgICAgICAgICBOQVRVUkFMIEhFUklUQUdFIFRSVVNUCiBTZWN0aW9uIDU1LjAxLiBT aG9ydCB0aXRsZS4KICAgICAgICAgNTUuMDMuIERlZmluaXRpb25zLgogICAgICAgICA1NS4w NS4gTmF0dXJhbCBIZXJpdGFnZSBUcnVzdC4KICAgICAgICAgNTUuMDcuIFB1cnBvc2VzIGFu ZCBwb3dlcnMgb2YgdGhlIGNvcnBvcmF0aW9uLgogICAgICAgICA1NS4wOS4gVGVtcG9yYXJ5 IGFzc2lnbm1lbnQgYW5kIHRyYW5zZmVyIG9mIGVtcGxveWVlcy4KICAgICAgICAgNTUuMTEu IEV4YW1pbmF0aW9uIG9mIHRpdGxlLgogICAgICAgICA1NS4xMy4gTW9uZXlzIG9mIHRoZSBj b3Jwb3JhdGlvbi4KICAgICAgICAgNTUuMTUuIENyZWF0aW9uIG9mIHRydXN0IGEgcHVibGlj IHB1cnBvc2UuCiAgICAgICAgIDU1LjE3LiBQYXltZW50cyBpbiBsaWV1IG9mIHRheGVzLgog ICAgICAgICA1NS4xOS4gTWVtYmVycyBhbmQgZW1wbG95ZWVzIG5vdCB0byBwcm9maXQuCiAg ICAgICAgIDU1LjIxLiBBcHBsaWNhdGlvbiBvZiBsYXcuCiAgICAgICAgIDU1LjIzLiBBY3Rp b25zIGFnYWluc3QgdGhlIHRydXN0LgoKICBTIDU1LjAxLiBTaG9ydCB0aXRsZS4gVGhpcyB0 aXRsZSBtYXkgYmUgY2l0ZWQgYXMgdGhlICJOYXR1cmFsIEhlcml0YWdlClRydXN0IEFjdC4i CgogIFMgIDU1LjAzLiAgRGVmaW5pdGlvbnMuIEFzIHVzZWQgb3IgcmVmZXJyZWQgdG8gaW4g dGhpcyB0aXRsZSwgdW5sZXNzIGEKZGlmZmVyZW50IG1lYW5pbmcgY2xlYXJseSBhcHBlYXJz IGZyb20gdGhlIGNvbnRleHQ6CiAgMS4gIFRoZSAgdGVybSAgInRydXN0IiAgc2hhbGwgIG1l YW4gdGhlIGNvcnBvcmF0aW9uIGNyZWF0ZWQgYnkgc2VjdGlvbgo1NS4wNSBvZiB0aGlzIGFy dGljbGUuCiAgMi4gVGhlIHRlcm0gImJvYXJkIiBzaGFsbCBtZWFuIHRoZSBtZW1iZXJzIG9m IHRoZSBjb3Jwb3JhdGlvbi4KICAzLiAgVGhlICB0ZXJtICJyZWFsIHByb3BlcnR5IiBzaGFs bCBtZWFuIGxhbmRzLCBzdHJ1Y3R1cmVzLCBmcmFuY2hpc2VzCmFuZCBpbnRlcmVzdCBpbiBs YW5kcyBhbmQgYW55IGFuZCBhbGwgdGhpbmdzIHVzdWFsbHkgaW5jbHVkZWQgd2l0aGluIHRo ZQpzYWlkICB0ZXJtLCAgYW5kIGluY2x1ZGVzIG5vdCBvbmx5IGZlZXMgc2ltcGxlIGFuZCBh YnNvbHV0ZSBidXQgYWxzbyBhbnkKYW5kIGFsbCBsZXNzZXIgaW50ZXJlc3RzLCAgc3VjaCAg YXMgIGVhc2VtZW50cywgIHJpZ2h0cyAgb2YgIHdheSwgIHVzZXMsCmxlYXNlcywgIGxpY2Vu c2VzLCAgYW5kICBhbGwgIG90aGVyICBpbmNvcnBvcmVhbCBoZXJlZGl0YW1lbnRzIGFuZCBl dmVyeQplc3RhdGUsIGludGVyZXN0IG9yIHJpZ2h0LCBsZWdhbCBvciBlcXVpdGFibGUsIGlu Y2x1ZGluZyB0ZXJtcyBvZiAgeWVhcnMKYW5kICBsaWVucyB0aGVyZW9uIGJ5IHdheSBvZiBq dWRnbWVudHMsIG1vcnRnYWdlcyBvciBvdGhlcndpc2UsIGFuZCBhbHNvCmNsYWltcyBmb3Ig ZGFtYWdlIHRvIHJlYWwgcHJvcGVydHkuCgogIFMgIDU1LjA1LiAgTmF0dXJhbCAgSGVyaXRh Z2UgIFRydXN0LiAgVGhlICBib2FyZCBrbm93biBhcyB0aGUgIk5hdHVyYWwKSGVyaXRhZ2Ug VHJ1c3QiIGlzIGhlcmVieSBjb250aW51ZWQuICBTdWNoICBhICBib2FyZCAgc2hhbGwgIGJl ICBhICBib2R5CmNvcnBvcmF0ZSAgYW5kIHBvbGl0aWMgY29uc3RpdHV0aW5nIGEgcHVibGlj IGJlbmVmaXQgY29ycG9yYXRpb24gYW5kIGl0cwpleGlzdGVuY2Ugc2hhbGwgY29tbWVuY2Ug dXBvbiB0aGUgYXBwb2ludG1lbnQgb2YgdGhlIG1lbWJlcnMgIGFzICBoZXJlaW4KcHJvdmlk ZWQuICBTdWNoICBib2FyZCAgc2hhbGwgIGNvbnNpc3QgIG9mICB0aGUgY2hhaXJwZXJzb24g b2YgdGhlIHN0YXRlCmNvdW5jaWwgIG9mICBwYXJrcyAgYW5kICBvdXRkb29yICAgcmVjcmVh dGlvbiwgICB0aGUgICBjb21taXNzaW9uZXIgICBvZgplbnZpcm9ubWVudGFsICBjb25zZXJ2 YXRpb24sICBhbmQgIHRoZSBjb21taXNzaW9uZXIgb2YgcGFya3MsIHJlY3JlYXRpb24KYW5k IGhpc3RvcmljIHByZXNlcnZhdGlvbi4gVGhlIHBvd2VycyBvZiB0aGUgYm9hcmQgc2hhbGwg IGJlICB2ZXN0ZWQgIGluCmFuZCAgZXhlcmNpc2VkICBieSAgdGhlIG1ham9yaXR5IG9mIHRo ZSBtZW1iZXJzIHRoZXJlb2YuICBUaGUgbWVtYmVycyBvZgp0aGUgYm9hcmQgc2hhbGwgc2Vy dmUgd2l0aG91dCBjb21wZW5zYXRpb24sIGJ1dCAgc2hhbGwgIGJlICBlbnRpdGxlZCAgdG8K cmVpbWJ1cnNlbWVudCAgb2YgIHRoZWlyICBhY3R1YWwgIGFuZCBuZWNlc3NhcnkgZXhwZW5z ZXMgaW5jdXJyZWQgaW4gdGhlCnBlcmZvcm1hbmNlIG9mIHRoZWlyIG9mZmljaWFsIGR1dGll cy4gQXQgdGhlIGZpcnN0IG1lZXRpbmcgb2YgdGhlICBib2FyZAphbmQgIHRoZSAgZmlyc3Qg IG1lZXRpbmcgIHRoZXJlb2YgIGluICBlYWNoICBmaXNjYWwgeWVhciB0aGVyZWFmdGVyLCB0 aGUKbWVtYmVycyBvZiB0aGUgYm9hcmQgc2hhbGwgY2hvb3NlIGZyb20gdGhlaXIgbnVtYmVy LCBhICBjaGFpcnBlcnNvbiAgYW5kCnZpY2UtY2hhaXJwZXJzb24uCiAgVGhlICB0cnVzdCBh bmQgaXRzIGNvcnBvcmF0ZSBleGlzdGVuY2Ugc2hhbGwgY29udGludWUgdW50aWwgdGVybWlu YXRlZApieSBsYXcsIHByb3ZpZGVkLCBob3dldmVyLCB0aGF0IG5vIHN1Y2ggbGF3IHNoYWxs IHRha2UgZWZmZWN0IHNvIGxvbmcgYXMKdGhlICB0cnVzdCAgc2hhbGwgIGhhdmUgIGJvbmRz LCBub3RlcyBhbmQgb3RoZXIgb2JsaWdhdGlvbnMgb3V0c3RhbmRpbmcsCnVubGVzcyBhZGVx dWF0ZSBwcm92aXNpb24gaGFzIGJlZW4gbWFkZSBmb3IgdGhlIHBheW1lbnQgdGhlcmVvZiAg aW4gIHRoZQpkb2N1bWVudHMgIHNlY3VyaW5nICB0aGUgIHNhbWUuIFVwb24gdGVybWluYXRp b24gb2YgdGhlIGV4aXN0ZW5jZSBvZiB0aGUKdHJ1c3QsIGFsbCBpdHMgcmlnaHRzIGFuZCBw cm9wZXJ0aWVzIHNoYWxsIHZlc3QgaW4gdGhlIHN0YXRlLgoKICBTICA1NS4wNy4gIFB1cnBv c2VzICBhbmQgcG93ZXJzIG9mIHRoZSBjb3Jwb3JhdGlvbi4gVGhlIHB1cnBvc2Ugb2YgdGhl CmNvcnBvcmF0aW9uIHNoYWxsIGJlIHRvIHNlcnZlIGFzIGEgIGZvY2FsICBwb2ludCAgZm9y ICB0aGUgIHJlY2VpcHQgIGFuZAphZG1pbmlzdHJhdGlvbiAgb2YgIHByaXZhdGUgIGdpZnRz LCAgZGV2aXNlcyAgYW5kICBiZXF1ZXN0cyAgb2YgcmVhbCBhbmQKcGVyc29uYWwgcHJvcGVy dHkgZG9uYXRlZCB0byBmdXJ0aGVyICBjb25zZXJ2YXRpb24sICBvdXRkb29yICByZWNyZWF0 aW9uCmFuZCAgaGlzdG9yaWMgIHByZXNlcnZhdGlvbiAgcHVycG9zZXMuICBUbyAgY2Fycnkg b3V0IHNhaWQgcHVycG9zZXMsIHRoZQpjb3Jwb3JhdGlvbiBzaGFsbCBoYXZlIHBvd2VyOgog IDEuICBUbyBhY2NlcHQgdW5jb25kaXRpb25hbCBnaWZ0cywgZGV2aXNlcyBhbmQgYmVxdWVz dHMsIGFuZCwgd2l0aCB0aGUKYXBwcm92YWwgb2YgdGhlIGdvdmVybm9yLCBjb25kaXRpb25h bCBnaWZ0cywgZGV2aXNlcyAgYW5kICBiZXF1ZXN0cywgIG9mCnJlYWwgIG9yICBwZXJzb25h bCAgcHJvcGVydHkgIGZvciAgY29uc2VydmF0aW9uLCAgb3V0ZG9vciAgcmVjcmVhdGlvbiBv cgpoaXN0b3JpYyBwcmVzZXJ2YXRpb24gcHVycG9zZXMgYW5kIHRvIGFkbWluaXN0ZXIgYW5k IGV4cGVuZCAgZnVuZHMgIG1hZGUKYXZhaWxhYmxlIHRvIHRoZSBjb3Jwb3JhdGlvbiBmb3Ig YW55IG9mIGl0cyBwdXJwb3Nlcy4KICAyLiAgVG8gYWNxdWlyZSByZWFsIHByb3BlcnR5IGlu IHRoZSBuYW1lIG9mIHRoZSBwZW9wbGUgb2YgdGhlIHN0YXRlIG9mCk5ldyBZb3JrIGJ5IHB1 cmNoYXNlLCBnaWZ0LCAgZGV2aXNlICBvciAgZXhjaGFuZ2UgIG9mICBsYW5kcyAgcHJldmlv dXNseQphY3F1aXJlZCAgYnkgIHRoZSAgdHJ1c3QgIGFuZCAgdW5kZXIgIGl0cyAgaW1tZWRp YXRlICBqdXJpc2RpY3Rpb24gb3IgYnkKYXBwcm9wcmlhdGlvbiAgdGhyb3VnaCAgdGhlICBh Z2VuY3kgIG9mICB0aGUgIGNvbW1pc3Npb25lciAgIG9mICAgcGFya3MsCnJlY3JlYXRpb24g ICBhbmQgICBoaXN0b3JpYyAgIHByZXNlcnZhdGlvbiAgIG9yICAgdGhlICAgY29tbWlzc2lv bmVyICBvZgplbnZpcm9ubWVudGFsIGNvbnNlcnZhdGlvbiB3aGVuZXZlciB0aGUgYXR0b3Ju ZXkgZ2VuZXJhbCBzaGFsbCBkZXRlcm1pbmUKc3VjaCAgYXBwcm9wcmlhdGlvbiAgaXMgIG5l Y2Vzc2FyeSB0byBjbGVhciBhbnkgZGVmZWN0IG9yIGVuY3VtYnJhbmNlIG9uCnRoZSB0aXRs ZSBvZiBzdWNoIHJlYWwgcHJvcGVydHkgd2hpY2ggIHdvdWxkICBoaW5kZXIgIGl0cyAgdXNl ICBmb3IgIHRoZQppbnRlbmRlZCBwdWJsaWMgcHVycG9zZS4gVGhlIGNvc3Qgb2Ygc3VjaCBs YW5kIGFjcXVpc2l0aW9uLCBleGNsdXNpdmUgb2YKc2VydmljZXMgZnVybmlzaGVkIGJ5IGFu eSBzdGF0ZSBkZXBhcnRtZW50LCBib2FyZCwgY29tbWlzc2lvbiBvciBhZ2VuY3ksCnNoYWxs IGJlIHBhaWQgZnJvbSBmdW5kcyBhdmFpbGFibGUgdG8gdGhlIHRydXN0LgogIDMuIFRvIGFj cXVpcmUgcGVyc29uYWwgcHJvcGVydHkgaW4gdGhlIG5hbWUgb2YgdGhlIHBlb3BsZSBvZiB0 aGUgc3RhdGUKb2YgTmV3IFlvcmsgIGJ5ICBwdXJjaGFzZSwgIGdpZnQsICBiZXF1ZXN0ICBv ciAgZXhjaGFuZ2UgIG9mICBwZXJzb25hbHR5CnByZXZpb3VzbHkgIGFjcXVpcmVkICBieSB0 aGUgdHJ1c3QgYW5kIHVuZGVyIGl0cyBpbW1lZGlhdGUganVyaXNkaWN0aW9uLgpUaGUgY29z dCBvZiBhY3F1aXNpdGlvbiBvZiBzdWNoIHBlcnNvbmFsIHByb3BlcnR5ICBzaGFsbCAgYmUg IHBhaWQgIGZyb20KZnVuZHMgYXZhaWxhYmxlIHRvIHRoZSB0cnVzdC4KICA0LiAgVG8gIHRy YW5zZmVyICBpbW1lZGlhdGUgIGp1cmlzZGljdGlvbiBhbmQgY29udHJvbCBvdmVyIGFueSBy ZWFsIG9yCnBlcnNvbmFsIHByb3BlcnR5ICBhY3F1aXJlZCAgYnkgIHRoZSAgdHJ1c3QgIHRv ICB0aGUgIG9mZmljZSAgb2YgIHBhcmtzLApyZWNyZWF0aW9uICBhbmQgIGhpc3RvcmljICBw cmVzZXJ2YXRpb24sIHRoZSBkZXBhcnRtZW50IG9mIGVudmlyb25tZW50YWwKY29uc2VydmF0 aW9uIG9yIG90aGVyIGFwcHJvcHJpYXRlIHB1YmxpYyBib2R5IG9yIGFnZW5jeSB3aXRoIGl0 cyBjb25zZW50CmFuZCB0aGUgcHJpb3IgYXBwcm92YWwgb2YgdGhlIGRpcmVjdG9yIG9mIHRo ZSBidWRnZXQuCiAgNS4gIFRvICB1bmRlcnRha2UgIGFueSAgd29yaywgIGluY2x1ZGluZyAg ZnVybmlzaGluZyAgb2YgIHNlcnZpY2VzIGFuZAptYXRlcmlhbHMsIHJlcXVpcmVkIHRvIG1h bmFnZSwgcHJlc2VydmUsIHJlc3RvcmUsICBtYWludGFpbiAgb3IgIGltcHJvdmUKYW55IHJl YWwgb3IgcGVyc29uYWwgcHJvcGVydHkgdW5kZXIgaXRzIGp1cmlzZGljdGlvbiBhbmQsIGF0 IHRoZSByZXF1ZXN0Cm9mICB0aGUgIG9mZmljZSAgb2YgIHBhcmtzLCAgcmVjcmVhdGlvbiAg YW5kICBoaXN0b3JpYyAgcHJlc2VydmF0aW9uICBvcgpkZXBhcnRtZW50IG9mIGVudmlyb25t ZW50YWwgY29uc2VydmF0aW9uLCB1cG9uIHJlYWwgb3IgcGVyc29uYWwgcHJvcGVydHkKdW5k ZXIgdGhlIGp1cmlzZGljdGlvbiBvZiB0aGUgcmVxdWVzdGluZyBhZ2VuY3ksIGFmdGVyIHBy aW9yIGFwcHJvdmFsIG9mCnRoZSBkaXJlY3RvciBvZiB0aGUgYnVkZ2V0LgogIDYuICBUbyAg dW5kZXJ0YWtlICByZXNlYXJjaCwgIHN0dWRpZXMgIGFuZCAgbWFrZSAgcmVwb3J0cyAgcmVs YXRpbmcgdG8KY29uc2VydmF0aW9uLCBvdXRkb29yIHJlY3JlYXRpb24gb3IgaGlzdG9yaWMg cHJlc2VydmF0aW9uIG1hdHRlcnMuCiAgNy4gIFRvICBzZWxsICBhbmQgIGNvbnZleSAgYW55 ICByZWFsICBvciBwZXJzb25hbCBwcm9wZXJ0eSBvciBpbnRlcmVzdAp0aGVyZWluIGFjcXVp cmVkIGJ5IGFuZCB1bmRlciB0aGUganVyaXNkaWN0aW9uIG9mIHRoZSB0cnVzdCBhbmQgIHN1 cnBsdXMKdG8gIGl0cyBuZWVkcywgcHJvdmlkZWQgc3VjaCBzYWxlIGFuZCBjb252ZXlhbmNl IGRvZXMgbm90IGNvbnRyYXZlbmUgdGhlCnRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgYW55IGdp ZnQsIGRldmlzZSBvciBiZXF1ZXN0LCBhbmQgIHRvICByZXRhaW4gIHRoZQpwcm9jZWVkcyBk ZXJpdmVkIHRoZXJlZnJvbSBmb3IgaXRzIGNvcnBvcmF0ZSBwdXJwb3Nlcy4KICA4LiAgVG8g IGFwcG9pbnQgIGFuZCAgZW1wbG95IHN1Y2ggb2ZmaWNlcnMsIGVtcGxveWVlcyBhbmQgc3Rh ZmYgYW5kIHRvCnJldGFpbiBzdWNoIGV4cGVydCBsZWdhbCwgZmluYW5jaWFsLCBlbmdpbmVl cmluZywgYXJjaGl0ZWN0dXJhbCBhbmQgc3VjaApvdGhlciAgY29uc3VsdGFudCAgc2Vydmlj ZXMgIGFzICBpdCAgZGVlbXMgIG5lY2Vzc2FyeSAgdG8gIGNhcnJ5IG91dCBpdHMKY29ycG9y YXRlIHB1cnBvc2VzLgogIDkuIFRvIHBhcnRpY2lwYXRlIGFuZCBjb29wZXJhdGUgd2l0aCBv dGhlciBwdWJsaWMgYW5kIHByaXZhdGUgYWdlbmNpZXMKaGF2aW5nICBtdXR1YWwgIGludGVy ZXN0cyAgYW5kICBwdXJwb3NlcyAgaW4gIGFwcHJvcHJpYXRlICBwcm9ncmFtcyAgYW5kCnBy b2plY3RzICBpbnRlbmRlZCAgdG8gIHByZXNlcnZlICBhbmQgIGltcHJvdmUgIHRoZSBuYXR1 cmFsIGFuZCBoaXN0b3JpYwpyZXNvdXJjZXMgb2YgdGhlIHN0YXRlIGluIGZ1cnRoZXJhbmNl ICBvZiAgdGhlICBlZHVjYXRpb24sICB3ZWxmYXJlICBhbmQKZW5qb3ltZW50IG9mIGl0cyBw ZW9wbGUuCiAgMTAuICBUbyAgYWRtaW5pc3RlciwgIG1hbmFnZSAgb3IgIG9wZXJhdGUgYW55 IHByb3BlcnR5IGFjcXVpcmVkIGJ5IHRoZQp0cnVzdCBwZW5kaW5nIHRyYW5zZmVyIG9mIGp1 cmlzZGljdGlvbiB0aGVyZW9mIGFuZCAgdG8gIHJldGFpbiAgZm9yICBpdHMKY29ycG9yYXRl ICBwdXJwb3NlcyAgYW55ICByZWNlaXB0cywgIHJldmVudWUgb3IgaW5jb21lIGRlcml2ZWQg dGhlcmVmcm9tCmR1cmluZyB0aGUgcGVuZGVuY3kgb2Ygc3VjaCB0cmFuc2Zlci4KICAxMS4g VG8gc3VlIGFuZCBiZSBzdWVkLgogIDEyLiBUbyBoYXZlIGEgc2VhbCBhbmQgYWx0ZXIgdGhl IHNhbWUgYXQgcGxlYXN1cmUuCiAgMTMuIFRvIGRvIGFsbCB0aGluZ3MgbmVjZXNzYXJ5IG9y IGNvbnZlbmllbnQgdG8gY2Fycnkgb3V0IHRoZSBwdXJwb3NlcwpvZiB0aGlzIGNvcnBvcmF0 aW9uLgoKICBTICA1NS4wOS4gIFRlbXBvcmFyeSBhc3NpZ25tZW50IGFuZCB0cmFuc2ZlciBv ZiBlbXBsb3llZXMuIFdoZW5ldmVyIGluCnRoZSBvcGluaW9uIG9mIHRoZSB0cnVzdCBpdCB3 b3VsZCBiZSBpbiB0aGUgIHB1YmxpYyAgaW50ZXJlc3QsICBpdCAgbWF5LAphZnRlciAgcHJp b3IgIGFwcHJvdmFsICBvZiAgdGhlICBkaXJlY3RvciAgb2YgIHRoZSAgYnVkZ2V0LCAgcmVx dWVzdCB0aGUKdGVtcG9yYXJ5IGFzc2lnbm1lbnQgYW5kIHRyYW5zZmVyIG9mIGNlcnRhaW4g IGVtcGxveWVlcyAgb2YgIGFueSAgYm9hcmQsCmNvbW1pc3Npb24sICAgYWdlbmN5ICBvciAg ZGVwYXJ0bWVudCAgb2YgIHRoZSAgc3RhdGUgIG9yICBpdHMgIHBvbGl0aWNhbApzdWJkaXZp c2lvbnMsIGFuZCBzYWlkIGJvYXJkLCBjb21taXNzaW9uLCBhZ2VuY3kgb3IgIGRlcGFydG1l bnQsICBpZiAgaW4KaXRzIG9waW5pb24gc3VjaCB0cmFuc2ZlciB3aWxsIG5vdCBpbnRlcmZl cmUgd2l0aCB0aGUgcGVyZm9ybWFuY2Ugb2YgaXRzCmR1dGllcyBhbmQgZnVuY3Rpb25zIG1h eSBtYWtlICBzdWNoICBhc3NpZ25tZW50ICBhbmQgIHRyYW5zZmVyICBvZiAgc2FpZAplbXBs b3llZXMgIHRvICB0aGUgIHRydXN0LiAgU3VjaCAgYXNzaWdubWVudCAgYW5kICB0cmFuc2Zl ciBvciBleHRlbnNpb24KdGhlcmVvZiBzaGFsbCBub3QgaW4gYW55IHdheSBhZmZlY3QgdGhl IGNpdmlsIHNlcnZpY2Ugc3RhdHVzLCBjb250aW51aXR5Cm9mICBzZXJ2aWNlLCAgcmV0aXJl bWVudCAgcGxhbiAgc3RhdHVzLCAgcmlnaHQgdG8gY29tcGVuc2F0aW9uLCBncmFkZSBvcgpj b21wZW5zYXRpb24gIG9yICBvdGhlciAgcmlnaHRzICBvciAgcHJpdmlsZWdlcyAgb2YgIGFu eSAgIGVtcGxveWVlICAgc28KdHJhbnNmZXJyZWQuCgogIFMgNTUuMTEuIEV4YW1pbmF0aW9u IG9mIHRpdGxlLiBUaGUgdGl0bGUgdG8gYWxsIHJlYWwgcHJvcGVydHkgcHJvcG9zZWQKdG8g YmUgYWNxdWlyZWQgYnkgdGhlIHRydXN0ICBzaGFsbCAgYmUgIGV4YW1pbmVkICBhbmQgIGFw cHJvdmVkICBieSAgdGhlCmF0dG9ybmV5ICBnZW5lcmFsICBvZiAgdGhlICBzdGF0ZSAgd2hv ICBzaGFsbCAgYWxzbyAgZnVybmlzaCBhbnkgYW5kIGFsbApuZWNlc3NhcnkgbGVnYWwgc2Vy dmljZXMgYW5kIGFkdmljZSByZXF1aXJlZCAgdG8gIGFzc2lzdCAgdGhlICB0cnVzdCAgaW4K YWNjb21wbGlzaGluZyBpdHMgY29ycG9yYXRlIHB1cnBvc2VzLgoKICBTICA1NS4xMy4gIE1v bmV5cyBvZiB0aGUgY29ycG9yYXRpb24uIDEuIFRoZSBtb25leXMgb2YgdGhlIHRydXN0IHNo YWxsCmJlIHJldGFpbmVkIGJ5IGl0IGFuZCBkZXBvc2l0ZWQgaW4gYSAgZ2VuZXJhbCAgYWNj b3VudCAgYW5kICBzdWNoICBvdGhlcgphY2NvdW50cyAgYXMgIHRoZSAgdHJ1c3QgIG1heSAg ZGVlbSBuZWNlc3NhcnkgZm9yIHRoZSB0cmFuc2FjdGlvbiBvZiBpdHMKYnVzaW5lc3MgYW5k IHNoYWxsIGJlIHBhaWQgb3V0IG9uIGNoZWNrcyBzaWduZWQgYnkgIHRoZSAgY2hhaXJwZXJz b24gIG9mCnRoZSAgY29ycG9yYXRpb24gIG9yICBieSBzdWNoIG90aGVyIG1lbWJlciBvciBv ZmZpY2VyIGFzIHRoZSBjb3Jwb3JhdGlvbgptYXkgYXV0aG9yaXplLgogIDIuICAgVGhlICAg Y29tcHRyb2xsZXIgICBvZiAgdGhlICBzdGF0ZSAgYW5kICBoaXMgIGxlZ2FsbHkgIGF1dGhv cml6ZWQKcmVwcmVzZW50YXRpdmVzIGFyZSBoZXJlYnkgYXV0aG9yaXplZCBhbmQgZW1wb3dl cmVkIGZyb20gdGltZSB0byB0aW1lIHRvCmV4YW1pbmUgIHRoZSAgYWNjb3VudHMgIGFuZCAg Ym9va3MgIG9mIHRoZSB0cnVzdCBpbmNsdWRpbmcgaXRzIHJlY2VpcHRzLApkaXNidXJzZW1l bnRzLCBjb250cmFjdHMsIGludmVzdG1lbnRzIGFuZCBhbnkgb3RoZXIgbWF0dGVycyByZWxh dGluZyAgdG8KaXRzIGZpbmFuY2lhbCBzdGFuZGluZy4KICAzLiAgVGhlICB0cnVzdCAgc2hh bGwgIHN1Ym1pdCAgdG8gdGhlIGdvdmVybm9yLCB0aGUgY2hhaXJwZXJzb24gb2YgdGhlCnNl bmF0ZSBmaW5hbmNlIGNvbW1pdHRlZSwgdGhlIGNoYWlycGVyc29uIG9mIHRoZSBhc3NlbWJs eSB3YXlzIGFuZCBtZWFucwpjb21taXR0ZWUgYW5kIHRoZSBzdGF0ZSBjb21wdHJvbGxlciwg d2l0aGluIG5pbmV0eSBkYXlzIGFmdGVyIHRoZSBlbmQgb2YKaXRzIGZpc2NhbCB5ZWFyLCBh IGNvbXBsZXRlIGFuZCBkZXRhaWxlZCByZXBvcnQgb2YgIGl0cyAgb3BlcmF0aW9ucyAgYW5k CmFjY29tcGxpc2htZW50cywgIGl0cyAgcmVjZWlwdHMgIGFuZCAgZGlzYnVyc2VtZW50cyAg YW5kICBpdHMgYXNzZXRzIGFuZApsaWFiaWxpdGllcy4KCiAgUyAgNTUuMTUuICBDcmVhdGlv biAgb2YgIHRydXN0ICBhICBwdWJsaWMgcHVycG9zZS4gSXQgaXMgaGVyZWJ5IGZvdW5kLApk ZXRlcm1pbmVkIGFuZCBkZWNsYXJlZCB0aGF0IHRoZSBjcmVhdGlvbiBvZiB0aGUgdHJ1c3Qg YW5kIHRoZSAgY2FycnlpbmcKb3V0ICBvZiBpdHMgY29ycG9yYXRlIHB1cnBvc2VzIGlzIGlu IGFsbCByZXNwZWN0cyBmb3IgdGhlIGJlbmVmaXQgb2YgdGhlCnBlb3BsZSBvZiB0aGUgc3Rh dGUgb2YgTmV3IFlvcmssIGZvciB0aGUgcHJlc2VydmF0aW9uIGFuZCBpbXByb3ZlbWVudCBv Zgp0aGUgIG5hdHVyYWwgIGFuZCBoaXN0b3JpYyByZXNvdXJjZXMgY29uc3RpdHV0aW5nIHRo ZWlyIG5hdHVyYWwgaGVyaXRhZ2UKYW5kIGluIGZ1cnRoZXJhbmNlIG9mIHRoZWlyIHdlbGZh cmUgYW5kICBwcm9zcGVyaXR5LCAgYW5kICBpcyAgYSAgcHVibGljCnB1cnBvc2UsICBpbiB0 aGF0IHRoZSB0cnVzdCB3aWxsIGJlIHBlcmZvcm1pbmcgYW4gZXNzZW50aWFsIGdvdmVybm1l bnRhbApmdW5jdGlvbiBpbiB0aGUgZXhlcmNpc2Ugb2YgdGhlIHBvd2VycyBjb25mZXJyZWQg dXBvbiBpdCBieSAgdGhpcyAgdGl0bGUKYW5kIHRoZSB0cnVzdCBzaGFsbCBub3QgYmUgcmVx dWlyZWQgdG8gcGF5IHRheGVzIG9yIGFzc2Vzc21lbnRzIHVwb24gYW55Cm9mIHRoZSBwcm9w ZXJ0eSBhY3F1aXJlZCBieSBpdCBvciB1bmRlciBpdHMganVyaXNkaWN0aW9uIGFuZCBjb250 cm9sLCBvcgp1cG9uICBpdHMgYWN0aXZpdGllcyBpbiB0aGUgb3BlcmF0aW9uIGFuZCBtYWlu dGVuYW5jZSBvZiBzdWNoIHByb3BlcnRpZXMKb3IgdXNlICBvZiAgYW55ICBtb25leXMsICBy ZXZlbnVlcyAgb3IgIG90aGVyICBpbmNvbWUgIHJlY2VpdmVkICBieSAgdGhlCmNvcnBvcmF0 aW9uLiAgQWxsIGNvbnRyaWJ1dGlvbnMgb2YgcmVhbCBvciBwZXJzb25hbCBwcm9wZXJ0eSBt YWRlIHRvIHRoZQp0cnVzdCB3aGV0aGVyIGJ5IGdpZnQsIGRldmlzZSBvciBiZXF1ZXN0IHNo YWxsIHF1YWxpZnkgYXMgZGVkdWN0aW9ucyAgaW4KY29tcHV0aW5nICB0aGUgIG5ldCAgdGF4 YWJsZSBpbmNvbWUgb2YgdGhlIGRvbm9yIGZvciB0aGUgcHVycG9zZXMgb2YgYW55CmluY29t ZSB0YXggaW1wb3NlZCBieSB0aGUgc3RhdGUgb3IgYW55IHBvbGl0aWNhbCBzdWJkaXZpc2lv biB0aGVyZW9mLgoKICBTICA1NS4xNy4gIFBheW1lbnRzICBpbiAgbGlldSAgb2YgdGF4ZXMu IFRoZSB0cnVzdCBtYXksIHdoZW4gZnVuZHMgYXJlCmF2YWlsYWJsZSBhbmQgd2l0aCB0aGUg YXBwcm92YWwgb2YgdGhlIGdvdmVybm9yLCBlbnRlciBpbnRvIGFuIGFncmVlbWVudAp3aXRo ICBhICBtdW5pY2lwYWxpdHkgIG9yICBkaXN0cmljdCAgd2l0aGluIHdoaWNoIHJlYWwgcHJv cGVydHkgaGFzIGJlZW4KYWNxdWlyZWQgYnkgdGhlIHRydXN0IHByb3ZpZGluZyBmb3IgdGhl IHBheW1lbnQgb2YgIG1vbmV5cyAgaW4gIGxpZXUgIG9mCmFudGljaXBhdGVkICB0YXggcmV2 ZW51ZXMgZm9yIGEgcGVyaW9kIG5vdCB0byBleGNlZWQgZml2ZSB5ZWFycyB3aGVuZXZlcgp0 aGUgdHJ1c3Qgc2hhbGwgZGV0ZXJtaW5lIHRoYXQgdW5kdWUgaGFyZHNoaXAganVzdGlmeWlu ZyBzdWNoICBmaW5hbmNpYWwKcmVsaWVmIGhhcyBiZWVuIGNyZWF0ZWQgYnkgc3VjaCBhY3F1 aXNpdGlvbi4KCiAgUyAgNTUuMTkuICBNZW1iZXJzICBhbmQgZW1wbG95ZWVzIG5vdCB0byBw cm9maXQuIE5vIG9mZmljZXIsIG1lbWJlciBvcgplbXBsb3llZSBvZiB0aGUgdHJ1c3Qgc2hh bGwgcmVjZWl2ZSAgb3IgIG1heSAgYmUgIGxhd2Z1bGx5ICBlbnRpdGxlZCAgdG8KcmVjZWl2 ZSAgIGFueSAgIHBlY3VuaWFyeSAgcHJvZml0ICBmcm9tICB0aGUgIG9wZXJhdGlvbiAgdGhl cmVvZiAgZXhjZXB0CnJlYXNvbmFibGUgY29tcGVuc2F0aW9uIGZvciBzZXJ2aWNlcyBpbiBl ZmZlY3Rpbmcgb25lICBvciAgbW9yZSAgb2YgIGl0cwpwdXJwb3NlcyBoZXJlaW4gc2V0IGZv cnRoLgoKUyA1NS4yMS4gQXBwbGljYXRpb24gb2YgbGF3LiBBbGwgb2YgdGhlIGdlbmVyYWwg cHJvdmlzaW9ucyBvZiB0aGUgcHVibGljCmF1dGhvcml0aWVzIGxhdyBvciBvZiBhbnkgb3Ro ZXIgbGF3IHNoYWxsIGFwcGx5IHRvIHRoZSBuYXR1cmFsICBoZXJpdGFnZQp0cnVzdCBoZXJl aW4gY29udGludWVkIGluIHRoZSBzYW1lIG1hbm5lciBhcyBpZiB0aGUgbGFuZ3VhZ2Ugb2Yg c3VjaCBsYXcKaGFkIGJlZW4gaW5jb3Jwb3JhdGVkIGluIGZ1bGwgaW50byB0aGlzIGFydGlj bGUsIGV4Y2VwdCAgdG8gIHRoZSAgZXh0ZW50CnRoYXQgIHN1Y2ggIHByb3Zpc2lvbnMgIGFy ZSAgaW5jb25zaXN0ZW50ICB3aXRoICB0aGUgIHByb3Zpc2lvbnMgb2YgdGhpcwphcnRpY2xl LgoKICBTICA1NS4yMy4gIEFjdGlvbnMgIGFnYWluc3QgIHRoZSAgdHJ1c3QuIEV4Y2VwdCBp biBhbiBhY3Rpb24gZm9yIHdyb25nZnVsCmRlYXRoLCBhbiBhY3Rpb24gYWdhaW5zdCB0aGUg dHJ1c3QgZm91bmRlZCBvbiB0b3J0IHNoYWxsIG5vdCAgYmUgIGNvbW1lbmNlZAptb3JlIHRo YW4gb25lIHllYXIgYW5kIG5pbmV0eSBkYXlzIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24g dGhlcmVmb3Igc2hhbGwKaGF2ZSBhY2NydWVkLCBub3IgdW5sZXNzIGEgbm90aWNlIG9mIGNs YWltIHNoYWxsIGhhdmUgYmVlbiAgc2VydmVkICBvbiAgdGhlCnRydXN0ICB3aXRoaW4gIHRo ZSAgdGltZSAgbGltaXRlZCAgYnksICBhbmQgIGluICBjb21wbGlhbmNlICB3aXRoICBhbGwg IHRoZQpyZXF1aXJlbWVudHMgb2Ygc2VjdGlvbiBmaWZ0eS1lIG9mIHRoZSBnZW5lcmFsICBt dW5pY2lwYWwgIGxhdy4gIEFuICBhY3Rpb24KYWdhaW5zdCAgdGhlIHRydXN0IGZvciB3cm9u Z2Z1bCBkZWF0aCBzaGFsbCBiZSBjb21tZW5jZWQgaW4gYWNjb3JkYW5jZSB3aXRoCnRoZSBu b3RpY2Ugb2YgY2xhaW0gYW5kIHRpbWUgIGxpbWl0YXRpb24gIHByb3Zpc2lvbnMgIG9mICB0 aXRsZSAgZWxldmVuICBvZgphcnRpY2xlIG5pbmUgb2YgdGhlIHB1YmxpYyBhdXRob3JpdGll cyBsYXcuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tTmV3IFlvcmsgU3RhdGUgQ29uc29saWRh dGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVElUTEUgVQogICAgICAgICAgICAgICAgIERJVklTSU9OUyBPRiBI SVNUT1JZIEFORCBQVUJMSUMgUkVDT1JEUwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU5ldyBZ b3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMK CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlRJQ0xFIDU3CiAgICAgICAgICAg ICAgICAgRElWSVNJT05TIE9GIEhJU1RPUlkgQU5EIFBVQkxJQyBSRUNPUkRTClNlY3Rpb24g NTcuMDEuIE9mZmljZSBvZiBzdGF0ZSBoaXN0b3J5LgogICAgICAgIDU3LjAyLiBOZXcgWW9y ayBzdGF0ZSBoaXN0b3J5IG1vbnRoLgogICAgICAgIDU3LjAzLiBGdW5jdGlvbnMgb2YgdGhl IG9mZmljZSBvZiBzdGF0ZSBoaXN0b3J5LgogICAgICAgIDU3LjA1LiBTdGF0ZSBhcmNoaXZl cy4KICAgICAgICA1Ny4wNy4gTG9jYWwgIGhpc3RvcmlhbjsgIGFwcG9pbnRtZW50OyBtYWlu dGVuYW5jZSBvZiBoaXN0b3JpY2FsCiAgICAgICAgICAgICAgICAgZWRpZmljZXMuCiAgICAg ICAgNTcuMDkuIER1dGllcyBvZiBsb2NhbCBoaXN0b3JpYW4uCiAgICAgICAgNTcuMTEuIFBl bmFsdHkuCgogIFMgIDU3LjAxLiAgIE9mZmljZSAgb2Ygc3RhdGUgaGlzdG9yeS4gIFRoZXJl IHNoYWxsIGJlIGluIHRoZSBlZHVjYXRpb24KZGVwYXJ0bWVudCB0aGUgb2ZmaWNlIG9mIHN0 YXRlIGhpc3RvcnkuCgogIFMgIDU3LjAyLiAgTmV3ICBZb3JrICBzdGF0ZSAgaGlzdG9yeSAg bW9udGguIDEuIEVhY2ggbW9udGggb2YgTm92ZW1iZXIKZm9sbG93aW5nIHRoZSBlZmZlY3Rp dmUgZGF0ZSBvZiB0aGlzIHNlY3Rpb24gc2hhbGwgYmUgZGVzaWduYXRlZCBhcyAgTmV3Cllv cmsgc3RhdGUgaGlzdG9yeSBtb250aC4KICAyLiAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBtb250 aCBzaGFsbCBiZSB0byBjZWxlYnJhdGUgdGhlIGhpc3Rvcnkgb2YgTmV3Cllvcmsgc3RhdGUg YW5kIHJlY29nbml6ZSB0aGUgY29udHJpYnV0aW9ucyBvZiBzdGF0ZSBhbmQgIGxvY2FsICBo aXN0b3JpLQphbnMuCiAgMy4gIFRoZSBjb21taXNzaW9uZXIgb2YgZWR1Y2F0aW9uLCB0aHJv dWdoIHRoZSBvZmZpY2Ugb2Ygc3RhdGUgaGlzdG9yeQppcyBoZXJlYnkgYXV0aG9yaXplZCB0 byB1bmRlcnRha2UgcHJvamVjdHMgdG8gcmVjb2duaXplIE5ldyAgWW9yayAgc3RhdGUKaGlz dG9yeSAgbW9udGguICBTdWNoICBwcm9qZWN0cyAgbWF5ICBpbmNsdWRlICB0aGUgIGNyZWF0 aW9uIG9mIGFuIGVzc2F5CmNvbnRlc3QgZm9yIHN0YXRlIHJlc2lkZW50cyAgd2hvICBhcmUg IGVucm9sbGVkICBpbiAgYW55ICBlbGVtZW50YXJ5ICBvcgpzZWNvbmRhcnkgIGVkdWNhdGlv biAgcHJvZ3JhbSB3aGljaCBzaGFsbCByZWZsZWN0IHVwb24gdGhlIGltcG9ydGFuY2Ugb2YK TmV3IFlvcmsgc3RhdGUgaGlzdG9yeS4gQW55IHByb2plY3Qgb3IgcHJvamVjdHMgY3JlYXRl ZCBwdXJzdWFudCB0byB0aGlzCnN1YmRpdmlzaW9uIG1heSwgaW4gdGhlIGRpc2NyZXRpb24g b2YgIHRoZSAgY29tbWlzc2lvbmVyICBvZiAgZWR1Y2F0aW9uLAphdXRob3JpemUgIG5vbi1t b25ldGFyeSAgYXdhcmRzICB0byAgYmUgZ2l2ZW4gdG8gcHJvamVjdCBwYXJ0aWNpcGFudHMg b3IKcHJvamVjdCB3aW5uZXJzIGFzIHN1Y2ggY29tbWlzc2lvbmVyIG1heSBkZWVtIGFwcHJv cHJpYXRlLgoKICBTICA1Ny4wMy4gICBGdW5jdGlvbnMgb2YgdGhlIG9mZmljZSBvZiBzdGF0 ZSBoaXN0b3J5LiAgSXQgc2hhbGwgYmUgdGhlCmZ1bmN0aW9uIG9mIHRoZSBvZmZpY2Ugb2Yg c3RhdGUgaGlzdG9yeToKICAxLiAgIFRvICBjb2xsZWN0LCAgZWRpdCAgYW5kICBwdWJsaXNo LCAgd2l0aCAgdGhlIGFwcHJvdmFsIG9mIHRoZSBjb20tCm1pc3Npb25lciBvZiBlZHVjYXRp b24sIGFueSBhcmNoaXZlcywgIHJlY29yZHMsICBwYXBlcnMgIG9yICBtYW51c2NyaXB0cwp0 aGF0ICBhcmUgIGRlZW1lZCAgZXNzZW50aWFsICBvciAgZGVzaXJhYmxlICBmb3IgdGhlIHBy ZXNlcnZhdGlvbiBvZiB0aGUKc3RhdGVgcyBoaXN0b3J5LgogIDIuICAgVG8gIHByZXBhcmUg YW5kIHB1Ymxpc2gsIHdpdGggdGhlIGFwcHJvdmFsIG9mIHRoZSBjb21taXNzaW9uZXIgb2YK ZWR1Y2F0aW9uLCBvciBhc3Npc3QgIGluICB0aGUgIHByZXBhcmF0aW9uICBhbmQgIHB1Ymxp Y2F0aW9uICBvZiwgIHdvcmtzCnJlbGF0aW5nIHRvIHRoZSBoaXN0b3J5IG9mIHRoZSBjb2xv bnkgYW5kIHN0YXRlIG9mIE5ldyBZb3JrLgogIDMuICAgVG8gIGFjcXVpcmUsICBhZG1pbmlz dGVyLCAgcHJlc2VydmUsICBleGhpYml0LCBpbnRlcnByZXQsIGFuZCwgaW4KY29uZm9ybWl0 eSB3aXRoIHRoZSByZWd1bGF0aW9ucyBvZiB0aGUgIGNvbW1pc3Npb25lciAgb2YgIGVkdWNh dGlvbiwgIHRvCmxvYW4sICBleGNoYW5nZSAgb3IgIGRpc3Bvc2UgIG9mIGhpc3RvcmljYWwg b2JqZWN0cyBvZiBwZXJzb25hbCBwcm9wZXJ0eQpyZWxhdGluZyB0byB0aGUgaGlzdG9yeSBv ZiB0aGUgY29sb255IGFuZCBzdGF0ZSAgb2YgIE5ldyAgWW9yazsgIGFuZCAgdG8KYWR2aXNl ICBhbnkgIHN0YXRlIGFnZW5jeSwgYm9hcmQsIGNvbW1pc3Npb24sIG9mZmljZSwgY2l2aWwg c3ViZGl2aXNpb24sCmluc3RpdHV0aW9uLCAgIG9yZ2FuaXphdGlvbiwgICBvciAgIGluZGl2 aWR1YWwgICBvbiAgIHRoZSAgIGFjcXVpc2l0aW9uLAphZG1pbmlzdHJhdGlvbiwgICBwcmVz ZXJ2YXRpb24sICBleGhpYml0aW9uLCAgaW50ZXJwcmV0YXRpb24sICBhbmQgIGRpcy0KcG9z aXRpb24gb2YgaGlzdG9yaWNhbCBvYmplY3RzLgogIDQuICAgVG8gIHBlcmZvcm0gIHRoZSAg ZnVuY3Rpb25zIG9mIHRoZSBzdGF0ZSBlZHVjYXRpb24gZGVwYXJ0bWVudCBzZXQKZm9ydGgg IGluICBzZWN0aW9uICAxOS4xMSAgb2YgIHRoZSAgcGFya3MsICAgcmVjcmVhdGlvbiAgIGFu ZCAgIGhpc3RvcmljCnByZXNlcnZhdGlvbiAgbGF3ICB3aXRoIHJlc3BlY3QgdG8gaGlzdG9y aWMgc2l0ZXMgdW5kZXIgdGhlIGp1cmlzZGljdGlvbgpvZiB0aGUgb2ZmaWNlIG9mIHBhcmtz LCByZWNyZWF0aW9uIGFuZCAgaGlzdG9yaWMgIHByZXNlcnZhdGlvbjsgIGFuZCAgdG8KYWR2 aXNlICBhbmQgIGFzc2lzdCAgYW55ICBwb2xpdGljYWwgIHN1YmRpdmlzaW9uICBvZiAgdGhl ICBzdGF0ZSBhbmQgYW55Cmluc3RpdHV0aW9uLCBvcmdhbml6YXRpb24gIG9yICBpbmRpdmlk dWFsICBjb25jZXJuaW5nICB0aGUgIGRlc2lnbmF0aW9uLAphY3F1aXNpdGlvbiwgIGFkbWlu aXN0cmF0aW9uLCBpbnRlcnByZXRhdGlvbiwgdXNlIGFuZCBkaXNwb3NpdGlvbiBvZiBhbnkK aGlzdG9yaWMgc2l0ZSwgcHJvcGVydHkgb3IgcGxhY2UgcmVsYXRpdmUgdG8gdGhlIGhpc3Rv cnkgb2YgIHRoZSAgY29sb255CmFuZCAgc3RhdGUgIG9mICBOZXcgIFlvcmssICBhbmQgIHRv ICBjb29yZGluYXRlIGVkdWNhdGlvbmFsIHByb2dyYW1zIGFuZApwcm9qZWN0cyBhdCBzdWNo IGhpc3RvcmljIHNpdGVzIG9yIHByb3BlcnRpZXMuCiAgNS4gICBUbyBhZHZpc2UgYW5kIGFz c2lzdCBhbnkgc3RhdGUgYWdlbmN5LCBib2FyZCwgY29tbWlzc2lvbiwgb2ZmaWNlLApjaXZp bCBzdWJkaXZpc2lvbiwgaW5zdGl0dXRpb24gIG9yICBvcmdhbml6YXRpb24gIGluICB0aGUg IHBsYW5uaW5nICBhbmQKZXhlY3V0aW9uICBvZiAgYW55ICBjb21tZW1vcmF0aXZlICBldmVu dCAgcmVsYXRpbmcgdG8gdGhlIGhpc3Rvcnkgb2YgdGhlCmNvbG9ueSAgYW5kICBzdGF0ZSAg b2YgIE5ldyAgWW9yayAgb3IgIE5ldyAgIFlvcmtgcyAgIHBhcnRpY2lwYXRpb24gICBpbgpj b21tZW1vcmF0aXZlIGV2ZW50cyBvdXRzaWRlIG9mIHRoZSBzdGF0ZS4KICA2LiAgIFRvICBw ZXJmb3JtICBvdGhlciBmdW5jdGlvbnMgb3IgZHV0aWVzIGFzc2lnbmVkIHRoZSBvZmZpY2Ug YnkgdGhlCmNvbW1pc3Npb25lciBvZiBlZHVjYXRpb24uCgogIFMgIDU3LjA1LiAgIFN0YXRl ICBhcmNoaXZlcy4gICAxLiAgVGhlcmUgc2hhbGwgYmUgY29udGludWVkIHdpdGhpbiB0aGUK ZWR1Y2F0aW9uIGRlcGFydG1lbnQgdGhlICBzdGF0ZSAgYXJjaGl2ZXMuICAgVGhlICBzdGF0 ZSAgYXJjaGl2ZXMgIHNoYWxsCmFjcXVpcmUsICBhcHByYWlzZSwgIHByZXNlcnZlICBlaXRo ZXIgIGluICBvcmlnaW5hbCAgb3IgIGR1cGxpY2F0ZSBmb3JtLApjYXRhbG9nLCBkaXNwbGF5 LCBkdXBsaWNhdGUgYW5kIG1ha2UgYXZhaWxhYmxlIGZvciByZWZlcmVuY2UgYW5kIHVzZSAg YnkKc3RhdGUgIG9mZmljaWFscyAgYW5kICBvdGhlcnMgIHRob3NlICBvZmZpY2lhbCAgcmVj b3JkcyAgdGhhdCAgaGF2ZSBiZWVuCmRldGVybWluZWQgdG8gaGF2ZSBzdWZmaWNpZW50IGhp c3RvcmljYWwgdmFsdWUgb3Igb3RoZXIgdmFsdWUgdG8gd2FycmFudAp0aGVpciBjb250aW51 ZWQgcHJlc2VydmF0aW9uIGJ5IHRoZSBzdGF0ZS4KICAyLiAgIEZvciAgdGhlIHB1cnBvc2Vz IG9mIHRoaXMgc2VjdGlvbiwgb2ZmaWNpYWwgcmVjb3JkcyBzaGFsbCBpbmNsdWRlCmFsbCBi b29rcywgcGFwZXJzLCBtYXBzLCBwaG90b2dyYXBocywgb3IgIG90aGVyICBkb2N1bWVudGFy eSAgbWF0ZXJpYWxzLApyZWdhcmRsZXNzICBvZiBwaHlzaWNhbCBmb3JtIG9yIGNoYXJhY3Rl cmlzdGljcywgbWFkZSBvciByZWNlaXZlZCBieSBhbnkKYWdlbmN5IG9mIHRoZSBzdGF0ZSBv ciBieSB0aGUgbGVnaXNsYXR1cmUgb3IgdGhlIGp1ZGljaWFyeSBpbiAgcHVyc3VhbmNlCm9m ICBsYXcgIG9yICBpbiAgY29ubmVjdGlvbiAgd2l0aCB0aGUgdHJhbnNhY3Rpb24gb2YgcHVi bGljIGJ1c2luZXNzIGFuZApwcmVzZXJ2ZWQgIG9yICBhcHByb3ByaWF0ZSAgZm9yICBwcmVz ZXJ2YXRpb24gIGJ5ICB0aGF0ICBhZ2VuY3kgIG9yICBpdHMKbGVnaXRpbWF0ZSAgIHN1Y2Nl c3NvciAgYXMgIGV2aWRlbmNlICBvZiAgdGhlICBvcmdhbml6YXRpb24sICBmdW5jdGlvbnMs CnBvbGljaWVzLCBkZWNpc2lvbnMsIHByb2NlZHVyZXMsIG9wZXJhdGlvbnMsICBvciAgb3Ro ZXIgIGFjdGl2aXRpZXMsICBvcgpiZWNhdXNlIG9mIHRoZSBpbmZvcm1hdGlvbiBjb250YWlu ZWQgdGhlcmVpbi4KICAzLiAgIExpYnJhcnkgIG9yIG11c2V1bSBtYXRlcmlhbCBtYWRlIG9y IGFjcXVpcmVkIGFuZCBwcmVzZXJ2ZWQgc29sZWx5CmZvciAgcmVmZXJlbmNlICBvciAgZXho aWJpdGlvbiAgcHVycG9zZXMsICBleHRyYSAgY29waWVzICBvZiAgIGRvY3VtZW50cwpwcmVz ZXJ2ZWQgIG9ubHkgZm9yIGNvbnZlbmllbmNlIG9mIHJlZmVyZW5jZSwgYW5kIHN0b2NrcyBv ZiBwdWJsaWNhdGlvbnMKYW5kIG9mIHByb2Nlc3NlZCBkb2N1bWVudHMgc2hhbGwgbm90IGJl IGRlZW1lZCAgdG8gIGNvbnN0aXR1dGUgIG9mZmljaWFsCnJlY29yZHMgZm9yIHRoZSBwdXJw b3NlcyBvZiB0aGlzIHNlY3Rpb24uCiAgNC4gICBFeGNlcHQgIGFzICBvdGhlcndpc2UgIHBy b3ZpZGVkICBieSBsYXcsIHRoZSBzdGF0ZSBhcmNoaXZlcyBzaGFsbAphY3F1aXJlIGFuZCBh c3N1bWUgdGhlIG9mZmljaWFsICBjdXN0b2R5ICBhbmQgIHJlc3BvbnNpYmlsaXR5ICBmb3Ig IHByZS0Kc2VydmluZyAgYW5kICBtYWtpbmcgIGF2YWlsYWJsZSAgZm9yICByZWZlcmVuY2Ug IGFuZCAgdXNlIHRob3NlIG9mZmljaWFsCnJlY29yZHMgb2YgdGhlIGxlZ2lzbGF0dXJlLCB0 aGUganVkaWNpYXJ5IGFuZCB0aGUgY2l2aWwgIGRlcGFydG1lbnRzICBvZgp0aGUgIHN0YXRl ICBnb3Zlcm5tZW50ICB3aGljaCAgYXJlICBkZWVtZWQgdG8gaGF2ZSBzdWZmaWNpZW50IGhp c3RvcmljYWwKdmFsdWUgb3Igb3RoZXIgdmFsdWUgdG8gd2FycmFudCAgdGhlaXIgIGNvbnRp bnVlZCAgcHJlc2VydmF0aW9uICBieSAgdGhlCnN0YXRlLgogIDUuICAgVGhlICBzdGF0ZSBh cmNoaXZlcyBzaGFsbCBhY3F1aXJlIGFuZCBhc3N1bWUgdGhlIG9mZmljaWFsIGN1c3RvZHkK YW5kIHJlc3BvbnNpYmlsaXR5IGZvciBwcmVzZXJ2aW5nIGFuZCBtYWtpbmcgYXZhaWxhYmxl IGZvciByZWZlcmVuY2UgYW5kCnVzZSAgdGhlICBvZmZpY2lhbCAgcmVjb3JkcyAgb2YgIGFu eSAgcHVibGljICBvZmZpY2UsICBib2R5IG9yIGJvYXJkIG5vdwpleHRpbmN0LCBvciAgaGVy ZWFmdGVyICBiZWNvbWluZyAgZXh0aW5jdCwgIHdoaWNoICBhcmUgIGRlZW1lZCAgdG8gIGhh dmUKc3VmZmljaWVudCAgaGlzdG9yaWNhbCAgdmFsdWUsIG9yIG90aGVyIHZhbHVlIHRvIHdh cnJhbnQgdGhlaXIgY29udGludWVkCnByZXNlcnZhdGlvbiBieSB0aGUgc3RhdGUsIGlmICB0 aGUgIGN1c3RvZHkgIGFuZCAgcHJlc2VydmF0aW9uICBvZiAgc3VjaApyZWNvcmRzIGFyZSBu b3Qgb3RoZXJ3aXNlIHByb3ZpZGVkIGZvciBieSBsYXcuCiAgNi4gICBUaGUgc3RhdGUgYXJj aGl2ZXMgbWF5IGFjY2VwdCByZWNvcmRzLCBvciBjb3BpZXMgb2YgcmVjb3Jkcywgb2YgYQpt dW5pY2lwYWwsIGRpc3RyaWN0IG9yIHB1YmxpYyBiZW5lZml0IGNvcnBvcmF0aW9uLCBwcm92 aWRpbmcgdGhlIHJlY29yZHMKaGF2ZSAgIHN1ZmZpY2llbnQgICBoaXN0b3JpY2FsICAgc2ln bmlmaWNhbmNlICAgdG8gICB3YXJyYW50ICAgY29udGludWVkCnByZXNlcnZhdGlvbiBieSB0 aGUgc3RhdGUuCiAgNy4gICBUaGUgY29tbWlzc2lvbmVyIG9mIGVkdWNhdGlvbiBtYXkgcmVx dWVzdCB0aGUgYXR0b3JuZXkgZ2VuZXJhbCB0bwppbnN0aXR1dGUgbGVnYWwgYWN0aW9uIGZv ciB0aGUgcmV0dXJuIHRvIHRoZSBjdXN0b2R5IG9mIHRoZSBzdGF0ZSBvZiBhbnkKcmVjb3Jk IHdoaWNoIGhhcyBub3QgbGVnYWxseSBiZWVuIHJlbGVhc2VkIGZyb20gc3RhdGUgY3VzdG9k eS4KICA4LiAgIFRoZSAgc3RhdGUgIGFyY2hpdmVzICBtYXkgIGR1cGxpY2F0ZSAgcmVjb3Jk cyBpbiBpdHMgY3VzdG9keSwgYW5kCmNlcnRpZnkgdW5kZXIgaXRzIG93biBvZmZpY2lhbCBz ZWFsIHRvIHRoZSBhdXRoZW50aWNpdHkgb2YgdGhlIGNvcGllcyBvZgpzdWNoICByZWNvcmRz LiAgVGhlIHN0YXRlIGFyY2hpdmVzIHdpdGggdGhlIGFwcHJvdmFsIG9mIHRoZSBjb21taXNz aW9uZXIKb2YgZWR1Y2F0aW9uIGFuZCBpbiBhY2NvcmRhbmNlIHdpdGggZXhpc3Rpbmcgc3Rh dGUgc3RhdHV0ZXMgbWF5ICBkaXNwb3NlCm9mIG9yaWdpbmFsIHJlY29yZHMgaW4gaXRzIGN1 c3RvZHkgdGhhdCBoYXZlIGJlZW4gZHVwbGljYXRlZC4KICA5LiAgVGhlICBjb21taXNzaW9u ZXIgIG9mIGVkdWNhdGlvbiBzaGFsbCBoYXZlIHRoZSBwb3dlciB0byBwcm9tdWxnYXRlCnJ1 bGVzIGFuZCByZWd1bGF0aW9ucyAgdG8gIGNhcnJ5ICBvdXQgIHRoZSAgcHVycG9zZXMgIG9m ICB0aGlzICBzZWN0aW9uLApwcm92aWRpbmcgIG5vICBvYmplY3Rpb24gIHRvICB0aG9zZSBy dWxlcyBhbmQgcmVndWxhdGlvbnMgaXMgbWFkZSB3aXRoaW4KdGhpcnR5IGRheXMgcHJpb3Ig dG8gdGhlICBlZmZlY3RpdmUgIGRhdGUgIG9mICB0aGUgIHByb3Bvc2VkICBydWxlcyAgYW5k CnJlZ3VsYXRpb25zICBieSB0aGUgZm9sbG93aW5nOiB0aGUgc3BlYWtlciBvZiB0aGUgYXNz ZW1ibHkgZm9yIHJ1bGVzIGFuZApyZWd1bGF0aW9ucyByZWxhdGluZyB0byB0aGUgIHJlY29y ZHMgIG9mICB0aGUgIGFzc2VtYmx5OyAgdGhlICBwcmVzaWRlbnQKcHJvLXRlbSAgb2YgdGhl IHNlbmF0ZSBmb3IgcnVsZXMgYW5kIHJlZ3VsYXRpb25zIHJlbGF0aW5nIHRvIHRoZSByZWNv cmRzCm9mIHRoZSBzZW5hdGU7IHRoZSBkaXJlY3RvciBvZiB0aGUgZGl2aXNpb24gb2YgdGhl IGJ1ZGdldCBmb3IgcnVsZXMgIGFuZApyZWd1bGF0aW9ucyAgcmVsYXRpbmcgdG8gcmVjb3Jk cyBvZiB0aGUgY2l2aWwgZGVwYXJ0bWVudHM7IGFuZCB0aGUgY2hpZWYKYWRtaW5pc3RyYXRv ciBvZiB0aGUgIGNvdXJ0cyAgZm9yICBydWxlcyAgYW5kICByZWd1bGF0aW9ucyAgcmVsYXRp bmcgIHRvCnJlY29yZHMgb2YgdGhlIGp1ZGljaWFyeS4KMTEuIFRoZSBzdGF0ZSBhcmNoaXZl cyBzaGFsbCBlc3RhYmxpc2ggYSBzdGF0ZSByZWNvcmRzIGNlbnRlciBjb25zaXN0aW5nCm9m IG9uZSBvciBtb3JlIGRlcG9zaXRvcmllcyBmb3Igbm9ucGVybWFuZW50IHN0b3JhZ2UgIG9m ICBzdGF0ZSAgcmVjb3JkcwphbmQgIHNoYWxsICBiZSAgcmVzcG9uc2libGUgIGZvciAgdGhl ICBwcmVzZXJ2YXRpb24gYW5kIGRpc3Bvc2FsIG9mIHN1Y2gKcmVjb3Jkcy4gU29sZWx5IGZv ciB0aGUgcHVycG9zZXMgIG9mICBjYXJyeWluZyAgb3V0ICBoaXMgIHJlY29yZC1rZWVwaW5n CmZ1bmN0aW9ucywgdGhlIGNvbW1pc3Npb25lciBvZiBlZHVjYXRpb24gc2hhbGwgYmUgZW1w b3dlcmVkOgooYSkgIFRvICBhc3N1bWUgIHJlc3BvbnNpYmlsaXR5ICBmb3IgIHRoZSAgcGh5 c2ljYWwgcG9zc2Vzc2lvbiwgc3RvcmFnZSwKc2VydmljaW5nIGFuZCBwcmVzZXJ2YXRpb24g b2Ygc3RhdGUgYWdlbmN5ICByZWNvcmRzICBhY2NlcHRlZCAgaW50byAgdGhlCnN0YXRlICBy ZWNvcmRzIGNlbnRlciwgYW5kIGZvciB0aGUgc2VjdXJpdHkgb2YgdGhlIGluZm9ybWF0aW9u IGNvbnRhaW5lZAppbiBvciBvbiB0aGVtLiBTdGF0ZSByZWNvcmRzIHN0b3JlZCB3aXRoIHRo ZSBzdGF0ZSAgYXJjaGl2ZXMgIHNoYWxsICBmb3IKYWxsICBwdXJwb3NlcyBiZSBkZWVtZWQg dG8gYmUgd2l0aGluIHRoZSBwb3NzZXNzaW9uLCBjdXN0b2R5IGFuZCBjb250cm9sCm9mIHRo ZSBhZ2VuY3kgdGhhdCB0cmFuc2ZlcnJlZCBzdWNoIHJlY29yZHMuCihiKSAgVG8gYXV0aG9y aXplIHRoZSBkaXNwb3NhbCBvciBkZXN0cnVjdGlvbiBvZiBzdGF0ZSByZWNvcmRzIGluY2x1 ZGluZwpib29rcywgcGFwZXJzLCBtYXBzLCBwaG90b2dyYXBocywgbWljcm9waG90b2dyYXBo cyBvciBvdGhlciAgZG9jdW1lbnRhcnkKbWF0ZXJpYWxzICBtYWRlLCBhY3F1aXJlZCBvciBy ZWNlaXZlZCBieSBhbnkgYWdlbmN5LiBBdCBsZWFzdCBmb3J0eSBkYXlzCnByaW9yIHRvIHRo ZSBwcm9wb3NlZCBkaXNwb3NhbCAgb3IgIGRlc3RydWN0aW9uICBvZiAgc3VjaCAgcmVjb3Jk cywgIHRoZQpjb21taXNzaW9uZXIgIG9mICBlZHVjYXRpb24gIHNoYWxsICBkZWxpdmVyICBh IGxpc3Qgb2YgdGhlIHJlY29yZHMgdG8gYmUKZGlzcG9zZWQgb2Ygb3IgZGVzdHJveWVkIHRv IHRoZSBhdHRvcm5leSBnZW5lcmFsLCAgdGhlICBjb21wdHJvbGxlciAgYW5kCnRoZSAgc3Rh dGUgYWdlbmN5IHRoYXQgdHJhbnNmZXJyZWQgc3VjaCByZWNvcmRzLiBObyBzdGF0ZSByZWNv cmRzIGxpc3RlZAp0aGVyZWluIHNoYWxsIGJlIGRlc3Ryb3llZCBpZiB3aXRoaW4gdGhpcnR5 IGRheXMgYWZ0ZXIgcmVjZWlwdCAgb2YgIHN1Y2gKbGlzdCAgdGhlICBhdHRvcm5leSBnZW5l cmFsLCBjb21wdHJvbGxlciwgb3IgdGhlIGFnZW5jeSB0aGF0IHRyYW5zZmVycmVkCnN1Y2gg cmVjb3JkcyBzaGFsbCBub3RpZnkgdGhlIGNvbW1pc3Npb25lciAgb2YgIGVkdWNhdGlvbiAg dGhhdCAgaW4gIGhpcwpvcGluaW9uIHN1Y2ggc3RhdGUgcmVjb3JkcyBzaG91bGQgbm90IGJl IGRlc3Ryb3llZC4KKGMpICBUbyAgYWdyZWUgIHRvICB0aGUgZGVwb3NpdCBvZiBub25jdXJy ZW50IHN0YXRlIHJlY29yZHMgaW4gdGhlIHN0YXRlCnJlY29yZHMgY2VudGVyLgooZCkgIFRv IHJldmlldyBwbGFucyBzdWJtaXR0ZWQgYnkgc3RhdGUgYWdlbmNpZXMgZm9yIG1hbmFnZW1l bnQgb2YgdGhlaXIKcmVjb3JkcyBhbmQgdG8gbWFrZSByZWNvbW1lbmRhdGlvbnMgdGhlcmV1 cG9uIHRvIHRoZSBoZWFkIG9mICB0aGUgIHN0YXRlCmFnZW5jeSBhbmQgdGhlIGRpcmVjdG9y IG9mIHRoZSBkaXZpc2lvbiBvZiB0aGUgYnVkZ2V0LgooZSkgIFRvICBpbnF1aXJlICBpbnRv ICB0aGUgIGNvbmRpdGlvbiwgIGNoYXJhY3RlciwgYW1vdW50IGFuZCBtZXRob2Qgb2YKa2Vl cGluZyBzdWNoIHJlY29yZHMuCihmKSAgVG8gIGRldmVsb3AgIGFuZCAgaW1wbGVtZW50ICBh ICBjb21wcmVoZW5zaXZlICBhbmQgb25nb2luZyB0cmFpbmluZwpwcm9ncmFtIGluIHJlY29y ZHMgbWFuYWdlbWVudCBmb3IgYWxsIHN0YXRlIGFnZW5jaWVzLgooZykgIFRvICBwcm92aWRl ICB0ZWNobmljYWwgIGFzc2lzdGFuY2UgIGluIHJlY29yZHMgbWFuYWdlbWVudCBmb3Igc3Rh dGUKYWdlbmNpZXMuCihoKSAgVG8gIHByb3ZpZGUgIGZvciB0aGUgdHJhbnNmZXIgb2Ygc3Vj aCByZWNvcmRzIGhhdmluZyBhcmNoaXZhbCB2YWx1ZQpmcm9tIHRoZSBzdGF0ZSByZWNvcmRz IGNlbnRlciB0byB0aGUgc3RhdGUgYXJjaGl2ZXMgZm9yIHRoZWlyICBwZXJtYW5lbnQKcHJl c2VydmF0aW9uLgooaSkgIFRvIGRldmVsb3AgYW5kIGltcGxlbWVudCBhIGZlZSBzY2hlZHVs ZSwgdG8gYmUgYWRvcHRlZCBieSB0aGUgYm9hcmQKb2YgcmVnZW50cyBwdXJzdWFudCB0byBy dWxlcyBhbmQgcmVndWxhdGlvbnMgYWRvcHRlZCBpbiBjb25mb3JtaXR5ICB3aXRoCnRoZSAg c3RhdGUgIGFkbWluaXN0cmF0aXZlICBwcm9jZWR1cmUgYWN0LCB0byBzdXBwb3J0IHJlY29y ZHMgbWFuYWdlbWVudAphY3Rpdml0aWVzIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZzoKKGkp ICB0aGUgIGZlZSAgc2NoZWR1bGUgIG1heSAgYmUgIGNoYW5nZWQgIG9ubHkgb25jZSBpbiBh bnkgdHdlbHZlIG1vbnRoCnBlcmlvZCwgYW5kCihpaSkgIGFmdGVyICB0aGUgIGluaXRpYWwg IGZlZSAgc2NoZWR1bGUgIGlzIGVzdGFibGlzaGVkIGJ5IHRoZSBib2FyZCBvZgpyZWdlbnRz LCBwcm9wb3NlZCBjaGFuZ2VzIHRvIHNhaWQgIHNjaGVkdWxlICBtdXN0ICBiZSAgaW5jbHVk ZWQgIGluICB0aGUKYW5udWFsICBidWRnZXQgIHJlcXVlc3QgIHN1Ym1pdHRlZCAgdG8gIHRo ZSBkaXJlY3RvciBvZiB0aGUgYnVkZ2V0LiBTdWNoCmFtZW5kZWQgZmVlIHNjaGVkdWxlIHNo YWxsIG5vdCBiZWNvbWUgZWZmZWN0aXZlIHVudGlsIGVuYWN0bWVudCAgb2YgIHRoZQpidWRn ZXQgIHN1Ym1pdHRlZCAgYW5udWFsbHkgIGJ5ICB0aGUgIGdvdmVybm9yICB0byAgdGhlICBs ZWdpc2xhdHVyZSAgaW4KYWNjb3JkYW5jZSB3aXRoIGFydGljbGUgc2V2ZW4gb2YgdGhlIGNv bnN0aXR1dGlvbiwgIGFuZCAgc2hhbGwgIGdlbmVyYXRlCnJldmVudWVzICBjb25zaXN0ZW50 ICB3aXRoIGFwcHJvcHJpYXRpb25zIGNvbnRhaW5lZCB0aGVyZWZvciB3aXRoaW4gc3VjaApi dWRnZXQgYW5kIHN1ZmZpY2llbnQgdG8gY292ZXIgYW50aWNpcGF0ZWQgZXhwZW5kaXR1cmVz IGZvciAgdGhlICBwZXJpb2QKZm9yIHdoaWNoIHN1Y2ggZmVlcyBzaGFsbCBiZSBlZmZlY3Rp dmUuCihqKSAgVG8gIHByb211bGdhdGUgc3VjaCBvdGhlciByZWd1bGF0aW9ucyBhcyBhcmUg bmVjZXNzYXJ5IHRvIGNhcnJ5IG91dAp0aGUgcHVycG9zZXMgb2YgdGhpcyBzdWJkaXZpc2lv bi4KCiAgUyAgIDU3LjA3LiAgIExvY2FsICBoaXN0b3JpYW47ICBhcHBvaW50bWVudDsgIG1h aW50ZW5hbmNlICBvZiAgaGlzdG9yaWNhbAplZGlmaWNlcy4gIDEuICBBIGxvY2FsIGhpc3Rv cmlhbiBzaGFsbCBiZSBhcHBvaW50ZWQsIGFzICBwcm92aWRlZCAgaW4gIHRoaXMKc2VjdGlv biwgIGZvciBlYWNoIGNpdHksIHRvd24gb3IgdmlsbGFnZSwgZXhjZXB0IHRoYXQgaW4gYSBj aXR5IG9mIG92ZXIgb25lCm1pbGxpb24gaW5oYWJpdGFudHMgYSBsb2NhbCBoaXN0b3JpYW4g c2hhbGwgYmUgYXBwb2ludGVkIGZvciAgZWFjaCAgYm9yb3VnaAp0aGVyZWluICBpbnN0ZWFk ICBvZiAgZm9yICB0aGUgY2l0eSBhdCBsYXJnZTsgYW5kIGEgY291bnR5IGhpc3RvcmlhbiBt YXkgYmUKYXBwb2ludGVkIGZvciBlYWNoIGNvdW50eS4gIFN1Y2ggaGlzdG9yaWFuIHNoYWxs IGJlIGFwcG9pbnRlZCAgYXMgIGZvbGxvd3M6CkZvciAgYSAgY2l0eSwgIGJ5IHRoZSBtYXlv cjsgZm9yIGEgYm9yb3VnaCwgYnkgdGhlIGJvcm91Z2ggcHJlc2lkZW50OyBmb3IgYQp0b3du LCBieSB0aGUgc3VwZXJ2aXNvcjsgZm9yIGEgdmlsbGFnZSwgYnkgdGhlIG1heW9yOyBmb3Ig YSBjb3VudHksIGJ5ICB0aGUKYm9hcmQgIG9mICBzdXBlcnZpc29ycy4gICBTdWNoICBoaXN0 b3JpYW4gc2hhbGwgc2VydmUgd2l0aG91dCBjb21wZW5zYXRpb24sCnVubGVzcyB0aGUgZ292 ZXJuaW5nIGJvYXJkIG9mIHRoZSBjaXR5LCB0b3duLCB2aWxsYWdlIG9yIGNvdW50eSBmb3Ig IG9yICBpbgp3aGljaCAgaGUgb3Igc2hlIHdhcyBhcHBvaW50ZWQgb3IgaW4gdGhlIGNpdHkg b2YgTmV3IFlvcmssIHRoZSBtYXlvciwgc2hhbGwKb3RoZXJ3aXNlIHByb3ZpZGUuICBJbiBh IGNpdHkgaGF2aW5nIGEgYm9hcmQgb2YgZXN0aW1hdGUsICBvdGhlciAgdGhhbiAgdGhlCmNp dHkgIG9mICBOZXcgIFlvcmssIGEgcmVzb2x1dGlvbiBvciBvcmRpbmFuY2UgZXN0YWJsaXNo aW5nIGNvbXBlbnNhdGlvbiBvcgpzYWxhcnkgZm9yIHN1Y2ggaGlzdG9yaWFuIHNoYWxsIG5v dCB0YWtlIGVmZmVjdCB3aXRob3V0IHRoZSBjb25jdXJyZW5jZSAgb2YKc3VjaCBib2FyZC4g RWFjaCBsb2NhbCBnb3Zlcm5tZW50IGhpc3RvcmlhbiBzaGFsbCBwcm9tb3RlIHRoZSBlc3Rh Ymxpc2htZW50CmFuZCBpbXByb3ZlbWVudCBvZiBwcm9ncmFtcyBmb3IgdGhlIG1hbmFnZW1l bnQgYW5kICBwcmVzZXJ2YXRpb24gIG9mICBsb2NhbApnb3Zlcm5tZW50ICByZWNvcmRzICB3 aXRoICBlbmR1cmluZyB2YWx1ZSBmb3IgaGlzdG9yaWNhbCBvciBvdGhlciByZXNlYXJjaDsK ZW5jb3VyYWdlIHRoZSBjb29yZGluYXRlZCBjb2xsZWN0aW9uIGFuZCAgcHJlc2VydmF0aW9u ICBvZiAgbm9uZ292ZXJubWVudGFsCmhpc3RvcmljYWwgICByZWNvcmRzICAgYnkgICBsaWJy YXJpZXMsICAgaGlzdG9yaWNhbCAgc29jaWV0aWVzLCAgYW5kICBvdGhlcgpyZXBvc2l0b3Jp ZXM7IGFuZCBjYXJyeSBvdXQgYW5kIGFjdGl2ZWx5IGVuY291cmFnZSByZXNlYXJjaCBpbiBz dWNoIHJlY29yZHMKaW4gIG9yZGVyICB0byAgYWRkICB0byB0aGUga25vd2xlZGdlLCB1bmRl cnN0YW5kaW5nIGFuZCBhcHByZWNpYXRpb24gb2YgdGhlCmNvbW11bml0eWBzIGhpc3Rvcnku ICBUaGUgbG9jYWwgYXV0aG9yaXRpZXMgb2YgdGhlIGNpdHksIHRvd24sICB2aWxsYWdlICBv cgpjb3VudHkgIGZvciAgd2hpY2ggIHN1Y2ggIGhpc3RvcmlhbiBpcyBhcHBvaW50ZWQsIG1h eSBwcm92aWRlIHRoZSBoaXN0b3JpYW4Kd2l0aCBzdWZmaWNpZW50IHNwYWNlIGluIGEgc2Fm ZSwgdmF1bHQgb3Igb3RoZXIgZmlyZSAgcHJvb2YgIHN0cnVjdHVyZSAgZm9yCnRoZSBwcmVz ZXJ2YXRpb24gb2YgaGlzdG9yaWNhbCBtYXRlcmlhbHMgY29sbGVjdGVkLiAgU3VjaCBsb2Nh bCBhdXRob3JpdGllcwphbmQgYWxzbyB0aGUgYm9hcmQgb2Ygc3VwZXJ2aXNvcnMgb2YgZWFj aCBvZiB0aGUgY291bnRpZXMgb2YgdGhlIHN0YXRlICBhcmUKaGVyZWJ5ICBhdXRob3JpemVk ICBhbmQgIGVtcG93ZXJlZCAgdG8gYXBwcm9wcmlhdGUsIHJhaXNlIGJ5IHRheCBhbmQgZXhw ZW5kCm1vbmV5cyAgZm9yICBoaXN0b3JpY2FsICBwdXJwb3NlcyAgd2l0aGluICB0aGVpciAg IHNldmVyYWwgICBqdXJpc2RpY3Rpb25zLAppbmNsdWRpbmcgIGhpc3RvcmljYWwgIGVkaWZp Y2VzLCAgdGhlICBlcmVjdGlvbiAgb2YgIGhpc3RvcmljYWwgbWFya2VycyBhbmQKbW9udW1l bnRzLCB0aGUgIGNvbGxlY3Rpb24gIG9mICB3YXIgIG1lbWVudG9zLCAgYW5kLCAgZWl0aGVy ICBhbG9uZSAgb3IgIGluCmNvb3BlcmF0aW9uIHdpdGggcGF0cmlvdGljIG9yIGhpc3Rvcmlj YWwgb3JnYW5pemF0aW9ucywgdGhlIHByZXBhcmF0aW9uIGFuZApwdWJsaWNhdGlvbiBvZiBs b2NhbCBoaXN0b3JpZXMgYW5kIHJlY29yZHMgYW5kIHRoZSBwcmludGluZyBhbmQgaXNzdWlu ZyAgb2YKb3RoZXIgaGlzdG9yaWNhbCBtYXRlcmlhbHMgaW4gYWlkIG9mIHRoZSB3b3JrIG9m IHRoZSBsb2NhbCBoaXN0b3JpYW4uCiAgMi4gICBTdWNoICBsb2NhbCBhdXRob3JpdGllcyBh bmQgYWxzbyB0aGUgYm9hcmQgb2Ygc3VwZXJ2aXNvcnMgb2YgZWFjaCBvZgp0aGUgY291bnRp ZXMgb2YgdGhlIHN0YXRlIGFyZSBoZXJlYnkgYXV0aG9yaXplZCAgYW5kICBlbXBvd2VyZWQs ICBpbiAgdGhlaXIKZGlzY3JldGlvbiwgIHRvIGNvbnRyYWN0IHdpdGggdGhlIHRydXN0ZWVz IG9mIGFuIGhpc3RvcmljYWwgYXNzb2NpYXRpb24gZm9yCnRoZSBzdXBwb3J0IG9mIGFueSBv ciBhbGwgaGlzdG9yaWMgZWRpZmljZXMgc2l0dWF0ZWQgd2l0aGluIHRoZSAgYm91bmRhcmll cwpvZiAgc3VjaCAgbXVuaWNpcGFsaXR5OyAgb3IgIG1heSAgc2hhcmUgdGhlIGNvc3Qgb2Yg bWFpbnRhaW5pbmcgdGhlIHNhbWUgYXMKYWdyZWVkIHdpdGggb3RoZXIgbXVuaWNpcGFsIGJv ZGllczsgb3IgbWF5IGNvbnRyYWN0IHdpdGggIHRoZSAgdHJ1c3RlZXMgIG9mCnN1Y2ggIGhp c3RvcmljYWwgYXNzb2NpYXRpb25zIHRvIG1haW50YWluIHNhaWQgaGlzdG9yaWMgZWRpZmlj ZXMgZm9yIHB1YmxpYwp1c2UgdW5kZXIgc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBhcyBt YXkgYmUgc3RhdGVkIGluIHN1Y2ggY29udHJhY3QuICBUaGUKYW1vdW50IGFncmVlZCB0byBi ZSBwYWlkIGZvciBzdWNoIHVzZSB1bmRlciBzdWNoIGNvbnRyYWN0IHNoYWxsIGJlIGEgY2hh cmdlCnVwb24gdGhlIG11bmljaXBhbGl0eSBhbmQgc2hhbGwgIGJlICBwYWlkICBpbiAgdGhl ICBzYW1lICBtYW5uZXIgIGFzICBvdGhlcgptdW5pY2lwYWwgIGNoYXJnZXMsIGV4Y2VwdCBp biBhIGNpdHkgaGF2aW5nIGEgYm9hcmQgb2YgZXN0aW1hdGUsIG90aGVyIHRoYW4KdGhlIGNp dHkgb2YgTmV3IFlvcmssIHN1Y2ggY29udHJhY3RzIGFuZCBhbnkgcGF5bWVudHMgbWFkZSB0 aGVyZXVuZGVyIHNoYWxsCmJlICBhcHByb3ZlZCAgYnkgIHN1Y2ggIGJvYXJkICBvZiAgZXN0 aW1hdGUuICBJbiB0aGUgY2l0eSBvZiBOZXcgWW9yaywgc3VjaApjb250cmFjdHMgYW5kIGFu eSBwYXltZW50cyB0aGVyZXVuZGVyIHNoYWxsIGJlIGFwcHJvdmVkIGJ5IHRoZSBtYXlvci4K ICAzLiAgU3VjaCBsb2NhbCBhdXRob3JpdGllcyBhcmUgaGVyZWJ5IGF1dGhvcml6ZWQgdG8g ZXN0YWJsaXNoIGFuZCBjb2xsZWN0CnJlYXNvbmFibGUgY2hhcmdlcyB0byBkZWZyYXkgdGhl IGNvc3QgIG9mICBzZWFyY2hpbmcgIGZvciAgYW5kICByZXByb2R1Y2luZwpjb3BpZXMgb2Yg d3JpdHRlbiBvciBwcmludGVkIGhpc3RvcmljYWwgbWF0ZXJpYWxzIGNvbGxlY3RlZC4KCiAg UyAgNTcuMDkuICBEdXRpZXMgb2YgbG9jYWwgaGlzdG9yaWFuLiAgSXQgc2hhbGwgYmUgdGhl IGR1dHkgb2YgZWFjaCBsb2NhbApoaXN0b3JpYW4sIGFwcG9pbnRlZCBhcyBwcm92aWRlZCBp biB0aGUgbGFzdCBzZWN0aW9uLCBpbiAgY29vcGVyYXRpb24gIHdpdGgKdGhlICBzdGF0ZSAg aGlzdG9yaWFuLCAgdG8gIGNvbGxlY3QgIGFuZCAgcHJlc2VydmUgbWF0ZXJpYWwgcmVsYXRp bmcgdG8gdGhlCmhpc3Rvcnkgb2YgdGhlIHBvbGl0aWNhbCBzdWJkaXZpc2lvbiBmb3Igd2hp Y2ggaGUgb3Igc2hlIGlzIGFwcG9pbnRlZCwgIGFuZAp0byAgZmlsZSAgc3VjaCAgbWF0ZXJp YWwgIGluIGZpcmVwcm9vZiBzYWZlcyBvciB2YXVsdHMgaW4gdGhlIGNvdW50eSwgY2l0eSwK dG93biBvciB2aWxsYWdlIG9mZmljZXMuICBTdWNoIGhpc3RvcmlhbiBzaGFsbCBleGFtaW5l IGludG8gdGhlICBjb25kaXRpb24sCmNsYXNzaWZpY2F0aW9uICBhbmQgIHNhZmV0eSAgZnJv bSAgZmlyZSBvZiB0aGUgcHVibGljIHJlY29yZHMgb2YgdGhlIHB1YmxpYwpvZmZpY2VzIG9m IHN1Y2ggY291bnR5LCBjaXR5LCB0b3duICBvciAgdmlsbGFnZSwgIGFuZCAgc2hhbGwgIGNh bGwgIHRvICB0aGUKYXR0ZW50aW9uICBvZiB0aGUgbG9jYWwgYXV0aG9yaXRpZXMgYW5kIHRo ZSBzdGF0ZSBoaXN0b3JpYW4gYW55IG1hdGVyaWFsIG9mCmxvY2FsIGhpc3RvcmljIHZhbHVl IHdoaWNoIHNob3VsZCBiZSBhY3F1aXJlZCBmb3IgcHJlc2VydmF0aW9uLiAgSGUgb3IgIHNo ZQpzaGFsbCAgbWFrZSAgYW4gIGFubnVhbCAgcmVwb3J0LCAgaW4gIHRoZSAgbW9udGggIG9m ICBKYW51YXJ5LCB0byB0aGUgbG9jYWwKYXBwb2ludGluZyBvZmZpY2VyIG9yIG9mZmljZXJz IGFuZCB0byB0aGUgc3RhdGUgaGlzdG9yaWFuIG9mIHRoZSB3b3JrIHdoaWNoCmhhcyAgYmVl biAgYWNjb21wbGlzaGVkICBkdXJpbmcgIHRoZSBwcmVjZWRpbmcgeWVhci4gIEhlIG9yIHNo ZSBzaGFsbCwgdXBvbgpyZXRpcmVtZW50IG9yIHJlbW92YWwgZnJvbSBvZmZpY2UsIHR1cm4g b3ZlciB0byAgdGhlICBsb2NhbCAgY291bnR5LCAgY2l0eSwKdG93biAgb3IgIHZpbGxhZ2Ug YXV0aG9yaXRpZXMsIG9yIHRvIGhpcyBvciBoZXIgc3VjY2Vzc29yIGluIG9mZmljZSwgaWYg b25lCmhhcyAgYmVlbiAgdGhlbiAgYXBwb2ludGVkLCAgYWxsICBtYXRlcmlhbHMgIGdhdGhl cmVkICBkdXJpbmcgIGhpcyAgb3IgIGhlcgppbmN1bWJlbmN5ICBhbmQgIGFsbCBjb3JyZXNw b25kZW5jZSByZWxhdGluZyB0aGVyZXRvLiAgSXQgc2hhbGwgYmUgdGhlIGR1dHkKb2YgdGhl IGNvdW50eSBoaXN0b3JpYW4gdG8gc3VwZXJ2aXNlIHRoZSBhY3Rpdml0aWVzIG9mIHRoZSBs b2NhbCBoaXN0b3JpYW5zCmluICB0b3ducyAgYW5kIHZpbGxhZ2VzIHdpdGhpbiB0aGUgY291 bnR5IGluIHBlcmZvcm1pbmcgdGhlIGhpc3RvcmljYWwgd29yawpyZWNvbW1lbmRlZCBieSB0 aGUgc3RhdGUgaGlzdG9yaWFuLCBhbmQgYWxzbyB0byBwcmVwYXJlIGFuZCB0byAgcHJlc2Vu dCAgdG8KdGhlICBib2FyZCAgb2Ygc3VwZXJ2aXNvcnMgYSByZXBvcnQgb2YgdGhlIGltcG9y dGFudCBvY2N1cnJlbmNlcyB3aXRoaW4gdGhlCmNvdW50eSBmb3IgZWFjaCBjYWxlbmRhciB5 ZWFyLiAgVGhlIHN0YXRlIGhpc3RvcmlhbiwgYXQgcmVndWxhciAgaW50ZXJ2YWxzLApub3Qg IGxlc3MgIHRoYW4gIG9uY2UgIGEgIHllYXIsICBzaGFsbCBpbmRpY2F0ZSB0byB0aGUgbG9j YWwgaGlzdG9yaWFucyB0aGUKZ2VuZXJhbCBsaW5lcyBhbG9uZyB3aGljaCBsb2NhbCBoaXN0 b3J5IG1hdGVyaWFsIGlzIHRvIGJlIGNvbGxlY3RlZC4KCiAgUyAgNTcuMTEuICAgUGVuYWx0 eS4gIEEgcHVibGljIG9mZmljZXIgd2hvIHJlZnVzZXMgb3IgbmVnbGVjdHMgdG8gcGVyZm9y bQphbnkgZHV0eSByZXF1aXJlZCBvZiBoaW0gYnkgdGhpcyBhcnRpY2xlIG9yIHRvIGNvbXBs eSB3aXRoIGEgcmVjb21tZW5kYXRpb24Kb2YgIHRoZSAgY29tbWlzc2lvbmVyICBvZiAgZWR1 Y2F0aW9uICB1bmRlciB0aGUgYXV0aG9yaXR5IG9mICB0aGlzIGFydGljbGUsCnNoYWxsIGZv ciBlYWNoIG1vbnRoIG9mIHN1Y2ggbmVnbGVjdCBvciByZWZ1c2FsLCBiZSBwdW5pc2hlZCBi eSBhICBmaW5lICBvZgpub3QgbGVzcyB0aGFuIHR3ZW50eSBkb2xsYXJzLgoKCgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLU5ldyBZb3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5k IEN1bHR1cmFsIEFmZmFpcnMKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJU SUNMRSA1Ny1BCiAgICAgICAgICAgICAgICAgICAgICAgIExPQ0FMIEdPVkVSTk1FTlQgUkVD T1JEUyBMQVcKU2VjdGlvbiA1Ny4xMy4gU3RhdGVtZW50IG9mIGxlZ2lzbGF0aXZlIGludGVu dC4KICAgICAgICA1Ny4xNS4gU2hvcnQgdGl0bGUuCiAgICAgICAgNTcuMTcuIERlZmluaXRp b25zLgogICAgICAgIDU3LjE5LiBMb2NhbCBnb3Zlcm5tZW50IHJlY29yZHMgbWFuYWdlbWVu dCBwcm9ncmFtLgogICAgICAgIDU3LjIxLiBMb2NhbCBnb3Zlcm5tZW50IHJlY29yZHMgYWR2 aXNvcnkgY291bmNpbC4KICAgICAgICA1Ny4yMy4gT3ZlcnNpZ2h0IGFuZCBhZHZpc29yeSBz ZXJ2aWNlcy4KICAgICAgICA1Ny4yNS4gUmVjb3JkcyByZXRlbnRpb24gYW5kIGRpc3Bvc2l0 aW9uLgogICAgICAgIDU3LjI3LiBSZWNvcmRzIHdpdGggc3RhdGV3aWRlIHNpZ25pZmljYW5j ZS4KICAgICAgICA1Ny4yOS4gUmVwcm9kdWN0aW9uIG9mIHJlY29yZHMgYW5kIGRpc3Bvc2l0 aW9uIG9mIHRoZSBvcmlnaW5hbHMuCiAgICAgICAgNTcuMzEuIENvb3BlcmF0aXZlIHJlY29y ZHMgc3RvcmFnZSBhbmQgbWFuYWdlbWVudC4KICAgICAgICA1Ny4zMy4gRXhjbHVzaW9ucy4K ICAgICAgICA1Ny4zNS4gR3JhbnRzICBmb3IgbG9jYWwgZ292ZXJubWVudCByZWNvcmRzIG1h bmFnZW1lbnQgaW1wcm92ZW1lbnQuCiAgICAgICAgNTcuMzcuIFJlZ2lvbmFsIHJlY29yZHMg b2ZmaWNlcy4KICAgICAgICA1Ny4zOS4gUmVwb3J0aW5nIHJlcXVpcmVtZW50cy4KCiAgUyAg NTcuMTMuICBTdGF0ZW1lbnQgIG9mICBsZWdpc2xhdGl2ZSAgaW50ZW50LiBUaGUgbGVnaXNs YXR1cmUgZmluZHMgdGhhdApwdWJsaWMgcmVjb3JkcyBhcmUgZXNzZW50aWFsIHRvIHRoZSAg YWRtaW5pc3RyYXRpb24gIG9mICBsb2NhbCAgZ292ZXJubWVudC4KUHVibGljICByZWNvcmRz ICBjb250YWluICBpbmZvcm1hdGlvbiAgd2hpY2ggIGFsbG93cyBnb3Zlcm5tZW50IHByb2dy YW1zIHRvCmZ1bmN0aW9uLCBwcm92aWRlcyBvZmZpY2lhbHMgd2l0aCBhIGJhc2lzIGZvciBt YWtpbmcgZGVjaXNpb25zLCBhbmQgZW5zdXJlcwpjb250aW51aXR5ICAgd2l0aCAgcGFzdCAg b3BlcmF0aW9ucy4gIFB1YmxpYyAgcmVjb3JkcyAgZG9jdW1lbnQgIHRoZSAgbGVnYWwKcmVz cG9uc2liaWxpdHkgb2YgZ292ZXJubWVudCwgcHJvdGVjdCB0aGUgcmlnaHRzIG9mIGNpdGl6 ZW5zLCAgYW5kICBwcm92aWRlCmNpdGl6ZW5zICB3aXRoICBhIG1lYW5zIG9mIG1vbml0b3Jp bmcgZ292ZXJubWVudCBwcm9ncmFtcyBhbmQgbWVhc3VyaW5nIHRoZQpwZXJmb3JtYW5jZSBv ZiBwdWJsaWMgb2ZmaWNpYWxzLiBMb2NhbCBnb3Zlcm5tZW50IHJlY29yZHMgYWxzbyByZWZs ZWN0ICB0aGUKaGlzdG9yaWNhbCAgZGV2ZWxvcG1lbnQgIG9mICB0aGUgZ292ZXJubWVudCBh bmQgb2YgdGhlIGNvbW11bml0eSBpdCBzZXJ2ZXMuClN1Y2ggcmVjb3JkcyBuZWVkIHRvIGJl IHN5c3RlbWF0aWNhbGx5IG1hbmFnZWQgdG8gZW5zdXJlICByZWFkeSAgYWNjZXNzICB0bwp2 aXRhbCAgaW5mb3JtYXRpb24gYW5kIHRvIHByb21vdGUgdGhlIGVmZmljaWVudCBhbmQgZWNv bm9taWNhbCBvcGVyYXRpb24gb2YKZ292ZXJubWVudC4KCiAgUyAgNTcuMTUuIFNob3J0IHRp dGxlLiBUaGlzIGFydGljbGUgbWF5IGJlIGNpdGVkIGFzIHRoZSAiTG9jYWwgR292ZXJubWVu dApSZWNvcmRzIExhdyIuCgogIFMgIDU3LjE3LiBEZWZpbml0aW9ucy4gV2hlcmV2ZXIgdXNl ZCBpbiB0aGlzIGFydGljbGUsIHRoZSBmb2xsb3dpbmcgdGVybXMKc2hhbGwgaGF2ZSB0aGUg cmVzcGVjdGl2ZSBtZWFuaW5ncyBoZXJlaW5hZnRlciBzZXQgZm9ydGg6CiAgMS4gICJMb2Nh bCAgZ292ZXJubWVudCIgIG1lYW5zICBhbnkgIGNvdW50eSwgIGNpdHksIHRvd24sIHZpbGxh Z2UsIHNjaG9vbApkaXN0cmljdCwgYm9hcmQgb2YgY29vcGVyYXRpdmUgZWR1Y2F0aW9uYWwg c2VydmljZXMsIGRpc3RyaWN0ICBjb3Jwb3JhdGlvbiwKcHVibGljIGJlbmVmaXQgY29ycG9y YXRpb24sIHB1YmxpYyBjb3Jwb3JhdGlvbiwgb3Igb3RoZXIgZ292ZXJubWVudCBjcmVhdGVk CnVuZGVyIHN0YXRlIGxhdyB0aGF0IGlzIG5vdCBhIHN0YXRlIGRlcGFydG1lbnQsICBkaXZp c2lvbiwgIGJvYXJkLCAgYnVyZWF1LApjb21taXNzaW9uIG9yIG90aGVyIGFnZW5jeSwgaGVy ZXRvZm9yZSBvciBoZXJlYWZ0ZXIgZXN0YWJsaXNoZWQgYnkgbGF3LgogIDIuICJHb3Zlcm5p bmcgYm9keSIgbWVhbnMgdGhlIHRvd24gYm9hcmQsIHZpbGxhZ2UgYm9hcmQgb2YgdHJ1c3Rl ZXMsIGNpdHkKY291bmNpbCwgY291bnR5IGxlZ2lzbGF0dXJlIG9yIGJvYXJkIG9mIHN1cGVy dmlzb3JzLCBib2FyZCBvZiBlZHVjYXRpb24gIG9yCmJvYXJkICBvZiB0cnVzdGVlcyBvZiBh IHNjaG9vbCBkaXN0cmljdCBvciBib2FyZCBvZiBjb29wZXJhdGl2ZSBlZHVjYXRpb25hbApz ZXJ2aWNlcywgYm9hcmQgb2YgZmlyZSBjb21taXNzaW9uZXJzIG9yIG90aGVyIGJvZHkgYXV0 aG9yaXplZCAgYnkgIGxhdyAgdG8KZ292ZXJuIHRoZSBhZmZhaXJzIG9mIGEgbG9jYWwgZ292 ZXJubWVudC4KICAzLiAgIkxvY2FsICBvZmZpY2VyIiBzaGFsbCBtZWFuIGFuZCBpbmNsdWRl IGEgbG9jYWwgb2ZmaWNlciBhcyBkZWZpbmVkIGluCnNlY3Rpb24gdHdvIG9mIHRoZSBwdWJs aWMgb2ZmaWNlcnMgbGF3IGFuZCBhbnkgb2ZmaWNlciBvZiBhIHB1YmxpYyAgYmVuZWZpdApj b3Jwb3JhdGlvbi4KICA0LiAgICJSZWNvcmQiICAgbWVhbnMgICBhbnkgICBib29rLCAgcGFw ZXIsICBtYXAsICBwaG90b2dyYXBoLCAgb3IgIG90aGVyCmluZm9ybWF0aW9uLXJlY29yZGlu ZyAgIGRldmljZSwgICByZWdhcmRsZXNzICAgb2YgICAgcGh5c2ljYWwgICAgZm9ybSAgICBv cgpjaGFyYWN0ZXJpc3RpYywgIHRoYXQgaXMgbWFkZSwgcHJvZHVjZWQsIGV4ZWN1dGVkLCBv ciByZWNlaXZlZCBieSBhbnkgbG9jYWwKZ292ZXJubWVudCBvciBvZmZpY2VyIHRoZXJlb2Yg cHVyc3VhbnQgdG8gbGF3IG9yICBpbiAgY29ubmVjdGlvbiAgd2l0aCAgdGhlCnRyYW5zYWN0 aW9uICBvZiAgcHVibGljIGJ1c2luZXNzLiBSZWNvcmQgYXMgdXNlZCBoZXJlaW4gc2hhbGwg bm90IGJlIGRlZW1lZAp0byBpbmNsdWRlIGxpYnJhcnkgbWF0ZXJpYWxzLCBleHRyYSBjb3Bp ZXMgb2YgZG9jdW1lbnRzICBjcmVhdGVkICBvbmx5ICBmb3IKY29udmVuaWVuY2Ugb2YgcmVm ZXJlbmNlLCBhbmQgc3RvY2tzIG9mIHB1YmxpY2F0aW9ucy4KICA1LiAgIlJldGVudGlvbiAg cGVyaW9kIiBtZWFucyB0aGUgbWluaW11bSBsZW5ndGggb2YgdGltZSB0aGF0IG11c3QgZWxh cHNlCmJlZm9yZSBhIHJlY29yZCBpcyBlbGlnaWJsZSBmb3IgZGlzcG9zaXRpb24uCiAgNi4g ICJSZWNvcmRzICByZXRlbnRpb24gIGFuZCAgZGlzcG9zaXRpb24gc2NoZWR1bGUiIG1lYW5z IGEgbGlzdCBvciBvdGhlcgppbnN0cnVtZW50IGRlc2NyaWJpbmcgcmVjb3JkcyBhbmQgdGhl aXIgcmV0ZW50aW9uIHBlcmlvZHMgd2hpY2ggIGlzICBpc3N1ZWQKYnkgdGhlIGNvbW1pc3Np b25lciBvZiBlZHVjYXRpb24uCiAgNy4gICJEaXNwb3NpdGlvbiIgIG1lYW5zICB0aGUgIGRp c3Bvc2FsIG9mIGEgcmVjb3JkIGJ5IGRlc3RydWN0aW9uLCBzYWxlLApnaWZ0LCB0cmFuc2Zl ciB0byB0aGUgbG9jYWwgZ292ZXJubWVudCBhcmNoaXZlcywgIG9yICBieSAgb3RoZXIgIGF1 dGhvcml6ZWQKbWVhbnMuCgogIFMgIDU3LjE5LiAgTG9jYWwgIGdvdmVybm1lbnQgcmVjb3Jk cyBtYW5hZ2VtZW50IHByb2dyYW0uIFRoZSBnb3Zlcm5pbmcKYm9keSwgYW5kIHRoZSBjaGll ZiBleGVjdXRpdmUgb2ZmaWNpYWwgd2hlcmUgb25lIGV4aXN0cywgIHNoYWxsICBwcm9tb3Rl CmFuZCAgc3VwcG9ydCAgYSAgcHJvZ3JhbSAgZm9yICB0aGUgIG9yZGVybHkgIGFuZCBlZmZp Y2llbnQgbWFuYWdlbWVudCBvZgpyZWNvcmRzLCBpbmNsdWRpbmcgdGhlIGlkZW50aWZpY2F0 aW9uIGFuZCBhcHByb3ByaWF0ZSBhZG1pbmlzdHJhdGlvbiAgb2YKcmVjb3JkcyB3aXRoIGVu ZHVyaW5nIHZhbHVlIGZvciBoaXN0b3JpY2FsIG9yIG90aGVyIHJlc2VhcmNoLiBFYWNoIGxv Y2FsCmdvdmVybm1lbnQgIHNoYWxsICBoYXZlICBvbmUgIG9mZmljZXIgIHdobyAgaXMgIGRl c2lnbmF0ZWQgIGFzICAgcmVjb3JkcwptYW5hZ2VtZW50IG9mZmljZXIuIFRoaXMgb2ZmaWNl ciBzaGFsbCBjb29yZGluYXRlIHRoZSBkZXZlbG9wbWVudCBvZiBhbmQKb3ZlcnNlZSBzdWNo IHByb2dyYW0gYW5kIHNoYWxsIGNvb3JkaW5hdGUgbGVnYWwgIGRpc3Bvc2l0aW9uLCAgaW5j bHVkaW5nCmRlc3RydWN0aW9uICBvZiAgb2Jzb2xldGUgcmVjb3Jkcy4gSW4gdG93bnMsIHRo ZSB0b3duIGNsZXJrIHNoYWxsIGJlIHRoZQpyZWNvcmRzIG1hbmFnZW1lbnQgb2ZmaWNlci4g SW4gZmlyZSBkaXN0cmljdHMsICB0aGUgIGRpc3RyaWN0ICBzZWNyZXRhcnkKc2hhbGwgIGJl IHRoZSByZWNvcmRzIG1hbmFnZW1lbnQgb2ZmaWNlci4gSW4gdmlsbGFnZXMsIHRoZSB2aWxs YWdlIGNsZXJrCnNoYWxsIGJlIHRoZSByZWNvcmRzIG1hbmFnZW1lbnQgb2ZmaWNlci4gSW4g b3RoZXIgdW5pdHMgIG9mICBnb3Zlcm5tZW50LApleGNlcHQgIHdoZXJlICB0aGUgIGdvdmVy bmluZyAgYm9keSAgc2hhbGwgIGhhdmUgIGVuYWN0ZWQgYSBsb2NhbCBsYXcgb3IKb3JkaW5h bmNlIGVzdGFibGlzaGluZyBhIHJlY29yZHMgbWFuYWdlbWVudCBwcm9ncmFtICBhbmQgIGRl c2lnbmF0aW5nICBhCnJlY29yZHMgIG1hbmFnZW1lbnQgIG9mZmljZXIgIHByaW9yICB0byB0 aGUgZGF0ZSB0aGF0IHRoaXMgYXJ0aWNsZSBzaGFsbAp0YWtlIGVmZmVjdCwgdGhlICBjaGll ZiAgZXhlY3V0aXZlICBvZmZpY2lhbCAgc2hhbGwgIGRlc2lnbmF0ZSAgYSAgbG9jYWwKb2Zm aWNlciB0byBiZSByZWNvcmRzIG1hbmFnZW1lbnQgb2ZmaWNlciwgc3ViamVjdCB0byB0aGUg YXBwcm92YWwgb2YgdGhlCmdvdmVybmluZyBib2R5LgoKICBTICA1Ny4yMS4gIExvY2FsIGdv dmVybm1lbnQgcmVjb3JkcyBhZHZpc29yeSBjb3VuY2lsLiBUaGUgY29tbWlzc2lvbmVyCm9m IGVkdWNhdGlvbiBzaGFsbCBhcHBvaW50IGEgbG9jYWwgZ292ZXJubWVudCByZWNvcmRzICBh ZHZpc29yeSAgY291bmNpbApjb25zaXN0aW5nICAgb2YgICByZXByZXNlbnRhdGl2ZXMgICBv ZiAgbG9jYWwgIGdvdmVybm1lbnQgIGFzc29jaWF0aW9ucywKaGlzdG9yaWFucywgdGhlIGNo aWVmIGFkbWluaXN0cmF0aXZlICBqdWRnZSwgIHRoZSAgY29tbWlzc2lvbmVyICBvZiAgdGhl CmRlcGFydG1lbnQgIG9mICByZWNvcmRzIGFuZCBpbmZvcm1hdGlvbiBzZXJ2aWNlcyBvZiB0 aGUgY2l0eSBvZiBOZXcgWW9yawpvciBpdHMgc3VjY2Vzc29yIGFnZW5jeSwgb3RoZXIgdXNl cnMgb2YgbG9jYWwgIGdvdmVybm1lbnQgIHJlY29yZHMsICBhbmQKb3RoZXIgIGNpdGl6ZW5z LiAgVGhlICBjaXR5ICBjbGVyayAgb2YgIHRoZSAgY2l0eSBvZiBOZXcgWW9yayBzaGFsbCBi ZSBhCm5vbi12b3RpbmcgbWVtYmVycyBvZiBzdWNoIGFkdmlzb3J5IGNvdW5jaWwuICBUaGUg Y291bmNpbCAgc2hhbGwgIGFkdmlzZQp0aGUgIGNvbW1pc3Npb25lciAgb2YgIGVkdWNhdGlv biAgY29uY2VybmluZyAgbG9jYWwgIGdvdmVybm1lbnQgIHJlY29yZHMKcG9saWNpZXMgYW5k IHByb2NlZHVyZXMsIHN0YXRlIHNlcnZpY2VzIGFuZCBmaW5hbmNpYWwgc3VwcG9ydCBuZWVk ZWQgIHRvCmFzc2lzdCAgb3IgIGFkdmlzZSAgbG9jYWwgb2ZmaWNpYWxzLCBhbmQgcmVndWxh dGlvbnMgcGVydGFpbmluZyB0byBsb2NhbApnb3Zlcm5tZW50IHJlY29yZHMsIGFuZCBncmFu dHMgZm9yIGxvY2FsIGdvdmVybm1lbnQgIHJlY29yZHMgIG1hbmFnZW1lbnQKaW1wcm92ZW1l bnQgIHB1cnN1YW50ICB0byAgc2VjdGlvbiAgNTcuMzUgIG9mIHRoaXMgY2hhcHRlci4gVGhl IGFkdmlzb3J5CmNvdW5jaWwgc2hhbGwgcHJlcGFyZSBhbiBpbml0aWFsIHJlcG9ydCBvbiB0 aGUgYWJvdmUgbWF0dGVycyBieSBEZWNlbWJlcgpmaXJzdCwgIG5pbmV0ZWVuIGh1bmRyZWQg ZWlnaHR5LXNldmVuIHRvIGJlIHByb3ZpZGVkIHRvIHRoZSBjb21taXNzaW9uZXIKb2YgIGVk dWNhdGlvbiwgIHRoZSAgZ292ZXJub3IsICBhbmQgIGFwcHJvcHJpYXRlICAgY29tbWl0dGVl cyAgIG9mICAgdGhlCmxlZ2lzbGF0dXJlLiAgICBUaGUgIGNvbW1pc3Npb25lciAgb2YgIGVk dWNhdGlvbiAgc2hhbGwgIG5vdCAgcHJvbXVsZ2F0ZQpyZWd1bGF0aW9ucyBmb3IgdGhlIGFk bWluaXN0cmF0aW9uIGFuZCBtYWludGVuYW5jZSBvZiAgbG9jYWwgIGdvdmVybm1lbnQKcmVj b3JkcyAgYmVmb3JlICBKdWx5ICBmaXJzdCwgIG5pbmV0ZWVuIGh1bmRyZWQgZWlnaHR5LWVp Z2h0IGV4Y2VwdCB3aXRoCnByaW9yIGNvbnN1bHRhdGlvbiB3aXRoIGFuZCByZXZpZXcgYnkg dGhlIGFkdmlzb3J5IGNvdW5jaWwuCgogIFMgIDU3LjIzLiAgT3ZlcnNpZ2h0ICBhbmQgIGFk dmlzb3J5ICBzZXJ2aWNlcy4gIDEuICBJdCAgc2hhbGwgIGJlICB0aGUKcmVzcG9uc2liaWxp dHkgIG9mICB0aGUgIGNvbW1pc3Npb25lciAgb2YgIGVkdWNhdGlvbiAgdG8gIGFkdmlzZSAg IGxvY2FsCmdvdmVybm1lbnRzICBvbiAgcGxhbm5pbmcgIGFuZCAgYWRtaW5pc3RlcmluZyBw cm9ncmFtcyBmb3IgdGhlIGNyZWF0aW9uLAptYWludGVuYW5jZSwgcHJlc2VydmF0aW9uLCBy ZXByb2R1Y3Rpb24sIHJldGVudGlvbiwgYW5kICBkaXNwb3NpdGlvbiAgb2YKdGhlaXIgIHJl Y29yZHM7ICB0byAgYWR2aXNlICBsb2NhbCAgZ292ZXJubWVudHMgIG9uICB0aGUgIGRldmVs b3BtZW50IG9mCm1pY3JvZ3JhcGhpY3Mgc3lzdGVtcywgYXV0b21hdGVkICBkYXRhICBwcm9j ZXNzaW5nICBzeXN0ZW1zLCAgYW5kICBvdGhlcgpzeXN0ZW1zICB0aGF0IHJlbHkgb24gdGVj aG5vbG9neSB0byBjcmVhdGUsIHN0b3JlLCBtYW5hZ2UsIGFuZCByZXByb2R1Y2UKaW5mb3Jt YXRpb24gIG9yICByZWNvcmRzOyAgYW5kICB0byAgYWR2aXNlICBsb2NhbCAgZ292ZXJubWVu dHMgIG9uICAgdGhlCnByZXNlcnZhdGlvbiAgYW5kICB1c2UgIG9mIHZpdGFsIHJlY29yZHMg YW5kIHJlY29yZHMgd2l0aCBlbmR1cmluZyB2YWx1ZQpmb3IgaGlzdG9yaWNhbCBvciBvdGhl ciByZXNlYXJjaCBwdXJwb3Nlcy4KICAyLiAgIFRoZSAgIGNvbW1pc3Npb25lciAgIG9mICBl ZHVjYXRpb24gIGlzICBhdXRob3JpemVkICB0byAgZXN0YWJsaXNoCnJlcXVpcmVtZW50cyBm b3IgIHRoZSAgcHJvcGVyICBjcmVhdGlvbiwgIHByZXNlcnZhdGlvbiwgIG1hbmFnZW1lbnQg IGFuZApwcm90ZWN0aW9uICBvZiAgcmVjb3JkcywgIGFuZCAgc2hhbGwgIGRldmVsb3AgIHN0 YXRld2lkZSBwbGFucyB0byBlbnN1cmUKcHJlc2VydmF0aW9uIG9mIGFkZXF1YXRlIGRvY3Vt ZW50YXRpb24gb2YgdGhlIGZ1bmN0aW9ucywgIHNlcnZpY2VzLCAgYW5kCmhpc3RvcmljYWwg ZGV2ZWxvcG1lbnQgb2YgbG9jYWwgZ292ZXJubWVudHMuCiAgMy4gICBUaGUgICBjb21taXNz aW9uZXIgIG9mICBlZHVjYXRpb24gIGlzICBhdXRob3JpemVkICB0byAgcHJvbXVsZ2F0ZQpy ZWd1bGF0aW9ucyB0byBpbXBsZW1lbnQgdGhlIHByb3Zpc2lvbnMgb2YgdGhpcyBhcnRpY2xl IHdpdGggYWR2aWNlIGZyb20KdGhlIGxvY2FsIGdvdmVybm1lbnQgcmVjb3JkcyBhZHZpc29y eSBjb3VuY2lsLgoKICBTICA1Ny4yNS4gIFJlY29yZHMgIHJldGVudGlvbiAgYW5kICBkaXNw b3NpdGlvbi4gIDEuICBJdCAgc2hhbGwgYmUgdGhlCnJlc3BvbnNpYmlsaXR5IG9mIGV2ZXJ5 IGxvY2FsIG9mZmljZXIgdG8gbWFpbnRhaW4gcmVjb3JkcyB0byAgYWRlcXVhdGVseQpkb2N1 bWVudCAgdGhlICB0cmFuc2FjdGlvbiAgb2YgIHB1YmxpYyAgYnVzaW5lc3MgIGFuZCAgdGhl ICBzZXJ2aWNlcyBhbmQKcHJvZ3JhbXMgZm9yIHdoaWNoIHN1Y2ggb2ZmaWNlciAgaXMgIHJl c3BvbnNpYmxlOyAgdG8gIHJldGFpbiAgYW5kICBoYXZlCmN1c3RvZHkgIG9mICBzdWNoICBy ZWNvcmRzIGZvciBzbyBsb25nIGFzIHRoZSByZWNvcmRzIGFyZSBuZWVkZWQgZm9yIHRoZQpj b25kdWN0IG9mIHRoZSBidXNpbmVzcyAgb2YgIHRoZSAgb2ZmaWNlOyAgdG8gIGFkZXF1YXRl bHkgIHByb3RlY3QgIHN1Y2gKcmVjb3JkczsgIHRvICBjb29wZXJhdGUgIHdpdGggIHRoZSBs b2NhbCBnb3Zlcm5tZW50YHMgcmVjb3JkcyBtYW5hZ2VtZW50Cm9mZmljZXIgb24gcHJvZ3Jh bXMgZm9yIHRoZSBvcmRlcmx5IGFuZCBlZmZpY2llbnQgbWFuYWdlbWVudCBvZiAgcmVjb3Jk cwppbmNsdWRpbmcgICBpZGVudGlmaWNhdGlvbiAgIGFuZCAgbWFuYWdlbWVudCAgb2YgIGlu YWN0aXZlICByZWNvcmRzICBhbmQKaWRlbnRpZmljYXRpb24gYW5kIHByZXNlcnZhdGlvbiBv ZiByZWNvcmRzIG9mIGVuZHVyaW5nIHZhbHVlOyB0byBkaXNwb3NlCm9mICByZWNvcmRzIGlu IGFjY29yZGFuY2Ugd2l0aCBsZWdhbCByZXF1aXJlbWVudHM7IGFuZCB0byBwYXNzIG9uIHRv IGhpcwpzdWNjZXNzb3IgcmVjb3JkcyBuZWVkZWQgZm9yIHRoZSBjb250aW51aW5nIGNvbmR1 Y3Qgb2YgYnVzaW5lc3MgIG9mICB0aGUKb2ZmaWNlLiAgSW4gIHRvd25zLCAgcmVjb3JkcyAg bm8gIGxvbmdlciAgbmVlZGVkICBmb3IgdGhlIGNvbmR1Y3Qgb2YgdGhlCmJ1c2luZXNzIG9m IHRoZSBvZmZpY2Ugc2hhbGwgYmUgdHJhbnNmZXJyZWQgdG8gdGhlIGN1c3RvZHkgb2YgIHRo ZSAgdG93bgpjbGVyayBmb3IgdGhlaXIgc2FmZWtlZXBpbmcgYW5kIHVsdGltYXRlIGRpc3Bv c2FsLgoyLiAgTm8gIGxvY2FsICBvZmZpY2VyICBzaGFsbCAgZGVzdHJveSwgc2VsbCBvciBv dGhlcndpc2UgZGlzcG9zZSBvZiBhbnkKcHVibGljIHJlY29yZCB3aXRob3V0IHRoZSBjb25z ZW50IG9mIHRoZSBjb21taXNzaW9uZXIgb2YgZWR1Y2F0aW9uLiAgVGhlCmNvbW1pc3Npb25l ciAgb2YgIGVkdWNhdGlvbiAgc2hhbGwsICBhZnRlciBjb25zdWx0YXRpb24gd2l0aCBvdGhl ciBzdGF0ZQphZ2VuY2llcyBhbmQgd2l0aCAgbG9jYWwgIGdvdmVybm1lbnQgIG9mZmljZXJz LCAgZGV0ZXJtaW5lICB0aGUgIG1pbmltdW0KbGVuZ3RoICBvZiAgdGltZSAgdGhhdCByZWNv cmRzIG5lZWQgdG8gYmUgcmV0YWluZWQuIFN1Y2ggY29tbWlzc2lvbmVyIGlzCmF1dGhvcml6 ZWQgdG8gZGV2ZWxvcCwgYWRvcHQgYnkgIHJlZ3VsYXRpb24sICBpc3N1ZSAgYW5kICBkaXN0 cmlidXRlICB0bwpsb2NhbCAgIGdvdmVybm1lbnRzICAgcmVjb3JkcyAgIHJldGVudGlvbiAg IGFuZCAgIGRpc3Bvc2l0aW9uICBzY2hlZHVsZXMKZXN0YWJsaXNoaW5nIG1pbmltdW0gbGVn YWwgIHJldGVudGlvbiAgcGVyaW9kcy4gIFRoZSAgaXNzdWFuY2UgIG9mICBzdWNoCnNjaGVk dWxlcyAgc2hhbGwgIGNvbnN0aXR1dGUgIGZvcm1hbCAgY29uc2VudCAgYnkgIHRoZSAgY29t bWlzc2lvbmVyICBvZgplZHVjYXRpb24gdG8gdGhlIGRpc3Bvc2l0aW9uIG9mIHJlY29yZHMg dGhhdCAgaGF2ZSAgYmVlbiAgbWFpbnRhaW5lZCAgaW4KZXhjZXNzICBvZiAgdGhlICByZXRl bnRpb24gIHBlcmlvZHMgIHNldCAgZm9ydGggIGluICB0aGUgc2NoZWR1bGVzLiBTdWNoCnNj aGVkdWxlcyBzaGFsbCBiZSByZXZpZXdlZCBhbmQgYWRvcHRlZCAgYnkgIGZvcm1hbCAgcmVz b2x1dGlvbiAgb2YgIHRoZQpnb3Zlcm5pbmcgIGJvZHkgIG9mICBhICBsb2NhbCBnb3Zlcm5t ZW50IHByaW9yIHRvIHRoZSBkaXNwb3NpdGlvbiBvZiBhbnkKcmVjb3Jkcy4gSWYgYW55IGxh dyBzcGVjaWZpY2FsbHkgcHJvdmlkZXMgYSByZXRlbnRpb24gcGVyaW9kIGxvbmdlciB0aGFu CnRoYXQgIGVzdGFibGlzaGVkICBieSAgdGhlICByZWNvcmRzICByZXRlbnRpb24gIGFuZCBk aXNwb3NpdGlvbiBzY2hlZHVsZQplc3RhYmxpc2hlZCBoZXJlaW4gdGhlIHJldGVudGlvbiBw ZXJpb2QgZXN0YWJsaXNoZWQgYnkgIHN1Y2ggIGxhdyAgc2hhbGwKZ292ZXJuLgoKICBTICA1 Ny4yNy4gIFJlY29yZHMgIHdpdGggIHN0YXRld2lkZSAgc2lnbmlmaWNhbmNlLiAgVGhlICBj b21taXNzaW9uZXIgIG9mCmVkdWNhdGlvbiBpcyBhdXRob3JpemVkIHRvIGRlc2lnbmF0ZSBw YXJ0aWN1bGFyICBsb2NhbCAgZ292ZXJubWVudCAgcmVjb3Jkcwpmb3IgcGVybWFuZW50IHJl dGVudGlvbiBiZWNhdXNlIG9mIHRoZWlyIGVuZHVyaW5nIHN0YXRld2lkZSBzaWduaWZpY2Fu Y2UuCgogIFMgIDU3LjI5LiAgUmVwcm9kdWN0aW9uICBvZiByZWNvcmRzIGFuZCBkaXNwb3Np dGlvbiBvZiB0aGUgb3JpZ2luYWxzLiBBbnkKbG9jYWwgb2ZmaWNlciBtYXkgcmVwcm9kdWNl IGFueSByZWNvcmQgaW4gaGlzIGN1c3RvZHkgIGJ5ICBtaWNyb3Bob3RvZ3JhcGh5Cm9yICAg b3RoZXIgICBtZWFucyAgdGhhdCAgYWNjdXJhdGVseSAgYW5kICBjb21wbGV0ZWx5ICByZXBy b2R1Y2VzICBhbGwgIHRoZQppbmZvcm1hdGlvbiBpbiB0aGUgcmVjb3JkLiBTdWNoIG9mZmlj aWFsIG1heSB0aGVuIGRpc3Bvc2Ugb2YgIHRoZSAgb3JpZ2luYWwKcmVjb3JkICBldmVuICB0 aG91Z2ggIGl0IGhhcyBub3QgbWV0IHRoZSBwcmVzY3JpYmVkIG1pbmltdW0gbGVnYWwgcmV0 ZW50aW9uCnBlcmlvZCwgcHJvdmlkZWQgdGhhdCB0aGUgcHJvY2VzcyBmb3IgcmVwcm9kdWN0 aW9uIGFuZCB0aGUgcHJvdmlzaW9ucyAgbWFkZQpmb3IgIHByZXNlcnZpbmcgYW5kIGV4YW1p bmluZyB0aGUgY29weSBtZWV0IHJlcXVpcmVtZW50cyBlc3RhYmxpc2hlZCBieSB0aGUKY29t bWlzc2lvbmVyIG9mIGVkdWNhdGlvbi4gU3VjaCBjb3B5IHNoYWxsIGJlICBkZWVtZWQgIHRv ICBiZSAgYW4gIG9yaWdpbmFsCnJlY29yZCAgZm9yIGFsbCBwdXJwb3NlcywgaW5jbHVkaW5n IGludHJvZHVjdGlvbiBhcyBldmlkZW5jZSBpbiBwcm9jZWVkaW5ncwpiZWZvcmUgYWxsIGNv dXJ0cyBhbmQgYWRtaW5pc3RyYXRpdmUgYWdlbmNpZXMuCgogIFMgNTcuMzEuIENvb3BlcmF0 aXZlIHJlY29yZHMgc3RvcmFnZSBhbmQgbWFuYWdlbWVudC4gQWxsIGxvY2FsIGdvdmVybm1l bnQKcmVjb3JkcyBzaGFsbCAgYmUgIGtlcHQgIGluICBzZWN1cmUgIGZhY2lsaXRpZXMgIG1h aW50YWluZWQgIGJ5ICB0aGUgIGxvY2FsCmdvdmVybm1lbnQgIHVubGVzcyB0aGUgY29uc2Vu dCBvZiB0aGUgY29tbWlzc2lvbmVyIG9mIGVkdWNhdGlvbiBpcyBvYnRhaW5lZAp0byB0aGVp ciB0cmFuc2ZlciBhbmQgc3RvcmFnZSBlbHNld2hlcmUuIEFueSBsb2NhbCBnb3Zlcm5tZW50 IG1heSBjb29wZXJhdGUKd2l0aCAgYW5vdGhlciAgbG9jYWwgIGdvdmVybm1lbnQgb3IgZ292 ZXJubWVudHMgZm9yIHRoZSBpbXByb3ZlZCBtYW5hZ2VtZW50CmFuZCBwcmVzZXJ2YXRpb24g b2YgcmVjb3JkcywgYW5kIG1heSBlbnRlciBpbnRvIGEgIGNvbnRyYWN0dWFsICBhcnJhbmdl bWVudApmb3Igc3VjaCBwdXJwb3Nlcy4KCiAgUyAgNTcuMzMuICBFeGNsdXNpb25zLiAgVGhl IHByb3Zpc2lvbnMgb2YgdGhpcyBhcnRpY2xlIHNoYWxsIG5vdCBhcHBseQp0bzoKICAxLiAg VGhlICByZWNvcmRzICBvZiBhbnkgY291cnQsIGV4Y2VwdCBhcyBwcm92aWRlZCBpbiBzZWN0 aW9uIDU3LjM1IG9mCnRoaXMgYXJ0aWNsZS4KICAyLiAgVGhlICByZWNvcmRzIG9mIGFueSBj aXR5IHdpdGggYSBwb3B1bGF0aW9uIG9mIG9uZSBtaWxsaW9uIG9yIG1vcmUsCmFuZCB0aGUg cmVjb3JkcyAgb2YgIGFueSAgY291bnR5ICBjb250YWluZWQgIHRoZXJlaW4sICBzbyAgbG9u ZyAgYXMgIHRoZQpkZXN0cnVjdGlvbiAgb2YgIHRoZSByZWNvcmRzIG9mIHN1Y2ggY2l0eSBv ciBjb3VudHkgc2hhbGwgYmUgY2FycmllZCBvdXQKaW4gIGFjY29yZGFuY2UgIHdpdGggIHRo ZSAgcHJvY2VkdXJlICBwcmVzY3JpYmVkICBieSAgYW55ICBleGlzdGluZyAgbGF3CmV4Y2x1 c2l2ZWx5IGFwcGxpY2FibGUgdG8gdGhlIGRlc3RydWN0aW9uIG9mIHRoZSByZWNvcmRzIG9m IHN1Y2ggY2l0eSBvcgpjb3VudHksIHByb3ZpZGVkIHRoYXQgc2VjdGlvbiA1Ny4zNSAgb2Yg IHRoaXMgIGFydGljbGUgIHNoYWxsICBhcHBseSAgdG8KZ3JhbnRzIGZvciBsb2NhbCBnb3Zl cm5tZW50IHJlY29yZHMgbWFuYWdlbWVudCBmb3Igc3VwcmVtZSBjb3VydCByZWNvcmRzCmlu IHRoZSBjdXN0b2R5IG9mIHRoZSBjb3VudGllcyBvZiBOZXcgWW9yaywgS2luZ3MsIFF1ZWVu cywgUmljaG1vbmQgIGFuZApCcm9ueCwgIGFuZCAgcmVjb3JkcyB1bmRlciB0aGUganVyaXNk aWN0aW9uIG9mIHRoZSBkZXBhcnRtZW50IG9mIHJlY29yZHMKYW5kIGluZm9ybWF0aW9uIHNl cnZpY2VzIG9mIHRoZSAgY2l0eSAgb2YgIE5ldyAgWW9yayAgb3IgIGl0cyAgc3VjY2Vzc29y CmFnZW5jeSwgYW5kIHJlY29yZHMgdW5kZXIgdGhlIGp1cmlzZGljdGlvbiBvZiB0aGUgY2l0 eSBjbGVyayBvZiB0aGUgY2l0eQpvZiBOZXcgWW9yay4gSWYgYW55IHN1Y2ggbGF3IHNoYWxs IGJlIGFtZW5kZWQgYnkgIGxvY2FsICBsYXcgIGFmdGVyICB0aGUKZmlyc3QgIGRheSAgb2Yg IEp1bHksIG5pbmV0ZWVuIGh1bmRyZWQgZmlmdHktb25lLCB0aGUgcHJvdmlzaW9ucyBvZiB0 aGlzCnNlY3Rpb24gc2hhbGwgbm90IGFwcGx5IHRvICB0aGUgIGRlc3RydWN0aW9uICBvZiAg c3VjaCAgcmVjb3JkcyAgaWYgIHRoZQpwcm9jZWR1cmVzICB0aGVyZWZvciAgZXN0YWJsaXNo ZWQgIGJ5IHN1Y2ggbGF3LCBhcyBhbWVuZGVkIGJ5IGxvY2FsIGxhdywKc2hhbGwgYmUgYWNj ZXB0YWJsZSB0byB0aGUgY29tbWlzc2lvbmVyIG9mIGVkdWNhdGlvbi4KICAzLiAgVGhlICBy ZWNvcmRzICBvZiAgYW55ICBzdGF0ZSAgZGVwYXJ0bWVudCwgZGl2aXNpb24sIGJvYXJkLCBi dXJlYXUsCmNvbW1pc3Npb24gb3Igb3RoZXIgYWdlbmN5LgoKICBTICA1Ny4zNS4gIEdyYW50 cyBmb3IgbG9jYWwgZ292ZXJubWVudCByZWNvcmRzIG1hbmFnZW1lbnQgaW1wcm92ZW1lbnQu CjEuIFRoZSBjb21taXNzaW9uZXIgb2YgIGVkdWNhdGlvbiwgIHVwb24gIGNvbnN1bHRhdGlv biAgd2l0aCAgdGhlICBsb2NhbApnb3Zlcm5tZW50ICByZWNvcmRzICBhZHZpc29yeSBjb3Vu Y2lsLCBpcyBhdXRob3JpemVkIHRvIGF3YXJkIGdyYW50cyBmb3IKcmVjb3JkcyBtYW5hZ2Vt ZW50IGltcHJvdmVtZW50IGFzIHNwZWNpZmllZCBpbiAgc2VjdGlvbnMgIDU3LjE5LCAgNTcu MjUsCjU3LjI5ICBhbmQgNTcuMzEgb2YgdGhpcyBjaGFwdGVyIHRvIGluZGl2aWR1YWwgbG9j YWwgZ292ZXJubWVudHMsIGdyb3VwcwpvZiBjb29wZXJhdGluZyBsb2NhbCBnb3Zlcm5tZW50 cyBhbmQgbG9jYWwgZ292ZXJubWVudHMgdGhhdCBoYXZlIGN1c3RvZHkKb2YgIGNvdXJ0ICBy ZWNvcmRzICBhbmQgIGZvciAgcmVjb3JkcyBtYW5hZ2VtZW50IGltcHJvdmVtZW50IGZvciBz dXByZW1lCmNvdXJ0IHJlY29yZHMgaW4gdGhlIGN1c3RvZHkgb2YgdGhlIGNvdW50aWVzIG9m IE5ldyBZb3JrLCBLaW5ncywgUXVlZW5zLApSaWNobW9uZCwgIGFuZCAgQnJvbnggIGFuZCAg aW4gYWNjb3JkYW5jZSB3aXRoIHN1YmRpdmlzaW9uIHR3by1hIG9mIHRoaXMKc2VjdGlvbiwg cmVjb3JkcyB1bmRlciB0aGUganVyaXNkaWN0aW9uIG9mIHRoZSBkZXBhcnRtZW50IG9mIHJl Y29yZHMgYW5kCmluZm9ybWF0aW9uIHNlcnZpY2VzIG9mIHRoZSBjaXR5IG9mIE5ldyBZb3Jr IG9yIGl0cyBzdWNjZXNzb3IgYWdlbmN5IGFuZAp0aGUgY2l0eSBjbGVyayBvZiB0aGUgY2l0 eSBvZiBOZXcgWW9yay4KICAyLiAgIFRoZSAgIGNvbW1pc3Npb25lciAgIG9mICBlZHVjYXRp b24gIHNoYWxsICBwcm9tdWxnYXRlICBydWxlcyAgYW5kCnJlZ3VsYXRpb25zIHNldHRpbmcg Zm9ydGggY3JpdGVyaWEgYW5kICBwcm9jZWR1cmVzICBuZWNlc3NhcnkgIHRvICBhd2FyZApn cmFudHMgZm9yIHJlY29yZHMgbWFuYWdlbWVudCBpbXByb3ZlbWVudCBmcm9tIG1vbmllcyBh dmFpbGFibGUgZm9yIHRoaXMKcHVycG9zZSBpbiB0aGUgIE5ldyAgWW9yayAgc3RhdGUgIGxv Y2FsICBnb3Zlcm5tZW50ICByZWNvcmRzICBtYW5hZ2VtZW50CmltcHJvdmVtZW50ICBmdW5k LCBlc3RhYmxpc2hlZCBwdXJzdWFudCB0byBzZWN0aW9uIG5pbmV0eS1zZXZlbi1pIG9mIHRo ZQpzdGF0ZSBmaW5hbmNlIGxhdy4KICBTdWNoIGNyaXRlcmlhIHNoYWxsIGluY2x1ZGUgYnV0 IG5vdCBiZSBsaW1pdGVkIHRvOgogIChhKSAgdGhlICBkZXZlbG9wbWVudCBieSB0aGUgYXBw bGljYW50IG9mIGEgd3JpdHRlbiBwbGFuIGZvciBhIHJlY29yZHMKbWFuYWdlbWVudCBwcm9n cmFtOwogIChiKSB0aGUgY29uZGl0aW9uIG9mIHRoZSByZWNvcmRzIG9mIHRoZSBhcHBsaWNh bnQ7CiAgKGMpICB0aGUgZ2VvZ3JhcGhpYyBsb2NhdGlvbiBvZiB0aGUgYXBwbGljYW50IHNv IGFzIHRvIHByb3ZpZGUsIHRvIHRoZQpleHRlbnQgcHJhY3RpY2FibGUsIGVxdWl0YWJsZSBn ZW9ncmFwaGljIGRpc3RyaWJ1dGlvbiBvZiB0aGUgZ3JhbnRzOwogIChkKSAgdGhlICBwYXJ0 aWN1bGFyICBkZXNpZ24gIG9mICB0aGUgIGFwcGxpY2FudGBzICByZWNvcmRzIG1hbmFnZW1l bnQKcHJvZ3JhbTsgYW5kCiAgKGUpICB0aGUgIGFwcGxpY2FudGBzICBhcnJhbmdlbWVudHMg IGZvciAgY29vcGVyYXRpdmUgYWN0aXZpdGllcyBhbW9uZwpsb2NhbCBnb3Zlcm5tZW50cyBm b3IgYSByZWNvcmRzIG1hbmFnZW1lbnQgcHJvZ3JhbS4KICAyLWEgIChhKSBOb3R3aXRoc3Rh bmRpbmcgdGhlIHByb3Zpc2lvbiBvZiBwYXJhZ3JhcGggKGMpIG9mIHN1YmRpdmlzaW9uCnR3 byBvZiB0aGlzIHNlY3Rpb24sIHRoZSBjb21taXNzaW9uZXIgIG9mICBlZHVjYXRpb24gIG1h eSAgYXdhcmQgIGdyYW50cwp0b3RhbGluZyAgaW4gdGhlIGFnZ3JlZ2F0ZSBubyBtb3JlIHRo YW4gb25lIG1pbGxpb24gZG9sbGFycyBhbm51YWxseSBmb3IKcmVjb3JkcyAgbWFuYWdlbWVu dCAgaW1wcm92ZW1lbnQgIHRvICB0aGUgIGRlcGFydG1lbnQgIG9mICByZWNvcmRzICAgYW5k CmluZm9ybWF0aW9uIHNlcnZpY2VzIG9mIHRoZSBjaXR5IG9mIE5ldyBZb3JrIG9yIGl0cyBz dWNjZXNzb3IgYWdlbmN5IGFuZAp0aGUgY2l0eSBjbGVyayBvZiB0aGUgY2l0eSBvZiBOZXcg WW9yayBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIHByb3Zpc2lvbnMKb2YgdGhpcyBzdWJkaXZp c2lvbi4KICAoYikgIFRoZSAgZGVwYXJ0bWVudCAgb2YgIHJlY29yZHMgIGFuZCAgaW5mb3Jt YXRpb24gIHNlcnZpY2VzICBvciAgaXRzCnN1Y2Nlc3NvciBhZ2VuY3kgYW5kIHRoZSBjaXR5 IGNsZXJrIG9mIHRoZSBjaXR5IG9mIE5ldyBZb3JrIHNoYWxsIHN1Ym1pdAphcHBsaWNhdGlv bnMgIHRvICB0aGUgIGNvbW1pc3Npb25lciAgb2YgIGVkdWNhdGlvbiAgYXQgIHRoZSBzYW1l IHRpbWUgYXMKYXBwbGljYXRpb25zIHB1cnN1YW50IHRvIHN1YmRpdmlzaW9uIHR3byBvZiB0 aGlzIHNlY3Rpb24gYXJlIHJlcXVpcmVkIHRvCmJlICBzdWJtaXR0ZWQuICBUaGUgIGFwcGxp Y2F0aW9ucyBzaGFsbCBzZXQgZm9ydGggdGhlIHJlY29yZHMgbWFuYWdlbWVudAppbXByb3Zl bWVudCAgcHJvamVjdHMgIHByb3Bvc2VkICBieSAgdGhlICBkZXBhcnRtZW50ICBvZiAgIHJl Y29yZHMgICBhbmQKaW5mb3JtYXRpb24gIHNlcnZpY2VzICBvciBpdHMgc3VjY2Vzc29yIGFn ZW5jeSBhbmQgdGhlIGNpdHkgY2xlcmsgb2YgdGhlCmNpdHkgb2YgTmV3IFlvcmsgaXMgcHJp b3JpdHkgb3JkZXIgYW5kIHRoZSAgYW1vdW50ICByZXF1ZXN0ZWQgIGZvciAgZWFjaApwcm9q ZWN0LiAgUHJpb3JpdHkgIGFzc2lnbm1lbnQgIG9mICBlYWNoIHByb2plY3Qgc2hhbGwgYmUg YSBmYWN0b3IgdGFrZW4KaW50byBjb25zaWRlcmF0aW9uIGluIGFkZGl0aW9uIHRvIHRob3Nl IG91dGxpbmVkIGluIHN1YmRpdmlzaW9uICB0d28gIG9mCnRoaXMgc2VjdGlvbiB3aGVuIG1h a2luZyBncmFudCBhd2FyZHMuCiAgKGMpICBVcG9uICByZWNlaXB0IG9mIGdyYW50IG1vbmll cywgdGhlIGNvbW1pc3Npb25lciBvZiB0aGUgZGVwYXJ0bWVudApvZiByZWNvcmRzIGFuZCBp bmZvcm1hdGlvbiBzZXJ2aWNlcyBvciBpdHMgc3VjY2Vzc29yIGFnZW5jeSBhbmQgdGhlIGNp dHkKY2xlcmsgIG9mICB0aGUgIGNpdHkgIG9mIE5ldyBZb3JrIHNoYWxsIGRpcmVjdCB0aGUg ZGlzYnVyc2VtZW50IG9mIGdyYW50Cm1vbmllcyB0byBlYWNoIHByb2plY3QgZm9yIHdoaWNo IGEgZ3JhbnQgaGFzIGJlZW4gYXBwcm92ZWQuCiAgKGQpICBUaGUgIGNvbW1pc3Npb25lciAg b2YgIHRoZSAgZGVwYXJ0bWVudCBvZiByZWNvcmRzIGFuZCBpbmZvcm1hdGlvbgpzZXJ2aWNl cyBvciBpdHMgc3VjY2Vzc29yIGFnZW5jeSBhbmQgdGhlIGNpdHkgY2xlcmsgb2YgdGhlIGNp dHkgIG9mICBOZXcKWW9yayAgc2hhbGwsICBpbiAgYWRkaXRpb24gIHRvICBtb25pdG9yaW5n IHRoZSBwcm9ncmVzcyBvZiBhbmQgcHJvdmlkaW5nCnRlY2huaWNhbCBhc3Npc3RhbmNlIHRv ICBwcm9qZWN0cyAgcmVjZWl2aW5nICBhd2FyZHMgIHB1cnN1YW50ICB0byAgdGhpcwpzdWJk aXZpc2lvbiwgIHByZXBhcmUgYW5kIHN1Ym1pdCBwcm9ncmVzcyByZXBvcnRzIG9uIHN1Y2gg cHJvamVjdHMuIFN1Y2gKcmVwb3J0cyBzaGFsbCBiZSBhdCB0aGUgbGV2ZWwgb2YgIGRldGFp bCAgYW5kICBmcmVxdWVuY3kgIGNvbXBhcmFibGUgIHRvCnJlcG9ydHMgcmVxdWlyZWQgb2Yg b3RoZXIgbG9jYWwgZ292ZXJubWVudHMgcmVjZWl2aW5nIGF3YXJkcyBwdXJzdWFudCB0bwp0 aGlzIHNlY3Rpb24uCiAgMy4gIEFsbCAgbW9uaWVzICByZWNlaXZlZCAgYnkgIHRoZSBjb21t aXNzaW9uZXIgb2YgZWR1Y2F0aW9uIHVuZGVyIHRoZQpwcm92aXNpb25zIG9mIHRoZSB0aGly ZCB1bmRlc2lnbmF0ZWQgcGFyYWdyYXBoICBvZiAgc3ViZGl2aXNpb24gIChhKSAgb2YKc2Vj dGlvbiAgZWlnaHQgIHRob3VzYW5kICBlaWdodGVlbiwgIHN1YnBhcmFncmFwaCBiIG9mIHBh cmFncmFwaCBmb3VyIG9mCnN1YmRpdmlzaW9uIChhKSBvZiBzZWN0aW9uIGVpZ2h0IHRob3Vz YW5kIHR3ZW50eS1vbmUgYW5kIHN1YnBhcmFncmFwaCAgYgpvZiAgcGFyYWdyYXBoICBlbGV2 ZW4gIG9mICBzdWJkaXZpc2lvbiAgKGIpICBvZiAgc2VjdGlvbiAgZWlnaHQgdGhvdXNhbmQK dHdlbnR5LW9uZSBvZiB0aGUgY2l2aWwgcHJhY3RpY2UgbGF3IGFuZCBydWxlcywgIGFuZCAg c3ViZGl2aXNpb24gIGEgIG9mCnNlY3Rpb24gIDctNjA0IG9mIHRoZSBhZG1pbmlzdHJhdGl2 ZSBjb2RlIG9mIHRoZSBjaXR5IG9mIE5ldyBZb3JrLCBzaGFsbApiZSBkZXBvc2l0ZWQgYnkg dGhlIGNvbW1pc3Npb25lciBvZiBlZHVjYXRpb24gdG8gdGhlIGNyZWRpdCBvZiAgdGhlICBO ZXcKWW9yayAgIHN0YXRlICAgbG9jYWwgIGdvdmVybm1lbnQgIHJlY29yZHMgIG1hbmFnZW1l bnQgIGltcHJvdmVtZW50ICBmdW5kCmVzdGFibGlzaGVkIHB1cnN1YW50IHRvIHNlY3Rpb24g bmluZXR5LXNldmVuLWkgb2YgdGhlIHN0YXRlIGZpbmFuY2UgIGxhdwpieSB0aGUgdGVudGgg ZGF5IG9mIHRoZSBtb250aCBmb2xsb3dpbmcgcmVjZWlwdCBvZiBzdWNoIG1vbmllcy4KICA0 LiAgRWFjaCAgeWVhciAgdGhlICBOZXcgIFlvcmsgc3RhdGUgbG9jYWwgZ292ZXJubWVudCBy ZWNvcmRzIGFkdmlzb3J5CmNvdW5jaWwgc2hhbGwgcmV2aWV3IGFuZCBtYWtlIHJlY29tbWVu ZGF0aW9ucyBvbiBhIHByb3Bvc2VkICBvcGVyYXRpb25hbAphbmQgIGV4cGVuZGl0dXJlICBw bGFuICBmb3IgIHRoZSBOZXcgWW9yayBzdGF0ZSBsb2NhbCBnb3Zlcm5tZW50IHJlY29yZHMK bWFuYWdlbWVudCBpbXByb3ZlbWVudCBmdW5kIHByaW9yIHRvIGl0cyBhZG9wdGlvbiBieSB0 aGUgY29tbWlzc2lvbmVyIG9mCmVkdWNhdGlvbi4gIFRoZSBhbm51YWwgZXhwZW5kaXR1cmUg cGxhbiBzaGFsbCBiZSBzdWJqZWN0IHRvIHRoZSBhcHByb3ZhbApvZiB0aGUgZGlyZWN0b3Ig b2YgdGhlIGRpdmlzaW9uIG9mIHRoZSBidWRnZXQuCgogIFMgNTcuMzcuIFJlZ2lvbmFsIHJl Y29yZHMgb2ZmaWNlcy4gMS4gVGhlIGNvbW1pc3Npb25lciBvZiBlZHVjYXRpb24gaXMKYXV0 aG9yaXplZCB0byBlc3RhYmxpc2ggaW4gZWFjaCBqdWRpY2lhbCBkaXN0cmljdCwgZXhjZXB0 IE5ldyBZb3JrIGNpdHksCmEgIHJlZ2lvbmFsICByZWNvcmRzICBvZmZpY2UuICBJbiAgTmV3 ICBZb3JrICBjaXR5LCAgdGhlIGNvbW1pc3Npb25lciBvZgplZHVjYXRpb24gaXMgYXV0aG9y aXplZCB0byBlc3RhYmxpc2ggYSBzaW5nbGUgcmVnaW9uYWwgcmVjb3JkcyBvZmZpY2UgdG8K b3ZlcnNlZSAgcmVjb3JkcyBtYW5hZ2VtZW50IHByb2dyYW1zIGZvciBlbnRpdGllcyB3aXRo aW4gdGhlIGNpdHkgb2YgTmV3Cllvcmsgd2hvc2UgcmVjb3JkcyBhcmUgbm90IHVuZGVyIHRo ZSBqdXJpc2RpY3Rpb24gb2YgdGhlICBkZXBhcnRtZW50ICBvZgpyZWNvcmRzICBhbmQgIGlu Zm9ybWF0aW9uICBzZXJ2aWNlcyBvciBpdHMgc3VjY2Vzc29yIGFnZW5jeSBhbmQgdGhlIGNp dHkKY2xlcmsgb2YgdGhlIGNpdHkgb2YgTmV3IFlvcmsuCiAgMi4gICBUaGUgICByZWdpb25h bCAgIHJlY29yZHMgICBvZmZpY2VzICBzaGFsbCAgcHJvdmlkZSAgYWR2aXNvcnkgIGFuZApj b25zdWx0YXRpdmUgc2VydmljZXMgYW5kIHRlY2huaWNhbCBhc3Npc3RhbmNlIHRvIGxvY2Fs ICBnb3Zlcm5tZW50cyAgb24KcmVjb3JkcyAgbWFuYWdlbWVudCAgYW5kICB0aGUgIGFkbWlu aXN0cmF0aW9uICBvZiAgYXJjaGl2YWwgIHJlY29yZHMgYW5kCmFkZHJlc3MgcmVjb21tZW5k YXRpb25zIG9mIHRoZSBOZXcgWW9yayBzdGF0ZSBsb2NhbCAgZ292ZXJubWVudCAgcmVjb3Jk cwphZHZpc29yeSBjb3VuY2lsLgogIDMuICBUaGUgIGNvbW1pc3Npb25lciBvZiBlZHVjYXRp b24gaXMgYXV0aG9yaXplZCB0byBlbXBsb3kgc3BlY2lhbGlzdHMKaW4gcmVjb3JkcyBtYW5h Z2VtZW50LCBhcmNoaXZlcyAgYWRtaW5pc3RyYXRpb24gIGFuZCAgb3RoZXIgIHNwZWNpYWxp c3RzCm5lY2Vzc2FyeSAgdG8gcHJvdmlkZSBhZHZpc29yeSwgY29uc3VsdGF0aXZlIGFuZCB0 ZWNobmljYWwgYXNzaXN0YW5jZSB0bwpsb2NhbCBnb3Zlcm5tZW50cyBmcm9tIG1vbmllcyBh dmFpbGFibGUgZm9yIHRoaXMgcHVycG9zZSBpbiB0aGUgTmV3IFlvcmsKc3RhdGUgIGxvY2Fs IGdvdmVybm1lbnQgcmVjb3JkcyBtYW5hZ2VtZW50IGltcHJvdmVtZW50IGZ1bmQsIGVzdGFi bGlzaGVkCnB1cnN1YW50IHRvIHNlY3Rpb24gbmluZXR5LXNldmVuLWkgb2YgdGhlIHN0YXRl IGZpbmFuY2UgbGF3LgoKICBTICA1Ny4zOS4gUmVwb3J0aW5nIHJlcXVpcmVtZW50cy4gVGhl IGNvbW1pc3Npb25lciBvZiBlZHVjYXRpb24sIHdpdGggdGhlCmFkdmljZSBvZiB0aGUgTmV3 IFlvcmsgc3RhdGUgbG9jYWwgIGdvdmVybm1lbnQgIHJlY29yZHMgIGFkdmlzb3J5ICBjb3Vu Y2lsLApzaGFsbCAgcmVwb3J0ICBhbm51YWxseSAgb24gIG9yICBiZWZvcmUgTWFyY2ggZmly c3QgdG8gdGhlIGdvdmVybm9yIGFuZCB0aGUKbGVnaXNsYXR1cmUgb24gdGhlIHN0YXR1cyBv ZiBsb2NhbCBnb3Zlcm5tZW50IHJlY29yZHMgbWFuYWdlbWVudCwgaW5jbHVkaW5nCmEgIHJl cG9ydCAgb2YgIHJldmVudWVzICBhbmQgIGV4cGVuZGl0dXJlcyAgZnJvbSAgdGhlICBOZXcg WW9yayBzdGF0ZSBsb2NhbApnb3Zlcm5tZW50IHJlY29yZHMgbWFuYWdlbWVudCBpbXByb3Zl bWVudCBmdW5kIGZvciAgdGhlICBwcmV2aW91cyAgY2FsZW5kYXIKeWVhciBhbmQgYXBwcm9w cmlhdGUgcmVjb21tZW5kYXRpb25zLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU5ldyBZb3Jr IFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFsIEFmZmFpcnMKCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJVExFIFYKICAgICAgICAgICAgICAg ICAgIEFNRVJJQ0FOIE1VU0VVTSBPRiBOQVRVUkFMIEhJU1RPUlkKICAgICAgICAgICAgICAg ICAgICAgICAgICBQTEFORVRBUklVTSBBVVRIT1JJVFkKCgoKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS1OZXcgWW9yayBTdGF0ZSBDb25zb2xpZGF0ZWQgTGF3cwpBcnRzIGFuZCBDdWx0dXJhbCBB ZmZhaXJzCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJUSUNMRSA1OQogICAg ICAgICAgICAgICAgICAgQU1FUklDQU4gTVVTRVVNIE9GIE5BVFVSQUwgSElTVE9SWQogICAg ICAgICAgICAgICAgICAgICAgICAgIFBMQU5FVEFSSVVNIEFVVEhPUklUWQogU2VjdGlvbiA1 OS4wMS4gU2hvcnQgdGl0bGUuCiAgICAgICAgIDU5LjAzLiBEZWZpbml0aW9ucy4KICAgICAg ICAgNTkuMDUuIFRoZSAgQW1lcmljYW4gIE11c2V1bSAgb2YgIE5hdHVyYWwgIEhpc3Rvcnkg IFBsYW5ldGFyaXVtCiAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml0eS4KICAgICAgICAg NTkuMDcuIFBvd2VycyBvZiB0aGUgYXV0aG9yaXR5LgogICAgICAgICA1OS4wOS4gQWRtaXNz aW9uIGZlZXMuCiAgICAgICAgIDU5LjExLiBNb25leXMgb2YgdGhlIGF1dGhvcml0eS4KICAg ICAgICAgNTkuMTMuIEJvbmRzIG9mIHRoZSBhdXRob3JpdHkuCiAgICAgICAgIDU5LjE1LiBT dGF0ZSBhbmQgY2l0eSBub3QgbGlhYmxlIG9uIGJvbmRzLgogICAgICAgICA1OS4xNy4gQm9u ZHMgbGVnYWwgaW52ZXN0bWVudHMgZm9yIGZpZHVjaWFyaWVzLgogICAgICAgICA1OS4xOS4g Qm9uZHMgdG8gYmUgdGF4IGV4ZW1wdC4KICAgICAgICAgNTkuMjEuIFJlbWVkaWVzIG9mIGJv bmRob2xkZXJzLgogICAgICAgICA1OS4yMy4gTWVtYmVycyBhbmQgZW1wbG95ZWVzIG5vdCB0 byBwcm9maXQuCiAgICAgICAgIDU5LjI1LiBWaXNpdGF0aW9uIGJ5IHJlZ2VudHMuCiAgICAg ICAgIDU5LjI3LiBBcHBsaWNhdGlvbiBvZiBsYXcuCgogIFMgIDU5LjAxLiAgU2hvcnQgIHRp dGxlLiAgVGhpcyAgdGl0bGUgIG1heSAgYmUgIGNpdGVkICBhcyAgdGhlICJNdXNldW0KUGxh bmV0YXJpdW0gQWN0Ii4KCiAgUyAgNTkuMDMuICBEZWZpbml0aW9ucy4gQXMgdXNlZCBvciBy ZWZlcnJlZCB0byBpbiB0aGlzIHRpdGxlLCB1bmxlc3MgYQpkaWZmZXJlbnQgbWVhbmluZyBj bGVhcmx5IGFwcGVhcnMgZnJvbSB0aGUgY29udGV4dCwKICAxLiAgVGhlIHRlcm0gImF1dGhv cml0eSIgc2hhbGwgbWVhbiB0aGUgY29ycG9yYXRpb24gY3JlYXRlZCBieSBzZWN0aW9uCjU5 LjA1IG9mIHRoaXMgY2hhcHRlcjsKICAyLiBUaGUgdGVybSAicGxhbmV0YXJpdW0iIHNoYWxs IG1lYW4gdGhlIHBsYW5ldGFyaXVtIGhlcmVpbiBhdXRob3JpemVkCmFuZCBzaGFsbCBpbmNs dWRlIHRoZSBidWlsZGluZyAgaG91c2luZyAgdGhlICBzYW1lICBhbmQgIGFsbCAgbWFjaGlu ZXJ5LAplcXVpcG1lbnQsIGZhY2lsaXRpZXMgYW5kIGVkdWNhdGlvbmFsIG1hdGVyaWFsIGlu Y2lkZW50YWwgdGhlcmV0bzsKICAzLiAgVGhlIHRlcm0gImJvbmRzIiBzaGFsbCBtZWFuIGJv bmRzIGlzc3VlZCBieSB0aGUgYXV0aG9yaXR5IHB1cnN1YW50CnRvIHRoaXMgdGl0bGU7CiAg NC4gVGhlIHRlcm0gImJvYXJkIiBzaGFsbCBtZWFuIHRoZSBtZW1iZXJzIG9mIHRoZSBhdXRo b3JpdHkuCgogIFMgNTkuMDUuIFRoZSBBbWVyaWNhbiBNdXNldW0gb2YgTmF0dXJhbCBIaXN0 b3J5IFBsYW5ldGFyaXVtIEF1dGhvcml0eS4KVGhlIHRydXN0ZWVzIG9mIFRoZSBBbWVyaWNh biBNdXNldW0gb2YgTmF0dXJhbCAgSGlzdG9yeSwgIGEgIGNvcnBvcmF0aW9uCmNyZWF0ZWQg IGJ5ICBjaGFwdGVyICBvbmUgIGh1bmRyZWQgIGFuZCBuaW5ldGVlbiBvZiB0aGUgbGF3cyBv ZiBlaWdodGVlbgpodW5kcmVkIHNpeHR5LW5pbmUsIGFuZCB0aGVpciAgc3VjY2Vzc29ycyAg aW4gIHN1Y2ggIG9mZmljZSAgYXJlICBoZXJlYnkKY29udGludWVkICBhcyAgYSAgYm9keSAg Y29ycG9yYXRlIGJ5IHRoZSBuYW1lIG9mICJUaGUgQW1lcmljYW4gTXVzZXVtIG9mCk5hdHVy YWwgSGlzdG9yeSBQbGFuZXRhcml1bSBBdXRob3JpdHksICIgdG8gYmUgbG9jYXRlZCBpbiAg dGhlICBjaXR5ICBvZgpOZXcgWW9yaywgZm9yIHRoZSBwdXJwb3NlIG9mIGVzdGFibGlzaGlu ZyBhbmQgbWFpbnRhaW5pbmcgaW4gc3VjaCBjaXR5IGEKcGxhbmV0YXJpdW0gdXBvbiBhICBz aXRlICBwcm92aWRlZCAgYnkgIHRoZSAgYXV0aG9yaXRpZXMgIG9mICBzdWNoICBjaXR5CmFk amFjZW50ICB0byAgVGhlICBBbWVyaWNhbiAgTXVzZXVtICBvZiBOYXR1cmFsIEhpc3Rvcnkg aW4gc3VjaCBjaXR5OyBvZgplbmNvdXJhZ2luZyAgYW5kICBkZXZlbG9waW5nICB0aGUgIHN0 dWR5ICBvZiAgYXN0cm9ub21pY2FsICBzY2llbmNlOyAgb2YKYWR2YW5jaW5nIHRoZSBnZW5l cmFsIGtub3dsZWRnZSBvZiBraW5kcmVkIHN1YmplY3RzLCBhbmQgdG8gdGhhdCBlbmQsIG9m CmZ1cm5pc2hpbmcgcG9wdWxhciAgaW5zdHJ1Y3Rpb24uICAgU3VjaCAgYXV0aG9yaXR5ICBz aGFsbCAgY29uc3RpdHV0ZSAgYQpwdWJsaWMgYmVuZWZpdCBjb3Jwb3JhdGlvbi4KICBUaGUg IHByZXNpZGVudCBvZiB0aGUgYXV0aG9yaXR5IHNoYWxsIGJlIHRoZSBwcmVzaWRlbnQgb2Yg VGhlIEFtZXJpY2FuCk11c2V1bSBvZiBOYXR1cmFsICBIaXN0b3J5LiAgVGhlICBtZW1iZXJz ICBvZiAgdGhlICBhdXRob3JpdHkgIHNoYWxsICBiZQplbnRpdGxlZCAgdG8gbm8gY29tcGVu c2F0aW9uIGZvciB0aGVpciBzZXJ2aWNlcyBidXQgc2hhbGwgYmUgZW50aXRsZWQgdG8KcmVp bWJ1cnNlbWVudCBmb3IgYWxsIGV4cGVuc2VzIGluY3VycmVkIG9yIHRvIGJlIGluY3VycmVk IGluICBjb25uZWN0aW9uCndpdGggIHRoZSAgcGxhbmV0YXJpdW0gaGVyZWJ5IGF1dGhvcml6 ZWQuIE5pbmUgbWVtYmVycyBvZiB0aGUgYXV0aG9yaXR5LApvciwgaWYgbmluZSBiZSBtb3Jl IHRoYW4gYSBtYWpvcml0eSAgb2YgIGFsbCAgb2YgIHRoZSAgbWVtYmVycyAgdGhlbiAgaW4K b2ZmaWNlLCAgYSAgbWFqb3JpdHkgb2YgdGhlIG1lbWJlcnMgb2YgdGhlIGF1dGhvcml0eSwg c2hhbGwgY29uc3RpdHV0ZSBhCnF1b3J1bSBhdCBhbnkgbWVldGluZyBvZiB0aGUgIGJvYXJk LCAgYW5kICBhICBtYWpvcml0eSAgb2YgIHRoZSAgbWVtYmVycwpwcmVzZW50ICBhdCAgYSAg bWVldGluZyAgb2YgIHRoZSAgYm9hcmQgIGF0ICB3aGljaCB0aGVyZSBpcyBhIHF1b3J1bSBt YXkKZXhlcmNpc2UgdGhlIHBvd2VycyBvZiB0aGUgYXV0aG9yaXR5LiBUaGUgYXV0aG9yaXR5 IG1heSBkZWxlZ2F0ZSB0byAgb25lCm9yICBtb3JlICBvZiAgaXRzIG1lbWJlcnMgb3IgdG8g aXRzIG9mZmljZXJzLCBhZ2VudHMgYW5kIGVtcGxveWVlcywgc3VjaApwb3dlcnMgYW5kIGR1 dGllcyBhcyBpdCBtYXkgZGVlbSBwcm9wZXIuCiAgVGhlICBleGlzdGVuY2UgIG9mICB0aGUg IGF1dGhvcml0eSBzaGFsbCBjb250aW51ZSBvbmx5IGZvciBhIHBlcmlvZCBvZgpmaXZlIHll YXJzIGFuZCB0aGVyZWFmdGVyIHVudGlsIGFsbCBpdHMgbGlhYmlsaXRpZXMgaGF2ZSAgYmVl biAgbWV0ICBhbmQKaXRzICBib25kcyAgaGF2ZSAgYmVlbiAgcGFpZCAgaW4gIGZ1bGwgb3Ig c3VjaCBsaWFiaWxpdGllcyBvciBib25kcyBoYXZlCm90aGVyd2lzZSBiZWVuIGRpc2NoYXJn ZWQuIFVwb24gaXRzIGNlYXNpbmcgdG8gZXhpc3QsIGFsbCAgb2YgIGl0cyAgcmVhbApwcm9w ZXJ0eSAgc2hhbGwgIHBhc3MgIHRvICB0aGUgIGNpdHkgb2YgTmV3IFlvcmsgYW5kIGFsbCBv ZiBpdHMgcGVyc29uYWwKcHJvcGVydHkgc2hhbGwgcGFzcyB0byBUaGUgQW1lcmljYW4gTXVz ZXVtIG9mIE5hdHVyYWwgIEhpc3RvcnkgIGZvciAgaXRzCmNvcnBvcmF0ZSAgcHVycG9zZXMu ICAgVGhlcmV1cG9uLCBzdWNoIHJlYWwgcHJvcGVydHkgc2hhbGwgYmUgbWFpbnRhaW5lZAph bmQgb3BlcmF0ZWQgaW4gdGhlIHNhbWUgbWFubmVyIGFuZCAgc3ViamVjdCAgdG8gIHRoZSAg c2FtZSAgcHJvdmlzaW9ucywKcmVzdHJpY3Rpb25zICBhbmQgIGF1dGhvcml0aWVzICBhbmQg YnkgdGhlIHNhbWUgY29ycG9yYXRpb24gYXMgdGhlIG90aGVyCnByb3BlcnR5IG9mIHRoZSBj aXR5IG9mIE5ldyBZb3JrIHdoaWNoIGlzIG5vdyBvY2N1cGllZCBieSAgVGhlICBBbWVyaWNh bgpNdXNldW0gb2YgTmF0dXJhbCBIaXN0b3J5LgoKICBTIDU5LjA3LiBQb3dlcnMgb2YgdGhl IGF1dGhvcml0eS4gIFRoZSBhdXRob3JpdHkgc2hhbGwgaGF2ZSBwb3dlcjoKICAxLiBUbyBz dWUgYW5kIGJlIHN1ZWQ7CiAgMi4gVG8gaGF2ZSBhIHNlYWwgYW5kIGFsdGVyIHRoZSBzYW1l IGF0IHBsZWFzdXJlOwogIDMuIFRvIGFjcXVpcmUsIGhvbGQgYW5kIGRpc3Bvc2Ugb2YgcGVy c29uYWwgcHJvcGVydHkgZm9yIGl0cyBjb3Jwb3JhdGUKcHVycG9zZXM7CiAgNC4gVG8gbWFr ZSBieS1sYXdzIGZvciB0aGUgbWFuYWdlbWVudCBhbmQgcmVndWxhdGlvbiBvZiBpdHMgYWZm YWlyczsKICA1LiAgV2l0aCB0aGUgY29uc2VudCBvZiBUaGUgQW1lcmljYW4gTXVzZXVtIG9m IE5hdHVyYWwgSGlzdG9yeSwgdG8gdXNlCnRoZSBhZ2VudHMsIGVtcGxveWVlcyBhbmQgZmFj aWxpdGllcyBvZiAgc2FpZCAgVGhlICBBbWVyaWNhbiAgTXVzZXVtICBvZgpOYXR1cmFsICBI aXN0b3J5LCAgcGF5aW5nICBpdHMgIHByb3BlciBwcm9wb3J0aW9uIG9mIHRoZSBjb21wZW5z YXRpb24gb3IKY29zdDsKICA2LiAgIFRvICAgYXBwb2ludCAgIG9mZmljZXJzLCAgYWdlbnRz ICBhbmQgIGVtcGxveWVlcyAgYW5kICBmaXggIHRoZWlyCmNvbXBlbnNhdGlvbjsKICA3LiAg VG8gIG1ha2UgIGNvbnRyYWN0cyAgYW5kICB0byAgZXhlY3V0ZSBhbGwgaW5zdHJ1bWVudHMg bmVjZXNzYXJ5IG9yCmNvbnZlbmllbnQ7CiAgOC4gQnkgY29udHJhY3Qgb3IgY29udHJhY3Rz IG9yIGJ5IGl0cyBvd24gZW1wbG95ZWVzLCB0byBjb25zdHJ1Y3Qgc3VjaApwbGFuZXRhcml1 bSBidWlsZGluZywgdG9nZXRoZXIgd2l0aCBpbmNpZGVudGFsIG1hY2hpbmVyeSwgZXF1aXBt ZW50ICBhbmQKZmFjaWxpdGllczsKICA5LiAgVG8gIHB1cmNoYXNlICBvciAgY29uc3RydWN0 LCBvciBhY3F1aXJlIGJ5IGdpZnQsIGxvYW4gb3Igb3RoZXJ3aXNlCmZyb20gVGhlICBBbWVy aWNhbiAgTXVzZXVtICBvZiAgTmF0dXJhbCAgSGlzdG9yeSAgb3IgIG90aGVyICBwZXJzb25z ICBvcgpjb3Jwb3JhdGlvbnMsICBhbmQgIGluc3RhbGwgIGluIHN1Y2ggcGxhbmV0YXJpdW0g YnVpbGRpbmcsIGEgcGxhbmV0YXJpdW0KaW5zdHJ1bWVudCBvciBpbnN0cnVtZW50cyBhbmQg c3VjaCBvdGhlciAgYXN0cm9ub21pY2FsICBpbnN0cnVtZW50cyAgYW5kCmV4aGliaXRzICBh cyAgdG8gIHN1Y2ggIGJvYXJkICBzaGFsbCAgc2VlbSBiZXN0IGFkYXB0ZWQgZm9yIGFzdHJv bm9taWNhbAppbnN0cnVjdGlvbjsKICAxMC4gVG8gbWFpbnRhaW4sIHJlY29uc3RydWN0IGFu ZCBvcGVyYXRlIHRoZSBwbGFuZXRhcml1bTsKICAxMS4gIFRvICBjaGFyZ2UgIGFkbWlzc2lv biBmZWVzIGZvciBleGhpYml0aW5nIHRoZSBwbGFuZXRhcml1bSBvciBzb21lCnBhcnQgb3Ig cGFydHMgdGhlcmVvZiwgc3ViamVjdCB0byBhbmQgaW4gYWNjb3JkYW5jZSB3aXRoICBzZWN0 aW9uICA1OS4wOQpvZiAgdGhpcyAgdGl0bGUgIGFuZCAgc3VjaCBhZ3JlZW1lbnRzIHdpdGgg Ym9uZGhvbGRlcnMgYXMgbWF5IGJlIG1hZGUgYXMKaGVyZWluYWZ0ZXIgcHJvdmlkZWQ7CiAg MTIuICBUbyAgaXNzdWUgIG5lZ290aWFibGUgIGJvbmRzIGFuZCB0byBwcm92aWRlIGZvciB0 aGUgcmlnaHRzIG9mIHRoZQpob2xkZXJzIHRoZXJlb2Y7IGFuZAogIDEzLiAgVG8gIGRvIGFs bCB0aGluZ3MgbmVjZXNzYXJ5IG9yIGNvbnZlbmllbnQgdG8gY2Fycnkgb3V0IHRoZSBwb3dl cnMKZXhwcmVzc2x5IGdpdmVuIGJ5IHRoaXMgdGl0bGUuCgogIFMgIDU5LjA5LiAgQWRtaXNz aW9uIGZlZXMuICBJbiBvcmRlciB0aGF0IHRoZSBlZHVjYXRpb25hbCBpbmZsdWVuY2Ugb2YK dGhlIHBsYW5ldGFyaXVtIHNoYWxsIHJlYWNoIGFzIG1hbnkgcGVyc29ucyBhcyBwb3NzaWJs ZSwgdGhlIGJvYXJkIHNoYWxsCm5vdCAgZml4ICBhZG1pc3Npb24gIGZlZXMsIGF0IHJhdGVz IGhpZ2hlciB0aGFuIGFyZSBuZWNlc3NhcnkgdG8gcGF5IHRoZQpjb3N0ICBvZiAgY29uc3Ry dWN0aW9uLCAgb3BlcmF0aW9uLCAgbWFpbnRlbmFuY2UgIGFuZCAgcmVwYWlyICAgb2YgICB0 aGUKcGxhbmV0YXJpdW0gIGFuZCAgaW5zdHJ1Y3Rpb24gIGluICBjb25uZWN0aW9uICB0aGVy ZXdpdGgsIGFuZCB0byBwYXkgdGhlCnByaW5jaXBhbCBvZiBhbmQgaW50ZXJlc3Qgb24gYW55 IGJvbmRzIGlzc3VlZCBoZXJldW5kZXIsIGFuZCB0byBtZWV0IHRoZQpyZXNlcnZlcyAgYW5k ICBzaW5raW5nICBmdW5kcyBwcm92aWRlZCBmb3IgaW4gYW55IHJlc29sdXRpb24gYXV0aG9y aXppbmcKc3VjaCBib25kcy4gQ2xhc3NlcyBmcm9tIHRoZSBwdWJsaWMgc2Nob29scyBhbmQg Y29sbGVnZXMgb2YgdGhlIGNpdHkgIG9mCk5ldyAgWW9yayAgc2hhbGwgIGJlICBhZG1pdHRl ZCB0byB0aGUgcGxhbmV0YXJpdW0gd2l0aG91dCBjaGFyZ2UgYXQgc3VjaAp0aW1lcyBhbmQg dXBvbiBzdWNoIGRheXMgb2YgdGhlIHdlZWsgYW5kIHVuZGVyIHN1Y2ggcmVhc29uYWJsZSBy dWxlcyBhbmQKcmVndWxhdGlvbnMgYXMgdGhlIGJvYXJkIHNoYWxsIHByZXNjcmliZS4KCiAg UyA1OS4xMS4gTW9uZXlzIG9mIHRoZSBhdXRob3JpdHkuIFRoZSBtb25leXMgaW4gdGhlIGRl cG9zaXQgYWNjb3VudCBvZgp0aGUgYXV0aG9yaXR5IHNoYWxsIGJlIHBhaWQgb3V0IG9uIGNo ZWNrcyBzaWduZWQgYnkgdGhlIHByZXNpZGVudCBvZiB0aGUKYXV0aG9yaXR5ICBvciAgYnkg IHN1Y2ggIG90aGVyICBwZXJzb24gIG9yICBwZXJzb25zIGFzIHRoZSBhdXRob3JpdHkgbWF5 CmF1dGhvcml6ZS4gQWxsIGRlcG9zaXRzICBvZiAgc3VjaCAgbW9uZXlzICBzaGFsbCwgIGlm ICByZXF1aXJlZCAgYnkgIHRoZQphdXRob3JpdHksICBiZSAgc2VjdXJlZCBieSBvYmxpZ2F0 aW9ucyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvciB0aGUgc3RhdGUKb2YgTmV3IFlvcmssIG9m IGEgbWFya2V0IHZhbHVlIGVxdWFsIGF0IGFsbCB0aW1lcyB0byB0aGUgYW1vdW50ICBvZiAg dGhlCmRlcG9zaXQgIGFuZCAgYWxsICBiYW5rcyBhbmQgdHJ1c3QgY29tcGFuaWVzIGFyZSBh dXRob3JpemVkIHRvIGdpdmUgc3VjaApzZWN1cml0eSBmb3Igc3VjaCBkZXBvc2l0cy4gVGhl IGNvbXB0cm9sbGVyIG9mIHRoZSBjaXR5IG9mIE5ldyBZb3JrICBhbmQKaGlzICAgbGVnYWxs eSAgYXV0aG9yaXplZCAgcmVwcmVzZW50YXRpdmVzICBhcmUgIGhlcmVieSAgYXV0aG9yaXpl ZCAgYW5kCmVtcG93ZXJlZCBmcm9tIHRpbWUgdG8gdGltZSB0byBleGFtaW5lIHRoZSBhY2Nv dW50cyAgYW5kICBib29rcyAgb2YgIHRoZQphdXRob3JpdHksICBpbmNsdWRpbmcgIGl0cyAg cmVjZWlwdHMsICBkaXNidXJzZW1lbnRzLCBjb250cmFjdHMsIHNpbmtpbmcKZnVuZHMsIGlu dmVzdG1lbnRzIGFuZCBhbnkgIG90aGVyICBtYXR0ZXJzICByZWxhdGluZyAgdG8gIGl0cyAg ZmluYW5jaWFsCnN0YW5kaW5nLgoKICBTIDU5LjEzLiBCb25kcyBvZiB0aGUgYXV0aG9yaXR5 LiAxLiBUaGUgYXV0aG9yaXR5IHNoYWxsIGhhdmUgcG93ZXIgYW5kCmlzIGhlcmVieSBhdXRo b3JpemVkIGZyb20gdGltZSB0byB0aW1lIHRvIGlzc3VlIGl0cyBuZWdvdGlhYmxlIGJvbmRz ICBpbgpjb25mb3JtaXR5ICB3aXRoIGFwcGxpY2FibGUgcHJvdmlzaW9ucyBvZiB0aGUgdW5p Zm9ybSBjb21tZXJjaWFsIGNvZGUgaW4KdGhlIGFnZ3JlZ2F0ZSBwcmluY2lwYWwgYW1vdW50 IG9mIG5vdCBleGNlZWRpbmcgb25lIG1pbGxpb24gZG9sbGFycy4gVGhlCmF1dGhvcml0eSAg c2hhbGwgaGF2ZSBwb3dlciBmcm9tIHRpbWUgdG8gdGltZSB0byByZWZ1bmQgYW55IGJvbmRz IGJ5IHRoZQppc3N1YW5jZSBvZiBuZXcgYm9uZHMsIHdoZXRoZXIgdGhlIGJvbmRzIHRvIGJl IHJlZnVuZGVkIGhhdmUgb3IgaGF2ZSBub3QKbWF0dXJlZCwgYW5kIG1heSBpc3N1ZSBib25k cyBwYXJ0bHkgdG8gcmVmdW5kIGJvbmRzIHRoZW4gb3V0c3RhbmRpbmcgYW5kCnBhcnRseSBm b3IgYW55IG90aGVyIGNvcnBvcmF0ZSBwdXJwb3NlLiBJbiBjb21wdXRpbmcgdGhlIHRvdGFs IGFtb3VudCBvZgpib25kcyAgb2YgIHRoZSBhdXRob3JpdHkgd2hpY2ggbWF5IGF0IGFueSB0 aW1lIGJlIG91dHN0YW5kaW5nIHRoZSBhbW91bnQKb2YgdGhlIG91dHN0YW5kaW5nIGJvbmRz IHRvIGJlIHJlZnVuZGVkIGZyb20gdGhlIHByb2NlZWRzIG9mIHRoZSBzYWxlIG9mCm5ldyBi b25kcyBvciBieSBleGNoYW5nZSBmb3IgbmV3IGJvbmRzIHNoYWxsIGJlIGV4Y2x1ZGVkLgog IDIuIFN1Y2ggYm9uZHMgc2hhbGwgYmUgYXV0aG9yaXplZCBieSByZXNvbHV0aW9uIG9mIHRo ZSBib2FyZCBhbmQgc2hhbGwKYmVhciBzdWNoIGRhdGUgb3IgZGF0ZXMsIG1hdHVyZSBhdCBz dWNoICB0aW1lICBvciAgdGltZXMgIG5vdCAgZXhjZWVkaW5nCnR3ZW50eS1maXZlICB5ZWFy cyAgZnJvbSAgdGhlaXIgIHJlc3BlY3RpdmUgZGF0ZXMsIGJlYXIgaW50ZXJlc3QgYXQgc3Vj aApyYXRlICBvciAgcmF0ZXMgIGFzICBhcHByb3ZlZCAgYnkgICB0aGUgICBzdGF0ZSAgIGNv bXB0cm9sbGVyLCAgIHBheWFibGUKc2VtaS1hbm51YWxseSwgIGJlIGluIHN1Y2ggZGVub21p bmF0aW9ucywgYmUgaW4gc3VjaCBmb3JtLCBlaXRoZXIgY291cG9uCm9yIHJlZ2lzdGVyZWQs IGNhcnJ5IHN1Y2ggcmVnaXN0cmF0aW9uIHByaXZpbGVnZXMsIGJlIGV4ZWN1dGVkICBpbiAg c3VjaAptYW5uZXIsICBiZSAgcGF5YWJsZSAgaW4gc3VjaCBtZWRpdW0gb2YgcGF5bWVudCBh dCBzdWNoIHBsYWNlIG9yIHBsYWNlcywKYW5kIGJlIHN1YmplY3QgdG8gc3VjaCB0ZXJtcyBv ZiByZWRlbXB0aW9uIG5vdCBleGNlZWRpbmcgcGFyIGFuZCBhY2NydWVkCmludGVyZXN0ICBh cyAgc3VjaCByZXNvbHV0aW9uIG9yIHJlc29sdXRpb25zIG1heSBwcm92aWRlLiBTdWNoIGJv bmRzIG1heQpiZSBzb2xkIGF0IHB1YmxpYyBvciBwcml2YXRlIHNhbGUgIGZvciAgc3VjaCAg cHJpY2UgIG9yICBwcmljZXMgIGFzICB0aGUKYXV0aG9yaXR5IHNoYWxsIGRldGVybWluZS4K ICAzLiAgU3VjaCAgYm9uZHMgIG1heSAgYmUgIGlzc3VlZCAgZm9yICBhbnkgIGNvcnBvcmF0 ZSAgcHVycG9zZXMgb2YgdGhlCmF1dGhvcml0eS4KICA0LiAgQW55ICByZXNvbHV0aW9uICBv ciAgcmVzb2x1dGlvbnMgYXV0aG9yaXppbmcgYW55IGJvbmRzIG1heSBjb250YWluCnByb3Zp c2lvbnMgd2hpY2ggc2hhbGwgYmUgYSBwYXJ0IG9mIHRoZSBjb250cmFjdCB3aXRoIHRoZSBo b2xkZXJzIG9mIHRoZQpib25kcywgYXMgdG8KICAoYSkgIFBsZWRnaW5nIHRoZSByZXZlbnVl cyBvZiB0aGUgcGxhbmV0YXJpdW0gdG8gc2VjdXJlIHRoZSBwYXltZW50IG9mCnRoZSBib25k czsKICAoYikgIFRoZSAgYWRtaXNzaW9uICBmZWVzICB0byAgYmUgIGNoYXJnZWQgIGZvciAg dGhlIGV4aGliaXRpb24gb2YgdGhlCnBsYW5ldGFyaXVtIGFuZCB0aGUgYW1vdW50IHRvIGJl IHJhaXNlZCBpbiBlYWNoIHllYXIgYnkgIGFkbWlzc2lvbiAgZmVlcwphbmQgdGhlIHVzZSBh bmQgZGlzcG9zaXRpb24gb2Ygc3VjaCBmZWVzIGFuZCBvdGhlciByZXZlbnVlczsKICAoYykg IFRoZSBzZXR0aW5nIGFzaWRlIG9mIHJlc2VydmVzIG9yIHNpbmtpbmcgZnVuZHMgYW5kIHRo ZSByZWd1bGF0aW9uCm9yIGRpc3Bvc2l0aW9uIHRoZXJlb2Y7CiAgKGQpIFRoZSB1c2UgYW5k IGV4aGliaXRpb24gb2YgdGhlIHBsYW5ldGFyaXVtOwogIChlKSAgTGltaXRhdGlvbnMgIG9u ICB0aGUgcHVycG9zZSB0byB3aGljaCB0aGUgcHJvY2VlZHMgb2Ygc2FsZSBvZiBhbnkKaXNz dWUgb2YgYm9uZHMgdGhlbiBvciB0aGVyZWFmdGVyIHRvIGJlIGlzc3VlZCBtYXkgYmUgYXBw bGllZDsKICAoZikgTGltaXRhdGlvbnMgb24gdGhlIGlzc3VhbmNlIG9mIGFkZGl0aW9uYWwg Ym9uZHM7CiAgKGcpICBUaGUgIHByb2NlZHVyZSwgIGlmICBhbnksIGJ5IHdoaWNoIHRoZSB0 ZXJtcyBvZiBhbnkgY29udHJhY3Qgd2l0aApib25kaG9sZGVycyBtYXkgYmUgYW1lbmRlZCBv ciBhYnJvZ2F0ZWQsIHRoZSBhbW91bnQgb2YgYm9uZHMgdGhlIGhvbGRlcnMKb2YgIHdoaWNo ICBtdXN0IGNvbnNlbnQgdGhlcmV0byBhbmQgdGhlIG1hbm5lciBpbiB3aGljaCBzdWNoIGNv bnNlbnQgbWF5CmJlIGdpdmVuLgogIDUuICBOZWl0aGVyICB0aGUgIG1lbWJlcnMgIG9mICB0 aGUgYm9hcmQgbm9yIGFueSBwZXJzb24gZXhlY3V0aW5nIHN1Y2gKYm9uZHMgc2hhbGwgYmUg bGlhYmxlIHBlcnNvbmFsbHkgb24gdGhlICBib25kcyAgb3IgIGJlICBzdWJqZWN0ICB0byAg YW55CnBlcnNvbmFsICBsaWFiaWxpdHkgb3IgYWNjb3VudGFiaWxpdHkgYnkgcmVhc29uIG9m IHRoZSBpc3N1YW5jZSB0aGVyZW9mLgogIDYuICBUaGUgYXV0aG9yaXR5IHNoYWxsIGhhdmUg cG93ZXIgb3V0IG9mIGFueSBmdW5kcyBhdmFpbGFibGUgdGhlcmVmb3IKdG8gcHVyY2hhc2Ug YW55IGJvbmRzIGlzc3VlZCBieSBpdCBhdCBhIHByZW1pdW0gb2Ygbm90ICBtb3JlICB0aGFu ICBmb3VyCnBlcmNlbnR1bSAgYW5kICBhY2NydWVkICBpbnRlcmVzdC4gIEFsbCAgYm9uZHMg IHNvICBwdXJjaGFzZWQgIHNoYWxsICBiZQpjYW5jZWxsZWQuCgogIFMgIDU5LjE1LiAgU3Rh dGUgIGFuZCAgY2l0eSAgbm90ICBsaWFibGUgb24gYm9uZHMuIFRoZSBib25kcyBhbmQgb3Ro ZXIKb2JsaWdhdGlvbnMgb2YgdGhlIGF1dGhvcml0eSBzaGFsbCBub3QgYmUgYSBkZWJ0IG9m ICB0aGUgIHN0YXRlICBvZiAgTmV3CllvcmsgIG9yICBjaXR5ICBvZiBOZXcgWW9yayBhbmQg bmVpdGhlciB0aGUgc3RhdGUgbm9yIHN1Y2ggY2l0eSBzaGFsbCBiZQpsaWFibGUgdGhlcmVv biwgbm9yIHNoYWxsIHRoZXkgYmUgcGF5YWJsZSBvdXQgb2YgYW55ICBmdW5kcyAgb3RoZXIg IHRoYW4KdGhvc2Ugb2YgdGhlIGF1dGhvcml0eS4KCiAgUyA1OS4xNy4gQm9uZHMgbGVnYWwg aW52ZXN0bWVudHMgZm9yIGZpZHVjaWFyaWVzLiBUaGUgYm9uZHMgYXJlIGhlcmVieQptYWRl IHNlY3VyaXRpZXMgaW4gd2hpY2ggYWxsIHB1YmxpYyBvZmZpY2VycyBhbmQgYm9kaWVzICBv ZiAgdGhpcyAgc3RhdGUKYW5kICAgYWxsICBtdW5pY2lwYWxpdGllcyAgYW5kICBtdW5pY2lw YWwgIHN1YmRpdmlzaW9ucywgIGFsbCAgaW5zdXJhbmNlCmNvbXBhbmllcyBhbmQgYXNzb2Np YXRpb25zLCBhbGwgc2F2aW5ncyBiYW5rcyBhbmQgc2F2aW5ncyAgaW5zdGl0dXRpb25zLApp bmNsdWRpbmcgIHNhdmluZ3MgIGFuZCAgbG9hbiAgYXNzb2NpYXRpb25zLCAgYWRtaW5pc3Ry YXRvcnMsIGd1YXJkaWFucywKZXhlY3V0b3JzLCB0cnVzdGVlcyBhbmQgb3RoZXIgZmlkdWNp YXJpZXMgaW4gdGhlIHN0YXRlIG1heSBwcm9wZXJseSAgYW5kCmxlZ2FsbHkgaW52ZXN0IGZ1 bmRzIGluIHRoZWlyIGNvbnRyb2wuCgogIFMgIDU5LjE5LiAgQm9uZHMgIHRvICBiZSAgdGF4 ICBleGVtcHQuICBUaGUgYm9uZHMgc2hhbGwgYmUgZXhlbXB0IGZyb20KdGF4YXRpb24gZXhj ZXB0IGZvciB0cmFuc2ZlciBhbmQgZXN0YXRlIHRheGVzLgoKICBTICA1OS4yMS4gIFJlbWVk aWVzIG9mIGJvbmRob2xkZXJzLiAxLiBJbiB0aGUgZXZlbnQgdGhhdCB0aGUgYXV0aG9yaXR5 CnNoYWxsIGRlZmF1bHQgaW4gdGhlIHBheW1lbnQgb2YgcHJpbmNpcGFsIG9mIG9yIGludGVy ZXN0IG9uIGFueSAgb2YgIHRoZQpib25kcyAgYWZ0ZXIgdGhlIHNhbWUgc2hhbGwgYmVjb21l IGR1ZSwgd2hldGhlciBhdCBtYXR1cml0eSBvciB1cG9uIGNhbGwKZm9yIHJlZGVtcHRpb24s IGFuZCBzdWNoIGRlZmF1bHQgc2hhbGwgY29udGludWUgZm9yIGEgcGVyaW9kICBvZiAgdGhp cnR5CmRheXMsICBvciBpbiB0aGUgZXZlbnQgdGhhdCB0aGUgYXV0aG9yaXR5IHNoYWxsIGZh aWwgb3IgcmVmdXNlIHRvIGNvbXBseQp3aXRoIHRoZSBwcm92aXNpb25zIG9mIHRoaXMgdGl0 bGUsIG9yIHNoYWxsICBkZWZhdWx0ICBpbiAgYW55ICBhZ3JlZW1lbnQKbWFkZSB3aXRoIHRo ZSBob2xkZXJzIG9mIHRoZSBib25kcywgdGhlIGhvbGRlcnMgb2YgdHdlbnR5LWZpdmUgcGVy Y2VudHVtCmluICBhZ2dyZWdhdGUgIHByaW5jaXBhbCAgYW1vdW50ICBvZiAgdGhlICBib25k cyAgdGhlbiAgb3V0c3RhbmRpbmcgICBieQppbnN0cnVtZW50IG9yIGluc3RydW1lbnRzIGZp bGVkIGluIHRoZSBvZmZpY2Ugb2YgdGhlIGNsZXJrIG9mIHRoZSBjb3VudHkKb2YgTmV3IFlv cmsgYW5kIHByb3ZlZCBvciBhY2tub3dsZWRnZWQgaW4gdGhlIHNhbWUgbWFubmVyIGFzIGEg IGRlZWQgIHRvCmJlICByZWNvcmRlZCAgbWF5IGFwcG9pbnQgYSB0cnVzdGVlIHRvIHJlcHJl c2VudCB0aGUgYm9uZGhvbGRlcnMgZm9yIHRoZQpwdXJwb3NlcyBoZXJlaW4gcHJvdmlkZWQ7 CiAgMi4gIFN1Y2ggIHRydXN0ZWUgIG1heSwgIGFuZCAgdXBvbiAgd3JpdHRlbiAgcmVxdWVz dCBvZiB0aGUgaG9sZGVycyBvZgp0d2VudHktZml2ZSAgcGVyY2VudHVtICBpbiAgdGhlICBw cmluY2lwYWwgIGFtb3VudCAgb2YgIHRoZSAgYm9uZHMgIHRoZW4Kb3V0c3RhbmRpbmcgc2hh bGwsIGluIGhpcyBvciBpdHMgb3duIG5hbWU6CiAgKGEpICBCeSAgc3VpdCwgIGFjdGlvbiBv ciBzcGVjaWFsIHByb2NlZWRpbmcgZW5mb3JjZSBhbGwgcmlnaHRzIG9mIHRoZQpib25kaG9s ZGVycywgaW5jbHVkaW5nIHRoZSByaWdodCB0byByZXF1aXJlIHRoZSBhdXRob3JpdHkgYW5k IHRoZSAgYm9hcmQKdG8gIGNvbGxlY3QgYWRtaXNzaW9uIGZlZXMgYWRlcXVhdGUgdG8gY2Fy cnkgb3V0IGFueSBhZ3JlZW1lbnQgYXMgdG8sIG9yCnBsZWRnZSBvZiwgc3VjaCBhZG1pc3Np b24gZmVlcywgYW5kIHRvIHJlcXVpcmUgIHRoZSAgYXV0aG9yaXR5ICBhbmQgIHRoZQpib2Fy ZCAgdG8gIGNhcnJ5ICBvdXQgIGFueSAgb3RoZXIgYWdyZWVtZW50cyB3aXRoIHRoZSBib25k aG9sZGVycyBhbmQgdG8KcGVyZm9ybSBpdHMgYW5kIHRoZWlyIGR1dGllcyB1bmRlciB0aGlz IHRpdGxlOwogIChiKSBCcmluZyBzdWl0IHVwb24gdGhlIGJvbmRzOwogIChjKSAgQnkgIGFj dGlvbiBvciBzdWl0IGluIGVxdWl0eSwgcmVxdWlyZSB0aGUgYXV0aG9yaXR5IHRvIGFjY291 bnQgYXMKaWYgaXQgd2VyZSB0aGUgdHJ1c3RlZSBvZiBhbiBleHByZXNzIHRydXN0IGZvciB0 aGUgYm9uZGhvbGRlcnM7CiAgKGQpICBCeSAgYWN0aW9uIG9yIHN1aXQgaW4gZXF1aXR5LCBl bmpvaW4gYW55IGFjdHMgb3IgdGhpbmdzIHdoaWNoIG1heQpiZSB1bmxhd2Z1bCBvciBpbiB2 aW9sYXRpb24gb2YgdGhlIHJpZ2h0cyBvZiB0aGUgYm9uZGhvbGRlcnM7CiAgKGUpICBEZWNs YXJlICBhbGwgIGJvbmRzIGR1ZSBhbmQgcGF5YWJsZSwgYW5kIGlmIGFsbCBkZWZhdWx0cyBz aGFsbCBiZQptYWRlIGdvb2QgYW5udWwsIHVwb24gdGhlIHdyaXR0ZW4gY29uc2VudCBvZiB0 aGUgaG9sZGVycyBvZiAgdHdlbnR5LWZpdmUKcGVyY2VudHVtICBpbiAgcHJpbmNpcGFsICBh bW91bnQgIG9mICB0aGUgIGJvbmRzICB0aGVuIG91dHN0YW5kaW5nLCBzdWNoCmRlY2xhcmF0 aW9uIGFuZCBpdHMgY29uc2VxdWVuY2VzLgogIDMuICBUaGUgIHN1cHJlbWUgIGNvdXJ0IHNo YWxsIGhhdmUganVyaXNkaWN0aW9uIG9mIGFueSBzdWl0LCBhY3Rpb24gb3IKcHJvY2VlZGlu ZyBieSB0aGUgdHJ1c3RlZSBvbiBiZWhhbGYgb2YgdGhlIGJvbmRob2xkZXJzLiBUaGUgdmVu dWUgb2YgYW55CnN1Y2ggc3VpdCwgYWN0aW9uIG9yIHByb2NlZWRpbmcgc2hhbGwgYmUgbGFp ZCBpbiBOZXcgWW9yayBjb3VudHkuCiAgNC4gIEJlZm9yZSAgZGVjbGFyaW5nICB0aGUgIHBy aW5jaXBhbCBvZiBhbGwgYm9uZHMgZHVlIGFuZCBwYXlhYmxlIHRoZQp0cnVzdGVlICBzaGFs bCAgZmlyc3QgIGdpdmUgIHRoaXJ0eSAgZGF5c2AgIG5vdGljZSAgaW4gIHdyaXRpbmcgIHRv ICB0aGUKYXV0aG9yaXR5LgogIDUuICBBbnkgIHN1Y2ggdHJ1c3RlZSwgd2hldGhlciBvciBu b3QgYWxsIGJvbmRzIGhhdmUgYmVlbiBkZWNsYXJlZCBkdWUKYW5kIHBheWFibGUsIHNoYWxs IGJlIGVudGl0bGVkIGFzIG9mICByaWdodCAgdG8gIHRoZSAgYXBwb2ludG1lbnQgIG9mICBh CnJlY2VpdmVyICB3aG8gIG1heSAgZW50ZXIgIGFuZCB0YWtlIHBvc3Nlc3Npb24gb2YgdGhl IHBsYW5ldGFyaXVtIG9yIGFueQpwYXJ0IG9yIHBhcnRzIHRoZXJlb2YgYW5kIG9wZXJhdGUg YW5kIG1haW50YWluIHRoZSBzYW1lIGFuZCBjb2xsZWN0ICBhbmQKcmVjZWl2ZSAgYWxsICBh ZG1pc3Npb24gIGZlZXMgIGFuZCAgb3RoZXIgIHJldmVudWVzICB0aGVyZWFmdGVyICBhcmlz aW5nCnRoZXJlZnJvbSBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgdGhlIGF1dGhvcml0eSBpdHNl bGYgbWlnaHQgZG8gYW5kICBzaGFsbApkZXBvc2l0IGFsbCBzdWNoIG1vbmV5cyBpbiBhIHNl cGFyYXRlIGFjY291bnQgYW5kIGFwcGx5IHRoZSBzYW1lIGluIHN1Y2gKbWFubmVyIGFzIHRo ZSBjb3VydCBzaGFsbCBkaXJlY3QuIEluIGFueSBzdWl0LCBhY3Rpb24gb3IgIHByb2NlZWRp bmcgIGJ5CnRoZSAgdHJ1c3RlZSAgdGhlICBmZWVzLCBjb3Vuc2VsIGZlZXMgYW5kIGV4cGVu c2VzIG9mIHRoZSB0cnVzdGVlIGFuZCBvZgp0aGUgcmVjZWl2ZXIsIGlmIGFueSwgc2hhbGwg Y29uc3RpdHV0ZSAgdGF4YWJsZSAgZGlzYnVyc2VtZW50cyAgYW5kICBhbGwKY29zdHMgIGFu ZCBkaXNidXJzZW1lbnRzIGFsbG93ZWQgYnkgdGhlIGNvdXJ0IHNoYWxsIGJlIGEgZmlyc3Qg Y2hhcmdlIG9uCmFueSBhZG1pc3Npb24gZmVlcyBhbmQgb3RoZXIgcmV2ZW51ZXMgZGVyaXZl ZCBmcm9tIHRoZSBwbGFuZXRhcml1bS4KICA2LiAgU3VjaCAgdHJ1c3RlZSAgc2hhbGwgaW4g YWRkaXRpb24gdG8gdGhlIGZvcmVnb2luZyBoYXZlIGFuZCBwb3NzZXNzCmFsbCBvZiB0aGUg cG93ZXJzIG5lY2Vzc2FyeSBvciAgYXBwcm9wcmlhdGUgIGZvciAgdGhlICBleGVyY2lzZSAg b2YgIGFueQpmdW5jdGlvbnMgIHNwZWNpZmljYWxseSAgc2V0ICBmb3J0aCAgaGVyZWluICBv ciAgaW5jaWRlbnQgdG8gdGhlIGdlbmVyYWwKcmVwcmVzZW50YXRpb24gb2YgdGhlIGJvbmRo b2xkZXJzIGluIHRoZSBlbmZvcmNlbWVudCBhbmQgIHByb3RlY3Rpb24gIG9mCnRoZWlyIHJp Z2h0cy4KCiAgUyAgNTkuMjMuICBNZW1iZXJzICBhbmQgZW1wbG95ZWVzIG5vdCB0byBwcm9m aXQuIE5vIG9mZmljZXIsIG1lbWJlciBvcgplbXBsb3llZSBvZiB0aGUgY29ycG9yYXRpb24g c2hhbGwgcmVjZWl2ZSBvciBtYXkgYmUgbGF3ZnVsbHkgZW50aXRsZWQgdG8KcmVjZWl2ZSAg IGFueSAgIHBlY3VuaWFyeSAgcHJvZml0ICBmcm9tICB0aGUgIG9wZXJhdGlvbiAgdGhlcmVv ZiAgZXhjZXB0CnJlYXNvbmFibGUgY29tcGVuc2F0aW9uIGZvciBzZXJ2aWNlcyBpbiBlZmZl Y3Rpbmcgb25lICBvciAgbW9yZSAgb2YgIGl0cwpwdXJwb3NlcyBoZXJlaW4gc2V0IGZvcnRo LgoKICBTICA1OS4yNS4gIFZpc2l0YXRpb24gIGJ5IHJlZ2VudHMuIFRoZSByZWdlbnRzLCBv ciB0aGUgY29tbWlzc2lvbmVyIG9mCmVkdWNhdGlvbiwgIG9yICB0aGVpciAgcmVwcmVzZW50 YXRpdmVzLCAgbWF5ICB2aXNpdCwgIGV4YW1pbmUgIGludG8gIGFuZAppbnNwZWN0LCAgIHRo ZSAgIGF1dGhvcml0eSAgYXMgIGFuICBpbnN0aXR1dGlvbiAgdW5kZXIgIHRoZSAgZWR1Y2F0 aW9uYWwKc3VwZXJ2aXNpb24gb2YgdGhlIHN0YXRlLCBhbmQgbWF5IHJlcXVpcmUsIGFzICBv ZnRlbiAgYXMgIGRlc2lyZWQsICBkdWx5CnZlcmlmaWVkICByZXBvcnRzICB0aGVyZWZyb20g Z2l2aW5nIHN1Y2ggaW5mb3JtYXRpb24gYW5kIGluIHN1Y2ggZm9ybSBhcwp0aGUgcmVnZW50 cyBvciB0aGUgY29tbWlzc2lvbmVyIG9mIGVkdWNhdGlvbiBzaGFsbCBwcmVzY3JpYmUuCgpT IDU5LjI3LiBBcHBsaWNhdGlvbiBvZiBsYXcuIEFsbCBvZiB0aGUgZ2VuZXJhbCBwcm92aXNp b25zIG9mIHRoZSBwdWJsaWMKYXV0aG9yaXRpZXMgbGF3IG9yIG9mIGFueSBvdGhlciBsYXcg c2hhbGwgYXBwbHkgdG8gdGhlIGF1dGhvcml0eSAgaGVyZWluCmNvbnRpbnVlZCAgaW4gIHRo ZSAgc2FtZSAgbWFubmVyIGFzIGlmIHRoZSBsYW5ndWFnZSBvZiBzdWNoIGxhdyBoYWQgYmVl bgppbmNvcnBvcmF0ZWQgaW4gZnVsbCBpbnRvIHRoaXMgYXJ0aWNsZSwgZXhjZXB0IHRvIHRo ZSBleHRlbnQgIHRoYXQgIHN1Y2gKcHJvdmlzaW9ucyBhcmUgaW5jb25zaXN0ZW50IHdpdGgg dGhlIHByb3Zpc2lvbnMgb2YgdGhpcyBhcnRpY2xlLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LU5ldyBZb3JrIFN0YXRlIENvbnNvbGlkYXRlZCBMYXdzCkFydHMgYW5kIEN1bHR1cmFsIEFm ZmFpcnMKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlRJQ0xFIDU5CiAgICAg ICAgICAgICAgICAgICBBTUVSSUNBTiBNVVNFVU0gT0YgTkFUVVJBTCBISVNUT1JZCiAgICAg ICAgICAgICAgICAgICAgICAgICAgUExBTkVUQVJJVU0gQVVUSE9SSVRZCiBTZWN0aW9uIDU5 LjAxLiBTaG9ydCB0aXRsZS4KICAgICAgICAgNTkuMDMuIERlZmluaXRpb25zLgogICAgICAg ICA1OS4wNS4gVGhlICBBbWVyaWNhbiAgTXVzZXVtICBvZiAgTmF0dXJhbCAgSGlzdG9yeSAg UGxhbmV0YXJpdW0KICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXR5LgogICAgICAgICA1 OS4wNy4gUG93ZXJzIG9mIHRoZSBhdXRob3JpdHkuCiAgICAgICAgIDU5LjA5LiBBZG1pc3Np b24gZmVlcy4KICAgICAgICAgNTkuMTEuIE1vbmV5cyBvZiB0aGUgYXV0aG9yaXR5LgogICAg ICAgICA1OS4xMy4gQm9uZHMgb2YgdGhlIGF1dGhvcml0eS4KICAgICAgICAgNTkuMTUuIFN0 YXRlIGFuZCBjaXR5IG5vdCBsaWFibGUgb24gYm9uZHMuCiAgICAgICAgIDU5LjE3LiBCb25k cyBsZWdhbCBpbnZlc3RtZW50cyBmb3IgZmlkdWNpYXJpZXMuCiAgICAgICAgIDU5LjE5LiBC b25kcyB0byBiZSB0YXggZXhlbXB0LgogICAgICAgICA1OS4yMS4gUmVtZWRpZXMgb2YgYm9u ZGhvbGRlcnMuCiAgICAgICAgIDU5LjIzLiBNZW1iZXJzIGFuZCBlbXBsb3llZXMgbm90IHRv IHByb2ZpdC4KICAgICAgICAgNTkuMjUuIFZpc2l0YXRpb24gYnkgcmVnZW50cy4KICAgICAg ICAgNTkuMjcuIEFwcGxpY2F0aW9uIG9mIGxhdy4KCiAgUyAgNTkuMDEuICBTaG9ydCAgdGl0 bGUuICBUaGlzICB0aXRsZSAgbWF5ICBiZSAgY2l0ZWQgIGFzICB0aGUgIk11c2V1bQpQbGFu ZXRhcml1bSBBY3QiLgoKICBTICA1OS4wMy4gIERlZmluaXRpb25zLiBBcyB1c2VkIG9yIHJl ZmVycmVkIHRvIGluIHRoaXMgdGl0bGUsIHVubGVzcyBhCmRpZmZlcmVudCBtZWFuaW5nIGNs ZWFybHkgYXBwZWFycyBmcm9tIHRoZSBjb250ZXh0LAogIDEuICBUaGUgdGVybSAiYXV0aG9y aXR5IiBzaGFsbCBtZWFuIHRoZSBjb3Jwb3JhdGlvbiBjcmVhdGVkIGJ5IHNlY3Rpb24KNTku MDUgb2YgdGhpcyBjaGFwdGVyOwogIDIuIFRoZSB0ZXJtICJwbGFuZXRhcml1bSIgc2hhbGwg bWVhbiB0aGUgcGxhbmV0YXJpdW0gaGVyZWluIGF1dGhvcml6ZWQKYW5kIHNoYWxsIGluY2x1 ZGUgdGhlIGJ1aWxkaW5nICBob3VzaW5nICB0aGUgIHNhbWUgIGFuZCAgYWxsICBtYWNoaW5l cnksCmVxdWlwbWVudCwgZmFjaWxpdGllcyBhbmQgZWR1Y2F0aW9uYWwgbWF0ZXJpYWwgaW5j aWRlbnRhbCB0aGVyZXRvOwogIDMuICBUaGUgdGVybSAiYm9uZHMiIHNoYWxsIG1lYW4gYm9u ZHMgaXNzdWVkIGJ5IHRoZSBhdXRob3JpdHkgcHVyc3VhbnQKdG8gdGhpcyB0aXRsZTsKICA0 LiBUaGUgdGVybSAiYm9hcmQiIHNoYWxsIG1lYW4gdGhlIG1lbWJlcnMgb2YgdGhlIGF1dGhv cml0eS4KCiAgUyA1OS4wNS4gVGhlIEFtZXJpY2FuIE11c2V1bSBvZiBOYXR1cmFsIEhpc3Rv cnkgUGxhbmV0YXJpdW0gQXV0aG9yaXR5LgpUaGUgdHJ1c3RlZXMgb2YgVGhlIEFtZXJpY2Fu IE11c2V1bSBvZiBOYXR1cmFsICBIaXN0b3J5LCAgYSAgY29ycG9yYXRpb24KY3JlYXRlZCAg YnkgIGNoYXB0ZXIgIG9uZSAgaHVuZHJlZCAgYW5kIG5pbmV0ZWVuIG9mIHRoZSBsYXdzIG9m IGVpZ2h0ZWVuCmh1bmRyZWQgc2l4dHktbmluZSwgYW5kIHRoZWlyICBzdWNjZXNzb3JzICBp biAgc3VjaCAgb2ZmaWNlICBhcmUgIGhlcmVieQpjb250aW51ZWQgIGFzICBhICBib2R5ICBj b3Jwb3JhdGUgYnkgdGhlIG5hbWUgb2YgIlRoZSBBbWVyaWNhbiBNdXNldW0gb2YKTmF0dXJh bCBIaXN0b3J5IFBsYW5ldGFyaXVtIEF1dGhvcml0eSwgIiB0byBiZSBsb2NhdGVkIGluICB0 aGUgIGNpdHkgIG9mCk5ldyBZb3JrLCBmb3IgdGhlIHB1cnBvc2Ugb2YgZXN0YWJsaXNoaW5n IGFuZCBtYWludGFpbmluZyBpbiBzdWNoIGNpdHkgYQpwbGFuZXRhcml1bSB1cG9uIGEgIHNp dGUgIHByb3ZpZGVkICBieSAgdGhlICBhdXRob3JpdGllcyAgb2YgIHN1Y2ggIGNpdHkKYWRq YWNlbnQgIHRvICBUaGUgIEFtZXJpY2FuICBNdXNldW0gIG9mIE5hdHVyYWwgSGlzdG9yeSBp biBzdWNoIGNpdHk7IG9mCmVuY291cmFnaW5nICBhbmQgIGRldmVsb3BpbmcgIHRoZSAgc3R1 ZHkgIG9mICBhc3Ryb25vbWljYWwgIHNjaWVuY2U7ICBvZgphZHZhbmNpbmcgdGhlIGdlbmVy YWwga25vd2xlZGdlIG9mIGtpbmRyZWQgc3ViamVjdHMsIGFuZCB0byB0aGF0IGVuZCwgb2YK ZnVybmlzaGluZyBwb3B1bGFyICBpbnN0cnVjdGlvbi4gICBTdWNoICBhdXRob3JpdHkgIHNo YWxsICBjb25zdGl0dXRlICBhCnB1YmxpYyBiZW5lZml0IGNvcnBvcmF0aW9uLgogIFRoZSAg cHJlc2lkZW50IG9mIHRoZSBhdXRob3JpdHkgc2hhbGwgYmUgdGhlIHByZXNpZGVudCBvZiBU aGUgQW1lcmljYW4KTXVzZXVtIG9mIE5hdHVyYWwgIEhpc3RvcnkuICBUaGUgIG1lbWJlcnMg IG9mICB0aGUgIGF1dGhvcml0eSAgc2hhbGwgIGJlCmVudGl0bGVkICB0byBubyBjb21wZW5z YXRpb24gZm9yIHRoZWlyIHNlcnZpY2VzIGJ1dCBzaGFsbCBiZSBlbnRpdGxlZCB0bwpyZWlt YnVyc2VtZW50IGZvciBhbGwgZXhwZW5zZXMgaW5jdXJyZWQgb3IgdG8gYmUgaW5jdXJyZWQg aW4gIGNvbm5lY3Rpb24Kd2l0aCAgdGhlICBwbGFuZXRhcml1bSBoZXJlYnkgYXV0aG9yaXpl ZC4gTmluZSBtZW1iZXJzIG9mIHRoZSBhdXRob3JpdHksCm9yLCBpZiBuaW5lIGJlIG1vcmUg dGhhbiBhIG1ham9yaXR5ICBvZiAgYWxsICBvZiAgdGhlICBtZW1iZXJzICB0aGVuICBpbgpv ZmZpY2UsICBhICBtYWpvcml0eSBvZiB0aGUgbWVtYmVycyBvZiB0aGUgYXV0aG9yaXR5LCBz aGFsbCBjb25zdGl0dXRlIGEKcXVvcnVtIGF0IGFueSBtZWV0aW5nIG9mIHRoZSAgYm9hcmQs ICBhbmQgIGEgIG1ham9yaXR5ICBvZiAgdGhlICBtZW1iZXJzCnByZXNlbnQgIGF0ICBhICBt ZWV0aW5nICBvZiAgdGhlICBib2FyZCAgYXQgIHdoaWNoIHRoZXJlIGlzIGEgcXVvcnVtIG1h eQpleGVyY2lzZSB0aGUgcG93ZXJzIG9mIHRoZSBhdXRob3JpdHkuIFRoZSBhdXRob3JpdHkg bWF5IGRlbGVnYXRlIHRvICBvbmUKb3IgIG1vcmUgIG9mICBpdHMgbWVtYmVycyBvciB0byBp dHMgb2ZmaWNlcnMsIGFnZW50cyBhbmQgZW1wbG95ZWVzLCBzdWNoCnBvd2VycyBhbmQgZHV0 aWVzIGFzIGl0IG1heSBkZWVtIHByb3Blci4KICBUaGUgIGV4aXN0ZW5jZSAgb2YgIHRoZSAg YXV0aG9yaXR5IHNoYWxsIGNvbnRpbnVlIG9ubHkgZm9yIGEgcGVyaW9kIG9mCmZpdmUgeWVh cnMgYW5kIHRoZXJlYWZ0ZXIgdW50aWwgYWxsIGl0cyBsaWFiaWxpdGllcyBoYXZlICBiZWVu ICBtZXQgIGFuZAppdHMgIGJvbmRzICBoYXZlICBiZWVuICBwYWlkICBpbiAgZnVsbCBvciBz dWNoIGxpYWJpbGl0aWVzIG9yIGJvbmRzIGhhdmUKb3RoZXJ3aXNlIGJlZW4gZGlzY2hhcmdl ZC4gVXBvbiBpdHMgY2Vhc2luZyB0byBleGlzdCwgYWxsICBvZiAgaXRzICByZWFsCnByb3Bl cnR5ICBzaGFsbCAgcGFzcyAgdG8gIHRoZSAgY2l0eSBvZiBOZXcgWW9yayBhbmQgYWxsIG9m IGl0cyBwZXJzb25hbApwcm9wZXJ0eSBzaGFsbCBwYXNzIHRvIFRoZSBBbWVyaWNhbiBNdXNl dW0gb2YgTmF0dXJhbCAgSGlzdG9yeSAgZm9yICBpdHMKY29ycG9yYXRlICBwdXJwb3Nlcy4g ICBUaGVyZXVwb24sIHN1Y2ggcmVhbCBwcm9wZXJ0eSBzaGFsbCBiZSBtYWludGFpbmVkCmFu ZCBvcGVyYXRlZCBpbiB0aGUgc2FtZSBtYW5uZXIgYW5kICBzdWJqZWN0ICB0byAgdGhlICBz YW1lICBwcm92aXNpb25zLApyZXN0cmljdGlvbnMgIGFuZCAgYXV0aG9yaXRpZXMgIGFuZCBi eSB0aGUgc2FtZSBjb3Jwb3JhdGlvbiBhcyB0aGUgb3RoZXIKcHJvcGVydHkgb2YgdGhlIGNp dHkgb2YgTmV3IFlvcmsgd2hpY2ggaXMgbm93IG9jY3VwaWVkIGJ5ICBUaGUgIEFtZXJpY2Fu Ck11c2V1bSBvZiBOYXR1cmFsIEhpc3RvcnkuCgogIFMgNTkuMDcuIFBvd2VycyBvZiB0aGUg YXV0aG9yaXR5LiAgVGhlIGF1dGhvcml0eSBzaGFsbCBoYXZlIHBvd2VyOgogIDEuIFRvIHN1 ZSBhbmQgYmUgc3VlZDsKICAyLiBUbyBoYXZlIGEgc2VhbCBhbmQgYWx0ZXIgdGhlIHNhbWUg YXQgcGxlYXN1cmU7CiAgMy4gVG8gYWNxdWlyZSwgaG9sZCBhbmQgZGlzcG9zZSBvZiBwZXJz b25hbCBwcm9wZXJ0eSBmb3IgaXRzIGNvcnBvcmF0ZQpwdXJwb3NlczsKICA0LiBUbyBtYWtl IGJ5LWxhd3MgZm9yIHRoZSBtYW5hZ2VtZW50IGFuZCByZWd1bGF0aW9uIG9mIGl0cyBhZmZh aXJzOwogIDUuICBXaXRoIHRoZSBjb25zZW50IG9mIFRoZSBBbWVyaWNhbiBNdXNldW0gb2Yg TmF0dXJhbCBIaXN0b3J5LCB0byB1c2UKdGhlIGFnZW50cywgZW1wbG95ZWVzIGFuZCBmYWNp bGl0aWVzIG9mICBzYWlkICBUaGUgIEFtZXJpY2FuICBNdXNldW0gIG9mCk5hdHVyYWwgIEhp c3RvcnksICBwYXlpbmcgIGl0cyAgcHJvcGVyIHByb3BvcnRpb24gb2YgdGhlIGNvbXBlbnNh dGlvbiBvcgpjb3N0OwogIDYuICAgVG8gICBhcHBvaW50ICAgb2ZmaWNlcnMsICBhZ2VudHMg IGFuZCAgZW1wbG95ZWVzICBhbmQgIGZpeCAgdGhlaXIKY29tcGVuc2F0aW9uOwogIDcuICBU byAgbWFrZSAgY29udHJhY3RzICBhbmQgIHRvICBleGVjdXRlIGFsbCBpbnN0cnVtZW50cyBu ZWNlc3Nhcnkgb3IKY29udmVuaWVudDsKICA4LiBCeSBjb250cmFjdCBvciBjb250cmFjdHMg b3IgYnkgaXRzIG93biBlbXBsb3llZXMsIHRvIGNvbnN0cnVjdCBzdWNoCnBsYW5ldGFyaXVt IGJ1aWxkaW5nLCB0b2dldGhlciB3aXRoIGluY2lkZW50YWwgbWFjaGluZXJ5LCBlcXVpcG1l bnQgIGFuZApmYWNpbGl0aWVzOwogIDkuICBUbyAgcHVyY2hhc2UgIG9yICBjb25zdHJ1Y3Qs IG9yIGFjcXVpcmUgYnkgZ2lmdCwgbG9hbiBvciBvdGhlcndpc2UKZnJvbSBUaGUgIEFtZXJp Y2FuICBNdXNldW0gIG9mICBOYXR1cmFsICBIaXN0b3J5ICBvciAgb3RoZXIgIHBlcnNvbnMg IG9yCmNvcnBvcmF0aW9ucywgIGFuZCAgaW5zdGFsbCAgaW4gc3VjaCBwbGFuZXRhcml1bSBi dWlsZGluZywgYSBwbGFuZXRhcml1bQppbnN0cnVtZW50IG9yIGluc3RydW1lbnRzIGFuZCBz dWNoIG90aGVyICBhc3Ryb25vbWljYWwgIGluc3RydW1lbnRzICBhbmQKZXhoaWJpdHMgIGFz ICB0byAgc3VjaCAgYm9hcmQgIHNoYWxsICBzZWVtIGJlc3QgYWRhcHRlZCBmb3IgYXN0cm9u b21pY2FsCmluc3RydWN0aW9uOwogIDEwLiBUbyBtYWludGFpbiwgcmVjb25zdHJ1Y3QgYW5k IG9wZXJhdGUgdGhlIHBsYW5ldGFyaXVtOwogIDExLiAgVG8gIGNoYXJnZSAgYWRtaXNzaW9u IGZlZXMgZm9yIGV4aGliaXRpbmcgdGhlIHBsYW5ldGFyaXVtIG9yIHNvbWUKcGFydCBvciBw YXJ0cyB0aGVyZW9mLCBzdWJqZWN0IHRvIGFuZCBpbiBhY2NvcmRhbmNlIHdpdGggIHNlY3Rp b24gIDU5LjA5Cm9mICB0aGlzICB0aXRsZSAgYW5kICBzdWNoIGFncmVlbWVudHMgd2l0aCBi b25kaG9sZGVycyBhcyBtYXkgYmUgbWFkZSBhcwpoZXJlaW5hZnRlciBwcm92aWRlZDsKICAx Mi4gIFRvICBpc3N1ZSAgbmVnb3RpYWJsZSAgYm9uZHMgYW5kIHRvIHByb3ZpZGUgZm9yIHRo ZSByaWdodHMgb2YgdGhlCmhvbGRlcnMgdGhlcmVvZjsgYW5kCiAgMTMuICBUbyAgZG8gYWxs IHRoaW5ncyBuZWNlc3Nhcnkgb3IgY29udmVuaWVudCB0byBjYXJyeSBvdXQgdGhlIHBvd2Vy cwpleHByZXNzbHkgZ2l2ZW4gYnkgdGhpcyB0aXRsZS4KCiAgUyAgNTkuMDkuICBBZG1pc3Np b24gZmVlcy4gIEluIG9yZGVyIHRoYXQgdGhlIGVkdWNhdGlvbmFsIGluZmx1ZW5jZSBvZgp0 aGUgcGxhbmV0YXJpdW0gc2hhbGwgcmVhY2ggYXMgbWFueSBwZXJzb25zIGFzIHBvc3NpYmxl LCB0aGUgYm9hcmQgc2hhbGwKbm90ICBmaXggIGFkbWlzc2lvbiAgZmVlcywgYXQgcmF0ZXMg aGlnaGVyIHRoYW4gYXJlIG5lY2Vzc2FyeSB0byBwYXkgdGhlCmNvc3QgIG9mICBjb25zdHJ1 Y3Rpb24sICBvcGVyYXRpb24sICBtYWludGVuYW5jZSAgYW5kICByZXBhaXIgICBvZiAgIHRo ZQpwbGFuZXRhcml1bSAgYW5kICBpbnN0cnVjdGlvbiAgaW4gIGNvbm5lY3Rpb24gIHRoZXJl d2l0aCwgYW5kIHRvIHBheSB0aGUKcHJpbmNpcGFsIG9mIGFuZCBpbnRlcmVzdCBvbiBhbnkg Ym9uZHMgaXNzdWVkIGhlcmV1bmRlciwgYW5kIHRvIG1lZXQgdGhlCnJlc2VydmVzICBhbmQg IHNpbmtpbmcgIGZ1bmRzIHByb3ZpZGVkIGZvciBpbiBhbnkgcmVzb2x1dGlvbiBhdXRob3Jp emluZwpzdWNoIGJvbmRzLiBDbGFzc2VzIGZyb20gdGhlIHB1YmxpYyBzY2hvb2xzIGFuZCBj b2xsZWdlcyBvZiB0aGUgY2l0eSAgb2YKTmV3ICBZb3JrICBzaGFsbCAgYmUgIGFkbWl0dGVk IHRvIHRoZSBwbGFuZXRhcml1bSB3aXRob3V0IGNoYXJnZSBhdCBzdWNoCnRpbWVzIGFuZCB1 cG9uIHN1Y2ggZGF5cyBvZiB0aGUgd2VlayBhbmQgdW5kZXIgc3VjaCByZWFzb25hYmxlIHJ1 bGVzIGFuZApyZWd1bGF0aW9ucyBhcyB0aGUgYm9hcmQgc2hhbGwgcHJlc2NyaWJlLgoKICBT IDU5LjExLiBNb25leXMgb2YgdGhlIGF1dGhvcml0eS4gVGhlIG1vbmV5cyBpbiB0aGUgZGVw b3NpdCBhY2NvdW50IG9mCnRoZSBhdXRob3JpdHkgc2hhbGwgYmUgcGFpZCBvdXQgb24gY2hl Y2tzIHNpZ25lZCBieSB0aGUgcHJlc2lkZW50IG9mIHRoZQphdXRob3JpdHkgIG9yICBieSAg c3VjaCAgb3RoZXIgIHBlcnNvbiAgb3IgIHBlcnNvbnMgYXMgdGhlIGF1dGhvcml0eSBtYXkK YXV0aG9yaXplLiBBbGwgZGVwb3NpdHMgIG9mICBzdWNoICBtb25leXMgIHNoYWxsLCAgaWYg IHJlcXVpcmVkICBieSAgdGhlCmF1dGhvcml0eSwgIGJlICBzZWN1cmVkIGJ5IG9ibGlnYXRp b25zIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9yIHRoZSBzdGF0ZQpvZiBOZXcgWW9yaywgb2Yg YSBtYXJrZXQgdmFsdWUgZXF1YWwgYXQgYWxsIHRpbWVzIHRvIHRoZSBhbW91bnQgIG9mICB0 aGUKZGVwb3NpdCAgYW5kICBhbGwgIGJhbmtzIGFuZCB0cnVzdCBjb21wYW5pZXMgYXJlIGF1 dGhvcml6ZWQgdG8gZ2l2ZSBzdWNoCnNlY3VyaXR5IGZvciBzdWNoIGRlcG9zaXRzLiBUaGUg Y29tcHRyb2xsZXIgb2YgdGhlIGNpdHkgb2YgTmV3IFlvcmsgIGFuZApoaXMgICBsZWdhbGx5 ICBhdXRob3JpemVkICByZXByZXNlbnRhdGl2ZXMgIGFyZSAgaGVyZWJ5ICBhdXRob3JpemVk ICBhbmQKZW1wb3dlcmVkIGZyb20gdGltZSB0byB0aW1lIHRvIGV4YW1pbmUgdGhlIGFjY291 bnRzICBhbmQgIGJvb2tzICBvZiAgdGhlCmF1dGhvcml0eSwgIGluY2x1ZGluZyAgaXRzICBy ZWNlaXB0cywgIGRpc2J1cnNlbWVudHMsIGNvbnRyYWN0cywgc2lua2luZwpmdW5kcywgaW52 ZXN0bWVudHMgYW5kIGFueSAgb3RoZXIgIG1hdHRlcnMgIHJlbGF0aW5nICB0byAgaXRzICBm aW5hbmNpYWwKc3RhbmRpbmcuCgogIFMgNTkuMTMuIEJvbmRzIG9mIHRoZSBhdXRob3JpdHku IDEuIFRoZSBhdXRob3JpdHkgc2hhbGwgaGF2ZSBwb3dlciBhbmQKaXMgaGVyZWJ5IGF1dGhv cml6ZWQgZnJvbSB0aW1lIHRvIHRpbWUgdG8gaXNzdWUgaXRzIG5lZ290aWFibGUgYm9uZHMg IGluCmNvbmZvcm1pdHkgIHdpdGggYXBwbGljYWJsZSBwcm92aXNpb25zIG9mIHRoZSB1bmlm b3JtIGNvbW1lcmNpYWwgY29kZSBpbgp0aGUgYWdncmVnYXRlIHByaW5jaXBhbCBhbW91bnQg b2Ygbm90IGV4Y2VlZGluZyBvbmUgbWlsbGlvbiBkb2xsYXJzLiBUaGUKYXV0aG9yaXR5ICBz aGFsbCBoYXZlIHBvd2VyIGZyb20gdGltZSB0byB0aW1lIHRvIHJlZnVuZCBhbnkgYm9uZHMg YnkgdGhlCmlzc3VhbmNlIG9mIG5ldyBib25kcywgd2hldGhlciB0aGUgYm9uZHMgdG8gYmUg cmVmdW5kZWQgaGF2ZSBvciBoYXZlIG5vdAptYXR1cmVkLCBhbmQgbWF5IGlzc3VlIGJvbmRz IHBhcnRseSB0byByZWZ1bmQgYm9uZHMgdGhlbiBvdXRzdGFuZGluZyBhbmQKcGFydGx5IGZv ciBhbnkgb3RoZXIgY29ycG9yYXRlIHB1cnBvc2UuIEluIGNvbXB1dGluZyB0aGUgdG90YWwg YW1vdW50IG9mCmJvbmRzICBvZiAgdGhlIGF1dGhvcml0eSB3aGljaCBtYXkgYXQgYW55IHRp bWUgYmUgb3V0c3RhbmRpbmcgdGhlIGFtb3VudApvZiB0aGUgb3V0c3RhbmRpbmcgYm9uZHMg dG8gYmUgcmVmdW5kZWQgZnJvbSB0aGUgcHJvY2VlZHMgb2YgdGhlIHNhbGUgb2YKbmV3IGJv bmRzIG9yIGJ5IGV4Y2hhbmdlIGZvciBuZXcgYm9uZHMgc2hhbGwgYmUgZXhjbHVkZWQuCiAg Mi4gU3VjaCBib25kcyBzaGFsbCBiZSBhdXRob3JpemVkIGJ5IHJlc29sdXRpb24gb2YgdGhl IGJvYXJkIGFuZCBzaGFsbApiZWFyIHN1Y2ggZGF0ZSBvciBkYXRlcywgbWF0dXJlIGF0IHN1 Y2ggIHRpbWUgIG9yICB0aW1lcyAgbm90ICBleGNlZWRpbmcKdHdlbnR5LWZpdmUgIHllYXJz ICBmcm9tICB0aGVpciAgcmVzcGVjdGl2ZSBkYXRlcywgYmVhciBpbnRlcmVzdCBhdCBzdWNo CnJhdGUgIG9yICByYXRlcyAgYXMgIGFwcHJvdmVkICBieSAgIHRoZSAgIHN0YXRlICAgY29t cHRyb2xsZXIsICAgcGF5YWJsZQpzZW1pLWFubnVhbGx5LCAgYmUgaW4gc3VjaCBkZW5vbWlu YXRpb25zLCBiZSBpbiBzdWNoIGZvcm0sIGVpdGhlciBjb3Vwb24Kb3IgcmVnaXN0ZXJlZCwg Y2Fycnkgc3VjaCByZWdpc3RyYXRpb24gcHJpdmlsZWdlcywgYmUgZXhlY3V0ZWQgIGluICBz dWNoCm1hbm5lciwgIGJlICBwYXlhYmxlICBpbiBzdWNoIG1lZGl1bSBvZiBwYXltZW50IGF0 IHN1Y2ggcGxhY2Ugb3IgcGxhY2VzLAphbmQgYmUgc3ViamVjdCB0byBzdWNoIHRlcm1zIG9m IHJlZGVtcHRpb24gbm90IGV4Y2VlZGluZyBwYXIgYW5kIGFjY3J1ZWQKaW50ZXJlc3QgIGFz ICBzdWNoIHJlc29sdXRpb24gb3IgcmVzb2x1dGlvbnMgbWF5IHByb3ZpZGUuIFN1Y2ggYm9u ZHMgbWF5CmJlIHNvbGQgYXQgcHVibGljIG9yIHByaXZhdGUgc2FsZSAgZm9yICBzdWNoICBw cmljZSAgb3IgIHByaWNlcyAgYXMgIHRoZQphdXRob3JpdHkgc2hhbGwgZGV0ZXJtaW5lLgog IDMuICBTdWNoICBib25kcyAgbWF5ICBiZSAgaXNzdWVkICBmb3IgIGFueSAgY29ycG9yYXRl ICBwdXJwb3NlcyBvZiB0aGUKYXV0aG9yaXR5LgogIDQuICBBbnkgIHJlc29sdXRpb24gIG9y ICByZXNvbHV0aW9ucyBhdXRob3JpemluZyBhbnkgYm9uZHMgbWF5IGNvbnRhaW4KcHJvdmlz aW9ucyB3aGljaCBzaGFsbCBiZSBhIHBhcnQgb2YgdGhlIGNvbnRyYWN0IHdpdGggdGhlIGhv bGRlcnMgb2YgdGhlCmJvbmRzLCBhcyB0bwogIChhKSAgUGxlZGdpbmcgdGhlIHJldmVudWVz IG9mIHRoZSBwbGFuZXRhcml1bSB0byBzZWN1cmUgdGhlIHBheW1lbnQgb2YKdGhlIGJvbmRz OwogIChiKSAgVGhlICBhZG1pc3Npb24gIGZlZXMgIHRvICBiZSAgY2hhcmdlZCAgZm9yICB0 aGUgZXhoaWJpdGlvbiBvZiB0aGUKcGxhbmV0YXJpdW0gYW5kIHRoZSBhbW91bnQgdG8gYmUg cmFpc2VkIGluIGVhY2ggeWVhciBieSAgYWRtaXNzaW9uICBmZWVzCmFuZCB0aGUgdXNlIGFu ZCBkaXNwb3NpdGlvbiBvZiBzdWNoIGZlZXMgYW5kIG90aGVyIHJldmVudWVzOwogIChjKSAg VGhlIHNldHRpbmcgYXNpZGUgb2YgcmVzZXJ2ZXMgb3Igc2lua2luZyBmdW5kcyBhbmQgdGhl IHJlZ3VsYXRpb24Kb3IgZGlzcG9zaXRpb24gdGhlcmVvZjsKICAoZCkgVGhlIHVzZSBhbmQg ZXhoaWJpdGlvbiBvZiB0aGUgcGxhbmV0YXJpdW07CiAgKGUpICBMaW1pdGF0aW9ucyAgb24g IHRoZSBwdXJwb3NlIHRvIHdoaWNoIHRoZSBwcm9jZWVkcyBvZiBzYWxlIG9mIGFueQppc3N1 ZSBvZiBib25kcyB0aGVuIG9yIHRoZXJlYWZ0ZXIgdG8gYmUgaXNzdWVkIG1heSBiZSBhcHBs aWVkOwogIChmKSBMaW1pdGF0aW9ucyBvbiB0aGUgaXNzdWFuY2Ugb2YgYWRkaXRpb25hbCBi b25kczsKICAoZykgIFRoZSAgcHJvY2VkdXJlLCAgaWYgIGFueSwgYnkgd2hpY2ggdGhlIHRl cm1zIG9mIGFueSBjb250cmFjdCB3aXRoCmJvbmRob2xkZXJzIG1heSBiZSBhbWVuZGVkIG9y IGFicm9nYXRlZCwgdGhlIGFtb3VudCBvZiBib25kcyB0aGUgaG9sZGVycwpvZiAgd2hpY2gg IG11c3QgY29uc2VudCB0aGVyZXRvIGFuZCB0aGUgbWFubmVyIGluIHdoaWNoIHN1Y2ggY29u c2VudCBtYXkKYmUgZ2l2ZW4uCiAgNS4gIE5laXRoZXIgIHRoZSAgbWVtYmVycyAgb2YgIHRo ZSBib2FyZCBub3IgYW55IHBlcnNvbiBleGVjdXRpbmcgc3VjaApib25kcyBzaGFsbCBiZSBs aWFibGUgcGVyc29uYWxseSBvbiB0aGUgIGJvbmRzICBvciAgYmUgIHN1YmplY3QgIHRvICBh bnkKcGVyc29uYWwgIGxpYWJpbGl0eSBvciBhY2NvdW50YWJpbGl0eSBieSByZWFzb24gb2Yg dGhlIGlzc3VhbmNlIHRoZXJlb2YuCiAgNi4gIFRoZSBhdXRob3JpdHkgc2hhbGwgaGF2ZSBw b3dlciBvdXQgb2YgYW55IGZ1bmRzIGF2YWlsYWJsZSB0aGVyZWZvcgp0byBwdXJjaGFzZSBh bnkgYm9uZHMgaXNzdWVkIGJ5IGl0IGF0IGEgcHJlbWl1bSBvZiBub3QgIG1vcmUgIHRoYW4g IGZvdXIKcGVyY2VudHVtICBhbmQgIGFjY3J1ZWQgIGludGVyZXN0LiAgQWxsICBib25kcyAg c28gIHB1cmNoYXNlZCAgc2hhbGwgIGJlCmNhbmNlbGxlZC4KCiAgUyAgNTkuMTUuICBTdGF0 ZSAgYW5kICBjaXR5ICBub3QgIGxpYWJsZSBvbiBib25kcy4gVGhlIGJvbmRzIGFuZCBvdGhl cgpvYmxpZ2F0aW9ucyBvZiB0aGUgYXV0aG9yaXR5IHNoYWxsIG5vdCBiZSBhIGRlYnQgb2Yg IHRoZSAgc3RhdGUgIG9mICBOZXcKWW9yayAgb3IgIGNpdHkgIG9mIE5ldyBZb3JrIGFuZCBu ZWl0aGVyIHRoZSBzdGF0ZSBub3Igc3VjaCBjaXR5IHNoYWxsIGJlCmxpYWJsZSB0aGVyZW9u LCBub3Igc2hhbGwgdGhleSBiZSBwYXlhYmxlIG91dCBvZiBhbnkgIGZ1bmRzICBvdGhlciAg dGhhbgp0aG9zZSBvZiB0aGUgYXV0aG9yaXR5LgoKICBTIDU5LjE3LiBCb25kcyBsZWdhbCBp bnZlc3RtZW50cyBmb3IgZmlkdWNpYXJpZXMuIFRoZSBib25kcyBhcmUgaGVyZWJ5Cm1hZGUg c2VjdXJpdGllcyBpbiB3aGljaCBhbGwgcHVibGljIG9mZmljZXJzIGFuZCBib2RpZXMgIG9m ICB0aGlzICBzdGF0ZQphbmQgICBhbGwgIG11bmljaXBhbGl0aWVzICBhbmQgIG11bmljaXBh bCAgc3ViZGl2aXNpb25zLCAgYWxsICBpbnN1cmFuY2UKY29tcGFuaWVzIGFuZCBhc3NvY2lh dGlvbnMsIGFsbCBzYXZpbmdzIGJhbmtzIGFuZCBzYXZpbmdzICBpbnN0aXR1dGlvbnMsCmlu Y2x1ZGluZyAgc2F2aW5ncyAgYW5kICBsb2FuICBhc3NvY2lhdGlvbnMsICBhZG1pbmlzdHJh dG9ycywgZ3VhcmRpYW5zLApleGVjdXRvcnMsIHRydXN0ZWVzIGFuZCBvdGhlciBmaWR1Y2lh cmllcyBpbiB0aGUgc3RhdGUgbWF5IHByb3Blcmx5ICBhbmQKbGVnYWxseSBpbnZlc3QgZnVu ZHMgaW4gdGhlaXIgY29udHJvbC4KCiAgUyAgNTkuMTkuICBCb25kcyAgdG8gIGJlICB0YXgg IGV4ZW1wdC4gIFRoZSBib25kcyBzaGFsbCBiZSBleGVtcHQgZnJvbQp0YXhhdGlvbiBleGNl cHQgZm9yIHRyYW5zZmVyIGFuZCBlc3RhdGUgdGF4ZXMuCgogIFMgIDU5LjIxLiAgUmVtZWRp ZXMgb2YgYm9uZGhvbGRlcnMuIDEuIEluIHRoZSBldmVudCB0aGF0IHRoZSBhdXRob3JpdHkK c2hhbGwgZGVmYXVsdCBpbiB0aGUgcGF5bWVudCBvZiBwcmluY2lwYWwgb2Ygb3IgaW50ZXJl c3Qgb24gYW55ICBvZiAgdGhlCmJvbmRzICBhZnRlciB0aGUgc2FtZSBzaGFsbCBiZWNvbWUg ZHVlLCB3aGV0aGVyIGF0IG1hdHVyaXR5IG9yIHVwb24gY2FsbApmb3IgcmVkZW1wdGlvbiwg YW5kIHN1Y2ggZGVmYXVsdCBzaGFsbCBjb250aW51ZSBmb3IgYSBwZXJpb2QgIG9mICB0aGly dHkKZGF5cywgIG9yIGluIHRoZSBldmVudCB0aGF0IHRoZSBhdXRob3JpdHkgc2hhbGwgZmFp bCBvciByZWZ1c2UgdG8gY29tcGx5CndpdGggdGhlIHByb3Zpc2lvbnMgb2YgdGhpcyB0aXRs ZSwgb3Igc2hhbGwgIGRlZmF1bHQgIGluICBhbnkgIGFncmVlbWVudAptYWRlIHdpdGggdGhl IGhvbGRlcnMgb2YgdGhlIGJvbmRzLCB0aGUgaG9sZGVycyBvZiB0d2VudHktZml2ZSBwZXJj ZW50dW0KaW4gIGFnZ3JlZ2F0ZSAgcHJpbmNpcGFsICBhbW91bnQgIG9mICB0aGUgIGJvbmRz ICB0aGVuICBvdXRzdGFuZGluZyAgIGJ5Cmluc3RydW1lbnQgb3IgaW5zdHJ1bWVudHMgZmls ZWQgaW4gdGhlIG9mZmljZSBvZiB0aGUgY2xlcmsgb2YgdGhlIGNvdW50eQpvZiBOZXcgWW9y ayBhbmQgcHJvdmVkIG9yIGFja25vd2xlZGdlZCBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgYSAg ZGVlZCAgdG8KYmUgIHJlY29yZGVkICBtYXkgYXBwb2ludCBhIHRydXN0ZWUgdG8gcmVwcmVz ZW50IHRoZSBib25kaG9sZGVycyBmb3IgdGhlCnB1cnBvc2VzIGhlcmVpbiBwcm92aWRlZDsK ICAyLiAgU3VjaCAgdHJ1c3RlZSAgbWF5LCAgYW5kICB1cG9uICB3cml0dGVuICByZXF1ZXN0 IG9mIHRoZSBob2xkZXJzIG9mCnR3ZW50eS1maXZlICBwZXJjZW50dW0gIGluICB0aGUgIHBy aW5jaXBhbCAgYW1vdW50ICBvZiAgdGhlICBib25kcyAgdGhlbgpvdXRzdGFuZGluZyBzaGFs bCwgaW4gaGlzIG9yIGl0cyBvd24gbmFtZToKICAoYSkgIEJ5ICBzdWl0LCAgYWN0aW9uIG9y IHNwZWNpYWwgcHJvY2VlZGluZyBlbmZvcmNlIGFsbCByaWdodHMgb2YgdGhlCmJvbmRob2xk ZXJzLCBpbmNsdWRpbmcgdGhlIHJpZ2h0IHRvIHJlcXVpcmUgdGhlIGF1dGhvcml0eSBhbmQg dGhlICBib2FyZAp0byAgY29sbGVjdCBhZG1pc3Npb24gZmVlcyBhZGVxdWF0ZSB0byBjYXJy eSBvdXQgYW55IGFncmVlbWVudCBhcyB0bywgb3IKcGxlZGdlIG9mLCBzdWNoIGFkbWlzc2lv biBmZWVzLCBhbmQgdG8gcmVxdWlyZSAgdGhlICBhdXRob3JpdHkgIGFuZCAgdGhlCmJvYXJk ICB0byAgY2FycnkgIG91dCAgYW55ICBvdGhlciBhZ3JlZW1lbnRzIHdpdGggdGhlIGJvbmRo b2xkZXJzIGFuZCB0bwpwZXJmb3JtIGl0cyBhbmQgdGhlaXIgZHV0aWVzIHVuZGVyIHRoaXMg dGl0bGU7CiAgKGIpIEJyaW5nIHN1aXQgdXBvbiB0aGUgYm9uZHM7CiAgKGMpICBCeSAgYWN0 aW9uIG9yIHN1aXQgaW4gZXF1aXR5LCByZXF1aXJlIHRoZSBhdXRob3JpdHkgdG8gYWNjb3Vu dCBhcwppZiBpdCB3ZXJlIHRoZSB0cnVzdGVlIG9mIGFuIGV4cHJlc3MgdHJ1c3QgZm9yIHRo ZSBib25kaG9sZGVyczsKICAoZCkgIEJ5ICBhY3Rpb24gb3Igc3VpdCBpbiBlcXVpdHksIGVu am9pbiBhbnkgYWN0cyBvciB0aGluZ3Mgd2hpY2ggbWF5CmJlIHVubGF3ZnVsIG9yIGluIHZp b2xhdGlvbiBvZiB0aGUgcmlnaHRzIG9mIHRoZSBib25kaG9sZGVyczsKICAoZSkgIERlY2xh cmUgIGFsbCAgYm9uZHMgZHVlIGFuZCBwYXlhYmxlLCBhbmQgaWYgYWxsIGRlZmF1bHRzIHNo YWxsIGJlCm1hZGUgZ29vZCBhbm51bCwgdXBvbiB0aGUgd3JpdHRlbiBjb25zZW50IG9mIHRo ZSBob2xkZXJzIG9mICB0d2VudHktZml2ZQpwZXJjZW50dW0gIGluICBwcmluY2lwYWwgIGFt b3VudCAgb2YgIHRoZSAgYm9uZHMgIHRoZW4gb3V0c3RhbmRpbmcsIHN1Y2gKZGVjbGFyYXRp b24gYW5kIGl0cyBjb25zZXF1ZW5jZXMuCiAgMy4gIFRoZSAgc3VwcmVtZSAgY291cnQgc2hh bGwgaGF2ZSBqdXJpc2RpY3Rpb24gb2YgYW55IHN1aXQsIGFjdGlvbiBvcgpwcm9jZWVkaW5n IGJ5IHRoZSB0cnVzdGVlIG9uIGJlaGFsZiBvZiB0aGUgYm9uZGhvbGRlcnMuIFRoZSB2ZW51 ZSBvZiBhbnkKc3VjaCBzdWl0LCBhY3Rpb24gb3IgcHJvY2VlZGluZyBzaGFsbCBiZSBsYWlk IGluIE5ldyBZb3JrIGNvdW50eS4KICA0LiAgQmVmb3JlICBkZWNsYXJpbmcgIHRoZSAgcHJp bmNpcGFsIG9mIGFsbCBib25kcyBkdWUgYW5kIHBheWFibGUgdGhlCnRydXN0ZWUgIHNoYWxs ICBmaXJzdCAgZ2l2ZSAgdGhpcnR5ICBkYXlzYCAgbm90aWNlICBpbiAgd3JpdGluZyAgdG8g IHRoZQphdXRob3JpdHkuCiAgNS4gIEFueSAgc3VjaCB0cnVzdGVlLCB3aGV0aGVyIG9yIG5v dCBhbGwgYm9uZHMgaGF2ZSBiZWVuIGRlY2xhcmVkIGR1ZQphbmQgcGF5YWJsZSwgc2hhbGwg YmUgZW50aXRsZWQgYXMgb2YgIHJpZ2h0ICB0byAgdGhlICBhcHBvaW50bWVudCAgb2YgIGEK cmVjZWl2ZXIgIHdobyAgbWF5ICBlbnRlciAgYW5kIHRha2UgcG9zc2Vzc2lvbiBvZiB0aGUg cGxhbmV0YXJpdW0gb3IgYW55CnBhcnQgb3IgcGFydHMgdGhlcmVvZiBhbmQgb3BlcmF0ZSBh bmQgbWFpbnRhaW4gdGhlIHNhbWUgYW5kIGNvbGxlY3QgIGFuZApyZWNlaXZlICBhbGwgIGFk bWlzc2lvbiAgZmVlcyAgYW5kICBvdGhlciAgcmV2ZW51ZXMgIHRoZXJlYWZ0ZXIgIGFyaXNp bmcKdGhlcmVmcm9tIGluIHRoZSBzYW1lIG1hbm5lciBhcyB0aGUgYXV0aG9yaXR5IGl0c2Vs ZiBtaWdodCBkbyBhbmQgIHNoYWxsCmRlcG9zaXQgYWxsIHN1Y2ggbW9uZXlzIGluIGEgc2Vw YXJhdGUgYWNjb3VudCBhbmQgYXBwbHkgdGhlIHNhbWUgaW4gc3VjaAptYW5uZXIgYXMgdGhl IGNvdXJ0IHNoYWxsIGRpcmVjdC4gSW4gYW55IHN1aXQsIGFjdGlvbiBvciAgcHJvY2VlZGlu ZyAgYnkKdGhlICB0cnVzdGVlICB0aGUgIGZlZXMsIGNvdW5zZWwgZmVlcyBhbmQgZXhwZW5z ZXMgb2YgdGhlIHRydXN0ZWUgYW5kIG9mCnRoZSByZWNlaXZlciwgaWYgYW55LCBzaGFsbCBj b25zdGl0dXRlICB0YXhhYmxlICBkaXNidXJzZW1lbnRzICBhbmQgIGFsbApjb3N0cyAgYW5k IGRpc2J1cnNlbWVudHMgYWxsb3dlZCBieSB0aGUgY291cnQgc2hhbGwgYmUgYSBmaXJzdCBj aGFyZ2Ugb24KYW55IGFkbWlzc2lvbiBmZWVzIGFuZCBvdGhlciByZXZlbnVlcyBkZXJpdmVk IGZyb20gdGhlIHBsYW5ldGFyaXVtLgogIDYuICBTdWNoICB0cnVzdGVlICBzaGFsbCBpbiBh ZGRpdGlvbiB0byB0aGUgZm9yZWdvaW5nIGhhdmUgYW5kIHBvc3Nlc3MKYWxsIG9mIHRoZSBw b3dlcnMgbmVjZXNzYXJ5IG9yICBhcHByb3ByaWF0ZSAgZm9yICB0aGUgIGV4ZXJjaXNlICBv ZiAgYW55CmZ1bmN0aW9ucyAgc3BlY2lmaWNhbGx5ICBzZXQgIGZvcnRoICBoZXJlaW4gIG9y ICBpbmNpZGVudCB0byB0aGUgZ2VuZXJhbApyZXByZXNlbnRhdGlvbiBvZiB0aGUgYm9uZGhv bGRlcnMgaW4gdGhlIGVuZm9yY2VtZW50IGFuZCAgcHJvdGVjdGlvbiAgb2YKdGhlaXIgcmln aHRzLgoKICBTICA1OS4yMy4gIE1lbWJlcnMgIGFuZCBlbXBsb3llZXMgbm90IHRvIHByb2Zp dC4gTm8gb2ZmaWNlciwgbWVtYmVyIG9yCmVtcGxveWVlIG9mIHRoZSBjb3Jwb3JhdGlvbiBz aGFsbCByZWNlaXZlIG9yIG1heSBiZSBsYXdmdWxseSBlbnRpdGxlZCB0bwpyZWNlaXZlICAg YW55ICAgcGVjdW5pYXJ5ICBwcm9maXQgIGZyb20gIHRoZSAgb3BlcmF0aW9uICB0aGVyZW9m ICBleGNlcHQKcmVhc29uYWJsZSBjb21wZW5zYXRpb24gZm9yIHNlcnZpY2VzIGluIGVmZmVj dGluZyBvbmUgIG9yICBtb3JlICBvZiAgaXRzCnB1cnBvc2VzIGhlcmVpbiBzZXQgZm9ydGgu CgogIFMgIDU5LjI1LiAgVmlzaXRhdGlvbiAgYnkgcmVnZW50cy4gVGhlIHJlZ2VudHMsIG9y IHRoZSBjb21taXNzaW9uZXIgb2YKZWR1Y2F0aW9uLCAgb3IgIHRoZWlyICByZXByZXNlbnRh dGl2ZXMsICBtYXkgIHZpc2l0LCAgZXhhbWluZSAgaW50byAgYW5kCmluc3BlY3QsICAgdGhl ICAgYXV0aG9yaXR5ICBhcyAgYW4gIGluc3RpdHV0aW9uICB1bmRlciAgdGhlICBlZHVjYXRp b25hbApzdXBlcnZpc2lvbiBvZiB0aGUgc3RhdGUsIGFuZCBtYXkgcmVxdWlyZSwgYXMgIG9m dGVuICBhcyAgZGVzaXJlZCwgIGR1bHkKdmVyaWZpZWQgIHJlcG9ydHMgIHRoZXJlZnJvbSBn aXZpbmcgc3VjaCBpbmZvcm1hdGlvbiBhbmQgaW4gc3VjaCBmb3JtIGFzCnRoZSByZWdlbnRz IG9yIHRoZSBjb21taXNzaW9uZXIgb2YgZWR1Y2F0aW9uIHNoYWxsIHByZXNjcmliZS4KClMg NTkuMjcuIEFwcGxpY2F0aW9uIG9mIGxhdy4gQWxsIG9mIHRoZSBnZW5lcmFsIHByb3Zpc2lv bnMgb2YgdGhlIHB1YmxpYwphdXRob3JpdGllcyBsYXcgb3Igb2YgYW55IG90aGVyIGxhdyBz aGFsbCBhcHBseSB0byB0aGUgYXV0aG9yaXR5ICBoZXJlaW4KY29udGludWVkICBpbiAgdGhl ICBzYW1lICBtYW5uZXIgYXMgaWYgdGhlIGxhbmd1YWdlIG9mIHN1Y2ggbGF3IGhhZCBiZWVu CmluY29ycG9yYXRlZCBpbiBmdWxsIGludG8gdGhpcyBhcnRpY2xlLCBleGNlcHQgdG8gdGhl IGV4dGVudCAgdGhhdCAgc3VjaApwcm92aXNpb25zIGFyZSBpbmNvbnNpc3RlbnQgd2l0aCB0 aGUgcHJvdmlzaW9ucyBvZiB0aGlzIGFydGljbGUuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t TmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZm YWlycwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSVElDTEUgNjAKICAgICAg ICAgICAgICAgICBTQUxFIE9GIEFVVE9HUkFQSEVEIFNQT1JUUyBDT0xMRUNUSUJMRVMKU2Vj dGlvbiA2MC4wMS4gRGVmaW5pdGlvbnMuCiAgICAgICAgNjAuMDIuIENlcnRpZmljYXRlIG9m IGF1dGhlbnRpY2l0eTsgY29udGVudHMuCiAgICAgICAgNjAuMDMuIFByb2hpYml0aW9ucy4K ICAgICAgICA2MC4wNC4gRGlzY2xvc3VyZSByZXF1aXJlZC4KICAgICAgICA2MC4wNS4gUHJp dmF0ZSByZW1lZGllcy4KICAgICAgICA2MC4wNi4gRW5mb3JjZW1lbnQgYnkgYXR0b3JuZXkg Z2VuZXJhbC4KCiAgUyAgNjAuMDEuICBEZWZpbml0aW9ucy4gIEFzICB1c2VkIGluIHRoaXMg YXJ0aWNsZSwgdGhlIGZvbGxvd2luZyB0ZXJtcwpzaGFsbCBoYXZlIHRoZSBmb2xsb3dpbmcg bWVhbmluZ3M6CiAgMS4gICJBdXRvZ3JhcGhlZCIgIG1lYW5zICBiZWFyaW5nICB0aGUgIGFj dHVhbCAgc2lnbmF0dXJlICBvZiBhIHNwb3J0cwpwZXJzb25hbGl0eSwgc2lnbmVkIGJ5IHN1 Y2ggaW5kaXZpZHVhbGBzIG93biBoYW5kLgogIDIuICAiQ29sbGVjdGlibGUiICBtZWFucyBh biBhdXRvZ3JhcGhlZCBzcG9ydHMgaXRlbSBpbmNsdWRpbmcsIGJ1dCBub3QKbGltaXRlZCB0 bywgYSBwaG90b2dyYXBoLCBib29rLCB0aWNrZXQsIHBsYXF1ZSwgc3BvcnRzIHByb2dyYW0s ICB0cmFkaW5nCmNhcmQsICBpdGVtIG9mIHNwb3J0cyBlcXVpcG1lbnQgb3IgY2xvdGhpbmcs IG9yIG90aGVyIHNwb3J0cyBtZW1vcmFiaWxpYQpzb2xkIG9yIG9mZmVyZWQgZm9yIHNhbGUg aW4gb3IgZnJvbSB0aGlzIHN0YXRlIGJ5IGEgZGVhbGVyIHRvIGEgY29uc3VtZXIKZm9yIHR3 ZW50eS1maXZlIGRvbGxhcnMgb3IgbW9yZS4KICAzLiAgIkNvbnN1bWVyIiAgbWVhbnMgIGFu eSBuYXR1cmFsIHBlcnNvbiB3aG8gcHVyY2hhc2VzIGFuIGF1dG9ncmFwaGVkCnNwb3J0cyBj b2xsZWN0aWJsZSBmcm9tIGEgIGRlYWxlciAgZm9yICBwZXJzb25hbCwgIGZhbWlseSAgb3Ig IGhvdXNlaG9sZApwdXJwb3Nlcy4KICA0LiAgIkRlYWxlciIgIG1lYW5zICBhICBwZXJzb24g IHdobyAgaXMgIGluIHRoZSBidXNpbmVzcyBvZiBzZWxsaW5nIG9yCm9mZmVyaW5nIGZvciBz YWxlIGluIG9yIGZyb20gdGhpcyBzdGF0ZSwgZXhjbHVzaXZlbHkgb3Igbm9uLWV4Y2x1c2l2 ZWx5LAphdXRvZ3JhcGhlZCAgc3BvcnRzIGNvbGxlY3RpYmxlcyBvciBhIHBlcnNvbiB3aG8g YnkgaGlzIG9jY3VwYXRpb24gaG9sZHMKaGltc2VsZiBvdXQgYXMgaGF2aW5nIGtub3dsZWRn ZSBvciBza2lsbCBwZWN1bGlhciB0byBzdWNoICBjb2xsZWN0aWJsZXMsCm9yICB0byAgd2hv bSBzdWNoIGtub3dsZWRnZSBvciBza2lsbCBtYXkgYmUgYXR0cmlidXRlZCBieSBoaXMgZW1w bG95bWVudApvZiBhbiBhZ2VudCBvciBvdGhlciBpbnRlcm1lZGlhcnkgd2hvIGJ5IGhpcyAg b2NjdXBhdGlvbiAgaG9sZHMgIGhpbXNlbGYKb3V0ICBhcyAgaGF2aW5nICBzdWNoICBrbm93 bGVkZ2Ugb3Igc2tpbGwuIFRoZSB0ZXJtICJkZWFsZXIiIGluY2x1ZGVzIGFuCmF1Y3Rpb25l ZXIgd2hvIHNlbGxzIHN1Y2ggY29sbGVjdGlibGVzIGF0IHB1YmxpYyBhdWN0aW9uLCAgYW5k ICBpbmNsdWRlcwpwZXJzb25zIHdobyBhcmUgY29uc2lnbm9ycyBvciBwcmluY2lwYWxzIG9m IGF1Y3Rpb25lZXJzLgogIDUuICAiRGVzY3JpcHRpb24iICBtZWFucyAgYW55IHJlcHJlc2Vu dGF0aW9uIGluIHdyaXRpbmcsIGluY2x1ZGluZyBidXQKbm90IGxpbWl0ZWQgdG8gYSByZXBy ZXNlbnRhdGlvbiBjb250YWluZWQgaW4gYW4gYWR2ZXJ0aXNlbWVudCwgIGludm9pY2UsCmNh dGFsb2csICBmbHllciwgIHNpZ24sICBicm9jaHVyZSwgIG9yICBvdGhlciAgY29tbWVyY2lh bCBvciBwcm9tb3Rpb25hbAptYXRlcmlhbC4gU3VjaCB0ZXJtIHNoYWxsIGFsc28gaW5jbHVk ZSBhIHJlcHJlc2VudGF0aW9uIGNvbnRhaW5lZCAgaW4gIGEKcHJlcGFyZWQgIHNjcmlwdCAg YW5kICBtYWRlICBmb3IgIHRoZSAgcHVycG9zZSBvZiBzZWxsaW5nIGFuIGF1dG9ncmFwaGVk CnNwb3J0cyBjb2xsZWN0aWJsZSBpbiBhIHJhZGlvIG9yIHRlbGV2aXNpb24gYnJvYWRjYXN0 IHRvIHRoZSAgcHVibGljICBpbgpvciBmcm9tIHRoaXMgc3RhdGUuCiAgNi4gICJQZXJzb24i ICBtZWFucyAgYW55ICBuYXR1cmFsICBwZXJzb24sICBwYXJ0bmVyc2hpcCwgIGNvcnBvcmF0 aW9uLApjb21wYW55LCB0cnVzdCwgYXNzb2NpYXRpb24gb3Igb3RoZXIgZW50aXR5LCBob3dl dmVyIG9yZ2FuaXplZC4KICA3LiAgIlN1cHBsaWVyIiAgbWVhbnMgYW55IHBlcnNvbiB3aG8g cHJvdmlkZXMgY29sbGVjdGlibGVzIHRvIGEgZGVhbGVyCnNwZWNpZmljYWxseSBmb3IgdGhl IHB1cnBvc2VzIG9mIHJlLXNhbGUuCgogIFMgIDYwLjAyLiBDZXJ0aWZpY2F0ZSBvZiBhdXRo ZW50aWNpdHk7IGNvbnRlbnRzLiAxLiBXaGVuZXZlciBhIGRlYWxlciwKaW4gc2VsbGluZyBv ciBvZmZlcmluZyB0byBzZWxsIGluIG9yIGZyb20gdGhpcyBzdGF0ZSBhIGNvbGxlY3RpYmxl IHRvICBhCmNvbnN1bWVyLCAgIHByb3ZpZGVzICAgYSAgIGRlc2NyaXB0aW9uICBvZiAgc3Vj aCAgY29sbGVjdGlibGUgIGFzICBiZWluZwphdXRvZ3JhcGhlZCwgaGUgc2hhbGwgZnVybmlz aCB0byB0aGUgY29uc3VtZXIgYXQgIHRoZSAgdGltZSAgb2YgIHNhbGUgIGEKY2VydGlmaWNh dGUgIG9mICBhdXRoZW50aWNpdHkuIFN1Y2ggY2VydGlmaWNhdGUgb2YgYXV0aGVudGljaXR5 IHNoYWxsIGJlCmluIHdyaXRpbmcgYW5kIHNpZ25lZCBieSBzdWNoIGRlYWxlciwgaGlzIG9y IGhlciBhdXRob3JpemVkIGFnZW50IG9yIGhpcwpvciBoZXIgc3VwcGxpZXIuIFRoZSBjZXJ0 aWZpY2F0ZSBzaGFsbCBiZSBpbiBhdCBsZWFzdCB0ZW4gcG9pbnQgYm9sZGZhY2UKdHlwZSBh bmQgc2hhbGwgY29udGFpbiB0aGUgZGVhbGVyYHMgb3Igc3VwcGxpZXJgcyB0cnVlICBsZWdh bCAgbmFtZSAgYW5kCnN0cmVldCBhZGRyZXNzLiBFYWNoIGNlcnRpZmljYXRlIG9mIGF1dGhl bnRpY2l0eSBzaGFsbDoKICAoYSkgIGRlc2NyaWJlICB0aGUgIGNvbGxlY3RpYmxlIGFuZCB0 aGUgbmFtZSBvZiB0aGUgc3BvcnRzIHBlcnNvbmFsaXR5CndobyBzaWduZWQgaXQ7IGFuZAog IChpKSBzcGVjaWZ5IHRoZSBwdXJjaGFzZSBwcmljZSBhbmQgZGF0ZSBvZiBzYWxlOyBvcgog IChpaSkgIGJlIGFjY29tcGFuaWVkIGJ5IGEgc2VwYXJhdGUgaW52b2ljZSB0aGF0IHNwZWNp ZmllcyB0aGUgcHVyY2hhc2UKcHJpY2UgYW5kIGRhdGUgb2Ygc2FsZTsKICAoYikgY29udGFp biBhbiBleHByZXNzIHdhcnJhbnR5LCB3aGljaCBzaGFsbCBiZSBwcmVzdW1lZCB0byBiZSBw YXJ0IG9mCnRoZSBiYXNpcyBvZiAgdGhlICBiYXJnYWluLCAgb2YgIHRoZSAgYXV0aGVudGlj aXR5ICBvZiAgdGhlICBhdXRvZ3JhcGhlZApjb2xsZWN0aWJsZS4gIFN1Y2ggIHdhcnJhbnR5 IHNoYWxsIG5vdCBiZSBuZWdhdGVkIG9yIGxpbWl0ZWQgYmVjYXVzZSB0aGUKZGVhbGVyIG9y IHRoZSBzdXBwbGllciBpbiB0aGUgY2VydGlmaWNhdGUgZG9lcyBub3QgdXNlIGZvcm1hbCB3 b3JkcyBzdWNoCmFzICAid2FycmFudHkiLCAgb3IgImd1YXJhbnRlZSIsIG9yIGJlY2F1c2Ug c3VjaCBkZWFsZXIgb3Igc3VwcGxpZXIgZG9lcwpub3QgaGF2ZSBhIHNwZWNpZmljIGludGVu dGlvbiBvciBhdXRob3JpemF0aW9uIHRvICBtYWtlICBhICB3YXJyYW50eSAgb3IKYmVjYXVz ZSAgYW55ICBzdGF0ZW1lbnQgIHJlbGV2YW50ICB0byB0aGUgYXV0b2dyYXBoZWQgY29sbGVj dGlibGUgaXMsIG9yCnB1cnBvcnRzIHRvIGJlLCBvciBpcyBjYXBhYmxlIG9mICBiZWluZywg IG1lcmVseSAgdGhlICBkZWFsZXJgcyAgb3IgIHRoZQpzdXBwbGllcmBzIG9waW5pb247IGFu ZAogIChjKSAgdW5sZXNzICBzdWNoICBpbmZvcm1hdGlvbiAgYXBwZWFycyAgaW4gIGxlZ2li bGUgIGZhc2hpb24gIG9uICB0aGUKY29sbGVjdGlibGUgaXRzZWxmLCBzcGVjaWZ5IHdoZXRo ZXIgdGhlIGNvbGxlY3RpYmxlIGlzIG9mZmVyZWQgYXMgb25lIG9mCmEgbGltaXRlZCBlZGl0 aW9uIGFuZCwgaWYgc286CiAgKGkpIGhvdyB0aGUgY29sbGVjdGlibGUgYW5kIHRoZSBlZGl0 aW9uIGFyZSBudW1iZXJlZCwgYW5kCiAgKGlpKSAgdGhlIHNpemUgb2YgdGhlIGVkaXRpb24g YW5kIHRoZSBzaXplIG9mIGFueSBwcmlvciBvciBhbnRpY2lwYXRlZApmdXR1cmUgZWRpdGlv biwgaWYgYW55LiBJZiB0aGUgc2l6ZSBvZiBhbnkgcHJpb3Igb3IgIGFudGljaXBhdGVkICBm dXR1cmUKZWRpdGlvbiAgaXMgIG5vdCAga25vd24sICB0aGUgIGNlcnRpZmljYXRlICBzaGFs bCAgY29udGFpbiAgYW4gIGV4cGxpY2l0CnN0YXRlbWVudCB0byB0aGF0IGVmZmVjdC4KICAy LiAgSWYgIGEgZGVhbGVyIG9mZmVycyBjb2xsZWN0aWJsZXMgYXQgYXVjdGlvbiwgdGhlIHJl cXVpcmVtZW50IGZvciBhCmNlcnRpZmljYXRlIG9mIGF1dGhlbnRpY2l0eSBtYXkgYmUgbWV0 IGlmIHRoZSAgZGVhbGVyICBhdCAgdGhlICB0aW1lICBvZgpzYWxlOgogIChhKSBwcm92aWRl cyB0aGUgYnV5ZXIgYSBjYXRhbG9nIHdoaWNoIChpKSBpcyBhdmFpbGFibGUgdG8gdGhlIHB1 YmxpYywKKGlpKSBjb250YWlucyBhIHBpY3R1cmUgYW5kIGRlc2NyaXB0aW9uIG9mIHRoZSAg Y29sbGVjdGlibGUsICBhbmQgIChpaWkpCmNvbnRhaW5zICBhICB3YXJyYW50eSAgYW5kICBp bmZvcm1hdGlvbiAgd2hpY2ggIG1lZXQgdGhlIHJlcXVpcmVtZW50cyBvZgpwYXJhZ3JhcGhz IChiKSBhbmQgKGMpIG9mIHN1YmRpdmlzaW9uIG9uZSBvZiB0aGlzIHNlY3Rpb247IGFuZAog IChiKSAgcHJvdmlkZXMgYSBzZXBhcmF0ZSBpbnZvaWNlIHRoYXQgc3BlY2lmaWVzIHRoZSBw dXJjaGFzZSBwcmljZSBhbmQKZGF0ZSBvZiBzYWxlLgogIFRoZSAgZGVhbGVyICBzaGFsbCAg YmUgcmVxdWlyZWQgdG8gbWFpbnRhaW4gYSBjb3B5IG9mIHN1Y2ggY2F0YWxvZyBhbmQKaW5m b3JtYXRpb24gcmVnYXJkaW5nIHRoZSBzYWxlIG9mIGl0ZW1zIGRlc2NyaWJlZCB0aGVyZWlu IGZvciAgYSAgcGVyaW9kCm9mIGZpdmUgeWVhcnMgZm9sbG93aW5nIHRoZSB5ZWFyIG9mIHN1 Y2ggc2FsZS4KICAzLiAgSW4gdGhvc2UgaW5zdGFuY2VzIGluIHdoaWNoIHRoZSBwcm92aXNp b25zIG9mIHRoaXMgc2VjdGlvbiBhcmUgbWV0CmluIGFjY29yZGFuY2Ugd2l0aCBzdWJkaXZp c2lvbiB0d28gb2YgdGhpcyBzZWN0aW9uIGJ5IHVzZSBvZiBhICBjYXRhbG9nLAphbnkgIHdh cnJhbnR5ICBjb250YWluZWQgIGluICBzdWNoIGNhdGFsb2cgc2hhbGwgbm90IGJlIG1vcmUg cmVzdHJpY3RpdmUKdGhhbiB0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIGFydGljbGUuCgpTICA2 MC4wMy4gIFByb2hpYml0aW9ucy4gTm8gZGVhbGVyIHNoYWxsIHJlcHJlc2VudCB0aGF0IGEg Y29sbGVjdGlibGUgaXMKYXV0b2dyYXBoZWQgaWYgc2FpZCBkZWFsZXIga25vd3MsIG9yIGhh cyByZWFzb24gdG8gYmVsaWV2ZSwgdGhhdCBpdCAgd2FzCnNpZ25lZCBvdGhlciB0aGFuIGJ5 IHRoZSBzcG9ydHMgcGVyc29uYWxpdHkgaW4gaGlzIG9yIGhlciBvd24gaGFuZC4KCiAgUyAg NjAuMDQuICBEaXNjbG9zdXJlIHJlcXVpcmVkLiAgMS4gIE5vIGRlYWxlciBzaGFsbCBzZWxs IG9yIG9mZmVyIGZvcgpzYWxlIGluIG9yIGZyb20gdGhpcyBzdGF0ZSBhbiAgYXV0b2dyYXBo ZWQgIHNwb3J0cyAgY29sbGVjdGlibGUgIHRvICBhbnkKY29uc3VtZXIgIHVubGVzcywgIGF0 ICB0aGUgIGxvY2F0aW9uICB3aGVyZSAgdGhlICBzYWxlICBvY2N1cnMsIGluIGNsb3NlCnBy b3hpbWl0eSB0byB0aGUgbWVyY2hhbmRpc2UsIGhlIHBsYWNlcyBhIGNvbnNwaWN1b3VzIHNp Z24gdGhhdCByZWFkczoKICAgICAgICAgICAgICAgICBTQUxFIE9GIEFVVE9HUkFQSEVEIFNQ T1JUUyBNRU1PUkFCSUxJQQogICAgICAgICBBUyAgUkVRVUlSRUQgIEJZICBMQVcgQSBERUFM RVIgV0hPIFNFTExTIFRPIEEgQ09OU1VNRVIKICAgICAgICAgICAgQU5ZIFNQT1JUUyBNRU1P UkFCSUxJQSBERVNDUklCRUQgQVMgIEJFSU5HICBQRVJTT05BTExZCiAgICAgICAgICAgIEFV VE9HUkFQSEVEICBGT1IgIFRXRU5UWS1GSVZFICBET0xMQVJTICBPUiAgTU9SRSAgTVVTVAog ICAgICAgICAgICBQUk9WSURFIEEgV1JJVFRFTiBDRVJUSUZJQ0FURSBPRiBBVVRIRU5USUNJ VFkgIEFUICBUSEUKICAgICAgICAgICAgVElNRSBPRiBTQUxFLgogIDIuICAoYSkgQW55IGRl YWxlciBlbmdhZ2VkIGluIGEgbWFpbC1vcmRlciBvciB0ZWxlcGhvbmUgb3JkZXIgYnVzaW5l c3MKd2hvIHNlbGxzIG9yIG9mZmVycyBmb3Igc2FsZSBpbiBvciBmcm9tIHRoaXMgc3RhdGUg YW4gYXV0b2dyYXBoZWQgc3BvcnRzCmNvbGxlY3RpYmxlICB0byAgYW55IGNvbnN1bWVyIHNo YWxsIGluY2x1ZGUgaW4gYW55IHdyaXR0ZW4gYWR2ZXJ0aXNlbWVudApyZWxhdGluZyB0byBh bnkgc3VjaCBpdGVtLCBpbiB0eXBlIG9mIGNvbnNwaWN1b3VzIHNpemUsICB0aGUgIGRpc2Ns b3N1cmUKcmVxdWlyZWQgIGJ5ICBzdWJkaXZpc2lvbiAgb25lIG9mIHRoaXMgc2VjdGlvbiBv ciBsYW5ndWFnZSBzdWJzdGFudGlhbGx5CmVxdWl2YWxlbnQgdG8gIHRoZSAgZGlzY2xvc3Vy ZSAgcmVxdWlyZWQgIGJ5ICBzdWJkaXZpc2lvbiAgb25lICBvZiAgdGhpcwpzZWN0aW9uLgog IChiKSAgV2hlbiBhbiBvZmZlciBmb3Igc2FsZSBvZiBhbiBhdXRvZ3JhcGhlZCBzcG9ydHMg Y29sbGVjdGlibGUgdGFrZXMKdGhlIGZvcm0gb2YgYSB0ZWxldmlzZWQgYnJvYWRjYXN0LCBz dWNoIG9mZmVyIHNoYWxsICBpbmNsdWRlICBhICB3cml0dGVuCm9uLXNjcmVlbiAgbWVzc2Fn ZSAgdGhhdCAgc2hhbGwgIGJlICBwcm9taW5lbnRseSAgZGlzcGxheWVkICBhbmQgY2xlYXJs eQp2aXNpYmxlIGZvciBubyBsZXNzIHRoYW4gZml2ZSBzZWNvbmRzIGF0IHRoZSBiZWdpbm5p bmcgb2YgIGVhY2ggIHNlZ21lbnQKb2YgYnJvYWRjYXN0IGZvciBlYWNoIGl0ZW0gb2ZmZXJl ZCBmb3Igc2FsZSBhbmQgZGlzcGxheWVkIHRoZXJlYWZ0ZXIgZm9yCm5vIGxlc3MgdGhhbiBm aXZlIHNlY29uZHMgYXQgdGVuIG1pbnV0ZSBpbnRlcnZhbHMgZHVyaW5nICBzYWlkICBzZWdt ZW50LAp0aGF0IHJlYWRzOgogICAgICAgICAgICAgICAgICBBIFdSSVRURU4gQ0VSVElGSUNB VEUgT0YgQVVUSEVOVElDSVRZCiAgICAgICAgICAgICAgICAgICAgSVMgUFJPVklERUQgV0lU SCBFQUNIIEFVVE9HUkFQSEVECiAgICAgICAgICAgICAgICAgICAgQ09MTEVDVElCTEUsIEFT IFJFUVVJUkVEIEJZIExBVy4KICAoYykgIFdoZW4gc3VjaCBvZmZlciBmb3Igc2FsZSB0YWtl cyB0aGUgZm9ybSBvZiBhIHJhZGlvIGFkdmVydGlzZW1lbnQsCnN1Y2ggYWR2ZXJ0aXNlbWVu dCBzaGFsbCAgaW5jbHVkZSAgYXMgIHBhcnQgIG9mICB0aGUgIG9yYWwgIG1lc3NhZ2UgIHRo ZQpkaXNjbG9zdXJlIHJlcXVpcmVkIGJ5IHBhcmFncmFwaCAoYikgb2YgdGhpcyBzdWJkaXZp c2lvbi4KCiAgUyAgNjAuMDUuICBQcml2YXRlICByZW1lZGllcy4gQW55IGNvbnN1bWVyIGlu anVyZWQgYnkgdGhlIGZhaWx1cmUgb2YgYQpkZWFsZXIgIHRvICBwcm92aWRlICBhICBjZXJ0 aWZpY2F0ZSAgb2YgIGF1dGhlbnRpY2l0eSAgIGNvbnRhaW5pbmcgICB0aGUKaW5mb3JtYXRp b24gIHJlcXVpcmVkICBieSAgc2VjdGlvbiAgNjAuMDIgIG9mICB0aGlzICBhcnRpY2xlLCAg b3IgYnkgdGhlCmZ1cm5pc2hpbmcgYnkgYSBkZWFsZXIgb2YgYSBjZXJ0aWZpY2F0ZSBvZiAg YXV0aGVudGljaXR5ICB0aGF0ICBjb250YWlucwppbmZvcm1hdGlvbiB0aGF0IHRoZSBkZWFs ZXIga25vd3Mgb3IgaGFzIHJlYXNvbiB0byBiZWxpZXZlIGlzIG1hdGVyaWFsbHkKZmFsc2Ug bWF5IGJyaW5nIGFuIGFjdGlvbiBmb3IgIHJlY292ZXJ5ICBvZiAgZGFtYWdlcyAgYWZ0ZXIg IGdpdmluZyAgdGhlCmRlYWxlciAgZmlmdGVlbiBkYXlzIG5vdGljZSBieSBjZXJ0aWZpZWQg bWFpbCwgcmV0dXJuIHJlY2VpcHQgcmVxdWVzdGVkLgpJbiBhbnkgc3VjaCBhY3Rpb24gdGhl IGNvdXJ0IG1heSBhbGxvdyB0aGUgcHJldmFpbGluZyBjb25zdW1lciB0aGUgY29zdHMKb2Yg IHRoZSAgYWN0aW9uICB0b2dldGhlciAgd2l0aCAgcmVhc29uYWJsZSAgYXR0b3JuZXlgcyAg ZmVlcyBhbmQgZXhwZXJ0CndpdG5lc3Nlc2AgZmVlcy4gQSBkZWFsZXIgbWF5IGFzc2VydCB0 aGUgIHRlbmRlciAgb2YgIGEgIHJlZnVuZCAgb2YgIHRoZQpvcmlnaW5hbCAgcHVyY2hhc2Ug IHByaWNlICBhcyBhIGZ1bGwgZGVmZW5zZSB0byBzdWNoIGFuIGFjdGlvbiB3aGVuIHN1Y2gK cmVmdW5kIGhhcyBiZWVuIHRlbmRlcmVkIHByaW9yIHRvIHRoZSBjb21tZW5jZW1lbnQgb2Yg c3VjaCBhY3Rpb24uICBUaGlzCnJlbWVkeSAgc2hhbGwgIG5vdCAgYmFyICBvciAgYmUgZGVl bWVkIGluY29uc2lzdGVudCB3aXRoIHRoZSBleGVyY2lzZSBvZgphZGRpdGlvbmFsIHJlbWVk aWVzIG90aGVyd2lzZSBhdmFpbGFibGUgdG8gdGhlIGNvbnN1bWVyLgoKICBTICA2MC4wNi4g IEVuZm9yY2VtZW50ICBieSAgYXR0b3JuZXkgZ2VuZXJhbC4gSW4gYWRkaXRpb24gdG8gdGhl IG90aGVyCnJlbWVkaWVzIHByb3ZpZGVkLCB3aGVuZXZlciB0aGVyZSBzaGFsbCBiZSBhIHZp b2xhdGlvbiBvZiB0aGlzICBhcnRpY2xlLAphcHBsaWNhdGlvbiAgbWF5ICBiZSAgbWFkZSAg YnkgIHRoZSAgYXR0b3JuZXkgZ2VuZXJhbCBpbiB0aGUgbmFtZSBvZiB0aGUKcGVvcGxlICBv ZiAgdGhlICBzdGF0ZSAgb2YgIE5ldyAgWW9yayAgdG8gIGEgIGNvdXJ0ICBvciAganVzdGlj ZSAgaGF2aW5nCmp1cmlzZGljdGlvbiAgYnkgIGEgIHNwZWNpYWwgcHJvY2VlZGluZyB0byBp c3N1ZSBhbiBpbmp1bmN0aW9uLCBhbmQgdXBvbgpub3RpY2UgdG8gdGhlIGRlZmVuZGFudCBv ZiBub3QgIGxlc3MgIHRoYW4gIGZpdmUgIGRheXMsICB0byAgZW5qb2luICBhbmQKcmVzdHJh aW4gIHRoZSAgY29udGludWFuY2Ugb2Ygc3VjaCB2aW9sYXRpb25zOyBhbmQgaWYgaXQgc2hh bGwgYXBwZWFyIHRvCnRoZSBzYXRpc2ZhY3Rpb24gb2YgdGhlIGNvdXJ0IG9yIGp1c3RpY2Ug IHRoYXQgIHRoZSAgZGVmZW5kYW50ICBoYXMsICBpbgpmYWN0LCAgdmlvbGF0ZWQgIHRoaXMg YXJ0aWNsZSwgYW4gaW5qdW5jdGlvbiBtYXkgYmUgaXNzdWVkIGJ5IHN1Y2ggY291cnQKb3Ig anVzdGljZSwgZW5qb2luaW5nIGFuZCByZXN0cmFpbmluZyAgYW55ICBmdXJ0aGVyICB2aW9s YXRpb24sICB3aXRob3V0CnJlcXVpcmluZyAgcHJvb2YgIHRoYXQgIGFueSBwZXJzb24gaGFz LCBpbiBmYWN0LCBiZWVuIGluanVyZWQgb3IgZGFtYWdlZAp0aGVyZWJ5LiBJbiBhbnkgc3Vj aCBwcm9jZWVkaW5nLCB0aGUgY291cnQgbWF5IG1ha2UgIGFsbG93YW5jZXMgIHRvICB0aGUK YXR0b3JuZXkgIGdlbmVyYWwgIGFzICBwcm92aWRlZCAgaW4gIHBhcmFncmFwaCBzaXggb2Yg c3ViZGl2aXNpb24gKGEpIG9mCnNlY3Rpb24gZWlnaHR5LXRocmVlIGh1bmRyZWQgdGhyZWUg b2YgdGhlIGNpdmlsIHByYWN0aWNlIGxhdyBhbmQgIHJ1bGVzLAphbmQgIGRpcmVjdCAgcmVz dGl0dXRpb24uICBXaGVuZXZlciAgdGhlICBjb3VydCAgc2hhbGwgIGRldGVybWluZSB0aGF0 IGEKdmlvbGF0aW9uIG9mIHRoaXMgYXJ0aWNsZSBoYXMgb2NjdXJyZWQsIHRoZSBjb3VydCAg bWF5ICBpbXBvc2UgIGEgIGNpdmlsCnBlbmFsdHkgIG9mICBub3QgIG1vcmUgIHRoYW4gb25l IHRob3VzYW5kIGRvbGxhcnMgZm9yIGVhY2ggdmlvbGF0aW9uLiBJbgpjb25uZWN0aW9uIHdp dGggYW55IHN1Y2ggcHJvcG9zZWQgYXBwbGljYXRpb24sIHRoZSBhdHRvcm5leSAgZ2VuZXJh bCAgaXMKYXV0aG9yaXplZCAgdG8gdGFrZSBwcm9vZiBhbmQgbWFrZSBhIGRldGVybWluYXRp b24gb2YgdGhlIHJlbGV2YW50IGZhY3RzCmFuZCB0byBpc3N1ZSBzdWJwb2VuYXMgaW4gYWNj b3JkYW5jZSB3aXRoIHRoZSAgY2l2aWwgIHByYWN0aWNlICBsYXcgIGFuZApydWxlcy4KCgoK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVkIExhd3MKQXJ0 cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVElUTEUgVwogICAgICAgICAgICAgICAgICAgICAgICBNSVNDRUxMQU5FT1VTIFBST1ZJ U0lPTlMKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTmV3IFlvcmsgU3RhdGUgQ29uc29saWRhdGVk IExhd3MKQXJ0cyBhbmQgQ3VsdHVyYWwgQWZmYWlycwoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFSVElDTEUgNjEKICAgICAgICAgICAgICAgICAgICAgICAgTUlTQ0VMTEFO RU9VUyBQUk9WSVNJT05TCiBTZWN0aW9uIDYxLjAxLiBQdWJsaWMgZW50ZXJ0YWlubWVudCBv biBTdW5kYXkuCiAgICAgICAgIDYxLjAzLiBNYWludGVuYW5jZSAgb3IgZW1wbG95bWVudCBv ZiBiYW5kIGJ5IGEgY2l0eSBvciB2aWxsYWdlLgogICAgICAgICA2MS4wNS4gRnJlZSBwdWJs aWMgbGlicmFyaWVzLgogICAgICAgICA2MS4wNy4gVXNlIG9mIGZpcmV3b3JrcyBpbiBlbnRl cnRhaW5tZW50IHByb2R1Y3Rpb25zIGluIGNlcnRhaW4KICAgICAgICAgICAgICAgICAgICAg Y2l0aWVzLgogICAgICAgICA2MS4wOS4gVXNlIG9mIHNjaG9vbCBob3VzZSBieSBuZXdzIG1l ZGlhLgogICAgICAgICA2MS4xMS4gRmluZ2VycHJpbnRpbmcgIGVtcGxveWVlcyAgb2YgcHVi bGljIGdhbGxlcmllcywgbXVzZXVtcywKICAgICAgICAgICAgICAgICAgICAgaG9zcGl0YWxz LCAgIG1lZGljYWwgICBjb2xsZWdlcyAgIGFmZmlsaWF0ZWQgICB3aXRoCiAgICAgICAgICAg ICAgICAgICAgIGhvc3BpdGFscyBhbmQgcHJpdmF0ZSBwcm9wcmlldGFyeSBob3NwaXRhbHMu CiAgICAgICAgIDYxLjEzLiBFYXJsIFcuIEJyeWRnZXMgQXJ0IHBhcmsuCgogIFMgIDYxLjAx LiAgUHVibGljICBlbnRlcnRhaW5tZW50ICBvbiBTdW5kYXkuIEFsbCBsZWdpdGltYXRlIHRo ZWF0cmljYWwKcGVyZm9ybWFuY2VzLCBjb25jZXJ0IGFuZCByZWNpdGFsIGRhbmNlcywgbW90 aW9uIHBpY3R1cmUgZXhoaWJpdGlvbnMsIG9yCm90aGVyICBwdWJsaWMgZXhoaWJpdGlvbnMs IGV4aGliaXRzLCBzaG93cyBvciBlbnRlcnRhaW5tZW50IG9uIHRoZSBmaXJzdApkYXkgb2Yg dGhlIHdlZWsgYXJlIHByb2hpYml0ZWQsIGV4Y2VwdCBhcyBoZXJlaW5hZnRlciBwcm92aWRl ZC4KICBOb3R3aXRoc3RhbmRpbmcgIHRoZSAgcHJvdmlzaW9ucyBvZiB0aGlzIHNlY3Rpb24s IG9yIG9mIGFueSBnZW5lcmFsIG9yCmxvY2FsIGxhdywgaXQgc2hhbGwgYmUgbGF3ZnVsIHRv IGNvbmR1Y3Qgb3IgcGFydGljaXBhdGUgIGluICBhbnkgIHB1YmxpYwplbnRlcnRhaW5tZW50 ICBvbiAgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBhZnRlciBmaXZlIG1pbnV0ZXMgcGFz dCBvbmUKb2BjbG9jayBpbiB0aGUgYWZ0ZXJub29uLCB0byB3aXRuZXNzIHdoaWNoIHRoZSBw dWJsaWMgaXMgaW52aXRlZCAgb3IgIGFuCmFkbWlzc2lvbiBmZWUgaXMgY2hhcmdlZCwgZWl0 aGVyIGRpcmVjdGx5IG9yIGluZGlyZWN0bHksIGluIGEgY2l0eSwgdG93bgpvciB2aWxsYWdl IGFzIHNoYWxsIGJlIHBlcm1pdHRlZCwgYnkgYSBsb2NhbCBsYXcgb3Igb3JkaW5hbmNlIGhl cmV0b2ZvcmUKb3IgIGhlcmVhZnRlciBhZG9wdGVkIGJ5IHRoZSBjb21tb24gY291bmNpbCBv ciBvdGhlciBsZWdpc2xhdGl2ZSBib2R5IG9mCnRoZSBjaXR5LCB0b3duIG9yIHZpbGxhZ2Us IHBlcm1pdHRpbmcgdGhlIHNhbWUgb24gIHN1Y2ggIGRheSAgYW5kICBhZnRlcgpzdWNoICBo b3VyLiAgSWYgIGluIGFueSBjaXR5LCB0b3duIG9yIHZpbGxhZ2UgY29uY2VydCBvciByZWNp dGFsIGRhbmNlcywKbW90aW9uIHBpY3R1cmVzIG9yIGxlZ2l0aW1hdGUgdGhlYXRyaWNhbCBw cm9kdWN0aW9ucyBhcmUgIG5vdyAgZXhoaWJpdGVkCm9uICB0aGUgIGZpcnN0ICBkYXkgIG9m ICB0aGUgIHdlZWssIHRoZXkgbWF5IGNvbnRpbnVlIHRvIGJlIHNvIGV4aGliaXRlZApkdXJp bmcgIHN1Y2ggIHRpbWVzICBhcyAgdGhlICBleGhpYml0aW9uICBvZiAgc3VjaCAgIGRhbmNl cywgICBwaWN0dXJlcywKcHJvZHVjdGlvbnMgIGFuZCAgcGVyZm9ybWFuY2VzIHNoYWxsIG5v dCBoYXZlIGJlZW4gcHJvaGliaXRlZCBieSBhIGxvY2FsCmxhdyBvciBvcmRpbmFuY2UgaGVy ZXRvZm9yZSBvciBoZXJlYWZ0ZXIgYWRvcHRlZCBieSB0aGUgIGNvbW1vbiAgY291bmNpbApv ciBvdGhlciBsZWdpc2xhdGl2ZSBib2R5IG9mIHN1Y2ggY2l0eSwgdG93biBvciB2aWxsYWdl LgoKUyAgNjEuMDMuICBNYWludGVuYW5jZSAgb3IgIGVtcGxveW1lbnQgb2YgYmFuZCBieSBh IGNpdHkgb3IgdmlsbGFnZS4gVGhlCmdvdmVybmluZyBib2FyZCBvZiBhbnkgY2l0eSBvZiB0 aGUgZmlyc3Qgb3Igc2Vjb25kIGNsYXNzICBtYXksICBhbmQgIHRoZQpnb3Zlcm5pbmcgIGJv YXJkICBvZiAgYSAgY2l0eSAgb2YgIHRoZSB0aGlyZCBjbGFzcyBvciBvZiBhIHZpbGxhZ2Us IGlmIGEKcHJvcG9zaXRpb24gYmUgc3VibWl0dGVkIGFzIHByb3ZpZGVkIGluICB0aGlzICBz ZWN0aW9uICBhbmQgIGFkb3B0ZWQgIGJ5Cm1ham9yaXR5ICB2b3RlICBvZiAgdGhlICBxdWFs aWZpZWQgIHZvdGVycyBvZiB0aGUgY2l0eSBvciB2aWxsYWdlIHZvdGluZwp0aGVyZW9uLCBz aGFsbCBwcm92aWRlIGZvciB0aGUgbWFpbnRlbmFuY2Ugb3IgZW1wbG95bWVudCBvZiBhICBi YW5kICBmb3IKbXVzaWNhbCAgcHVycG9zZXMsIGZvciB0aGUgZW50ZXJ0YWlubWVudCBvZiB0 aGUgcHVibGljLiBJbiBhIGNpdHkgb2YgdGhlCnRoaXJkIGNsYXNzIG9yIGEgdmlsbGFnZSwg YSBwZXRpdGlvbiwgc2lnbmVkIGFuZCBkdWx5IGFja25vd2xlZGdlZCBieSBhdApsZWFzdCAg Zml2ZSBwZXJjZW50dW0gb2YgdGhlIHF1YWxpZmllZCB2b3RlcnMgb2YgdGhlIGNpdHkgb3Ig dmlsbGFnZSBtYXkKYmUgZmlsZWQsIHdpdGhpbiBzaXh0eSBkYXlzIGFuZCBub3QgbGF0ZXIg IHRoYW4gIHRoaXJ0eSAgZGF5cyAgYmVmb3JlICBhCnJlZ3VsYXIgbXVuaWNpcGFsIGVsZWN0 aW9uIHRoZXJlaW4sIHdpdGggdGhlIG9mZmljZXIgb3IgYm9hcmQgY2hhcmdlZCBieQpsYXcg d2l0aCB0aGUgZHV0eSBvZiBwcmVwYXJpbmcgYmFsbG90cyBmb3Igc3VjaCBlbGVjdGlvbiwg cmVxdWVzdGluZyB0aGUKc3VibWlzc2lvbiAgdGhlcmVhdCAgb2YgIHRoZSAgcHJvcG9zaXRp b24gICJTaGFsbCB0aGlzIGNpdHkgKG9yIHZpbGxhZ2UpCm1haW50YWluIG9yIGVtcGxveSBh IGJhbmQgYXQgYW4gYW5udWFsIGV4cGVuc2Ugb2Ygbm90IGV4Y2VlZGluZyAgKGFtb3VudAp0 byAgYmUgIGluc2VydGVkKSBkb2xsYXJzPyIgVXBvbiB0aGUgZHVlIGZpbGluZyBvZiBzdWNo IGEgcGV0aXRpb24sIHN1Y2gKcHJvcG9zaXRpb24gc2hhbGwgYmUgc3VibWl0dGVkIGF0IHN1 Y2ggZWxlY3Rpb24gaW4gdGhlICBtYW5uZXIgIHByb3ZpZGVkCmluICB0aGUgIGVsZWN0aW9u ICBsYXcsICBhbmQgIG5vdGljZSAgdGhhdCAgc3VjaCBwcm9wb3NpdGlvbiBpcyB0byBiZSBz bwpzdWJtaXR0ZWQgc2hhbGwgYmUgcHVibGlzaGVkIGJ5IHN1Y2ggYm9hcmQgb3Igb2ZmaWNl ciBhcyBmb2xsb3dzOiAgSW4gIGEKbmV3c3BhcGVyIHB1Ymxpc2hlZCBpbiB0aGUgY2l0eSBv ciB2aWxsYWdlIG9uY2UgaW4gZWFjaCBvZiB0aGUgdHdvIHdlZWtzCnByZWNlZGluZyB0aGUg ZWxlY3Rpb247IGJ1dCBpZiB0aGVyZSBiZSBubyBzdWNoIG5ld3NwYXBlciwgc3VjaCBib2Fy ZCBvcgpvZmZpY2VyIHNoYWxsIGNhdXNlIHN1Y2ggbm90aWNlIHRvIGJlIHBvc3RlZCBpbiB0 ZW4gcHVibGljIHBsYWNlcyBpbiB0aGUKY2l0eSBvciB2aWxsYWdlIGF0IGxlYXN0IHRlbiBk YXlzIGJlZm9yZSB0aGUgZWxlY3Rpb24uICBJbiBzdWNoICBhICBjaXR5Cm9mICB0aGUgIHRo aXJkICBjbGFzcyBvciB2aWxsYWdlLCBpbiB3aGljaCBzdWNoIGEgcHJvcG9zaXRpb24gc2hh bGwgaGF2ZQpiZWVuIGFkb3B0ZWQsIGEgbGlrZSBwZXRpdGlvbiBtYXkgYmUgcHJlc2VudGVk IGFmdGVyIHR3byB5ZWFycyAgZm9yICB0aGUKc3VibWlzc2lvbiAgb2YgdGhlIHByb3Bvc2l0 aW9uICJTaGFsbCB0aGUgbWFpbnRlbmFuY2Ugb3IgZW1wbG95bWVudCBvZiBhCmJhbmQgYnkg dGhlIGNpdHkgKG9yIHZpbGxhZ2UpIGJlIGRpc2NvbnRpbnVlZD8iIFN1Y2ggIHByb3Bvc2l0 aW9uICBzaGFsbApiZSAgc3VibWl0dGVkICBhY2NvcmRpbmdseSAgYW5kICBpZiAgYWRvcHRl ZCAgYnkgIG1ham9yaXR5ICB2b3RlICBvZiB0aGUKcXVhbGlmaWVkIHZvdGVycyBvZiB0aGUg Y2l0eSBvciB2aWxsYWdlIHZvdGluZyB0aGVyZW9uLCB0aGUgcG93ZXIgb2YgdGhlCmNpdHkg IG9yICB2aWxsYWdlICB0byAgbWFpbnRhaW4gIG9yIGVtcGxveSBzdWNoIGEgYmFuZCBzaGFs bCBjZWFzZS4gVGhpcwpzZWN0aW9uIHNoYWxsIG5vdCBhcHBseSB0byBhIGNpdHkgb3Igdmls bGFnZSB3aG9zZSBjaGFydGVyIG1ha2VzIHNwZWNpYWwKcHJvdmlzaW9uICBpbiByZWxhdGlv biB0byB0aGUgbWFpbnRlbmFuY2Ugb3IgZW1wbG95bWVudCBvZiBhIGJhbmQgYnkgdGhlCmNp dHkuCgpTICA2MS4wNS4gRnJlZSBwdWJsaWMgbGlicmFyaWVzLiBBbnkgbXVuaWNpcGFsIGNv cnBvcmF0aW9uIG1heSBlc3RhYmxpc2gKYW5kIG1haW50YWluIGEgZnJlZSBwdWJsaWMgbGli cmFyeSBvciAgbXVzZXVtICBpbiAgYWNjb3JkYW5jZSAgd2l0aCAgdGhlCmxpYnJhcnkgIHBy b3Zpc2lvbnMgIG9mICBzZWN0aW9ucyB0d28gaHVuZHJlZCBmaWZ0eS10aHJlZSB0byB0d28g aHVuZHJlZApzZXZlbnR5LW9uZSwgYm90aCBpbmNsdXNpdmUsIG9mIHRoZSBlZHVjYXRpb24g bGF3LgoKICBTICA2MS4wNy4gIFVzZSAgb2YgIGZpcmV3b3JrcyAgaW4gZW50ZXJ0YWlubWVu dCBwcm9kdWN0aW9ucyBpbiBjZXJ0YWluCmNpdGllcy4gTm90d2l0aHN0YW5kaW5nIGFueSBv dGhlciBwcm92aXNpb24gb2YgIGxhdywgIGEgIGNpdHkgIGhhdmluZyAgYQpwb3B1bGF0aW9u ICBvZiAgb25lIG1pbGxpb24gb3IgbW9yZSBtYXkgZW5hY3QgYSBsb2NhbCBsYXcgcGVybWl0 dGluZyBhbmQKcmVndWxhdGluZyAgdGhlICBzdG9yYWdlLCAgdHJhbnNwb3J0YXRpb24sICBz YWxlICBmb3IgIHVzZSAgb3IgIHVzZSAgIG9mCmZpcmV3b3JrcywgIGFzIGRlZmluZWQgaW4g c3ViZGl2aXNpb24gb25lIG9mIHNlY3Rpb24gMjcwLjAwIG9mIHRoZSBwZW5hbApsYXcsIGlu IGNvbm5lY3Rpb24gd2l0aCB0aGUgcHJlc2VudGF0aW9uICBpbiAgd2hvbGUgIG9yICBpbiAg cGFydCAgb2YgIGEKbXVzaWNhbCwgIGRyYW1hdGljLCAgZGFuY2UsICBvcGVyYXRpYyAgb3Ig IG90aGVyICBzdGFnZSAgcGVyZm9ybWFuY2UgIGJ5CnBlcmZvcm1lcnMgd2hvICBhcHBlYXIg IGluICBwZXJzb24gIGluICB0aGUgIGltbWVkaWF0ZSAgcHJlc2VuY2UgIG9mICBhbgphdWRp ZW5jZSwgIHdoaWNoICBpcyAgaGVsZCBpbiBhbnkgYnVpbGRpbmcgb3IgcGFydCBvZiBhIGJ1 aWxkaW5nIGFkYXB0ZWQKYW5kIHVzZWQgZm9yIHN1Y2ggcHVycG9zZSBvciB3aGljaCBoYXMg YSAgc3RhZ2UgIGZvciAgc3VjaCAgcGVyZm9ybWFuY2VzCnVzZWQgIHdpdGggIHNjZW5lcnkg b3Igb3RoZXIgc3RhZ2UgYXBwbGlhbmNlcywgYW5kIHRvIHdoaWNoIGFkbWlzc2lvbiBpcwps aW1pdGVkIHRvIHBlcnNvbnMgIGhvbGRpbmcgIGFkbWlzc2lvbiAgdGlja2V0cyAgb3IgIG90 aGVyICBldmlkZW5jZSAgb2YKcGVybWlzc2lvbiAgdG8gIGVudGVyLCAgb3IgIGluICBjb25u ZWN0aW9uIHdpdGggdGhlIHByb2R1Y3Rpb24gb2YgbW90aW9uCnBpY3R1cmVzLgoKUyAgNjEu MDkuICBVc2UgIG9mICBzY2hvb2wgaG91c2UgYnkgbmV3cyBtZWRpYS4gVGhlIHRydXN0ZWVz IG9yIGJvYXJkIG9mCmVkdWNhdGlvbiBvZiBhbnkgc2Nob29sICBkaXN0cmljdCAgbWF5ICBw ZXJtaXQsICBzdWJqZWN0ICB0byAgdGVybXMgIGFuZApjb25kaXRpb25zICBzYXRpc2ZhY3Rv cnkgIHRvICBzdWNoICB0cnVzdGVlcyAgb3IgYm9hcmQsIHRoZSBhZG1pc3Npb24gb2YKcGVy c29ucyBhbmQgZXF1aXBtZW50IG9mIGFueSAgbmV3cyAgbWVkaXVtICB0byAgc2Nob29sICBn cm91bmRzLCAgc2Nob29sCmhvdXNlcywgIHNjaG9vbCAgYnVpbGRpbmdzICBhbmQgb3RoZXIg bG9jYXRpb25zIGZvciB0aGUgZGlzc2VtaW5hdGlvbiBvZgppbmZvcm1hdGlvbiBieSBwcmlu dCwgYnJvYWRjYXN0LCByZWNvcmRpbmcgb3Igb3RoZXIgbWVhbnMsICBvZiAgYXRobGV0aWMK ZXZlbnRzLCAgY29uY2VydHMsICBsZWN0dXJlcyBhbmQgc2ltaWxhciBhY3Rpdml0aWVzIHRh a2luZyBwbGFjZSB0aGVyZWF0Cm9mICBpbnRlcmVzdCAgdG8gIHRoZSAgZ2VuZXJhbCAgcHVi bGljOyAgcHJvdmlkZWQgIHRoYXQgIG5vdGhpbmcgIGhlcmVpbgpjb250YWluZWQgIHNoYWxs ICBwcmV2ZW50ICB0aGUgIGJyb2FkY2FzdGluZyAgb3IgIHRlbGV2aXNpbmcgb2YgYW55IHN1 Y2gKZXZlbnRzIG9yIGFjdGl2aXRpZXMgd2l0aCBvciB3aXRob3V0IGNvbW1lcmNpYWwgc3Bv bnNvcnNoaXAuCgpTICAgNjEuMTEuICAgRmluZ2VycHJpbnRpbmcgIGVtcGxveWVlcyAgb2Yg IHB1YmxpYyAgZ2FsbGVyaWVzLCAgbXVzZXVtcywKaG9zcGl0YWxzLCAgbWVkaWNhbCAgY29s bGVnZXMgIGFmZmlsaWF0ZWQgIHdpdGggIGhvc3BpdGFscyAgYW5kICBwcml2YXRlCnByb3By aWV0YXJ5ICBob3NwaXRhbHMuICBUaGUgIHRydXN0ZWVzICBvciBib2FyZCBvZiBtYW5hZ2Vy cyBvZiBhIHB1YmxpYwpnYWxsZXJ5IG9mIGFydCBvciBtdXNldW0gIGhvdXNpbmcgIHZhbHVh YmxlICBvYmplY3RzICBvZiAgYXJ0LCAgcHJlY2lvdXMKbWV0YWxzICBvciAgcHJlY2lvdXMg IHN0b25lcywgIG9yIHRoZSB0cnVzdGVlcyBvciBib2FyZCBvZiBtYW5hZ2VycyBvZiBhCmxl Z2FsbHkgaW5jb3Jwb3JhdGVkIGhvc3BpdGFsLCBzdXBwb3J0ZWQgaW4gd2hvbGUgb3IgaW4g cGFydCAgYnkgIHB1YmxpYwpmdW5kcyAgb3IgIHByaXZhdGUgIGVuZG93bWVudCwgb3IgdGhl IHRydXN0ZWVzIG9yIGJvYXJkIG9mIG1hbmFnZXJzIG9mIGEKbWVkaWNhbCBjb2xsZWdlIGFm ZmlsaWF0ZWQgd2l0aCBzdWNoIGEgaG9zcGl0YWwgb3IgdGhlIGdvdmVybmluZyBib2R5IG9m CmEgICBwcml2YXRlICBwcm9wcmlldGFyeSAgaG9zcGl0YWwgIG1heSwgIGFzICBhICBjb25k aXRpb24gIG9mICBzZWN1cmluZwplbXBsb3ltZW50ICBvciAgb2YgIGNvbnRpbnVpbmcgIGVt cGxveW1lbnQsICByZXF1aXJlICB0aGF0ICBhbGwgIG9mICBpdHMKZW1wbG95ZWVzIGJlIGZp bmdlcnByaW50ZWQuCgogICAgUyAgNjEuMTMuICBFYXJsIFcuIEJyeWRnZXMgQXJ0cGFyay4g Tm90d2l0aHN0YW5kaW5nIGFueSBpbmNvbnNpc3RlbnQKcHJvdmlzaW9uIG9mIGxhdyB0byB0 aGUgY29udHJhcnksIHRoZSBwZXJmb3JtaW5nICBhcnRzICB0aGVhdHJlICBpbiAgdGhlCk5p YWdhcmEgIEZyb250aWVyICByZWdpb24gIGtub3duICBhcyB0aGUgTGV3aXN0b24gU3RhdGUg UGFyayBBcnRzIENlbnRlcgpzaGFsbCBjb250aW51ZSB0byBiZSBrbm93biBhbmQgc3VpdGFi bHkgbWFya2VkLCBpbiBhICBtYW5uZXIgIHByZXNjcmliZWQKYnkgIHRoZSAgY29tbWlzc2lv bmVyIG9mIHBhcmtzLCByZWNyZWF0aW9uIGFuZCBoaXN0b3JpYyBwcmVzZXJ2YXRpb24sIGFz CnRoZSBFYXJsIFcuIEJyeWRnZXMgQXJ0cGFyay4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= --=-- -----

ATOM RSS1 RSS2