From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH v6 1/1] cameraif: add ABI for para-virtual camera Date: Thu, 28 Mar 2019 15:20:19 +0200 Message-ID: <4d4706f7-2a13-2a68-4e35-fcf83bf48d03@gmail.com> References: <20190322073742.14639-1-andr2000@gmail.com> <20190322073742.14639-2-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h9UxJ-0007ML-TL for xen-devel@lists.xenproject.org; Thu, 28 Mar 2019 13:20:30 +0000 Received: by mail-lf1-x144.google.com with SMTP id m13so13971636lfb.6 for ; Thu, 28 Mar 2019 06:20:25 -0700 (PDT) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Hans Verkuil , "Oleksandr_Andrushchenko@epam.com" , xen-devel@lists.xenproject.org, konrad.wilk@oracle.com, jgross@suse.com, boris.ostrovsky@oracle.com, mchehab@kernel.org, linux-media@vger.kernel.org, sakari.ailus@linux.intel.com, koji.matsuoka.xm@renesas.com List-Id: xen-devel@lists.xenproject.org T24gMy8yMi8xOSAxMDoyMiBBTSwgSGFucyBWZXJrdWlsIHdyb3RlOgo+IE9uIDMvMjIvMTkgODoz NyBBTSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6Cj4+IEZyb206IE9sZWtzYW5kciBB bmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4KPj4KPj4gVGhp cyBpcyB0aGUgQUJJIGZvciB0aGUgdHdvIGhhbHZlcyBvZiBhIHBhcmEtdmlydHVhbGl6ZWQKPj4g Y2FtZXJhIGRyaXZlciB3aGljaCBleHRlbmRzIFhlbidzIHJlYWNoIG11bHRpbWVkaWEgY2FwYWJp bGl0aWVzIGV2ZW4KPj4gZmFydGhlciBlbmFibGluZyBpdCBmb3IgdmlkZW8gY29uZmVyZW5jaW5n LCBJbi1WZWhpY2xlIEluZm90YWlubWVudCwKPj4gaGlnaCBkZWZpbml0aW9uIG1hcHMgZXRjLgo+ Pgo+PiBUaGUgaW5pdGlhbCBnb2FsIGlzIHRvIHN1cHBvcnQgbW9zdCBuZWVkZWQgZnVuY3Rpb25h bGl0eSB3aXRoIHRoZQo+PiBmaW5hbCBpZGVhIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gZXh0ZW5k IHRoZSBwcm90b2NvbCBpZiBuZWVkIGJlOgo+Pgo+PiAxLiBQcm92aWRlIG1lYW5zIGZvciBiYXNl IHZpcnR1YWwgZGV2aWNlIGNvbmZpZ3VyYXRpb246Cj4+ICAgLSBwaXhlbCBmb3JtYXRzCj4+ICAg LSByZXNvbHV0aW9ucwo+PiAgIC0gZnJhbWUgcmF0ZXMKPj4gMi4gU3VwcG9ydCBiYXNpYyBjYW1l cmEgY29udHJvbHM6Cj4+ICAgLSBjb250cmFzdAo+PiAgIC0gYnJpZ2h0bmVzcwo+PiAgIC0gaHVl Cj4+ICAgLSBzYXR1cmF0aW9uCj4+IDMuIFN1cHBvcnQgc3RyZWFtaW5nIGNvbnRyb2wKPj4KPj4g U2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNo Y2hlbmtvQGVwYW0uY29tPgo+IExvb2tzIGdvb2QhCj4KPiBSZXZpZXdlZC1ieTogSGFucyBWZXJr dWlsIDxodmVya3VpbC1jaXNjb0B4czRhbGwubmw+Ckp1ZXJnZW4sCmNvdWxkIHlvdSBwbGVhc2Ug dGFrZSBhIGxvb2s/Cj4KPiBUaGFuayB5b3UgZm9yIGFsbCB5b3VyIHdvcmsgb24gdGhpcy4KPgo+ IFJlZ2FyZHMsCj4KPiAJSGFucwo+Cj4+IC0tLQo+PiAgIHhlbi9pbmNsdWRlL3B1YmxpYy9pby9j YW1lcmFpZi5oIHwgMTM3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gICAxIGZp bGUgY2hhbmdlZCwgMTM3NCBpbnNlcnRpb25zKCspCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhl bi9pbmNsdWRlL3B1YmxpYy9pby9jYW1lcmFpZi5oCj4+Cj4+IGRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9wdWJsaWMvaW8vY2FtZXJhaWYuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9jYW1lcmFp Zi5oCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uYWNiY2Jm M2JkNDExCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2lvL2Nh bWVyYWlmLmgKPj4gQEAgLTAsMCArMSwxMzc0IEBACj4+ICsvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Cj4+ICsgKiBjYW1lcmFpZi5oCj4+ICsgKgo+PiArICogVW5pZmllZCBjYW1lcmEgZGV2aWNlIEkv TyBpbnRlcmZhY2UgZm9yIFhlbiBndWVzdCBPU2VzLgo+PiArICoKPj4gKyAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhIGNvcHkKPj4gKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bwo+PiArICogZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUK Pj4gKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgo+PiArICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3 YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKPj4gKyAq IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 Cj4+ICsgKgo+PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+PiArICoKPj4gKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCj4+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI RSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRI RQo+PiArICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD TEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+PiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPj4gKyAqIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIKPj4gKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPj4gKyAqCj4+ICsgKiBDb3B5 cmlnaHQgKEMpIDIwMTgtMjAxOSBFUEFNIFN5c3RlbXMgSW5jLgo+PiArICoKPj4gKyAqIEF1dGhv cjogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0u Y29tPgo+PiArICovCj4+ICsKPj4gKyNpZm5kZWYgX19YRU5fUFVCTElDX0lPX0NBTUVSQUlGX0hf Xwo+PiArI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fQ0FNRVJBSUZfSF9fCj4+ICsKPj4gKyNpbmNs dWRlICJyaW5nLmgiCj4+ICsjaW5jbHVkZSAiLi4vZ3JhbnRfdGFibGUuaCIKPj4gKwo+PiArLyoK Pj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHJvdG9jb2wgdmVyc2lvbgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICovCj4+ ICsjZGVmaW5lIFhFTkNBTUVSQV9QUk9UT0NPTF9WRVJTSU9OICAgICAiMSIKPj4gKwo+PiArLyoK Pj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAgICAgICAgRmVhdHVy ZSBhbmQgUGFyYW1ldGVyIE5lZ290aWF0aW9uCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ ICsgKgo+PiArICogRnJvbnQtPmJhY2sgbm90aWZpY2F0aW9uczogd2hlbiBlbnF1ZXVpbmcgYSBu ZXcgcmVxdWVzdCwgc2VuZGluZyBhCj4+ICsgKiBub3RpZmljYXRpb24gY2FuIGJlIG1hZGUgY29u ZGl0aW9uYWwgb24geGVuY2FtZXJhX3JlcSAoaS5lLiwgdGhlIGdlbmVyaWMKPj4gKyAqIGhvbGQt b2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBtYWNyb3MpLiBCYWNrZW5kcyBtdXN0 IHNldAo+PiArICogeGVuY2FtZXJhX3JlcSBhcHByb3ByaWF0ZWx5IChlLmcuLCB1c2luZyBSSU5H X0ZJTkFMX0NIRUNLX0ZPUl9SRVFVRVNUUygpKS4KPj4gKyAqCj4+ICsgKiBCYWNrLT5mcm9udCBu b3RpZmljYXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5ldyByZXNwb25zZSwgc2VuZGluZyBhCj4+ ICsgKiBub3RpZmljYXRpb24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24geGVuY2FtZXJhX3Jl c3AgKGkuZS4sIHRoZSBnZW5lcmljCj4+ICsgKiBob2xkLW9mZiBtZWNoYW5pc20gcHJvdmlkZWQg YnkgdGhlIHJpbmcgbWFjcm9zKS4gRnJvbnRlbmRzIG11c3Qgc2V0Cj4+ICsgKiB4ZW5jYW1lcmFf cmVzcCBhcHByb3ByaWF0ZWx5IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVNQ T05TRVMoKSkuCj4+ICsgKgo+PiArICogVGhlIHR3byBoYWx2ZXMgb2YgYSBwYXJhLXZpcnR1YWwg Y2FtZXJhIGRyaXZlciB1dGlsaXplIG5vZGVzIHdpdGhpbgo+PiArICogWGVuU3RvcmUgdG8gY29t bXVuaWNhdGUgY2FwYWJpbGl0aWVzIGFuZCB0byBuZWdvdGlhdGUgb3BlcmF0aW5nIHBhcmFtZXRl cnMuCj4+ICsgKiBUaGlzIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2RlcyB3aGljaCByZXNp ZGUgaW4gdGhlIHJlc3BlY3RpdmUgZnJvbnQgYW5kCj4+ICsgKiBiYWNrZW5kIHBvcnRpb25zIG9m IFhlblN0b3JlLCBmb2xsb3dpbmcgdGhlIFhlbkJ1cyBjb252ZW50aW9uLgo+PiArICoKPj4gKyAq IEFsbCBkYXRhIGluIFhlblN0b3JlIGlzIHN0b3JlZCBhcyBzdHJpbmdzLiBOb2RlcyBzcGVjaWZ5 aW5nIG51bWVyaWMKPj4gKyAqIHZhbHVlcyBhcmUgZW5jb2RlZCBpbiBkZWNpbWFsLiBJbnRlZ2Vy IHZhbHVlIHJhbmdlcyBsaXN0ZWQgYmVsb3cgYXJlCj4+ICsgKiBleHByZXNzZWQgYXMgZml4ZWQg c2l6ZWQgaW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIHN0b3JpbmcgdGhlIGNvbnZlcnNpb24KPj4g KyAqIG9mIGEgcHJvcGVybHkgZm9ybWF0dGVkIG5vZGUgc3RyaW5nLCB3aXRob3V0IGxvc3Mgb2Yg aW5mb3JtYXRpb24uCj4+ICsgKgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogICAg ICAgICAgICAgICAgICAgICAgICBFeGFtcGxlIGNvbmZpZ3VyYXRpb24KPj4gKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKPj4gKyAqCj4+ICsgKiBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgYmFja2VuZCBh bmQgZnJvbnRlbmQgY29uZmlndXJhdGlvbjoKPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSBCYWNrZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4+ICsgKgo+PiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmNhbWVyYS8xLzAvZnJv bnRlbmQtaWQgPSAiMSIKPj4gKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZjYW1lcmEvMS8w L2Zyb250ZW5kID0gIi9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wIgo+PiArICogL2xv Y2FsL2RvbWFpbi8wL2JhY2tlbmQvdmNhbWVyYS8xLzAvc3RhdGUgPSAiNCIKPj4gKyAqIC9sb2Nh bC9kb21haW4vMC9iYWNrZW5kL3ZjYW1lcmEvMS8wL3ZlcnNpb25zID0gIjEsMiIKPj4gKyAqCj4+ ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGcm9udGVuZCAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICogL2xvY2FsL2RvbWFpbi8xL2Rl dmljZS92Y2FtZXJhLzAvYmFja2VuZC1pZCA9ICIwIgo+PiArICogL2xvY2FsL2RvbWFpbi8xL2Rl dmljZS92Y2FtZXJhLzAvYmFja2VuZCA9ICIvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92Y2FtZXJh LzEiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9zdGF0ZSA9ICI0Igo+ PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAvdmVyc2lvbiA9ICIxIgo+PiAr ICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAvYmUtYWxsb2MgPSAiMSIKPj4gKyAq Cj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGV2aWNlIDAgY29uZmlndXJhdGlv biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICogL2xvY2FsL2RvbWFpbi8x L2RldmljZS92Y2FtZXJhLzAvbWF4LWJ1ZmZlcnMgPSAiMyIKPj4gKyAqIC9sb2NhbC9kb21haW4v MS9kZXZpY2UvdmNhbWVyYS8wL2NvbnRyb2xzID0gImNvbnRyYXN0LGh1ZSIKPj4gKyAqIC9sb2Nh bC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL2Zvcm1hdHMvWVVZVi82NDB4NDgwL2ZyYW1lLXJh dGVzID0gIjMwLzEsMTUvMSIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8w L2Zvcm1hdHMvWVVZVi8xOTIweDEwODAvZnJhbWUtcmF0ZXMgPSAiMTUvMiIKPj4gKyAqIC9sb2Nh bC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL2Zvcm1hdHMvQkdSQS82NDB4NDgwL2ZyYW1lLXJh dGVzID0gIjE1LzEsMTUvMiIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8w L2Zvcm1hdHMvQkdSQS8xMjAweDcyMC9mcmFtZS1yYXRlcyA9ICIxNS8yIgo+PiArICogL2xvY2Fs L2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAvdW5pcXVlLWlkID0gIjAiCj4+ICsgKiAvbG9jYWwv ZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9yZXEtcmluZy1yZWYgPSAiMjgzMiIKPj4gKyAqIC9s b2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL3JlcS1ldmVudC1jaGFubmVsID0gIjE1Igo+ PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAvZXZ0LXJpbmctcmVmID0gIjM4 NyIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL2V2dC1ldmVudC1jaGFu bmVsID0gIjE2Igo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEZXZp Y2UgMSBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsg KiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMS9tYXgtYnVmZmVycyA9ICI4Igo+PiAr ICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzEvY29udHJvbHMgPSAiYnJpZ2h0bmVz cyxzYXR1cmF0aW9uLGh1ZSIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8x L2Zvcm1hdHMvWVVZVi82NDB4NDgwL2ZyYW1lLXJhdGVzID0gIjMwLzEsMTUvMiIKPj4gKyAqIC9s b2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8xL2Zvcm1hdHMvWVVZVi8xOTIweDEwODAvZnJh bWUtcmF0ZXMgPSAiMTUvMiIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8x L3VuaXF1ZS1pZCA9ICIxIgo+PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzEv cmVxLXJpbmctcmVmID0gIjI4MzMiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1l cmEvMS9yZXEtZXZlbnQtY2hhbm5lbCA9ICIxNyIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZp Y2UvdmNhbWVyYS8xL2V2dC1yaW5nLXJlZiA9ICIzODgiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEv ZGV2aWNlL3ZjYW1lcmEvMS9ldnQtZXZlbnQtY2hhbm5lbCA9ICIxOCIKPj4gKyAqCj4+ICsgKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNr ZW5kIFhlbkJ1cyBOb2Rlcwo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICoKPj4gKyAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJvdG9jb2wgdmVyc2lvbiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiB2ZXJzaW9ucwo+PiArICogICAgICBW YWx1ZXM6ICAgICAgICAgPHN0cmluZz4KPj4gKyAqCj4+ICsgKiAgICAgIExpc3Qgb2YgWEVOQ0FN RVJBX0xJU1RfU0VQQVJBVE9SIHNlcGFyYXRlZCBwcm90b2NvbCB2ZXJzaW9ucyBzdXBwb3J0ZWQK Pj4gKyAqICAgICAgYnkgdGhlIGJhY2tlbmQuIEZvciBleGFtcGxlICIxLDIsMyIuCj4+ICsgKgo+ PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRnJvbnRlbmQgWGVuQnVzIE5vZGVzCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsg Kgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBZGRyZXNzaW5nIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIGRvbS1pZAo+PiArICog ICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQxNl90Pgo+PiArICoKPj4gKyAqICAgICAgRG9tYWlu IGlkZW50aWZpZXIuCj4+ICsgKgo+PiArICogZGV2LWlkCj4+ICsgKiAgICAgIFZhbHVlczogICAg ICAgICA8dWludDE2X3Q+Cj4+ICsgKgo+PiArICogICAgICBEZXZpY2UgaWRlbnRpZmllci4KPj4g KyAqCj4+ICsgKiAgICAgIC9sb2NhbC9kb21haW4vPGRvbS1pZD4vZGV2aWNlL3ZjYW1lcmEvPGRl di1pZD4vLi4uCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm90 b2NvbCB2ZXJzaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAq IHZlcnNpb24KPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxzdHJpbmc+Cj4+ICsgKgo+PiAr ICogICAgICBQcm90b2NvbCB2ZXJzaW9uLCBjaG9zZW4gYW1vbmcgdGhlIG9uZXMgc3VwcG9ydGVk IGJ5IHRoZSBiYWNrZW5kLgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBC YWNrZW5kIGJ1ZmZlciBhbGxvY2F0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAq Cj4+ICsgKiBiZS1hbGxvYwo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgIjAiLCAiMSIKPj4g KyAqCj4+ICsgKiAgICAgIElmIHZhbHVlIGlzIHNldCB0byAiMSIsIHRoZW4gYmFja2VuZCB3aWxs IGJlIHRoZSBidWZmZXIKPj4gKyAqICAgICAgcHJvdmlkZXIvYWxsb2NhdG9yIGZvciB0aGlzIGRv bWFpbiBkdXJpbmcgWEVOQ0FNRVJBX09QX0JVRl9DUkVBVEUKPj4gKyAqICAgICAgb3BlcmF0aW9u Lgo+PiArICogICAgICBJZiB2YWx1ZSBpcyBub3QgIjEiIG9yIG9taXR0ZWQgZnJvbnRlbmQgbXVz dCBhbGxvY2F0ZSBidWZmZXJzIGl0c2VsZi4KPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gQ2FtZXJhIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4+ICsgKgo+PiArICogdW5pcXVlLWlkCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8 c3RyaW5nPgo+PiArICoKPj4gKyAqICAgICAgQWZ0ZXIgZGV2aWNlIGluc3RhbmNlIGluaXRpYWxp emF0aW9uIGVhY2ggY2FtZXJhIGlzIGFzc2lnbmVkIGEKPj4gKyAqICAgICAgdW5pcXVlIElELCBz byBpdCBjYW4gYmUgaWRlbnRpZmllZCBieSB0aGUgYmFja2VuZCBieSB0aGlzIElELgo+PiArICog ICAgICBUaGlzIGNhbiBiZSBVVUlEIG9yIHN1Y2guCj4+ICsgKgo+PiArICogbWF4LWJ1ZmZlcnMK Pj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90Pgo+PiArICoKPj4gKyAqICAgICAg TWF4aW11bSBudW1iZXIgb2YgY2FtZXJhIGJ1ZmZlcnMgdGhpcyBmcm9udGVuZCBtYXkgdXNlLgo+ PiArICoKPj4gKyAqIGNvbnRyb2xzCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8bGlzdCBv ZiBzdHJpbmc+Cj4+ICsgKgo+PiArICogICAgICBMaXN0IG9mIHN1cHBvcnRlZCBjYW1lcmEgY29u dHJvbHMgc2VwYXJhdGVkIGJ5IFhFTkNBTUVSQV9MSVNUX1NFUEFSQVRPUi4KPj4gKyAqICAgICAg Q2FtZXJhIGNvbnRyb2xzIGFyZSBleHByZXNzZWQgYXMgYSBsaXN0IG9mIHN0cmluZyB2YWx1ZXMg dy9vIGFueQo+PiArICogICAgICBvcmRlcmluZyByZXF1aXJlbWVudC4KPj4gKyAqCj4+ICsgKiBm b3JtYXRzCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8Zm9ybWF0LCBjaGFyWzddPgo+PiAr ICoKPj4gKyAqICAgICAgRm9ybWF0cyBhcmUgb3JnYW5pemVkIGFzIGEgc2V0IG9mIGRpcmVjdG9y aWVzIG9uZSBwZXIgZWFjaAo+PiArICogICAgICBzdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0LiBUaGUg bmFtZSBvZiB0aGUgZGlyZWN0b3J5IGlzIHRoZQo+PiArICogICAgICBjb3JyZXNwb25kaW5nIEZP VVJDQyBzdHJpbmcgbGFiZWwuIFRoZSBuZXh0IGxldmVsIG9mCj4+ICsgKiAgICAgIHRoZSBkaXJl Y3RvcnkgdW5kZXIgPGZvcm1hdHM+IHJlcHJlc2VudHMgc3VwcG9ydGVkIHJlc29sdXRpb25zLgo+ PiArICogICAgICBJZiB0aGUgZm9ybWF0IHJlcHJlc2VudHMgYSBiaWctZW5kaWFuIHZhcmlhbnQg b2YgYSBsaXR0bGUKPj4gKyAqICAgICAgZW5kaWFuIGZvcm1hdCwgdGhlbiB0aGUgIi1CRSIgc3Vm Zml4IG11c3QgYmUgYWRkZWQuIEUuZy4gJ0FSMTUnIHZzCj4+ICsgKiAgICAgICdBUjE1LUJFJy4K Pj4gKyAqICAgICAgSWYgRk9VUkNDIHN0cmluZyBsYWJlbCBoYXMgc3BhY2VzIHRoZW4gdGhvc2Ug YXJlIG9ubHkgYWxsb3dlZCB0bwo+PiArICogICAgICBiZSBhdCB0aGUgZW5kIG9mIHRoZSBsYWJl bCBhbmQgbXVzdCBiZSB0cmltbWVkLCBmb3IgZXhhbXBsZQo+PiArICogICAgICAnWTE2JyBhbmQg J1kxNi1CRScgd2lsbCBiZSB0cmltbWVkLgo+PiArICoKPj4gKyAqIHJlc29sdXRpb24KPj4gKyAq ICAgICAgVmFsdWVzOiAgICAgICAgIDx3aWR0aCwgdWludDMyX3Q+eDxoZWlnaHQsIHVpbnQzMl90 Pgo+PiArICoKPj4gKyAqICAgICAgUmVzb2x1dGlvbnMgYXJlIG9yZ2FuaXplZCBhcyBhIHNldCBv ZiBkaXJlY3RvcmllcyBvbmUgcGVyIGVhY2gKPj4gKyAqICAgICAgc3VwcG9ydGVkIHJlc29sdXRp b24gdW5kZXIgY29ycmVzcG9uZGluZyA8Zm9ybWF0cz4gZGlyZWN0b3J5Lgo+PiArICogICAgICBU aGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IGlzIHRoZSBzdXBwb3J0ZWQgd2lkdGggYW5kIGhlaWdo dAo+PiArICogICAgICBvZiB0aGUgY2FtZXJhIHJlc29sdXRpb24gaW4gcGl4ZWxzLgo+PiArICoK Pj4gKyAqIGZyYW1lLXJhdGVzCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8bnVtZXJhdG9y LCB1aW50MzJfdD4vPGRlbm9taW5hdG9yLCB1aW50MzJfdD4KPj4gKyAqCj4+ICsgKiAgICAgIExp c3Qgb2YgWEVOQ0FNRVJBX0ZSQU1FX1JBVEVfU0VQQVJBVE9SIHNlcGFyYXRlZCBzdXBwb3J0ZWQg ZnJhbWUgcmF0ZXMKPj4gKyAqICAgICAgb2YgdGhlIGNhbWVyYSBleHByZXNzZWQgYXMgbnVtZXJh dG9yIGFuZCBkZW5vbWluYXRvciBvZiB0aGUKPj4gKyAqICAgICAgY29ycmVzcG9uZGluZyBmcmFt ZSByYXRlLgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLSBDYW1lcmEgUmVxdWVzdCBU cmFuc3BvcnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBU aGlzIGNvbW11bmljYXRpb24gcGF0aCBpcyB1c2VkIHRvIGRlbGl2ZXIgcmVxdWVzdHMgZnJvbSBm cm9udGVuZCB0byBiYWNrZW5kCj4+ICsgKiBhbmQgZ2V0IHRoZSBjb3JyZXNwb25kaW5nIHJlc3Bv bnNlcyBmcm9tIGJhY2tlbmQgdG8gZnJvbnRlbmQsCj4+ICsgKiBzZXQgdXAgcGVyIHZpcnR1YWwg Y2FtZXJhIGRldmljZS4KPj4gKyAqCj4+ICsgKiByZXEtZXZlbnQtY2hhbm5lbAo+PiArICogICAg ICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pgo+PiArICoKPj4gKyAqICAgICAgVGhlIGlkZW50 aWZpZXIgb2YgdGhlIFhlbiBjYW1lcmEncyBjb250cm9sIGV2ZW50IGNoYW5uZWwKPj4gKyAqICAg ICAgdXNlZCB0byBzaWduYWwgYWN0aXZpdHkgaW4gdGhlIHJpbmcgYnVmZmVyLgo+PiArICoKPj4g KyAqIHJlcS1yaW5nLXJlZgo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pgo+ PiArICoKPj4gKyAqICAgICAgVGhlIFhlbiBncmFudCByZWZlcmVuY2UgZ3JhbnRpbmcgcGVybWlz c2lvbiBmb3IgdGhlIGJhY2tlbmQgdG8gbWFwCj4+ICsgKiAgICAgIGEgc29sZSBwYWdlIG9mIGNh bWVyYSdzIGNvbnRyb2wgcmluZyBidWZmZXIuCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0t LS0tLSBDYW1lcmEgRXZlbnQgVHJhbnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+PiArICoKPj4gKyAqIFRoaXMgY29tbXVuaWNhdGlvbiBwYXRoIGlzIHVzZWQgdG8gZGVs aXZlciBhc3luY2hyb25vdXMgZXZlbnRzIGZyb20gYmFja2VuZAo+PiArICogdG8gZnJvbnRlbmQs IHNldCB1cCBwZXIgdmlydHVhbCBjYW1lcmEgZGV2aWNlLgo+PiArICoKPj4gKyAqIGV2dC1ldmVu dC1jaGFubmVsCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+Cj4+ICsgKgo+ PiArICogICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgWGVuIGNhbWVyYSdzIGV2ZW50IGNoYW5u ZWwKPj4gKyAqICAgICAgdXNlZCB0byBzaWduYWwgYWN0aXZpdHkgaW4gdGhlIHJpbmcgYnVmZmVy Lgo+PiArICoKPj4gKyAqIGV2dC1yaW5nLXJlZgo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAg PHVpbnQzMl90Pgo+PiArICoKPj4gKyAqICAgICAgVGhlIFhlbiBncmFudCByZWZlcmVuY2UgZ3Jh bnRpbmcgcGVybWlzc2lvbiBmb3IgdGhlIGJhY2tlbmQgdG8gbWFwCj4+ICsgKiAgICAgIGEgc29s ZSBwYWdlIG9mIGNhbWVyYSdzIGV2ZW50IHJpbmcgYnVmZmVyLgo+PiArICovCj4+ICsKPj4gKy8q Cj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTVEFURSBESUFHUkFNUwo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICoK Pj4gKyAqIFRvb2wgc3RhY2sgY3JlYXRlcyBmcm9udCBhbmQgYmFjayBzdGF0ZSBub2RlcyB3aXRo IGluaXRpYWwgc3RhdGUKPj4gKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nLgo+PiArICogVG9v bCBzdGFjayBjcmVhdGVzIGFuZCBzZXRzIHVwIGZyb250ZW5kIGNhbWVyYSBjb25maWd1cmF0aW9u Cj4+ICsgKiBub2RlcyBwZXIgZG9tYWluLgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gTm9ybWFsIGZsb3cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPj4gKyAqCj4+ICsgKiBGcm9udCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFj awo+PiArICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAgID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPj4gKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5n ICAgICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZwo+PiArICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvIFF1ZXJ5IGJhY2tlbmQgZGV2aWNlIGlkZW50aWZp Y2F0aW9uCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YS4KPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBPcGVuIGFu ZCB2YWxpZGF0ZSBiYWNrZW5kIGRldmljZS4KPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFYKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRXYWl0Cj4+ICsgKgo+PiArICogbyBRdWVyeSBmcm9u dGVuZCBjb25maWd1cmF0aW9uCj4+ICsgKiBvIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplCj4+ICsg KiAgIGV2ZW50IGNoYW5uZWxzIHBlciBjb25maWd1cmVkCj4+ICsgKiAgIGNhbWVyYS4KPj4gKyAq IG8gUHVibGlzaCB0cmFuc3BvcnQgcGFyYW1ldGVycwo+PiArICogICB0aGF0IHdpbGwgYmUgaW4g ZWZmZWN0IGR1cmluZwo+PiArICogICB0aGlzIGNvbm5lY3Rpb24uCj4+ICsgKiAgICAgICAgICAg ICAgfAo+PiArICogICAgICAgICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICBWCj4+ICsgKiBY ZW5idXNTdGF0ZUluaXRpYWxpc2VkCj4+ICsgKgo+PiArICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvIFF1ZXJ5IGZyb250ZW5kIHRyYW5zcG9ydCBwYXJhbWV0ZXJzLgo+ PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIENvbm5lY3QgdG8g dGhlIGV2ZW50IGNoYW5uZWxzLgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFhlbmJ1c1N0YXRlQ29ubmVjdGVkCj4+ICsgKgo+PiArICogIG8gQ3JlYXRlIGFuZCBpbml0 aWFsaXplIE9TCj4+ICsgKiAgICB2aXJ0dWFsIGNhbWVyYSBhcyBwZXIKPj4gKyAqICAgIGNvbmZp Z3VyYXRpb24uCj4+ICsgKiAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgIHwKPj4g KyAqICAgICAgICAgICAgICBWCj4+ICsgKiBYZW5idXNTdGF0ZUNvbm5lY3RlZAo+PiArICoKPj4g KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZVVua25v d24KPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0 ZUNsb3NlZAo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1 c1N0YXRlQ2xvc2luZwo+PiArICogbyBSZW1vdmUgdmlydHVhbCBjYW1lcmEgZGV2aWNlCj4+ICsg KiBvIFJlbW92ZSBldmVudCBjaGFubmVscwo+PiArICogICAgICAgICAgICAgIHwKPj4gKyAqICAg ICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAgVgo+PiArICogWGVuYnVzU3RhdGVDbG9z ZWQKPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVjb3Zlcnkg ZmxvdyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICogSW4gY2Fz ZSBvZiBmcm9udGVuZCB1bnJlY292ZXJhYmxlIGVycm9ycyBiYWNrZW5kIGhhbmRsZXMgdGhhdCBh cwo+PiArICogaWYgZnJvbnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0ZUNsb3NlZCBzdGF0 ZS4KPj4gKyAqCj4+ICsgKiBJbiBjYXNlIG9mIGJhY2tlbmQgdW5yZWNvdmVyYWJsZSBlcnJvcnMg ZnJvbnRlbmQgdHJpZXMgcmVtb3ZpbmcKPj4gKyAqIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UuIElm IHRoaXMgaXMgcG9zc2libGUgYXQgdGhlIG1vbWVudCBvZiBlcnJvciwKPj4gKyAqIHRoZW4gZnJv bnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyBzdGF0ZSBhbmQgaXMg cmVhZHkgZm9yCj4+ICsgKiBuZXcgY29ubmVjdGlvbiB3aXRoIGJhY2tlbmQuIElmIHRoZSB2aXJ0 dWFsaXplZCBkZXZpY2UgaXMgc3RpbGwgaW4gdXNlIGFuZAo+PiArICogY2Fubm90IGJlIHJlbW92 ZWQsIHRoZW4gZnJvbnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcg c3RhdGUKPj4gKyAqIHVudGlsIGVpdGhlciB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGlzIHJlbW92 ZWQgb3IgYmFja2VuZCBpbml0aWF0ZXMgYSBuZXcKPj4gKyAqIGNvbm5lY3Rpb24uIE9uIHRoZSB2 aXJ0dWFsaXplZCBkZXZpY2UgcmVtb3ZhbCBmcm9udGVuZCBnb2VzIGludG8gdGhlCj4+ICsgKiBY ZW5idXNTdGF0ZUluaXRpYWxpc2luZyBzdGF0ZS4KPj4gKyAqCj4+ICsgKiBOb3RlIG9uIFhlbmJ1 c1N0YXRlUmVjb25maWd1cmluZyBzdGF0ZSBvZiB0aGUgZnJvbnRlbmQ6IGlmIGJhY2tlbmQgaGFz Cj4+ICsgKiB1bnJlY292ZXJhYmxlIGVycm9ycyB0aGVuIGZyb250ZW5kIGNhbm5vdCBzZW5kIHJl cXVlc3RzIHRvIHRoZSBiYWNrZW5kCj4+ICsgKiBhbmQgdGh1cyBjYW5ub3QgcHJvdmlkZSBmdW5j dGlvbmFsaXR5IG9mIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgYW55bW9yZS4KPj4gKyAqIEFmdGVy IGJhY2tlbmQgaXMgYmFjayB0byBub3JtYWwgdGhlIHZpcnR1YWxpemVkIGRldmljZSBtYXkgc3Rp bGwgaG9sZCBzb21lCj4+ICsgKiBzdGF0ZTogY29uZmlndXJhdGlvbiBpbiB1c2UsIGFsbG9jYXRl ZCBidWZmZXJzLCBjbGllbnQgYXBwbGljYXRpb24gc3RhdGUgZXRjLgo+PiArICogSW4gbW9zdCBj YXNlcywgdGhpcyB3aWxsIHJlcXVpcmUgZnJvbnRlbmQgdG8gaW1wbGVtZW50IGNvbXBsZXggcmVj b3ZlcnkKPj4gKyAqIHJlY29ubmVjdCBsb2dpYy4gSW5zdGVhZCwgYnkgZ29pbmcgaW50byBYZW5i dXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUsCj4+ICsgKiBmcm9udGVuZCB3aWxsIG1ha2Ugc3Vy ZSBubyBuZXcgY2xpZW50cyBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGFyZQo+PiArICogYWNj ZXB0ZWQsIGFsbG93IGV4aXN0aW5nIGNsaWVudChzKSB0byBleGl0IGdyYWNlZnVsbHkgYnkgc2ln bmFsaW5nIGVycm9yCj4+ICsgKiBzdGF0ZSBldGMuCj4+ICsgKiBPbmNlIGFsbCB0aGUgY2xpZW50 cyBhcmUgZ29uZSBmcm9udGVuZCBjYW4gcmVpbml0aWFsaXplIHRoZSB2aXJ0dWFsaXplZAo+PiAr ICogZGV2aWNlIGFuZCBnZXQgaW50byBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyBzdGF0ZSBhZ2Fp biBzaWduYWxpbmcgdGhlCj4+ICsgKiBiYWNrZW5kIHRoYXQgYSBuZXcgY29ubmVjdGlvbiBjYW4g YmUgbWFkZS4KPj4gKyAqCj4+ICsgKiBUaGVyZSBhcmUgbXVsdGlwbGUgY29uZGl0aW9ucyBwb3Nz aWJsZSB1bmRlciB3aGljaCBmcm9udGVuZCB3aWxsIGdvIGZyb20KPj4gKyAqIFhlbmJ1c1N0YXRl UmVjb25maWd1cmluZyBpbnRvIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nLCBzb21lIG9mIHRoZW0g YXJlIE9TCj4+ICsgKiBzcGVjaWZpYy4gRm9yIGV4YW1wbGU6Cj4+ICsgKiAxLiBUaGUgdW5kZXJs eWluZyBPUyBmcmFtZXdvcmsgbWF5IHByb3ZpZGUgY2FsbGJhY2tzIHRvIHNpZ25hbCB0aGF0IHRo ZSBsYXN0Cj4+ICsgKiAgICBjbGllbnQgb2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBoYXMgZ29u ZSBhbmQgdGhlIGRldmljZSBjYW4gYmUgcmVtb3ZlZAo+PiArICogMi4gRnJvbnRlbmQgY2FuIHNj aGVkdWxlIGEgZGVmZXJyZWQgd29yayAodGltZXIvdGFza2xldC93b3JrcXVldWUpCj4+ICsgKiAg ICB0byBwZXJpb2RpY2FsbHkgY2hlY2sgaWYgdGhpcyBpcyB0aGUgcmlnaHQgdGltZSB0byByZS10 cnkgcmVtb3ZhbCBvZgo+PiArICogICAgdGhlIHZpcnR1YWxpemVkIGRldmljZS4KPj4gKyAqIDMu IEJ5IGFueSBvdGhlciBtZWFucy4KPj4gKyAqCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVTVCBDT0RFUwo+PiArICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgo+PiArICovCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9DT05GSUdf U0VUICAgICAgICAweDAwCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9DT05GSUdfR0VUICAgICAg ICAweDAxCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9DT05GSUdfVkFMSURBVEUgICAweDAyCj4+ ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9GUkFNRV9SQVRFX1NFVCAgICAweDAzCj4+ICsjZGVmaW5l IFhFTkNBTUVSQV9PUF9CVUZfR0VUX0xBWU9VVCAgICAweDA0Cj4+ICsjZGVmaW5lIFhFTkNBTUVS QV9PUF9CVUZfUkVRVUVTVCAgICAgICAweDA1Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9CVUZf Q1JFQVRFICAgICAgICAweDA2Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9CVUZfREVTVFJPWSAg ICAgICAweDA3Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9CVUZfUVVFVUUgICAgICAgICAweDA4 Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9CVUZfREVRVUVVRSAgICAgICAweDA5Cj4+ICsjZGVm aW5lIFhFTkNBTUVSQV9PUF9DVFJMX0VOVU0gICAgICAgICAweDBhCj4+ICsjZGVmaW5lIFhFTkNB TUVSQV9PUF9DVFJMX1NFVCAgICAgICAgICAweDBiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9D VFJMX0dFVCAgICAgICAgICAweDBjCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9TVFJFQU1fU1RB UlQgICAgICAweDBkCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9PUF9TVFJFQU1fU1RPUCAgICAgICAw eDBlCj4+ICsKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0NUUkxfQlJJR0hUTkVTUyAgICAgIDAKPj4g KyNkZWZpbmUgWEVOQ0FNRVJBX0NUUkxfQ09OVFJBU1QgICAgICAgIDEKPj4gKyNkZWZpbmUgWEVO Q0FNRVJBX0NUUkxfU0FUVVJBVElPTiAgICAgIDIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0NUUkxf SFVFICAgICAgICAgICAgIDMKPj4gKwo+PiArLyogTnVtYmVyIG9mIHN1cHBvcnRlZCBjb250cm9s cy4gKi8KPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX01BWF9DVFJMICAgICAgICAgICAgIDQKPj4gKwo+ PiArLyogQ29udHJvbCBpcyByZWFkLW9ubHkuICovCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJM X0ZMR19STyAgICAgICAgICAoMSA8PCAwKQo+PiArLyogQ29udHJvbCBpcyB3cml0ZS1vbmx5LiAq Lwo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ1RSTF9GTEdfV08gICAgICAgICAgKDEgPDwgMSkKPj4g Ky8qIENvbnRyb2wncyB2YWx1ZSBpcyB2b2xhdGlsZS4gKi8KPj4gKyNkZWZpbmUgWEVOQ0FNRVJB X0NUUkxfRkxHX1ZPTEFUSUxFICAgICgxIDw8IDIpCj4+ICsKPj4gKy8qIFN1cHBvcnRlZCBjb2xv ciBzcGFjZXMuICovCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DT0xPUlNQQUNFX0RFRkFVTFQgICAw Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DT0xPUlNQQUNFX1NNUFRFMTcwTSAxCj4+ICsjZGVmaW5l IFhFTkNBTUVSQV9DT0xPUlNQQUNFX1JFQzcwOSAgICAyCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9D T0xPUlNQQUNFX1NSR0IgICAgICAzCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DT0xPUlNQQUNFX09Q UkdCICAgICA0Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DT0xPUlNQQUNFX0JUMjAyMCAgICA1Cj4+ ICsjZGVmaW5lIFhFTkNBTUVSQV9DT0xPUlNQQUNFX0RDSV9QMyAgICA2Cj4+ICsKPj4gKy8qIENv bG9yIHNwYWNlIHRyYW5zZmVyIGZ1bmN0aW9uLiAqLwo+PiArI2RlZmluZSBYRU5DQU1FUkFfWEZF Ul9GVU5DX0RFRkFVTFQgICAgMAo+PiArI2RlZmluZSBYRU5DQU1FUkFfWEZFUl9GVU5DXzcwOSAg ICAgICAgMQo+PiArI2RlZmluZSBYRU5DQU1FUkFfWEZFUl9GVU5DX1NSR0IgICAgICAgMgo+PiAr I2RlZmluZSBYRU5DQU1FUkFfWEZFUl9GVU5DX09QUkdCICAgICAgMwo+PiArI2RlZmluZSBYRU5D QU1FUkFfWEZFUl9GVU5DX05PTkUgICAgICAgNAo+PiArI2RlZmluZSBYRU5DQU1FUkFfWEZFUl9G VU5DX0RDSV9QMyAgICAgNQo+PiArI2RlZmluZSBYRU5DQU1FUkFfWEZFUl9GVU5DX1NNUFRFMjA4 NCAgNgo+PiArCj4+ICsvKiBDb2xvciBzcGFjZSBZ4oCZQ2JDciBlbmNvZGluZy4gKi8KPj4gKyNk ZWZpbmUgWEVOQ0FNRVJBX1lDQkNSX0VOQ19JR05PUkUgICAgICAgICAgIDAKPj4gKyNkZWZpbmUg WEVOQ0FNRVJBX1lDQkNSX0VOQ182MDEgICAgICAgICAgICAgIDEKPj4gKyNkZWZpbmUgWEVOQ0FN RVJBX1lDQkNSX0VOQ183MDkgICAgICAgICAgICAgIDIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1lD QkNSX0VOQ19YVjYwMSAgICAgICAgICAgIDMKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1lDQkNSX0VO Q19YVjcwOSAgICAgICAgICAgIDQKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1lDQkNSX0VOQ19CVDIw MjAgICAgICAgICAgIDUKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1lDQkNSX0VOQ19CVDIwMjBfQ09O U1RfTFVNIDYKPj4gKwo+PiArLyogUXVhbnRpemF0aW9uIHJhbmdlLiAqLwo+PiArI2RlZmluZSBY RU5DQU1FUkFfUVVBTlRJWkFUSU9OX0RFRkFVTFQgICAgICAgMAo+PiArI2RlZmluZSBYRU5DQU1F UkFfUVVBTlRJWkFUSU9OX0ZVTExfUkFOR0UgICAgMQo+PiArI2RlZmluZSBYRU5DQU1FUkFfUVVB TlRJWkFUSU9OX0xJTV9SQU5HRSAgICAgMgo+PiArCj4+ICsvKgo+PiArICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVkVOVCBDT0RF Uwo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICovCj4+ICsjZGVmaW5lIFhFTkNBTUVS QV9FVlRfRlJBTUVfQVZBSUwgICAgICAweDAwCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9FVlRfQ1RS TF9DSEFOR0UgICAgICAweDAxCj4+ICsKPj4gKy8qCj4+ICsgKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Cj4+ICsgKiAgICAgICAgICAgICAgIFhFTlNUT1JFIEZJRUxEIEFORCBQQVRIIE5BTUUgU1RSSU5H UywgSEVMUEVSUwo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICovCj4+ICsjZGVmaW5l IFhFTkNBTUVSQV9EUklWRVJfTkFNRSAgICAgICAgICAidmNhbWVyYSIKPj4gKwo+PiArI2RlZmlu ZSBYRU5DQU1FUkFfTElTVF9TRVBBUkFUT1IgICAgICAgIiwiCj4+ICsjZGVmaW5lIFhFTkNBTUVS QV9SRVNPTFVUSU9OX1NFUEFSQVRPUiAieCIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0ZSQUNUSU9O X1NFUEFSQVRPUiAgICIvIgo+PiArCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9CRV9WRVJT SU9OUyAgICAidmVyc2lvbnMiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9GRV9WRVJTSU9O ICAgICAidmVyc2lvbiIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0ZJRUxEX1JFUV9SSU5HX1JFRiAg ICJyZXEtcmluZy1yZWYiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9SRVFfQ0hBTk5FTCAg ICAicmVxLWV2ZW50LWNoYW5uZWwiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9FVlRfUklO R19SRUYgICAiZXZ0LXJpbmctcmVmIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfRVZUX0NI QU5ORUwgICAgImV2dC1ldmVudC1jaGFubmVsIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERf TUFYX0JVRkZFUlMgICAgIm1heC1idWZmZXJzIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERf Q09OVFJPTFMgICAgICAgImNvbnRyb2xzIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfRk9S TUFUUyAgICAgICAgImZvcm1hdHMiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9GUkFNRV9S QVRFUyAgICAiZnJhbWUtcmF0ZXMiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9CRV9BTExP QyAgICAgICAiYmUtYWxsb2MiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9VTklRVUVfSUQg ICAgICAidW5pcXVlLWlkIgo+PiArCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0JSSUdIVE5F U1NfU1RSICAiYnJpZ2h0bmVzcyIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0NUUkxfQ09OVFJBU1Rf U1RSICAgICJjb250cmFzdCIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0NUUkxfU0FUVVJBVElPTl9T VFIgICJzYXR1cmF0aW9uIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ1RSTF9IVUVfU1RSICAgICAg ICAgImh1ZSIKPj4gKwo+PiArI2RlZmluZSBYRU5DQU1FUkFfRk9VUkNDX0JJR0VORElBTl9TVFIg Ii1CRSIKPj4gKwo+PiArLyogTWF4aW11bSBudW1iZXIgb2YgYnVmZmVyIHBsYW5lcyBzdXBwb3J0 ZWQuICovCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9NQVhfUExBTkUgICAgICAgICAgICA0Cj4+ICsK Pj4gKy8qCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgU1RBVFVTIFJFVFVSTiBDT0RFUwo+PiArICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ PiArICoKPj4gKyAqIFN0YXR1cyByZXR1cm4gY29kZSBpcyB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIC1Y RU5fRVhYIG9uIGZhaWx1cmUuCj4+ICsgKgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiAr ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBc3N1bXB0aW9ucwo+PiArICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgo+PiArICoKPj4gKyAqIC0gdXNhZ2Ugb2YgZ3JhbnQgcmVmZXJlbmNlIDAg YXMgaW52YWxpZCBncmFudCByZWZlcmVuY2U6Cj4+ICsgKiAgIGdyYW50IHJlZmVyZW5jZSAwIGlz IHZhbGlkLCBidXQgbmV2ZXIgZXhwb3NlZCB0byBhIFBWIGRyaXZlciwKPj4gKyAqICAgYmVjYXVz ZSBvZiB0aGUgZmFjdCBpdCBpcyBhbHJlYWR5IGluIHVzZS9yZXNlcnZlZCBieSB0aGUgUFYgY29u c29sZS4KPj4gKyAqIC0gYWxsIHJlZmVyZW5jZXMgaW4gdGhpcyBkb2N1bWVudCB0byBwYWdlIHNp emVzIG11c3QgYmUgdHJlYXRlZAo+PiArICogICBhcyBwYWdlcyBvZiBzaXplIFhFTl9QQUdFX1NJ WkUgdW5sZXNzIG90aGVyd2lzZSBub3RlZC4KPj4gKyAqIC0gYWxsIEZPVVJDQyBtYXBwaW5ncyB1 c2VkIGZvciBjb25maWd1cmF0aW9uIGFuZCBtZXNzYWdpbmcgYXJlCj4+ICsgKiAgIExpbnV4IFY0 TDIgb25lczogaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQv dG9ydmFsZHMvbGludXguZ2l0L3RyZWUvaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oCj4+ ICsgKiAgIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zOgo+PiArICogICAgIC0gY2hhcmFj dGVycyBhcmUgYWxsb3dlZCBpbiBbMHgyMDsgMHg3Zl0gcmFuZ2UKPj4gKyAqICAgICAtIHdoZW4g dXNlZCBmb3IgWGVuU3RvcmUgY29uZmlndXJhdGlvbiBlbnRyaWVzIHRoZSBmb2xsb3dpbmcKPj4g KyAqICAgICAgIGFyZSBub3QgYWxsb3dlZDoKPj4gKyAqICAgICAgIC0gJy8nLCAnXCcsICcgJyAo c3BhY2UpLCAnPCcsICc+JywgJzonLCAnIicsICd8JywgJz8nLCAnKicKPj4gKyAqICAgICAgIC0g aWYgdHJhaWxpbmcgc3BhY2VzIGFyZSBwYXJ0IG9mIHRoZSBGT1VSQ0MgY29kZSB0aGVuIHRob3Nl IG11c3QgYmUKPj4gKyAqICAgICAgICAgdHJpbW1lZAo+PiArICoKPj4gKyAqCj4+ICsgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCj4+ICsgKiAgICAgICBEZXNjcmlwdGlvbiBvZiB0aGUgcHJvdG9jb2wg YmV0d2VlbiBmcm9udGVuZCBhbmQgYmFja2VuZCBkcml2ZXIKPj4gKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKPj4gKyAqCj4+ICsgKiBUaGUgdHdvIGhhbHZlcyBvZiBhIFBhcmEtdmlydHVhbCBjYW1l cmEgZHJpdmVyIGNvbW11bmljYXRlIHdpdGgKPj4gKyAqIGVhY2ggb3RoZXIgdXNpbmcgc2hhcmVk IHBhZ2VzIGFuZCBldmVudCBjaGFubmVscy4KPj4gKyAqIFNoYXJlZCBwYWdlIGNvbnRhaW5zIGEg cmluZyB3aXRoIHJlcXVlc3QvcmVzcG9uc2UgcGFja2V0cy4KPj4gKyAqCj4+ICsgKiBBbGwgcmVz ZXJ2ZWQgZmllbGRzIGluIHRoZSBzdHJ1Y3R1cmVzIGJlbG93IG11c3QgYmUgMC4KPj4gKyAqCj4+ ICsgKiBGb3IgYWxsIHJlcXVlc3QvcmVzcG9uc2UvZXZlbnQgcGFja2V0czoKPj4gKyAqICAgLSBm cmFtZSByYXRlIHBhcmFtZXRlciBpcyByZXByZXNlbnRlZCBhcyBhIHBhaXIgb2YgNCBvY3RldCBs b25nCj4+ICsgKiAgICAgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvcjoKPj4gKyAqICAgICAgIC0g ZnJhbWVfcmF0ZV9udW1lciAtIHVpbnQzMl90LCBudW1lcmF0b3Igb2YgdGhlIGZyYW1lIHJhdGUK Pj4gKyAqICAgICAgIC0gZnJhbWVfcmF0ZV9kZW5vbSAtIHVpbnQzMl90LCBkZW5vbWluYXRvciBv ZiB0aGUgZnJhbWUgcmF0ZQo+PiArICogICAgIFRoZSBjb3JyZXNwb25kaW5nIGZyYW1lIHJhdGUg KEh6KSBpcyBjYWxjdWxhdGVkIGFzOgo+PiArICogICAgICAgZnJhbWVfcmF0ZSA9IGZyYW1lX3Jh dGVfbnVtZXIgLyBmcmFtZV9yYXRlX2Rlbm9tCj4+ICsgKiAgIC0gYnVmZmVyIGluZGV4IGlzIGEg emVybyBiYXNlZCBpbmRleCBvZiB0aGUgYnVmZmVyLiBNdXN0IGJlIGxlc3MgdGhhbgo+PiArICog ICAgIHRoZSB2YWx1ZSBvZiBYRU5DQU1FUkFfT1BfQ09ORklHX1NFVC5udW1fYnVmcyByZXNwb25z ZToKPj4gKyAqICAgICAgIC0gaW5kZXggLSB1aW50OF90LCBpbmRleCBvZiB0aGUgYnVmZmVyLgo+ PiArICoKPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVx dWVzdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICogQWxs IHJlcXVlc3QgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgb2N0ZXRzKS4KPj4gKyAq IEFsbCByZXF1ZXN0IHBhY2tldHMgaGF2ZSBjb21tb24gaGVhZGVyOgo+PiArICogICAgICAgICAw ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAg ICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAg ICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiAgIGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNw b25zZS4KPj4gKyAqICAgb3BlcmF0aW9uIC0gdWludDhfdCwgb3BlcmF0aW9uIGNvZGUsIFhFTkNB TUVSQV9PUF9YWFguCj4+ICsgKgo+PiArICoKPj4gKyAqIFJlcXVlc3QgdG8gc2V0L3ZhbGlkYXRl IHRoZSBjb25maWd1cmF0aW9uIC0gcmVxdWVzdCB0byBzZXQgdGhlCj4+ICsgKiBjb25maWd1cmF0 aW9uL21vZGUgb2YgdGhlIGNhbWVyYSAoWEVOQ0FNRVJBX09QX0NPTkZJR19TRVQpIG9yIHRvCj4+ ICsgKiBjaGVjayBpZiB0aGUgY29uZmlndXJhdGlvbiBpcyB2YWxpZCBhbmQgY2FuIGJlIHVzZWQK Pj4gKyAqIChYRU5DQU1FUkFfT1BfQ09ORklHX1ZBTElEQVRFKToKPj4gKyAqICAgICAgICAgMCAg ICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAg b2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAg ICAgICAgICAgIHwgX09QX0NPTkZJR19YWFggfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbCBmb3JtYXQgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgd2lkdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhlaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg NjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIHBpeGVsX2Zvcm1hdCAtIHVpbnQz Ml90LCBwaXhlbCBmb3JtYXQgdG8gYmUgdXNlZCwgRk9VUkNDIGNvZGUuCj4+ICsgKiB3aWR0aCAt IHVpbnQzMl90LCB3aWR0aCBpbiBwaXhlbHMuCj4+ICsgKiBoZWlnaHQgLSB1aW50MzJfdCwgaGVp Z2h0IGluIHBpeGVscy4KPj4gKyAqCj4+ICsgKiBTZWUgcmVzcG9uc2UgZm9ybWF0IGZvciB0aGlz IHJlcXVlc3QuCj4+ICsgKgo+PiArICogTm90ZXM6Cj4+ICsgKiAgLSB0aGUgb25seSBkaWZmZXJl bmNlIGJldHdlZW4gWEVOQ0FNRVJBX09QX0NPTkZJR19WQUxJREFURSBhbmQKPj4gKyAqICAgIFhF TkNBTUVSQV9PUF9DT05GSUdfU0VUIGlzIHRoYXQgdGhlIGZvcm1lciBkb2Vzbid0IGFjdHVhbGx5 IGNoYW5nZQo+PiArICogICAgY2FtZXJhIGNvbmZpZ3VyYXRpb24sIGJ1dCBxdWVyaWVzIGlmIHRo ZSBjb25maWd1cmF0aW9uIGlzIHZhbGlkLgo+PiArICogICAgVGhpcyBjYW4gYmUgdXNlZCB3aGls ZSBzdHJlYW0gaXMgYWN0aXZlIGFuZC9vciBidWZmZXJzIGFsbG9jYXRlZC4KPj4gKyAqICAtIGZy b250ZW5kIG11c3QgY2hlY2sgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UgaW4gb3JkZXIgdG8g c2VlCj4+ICsgKiAgICBpZiB0aGUgdmFsdWVzIHJlcG9ydGVkIGJhY2sgYnkgdGhlIGJhY2tlbmQg ZG8gbWF0Y2ggdGhlIGRlc2lyZWQgb25lcwo+PiArICogICAgYW5kIGNhbiBiZSBhY2NlcHRlZC4K Pj4gKyAqICAtIGZyb250ZW5kIG1heSBzZW5kIG11bHRpcGxlIFhFTkNBTUVSQV9PUF9DT05GSUdf U0VUIHJlcXVlc3RzIGJlZm9yZQo+PiArICogICAgc2VuZGluZyBYRU5DQU1FUkFfT1BfU1RSRUFN X1NUQVJUIHJlcXVlc3QgdG8gdXBkYXRlIG9yIHR1bmUgdGhlCj4+ICsgKiAgICBmaW5hbCBzdHJl YW0gY29uZmlndXJhdGlvbi4KPj4gKyAqICAtIGNvbmZpZ3VyYXRpb24gY2Fubm90IGJlIGNoYW5n ZWQgZHVyaW5nIGFjdGl2ZSBzdHJlYW1pbmcsIGUuZy4KPj4gKyAqICAgIGFmdGVyIFhFTkNBTUVS QV9PUF9TVFJFQU1fU1RBUlQgYW5kIGJlZm9yZSBYRU5DQU1FUkFfT1BfU1RSRUFNX1NUT1AKPj4g KyAqICAgIHJlcXVlc3RzLgo+PiArICovCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX2NvbmZpZ19yZXEg ewo+PiArICAgIHVpbnQzMl90IHBpeGVsX2Zvcm1hdDsKPj4gKyAgICB1aW50MzJfdCB3aWR0aDsK Pj4gKyAgICB1aW50MzJfdCBoZWlnaHQ7Cj4+ICt9Owo+PiArCj4+ICsvKgo+PiArICogUmVxdWVz dCBjdXJyZW50IGNvbmZpZ3VyYXRpb24gb2YgdGhlIGNhbWVyYToKPj4gKyAqICAgICAgICAgMCAg ICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAg b2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAg ICAgICAgICAgIHwgX09QX0NPTkZJR19HRVQgfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2 NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogU2VlIHJlc3BvbnNlIGZvcm1hdCBm b3IgdGhpcyByZXF1ZXN0Lgo+PiArICoKPj4gKyAqCj4+ICsgKiBSZXF1ZXN0IHRvIHNldCB0aGUg ZnJhbWUgcmF0ZSBvZiB0aGUgc3RyZWFtOgo+PiArICogICAgICAgICAwICAgICAgICAgICAgICAg IDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCBf RlJBTUVfUkFURV9TRVR8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICBmcmFtZV9yYXRlX251bWVyICAgICAgICAgICAgICAgICAgICAgICAg IHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgZnJhbWVfcmF0ZV9kZW5vbSAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBmcmFtZV9yYXRlX251bWVyIC0g dWludDMyX3QsIG51bWVyYXRvciBvZiB0aGUgZnJhbWUgcmF0ZS4KPj4gKyAqIGZyYW1lX3JhdGVf ZGVub20gLSB1aW50MzJfdCwgZGVub21pbmF0b3Igb2YgdGhlIGZyYW1lIHJhdGUuCj4+ICsgKgo+ PiArICogTm90ZXM6Cj4+ICsgKiAgLSB0byBxdWVyeSB0aGUgY3VycmVudCAoYWN0dWFsKSBmcmFt ZSByYXRlIHVzZSBYRU5DQU1FUkFfT1BfQ09ORklHX0dFVAo+PiArICogICAgcmVxdWVzdC4KPj4g KyAqICAtIHRoaXMgcmVxdWVzdCBjYW4gYmUgdXNlZCB3aXRoIGNhbWVyYSBidWZmZXJzIGFsbG9j YXRlZCwgYnV0IHN0cmVhbQo+PiArICogICAgc3RvcHBlZCwgZS5nLiBmcm9udGVuZCBpcyBhbGxv d2VkIHRvIHN0b3AgdGhlIHN0cmVhbSB3aXRoCj4+ICsgKiAgICBYRU5DQU1FUkFfT1BfU1RSRUFN X1NUT1AsIGhvbGQgdGhlIGJ1ZmZlcnMgYWxsb2NhdGVkIChlLmcuIGtlZXAgdGhlCj4+ICsgKiAg ICBjb25maWd1cmF0aW9uIHNldCB3aXRoIFhFTkNBTUVSQV9PUF9DT05GSUdfU0VUKSwgY2hhbmdl IHRoZQo+PiArICogICAgZnJhbWUgcmF0ZSBvZiB0aGUgc3RyZWFtIGFuZCAocmUpc3RhcnQgdGhl IHN0cmVhbSBhZ2FpbiB3aXRoCj4+ICsgKiAgICBYRU5DQU1FUkFfT1BfU1RSRUFNX1NUQVJULgo+ PiArICogIC0gZnJhbWUgcmF0ZSBjYW5ub3QgYmUgY2hhbmdlZCBkdXJpbmcgYWN0aXZlIHN0cmVh bWluZywgZS5nLgo+PiArICogICAgYWZ0ZXIgWEVOQ0FNRVJBX09QX1NUUkVBTV9TVEFSVCBhbmQg YmVmb3JlIFhFTkNBTUVSQV9PUF9TVFJFQU1fU1RPUAo+PiArICogICAgY29tbWFuZHMuCj4+ICsg Ki8KPj4gK3N0cnVjdCB4ZW5jYW1lcmFfZnJhbWVfcmF0ZV9yZXEgewo+PiArICAgIHVpbnQzMl90 IGZyYW1lX3JhdGVfbnVtZXI7Cj4+ICsgICAgdWludDMyX3QgZnJhbWVfcmF0ZV9kZW5vbTsKPj4g K307Cj4+ICsKPj4gKy8qCj4+ICsgKiBSZXF1ZXN0IGNhbWVyYSBidWZmZXIncyBsYXlvdXQ6Cj4+ ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAg ICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICBpZCAgICAgICAgICAgICAgICB8IF9CVUZfR0VUX0xBWU9VVHwgICByZXNlcnZlZCAg ICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIFNlZSBy ZXNwb25zZSBmb3JtYXQgZm9yIHRoaXMgcmVxdWVzdC4KPj4gKyAqCj4+ICsgKgo+PiArICogUmVx dWVzdCBudW1iZXIgb2YgYnVmZmVycyB0byBiZSB1c2VkOgo+PiArICogICAgICAgICAwICAgICAg ICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3Rl dAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAg ICAgICAgfCBfT1BfQlVGX1JFUVVFU1R8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8 ICAgIG51bV9idWZzICAgIHwgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAg ICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4g KyAqIG51bV9idWZzIC0gdWludDhfdCwgZGVzaXJlZCBudW1iZXIgb2YgYnVmZmVycyB0byBiZSB1 c2VkLgo+PiArICoKPj4gKyAqIElmIG51bV9idWZzIGlzIG5vdCB6ZXJvIHRoZW4gdGhlIGJhY2tl bmQgdmFsaWRhdGVzIHRoZSByZXF1ZXN0ZWQgbnVtYmVyIG9mCj4+ICsgKiBidWZmZXJzIGFuZCBy ZXNwb25kcyB3aXRoIHRoZSBudW1iZXIgb2YgYnVmZmVycyBhbGxvd2VkIGZvciB0aGlzIGZyb250 ZW5kLgo+PiArICogRnJvbnRlbmQgaXMgcmVzcG9uc2libGUgZm9yIGNoZWNraW5nIHRoZSBjb3Jy ZXNwb25kaW5nIHJlc3BvbnNlIGluIG9yZGVyIHRvCj4+ICsgKiBzZWUgaWYgdGhlIHZhbHVlcyBy ZXBvcnRlZCBiYWNrIGJ5IHRoZSBiYWNrZW5kIGRvIG1hdGNoIHRoZSBkZXNpcmVkIG9uZXMKPj4g KyAqIGFuZCBjYW4gYmUgYWNjZXB0ZWQuCj4+ICsgKiBGcm9udGVuZCBpcyBhbGxvd2VkIHRvIHNl bmQgbXVsdGlwbGUgWEVOQ0FNRVJBX09QX0JVRl9SRVFVRVNUIHJlcXVlc3RzCj4+ICsgKiBiZWZv cmUgc2VuZGluZyBYRU5DQU1FUkFfT1BfU1RSRUFNX1NUQVJUIHJlcXVlc3QgdG8gdXBkYXRlIG9y IHR1bmUgdGhlCj4+ICsgKiBmaW5hbCBjb25maWd1cmF0aW9uLgo+PiArICogRnJvbnRlbmQgaXMg bm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoZSBjYW1lcmEgY29uZmlndXJhdGlvbiBhZnRlciB0aGlz IGNhbGwKPj4gKyAqIHdpdGggYSBub24temVybyB2YWx1ZSBvZiBudW1fYnVmcy4gSWYgY2FtZXJh IHJlY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZAo+PiArICogdGhlbiB0aGlzIHJlcXVlc3QgbXVz dCBiZSBzZW50IHdpdGggbnVtX2J1ZnMgc2V0IHRvIHplcm8gYW5kIGFueSBjcmVhdGVkCj4+ICsg KiBidWZmZXJzIG11c3QgYmUgZGVzdHJveWVkIGZpcnN0Lgo+PiArICogRnJvbnRlbmQgaXMgbm90 IGFsbG93ZWQgdG8gY2hhbmdlIHRoZSBudW1iZXIgb2YgYnVmZmVycyBhZnRlciB0aGUKPj4gKyAq IHN0cmVhbWluZyBoYXMgc3RhcnRlZC4KPj4gKyAqCj4+ICsgKiBJZiBudW1fYnVmcyBpcyAwIGFu ZCBzdHJlYW1pbmcgaGFzIG5vdCBzdGFydGVkIHlldCwgdGhlbiB0aGUgYmFja2VuZCB3aWxsCj4+ ICsgKiBmcmVlIGFsbCBwcmV2aW91c2x5IGFsbG9jYXRlZCBidWZmZXJzIChpZiBhbnkpLgo+PiAr ICogVHJ5aW5nIHRvIGNhbGwgdGhpcyBpZiBzdHJlYW1pbmcgaXMgaW4gcHJvZ3Jlc3Mgd2lsbCBy ZXN1bHQgaW4gYW4gZXJyb3IuCj4+ICsgKgo+PiArICogSWYgY2FtZXJhIHJlY29uZmlndXJhdGlv biBpcyByZXF1aXJlZCB0aGVuIHRoZSBzdHJlYW1pbmcgbXVzdCBiZSBzdG9wcGVkCj4+ICsgKiBh bmQgdGhpcyByZXF1ZXN0IG11c3QgYmUgc2VudCB3aXRoIG51bV9idWZzIHNldCB0byB6ZXJvIGFu ZCBhbnkKPj4gKyAqIGNyZWF0ZWQgYnVmZmVycyBtdXN0IGJlIGRlc3Ryb3llZC4KPj4gKyAqCj4+ ICsgKiBQbGVhc2Ugbm90ZSwgdGhhdCB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgaW4gdGhpcyByZXF1 ZXN0IG11c3Qgbm90IGV4Y2VlZAo+PiArICogdGhlIHZhbHVlIGNvbmZpZ3VyZWQgaW4gWGVuU3Rv cmUubWF4LWJ1ZmZlcnMuCj4+ICsgKgo+PiArICogU2VlIHJlc3BvbnNlIGZvcm1hdCBmb3IgdGhp cyByZXF1ZXN0Lgo+PiArICovCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX2J1Zl9yZXF1ZXN0IHsKPj4g KyAgICB1aW50OF90IG51bV9idWZzOwo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIFJlcXVlc3Qg Y2FtZXJhIGJ1ZmZlciBjcmVhdGlvbjoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAx ICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgX09Q X0JVRl9DUkVBVEUgfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgIGluZGV4 ICAgICB8ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8 IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICBwbGFuZV9vZmZzZXRbMF0gICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmVfb2Zmc2V0 WzFdICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5lX29mZnNldFsyXSAgICAgICAgICAg ICAgICAgICAgICAgICB8IDI0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICBwbGFuZV9vZmZzZXRbM10gICAgICAgICAgICAgICAgICAgICAgICAg fCAyOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ3JlZl9kaXJlY3RvcnkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg NjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIEFuIGF0dGVtcHQgdG8gY3JlYXRl IG11bHRpcGxlIGJ1ZmZlcnMgd2l0aCB0aGUgc2FtZSBpbmRleCBpcyBhbiBlcnJvci4KPj4gKyAq IGluZGV4IGNhbiBiZSByZS11c2VkIGFmdGVyIGRlc3Ryb3lpbmcgdGhlIGNvcnJlc3BvbmRpbmcg Y2FtZXJhIGJ1ZmZlci4KPj4gKyAqCj4+ICsgKiBpbmRleCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRo ZSBidWZmZXIgdG8gYmUgY3JlYXRlZCBpbiB0aGUgcmFuZ2UKPj4gKyAqICAgZnJvbSAwIHRvIHRo ZSBudW1fYnVmcyBmaWVsZCByZXR1cm5lZCBpbiByZXNwb25zZSBmb3IKPj4gKyAqICAgWEVOQ0FN RVJBX09QX0JVRl9SRVFVRVNUIHJlcXVlc3QKPj4gKyAqIHBsYW5lX29mZnNldCAtIGFycmF5IG9m IHVpbnQzMl90LCBvZmZzZXQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgcGxhbmUKPj4gKyAqICAgaW4g b2N0ZXRzIGZyb20gdGhlIGJ1ZmZlciBzdGFydC4gTnVtYmVyIG9mIG9mZnNldHMgcmV0dXJuZWQg aXMKPj4gKyAqICAgZXF1YWwgdG8gdGhlIHZhbHVlIHJldHVybmVkIGluIFhFTkNBTUVSQV9PUF9C VUZfR0VUX0xBWU9VVC5udW1fcGxhbmVzLgo+PiArICogZ3JlZl9kaXJlY3RvcnkgLSBncmFudF9y ZWZfdCwgYSByZWZlcmVuY2UgdG8gdGhlIGZpcnN0IHNoYXJlZCBwYWdlCj4+ICsgKiAgIGRlc2Ny aWJpbmcgc2hhcmVkIGJ1ZmZlciByZWZlcmVuY2VzLiBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGlz IGVxdWFsIHRvCj4+ICsgKiAgIFhFTkNBTUVSQV9PUF9CVUZfR0VUX0xBWU9VVC5zaXplIHJlc3Bv bnNlLiBBdCBsZWFzdCBvbmUgcGFnZSBleGlzdHMuIElmCj4+ICsgKiAgIHNoYXJlZCBidWZmZXIg c2l6ZSBleGNlZWRzIHdoYXQgY2FuIGJlIGFkZHJlc3NlZCBieSB0aGlzIHNpbmdsZSBwYWdlLAo+ PiArICogICB0aGVuIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBzaGFyZWQgcGFnZSBtdXN0IGJlIHN1 cHBsaWVkIChzZWUKPj4gKyAqICAgZ3JlZl9kaXJfbmV4dF9wYWdlIGJlbG93KS4KPj4gKyAqCj4+ ICsgKiBJZiBYRU5DQU1FUkFfRklFTERfQkVfQUxMT0MgY29uZmlndXJhdGlvbiBlbnRyeSBpcyBz ZXQsIHRoZW4gYmFja2VuZCB3aWxsCj4+ICsgKiBhbGxvY2F0ZSB0aGUgYnVmZmVyIHdpdGggdGhl IHBhcmFtZXRlcnMgcHJvdmlkZWQgaW4gdGhpcyByZXF1ZXN0IGFuZCBwYWdlCj4+ICsgKiBkaXJl Y3RvcnkgaXMgaGFuZGxlZCBhcyBmb2xsb3dzOgo+PiArICogICBGcm9udGVuZCBvbiByZXF1ZXN0 Ogo+PiArICogICAgIC0gYWxsb2NhdGVzIHBhZ2VzIGZvciB0aGUgZGlyZWN0b3J5IChncmVmX2Rp cmVjdG9yeSwKPj4gKyAqICAgICAgIGdyZWZfZGlyX25leHRfcGFnZShzKQo+PiArICogICAgIC0g Z3JhbnRzIHBlcm1pc3Npb25zIGZvciB0aGUgcGFnZXMgb2YgdGhlIGRpcmVjdG9yeSB0byB0aGUg YmFja2VuZAo+PiArICogICAgIC0gc2V0cyBncmVmX2Rpcl9uZXh0X3BhZ2UgZmllbGRzCj4+ICsg KiAgIEJhY2tlbmQgb24gcmVzcG9uc2U6Cj4+ICsgKiAgICAgLSBncmFudHMgcGVybWlzc2lvbnMg Zm9yIHRoZSBwYWdlcyBvZiB0aGUgYnVmZmVyIGFsbG9jYXRlZCB0bwo+PiArICogICAgICAgdGhl IGZyb250ZW5kCj4+ICsgKiAgICAgLSBmaWxscyBpbiBwYWdlIGRpcmVjdG9yeSB3aXRoIGdyYW50 IHJlZmVyZW5jZXMKPj4gKyAqICAgICAgIChncmVmW10gaW4gc3RydWN0IHhlbmNhbWVyYV9wYWdl X2RpcmVjdG9yeSkKPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9idWZfY3JlYXRlX3JlcSB7 Cj4+ICsgICAgdWludDhfdCBpbmRleDsKPj4gKyAgICB1aW50OF90IHJlc2VydmVkWzNdOwo+PiAr ICAgIHVpbnQzMl90IHBsYW5lX29mZnNldFtYRU5DQU1FUkFfTUFYX1BMQU5FXTsKPj4gKyAgICBn cmFudF9yZWZfdCBncmVmX2RpcmVjdG9yeTsKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKiBTaGFy ZWQgcGFnZSBmb3IgWEVOQ0FNRVJBX09QX0JVRl9DUkVBVEUgYnVmZmVyIGRlc2NyaXB0b3IgKGdy ZWZfZGlyZWN0b3J5IGluCj4+ICsgKiB0aGUgcmVxdWVzdCkgZW1wbG95cyBhIGxpc3Qgb2YgcGFn ZXMsIGRlc2NyaWJpbmcgYWxsIHBhZ2VzIG9mIHRoZSBzaGFyZWQKPj4gKyAqIGRhdGEgYnVmZmVy Ogo+PiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAg ICAgICAgICAgICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJfbmV4dF9wYWdlICAgICAgICAgICAgICAgICAg ICAgICAgIHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3JlZlswXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbaV0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IGkqNCs4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBncmVmW04gLSAxXSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTio0KzgKPj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIGdyZWZfZGlyX25leHRfcGFnZSAtIGdyYW50 X3JlZl90LCByZWZlcmVuY2UgdG8gdGhlIG5leHQgcGFnZSBkZXNjcmliaW5nCj4+ICsgKiAgIHBh Z2UgZGlyZWN0b3J5LiBNdXN0IGJlIDAgaWYgdGhlcmUgYXJlIG5vIG1vcmUgcGFnZXMgaW4gdGhl IGxpc3QuCj4+ICsgKiBncmVmW2ldIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byBhIHNoYXJl ZCBwYWdlIG9mIHRoZSBidWZmZXIKPj4gKyAqICAgYWxsb2NhdGVkIGF0IFhFTkNBTUVSQV9PUF9C VUZfQ1JFQVRFLgo+PiArICoKPj4gKyAqIE51bWJlciBvZiBncmFudF9yZWZfdCBlbnRyaWVzIGlu IHRoZSB3aG9sZSBwYWdlIGRpcmVjdG9yeSBpcyBub3QKPj4gKyAqIHBhc3NlZCwgYnV0IGluc3Rl YWQgY2FuIGJlIGNhbGN1bGF0ZWQgYXM6Cj4+ICsgKiAgIG51bV9ncmVmc190b3RhbCA9IChYRU5D QU1FUkFfT1BfQlVGX1JFUVVFU1Quc2l6ZSArIFhFTl9QQUdFX1NJWkUgLSAxKSAvCj4+ICsgKiAg ICAgICBYRU5fUEFHRV9TSVpFCj4+ICsgKi8KPj4gK3N0cnVjdCB4ZW5jYW1lcmFfcGFnZV9kaXJl Y3Rvcnkgewo+PiArICAgIGdyYW50X3JlZl90IGdyZWZfZGlyX25leHRfcGFnZTsKPj4gKyAgICBn cmFudF9yZWZfdCBncmVmWzFdOyAvKiBWYXJpYWJsZSBsZW5ndGggKi8KPj4gK307Cj4+ICsKPj4g Ky8qCj4+ICsgKiBSZXF1ZXN0IGJ1ZmZlciBkZXN0cnVjdGlvbiAtIGRlc3Ryb3kgYSBwcmV2aW91 c2x5IGFsbG9jYXRlZCBjYW1lcmEgYnVmZmVyOgo+PiArICogICAgICAgICAwICAgICAgICAgICAg ICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAg fCBfT1BfQlVGX0RFU1RST1l8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAg aW5kZXggICAgIHwgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg ICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIGlu ZGV4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIGJ1ZmZlciB0byBiZSBkZXN0cm95ZWQuCj4+ICsg Kgo+PiArICoKPj4gKyAqIFJlcXVlc3QgcXVldWVpbmcgb2YgdGhlIGJ1ZmZlciBmb3IgYmFja2Vu ZCB1c2U6Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAg MiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IF9PUF9CVUZfUVVFVUUgIHwgICBy ZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICBpbmRleCAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+ PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogTm90ZXM6Cj4+ICsgKiAgLSBmcm9udGVu ZHMgbXVzdCBub3QgYWNjZXNzIHRoZSBidWZmZXIgY29udGVudCBhZnRlciB0aGlzIHJlcXVlc3Qg dW50aWwKPj4gKyAqICAgIHJlc3BvbnNlIHRvIFhFTkNBTUVSQV9PUF9CVUZfREVRVUVVRSBoYXMg YmVlbiByZWNlaXZlZC4KPj4gKyAqICAtIGJ1ZmZlcnMgbXVzdCBiZSBxdWV1ZWQgdG8gdGhlIGJh Y2tlbmQgYmVmb3JlIGRlc3Ryb3lpbmcgdGhlbSB3aXRoCj4+ICsgKiAgICBYRU5DQU1FUkFfT1Bf QlVGX0RFU1RST1kuCj4+ICsgKgo+PiArICogaW5kZXggLSB1aW50OF90LCBpbmRleCBvZiB0aGUg YnVmZmVyIHRvIGJlIHF1ZXVlZC4KPj4gKyAqCj4+ICsgKgo+PiArICogUmVxdWVzdCBkZXF1ZXVl aW5nIG9mIHRoZSBidWZmZXIgZm9yIGZyb250ZW5kIHVzZToKPj4gKyAqICAgICAgICAgMCAgICAg ICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0 ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAg ICAgICAgIHxfT1BfQlVGX0RFUVVFVUUgfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fCAgICAgIGluZGV4ICAgICB8ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAg ICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx Ngo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ ICsgKiBOb3RlczoKPj4gKyAqICAtIGZyb250ZW5kIGlzIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSBi dWZmZXIgY29udGVudCBhZnRlciB0aGUgY29ycmVzcG9uZGluZwo+PiArICogICAgcmVzcG9uc2Ug dG8gdGhpcyByZXF1ZXN0Lgo+PiArICoKPj4gKyAqIGluZGV4IC0gdWludDhfdCwgaW5kZXggb2Yg dGhlIGJ1ZmZlciB0byBiZSBxdWV1ZWQuCj4+ICsgKgo+PiArICoKPj4gKyAqIFJlcXVlc3QgY2Ft ZXJhIGNvbnRyb2wgZGV0YWlsczoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAg ICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgX09QX0NU UkxfRU5VTSAgfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fCAgICAgIGluZGV4ICAgICB8ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAg ICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEy Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4g KyAqIFNlZSByZXNwb25zZSBmb3JtYXQgZm9yIHRoaXMgcmVxdWVzdC4KPj4gKyAqCj4+ICsgKiBp bmRleCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBjb250cm9sIHRvIGJlIHF1ZXJpZWQuCj4+ICsg Ki8KPj4gK3N0cnVjdCB4ZW5jYW1lcmFfaW5kZXggewo+PiArICAgIHVpbnQ4X3QgaW5kZXg7Cj4+ ICt9Owo+PiArCj4+ICsvKgo+PiArICogUmVxdWVzdCBjYW1lcmEgY29udHJvbCBjaGFuZ2U6Cj4+ ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAg ICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICBfT1BfU0VUX0NUUkwgIHwgICByZXNlcnZlZCAg ICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgdHlwZSAgICAgfCAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgdmFsdWUgbG93IDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICAg ICB8IDIwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHZhbHVlIGhpZ2ggMzItYml0ICAgICAgICAgICAgICAgICAgICAgICAgfCAyNAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjgKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogdHlwZSAtIHVpbnQ4X3QsIHR5 cGUgb2YgdGhlIGNvbnRyb2wsIG9uZSBvZiB0aGUgWEVOQ0FNRVJBX0NUUkxfWFhYLgo+PiArICog dmFsdWUgLSBpbnQ2NF90LCBuZXcgdmFsdWUgb2YgdGhlIGNvbnRyb2wuCj4+ICsgKi8KPj4gK3N0 cnVjdCB4ZW5jYW1lcmFfY3RybF92YWx1ZSB7Cj4+ICsgICAgdWludDhfdCB0eXBlOwo+PiArICAg IHVpbnQ4X3QgcmVzZXJ2ZWRbN107Cj4+ICsgICAgaW50NjRfdCB2YWx1ZTsKPj4gK307Cj4+ICsK Pj4gKy8qCj4+ICsgKiBSZXF1ZXN0IGNhbWVyYSBjb250cm9sIHN0YXRlOgo+PiArICogICAgICAg ICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAg ICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQg ICAgICAgICAgICAgICAgfCAgX09QX0dFVF9DVFJMICB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgIHR5cGUgICAgIHwgICAgICAgICAgICAgICAg ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogU2VlIHJlc3BvbnNlIGZvcm1hdCBmb3IgdGhpcyBy ZXF1ZXN0Lgo+PiArICoKPj4gKyAqIHR5cGUgLSB1aW50OF90LCB0eXBlIG9mIHRoZSBjb250cm9s LCBvbmUgb2YgdGhlIFhFTkNBTUVSQV9DVFJMX1hYWC4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNh bWVyYV9nZXRfY3RybF9yZXEgewo+PiArICAgIHVpbnQ4X3QgdHlwZTsKPj4gK307Cj4+ICsKPj4g Ky8qCj4+ICsgKiBSZXF1ZXN0IGNhbWVyYSBjYXB0dXJlIHN0cmVhbSBzdGFydDoKPj4gKyAqICAg ICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAg MyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAg IGlkICAgICAgICAgICAgICAgIHxfT1BfU1RSRUFNX1NUQVJUfCAgIHJlc2VydmVkICAgICB8IDQK Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICoKPj4gKyAqIFJlcXVl c3QgY2FtZXJhIGNhcHR1cmUgc3RyZWFtIHN0b3A6Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAg ICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAg ICB8X09QX1NUUkVBTV9TVE9QIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gUmVzcG9uc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ ICsgKgo+PiArICogQWxsIHJlc3BvbnNlIHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0 IG9jdGV0cykuCj4+ICsgKgo+PiArICogQWxsIHJlc3BvbnNlIHBhY2tldHMgaGF2ZSBjb21tb24g aGVhZGVyOgo+PiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAg IDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICB8ICAg IHJlc2VydmVkICAgIHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg OAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogaWQgLSB1aW50MTZfdCwgY29waWVk IGZyb20gdGhlIHJlcXVlc3QuCj4+ICsgKiBvcGVyYXRpb24gLSB1aW50OF90LCBYRU5DQU1FUkFf T1BfKiAtIGNvcGllZCBmcm9tIHJlcXVlc3QuCj4+ICsgKiBzdGF0dXMgLSBpbnQzMl90LCByZXNw b25zZSBzdGF0dXMsIHplcm8gb24gc3VjY2VzcyBhbmQgLVhFTl9FWFggb24gZmFpbHVyZS4KPj4g KyAqCj4+ICsgKgo+PiArICogQ29uZmlndXJhdGlvbiByZXNwb25zZSAtIHJlc3BvbnNlIGZvciBY RU5DQU1FUkFfT1BfQ09ORklHX1NFVCwKPj4gKyAqIFhFTkNBTUVSQV9PUF9DT05GSUdfR0VUIGFu ZCBYRU5DQU1FUkFfT1BfQ09ORklHX1ZBTElEQVRFIHJlcXVlc3RzOgo+PiArICogICAgICAgICAw ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAg ICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAg ICAgICAgICAgICAgfCBfT1BfQ09ORklHX1hYWCB8ICAgIHJlc2VydmVkICAgIHwgNAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1 cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVsIGZvcm1hdCAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaGVpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcnNw YWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGZlcl9mdW5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDI4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHljYmNyX2VuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAzMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHF1YW50aXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzYKPj4gKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxfYXNwX3Jh dGlvX251bWVyICAgICAgICAgICAgICAgICAgICAgICB8IDQwCj4+ICsgKiArLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK Pj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsX2FzcF9yYXRpb19kZW5vbSAgICAg ICAgICAgICAgICAgICAgICAgfCA0NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICBmcmFtZV9yYXRlX251bWVyICAgICAgICAgICAgICAgICAgICAg ICAgIHwgNDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgZnJhbWVfcmF0ZV9kZW5vbSAgICAgICAgICAgICAgICAgICAgICAgICB8IDUyCj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1Ngo+PiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBNZWFuaW5nIG9mIHRoZSBj b3JyZXNwb25kaW5nIHZhbHVlcyBpbiB0aGlzIHJlc3BvbnNlIGlzIHRoZSBzYW1lIGFzIGZvcgo+ PiArICogWEVOQ0FNRVJBX09QX0NPTkZJR19TRVQgYW5kIFhFTkNBTUVSQV9PUF9GUkFNRV9SQVRF X1NFVCByZXF1ZXN0cy4KPj4gKyAqCj4+ICsgKiBjb2xvcnNwYWNlIC0gdWludDMyX3QsIHRoaXMg c3VwcGxlbWVudHMgcGl4ZWxfZm9ybWF0IHBhcmFtZXRlciwKPj4gKyAqICAgb25lIG9mIHRoZSBY RU5DQU1FUkFfQ09MT1JTUEFDRV9YWFguCj4+ICsgKiB4ZmVyX2Z1bmMgLSB1aW50MzJfdCwgdGhp cyBzdXBwbGVtZW50cyBjb2xvcnNwYWNlIHBhcmFtZXRlciwKPj4gKyAqICAgb25lIG9mIHRoZSBY RU5DQU1FUkFfWEZFUl9GVU5DX1hYWC4KPj4gKyAqIHljYmNyX2VuYyAtIHVpbnQzMl90LCB0aGlz IHN1cHBsZW1lbnRzIGNvbG9yc3BhY2UgcGFyYW1ldGVyLAo+PiArICogICBvbmUgb2YgdGhlIFhF TkNBTUVSQV9ZQ0JDUl9FTkNfWFhYLiBQbGVhc2Ugbm90ZSwgdGhhdCB5Y2Jjcl9lbmMgaXMgb25s eQo+PiArICogICB2YWxpZCBmb3IgWUNiQ3IgcGl4ZWxmb3JtYXRzIGFuZCBzaG91bGQgYmUgaWdu b3JlZCBvdGhlcndpc2UuCj4+ICsgKiBxdWFudGl6YXRpb24gLSB1aW50MzJfdCwgdGhpcyBzdXBw bGVtZW50cyBjb2xvcnNwYWNlIHBhcmFtZXRlciwKPj4gKyAqICAgb25lIG9mIHRoZSBYRU5DQU1F UkFfUVVBTlRJWkFUSU9OX1hYWC4KPj4gKyAqIGRpc3BsX2FzcF9yYXRpb19udW1lciAtIHVpbnQz Ml90LCBudW1lcmF0b3Igb2YgdGhlIGRpc3BsYXkgYXNwZWN0IHJhdGlvLgo+PiArICogZGlzcGxf YXNwX3JhdGlvX2Rlbm9tIC0gdWludDMyX3QsIGRlbm9taW5hdG9yIG9mIHRoZSBkaXNwbGF5IGFz cGVjdCByYXRpby4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9jb25maWdfcmVzcCB7Cj4+ ICsgICAgdWludDMyX3QgcGl4ZWxfZm9ybWF0Owo+PiArICAgIHVpbnQzMl90IHdpZHRoOwo+PiAr ICAgIHVpbnQzMl90IGhlaWdodDsKPj4gKyAgICB1aW50MzJfdCBjb2xvcnNwYWNlOwo+PiArICAg IHVpbnQzMl90IHhmZXJfZnVuYzsKPj4gKyAgICB1aW50MzJfdCB5Y2Jjcl9lbmM7Cj4+ICsgICAg dWludDMyX3QgcXVhbnRpemF0aW9uOwo+PiArICAgIHVpbnQzMl90IGRpc3BsX2FzcF9yYXRpb19u dW1lcjsKPj4gKyAgICB1aW50MzJfdCBkaXNwbF9hc3BfcmF0aW9fZGVub207Cj4+ICsgICAgdWlu dDMyX3QgZnJhbWVfcmF0ZV9udW1lcjsKPj4gKyAgICB1aW50MzJfdCBmcmFtZV9yYXRlX2Rlbm9t Owo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIFJlcXVlc3QgYnVmZmVyIHJlc3BvbnNlIC0gcmVz cG9uc2UgZm9yIFhFTkNBTUVSQV9PUF9CVUZfR0VUX0xBWU9VVAo+PiArICogcmVxdWVzdDoKPj4g KyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAg ICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgIGlkICAgICAgICAgICAgICAgIHxfQlVGX0dFVF9MQVlPVVQgfCAgICByZXNlcnZlZCAg ICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgIG51bV9wbGFuZXMgICB8ICAgICAgICAgICAgICAgICAgICAg cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGxhbmVfc2l6ZVswXSAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMjAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBsYW5lX3NpemVbMV0gICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZV9zaXpl WzJdICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyOAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmVfc2l6ZVszXSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMzIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgcGxhbmVfc3RyaWRlWzBdICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDM2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHBsYW5lX3N0cmlkZVsxXSAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZV9zdHJp ZGVbMl0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDQKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmVfc3RyaWRlWzNdICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDQ4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIG51bV9wbGFuZXMgLSB1aW50OF90LCBudW1iZXIgb2Yg cGxhbmVzIG9mIHRoZSBidWZmZXIuCj4+ICsgKiBzaXplIC0gdWludDMyX3QsIG92ZXJhbGwgc2l6 ZSBvZiB0aGUgYnVmZmVyIGluY2x1ZGluZyBzaXplcyBvZiB0aGUKPj4gKyAqICAgaW5kaXZpZHVh bCBwbGFuZXMgYW5kIHBhZGRpbmcgaWYgYXBwbGljYWJsZS4KPj4gKyAqIHBsYW5lX3NpemUgLSBh cnJheSBvZiB1aW50MzJfdCwgc2l6ZSBpbiBvY3RldHMgb2YgdGhlIGNvcnJlc3BvbmRpbmcgcGxh bmUKPj4gKyAqICAgaW5jbHVkaW5nIHBhZGRpbmcuCj4+ICsgKiBwbGFuZV9zdHJpZGUgLSBhcnJh eSBvZiB1aW50MzJfdCwgc2l6ZSBpbiBvY3RldHMgb2NjdXBpZWQgYnkgdGhlCj4+ICsgKiAgIGNv cnJlc3BvbmRpbmcgc2luZ2xlIGltYWdlIGxpbmUgaW5jbHVkaW5nIHBhZGRpbmcgaWYgYXBwbGlj YWJsZS4KPj4gKyAqCj4+ICsgKiBOb3RlISBUaGUgc2l6ZXMgYW5kIHN0cmlkZXMgaW4gdGhpcyBy ZXNwb25zZSBhcHBseSB0byBhbGwgYnVmZmVycyBjcmVhdGVkCj4+ICsgKiB3aXRoIFhFTkNBTUVS QV9PUF9CVUZfQ1JFQVRFIGNvbW1hbmQsIGJ1dCBpbmRpdmlkdWFsIGJ1ZmZlcnMgbWF5IGhhdmUK Pj4gKyAqIGRpZmZlcmVudCBwbGFuZSBvZmZzZXRzLCBzZWUgWEVOQ0FNRVJBX09QX0JVRl9SRVFV RVNULnBsYW5lX29mZnNldC4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9idWZfZ2V0X2xh eW91dF9yZXNwIHsKPj4gKyAgICB1aW50OF90IG51bV9wbGFuZXM7Cj4+ICsgICAgdWludDhfdCBy ZXNlcnZlZFszXTsKPj4gKyAgICB1aW50MzJfdCBzaXplOwo+PiArICAgIHVpbnQzMl90IHBsYW5l X3NpemVbWEVOQ0FNRVJBX01BWF9QTEFORV07Cj4+ICsgICAgdWludDMyX3QgcGxhbmVfc3RyaWRl W1hFTkNBTUVSQV9NQVhfUExBTkVdOwo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIFJlcXVlc3Qg YnVmZmVyIHJlc3BvbnNlIC0gcmVzcG9uc2UgZm9yIFhFTkNBTUVSQV9PUF9CVUZfUkVRVUVTVAo+ PiArICogcmVxdWVzdDoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAg ICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHxfT1BfQlVGX1JFUVVF U1QgfCAgICByZXNlcnZlZCAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgIG51bV9idWZmZXJzICB8ICAg ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8IDEyCj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+PiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBudW1fYnVmZmVycyAtIHVp bnQ4X3QsIG51bWJlciBvZiBidWZmZXJzIHRvIGJlIHVzZWQuCj4+ICsgKgo+PiArICoKPj4gKyAq IENvbnRyb2wgZW51bWVyYXRlIHJlc3BvbnNlIC0gcmVzcG9uc2UgZm9yIFhFTkNBTUVSQV9PUF9D VFJMX0VOVU06Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAg ICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IF9PUF9DVFJMX0VOVU0gIHwg ICAgcmVzZXJ2ZWQgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgIGluZGV4ICAgICAgfCAgICAgIHR5 cGUgICAgICB8ICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgfCAxMgo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgbWluIGxvdyAzMi1iaXRzICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDIwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIG1pbiBoaWdoIDMyLWJpdHMgICAgICAgICAgICAgICAgICAgICAgICAg fCAyNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICBtYXggbG93IDMyLWJpdHMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjgKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4IGhpZ2ggMzIt Yml0cyAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcCBsb3cgMzItYml0cyAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAzNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgIHN0ZXAgaGlnaCAzMi1iaXRzICAgICAgICAgICAgICAgICAgICAgICAg IHwgNDAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAg IGRlZl92YWwgbG93IDMyLWJpdHMgICAgICAgICAgICAgICAgICAgICAgICB8IDQ0Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICBkZWZfdmFsIGhpZ2gg MzItYml0cyAgICAgICAgICAgICAgICAgICAgICAgfCA0OAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgNTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKgo+PiArICogaW5kZXggLSB1aW50OF90LCBpbmRleCBvZiB0aGUgY2Ft ZXJhIGNvbnRyb2wgaW4gcmVzcG9uc2UuCj4+ICsgKiB0eXBlIC0gdWludDhfdCwgdHlwZSBvZiB0 aGUgY29udHJvbCwgb25lIG9mIHRoZSBYRU5DQU1FUkFfQ1RSTF9YWFguCj4+ICsgKiBmbGFncyAt IHVpbnQzMl90LCBmbGFncyBvZiB0aGUgY29udHJvbCwgb25lIG9mIHRoZSBYRU5DQU1FUkFfQ1RS TF9GTEdfWFhYLgo+PiArICogbWluIC0gaW50NjRfdCwgbWluaW11bSB2YWx1ZSBvZiB0aGUgY29u dHJvbC4KPj4gKyAqIG1heCAtIGludDY0X3QsIG1heGltdW0gdmFsdWUgb2YgdGhlIGNvbnRyb2wu Cj4+ICsgKiBzdGVwIC0gaW50NjRfdCwgbWluaW11bSBzaXplIGluIHdoaWNoIGNvbnRyb2wgdmFs dWUgY2FuIGJlIGNoYW5nZWQuCj4+ICsgKiBkZWZfdmFsIC0gaW50NjRfdCwgZGVmYXVsdCB2YWx1 ZSBvZiB0aGUgY29udHJvbC4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9jdHJsX2VudW1f cmVzcCB7Cj4+ICsgICAgdWludDhfdCBpbmRleDsKPj4gKyAgICB1aW50OF90IHR5cGU7Cj4+ICsg ICAgdWludDhfdCByZXNlcnZlZFsyXTsKPj4gKyAgICB1aW50MzJfdCBmbGFnczsKPj4gKyAgICBp bnQ2NF90IG1pbjsKPj4gKyAgICBpbnQ2NF90IG1heDsKPj4gKyAgICBpbnQ2NF90IHN0ZXA7Cj4+ ICsgICAgaW50NjRfdCBkZWZfdmFsOwo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIEdldCBjb250 cm9sIHJlc3BvbnNlIC0gcmVzcG9uc2UgZm9yIFhFTkNBTUVSQV9PUF9DVFJMX0dFVDoKPj4gKyAq ICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAg ICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAg ICAgIGlkICAgICAgICAgICAgICAgIHwgX09QX0NUUkxfR0VUICAgfCAgICByZXNlcnZlZCAgICB8 IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICogfCAgICAgICB0eXBlICAgICB8ICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MjAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg dmFsdWUgbG93IDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGhpZ2ggMzIt Yml0ICAgICAgICAgICAgICAgICAgICAgICAgfCAyOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMzIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+PiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4+ICsgKgo+PiArICogdHlwZSAtIHVpbnQ4X3QsIHR5cGUgb2YgdGhlIGNvbnRyb2ws IG9uZSBvZiB0aGUgWEVOQ0FNRVJBX0NUUkxfWFhYLgo+PiArICogdmFsdWUgLSBpbnQ2NF90LCBu ZXcgdmFsdWUgb2YgdGhlIGNvbnRyb2wuCj4+ICsgKi8KPj4gKwo+PiArLyoKPj4gKyAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRXZlbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBFdmVudHMgYXJlIHNlbnQgdmlhIGEgc2hhcmVk IHBhZ2UgYWxsb2NhdGVkIGJ5IHRoZSBmcm9udCBhbmQgcHJvcGFnYXRlZCBieQo+PiArICogICBl dnQtZXZlbnQtY2hhbm5lbC9ldnQtcmluZy1yZWYgWGVuU3RvcmUgZW50cmllcy4KPj4gKyAqCj4+ ICsgKiBBbGwgZXZlbnQgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgb2N0ZXRzKS4K Pj4gKyAqIEFsbCBldmVudCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKPj4gKyAqICAgICAg ICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAg ICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlk ICAgICAgICAgICAgICAgIHwgICAgICB0eXBlICAgICAgfCAgIHJlc2VydmVkICAgICB8IDQKPj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICoKPj4gKyAqIGlkIC0gdWludDE2X3QsIGV2ZW50IGlkLCBtYXkgYmUgdXNlZCBieSBm cm9udC4KPj4gKyAqIHR5cGUgLSB1aW50OF90LCB0eXBlIG9mIHRoZSBldmVudC4KPj4gKyAqCj4+ ICsgKgo+PiArICogRnJhbWUgY2FwdHVyZWQgZXZlbnQgLSBldmVudCBmcm9tIGJhY2sgdG8gZnJv bnQgd2hlbiBhIG5ldyBjYXB0dXJlZAo+PiArICogZnJhbWUgaXMgYXZhaWxhYmxlOgo+PiArICog ICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAg ICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgaWQgICAgICAgICAgICAgICAgfF9FVlRfRlJBTUVfQVZBSUx8ICAgcmVzZXJ2ZWQgICAgIHwg NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4+ICsgKiB8ICAgICAgaW5kZXggICAgIHwgICAgICAgICAgICAgICAgICAgICByZXNl cnZlZCAgICAgICAgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZWRfc3ogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXFfbnVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAy MAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogaW5kZXggLSB1 aW50OF90LCBpbmRleCBvZiB0aGUgYnVmZmVyIHRoYXQgY29udGFpbnMgbmV3IGNhcHR1cmVkIGZy YW1lLAo+PiArICogICBzZWUgWEVOQ0FNRVJBX09QX0JVRl9DUkVBVEUgZGVzY3JpcHRpb24gb24g dGhlIHJhbmdlCj4+ICsgKiB1c2VkX3N6IC0gdWludDMyX3QsIG51bWJlciBvZiBvY3RldHMgdGhp cyBmcmFtZSBoYXMuIFRoaXMgY2FuIGJlIGxlc3MKPj4gKyAqIHRoYW4gdGhlIFhFTkNBTUVSQV9P UF9CVUZfUkVRVUVTVC5zaXplIChyZXNwb25zZSkgZm9yIGNvbXByZXNzZWQgZm9ybWF0cy4KPj4g KyAqIHNlcV9udW0gLSB1aW50MzJfdCwgc2VxdWVudGlhbCBudW1iZXIgb2YgdGhlIGZyYW1lLiBN dXN0IGJlCj4+ICsgKiAgIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZy4gSWYgc2tpcHMgYXJlIGRl dGVjdGVkIGluIHNlcV9udW0gdGhlbiB0aGF0Cj4+ICsgKiAgIG1lYW5zIHRoYXQgdGhlIGZyYW1l cyBpbi1iZXR3ZWVuIHdlcmUgZHJvcHBlZC4gTm90ZSBob3dldmVyIHRoYXQgbm90Cj4+ICsgKiAg IGFsbCB2aWRlbyBjYXB0dXJlIGhhcmR3YXJlIGlzIGNhcGFibGUgb2YgZGV0ZWN0aW5nIGRyb3Bw ZWQgZnJhbWVzLgo+PiArICogICBJbiB0aGF0IGNhc2UgdGhlcmUgd2lsbCBiZSBubyBza2lwcyBp biB0aGUgc2VxdWVuY2UgY291bnRlci4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9mcmFt ZV9hdmFpbF9ldnQgewo+PiArICAgIHVpbnQ4X3QgaW5kZXg7Cj4+ICsgICAgdWludDhfdCByZXNl cnZlZFszXTsKPj4gKyAgICB1aW50MzJfdCB1c2VkX3N6Owo+PiArICAgIHVpbnQzMl90IHNlcV9u dW07Cj4+ICt9Owo+PiArCj4+ICsvKgo+PiArICogQ29udHJvbCBjaGFuZ2UgZXZlbnQtIGV2ZW50 IGZyb20gYmFjayB0byBmcm9udCB3aGVuIGNhbWVyYSBjb250cm9sCj4+ICsgKiBoYXMgY2hhbmdl ZDoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAg ICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAg ICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHxfRVZUX0NUUkxfQ0hBTkdFfCAgIHJlc2Vy dmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICB0eXBlICAgICB8 ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8IDgKPj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMjAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAg ICAgICAgICAgdmFsdWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4+ ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyOAo+PiArICogKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiB0eXBlIC0gdWludDhf dCwgdHlwZSBvZiB0aGUgY29udHJvbCwgb25lIG9mIHRoZSBYRU5DQU1FUkFfQ1RSTF9YWFguCj4+ ICsgKiB2YWx1ZSAtIGludDY0X3QsIG5ldyB2YWx1ZSBvZiB0aGUgY29udHJvbC4KPj4gKyAqCj4+ ICsgKiBOb3RlczoKPj4gKyAqICAtIHRoaXMgZXZlbnQgaXMgbm90IHNlbnQgZm9yIHdyaXRlLW9u bHkgY29udHJvbHMKPj4gKyAqICAtIHRoaXMgZXZlbnQgaXMgbm90IHNlbnQgdG8gdGhlIG9yaWdp bmF0b3Igb2YgdGhlIGNvbnRyb2wgY2hhbmdlCj4+ICsgKiAgLSB0aGlzIGV2ZW50IGlzIG5vdCBz ZW50IHdoZW4gZnJvbnRlbmQgZmlyc3QgY29ubmVjdHMsIGUuZy4gaW5pdGlhbAo+PiArICogICAg Y29udHJvbCBzdGF0ZSBtdXN0IGJlIGV4cGxpY2l0bHkgcXVlcmllZAo+PiArICovCj4+ICsKPj4g K3N0cnVjdCB4ZW5jYW1lcmFfcmVxIHsKPj4gKyAgICB1aW50MTZfdCBpZDsKPj4gKyAgICB1aW50 OF90IG9wZXJhdGlvbjsKPj4gKyAgICB1aW50OF90IHJlc2VydmVkWzVdOwo+PiArICAgIHVuaW9u IHsKPj4gKyAgICAgICAgc3RydWN0IHhlbmNhbWVyYV9jb25maWdfcmVxIGNvbmZpZzsKPj4gKyAg ICAgICAgc3RydWN0IHhlbmNhbWVyYV9mcmFtZV9yYXRlX3JlcSBmcmFtZV9yYXRlOwo+PiArICAg ICAgICBzdHJ1Y3QgeGVuY2FtZXJhX2J1Zl9yZXF1ZXN0IGJ1Zl9yZXF1ZXN0Owo+PiArICAgICAg ICBzdHJ1Y3QgeGVuY2FtZXJhX2J1Zl9jcmVhdGVfcmVxIGJ1Zl9jcmVhdGU7Cj4+ICsgICAgICAg IHN0cnVjdCB4ZW5jYW1lcmFfaW5kZXggaW5kZXg7Cj4+ICsgICAgICAgIHN0cnVjdCB4ZW5jYW1l cmFfY3RybF92YWx1ZSBjdHJsX3ZhbHVlOwo+PiArICAgICAgICBzdHJ1Y3QgeGVuY2FtZXJhX2dl dF9jdHJsX3JlcSBnZXRfY3RybDsKPj4gKyAgICAgICAgdWludDhfdCByZXNlcnZlZFs1Nl07Cj4+ ICsgICAgfSByZXE7Cj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX3Jlc3Agewo+PiAr ICAgIHVpbnQxNl90IGlkOwo+PiArICAgIHVpbnQ4X3Qgb3BlcmF0aW9uOwo+PiArICAgIHVpbnQ4 X3QgcmVzZXJ2ZWQ7Cj4+ICsgICAgaW50MzJfdCBzdGF0dXM7Cj4+ICsgICAgdW5pb24gewo+PiAr ICAgICAgICBzdHJ1Y3QgeGVuY2FtZXJhX2NvbmZpZ19yZXNwIGNvbmZpZzsKPj4gKyAgICAgICAg c3RydWN0IHhlbmNhbWVyYV9idWZfZ2V0X2xheW91dF9yZXNwIGJ1Zl9sYXlvdXQ7Cj4+ICsgICAg ICAgIHN0cnVjdCB4ZW5jYW1lcmFfYnVmX3JlcXVlc3QgYnVmX3JlcXVlc3Q7Cj4+ICsgICAgICAg IHN0cnVjdCB4ZW5jYW1lcmFfY3RybF9lbnVtX3Jlc3AgY3RybF9lbnVtOwo+PiArICAgICAgICBz dHJ1Y3QgeGVuY2FtZXJhX2N0cmxfdmFsdWUgY3RybF92YWx1ZTsKPj4gKyAgICAgICAgdWludDhf dCByZXNlcnZlZDFbNTZdOwo+PiArICAgIH0gcmVzcDsKPj4gK307Cj4+ICsKPj4gK3N0cnVjdCB4 ZW5jYW1lcmFfZXZ0IHsKPj4gKyAgICB1aW50MTZfdCBpZDsKPj4gKyAgICB1aW50OF90IHR5cGU7 Cj4+ICsgICAgdWludDhfdCByZXNlcnZlZFs1XTsKPj4gKyAgICB1bmlvbiB7Cj4+ICsgICAgICAg IHN0cnVjdCB4ZW5jYW1lcmFfZnJhbWVfYXZhaWxfZXZ0IGZyYW1lX2F2YWlsOwo+PiArICAgICAg ICBzdHJ1Y3QgeGVuY2FtZXJhX2N0cmxfdmFsdWUgY3RybF92YWx1ZTsKPj4gKyAgICAgICAgdWlu dDhfdCByZXNlcnZlZFs1Nl07Cj4+ICsgICAgfSBldnQ7Cj4+ICt9Owo+PiArCj4+ICtERUZJTkVf UklOR19UWVBFUyh4ZW5fY2FtZXJhaWYsIHN0cnVjdCB4ZW5jYW1lcmFfcmVxLCBzdHJ1Y3QgeGVu Y2FtZXJhX3Jlc3ApOwo+PiArCj4+ICsvKgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiAr ICogICAgICAgICAgICAgICAgICAgICAgICBCYWNrIHRvIGZyb250IGV2ZW50cyBkZWxpdmVyeQo+ PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogSW4gb3JkZXIgdG8gZGVsaXZlciBhc3lu Y2hyb25vdXMgZXZlbnRzIGZyb20gYmFjayB0byBmcm9udCBhIHNoYXJlZCBwYWdlIGlzCj4+ICsg KiBhbGxvY2F0ZWQgYnkgZnJvbnQgYW5kIGl0cyBncmFudGVkIHJlZmVyZW5jZSBwcm9wYWdhdGVk IHRvIGJhY2sgdmlhCj4+ICsgKiBYZW5TdG9yZSBlbnRyaWVzIChldnQtcmluZy1yZWYvZXZ0LWV2 ZW50LWNoYW5uZWwpLgo+PiArICogVGhpcyBwYWdlIGhhcyBhIGNvbW1vbiBoZWFkZXIgdXNlZCBi eSBib3RoIGZyb250IGFuZCBiYWNrIHRvIHN5bmNocm9uaXplCj4+ICsgKiBhY2Nlc3MgYW5kIGNv bnRyb2wgZXZlbnQncyByaW5nIGJ1ZmZlciwgd2hpbGUgYmFjayBiZWluZyBhIHByb2R1Y2VyIG9m IHRoZQo+PiArICogZXZlbnRzIGFuZCBmcm9udCBiZWluZyBhIGNvbnN1bWVyLiBUaGUgcmVzdCBv ZiB0aGUgcGFnZSBhZnRlciB0aGUgaGVhZGVyCj4+ICsgKiBpcyB1c2VkIGZvciBldmVudCBwYWNr ZXRzLgo+PiArICoKPj4gKyAqIFVwb24gcmVjZXB0aW9uIG9mIGFuIGV2ZW50KHMpIGZyb250IG1h eSBjb25maXJtIGl0cyByZWNlcHRpb24KPj4gKyAqIGZvciBlaXRoZXIgZWFjaCBldmVudCwgZ3Jv dXAgb2YgZXZlbnRzIG9yIG5vbmUuCj4+ICsgKi8KPj4gKwo+PiArc3RydWN0IHhlbmNhbWVyYV9l dmVudF9wYWdlIHsKPj4gKyAgICB1aW50MzJfdCBpbl9jb25zOwo+PiArICAgIHVpbnQzMl90IGlu X3Byb2Q7Cj4+ICsgICAgdWludDhfdCByZXNlcnZlZFs1Nl07Cj4+ICt9Owo+PiArCj4+ICsjZGVm aW5lIFhFTkNBTUVSQV9FVkVOVF9QQUdFX1NJWkUgNDA5Ngo+PiArI2RlZmluZSBYRU5DQU1FUkFf SU5fUklOR19PRkZTIChzaXplb2Yoc3RydWN0IHhlbmNhbWVyYV9ldmVudF9wYWdlKSkKPj4gKyNk ZWZpbmUgWEVOQ0FNRVJBX0lOX1JJTkdfU0laRSAoWEVOQ0FNRVJBX0VWRU5UX1BBR0VfU0laRSAt IFhFTkNBTUVSQV9JTl9SSU5HX09GRlMpCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9JTl9SSU5HX0xF TiAoWEVOQ0FNRVJBX0lOX1JJTkdfU0laRSAvIHNpemVvZihzdHJ1Y3QgeGVuY2FtZXJhX2V2dCkp Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9JTl9SSU5HKHBhZ2UpIFwKPj4gKyAgICAoKHN0cnVjdCB4 ZW5jYW1lcmFfZXZ0ICopKChjaGFyICopKHBhZ2UpICsgWEVOQ0FNRVJBX0lOX1JJTkdfT0ZGUykp Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9JTl9SSU5HX1JFRihwYWdlLCBpZHgpIFwKPj4gKyAgICAo WEVOQ0FNRVJBX0lOX1JJTkcoKHBhZ2UpKVsoaWR4KSAlIFhFTkNBTUVSQV9JTl9SSU5HX0xFTl0p Cj4+ICsKPj4gKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9fQ0FNRVJBSUZfSF9fICovCj4+ICsK Pj4gKy8qCj4+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4+ICsgKiBtb2RlOiBDCj4+ICsgKiBjLWZp bGUtc3R5bGU6ICJCU0QiCj4+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+PiArICogdGFiLXdpZHRo OiA0Cj4+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPj4gKyAqIEVuZDoKPj4gKyAqLwo+PgoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=