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: Fri, 22 Mar 2019 10:25:47 +0200 Message-ID: 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 1h7FUz-0007JQ-8S for xen-devel@lists.xenproject.org; Fri, 22 Mar 2019 08:25:57 +0000 Received: by mail-lf1-x142.google.com with SMTP id v14so870353lfi.0 for ; Fri, 22 Mar 2019 01:25:51 -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+Cj4KPiBUaGFuayB5b3UgZm9yIGFsbCB5b3Vy IHdvcmsgb24gdGhpcy4KVGhpcyB3YXMgcG9zc2libGUgd2l0aCB5b3VyIGdyZWF0IGhlbHAgYW5k IHN1cHBvcnQhCkkgZG8gYXBwcmVjaWF0ZSB0aGlzIHZlcnkgbXVjaCEKVGhhbmsgeW91Cj4KPiBS ZWdhcmRzLAo+Cj4gCUhhbnMKPgo+PiAtLS0KPj4gICB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8vY2Ft ZXJhaWYuaCB8IDEzNzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAgMSBmaWxl IGNoYW5nZWQsIDEzNzQgaW5zZXJ0aW9ucygrKQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4v aW5jbHVkZS9wdWJsaWMvaW8vY2FtZXJhaWYuaAo+Pgo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvcHVibGljL2lvL2NhbWVyYWlmLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW8vY2FtZXJhaWYu aAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmFjYmNiZjNi ZDQxMQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9jYW1l cmFpZi5oCj4+IEBAIC0wLDAgKzEsMTM3NCBAQAo+PiArLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ PiArICogY2FtZXJhaWYuaAo+PiArICoKPj4gKyAqIFVuaWZpZWQgY2FtZXJhIGRldmljZSBJL08g aW50ZXJmYWNlIGZvciBYZW4gZ3Vlc3QgT1Nlcy4KPj4gKyAqCj4+ICsgKiBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg YSBjb3B5Cj4+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp b24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPj4gKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJl IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCj4+ ICsgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKPj4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCj4+ICsgKiBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ PiArICoKPj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4+ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0 YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPj4gKyAqCj4+ICsgKiBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ UkVTUyBPUgo+PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUK Pj4gKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIKPj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4+ICsgKiBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U SEVSCj4+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+ICsgKgo+PiArICogQ29weXJp Z2h0IChDKSAyMDE4LTIwMTkgRVBBTSBTeXN0ZW1zIEluYy4KPj4gKyAqCj4+ICsgKiBBdXRob3I6 IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNv bT4KPj4gKyAqLwo+PiArCj4+ICsjaWZuZGVmIF9fWEVOX1BVQkxJQ19JT19DQU1FUkFJRl9IX18K Pj4gKyNkZWZpbmUgX19YRU5fUFVCTElDX0lPX0NBTUVSQUlGX0hfXwo+PiArCj4+ICsjaW5jbHVk ZSAicmluZy5oIgo+PiArI2luY2x1ZGUgIi4uL2dyYW50X3RhYmxlLmgiCj4+ICsKPj4gKy8qCj4+ ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAg IFByb3RvY29sIHZlcnNpb24KPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqLwo+PiAr I2RlZmluZSBYRU5DQU1FUkFfUFJPVE9DT0xfVkVSU0lPTiAgICAgIjEiCj4+ICsKPj4gKy8qCj4+ ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiAgICAgICAgICAgICAgICAgIEZlYXR1cmUg YW5kIFBhcmFtZXRlciBOZWdvdGlhdGlvbgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiAr ICoKPj4gKyAqIEZyb250LT5iYWNrIG5vdGlmaWNhdGlvbnM6IHdoZW4gZW5xdWV1aW5nIGEgbmV3 IHJlcXVlc3QsIHNlbmRpbmcgYQo+PiArICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRp dGlvbmFsIG9uIHhlbmNhbWVyYV9yZXEgKGkuZS4sIHRoZSBnZW5lcmljCj4+ICsgKiBob2xkLW9m ZiBtZWNoYW5pc20gcHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gQmFja2VuZHMgbXVzdCBz ZXQKPj4gKyAqIHhlbmNhbWVyYV9yZXEgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19G SU5BTF9DSEVDS19GT1JfUkVRVUVTVFMoKSkuCj4+ICsgKgo+PiArICogQmFjay0+ZnJvbnQgbm90 aWZpY2F0aW9uczogd2hlbiBlbnF1ZXVpbmcgYSBuZXcgcmVzcG9uc2UsIHNlbmRpbmcgYQo+PiAr ICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHhlbmNhbWVyYV9yZXNw IChpLmUuLCB0aGUgZ2VuZXJpYwo+PiArICogaG9sZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5 IHRoZSByaW5nIG1hY3JvcykuIEZyb250ZW5kcyBtdXN0IHNldAo+PiArICogeGVuY2FtZXJhX3Jl c3AgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19GSU5BTF9DSEVDS19GT1JfUkVTUE9O U0VTKCkpLgo+PiArICoKPj4gKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgcGFyYS12aXJ0dWFsIGNh bWVyYSBkcml2ZXIgdXRpbGl6ZSBub2RlcyB3aXRoaW4KPj4gKyAqIFhlblN0b3JlIHRvIGNvbW11 bmljYXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVnb3RpYXRlIG9wZXJhdGluZyBwYXJhbWV0ZXJz Lgo+PiArICogVGhpcyBzZWN0aW9uIGVudW1lcmF0ZXMgdGhlc2Ugbm9kZXMgd2hpY2ggcmVzaWRl IGluIHRoZSByZXNwZWN0aXZlIGZyb250IGFuZAo+PiArICogYmFja2VuZCBwb3J0aW9ucyBvZiBY ZW5TdG9yZSwgZm9sbG93aW5nIHRoZSBYZW5CdXMgY29udmVudGlvbi4KPj4gKyAqCj4+ICsgKiBB bGwgZGF0YSBpbiBYZW5TdG9yZSBpcyBzdG9yZWQgYXMgc3RyaW5ncy4gTm9kZXMgc3BlY2lmeWlu ZyBudW1lcmljCj4+ICsgKiB2YWx1ZXMgYXJlIGVuY29kZWQgaW4gZGVjaW1hbC4gSW50ZWdlciB2 YWx1ZSByYW5nZXMgbGlzdGVkIGJlbG93IGFyZQo+PiArICogZXhwcmVzc2VkIGFzIGZpeGVkIHNp emVkIGludGVnZXIgdHlwZXMgY2FwYWJsZSBvZiBzdG9yaW5nIHRoZSBjb252ZXJzaW9uCj4+ICsg KiBvZiBhIHByb3Blcmx5IGZvcm1hdHRlZCBub2RlIHN0cmluZywgd2l0aG91dCBsb3NzIG9mIGlu Zm9ybWF0aW9uLgo+PiArICoKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAg ICAgICAgICAgICAgICAgICAgRXhhbXBsZSBjb25maWd1cmF0aW9uCj4+ICsgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCj4+ICsgKgo+PiArICogVGhpcyBpcyBhbiBleGFtcGxlIG9mIGJhY2tlbmQgYW5k IGZyb250ZW5kIGNvbmZpZ3VyYXRpb246Cj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gQmFja2VuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+PiArICoKPj4gKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZjYW1lcmEvMS8wL2Zyb250 ZW5kLWlkID0gIjEiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92Y2FtZXJhLzEvMC9m cm9udGVuZCA9ICIvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMCIKPj4gKyAqIC9sb2Nh bC9kb21haW4vMC9iYWNrZW5kL3ZjYW1lcmEvMS8wL3N0YXRlID0gIjQiCj4+ICsgKiAvbG9jYWwv ZG9tYWluLzAvYmFja2VuZC92Y2FtZXJhLzEvMC92ZXJzaW9ucyA9ICIxLDIiCj4+ICsgKgo+PiAr ICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnJvbnRlbmQgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZp Y2UvdmNhbWVyYS8wL2JhY2tlbmQtaWQgPSAiMCIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZp Y2UvdmNhbWVyYS8wL2JhY2tlbmQgPSAiL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmNhbWVyYS8x Igo+PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAvc3RhdGUgPSAiNCIKPj4g KyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL3ZlcnNpb24gPSAiMSIKPj4gKyAq IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL2JlLWFsbG9jID0gIjEiCj4+ICsgKgo+ PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERldmljZSAwIGNvbmZpZ3VyYXRpb24g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9k ZXZpY2UvdmNhbWVyYS8wL21heC1idWZmZXJzID0gIjMiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEv ZGV2aWNlL3ZjYW1lcmEvMC9jb250cm9scyA9ICJjb250cmFzdCxodWUiCj4+ICsgKiAvbG9jYWwv ZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9mb3JtYXRzL1lVWVYvNjQweDQ4MC9mcmFtZS1yYXRl cyA9ICIzMC8xLDE1LzEiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9m b3JtYXRzL1lVWVYvMTkyMHgxMDgwL2ZyYW1lLXJhdGVzID0gIjE1LzIiCj4+ICsgKiAvbG9jYWwv ZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9mb3JtYXRzL0JHUkEvNjQweDQ4MC9mcmFtZS1yYXRl cyA9ICIxNS8xLDE1LzIiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9m b3JtYXRzL0JHUkEvMTIwMHg3MjAvZnJhbWUtcmF0ZXMgPSAiMTUvMiIKPj4gKyAqIC9sb2NhbC9k b21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL3VuaXF1ZS1pZCA9ICIwIgo+PiArICogL2xvY2FsL2Rv bWFpbi8xL2RldmljZS92Y2FtZXJhLzAvcmVxLXJpbmctcmVmID0gIjI4MzIiCj4+ICsgKiAvbG9j YWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9yZXEtZXZlbnQtY2hhbm5lbCA9ICIxNSIKPj4g KyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL2V2dC1yaW5nLXJlZiA9ICIzODci Cj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9ldnQtZXZlbnQtY2hhbm5l bCA9ICIxNiIKPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGV2aWNl IDEgY29uZmlndXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICog L2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzEvbWF4LWJ1ZmZlcnMgPSAiOCIKPj4gKyAq IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8xL2NvbnRyb2xzID0gImJyaWdodG5lc3Ms c2F0dXJhdGlvbixodWUiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMS9m b3JtYXRzL1lVWVYvNjQweDQ4MC9mcmFtZS1yYXRlcyA9ICIzMC8xLDE1LzIiCj4+ICsgKiAvbG9j YWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMS9mb3JtYXRzL1lVWVYvMTkyMHgxMDgwL2ZyYW1l LXJhdGVzID0gIjE1LzIiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMS91 bmlxdWUtaWQgPSAiMSIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8xL3Jl cS1yaW5nLXJlZiA9ICIyODMzIgo+PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJh LzEvcmVxLWV2ZW50LWNoYW5uZWwgPSAiMTciCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl L3ZjYW1lcmEvMS9ldnQtcmluZy1yZWYgPSAiMzg4Igo+PiArICogL2xvY2FsL2RvbWFpbi8xL2Rl dmljZS92Y2FtZXJhLzEvZXZ0LWV2ZW50LWNoYW5uZWwgPSAiMTgiCj4+ICsgKgo+PiArICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFja2Vu ZCBYZW5CdXMgTm9kZXMKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqCj4+ICsgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3RvY29sIHZlcnNpb24gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICogdmVyc2lvbnMKPj4gKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDxzdHJpbmc+Cj4+ICsgKgo+PiArICogICAgICBMaXN0IG9mIFhFTkNBTUVS QV9MSVNUX1NFUEFSQVRPUiBzZXBhcmF0ZWQgcHJvdG9jb2wgdmVyc2lvbnMgc3VwcG9ydGVkCj4+ ICsgKiAgICAgIGJ5IHRoZSBiYWNrZW5kLiBGb3IgZXhhbXBsZSAiMSwyLDMiLgo+PiArICoKPj4g KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZyb250ZW5kIFhlbkJ1cyBOb2Rlcwo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICoK Pj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQWRkcmVzc2luZyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBkb20taWQKPj4gKyAqICAg ICAgVmFsdWVzOiAgICAgICAgIDx1aW50MTZfdD4KPj4gKyAqCj4+ICsgKiAgICAgIERvbWFpbiBp ZGVudGlmaWVyLgo+PiArICoKPj4gKyAqIGRldi1pZAo+PiArICogICAgICBWYWx1ZXM6ICAgICAg ICAgPHVpbnQxNl90Pgo+PiArICoKPj4gKyAqICAgICAgRGV2aWNlIGlkZW50aWZpZXIuCj4+ICsg Kgo+PiArICogICAgICAvbG9jYWwvZG9tYWluLzxkb20taWQ+L2RldmljZS92Y2FtZXJhLzxkZXYt aWQ+Ly4uLgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJvdG9j b2wgdmVyc2lvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiB2 ZXJzaW9uCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8c3RyaW5nPgo+PiArICoKPj4gKyAq ICAgICAgUHJvdG9jb2wgdmVyc2lvbiwgY2hvc2VuIGFtb25nIHRoZSBvbmVzIHN1cHBvcnRlZCBi eSB0aGUgYmFja2VuZC4KPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQmFj a2VuZCBidWZmZXIgYWxsb2NhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+ PiArICogYmUtYWxsb2MKPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgICIwIiwgIjEiCj4+ICsg Kgo+PiArICogICAgICBJZiB2YWx1ZSBpcyBzZXQgdG8gIjEiLCB0aGVuIGJhY2tlbmQgd2lsbCBi ZSB0aGUgYnVmZmVyCj4+ICsgKiAgICAgIHByb3ZpZGVyL2FsbG9jYXRvciBmb3IgdGhpcyBkb21h aW4gZHVyaW5nIFhFTkNBTUVSQV9PUF9CVUZfQ1JFQVRFCj4+ICsgKiAgICAgIG9wZXJhdGlvbi4K Pj4gKyAqICAgICAgSWYgdmFsdWUgaXMgbm90ICIxIiBvciBvbWl0dGVkIGZyb250ZW5kIG11c3Qg YWxsb2NhdGUgYnVmZmVycyBpdHNlbGYuCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tIENhbWVyYSBzZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+PiArICoKPj4gKyAqIHVuaXF1ZS1pZAo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHN0 cmluZz4KPj4gKyAqCj4+ICsgKiAgICAgIEFmdGVyIGRldmljZSBpbnN0YW5jZSBpbml0aWFsaXph dGlvbiBlYWNoIGNhbWVyYSBpcyBhc3NpZ25lZCBhCj4+ICsgKiAgICAgIHVuaXF1ZSBJRCwgc28g aXQgY2FuIGJlIGlkZW50aWZpZWQgYnkgdGhlIGJhY2tlbmQgYnkgdGhpcyBJRC4KPj4gKyAqICAg ICAgVGhpcyBjYW4gYmUgVVVJRCBvciBzdWNoLgo+PiArICoKPj4gKyAqIG1heC1idWZmZXJzCj4+ ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDhfdD4KPj4gKyAqCj4+ICsgKiAgICAgIE1h eGltdW0gbnVtYmVyIG9mIGNhbWVyYSBidWZmZXJzIHRoaXMgZnJvbnRlbmQgbWF5IHVzZS4KPj4g KyAqCj4+ICsgKiBjb250cm9scwo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPGxpc3Qgb2Yg c3RyaW5nPgo+PiArICoKPj4gKyAqICAgICAgTGlzdCBvZiBzdXBwb3J0ZWQgY2FtZXJhIGNvbnRy b2xzIHNlcGFyYXRlZCBieSBYRU5DQU1FUkFfTElTVF9TRVBBUkFUT1IuCj4+ICsgKiAgICAgIENh bWVyYSBjb250cm9scyBhcmUgZXhwcmVzc2VkIGFzIGEgbGlzdCBvZiBzdHJpbmcgdmFsdWVzIHcv byBhbnkKPj4gKyAqICAgICAgb3JkZXJpbmcgcmVxdWlyZW1lbnQuCj4+ICsgKgo+PiArICogZm9y bWF0cwo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPGZvcm1hdCwgY2hhcls3XT4KPj4gKyAq Cj4+ICsgKiAgICAgIEZvcm1hdHMgYXJlIG9yZ2FuaXplZCBhcyBhIHNldCBvZiBkaXJlY3Rvcmll cyBvbmUgcGVyIGVhY2gKPj4gKyAqICAgICAgc3VwcG9ydGVkIHBpeGVsIGZvcm1hdC4gVGhlIG5h bWUgb2YgdGhlIGRpcmVjdG9yeSBpcyB0aGUKPj4gKyAqICAgICAgY29ycmVzcG9uZGluZyBGT1VS Q0Mgc3RyaW5nIGxhYmVsLiBUaGUgbmV4dCBsZXZlbCBvZgo+PiArICogICAgICB0aGUgZGlyZWN0 b3J5IHVuZGVyIDxmb3JtYXRzPiByZXByZXNlbnRzIHN1cHBvcnRlZCByZXNvbHV0aW9ucy4KPj4g KyAqICAgICAgSWYgdGhlIGZvcm1hdCByZXByZXNlbnRzIGEgYmlnLWVuZGlhbiB2YXJpYW50IG9m IGEgbGl0dGxlCj4+ICsgKiAgICAgIGVuZGlhbiBmb3JtYXQsIHRoZW4gdGhlICItQkUiIHN1ZmZp eCBtdXN0IGJlIGFkZGVkLiBFLmcuICdBUjE1JyB2cwo+PiArICogICAgICAnQVIxNS1CRScuCj4+ ICsgKiAgICAgIElmIEZPVVJDQyBzdHJpbmcgbGFiZWwgaGFzIHNwYWNlcyB0aGVuIHRob3NlIGFy ZSBvbmx5IGFsbG93ZWQgdG8KPj4gKyAqICAgICAgYmUgYXQgdGhlIGVuZCBvZiB0aGUgbGFiZWwg YW5kIG11c3QgYmUgdHJpbW1lZCwgZm9yIGV4YW1wbGUKPj4gKyAqICAgICAgJ1kxNicgYW5kICdZ MTYtQkUnIHdpbGwgYmUgdHJpbW1lZC4KPj4gKyAqCj4+ICsgKiByZXNvbHV0aW9uCj4+ICsgKiAg ICAgIFZhbHVlczogICAgICAgICA8d2lkdGgsIHVpbnQzMl90Png8aGVpZ2h0LCB1aW50MzJfdD4K Pj4gKyAqCj4+ICsgKiAgICAgIFJlc29sdXRpb25zIGFyZSBvcmdhbml6ZWQgYXMgYSBzZXQgb2Yg ZGlyZWN0b3JpZXMgb25lIHBlciBlYWNoCj4+ICsgKiAgICAgIHN1cHBvcnRlZCByZXNvbHV0aW9u IHVuZGVyIGNvcnJlc3BvbmRpbmcgPGZvcm1hdHM+IGRpcmVjdG9yeS4KPj4gKyAqICAgICAgVGhl IG5hbWUgb2YgdGhlIGRpcmVjdG9yeSBpcyB0aGUgc3VwcG9ydGVkIHdpZHRoIGFuZCBoZWlnaHQK Pj4gKyAqICAgICAgb2YgdGhlIGNhbWVyYSByZXNvbHV0aW9uIGluIHBpeGVscy4KPj4gKyAqCj4+ ICsgKiBmcmFtZS1yYXRlcwo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPG51bWVyYXRvciwg dWludDMyX3Q+LzxkZW5vbWluYXRvciwgdWludDMyX3Q+Cj4+ICsgKgo+PiArICogICAgICBMaXN0 IG9mIFhFTkNBTUVSQV9GUkFNRV9SQVRFX1NFUEFSQVRPUiBzZXBhcmF0ZWQgc3VwcG9ydGVkIGZy YW1lIHJhdGVzCj4+ICsgKiAgICAgIG9mIHRoZSBjYW1lcmEgZXhwcmVzc2VkIGFzIG51bWVyYXRv ciBhbmQgZGVub21pbmF0b3Igb2YgdGhlCj4+ICsgKiAgICAgIGNvcnJlc3BvbmRpbmcgZnJhbWUg cmF0ZS4KPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FtZXJhIFJlcXVlc3QgVHJh bnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICogVGhp cyBjb21tdW5pY2F0aW9uIHBhdGggaXMgdXNlZCB0byBkZWxpdmVyIHJlcXVlc3RzIGZyb20gZnJv bnRlbmQgdG8gYmFja2VuZAo+PiArICogYW5kIGdldCB0aGUgY29ycmVzcG9uZGluZyByZXNwb25z ZXMgZnJvbSBiYWNrZW5kIHRvIGZyb250ZW5kLAo+PiArICogc2V0IHVwIHBlciB2aXJ0dWFsIGNh bWVyYSBkZXZpY2UuCj4+ICsgKgo+PiArICogcmVxLWV2ZW50LWNoYW5uZWwKPj4gKyAqICAgICAg VmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KPj4gKyAqCj4+ICsgKiAgICAgIFRoZSBpZGVudGlm aWVyIG9mIHRoZSBYZW4gY2FtZXJhJ3MgY29udHJvbCBldmVudCBjaGFubmVsCj4+ICsgKiAgICAg IHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5IGluIHRoZSByaW5nIGJ1ZmZlci4KPj4gKyAqCj4+ICsg KiByZXEtcmluZy1yZWYKPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KPj4g KyAqCj4+ICsgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Np b24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAo+PiArICogICAgICBhIHNvbGUgcGFnZSBvZiBjYW1l cmEncyBjb250cm9sIHJpbmcgYnVmZmVyLgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0gQ2FtZXJhIEV2ZW50IFRyYW5zcG9ydCBQYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPj4gKyAqCj4+ICsgKiBUaGlzIGNvbW11bmljYXRpb24gcGF0aCBpcyB1c2VkIHRvIGRlbGl2 ZXIgYXN5bmNocm9ub3VzIGV2ZW50cyBmcm9tIGJhY2tlbmQKPj4gKyAqIHRvIGZyb250ZW5kLCBz ZXQgdXAgcGVyIHZpcnR1YWwgY2FtZXJhIGRldmljZS4KPj4gKyAqCj4+ICsgKiBldnQtZXZlbnQt Y2hhbm5lbAo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pgo+PiArICoKPj4g KyAqICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBjYW1lcmEncyBldmVudCBjaGFubmVs Cj4+ICsgKiAgICAgIHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5IGluIHRoZSByaW5nIGJ1ZmZlci4K Pj4gKyAqCj4+ICsgKiBldnQtcmluZy1yZWYKPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1 aW50MzJfdD4KPj4gKyAqCj4+ICsgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50 aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAo+PiArICogICAgICBhIHNvbGUg cGFnZSBvZiBjYW1lcmEncyBldmVudCByaW5nIGJ1ZmZlci4KPj4gKyAqLwo+PiArCj4+ICsvKgo+ PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU1RBVEUgRElBR1JBTVMKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqCj4+ ICsgKiBUb29sIHN0YWNrIGNyZWF0ZXMgZnJvbnQgYW5kIGJhY2sgc3RhdGUgbm9kZXMgd2l0aCBp bml0aWFsIHN0YXRlCj4+ICsgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZy4KPj4gKyAqIFRvb2wg c3RhY2sgY3JlYXRlcyBhbmQgc2V0cyB1cCBmcm9udGVuZCBjYW1lcmEgY29uZmlndXJhdGlvbgo+ PiArICogbm9kZXMgcGVyIGRvbWFpbi4KPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tIE5vcm1hbCBmbG93IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4+ICsgKgo+PiArICogRnJvbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2sK Pj4gKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgICA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Cj4+ICsgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyAg ICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcKPj4gKyAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbyBRdWVyeSBiYWNrZW5kIGRldmljZSBpZGVudGlmaWNh dGlvbgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEu Cj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gT3BlbiBhbmQg dmFsaWRhdGUgYmFja2VuZCBkZXZpY2UuCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBWCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWGVuYnVzU3RhdGVJbml0V2FpdAo+PiArICoKPj4gKyAqIG8gUXVlcnkgZnJvbnRl bmQgY29uZmlndXJhdGlvbgo+PiArICogbyBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZQo+PiArICog ICBldmVudCBjaGFubmVscyBwZXIgY29uZmlndXJlZAo+PiArICogICBjYW1lcmEuCj4+ICsgKiBv IFB1Ymxpc2ggdHJhbnNwb3J0IHBhcmFtZXRlcnMKPj4gKyAqICAgdGhhdCB3aWxsIGJlIGluIGVm ZmVjdCBkdXJpbmcKPj4gKyAqICAgdGhpcyBjb25uZWN0aW9uLgo+PiArICogICAgICAgICAgICAg IHwKPj4gKyAqICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAgVgo+PiArICogWGVu YnVzU3RhdGVJbml0aWFsaXNlZAo+PiArICoKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbyBRdWVyeSBmcm9udGVuZCB0cmFuc3BvcnQgcGFyYW1ldGVycy4KPj4g KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBDb25uZWN0IHRvIHRo ZSBldmVudCBjaGFubmVscy4KPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFYKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBYZW5idXNTdGF0ZUNvbm5lY3RlZAo+PiArICoKPj4gKyAqICBvIENyZWF0ZSBhbmQgaW5pdGlh bGl6ZSBPUwo+PiArICogICAgdmlydHVhbCBjYW1lcmEgYXMgcGVyCj4+ICsgKiAgICBjb25maWd1 cmF0aW9uLgo+PiArICogICAgICAgICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICB8Cj4+ICsg KiAgICAgICAgICAgICAgVgo+PiArICogWGVuYnVzU3RhdGVDb25uZWN0ZWQKPj4gKyAqCj4+ICsg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVVbmtub3du Cj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVD bG9zZWQKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNT dGF0ZUNsb3NpbmcKPj4gKyAqIG8gUmVtb3ZlIHZpcnR1YWwgY2FtZXJhIGRldmljZQo+PiArICog byBSZW1vdmUgZXZlbnQgY2hhbm5lbHMKPj4gKyAqICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAg ICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgIFYKPj4gKyAqIFhlbmJ1c1N0YXRlQ2xvc2Vk Cj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlY292ZXJ5IGZs b3cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIEluIGNhc2Ug b2YgZnJvbnRlbmQgdW5yZWNvdmVyYWJsZSBlcnJvcnMgYmFja2VuZCBoYW5kbGVzIHRoYXQgYXMK Pj4gKyAqIGlmIGZyb250ZW5kIGdvZXMgaW50byB0aGUgWGVuYnVzU3RhdGVDbG9zZWQgc3RhdGUu Cj4+ICsgKgo+PiArICogSW4gY2FzZSBvZiBiYWNrZW5kIHVucmVjb3ZlcmFibGUgZXJyb3JzIGZy b250ZW5kIHRyaWVzIHJlbW92aW5nCj4+ICsgKiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlLiBJZiB0 aGlzIGlzIHBvc3NpYmxlIGF0IHRoZSBtb21lbnQgb2YgZXJyb3IsCj4+ICsgKiB0aGVuIGZyb250 ZW5kIGdvZXMgaW50byB0aGUgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgc3RhdGUgYW5kIGlzIHJl YWR5IGZvcgo+PiArICogbmV3IGNvbm5lY3Rpb24gd2l0aCBiYWNrZW5kLiBJZiB0aGUgdmlydHVh bGl6ZWQgZGV2aWNlIGlzIHN0aWxsIGluIHVzZSBhbmQKPj4gKyAqIGNhbm5vdCBiZSByZW1vdmVk LCB0aGVuIGZyb250ZW5kIGdvZXMgaW50byB0aGUgWGVuYnVzU3RhdGVSZWNvbmZpZ3VyaW5nIHN0 YXRlCj4+ICsgKiB1bnRpbCBlaXRoZXIgdGhlIHZpcnR1YWxpemVkIGRldmljZSBpcyByZW1vdmVk IG9yIGJhY2tlbmQgaW5pdGlhdGVzIGEgbmV3Cj4+ICsgKiBjb25uZWN0aW9uLiBPbiB0aGUgdmly dHVhbGl6ZWQgZGV2aWNlIHJlbW92YWwgZnJvbnRlbmQgZ29lcyBpbnRvIHRoZQo+PiArICogWGVu YnVzU3RhdGVJbml0aWFsaXNpbmcgc3RhdGUuCj4+ICsgKgo+PiArICogTm90ZSBvbiBYZW5idXNT dGF0ZVJlY29uZmlndXJpbmcgc3RhdGUgb2YgdGhlIGZyb250ZW5kOiBpZiBiYWNrZW5kIGhhcwo+ PiArICogdW5yZWNvdmVyYWJsZSBlcnJvcnMgdGhlbiBmcm9udGVuZCBjYW5ub3Qgc2VuZCByZXF1 ZXN0cyB0byB0aGUgYmFja2VuZAo+PiArICogYW5kIHRodXMgY2Fubm90IHByb3ZpZGUgZnVuY3Rp b25hbGl0eSBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGFueW1vcmUuCj4+ICsgKiBBZnRlciBi YWNrZW5kIGlzIGJhY2sgdG8gbm9ybWFsIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgbWF5IHN0aWxs IGhvbGQgc29tZQo+PiArICogc3RhdGU6IGNvbmZpZ3VyYXRpb24gaW4gdXNlLCBhbGxvY2F0ZWQg YnVmZmVycywgY2xpZW50IGFwcGxpY2F0aW9uIHN0YXRlIGV0Yy4KPj4gKyAqIEluIG1vc3QgY2Fz ZXMsIHRoaXMgd2lsbCByZXF1aXJlIGZyb250ZW5kIHRvIGltcGxlbWVudCBjb21wbGV4IHJlY292 ZXJ5Cj4+ICsgKiByZWNvbm5lY3QgbG9naWMuIEluc3RlYWQsIGJ5IGdvaW5nIGludG8gWGVuYnVz U3RhdGVSZWNvbmZpZ3VyaW5nIHN0YXRlLAo+PiArICogZnJvbnRlbmQgd2lsbCBtYWtlIHN1cmUg bm8gbmV3IGNsaWVudHMgb2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBhcmUKPj4gKyAqIGFjY2Vw dGVkLCBhbGxvdyBleGlzdGluZyBjbGllbnQocykgdG8gZXhpdCBncmFjZWZ1bGx5IGJ5IHNpZ25h bGluZyBlcnJvcgo+PiArICogc3RhdGUgZXRjLgo+PiArICogT25jZSBhbGwgdGhlIGNsaWVudHMg YXJlIGdvbmUgZnJvbnRlbmQgY2FuIHJlaW5pdGlhbGl6ZSB0aGUgdmlydHVhbGl6ZWQKPj4gKyAq IGRldmljZSBhbmQgZ2V0IGludG8gWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgc3RhdGUgYWdhaW4g c2lnbmFsaW5nIHRoZQo+PiArICogYmFja2VuZCB0aGF0IGEgbmV3IGNvbm5lY3Rpb24gY2FuIGJl IG1hZGUuCj4+ICsgKgo+PiArICogVGhlcmUgYXJlIG11bHRpcGxlIGNvbmRpdGlvbnMgcG9zc2li bGUgdW5kZXIgd2hpY2ggZnJvbnRlbmQgd2lsbCBnbyBmcm9tCj4+ICsgKiBYZW5idXNTdGF0ZVJl Y29uZmlndXJpbmcgaW50byBYZW5idXNTdGF0ZUluaXRpYWxpc2luZywgc29tZSBvZiB0aGVtIGFy ZSBPUwo+PiArICogc3BlY2lmaWMuIEZvciBleGFtcGxlOgo+PiArICogMS4gVGhlIHVuZGVybHlp bmcgT1MgZnJhbWV3b3JrIG1heSBwcm92aWRlIGNhbGxiYWNrcyB0byBzaWduYWwgdGhhdCB0aGUg bGFzdAo+PiArICogICAgY2xpZW50IG9mIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgaGFzIGdvbmUg YW5kIHRoZSBkZXZpY2UgY2FuIGJlIHJlbW92ZWQKPj4gKyAqIDIuIEZyb250ZW5kIGNhbiBzY2hl ZHVsZSBhIGRlZmVycmVkIHdvcmsgKHRpbWVyL3Rhc2tsZXQvd29ya3F1ZXVlKQo+PiArICogICAg dG8gcGVyaW9kaWNhbGx5IGNoZWNrIGlmIHRoaXMgaXMgdGhlIHJpZ2h0IHRpbWUgdG8gcmUtdHJ5 IHJlbW92YWwgb2YKPj4gKyAqICAgIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UuCj4+ICsgKiAzLiBC eSBhbnkgb3RoZXIgbWVhbnMuCj4+ICsgKgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiAr ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUVVFU1QgQ09ERVMKPj4gKyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKPj4gKyAqLwo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQ09ORklHX1NF VCAgICAgICAgMHgwMAo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQ09ORklHX0dFVCAgICAgICAg MHgwMQo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQ09ORklHX1ZBTElEQVRFICAgMHgwMgo+PiAr I2RlZmluZSBYRU5DQU1FUkFfT1BfRlJBTUVfUkFURV9TRVQgICAgMHgwMwo+PiArI2RlZmluZSBY RU5DQU1FUkFfT1BfQlVGX0dFVF9MQVlPVVQgICAgMHgwNAo+PiArI2RlZmluZSBYRU5DQU1FUkFf T1BfQlVGX1JFUVVFU1QgICAgICAgMHgwNQo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQlVGX0NS RUFURSAgICAgICAgMHgwNgo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQlVGX0RFU1RST1kgICAg ICAgMHgwNwo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQlVGX1FVRVVFICAgICAgICAgMHgwOAo+ PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQlVGX0RFUVVFVUUgICAgICAgMHgwOQo+PiArI2RlZmlu ZSBYRU5DQU1FUkFfT1BfQ1RSTF9FTlVNICAgICAgICAgMHgwYQo+PiArI2RlZmluZSBYRU5DQU1F UkFfT1BfQ1RSTF9TRVQgICAgICAgICAgMHgwYgo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQ1RS TF9HRVQgICAgICAgICAgMHgwYwo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfU1RSRUFNX1NUQVJU ICAgICAgMHgwZAo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfU1RSRUFNX1NUT1AgICAgICAgMHgw ZQo+PiArCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0JSSUdIVE5FU1MgICAgICAwCj4+ICsj ZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0NPTlRSQVNUICAgICAgICAxCj4+ICsjZGVmaW5lIFhFTkNB TUVSQV9DVFJMX1NBVFVSQVRJT04gICAgICAyCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0hV RSAgICAgICAgICAgICAzCj4+ICsKPj4gKy8qIE51bWJlciBvZiBzdXBwb3J0ZWQgY29udHJvbHMu ICovCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9NQVhfQ1RSTCAgICAgICAgICAgICA0Cj4+ICsKPj4g Ky8qIENvbnRyb2wgaXMgcmVhZC1vbmx5LiAqLwo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ1RSTF9G TEdfUk8gICAgICAgICAgKDEgPDwgMCkKPj4gKy8qIENvbnRyb2wgaXMgd3JpdGUtb25seS4gKi8K Pj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0NUUkxfRkxHX1dPICAgICAgICAgICgxIDw8IDEpCj4+ICsv KiBDb250cm9sJ3MgdmFsdWUgaXMgdm9sYXRpbGUuICovCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9D VFJMX0ZMR19WT0xBVElMRSAgICAoMSA8PCAyKQo+PiArCj4+ICsvKiBTdXBwb3J0ZWQgY29sb3Ig c3BhY2VzLiAqLwo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ09MT1JTUEFDRV9ERUZBVUxUICAgMAo+ PiArI2RlZmluZSBYRU5DQU1FUkFfQ09MT1JTUEFDRV9TTVBURTE3ME0gMQo+PiArI2RlZmluZSBY RU5DQU1FUkFfQ09MT1JTUEFDRV9SRUM3MDkgICAgMgo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ09M T1JTUEFDRV9TUkdCICAgICAgMwo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ09MT1JTUEFDRV9PUFJH QiAgICAgNAo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ09MT1JTUEFDRV9CVDIwMjAgICAgNQo+PiAr I2RlZmluZSBYRU5DQU1FUkFfQ09MT1JTUEFDRV9EQ0lfUDMgICAgNgo+PiArCj4+ICsvKiBDb2xv ciBzcGFjZSB0cmFuc2ZlciBmdW5jdGlvbi4gKi8KPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1hGRVJf RlVOQ19ERUZBVUxUICAgIDAKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1hGRVJfRlVOQ183MDkgICAg ICAgIDEKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1hGRVJfRlVOQ19TUkdCICAgICAgIDIKPj4gKyNk ZWZpbmUgWEVOQ0FNRVJBX1hGRVJfRlVOQ19PUFJHQiAgICAgIDMKPj4gKyNkZWZpbmUgWEVOQ0FN RVJBX1hGRVJfRlVOQ19OT05FICAgICAgIDQKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1hGRVJfRlVO Q19EQ0lfUDMgICAgIDUKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1hGRVJfRlVOQ19TTVBURTIwODQg IDYKPj4gKwo+PiArLyogQ29sb3Igc3BhY2UgWeKAmUNiQ3IgZW5jb2RpbmcuICovCj4+ICsjZGVm aW5lIFhFTkNBTUVSQV9ZQ0JDUl9FTkNfSUdOT1JFICAgICAgICAgICAwCj4+ICsjZGVmaW5lIFhF TkNBTUVSQV9ZQ0JDUl9FTkNfNjAxICAgICAgICAgICAgICAxCj4+ICsjZGVmaW5lIFhFTkNBTUVS QV9ZQ0JDUl9FTkNfNzA5ICAgICAgICAgICAgICAyCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9ZQ0JD Ul9FTkNfWFY2MDEgICAgICAgICAgICAzCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9ZQ0JDUl9FTkNf WFY3MDkgICAgICAgICAgICA0Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9ZQ0JDUl9FTkNfQlQyMDIw ICAgICAgICAgICA1Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9ZQ0JDUl9FTkNfQlQyMDIwX0NPTlNU X0xVTSA2Cj4+ICsKPj4gKy8qIFF1YW50aXphdGlvbiByYW5nZS4gKi8KPj4gKyNkZWZpbmUgWEVO Q0FNRVJBX1FVQU5USVpBVElPTl9ERUZBVUxUICAgICAgIDAKPj4gKyNkZWZpbmUgWEVOQ0FNRVJB X1FVQU5USVpBVElPTl9GVUxMX1JBTkdFICAgIDEKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1FVQU5U SVpBVElPTl9MSU1fUkFOR0UgICAgIDIKPj4gKwo+PiArLyoKPj4gKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZFTlQgQ09ERVMK Pj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqLwo+PiArI2RlZmluZSBYRU5DQU1FUkFf RVZUX0ZSQU1FX0FWQUlMICAgICAgMHgwMAo+PiArI2RlZmluZSBYRU5DQU1FUkFfRVZUX0NUUkxf Q0hBTkdFICAgICAgMHgwMQo+PiArCj4+ICsvKgo+PiArICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ PiArICogICAgICAgICAgICAgICBYRU5TVE9SRSBGSUVMRCBBTkQgUEFUSCBOQU1FIFNUUklOR1Ms IEhFTFBFUlMKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqLwo+PiArI2RlZmluZSBY RU5DQU1FUkFfRFJJVkVSX05BTUUgICAgICAgICAgInZjYW1lcmEiCj4+ICsKPj4gKyNkZWZpbmUg WEVOQ0FNRVJBX0xJU1RfU0VQQVJBVE9SICAgICAgICIsIgo+PiArI2RlZmluZSBYRU5DQU1FUkFf UkVTT0xVVElPTl9TRVBBUkFUT1IgIngiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9GUkFDVElPTl9T RVBBUkFUT1IgICAiLyIKPj4gKwo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfQkVfVkVSU0lP TlMgICAgInZlcnNpb25zIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfRkVfVkVSU0lPTiAg ICAgInZlcnNpb24iCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9SRVFfUklOR19SRUYgICAi cmVxLXJpbmctcmVmIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfUkVRX0NIQU5ORUwgICAg InJlcS1ldmVudC1jaGFubmVsIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfRVZUX1JJTkdf UkVGICAgImV2dC1yaW5nLXJlZiIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0ZJRUxEX0VWVF9DSEFO TkVMICAgICJldnQtZXZlbnQtY2hhbm5lbCIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0ZJRUxEX01B WF9CVUZGRVJTICAgICJtYXgtYnVmZmVycyIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0ZJRUxEX0NP TlRST0xTICAgICAgICJjb250cm9scyIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0ZJRUxEX0ZPUk1B VFMgICAgICAgICJmb3JtYXRzIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfRlJBTUVfUkFU RVMgICAgImZyYW1lLXJhdGVzIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfQkVfQUxMT0Mg ICAgICAgImJlLWFsbG9jIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfVU5JUVVFX0lEICAg ICAgInVuaXF1ZS1pZCIKPj4gKwo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ1RSTF9CUklHSFRORVNT X1NUUiAgImJyaWdodG5lc3MiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0NPTlRSQVNUX1NU UiAgICAiY29udHJhc3QiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX1NBVFVSQVRJT05fU1RS ICAic2F0dXJhdGlvbiIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0NUUkxfSFVFX1NUUiAgICAgICAg ICJodWUiCj4+ICsKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0ZPVVJDQ19CSUdFTkRJQU5fU1RSICIt QkUiCj4+ICsKPj4gKy8qIE1heGltdW0gbnVtYmVyIG9mIGJ1ZmZlciBwbGFuZXMgc3VwcG9ydGVk LiAqLwo+PiArI2RlZmluZSBYRU5DQU1FUkFfTUFYX1BMQU5FICAgICAgICAgICAgNAo+PiArCj4+ ICsvKgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAg ICAgICAgIFNUQVRVUyBSRVRVUk4gQ09ERVMKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4g KyAqCj4+ICsgKiBTdGF0dXMgcmV0dXJuIGNvZGUgaXMgemVybyBvbiBzdWNjZXNzIGFuZCAtWEVO X0VYWCBvbiBmYWlsdXJlLgo+PiArICoKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNzdW1wdGlvbnMKPj4gKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKPj4gKyAqCj4+ICsgKiAtIHVzYWdlIG9mIGdyYW50IHJlZmVyZW5jZSAwIGFz IGludmFsaWQgZ3JhbnQgcmVmZXJlbmNlOgo+PiArICogICBncmFudCByZWZlcmVuY2UgMCBpcyB2 YWxpZCwgYnV0IG5ldmVyIGV4cG9zZWQgdG8gYSBQViBkcml2ZXIsCj4+ICsgKiAgIGJlY2F1c2Ug b2YgdGhlIGZhY3QgaXQgaXMgYWxyZWFkeSBpbiB1c2UvcmVzZXJ2ZWQgYnkgdGhlIFBWIGNvbnNv bGUuCj4+ICsgKiAtIGFsbCByZWZlcmVuY2VzIGluIHRoaXMgZG9jdW1lbnQgdG8gcGFnZSBzaXpl cyBtdXN0IGJlIHRyZWF0ZWQKPj4gKyAqICAgYXMgcGFnZXMgb2Ygc2l6ZSBYRU5fUEFHRV9TSVpF IHVubGVzcyBvdGhlcndpc2Ugbm90ZWQuCj4+ICsgKiAtIGFsbCBGT1VSQ0MgbWFwcGluZ3MgdXNl ZCBmb3IgY29uZmlndXJhdGlvbiBhbmQgbWVzc2FnaW5nIGFyZQo+PiArICogICBMaW51eCBWNEwy IG9uZXM6IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3Rv cnZhbGRzL2xpbnV4LmdpdC90cmVlL2luY2x1ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaAo+PiAr ICogICB3aXRoIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uczoKPj4gKyAqICAgICAtIGNoYXJhY3Rl cnMgYXJlIGFsbG93ZWQgaW4gWzB4MjA7IDB4N2ZdIHJhbmdlCj4+ICsgKiAgICAgLSB3aGVuIHVz ZWQgZm9yIFhlblN0b3JlIGNvbmZpZ3VyYXRpb24gZW50cmllcyB0aGUgZm9sbG93aW5nCj4+ICsg KiAgICAgICBhcmUgbm90IGFsbG93ZWQ6Cj4+ICsgKiAgICAgICAtICcvJywgJ1wnLCAnICcgKHNw YWNlKSwgJzwnLCAnPicsICc6JywgJyInLCAnfCcsICc/JywgJyonCj4+ICsgKiAgICAgICAtIGlm IHRyYWlsaW5nIHNwYWNlcyBhcmUgcGFydCBvZiB0aGUgRk9VUkNDIGNvZGUgdGhlbiB0aG9zZSBt dXN0IGJlCj4+ICsgKiAgICAgICAgIHRyaW1tZWQKPj4gKyAqCj4+ICsgKgo+PiArICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgo+PiArICogICAgICAgRGVzY3JpcHRpb24gb2YgdGhlIHByb3RvY29sIGJl dHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgZHJpdmVyCj4+ICsgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCj4+ICsgKgo+PiArICogVGhlIHR3byBoYWx2ZXMgb2YgYSBQYXJhLXZpcnR1YWwgY2FtZXJh IGRyaXZlciBjb21tdW5pY2F0ZSB3aXRoCj4+ICsgKiBlYWNoIG90aGVyIHVzaW5nIHNoYXJlZCBw YWdlcyBhbmQgZXZlbnQgY2hhbm5lbHMuCj4+ICsgKiBTaGFyZWQgcGFnZSBjb250YWlucyBhIHJp bmcgd2l0aCByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMuCj4+ICsgKgo+PiArICogQWxsIHJlc2Vy dmVkIGZpZWxkcyBpbiB0aGUgc3RydWN0dXJlcyBiZWxvdyBtdXN0IGJlIDAuCj4+ICsgKgo+PiAr ICogRm9yIGFsbCByZXF1ZXN0L3Jlc3BvbnNlL2V2ZW50IHBhY2tldHM6Cj4+ICsgKiAgIC0gZnJh bWUgcmF0ZSBwYXJhbWV0ZXIgaXMgcmVwcmVzZW50ZWQgYXMgYSBwYWlyIG9mIDQgb2N0ZXQgbG9u Zwo+PiArICogICAgIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3I6Cj4+ICsgKiAgICAgICAtIGZy YW1lX3JhdGVfbnVtZXIgLSB1aW50MzJfdCwgbnVtZXJhdG9yIG9mIHRoZSBmcmFtZSByYXRlCj4+ ICsgKiAgICAgICAtIGZyYW1lX3JhdGVfZGVub20gLSB1aW50MzJfdCwgZGVub21pbmF0b3Igb2Yg dGhlIGZyYW1lIHJhdGUKPj4gKyAqICAgICBUaGUgY29ycmVzcG9uZGluZyBmcmFtZSByYXRlIChI eikgaXMgY2FsY3VsYXRlZCBhczoKPj4gKyAqICAgICAgIGZyYW1lX3JhdGUgPSBmcmFtZV9yYXRl X251bWVyIC8gZnJhbWVfcmF0ZV9kZW5vbQo+PiArICogICAtIGJ1ZmZlciBpbmRleCBpcyBhIHpl cm8gYmFzZWQgaW5kZXggb2YgdGhlIGJ1ZmZlci4gTXVzdCBiZSBsZXNzIHRoYW4KPj4gKyAqICAg ICB0aGUgdmFsdWUgb2YgWEVOQ0FNRVJBX09QX0NPTkZJR19TRVQubnVtX2J1ZnMgcmVzcG9uc2U6 Cj4+ICsgKiAgICAgICAtIGluZGV4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIGJ1ZmZlci4KPj4g KyAqCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlcXVl c3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIEFsbCBy ZXF1ZXN0IHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0IG9jdGV0cykuCj4+ICsgKiBB bGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKPj4gKyAqICAgICAgICAgMCAg ICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAg b2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAg ICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogICBpZCAtIHVpbnQxNl90LCBwcml2YXRlIGd1ZXN0IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9u c2UuCj4+ICsgKiAgIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIG9wZXJhdGlvbiBjb2RlLCBYRU5DQU1F UkFfT1BfWFhYLgo+PiArICoKPj4gKyAqCj4+ICsgKiBSZXF1ZXN0IHRvIHNldC92YWxpZGF0ZSB0 aGUgY29uZmlndXJhdGlvbiAtIHJlcXVlc3QgdG8gc2V0IHRoZQo+PiArICogY29uZmlndXJhdGlv bi9tb2RlIG9mIHRoZSBjYW1lcmEgKFhFTkNBTUVSQV9PUF9DT05GSUdfU0VUKSBvciB0bwo+PiAr ICogY2hlY2sgaWYgdGhlIGNvbmZpZ3VyYXRpb24gaXMgdmFsaWQgYW5kIGNhbiBiZSB1c2VkCj4+ ICsgKiAoWEVOQ0FNRVJBX09QX0NPTkZJR19WQUxJREFURSk6Cj4+ICsgKiAgICAgICAgIDAgICAg ICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9j dGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAg ICAgICAgICB8IF9PUF9DT05GSUdfWFhYIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4ZWwgZm9ybWF0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHdpZHRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBoZWlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBwaXhlbF9mb3JtYXQgLSB1aW50MzJf dCwgcGl4ZWwgZm9ybWF0IHRvIGJlIHVzZWQsIEZPVVJDQyBjb2RlLgo+PiArICogd2lkdGggLSB1 aW50MzJfdCwgd2lkdGggaW4gcGl4ZWxzLgo+PiArICogaGVpZ2h0IC0gdWludDMyX3QsIGhlaWdo dCBpbiBwaXhlbHMuCj4+ICsgKgo+PiArICogU2VlIHJlc3BvbnNlIGZvcm1hdCBmb3IgdGhpcyBy ZXF1ZXN0Lgo+PiArICoKPj4gKyAqIE5vdGVzOgo+PiArICogIC0gdGhlIG9ubHkgZGlmZmVyZW5j ZSBiZXR3ZWVuIFhFTkNBTUVSQV9PUF9DT05GSUdfVkFMSURBVEUgYW5kCj4+ICsgKiAgICBYRU5D QU1FUkFfT1BfQ09ORklHX1NFVCBpcyB0aGF0IHRoZSBmb3JtZXIgZG9lc24ndCBhY3R1YWxseSBj aGFuZ2UKPj4gKyAqICAgIGNhbWVyYSBjb25maWd1cmF0aW9uLCBidXQgcXVlcmllcyBpZiB0aGUg Y29uZmlndXJhdGlvbiBpcyB2YWxpZC4KPj4gKyAqICAgIFRoaXMgY2FuIGJlIHVzZWQgd2hpbGUg c3RyZWFtIGlzIGFjdGl2ZSBhbmQvb3IgYnVmZmVycyBhbGxvY2F0ZWQuCj4+ICsgKiAgLSBmcm9u dGVuZCBtdXN0IGNoZWNrIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlIGluIG9yZGVyIHRvIHNl ZQo+PiArICogICAgaWYgdGhlIHZhbHVlcyByZXBvcnRlZCBiYWNrIGJ5IHRoZSBiYWNrZW5kIGRv IG1hdGNoIHRoZSBkZXNpcmVkIG9uZXMKPj4gKyAqICAgIGFuZCBjYW4gYmUgYWNjZXB0ZWQuCj4+ ICsgKiAgLSBmcm9udGVuZCBtYXkgc2VuZCBtdWx0aXBsZSBYRU5DQU1FUkFfT1BfQ09ORklHX1NF VCByZXF1ZXN0cyBiZWZvcmUKPj4gKyAqICAgIHNlbmRpbmcgWEVOQ0FNRVJBX09QX1NUUkVBTV9T VEFSVCByZXF1ZXN0IHRvIHVwZGF0ZSBvciB0dW5lIHRoZQo+PiArICogICAgZmluYWwgc3RyZWFt IGNvbmZpZ3VyYXRpb24uCj4+ICsgKiAgLSBjb25maWd1cmF0aW9uIGNhbm5vdCBiZSBjaGFuZ2Vk IGR1cmluZyBhY3RpdmUgc3RyZWFtaW5nLCBlLmcuCj4+ICsgKiAgICBhZnRlciBYRU5DQU1FUkFf T1BfU1RSRUFNX1NUQVJUIGFuZCBiZWZvcmUgWEVOQ0FNRVJBX09QX1NUUkVBTV9TVE9QCj4+ICsg KiAgICByZXF1ZXN0cy4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9jb25maWdfcmVxIHsK Pj4gKyAgICB1aW50MzJfdCBwaXhlbF9mb3JtYXQ7Cj4+ICsgICAgdWludDMyX3Qgd2lkdGg7Cj4+ ICsgICAgdWludDMyX3QgaGVpZ2h0Owo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIFJlcXVlc3Qg Y3VycmVudCBjb25maWd1cmF0aW9uIG9mIHRoZSBjYW1lcmE6Cj4+ICsgKiAgICAgICAgIDAgICAg ICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9j dGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAg ICAgICAgICB8IF9PUF9DT05GSUdfR0VUIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQK Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIFNlZSByZXNwb25zZSBmb3JtYXQgZm9y IHRoaXMgcmVxdWVzdC4KPj4gKyAqCj4+ICsgKgo+PiArICogUmVxdWVzdCB0byBzZXQgdGhlIGZy YW1lIHJhdGUgb2YgdGhlIHN0cmVhbToKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAx ICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgX0ZS QU1FX1JBVEVfU0VUfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgZnJhbWVfcmF0ZV9udW1lciAgICAgICAgICAgICAgICAgICAgICAgICB8 IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg IGZyYW1lX3JhdGVfZGVub20gICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2 NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogZnJhbWVfcmF0ZV9udW1lciAtIHVp bnQzMl90LCBudW1lcmF0b3Igb2YgdGhlIGZyYW1lIHJhdGUuCj4+ICsgKiBmcmFtZV9yYXRlX2Rl bm9tIC0gdWludDMyX3QsIGRlbm9taW5hdG9yIG9mIHRoZSBmcmFtZSByYXRlLgo+PiArICoKPj4g KyAqIE5vdGVzOgo+PiArICogIC0gdG8gcXVlcnkgdGhlIGN1cnJlbnQgKGFjdHVhbCkgZnJhbWUg cmF0ZSB1c2UgWEVOQ0FNRVJBX09QX0NPTkZJR19HRVQKPj4gKyAqICAgIHJlcXVlc3QuCj4+ICsg KiAgLSB0aGlzIHJlcXVlc3QgY2FuIGJlIHVzZWQgd2l0aCBjYW1lcmEgYnVmZmVycyBhbGxvY2F0 ZWQsIGJ1dCBzdHJlYW0KPj4gKyAqICAgIHN0b3BwZWQsIGUuZy4gZnJvbnRlbmQgaXMgYWxsb3dl ZCB0byBzdG9wIHRoZSBzdHJlYW0gd2l0aAo+PiArICogICAgWEVOQ0FNRVJBX09QX1NUUkVBTV9T VE9QLCBob2xkIHRoZSBidWZmZXJzIGFsbG9jYXRlZCAoZS5nLiBrZWVwIHRoZQo+PiArICogICAg Y29uZmlndXJhdGlvbiBzZXQgd2l0aCBYRU5DQU1FUkFfT1BfQ09ORklHX1NFVCksIGNoYW5nZSB0 aGUKPj4gKyAqICAgIGZyYW1lIHJhdGUgb2YgdGhlIHN0cmVhbSBhbmQgKHJlKXN0YXJ0IHRoZSBz dHJlYW0gYWdhaW4gd2l0aAo+PiArICogICAgWEVOQ0FNRVJBX09QX1NUUkVBTV9TVEFSVC4KPj4g KyAqICAtIGZyYW1lIHJhdGUgY2Fubm90IGJlIGNoYW5nZWQgZHVyaW5nIGFjdGl2ZSBzdHJlYW1p bmcsIGUuZy4KPj4gKyAqICAgIGFmdGVyIFhFTkNBTUVSQV9PUF9TVFJFQU1fU1RBUlQgYW5kIGJl Zm9yZSBYRU5DQU1FUkFfT1BfU1RSRUFNX1NUT1AKPj4gKyAqICAgIGNvbW1hbmRzLgo+PiArICov Cj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX2ZyYW1lX3JhdGVfcmVxIHsKPj4gKyAgICB1aW50MzJfdCBm cmFtZV9yYXRlX251bWVyOwo+PiArICAgIHVpbnQzMl90IGZyYW1lX3JhdGVfZGVub207Cj4+ICt9 Owo+PiArCj4+ICsvKgo+PiArICogUmVxdWVzdCBjYW1lcmEgYnVmZmVyJ3MgbGF5b3V0Ogo+PiAr ICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAg ICAgICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgaWQgICAgICAgICAgICAgICAgfCBfQlVGX0dFVF9MQVlPVVR8ICAgcmVzZXJ2ZWQgICAg IHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBTZWUgcmVz cG9uc2UgZm9ybWF0IGZvciB0aGlzIHJlcXVlc3QuCj4+ICsgKgo+PiArICoKPj4gKyAqIFJlcXVl c3QgbnVtYmVyIG9mIGJ1ZmZlcnMgdG8gYmUgdXNlZDoKPj4gKyAqICAgICAgICAgMCAgICAgICAg ICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQK Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAg ICAgIHwgX09QX0JVRl9SRVFVRVNUfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAg ICBudW1fYnVmcyAgICB8ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAg ICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+ PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsg KiBudW1fYnVmcyAtIHVpbnQ4X3QsIGRlc2lyZWQgbnVtYmVyIG9mIGJ1ZmZlcnMgdG8gYmUgdXNl ZC4KPj4gKyAqCj4+ICsgKiBJZiBudW1fYnVmcyBpcyBub3QgemVybyB0aGVuIHRoZSBiYWNrZW5k IHZhbGlkYXRlcyB0aGUgcmVxdWVzdGVkIG51bWJlciBvZgo+PiArICogYnVmZmVycyBhbmQgcmVz cG9uZHMgd2l0aCB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgYWxsb3dlZCBmb3IgdGhpcyBmcm9udGVu ZC4KPj4gKyAqIEZyb250ZW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjaGVja2luZyB0aGUgY29ycmVz cG9uZGluZyByZXNwb25zZSBpbiBvcmRlciB0bwo+PiArICogc2VlIGlmIHRoZSB2YWx1ZXMgcmVw b3J0ZWQgYmFjayBieSB0aGUgYmFja2VuZCBkbyBtYXRjaCB0aGUgZGVzaXJlZCBvbmVzCj4+ICsg KiBhbmQgY2FuIGJlIGFjY2VwdGVkLgo+PiArICogRnJvbnRlbmQgaXMgYWxsb3dlZCB0byBzZW5k IG11bHRpcGxlIFhFTkNBTUVSQV9PUF9CVUZfUkVRVUVTVCByZXF1ZXN0cwo+PiArICogYmVmb3Jl IHNlbmRpbmcgWEVOQ0FNRVJBX09QX1NUUkVBTV9TVEFSVCByZXF1ZXN0IHRvIHVwZGF0ZSBvciB0 dW5lIHRoZQo+PiArICogZmluYWwgY29uZmlndXJhdGlvbi4KPj4gKyAqIEZyb250ZW5kIGlzIG5v dCBhbGxvd2VkIHRvIGNoYW5nZSB0aGUgY2FtZXJhIGNvbmZpZ3VyYXRpb24gYWZ0ZXIgdGhpcyBj YWxsCj4+ICsgKiB3aXRoIGEgbm9uLXplcm8gdmFsdWUgb2YgbnVtX2J1ZnMuIElmIGNhbWVyYSBy ZWNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQKPj4gKyAqIHRoZW4gdGhpcyByZXF1ZXN0IG11c3Qg YmUgc2VudCB3aXRoIG51bV9idWZzIHNldCB0byB6ZXJvIGFuZCBhbnkgY3JlYXRlZAo+PiArICog YnVmZmVycyBtdXN0IGJlIGRlc3Ryb3llZCBmaXJzdC4KPj4gKyAqIEZyb250ZW5kIGlzIG5vdCBh bGxvd2VkIHRvIGNoYW5nZSB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgYWZ0ZXIgdGhlCj4+ICsgKiBz dHJlYW1pbmcgaGFzIHN0YXJ0ZWQuCj4+ICsgKgo+PiArICogSWYgbnVtX2J1ZnMgaXMgMCBhbmQg c3RyZWFtaW5nIGhhcyBub3Qgc3RhcnRlZCB5ZXQsIHRoZW4gdGhlIGJhY2tlbmQgd2lsbAo+PiAr ICogZnJlZSBhbGwgcHJldmlvdXNseSBhbGxvY2F0ZWQgYnVmZmVycyAoaWYgYW55KS4KPj4gKyAq IFRyeWluZyB0byBjYWxsIHRoaXMgaWYgc3RyZWFtaW5nIGlzIGluIHByb2dyZXNzIHdpbGwgcmVz dWx0IGluIGFuIGVycm9yLgo+PiArICoKPj4gKyAqIElmIGNhbWVyYSByZWNvbmZpZ3VyYXRpb24g aXMgcmVxdWlyZWQgdGhlbiB0aGUgc3RyZWFtaW5nIG11c3QgYmUgc3RvcHBlZAo+PiArICogYW5k IHRoaXMgcmVxdWVzdCBtdXN0IGJlIHNlbnQgd2l0aCBudW1fYnVmcyBzZXQgdG8gemVybyBhbmQg YW55Cj4+ICsgKiBjcmVhdGVkIGJ1ZmZlcnMgbXVzdCBiZSBkZXN0cm95ZWQuCj4+ICsgKgo+PiAr ICogUGxlYXNlIG5vdGUsIHRoYXQgdGhlIG51bWJlciBvZiBidWZmZXJzIGluIHRoaXMgcmVxdWVz dCBtdXN0IG5vdCBleGNlZWQKPj4gKyAqIHRoZSB2YWx1ZSBjb25maWd1cmVkIGluIFhlblN0b3Jl Lm1heC1idWZmZXJzLgo+PiArICoKPj4gKyAqIFNlZSByZXNwb25zZSBmb3JtYXQgZm9yIHRoaXMg cmVxdWVzdC4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9idWZfcmVxdWVzdCB7Cj4+ICsg ICAgdWludDhfdCBudW1fYnVmczsKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKiBSZXF1ZXN0IGNh bWVyYSBidWZmZXIgY3JlYXRpb246Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAg ICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IF9PUF9C VUZfQ1JFQVRFIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICBpbmRleCAg ICAgfCAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCAx Mgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg cGxhbmVfb2Zmc2V0WzBdICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5lX29mZnNldFsx XSAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZV9vZmZzZXRbMl0gICAgICAgICAgICAg ICAgICAgICAgICAgfCAyNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGxhbmVfb2Zmc2V0WzNdICAgICAgICAgICAgICAgICAgICAgICAgIHwg MjgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg IGdyZWZfZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBBbiBhdHRlbXB0IHRvIGNyZWF0ZSBt dWx0aXBsZSBidWZmZXJzIHdpdGggdGhlIHNhbWUgaW5kZXggaXMgYW4gZXJyb3IuCj4+ICsgKiBp bmRleCBjYW4gYmUgcmUtdXNlZCBhZnRlciBkZXN0cm95aW5nIHRoZSBjb3JyZXNwb25kaW5nIGNh bWVyYSBidWZmZXIuCj4+ICsgKgo+PiArICogaW5kZXggLSB1aW50OF90LCBpbmRleCBvZiB0aGUg YnVmZmVyIHRvIGJlIGNyZWF0ZWQgaW4gdGhlIHJhbmdlCj4+ICsgKiAgIGZyb20gMCB0byB0aGUg bnVtX2J1ZnMgZmllbGQgcmV0dXJuZWQgaW4gcmVzcG9uc2UgZm9yCj4+ICsgKiAgIFhFTkNBTUVS QV9PUF9CVUZfUkVRVUVTVCByZXF1ZXN0Cj4+ICsgKiBwbGFuZV9vZmZzZXQgLSBhcnJheSBvZiB1 aW50MzJfdCwgb2Zmc2V0IG9mIHRoZSBjb3JyZXNwb25kaW5nIHBsYW5lCj4+ICsgKiAgIGluIG9j dGV0cyBmcm9tIHRoZSBidWZmZXIgc3RhcnQuIE51bWJlciBvZiBvZmZzZXRzIHJldHVybmVkIGlz Cj4+ICsgKiAgIGVxdWFsIHRvIHRoZSB2YWx1ZSByZXR1cm5lZCBpbiBYRU5DQU1FUkFfT1BfQlVG X0dFVF9MQVlPVVQubnVtX3BsYW5lcy4KPj4gKyAqIGdyZWZfZGlyZWN0b3J5IC0gZ3JhbnRfcmVm X3QsIGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJzdCBzaGFyZWQgcGFnZQo+PiArICogICBkZXNjcmli aW5nIHNoYXJlZCBidWZmZXIgcmVmZXJlbmNlcy4gVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBpcyBl cXVhbCB0bwo+PiArICogICBYRU5DQU1FUkFfT1BfQlVGX0dFVF9MQVlPVVQuc2l6ZSByZXNwb25z ZS4gQXQgbGVhc3Qgb25lIHBhZ2UgZXhpc3RzLiBJZgo+PiArICogICBzaGFyZWQgYnVmZmVyIHNp emUgZXhjZWVkcyB3aGF0IGNhbiBiZSBhZGRyZXNzZWQgYnkgdGhpcyBzaW5nbGUgcGFnZSwKPj4g KyAqICAgdGhlbiByZWZlcmVuY2UgdG8gdGhlIG5leHQgc2hhcmVkIHBhZ2UgbXVzdCBiZSBzdXBw bGllZCAoc2VlCj4+ICsgKiAgIGdyZWZfZGlyX25leHRfcGFnZSBiZWxvdykuCj4+ICsgKgo+PiAr ICogSWYgWEVOQ0FNRVJBX0ZJRUxEX0JFX0FMTE9DIGNvbmZpZ3VyYXRpb24gZW50cnkgaXMgc2V0 LCB0aGVuIGJhY2tlbmQgd2lsbAo+PiArICogYWxsb2NhdGUgdGhlIGJ1ZmZlciB3aXRoIHRoZSBw YXJhbWV0ZXJzIHByb3ZpZGVkIGluIHRoaXMgcmVxdWVzdCBhbmQgcGFnZQo+PiArICogZGlyZWN0 b3J5IGlzIGhhbmRsZWQgYXMgZm9sbG93czoKPj4gKyAqICAgRnJvbnRlbmQgb24gcmVxdWVzdDoK Pj4gKyAqICAgICAtIGFsbG9jYXRlcyBwYWdlcyBmb3IgdGhlIGRpcmVjdG9yeSAoZ3JlZl9kaXJl Y3RvcnksCj4+ICsgKiAgICAgICBncmVmX2Rpcl9uZXh0X3BhZ2UocykKPj4gKyAqICAgICAtIGdy YW50cyBwZXJtaXNzaW9ucyBmb3IgdGhlIHBhZ2VzIG9mIHRoZSBkaXJlY3RvcnkgdG8gdGhlIGJh Y2tlbmQKPj4gKyAqICAgICAtIHNldHMgZ3JlZl9kaXJfbmV4dF9wYWdlIGZpZWxkcwo+PiArICog ICBCYWNrZW5kIG9uIHJlc3BvbnNlOgo+PiArICogICAgIC0gZ3JhbnRzIHBlcm1pc3Npb25zIGZv ciB0aGUgcGFnZXMgb2YgdGhlIGJ1ZmZlciBhbGxvY2F0ZWQgdG8KPj4gKyAqICAgICAgIHRoZSBm cm9udGVuZAo+PiArICogICAgIC0gZmlsbHMgaW4gcGFnZSBkaXJlY3Rvcnkgd2l0aCBncmFudCBy ZWZlcmVuY2VzCj4+ICsgKiAgICAgICAoZ3JlZltdIGluIHN0cnVjdCB4ZW5jYW1lcmFfcGFnZV9k aXJlY3RvcnkpCj4+ICsgKi8KPj4gK3N0cnVjdCB4ZW5jYW1lcmFfYnVmX2NyZWF0ZV9yZXEgewo+ PiArICAgIHVpbnQ4X3QgaW5kZXg7Cj4+ICsgICAgdWludDhfdCByZXNlcnZlZFszXTsKPj4gKyAg ICB1aW50MzJfdCBwbGFuZV9vZmZzZXRbWEVOQ0FNRVJBX01BWF9QTEFORV07Cj4+ICsgICAgZ3Jh bnRfcmVmX3QgZ3JlZl9kaXJlY3Rvcnk7Cj4+ICt9Owo+PiArCj4+ICsvKgo+PiArICogU2hhcmVk IHBhZ2UgZm9yIFhFTkNBTUVSQV9PUF9CVUZfQ1JFQVRFIGJ1ZmZlciBkZXNjcmlwdG9yIChncmVm X2RpcmVjdG9yeSBpbgo+PiArICogdGhlIHJlcXVlc3QpIGVtcGxveXMgYSBsaXN0IG9mIHBhZ2Vz LCBkZXNjcmliaW5nIGFsbCBwYWdlcyBvZiB0aGUgc2hhcmVkCj4+ICsgKiBkYXRhIGJ1ZmZlcjoK Pj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAg ICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgIGdyZWZfZGlyX25leHRfcGFnZSAgICAgICAgICAgICAgICAgICAg ICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdyZWZbMF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVmW2ldICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCBpKjQrOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3JlZltOIC0gMV0gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE4qNCs4Cj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBncmVmX2Rpcl9uZXh0X3BhZ2UgLSBncmFudF9y ZWZfdCwgcmVmZXJlbmNlIHRvIHRoZSBuZXh0IHBhZ2UgZGVzY3JpYmluZwo+PiArICogICBwYWdl IGRpcmVjdG9yeS4gTXVzdCBiZSAwIGlmIHRoZXJlIGFyZSBubyBtb3JlIHBhZ2VzIGluIHRoZSBs aXN0Lgo+PiArICogZ3JlZltpXSAtIGdyYW50X3JlZl90LCByZWZlcmVuY2UgdG8gYSBzaGFyZWQg cGFnZSBvZiB0aGUgYnVmZmVyCj4+ICsgKiAgIGFsbG9jYXRlZCBhdCBYRU5DQU1FUkFfT1BfQlVG X0NSRUFURS4KPj4gKyAqCj4+ICsgKiBOdW1iZXIgb2YgZ3JhbnRfcmVmX3QgZW50cmllcyBpbiB0 aGUgd2hvbGUgcGFnZSBkaXJlY3RvcnkgaXMgbm90Cj4+ICsgKiBwYXNzZWQsIGJ1dCBpbnN0ZWFk IGNhbiBiZSBjYWxjdWxhdGVkIGFzOgo+PiArICogICBudW1fZ3JlZnNfdG90YWwgPSAoWEVOQ0FN RVJBX09QX0JVRl9SRVFVRVNULnNpemUgKyBYRU5fUEFHRV9TSVpFIC0gMSkgLwo+PiArICogICAg ICAgWEVOX1BBR0VfU0laRQo+PiArICovCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX3BhZ2VfZGlyZWN0 b3J5IHsKPj4gKyAgICBncmFudF9yZWZfdCBncmVmX2Rpcl9uZXh0X3BhZ2U7Cj4+ICsgICAgZ3Jh bnRfcmVmX3QgZ3JlZlsxXTsgLyogVmFyaWFibGUgbGVuZ3RoICovCj4+ICt9Owo+PiArCj4+ICsv Kgo+PiArICogUmVxdWVzdCBidWZmZXIgZGVzdHJ1Y3Rpb24gLSBkZXN0cm95IGEgcHJldmlvdXNs eSBhbGxvY2F0ZWQgY2FtZXJhIGJ1ZmZlcjoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAg ICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwg X09QX0JVRl9ERVNUUk9ZfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgIGlu ZGV4ICAgICB8ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAg ICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBpbmRl eCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBidWZmZXIgdG8gYmUgZGVzdHJveWVkLgo+PiArICoK Pj4gKyAqCj4+ICsgKiBSZXF1ZXN0IHF1ZXVlaW5nIG9mIHRoZSBidWZmZXIgZm9yIGJhY2tlbmQg dXNlOgo+PiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIg ICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8 ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCBfT1BfQlVGX1FVRVVFICB8ICAgcmVz ZXJ2ZWQgICAgIHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgaW5kZXggICAgIHwgICAgICAgICAgICAg ICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIE5vdGVzOgo+PiArICogIC0gZnJvbnRlbmRz IG11c3Qgbm90IGFjY2VzcyB0aGUgYnVmZmVyIGNvbnRlbnQgYWZ0ZXIgdGhpcyByZXF1ZXN0IHVu dGlsCj4+ICsgKiAgICByZXNwb25zZSB0byBYRU5DQU1FUkFfT1BfQlVGX0RFUVVFVUUgaGFzIGJl ZW4gcmVjZWl2ZWQuCj4+ICsgKiAgLSBidWZmZXJzIG11c3QgYmUgcXVldWVkIHRvIHRoZSBiYWNr ZW5kIGJlZm9yZSBkZXN0cm95aW5nIHRoZW0gd2l0aAo+PiArICogICAgWEVOQ0FNRVJBX09QX0JV Rl9ERVNUUk9ZLgo+PiArICoKPj4gKyAqIGluZGV4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIGJ1 ZmZlciB0byBiZSBxdWV1ZWQuCj4+ICsgKgo+PiArICoKPj4gKyAqIFJlcXVlc3QgZGVxdWV1ZWlu ZyBvZiB0aGUgYnVmZmVyIGZvciBmcm9udGVuZCB1c2U6Cj4+ICsgKiAgICAgICAgIDAgICAgICAg ICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAg ICAgICB8X09QX0JVRl9ERVFVRVVFIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwg ICAgICBpbmRleCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAg ICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYK Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiAr ICogTm90ZXM6Cj4+ICsgKiAgLSBmcm9udGVuZCBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgYnVm ZmVyIGNvbnRlbnQgYWZ0ZXIgdGhlIGNvcnJlc3BvbmRpbmcKPj4gKyAqICAgIHJlc3BvbnNlIHRv IHRoaXMgcmVxdWVzdC4KPj4gKyAqCj4+ICsgKiBpbmRleCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRo ZSBidWZmZXIgdG8gYmUgcXVldWVkLgo+PiArICoKPj4gKyAqCj4+ICsgKiBSZXF1ZXN0IGNhbWVy YSBjb250cm9sIGRldGFpbHM6Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAg ICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IF9PUF9DVFJM X0VOVU0gIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwg ICAgICBpbmRleCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAg ICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMgo+ PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsg KiBTZWUgcmVzcG9uc2UgZm9ybWF0IGZvciB0aGlzIHJlcXVlc3QuCj4+ICsgKgo+PiArICogaW5k ZXggLSB1aW50OF90LCBpbmRleCBvZiB0aGUgY29udHJvbCB0byBiZSBxdWVyaWVkLgo+PiArICov Cj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX2luZGV4IHsKPj4gKyAgICB1aW50OF90IGluZGV4Owo+PiAr fTsKPj4gKwo+PiArLyoKPj4gKyAqIFJlcXVlc3QgY2FtZXJhIGNvbnRyb2wgY2hhbmdlOgo+PiAr ICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAg ICAgICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgaWQgICAgICAgICAgICAgICAgfCAgX09QX1NFVF9DVFJMICB8ICAgcmVzZXJ2ZWQgICAg IHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgIHR5cGUgICAgIHwgICAgICAg ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHZhbHVlIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgICAg fCAyMAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB2YWx1ZSBoaWdoIDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg NjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIHR5cGUgLSB1aW50OF90LCB0eXBl IG9mIHRoZSBjb250cm9sLCBvbmUgb2YgdGhlIFhFTkNBTUVSQV9DVFJMX1hYWC4KPj4gKyAqIHZh bHVlIC0gaW50NjRfdCwgbmV3IHZhbHVlIG9mIHRoZSBjb250cm9sLgo+PiArICovCj4+ICtzdHJ1 Y3QgeGVuY2FtZXJhX2N0cmxfdmFsdWUgewo+PiArICAgIHVpbnQ4X3QgdHlwZTsKPj4gKyAgICB1 aW50OF90IHJlc2VydmVkWzddOwo+PiArICAgIGludDY0X3QgdmFsdWU7Cj4+ICt9Owo+PiArCj4+ ICsvKgo+PiArICogUmVxdWVzdCBjYW1lcmEgY29udHJvbCBzdGF0ZToKPj4gKyAqICAgICAgICAg MCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAg ICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAg ICAgICAgICAgICAgIHwgIF9PUF9HRVRfQ1RSTCAgfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICB0eXBlICAgICB8ICAgICAgICAgICAgICAgICAg ICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIFNlZSByZXNwb25zZSBmb3JtYXQgZm9yIHRoaXMgcmVx dWVzdC4KPj4gKyAqCj4+ICsgKiB0eXBlIC0gdWludDhfdCwgdHlwZSBvZiB0aGUgY29udHJvbCwg b25lIG9mIHRoZSBYRU5DQU1FUkFfQ1RSTF9YWFguCj4+ICsgKi8KPj4gK3N0cnVjdCB4ZW5jYW1l cmFfZ2V0X2N0cmxfcmVxIHsKPj4gKyAgICB1aW50OF90IHR5cGU7Cj4+ICt9Owo+PiArCj4+ICsv Kgo+PiArICogUmVxdWVzdCBjYW1lcmEgY2FwdHVyZSBzdHJlYW0gc3RhcnQ6Cj4+ICsgKiAgICAg ICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMg ICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBp ZCAgICAgICAgICAgICAgICB8X09QX1NUUkVBTV9TVEFSVHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqCj4+ICsgKiBSZXF1ZXN0 IGNhbWVyYSBjYXB0dXJlIHN0cmVhbSBzdG9wOgo+PiArICogICAgICAgICAwICAgICAgICAgICAg ICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAg fF9PUF9TVFJFQU1fU1RPUCB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tIFJlc3BvbnNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAr ICoKPj4gKyAqIEFsbCByZXNwb25zZSBwYWNrZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3RoICg2NCBv Y3RldHMpLgo+PiArICoKPj4gKyAqIEFsbCByZXNwb25zZSBwYWNrZXRzIGhhdmUgY29tbW9uIGhl YWRlcjoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAy ICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgfCAgICBy ZXNlcnZlZCAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXR1cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgK Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIGlkIC0gdWludDE2X3QsIGNvcGllZCBm cm9tIHRoZSByZXF1ZXN0Lgo+PiArICogb3BlcmF0aW9uIC0gdWludDhfdCwgWEVOQ0FNRVJBX09Q XyogLSBjb3BpZWQgZnJvbSByZXF1ZXN0Lgo+PiArICogc3RhdHVzIC0gaW50MzJfdCwgcmVzcG9u c2Ugc3RhdHVzLCB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIC1YRU5fRVhYIG9uIGZhaWx1cmUuCj4+ICsg Kgo+PiArICoKPj4gKyAqIENvbmZpZ3VyYXRpb24gcmVzcG9uc2UgLSByZXNwb25zZSBmb3IgWEVO Q0FNRVJBX09QX0NPTkZJR19TRVQsCj4+ICsgKiBYRU5DQU1FUkFfT1BfQ09ORklHX0dFVCBhbmQg WEVOQ0FNRVJBX09QX0NPTkZJR19WQUxJREFURSByZXF1ZXN0czoKPj4gKyAqICAgICAgICAgMCAg ICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAg b2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAg ICAgICAgICAgIHwgX09QX0NPTkZJR19YWFggfCAgICByZXNlcnZlZCAgICB8IDQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbCBmb3JtYXQgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgd2lkdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhlaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzcGFj ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhmZXJfZnVuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAyOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB5Y2Jjcl9lbmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMzIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICBxdWFudGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM2Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsX2FzcF9yYXRp b19udW1lciAgICAgICAgICAgICAgICAgICAgICAgfCA0MAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICBkaXNwbF9hc3BfcmF0aW9fZGVub20gICAgICAg ICAgICAgICAgICAgICAgIHwgNDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgZnJhbWVfcmF0ZV9udW1lciAgICAgICAgICAgICAgICAgICAgICAg ICB8IDQ4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIGZyYW1lX3JhdGVfZGVub20gICAgICAgICAgICAgICAgICAgICAgICAgfCA1Mgo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTYKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogTWVhbmluZyBvZiB0aGUgY29y cmVzcG9uZGluZyB2YWx1ZXMgaW4gdGhpcyByZXNwb25zZSBpcyB0aGUgc2FtZSBhcyBmb3IKPj4g KyAqIFhFTkNBTUVSQV9PUF9DT05GSUdfU0VUIGFuZCBYRU5DQU1FUkFfT1BfRlJBTUVfUkFURV9T RVQgcmVxdWVzdHMuCj4+ICsgKgo+PiArICogY29sb3JzcGFjZSAtIHVpbnQzMl90LCB0aGlzIHN1 cHBsZW1lbnRzIHBpeGVsX2Zvcm1hdCBwYXJhbWV0ZXIsCj4+ICsgKiAgIG9uZSBvZiB0aGUgWEVO Q0FNRVJBX0NPTE9SU1BBQ0VfWFhYLgo+PiArICogeGZlcl9mdW5jIC0gdWludDMyX3QsIHRoaXMg c3VwcGxlbWVudHMgY29sb3JzcGFjZSBwYXJhbWV0ZXIsCj4+ICsgKiAgIG9uZSBvZiB0aGUgWEVO Q0FNRVJBX1hGRVJfRlVOQ19YWFguCj4+ICsgKiB5Y2Jjcl9lbmMgLSB1aW50MzJfdCwgdGhpcyBz dXBwbGVtZW50cyBjb2xvcnNwYWNlIHBhcmFtZXRlciwKPj4gKyAqICAgb25lIG9mIHRoZSBYRU5D QU1FUkFfWUNCQ1JfRU5DX1hYWC4gUGxlYXNlIG5vdGUsIHRoYXQgeWNiY3JfZW5jIGlzIG9ubHkK Pj4gKyAqICAgdmFsaWQgZm9yIFlDYkNyIHBpeGVsZm9ybWF0cyBhbmQgc2hvdWxkIGJlIGlnbm9y ZWQgb3RoZXJ3aXNlLgo+PiArICogcXVhbnRpemF0aW9uIC0gdWludDMyX3QsIHRoaXMgc3VwcGxl bWVudHMgY29sb3JzcGFjZSBwYXJhbWV0ZXIsCj4+ICsgKiAgIG9uZSBvZiB0aGUgWEVOQ0FNRVJB X1FVQU5USVpBVElPTl9YWFguCj4+ICsgKiBkaXNwbF9hc3BfcmF0aW9fbnVtZXIgLSB1aW50MzJf dCwgbnVtZXJhdG9yIG9mIHRoZSBkaXNwbGF5IGFzcGVjdCByYXRpby4KPj4gKyAqIGRpc3BsX2Fz cF9yYXRpb19kZW5vbSAtIHVpbnQzMl90LCBkZW5vbWluYXRvciBvZiB0aGUgZGlzcGxheSBhc3Bl Y3QgcmF0aW8uCj4+ICsgKi8KPj4gK3N0cnVjdCB4ZW5jYW1lcmFfY29uZmlnX3Jlc3Agewo+PiAr ICAgIHVpbnQzMl90IHBpeGVsX2Zvcm1hdDsKPj4gKyAgICB1aW50MzJfdCB3aWR0aDsKPj4gKyAg ICB1aW50MzJfdCBoZWlnaHQ7Cj4+ICsgICAgdWludDMyX3QgY29sb3JzcGFjZTsKPj4gKyAgICB1 aW50MzJfdCB4ZmVyX2Z1bmM7Cj4+ICsgICAgdWludDMyX3QgeWNiY3JfZW5jOwo+PiArICAgIHVp bnQzMl90IHF1YW50aXphdGlvbjsKPj4gKyAgICB1aW50MzJfdCBkaXNwbF9hc3BfcmF0aW9fbnVt ZXI7Cj4+ICsgICAgdWludDMyX3QgZGlzcGxfYXNwX3JhdGlvX2Rlbm9tOwo+PiArICAgIHVpbnQz Ml90IGZyYW1lX3JhdGVfbnVtZXI7Cj4+ICsgICAgdWludDMyX3QgZnJhbWVfcmF0ZV9kZW5vbTsK Pj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKiBSZXF1ZXN0IGJ1ZmZlciByZXNwb25zZSAtIHJlc3Bv bnNlIGZvciBYRU5DQU1FUkFfT1BfQlVGX0dFVF9MQVlPVVQKPj4gKyAqIHJlcXVlc3Q6Cj4+ICsg KiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAg ICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICBpZCAgICAgICAgICAgICAgICB8X0JVRl9HRVRfTEFZT1VUIHwgICAgcmVzZXJ2ZWQgICAg fCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICBudW1fcGxhbmVzICAgfCAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBsYW5lX3NpemVbMF0gICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDIwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICBwbGFuZV9zaXplWzFdICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmVfc2l6ZVsy XSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5lX3NpemVbM10gICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDMyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHBsYW5lX3N0cmlkZVswXSAgICAgICAgICAgICAgICAgICAgICAgICAg fCAzNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICBwbGFuZV9zdHJpZGVbMV0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDAKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmVfc3RyaWRl WzJdICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5lX3N0cmlkZVszXSAgICAgICAgICAg ICAgICAgICAgICAgICAgfCA0OAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBudW1fcGxhbmVzIC0gdWludDhfdCwgbnVtYmVyIG9mIHBs YW5lcyBvZiB0aGUgYnVmZmVyLgo+PiArICogc2l6ZSAtIHVpbnQzMl90LCBvdmVyYWxsIHNpemUg b2YgdGhlIGJ1ZmZlciBpbmNsdWRpbmcgc2l6ZXMgb2YgdGhlCj4+ICsgKiAgIGluZGl2aWR1YWwg cGxhbmVzIGFuZCBwYWRkaW5nIGlmIGFwcGxpY2FibGUuCj4+ICsgKiBwbGFuZV9zaXplIC0gYXJy YXkgb2YgdWludDMyX3QsIHNpemUgaW4gb2N0ZXRzIG9mIHRoZSBjb3JyZXNwb25kaW5nIHBsYW5l Cj4+ICsgKiAgIGluY2x1ZGluZyBwYWRkaW5nLgo+PiArICogcGxhbmVfc3RyaWRlIC0gYXJyYXkg b2YgdWludDMyX3QsIHNpemUgaW4gb2N0ZXRzIG9jY3VwaWVkIGJ5IHRoZQo+PiArICogICBjb3Jy ZXNwb25kaW5nIHNpbmdsZSBpbWFnZSBsaW5lIGluY2x1ZGluZyBwYWRkaW5nIGlmIGFwcGxpY2Fi bGUuCj4+ICsgKgo+PiArICogTm90ZSEgVGhlIHNpemVzIGFuZCBzdHJpZGVzIGluIHRoaXMgcmVz cG9uc2UgYXBwbHkgdG8gYWxsIGJ1ZmZlcnMgY3JlYXRlZAo+PiArICogd2l0aCBYRU5DQU1FUkFf T1BfQlVGX0NSRUFURSBjb21tYW5kLCBidXQgaW5kaXZpZHVhbCBidWZmZXJzIG1heSBoYXZlCj4+ ICsgKiBkaWZmZXJlbnQgcGxhbmUgb2Zmc2V0cywgc2VlIFhFTkNBTUVSQV9PUF9CVUZfUkVRVUVT VC5wbGFuZV9vZmZzZXQuCj4+ICsgKi8KPj4gK3N0cnVjdCB4ZW5jYW1lcmFfYnVmX2dldF9sYXlv dXRfcmVzcCB7Cj4+ICsgICAgdWludDhfdCBudW1fcGxhbmVzOwo+PiArICAgIHVpbnQ4X3QgcmVz ZXJ2ZWRbM107Cj4+ICsgICAgdWludDMyX3Qgc2l6ZTsKPj4gKyAgICB1aW50MzJfdCBwbGFuZV9z aXplW1hFTkNBTUVSQV9NQVhfUExBTkVdOwo+PiArICAgIHVpbnQzMl90IHBsYW5lX3N0cmlkZVtY RU5DQU1FUkFfTUFYX1BMQU5FXTsKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKiBSZXF1ZXN0IGJ1 ZmZlciByZXNwb25zZSAtIHJlc3BvbnNlIGZvciBYRU5DQU1FUkFfT1BfQlVGX1JFUVVFU1QKPj4g KyAqIHJlcXVlc3Q6Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAg ICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK Pj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8X09QX0JVRl9SRVFVRVNU IHwgICAgcmVzZXJ2ZWQgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICBudW1fYnVmZmVycyAgfCAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogbnVtX2J1ZmZlcnMgLSB1aW50 OF90LCBudW1iZXIgb2YgYnVmZmVycyB0byBiZSB1c2VkLgo+PiArICoKPj4gKyAqCj4+ICsgKiBD b250cm9sIGVudW1lcmF0ZSByZXNwb25zZSAtIHJlc3BvbnNlIGZvciBYRU5DQU1FUkFfT1BfQ1RS TF9FTlVNOgo+PiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAg IDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCBfT1BfQ1RSTF9FTlVNICB8ICAg IHJlc2VydmVkICAgIHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0YXR1cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg OAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICBpbmRleCAgICAgIHwgICAgICB0eXBl ICAgICAgfCAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiBsb3cgMzItYml0cyAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAyMAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICBtaW4gaGlnaCAzMi1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgIHwg MjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg bWF4IGxvdyAzMi1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgIG1heCBoaWdoIDMyLWJp dHMgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAgbG93IDMyLWJpdHMgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMzYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAg ICAgICAgICAgICAgICBzdGVwIGhpZ2ggMzItYml0cyAgICAgICAgICAgICAgICAgICAgICAgICB8 IDQwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICBk ZWZfdmFsIGxvdyAzMi1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgfCA0NAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgZGVmX3ZhbCBoaWdoIDMy LWJpdHMgICAgICAgICAgICAgICAgICAgICAgIHwgNDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDUyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv fAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICoKPj4gKyAqIGluZGV4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIGNhbWVy YSBjb250cm9sIGluIHJlc3BvbnNlLgo+PiArICogdHlwZSAtIHVpbnQ4X3QsIHR5cGUgb2YgdGhl IGNvbnRyb2wsIG9uZSBvZiB0aGUgWEVOQ0FNRVJBX0NUUkxfWFhYLgo+PiArICogZmxhZ3MgLSB1 aW50MzJfdCwgZmxhZ3Mgb2YgdGhlIGNvbnRyb2wsIG9uZSBvZiB0aGUgWEVOQ0FNRVJBX0NUUkxf RkxHX1hYWC4KPj4gKyAqIG1pbiAtIGludDY0X3QsIG1pbmltdW0gdmFsdWUgb2YgdGhlIGNvbnRy b2wuCj4+ICsgKiBtYXggLSBpbnQ2NF90LCBtYXhpbXVtIHZhbHVlIG9mIHRoZSBjb250cm9sLgo+ PiArICogc3RlcCAtIGludDY0X3QsIG1pbmltdW0gc2l6ZSBpbiB3aGljaCBjb250cm9sIHZhbHVl IGNhbiBiZSBjaGFuZ2VkLgo+PiArICogZGVmX3ZhbCAtIGludDY0X3QsIGRlZmF1bHQgdmFsdWUg b2YgdGhlIGNvbnRyb2wuCj4+ICsgKi8KPj4gK3N0cnVjdCB4ZW5jYW1lcmFfY3RybF9lbnVtX3Jl c3Agewo+PiArICAgIHVpbnQ4X3QgaW5kZXg7Cj4+ICsgICAgdWludDhfdCB0eXBlOwo+PiArICAg IHVpbnQ4X3QgcmVzZXJ2ZWRbMl07Cj4+ICsgICAgdWludDMyX3QgZmxhZ3M7Cj4+ICsgICAgaW50 NjRfdCBtaW47Cj4+ICsgICAgaW50NjRfdCBtYXg7Cj4+ICsgICAgaW50NjRfdCBzdGVwOwo+PiAr ICAgIGludDY0X3QgZGVmX3ZhbDsKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKiBHZXQgY29udHJv bCByZXNwb25zZSAtIHJlc3BvbnNlIGZvciBYRU5DQU1FUkFfT1BfQ1RSTF9HRVQ6Cj4+ICsgKiAg ICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAg IDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAg ICBpZCAgICAgICAgICAgICAgICB8IF9PUF9DVFJMX0dFVCAgIHwgICAgcmVzZXJ2ZWQgICAgfCA0 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPj4gKyAqIHwgICAgICAgdHlwZSAgICAgfCAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIw Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHZh bHVlIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNAo+PiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBoaWdoIDMyLWJp dCAgICAgICAgICAgICAgICAgICAgICAgIHwgMjgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDMyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICoKPj4gKyAqIHR5cGUgLSB1aW50OF90LCB0eXBlIG9mIHRoZSBjb250cm9sLCBv bmUgb2YgdGhlIFhFTkNBTUVSQV9DVFJMX1hYWC4KPj4gKyAqIHZhbHVlIC0gaW50NjRfdCwgbmV3 IHZhbHVlIG9mIHRoZSBjb250cm9sLgo+PiArICovCj4+ICsKPj4gKy8qCj4+ICsgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEV2ZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICogRXZlbnRzIGFyZSBzZW50IHZpYSBhIHNoYXJlZCBw YWdlIGFsbG9jYXRlZCBieSB0aGUgZnJvbnQgYW5kIHByb3BhZ2F0ZWQgYnkKPj4gKyAqICAgZXZ0 LWV2ZW50LWNoYW5uZWwvZXZ0LXJpbmctcmVmIFhlblN0b3JlIGVudHJpZXMuCj4+ICsgKgo+PiAr ICogQWxsIGV2ZW50IHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0IG9jdGV0cykuCj4+ ICsgKiBBbGwgZXZlbnQgcGFja2V0cyBoYXZlIGNvbW1vbiBoZWFkZXI6Cj4+ICsgKiAgICAgICAg IDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAg ICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAg ICAgICAgICAgICAgICB8ICAgICAgdHlwZSAgICAgIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK Pj4gKyAqCj4+ICsgKiBpZCAtIHVpbnQxNl90LCBldmVudCBpZCwgbWF5IGJlIHVzZWQgYnkgZnJv bnQuCj4+ICsgKiB0eXBlIC0gdWludDhfdCwgdHlwZSBvZiB0aGUgZXZlbnQuCj4+ICsgKgo+PiAr ICoKPj4gKyAqIEZyYW1lIGNhcHR1cmVkIGV2ZW50IC0gZXZlbnQgZnJvbSBiYWNrIHRvIGZyb250 IHdoZW4gYSBuZXcgY2FwdHVyZWQKPj4gKyAqIGZyYW1lIGlzIGF2YWlsYWJsZToKPj4gKyAqICAg ICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAg MyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAg IGlkICAgICAgICAgICAgICAgIHxfRVZUX0ZSQU1FX0FWQUlMfCAgIHJlc2VydmVkICAgICB8IDQK Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICogfCAgICAgIGluZGV4ICAgICB8ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2 ZWQgICAgICAgICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkX3N6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VxX251bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAK Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIGluZGV4IC0gdWlu dDhfdCwgaW5kZXggb2YgdGhlIGJ1ZmZlciB0aGF0IGNvbnRhaW5zIG5ldyBjYXB0dXJlZCBmcmFt ZSwKPj4gKyAqICAgc2VlIFhFTkNBTUVSQV9PUF9CVUZfQ1JFQVRFIGRlc2NyaXB0aW9uIG9uIHRo ZSByYW5nZQo+PiArICogdXNlZF9zeiAtIHVpbnQzMl90LCBudW1iZXIgb2Ygb2N0ZXRzIHRoaXMg ZnJhbWUgaGFzLiBUaGlzIGNhbiBiZSBsZXNzCj4+ICsgKiB0aGFuIHRoZSBYRU5DQU1FUkFfT1Bf QlVGX1JFUVVFU1Quc2l6ZSAocmVzcG9uc2UpIGZvciBjb21wcmVzc2VkIGZvcm1hdHMuCj4+ICsg KiBzZXFfbnVtIC0gdWludDMyX3QsIHNlcXVlbnRpYWwgbnVtYmVyIG9mIHRoZSBmcmFtZS4gTXVz dCBiZQo+PiArICogICBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcuIElmIHNraXBzIGFyZSBkZXRl Y3RlZCBpbiBzZXFfbnVtIHRoZW4gdGhhdAo+PiArICogICBtZWFucyB0aGF0IHRoZSBmcmFtZXMg aW4tYmV0d2VlbiB3ZXJlIGRyb3BwZWQuIE5vdGUgaG93ZXZlciB0aGF0IG5vdAo+PiArICogICBh bGwgdmlkZW8gY2FwdHVyZSBoYXJkd2FyZSBpcyBjYXBhYmxlIG9mIGRldGVjdGluZyBkcm9wcGVk IGZyYW1lcy4KPj4gKyAqICAgSW4gdGhhdCBjYXNlIHRoZXJlIHdpbGwgYmUgbm8gc2tpcHMgaW4g dGhlIHNlcXVlbmNlIGNvdW50ZXIuCj4+ICsgKi8KPj4gK3N0cnVjdCB4ZW5jYW1lcmFfZnJhbWVf YXZhaWxfZXZ0IHsKPj4gKyAgICB1aW50OF90IGluZGV4Owo+PiArICAgIHVpbnQ4X3QgcmVzZXJ2 ZWRbM107Cj4+ICsgICAgdWludDMyX3QgdXNlZF9zejsKPj4gKyAgICB1aW50MzJfdCBzZXFfbnVt Owo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIENvbnRyb2wgY2hhbmdlIGV2ZW50LSBldmVudCBm cm9tIGJhY2sgdG8gZnJvbnQgd2hlbiBjYW1lcmEgY29udHJvbAo+PiArICogaGFzIGNoYW5nZWQ6 Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAg ICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAg ICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8X0VWVF9DVFJMX0NIQU5HRXwgICByZXNlcnZl ZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgdHlwZSAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbG93IDMyLWJpdCAgICAgICAgICAgICAgICAgICAg ICAgICB8IDIwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHZhbHVlIGhpZ2ggMzItYml0ICAgICAgICAgICAgICAgICAgICAgICAgfCAyNAo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNl cnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjgKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogdHlwZSAtIHVpbnQ4X3Qs IHR5cGUgb2YgdGhlIGNvbnRyb2wsIG9uZSBvZiB0aGUgWEVOQ0FNRVJBX0NUUkxfWFhYLgo+PiAr ICogdmFsdWUgLSBpbnQ2NF90LCBuZXcgdmFsdWUgb2YgdGhlIGNvbnRyb2wuCj4+ICsgKgo+PiAr ICogTm90ZXM6Cj4+ICsgKiAgLSB0aGlzIGV2ZW50IGlzIG5vdCBzZW50IGZvciB3cml0ZS1vbmx5 IGNvbnRyb2xzCj4+ICsgKiAgLSB0aGlzIGV2ZW50IGlzIG5vdCBzZW50IHRvIHRoZSBvcmlnaW5h dG9yIG9mIHRoZSBjb250cm9sIGNoYW5nZQo+PiArICogIC0gdGhpcyBldmVudCBpcyBub3Qgc2Vu dCB3aGVuIGZyb250ZW5kIGZpcnN0IGNvbm5lY3RzLCBlLmcuIGluaXRpYWwKPj4gKyAqICAgIGNv bnRyb2wgc3RhdGUgbXVzdCBiZSBleHBsaWNpdGx5IHF1ZXJpZWQKPj4gKyAqLwo+PiArCj4+ICtz dHJ1Y3QgeGVuY2FtZXJhX3JlcSB7Cj4+ICsgICAgdWludDE2X3QgaWQ7Cj4+ICsgICAgdWludDhf dCBvcGVyYXRpb247Cj4+ICsgICAgdWludDhfdCByZXNlcnZlZFs1XTsKPj4gKyAgICB1bmlvbiB7 Cj4+ICsgICAgICAgIHN0cnVjdCB4ZW5jYW1lcmFfY29uZmlnX3JlcSBjb25maWc7Cj4+ICsgICAg ICAgIHN0cnVjdCB4ZW5jYW1lcmFfZnJhbWVfcmF0ZV9yZXEgZnJhbWVfcmF0ZTsKPj4gKyAgICAg ICAgc3RydWN0IHhlbmNhbWVyYV9idWZfcmVxdWVzdCBidWZfcmVxdWVzdDsKPj4gKyAgICAgICAg c3RydWN0IHhlbmNhbWVyYV9idWZfY3JlYXRlX3JlcSBidWZfY3JlYXRlOwo+PiArICAgICAgICBz dHJ1Y3QgeGVuY2FtZXJhX2luZGV4IGluZGV4Owo+PiArICAgICAgICBzdHJ1Y3QgeGVuY2FtZXJh X2N0cmxfdmFsdWUgY3RybF92YWx1ZTsKPj4gKyAgICAgICAgc3RydWN0IHhlbmNhbWVyYV9nZXRf Y3RybF9yZXEgZ2V0X2N0cmw7Cj4+ICsgICAgICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNTZdOwo+PiAr ICAgIH0gcmVxOwo+PiArfTsKPj4gKwo+PiArc3RydWN0IHhlbmNhbWVyYV9yZXNwIHsKPj4gKyAg ICB1aW50MTZfdCBpZDsKPj4gKyAgICB1aW50OF90IG9wZXJhdGlvbjsKPj4gKyAgICB1aW50OF90 IHJlc2VydmVkOwo+PiArICAgIGludDMyX3Qgc3RhdHVzOwo+PiArICAgIHVuaW9uIHsKPj4gKyAg ICAgICAgc3RydWN0IHhlbmNhbWVyYV9jb25maWdfcmVzcCBjb25maWc7Cj4+ICsgICAgICAgIHN0 cnVjdCB4ZW5jYW1lcmFfYnVmX2dldF9sYXlvdXRfcmVzcCBidWZfbGF5b3V0Owo+PiArICAgICAg ICBzdHJ1Y3QgeGVuY2FtZXJhX2J1Zl9yZXF1ZXN0IGJ1Zl9yZXF1ZXN0Owo+PiArICAgICAgICBz dHJ1Y3QgeGVuY2FtZXJhX2N0cmxfZW51bV9yZXNwIGN0cmxfZW51bTsKPj4gKyAgICAgICAgc3Ry dWN0IHhlbmNhbWVyYV9jdHJsX3ZhbHVlIGN0cmxfdmFsdWU7Cj4+ICsgICAgICAgIHVpbnQ4X3Qg cmVzZXJ2ZWQxWzU2XTsKPj4gKyAgICB9IHJlc3A7Cj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3QgeGVu Y2FtZXJhX2V2dCB7Cj4+ICsgICAgdWludDE2X3QgaWQ7Cj4+ICsgICAgdWludDhfdCB0eXBlOwo+ PiArICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNV07Cj4+ICsgICAgdW5pb24gewo+PiArICAgICAgICBz dHJ1Y3QgeGVuY2FtZXJhX2ZyYW1lX2F2YWlsX2V2dCBmcmFtZV9hdmFpbDsKPj4gKyAgICAgICAg c3RydWN0IHhlbmNhbWVyYV9jdHJsX3ZhbHVlIGN0cmxfdmFsdWU7Cj4+ICsgICAgICAgIHVpbnQ4 X3QgcmVzZXJ2ZWRbNTZdOwo+PiArICAgIH0gZXZ0Owo+PiArfTsKPj4gKwo+PiArREVGSU5FX1JJ TkdfVFlQRVMoeGVuX2NhbWVyYWlmLCBzdHJ1Y3QgeGVuY2FtZXJhX3JlcSwgc3RydWN0IHhlbmNh bWVyYV9yZXNwKTsKPj4gKwo+PiArLyoKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAq ICAgICAgICAgICAgICAgICAgICAgICAgQmFjayB0byBmcm9udCBldmVudHMgZGVsaXZlcnkKPj4g KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqIEluIG9yZGVyIHRvIGRlbGl2ZXIgYXN5bmNo cm9ub3VzIGV2ZW50cyBmcm9tIGJhY2sgdG8gZnJvbnQgYSBzaGFyZWQgcGFnZSBpcwo+PiArICog YWxsb2NhdGVkIGJ5IGZyb250IGFuZCBpdHMgZ3JhbnRlZCByZWZlcmVuY2UgcHJvcGFnYXRlZCB0 byBiYWNrIHZpYQo+PiArICogWGVuU3RvcmUgZW50cmllcyAoZXZ0LXJpbmctcmVmL2V2dC1ldmVu dC1jaGFubmVsKS4KPj4gKyAqIFRoaXMgcGFnZSBoYXMgYSBjb21tb24gaGVhZGVyIHVzZWQgYnkg Ym90aCBmcm9udCBhbmQgYmFjayB0byBzeW5jaHJvbml6ZQo+PiArICogYWNjZXNzIGFuZCBjb250 cm9sIGV2ZW50J3MgcmluZyBidWZmZXIsIHdoaWxlIGJhY2sgYmVpbmcgYSBwcm9kdWNlciBvZiB0 aGUKPj4gKyAqIGV2ZW50cyBhbmQgZnJvbnQgYmVpbmcgYSBjb25zdW1lci4gVGhlIHJlc3Qgb2Yg dGhlIHBhZ2UgYWZ0ZXIgdGhlIGhlYWRlcgo+PiArICogaXMgdXNlZCBmb3IgZXZlbnQgcGFja2V0 cy4KPj4gKyAqCj4+ICsgKiBVcG9uIHJlY2VwdGlvbiBvZiBhbiBldmVudChzKSBmcm9udCBtYXkg Y29uZmlybSBpdHMgcmVjZXB0aW9uCj4+ICsgKiBmb3IgZWl0aGVyIGVhY2ggZXZlbnQsIGdyb3Vw IG9mIGV2ZW50cyBvciBub25lLgo+PiArICovCj4+ICsKPj4gK3N0cnVjdCB4ZW5jYW1lcmFfZXZl bnRfcGFnZSB7Cj4+ICsgICAgdWludDMyX3QgaW5fY29uczsKPj4gKyAgICB1aW50MzJfdCBpbl9w cm9kOwo+PiArICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNTZdOwo+PiArfTsKPj4gKwo+PiArI2RlZmlu ZSBYRU5DQU1FUkFfRVZFTlRfUEFHRV9TSVpFIDQwOTYKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0lO X1JJTkdfT0ZGUyAoc2l6ZW9mKHN0cnVjdCB4ZW5jYW1lcmFfZXZlbnRfcGFnZSkpCj4+ICsjZGVm aW5lIFhFTkNBTUVSQV9JTl9SSU5HX1NJWkUgKFhFTkNBTUVSQV9FVkVOVF9QQUdFX1NJWkUgLSBY RU5DQU1FUkFfSU5fUklOR19PRkZTKQo+PiArI2RlZmluZSBYRU5DQU1FUkFfSU5fUklOR19MRU4g KFhFTkNBTUVSQV9JTl9SSU5HX1NJWkUgLyBzaXplb2Yoc3RydWN0IHhlbmNhbWVyYV9ldnQpKQo+ PiArI2RlZmluZSBYRU5DQU1FUkFfSU5fUklORyhwYWdlKSBcCj4+ICsgICAgKChzdHJ1Y3QgeGVu Y2FtZXJhX2V2dCAqKSgoY2hhciAqKShwYWdlKSArIFhFTkNBTUVSQV9JTl9SSU5HX09GRlMpKQo+ PiArI2RlZmluZSBYRU5DQU1FUkFfSU5fUklOR19SRUYocGFnZSwgaWR4KSBcCj4+ICsgICAgKFhF TkNBTUVSQV9JTl9SSU5HKChwYWdlKSlbKGlkeCkgJSBYRU5DQU1FUkFfSU5fUklOR19MRU5dKQo+ PiArCj4+ICsjZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX0NBTUVSQUlGX0hfXyAqLwo+PiArCj4+ ICsvKgo+PiArICogTG9jYWwgdmFyaWFibGVzOgo+PiArICogbW9kZTogQwo+PiArICogYy1maWxl LXN0eWxlOiAiQlNEIgo+PiArICogYy1iYXNpYy1vZmZzZXQ6IDQKPj4gKyAqIHRhYi13aWR0aDog NAo+PiArICogaW5kZW50LXRhYnMtbW9kZTogbmlsCj4+ICsgKiBFbmQ6Cj4+ICsgKi8KPj4KCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs