From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v3] displif: add ABI for para-virtual display Date: Wed, 15 Feb 2017 10:45:45 -0500 Message-ID: <20170215154545.GE20190@char.us.oracle.com> References: <1486711798-32322-1-git-send-email-andr2000@gmail.com> <1486711798-32322-2-git-send-email-andr2000@gmail.com> <20170210212747.GA1890@char.us.ORACLE.com> <20170214202741.GA16871@char.us.ORACLE.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ce1mJ-0002Dn-Nu for xen-devel@lists.xenproject.org; Wed, 15 Feb 2017 15:46:00 +0000 Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Oleksandr Andrushchenko Cc: Oleksandr Andrushchenko , vlad.babchuk@gmail.com, andrii.anisov@gmail.com, olekstysh@gmail.com, al1img@gmail.com, Oleksandr Grytsov , xen-devel@lists.xenproject.org, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBGZWIgMTUsIDIwMTcgYXQgMDk6MzM6NDFBTSArMDIwMCwgT2xla3NhbmRyIEFuZHJ1 c2hjaGVua28gd3JvdGU6Cj4gT24gMDIvMTQvMjAxNyAxMDoyNyBQTSwgS29ucmFkIFJ6ZXN6dXRl ayBXaWxrIHdyb3RlOgo+ID4gT24gTW9uLCBGZWIgMTMsIDIwMTcgYXQgMTA6NTA6NDlBTSArMDIw MCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6Cj4gPiA+IEhpLCBLb25yYWQhCj4gPiA+ IAo+ID4gPiBUaGFuayB5b3UgZm9yIHJldmlld2luZyB0aGlzLgo+ID4gPiAKPiA+ID4gT24gMDIv MTAvMjAxNyAxMToyNyBQTSwgS29ucmFkIFJ6ZXN6dXRlayBXaWxrIHdyb3RlOgo+ID4gPiA+IE9u IEZyaSwgRmViIDEwLCAyMDE3IGF0IDA5OjI5OjU4QU0gKzAyMDAsIE9sZWtzYW5kciBBbmRydXNo Y2hlbmtvIHdyb3RlOgo+ID4gPiA+ID4gRnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9s ZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBUaGlz IGlzIHRoZSBBQkkgZm9yIHRoZSB0d28gaGFsdmVzIG9mIGEgcGFyYS12aXJ0dWFsaXplZAo+ID4g PiA+ID4gZGlzcGxheSBkcml2ZXIuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFRoaXMgcHJvdG9jb2wg YWltcyB0byBwcm92aWRlIGEgdW5pZmllZCBwcm90b2NvbCB3aGljaCBmaXRzIG1vcmUKPiA+ID4g PiA+IHNvcGhpc3RpY2F0ZWQgdXNlLWNhc2VzIHRoYW4gYSBmcmFtZWJ1ZmZlciBkZXZpY2UgY2Fu IGhhbmRsZS4gQXQgdGhlCj4gPiA+ID4gPiBtb21lbnQgYmFzaWMgZnVuY3Rpb25hbGl0eSBpcyBz dXBwb3J0ZWQgd2l0aCB0aGUgaW50ZW50aW9uIHRvIGV4dGVuZDoKPiA+ID4gPiA+ICAgICBvIG11 bHRpcGxlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZC9kZXN0cm95ZWQgZnJhbWVidWZmZXJzCj4gPiA+ ID4gPiAgICAgbyBidWZmZXJzIG9mIGFyYml0cmFyeSBzaXplcwo+ID4gPiA+ID4gICAgIG8gYmV0 dGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbmNsdWRpbmcgbXVsdGlwbGUgZGlzcGxheSBzdXBw b3J0Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IE5vdGU6IGV4aXN0aW5nIGZiaWYgY2FuIGJlIHVzZWQg dG9nZXRoZXIgd2l0aCBkaXNwbGlmIHJ1bm5pbmcgYXQgdGhlCj4gPiA+ID4gPiBzYW1lIHRpbWUs IGUuZy4gb24gTGludXggb25lIHByb3ZpZGVzIGZyYW1lYnVmZmVyIGFuZCBhbm90aGVyIERSTS9L TVMKPiA+ID4gPiA+IAo+ID4gPiA+ID4gRnV0dXJlIGV4dGVuc2lvbnMgdG8gdGhlIGV4aXN0aW5n IHByb3RvY29sIG1heSBpbmNsdWRlOgo+ID4gPiA+ID4gICAgIG8gYWxsb3cgZGlzcGxheS9jb25u ZWN0b3IgY2xvbmluZwo+ID4gPiA+ID4gICAgIG8gYWxsb3cgYWxsb2NhdGluZyBvYmplY3RzIG90 aGVyIHRoYW4gZGlzcGxheSBidWZmZXJzCj4gPiA+ID4gPiAgICAgbyBhZGQgcGxhbmVzL292ZXJs YXlzIHN1cHBvcnQKPiA+ID4gPiA+ICAgICBvIHN1cHBvcnQgc2NhbGluZwo+ID4gPiA+ID4gICAg IG8gc3VwcG9ydCByb3RhdGlvbgo+ID4gPiA+ID4gCj4gPiA+ID4gPiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gPiA+ID4gUmF0aW9uYWxlIGZv ciBpbnRyb2R1Y2luZyB0aGlzIHByb3RvY29sIGluc3RlYWQgb2YKPiA+ID4gPiA+IHVzaW5nIHRo ZSBleGlzdGluZyBmYmlmOgo+ID4gPiA+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KPiA+ID4gPiA+IAo+ID4gPiA+ID4gMS4gSW4vb3V0IGV2ZW50 IHNpemVzCj4gPiA+ID4gPiAgICAgbyBmYmlmIC0gNDAgb2N0ZXRzCj4gPiA+ID4gPiAgICAgbyBk aXNwbGlmIC0gNDAgb2N0ZXRzCj4gPiA+ID4gPiBUaGlzIGlzIG9ubHkgdGhlIGluaXRpYWwgdmVy c2lvbiBvZiB0aGUgZGlzcGxpZiBwcm90b2NvbAo+ID4gPiA+ID4gd2hpY2ggbWVhbnMgdGhhdCB0 aGVyZSBjb3VsZCBiZSByZXF1ZXN0cyB3aGljaCB3aWxsIG5vdCBmaXQKPiA+ID4gPiA+IChXUlQg aW50cm9kdWNpbmcgc29tZSBHUFUgcmVsYXRlZCBmdW5jdGlvbmFsaXR5Cj4gPiA+ID4gPiBsYXRl ciBvbikuIEluIHRoYXQgY2FzZSB3ZSBjYW5ub3QgYWx0ZXIgZmJpZiBzaXplcyBhcyB3ZSBuZWVk IHRvCj4gPiA+ID4gPiBiZSBiYWNrd2FyZCBjb21wYXRpYmxlIGFuIHdpbGwgYmUgZm9yY2VkIHRv IGhhbmRsZSB0aG9zZQo+ID4gPiA+ID4gYXBhcnQgb2YgZmJpZi4KPiA+ID4gPiA+IAo+ID4gPiA+ ID4gMi4gU2hhcmVkIHBhZ2UKPiA+ID4gPiA+IERpc3BsaWYgZG9lc24ndCB1c2UgYW55dGhpbmcg bGlrZSBzdHJ1Y3QgeGVuZmJfcGFnZSwgYnV0Cj4gPiA+ID4gPiBERUZJTkVfUklOR19UWVBFUyh4 ZW5fZGlzcGxpZiwgc3RydWN0IHhlbmRpc3BsX3JlcSwgc3RydWN0Cj4gPiA+ID4gPiB4ZW5kaXNw bF9yZXNwKSB3aGljaCBpcyBhIGJldHRlciBhbmQgbW9yZSBjb21tb24gd2F5Lgo+ID4gPiA+ID4g T3V0cHV0IGV2ZW50cyB1c2UgYSBzaGFyZWQgcGFnZSB3aGljaCBvbmx5IGhhcyBpbl9jb25zIGFu ZCBpbl9wcm9kCj4gPiA+ID4gPiBhbmQgYWxsIHRoZSByZXN0IGlzIHVzZWQgZm9yIGluY29taW5n IGV2ZW50cy4gSGVyZSBzdHJ1Y3QgeGVuZmJfcGFnZQo+ID4gPiA+ID4gY291bGQgcHJvYmFibHkg YmUgdXNlZCBhcyBpcyBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgaXQgb25seSBoYXMgYSBoYWxmCj4g PiA+ID4gPiBvZiBhIHBhZ2UgZm9yIGluY29taW5nIGV2ZW50cyB3aGljaCBpcyBvbmx5IDUwIGV2 ZW50cy4gKGNvbnNpZGVyCj4gPiA+ID4gPiBzb21ldGhpbmcgbGlrZSA2MEh6IGRpc3BsYXkpCj4g PiA+ID4gPiAKPiA+ID4gPiA+IDMuIEFtb3VudCBvZiBjaGFuZ2VzLgo+ID4gPiA+ID4gZmJpZiBv bmx5IHByb3ZpZGVzIFhFTkZCX1RZUEVfVVBEQVRFIGFuZCBYRU5GQl9UWVBFX1JFU0laRQo+ID4g PiA+ID4gZXZlbnRzLCBzbyBpdCBsb29rcyBsaWtlIGl0IGlzIGVhc2llciB0byBnZXQgZmIgc3Vw cG9ydCBpbnRvIGRpc3BsaWYKPiA+ID4gPiAuLiB3b3VsZCBpdCBtYWtlIHNlbnNlIHRvIHJlc2Vy dmUgc29tZSBvZiB0aG9zZSB2YWx1ZXMgKDIsIDMpCj4gPiA+ID4gaW4gdGhlIFhFTkRJU1BMX09Q XyB2YWx1ZXM/IFNvIHRoYXQgaWYgdGhpcyBoYXBwZW5zIHRoZXJlIGlzIGEgbmljZQo+ID4gPiA+ IGZpdCBpbiB0aGVyZT8gVGhvdWdodCBsb29raW5nIGF0IHRoZSBzdHJ1Y3R1cmUgdGhlcmUgaXMg bm8gZWFzeQo+ID4gPiA+IHdheSB0byAnb3ZlcmxheScgdGhlIHhlbmZiX291dF9ldmVudCBzdHJ1 Y3R1cmUgYXMgaXQgaXMgbWlzc2luZyB0aGUgJ2lkJy4KPiA+ID4gPiAKPiA+ID4gPiBJIGd1ZXNz IG9uZSBjYW4gZ2V0IGNyZWF0aXZlLgo+ID4gPiA+IAo+ID4gPiA+IE9yIHlvdSBjb3VsZCBzd2Fw IHBvc2l0aW9ucyBvZiAnaWQnIGFuZCAndHlwZSc/IEFuZCB0aGVuIGl0IHdvdWxkIGZpdCBtdWNo Cj4gPiA+ID4gbmljZXI/Cj4gPiA+IHllYXAsIGluIG9yZGVyIG5vIG9uZSBuZWVkcyB0byBiZSBj cmVhdGl2ZSwgd2h5IG5vdAo+ID4gPiBleHBsaWNpdGx5IGRlZmluZSB0aG9zZT8KPiA+ID4gQW55 d2F5cywgaXQgd29uJ3QgYmUgcG9zc2libGUgdG8gc2ltcGx5IGxheSB0aGUgc3RydWN0dXJlcyBm cm9tCj4gPiA+IGZiaWYgb24gdG9wIG9mIGRpc3BsaWYgKGRpZmZlcmVudCBzdHJ1Y3R1cmUsIHNp emUsIHdvcmtmbG93IGV0Yy4pLAo+ID4gPiB3aGF0IGlzIG1vcmUgdGhhdCB3b3VsZCBnaXZlIHNv bWUgcm9vbSB0byBmaW5kIHdvcmthcm91bmRzLCByYXRoZXIgdGhhbgo+ID4gPiBoYXZlIHdlbGwg ZGVmaW5lZCBzb2x1dGlvbi4gQlRXLCB0aGVyZSB3YXMgYW4gYXR0ZW1wdCBbMV0gdG8gdXBkYXRl Cj4gPiA+IGZiZGV2IHRvIG1lZXQgbW9kZXJuIGFwcGxpY2F0aW9uIG5lZWRzLiBJZiB3ZSBkZWNp ZGUgdG8gYWRkIEZCREVWCj4gPiA+IGZ1bmN0aW9uYWxpdHkgaW50byB0aGlzIHByb3RvY29sLCB0 aGVuIEkgY2FuIHJlLXVzZSBhbHJlYWR5Cj4gPiA+IHByb3ZlbiB0byB3b3JrIHNvbHV0aW9uIGZy b20gWzFdIGludG8gRElTUExJRiwgYnV0IGRlZmluaW5nCj4gPiA+IHN0cnVjdHVyZXMgYW5kIGV2 ZW50cyB0byBmaXQgdGhlIGN1cnJlbnQgcHJvdG9jb2wuCj4gPiBJIHdhcyB0aGlua2luZyB0aGF0 IHNpbmNlIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgaXMgNjRieXRlcwo+ID4geW91IGhhdmUg ZW5vdWdoIHNwYWNlIHRvIGphbSBpbiB0aGUgb2xkIHN0cnVjdHVyZXMgdG9vLgo+IHllcywgSSB1 bmRlcnN0YW5kIHlvdXIgaW50ZW50aW9uCj4gPiAKPiA+IE5hdHVyYWxseSB0aGUgZHJpdmVyIHdv dWxkIG5lZWQgYWRqdXN0bWVudHMgYXMgaXQgb2Zmc2V0cwo+ID4gb2Ygd2hlcmUgdGhpcyBnb2Vz IGFyZSBhbGwgd3JvbmcuCj4gZXhhY3RseQo+ID4gCj4gPiA+IFdoYXQgZG8geW91IHRoaW5rPwo+ IHNvLCB3aGF0IGlzIHRoZSBkZWNpc2lvbj8gT3B0aW9uczoKPiAxKSBMZWF2ZSB0aGUgcHJvdG9j b2wgYXMgaXMsIGlmIG5lZWQgYmUgaXQgY2FuIGJlIGV4dGVuZGVkIGxhdGVyCj4gMikgSW1wbGVt ZW50IHNvbWV0aGluZyBzaW1pbGFyIHRvIFsxXQo+IDMpIEdpdmUgcm9vbSBmb3Igd29ya2Fyb3Vu ZHMgYW5kIHJlc2VydmUgWEVORElTUExfT1BfWFhYIGZvcgo+IHdoYXQgY3VycmVudCBmYmlmIHVz ZXMKCkkgd291bGQgZG8gMykgc28gdGhhdCBpdCBiZWNvbWVzIGVhc2llciB0byBtaWdyYXRlIHRo ZSBvbGQgY29kZSBvdmVyLgoKPiA+ID4gPiA+IHRoYW4gdmljZSB2ZXJzYS4gZGlzcGxpZiBhdCB0 aGUgbW9tZW50IGhhcyA2IHJlcXVlc3RzIGFuZCAxIGV2ZW50LAo+ID4gPiA+ID4gbXVsdGlwbGUg Y29ubmVjdG9yIHN1cHBvcnQsIGV0Yy4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gQ2hhbmdlcyBzaW5j ZSB2MjoKPiA+ID4gPiA+ICAgICogdXBkYXRlZCBYZW5TdG9yZSBjb25maWd1cmF0aW9uIHRlbXBs YXRlL3BhdHRlcm4KPiA+ID4gPiA+ICAgICogYWRkZWQgIlJlY292ZXJ5IGZsb3ciIHRvIHN0YXRl IGRpYWdyYW0gZGVzY3JpcHRpb24KPiA+ID4gPiA+ICAgICogcmVuYW1lZCBncmVmX2RpcmVjdG9y eV9zdGFydCB0byBncmVmX2RpcmVjdG9yeQo+ID4gPiA+ID4gICAgKiBhZGRlZCBtaXNzaW5nICJ2 ZXJzaW9ucyIgYW5kICJ2ZXJzaW9uIiBzdHJpbmcgY29uc3RhbnRzCj4gPiA+ID4gPiAKPiA+ID4g PiA+IENoYW5nZXMgc2luY2UgdjE6Cj4gPiA+ID4gPiAgICAqIGZpeGVkIHhlbmRpc3BsX2V2ZW50 X3BhZ2UgcGFkZGluZyBzaXplCj4gPiA+ID4gPiAgICAqIGFkZGVkIHZlcnNpb25pbmcgc3VwcG9y dAo+ID4gPiA+ID4gICAgKiBleHBsaWNpdGx5IGRlZmluZSB2YWx1ZSB0eXBlcyBmb3IgWGVuU3Rv cmUgZmllbGRzCj4gPiA+ID4gPiAgICAqIHRleHQgZGVjb3JhdGlvbiByZS13b3JrCj4gPiA+ID4g PiAgICAqIGFkZGVkIG9mZnNldHMgdG8gQVNDSUkgYm94IG5vdGF0aW9uCj4gPiA+ID4gPiAKPiA+ ID4gPiA+IENoYW5nZXMgc2luY2UgaW5pdGlhbDoKPiA+ID4gPiA+ICAgICogRFJNIGNoYW5nZWQg dG8gRElTUEwsIHByb3RvY29sIG1hZGUgZ2VuZXJpYwo+ID4gPiA+ID4gICAgKiBtYWpvciByZS13 b3JrIGFkZHJlc3NpbmcgaXNzdWVzIHJhaXNlZCBmb3Igc25kaWYKPiA+ID4gPiA+IAo+ID4gPiA+ ID4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVw YW0uY29tPgo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28g PG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+ID4gPiA+ID4gLS0tCj4gPiA+ID4g PiAgICB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8vZGlzcGxpZi5oIHwgNzc4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gPiA+ICAgIDEgZmlsZSBjaGFuZ2VkLCA3 NzggaW5zZXJ0aW9ucygrKQo+ID4gPiA+ID4gICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNs dWRlL3B1YmxpYy9pby9kaXNwbGlmLmgKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3B1YmxpYy9pby9kaXNwbGlmLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW8v ZGlzcGxpZi5oCj4gPiA+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gPiA+ID4gaW5kZXgg MDAwMDAwMDAwMDAwLi44NDlmMjdmZTVmMWQKPiA+ID4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4g PiA+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9kaXNwbGlmLmgKPiA+ID4gPiA+IEBAIC0w LDAgKzEsNzc4IEBACj4gPiA+ID4gPiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ID4gPiA+ID4g KyAqIGRpc3BsaWYuaAo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogVW5pZmllZCBkaXNwbGF5 IGRldmljZSBJL08gaW50ZXJmYWNlIGZvciBYZW4gZ3Vlc3QgT1Nlcy4KPiA+ID4gPiA+ICsgKgo+ ID4gPiA+ID4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKPiA+ID4gPiA+ICsgKiBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwgdG8KPiA+ID4gPiA+ICsgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQo+ID4gPiA+ID4gKyAqIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsIGFuZC9vcgo+ID4gPiA+ID4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwg YW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCj4gPiA+ID4gPiAr ICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gPiA+ID4g PiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu Cj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ID4gPiA+ID4g KyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg T0YgTUVSQ0hBTlRBQklMSVRZLAo+ID4gPiA+ID4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+ID4g PiA+ID4gKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkg Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiA+ID4gPiA+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ID4g PiA+ID4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIKPiA+ID4gPiA+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdB UkUuCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBF UEFNIFN5c3RlbXMgSW5jLgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogQXV0aG9yczogT2xl a3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+ ID4gPiA+ID4gKyAqICAgICAgICAgIE9sZWtzYW5kciBHcnl0c292IDxvbGVrc2FuZHJfZ3J5dHNv dkBlcGFtLmNvbT4KPiA+ID4gPiA+ICsgKi8KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsjaWZuZGVm IF9fWEVOX1BVQkxJQ19JT19ESVNQTElGX0hfXwo+ID4gPiA+ID4gKyNkZWZpbmUgX19YRU5fUFVC TElDX0lPX0RJU1BMSUZfSF9fCj4gPiA+ID4gPiArCj4gPiA+ID4gPiArI2luY2x1ZGUgInJpbmcu aCIKPiA+ID4gPiA+ICsjaW5jbHVkZSAiLi4vZ3JhbnRfdGFibGUuaCIKPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ICsvKgo+ID4gPiA+ID4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ID4gPiA+ICsg KiAgICAgICAgICAgICAgICAgIE1haW4gZmVhdHVyZXMgcHJvdmlkZWQgYnkgdGhlIHByb3RvY29s Cj4gPiA+ID4gPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ID4gPiA+ID4gKyAqIFRoaXMgcHJv dG9jb2wgYWltcyB0byBwcm92aWRlIGEgdW5pZmllZCBwcm90b2NvbCB3aGljaCBmaXRzIG1vcmUK PiA+ID4gPiA+ICsgKiBzb3BoaXN0aWNhdGVkIHVzZS1jYXNlcyB0aGFuIGEgZnJhbWVidWZmZXIg ZGV2aWNlIGNhbiBoYW5kbGUuIEF0IHRoZQo+ID4gPiA+ID4gKyAqIG1vbWVudCBiYXNpYyBmdW5j dGlvbmFsaXR5IGlzIHN1cHBvcnRlZCB3aXRoIHRoZSBpbnRlbnRpb24gdG8gYmUgZXh0ZW5kZWQ6 Cj4gPiA+ID4gPiArICogIG8gbXVsdGlwbGUgZHluYW1pY2FsbHkgYWxsb2NhdGVkL2Rlc3Ryb3ll ZCBmcmFtZWJ1ZmZlcnMKPiA+ID4gPiA+ICsgKiAgbyBidWZmZXJzIG9mIGFyYml0cmFyeSBzaXpl cwo+ID4gPiA+ID4gKyAqICBvIGJ1ZmZlciBhbGxvY2F0aW9uIGF0IGVpdGhlciBiYWNrIG9yIGZy b250IGVuZAo+ID4gPiA+ID4gKyAqICBvIGJldHRlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW5j bHVkaW5nIG11bHRpcGxlIGRpc3BsYXkgc3VwcG9ydAo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiAr ICogTm90ZTogZXhpc3RpbmcgZmJpZiBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIGRpc3BsaWYg cnVubmluZyBhdCB0aGUKPiA+ID4gPiA+ICsgKiBzYW1lIHRpbWUsIGUuZy4gb24gTGludXggb25l IHByb3ZpZGVzIGZyYW1lYnVmZmVyIGFuZCBhbm90aGVyIERSTS9LTVMKPiA+ID4gPiA+ICsgKgo+ ID4gPiA+ID4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ID4gPiA+ICsgKiAgICAgICAgICAg ICAgICAgICAgICAgIERpcmVjdGlvbiBvZiBpbXByb3ZlbWVudHMKPiA+ID4gPiA+ICsgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCj4gPiA+ID4gPiArICogRnV0dXJlIGV4dGVuc2lvbnMgdG8gdGhlIGV4 aXN0aW5nIHByb3RvY29sIG1heSBpbmNsdWRlOgo+ID4gPiA+ID4gKyAqICBvIGRpc3BsYXkvY29u bmVjdG9yIGNsb25pbmcKPiA+ID4gPiA+ICsgKiAgbyBhbGxvY2F0aW9uIG9mIG9iamVjdHMgb3Ro ZXIgdGhhbiBkaXNwbGF5IGJ1ZmZlcnMKPiA+ID4gPiA+ICsgKiAgbyBwbGFuZS9vdmVybGF5IHN1 cHBvcnQKPiA+ID4gPiA+ICsgKiAgbyBzY2FsaW5nIHN1cHBvcnQKPiA+ID4gPiA+ICsgKiAgbyBy b3RhdGlvbiBzdXBwb3J0Cj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCj4gPiA+ID4gPiArICogICAgICAgICAgICAgICAgICBGZWF0dXJlIGFuZCBQYXJhbWV0 ZXIgTmVnb3RpYXRpb24KPiA+ID4gPiA+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gPiA+ID4g PiArICoKPiA+ID4gPiA+ICsgKiBGcm9udC0+YmFjayBub3RpZmljYXRpb25zOiB3aGVuIGVucXVl dWluZyBhIG5ldyByZXF1ZXN0LCBzZW5kaW5nIGEKPiA+ID4gPiA+ICsgKiBub3RpZmljYXRpb24g Y2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24geGVuZGlzcGxfcmVxIChpLmUuLCB0aGUgZ2VuZXJp Ywo+ID4gPiA+ID4gKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBt YWNyb3MpLiBCYWNrZW5kcyBtdXN0IHNldAo+ID4gPiA+ID4gKyAqIHhlbmRpc3BsX3JlcSBhcHBy b3ByaWF0ZWx5IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVFVRVNUUygpKS4K PiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIEJhY2stPmZyb250IG5vdGlmaWNhdGlvbnM6IHdo ZW4gZW5xdWV1aW5nIGEgbmV3IHJlc3BvbnNlLCBzZW5kaW5nIGEKPiA+ID4gPiA+ICsgKiBub3Rp ZmljYXRpb24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24geGVuZGlzcGxfcmVzcCAoaS5lLiwg dGhlIGdlbmVyaWMKPiA+ID4gPiA+ICsgKiBob2xkLW9mZiBtZWNoYW5pc20gcHJvdmlkZWQgYnkg dGhlIHJpbmcgbWFjcm9zKS4gRnJvbnRlbmRzIG11c3Qgc2V0Cj4gPiA+ID4gPiArICogeGVuZGlz cGxfcmVzcCBhcHByb3ByaWF0ZWx5IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9S RVNQT05TRVMoKSkuCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBUaGUgdHdvIGhhbHZlcyBv ZiBhIHBhcmEtdmlydHVhbCBkaXNwbGF5IGRyaXZlciB1dGlsaXplIG5vZGVzIHdpdGhpbgo+ID4g PiA+ID4gKyAqIFhlblN0b3JlIHRvIGNvbW11bmljYXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVn b3RpYXRlIG9wZXJhdGluZyBwYXJhbWV0ZXJzLgo+ID4gPiA+ID4gKyAqIFRoaXMgc2VjdGlvbiBl bnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdoaWNoIHJlc2lkZSBpbiB0aGUgcmVzcGVjdGl2ZSBmcm9u dCBhbmQKPiA+ID4gPiA+ICsgKiBiYWNrZW5kIHBvcnRpb25zIG9mIFhlblN0b3JlLCBmb2xsb3dp bmcgdGhlIFhlbkJ1cyBjb252ZW50aW9uLgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogQWxs IGRhdGEgaW4gWGVuU3RvcmUgaXMgc3RvcmVkIGFzIHN0cmluZ3MuIE5vZGVzIHNwZWNpZnlpbmcg bnVtZXJpYwo+ID4gPiA+ID4gKyAqIHZhbHVlcyBhcmUgZW5jb2RlZCBpbiBkZWNpbWFsLiBJbnRl Z2VyIHZhbHVlIHJhbmdlcyBsaXN0ZWQgYmVsb3cgYXJlCj4gPiA+ID4gPiArICogZXhwcmVzc2Vk IGFzIGZpeGVkIHNpemVkIGludGVnZXIgdHlwZXMgY2FwYWJsZSBvZiBzdG9yaW5nIHRoZSBjb252 ZXJzaW9uCj4gPiA+ID4gPiArICogb2YgYSBwcm9wZXJseSBmb3JtYXRlZCBub2RlIHN0cmluZywg d2l0aG91dCBsb3NzIG9mIGluZm9ybWF0aW9uLgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgo+ID4gPiA+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg RXhhbXBsZSBjb25maWd1cmF0aW9uCj4gPiA+ID4gPiArICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogTm90ZTogZGVwZW5kaW5nIG9uIHRoZSB1c2UtY2Fz ZSBiYWNrZW5kIGNhbiBleHBvc2UgbW9yZSBkaXNwbGF5IGNvbm5lY3RvcnMKPiA+ID4gPiA+ICsg KiB0aGFuIHRoZSB1bmRlcmx5aW5nIEhXIHBoeXNpY2FsbHkgaGFzIGJ5IGVtcGxveWluZyBTVyBn cmFwaGljcyBjb21wb3NpdG9ycwo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogVGhpcyBpcyBh biBleGFtcGxlIG9mIGJhY2tlbmQgYW5kIGZyb250ZW5kIGNvbmZpZ3VyYXRpb246Cj4gPiA+ID4g PiArICoKPiA+ID4gPiA+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCYWNr ZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiArICoKPiA+ ID4gPiA+ICsgKiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwvMS8wL2Zyb250ZW5kLWlk ID0gIjEiCj4gPiA+ID4gPiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmRpc3BsLzEvMC9m cm9udGVuZCA9ICIvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wIgo+ID4gPiA+ID4gKyAq IC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZkaXNwbC8xLzAvc3RhdGUgPSAiNCIKPiA+ID4gPiA+ ICsgKiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwvMS8wL3ZlcnNpb25zID0gIjEsMiIK PiA+ID4gPiA+ICsgKiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwvMS8wL2ZlYXR1cmVz ID0gImJlX2FsbG9jIgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gRnJvbnRlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92 ZGlzcGwvMC9iYWNrZW5kLWlkID0gIjAiCj4gPiA+ID4gPiArICogL2xvY2FsL2RvbWFpbi8xL2Rl dmljZS92ZGlzcGwvMC9iYWNrZW5kID0gIi9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZkaXNwbC8x LzAiCj4gPiA+ID4gPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC9zdGF0ZSA9 ICI0Igo+ID4gPiA+ID4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvdmVyc2lv biA9ICIxIgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBDb25uZWN0b3IgMCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwv MC8wL3Jlc29sdXRpb24gPSAiMTkyMHgxMDgwIgo+ID4gPiA+ID4gKyAqIC9sb2NhbC9kb21haW4v MS9kZXZpY2UvdmRpc3BsLzAvMC9jdHJsLXJpbmctcmVmID0gIjI4MzIiCj4gPiA+ID4gPiArICog L2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC8wL2N0cmwtY2hhbm5lbCA9ICIxNSIKPiA+ ID4gPiA+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wLzAvZXZlbnQtcmluZy1y ZWYgPSAiMzg3Igo+ID4gPiA+ID4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAv MC9ldmVudC1jaGFubmVsID0gIjE2Igo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSBDb25uZWN0b3IgMSBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogL2xvY2FsL2RvbWFpbi8x L2RldmljZS92ZGlzcGwvMC8xL3Jlc29sdXRpb24gPSAiODAweDYwMCIKPiA+ID4gPiA+ICsgKiAv bG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wLzEvY3RybC1yaW5nLXJlZiA9ICIyODMzIgo+ ID4gPiA+ID4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvMS9jdHJsLWNoYW5u ZWwgPSAiMTciCj4gPiA+ID4gPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC8x L2V2ZW50LXJpbmctcmVmID0gIjM4OCIKPiA+ID4gPiA+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2 aWNlL3ZkaXNwbC8wLzEvZXZlbnQtY2hhbm5lbCA9ICIxOCIKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ ID4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ID4gPiA+ICsgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCYWNrZW5kIFhlbkJ1cyBOb2Rlcwo+ID4gPiA+ID4gKyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gUHJvdG9jb2wgdmVyc2lvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIHZlcnNpb25zCj4gPiA+ID4gPiArICogICAgICBW YWx1ZXM6ICAgICAgICAgPHN0cmluZz4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqICAgICAg TGlzdCBvZiBYRU5ESVNQTF9MSVNUX1NFUEFSQVRPUiBzZXBhcmF0ZWQgcHJvdG9jb2wgdmVyc2lv bnMgc3VwcG9ydGVkCj4gPiA+ID4gPiArICogICAgICBieSB0aGUgYmFja2VuZC4gRm9yIGV4YW1w bGUgIjEsMiwzIi4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIGZlYXR1cmVzCj4gPiA+ID4g PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPGxpc3Qgb2Ygc3RyaW5ncz4KPiA+ID4gPiA+ICsg Kgo+ID4gPiA+ID4gKyAqICAgICAgWEVORElTUExfTElTVF9TRVBBUkFUT1Igc2VwYXJhdGVkIGxp c3Qgb2YgZmVhdHVyZXMKPiA+ID4gPiA+ICsgKiAgICAgIFhFTkRJU1BMX0ZFQVRVUkVfQkVfPz8/ IHRoYXQgdGhlIGJhY2tlbmQgc3VwcG9ydHMuCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiAg ICAgIGJlX2FsbG9jCj4gPiA+ID4gPiArICogICAgICAgICAgICAgQmFja2VuZCBjYW4gYmUgYSBi dWZmZXIgcHJvdmlkZXIvYWxsb2NhdG9yIGR1cmluZwo+ID4gPiA+ID4gKyAqICAgICAgICAgICAg IFhFTkRJU1BMX09QX0RCVUZfQ1JFQVRFIG9wZXJhdGlvbiAoc2VlIGJlbG93IGZvciBuZWdvdGlh dGlvbikuCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4g PiA+ID4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVuQnVzIE5v ZGVzCj4gPiA+ID4gPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ID4gPiA+ID4gKyAqCj4gPiA+ ID4gPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBZGRyZXNzaW5nIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICog ZG9tLWlkCj4gPiA+ID4gPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQxNl90Pgo+ID4g PiA+ID4gKyAqCj4gPiA+ID4gPiArICogICAgICBEb21haW4gaWRlbnRpZmllci4KPiA+ID4gPiA+ ICsgKgo+ID4gPiA+ID4gKyAqIGRldi1pZAo+ID4gPiA+ID4gKyAqICAgICAgVmFsdWVzOiAgICAg ICAgIDx1aW50MTZfdD4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqICAgICAgRGV2aWNlIGlk ZW50aWZpZXIuCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBjb25uLWlkeAo+ID4gPiA+ID4g KyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90Pgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4g PiArICogICAgICBaZXJvIGJhc2VkIGNvbnRpZ291cyBpbmRleCBvZiB0aGUgY29ubmVjdG9yLgo+ ID4gPiA+ID4gKyAqICAgICAgL2xvY2FsL2RvbWFpbi88ZG9tLWlkPi9kZXZpY2UvdmRpc3BsLzxk ZXYtaWQ+Lzxjb25uLWlkeD4vLi4uCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3RvY29sIHZlcnNpb24gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiB2ZXJzaW9uCj4gPiA+ID4g PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHN0cmluZz4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ ID4gKyAqICAgICAgUHJvdG9jb2wgdmVyc2lvbiwgY2hvc2VuIGFtb25nIHRoZSBvbmVzIHN1cHBv cnRlZCBieSB0aGUgYmFja2VuZC4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29ubmVjdG9yIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIHJlc29sdXRpb24KPiA+ID4g PiA+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8d2lkdGgsIHVpbnQzMl90Png8aGVpZ2h0LCB1 aW50MzJfdD4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqICAgICAgV2lkdGggYW5kIGhlaWdo dCBvZiB0aGUgY29ubmVjdG9yIGluIHBpeGVscyBzZXBhcmF0ZWQgYnkKPiA+ID4gPiA+ICsgKiAg ICAgIFhFTkRJU1BMX1JFU09MVVRJT05fU0VQQVJBVE9SLgo+ID4gPiA+IElzIHRoZXJlIGFuIGRl ZmF1bHQgZGVwdGg/Cj4gPiA+IG5vCj4gPiA+ID4gICAgMzI/Cj4gPiA+IG5vIGRlZmF1bHRzCj4g PiBTaG91bGQgd2UgaGF2ZSBhIGRlZmF1bHQ/Cj4gPiAKPiA+IEFuZCBwZXJoYXBzIGFsc28gc2F5 IHRoYXQgYWxsIHRoZSBvcGVyYXRpb25zIGFyZSBib3VuZGVkIGJ5IHRoZXNlPwo+IG5vdCBzdXJl IHdlIG5lZWQgZGVmYXVsdCBoZXJlOiB0aGlzIGlzICp1cCB0byBiYWNrZW5kKgo+IHdoYXQgdG8g ZG8gd2l0aCAqZGVwdGhzKiBhbmQgKnJlc29sdXRpb25zKiB3aGljaCBhcmUgZGlmZmVyZW50Cj4g ZnJvbSB3aGF0IEhXIGRpc3BsYXkgc3VwcG9ydHMsIGUuZy4gdGhvc2UgYnVmZmVycwo+IGNhbiBi ZSBqdXN0IGEgcGFydCBvZiB0aGUgZmluYWwgY29tcG9zaXRpb24uCj4gRm9yIGV4YW1wbGUsIGJh Y2tlbmQgdXRpbGl6ZXMgYSBTVyBjb21wb3NpdG9yIHdoaWNoCj4gbWFrZXMgc2NyZWVuIGNvbXBv c2l0aW5nIHdpdGggMTkyMHgxMDgweDMyIChsZXRzIHNheSwgZm9yCj4gZXhhbXBsZSwgdGhpcyBp cyB0aGUgbW9zdCBzdWl0YWJsZSBvbmUgZm9yIHRoZSBHUFUgdXNlZAo+IGFuZCBhbHNvIHRoaXMg aXMgdXNlZCBmb3IgYSByZW1vdGUgZGVza3RvcCAtIHVzZS1jYXNlcyBtYXkKPiBkaWZmZXIpCj4g QnV0LCB0aGUgcmVhbCBIVyBkaXNwbGF5IGlzIG9ubHkgMTIwMHg4MDB4MjQuIFNvLCBvbmNlIHRo ZQo+IGNvbXBvc2l0aW9uIGlzIGRvbmUsIGl0IHdpbGwgYmUgZG93bnNjYWxlZC9yZXNhbXBsZWQg YnkgYW55Cj4gbWVhbnMgdG8gd2hhdCBIVyBkaXNwbGF5IHdhbnRzLgo+IAo+IEhvcGUsIHRoaXMg YmV0dGVyIGV4cGxhaW5zIHdoeSBidWZmZXJzIG1heSBkaWZmZXIgZnJvbQo+IHdoYXQgInJlc29s dXRpb24iIHNheXMgYW5kIGRlcHRoIHVzZWQ6IGJ1ZmZlciBpcyBub3QKPiBleGFjdGx5IHdoYXQg eW91IHNlZSBmaW5hbGx5LCBzbyBpdCBjYW4gYmUgYmlnZ2VyLCBzbWFsbGVyCj4gb3IgZXF1YWwg LSBhbGwgdmFsaWQKCk9LLCB5b3UgbWF5IHRvIGluY2x1ZGUgdGhpcyBleHBsYW5hdGlvbiBpbiB0 aGUgZG9jdW1lbnQuCgo+ID4gPiA+ICAgIE9yIHNob3VsZCB0aGF0IGFsc28gYmUgbmVnb3RpYXRl ZD8KPiA+ID4gZnJvbnRlbmQgcmVxdWVzdHMgdGhlIGRlc2lyZWQgdmFsdWUgb2YgaXQsIGJhY2tl bmQgcHJvdmlkZXMgaXQKPiA+ID4gb3IgcmVqZWN0cyB0aGUgcmVxdWVzdCwgc28gZnJvbnQgd2ls bCB0cnkgb3RoZXIgdmFsdWUuCj4gPiA+IFNvLCB5ZXMsIHRoaXMgaXMga2luZCBvZiBuZWdvdGlh dGlvbiBoZXJlIChFSU5WQUwgYmFzZWQgOikKPiA+ID4gSSB3aWxsIGFsc28gcHV0IGEgbm90ZSB0 aGF0ICJyZXNvbHV0aW9uIiBvbmx5IGRlZmluZXMgdmlzaWJsZSBhcmVhLAo+ID4gPiB0aHVzIGRp c3BsYXkgYW5kIGZyYW1lIGJ1ZmZlciBzaXplcyBjYW4gYmUgZGlmZmVyZW50IGZyb20gdGhpcyB2 YWx1ZQo+ID4gT0ssIHdoaWNoIEkgc3VzcGVjdCBtZWFucyB0aGF0IGl0IGNhbiBvbmx5IGJlIHNt YWxsZXIsIG5vdCBsYXJnZXIuCj4gU2VlIGFib3ZlLCBubyBpbmZsdWVuY2Ugb24gYnVmZmVyIHNp emUKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tIENvbm5lY3Rv ciBSZXF1ZXN0IFRyYW5zcG9ydCBQYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4g PiA+ICsgKgo+ID4gPiA+ID4gKyAqIGN0cmwtY2hhbm5lbAo+ID4gPiA+IFBsZWFzZSBjYWxsIGl0 ICdjdHJsLWV2ZW50LWNoYW5uZWwnCj4gPiA+IEkgd2lsbAo+ID4gPiA+ID4gKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDx1aW50MzJfdD4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqICAgICAg VGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBjb25uZWN0b3IncyBjb250cm9sIGV2ZW50IGNoYW5u ZWwKPiA+ID4gPiA+ICsgKiAgICAgIHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5IGluIHRoZSByaW5n IGJ1ZmZlci4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIGN0cmwtcmluZy1yZWYKPiA+ID4g PiA+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+Cj4gPiA+ID4gPiArICoKPiA+ ID4gPiA+ICsgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Np b24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAo+ID4gPiA+ID4gKyAqICAgICAgYSBzb2xlIHBhZ2Ug aW4gYSBzaW5nbGUgcGFnZSBzaXplZCBjb25uZWN0b3IncyBjb250cm9sIHJpbmcgYnVmZmVyLgo+ ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogZXZlbnQtY2hhbm5lbAo+ID4gPiA+ID4gKyAqICAg ICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAq ICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBjb25uZWN0b3IncyBldmVudCBjaGFubmVs Cj4gPiA+ID4gPiArICogICAgICB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eSBpbiB0aGUgcmluZyBi dWZmZXIuCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBldmVudC1yaW5nLXJlZgo+ID4gPiA+ ID4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KPiA+ID4gPiA+ICsgKgo+ID4g PiA+ID4gKyAqICAgICAgVGhlIFhlbiBncmFudCByZWZlcmVuY2UgZ3JhbnRpbmcgcGVybWlzc2lv biBmb3IgdGhlIGJhY2tlbmQgdG8gbWFwCj4gPiA+ID4gPiArICogICAgICBhIHNvbGUgcGFnZSBp biBhIHNpbmdsZSBwYWdlIHNpemVkIGNvbm5lY3RvcidzIGV2ZW50IHJpbmcgYnVmZmVyLgo+ID4g PiA+IFNvIHlvdSBhcmUgbWFraW5nIHR3byByaW5ncyBhbmQgdHdvIGV2ZW50IGNoYW5uZWxzIC0g YW5kIGl0IGxvb2tzIGxpa2UgdGhlCj4gPiA+ID4gb3BlcmF0aW9ucyBhcmUgZ29pbmcgdmlhIHRo ZSBjb250cm9sIHJpbmcuLiBidXQgd2hhdCBnb2VzIHRocm91Z2ggdGhlCj4gPiA+ID4gdGhlIG90 aGVyIHJpbmcgYnVmZmVyPwo+ID4gPiBFdmVudHMgZnJvbSBiYWNrZW5kIHRvIGZyb250ZW5kLCBj dXJyZW50bHkgb25seSBYRU5ESVNQTF9FVlRfUEdfRkxJUAo+ID4gQWFhYWFoISBJbiB0aGF0IGNh c2UgSSB3b3VsZCBjaGFuZ2UgaXQgZnJvbSAnY3RybC0nIHRvCj4gPiAncmVxLWFsbG9jJyB0byBt YXRjaCB3aXRoLgo+IHdlbGwsIHRoaXMgaXMgdGhlIGNvbnRyb2wvY29tbWFuZCBwYXRoLCBmb3Ig dGhhdCByZWFzb24gSQo+IHN0aWxsIHNlZSBpdHMgbmFtZSBhcyAiY3RybC9jbWQtIi4KPiBXaGF0 IGlzIG1vcmUsIEkgY2FuIGFncmVlIHRvICJyZXEiLCBidXQgd2h5ICJhbGxvYyI/Cj4gVGhpcyBw YXRoIGlzIG5vdCBvbmx5IHVzZWQgZm9yIGFsbG9jYXRpb25zLCBidXQgY29uZmlndXJhdGlvbiBh cyB3ZWxsLgo+IEluIHRoZSBmdXR1cmUsIEkgd291bGQgZXhwZWN0IG90aGVyIGNvbW1hbmRzL2Nv bnRyb2wgYmUgcGFzc2VkCj4gb3ZlciBpdC4KPiBTbywgdGhlcmUgaXMgYSBjb21tYW5kL2NvbnRy b2wgcGF0aCAoImN0cmwtIikgYW5kIGV2ZW50IHBhdGggKCJldmVudC0iKQo+IHdoaWNoIEkgYmVs aWV2ZSBkbyByZWZsZWN0IHRoZWlyIHVzYWdlLgoKSXNuJ3QgdGhpcyB0aWVkIHRvICdYRU5ESVNQ TF9GRUFUVVJFX0JFX0FMTE9DJyBmZWF0dXJlPyBJZiBzbyBJIHdvdWxkCmNhbGwgaXQgd2l0aCB0 aGF0IG5hbWUgaW4gbWluZC4KCj4gPiA+IEkgd2lsbCBkZWZpbmUgMiBzZWN0aW9uczoKPiA+ID4g ICAqLS0tLS0tLS0tLS0tLS0tLS0tIENvbm5lY3RvciBSZXF1ZXN0IFRyYW5zcG9ydCBQYXJhbWV0 ZXJzCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gICAqCj4gPiA+ICAgKiBjdHJsLWV2 ZW50LWNoYW5uZWwKPiA+ID4gICAqIGN0cmwtcmluZy1yZWYKPiA+ID4gICAqCj4gPiA+ICAgKi0t LS0tLS0tLS0tLS0tLS0tLS0gQ29ubmVjdG9yIEV2ZW50IFRyYW5zcG9ydCBQYXJhbWV0ZXJzCj4g PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ICAgKgo+ID4gPiAgICogZXZlbnQtY2hhbm5l bAo+ID4gPiAgICogZXZlbnQtcmluZy1yZWYKPiA+ID4gCj4gPiA+ID4gT3IgaXMgdGhlIG90aGVy IHJpbmcgYnVmZmVyIHRoZSBvbmUgdGhhdCBpcyBjcmVhdGVkIHZpYSAnZ3JlZl9kaXJlY3Rvcnkn ID8KPiA+ID4gbm8KPiA+ID4gQXQgdGhlIGJvdHRvbToKPiA+ID4gICAqIEluIG9yZGVyIHRvIGRl bGl2ZXIgYXN5bmNocm9ub3VzIGV2ZW50cyBmcm9tIGJhY2sgdG8gZnJvbnQgYSBzaGFyZWQgcGFn ZQo+ID4gPiBpcwo+ID4gPiAgICogYWxsb2NhdGVkIGJ5IGZyb250IGFuZCBpdHMgZ3JlZiBwcm9w YWdhdGVkIHRvIGJhY2sgdmlhIFhlblN0b3JlIGVudHJpZXMKPiA+ID4gICAqIChldmVudC1YWFgp Lgo+ID4gQUFuZCB5b3UgbWF5IHdhbnQgdG8gc2F5IHRoaXMgaXMgZ3VhcmRlZCBieSBSRVFfQUxM T0MgZmVhdHVyZSByaWdodD8KPiBOb3Qgc3VyZSBJIHVuZGVyc3Rvb2QgeW91LiBFdmVudCBwYXRo IGlzIHRvdGFsbHkgaW5kZXBlbmRlbnQKPiBmcm9tIGFueSBmZWF0dXJlLCBlLmcuIFJFUV9BTExP Qy4KPiBJdCBqdXN0IHByb3ZpZGVzIG1lYW5zIHRvIHNlbmQgYXN5bmMgZXZlbnRzCj4gZnJvbSBi YWNrIHRvIGZyb250LCAicGFnZSBmbGlwIGRvbmUiIGluIG15IGNhc2UuCgo8c2NyYXRjaGUgaGlz IGhlYWQ+IFdoeSBkbyB5b3UgbmVlZCBhIHNlcGVyYXRlIHJpbmcgdG8gc2VuZApyZXNwb25zZXMg YmFjaz8gV2h5IG5vdCB1c2UgdGhlIHNhbWUgcmluZyBvbiB3aGljaCByZXF1ZXN0cwp3ZXJlIHNl bnQKCj4gPiA+ID4gSWYgc28sIHdvdWxkbid0IHlvdSBuZWVkIG11bGl0cGxlIGV2ZW50IGNoYW5u ZWxzPyBBbmQgYWxzbyB0aGUgc2l6ZSBvZiB0aG9zZQo+ID4gPiA+IHJpbmdzIGlzIG11Y2ggbXVj aCBiaWdnZXIuIEJ1dCBpdCBpcyBub3QgcmVhbGx5IGEgcmluZy4gSXQgbG9va3MgdG8gaG9sZAo+ ID4gPiA+IHNvbWUgb3BhcXVlIGRhdGE/Cj4gPiA+ID4gCj4gPiA+ID4gLUVDT05GVVNFRC4KPiA+ ID4gPiA+ICsgKi8KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsvKgo+ID4gPiA+ID4gKyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKPiA+ID4gPiA+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTVEFURSBESUFHUkFNUwo+ID4gPiA+ID4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ID4g PiA+ICsgKgo+ID4gPiA+ID4gKyAqIFRvb2wgc3RhY2sgY3JlYXRlcyBmcm9udCBhbmQgYmFjayBz dGF0ZSBub2RlcyB3aXRoIGluaXRpYWwgc3RhdGUKPiA+ID4gPiA+ICsgKiBYZW5idXNTdGF0ZUlu aXRpYWxpc2luZy4KPiA+ID4gPiA+ICsgKiBUb29sIHN0YWNrIGNyZWF0ZXMgYW5kIHNldHMgdXAg ZnJvbnRlbmQgZGlzcGxheSBjb25maWd1cmF0aW9uCj4gPiA+ID4gPiArICogbm9kZXMgcGVyIGRv bWFpbi4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gTm9ybWFsIGZsb3cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIEZyb250ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCYWNrCj4gPiA+ID4gPiArICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+ID4gPiA+ICsgKiBY ZW5idXNTdGF0ZUluaXRpYWxpc2luZyAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNp bmcKPiA+ID4gPiA+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8g UXVlcnkgYmFja2VuZCBkZXZpY2UgaWRlbnRpZmljYXRpb24KPiA+ID4gPiA+ICsgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS4KPiA+ID4gPiA+ICsgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gT3BlbiBhbmQgdmFsaWRhdGUgYmFj a2VuZCBkZXZpY2UuCj4gPiA+ID4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8Cj4gPiA+ID4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8Cj4gPiA+ID4gPiArICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCj4gPiA+ID4gPiArICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdFdhaXQKPiA+ID4gPiA+ICsg Kgo+ID4gPiA+ID4gKyAqIG8gUXVlcnkgZnJvbnRlbmQgY29uZmlndXJhdGlvbgo+ID4gPiA+ID4g KyAqIG8gQWxsb2NhdGUgYW5kIGluaXRpYWxpemUKPiA+ID4gPiA+ICsgKiAgIGV2ZW50IGNoYW5u ZWxzIHBlciBjb25maWd1cmVkCj4gPiA+ID4gPiArICogICBjb25uZWN0b3IuCj4gPiA+ID4gPiAr ICogbyBQdWJsaXNoIHRyYW5zcG9ydCBwYXJhbWV0ZXJzCj4gPiA+ID4gPiArICogICB0aGF0IHdp bGwgYmUgaW4gZWZmZWN0IGR1cmluZwo+ID4gPiA+ID4gKyAqICAgdGhpcyBjb25uZWN0aW9uLgo+ ID4gPiA+ID4gKyAqICAgICAgICAgICAgICB8Cj4gPiA+ID4gPiArICogICAgICAgICAgICAgIHwK PiA+ID4gPiA+ICsgKiAgICAgICAgICAgICAgVgo+ID4gPiA+ID4gKyAqIFhlbmJ1c1N0YXRlSW5p dGlhbGlzZWQKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbyBRdWVyeSBmcm9udGVuZCB0cmFuc3BvcnQgcGFyYW1ldGVycy4K PiA+ID4gPiA+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gQ29u bmVjdCB0byB0aGUgZXZlbnQgY2hhbm5lbHMuCj4gPiA+ID4gPiArICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gPiA+ID4gPiArICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gPiA+ID4gPiArICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCj4gPiA+ID4gPiAr ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ29ubmVj dGVkCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiAgbyBDcmVhdGUgYW5kIGluaXRpYWxpemUg T1MKPiA+ID4gPiA+ICsgKiAgICB2aXJ0dWFsIGRpc3BsYXkgY29ubmVjdG9ycwo+ID4gPiA+ID4g KyAqICAgIGFzIHBlciBjb25maWd1cmF0aW9uLgo+ID4gPiA+ID4gKyAqICAgICAgICAgICAgICB8 Cj4gPiA+ID4gPiArICogICAgICAgICAgICAgIHwKPiA+ID4gPiA+ICsgKiAgICAgICAgICAgICAg Vgo+ID4gPiA+ID4gKyAqIFhlbmJ1c1N0YXRlQ29ubmVjdGVkCj4gPiA+ID4gPiArICoKPiA+ID4g PiA+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVV bmtub3duCj4gPiA+ID4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFhlbmJ1c1N0YXRlQ2xvc2VkCj4gPiA+ID4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xvc2luZwo+ID4gPiA+ID4gKyAqIG8gUmVtb3ZlIHZp cnR1YWwgZGlzcGxheSBkZXZpY2UKPiA+ID4gPiA+ICsgKiBvIFJlbW92ZSBldmVudCBjaGFubmVs cwo+ID4gPiA+ID4gKyAqICAgICAgICAgICAgICB8Cj4gPiA+ID4gPiArICogICAgICAgICAgICAg IHwKPiA+ID4gPiA+ICsgKiAgICAgICAgICAgICAgVgo+ID4gPiA+ID4gKyAqIFhlbmJ1c1N0YXRl Q2xvc2VkCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gUmVjb3ZlcnkgZmxvdyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4g PiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBJbiBjYXNlIG9mIGZyb250ZW5kIHVucmVjb3ZlcmFi bGUgZXJyb3JzIGJhY2tlbmQgaGFuZGxlcyB0aGF0IGFzCj4gPiA+ID4gPiArICogaWYgZnJvbnRl bmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0ZUNsb3NlZCBzdGF0ZS4KPiA+ID4gPiA+ICsgKgo+ ID4gPiA+ID4gKyAqIEluIGNhc2Ugb2YgYmFja2VuZCB1bnJlY292ZXJhYmxlIGVycm9ycyBmcm9u dGVuZCB0cmllcyByZW1vdmluZwo+ID4gPiA+ID4gKyAqIHRoZSBlbXVsYXRlZCBkZXZpY2UuIElm IHRoaXMgaXMgcG9zc2libGUgYXQgdGhlIG1vbWVudCBvZiBlcnJvciwKPiA+ID4gPiBXaGF0IGVt dWxhdGVkIGRldmljZT8KPiA+ID4gcy9lbXVsYXRlZC92aXJ0dWFsaXplZC9nIGZvciBhbGw/Cj4g PiAvbWUgbm9kcy4KPiBkb25lCj4gPiA+ID4gPiArICogdGhlbiBmcm9udGVuZCBnb2VzIGludG8g dGhlIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nIHN0YXRlIGFuZCBpcyByZWFkeSBmb3IKPiA+ID4g PiA+ICsgKiBuZXcgY29ubmVjdGlvbiB3aXRoIGJhY2tlbmQuIElmIHRoZSBlbXVsYXRlZCBkZXZp Y2UgaXMgc3RpbGwgaW4gdXNlIGFuZAo+ID4gPiA+IGVtdWxhdGVkIGRldmljZT8KPiA+ID4gPiAK PiA+ID4gPiA+ICsgKiBjYW5ub3QgYmUgcmVtb3ZlZCwgdGhlbiBmcm9udGVuZCBnb2VzIGludG8g dGhlIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZyBzdGF0ZQo+ID4gPiA+IC4uIGFuZCB3aGF0IGlz IGRvbmUgaW4gWGVuYnVzU3RhdGVSZWNvbmZpZ3VyaW5nIHN0YXRlPwo+ID4gPiA+IAo+ID4gPiA+ IEkgYW0gYXNzdW1pbmcgJ3Jlc29sdXRpb24nIGlzIGV4YW1pbmVkPwo+ID4gPiA+IAo+ID4gPiA+ ID4gKyAqIHVudGlsIGVpdGhlciB0aGUgZW11bGF0ZWQgZGV2aWNlIHJlbW92ZWQgb3IgYmFja2Vu ZCBpbml0aWF0ZXMgYSBuZXcKPiA+ID4gPiA+ICsgKiBjb25uZWN0aW9uLiBPbiB0aGUgZW11bGF0 ZWQgZGV2aWNlIHJlbW92YWwgZnJvbnRlbmQgZ29lcyBpbnRvIHRoZQo+ID4gPiA+IGVtdWxhdGVk IGRldmljZT8KPiA+ID4gVGhlIHdob2xlIGlkZWEgaGVyZSBpcyB0byBsZXQgZnJvbnRlbmQgcmVj b3ZlciBmcm9tIGJhY2tlbmQgZmFpbHVyZS4KPiA+ID4gV2hhdCBoYXBwZW5zIHdoZW4gYmFja2Vu ZCBkaWVzOiBmcm9udGVuZCBjYW5ub3Qgc2VuZCByZXF1ZXN0cwo+ID4gPiB0byB0aGUgYmFja2Vu ZCBhbmQgdGh1cyBjYW5ub3QgZW11bGF0ZSAodmlydHVhbGl6ZSkgZGlzcGxheQo+ID4gPiBkZXZp Y2UgYW55bW9yZS4gVGhlcmUgaXMgbm8gc2ltcGxlIHNvbHV0aW9uIGxpa2UgZGlzY29ubmVjdGlu ZyByaW5ncwo+ID4gPiBhbmQgd2FpdGluZyBmb3IgdGhlIGJhY2tlbmQgdG8gcmUtY29ubmVjdCwg YXMgZGlzcGxheSBkZXZpY2UsIGp1c3QgbGlrZQo+ID4gPiBzb3VuZCBkZXZpY2VzLCBkb2VzIGhv bGQgc29tZSBzdGF0ZTogY29uZmlndXJhdGlvbiBpbiB1c2UsIG51bWJlciBvZiBkaXNwbGF5Cj4g PiA+IGJ1ZmZlcnMsIGZyYW1lYnVmZmVycywgYXBwbGljYXRpb24gc3RhdGUsIGZyYW1ld29yayAi d2F0Y2hkb2dzIiAobGlrZQo+ID4gPiB2ZXJ0aWNhbCBibGFuayB0aW1lLW91dHMgYW5kIHJlY292 ZXJ5IGF0IGZyYW1ld29yayBsZXZlbCkgZXRjLgo+ID4gPiBTbywgaW4gbW9zdCBjYXNlcywgaXQg d291bGQgcmVxdWlyZSBmcm9udGVuZCB0byBpbXBsZW1lbnQgY29tcGxleCByZWNvdmVyeQo+ID4g PiBsb2dpYy4gSW5zdGVhZCwgd2hhdCBJIHN1Z2dlc3QsIHRoYXQgd2UgZ28gaW50byBzb21lIHN0 YXRlLCB3aGljaCB0ZWxscyB0aGF0Cj4gPiA+IHdlIGFyZSBub3QgeWV0IHJlYWR5IHRvIGdvIGlu dG8gSW5pdGlhbGl6ZWQgc3RhdGUgYW5kIHN0aWxsIG5lZWQgc29tZSB0aW1lOgo+ID4gPiBhdCB0 aGlzIHRpbWUgZnJvbnRlbmQgd2lsbCB0cnkgdG8gbWFrZSBzdXJlIG5vIG5ldyBjbGllbnRzIGZy b20gdXNlci1zcGFjZQo+ID4gPiBhcmUgYWNjZXB0ZWQsIGl0IGFsbG93cyB0aGUgY3VycmVudCBj bGllbnQgdG8gZXhpdCBncmFjZWZ1bGx5IGJ5IHJldHVybmluZwo+ID4gPiBlcnJvciBjb2RlcyBl dGMuIE9uY2UgYWxsIHRoZSBjbGllbnRzIGFyZSBnb25lIGZyb250ZW5kIGNhbiByZWluaXRpYWxp emUKPiA+ID4gdGhlIHZpcnR1YWxpemVkIGRldmljZSwgZS5nLiBEUk0vS01TIGRyaXZlciwgYW5k IGdldCBpbnRvIEluaXRpYWxpemVkIHN0YXRlCj4gPiA+IGFnYWluLgo+ID4gVGhhdCBpcyBmaW5l Lgo+ID4gPiBUaHVzLCBJIHdhcyB0aGlua2luZyBvZiBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmdz dGF0ZSBhcyBhcHByb3ByaWF0ZSBpbiB0aGlzCj4gPiA+IGNhc2UKPiA+IFJpZ2h0LCBidXQgc29t ZWJvZHkgaGFzIHRvIG1vdmUgdG8gdGhpcyBzdGF0ZS4gV2hvIHdvdWxkIGRvIGl0Pwo+IHdoZW4g YmFja2VuZCBkaWVzIGl0cyBzdGF0ZSBjaGFuZ2VzIHRvICJjbG9zZWQiLgo+IEF0IHRoaXMgbW9t ZW50IGZyb250IHRyaWVzIHRvIHJlbW92ZSB2aXJ0dWFsaXplZCBkZXZpY2UKPiBhbmQgaWYgaXQg aXMgcG9zc2libGUvZG9uZSwgdGhlbiBpdCBnb2VzIGludG8gImluaXRpYWxpemVkIgo+IHN0YXRl LiBJZiBub3QgLSAicmVjb25maWd1cmluZyIuCj4gU28sIHlvdSB3b3VsZCBhc2sgaG93IGRvZXMg dGhlIGZyb250IGdvIGZyb20gInJlY29uZmlndXJpbmciCj4gaW50byAiaW5pdGlhbGl6ZWQiIHN0 YXRlPyBUaGlzIGlzIE9TL2Zyb250IHNwZWNpZmljLCBidXQ6Cj4gMS4gdGhlIHVuZGVybHlpbmcg ZnJhbWV3b3JrLCBlLmcuIERSTS9LTVMsIEFMU0EsIHByb3ZpZGUKPiBhIGNhbGxiYWNrKHMpIHRv IHNpZ25hbCB0aGF0IHRoZSBsYXN0IGNsaWVudCB0byB0aGUKPiB2aXJ0dWFsaXplZCBkZXZpY2Ug aGFzIGdvbmUgYW5kIHRoZSBkcml2ZXIgY2FuIGJlIHJlbW92ZWQKPiAoZXF1aXZhbGVudCB0byBt b2R1bGUncyB1c2FnZSBjb3VudGVyIDApCj4gMi4gb25lIGNhbiBzY2hlZHVsZSBhIGRlbGF5ZWQg d29yayAodGltZXIvdGFza2xldC93b3JrcXVldWUpCj4gdG8gcGVyaW9kaWNhbGx5IGNoZWNrIGlm IHRoaXMgaXMgdGhlIHJpZ2h0IHRpbWUgdG8gcmUtdHJ5Cj4gdGhlIHJlbW92YWwgYW5kIHJlbW92 ZQo+IAo+IEluIGJvdGggY2FzZXMsIGFmdGVyIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgaGFzIGJl ZW4gcmVtb3ZlZCB3ZSBtb3ZlCj4gaW50byAiaW5pdGlhbGl6ZWQiIHN0YXRlIGFnYWluIGFuZCBh cmUgcmVhZHkgZm9yIG5ldyBjb25uZWN0aW9ucwo+IHdpdGggYmFja2VuZCAoaWYgaXQgYXJvc2Ug ZnJvbSB0aGUgZGVhZCA6KQo+ID4gV291bGQgdGhlCj4gPiBmcm9udGVuZCBoYXZlIHNvbWUgZm9y bSBvZiB0aW1lciB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYmFja2VuZCBpcyBzdGlsbAo+ID4gYWxp dmU/IEFuZCBpZiBpdCBoYWQgZGllZCB0aGVuIG1vdmUgdG8gUmVjb25maWd1cmluZz8KPiBUaGVy ZSBhcmUgYXQgbGVhc3QgMiB3YXlzIHRvIHVuZGVyc3RhbmQgaWYgYmFjayBpcyBkZWFkOgo+IDEu IFhlbkJ1cyBzdGF0ZSBjaGFuZ2UgKGJhY2sgaXMgY2xvc2VkKQoKLi4gSWYgdGhlIGJhY2tlbmQg ZG9lcyBhIG5pY2Ugc2h1dGRvd24uLgoKPiAyLiB0aW1lLW91dHMgb24gcmVxdWVzdHMgZnJvbSBm cm9udCB0byBiYWNrCj4KUmlnaHQuIAo+IAo+IEJvdHRvbSBsaW5lIG9uIHRoZSAicmVjb3Zlcnkg ZmxvdyI6IHdoYXQgSSBkZXNjcmliZSBjb3VsZCBiZSBwdXQgaW4KPiB0aGUgZGVzY3JpcHRpb24g YXMgYW4gZXhhbXBsZSB0byBjbGFyaWZ5IG1vcmUgdGhpcy4KPiA+ID4gPiA+ICsgKiBYZW5idXNT dGF0ZUluaXRpYWxpc2luZyBzdGF0ZS4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKPiA+ID4gPiA+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UkVRVUVTVCBDT0RFUwo+ID4gPiA+ID4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ID4gPiA+ ICsgKi8KPiA+ID4gPiA+ICsjZGVmaW5lIFhFTkRJU1BMX09QX0RCVUZfQ1JFQVRFICAgICAgIDAK PiA+ID4gPiA+ICsjZGVmaW5lIFhFTkRJU1BMX09QX0RCVUZfREVTVFJPWSAgICAgIDEKPiA+ID4g PiA+ICsjZGVmaW5lIFhFTkRJU1BMX09QX0ZCX0FUVEFDSCAgICAgICAgIDIKPiA+ID4gPiA+ICsj ZGVmaW5lIFhFTkRJU1BMX09QX0ZCX0RFVEFDSCAgICAgICAgIDMKPiA+ID4gPiA+ICsjZGVmaW5l IFhFTkRJU1BMX09QX1NFVF9DT05GSUcgICAgICAgIDQKPiA+ID4gPiA+ICsjZGVmaW5lIFhFTkRJ U1BMX09QX1BHX0ZMSVAgICAgICAgICAgIDUKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsvKgo+ID4g PiA+ID4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ID4gPiA+ICsgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVWRU5UIENPREVTCj4gPiA+ID4gPiArICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgo+ID4gPiA+ID4gKyAqLwo+ID4gPiA+ID4gKyNkZWZpbmUgWEVORElTUExfRVZUX1BH X0ZMSVAgICAgICAgICAgMAo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKy8qCj4gPiA+ID4gPiArICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgo+ID4gPiA+ID4gKyAqICAgICAgICAgICAgICAgWEVOU1RPUkUg RklFTEQgQU5EIFBBVEggTkFNRSBTVFJJTkdTLCBIRUxQRVJTCj4gPiA+ID4gPiArICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgo+ID4gPiA+ID4gKyAqLwo+ID4gPiA+ID4gKyNkZWZpbmUgWEVORElTUExf RFJJVkVSX05BTUUgICAgICAgICAgInZkaXNwbCIKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsjZGVm aW5lIFhFTkRJU1BMX0xJU1RfU0VQQVJBVE9SICAgICAgICIsIgo+ID4gPiA+ID4gKyNkZWZpbmUg WEVORElTUExfUkVTT0xVVElPTl9TRVBBUkFUT1IgIngiCj4gPiA+ID4gPiArLyogRmllbGQgbmFt ZXMgKi8KPiA+ID4gPiA+ICsjZGVmaW5lIFhFTkRJU1BMX0ZJRUxEX0JFX1ZFUlNJT05TICAgICJ2 ZXJzaW9ucyIKPiA+ID4gPiA+ICsjZGVmaW5lIFhFTkRJU1BMX0ZJRUxEX0ZFX1ZFUlNJT04gICAg ICJ2ZXJzaW9uIgo+ID4gPiA+ID4gKyNkZWZpbmUgWEVORElTUExfRklFTERfRkVBVFVSRVMgICAg ICAgImZlYXR1cmVzIgo+ID4gPiA+ID4gKyNkZWZpbmUgWEVORElTUExfRklFTERfQ1RSTF9SSU5H X1JFRiAgImN0cmwtcmluZy1yZWYiCj4gPiA+ID4gPiArI2RlZmluZSBYRU5ESVNQTF9GSUVMRF9D VFJMX0NIQU5ORUwgICAiY3RybC1jaGFubmVsIgo+ID4gPiA+ID4gKyNkZWZpbmUgWEVORElTUExf RklFTERfRVZUX1JJTkdfUkVGICAgImV2ZW50LXJpbmctcmVmIgo+ID4gPiA+ID4gKyNkZWZpbmUg WEVORElTUExfRklFTERfRVZUX0NIQU5ORUwgICAgImV2ZW50LWNoYW5uZWwiCj4gPiA+ID4gPiAr I2RlZmluZSBYRU5ESVNQTF9GSUVMRF9SRVNPTFVUSU9OICAgICAicmVzb2x1dGlvbiIKPiA+ID4g PiA+ICsKPiA+ID4gPiA+ICsjZGVmaW5lIFhFTkRJU1BMX0ZFQVRVUkVfQkVfQUxMT0MgICAgICJi ZV9hbGxvYyIKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsvKgo+ID4gPiA+ID4gKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKPiA+ID4gPiA+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBVFVT IFJFVFVSTiBDT0RFUwo+ID4gPiA+ID4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ID4gPiA+ ICsgKgo+ID4gPiA+ID4gKyAqIFN0YXR1cyByZXR1cm4gY29kZSBpcyB6ZXJvIG9uIHN1Y2Nlc3Mg YW5kIC1YRU5fRVhYIG9uIGZhaWx1cmUuCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCj4gPiA+ID4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBc3N1bXB0aW9ucwo+ID4gPiA+ID4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ID4gPiA+ ICsgKiBvIHVzYWdlIG9mIGdyYW50IHJlZmVyZW5jZSAwIGFzIGludmFsaWQgZ3JhbnQgcmVmZXJl bmNlOgo+ID4gPiA+ID4gKyAqICAgZ3JhbnQgcmVmZXJlbmNlIDAgaXMgdmFsaWQsIGJ1dCBuZXZl ciBleHBvc2VkIHRvIGEgUFYgZHJpdmVyLAo+ID4gPiA+ID4gKyAqICAgYmVjYXVzZSBvZiB0aGUg ZmFjdCBpdCBpcyBhbHJlYWR5IGluIHVzZS9yZXNlcnZlZCBieSB0aGUgUFYgY29uc29sZS4KPiA+ ID4gPiA+ICsgKiBvIGFsbCByZWZlcmVuY2VzIGluIHRoaXMgZG9jdW1lbnQgdG8gcGFnZSBzaXpl cyBtdXN0IGJlIHRyZWF0ZWQKPiA+ID4gPiA+ICsgKiAgIGFzIHBhZ2VzIG9mIHNpemUgWEVOX1BB R0VfU0laRSB1bmxlc3Mgb3RoZXJ3aXNlIG5vdGVkLgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiAr ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgo+ID4gPiA+ID4gKyAqICAgICAgIERlc2NyaXB0aW9uIG9m IHRoZSBwcm90b2NvbCBiZXR3ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIGRyaXZlcgo+ID4gPiA+ ID4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIFRo ZSB0d28gaGFsdmVzIG9mIGEgUGFyYS12aXJ0dWFsIGRpc3BsYXkgZHJpdmVyIGNvbW11bmljYXRl IHdpdGgKPiA+ID4gPiA+ICsgKiBlYWNoIG90aGVyIHVzaW5nIHNoYXJlZCBwYWdlcyBhbmQgZXZl bnQgY2hhbm5lbHMuCj4gPiA+ID4gPiArICogU2hhcmVkIHBhZ2UgY29udGFpbnMgYSByaW5nIHdp dGggcmVxdWVzdC9yZXNwb25zZSBwYWNrZXRzLgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICog QWxsIHJlc2VydmVkIGZpZWxkcyBpbiB0aGUgc3RydWN0dXJlcyBiZWxvdyBtdXN0IGJlIDAuCj4g PiA+ID4gPiArICogRGlzcGxheSBidWZmZXJzJ3MgY29va2llIG9mIHZhbHVlIDAgdHJlYXRlZCBh cyBpbnZhbGlkLgo+ID4gPiA+ID4gKyAqIEZyYW1lYnVmZmVyJ3MgY29va2llIG9mIHZhbHVlIDAg dHJlYXRlZCBhcyBpbnZhbGlkLgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlcXVlc3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogQWxsIHJlcXVlc3RzL3Jlc3Bv bnNlcywgd2hpY2ggYXJlIG5vdCBjb25uZWN0b3Igc3BlY2lmaWMsIG11c3QgYmUgc2VudCBvdmVy Cj4gPiA+ID4gPiArICogY29udHJvbCByaW5nIG9mIHRoZSBjb25uZWN0b3Igd2l0aCBpbmRleCAw Lgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogRm9yIGFsbCByZXF1ZXN0L3Jlc3BvbnNlL2V2 ZW50IHBhY2tldHMgdGhhdCB1c2UgY29va2llczoKPiA+ID4gPiA+ICsgKiAgIGRidWZfY29va2ll IC0gdWludDY0X3QsIHVuaXF1ZSB0byBndWVzdCBkb21haW4gdmFsdWUgdXNlZCBieSB0aGUgYmFj a2VuZAo+ID4gPiA+ID4gKyAqICAgICB0byBtYXAgcmVtb3RlIGRpc3BsYXkgYnVmZmVyIHRvIGl0 cyBsb2NhbCBvbmUKPiA+ID4gPiA+ICsgKiAgIGZiX2Nvb2tpZSAtIHVpbnQ2NF90LCB1bmlxdWUg dG8gZ3Vlc3QgZG9tYWluIHZhbHVlIHVzZWQgYnkgdGhlIGJhY2tlbmQKPiA+ID4gPiA+ICsgKiAg ICAgdG8gbWFwIHJlbW90ZSBmcmFtZWJ1ZmZlciB0byBpdHMgbG9jYWwgb25lCj4gPiA+ID4gPiAr ICoKPiA+ID4gPiA+ICsgKiBBbGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3Ro ICg2NCBvY3RldHMpCj4gPiA+ID4gPiArICogQWxsIHJlcXVlc3QgcGFja2V0cyBoYXZlIGNvbW1v biBoZWFkZXI6Cj4gPiA+ID4gPiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAg ICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ID4gPiA+ID4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAg ICB8ICAgIG9wZXJhdGlvbiAgIHwgICByZXNlcnZlZCAgICAgfCA0Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPiA+ID4gPiA+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPiA+ID4gPiA+ICsgKiAgIGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFs dWUsIGVjaG9lZCBpbiByZXNwb25zZQo+ID4gPiA+ID4gKyAqICAgb3BlcmF0aW9uIC0gdWludDhf dCwgb3BlcmF0aW9uIGNvZGUsIFhFTkRJU1BMX09QXz8/Pwo+ID4gPiA+ID4gKyAqCj4gPiA+ID4g PiArICogUmVxdWVzdCBkYnVmIGNyZWF0aW9uIC0gcmVxdWVzdCBjcmVhdGlvbiBvZiBhIGRpc3Bs YXkgYnVmZmVyLgo+ID4gPiA+ID4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAg ICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiA+ID4gPiA+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAg ICAgfF9PUF9EQlVGX0NSRUFURSB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+ID4gPiA+ID4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgZGJ1Zl9jb29r aWUgbG93IDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgZGJ1Zl9jb29r aWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3 aWR0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo ZWlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVm ZmVyX3N6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm bGFncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM2Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZf ZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQwCj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ0Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gPiA+ID4gPiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2 ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4gPiA+ID4gPiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBNdXN0IGJlIHNlbnQgb3ZlciBjb250 cm9sIHJpbmcgb2YgdGhlIGNvbm5lY3RvciB3aXRoIGluZGV4IDAuCj4gPiA+ID4gPiArICoKPiA+ ID4gPiA+ICsgKiB3aWR0aCAtIHVpbnQzMl90LCB3aWR0aCBpbiBwaXhlbHMKPiA+ID4gPiA+ICsg KiBoZWlnaHQgLSB1aW50MzJfdCwgaGVpZ2h0IGluIHBpeGVscwo+ID4gPiA+IFdoeT8gSXNuJ3Qg dGhhdCBpbiB0aGUgJ3Jlc29sdXRpb24nIFhlbkJ1cyBlbnRyeT8KPiA+ID4gSXQgY2FuIGJlIGJp Z2dlciB0aGF0IHRoZSByZXNvbHV0aW9uLCBmb3IgZXhhbXBsZQo+ID4gPiBpZiBzY2FsaW5nIHdp bGwgdGFrZSBwbGFjZS4KPiA+IEhvdyB3b3VsZCB5b3UgcmVmbGVjdCB0aGUgc2NhbGluZyBwYXJ0 IG9mIHRoaXM/IElzIHRoYXQgc29tZXRoaW5nCj4gPiB0aGF0IGlzIGFzc3VtZWQgaWYgdGhlIFhl bkJ1cyByZXNvbHV0aW9uIHZhbHVlIDwgd2lkdGh4aGVpZ2h0IHZhbHVlcz8KPiBBcyBpbiB0aGUg YWJvdmUgZXhhbXBsZSB3aXRoIGJhY2sgdXRpbGl6aW5nIGFuIFNXIGNvbXBvc2l0b3IsCj4gc2Nh bGluZyB3aWxsIGJlIGRvbmUgYnkgdGhlIGJhY2tlbmQsIGZyb250IG5vd3Mgbm90aGluZwo+IGFi b3V0IHRoZSBkZXN0aW55IG9mIHRoZSBidWZmZXJzIGl0IHdhbnRzIHRvIHNob3cKPiBTbywgbm8g bmVlZCB0byB3b3JyeSBhYm91dCB3aWR0aFhoZWlnaHRYZGVwdGggb2YgdGhlIGJ1ZmZlcnMKPiA+ ID4gPiBJZiBub3QsIHdoeSBldmVuIGhhdmUgdGhlICdyZXNvbHV0aW9uJyBmaWVsZD8KPiA+ID4g VGhlIGNvbmZ1c2lvbiBjb21lcyBmcm9tIHRoZSBmYWN0IHRoYXQgdGhlIHJlc29sdXRpb24gaXMg dmlzaWJsZSBhcmVhOgo+ID4gPiB3aWxsIHN0YXRlIHRoYXQgY2xlYXJseS4KPiA+ID4gPiBBbmQg YWxzbyAtIHdoYXQgaWYgdGhlIHdpZHRoIG9yIGhlaWdodCBhcmUgYmlnZ2VyIHRoYW4gJ3Jlc29s dXRpb24nPwo+ID4gPiA+IFNob3VsZCAtRUlOVkFMIGJlIHJldHVybmVkPwo+ID4gPiA+IAo+ID4g PiBubyBwcm9ibGVtIGhlcmU6IHdlIGNhbiBoYXZlIGJ1ZmZlcnMgYmlnZ2VyIHRoYW4gdmlzaWJs ZSBhcmVhCj4gPiA+ID4gPiArICogYnBwIC0gdWludDMyX3QsIGJpdHMgcGVyIHBpeGVsCj4gPiA+ ID4gPiArICogYnVmZmVyX3N6IC0gdWludDMyX3QsIGJ1ZmZlciBzaXplIHRvIGJlIGFsbG9jYXRl ZCwgb2N0ZXRzCj4gPiA+ID4gPiArICogZmxhZ3MgLSB1aW50MzJfdCwgZmxhZ3Mgb2YgdGhlIG9w ZXJhdGlvbgo+ID4gPiA+ID4gKyAqICAgbyBYRU5ESVNQTF9EQlVGX0ZMR19SRVFfQUxMT0MgLSBp ZiBzZXQsIHRoZW4gYmFja2VuZCBpcyByZXF1ZXN0ZWQKPiA+ID4gPiA+ICsgKiAgICAgdG8gYWxs b2NhdGUgdGhlIGJ1ZmZlciB3aXRoIHRoZSBwYXJhbWV0ZXJzIHByb3ZpZGVkIGluIHRoaXMgcmVx dWVzdC4KPiA+ID4gPiA+ICsgKiAgICAgUGFnZSBkaXJlY3RvcnkgaXMgaGFuZGxlZCBhcyBmb2xs b3dzOgo+ID4gPiA+ID4gKyAqICAgICAgIEZyb250ZW5kIG9uIHJlcXVlc3Q6Cj4gPiA+ID4gPiAr ICogICAgICAgICBvIGFsbG9jYXRlcyBwYWdlcyBmb3IgdGhlIGRpcmVjdG9yeQo+ID4gPiA+ID4g KyAqICAgICAgICAgbyBncmFudHMgcGVybWlzc2lvbnMgZm9yIHRoZSBwYWdlcyBvZiB0aGUgZGly ZWN0b3J5Cj4gPiA+ID4gPiArICogICAgICAgICBvIHNldHMgZ3JlZl9kaXJfbmV4dF9wYWdlIGZp ZWxkcwo+ID4gPiA+ID4gKyAqICAgICAgIEJhY2tlbmQgb24gcmVzcG9uc2U6Cj4gPiA+ID4gPiAr ICogICAgICAgICBvIGdyYW50cyBwZXJtaXNzaW9ucyBmb3IgdGhlIHBhZ2VzIG9mIHRoZSBidWZm ZXIgYWxsb2NhdGVkCj4gPiA+ID4gPHNjcmF0Y2hlcyBoaXMgaGVhZD4KPiA+ID4gPiA+ICsgKiAg ICAgICAgIG8gZmlsbHMgaW4gcGFnZSBkaXJlY3Rvcnkgd2l0aCBncmFudCByZWZlcmVuY2VzCj4g PiA+ID4gVGhlIGJhY2tlbmQgcHJvdmlkZXMgdGhlIHBhZ2VzIGluc3RlYWQgb2YgdGhlIGZyb250 ZW5kPyBCdXQgeW91IHNhaWQKPiA+ID4gPiAnYWxsb2NhdGVkIHBhZ2VzIGZvciB0aGUgZGlyZWN0 b3J5JyBpbiB0aGUgZnJvbnRuZWQgcGFydCAtIGFuZCBzaW5jZSB5b3UKPiA+ID4gPiBzYXkgJ3Bh Z2VzJyB0aGF0IG1lYW5zIG1vcmUgdGhhbiBvbmU/IE9yIGRpZCB5b3UgbWVhbiAndGhlIGdyZWZf ZGlyZWN0b3J5Jwo+ID4gPiA+IHBhZ2UgYW5kIHRoZSAnZ3JlZl9kaXJfbmV4dF9wYWdlJyBwYWdl cz8gWW91IG1heSB3YW50IHRvIGJlIGV4cGxpY2l0Lgo+ID4gPiA+IAo+ID4gPiBzdXJlLCBJIHdp bGwgc3RhdGUgaXQgY2xlYXJseSB0aGF0IG9ubHkgZGlyZWN0b3J5IHBhZ2VzCj4gPiA+IGFyZSBh bGxvY2F0ZWQ6IGdyZWZfZGlyZWN0b3J5ICsgZ3JlZl9kaXJfbmV4dF9wYWdlKHMpCj4gPiBUaHgK PiA+ID4gPiBBbmQgd2hhdCBpZiB0aGUgJ2ZsYWdzJyBpcyB6ZXJvPwo+ID4gPiBpdCB3b3VsZCBt ZWFuIHRoYXQgZXZlbiB0aGF0IHRoZSBiYWNrZW5kIGNhbiBhbGxvY2F0ZSBidWZmZXJzCj4gPiA+ IGZvciB1cyB3ZSBkb24ndCB3YW50IGl0IHRvIGRvIHNvLCB3ZSB3aWxsIGFsbG9jYXRlIG9uIG91 ciBvd246Cj4gPiA+IGZsYWcgaXMgbm90IHNldAo+ID4gPiA+IE9yIDB4MzE0PyBQZXJoYXBzIGFs c28gbWVudGlvbgo+ID4gPiA+IHRoZSBkZWZhdWx0IG9uZSAoMCBJIHByZXN1bWUpIHdoaWNoIHdv dWxkIG1ha2UgdGhlIGJhY2tlbmQgbWFwCj4gPiA+ID4gdGhlIGZyb250ZW5kIHBhZ2VzIHByb3Zp ZGVkIGluICdncmVmX2RpcmVjdG9yeSc/Cj4gPiA+IHllcywgSSdsbCBwdXQgYSBub3RlIG9uIGRl ZmF1bHRzCj4gPiBBd2Vzb21lIQo+ID4gPiA+ID4gKyAqIGdyZWZfZGlyZWN0b3J5IC0gZ3JhbnRf cmVmX3QsIGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJzdCBzaGFyZWQgcGFnZQo+ID4gPiA+ID4gKyAq ICAgZGVzY3JpYmluZyBzaGFyZWQgYnVmZmVyIHJlZmVyZW5jZXMuIEF0IGxlYXN0IG9uZSBwYWdl IGV4aXN0cy4gSWYgc2hhcmVkCj4gPiA+ID4gPiArICogICBidWZmZXIgc2l6ZSAgKGJ1ZmZlcl9z eikgZXhjZWVkcyB3aGF0IGNhbiBiZSBhZGRyZXNzZWQgYnkgdGhpcyBzaW5nbGUgcGFnZSwKPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICBeLSBleHRyYSBzcGFjZQo+ID4gPiBkb25lCj4gPiA+ ID4gPiArICogICB0aGVuIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdlIG11c3QgYmUgc3VwcGxp ZWQgKHNlZSBncmVmX2Rpcl9uZXh0X3BhZ2UKPiA+ID4gPiA+ICsgKiAgIGJlbG93KQo+ID4gPiA+ ID4gKyAqLwo+ID4gPiA+IFdoYXQgYXJlIHNvbWUgb2YgdGhlIHJldHVybiBlcnJvcnMgPyBXb3Vs ZCBpdCBtYWtlIHNlbnNlIHRvIG1lbnRpb24KPiA+ID4gPiBzb21lPwo+ID4gPiBub3Qgc3VyZSwg dGhpcyB3YXkgd2lsbCBkaWN0YXRlIGltcGxlbWVudGF0aW9uIGRldGFpbHMsCj4gPiA+IGJ1dCB3 ZSBhcmUgZGVmaW5pbmcgcHJvdG9jb2wKPiA+IFRydWUgdG8gYW4gZXh0ZW50Lgo+IEFuZCB0aGF0 IGV4dGVudCBtYWtlcyBtZSBiZWxpZXZlIHdlIHNob3VsZG4ndCBkaWN0YXRlCj4gZXJyb3IgY29k ZXMgaGVyZS4gUE9TSVggZXJyb3IgY29kZXMgYXJlIChzb21ldGltZXMgOikKPiBtb3JlIHRoYW4g ZGVzY3JpcHRpdmUgKQo+ID4gPiA+IFdoYXQgdG8gZm9yIGV4YW1wbGUgaWYgdGhlcmUgYXJlIG11 bHRpcGxlICBfT1BfREJVRl9DUkVBVEUKPiA+ID4gPiB3aXRoIHRoZSBzYW1lIGRidWZfY29va2ll IGJ1dCB3aXRoIGRpZmZlcmVudCB3aWR0aC9oZWlnaHQ/Cj4gPiA+IGl0IHdpbGwgYmUgYW4gZXJy b3IsIEkgd2lsbCBjbGVhcmx5IHN0YXRlIHRoaXM6Cj4gPiA+ICAgKiBBbiBhdHRlbXB0IHRvIGNy ZWF0ZSBtdWx0aXBsZSBkaXNwbGF5IGJ1ZmZlcnMgd2l0aCB0aGUgc2FtZSBkYnVmX2Nvb2tpZQo+ ID4gPiBpcwo+ID4gPiAgICogYW4gZXJyb3IuIGRidWZfY29va2llIGNhbiBiZSByZS11c2VkIGFm dGVyIGRlc3Ryb3lpbmcgdGhlIGNvcnJlc3BvbmRpbmcKPiA+ID4gICAqIGRpc3BsYXkgYnVmZmVy Lgo+ID4gTWF5IGFsc28gd2FudCB0byBzYXkgd2hhdCBlcnJvciB2YWx1ZSBpdCBzaG91bGQgYmUu IC1FQUdBSU4/IE5vIHByb2JhYmx5IHNvbWV0aGluZwo+ID4gZGlmZmVyZW50Lgo+IEFzIGFib3Zl LCBJIHdvdWxkIHByZWZlciB0byBub3QgcHV0IGFueXRoaW5nCgpPSy4KPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ICsjZGVmaW5lIFhFTkRJU1BMX0RCVUZfRkxHX1JFUV9BTExPQyAgICAgICAweDAwMDEK PiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtzdHJ1Y3QgeGVuZGlzcGxfZGJ1Zl9jcmVhdGVfcmVxIHsK PiA+ID4gPiA+ICsgICAgdWludDY0X3QgZGJ1Zl9jb29raWU7Cj4gPiA+ID4gPiArICAgIHVpbnQz Ml90IHdpZHRoOwo+ID4gPiA+ID4gKyAgICB1aW50MzJfdCBoZWlnaHQ7Cj4gPiA+ID4gPiArICAg IHVpbnQzMl90IGJwcDsKPiA+ID4gPiA+ICsgICAgdWludDMyX3QgYnVmZmVyX3N6Owo+ID4gPiA+ ID4gKyAgICB1aW50MzJfdCBmbGFnczsKPiA+ID4gPiA+ICsgICAgZ3JhbnRfcmVmX3QgZ3JlZl9k aXJlY3Rvcnk7Cj4gPiA+ID4gPiArfTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsvKgo+ID4gPiA+ ID4gKyAqIFNoYXJlZCBwYWdlIGZvciBYRU5ESVNQTF9PUF9EQlVGX0NSRUFURSBidWZmZXIgZGVz Y3JpcHRvciAoZ3JlZl9kaXJlY3RvcnkgaW4KPiA+ID4gPiA+ICsgKiB0aGUgcmVxdWVzdCkgZW1w bG95cyBhIGxpc3Qgb2YgcGFnZXMsIGRlc2NyaWJpbmcgYWxsIHBhZ2VzIG9mIHRoZSBzaGFyZWQK PiA+ID4gPiA+ICsgKiBkYXRhIGJ1ZmZlcjoKPiA+ID4gPiA+ICsgKiAgICAgICAgIDAgICAgICAg ICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0 Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAg ICAgICAgICAgIGdyZWZfZGlyX25leHRfcGFnZSAgICAgICAgICAgICAgICAgICAgICAgICB8IDQK PiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3JlZlswXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ID4g PiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBncmVmW2ldICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpKjQrOAo+ ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ID4g PiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdyZWZbTiAtIDFdICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOKjQrOAo+ ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogZ3Jl Zl9kaXJfbmV4dF9wYWdlIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdl IGRlc2NyaWJpbmcKPiA+ID4gPiA+ICsgKiAgIHBhZ2UgZGlyZWN0b3J5LiBNdXN0IGJlIDAgaWYg dGhlcmUgYXJlIG5vIG1vcmUgcGFnZXMgaW4gdGhlIGxpc3QuCj4gPiA+ID4gPiArICogZ3JlZltp XSAtIGdyYW50X3JlZl90LCByZWZlcmVuY2UgdG8gYSBzaGFyZWQgcGFnZSBvZiB0aGUgYnVmZmVy Cj4gPiA+ID4gPiArICogICBhbGxvY2F0ZWQgYXQgWEVORElTUExfT1BfREJVRl9DUkVBVEUKPiA+ ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIE51bWJlciBvZiBncmFudF9yZWZfdCBlbnRyaWVzIGlu IHRoZSB3aG9sZSBwYWdlIGRpcmVjdG9yeSBpcyBub3QKPiA+ID4gPiA+ICsgKiBwYXNzZWQsIGJ1 dCBpbnN0ZWFkIGNhbiBiZSBjYWxjdWxhdGVkIGFzOgo+ID4gPiA+ID4gKyAqICAgbnVtX2dyZWZz X3RvdGFsID0gKFhFTkRJU1BMX09QX0RCVUZfQ1JFQVRFLmJ1ZmZlcl9zeiArIFhFTl9QQUdFX1NJ WkUgLSAxKSAvCj4gPiA+ID4gPiArICogICAgICAgWEVOX1BBR0VfU0laRQo+ID4gPiA+ID4gKyAq Lwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gK3N0cnVjdCB4ZW5kaXNwbF9wYWdlX2RpcmVjdG9yeSB7 Cj4gPiA+ID4gPiArICAgIGdyYW50X3JlZl90IGdyZWZfZGlyX25leHRfcGFnZTsKPiA+ID4gPiA+ ICsgICAgZ3JhbnRfcmVmX3QgZ3JlZlsxXTsgLyogVmFyaWFibGUgbGVuZ3RoICovCj4gPiA+ID4g PiArfTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsvKgo+ID4gPiA+ID4gKyAqIFJlcXVlc3QgZGJ1 ZiBkZXN0cnVjdGlvbiAtIGRlc3Ryb3kgYSBwcmV2aW91c2x5IGFsbG9jYXRlZCBkaXNwbGF5IGJ1 ZmZlcjoKPiA+ID4gPiA+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAg ICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4gPiA+ID4gPiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHxf T1BfREJVRl9ERVNUUk9ZfCAgIHJlc2VydmVkICAgICB8IDQKPiA+ID4gPiA+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ID4gPiA+ID4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgIGRidWZfY29va2llIGxv dyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgfCAxMgo+ID4gPiA+ID4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgIGRidWZfY29va2llIGhp Z2ggMzItYml0ICAgICAgICAgICAgICAgICAgICAgfCAxNgo+ID4gPiA+ID4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAo+ID4gPiA+ID4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+ID4gPiA+ID4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ID4gPiA+ID4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+ID4gPiA+ID4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogTXVzdCBiZSBzZW50IG92ZXIgY29udHJvbCBy aW5nIG9mIHRoZSBjb25uZWN0b3Igd2l0aCBpbmRleCAwLgo+ID4gPiA+ID4gKyAqLwo+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gK3N0cnVjdCB4ZW5kaXNwbF9kYnVmX2Rlc3Ryb3lfcmVxIHsKPiA+ID4g PiA+ICsgICAgdWludDY0X3QgZGJ1Zl9jb29raWU7Cj4gPiA+ID4gPiArfTsKPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICsvKgo+ID4gPiA+ID4gKyAqIFJlcXVlc3QgZnJhbWVidWZmZXIgYXR0YWNobWVu dCAtIHJlcXVlc3QgYXR0YWNobWVudCBvZiBhIGZyYW1lYnVmZmVyIHRvCj4gPiA+ID4gPiArICog cHJldmlvdXNseSBjcmVhdGVkIGRpc3BsYXkgYnVmZmVyLgo+ID4gPiA+ID4gKyAqICAgICAgICAg MCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAg ICAgb2N0ZXQKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAg ICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCBfT1BfRkJfQVRUQUNIICB8ICAgcmVzZXJ2ZWQg ICAgIHwgNAo+ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCA4Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgZGJ1Zl9jb29raWUgbG93IDMyLWJpdCAgICAgICAgICAgICAgICAgICAg ICB8IDEyCj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgZGJ1Zl9jb29raWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAg ICB8IDE2Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgIGZiX2Nvb2tpZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAg ICB8IDIwCj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgIGZiX2Nvb2tpZSBoaWdoIDMyLWJpdCAgICAgICAgICAgICAgICAgICAg ICB8IDI0Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDI4Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDMyCj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwaXhlbF9mb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDM2Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDQwCj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC98Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDY0Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsg KiBNdXN0IGJlIHNlbnQgb3ZlciBjb250cm9sIHJpbmcgb2YgdGhlIGNvbm5lY3RvciB3aXRoIGlu ZGV4IDAuCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiB3aWR0aCAtIHVpbnQzMl90LCB3aWR0 aCBpbiBwaXhlbHMKPiA+ID4gPiA+ICsgKiBoZWlnaHQgLSB1aW50MzJfdCwgaGVpZ2h0IGluIHBp eGVscwo+ID4gPiA+IFdoeT8gVGhlIF9PUF9EQlVGX0NSRUFURSBhbHJlYWR5IHNwZWNpZmllZCB0 aGUgaGVpZ2h0L3dpZHRoLiBXaHkgaGF2ZSB0aGlzPwo+ID4gPiA+IAo+ID4gPiA+IE9yIGFyZSB5 b3UgdGhpbmtpbmcgdG8gaGF2ZSBhbiBzbWFsbGVyIChvciBiaWdnZXI/KSByZXNvbHV0aW9uIGZy YW1lYnVmZmVyCj4gPiA+ID4gdGhhbiB0aGUgZGlzcGxheT8gSSBzdXBwb3NlIHlvdSBjYW4gZG8g dGhhdCB3aGljaCB3b3VsZCBpbXBseSB0aGF0IHRoZSBkaXNwbGF5Cj4gPiA+ID4gd291bGQgc3dp dGNoIG1vZGVzPyBQZXJoYXBzIG1lbnRpb24gdGhpcz8KPiA+ID4gPiAKPiA+ID4gPiBBbHNvIHdo YXQgaWYgdGhlc2UgdmFsdWVzIGFyZSBiaWdnZXIgKG9yIGxlc3NlcikgdGhhbiAncmVzb2x1dGlv bicgPwo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+ID4gKyAqIHBpeGVsX2Zvcm1hdCAtIHVpbnQz Ml90LCBwaXhlbCBmb3JtYXQgb2YgdGhlIGZyYW1lYnVmZmVyLCBGT1VSQ0MgY29kZQo+ID4gPiA+ IFlvdSBkaWQgbm90IG1lbnRpb24gdGhlIGZiX2Nvb2tpZT8KPiA+ID4gSSBoYXZlIGEgY29tbW9u IHNlY3Rpb246Cj4gPiA+ICAgKiBGb3IgYWxsIHJlcXVlc3QvcmVzcG9uc2UvZXZlbnQgcGFja2V0 cyB0aGF0IHVzZSBjb29raWVzOgo+ID4gPiAgICogICBkYnVmX2Nvb2tpZSAtIHVpbnQ2NF90LCB1 bmlxdWUgdG8gZ3Vlc3QgZG9tYWluIHZhbHVlIHVzZWQgYnkgdGhlCj4gPiA+IGJhY2tlbmQKPiA+ ID4gICAqICAgICB0byBtYXAgcmVtb3RlIGRpc3BsYXkgYnVmZmVyIHRvIGl0cyBsb2NhbCBvbmUK PiA+ID4gICAqICAgZmJfY29va2llIC0gdWludDY0X3QsIHVuaXF1ZSB0byBndWVzdCBkb21haW4g dmFsdWUgdXNlZCBieSB0aGUgYmFja2VuZAo+ID4gPiAgICogICAgIHRvIG1hcCByZW1vdGUgZnJh bWVidWZmZXIgdG8gaXRzIGxvY2FsIG9uZQo+ID4gPiBCdXQgaXQgaXMgaW4gdGhlICJSZXF1ZXN0 cyIgc2VjdGlvbiAtIEknbGwgcHVsbCBpdCBvdXQgdG8gYmUgY29tbW9uIGZvciBhbGwKPiA+IEFh YWFoIQo+ID4gPiA+ID4gKyAqLwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gK3N0cnVjdCB4ZW5kaXNw bF9mYl9hdHRhY2hfcmVxIHsKPiA+ID4gPiA+ICsgICAgdWludDY0X3QgZGJ1Zl9jb29raWU7Cj4g PiA+ID4gPiArICAgIHVpbnQ2NF90IGZiX2Nvb2tpZTsKPiA+ID4gPiA+ICsgICAgdWludDMyX3Qg d2lkdGg7Cj4gPiA+ID4gPiArICAgIHVpbnQzMl90IGhlaWdodDsKPiA+ID4gPiA+ICsgICAgdWlu dDMyX3QgcGl4ZWxfZm9ybWF0Owo+ID4gPiA+ID4gK307Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAr LyoKPiA+ID4gPiA+ICsgKiBSZXF1ZXN0IGZyYW1lYnVmZmVyIGRldGFjaCAtIGRldGFjaCBhIHBy ZXZpb3VzbHkKPiA+ID4gPiA+ICsgKiBhdHRhY2hlZCBmcmFtZWJ1ZmZlciBmcm9tIHRoZSBkaXNw bGF5IGJ1ZmZlciBpbiByZXF1ZXN0Ogo+ID4gPiA+ID4gKyAqICAgICAgICAgMCAgICAgICAgICAg ICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiA+ ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAgICAgICAgICAgaWQg ICAgICAgICAgICAgICAgfCAgX09QX0ZCX0RFVEFDSCB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+ID4g PiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gPiA+ ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgIGZiX2Nvb2tpZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gPiA+ ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgIGZiX2Nvb2tpZSBoaWdoIDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4gPiA+ ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCj4gPiA+ ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gPiA+ID4g PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4gPiA+ID4g PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBNdXN0IGJlIHNl bnQgb3ZlciBjb250cm9sIHJpbmcgb2YgdGhlIGNvbm5lY3RvciB3aXRoIGluZGV4IDAuCj4gPiA+ ID4gPiArICovCj4gPiA+ID4gPiArCj4gPiA+ID4gPiArc3RydWN0IHhlbmRpc3BsX2ZiX2RldGFj aF9yZXEgewo+ID4gPiA+ID4gKyAgICB1aW50NjRfdCBmYl9jb29raWU7Cj4gPiA+ID4gPiArfTsK PiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsvKgo+ID4gPiA+ID4gKyAqIFJlcXVlc3QgY29uZmlndXJh dGlvbiBzZXQvcmVzZXQgLSByZXF1ZXN0IHRvIHNldCBvciByZXNldAo+ID4gPiA+ID4gKyAqIHRo ZSBjb25maWd1cmF0aW9uL21vZGUgb2YgdGhlIGRpc3BsYXk6Cj4gPiA+ID4gPiArICogICAgICAg ICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAg ICAgICBvY3RldAo+ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAg ICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IF9PUF9TRVRfQ09ORklHIHwgICByZXNlcnZl ZCAgICAgfCA0Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDgKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgZmJfY29va2llIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAg ICAgIHwgMTIKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgZmJfY29va2llIGhpZ2ggMzItYml0ICAgICAgICAgICAgICAgICAg ICAgIHwgMTYKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMjAKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMjQKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMjgKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMzIKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicHAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgNDAKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgNDQKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8L1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL3wKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgNjQKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4g KyAqIFBhc3MgYWxsIHplcm9zIHRvIHJlc2V0LCBvdGhlcndpc2UgY29tbWFuZCBpcyB0cmVhdGVk IGFzCj4gPiA+ID4gPiArICogY29uZmlndXJhdGlvbiBzZXQuCj4gPiA+ID4gQWxsIHplcm9zPyBJ bmNsdWRpbmcgZmJfY29va2llPwo+ID4gPiBZZXMsIGZiX2Nvb2tpZSBpcyAwIHdoZW4gd2UgZGlz YWJsZSB0aGUgZGlzcGxheSwgYXMgYXQgdGhpcyBwb2ludCB0aGVyZQo+ID4gPiBjb3VsZCBiZSBu byBmYiBhdCBhbGwgKGFsbCByZWxlYXNlZCBieSB0aGF0IHRpbWUpCj4gPiA+ID4gPiArICogSWYg dGhpcyBpcyBhIHNldCBjb25maWd1cmF0aW9uIHJlcXVlc3QgdGhlbiBmcmFtZWJ1ZmZlcidzIGNv b2tpZSB0ZWxscwo+ID4gPiA+IE5vdCBzdXJlIGlmIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBzZW50 ZW5jZSBpcyBuZWVkZWQuIFRoaXMgaXMgYWZ0ZXIgYWxsCj4gPiA+ID4gdGhlIHNlY3Rpb24gdGhh dCB0YWxrcyBhYm91dCBzZXR0aW5nIGNvbmZpZ3VyYXRpb25zLgo+ID4gPiBvaywgd2lsbCByZW1v dmUgaXQKPiA+ID4gPiA+ICsgKiB0aGUgZGlzcGxheSB3aGljaCBmcmFtZWJ1ZmZlci9kYnVmIG11 c3QgYmUgZGlzcGxheWVkIHdoaWxlIGVuYWJsaW5nIGRpc3BsYXkKPiA+ID4gPiA+ICsgKiAoYXBw bHlpbmcgY29uZmlndXJhdGlvbikuCj4gPiA+ID4gQ2FuIHlvdSBkaXNhYmxlIGFuIGRpc3BsYXkg d2l0aG91dCBjaGFuZ2luZyB0aGlzPwo+ID4gPiBZb3UgcGFzcyBBTEwgemVyb3MsIGluY2x1ZGlu ZyBmYl9jb29raWUgdG8gZGlzYWJsZS9yZXNldC4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAq IHggLSB1aW50MzJfdCwgc3RhcnRpbmcgcG9zaXRpb24gaW4gcGl4ZWxzIGJ5IFggYXhpcwo+ID4g PiA+ID4gKyAqIHkgLSB1aW50MzJfdCwgc3RhcnRpbmcgcG9zaXRpb24gaW4gcGl4ZWxzIGJ5IFkg YXhpcwo+ID4gPiA+IFdoaWNoIGlzIGJvdW5kIGJ5ICdyZXNvbHV0aW9uJyA/IE9yIGJ5IHRoZSBk aXNwbGF5IGNvbW1hbmQ/Cj4gPiA+IHRoZXNlIGFyZSBsaW1pdGVkIGJ5IHRoZSAicmVzb2x1dGlv biIgLSB3aWxsIHN0YXRlIHRoYXQ6Cj4gPiA+ICAgKiB4LCB5LCB3aWR0aCBhbmQgaGVpZ2h0IGFy ZSBib3VuZCBieSB0aGUgY29ubmVjdG9yIHJlc29sdXRpb24gYW5kIG11c3Qgbm90Cj4gPiA+ICAg KiBleGNlZWQgaXQuCj4gPiBUaGFua3MhCj4gQlRXLCB0aGlzIGlzIHRoZSBvbmx5IHBsYWNlIEFU TSB3aGVyZSB3ZSBzdGljayB0byByZXNvbHV0aW9uCj4gZnJvbSBYZW5TdG9yZS4uLiBBbmQgaXQg d2lsbCBjbGVhcmx5IGJlIHN0YXRlZAoKL21lIG5vZHMKPiA+ID4gPiA+ICsgKiB3aWR0aCAtIHVp bnQzMl90LCB3aWR0aCBpbiBwaXhlbHMKPiA+ID4gPiA+ICsgKiBoZWlnaHQgLSB1aW50MzJfdCwg aGVpZ2h0IGluIHBpeGVscwo+ID4gPiA+ID4gKyAqIGJwcCAtIHVpbnQzMl90LCBiaXRzIHBlciBw aXhlbAo+ID4gPiA+IFNob3VsZG4ndCB0aGVyZSBiZSBhbiBzdHJpZGUgYXMgd2VsbD8KPiA+ID4g bm8sIHN0cmlkZSBpcyBraW5kIG9mIGltcGxlbWVudGF0aW9uIGRldGFpbCB3aGljaCBzaG91bGRu J3QKPiA+ID4gYmUgaW4gdGhlIHByb3RvY29sCj4gPiA+ID4gPiArICovCj4gPiA+ID4gPiArCj4g PiA+ID4gPiArc3RydWN0IHhlbmRpc3BsX3NldF9jb25maWdfcmVxIHsKPiA+ID4gPiA+ICsgICAg dWludDY0X3QgZmJfY29va2llOwo+ID4gPiA+ID4gKyAgICB1aW50MzJfdCB4Owo+ID4gPiA+ID4g KyAgICB1aW50MzJfdCB5Owo+ID4gPiA+ID4gKyAgICB1aW50MzJfdCB3aWR0aDsKPiA+ID4gPiA+ ICsgICAgdWludDMyX3QgaGVpZ2h0Owo+ID4gPiA+ID4gKyAgICB1aW50MzJfdCBicHA7Cj4gPiA+ ID4gPiArfTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsvKgo+ID4gPiA+ID4gKyAqIFJlcXVlc3Qg cGFnZSBmbGlwIC0gcmVxdWVzdCB0byBmbGlwIGEgcGFnZSBpZGVudGlmaWVkIGJ5IHRoZSBmcmFt ZWJ1ZmZlcgo+ID4gPiA+ID4gKyAqIGNvb2tpZToKPiA+ID4gPiA+ICsgKiAgICAgICAgIDAgICAg ICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9j dGV0Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAg ICAgIGlkICAgICAgICAgICAgICAgIHwgX09QX1BHX0ZMSVAgICAgfCAgIHJlc2VydmVkICAgICB8 IDQKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg OAo+ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICBmYl9jb29raWUgbG93IDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICAgfCAx Mgo+ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICBmYl9jb29raWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgfCAx Ngo+ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAy MAo+ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+ ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqLwo+ID4gPiA+ID4gKwo+ID4g PiA+ID4gK3N0cnVjdCB4ZW5kaXNwbF9wYWdlX2ZsaXBfcmVxIHsKPiA+ID4gPiA+ICsgICAgdWlu dDY0X3QgZmJfY29va2llOwo+ID4gPiA+ID4gK307Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArLyoK PiA+ID4gPiA+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVzcG9uc2Vz IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ ICsgKiBBbGwgcmVzcG9uc2UgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgb2N0ZXRz KQo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogQWxsIHJlc3BvbnNlIHBhY2tldHMgaGF2ZSBj b21tb24gaGVhZGVyOgo+ID4gPiA+ID4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAg ICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiA+ID4gPiA+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgIHwgNAo+ID4gPiA+ID4gKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gPiA+ID4gPiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gPiA+ID4gPiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4gPiA+ID4gPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBpZCAtIHVpbnQxNl90LCBwcml2 YXRlIGd1ZXN0IHZhbHVlLCBlY2hvZWQgZnJvbSByZXF1ZXN0Cj4gPiA+ID4gPiArICogc3RhdHVz IC0gaW50MzJfdCwgcmVzcG9uc2Ugc3RhdHVzLCB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIC1YRU5fRVhY IG9uIGZhaWx1cmUKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gRXZlbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIEV2ZW50cyBhcmUgc2VudCB2aWEgYSBzaGFy ZWQgcGFnZSBhbGxvY2F0ZWQgYnkgdGhlIGZyb250IGFuZCBwcm9wYWdhdGVkIGJ5Cj4gPiA+ID4g PiArICogICBldmVudC1jaGFubmVsL2V2ZW50LXJpbmctcmVmIFhlblN0b3JlIGVudHJpZXMKPiA+ ID4gPiA+ICsgKiBBbGwgZXZlbnQgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgb2N0 ZXRzKQo+ID4gPiA+ID4gKyAqIEFsbCBldmVudCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoK PiA+ID4gPiA+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAg MiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4gPiA+ID4gPiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAgICB0 eXBlICAgICAgfCAgIHJlc2VydmVkICAgICB8IDQKPiA+ID4gPiA+ICsgKiArLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK PiA+ID4gPiA+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ID4gPiA+ID4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogaWQgLSB1aW50MTZfdCwgZXZlbnQgaWQsIG1heSBi ZSB1c2VkIGJ5IGZyb250Cj4gPiA+ID4gPiArICogdHlwZSAtIHVpbnQ4X3QsIHR5cGUgb2YgdGhl IGV2ZW50Cj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIFBhZ2UgZmxp cCBjb21wbGV0ZSBldmVudCAtIGV2ZW50IGZyb20gYmFjayB0byBmcm9udCBvbiBwYWdlIGZsaXAg Y29tcGxldGVkOgo+ID4gPiA+ID4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAg ICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiA+ID4gPiA+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPiA+ID4gPiA+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAg ICAgfCAgIF9FVlRfUEdfRkxJUCB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+ID4gPiA+ID4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+ID4gPiA+ID4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgIGZiX2Nvb2tp ZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgIGZiX2Nvb2tp ZSBoaWdoIDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCj4gPiA+ID4gPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gPiA+ID4gPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gPiA+ID4gPiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4gPiA+ID4gPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2 ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4gPiA+ID4gPiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4gPiA+ID4gPiArICovCj4gPiA+ID4gPiArCj4gPiA+ID4gPiArc3RydWN0IHhlbmRp c3BsX3BnX2ZsaXBfZXZ0IHsKPiA+ID4gPiA+ICsgICAgdWludDY0X3QgZmJfY29va2llOwo+ID4g PiA+ID4gK307Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArc3RydWN0IHhlbmRpc3BsX3JlcSB7Cj4g PiA+ID4gPiArICAgIHVpbnQxNl90IGlkOwo+ID4gPiA+ID4gKyAgICB1aW50OF90IG9wZXJhdGlv bjsKPiA+ID4gPiA+ICsgICAgdWludDhfdCByZXNlcnZlZFs1XTsKPiA+ID4gPiA+ICsgICAgdW5p b24gewo+ID4gPiA+ID4gKyAgICAgICAgc3RydWN0IHhlbmRpc3BsX2RidWZfY3JlYXRlX3JlcSBk YnVmX2NyZWF0ZTsKPiA+ID4gPiA+ICsgICAgICAgIHN0cnVjdCB4ZW5kaXNwbF9kYnVmX2Rlc3Ry b3lfcmVxIGRidWZfZGVzdHJveTsKPiA+ID4gPiA+ICsgICAgICAgIHN0cnVjdCB4ZW5kaXNwbF9m Yl9hdHRhY2hfcmVxIGZiX2F0dGFjaDsKPiA+ID4gPiA+ICsgICAgICAgIHN0cnVjdCB4ZW5kaXNw bF9mYl9kZXRhY2hfcmVxIGZiX2RldGFjaDsKPiA+ID4gPiA+ICsgICAgICAgIHN0cnVjdCB4ZW5k aXNwbF9zZXRfY29uZmlnX3JlcSBzZXRfY29uZmlnOwo+ID4gPiA+ID4gKyAgICAgICAgc3RydWN0 IHhlbmRpc3BsX3BhZ2VfZmxpcF9yZXEgcGdfZmxpcDsKPiA+ID4gPiA+ICsgICAgICAgIHVpbnQ4 X3QgcmVzZXJ2ZWRbNTZdOwo+ID4gPiA+ID4gKyAgICB9IG9wOwo+ID4gPiA+ID4gK307Cj4gPiA+ ID4gPiArCj4gPiA+ID4gPiArc3RydWN0IHhlbmRpc3BsX3Jlc3Agewo+ID4gPiA+ID4gKyAgICB1 aW50MTZfdCBpZDsKPiA+ID4gPiA+ICsgICAgdWludDhfdCBvcGVyYXRpb247Cj4gPiA+ID4gPiAr ICAgIHVpbnQ4X3QgcmVzZXJ2ZWQ7Cj4gPiA+ID4gPiArICAgIGludDMyX3Qgc3RhdHVzOwo+ID4g PiA+ID4gKyAgICB1aW50OF90IHJlc2VydmVkMVs1Nl07Cj4gPiA+ID4gPiArfTsKPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ICtzdHJ1Y3QgeGVuZGlzcGxfZXZ0IHsKPiA+ID4gPiA+ICsgICAgdWludDE2 X3QgaWQ7Cj4gPiA+ID4gPiArICAgIHVpbnQ4X3QgdHlwZTsKPiA+ID4gPiA+ICsgICAgdWludDhf dCByZXNlcnZlZFs1XTsKPiA+ID4gPiA+ICsgICAgdW5pb24gewo+ID4gPiA+ID4gKyAgICAgICAg c3RydWN0IHhlbmRpc3BsX3BnX2ZsaXBfZXZ0IHBnX2ZsaXA7Cj4gPiA+ID4gPiArICAgICAgICB1 aW50OF90IHJlc2VydmVkWzU2XTsKPiA+ID4gPiA+ICsgICAgfSBvcDsKPiA+ID4gPiA+ICt9Owo+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gK0RFRklORV9SSU5HX1RZUEVTKHhlbl9kaXNwbGlmLCBzdHJ1 Y3QgeGVuZGlzcGxfcmVxLCBzdHJ1Y3QgeGVuZGlzcGxfcmVzcCk7Cj4gPiA+ID4gPiArCj4gPiA+ ID4gPiArLyoKPiA+ID4gPiA+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gPiA+ID4gPiArICog ICAgICAgICAgICAgICAgICAgICAgICBCYWNrIHRvIGZyb250IGV2ZW50cyBkZWxpdmVyeQo+ID4g PiA+ID4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ID4gPiA+ICsgKiBJbiBvcmRlciB0byBk ZWxpdmVyIGFzeW5jaHJvbm91cyBldmVudHMgZnJvbSBiYWNrIHRvIGZyb250IGEgc2hhcmVkIHBh Z2UgaXMKPiA+ID4gPiA+ICsgKiBhbGxvY2F0ZWQgYnkgZnJvbnQgYW5kIGl0cyBncmVmcyBwcm9w YWdhdGVkIHRvIGJhY2sgdmlhIFhlblN0b3JlIGVudHJpZXMKPiA+ID4gPiA+ICsgKiAoZXZlbnQt WFhYKS4KPiA+ID4gPiA/Cj4gPiA+ID4gCj4gPiA+ID4gWW91IG1lYW4gZXZlbnQtY2hhbm5lbCA/ IE9yIGNvbnRyb2wtZXZlbnQtY2hhbm5lbD8KPiA+ID4gZXZlbnQtY2hhbm5lbCB3aGljaCBpcyB1 c2VkIGZvciBhc3luYyBldmVudHMgZnJvbSBiYWNrIHRvIGZyb250LAo+ID4gPiBjb250cm9sIGlz IGFsd2F5cyB1c2VkIHRvIHBhc3MgcmVxL3Jlc3AuCj4gPiA+ID4gPiArICogVGhpcyBwYWdlIGhh cyBhIGNvbW1vbiBoZWFkZXIgdXNlZCBieSBib3RoIGZyb250IGFuZCBiYWNrIHRvIHN5bmNocm9u aXplCj4gPiA+ID4gPiArICogYWNjZXNzIGFuZCBjb250cm9sIGV2ZW50J3MgcmluZyBidWZmZXIs IHdoaWxlIGJhY2sgYmVpbmcgYSBwcm9kdWNlciBvZiB0aGUKPiA+ID4gPiA+ICsgKiBldmVudHMg YW5kIGZyb250IGJlaW5nIGEgY29uc3VtZXIuIFRoZSByZXN0IG9mIHRoZSBwYWdlIGFmdGVyIHRo ZSBoZWFkZXIKPiA+ID4gPiA+ICsgKiBpcyB1c2VkIGZvciBldmVudCBwYWNrZXRzLgo+ID4gPiA+ ID4gKyAqCj4gPiA+ID4gPiArICogVXBvbiByZWNlcHRpb24gb2YgYW4gZXZlbnQocykgZnJvbnQg bWF5IGNvbmZpcm0gaXRzIHJlY2VwdGlvbgo+ID4gPiA+ID4gKyAqIGZvciBlaXRoZXIgZWFjaCBl dmVudCwgZ3JvdXAgb2YgZXZlbnRzIG9yIG5vbmUuCj4gPiA+ID4gPiArICovCj4gPiA+ID4gPiAr Cj4gPiA+ID4gPiArc3RydWN0IHhlbmRpc3BsX2V2ZW50X3BhZ2Ugewo+ID4gPiA+ID4gKyAgICB1 aW50MzJfdCBpbl9jb25zOwo+ID4gPiA+ID4gKyAgICB1aW50MzJfdCBpbl9wcm9kOwo+ID4gPiA+ ID4gKyAgICB1aW50OF90IHJlc2VydmVkWzU2XTsKPiA+ID4gPiA+ICt9Owo+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gKyNkZWZpbmUgWEVORElTUExfRVZFTlRfUEFHRV9TSVpFIDQwOTYKPiA+ID4gPiA+ ICsjZGVmaW5lIFhFTkRJU1BMX0lOX1JJTkdfT0ZGUyAoc2l6ZW9mKHN0cnVjdCB4ZW5kaXNwbF9l dmVudF9wYWdlKSkKPiA+ID4gPiA+ICsjZGVmaW5lIFhFTkRJU1BMX0lOX1JJTkdfU0laRSAoWEVO RElTUExfRVZFTlRfUEFHRV9TSVpFIC0gWEVORElTUExfSU5fUklOR19PRkZTKQo+ID4gPiA+ID4g KyNkZWZpbmUgWEVORElTUExfSU5fUklOR19MRU4gKFhFTkRJU1BMX0lOX1JJTkdfU0laRSAvIHNp emVvZihzdHJ1Y3QgeGVuZGlzcGxfZXZ0KSkKPiA+ID4gPiA+ICsjZGVmaW5lIFhFTkRJU1BMX0lO X1JJTkcocGFnZSkgXAo+ID4gPiA+ID4gKwkoKHN0cnVjdCB4ZW5kaXNwbF9ldnQgKikoKGNoYXIg KikocGFnZSkgKyBYRU5ESVNQTF9JTl9SSU5HX09GRlMpKQo+ID4gPiA+ID4gKyNkZWZpbmUgWEVO RElTUExfSU5fUklOR19SRUYocGFnZSwgaWR4KSBcCj4gPiA+ID4gPiArCShYRU5ESVNQTF9JTl9S SU5HKChwYWdlKSlbKGlkeCkgJSBYRU5ESVNQTF9JTl9SSU5HX0xFTl0pCj4gPiA+ID4gV2h5IG5v dCB1c2UgdGhlIHJpbmcuaCBtYWNyb3M/Cj4gPiA+IHdlbGwsIHRoaXMgaXMgdGhlIHdheSB0aGUg c2FtZSBzdHJ1Y3RzIGFyZSBkZWZpbmVkIGZvciBmYmlmL2tiaWYKPiA+ID4gYW5kIEkgYW0gbm90 IHN1cmUgd2hhdCBjYW4gYmUgcmUtdXNlZCBoZXJlIGZyb20gcmluZy5oIGFzIGl0IGlzCj4gPiA+ IGRlc2lnbmVkIHRvIHdvcmsgd2l0aCByZXEvcmVzcCwgbm90IGV2ZW50cy4KPiA+ID4gPiBFc3Bl Y2lhbGx5IGFzIHRoZSB0b3Agb2YgdGhpcyB0YWxrcyBhYm91dCAiUklOR19GSU5BTF9DSEVDS19G T1JfUkVRVUVTVFMiPwo+ID4gPiBJIGNhbiByZW1vdmUgdGhpcwo+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9fRElTUExJRl9IX18gKi8KPiA+ID4gPiBDb3Vs ZCB3ZSBhbHNvIGhhdmUgdGhpcyBoZWFkZXIgaW46Cj4gPiA+IHN1cmUsIEkgd2lsbCBhZGQgdGhl IHNhbWUgdG8gc25kaWYgYXMgd2VsbAo+ID4gPiA+IC8qCj4gPiA+ID4gICAgKiBMb2NhbCB2YXJp YWJsZXM6Cj4gPiA+ID4gICAgKiBtb2RlOiBDCj4gPiA+ID4gICAgKiBjLWZpbGUtc3R5bGU6ICJC U0QiCj4gPiA+ID4gICAgKiBjLWJhc2ljLW9mZnNldDogNAo+ID4gPiA+ICAgICogdGFiLXdpZHRo OiA0Cj4gPiA+ID4gICAgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPiA+ID4gPiAgICAqIEVuZDoK PiA+ID4gPiAgICAqLwo+ID4gPiA+IAo+ID4gPiA+IHBsZWFzZT8KPiA+ID4gPiA+IC0tIAo+ID4g PiA+ID4gMi43LjQKPiA+ID4gPiA+IAo+ID4gPiBbMV0gaHR0cDovL21hcmMuaW5mby8/bD14ZW4t ZGV2ZWwmbT0xNDIxNjcxNTMzMjQwNTImdz00Cj4gPiA+IAo+IFRoYW5rIHlvdSwKPiBPbGVrc2Fu ZHIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=