From owner-svn-src-head@FreeBSD.ORG Mon May 2 21:12:39 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6390F106564A for ; Mon, 2 May 2011 21:12:39 +0000 (UTC) (envelope-from lifanov@mail.lifanov.com) Received: from mail.lifanov.com (mail.lifanov.com [206.125.175.12]) by mx1.freebsd.org (Postfix) with ESMTP id 49D608FC13 for ; Mon, 2 May 2011 21:12:39 +0000 (UTC) Received: by mail.lifanov.com (Postfix, from userid 65534) id 31D85136EA2; Mon, 2 May 2011 20:55:35 +0000 (UTC) Received: from localhost (157.sub-174-252-144.myvzw.com [174.252.144.157]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.lifanov.com (Postfix) with ESMTPSA id 94319136EA0 for ; Mon, 2 May 2011 20:55:31 +0000 (UTC) Date: Mon, 02 May 2011 16:57:03 -0400 Message-ID: From: Nikolai Lifanov To: svn-src-head@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 Subject: Re: svn-src-head Digest, Vol 88, Issue 2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 21:12:39 -0000 Cgpzdm4tc3JjLWhlYWQtcmVxdWVzdEBmcmVlYnNkLm9yZyB3cm90ZToKCj5TZW5kIHN2bi1zcmMt aGVhZCBtYWlsaW5nIGxpc3Qgc3VibWlzc2lvbnMgdG8KPglzdm4tc3JjLWhlYWRAZnJlZWJzZC5v cmcKPgo+VG8gc3Vic2NyaWJlIG9yIHVuc3Vic2NyaWJlIHZpYSB0aGUgV29ybGQgV2lkZSBXZWIs IHZpc2l0Cj4JaHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vc3ZuLXNy Yy1oZWFkCj5vciwgdmlhIGVtYWlsLCBzZW5kIGEgbWVzc2FnZSB3aXRoIHN1YmplY3Qgb3IgYm9k eSAnaGVscCcgdG8KPglzdm4tc3JjLWhlYWQtcmVxdWVzdEBmcmVlYnNkLm9yZwo+Cj5Zb3UgY2Fu IHJlYWNoIHRoZSBwZXJzb24gbWFuYWdpbmcgdGhlIGxpc3QgYXQKPglzdm4tc3JjLWhlYWQtb3du ZXJAZnJlZWJzZC5vcmcKPgo+V2hlbiByZXBseWluZywgcGxlYXNlIGVkaXQgeW91ciBTdWJqZWN0 IGxpbmUgc28gaXQgaXMgbW9yZSBzcGVjaWZpYwo+dGhhbiAiUmU6IENvbnRlbnRzIG9mIHN2bi1z cmMtaGVhZCBkaWdlc3QuLi4iCj4KPlRvZGF5J3MgVG9waWNzOgo+Cj4gICAxLiBzdm4gY29tbWl0 OiByMjIxMzAwIC0gaGVhZC9zeXMvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgIDIuIHN2biBj b21taXQ6IHIyMjEzMDEgLSBoZWFkL3N5cy9jb25mIChCZXJuaGFyZCBTY2htaWR0KQo+ICAgMy4g UmU6IHN2biBjb21taXQ6IHIyMjEzMDEgLSBoZWFkL3N5cy9jb25mIChOYXRoYW4gV2hpdGVob3Ju KQo+ICAgNC4gc3ZuIGNvbW1pdDogcjIyMTMwMyAtIGhlYWQvdXNyLmJpbi9tYW4gKFVscmljaCBT cG9lcmxlaW4pCj4gICA1LiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYg KEJlcm5oYXJkIFNjaG1pZHQpCj4gICA2LiBzdm4gY29tbWl0OiByMjIxMzA0IC0gaGVhZC9zYmlu L3JlY292ZXJkaXNrIChVbHJpY2ggU3BvZXJsZWluKQo+ICAgNy4gc3ZuIGNvbW1pdDogcjIyMTMw NSAtIGhlYWQvc2hhcmUvbWFuL21hbjQgKENocmlzdGlhbiBCcnVlZmZlcikKPiAgIDguIHN2biBj b21taXQ6IHIyMjEzMDYgLSBpbiBoZWFkL3N5czogZnMvbmZzIG5mcyAoUmljayBNYWNrbGVtKQo+ ICAgOS4gc3ZuIGNvbW1pdDogcjIyMTMwNyAtIGhlYWQvc3lzL21pcHMvYXRoZXJvcyAoQWRyaWFu IENoYWRkKQo+ICAxMC4gc3ZuIGNvbW1pdDogcjIyMTMwOCAtIGhlYWQvdXNyLmJpbi9uZnNzdGF0 IChSaWNrIE1hY2tsZW0pCj4gIDExLiBzdm4gY29tbWl0OiByMjIxMzA5IC0gaGVhZC91c3IuYmlu L25mc3N0YXQgKFJpY2sgTWFja2xlbSkKPiAgMTIuIHN2biBjb21taXQ6IHIyMjEzMTIgLSBoZWFk L3N5cy9jb25mIChBZHJpYW4gQ2hhZGQpCj4gIDEzLiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAt IGhlYWQvc3lzL2NvbmYgKEFkcmlhbiBDaGFkZCkKPiAgMTQuIHN2biBjb21taXQ6IHIyMjEzMTkg LSBoZWFkL3NoYXJlL21pc2MgKE1heGltIEtvbm92YWxvdikKPiAgMTUuIHN2biBjb21taXQ6IHIy MjEzMjAgLSBoZWFkL3N5cy9jb25mIChCcnVjZSBDcmFuKQo+ICAxNi4gc3ZuIGNvbW1pdDogcjIy MTMyMSAtIGhlYWQvc3lzL21pcHMvY29uZiAoQWRyaWFuIENoYWRkKQo+ICAxNy4gUmU6IHN2biBj b21taXQ6IHIyMjEzMjAgLSBoZWFkL3N5cy9jb25mIChBbGV4YW5kZXIgQmVzdCkKPiAgMTguIFJl OiBzdm4gY29tbWl0OiByMjIxMjE0IC0gaGVhZC9zeXMveDg2L3g4NiAoRGltaXRyeSBBbmRyaWMp Cj4gIDE5LiBzdm4gY29tbWl0OiByMjIxMzI0IC0gaW4gaGVhZC9zeXM6IGFtZDY0L3BjaSBkZXYv YWNwaWNhCj4gICAgICBkZXYvcGNpCWkzODYvcGNpIHg4Ni94ODYgKEpvaG4gQmFsZHdpbikKPiAg MjAuIHN2biBjb21taXQ6IHIyMjEzMjYgLSBoZWFkL3N5cy9kZXYvcHVjIChKb2huIEJhbGR3aW4p Cj4gIDIxLiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYgKEpvaG4gQmFs ZHdpbikKPiAgMjIuIHN2biBjb21taXQ6IHIyMjEzMjcgLSBoZWFkL3N5cy9kZXYvY2FyZGJ1cyAo Sm9obiBCYWxkd2luKQo+ICAyMy4gc3ZuIGNvbW1pdDogcjIyMTMyOCAtIGhlYWQvc3lzL25ldGlu ZXQgKE1pY2hhZWwgVHVleGVuKQo+ICAyNC4gc3ZuIGNvbW1pdDogcjIyMTMyOSAtIGhlYWQvc3lz L2kzODYvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgMjUuIFJlOiBzdm4gY29tbWl0OiByMjIx MzAxIC0gaGVhZC9zeXMvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgMjYuIHN2biBjb21taXQ6 IHIyMjEzMzEgLSBoZWFkL3N5cy94ODYveDg2IChKdW5nLXVrIEtpbSkKPiAgMjcuIFJlOiBzdm4g Y29tbWl0OiByMjIxMjE0IC0gaGVhZC9zeXMveDg2L3g4NiAoSnVuZy11ayBLaW0pCj4gIDI4LiBS ZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYgKEpvaG4gQmFsZHdpbikKPiAg MjkuIHN2biBjb21taXQ6IHIyMjEzMzMgLSBoZWFkIChEaW1pdHJ5IEFuZHJpYykKPiAgMzAuIHN2 biBjb21taXQ6IHIyMjEzMzQgLSBoZWFkL3N5cy9pYTY0L2luY2x1ZGUgKE1hcmNlbCBNb29sZW5h YXIpCj4gIDMxLiBzdm4gY29tbWl0OiByMjIxMzM1IC0gaGVhZC9zeXMvZGV2L2NvcmV0ZW1wIChY aW4gTEkpCj4gIDMyLiBzdm4gY29tbWl0OiByMjIxMzM2IC0gaGVhZC9zeXMvZGV2L2FjcGljYSAo Sm9obiBCYWxkd2luKQo+Cj5BdXRob3I6IGJzY2htaWR0Cj5EYXRlOiBTdW4gTWF5ICAxIDE4OjQy OjU2IDIwMTEKPk5ldyBSZXZpc2lvbjogMjIxMzAwCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5v cmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAwCj4KPkxvZzoKPiAgQWRkIGZpbGVzIGZvciB3cGkoNCkK Pgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2NvbmYvZmlsZXMKPgo+TW9kaWZpZWQ6IGhlYWQvc3lz L2NvbmYvZmlsZXMKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL2NvbmYvZmls ZXMJU3VuIE1heSAgMSAxODo0MTo1NyAyMDExCShyMjIxMjk5KQo+KysrIGhlYWQvc3lzL2NvbmYv ZmlsZXMJU3VuIE1heSAgMSAxODo0Mjo1NiAyMDExCShyMjIxMzAwKQo+QEAgLTE5OTUsNiArMTk5 NSw3IEBAIGRldi93aS9pZl93aS5jCQkJb3B0aW9uYWwgd2kKPiBkZXYvd2kvaWZfd2lfcGNjYXJk LmMJCW9wdGlvbmFsIHdpIHBjY2FyZAo+IGRldi93aS9pZl93aV9wY2kuYwkJb3B0aW9uYWwgd2kg cGNpCj4gZGV2L3dsL2lmX3dsLmMJCQlvcHRpb25hbCB3bCBpc2EKPitkZXYvd3BpL2lmX3dwaS5j CQlvcHRpb25hbCB3cGkgcGNpCj4gd3BpZncuYwkJCW9wdGlvbmFsIHdwaWZ3CQkJCQlcCj4gCWNv bXBpbGUtd2l0aAkiJHtBV0t9IC1mICRTL3Rvb2xzL2Z3X3N0dWIuYXdrIHdwaS5mdzp3cGlmdzox NTMyMjkgLW13cGkgLWMkey5UQVJHRVR9IiBcCj4gCW5vLWltcGxpY2l0LXJ1bGUgYmVmb3JlLWRl cGVuZCBsb2NhbAkJCQlcCj4KPgo+QXV0aG9yOiBic2NobWlkdAo+RGF0ZTogU3VuIE1heSAgMSAx OTowNTo1NCAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwMQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVi c2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMQo+Cj5Mb2c6Cj4gIFRoZXNlIGFyZSBvZiBjb3Vy c2UgaTM4Ni9hbWQ2NCBvbmx5Lgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvY29uZi9OT1RFUwo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvY29uZi9OT1RFUwo+PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4t LS0gaGVhZC9zeXMvY29uZi9OT1RFUwlTdW4gTWF5ICAxIDE4OjQyOjU2IDIwMTEJKHIyMjEzMDAp Cj4rKysgaGVhZC9zeXMvY29uZi9OT1RFUwlTdW4gTWF5ICAxIDE5OjA1OjU0IDIwMTEJKHIyMjEz MDEpCj5AQCAtMTkzNSw5ICsxOTM1LDYgQEAgZGV2aWNlCQl4bXBoeQkJIyBYYVF0aSBYTUFDIElJ Cj4gIwkoaGludCBvZiBwcmVmZXJfaW9tYXAgY2FuIGJlIGRvbmUgdG8gcHJlZmVyIEkvTyBpbnN0 ZWFkIG9mIE1lbSBtYXBwaW5nKQo+ICMgZ2VtOiAgQXBwbGUgR01BQy9TdW4gRVJJL1N1biBHRU0K PiAjIGhtZTogIFN1biBITUUgKEhhcHB5IE1lYWwgRXRoZXJuZXQpCj4tIyBpcHc6ICBJbnRlbCAy MTAwIHdpcmVsZXNzIE5JQ3MuCj4tIyBpd2k6ICBJbnRlbCAyMjAwQkcvMjIyNUJHLzI5MTVBQkcg d2lyZWxlc3MgTklDcy4KPi0jIGl3bjogIEludGVsIDQ5NjUvMTAwMC81MDAwLzYwMDAgd2lyZWxl c3MgTklDcy4KPiAjIGptZTogIEpNaWNyb24gSk1DMjYwIEZhc3QgRXRoZXJuZXQvSk1DMjUwIEdp Z2FiaXQgRXRoZXJuZXQgYmFzZWQgYWRhcHRlcnMuCj4gIyBsZTogICBBTUQgQW03OTAwIExBTkNF IGFuZCBBbTc5Qzl4eCBQQ25ldAo+ICMgbGdlOglTdXBwb3J0IGZvciBQQ0kgZ2lnYWJpdCBldGhl cm5ldCBhZGFwdGVycyBiYXNlZCBvbiB0aGUgTGV2ZWwgMQo+QEAgLTIwMTYsNyArMjAxMyw2IEBA IGRldmljZQkJeG1waHkJCSMgWGFRdGkgWE1BQyBJSQo+ICMgd2k6ICAgTHVjZW50IFdhdmVMQU4v SUVFRSA4MDIuMTEgUENNQ0lBIGFkYXB0ZXJzLiBOb3RlOiB0aGlzIHN1cHBvcnRzIGJvdGgKPiAj ICAgICAgIHRoZSBQQ01DSUEgYW5kIElTQSBjYXJkczogdGhlIElTQSBjYXJkIGlzIHJlYWxseSBh IFBDTUNJQSB0byBJU0EKPiAjICAgICAgIGJyaWRnZSB3aXRoIGEgUENNQ0lBIGFkYXB0ZXIgcGx1 Z2dlZCBpbnRvIGl0Lgo+LSMgd3BpOiAgSW50ZWwgMzk0NUFCRyB3aXJlbGVzcyBOSUNzLgo+ICMg eGU6ICAgWGlyY29tL0ludGVsIEV0aGVyRXhwcmVzcyBQcm8xMDAvMTYgUEMgQ2FyZCBldGhlcm5l dCBjb250cm9sbGVyLAo+ICMgICAgICAgQWNjdG9uIEZhc3QgRXRoZXJDYXJkLTE2LCBDb21wYXEg TmV0ZWxsaWdlbnQgMTAvMTAwIFBDIENhcmQsCj4gIyAgICAgICBUb3NoaWJhIDEwLzEwMCBFdGhl cm5ldCBQQyBDYXJkLCBYaXJjb20gMTYtYml0IEV0aGVybmV0ICsgTW9kZW0gNTYKPkBAIC0yMTM3 LDEzICsyMTMzLDkgQEAgb3B0aW9ucwkgICAJQUhfUlhDRkdfU0RNQU1XXzRCWVRFUwo+IGRldmlj ZQkJYXRoX3JhdGVfc2FtcGxlCSMgU2FtcGxlUmF0ZSB0eCByYXRlIGNvbnRyb2wgZm9yIGF0aAo+ IGRldmljZQkJYndpCQkjIEJyb2FkY29tIEJDTTQzMCogQkNNNDMxKgo+IGRldmljZQkJYnduCQkj IEJyb2FkY29tIEJDTTQzeHgKPi1kZXZpY2UJCWlwdwkJIyBJbnRlbCAyMTAwIHdpcmVsZXNzIE5J Q3MuCj4tZGV2aWNlCQlpd2kJCSMgSW50ZWwgMjIwMEJHLzIyMjVCRy8yOTE1QUJHIHdpcmVsZXNz IE5JQ3MuCj4tZGV2aWNlCQlpd24JCSMgSW50ZWwgNDk2NS8xMDAwLzUwMDAvNjAwMCB3aXJlbGVz cyBOSUNzLgo+IGRldmljZQkJbWFsbwkJIyBNYXJ2ZWxsIExpYmVydGFzIHdpcmVsZXNzIE5JQ3Mu Cj4gZGV2aWNlCQltd2wJCSMgTWFydmVsbCA4OFc4MzYzIDgwMi4xMW4gd2lyZWxlc3MgTklDcy4K PiBkZXZpY2UJCXJhbAkJIyBSYWxpbmsgVGVjaG5vbG9neSBSVDI1MDAgd2lyZWxlc3MgTklDcy4K Pi1kZXZpY2UJCXdwaQkJIyBJbnRlbCAzOTQ1QUJHIHdpcmVsZXNzIE5JQ3MuCj4gCj4gIyBVc2Ug InByaXZhdGUiIGp1bWJvIGJ1ZmZlcnMgYWxsb2NhdGVkIGV4Y2x1c2l2ZWx5IGZvciB0aGUgdGko NCkgZHJpdmVyLgo+ICMgVGhpcyBvcHRpb24gaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIFRJX0pV TUJPX0hEUlNQTElUIG9wdGlvbiBiZWxvdy4KPgo+Cj5PbiAwNS8wMS8xMSAxNDowNSwgQmVybmhh cmQgU2NobWlkdCB3cm90ZToKPj4gQXV0aG9yOiBic2NobWlkdAo+PiBEYXRlOiBTdW4gTWF5ICAx IDE5OjA1OjU0IDIwMTEKPj4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gVVJMOiBodHRwOi8vc3Zu LmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMQo+Pgo+PiBMb2c6Cj4+ICAgIFRoZXNl IGFyZSBvZiBjb3Vyc2UgaTM4Ni9hbWQ2NCBvbmx5Lgo+Cj4KPkknbSBub3Qgc3VyZSB0aGF0J3Mg aW50cmluc2ljYWxseSB0cnVlLiBFdmVuIGlmIHRoZXkgbW9zdGx5IG9ubHkgc2hpcCAKPndpdGgg SW50ZWwgbW90aGVyYm9hcmRzLCBtYW55IG9mIHRoZXNlIGFyZSBNaW5pLVBDSSBwYXJ0cyB3aGlj aCBjb3VsZCBiZSAKPnB1dCBpbnRvIG5vbi14ODYgc3lzdGVtcy4KPi1OYXRoYW4KPgo+Cj5BdXRo b3I6IHVxcwo+RGF0ZTogU3VuIE1heSAgMSAxOTo0NzozNCAyMDExCj5OZXcgUmV2aXNpb246IDIy MTMwMwo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMwo+ Cj5Mb2c6Cj4gIExldCB1c2VycycgUEFUSCBkZWNpZGUgd2hpY2ggZ3JvZmYgc3VpdGUgdG8gcGlj ayB1cC4KPiAgCj4gIExldCBncm9mZiBwYXNzIHRoZSAtYyBmbGFnIHRvIGdyb3R0eSwgd2hpY2gg d2lsbCB0dXJuIG9mZiBBTlNJCj4gIHNlcXVlbmNlcy4gV2hpbGUgdGhlc2UgYXJlIG5vdCBhIHBy b2JsZW0gZm9yIG91ciBtb3JlL2xlc3MsIHRoZXkgZ2V0Cj4gIG1hbmdsZWQgYnkgY29sKDEpIGFu ZCB0aGlzIHdpbGwgcmVzdWx0IGluIGdhcmJhZ2Ugb3V0cHV0Lgo+ICAKPiAgVGhpcyBtYWtlcyBt YW4oMSkgd29yayB0b2dldGhlciB3aXRoIHRleHRwcm9jL2dyb2ZmLCBpbiBjYXNlIHRoZQo+ICB1 c2VyIGRlY2lkZWQgdG8gZGVsZXRlIHRoZSBvbGQgZ3JvZmYgZnJvbSBiYXNlICgtRFdJVEhPVVRf R1JPRkYpLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC91c3IuYmluL21hbi9tYW4uc2gKPgo+TW9kaWZp ZWQ6IGhlYWQvdXNyLmJpbi9tYW4vbWFuLnNoCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBo ZWFkL3Vzci5iaW4vbWFuL21hbi5zaAlTdW4gTWF5ICAxIDE5OjI0OjUxIDIwMTEJKHIyMjEzMDIp Cj4rKysgaGVhZC91c3IuYmluL21hbi9tYW4uc2gJU3VuIE1heSAgMSAxOTo0NzozNCAyMDExCShy MjIxMzAzKQo+QEAgLTg4OSwxNiArODg5LDE4IEBAIGRvX3doYXRpcygpIHsKPiAJc2VhcmNoX3do YXRpcyB3aGF0aXMgIiRAIgo+IH0KPiAKPi1FUU49L3Vzci9iaW4vZXFuCj4rIyBVc2VyJ3MgUEFU SCBzZXR0aW5nIGRlY2lkZXMgb24gdGhlIGdyb2ZmLXN1aXRlIHRvIHBpY2sgdXAuCj4rRVFOPWVx bgo+K05ST0ZGPSdncm9mZiAtUyAtUC1jIC1XYWxsIC1tdHR5LWNoYXIgLW1hbicKPitQSUM9cGlj Cj4rUkVGRVI9cmVmZXIKPitUQkw9dGJsCj4rVFJPRkY9J2dyb2ZmIC1TIC1QLWMgLW1hbicKPitW R1JJTkQ9dmdyaW5kCj4rCj4gQ09MPS91c3IvYmluL2NvbAo+IExPQ0FMRT0vdXNyL2Jpbi9sb2Nh bGUKPi1OUk9GRj0nL3Vzci9iaW4vZ3JvZmYgLVMgLVdhbGwgLW10dHktY2hhciAtbWFuJwo+LVBJ Qz0vdXNyL2Jpbi9waWMKPiBTWVNDVEw9L3NiaW4vc3lzY3RsCj4tVEJMPS91c3IvYmluL3RibAo+ LVRST0ZGPScvdXNyL2Jpbi9ncm9mZiAtUyAtbWFuJwo+LVJFRkVSPS91c3IvYmluL3JlZmVyCj4t VkdSSU5EPS91c3IvYmluL3ZncmluZAo+IAo+IGRlYnVnPTAKPiBtYW5fZGVmYXVsdF9zZWN0aW9u cz0nMToxYW91dDo4OjI6MzpuOjQ6NTo2Ojc6OTpsJwo+Cj4KPk9uIFN1bmRheSAwMSBNYXkgMjAx MSAyMToyODoyOCBOYXRoYW4gV2hpdGVob3JuIHdyb3RlOgo+PiBPbiAwNS8wMS8xMSAxNDowNSwg QmVybmhhcmQgU2NobWlkdCB3cm90ZToKPj4gPiBBdXRob3I6IGJzY2htaWR0Cj4+ID4gRGF0ZTog U3VuIE1heSAgMSAxOTowNTo1NCAyMDExCj4+ID4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gPiBV Ukw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAxCj4+ID4KPj4g PiBMb2c6Cj4+ID4gICAgVGhlc2UgYXJlIG9mIGNvdXJzZSBpMzg2L2FtZDY0IG9ubHkuCj4+IAo+ PiAKPj4gSSdtIG5vdCBzdXJlIHRoYXQncyBpbnRyaW5zaWNhbGx5IHRydWUuIEV2ZW4gaWYgdGhl eSBtb3N0bHkgb25seSBzaGlwIAo+PiB3aXRoIEludGVsIG1vdGhlcmJvYXJkcywgbWFueSBvZiB0 aGVzZSBhcmUgTWluaS1QQ0kgcGFydHMgd2hpY2ggY291bGQgYmUgCj4+IHB1dCBpbnRvIG5vbi14 ODYgc3lzdGVtcy4KPgo+WWVzLCBpbmRlZWQuIFRob3NlIG1pZ2h0IG9mIGNvdXJzZSBiZSB1c2Vk IG9uIG90aGVyIHBsYXRmb3JtcyB0b28KPih3ZWxsIGF0IGxlYXN0IGl0IGZpdHMgaW50byB0aGUg c2xvdCwgSSBrbm93IHRoYXQgY2VydGFpbiBmZWF0dXJlcwo+YXJlIG5vdCBldmVuIGF2YWlsYWJs ZSBvbiBBTUQgcGxhdGZvcm1zKS4gSSdtIGp1c3Qgbm90IGF3YXJlIHRoYXQKPmFueW9uZSBldmVy IHRyaWVkIG9uZSBvZiBpdCBvbiBtaXBzIGZvciBleGFtcGxlLgo+Cj5JIGRvbid0IG1pbmQgYmVp bmcgcHJvdmVuIHdyb25nIGFuZCBpZiBzbyBtb3ZlIHRoZSBlbnRyaWVzIGJhY2sgdG8KPmEgbW9y ZSBnZW5lcmljIGxvY2F0aW9uLiBDdXJyZW50bHkgSSdtIGp1c3QgdHJ5aW5nIG1pbWljIHRoZSBt b2R1bGUKPmJlaGF2aW91ciBpbiBzeXMvbW9kdWxlcy9NYWtlZmlsZS4KPgo+LS0gCj5CZXJuaGFy ZAo+Cj4KPkF1dGhvcjogdXFzCj5EYXRlOiBTdW4gTWF5ICAxIDIwOjE0OjEwIDIwMTEKPk5ldyBS ZXZpc2lvbjogMjIxMzA0Cj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzA0Cj4KPkxvZzoKPiAgcmVjb3ZlcmRpc2soOCk6IHRyZWF0IG91dHB1dCBmaWxlIGNv bnNpc3RlbnRseSBhbmQgYWJvcnQgb24gRUlOVkFMCj4gIAo+ICBUaGlzIGltcHJvdmVzIHVzYWJp bGl0eSBhIGxpdHRsZSBhcyB3ZSBubyBsb25nZXIgcmVxdWlyZSB1c2luZyB0b3VjaC4KPiAgQWxz byByZXdvcmQgdGhlIG1hbnBhZ2Ugd3J0LiBwYXJhbWV0ZXJzIGFuZCBmaXggdXNhZ2UoKSBbMV0K PiAgCj4gIFdpdGggbm8gbWVkaWEgaW4gYSBjZCg0KSBkcml2ZSwgdGhlIHJlYWRzIHdpbGwgbG9v cCBwcm9kdWNpbmcgRUlOVkFMLAo+ICBhYm9ydCBpbiB0aGF0IGNhc2UgWzJdLgo+ICAKPiAgRG9j dW1lbnQgdGhlIHNob3J0Y29taW5nIG9mIHNlY3RvcnNpemUgYW5kIE1BWFBIWVMgKGEgcXVpY2sg c29sdXRpb24KPiAgdG8gdGhpcyBtaWdodCBiZSBoYXZpbmcgTUFYUEhZUyBhcyB0aGUgImJpZ3Np emUiLCBpbiBzaG9ydCB0ZXN0aW5nIGl0Cj4gIGRpZG4ndCBtYWtlIGEgZGlmZmVyZW5jZSBvbiB0 aHJvdWdocHV0KS4KPiAgCj4gIFN1Ym1pdHRlZCBieToJYXJ1bmRlbCBbMV0KPiAgUFI6CQliaW4v MTU0NTI4IFsyXQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLjEKPiAgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJkaXNrLmMKPgo+TW9kaWZpZWQ6 IGhlYWQvc2Jpbi9yZWNvdmVyZGlzay9yZWNvdmVyZGlzay4xCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL3NiaW4vcmVjb3ZlcmRpc2svcmVjb3ZlcmRpc2suMQlTdW4gTWF5ICAxIDE5 OjQ3OjM0IDIwMTEJKHIyMjEzMDMpCj4rKysgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLjEJU3VuIE1heSAgMSAyMDoxNDoxMCAyMDExCShyMjIxMzA0KQo+QEAgLTI0LDcgKzI0LDcg QEAKPiAuXCIKPiAuXCIgJEZyZWVCU0QkCj4gLlwiCj4tLkRkIE1heSA2LCAyMDA2Cj4rLkRkIE1h eSAxLCAyMDExCj4gLkR0IFJFQ09WRVJESVNLIDEKPiAuT3MKPiAuU2ggTkFNRQo+QEAgLTMzLDE3 ICszMywyMCBAQAo+IC5TaCBTWU5PUFNJUwo+IC5ObQo+IC5PcCBGbCBiIEFyIGJpZ3NpemUKPi0u T3AgRmwgciBBciBybGlzdAo+LS5PcCBGbCBzIEFyIHNuYXBzaG90Cj4tLk9wIEZsIHcgQXIgd2xp c3QKPi0uQXIgc3BlY2lhbAo+LS5PcCBBciBmaWxlCj4rLk9wIEZsIHIgQXIgcmVhZGxpc3QKPisu T3AgRmwgcyBBciBpbnRlcnZhbAo+Ky5PcCBGbCB3IEFyIHdyaXRlbGlzdAo+Ky5BciBzb3VyY2UK PisuT3AgQXIgZGVzdGluYXRpb24KPiAuU2ggREVTQ1JJUFRJT04KPiBUaGUKPiAuTm0KPiB1dGls aXR5IHJlYWRzIGRhdGEgZnJvbSB0aGUKPi0uQXIgc3BlY2lhbAo+Ky5BciBzb3VyY2UKPiBmaWxl IHVudGlsIGFsbCBibG9ja3MgY291bGQgYmUgc3VjY2Vzc2Z1bGx5IHJlYWQuCj4rSWYKPisuQXIg ZGVzdGluYXRpb24KPit3YXMgc3BlY2lmaWVkIGFsbCBkYXRhIGlzIGJlaW5nIHdyaXR0ZW4gdG8g dGhhdCBmaWxlLgo+IEl0IHN0YXJ0cyByZWFkaW5nIGluIG11bHRpcGxlcyBvZiB0aGUgc2VjdG9y IHNpemUuCj4gV2hlbmV2ZXIgYSBibG9jayBmYWlscywgaXQgaXMgcHV0IHRvIHRoZSBlbmQgb2Yg dGhlIHdvcmtpbmcgcXVldWUgYW5kIHdpbGwgYmUKPiByZWFkIGFnYWluLCBwb3NzaWJseSB3aXRo IGEgc21hbGxlciByZWFkIHNpemUuCj5AQCAtNTksMTMgKzYyLDEzIEBAIFRoZSBvcHRpb25zIGFy ZSBhcyBmb2xsb3dzOgo+IFRoZSBzaXplIG9mIHJlYWRzIGF0dGVtcHRlZCBmaXJzdC4KPiBUaGUg bWlkZGxlIHBhc3MgaXMgcm91Z2hseSB0aGUgbG9nYXJpdGhtaWMgYXZlcmFnZSBvZiB0aGUgYmln c2l6ZSBhbmQKPiB0aGUgc2VjdG9yc2l6ZS4KPi0uSXQgRmwgciBBciBybGlzdAo+Ky5JdCBGbCBy IEFyIHJlYWRsaXN0Cj4gUmVhZCB0aGUgbGlzdCBvZiBibG9ja3MgYW5kIGJsb2NrIHNpemVzIHRv IHJlYWQgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUuCj4tLkl0IEZsIHMgQXIgc25hcHNob3QKPi1I b3cgb2Z0ZW4gd2Ugc2hvdWxkIHVwZGF0ZSB0aGUgd29ya2xpc3QgZmlsZSB3aGlsZSB0aGluZ3Mg Z28gT0suCj4tVGhlIGRlZmF1bHQgaXMgNjAgYW5kIHRoZSB1bml0cyBpcyAicHJvZ3Jlc3MgbWVz c2FnZXMiIHNvIGlmIHRoaW5ncwo+Ky5JdCBGbCBzIEFyIGludGVydmFsCj4rSG93IG9mdGVuIHdl IHNob3VsZCB1cGRhdGUgdGhlIHdyaXRlbGlzdCBmaWxlIHdoaWxlIHRoaW5ncyBnbyBPSy4KPitU aGUgZGVmYXVsdCBpcyA2MCBhbmQgdGhlIHVuaXQgaXMgInByb2dyZXNzIG1lc3NhZ2VzIiBzbyBp ZiB0aGluZ3MKPiBnbyB3ZWxsLCB0aGlzIGlzIHRoZSBzYW1lIGFzIG9uY2UgcGVyIG1pbnV0ZS4K Pi0uSXQgRmwgdyBBciB3bGlzdAo+Ky5JdCBGbCB3IEFyIHdyaXRlbGlzdAo+IFdyaXRlIHRoZSBs aXN0IG9mIHJlbWFpbmluZyBibG9ja3MgdG8gcmVhZCB0byB0aGUgc3BlY2lmaWVkIGZpbGUgaWYK PiAuTm0KPiBpcyBhYm9ydGVkIHZpYQo+QEAgLTEwMiwyMCArMTA1LDE5IEBAIFBlcmNlbnQgY29t cGxldGUuCj4gLlNoIEVYQU1QTEVTCj4gLkJkIC1saXRlcmFsCj4gIyByZWNvdmVyIGRhdGEgZnJv bSBmYWlsaW5nIGhhcmQgZHJpdmUgYWQzCj4tdG91Y2ggL2RhdGEvbG90c19vZl9zcGFjZQo+LXJl Y292ZXJkaXNrIC9kZXYvYWQzIC9kYXRhL2xvdHNfb2Zfc3BhY2UKPityZWNvdmVyZGlzayAvZGV2 L2FkMyAvZGF0YS9kaXNrLmltZwo+IAo+ICMgY2xvbmUgYSBoYXJkIGRpc2sKPiByZWNvdmVyZGlz ayAvZGV2L2FkMyAvZGV2L2FkNAo+IAo+ICMgcmVhZCBhbiBJU08gaW1hZ2UgZnJvbSBhIENELVJP TQo+LXRvdWNoIC9kYXRhL2NkLmlzbzsgcmVjb3ZlcmRpc2sgL2Rldi9hY2QwIC9kYXRhL2NkLmlz bwo+K3JlY292ZXJkaXNrIC9kZXYvY2QwIC9kYXRhL2NkLmlzbwo+IAo+ICMgY29udGludWUgcmVh ZGluZyBmcm9tIGEgYnJva2VuIENEIGFuZCB1cGRhdGUgdGhlIGV4aXN0aW5nIHdvcmtsaXN0Cj4t cmVjb3ZlcmRpc2sgLXIgd29ya2xpc3QgLXcgd29ya2xpc3QgL2Rldi9hY2QwIC9kYXRhL2NkLmlz bwo+K3JlY292ZXJkaXNrIC1yIHdvcmtsaXN0IC13IHdvcmtsaXN0IC9kZXYvY2QwIC9kYXRhL2Nk Lmlzbwo+IAo+ICMgcmVjb3ZlciBhIHNpbmdsZSBmaWxlIGZyb20gdGhlIHVucmVhZGFibGUgbWVk aWEKPi10b3VjaCBmaWxlLmF2aTsgcmVjb3ZlcmRpc2sgL2Nkcm9tL2ZpbGUuYXZpIGZpbGUuYXZp Cj4rcmVjb3ZlcmRpc2sgL2Nkcm9tL2ZpbGUuYXZpIGZpbGUuYXZpCj4gCj4gIyBJZiB0aGUgZGlz ayBoYW5ncyB0aGUgc3lzdGVtIG9uIHJlYWQtZXJyb3JzIHRyeToKPiByZWNvdmVyZGlzayAtYiAw IC9kZXYvYWQzIC9zb21ld2hlcmUKPkBAIC0xMzMsNyArMTM1LDcgQEAgdXRpbGl0eSBmaXJzdCBh cHBlYXJlZCBpbgo+IFRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiB3YXMgZG9uZSBieQo+IC5B biBQb3VsLUhlbm5pbmcgS2FtcCBBcSBwaGtARnJlZUJTRC5vcmcKPiB3aXRoIG1pbm9yIGltcHJv dmVtZW50cyBmcm9tCj4tLkFuIFVscmljaCBTcFwoOm9ybGVpbiBBcSB1c3BvZXJsZWluQGdtYWls LmNvbSAuCj4rLkFuIFVscmljaCBTcFwoOm9ybGVpbiBBcSB1cXNARnJlZUJTRC5vcmcgLgo+IC5Q cAo+IFRoaXMgbWFudWFsIHBhZ2Ugd2FzIHdyaXR0ZW4gYnkKPiAuQW4gVWxyaWNoIFNwXCg6b3Js ZWluIC4KPkBAIC0xNDQsNCArMTQ2LDEzIEBAIFRoaXMgaXMgZHVlIHRvIHRoZSBETUEgcmVhZHMg YmVpbmcgc3BsaXQKPiBUaGVzZSByZWFkcyB0aGVuIGZhaWwgaWYgdGhlIHNlY3RvcnNpemUgaXMg bm90IGEgZGl2aXNvciBvZiAxMjhrQi4KPiBXaGVuIHJlYWRpbmcgYSBmdWxsIHJhdyBhdWRpbyBD RCwgdGhpcyBsZWFkcyB0byByb3VnaGx5IDcwMCBlcnJvciBtZXNzYWdlcwo+IGZseWluZyBieS4K Pi1UaGlzIGlzIGhhcm1sZXNzLgo+K1RoaXMgaXMgaGFybWxlc3MgYW5kIGNhbiBiZSBhdm9pZGVk IGJ5IHNldHRpbmcKPisuRmwgYgo+K3RvIG5vIG1vcmUgdGhhbiAxMjhrQi4KPisuXCIuUHAKPisu XCJXaGVuIHJlYWRpbmcgZnJvbSBvcHRpY2FsIG1lZGlhLCBhIGJ1ZyBpbiB0aGUgR0VPTSBmcmFt ZXdvcmsgd2lsbAo+Ky5cInByZXZlbnQgaXQgZnJvbSBzZWVpbmcgdGhhdCB0aGUgbWVkaWEgaGFz IGJlZW4gcmVtb3ZlZC4KPisuXCJUaGUgZGV2aWNlIGNhbiBzdGlsbCBiZSBvcGVuZWQsIGJ1dCBh bGwgcmVhZHMgd2lsbCBmYWlsLgo+Ky5cIlRoaXMgaXMgdXN1YWxseSBoYXJtbGVzcywgYnV0IHdp bGwgc2VuZAo+Ky5cIi5ObQo+Ky5cImludG8gYW4gaW5maW5pdGUgbG9vcC4KPgo+TW9kaWZpZWQ6 IGhlYWQvc2Jpbi9yZWNvdmVyZGlzay9yZWNvdmVyZGlzay5jCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL3NiaW4vcmVjb3ZlcmRpc2svcmVjb3ZlcmRpc2suYwlTdW4gTWF5ICAxIDE5 OjQ3OjM0IDIwMTEJKHIyMjEzMDMpCj4rKysgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLmMJU3VuIE1heSAgMSAyMDoxNDoxMCAyMDExCShyMjIxMzA0KQo+QEAgLTg2LDcgKzg2LDcg QEAgc2F2ZV93b3JrbGlzdCh2b2lkKQo+IAkJaWYgKGZpbGUgPT0gTlVMTCkKPiAJCQllcnIoMSwg IkVycm9yIG9wZW5pbmcgZmlsZSAlcyIsIHd3b3JrbGlzdCk7Cj4gCj4tCQlUQUlMUV9GT1JFQUNI KGxscCwgJmx1bXBzLCBsaXN0KSAKPisJCVRBSUxRX0ZPUkVBQ0gobGxwLCAmbHVtcHMsIGxpc3Qp Cj4gCQkJZnByaW50ZihmaWxlLCAiJWpkICVqZCAlZFxuIiwKPiAJCQkgICAgKGludG1heF90KWxs cC0+c3RhcnQsIChpbnRtYXhfdClsbHAtPmxlbiwKPiAJCQkgICAgbGxwLT5zdGF0ZSk7Cj5AQCAt MTM0LDggKzEzNCw4IEBAIHJlYWRfd29ya2xpc3Qob2ZmX3QgdCkKPiBzdGF0aWMgdm9pZAo+IHVz YWdlKHZvaWQpCj4gewo+LQkodm9pZClmcHJpbnRmKHN0ZGVyciwKPi0gICAgInVzYWdlOiByZWNv dmVyZGlzayBbLXIgd29ya2xpc3RdIFstdyB3b3JrbGlzdF0gc291cmNlLWRyaXZlIFtkZXN0aW5h dGlvbl1cbiIpOwo+Kwkodm9pZClmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiByZWNvdmVyZGlzayBb LWIgYmlnc2l6ZV0gWy1yIHJlYWRsaXN0XSAiCj4rCSAgICAiWy1zIGludGVydmFsXSBbLXcgd3Jp dGVsaXN0XSBzb3VyY2UgW2Rlc3RpbmF0aW9uXVxuIik7Cj4gCWV4aXQoMSk7Cj4gfQo+IAo+QEAg LTE1Myw3ICsxNTMsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICogY29uc3QgYXJndltdKQo+IAlp bnQgZmRyLCBmZHc7Cj4gCW9mZl90IHQsIGQsIHN0YXJ0LCBsZW47Cj4gCXNpemVfdCBpLCBqOwo+ LQlpbnQgZXJyb3IsIGZsYWdzLCBzdGF0ZTsKPisJaW50IGVycm9yLCBzdGF0ZTsKPiAJdV9jaGFy ICpidWY7Cj4gCXVfaW50IHNlY3RvcnNpemU7Cj4gCXRpbWVfdCB0MSwgdDI7Cj5AQCAtMTk2LDcg KzE5Niw2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBhcmd2W10pCj4gCWVycm9yID0g ZnN0YXQoZmRyLCAmc2IpOwo+IAlpZiAoZXJyb3IgPCAwKQo+IAkJZXJyKDEsICJmc3RhdCBmYWls ZWQiKTsKPi0JZmxhZ3MgPSBPX1dST05MWTsKPiAJaWYgKFNfSVNCTEsoc2Iuc3RfbW9kZSkgfHwg U19JU0NIUihzYi5zdF9tb2RlKSkgewo+IAkJZXJyb3IgPSBpb2N0bChmZHIsIERJT0NHU0VDVE9S U0laRSwgJnNlY3RvcnNpemUpOwo+IAkJaWYgKGVycm9yIDwgMCkKPkBAIC0yMTAsNyArMjA5LDYg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqIGNvbnN0IGFyZ3ZbXSkKPiAJCQllcnIoMSwgIkRJT0NH TUVESUFTSVpFIGZhaWxlZCIpOwo+IAl9IGVsc2Ugewo+IAkJdCA9IHNiLnN0X3NpemU7Cj4tCQlm bGFncyB8PSBPX0NSRUFUIHwgT19UUlVOQzsKPiAJfQo+IAo+IAlpZiAoYmlnc2l6ZSA8IG1pbnNp emUpCj5AQCAtMjI5LDkgKzIyNywxMiBAQCBtYWluKGludCBhcmdjLCBjaGFyICogY29uc3QgYXJn dltdKQo+IAkJZXJyKDEsICJDYW5ub3QgYWxsb2NhdGUgJXp1IGJ5dGVzIGJ1ZmZlciIsIGJpZ3Np emUpOwo+IAo+IAlpZiAoYXJnYyA+IDEpIHsKPi0JCWZkdyA9IG9wZW4oYXJndlsxXSwgZmxhZ3Ms IERFRkZJTEVNT0RFKTsKPisJCWZkdyA9IG9wZW4oYXJndlsxXSwgT19XUk9OTFkgfCBPX0NSRUFU LCBERUZGSUxFTU9ERSk7Cj4gCQlpZiAoZmR3IDwgMCkKPiAJCQllcnIoMSwgIkNhbm5vdCBvcGVu IHdyaXRlIGRlc2NyaXB0b3IgJXMiLCBhcmd2WzFdKTsKPisJCWlmIChmdHJ1bmNhdGUoZmR3LCB0 KSA8IDApCj4rCQkJZXJyKDEsICJDYW5ub3QgdHJ1bmNhdGUgb3V0cHV0ICVzIHRvICVqZCBieXRl cyIsCj4rCQkJICAgIGFyZ3ZbMV0sIChpbnRtYXhfdCl0KTsKPiAJfSBlbHNlCj4gCQlmZHcgPSAt MTsKPiAKPkBAIC0yOTIsNiArMjkzLDEwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBh cmd2W10pCj4gCQkJfQo+IAkJCXByaW50ZigiXG4lamQgJXp1IGZhaWxlZCAoJXMpXG4iLAo+IAkJ CSAgICBscC0+c3RhcnQsIGksIHN0cmVycm9yKGVycm5vKSk7Cj4rCQkJaWYgKGVycm5vID09IEVJ TlZBTCkgewo+KwkJCQlwcmludGYoInJlYWQoKSBzaXplIHRvbyBiaWc/IFRyeSB3aXRoIC1iIDEz MTA3MiIpOwo+KwkJCQlhYm9ydGluZyA9IDE7Cj4rCQkJfQo+IAkJCWlmIChlcnJubyA9PSBFTlhJ TykKPiAJCQkJYWJvcnRpbmcgPSAxOwo+IAkJCW5ld19sdW1wKGxwLT5zdGFydCwgaSwgbHAtPnN0 YXRlICsgMSk7Cj4KPgo+QXV0aG9yOiBicnVlZmZlcgo+RGF0ZTogU3VuIE1heSAgMSAyMDo0Njoz NyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3Jn L2NoYW5nZXNldC9iYXNlLzIyMTMwNQo+Cj5Mb2c6Cj4gIE1pbm9yIGNsZWFudXAuCj4KPk1vZGlm aWVkOgo+ICBoZWFkL3NoYXJlL21hbi9tYW40L3Z4Z2UuNAo+Cj5Nb2RpZmllZDogaGVhZC9zaGFy ZS9tYW4vbWFuNC92eGdlLjQKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc2hhcmUv bWFuL21hbjQvdnhnZS40CVN1biBNYXkgIDEgMjA6MTQ6MTAgMjAxMQkocjIyMTMwNCkKPisrKyBo ZWFkL3NoYXJlL21hbi9tYW40L3Z4Z2UuNAlTdW4gTWF5ICAxIDIwOjQ2OjM3IDIwMTEJKHIyMjEz MDUpCj5AQCAtNDksMTMgKzQ5LDEyIEBAIFRoZQo+IC5ObQo+IGRyaXZlciBwcm92aWRlcyBzdXBw b3J0IGZvciBOZXRlcmlvbiBYMzEwMCBhZGFwdGVycy4KPiBUaGUgZHJpdmVyIHN1cHBvcnRzIFRD UCBTZWdtZW50YXRpb24gT2ZmbG9hZCAoVFNPL0xTTyksIAo+LUxhcmdlIFJlY2VpdmUgT2ZmbGFv ZCAoTFJPKSwgSnVtYm8gRnJhbWVzLCBSZWNlaXZlIFRyYWZmaWMgSGFzaCAoUlRIKSwKPitMYXJn ZSBSZWNlaXZlIE9mZmxvYWQgKExSTyksIEp1bWJvIEZyYW1lcywgUmVjZWl2ZSBUcmFmZmljIEhh c2ggKFJUSCksCj4gVkxBTiwgUHJvbWlzY3VvdXMgbW9kZSBhbmQgTXVsdGkgZnVuY3Rpb24gbW9k ZS4KPiAuUHAKPi0KPiBUaGUKPiAuTm0KPi1kcml2ZXIgc3VwcG9ydHMgZm9sbG93aW5nIGZ1bmN0 aW9uIG1vZGVzOgo+K2RyaXZlciBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIG1vZGVz Ogo+IC5CZCAtcmFnZ2VkIC1vZmZzZXQgaW5kZW50Cj4gLkNkICJTRjFfVlAxNyAtIDEgZnVuY3Rp b24gd2l0aCAxNyBWUEFUSHMiCj4gLkVkCj4KPgo+QXV0aG9yOiBybWFja2xlbQo+RGF0ZTogU3Vu IE1heSAgMSAyMjoxOTo1MiAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNgo+VVJMOiBodHRwOi8v c3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwNgo+Cj5Mb2c6Cj4gIEFkZCB0aGUg a2VybmVsIHN1cHBvcnQgbmVlZGVkIHRvIHplcm8gb3V0IHRoZSBuZnNzdGF0cwo+ICBzdHJ1Y3R1 cmUgZm9yIHRoZSBuZXcgTkZTIHN1YnN5c3RlbS4gVGhpcyB3aWxsIGJlIHVzZWQKPiAgYnkgbmZz c3RhdHMuYyB0byBpbXBsZW1lbnQgdGhlICIteiIgb3B0aW9uLgo+ICAKPiAgTUZDIGFmdGVyOgky IHdlZWtzCj4KPk1vZGlmaWVkOgo+ICBoZWFkL3N5cy9mcy9uZnMvbmZzX2NvbW1vbnBvcnQuYwo+ ICBoZWFkL3N5cy9uZnMvbmZzc3ZjLmgKPgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2ZzL25mcy9uZnNf Y29tbW9ucG9ydC5jCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBoZWFkL3N5cy9mcy9uZnMv bmZzX2NvbW1vbnBvcnQuYwlTdW4gTWF5ICAxIDIwOjQ2OjM3IDIwMTEJKHIyMjEzMDUpCj4rKysg aGVhZC9zeXMvZnMvbmZzL25mc19jb21tb25wb3J0LmMJU3VuIE1heSAgMSAyMjoxOTo1MiAyMDEx CShyMjIxMzA2KQo+QEAgLTQwNCw2ICs0MDQsOCBAQCBuZnNzdmNfY2FsbChzdHJ1Y3QgdGhyZWFk ICpwLCBzdHJ1Y3QgbmZzCj4gCX0gZWxzZSBpZiAodWFwLT5mbGFnICYgTkZTU1ZDX0dFVFNUQVRT KSB7Cj4gCQllcnJvciA9IGNvcHlvdXQoJm5ld25mc3N0YXRzLAo+IAkJICAgIENBU1RfVVNFUl9B RERSX1QodWFwLT5hcmdwKSwgc2l6ZW9mIChuZXduZnNzdGF0cykpOwo+KwkJaWYgKCh1YXAtPmZs YWcgJiBORlNTVkNfWkVST1NUQVRTKSAhPSAwICYmIGVycm9yID09IDApCj4rCQkJYnplcm8oJm5l d25mc3N0YXRzLCBzaXplb2YobmV3bmZzc3RhdHMpKTsKPiAJCXJldHVybiAoZXJyb3IpOwo+IAl9 IGVsc2UgaWYgKHVhcC0+ZmxhZyAmIE5GU1NWQ19ORlNVU0VSRFBPUlQpIHsKPiAJCXVfc2hvcnQg c29ja3BvcnQ7Cj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9uZnMvbmZzc3ZjLmgKPj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL25mcy9uZnNzdmMuaAlTdW4gTWF5ICAxIDIwOjQ2OjM3 IDIwMTEJKHIyMjEzMDUpCj4rKysgaGVhZC9zeXMvbmZzL25mc3N2Yy5oCVN1biBNYXkgIDEgMjI6 MTk6NTIgMjAxMQkocjIyMTMwNikKPkBAIC02NCw1ICs2NCw2IEBACj4gI2RlZmluZQlORlNTVkNf Q0JBRERTT0NLCTB4MDAyMDAwMDAKPiAjZGVmaW5lCU5GU1NWQ19HRVRTVEFUUwkJMHgwMDQwMDAw MAo+ICNkZWZpbmUJTkZTU1ZDX0JBQ0tVUFNUQUJMRQkweDAwODAwMDAwCj4rI2RlZmluZQlORlNT VkNfWkVST1NUQVRTCTB4MDEwMDAwMDAJLyogbW9kaWZpZXIgZm9yIEdFVFNUQVRTICovCj4gCj4g I2VuZGlmIC8qIF9ORlNfTkZTU1ZDX0ggKi8KPgo+Cj5BdXRob3I6IGFkcmlhbgo+RGF0ZTogU3Vu IE1heSAgMSAyMzozMjozNyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNwo+VVJMOiBodHRwOi8v c3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwNwo+Cj5Mb2c6Cj4gIFNvbWUgQVI3 MjR4IFBDSWUgZml4ZXMsIHdoaWNoIHNob3VsZCB3cmFwIHVwIHRoZSBmaXJzdCByb3VuZAo+ICBv ZiBlbmRpYW4tbmVzcyBpc3N1ZXMgd2l0aCB0aGUgQVI3MjR4Lgo+ICAKPiAgRnJvbSBMdWl6Ogo+ ICAKPiAgKiBGaXggdGhlIGJ1cyBzcGFjZSB0YWcgdXNlZCBzbyBlbmRpYW4tbmVzcyBpcyBjb3Jy ZWN0bHkgaGFuZGxlZDsKPiAgKiBPbmx5IGRvIHRoZSB3b3JrYXJvdW5kIGZvciB0aGUgQVI3MjQw OyBBUjcyNDEvQVI3MjQyIChQQjkyKQo+ICAgIGRvbid0IHJlcXVpcmUgdGhpcwo+ICAKPiAgRnJv bSBtZToKPiAgCj4gICogQWRkIGEgcmVhZCBmbHVzaCBmcm9tIG9wZW53cnQKPiAgCj4gIFN1Ym1p dHRlZCBieToJTHVpeiBPdGF2aW8gTyBTb3V6YQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvbWlw cy9hdGhlcm9zL2FyNzI0eF9wY2kuYwo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvbWlwcy9hdGhlcm9z L2FyNzI0eF9wY2kuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvbWlwcy9h dGhlcm9zL2FyNzI0eF9wY2kuYwlTdW4gTWF5ICAxIDIyOjE5OjUyIDIwMTEJKHIyMjEzMDYpCj4r KysgaGVhZC9zeXMvbWlwcy9hdGhlcm9zL2FyNzI0eF9wY2kuYwlTdW4gTWF5ICAxIDIzOjMyOjM3 IDIwMTEJKHIyMjEzMDcpCj5AQCAtNTcsOCArNTcsNyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7 Cj4gI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhyZWcuaD4KPiAjaW5jbHVkZSA8bWlwcy9h dGhlcm9zL2FyNzI0eHJlZy5oPgo+ICNpbmNsdWRlIDxtaXBzL2F0aGVyb3MvYXI3MXh4X3NldHVw Lmg+Cj4tI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhfcGNpX2J1c19zcGFjZS5oPgkJLyog WFhYICovCj4tI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhfYnVzX3NwYWNlX3JldmVyc2Vk Lmg+CS8qIFhYWCAqLwo+KyNpbmNsdWRlIDxtaXBzL2F0aGVyb3MvYXI3MXh4X3BjaV9idXNfc3Bh Y2UuaD4KPiAKPiAjaW5jbHVkZSA8bWlwcy9hdGhlcm9zL2FyNzF4eF9jcHVkZWYuaD4KPiAKPkBA IC0xMTMsNyArMTEyLDcgQEAgc3RhdGljIHVpbnQzMl90Cj4gYXI3MjR4X3BjaV9yZWFkX2NvbmZp ZyhkZXZpY2VfdCBkZXYsIHVfaW50IGJ1cywgdV9pbnQgc2xvdCwgdV9pbnQgZnVuYywgCj4gICAg IHVfaW50IHJlZywgaW50IGJ5dGVzKQo+IHsKPi0JdWludDMyX3QgY21kLCBkYXRhLCBzaGlmdCwg bWFzazsKPisJdWludDMyX3QgZGF0YSwgc2hpZnQsIG1hc2s7Cj4gCj4gCS8qIFJlZ2lzdGVyIGFj Y2VzcyBpcyAzMi1iaXQgYWxpZ25lZCAqLwo+IAlzaGlmdCA9IChyZWcgJiAzKSAqIDg7Cj5AQCAt MTI1LDE4ICsxMjQsOSBAQCBhcjcyNHhfcGNpX3JlYWRfY29uZmlnKGRldmljZV90IGRldiwgdV9p Cj4gCWRwcmludGYoIiVzOiB0YWcgKCV4LCAleCwgJXgpIHJlZyAlZCglZClcbiIsIF9fZnVuY19f LCBidXMsIHNsb3QsCj4gCSAgICBmdW5jLCByZWcsIGJ5dGVzKTsKPiAKPi0JaWYgKChidXMgPT0g MCkgJiYgKHNsb3QgPT0gMCkgJiYgKGZ1bmMgPT0gMCkpIHsKPisJaWYgKChidXMgPT0gMCkgJiYg KHNsb3QgPT0gMCkgJiYgKGZ1bmMgPT0gMCkpCj4gCQlkYXRhID0gQVRIX1JFQURfUkVHKEFSNzI0 WF9QQ0lfQ0ZHX0JBU0UgKyAocmVnICYgfjMpKTsKPi0JCS8qCj4tCQkgKiBXQVIgZm9yIEJBUiBp c3N1ZSAtIFdlIGFyZSB1bmFibGUgdG8gYWNjZXNzIHRoZSBQQ0kgZGV2aWNlCj4tCQkgKiBzcGFj ZSBpZiB3ZSBzZXQgdGhlIEJBUiB3aXRoIHByb3BlciBiYXNlIGFkZHJlc3MuCj4tCQkgKi8KPi0J CWlmIChyZWcgPT0gUENJUl9CQVIoMCkgJiYgYnl0ZXMgPT0gNCkgewo+LQkJCWNtZCA9IChhcjcx eHhfc29jID09IEFSNzFYWF9TT0NfQVI3MjQwKSA/Cj4tCQkJICAgIDB4ZmZmZiA6IDB4MTAwMGZm ZmY7Cj4tCQkJYXI3MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGNtZCwg Ynl0ZXMpOwo+LQkJfQo+LQl9IGVsc2UKPisJZWxzZQo+IAkJZGF0YSA9IC0xOwo+IAo+IAkvKiBH ZXQgcmVxdWVzdCBieXRlcyBmcm9tIDMyLWJpdCB3b3JkICovCj5AQCAtMTU4LDE0ICsxNDgsMTQg QEAgYXI3MjR4X3BjaV93cml0ZV9jb25maWcoZGV2aWNlX3QgZGV2LCB1Xwo+IAlpZiAoKGJ1cyAh PSAwKSB8fCAoc2xvdCAhPSAwKSB8fCAoZnVuYyAhPSAwKSkKPiAJCXJldHVybjsKPiAKPi0JYXI3 MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGRhdGEsIGJ5dGVzKTsKPiAJ LyoKPi0JICogV0FSIGZvciBCQVIgaXNzdWUgLSBXZSBhcmUgdW5hYmxlIHRvIGFjY2VzcyB0aGUg UENJIGRldmljZSBzcGFjZQo+LQkgKiBpZiB3ZSBzZXQgdGhlIEJBUiB3aXRoIHByb3BlciBiYXNl IGFkZHJlc3MuCj4tCSAqIEZvcmNlIGEgZmx1c2ggaGVyZSAoYXQgcmVnaXN0ZXIgd3JpdGluZyku Cj4rCSAqIFdBUiBmb3IgQkFSIGlzc3VlIG9uIEFSNzI0MCAtIFdlIGFyZSB1bmFibGUgdG8gYWNj ZXNzIHRoZSBQQ0kgZGV2aWNlCj4rCSAqIHNwYWNlIGlmIHdlIHNldCB0aGUgQkFSIHdpdGggcHJv cGVyIGJhc2UgYWRkcmVzcy4KPiAJICovCj4tCWlmIChyZWcgPT0gUENJUl9CQVIoMCkgJiYgYnl0 ZXMgPT0gNCkKPi0JCSh2b2lkKWFyNzI0eF9wY2lfcmVhZF9jb25maWcoZGV2LCBidXMsIHNsb3Qs IGZ1bmMsIHJlZywgYnl0ZXMpOwo+KwlpZiAocmVnID09IFBDSVJfQkFSKDApICYmIGJ5dGVzID09 IDQgJiYgYXI3MXh4X3NvYyA9PSBBUjcxWFhfU09DX0FSNzI0MCkKPisJCWFyNzI0eF9wY2lfd3Jp dGUoQVI3MjRYX1BDSV9DRkdfQkFTRSwgcmVnLCAweGZmZmYsIGJ5dGVzKTsKPisJZWxzZQo+KwkJ YXI3MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGRhdGEsIGJ5dGVzKTsK PiB9Cj4gCj4gc3RhdGljIHZvaWQgCj5AQCAtMjMyLDYgKzIyMiw5IEBAIGFyNzI0eF9wY2lfc2V0 dXAoZGV2aWNlX3QgZGV2KQo+IAllbHNlCj4gCQlyZWcgPSAweDFmZmMxOwo+IAlBVEhfV1JJVEVf UkVHKEFSNzI0WF9QQ0lfQVBQLCByZWcpOwo+KwkvKiBGbHVzaCB3cml0ZSAqLwo+Kwkodm9pZCkg QVRIX1JFQURfUkVHKEFSNzI0WF9QQ0lfQVBQKTsKPisKPiAJREVMQVkoMTAwMCk7Cj4gCj4gCXJl ZyA9IEFUSF9SRUFEX1JFRyhBUjcyNFhfUENJX1JFU0VUKTsKPkBAIC00NTcsMTAgKzQ1MCw3IEBA IGFyNzI0eF9wY2lfYWN0aXZhdGVfcmVzb3VyY2UoZGV2aWNlX3QgYnUKPiAJCWNhc2UgU1lTX1JF U19NRU1PUlk6Cj4gCQljYXNlIFNZU19SRVNfSU9QT1JUOgo+IAo+LQkJCS8qIFhYWCAqLwo+LQkJ CS8vcm1hbl9zZXRfYnVzdGFnKHIsIGFyNzF4eF9idXNfc3BhY2VfcGNpbWVtKTsKPi0JCQkvL3Jt YW5fc2V0X2J1c3RhZyhyLCBtaXBzX2J1c19zcGFjZV9nZW5lcmljKTsKPi0JCQlybWFuX3NldF9i dXN0YWcociwgYXI3MXh4X2J1c19zcGFjZV9yZXZlcnNlZCk7Cj4rCQkJcm1hbl9zZXRfYnVzdGFn KHIsIGFyNzF4eF9idXNfc3BhY2VfcGNpbWVtKTsKPiAJCQlicmVhazsKPiAJCX0KPiAJfQo+Cj4K PkF1dGhvcjogcm1hY2tsZW0KPkRhdGU6IFN1biBNYXkgIDEgMjM6NDE6MzUgMjAxMQo+TmV3IFJl dmlzaW9uOiAyMjEzMDgKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFz ZS8yMjEzMDgKPgo+TG9nOgo+ICBGaXggbmZzc3RhdCBzbyB0aGF0IHRoZSAiLXoiIG9wdGlvbiB3 b3JrcyBmb3IgdGhlCj4gIG5ldyBORlMgc3Vic3lzdGVtLgo+ICAKPiAgTUZDIGFmdGVyOgkyIHdl ZWtzCj4KPk1vZGlmaWVkOgo+ICBoZWFkL3Vzci5iaW4vbmZzc3RhdC9uZnNzdGF0LmMKPgo+TW9k aWZpZWQ6IGhlYWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuYwo+PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Cj4tLS0gaGVhZC91c3IuYmluL25mc3N0YXQvbmZzc3RhdC5jCVN1biBNYXkgIDEgMjM6MzI6 MzcgMjAxMQkocjIyMTMwNykKPisrKyBoZWFkL3Vzci5iaW4vbmZzc3RhdC9uZnNzdGF0LmMJU3Vu IE1heSAgMSAyMzo0MTozNSAyMDExCShyMjIxMzA4KQo+QEAgLTg1LDYgKzg1LDcgQEAgc3RhdGlj IGludCB6ZmxhZyA9IDA7Cj4gc3RhdGljIGludCBydW5fdjQgPSAwOwo+IHN0YXRpYyBpbnQgcHJp bnR0aXRsZSA9IDE7Cj4gc3RhdGljIHN0cnVjdCBleHRfbmZzc3RhdHMgZXh0X25mc3N0YXRzOwo+ K3N0YXRpYyBpbnQgbmZzc3ZjX2ZsYWc7Cj4gCj4gdm9pZCBpbnRwcihpbnQsIGludCk7Cj4gdm9p ZCBwcmludGhkcihpbnQsIGludCk7Cj5AQCAtMTA3LDYgKzEwOCw3IEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQo+IAljaGFyICptZW1mLCAqbmxpc3RmOwo+IAljaGFyIGVycmJ1ZltfUE9T SVgyX0xJTkVfTUFYXTsKPiAKPisJbmZzc3ZjX2ZsYWcgPSBORlNTVkNfR0VUU1RBVFM7Cj4gCWlu dGVydmFsID0gMDsKPiAJbWVtZiA9IG5saXN0ZiA9IE5VTEw7Cj4gCXdoaWxlICgoY2ggPSBnZXRv cHQoYXJnYywgYXJndiwgImNlc1dNOk46dzp6IikpICE9IC0xKQo+QEAgLTEzNSw2ICsxMzcsNyBA QCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAJCQlicmVhazsKPiAJCWNhc2UgJ3onOgo+ IAkJCXpmbGFnID0gMTsKPisJCQluZnNzdmNfZmxhZyB8PSBORlNTVkNfWkVST1NUQVRTOwo+IAkJ CWJyZWFrOwo+IAkJY2FzZSAnZSc6Cj4gCQkJcnVuX3Y0ID0gMTsKPkBAIC0xNjEsNyArMTY0LDcg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gCQllcnJ4KDEsICJleHBlcmltZW50YWwg Y2xpZW50L3NlcnZlciBub3QgbG9hZGVkIik7Cj4gCj4gCWlmIChydW5fdjQgIT0gMCkgewo+LQkJ aWYgKG5mc3N2YyhORlNTVkNfR0VUU1RBVFMsICZleHRfbmZzc3RhdHMpIDwgMCkKPisJCWlmIChu ZnNzdmMobmZzc3ZjX2ZsYWcsICZleHRfbmZzc3RhdHMpIDwgMCkKPiAJCQllcnIoMSwgIkNhbid0 IGdldCBzdGF0cyIpOwo+IAl9IGVsc2UgaWYgKG5saXN0ZiAhPSBOVUxMIHx8IG1lbWYgIT0gTlVM TCkgewo+IAkJZGVhZGtlcm5lbCA9IDE7Cj5AQCAtNzkzLDEzICs3OTYsMTMgQEAgZXhwX3NpZGV3 YXlzaW50cHIodV9pbnQgaW50ZXJ2YWwsIGludCBjbAo+IAlpbnQgaGRyY250ID0gMTsKPiAKPiAJ ZXh0X25mc3N0YXRzcCA9ICZsYXN0c3Q7Cj4tCWlmIChuZnNzdmMoTkZTU1ZDX0dFVFNUQVRTLCBl eHRfbmZzc3RhdHNwKSA8IDApCj4rCWlmIChuZnNzdmMobmZzc3ZjX2ZsYWcsIGV4dF9uZnNzdGF0 c3ApIDwgMCkKPiAJCWVycigxLCAiQ2FuJ3QgZ2V0IHN0YXRzIik7Cj4gCXNsZWVwKGludGVydmFs KTsKPiAKPiAJZm9yICg7Oykgewo+IAkJZXh0X25mc3N0YXRzcCA9ICZuZnNzdGF0czsKPi0JCWlm IChuZnNzdmMoTkZTU1ZDX0dFVFNUQVRTLCBleHRfbmZzc3RhdHNwKSA8IDApCj4rCQlpZiAobmZz c3ZjKG5mc3N2Y19mbGFnLCBleHRfbmZzc3RhdHNwKSA8IDApCj4gCQkJZXJyKDEsICJDYW4ndCBn ZXQgc3RhdHMiKTsKPiAKPiAJCWlmICgtLWhkcmNudCA9PSAwKSB7Cj4KPgo+QXV0aG9yOiBybWFj a2xlbQo+RGF0ZTogU3VuIE1heSAgMSAyMzo1NTo1NiAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMw OQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwOQo+Cj5M b2c6Cj4gIEZpeCBuZnNzdGF0LjEgdG8gaW5kaWNhdGUgdGhhdCAiLXoiIG5vdyB3b3JrcyBmb3IK PiAgdGhlIG5ldyBORlMgc3Vic3lzdGVtcyBhZnRlciByMjIxMzA4Lgo+ICBUaGlzIGlzIGEgY29u dGVudCBjaGFuZ2UuCj4gIAo+ICBNRkMgYWZ0ZXI6CTIgd2Vla3MKPgo+TW9kaWZpZWQ6Cj4gIGhl YWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuMQo+Cj5Nb2RpZmllZDogaGVhZC91c3IuYmluL25m c3N0YXQvbmZzc3RhdC4xCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBoZWFkL3Vzci5iaW4v bmZzc3RhdC9uZnNzdGF0LjEJU3VuIE1heSAgMSAyMzo0MTozNSAyMDExCShyMjIxMzA4KQo+Kysr IGhlYWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuMQlTdW4gTWF5ICAxIDIzOjU1OjU2IDIwMTEJ KHIyMjEzMDkpCj5AQCAtMjgsNyArMjgsNyBAQAo+IC5cIiAgICAgRnJvbTogQCgjKW5mc3N0YXQu MQk4LjEgKEJlcmtlbGV5KSA2LzYvOTMKPiAuXCIgJEZyZWVCU0QkCj4gLlwiCj4tLkRkIE9jdG9i ZXIgMTgsIDIwMDcKPisuRGQgTWF5IDEsIDIwMTEKPiAuRHQgTkZTU1RBVCAxCj4gLk9zCj4gLlNo IE5BTUUKPkBAIC03OCw3ICs3OCw2IEBAIGFjdGl2aXR5IGZvciBib3RoIHRoZSBjbGllbnQgYW5k IHNlcnZlciAKPiBzZWNvbmQgaW50ZXJ2YWxzLgo+IC5JdCBGbCB6Cj4gUmVzZXQgc3RhdGlzdGlj cyBhZnRlciBkaXNwbGF5aW5nIHRoZW0uCj4tKE5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IHRo ZSBleHBlcmltZW50YWwgbmZzIHN1YnN5c3RlbS4pCj4gLkl0IEZsIGUKPiBHYXRoZXIgc3RhdGlz dGljcyBmcm9tIHRoZSBleHBlcmltZW50YWwgbmZzIHN1YnN5c3RlbSB0aGF0IGluY2x1ZGVzCj4g c3VwcG9ydCBmb3IgTkZTdjQgaW5zdGVhZCBvZiB0aGUgcmVndWxhciBuZnMgc3Vic3lzdGVtLgo+ Cj4KPkF1dGhvcjogYWRyaWFuCj5EYXRlOiBNb24gTWF5ICAyIDA1OjM5OjQzIDIwMTEKPk5ldyBS ZXZpc2lvbjogMjIxMzEyCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzEyCj4KPkxvZzoKPiAgQWRkIGRvY3VtZW50YXRpb24gdG8gc3lzL2NvbmYvb3B0aW9u cyBwb2ludGluZyBvdXQgdGhhdCBBSF9TVVBQT1JUX0FSOTEzMAo+ICBzaG91bGRuJ3QgYmUgZW5h YmxlZCBieSBkZWZhdWx0IHVubGVzcyB5b3UncmUgdHJ1ZWx5IGJ1aWxkaW5nIGZvciB0aGUKPiAg QVI5MTN4IHBsYXRmb3JtLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvY29uZi9vcHRpb25zCj4K Pk1vZGlmaWVkOiBoZWFkL3N5cy9jb25mL29wdGlvbnMKPj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ LS0tIGhlYWQvc3lzL2NvbmYvb3B0aW9ucwlNb24gTWF5ICAyIDAxOjAxOjAzIDIwMTEJKHIyMjEz MTEpCj4rKysgaGVhZC9zeXMvY29uZi9vcHRpb25zCU1vbiBNYXkgIDIgMDU6Mzk6NDMgMjAxMQko cjIyMTMxMikKPkBAIC03NzUsNiArNzc1LDggQEAgQVRIX0VOQUJMRV8xMU4JCW9wdF9haC5oCj4g Cj4gIyBvcHRpb25zIGZvciB0aGUgQXRoZXJvcyBoYWwKPiBBSF9TVVBQT1JUX0FSNTQxNglvcHRf YWguaAo+KyMgWFhYIEZvciBub3csIHRoaXMgYnJlYWtzIG5vbi1BUjkxMzAgY2hpcHNldHMsIHNv IG9ubHkgdXNlIGl0Cj4rIyBYWFggd2hlbiBhY3R1YWxseSB0YXJnZXR0aW5nIEFSOTEzMC4KPiBB SF9TVVBQT1JUX0FSOTEzMAlvcHRfYWguaAo+IAo+IEFIX0RFQlVHCQlvcHRfYWguaAo+QEAgLTc5 MSw2ICs3OTMsNyBAQCBBSF9NQVhDSEFOCQlvcHRfYWguaAo+IEFIX1JYQ0ZHX1NETUFNV180QllU RVMJb3B0X2FoLmgKPiAKPiAjIEFSNTQxNiBhbmQgbGF0ZXIgaW50ZXJydXB0IG1pdGlnYXRpb24K PisjIFhYWCBkbyBub3QgdXNlIHRoaXMgZm9yIEFSOTEzMAo+IEFIX0FSNTQxNl9JTlRFUlJVUFRf TUlUSUdBVElPTglvcHRfYWguaAo+IAo+ICMgb3B0aW9ucyBmb3IgdGhlIEJyb2FkY29tIEJDTTQz eHggZHJpdmVyIChid2kpCj4KPgo+T24gMiBNYXkgMjAxMSAwMzo1NCwgQmVybmhhcmQgU2NobWlk dCA8YnNjaG1pZHRAZnJlZWJzZC5vcmc+IHdyb3RlOgo+Cj4+PiBJJ20gbm90IHN1cmUgdGhhdCdz IGludHJpbnNpY2FsbHkgdHJ1ZS4gRXZlbiBpZiB0aGV5IG1vc3RseSBvbmx5IHNoaXAKPj4+IHdp dGggSW50ZWwgbW90aGVyYm9hcmRzLCBtYW55IG9mIHRoZXNlIGFyZSBNaW5pLVBDSSBwYXJ0cyB3 aGljaCBjb3VsZCBiZQo+Pj4gcHV0IGludG8gbm9uLXg4NiBzeXN0ZW1zLgo+Pgo+PiBZZXMsIGlu ZGVlZC4gVGhvc2UgbWlnaHQgb2YgY291cnNlIGJlIHVzZWQgb24gb3RoZXIgcGxhdGZvcm1zIHRv bwo+PiAod2VsbCBhdCBsZWFzdCBpdCBmaXRzIGludG8gdGhlIHNsb3QsIEkga25vdyB0aGF0IGNl cnRhaW4gZmVhdHVyZXMKPj4gYXJlIG5vdCBldmVuIGF2YWlsYWJsZSBvbiBBTUQgcGxhdGZvcm1z KS4gSSdtIGp1c3Qgbm90IGF3YXJlIHRoYXQKPj4gYW55b25lIGV2ZXIgdHJpZWQgb25lIG9mIGl0 IG9uIG1pcHMgZm9yIGV4YW1wbGUuCj4+Cj4+IEkgZG9uJ3QgbWluZCBiZWluZyBwcm92ZW4gd3Jv bmcgYW5kIGlmIHNvIG1vdmUgdGhlIGVudHJpZXMgYmFjayB0bwo+PiBhIG1vcmUgZ2VuZXJpYyBs b2NhdGlvbi4gQ3VycmVudGx5IEknbSBqdXN0IHRyeWluZyBtaW1pYyB0aGUgbW9kdWxlCj4+IGJl aGF2aW91ciBpbiBzeXMvbW9kdWxlcy9NYWtlZmlsZS4KPgo+SSdtIGxpa2VseSB0byB0cnkgdGhl IGludGVsIG1pbmktcGNpZSBzdHVmZiBvbiB0aGUgYXRoZXJvcyBQQjkyIHJlZgo+Ym9hcmQgKEFS NzI0MiBNSVBTKS4gSnVzdCBub3QgeWV0Lgo+Cj5JJ2xsIGxldCB5b3Uga25vdyBob3cgaXQgZ29l cyB3aGVuIGkndmUgZG9uZSBpdC4KPgo+Cj4KPkFkaXJhbgo+Cj4KPkF1dGhvcjogbWF4aW0KPkRh dGU6IE1vbiBNYXkgIDIgMDk6NDc6MTMgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMTkKPlVSTDog aHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMTkKPgo+TG9nOgo+ICBv IE9wZW5CU0QgNC45IGFkZGVkLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zaGFyZS9taXNjL2JzZC1m YW1pbHktdHJlZQo+Cj5Nb2RpZmllZDogaGVhZC9zaGFyZS9taXNjL2JzZC1mYW1pbHktdHJlZQo+ PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zaGFyZS9taXNjL2JzZC1mYW1pbHktdHJl ZQlNb24gTWF5ICAyIDA4OjMzOjIwIDIwMTEJKHIyMjEzMTgpCj4rKysgaGVhZC9zaGFyZS9taXNj L2JzZC1mYW1pbHktdHJlZQlNb24gTWF5ICAyIDA5OjQ3OjEzIDIwMTEJKHIyMjEzMTkpCj5AQCAt MjQ2LDcgKzI0Niw3IEBAIEZyZWVCU0QgNS4yICAgICAgICAgICB8ICAgICAgfCAgICAgICAgICAK PiAgfCAgICAgfCAgICAgICAgfCAgICAgfCAgICAgIHwgTmV0QlNEIDUuMSAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgIHwKPiAgfCAgRnJlZUJTRCAgRnJlZUJTRCAgfCAgICAgIHwgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwKPiAgfCAgICA4LjIgICAgICA3LjQg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICBEcmFnb25GbHkgMi4x MC4xCj4tIHwgICAgIHYgICAgICAgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICB8Cj4rIHwgICAgIHYgICAgICAgICAgICAgIHwgICAgICB8ICAg ICAgICAgICAgIE9wZW5CU0QgNC45ICAgICAgICAgICAgICAgICB8Cj4gIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 Cj4gRnJlZUJTRCA5IC1jdXJyZW50ICAgIHwgIE5ldEJTRCAtY3VycmVudCAgT3BlbkJTRCAtY3Vy cmVudCAgICAgICAgICAgICB8Cj4gIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICB8ICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8Cj5AQCAtNTMzLDYgKzUzMyw3IEBA IE5ldEJTRCA1LjEJCTIwMTAtMTEtMTkgW05CRF0KPiBGcmVlQlNEIDcuNAkJMjAxMS0wMi0yNCBb RkJEXQo+IEZyZWVCU0QgOC4yCQkyMDExLTAyLTI0IFtGQkRdCj4gRHJhZ29uRmx5IDIuMTAuMQky MDExLTA0LTI2IFtERkJdCj4rT3BlbkJTRCA0LjkJCTIwMTEtMDUtMDEgW09CRF0KPiAKPiBCaWJs aW9ncmFwaHkKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPgo+Cj5BdXRob3I6IGJydWNlYwo+ RGF0ZTogTW9uIE1heSAgMiAxMDozNToyNyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMyMAo+VVJM OiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMyMAo+Cj5Mb2c6Cj4g IEFkZCAtV21pc3NpbmctaW5jbHVkZS1kaXJzIHRvIENXQVJORkxBR1MsIHNvIHRpbmRlcmJveCB3 aWxsIHB1bmlzaCB0aG9zZQo+ICBkZXZlbG9wZXJzIGNvbW1pdHRpbmcgbmV3IGNvZGUgd2l0aCBi cm9rZW4gaW5jbHVkZSBkaXJlY3Rvcmllcy4KPiAgRml4IGEgZmV3IHdoaXRlc3BhY2UgaXNzdWVz Lgo+ICBJbXByb3ZlIGEgY291cGxlIG9mIGNvbW1lbnRzLgo+ICAtVyBpcyBub3cgZGVwcmVjYXRl ZCBhbmQgaXMgcmVmZXJyZWQgdG8gYXMgLVdleHRyYSAoc2VlIGdjYygxKSkuCj4gIAo+ICBTdWJt aXR0ZWQgYnk6CWFydW5kZWwKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2NvbmYva2Vybi5tawo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvY29uZi9rZXJuLm1rCj49PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Pi0tLSBoZWFkL3N5cy9jb25mL2tlcm4ubWsJTW9uIE1heSAgMiAwOTo0NzoxMyAyMDExCShyMjIx MzE5KQo+KysrIGhlYWQvc3lzL2NvbmYva2Vybi5tawlNb24gTWF5ICAyIDEwOjM1OjI3IDIwMTEJ KHIyMjEzMjApCj5AQCAtMywyNCArMywyNSBAQAo+ICMKPiAjIFdhcm5pbmcgZmxhZ3MgZm9yIGNv bXBpbGluZyB0aGUga2VybmVsIGFuZCBjb21wb25lbnRzIG9mIHRoZSBrZXJuZWwuCj4gIwo+LSMg Tm90ZSB0aGF0IHRoZSBuZXdseSBhZGRlZCAtV2Nhc3QtcXVhbCBpcyByZXNwb25zaWJsZSBmb3Ig Z2VuZXJhdGluZyAKPisjIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdjYXN0LXF1YWwgaXMg cmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcKPiAjIG1vc3Qgb2YgdGhlIHJlbWFpbmluZyB3YXJu aW5ncy4gIFdhcm5pbmdzIGludHJvZHVjZWQgd2l0aCAtV2FsbCB3aWxsCj4gIyBhbHNvIHBvcCB1 cCwgYnV0IGFyZSBlYXNpZXIgdG8gZml4Lgo+IENXQVJORkxBR1M/PQktV2FsbCAtV3JlZHVuZGFu dC1kZWNscyAtV25lc3RlZC1leHRlcm5zIC1Xc3RyaWN0LXByb3RvdHlwZXMgXAo+IAkJLVdtaXNz aW5nLXByb3RvdHlwZXMgLVdwb2ludGVyLWFyaXRoIC1XaW5saW5lIC1XY2FzdC1xdWFsIFwKPi0J CS1XdW5kZWYgLVduby1wb2ludGVyLXNpZ24gLWZmb3JtYXQtZXh0ZW5zaW9ucwo+KwkJLVd1bmRl ZiAtV25vLXBvaW50ZXItc2lnbiAtZmZvcm1hdC1leHRlbnNpb25zIFwKPisJCS1XbWlzc2luZy1p bmNsdWRlLWRpcnMKPiAjCj4gIyBUaGUgZm9sbG93aW5nIGZsYWdzIGFyZSBuZXh0IHVwIGZvciB3 b3JraW5nIG9uOgo+LSMJLVcKPisjCS1XZXh0cmEKPiAKPiAjCj4tIyBPbiB0aGUgaTM4NiwgZG8g bm90IGFsaWduIHRoZSBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMuICBPdGhlcndpc2UgR0ND Cj4tIyAyLjk1IGFkZHMgY29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkg ZnVuY3Rpb24gdG8gYWxpZ24gdGhlCj4rIyBPbiBpMzg2LCBkbyBub3QgYWxpZ24gdGhlIHN0YWNr IHRvIDE2LWJ5dGUgYm91bmRhcmllcy4gIE90aGVyd2lzZSBHQ0MgMi45NQo+KyMgYW5kIGFib3Zl IGFkZHMgY29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkgZnVuY3Rpb24g dG8gYWxpZ24gdGhlCj4gIyBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMgLS0gdGh1cyB3YXN0 aW5nIGFwcHJveGltYXRlbHkgMTIgYnl0ZXMgb2Ygc3RhY2sKPi0jIHBlciBmdW5jdGlvbiBjYWxs LiAgV2hpbGUgdGhlIDE2LWJ5dGUgYWxpZ25tZW50IG1heSBiZW5lZml0IG1pY3JvIGJlbmNobWFy a3MsIAo+KyMgcGVyIGZ1bmN0aW9uIGNhbGwuICBXaGlsZSB0aGUgMTYtYnl0ZSBhbGlnbm1lbnQg bWF5IGJlbmVmaXQgbWljcm8gYmVuY2htYXJrcywKPiAjIGl0IGlzIHByb2JhYmx5IGFuIG92ZXJh bGwgbG9zcyBhcyBpdCBtYWtlcyB0aGUgY29kZSBiaWdnZXIgKGxlc3MgZWZmaWNpZW50Cj4gIyB1 c2Ugb2YgY29kZSBjYWNoZSB0YWcgbGluZXMpIGFuZCB1c2VzIG1vcmUgc3RhY2sgKGxlc3MgZWZm aWNpZW50IHVzZSBvZiBkYXRhCj4tIyBjYWNoZSB0YWcgbGluZXMpLiAgRXhwbGljaXRseSBwcm9o aWJpdCB0aGUgdXNlIG9mIFNTRSBhbmQgb3RoZXIgU0lNRAo+KyMgY2FjaGUgdGFnIGxpbmVzKS4g IEV4cGxpY2l0bHkgcHJvaGliaXQgdGhlIHVzZSBvZiBGUFUsIFNTRSBhbmQgb3RoZXIgU0lNRAo+ ICMgb3BlcmF0aW9ucyBpbnNpZGUgdGhlIGtlcm5lbCBpdHNlbGYuICBUaGVzZSBvcGVyYXRpb25z IGFyZSBleGNsdXNpdmVseQo+ICMgcmVzZXJ2ZWQgZm9yIHVzZXIgYXBwbGljYXRpb25zLgo+ICMK PkBAIC0zNSw2ICszNiw3IEBAIElOTElORV9MSU1JVD89CTgwMDAKPiAuaWYgJHtNQUNISU5FX0NQ VUFSQ0h9ID09ICJhcm0iCj4gSU5MSU5FX0xJTUlUPz0JODAwMAo+IC5lbmRpZgo+Kwo+ICMKPiAj IEZvciBJQS02NCwgd2UgdXNlIHIxMyBmb3IgdGhlIGtlcm5lbCBnbG9iYWxzIHBvaW50ZXIgYW5k IHdlIG9ubHkgdXNlCj4gIyBhIHZlcnkgc21hbGwgc3Vic2V0IG9mIGZsb2F0IHJlZ2lzdGVycyBm b3IgaW50ZWdlciBkaXZpZGVzLgo+QEAgLTk4LDcgKzEwMCw3IEBAIElOTElORV9MSU1JVD89CTgw MDAKPiBDRkxBR1MrPQktZmZyZWVzdGFuZGluZwo+IAo+ICMKPi0jIEdDQyBTU1Agc3VwcG9ydC4K PisjIEdDQyBTU1Agc3VwcG9ydAo+ICMKPiAuaWYgJHtNS19TU1B9ICE9ICJubyIgJiYgJHtNQUNI SU5FX0NQVUFSQ0h9ICE9ICJpYTY0IiAmJiBcCj4gICAgICR7TUFDSElORV9DUFVBUkNIfSAhPSAi YXJtIiAmJiAke01BQ0hJTkVfQ1BVQVJDSH0gIT0gIm1pcHMiCj5AQCAtMTA2LDkgKzEwOCw4IEBA IENGTEFHUys9CS1mc3RhY2stcHJvdGVjdG9yCj4gLmVuZGlmCj4gCj4gIwo+LSMgRW5hYmxlIENU RiBjb252ZXJzYXRpb24gb24gcmVxdWVzdC4KPisjIEVuYWJsZSBDVEYgY29udmVyc2F0aW9uIG9u IHJlcXVlc3QKPiAjCj4gLmlmIGRlZmluZWQoV0lUSF9DVEYpCj4gLnVuZGVmIE5PX0NURgo+IC5l bmRpZgo+LQo+Cj4KPkF1dGhvcjogYWRyaWFuCj5EYXRlOiBNb24gTWF5ICAyIDEwOjQyOjE5IDIw MTEKPk5ldyBSZXZpc2lvbjogMjIxMzIxCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hh bmdlc2V0L2Jhc2UvMjIxMzIxCj4KPkxvZzoKPiAgQWRkIGluIHRoZSB3b3JrLWFyb3VuZCBmb3Ig dGhlIEFSODMxNiBnaWdlIHN3aXRjaCBQSFkuCj4gIAo+ICBUaGlzIGFsbG93cyB0aGUgZXRoZXJu ZXQgdG8gZnVuY3Rpb24gb24gdGhlIFBCOTIgYm9hcmQuCj4gIAo+ICBTdWJtaXR0ZWQgYnk6CUx1 aXogT3RhdmlvIE8gU291emEKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL21pcHMvY29uZi9QQjky LmhpbnRzCj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9taXBzL2NvbmYvUEI5Mi5oaW50cwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvbWlwcy9jb25mL1BCOTIuaGludHMJTW9uIE1h eSAgMiAxMDozNToyNyAyMDExCShyMjIxMzIwKQo+KysrIGhlYWQvc3lzL21pcHMvY29uZi9QQjky LmhpbnRzCU1vbiBNYXkgIDIgMTA6NDI6MTkgMjAxMQkocjIyMTMyMSkKPkBAIC0zMCw3ICszMCwx MSBAQCBoaW50LmFyZ2UuMC5hdD0ibmV4dXMwIgo+IGhpbnQuYXJnZS4wLm1hZGRyPTB4MTkwMDAw MDAKPiBoaW50LmFyZ2UuMC5tc2l6ZT0weDEwMDAKPiBoaW50LmFyZ2UuMC5pcnE9Mgo+LWhpbnQu YXJnZS4wLnBoeW1hc2s9MHgxCj4rCj4rIyBBUjgzMTYgd29ya2Fyb3VuZCBmb3Igbm93Cj4raGlu dC5hcmdlLjAubWVkaWE9MTAwMAo+K2hpbnQuYXJnZS4wLmZkdXBsZXg9MQo+K2hpbnQuYXJnZS4w LnBoeW1hc2s9MHgzCj4gCj4gIyBHUElPCj4gaGludC5ncGlvLjAuYXQ9ImFwYjAiCj4KPgo+T24g TW9uIE1heSAgMiAxMSwgQnJ1Y2UgQ3JhbiB3cm90ZToKPj4gQXV0aG9yOiBicnVjZWMKPj4gRGF0 ZTogTW9uIE1heSAgMiAxMDozNToyNyAyMDExCj4+IE5ldyBSZXZpc2lvbjogMjIxMzIwCj4+IFVS TDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjAKPj4gCj4+IExv ZzoKPj4gICBBZGQgLVdtaXNzaW5nLWluY2x1ZGUtZGlycyB0byBDV0FSTkZMQUdTLCBzbyB0aW5k ZXJib3ggd2lsbCBwdW5pc2ggdGhvc2UKPj4gICBkZXZlbG9wZXJzIGNvbW1pdHRpbmcgbmV3IGNv ZGUgd2l0aCBicm9rZW4gaW5jbHVkZSBkaXJlY3Rvcmllcy4KPgo+QnJ1Y2UgYWxyZWFkeSBjb21t aXR0ZWQgcjIyMDcxMiBpbiBvcmRlciB0byBtYWtlIHRoZSBjdXJyZW50IHRyZWUgd29yayB3aXRo Cj4tV21pc3NpbmctaW5jbHVkZS1kaXJzLiBTbyBob3BlZnVsbHkgdGluZGVyYm94IHdpbGwgbm90 IGNvbXBsYWluIGZvciBhbnkgQVJDSC4KPgo+UGxlYXNlIGFsc28gbm90ZSB0aGF0IGN1cnJlbnRs eSAtV21pc3NpbmctaW5jbHVkZS1kaXJzIGlzIGEgbm9vcCBpbiBjbGFuZy4gT25jZQo+aXQgZ2V0 cyBpbXBsZW1lbnRlZCB3ZSB3aWxsIGhvcGVmdWxseSBiZW5lZml0IGZyb20gaXQgdmlhIHRoZSB2 ZW5kb3IgaW1wb3J0Lgo+Cj5UaGFua3MgYWdhaW4gQnJ1Y2UgZm9yIHRha2luZyBjYXJlISA6KQo+ Cj4+ICAgRml4IGEgZmV3IHdoaXRlc3BhY2UgaXNzdWVzLgo+PiAgIEltcHJvdmUgYSBjb3VwbGUg b2YgY29tbWVudHMuCj4+ICAgLVcgaXMgbm93IGRlcHJlY2F0ZWQgYW5kIGlzIHJlZmVycmVkIHRv IGFzIC1XZXh0cmEgKHNlZSBnY2MoMSkpLgo+PiAgIAo+PiAgIFN1Ym1pdHRlZCBieToJYXJ1bmRl bAo+PiAKPj4gTW9kaWZpZWQ6Cj4+ICAgaGVhZC9zeXMvY29uZi9rZXJuLm1rCj4+IAo+PiBNb2Rp ZmllZDogaGVhZC9zeXMvY29uZi9rZXJuLm1rCj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+PiAt LS0gaGVhZC9zeXMvY29uZi9rZXJuLm1rCU1vbiBNYXkgIDIgMDk6NDc6MTMgMjAxMQkocjIyMTMx OSkKPj4gKysrIGhlYWQvc3lzL2NvbmYva2Vybi5tawlNb24gTWF5ICAyIDEwOjM1OjI3IDIwMTEJ KHIyMjEzMjApCj4+IEBAIC0zLDI0ICszLDI1IEBACj4+ICAjCj4+ICAjIFdhcm5pbmcgZmxhZ3Mg Zm9yIGNvbXBpbGluZyB0aGUga2VybmVsIGFuZCBjb21wb25lbnRzIG9mIHRoZSBrZXJuZWwuCj4+ ICAjCj4+IC0jIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdjYXN0LXF1YWwgaXMgcmVzcG9u c2libGUgZm9yIGdlbmVyYXRpbmcgCj4+ICsjIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdj YXN0LXF1YWwgaXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcKPj4gICMgbW9zdCBvZiB0aGUg cmVtYWluaW5nIHdhcm5pbmdzLiAgV2FybmluZ3MgaW50cm9kdWNlZCB3aXRoIC1XYWxsIHdpbGwK Pj4gICMgYWxzbyBwb3AgdXAsIGJ1dCBhcmUgZWFzaWVyIHRvIGZpeC4KPj4gIENXQVJORkxBR1M/ PQktV2FsbCAtV3JlZHVuZGFudC1kZWNscyAtV25lc3RlZC1leHRlcm5zIC1Xc3RyaWN0LXByb3Rv dHlwZXMgXAo+PiAgCQktV21pc3NpbmctcHJvdG90eXBlcyAtV3BvaW50ZXItYXJpdGggLVdpbmxp bmUgLVdjYXN0LXF1YWwgXAo+PiAtCQktV3VuZGVmIC1Xbm8tcG9pbnRlci1zaWduIC1mZm9ybWF0 LWV4dGVuc2lvbnMKPj4gKwkJLVd1bmRlZiAtV25vLXBvaW50ZXItc2lnbiAtZmZvcm1hdC1leHRl bnNpb25zIFwKPj4gKwkJLVdtaXNzaW5nLWluY2x1ZGUtZGlycwo+PiAgIwo+PiAgIyBUaGUgZm9s bG93aW5nIGZsYWdzIGFyZSBuZXh0IHVwIGZvciB3b3JraW5nIG9uOgo+PiAtIwktVwo+PiArIwkt V2V4dHJhCj4+ICAKPj4gICMKPj4gLSMgT24gdGhlIGkzODYsIGRvIG5vdCBhbGlnbiB0aGUgc3Rh Y2sgdG8gMTYtYnl0ZSBib3VuZGFyaWVzLiAgT3RoZXJ3aXNlIEdDQwo+PiAtIyAyLjk1IGFkZHMg Y29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkgZnVuY3Rpb24gdG8gYWxp Z24gdGhlCj4+ICsjIE9uIGkzODYsIGRvIG5vdCBhbGlnbiB0aGUgc3RhY2sgdG8gMTYtYnl0ZSBi b3VuZGFyaWVzLiAgT3RoZXJ3aXNlIEdDQyAyLjk1Cj4+ICsjIGFuZCBhYm92ZSBhZGRzIGNvZGUg dG8gdGhlIGVudHJ5IGFuZCBleGl0IHBvaW50IG9mIGV2ZXJ5IGZ1bmN0aW9uIHRvIGFsaWduIHRo ZQo+PiAgIyBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMgLS0gdGh1cyB3YXN0aW5nIGFwcHJv eGltYXRlbHkgMTIgYnl0ZXMgb2Ygc3RhY2sKPj4gLSMgcGVyIGZ1bmN0aW9uIGNhbGwuICBXaGls ZSB0aGUgMTYtYnl0ZSBhbGlnbm1lbnQgbWF5IGJlbmVmaXQgbWljcm8gYmVuY2htYXJrcywgCj4+ ICsjIHBlciBmdW5jdGlvbiBjYWxsLiAgV2hpbGUgdGhlIDE2LWJ5dGUgYWxpZ25tZW50IG1heSBi ZW5lZml0IG1pY3JvIGJlbmNobWFya3MsCj4+ICAjIGl0IGlzIHByb2JhYmx5IGFuIG92ZXJhbGwg bG9zcyBhcyBpdCBtYWtlcyB0aGUgY29kZSBiaWdnZXIgKGxlc3MgZWZmaWNpZW50Cj4+ICAjIHVz ZSBvZiBjb2RlIGNhY2hlIHRhZyBsaW5lcykgYW5kIHVzZXMgbW9yZSBzdGFjayAobGVzcyBlZmZp Y2llbnQgdXNlIG9mIGRhdGEKPj4gLSMgY2FjaGUgdGFnIGxpbmVzKS4gIEV4cGxpY2l0bHkgcHJv aGliaXQgdGhlIHVzZSBvZiBTU0UgYW5kIG90aGVyIFNJTUQKPj4gKyMgY2FjaGUgdGFnIGxpbmVz KS4gIEV4cGxpY2l0bHkgcHJvaGliaXQgdGhlIHVzZSBvZiBGUFUsIFNTRSBhbmQgb3RoZXIgU0lN RAo+PiAgIyBvcGVyYXRpb25zIGluc2lkZSB0aGUga2VybmVsIGl0c2VsZi4gIFRoZXNlIG9wZXJh dGlvbnMgYXJlIGV4Y2x1c2l2ZWx5Cj4+ICAjIHJlc2VydmVkIGZvciB1c2VyIGFwcGxpY2F0aW9u cy4KPj4gICMKPj4gQEAgLTM1LDYgKzM2LDcgQEAgSU5MSU5FX0xJTUlUPz0JODAwMAo+PiAgLmlm ICR7TUFDSElORV9DUFVBUkNIfSA9PSAiYXJtIgo+PiAgSU5MSU5FX0xJTUlUPz0JODAwMAo+PiAg LmVuZGlmCj4+ICsKPj4gICMKPj4gICMgRm9yIElBLTY0LCB3ZSB1c2UgcjEzIGZvciB0aGUga2Vy bmVsIGdsb2JhbHMgcG9pbnRlciBhbmQgd2Ugb25seSB1c2UKPj4gICMgYSB2ZXJ5IHNtYWxsIHN1 YnNldCBvZiBmbG9hdCByZWdpc3RlcnMgZm9yIGludGVnZXIgZGl2aWRlcy4KPj4gQEAgLTk4LDcg KzEwMCw3IEBAIElOTElORV9MSU1JVD89CTgwMDAKPj4gIENGTEFHUys9CS1mZnJlZXN0YW5kaW5n Cj4+ICAKPj4gICMKPj4gLSMgR0NDIFNTUCBzdXBwb3J0Lgo+PiArIyBHQ0MgU1NQIHN1cHBvcnQK Pj4gICMKPj4gIC5pZiAke01LX1NTUH0gIT0gIm5vIiAmJiAke01BQ0hJTkVfQ1BVQVJDSH0gIT0g ImlhNjQiICYmIFwKPj4gICAgICAke01BQ0hJTkVfQ1BVQVJDSH0gIT0gImFybSIgJiYgJHtNQUNI SU5FX0NQVUFSQ0h9ICE9ICJtaXBzIgo+PiBAQCAtMTA2LDkgKzEwOCw4IEBAIENGTEFHUys9CS1m c3RhY2stcHJvdGVjdG9yCj4+ICAuZW5kaWYKPj4gIAo+PiAgIwo+PiAtIyBFbmFibGUgQ1RGIGNv bnZlcnNhdGlvbiBvbiByZXF1ZXN0Lgo+PiArIyBFbmFibGUgQ1RGIGNvbnZlcnNhdGlvbiBvbiBy ZXF1ZXN0Cj4+ICAjCj4+ICAuaWYgZGVmaW5lZChXSVRIX0NURikKPj4gIC51bmRlZiBOT19DVEYK Pj4gIC5lbmRpZgo+PiAtCj4KPi0tIAo+YTEzeAo+Cj4KPk9uIDIwMTEtMDQtMjkgMjA6MjAsIEp1 bmctdWsgS2ltIHdyb3RlOgo+Li4uCj4+ICtzdGF0aWMgX19pbmxpbmUgdm9pZAo+PiArdm13YXJl X2h2Y2FsbCh1X2ludCBjbWQsIHVfaW50ICpwKQo+PiArewo+PiArCj4+ICsJX19hc20gX192b2xh dGlsZSgiaW5sICglJWR4KSIKPj4gKwk6ICI9YSIgKHBbMF0pLCAiPWIiIChwWzFdKSwgIj1jIiAo cFsyXSksICI9ZCIgKHBbM10pCj4+ICsJOiAiMCIgKFZNV19IVk1BR0lDKSwgIjEiIChVSU5UX01B WCksICIyIiAoY21kKSwgIjMiIChWTVdfSFZQT1JUKQo+PiArCTogIm1lbW9yeSIpOwo+PiArfQo+ Cj5UaGlzIHVwc2V0cyBjbGFuZydzIGludGVncmF0ZWQgYXNzZW1ibGVyLCBhbmQgSSB0aGluayBp dCdzIHJpZ2h0IGluIHRoaXMKPmNhc2U6Cj4KPnN5cy94ODYveDg2L3RzYy5jOjEwMzoxOTogZXJy b3I6IGludmFsaWQgb3BlcmFuZCBmb3IgaW5zdHJ1Y3Rpb24KPiAgICAgICAgIF9fYXNtIF9fdm9s YXRpbGUoImlubCAoJSVkeCkiCj4gICAgICAgICAgICAgICAgICAgICAgICAgIF4KPjxpbmxpbmUg YXNtPjoxOjY6IG5vdGU6IGluc3RhbnRpYXRlZCBpbnRvIGFzc2VtYmx5IGhlcmUKPiAgICAgICAg IGlubCAoJWR4KQo+ICAgICAgICAgICAgIF4KPgo+Q2FuIHdlIHBsZWFzZSBhZGQgYW4gZXhwbGlj aXQgJSVlYXggYXMgc2Vjb25kIGFyZ3VtZW50IGhlcmU/ICBFLmcuOgo+Cj5kaWZmIC0tZ2l0IGEv c3lzL3g4Ni94ODYvdHNjLmMgYi9zeXMveDg2L3g4Ni90c2MuYwo+aW5kZXggMGI3NTEwYy4uOTYz ODE2NyAxMDA2NDQKPi0tLSBhL3N5cy94ODYveDg2L3RzYy5jCj4rKysgYi9zeXMveDg2L3g4Ni90 c2MuYwo+QEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgX19pbmxpbmUgdm9pZAo+ICB2bXdhcmVf aHZjYWxsKHVfaW50IGNtZCwgdV9pbnQgKnApCj4gIHsKPiAgCj4tCV9fYXNtIF9fdm9sYXRpbGUo ImlubCAoJSVkeCkiCj4rCV9fYXNtIF9fdm9sYXRpbGUoImlubCAoJSVkeCksICUlZWF4Igo+ICAJ OiAiPWEiIChwWzBdKSwgIj1iIiAocFsxXSksICI9YyIgKHBbMl0pLCAiPWQiIChwWzNdKQo+ICAJ OiAiMCIgKFZNV19IVk1BR0lDKSwgIjEiIChVSU5UX01BWCksICIyIiAoY21kKSwgIjMiIChWTVdf SFZQT1JUKQo+ICAJOiAibWVtb3J5Iik7Cj4KPgo+QXV0aG9yOiBqaGIKPkRhdGU6IE1vbiBNYXkg IDIgMTQ6MTM6MTIgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMjQKPlVSTDogaHR0cDovL3N2bi5m cmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjQKPgo+TG9nOgo+ICBBZGQgaW1wbGVtZW50 YXRpb25zIG9mIEJVU19BREpVU1RfUkVTT1VSQ0UoKSB0byB0aGUgUENJIGJ1cyBkcml2ZXIsCj4g IGdlbmVyaWMgUENJLVBDSSBicmlkZ2UgZHJpdmVyLCB4ODYgbmV4dXMgZHJpdmVyLCBhbmQgeDg2 IEhvc3QgdG8gUENJIGJyaWRnZQo+ICBkcml2ZXJzLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMv YW1kNjQvcGNpL3BjaV9idXMuYwo+ICBoZWFkL3N5cy9kZXYvYWNwaWNhL2FjcGlfcGNpYl9hY3Bp LmMKPiAgaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwo+ICBoZWFkL3N5cy9kZXYvcGNpL3BjaV9wY2ku Ywo+ICBoZWFkL3N5cy9pMzg2L3BjaS9wY2lfYnVzLmMKPiAgaGVhZC9zeXMveDg2L3g4Ni9tcHRh YmxlX3BjaS5jCj4gIGhlYWQvc3lzL3g4Ni94ODYvbmV4dXMuYwo+Cj5Nb2RpZmllZDogaGVhZC9z eXMvYW1kNjQvcGNpL3BjaV9idXMuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9z eXMvYW1kNjQvcGNpL3BjaV9idXMuYwlNb24gTWF5ICAyIDEzOjU4OjQwIDIwMTEJKHIyMjEzMjMp Cj4rKysgaGVhZC9zeXMvYW1kNjQvcGNpL3BjaV9idXMuYwlNb24gTWF5ICAyIDE0OjEzOjEyIDIw MTEJKHIyMjEzMjQpCj5AQCAtMzQ4LDYgKzM0OCw3IEBAIHN0YXRpYyBkZXZpY2VfbWV0aG9kX3Qg bGVnYWN5X3BjaWJfbWV0aG8KPiAJREVWTUVUSE9EKGJ1c19yZWFkX2l2YXIsCWxlZ2FjeV9wY2li X3JlYWRfaXZhciksCj4gCURFVk1FVEhPRChidXNfd3JpdGVfaXZhciwJbGVnYWN5X3BjaWJfd3Jp dGVfaXZhciksCj4gCURFVk1FVEhPRChidXNfYWxsb2NfcmVzb3VyY2UsCWxlZ2FjeV9wY2liX2Fs bG9jX3Jlc291cmNlKSwKPisJREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3VyY2UsCWJ1c19nZW5l cmljX2FkanVzdF9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfcmVsZWFzZV9yZXNvdXJjZSwJ YnVzX2dlbmVyaWNfcmVsZWFzZV9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfYWN0aXZhdGVf cmVzb3VyY2UsIGJ1c19nZW5lcmljX2FjdGl2YXRlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1 c19kZWFjdGl2YXRlX3Jlc291cmNlLCBidXNfZ2VuZXJpY19kZWFjdGl2YXRlX3Jlc291cmNlKSwK Pgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2Rldi9hY3BpY2EvYWNwaV9wY2liX2FjcGkuYwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWJfYWNwaS5j CU1vbiBNYXkgIDIgMTM6NTg6NDAgMjAxMQkocjIyMTMyMykKPisrKyBoZWFkL3N5cy9kZXYvYWNw aWNhL2FjcGlfcGNpYl9hY3BpLmMJTW9uIE1heSAgMiAxNDoxMzoxMiAyMDExCShyMjIxMzI0KQo+ QEAgLTEwMCw2ICsxMDAsNyBAQCBzdGF0aWMgZGV2aWNlX21ldGhvZF90IGFjcGlfcGNpYl9hY3Bp X21lCj4gICAgIERFVk1FVEhPRChidXNfcmVhZF9pdmFyLAkJYWNwaV9wY2liX3JlYWRfaXZhciks Cj4gICAgIERFVk1FVEhPRChidXNfd3JpdGVfaXZhciwJCWFjcGlfcGNpYl93cml0ZV9pdmFyKSwK PiAgICAgREVWTUVUSE9EKGJ1c19hbGxvY19yZXNvdXJjZSwJYWNwaV9wY2liX2FjcGlfYWxsb2Nf cmVzb3VyY2UpLAo+KyAgICBERVZNRVRIT0QoYnVzX2FkanVzdF9yZXNvdXJjZSwJYnVzX2dlbmVy aWNfYWRqdXN0X3Jlc291cmNlKSwKPiAgICAgREVWTUVUSE9EKGJ1c19yZWxlYXNlX3Jlc291cmNl LAlidXNfZ2VuZXJpY19yZWxlYXNlX3Jlc291cmNlKSwKPiAgICAgREVWTUVUSE9EKGJ1c19hY3Rp dmF0ZV9yZXNvdXJjZSwJYnVzX2dlbmVyaWNfYWN0aXZhdGVfcmVzb3VyY2UpLAo+ICAgICBERVZN RVRIT0QoYnVzX2RlYWN0aXZhdGVfcmVzb3VyY2UsCWJ1c19nZW5lcmljX2RlYWN0aXZhdGVfcmVz b3VyY2UpLAo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwo+PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwlNb24gTWF5ICAyIDEzOjU4OjQw IDIwMTEJKHIyMjEzMjMpCj4rKysgaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwlNb24gTWF5ICAyIDE0 OjEzOjEyIDIwMTEJKHIyMjEzMjQpCj5AQCAtMTQyLDYgKzE0Miw3IEBAIHN0YXRpYyBkZXZpY2Vf bWV0aG9kX3QgcGNpX21ldGhvZHNbXSA9IHsKPiAJREVWTUVUSE9EKGJ1c19nZXRfcmVzb3VyY2Us CWJ1c19nZW5lcmljX3JsX2dldF9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfZGVsZXRlX3Jl c291cmNlLAlwY2lfZGVsZXRlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19hbGxvY19yZXNv dXJjZSwJcGNpX2FsbG9jX3Jlc291cmNlKSwKPisJREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3Vy Y2UsCWJ1c19nZW5lcmljX2FkanVzdF9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfcmVsZWFz ZV9yZXNvdXJjZSwJYnVzX2dlbmVyaWNfcmxfcmVsZWFzZV9yZXNvdXJjZSksCj4gCURFVk1FVEhP RChidXNfYWN0aXZhdGVfcmVzb3VyY2UsIHBjaV9hY3RpdmF0ZV9yZXNvdXJjZSksCj4gCURFVk1F VEhPRChidXNfZGVhY3RpdmF0ZV9yZXNvdXJjZSwgcGNpX2RlYWN0aXZhdGVfcmVzb3VyY2UpLAo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvZGV2L3BjaS9wY2lfcGNpLmMKPj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQo+LS0tIGhlYWQvc3lzL2Rldi9wY2kvcGNpX3BjaS5jCU1vbiBNYXkgIDIgMTM6NTg6NDAg MjAxMQkocjIyMTMyMykKPisrKyBoZWFkL3N5cy9kZXYvcGNpL3BjaV9wY2kuYwlNb24gTWF5ICAy IDE0OjEzOjEyIDIwMTEJKHIyMjEzMjQpCj5AQCAtNzMsNiArNzMsNyBAQCBzdGF0aWMgZGV2aWNl X21ldGhvZF90IHBjaWJfbWV0aG9kc1tdID0gCj4gICAgIERFVk1FVEhPRChidXNfcmVhZF9pdmFy LAkJcGNpYl9yZWFkX2l2YXIpLAo+ICAgICBERVZNRVRIT0QoYnVzX3dyaXRlX2l2YXIsCQlwY2li X3dyaXRlX2l2YXIpLAo+ICAgICBERVZNRVRIT0QoYnVzX2FsbG9jX3Jlc291cmNlLAlwY2liX2Fs bG9jX3Jlc291cmNlKSwKPisgICAgREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3VyY2UsCWJ1c19n ZW5lcmljX2FkanVzdF9yZXNvdXJjZSksCj4gICAgIERFVk1FVEhPRChidXNfcmVsZWFzZV9yZXNv dXJjZSwJYnVzX2dlbmVyaWNfcmVsZWFzZV9yZXNvdXJjZSksCj4gICAgIERFVk1FVEhPRChidXNf YWN0aXZhdGVfcmVzb3VyY2UsCWJ1c19nZW5lcmljX2FjdGl2YXRlX3Jlc291cmNlKSwKPiAgICAg REVWTUVUSE9EKGJ1c19kZWFjdGl2YXRlX3Jlc291cmNlLAlidXNfZ2VuZXJpY19kZWFjdGl2YXRl X3Jlc291cmNlKSwKPgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2kzODYvcGNpL3BjaV9idXMuYwo+PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvaTM4Ni9wY2kvcGNpX2J1cy5jCU1vbiBN YXkgIDIgMTM6NTg6NDAgMjAxMQkocjIyMTMyMykKPisrKyBoZWFkL3N5cy9pMzg2L3BjaS9wY2lf YnVzLmMJTW9uIE1heSAgMiAxNDoxMzoxMiAyMDExCShyMjIxMzI0KQo+QEAgLTU2NSw2ICs1NjUs NyBAQCBzdGF0aWMgZGV2aWNlX21ldGhvZF90IGxlZ2FjeV9wY2liX21ldGhvCj4gCURFVk1FVEhP RChidXNfcmVhZF9pdmFyLAlsZWdhY3lfcGNpYl9yZWFkX2l2YXIpLAo+IAlERVZNRVRIT0QoYnVz X3dyaXRlX2l2YXIsCWxlZ2FjeV9wY2liX3dyaXRlX2l2YXIpLAo+IAlERVZNRVRIT0QoYnVzX2Fs bG9jX3Jlc291cmNlLAlsZWdhY3lfcGNpYl9hbGxvY19yZXNvdXJjZSksCj4rCURFVk1FVEhPRChi dXNfYWRqdXN0X3Jlc291cmNlLAlidXNfZ2VuZXJpY19hZGp1c3RfcmVzb3VyY2UpLAo+IAlERVZN RVRIT0QoYnVzX3JlbGVhc2VfcmVzb3VyY2UsCWJ1c19nZW5lcmljX3JlbGVhc2VfcmVzb3VyY2Up LAo+IAlERVZNRVRIT0QoYnVzX2FjdGl2YXRlX3Jlc291cmNlLCBidXNfZ2VuZXJpY19hY3RpdmF0 ZV9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfZGVhY3RpdmF0ZV9yZXNvdXJjZSwgYnVzX2dl bmVyaWNfZGVhY3RpdmF0ZV9yZXNvdXJjZSksCj4KPk1vZGlmaWVkOiBoZWFkL3N5cy94ODYveDg2 L21wdGFibGVfcGNpLmMKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL3g4Ni94 ODYvbXB0YWJsZV9wY2kuYwlNb24gTWF5ICAyIDEzOjU4OjQwIDIwMTEJKHIyMjEzMjMpCj4rKysg aGVhZC9zeXMveDg2L3g4Ni9tcHRhYmxlX3BjaS5jCU1vbiBNYXkgIDIgMTQ6MTM6MTIgMjAxMQko cjIyMTMyNCkKPkBAIC0xMTYsNiArMTE2LDcgQEAgc3RhdGljIGRldmljZV9tZXRob2RfdCBtcHRh YmxlX2hvc3RiX21ldAo+IAlERVZNRVRIT0QoYnVzX3JlYWRfaXZhciwJbGVnYWN5X3BjaWJfcmVh ZF9pdmFyKSwKPiAJREVWTUVUSE9EKGJ1c193cml0ZV9pdmFyLAlsZWdhY3lfcGNpYl93cml0ZV9p dmFyKSwKPiAJREVWTUVUSE9EKGJ1c19hbGxvY19yZXNvdXJjZSwJbGVnYWN5X3BjaWJfYWxsb2Nf cmVzb3VyY2UpLAo+KwlERVZNRVRIT0QoYnVzX2FkanVzdF9yZXNvdXJjZSwJYnVzX2dlbmVyaWNf YWRqdXN0X3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19yZWxlYXNlX3Jlc291cmNlLAlidXNf Z2VuZXJpY19yZWxlYXNlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19hY3RpdmF0ZV9yZXNv dXJjZSwgYnVzX2dlbmVyaWNfYWN0aXZhdGVfcmVzb3VyY2UpLAo+IAlERVZNRVRIT0QoYnVzX2Rl YWN0aXZhdGVfcmVzb3VyY2UsIGJ1c19nZW5lcmljX2RlYWN0aXZhdGVfcmVzb3VyY2UpLAo+Cj5N b2RpZmllZDogaGVhZC9zeXMveDg2L3g4Ni9uZXh1cy5jCj49PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Pi0tLSBoZWFkL3N5cy94ODYveDg2L25leHVzLmMJTW9uIE1heSAgMiAxMzo1ODo0MCAyMDExCShy MjIxMzIzKQo+KysrIGhlYWQvc3lzL3g4Ni94ODYvbmV4dXMuYwlNb24gTWF5ICAyIDE0OjEzOjEy IDIwMTEJKHIyMjEzMjQpCj5AQCAtMTAwLDYgKzEwMCw4IEBAIHN0YXRpYyBkZXZpY2VfdCBuZXh1 c19hZGRfY2hpbGQoZGV2aWNlX3QKPiAJCQkJaW50IHVuaXQpOwo+IHN0YXRpYwlzdHJ1Y3QgcmVz b3VyY2UgKm5leHVzX2FsbG9jX3Jlc291cmNlKGRldmljZV90LCBkZXZpY2VfdCwgaW50LCBpbnQg KiwKPiAJCQkJCSAgICAgIHVfbG9uZywgdV9sb25nLCB1X2xvbmcsIHVfaW50KTsKPitzdGF0aWMJ aW50IG5leHVzX2FkanVzdF9yZXNvdXJjZShkZXZpY2VfdCwgZGV2aWNlX3QsIGludCwgc3RydWN0 IHJlc291cmNlICosCj4rCQkJCSAgdV9sb25nLCB1X2xvbmcpOwo+ICNpZmRlZiBTTVAKPiBzdGF0 aWMJaW50IG5leHVzX2JpbmRfaW50cihkZXZpY2VfdCwgZGV2aWNlX3QsIHN0cnVjdCByZXNvdXJj ZSAqLCBpbnQpOwo+ICNlbmRpZgo+QEAgLTE0NCw2ICsxNDYsNyBAQCBzdGF0aWMgZGV2aWNlX21l dGhvZF90IG5leHVzX21ldGhvZHNbXSA9Cj4gCURFVk1FVEhPRChidXNfcHJpbnRfY2hpbGQsCW5l eHVzX3ByaW50X2NoaWxkKSwKPiAJREVWTUVUSE9EKGJ1c19hZGRfY2hpbGQsCW5leHVzX2FkZF9j aGlsZCksCj4gCURFVk1FVEhPRChidXNfYWxsb2NfcmVzb3VyY2UsCW5leHVzX2FsbG9jX3Jlc291 cmNlKSwKPisJREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3VyY2UsCW5leHVzX2FkanVzdF9yZXNv dXJjZSksCj4gCURFVk1FVEhPRChidXNfcmVsZWFzZV9yZXNvdXJjZSwJbmV4dXNfcmVsZWFzZV9y ZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfYWN0aXZhdGVfcmVzb3VyY2UsIG5leHVzX2FjdGl2 YXRlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19kZWFjdGl2YXRlX3Jlc291cmNlLCBuZXh1 c19kZWFjdGl2YXRlX3Jlc291cmNlKSwKPkBAIC0zMzIsNiArMzM1LDIzIEBAIG5leHVzX2FkZF9j aGlsZChkZXZpY2VfdCBidXMsIHVfaW50IG9yZGUKPiAJcmV0dXJuKGNoaWxkKTsKPiB9Cj4gCj4r c3RhdGljIHN0cnVjdCBybWFuICoKPituZXh1c19ybWFuKGludCB0eXBlKQo+K3sKPisJc3dpdGNo ICh0eXBlKSB7Cj4rCWNhc2UgU1lTX1JFU19JUlE6Cj4rCQlyZXR1cm4gKCZpcnFfcm1hbik7Cj4r CWNhc2UgU1lTX1JFU19EUlE6Cj4rCQlyZXR1cm4gKCZkcnFfcm1hbik7Cj4rCWNhc2UgU1lTX1JF U19JT1BPUlQ6Cj4rCQlyZXR1cm4gKCZwb3J0X3JtYW4pOwo+KwljYXNlIFNZU19SRVNfTUVNT1JZ Ogo+KwkJcmV0dXJuICgmbWVtX3JtYW4pOwo+KwlkZWZhdWx0Ogo+KwkJcmV0dXJuIChOVUxMKTsK PisJfQo+K30KPisKPiAvKgo+ICAqIEFsbG9jYXRlIGEgcmVzb3VyY2Ugb24gYmVoYWxmIG9mIGNo aWxkLiAgTkI6IGNoaWxkIGlzIHVzdWFsbHkgZ29pbmcgdG8gYmUgYQo+ICAqIGNoaWxkIG9mIG9u ZSBvZiBvdXIgZGVzY2VuZGFudHMsIG5vdCBhIGRpcmVjdCBjaGlsZCBvZiBuZXh1czAuCj5AQCAt MzY0LDI3ICszODQsOSBAQCBuZXh1c19hbGxvY19yZXNvdXJjZShkZXZpY2VfdCBidXMsIGRldmlj Cj4gCX0KPiAKPiAJZmxhZ3MgJj0gflJGX0FDVElWRTsKPi0KPi0Jc3dpdGNoICh0eXBlKSB7Cj4t CWNhc2UgU1lTX1JFU19JUlE6Cj4tCQlybSA9ICZpcnFfcm1hbjsKPi0JCWJyZWFrOwo+LQo+LQlj YXNlIFNZU19SRVNfRFJROgo+LQkJcm0gPSAmZHJxX3JtYW47Cj4tCQlicmVhazsKPi0KPi0JY2Fz ZSBTWVNfUkVTX0lPUE9SVDoKPi0JCXJtID0gJnBvcnRfcm1hbjsKPi0JCWJyZWFrOwo+LQo+LQlj YXNlIFNZU19SRVNfTUVNT1JZOgo+LQkJcm0gPSAmbWVtX3JtYW47Cj4tCQlicmVhazsKPi0KPi0J ZGVmYXVsdDoKPi0JCXJldHVybiAwOwo+LQl9Cj4rCXJtID0gbmV4dXNfcm1hbih0eXBlKTsKPisJ aWYgKHJtID09IE5VTEwpCj4rCQlyZXR1cm4gKE5VTEwpOwo+IAo+IAlydiA9IHJtYW5fcmVzZXJ2 ZV9yZXNvdXJjZShybSwgc3RhcnQsIGVuZCwgY291bnQsIGZsYWdzLCBjaGlsZCk7Cj4gCWlmIChy diA9PSAwKQo+QEAgLTQwMiw2ICs0MDQsMjAgQEAgbmV4dXNfYWxsb2NfcmVzb3VyY2UoZGV2aWNl X3QgYnVzLCBkZXZpYwo+IH0KPiAKPiBzdGF0aWMgaW50Cj4rbmV4dXNfYWRqdXN0X3Jlc291cmNl KGRldmljZV90IGJ1cywgZGV2aWNlX3QgY2hpbGQsIGludCB0eXBlLAo+KyAgICBzdHJ1Y3QgcmVz b3VyY2UgKnIsIHVfbG9uZyBzdGFydCwgdV9sb25nIGVuZCkKPit7Cj4rCXN0cnVjdCBybWFuICpy bTsKPisKPisJcm0gPSBuZXh1c19ybWFuKHR5cGUpOwo+KwlpZiAocm0gPT0gTlVMTCkKPisJCXJl dHVybiAoRU5YSU8pOwo+KwlpZiAoIXJtYW5faXNfcmVnaW9uX21hbmFnZXIociwgcm0pKQo+KwkJ cmV0dXJuIChFSU5WQUwpOwo+KwlyZXR1cm4gKHJtYW5fYWRqdXN0X3Jlc291cmNlKHIsIHN0YXJ0 LCBlbmQpKTsKPit9Cj4rCj4rc3RhdGljIGludAo+IG5leHVzX2FjdGl2YXRlX3Jlc291cmNlKGRl dmljZV90IGJ1cywgZGV2aWNlX3QgY2hpbGQsIGludCB0eXBlLCBpbnQgcmlkLAo+IAkJCXN0cnVj dCByZXNvdXJjZSAqcikKPiB7Cj4KPgo+QXV0aG9yOiBqaGIKPkRhdGU6IE1vbiBNYXkgIDIgMTQ6 MzQ6MDMgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMjYKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNk Lm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjYKPgo+TG9nOgo+ICBBZGQgYW4gZW50cnkgZm9yIHRo ZSBLdXJvdXRvc2hpa291IFNFUklBTDRQLUxQUENJMiB3aGljaCB1c2VzIGFuIE94Zm9yZAo+ICA0 IHBvcnQgY2hpcCBidXQgd2l0aCBhIG5vbnN0YW5kYXJkIGNsb2NrLgo+ICAKPiAgUFI6CQlrZXJu LzEwNDIxMgo+ICBTdWJtaXR0ZWQgYnk6CVNodWljaGkgS0lUQUdVQ0hJICBraXQgb2YgeXNuYiBu ZXQKPiAgTUZDIGFmdGVyOgkxIHdlZWsKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2Rldi9wdWMv cHVjZGF0YS5jCj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9kZXYvcHVjL3B1Y2RhdGEuYwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2L3B1Yy9wdWNkYXRhLmMJTW9uIE1heSAg MiAxNDoyMzozNiAyMDExCShyMjIxMzI1KQo+KysrIGhlYWQvc3lzL2Rldi9wdWMvcHVjZGF0YS5j CU1vbiBNYXkgIDIgMTQ6MzQ6MDMgMjAxMQkocjIyMTMyNikKPkBAIC02MzgsNiArNjM4LDEyIEBA IGNvbnN0IHN0cnVjdCBwdWNfY2ZnIHB1Y19wY2lfZGV2aWNlc1tdID0KPiAJICAgIFBVQ19QT1JU XzRTLCAweDEwLCAwLCA4LAo+IAl9LAo+IAo+Kwl7ICAgMHgxNDE1LCAweDk1MDEsIDB4MTRkYiwg MHgyMTUwLAo+KwkgICAgIkt1cm91dG9zaGlrb3UgU0VSSUFMNFAtTFBQQ0kyIiwKPisJICAgIERF RkFVTFRfUkNMSyAqIDEwLAo+KwkgICAgUFVDX1BPUlRfNFMsIDB4MTAsIDAsIDgsCj4rCX0sCj4r Cj4gCXsgICAweDE0MTUsIDB4OTUwMSwgMHhmZmZmLCAwLAo+IAkgICAgIk94Zm9yZCBTZW1pY29u ZHVjdG9yIE9YMTZQQ0k5NTQgVUFSVHMiLAo+IAkgICAgREVGQVVMVF9SQ0xLLAo+Cj4KPk9uIFN1 bmRheSwgTWF5IDAxLCAyMDExIDM6MDU6NTQgcG0gQmVybmhhcmQgU2NobWlkdCB3cm90ZToKPj4g QXV0aG9yOiBic2NobWlkdAo+PiBEYXRlOiBTdW4gTWF5ICAxIDE5OjA1OjU0IDIwMTEKPj4gTmV3 IFJldmlzaW9uOiAyMjEzMDEKPj4gVVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNl dC9iYXNlLzIyMTMwMQo+PiAKPj4gTG9nOgo+PiAgIFRoZXNlIGFyZSBvZiBjb3Vyc2UgaTM4Ni9h bWQ2NCBvbmx5Lgo+PiAKPj4gTW9kaWZpZWQ6Cj4+ICAgaGVhZC9zeXMvY29uZi9OT1RFUwo+Cj5Q bGVhc2UgcHV0IHRoZW0gaW4gaTM4Ni9jb25mL05PVEVTIGFuZCBhbWQ2NC9jb25mL05PVEVTLiAg QWxsIGRyaXZlcnMgc2hvdWxkIAo+YmUgaW4gYXBwcm9wcmlhdGUgTk9URVMgZmlsZXMuCj4KPi0t IAo+Sm9obiBCYWxkd2luCj4KPgo+QXV0aG9yOiBqaGIKPkRhdGU6IE1vbiBNYXkgIDIgMTU6MDE6 MjggMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMjcKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9y Zy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjcKPgo+TG9nOgo+ICBEb24ndCBleHBsaWNpdGx5IGxpc3Qg cGNpX3dyaXRlX2l2YXIoKSBmb3IgYnVzX3dyaXRlX2l2YXIsIHRoZSBtZXRob2QgaXMKPiAgYWxy ZWFkeSBpbmhlcml0ZWQgZnJvbSB0aGUgUENJIGJ1cyBkcml2ZXIuCj4KPk1vZGlmaWVkOgo+ICBo ZWFkL3N5cy9kZXYvY2FyZGJ1cy9jYXJkYnVzLmMKPgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2Rldi9j YXJkYnVzL2NhcmRidXMuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2 L2NhcmRidXMvY2FyZGJ1cy5jCU1vbiBNYXkgIDIgMTQ6MzQ6MDMgMjAxMQkocjIyMTMyNikKPisr KyBoZWFkL3N5cy9kZXYvY2FyZGJ1cy9jYXJkYnVzLmMJTW9uIE1heSAgMiAxNTowMToyOCAyMDEx CShyMjIxMzI3KQo+QEAgLTMxNyw3ICszMTcsNiBAQCBzdGF0aWMgZGV2aWNlX21ldGhvZF90IGNh cmRidXNfbWV0aG9kc1tdCj4gCj4gCS8qIEJ1cyBpbnRlcmZhY2UgKi8KPiAJREVWTUVUSE9EKGJ1 c19yZWFkX2l2YXIsCWNhcmRidXNfcmVhZF9pdmFyKSwKPi0JREVWTUVUSE9EKGJ1c193cml0ZV9p dmFyLAlwY2lfd3JpdGVfaXZhciksCj4gCURFVk1FVEhPRChidXNfZHJpdmVyX2FkZGVkLAljYXJk YnVzX2RyaXZlcl9hZGRlZCksCj4gCj4gCS8qIENhcmQgSW50ZXJmYWNlICovCj4KPgo+QXV0aG9y OiB0dWV4ZW4KPkRhdGU6IE1vbiBNYXkgIDIgMTU6NTM6MDAgMjAxMQo+TmV3IFJldmlzaW9uOiAy MjEzMjgKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjgK Pgo+TG9nOgo+ICBTb21lIG1vcmUgY2xlYW51cHMgcmVsYXRlZCB0byBhbiBrZXJuZWwgd2l0aG91 dCBJTkVULgo+ICAKPiAgTUZDIGFmdGVyOiAxIHdlZWsKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lz L25ldGluZXQvc2N0cHV0aWwuYwo+ICBoZWFkL3N5cy9uZXRpbmV0L3NjdHB1dGlsLmgKPgo+TW9k aWZpZWQ6IGhlYWQvc3lzL25ldGluZXQvc2N0cHV0aWwuYwo+PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj4tLS0gaGVhZC9zeXMvbmV0aW5ldC9zY3RwdXRpbC5jCU1vbiBNYXkgIDIgMTU6MDE6MjggMjAx MQkocjIyMTMyNykKPisrKyBoZWFkL3N5cy9uZXRpbmV0L3NjdHB1dGlsLmMJTW9uIE1heSAgMiAx NTo1MzowMCAyMDExCShyMjIxMzI4KQo+QEAgLTI4NDQsOSArMjg0NCwxMSBAQCBzY3RwX25vdGlm eV9wZWVyX2FkZHJfY2hhbmdlKHN0cnVjdCBzY3RwCj4gCXNwYy0+c3BjX2ZsYWdzID0gMDsKPiAJ c3BjLT5zcGNfbGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBzY3RwX3BhZGRyX2NoYW5nZSk7Cj4gCXN3 aXRjaCAoc2EtPnNhX2ZhbWlseSkgewo+KyNpZmRlZiBJTkVUCj4gCWNhc2UgQUZfSU5FVDoKPiAJ CW1lbWNweSgmc3BjLT5zcGNfYWFkZHIsIHNhLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSk7 Cj4gCQlicmVhazsKPisjZW5kaWYKPiAjaWZkZWYgSU5FVDYKPiAJY2FzZSBBRl9JTkVUNjoKPiAJ CXsKPkBAIC00MDg0LDYgKzQwODYsNyBAQCBzY3RwX2NtcGFkZHIoc3RydWN0IHNvY2thZGRyICpz YTEsIHN0cnVjCj4gCQkJICAgIHNpbjZfMikpOwo+IAkJfQo+ICNlbmRpZgo+KyNpZmRlZiBJTkVU Cj4gCWNhc2UgQUZfSU5FVDoKPiAJCXsKPiAJCQkvKiBJUHY0IGFkZHJlc3NlcyAqLwo+QEAgLTQw OTMsNiArNDA5Niw3IEBAIHNjdHBfY21wYWRkcihzdHJ1Y3Qgc29ja2FkZHIgKnNhMSwgc3RydWMK PiAJCQlzaW5fMiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilzYTI7Cj4gCQkJcmV0dXJuIChzaW5f MS0+c2luX2FkZHIuc19hZGRyID09IHNpbl8yLT5zaW5fYWRkci5zX2FkZHIpOwo+IAkJfQo+KyNl bmRpZgo+IAlkZWZhdWx0Ogo+IAkJLyogd2UgZG9uJ3QgZG8gdGhlc2UuLi4gKi8KPiAJCXJldHVy biAoMCk7Cj5AQCAtNDEyMiw2ICs0MTI2LDcgQEAgc2N0cF9wcmludF9hZGRyZXNzKHN0cnVjdCBz b2NrYWRkciAqc2EpCj4gCQkJYnJlYWs7Cj4gCQl9Cj4gI2VuZGlmCj4rI2lmZGVmIElORVQKPiAJ Y2FzZSBBRl9JTkVUOgo+IAkJewo+IAkJCXN0cnVjdCBzb2NrYWRkcl9pbiAqc2luOwo+QEAgLTQx MzMsNiArNDEzOCw3IEBAIHNjdHBfcHJpbnRfYWRkcmVzcyhzdHJ1Y3Qgc29ja2FkZHIgKnNhKQo+ IAkJCSAgICBwWzBdLCBwWzFdLCBwWzJdLCBwWzNdLCBudG9ocyhzaW4tPnNpbl9wb3J0KSk7Cj4g CQkJYnJlYWs7Cj4gCQl9Cj4rI2VuZGlmCj4gCWRlZmF1bHQ6Cj4gCQlTQ1RQX1BSSU5URigiP1xu Iik7Cj4gCQlicmVhazsKPkBAIC00MTQzLDYgKzQxNDksNyBAQCB2b2lkCj4gc2N0cF9wcmludF9h ZGRyZXNzX3BrdChzdHJ1Y3QgaXAgKmlwaCwgc3RydWN0IHNjdHBoZHIgKnNoKQo+IHsKPiAJc3dp dGNoIChpcGgtPmlwX3YpIHsKPisjaWZkZWYgSU5FVAo+IAljYXNlIElQVkVSU0lPTjoKPiAJCXsK PiAJCQlzdHJ1Y3Qgc29ja2FkZHJfaW4gbHNhLCBmc2E7Cj5AQCAtNDE2Myw2ICs0MTcwLDcgQEAg c2N0cF9wcmludF9hZGRyZXNzX3BrdChzdHJ1Y3QgaXAgKmlwaCwgcwo+IAkJCXNjdHBfcHJpbnRf YWRkcmVzcygoc3RydWN0IHNvY2thZGRyICopJmZzYSk7Cj4gCQkJYnJlYWs7Cj4gCQl9Cj4rI2Vu ZGlmCj4gI2lmZGVmIElORVQ2Cj4gCWNhc2UgSVBWNl9WRVJTSU9OID4+IDQ6Cj4gCQl7Cj5AQCAt NDg2MiwyMiArNDg3MCwzMyBAQCBzY3RwX2ZpbmRfaWZhX2luX2VwKHN0cnVjdCBzY3RwX2lucGNi ICppCj4gdWludDMyX3QKPiBzY3RwX2dldF9pZmFfaGFzaF92YWwoc3RydWN0IHNvY2thZGRyICph ZGRyKQo+IHsKPi0JaWYgKGFkZHItPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7Cj4tCQlzdHJ1Y3Qg c29ja2FkZHJfaW4gKnNpbjsKPisJc3dpdGNoIChhZGRyLT5zYV9mYW1pbHkpIHsKPisjaWZkZWYg SU5FVAo+KwljYXNlIEFGX0lORVQ6Cj4rCQl7Cj4rCQkJc3RydWN0IHNvY2thZGRyX2luICpzaW47 Cj4gCj4tCQlzaW4gPSAoc3RydWN0IHNvY2thZGRyX2luICopYWRkcjsKPi0JCXJldHVybiAoc2lu LT5zaW5fYWRkci5zX2FkZHIgXiAoc2luLT5zaW5fYWRkci5zX2FkZHIgPj4gMTYpKTsKPi0JfSBl bHNlIGlmIChhZGRyLT5zYV9mYW1pbHkgPT0gQUZfSU5FVDYpIHsKPi0JCXN0cnVjdCBzb2NrYWRk cl9pbjYgKnNpbjY7Cj4tCQl1aW50MzJfdCBoYXNoX29mX2FkZHI7Cj4rCQkJc2luID0gKHN0cnVj dCBzb2NrYWRkcl9pbiAqKWFkZHI7Cj4rCQkJcmV0dXJuIChzaW4tPnNpbl9hZGRyLnNfYWRkciBe IChzaW4tPnNpbl9hZGRyLnNfYWRkciA+PiAxNikpOwo+KwkJfQo+KyNlbmRpZgo+KyNpZmRlZiBJ TkVUNgo+KwljYXNlIElORVQ2Ogo+KwkJewo+KwkJCXN0cnVjdCBzb2NrYWRkcl9pbjYgKnNpbjY7 Cj4rCQkJdWludDMyX3QgaGFzaF9vZl9hZGRyOwo+IAo+LQkJc2luNiA9IChzdHJ1Y3Qgc29ja2Fk ZHJfaW42ICopYWRkcjsKPi0JCWhhc2hfb2ZfYWRkciA9IChzaW42LT5zaW42X2FkZHIuczZfYWRk cjMyWzBdICsKPi0JCSAgICBzaW42LT5zaW42X2FkZHIuczZfYWRkcjMyWzFdICsKPi0JCSAgICBz aW42LT5zaW42X2FkZHIuczZfYWRkcjMyWzJdICsKPi0JCSAgICBzaW42LT5zaW42X2FkZHIuczZf YWRkcjMyWzNdKTsKPi0JCWhhc2hfb2ZfYWRkciA9IChoYXNoX29mX2FkZHIgXiAoaGFzaF9vZl9h ZGRyID4+IDE2KSk7Cj4tCQlyZXR1cm4gKGhhc2hfb2ZfYWRkcik7Cj4rCQkJc2luNiA9IChzdHJ1 Y3Qgc29ja2FkZHJfaW42ICopYWRkcjsKPisJCQloYXNoX29mX2FkZHIgPSAoc2luNi0+c2luNl9h ZGRyLnM2X2FkZHIzMlswXSArCj4rCQkJICAgIHNpbjYtPnNpbjZfYWRkci5zNl9hZGRyMzJbMV0g Kwo+KwkJCSAgICBzaW42LT5zaW42X2FkZHIuczZfYWRkcjMyWzJdICsKPisJCQkgICAgc2luNi0+ c2luNl9hZGRyLnM2X2FkZHIzMlszXSk7Cj4rCQkJaGFzaF9vZl9hZGRyID0gKGhhc2hfb2ZfYWRk ciBeIChoYXNoX29mX2FkZHIgPj4gMTYpKTsKPisJCQlyZXR1cm4gKGhhc2hfb2ZfYWRkcik7Cj4r CQl9Cj4rI2VuZGlmCj4rCWRlZmF1bHQ6Cj4rCQlicmVhazsKPiAJfQo+IAlyZXR1cm4gKDApOwo+ IH0KPkBAIC02MjUwLDcgKzYyNjksOSBAQCBzY3RwX2Nvbm5lY3R4X2hlbHBlcl9hZGQoc3RydWN0 IHNjdHBfdGNiCj4gCWlucCA9IHN0Y2ItPnNjdHBfZXA7Cj4gCSplcnJvciA9IDA7Cj4gCWZvciAo aSA9IDA7IGkgPCB0b3RhZGRyOyBpKyspIHsKPi0JCWlmIChzYS0+c2FfZmFtaWx5ID09IEFGX0lO RVQpIHsKPisJCXN3aXRjaCAoc2EtPnNhX2ZhbWlseSkgewo+KyNpZmRlZiBJTkVUCj4rCQljYXNl IEFGX0lORVQ6Cj4gCQkJaW5jciA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOwo+IAkJCWlm IChzY3RwX2FkZF9yZW1vdGVfYWRkcihzdGNiLCBzYSwgU0NUUF9ET05PVF9TRVRTQ09QRSwgU0NU UF9BRERSX0lTX0NPTkZJUk1FRCkpIHsKPiAJCQkJLyogYXNzb2MgZ29uZSBubyB1bi1sb2NrICov Cj5AQCAtNjI2MCw3ICs2MjgxLDEwIEBAIHNjdHBfY29ubmVjdHhfaGVscGVyX2FkZChzdHJ1Y3Qg c2N0cF90Y2IKPiAJCQkJZ290byBvdXRfbm93Owo+IAkJCX0KPiAJCQlhZGRlZCsrOwo+LQkJfSBl bHNlIGlmIChzYS0+c2FfZmFtaWx5ID09IEFGX0lORVQ2KSB7Cj4rCQkJYnJlYWs7Cj4rI2VuZGlm Cj4rI2lmZGVmIElORVQ2Cj4rCQljYXNlIEFGX0lORVQ2Ogo+IAkJCWluY3IgPSBzaXplb2Yoc3Ry dWN0IHNvY2thZGRyX2luNik7Cj4gCQkJaWYgKHNjdHBfYWRkX3JlbW90ZV9hZGRyKHN0Y2IsIHNh LCBTQ1RQX0RPTk9UX1NFVFNDT1BFLCBTQ1RQX0FERFJfSVNfQ09ORklSTUVEKSkgewo+IAkJCQkv KiBhc3NvYyBnb25lIG5vIHVuLWxvY2sgKi8KPkBAIC02MjcwLDYgKzYyOTQsMTAgQEAgc2N0cF9j b25uZWN0eF9oZWxwZXJfYWRkKHN0cnVjdCBzY3RwX3RjYgo+IAkJCQlnb3RvIG91dF9ub3c7Cj4g CQkJfQo+IAkJCWFkZGVkKys7Cj4rCQkJYnJlYWs7Cj4rI2VuZGlmCj4rCQlkZWZhdWx0Ogo+KwkJ CWJyZWFrOwo+IAkJfQo+IAkJc2EgPSAoc3RydWN0IHNvY2thZGRyICopKChjYWRkcl90KXNhICsg aW5jcik7Cj4gCX0KPkBAIC02Mjg4LDEwICs2MzE2LDEzIEBAIHNjdHBfY29ubmVjdHhfaGVscGVy X2ZpbmQoc3RydWN0IHNjdHBfaW4KPiAKPiAJYXQgPSBpbmNyID0gMDsKPiAJc2EgPSBhZGRyOwo+ Kwo+IAkqZXJyb3IgPSAqbnVtX3Y2ID0gKm51bV92NCA9IDA7Cj4gCS8qIGFjY291bnQgYW5kIHZh bGlkYXRlIGFkZHJlc3NlcyAqLwo+IAlmb3IgKGkgPSAwOyBpIDwgKHNpemVfdCkqdG90YWRkcjsg aSsrKSB7Cj4tCQlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7Cj4rCQlzd2l0Y2ggKHNh LT5zYV9mYW1pbHkpIHsKPisjaWZkZWYgSU5FVAo+KwkJY2FzZSBBRl9JTkVUOgo+IAkJCSgqbnVt X3Y0KSArPSAxOwo+IAkJCWluY3IgPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKTsKPiAJCQlp ZiAoc2EtPnNhX2xlbiAhPSBpbmNyKSB7Cj5AQCAtNjMwMCwzMCArNjMzMSw0MCBAQCBzY3RwX2Nv bm5lY3R4X2hlbHBlcl9maW5kKHN0cnVjdCBzY3RwX2luCj4gCQkJCSpiYWRfYWRkciA9IDE7Cj4g CQkJCXJldHVybiAoTlVMTCk7Cj4gCQkJfQo+LQkJfSBlbHNlIGlmIChzYS0+c2FfZmFtaWx5ID09 IEFGX0lORVQ2KSB7Cj4tCQkJc3RydWN0IHNvY2thZGRyX2luNiAqc2luNjsKPi0KPi0JCQlzaW42 ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKilzYTsKPi0JCQlpZiAoSU42X0lTX0FERFJfVjRNQVBQ RUQoJnNpbjYtPnNpbjZfYWRkcikpIHsKPi0JCQkJLyogTXVzdCBiZSBub24tbWFwcGVkIGZvciBj b25uZWN0eCAqLwo+LQkJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwgTlVMTCwgU0NU UF9GUk9NX1NDVFBVVElMLCBFSU5WQUwpOwo+LQkJCQkqZXJyb3IgPSBFSU5WQUw7Cj4tCQkJCSpi YWRfYWRkciA9IDE7Cj4tCQkJCXJldHVybiAoTlVMTCk7Cj4tCQkJfQo+LQkJCSgqbnVtX3Y2KSAr PSAxOwo+LQkJCWluY3IgPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luNik7Cj4tCQkJaWYgKHNh LT5zYV9sZW4gIT0gaW5jcikgewo+LQkJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwg TlVMTCwgU0NUUF9GUk9NX1NDVFBVVElMLCBFSU5WQUwpOwo+LQkJCQkqZXJyb3IgPSBFSU5WQUw7 Cj4tCQkJCSpiYWRfYWRkciA9IDE7Cj4tCQkJCXJldHVybiAoTlVMTCk7Cj4rCQkJYnJlYWs7Cj4r I2VuZGlmCj4rI2lmZGVmIElORVQ2Cj4rCQljYXNlIEFGX0lORVQ2Ogo+KwkJCXsKPisJCQkJc3Ry dWN0IHNvY2thZGRyX2luNiAqc2luNjsKPisKPisJCQkJc2luNiA9IChzdHJ1Y3Qgc29ja2FkZHJf aW42ICopc2E7Cj4rCQkJCWlmIChJTjZfSVNfQUREUl9WNE1BUFBFRCgmc2luNi0+c2luNl9hZGRy KSkgewo+KwkJCQkJLyogTXVzdCBiZSBub24tbWFwcGVkIGZvciBjb25uZWN0eCAqLwo+KwkJCQkJ U0NUUF9MVFJBQ0VfRVJSX1JFVChpbnAsIE5VTEwsIE5VTEwsIFNDVFBfRlJPTV9TQ1RQVVRJTCwg RUlOVkFMKTsKPisJCQkJCSplcnJvciA9IEVJTlZBTDsKPisJCQkJCSpiYWRfYWRkciA9IDE7Cj4r CQkJCQlyZXR1cm4gKE5VTEwpOwo+KwkJCQl9Cj4rCQkJCSgqbnVtX3Y2KSArPSAxOwo+KwkJCQlp bmNyID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbjYpOwo+KwkJCQlpZiAoc2EtPnNhX2xlbiAh PSBpbmNyKSB7Cj4rCQkJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwgTlVMTCwgU0NU UF9GUk9NX1NDVFBVVElMLCBFSU5WQUwpOwo+KwkJCQkJKmVycm9yID0gRUlOVkFMOwo+KwkJCQkJ KmJhZF9hZGRyID0gMTsKPisJCQkJCXJldHVybiAoTlVMTCk7Cj4rCQkJCX0KPisJCQkJYnJlYWs7 Cj4gCQkJfQo+LQkJfSBlbHNlIHsKPisjZW5kaWYKPisJCWRlZmF1bHQ6Cj4gCQkJKnRvdGFkZHIg PSBpOwo+IAkJCS8qIHdlIGFyZSBkb25lICovCj4gCQkJYnJlYWs7Cj4gCQl9Cj4rCQlpZiAoaSA9 PSAoc2l6ZV90KSp0b3RhZGRyKSB7Cj4rCQkJYnJlYWs7Cj4rCQl9Cj4gCQlTQ1RQX0lOUF9JTkNS X1JFRihpbnApOwo+IAkJc3RjYiA9IHNjdHBfZmluZGFzc29jaWF0aW9uX2VwX2FkZHIoJmlucCwg c2EsIE5VTEwsIE5VTEwsIE5VTEwpOwo+IAkJaWYgKHN0Y2IgIT0gTlVMTCkgewo+QEAgLTYzNjQs NyArNjQwNSw3IEBAIHNjdHBfYmluZHhfYWRkX2FkZHJlc3Moc3RydWN0IHNvY2tldCAqc28KPiAJ CXJldHVybjsKPiAJfQo+IAlhZGRyX3RvdXNlID0gc2E7Cj4tI2lmIGRlZmluZWQoSU5FVDYpICYm ICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCS8qIFRPRE8gcG9ydCBpbjZfc2luNl8yX3NpbiAqLwo+ KyNpZmRlZiBJTkVUNgo+IAlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUNikgewo+IAkJc3Ry dWN0IHNvY2thZGRyX2luNiAqc2luNjsKPiAKPkBAIC02MzkzLDYgKzY0MzQsNyBAQCBzY3RwX2Jp bmR4X2FkZF9hZGRyZXNzKHN0cnVjdCBzb2NrZXQgKnNvCj4gCQl9Cj4gCX0KPiAjZW5kaWYKPisj aWZkZWYgSU5FVAo+IAlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7Cj4gCQlpZiAoc2Et PnNhX2xlbiAhPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSkgewo+IAkJCVNDVFBfTFRSQUNF X0VSUl9SRVQoaW5wLCBOVUxMLCBOVUxMLCBTQ1RQX0ZST01fU0NUUFVUSUwsIEVJTlZBTCk7Cj5A QCAtNjQwNyw2ICs2NDQ5LDcgQEAgc2N0cF9iaW5keF9hZGRfYWRkcmVzcyhzdHJ1Y3Qgc29ja2V0 ICpzbwo+IAkJCXJldHVybjsKPiAJCX0KPiAJfQo+KyNlbmRpZgo+IAlpZiAoaW5wLT5zY3RwX2Zs YWdzICYgU0NUUF9QQ0JfRkxBR1NfVU5CT1VORCkgewo+IAkJaWYgKHAgPT0gTlVMTCkgewo+IAkJ CS8qIENhbid0IGdldCBwcm9jIGZvciBOZXQvT3BlbiBCU0QgKi8KPkBAIC02NTE5LDYgKzY1NjIs NyBAQCBzY3RwX2JpbmR4X2RlbGV0ZV9hZGRyZXNzKHN0cnVjdCBzb2NrZXQgCj4gCQl9Cj4gCX0K PiAjZW5kaWYKPisjaWZkZWYgSU5FVAo+IAlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7 Cj4gCQlpZiAoc2EtPnNhX2xlbiAhPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSkgewo+IAkJ CVNDVFBfTFRSQUNFX0VSUl9SRVQoaW5wLCBOVUxMLCBOVUxMLCBTQ1RQX0ZST01fU0NUUFVUSUws IEVJTlZBTCk7Cj5AQCAtNjUzMyw2ICs2NTc3LDcgQEAgc2N0cF9iaW5keF9kZWxldGVfYWRkcmVz cyhzdHJ1Y3Qgc29ja2V0IAo+IAkJCXJldHVybjsKPiAJCX0KPiAJfQo+KyNlbmRpZgo+IAkvKgo+ IAkgKiBObyBsb2NrIHJlcXVpcmVkIG1nbXRfZXBfc2EgZG9lcyBpdHMgb3duIGxvY2tpbmcuIElm IHRoZSBGSVg6Cj4gCSAqIGJlbG93IGlzIGV2ZXIgY2hhbmdlZCB3ZSBtYXkgbmVlZCB0byBsb2Nr IGJlZm9yZSBjYWxsaW5nCj5AQCAtNjU5OSw2ICs2NjQ0LDcgQEAgc2N0cF9sb2NhbF9hZGRyX2Nv dW50KHN0cnVjdCBzY3RwX3RjYiAqcwo+IAkJCQlpZiAoc2N0cF9pc19hZGRyX3Jlc3RyaWN0ZWQo c3RjYiwgc2N0cF9pZmEpKQo+IAkJCQkJY29udGludWU7Cj4gCQkJCXN3aXRjaCAoc2N0cF9pZmEt PmFkZHJlc3Muc2Euc2FfZmFtaWx5KSB7Cj4rI2lmZGVmIElORVQKPiAJCQkJY2FzZSBBRl9JTkVU Ogo+IAkJCQkJaWYgKGlwdjRfYWRkcl9sZWdhbCkgewo+IAkJCQkJCXN0cnVjdCBzb2NrYWRkcl9p biAqc2luOwo+QEAgLTY2MjEsNiArNjY2Nyw3IEBAIHNjdHBfbG9jYWxfYWRkcl9jb3VudChzdHJ1 Y3Qgc2N0cF90Y2IgKnMKPiAJCQkJCQljb250aW51ZTsKPiAJCQkJCX0KPiAJCQkJCWJyZWFrOwo+ KyNlbmRpZgo+ICNpZmRlZiBJTkVUNgo+IAkJCQljYXNlIEFGX0lORVQ2Ogo+IAkJCQkJaWYgKGlw djZfYWRkcl9sZWdhbCkgewo+QEAgLTY3MTUsNiArNjc2Miw4IEBAIHNjdHBfbG9nX3RyYWNlKHVp bnQzMl90IHN1YnN5cywgY29uc3QgY2gKPiB9Cj4gCj4gI2VuZGlmCj4rLyogWFhYOiBSZW1vdmUg dGhlICNpZmRlZiBhZnRlciB0dW5uZWxpbmcgb3ZlciBJUHY2IHdvcmtzIGFsc28gb24gRnJlZUJT RC4gKi8KPisjaWZkZWYgSU5FVAo+IC8qIFdlIHdpbGwgbmVlZCB0byBhZGQgc3VwcG9ydAo+ICAq IHRvIGJpbmQgdGhlIHBvcnRzIGFuZCBzdWNoIGhlcmUKPiAgKiBzbyB3ZSBjYW4gZG8gVURQIHR1 bm5lbGluZy4gSW4KPkBAIC02ODE2LDcgKzY4NjUsNyBAQCBvdXQ6Cj4gCW1fZnJlZW0obSk7Cj4g fQo+IAo+LXZvaWQgCj4rdm9pZAo+IHNjdHBfb3Zlcl91ZHBfc3RvcCh2b2lkKQo+IHsKPiAJc3Ry dWN0IHNvY2tldCAqc29wOwo+QEAgLTY4MzMsNyArNjg4Miw4IEBAIHNjdHBfb3Zlcl91ZHBfc3Rv cCh2b2lkKQo+IAlzb2Nsb3NlKHNvcCk7Cj4gCVNDVFBfQkFTRV9JTkZPKHVkcF90dW5fc29ja2V0 KSA9IE5VTEw7Cj4gfQo+LWludCAKPisKPitpbnQKPiBzY3RwX292ZXJfdWRwX3N0YXJ0KHZvaWQp Cj4gewo+IAl1aW50MTZfdCBwb3J0Owo+QEAgLTY4ODYsMyArNjkzNiw1IEBAIGV4aXRfc3RhZ2Vf bGVmdDoKPiAJICovCj4gCXJldHVybiAoMCk7Cj4gfQo+Kwo+KyNlbmRpZgo+Cj5Nb2RpZmllZDog aGVhZC9zeXMvbmV0aW5ldC9zY3RwdXRpbC5oCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBo ZWFkL3N5cy9uZXRpbmV0L3NjdHB1dGlsLmgJTW9uIE1heSAgMiAxNTowMToyOCAyMDExCShyMjIx MzI3KQo+KysrIGhlYWQvc3lzL25ldGluZXQvc2N0cHV0aWwuaAlNb24gTWF5ICAyIDE1OjUzOjAw IDIwMTEJKHIyMjEzMjgpCj5AQCAtMzEzLDEwICszMTMsMTQgQEAgZG8geyBcCj4gCX0gXAo+IH0g d2hpbGUgKDApCj4gCj4tLyogbmV3IGZ1bmN0aW9ucyB0byBzdGFydC9zdG9wIHVkcCB0dW5uZWxp bmcgKi8KPisvKiBmdW5jdGlvbnMgdG8gc3RhcnQvc3RvcCB1ZHAgdHVubmVsaW5nICovCj4rLyog WFhYOiBSZW1vdmUgdGhlICNpZmRlZiBhZnRlciB0dW5uZWxpbmcgb3ZlciBJUHY2IHdvcmtzIGFs c28gb24gRnJlZUJTRC4gKi8KPisjaWZkZWYgSU5FVAo+IHZvaWQgc2N0cF9vdmVyX3VkcF9zdG9w KHZvaWQpOwo+IGludCBzY3RwX292ZXJfdWRwX3N0YXJ0KHZvaWQpOwo+IAo+KyNlbmRpZgo+Kwo+ IGludAo+IHNjdHBfc29yZWNlaXZlKHN0cnVjdCBzb2NrZXQgKnNvLCBzdHJ1Y3Qgc29ja2FkZHIg Kipwc2EsCj4gICAgIHN0cnVjdCB1aW8gKnVpbywKPgo+Cj5BdXRob3I6IGJzY2htaWR0Cj5EYXRl OiBNb24gTWF5ICAyIDE2OjUxOjAyIDIwMTEKPk5ldyBSZXZpc2lvbjogMjIxMzI5Cj5VUkw6IGh0 dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzI5Cj4KPkxvZzoKPiAgQWxs IFBDSSBiYXNlZCB3aXJlbGVzcyBkcml2ZXJzIHNlZW0gdG8gYmUgZXhwbGljaXRseSByZW1vdmVk IGZyb20gdGhlCj4gIFBBRSBrZXJuZWwgY29uZmlnLCBkbyB0aGF0IGFsc28gZm9yIHRob3NlIGFk ZGVkIHRvIEdFTkVSSUMgbGF0ZWx5Lgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvaTM4Ni9jb25m L1BBRQo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvaTM4Ni9jb25mL1BBRQo+PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Cj4tLS0gaGVhZC9zeXMvaTM4Ni9jb25mL1BBRQlNb24gTWF5ICAyIDE1OjUzOjAwIDIw MTEJKHIyMjEzMjgpCj4rKysgaGVhZC9zeXMvaTM4Ni9jb25mL1BBRQlNb24gTWF5ICAyIDE2OjUx OjAyIDIwMTEJKHIyMjEzMjkpCj5AQCAtNzcsNSArNzcsMTEgQEAgbm9kZXZpY2UJYXRoCQkjIEF0 aGVyb3MgcGNpL2NhcmRidXMgTklDJwo+IG5vZGV2aWNlCWF0aF9wY2kKPiBub2RldmljZQlhdGhf aGFsCj4gbm9kZXZpY2UJYXRoX3JhdGVfc2FtcGxlCSMgU2FtcGxlUmF0ZSB0eCByYXRlIGNvbnRy b2wgZm9yIGF0aAo+K25vZGV2aWNlCWlwdwo+K25vZGV2aWNlCWl3aQo+K25vZGV2aWNlCWl3bgo+ K25vZGV2aWNlCW1hbG8KPitub2RldmljZQltd2wKPiBub2RldmljZQlyYWwKPiBub2RldmljZQl3 aQo+K25vZGV2aWNlCXdwaQo+Cj4KPk9uIE1vbmRheSAwMiBNYXkgMjAxMSAxNDozOTo1NyBKb2hu IEJhbGR3aW4gd3JvdGU6Cj4+IE9uIFN1bmRheSwgTWF5IDAxLCAyMDExIDM6MDU6NTQgcG0gQmVy bmhhcmQgU2NobWlkdCB3cm90ZToKPj4gPiBBdXRob3I6IGJzY2htaWR0Cj4+ID4gRGF0ZTogU3Vu IE1heSAgMSAxOTowNTo1NCAyMDExCj4+ID4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gPiBVUkw6 IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAxCj4+ID4gCj4+ID4g TG9nOgo+PiA+ICAgVGhlc2UgYXJlIG9mIGNvdXJzZSBpMzg2L2FtZDY0IG9ubHkuCj4+ID4gCj4+ ID4gTW9kaWZpZWQ6Cj4+ID4gICBoZWFkL3N5cy9jb25mL05PVEVTCj4+IAo+PiBQbGVhc2UgcHV0 IHRoZW0gaW4gaTM4Ni9jb25mL05PVEVTIGFuZCBhbWQ2NC9jb25mL05PVEVTLiAgQWxsIGRyaXZl cnMgc2hvdWxkIAo+PiBiZSBpbiBhcHByb3ByaWF0ZSBOT1RFUyBmaWxlcy4KPgo+VGhleSBhY3R1 YWxseSBhcmUuIE15IGZhdWx0IHdhcyB0byBub3QgY2hlY2sgdGhvc2UgMiBmaWxlcyBpbiB0aGUK PmZpcnN0IHBsYWNlLgo+Cj5Tb3JyeSB0aGUgbm9pc2UgdGhpcyBoYXMgY2F1c2VkLgo+Cj4tLSAK PkJlcm5oYXJkCj4KPgo+QXV0aG9yOiBqa2ltCj5EYXRlOiBNb24gTWF5ICAyIDE3OjA4OjM2IDIw MTEKPk5ldyBSZXZpc2lvbjogMjIxMzMxCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hh bmdlc2V0L2Jhc2UvMjIxMzMxCj4KPkxvZzoKPiAgRml4IGJ1aWxkIHdpdGggY2xhbmcuICBQbGVh c2Ugbm90ZSB0aGVyZSBpcyBhbiBMTFZNL0NsYW5nIFBSOgo+ICAKPiAgaHR0cDovL2xsdm0ub3Jn L2J1Z3Mvc2hvd19idWcuY2dpP2lkPTkzNzkKPiAgCj4gIFJlcG9ydGVkIGJ5OglycGF1bG8sIGRp bQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMveDg2L3g4Ni90c2MuYwo+Cj5Nb2RpZmllZDogaGVh ZC9zeXMveDg2L3g4Ni90c2MuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMv eDg2L3g4Ni90c2MuYwlNb24gTWF5ICAyIDE3OjA0OjA5IDIwMTEJKHIyMjEzMzApCj4rKysgaGVh ZC9zeXMveDg2L3g4Ni90c2MuYwlNb24gTWF5ICAyIDE3OjA4OjM2IDIwMTEJKHIyMjEzMzEpCj5A QCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBfX2lubGluZSB2b2lkCj4gdm13YXJlX2h2Y2FsbCh1 X2ludCBjbWQsIHVfaW50ICpwKQo+IHsKPiAKPi0JX19hc20gX192b2xhdGlsZSgiaW5sICglJWR4 KSIKPisJX19hc20gX192b2xhdGlsZSgiaW5sICV3MywgJTAiCj4gCTogIj1hIiAocFswXSksICI9 YiIgKHBbMV0pLCAiPWMiIChwWzJdKSwgIj1kIiAocFszXSkKPiAJOiAiMCIgKFZNV19IVk1BR0lD KSwgIjEiIChVSU5UX01BWCksICIyIiAoY21kKSwgIjMiIChWTVdfSFZQT1JUKQo+IAk6ICJtZW1v cnkiKTsKPgo+Cj5PbiBNb25kYXkgMDIgTWF5IDIwMTEgMDc6MDggYW0sIERpbWl0cnkgQW5kcmlj IHdyb3RlOgo+PiBPbiAyMDExLTA0LTI5IDIwOjIwLCBKdW5nLXVrIEtpbSB3cm90ZToKPj4gLi4u Cj4+Cj4+ID4gK3N0YXRpYyBfX2lubGluZSB2b2lkCj4+ID4gK3Ztd2FyZV9odmNhbGwodV9pbnQg Y21kLCB1X2ludCAqcCkKPj4gPiArewo+PiA+ICsKPj4gPiArCV9fYXNtIF9fdm9sYXRpbGUoImlu bCAoJSVkeCkiCj4+ID4gKwk6ICI9YSIgKHBbMF0pLCAiPWIiIChwWzFdKSwgIj1jIiAocFsyXSks ICI9ZCIgKHBbM10pCj4+ID4gKwk6ICIwIiAoVk1XX0hWTUFHSUMpLCAiMSIgKFVJTlRfTUFYKSwg IjIiIChjbWQpLCAiMyIKPj4gPiAoVk1XX0hWUE9SVCkgKwk6ICJtZW1vcnkiKTsKPj4gPiArfQo+ Pgo+PiBUaGlzIHVwc2V0cyBjbGFuZydzIGludGVncmF0ZWQgYXNzZW1ibGVyLCBhbmQgSSB0aGlu ayBpdCdzIHJpZ2h0IGluCj4+IHRoaXMgY2FzZToKPj4KPj4gc3lzL3g4Ni94ODYvdHNjLmM6MTAz OjE5OiBlcnJvcjogaW52YWxpZCBvcGVyYW5kIGZvciBpbnN0cnVjdGlvbgo+PiAgICAgICAgICBf X2FzbSBfX3ZvbGF0aWxlKCJpbmwgKCUlZHgpIgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KPj4gPGlubGluZSBhc20+OjE6Njogbm90ZTogaW5zdGFudGlhdGVkIGludG8gYXNzZW1ibHkg aGVyZQo+PiAgICAgICAgICBpbmwgKCVkeCkKPj4gICAgICAgICAgICAgIF4KPj4KPj4gQ2FuIHdl IHBsZWFzZSBhZGQgYW4gZXhwbGljaXQgJSVlYXggYXMgc2Vjb25kIGFyZ3VtZW50IGhlcmU/ICBF LmcuOgo+Pgo+PiBkaWZmIC0tZ2l0IGEvc3lzL3g4Ni94ODYvdHNjLmMgYi9zeXMveDg2L3g4Ni90 c2MuYwo+PiBpbmRleCAwYjc1MTBjLi45NjM4MTY3IDEwMDY0NAo+PiAtLS0gYS9zeXMveDg2L3g4 Ni90c2MuYwo+PiArKysgYi9zeXMveDg2L3g4Ni90c2MuYwo+PiBAQCAtMTAwLDcgKzEwMCw3IEBA IHN0YXRpYyBfX2lubGluZSB2b2lkCj4+ICAgdm13YXJlX2h2Y2FsbCh1X2ludCBjbWQsIHVfaW50 ICpwKQo+PiAgIHsKPj4KPj4gLQlfX2FzbSBfX3ZvbGF0aWxlKCJpbmwgKCUlZHgpIgo+PiArCV9f YXNtIF9fdm9sYXRpbGUoImlubCAoJSVkeCksICUlZWF4Igo+Pgo+PiAgIAk6ICI9YSIgKHBbMF0p LCAiPWIiIChwWzFdKSwgIj1jIiAocFsyXSksICI9ZCIgKHBbM10pCj4+ICAgCTogIjAiIChWTVdf SFZNQUdJQyksICIxIiAoVUlOVF9NQVgpLCAiMiIgKGNtZCksICIzIiAoVk1XX0hWUE9SVCkKPj4g ICAJOiAibWVtb3J5Iik7Cj4KPkZpeGVkIGluIHIyMjEzMzEuCj4KPlNvcnJ5IGZvciB0aGUgYnJl YWthZ2UuCj4KPkp1bmctdWsgS2ltCj4KPgo+T24gTW9uZGF5LCBNYXkgMDIsIDIwMTEgMTI6NTM6 MjIgcG0gQmVybmhhcmQgU2NobWlkdCB3cm90ZToKPj4gT24gTW9uZGF5IDAyIE1heSAyMDExIDE0 OjM5OjU3IEpvaG4gQmFsZHdpbiB3cm90ZToKPj4gPiBPbiBTdW5kYXksIE1heSAwMSwgMjAxMSAz OjA1OjU0IHBtIEJlcm5oYXJkIFNjaG1pZHQgd3JvdGU6Cj4+ID4gPiBBdXRob3I6IGJzY2htaWR0 Cj4+ID4gPiBEYXRlOiBTdW4gTWF5ICAxIDE5OjA1OjU0IDIwMTEKPj4gPiA+IE5ldyBSZXZpc2lv bjogMjIxMzAxCj4+ID4gPiBVUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzAxCj4+ID4gPiAKPj4gPiA+IExvZzoKPj4gPiA+ICAgVGhlc2UgYXJlIG9mIGNvdXJz ZSBpMzg2L2FtZDY0IG9ubHkuCj4+ID4gPiAKPj4gPiA+IE1vZGlmaWVkOgo+PiA+ID4gICBoZWFk L3N5cy9jb25mL05PVEVTCj4+ID4gCj4+ID4gUGxlYXNlIHB1dCB0aGVtIGluIGkzODYvY29uZi9O T1RFUyBhbmQgYW1kNjQvY29uZi9OT1RFUy4gIEFsbCBkcml2ZXJzIHNob3VsZCAKPj4gPiBiZSBp biBhcHByb3ByaWF0ZSBOT1RFUyBmaWxlcy4KPj4gCj4+IFRoZXkgYWN0dWFsbHkgYXJlLiBNeSBm YXVsdCB3YXMgdG8gbm90IGNoZWNrIHRob3NlIDIgZmlsZXMgaW4gdGhlCj4+IGZpcnN0IHBsYWNl Lgo+PiAKPj4gU29ycnkgdGhlIG5vaXNlIHRoaXMgaGFzIGNhdXNlZC4KPgo+QWgsIHdob29wcy4g OikKPgo+VGhlcmUgYXJlIG1hbnkgZHJpdmVycyBtaXNzaW5nIGZyb20gdGhlIE5PVEVTIGZpbGVz LCBzbyBJIGp1c3QgYXNzdW1lZCB0aGV5Cj5oYWQgYmVlbiBtaXNzaW5nLiA6LVAKPgo+SSB3cm90 ZSBhIHB5dGhvbiBzY3JpcHQgdG8gbG9vayBmb3IgbWlzc2luZyBkcml2ZXJzIGFuZCBvcHRpb25z LCBpdCdzIGF0Cj5zcmMvdG9vbHMvdG9vbHMvbm90ZXNjaGVjay9ub3Rlc2NoZWNrLnB5LiAgSSBo YXZlbid0IGhhZCB0aW1lIHRvIHNpdCBkb3duCj5hbmQgZml4IGFsbCB0aGUgbWlzc2luZyBlbnRy aWVzIHRob3VnaC4KPgo+LS0gCj5Kb2huIEJhbGR3aW4KPgo+Cj5BdXRob3I6IGRpbQo+RGF0ZTog TW9uIE1heSAgMiAxNzo0Njo1OSAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMzMwo+VVJMOiBodHRw Oi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMzMwo+Cj5Mb2c6Cj4gIFJlbW92 ZSB1c3IvaW5jbHVkZS9uZnMva3JwYy5oIGFuZCB1c3IvaW5jbHVkZS9uZnMvbmZzZGlza2xlc3Mu aCBmcm9tCj4gIE9ic29sZXRlRmlsZXMuaW5jLCBzaW5jZSB0aGVzZSBmaWxlcyBoYXZlIGJlZW4g cmVpbmNhcm5hdGVkIGluIHRoZSBuZXcKPiAgTkZTIGltcGxlbWVudGF0aW9uLgo+ICAKPiAgUmV2 aWV3ZWQgYnk6CXJtYWNrbGVtCj4KPk1vZGlmaWVkOgo+ICBoZWFkL09ic29sZXRlRmlsZXMuaW5j Cj4KPk1vZGlmaWVkOiBoZWFkL09ic29sZXRlRmlsZXMuaW5jCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL09ic29sZXRlRmlsZXMuaW5jCU1vbiBNYXkgIDIgMTc6MTM6NDAgMjAxMQko cjIyMTMzMikKPisrKyBoZWFkL09ic29sZXRlRmlsZXMuaW5jCU1vbiBNYXkgIDIgMTc6NDY6NTkg MjAxMQkocjIyMTMzMykKPkBAIC00ODc0LDkgKzQ4NzQsNyBAQCBPTERfRklMRVMrPXVzci9pbmNs dWRlL25ldG5zL3NwaWRwLmgKPiBPTERfRklMRVMrPXVzci9pbmNsdWRlL25ldG5zL3NwcF9kZWJ1 Zy5oCj4gT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9uZXRucy9zcHBfdGltZXIuaAo+IE9MRF9GSUxF Uys9dXNyL2luY2x1ZGUvbmV0bnMvc3BwX3Zhci5oCj4tT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9u ZnMva3JwYy5oCj4gT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9uZnMvbmZzLmgKPi1PTERfRklMRVMr PXVzci9pbmNsdWRlL25mcy9uZnNkaXNrbGVzcy5oCj4gT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9u ZnMvbmZzbV9zdWJzLmgKPiBPTERfRklMRVMrPXVzci9pbmNsdWRlL25mcy9uZnNtb3VudC5oCj4g T0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9uZnMvbmZzbm9kZS5oCj4KPgo+QXV0aG9yOiBtYXJjZWwK PkRhdGU6IE1vbiBNYXkgIDIgMTc6NDk6MDUgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMzQKPlVS TDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMzQKPgo+TG9nOgo+ ICBEb24ndCB1c2UgdGhlIHdob2xlIHJlZ2lvbiA1IGZvciBLVkEsIGJlY2F1c2UgdGhlIENQVSBt YXkgbm90IGltcGxlbWVudCBhbGwKPiAgb2YgdGhlIDYxIGJpdHMgYXZhaWxhYmxlIHdpdGhpbiB0 aGUgcmVnaW9uIGZvciB2aXJ0dWFsIGFkZHJlc3NpbmcuICBTaW5jZQo+ICB0aGVyZSdzIG5vIGdv b2Qgd2F5IGZvciB1cyB0byBtYXAgb3V0IHRoZSBnYXAgaW4gdGhlIHZpcnR1YWwgYWRkcmVzcyBz cGFjZSwKPiAgbGltaXQgS1ZBIHRvIHRoZSBhcmNoaXRlY3R1cmFsIG1pbmltdW0gaW1wbGVtZW50 ZWQgYWRkcmVzcyBiaXRzLiBUaGlzIHN0aWxsCj4gIGdpdmVzIHVzIDEgcGV0YWJ5dGUgb2YgS1ZB LCBzbyBubyB3b3JyaWVzLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvaWE2NC9pbmNsdWRlL3Zt cGFyYW0uaAo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvaWE2NC9pbmNsdWRlL3ZtcGFyYW0uaAo+PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvaWE2NC9pbmNsdWRlL3ZtcGFyYW0uaAlN b24gTWF5ICAyIDE3OjQ2OjU5IDIwMTEJKHIyMjEzMzMpCj4rKysgaGVhZC9zeXMvaWE2NC9pbmNs dWRlL3ZtcGFyYW0uaAlNb24gTWF5ICAyIDE3OjQ5OjA1IDIwMTEJKHIyMjEzMzQpCj5AQCAtMTgy LDcgKzE4Miw4IEBACj4gI2RlZmluZQlWTV9NSU5fQUREUkVTUwkJMAo+ICNkZWZpbmUJVk1fTUFY VVNFUl9BRERSRVNTCUlBNjRfUlJfQkFTRShJQTY0X1ZNX01JTktFUk5fUkVHSU9OKQo+ICNkZWZp bmUJVk1fTUlOX0tFUk5FTF9BRERSRVNTCUlBNjRfUlJfQkFTRShJQTY0X1ZNX01JTktFUk5fUkVH SU9OICsgMSkKPi0jZGVmaW5lCVZNX01BWF9LRVJORUxfQUREUkVTUwkoSUE2NF9SUl9CQVNFKElB NjRfVk1fTUlOS0VSTl9SRUdJT04gKyAyKSAtIDEpCj4rI2RlZmluZQlWTV9NQVhfS0VSTkVMX0FE RFJFU1MJXAo+KwkJKFZNX01JTl9LRVJORUxfQUREUkVTUyArIElBNjRfUkVHSU9OX0dBUF9TVEFS VCAtIDEpCj4gI2RlZmluZQlWTV9NQVhfQUREUkVTUwkJfjBVTAo+IAo+ICNkZWZpbmUJS0VSTkJB U0UJCVZNX01BWFVTRVJfQUREUkVTUwo+Cj4KPkF1dGhvcjogZGVscGhpago+RGF0ZTogTW9uIE1h eSAgMiAxODo0MTo1NCAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMzNQo+VVJMOiBodHRwOi8vc3Zu LmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMzNQo+Cj5Mb2c6Cj4gIENvcnJlY3QgYSB0 eXBvLiAgQWNjb3JkaW5nIHRvIEludGVsIGRvY3VtZW50IDMxODkxNCwgdGhlIFRqKG1heCkgZm9y IENvcmUgMgo+ICBEdW8gTW9iaWxlIENQVXMgc2hvdWxkIGJlIDEwNS4KPiAgCj4gIE5vdGljZWQg Ynk6CU1hcmsgSm9obnN0b24gPG1hcmtqZGIgZ21haWwuY29tPgo+ICBNRkMgYWZ0ZXI6CTMgZGF5 cwo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvZGV2L2NvcmV0ZW1wL2NvcmV0ZW1wLmMKPgo+TW9k aWZpZWQ6IGhlYWQvc3lzL2Rldi9jb3JldGVtcC9jb3JldGVtcC5jCj49PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KPi0tLSBoZWFkL3N5cy9kZXYvY29yZXRlbXAvY29yZXRlbXAuYwlNb24gTWF5ICAyIDE3 OjQ5OjA1IDIwMTEJKHIyMjEzMzQpCj4rKysgaGVhZC9zeXMvZGV2L2NvcmV0ZW1wL2NvcmV0ZW1w LmMJTW9uIE1heSAgMiAxODo0MTo1NCAyMDExCShyMjIxMzM1KQo+QEAgLTE5Miw3ICsxOTIsNyBA QCBjb3JldGVtcF9hdHRhY2goZGV2aWNlX3QgZGV2KQo+IAl9IGVsc2UgaWYgKGNwdV9tb2RlbCA9 PSAweDE3KSB7Cj4gCQlzd2l0Y2ggKGNwdV9zdGVwcGluZykgewo+IAkJY2FzZSAweDY6CS8qIE1v YmlsZSBDb3JlIDIgRHVvICovCj4tCQkJc2MtPnNjX3RqbWF4ID0gMTA0Owo+KwkJCXNjLT5zY190 am1heCA9IDEwNTsKPiAJCQlicmVhazsKPiAJCWRlZmF1bHQ6CS8qIFVua25vd24gc3RlcHBpbmcg Ki8KPiAJCQlicmVhazsKPgo+Cj5BdXRob3I6IGpoYgo+RGF0ZTogTW9uIE1heSAgMiAxOTowMjoz MCAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMzNgo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3Jn L2NoYW5nZXNldC9iYXNlLzIyMTMzNgo+Cj5Mb2c6Cj4gIFRoZSBBQ1BJIEhvc3QtUENJIGJyaWRn ZSBkcml2ZXIgYWN0dWFsbHkgc3VwcG9ydHMgbXVsdGlwbGUgZG9tYWlucyB2aWEKPiAgdGhlIG9w dGlvbmFsIF9TRUcgZnVuY3Rpb24uICBSZXR1cm4gdGhhdCB2YWx1ZSAoYXAtPnNlZ21lbnQpIHJh dGhlciB0aGFuCj4gIDAgZm9yIHRoZSBwY2liIGRvbWFpbiBpdmFyLgo+Cj5Nb2RpZmllZDoKPiAg aGVhZC9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWJfYWNwaS5jCj4KPk1vZGlmaWVkOiBoZWFkL3N5 cy9kZXYvYWNwaWNhL2FjcGlfcGNpYl9hY3BpLmMKPj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0t IGhlYWQvc3lzL2Rldi9hY3BpY2EvYWNwaV9wY2liX2FjcGkuYwlNb24gTWF5ICAyIDE4OjQxOjU0 IDIwMTEJKHIyMjEzMzUpCj4rKysgaGVhZC9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWJfYWNwaS5j CU1vbiBNYXkgIDIgMTk6MDI6MzAgMjAxMQkocjIyMTMzNikKPkBAIC0yNjgsNyArMjY4LDcgQEAg YWNwaV9wY2liX3JlYWRfaXZhcihkZXZpY2VfdCBkZXYsIGRldmljZQo+IAo+ICAgICBzd2l0Y2gg KHdoaWNoKSB7Cj4gICAgIGNhc2UgUENJQl9JVkFSX0RPTUFJTjoKPi0JKnJlc3VsdCA9IDA7Cj4r CSpyZXN1bHQgPSBzYy0+YXBfc2VnbWVudDsKPiAJcmV0dXJuICgwKTsKPiAgICAgY2FzZSBQQ0lC X0lWQVJfQlVTOgo+IAkqcmVzdWx0ID0gc2MtPmFwX2J1czsKPgo+Cj5fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+c3ZuLXNyYy1oZWFkQGZyZWVic2Qub3Jn IG1haWxpbmcgbGlzdAo+aHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8v c3ZuLXNyYy1oZWFkCj5UbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0byAic3ZuLXNyYy1o ZWFkLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg==