From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-oi0-x243.google.com ([2607:f8b0:4003:c06::243]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1b4lJn-0005og-LQ for barebox@lists.infradead.org; Mon, 23 May 2016 08:34:43 +0000 Received: by mail-oi0-x243.google.com with SMTP id m198so17932679oig.0 for ; Mon, 23 May 2016 01:34:10 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20160523073228.GM11148@pengutronix.de> References: <1463706669-39738-1-git-send-email-poggi.raph@gmail.com> <20160523073228.GM11148@pengutronix.de> From: =?UTF-8?Q?Rapha=C3=ABl_Poggi?= Date: Mon, 23 May 2016 10:33:29 +0200 Message-ID: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: Re: [PATCH 0/3] Add basic support for arm64 To: Sascha Hauer Cc: barebox@lists.infradead.org SGkgU2FzY2hhLAoKMjAxNi0wNS0yMyA5OjMyIEdNVCswMjowMCBTYXNjaGEgSGF1ZXIgPHMuaGF1 ZXJAcGVuZ3V0cm9uaXguZGU+Ogo+IEhpIFJhcGhhZWwsCj4KPiBPbiBGcmksIE1heSAyMCwgMjAx NiBhdCAwMzoxMTowNkFNICswMjAwLCBSYXBoYWVsIFBvZ2dpIHdyb3RlOgo+PiBIZWxsbywKPj4K Pj4gVGhpcyBwYXRjaCBzZXJpZXMgaW50cm9kdWNlcyBhIGJhc2ljIHN1cHBvcnQgZm9yIGFybTY0 Lgo+Pgo+PiBbUEFUQ0ggMS8zXSBhcmNoOiBhZGQgbWluaW1hbCBhYXJjaDY0IHN1cHBvcnQgOgo+ PiAgICAgICAgIEludHJvZHVjZSBuZXcgYXJjaGl0ZWN0dXJlIGJ5IGNyZWF0aW5nIGEgbmV3IHJv b3QgZGlyZWN0b3J5LAo+PiAgICAgICAgIEkgY2hvb3NlIHRoaXMgYXBwcm9hY2ggZm9yIG5vdywg YmVjYXVzZSBpdCBpcyBzaW1wbGVyIGZvciBub3csIG1heWJlIGxhdGVyIHdlIHdpbGwgbWVyZ2Ug dGhpcyBpbiBhcmNoL2FybS4KPgo+IEkganVzdCBhcHBsaWVkIHRoaXMgc2VyaWVzIHRvIGEgdGVt cG9yYXJ5IGJyYW5jaCwgZGlkIGEgY3AgLXIKPiBhcmNoL2FybTY0LyogYXJjaC9hcm0gYW5kIGNv bW1pdHRlZCBldmVyeXRoaW5nLCBzZWUgdGhlIHJlc3VsdCBiZWxvdy4KPiBUaGlzIG9mIGNvdXJz ZSBicmVha3MgYXJtMzIgc3VwcG9ydCwgYnV0IGl0IG5pY2VseSByZXZlYWxzIGFsbCBwbGFjZXMK PiB0aGF0IG5lZWQgZml4dXAgZm9yIGFybTY0LiBIb3cgYWJvdXQgd2UgcHJvY2VlZCBsaWtlIHRo aXM6IFdlIGNvbnRpbnVlCj4gdG8gd29yayBvbiB0aGUgcGF0Y2ggYmVsb3cuIFdlIGNvbnRpbnVv dXNseSBmaW5kIHByb3BlciBzb2x1dGlvbnMgZm9yIHRoZQo+IGRpZmZlcmVudCBwbGFjZXMgdGhh dCBuZWVkIGZpeHVwLiBGb3IgZXZlcnkgaXRlbSB0aGF0IGlzIGZpeGVkIHByb3Blcmx5Cj4gd2Ug YXBwbHkgdGhlIHJlc3VsdGluZyBwYXRjaCBtYWlubGluZSBhbmQgcmViYXNlIHRoZSBiaWcKPiB3 b3JrLWluLXByb2dyZXNzIHBhdGNoIG9udG9wIG9mIGl0LiBUaGlzIHdheSB0aGUgcGF0Y2ggc2hv dWxkCj4gY29udGludW91c2x5IGdldCBzbWFsbGVyIHVudGlsIHdlIGZpbmFsbHkgaGF2ZSB3b3Jr aW5nIGFybTMyIGFuZCBhcm02NAo+IHN1cHBvcnQgaW4gYSBzaW5nbGUgYXJjaGl0ZWN0dXJlLgo+ IE9uZSBvZiB0aGUgZmlyc3QgdGhpbmdzIHdlJ2xsIG5lZWQgaXMgQVJNMzIvQVJNNjQgS2NvbmZp ZyBvcHRpb25zIHdoaWNoIHdlCj4gY2FuIHVzZSBmb3IgdGhlIGRpZmZlcmVudCBsaWIvIGZ1bmN0 aW9ucyB0byBkZXBlbmQgb24gKG1heWJlIGNyZWF0ZSBhCj4gbGliMzIvIGFuZCBhIGxpYjY0LyBk aXJlY3Rvcnk/KSBUaGlzIHNob3VsZCBhbHJlYWR5IG1ha2UgdGhlCj4gd29yay1pbi1wcm9ncmVz cyBwYXRjaCBtdWNoIHNtYWxsZXIuIFdoYXQgZG8geW91IHRoaW5rPwoKUGVyZmVjdCwgSSBhbSBm aW5lIHdpdGggdGhpcyBhcHByb2FjaC4KCgpUaGFua3MsClJhcGhhw6tsCgoKPgo+IFNhc2NoYQo+ Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTg8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4KPiBGcm9tIDc5ZTg1MjgyMGQxOWUzNjIwYmZlNjNiODcxNjEzMTdlNjE2NTQ2ZDUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCj4gRnJvbTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBl bmd1dHJvbml4LmRlPgo+IERhdGU6IE1vbiwgMjMgTWF5IDIwMTYgMDg6NDc6MzYgKzAyMDAKPiBT dWJqZWN0OiBbUEFUQ0hdIHdpcAo+Cj4gU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhh dWVyQHBlbmd1dHJvbml4LmRlPgo+IC0tLQo+ICBhcmNoL2FybS9LY29uZmlnICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAyNzYgKystLS0tLS0tLS0tLS0KPiAgYXJjaC9hcm0vTWFrZWZpbGUg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTkwICstLS0tLS0tLS0KPiAgYXJjaC9hcm0vYm9h cmRzL01ha2VmaWxlICAgICAgICAgICAgICAgICAgIHwgICAxICsKPiAgYXJjaC9hcm0vYm9hcmRz L3ZpcnQvS2NvbmZpZyAgICAgICAgICAgICAgIHwgICA4ICsKPiAgYXJjaC9hcm0vYm9hcmRzL3Zp cnQvTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAxICsKPiAgYXJjaC9hcm0vYm9hcmRzL3ZpcnQv ZW52L2Jpbi9fdXBkYXRlICAgICAgIHwgIDM2ICsrCj4gIGFyY2gvYXJtL2JvYXJkcy92aXJ0L2Vu di9iaW4vYm9vdCAgICAgICAgICB8ICAzOCArKwo+ICBhcmNoL2FybS9ib2FyZHMvdmlydC9lbnYv YmluL2luaXQgICAgICAgICAgfCAgMjAgKwo+ICBhcmNoL2FybS9ib2FyZHMvdmlydC9lbnYvYmlu L3VwZGF0ZV9rZXJuZWwgfCAgIDggKwo+ICBhcmNoL2FybS9ib2FyZHMvdmlydC9lbnYvYmluL3Vw ZGF0ZV9yb290ICAgfCAgIDggKwo+ICBhcmNoL2FybS9ib2FyZHMvdmlydC9lbnYvY29uZmlnICAg ICAgICAgICAgfCAgMzggKysKPiAgYXJjaC9hcm0vYm9hcmRzL3ZpcnQvZW52L2luaXQvbXRkcGFy dHMtbm9yIHwgIDExICsKPiAgYXJjaC9hcm0vYm9hcmRzL3ZpcnQvaW5pdC5jICAgICAgICAgICAg ICAgIHwgIDY3ICsrKysKPiAgYXJjaC9hcm0vY29uZmlncy92aXJ0X2RlZmNvbmZpZyAgICAgICAg ICAgIHwgIDUzICsrKwo+ICBhcmNoL2FybS9jcHUvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAg ICAgfCAxMDIgKy0tLS0KPiAgYXJjaC9hcm0vY3B1L01ha2VmaWxlICAgICAgICAgICAgICAgICAg ICAgIHwgIDI5ICstCj4gIGFyY2gvYXJtL2NwdS9jYWNoZS1hcm12OC5TICAgICAgICAgICAgICAg ICB8IDE2OCArKysrKysrKysKPiAgYXJjaC9hcm0vY3B1L2NhY2hlLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgIDY5ICstLS0KPiAgYXJjaC9hcm0vY3B1L2NwdS5jICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDQ0ICstLQo+ICBhcmNoL2FybS9jcHUvY3B1aW5mby5jICAgICAgICAgICAgICAg ICAgICAgfCAgODYgKystLS0KPiAgYXJjaC9hcm0vY3B1L2VudHJ5LmMgICAgICAgICAgICAgICAg ICAgICAgIHwgICA1ICstCj4gIGFyY2gvYXJtL2NwdS9leGNlcHRpb25zLlMgICAgICAgICAgICAg ICAgICB8IDMxMyArKysrKystLS0tLS0tLS0tCj4gIGFyY2gvYXJtL2NwdS9pbnRlcnJ1cHRzLmMg ICAgICAgICAgICAgICAgICB8ICA5MSArKy0tLQo+ICBhcmNoL2FybS9jcHUvbG93bGV2ZWwuUyAg ICAgICAgICAgICAgICAgICAgfCAgODkgKystLS0KPiAgYXJjaC9hcm0vY3B1L21tdS5jICAgICAg ICAgICAgICAgICAgICAgICAgIHwgNTc4ICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4g IGFyY2gvYXJtL2NwdS9tbXUuaCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1NSArKysrKysr Kwo+ICBhcmNoL2FybS9jcHUvc3RhcnQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0K PiAgYXJjaC9hcm0vY3B1L3VuY29tcHJlc3MuYyAgICAgICAgICAgICAgICAgIHwgICAyICstCj4g IGFyY2gvYXJtL2luY2x1ZGUvYXNtL2JhcmVib3gtYXJtLmggICAgICAgICB8ICAgMiArLQo+ICBh cmNoL2FybS9pbmNsdWRlL2FzbS9iaXRvcHMuaCAgICAgICAgICAgICAgfCAxOTIgKystLS0tLS0t LQo+ICBhcmNoL2FybS9pbmNsdWRlL2FzbS9ib2FyZGRhdGEuaCAgICAgICAgICAgfCAgIDUgKwo+ ICBhcmNoL2FybS9pbmNsdWRlL2FzbS9jYWNoZS1sMngwLmggICAgICAgICAgfCAgIDggLQo+ICBh cmNoL2FybS9pbmNsdWRlL2FzbS9jYWNoZS5oICAgICAgICAgICAgICAgfCAgIDQgKy0KPiAgYXJj aC9hcm0vaW5jbHVkZS9hc20vZXJyYXRhLmggICAgICAgICAgICAgIHwgICA5IC0KPiAgYXJjaC9h cm0vaW5jbHVkZS9hc20vZ2ljLmggICAgICAgICAgICAgICAgIHwgMTI4ICsrKysrKysKPiAgYXJj aC9hcm0vaW5jbHVkZS9hc20vbW11LmggICAgICAgICAgICAgICAgIHwgICA2ICstCj4gIGFyY2gv YXJtL2luY2x1ZGUvYXNtL3BndGFibGUuaCAgICAgICAgICAgICB8ICAgNSArLQo+ICBhcmNoL2Fy bS9pbmNsdWRlL2FzbS9wdHJhY2UuaCAgICAgICAgICAgICAgfCAxMTEgKy0tLS0tCj4gIGFyY2gv YXJtL2luY2x1ZGUvYXNtL3N5c3RlbS5oICAgICAgICAgICAgICB8IDE3MyArKysrKy0tLS0KPiAg YXJjaC9hcm0vaW5jbHVkZS9hc20vc3lzdGVtX2luZm8uaCAgICAgICAgIHwgIDczICsrLS0KPiAg YXJjaC9hcm0vbGliL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgIHwgIDEzIC0KPiAgYXJj aC9hcm0vbGliL2FybWxpbnV4LmMgICAgICAgICAgICAgICAgICAgIHwgICA2IC0KPiAgYXJjaC9h cm0vbGliL2JhcmVib3gubGRzLlMgICAgICAgICAgICAgICAgIHwgICA1ICstCj4gIGFyY2gvYXJt L2xpYi9ib290bS5jICAgICAgICAgICAgICAgICAgICAgICB8IDEwOSArKystLS0KPiAgYXJjaC9h cm0vbGliL2NvcHlfdGVtcGxhdGUuUyAgICAgICAgICAgICAgIHwgNDM4ICsrKysrKysrKy0tLS0t LS0tLS0tLS0KPiAgYXJjaC9hcm0vbGliL21lbWNweS5TICAgICAgICAgICAgICAgICAgICAgIHwg IDg0ICsrKy0tCj4gIGFyY2gvYXJtL2xpYi9tZW1zZXQuUyAgICAgICAgICAgICAgICAgICAgICB8 IDMwNSArKysrKysrKystLS0tLS0KPiAgYXJjaC9hcm0vbGliL3J1bnRpbWUtb2Zmc2V0LlMgICAg ICAgICAgICAgIHwgIDE4ICstCj4gIGFyY2gvYXJtL21hY2gtdmlydC9LY29uZmlnICAgICAgICAg ICAgICAgICB8ICAxNSArCj4gIGFyY2gvYXJtL21hY2gtdmlydC9NYWtlZmlsZSAgICAgICAgICAg ICAgICB8ICAgMyArCj4gIGFyY2gvYXJtL21hY2gtdmlydC9kZXZpY2VzLmMgICAgICAgICAgICAg ICB8ICAzMCArKwo+ICBhcmNoL2FybS9tYWNoLXZpcnQvaW5jbHVkZS9tYWNoL2RlYnVnX2xsLmgg fCAgMjQgKysKPiAgYXJjaC9hcm0vbWFjaC12aXJ0L2luY2x1ZGUvbWFjaC9kZXZpY2VzLmggIHwg IDEzICsKPiAgYXJjaC9hcm0vbWFjaC12aXJ0L2xvd2xldmVsLmMgICAgICAgICAgICAgIHwgIDE5 ICsKPiAgYXJjaC9hcm0vbWFjaC12aXJ0L3Jlc2V0LmMgICAgICAgICAgICAgICAgIHwgIDI0ICsr Cj4gIDU1IGZpbGVzIGNoYW5nZWQsIDIwMDggaW5zZXJ0aW9ucygrKSwgMjMxMiBkZWxldGlvbnMo LSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy92aXJ0L0tjb25maWcKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy92aXJ0L01ha2VmaWxlCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMvdmlydC9lbnYvYmluL191cGRhdGUKPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy92aXJ0L2Vudi9iaW4vYm9vdAo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL3ZpcnQvZW52L2Jpbi9pbml0Cj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMvdmlydC9lbnYvYmluL3VwZGF0ZV9rZXJuZWwK PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy92aXJ0L2Vudi9iaW4vdXBkYXRl X3Jvb3QKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy92aXJ0L2Vudi9jb25m aWcKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy92aXJ0L2Vudi9pbml0L210 ZHBhcnRzLW5vcgo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL3ZpcnQvaW5p dC5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9jb25maWdzL3ZpcnRfZGVmY29uZmln Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9jcHUvY2FjaGUtYXJtdjguUwo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vaW5jbHVkZS9hc20vYm9hcmRkYXRhLmgKPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2luY2x1ZGUvYXNtL2dpYy5oCj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBhcmNoL2FybS9tYWNoLXZpcnQvS2NvbmZpZwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJj aC9hcm0vbWFjaC12aXJ0L01ha2VmaWxlCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9t YWNoLXZpcnQvZGV2aWNlcy5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLXZp cnQvaW5jbHVkZS9tYWNoL2RlYnVnX2xsLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJt L21hY2gtdmlydC9pbmNsdWRlL21hY2gvZGV2aWNlcy5oCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBh cmNoL2FybS9tYWNoLXZpcnQvbG93bGV2ZWwuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9h cm0vbWFjaC12aXJ0L3Jlc2V0LmMKPgo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9LY29uZmlnIGIv YXJjaC9hcm0vS2NvbmZpZwo+IGluZGV4IDFmYzg4N2IuLjM0MDg1ZjYgMTAwNjQ0Cj4gLS0tIGEv YXJjaC9hcm0vS2NvbmZpZwo+ICsrKyBiL2FyY2gvYXJtL0tjb25maWcKPiBAQCAtMjIsMTUgKzIy LDYgQEAgY29uZmlnIEFSTV9VU0VfQ09NUFJFU1NFRF9EVEIKPiAgICAgICAgIHNlbGVjdCBVTkNP TVBSRVNTCj4gICAgICAgICBzZWxlY3QgTFpPX0RFQ09NUFJFU1MKPgo+IC1jb25maWcgQVJDSF9C Q00yODNYCj4gLSAgICAgICBib29sCj4gLSAgICAgICBzZWxlY3QgR1BJT0xJQgo+IC0gICAgICAg c2VsZWN0IENMS0RFVl9MT09LVVAKPiAtICAgICAgIHNlbGVjdCBDT01NT05fQ0xLCj4gLSAgICAg ICBzZWxlY3QgQ0xPQ0tTT1VSQ0VfQkNNMjgzWAo+IC0gICAgICAgc2VsZWN0IEFSTV9BTUJBCj4g LSAgICAgICBzZWxlY3QgSEFTX0RFQlVHX0xMCj4gLQo+ICBtZW51ICJTeXN0ZW0gVHlwZSIKPgo+ ICBjb25maWcgQlVJTFRJTl9EVEIKPiBAQCAtNTAsMjM2ICs0MSwxOCBAQCBjb25maWcgQlVJTFRJ Tl9EVEJfTkFNRQo+ICBjaG9pY2UKPiAgICAgICAgIHByb21wdCAiQVJNIHN5c3RlbSB0eXBlIgo+ Cj4gLWNvbmZpZyBBUkNIX0FUOTEKPiAtICAgICAgIGJvb2wgIkF0bWVsIEFUOTEiCj4gLSAgICAg ICBzZWxlY3QgR1BJT0xJQgo+IC0gICAgICAgc2VsZWN0IENMS0RFVl9MT09LVVAKPiAtICAgICAg IHNlbGVjdCBIQVNfREVCVUdfTEwKPiAtICAgICAgIHNlbGVjdCBIQVZFX01BQ0hfQVJNX0hFQUQK PiAtICAgICAgIHNlbGVjdCBIQVZFX0NMSwo+IC0gICAgICAgc2VsZWN0IFBJTkNUUkxfQVQ5MQo+ IC0KPiAtY29uZmlnIEFSQ0hfQkNNMjgzNQo+IC0gICAgICAgYm9vbCAiQnJvYWRjb20gQkNNMjgz NSBib2FyZHMiCj4gLSAgICAgICBzZWxlY3QgQVJDSF9CQ00yODNYCj4gLSAgICAgICBzZWxlY3Qg Q1BVX0FSTTExNzYKPiAtCj4gLWNvbmZpZyBBUkNIX0JDTTI4MzYKPiAtICAgICAgIGJvb2wgIkJy b2FkY29tIEJDTTI4MzYgYm9hcmRzIgo+IC0gICAgICAgc2VsZWN0IEFSQ0hfQkNNMjgzWAo+IC0g ICAgICAgc2VsZWN0IENQVV9WNwo+IC0KPiAtY29uZmlnIEFSQ0hfQ0xQUzcxMVgKPiAtICAgICAg IGJvb2wgIkNpcnJ1cyBMb2dpYyBFUDcxMXgvRVA3MjF4L0VQNzMxeCIKPiAtICAgICAgIHNlbGVj dCBDTEtERVZfTE9PS1VQCj4gLSAgICAgICBzZWxlY3QgQ0xPQ0tTT1VSQ0VfQ0xQUzcxMVgKPiAt ICAgICAgIHNlbGVjdCBDT01NT05fQ0xLCj4gLSAgICAgICBzZWxlY3QgQ1BVXzMydjRUCj4gLSAg ICAgICBzZWxlY3QgR1BJT0xJQgo+IC0gICAgICAgc2VsZWN0IE1GRF9TWVNDT04KPiAtCj4gLWNv bmZpZyBBUkNIX0RBVklOQ0kKPiAtICAgICAgIGJvb2wgIlRJIERhdmluY2kiCj4gLSAgICAgICBz ZWxlY3QgQ1BVX0FSTTkyNlQKPiAtICAgICAgIHNlbGVjdCBIQVNfREVCVUdfTEwKPiAtICAgICAg IHNlbGVjdCBHUElPTElCCj4gLQo+IC1jb25maWcgQVJDSF9ESUdJQwo+IC0gICAgICAgYm9vbCAi Q2Fub24gRElHSUMtYmFzZWQgY2FtZXJhcyIKPiAtICAgICAgIHNlbGVjdCBDUFVfQVJNOTQ2RQo+ IC0gICAgICAgc2VsZWN0IEhBU19ERUJVR19MTAo+IC0gICAgICAgc2VsZWN0IENMT0NLU09VUkNF X0RJR0lDCj4gLSAgICAgICBzZWxlY3QgR1BJT0xJQgo+IC0gICAgICAgaGVscAo+IC0gICAgICAg ICBTdXBwb3J0IGZvciBDYW5vbidzIGRpZ2l0YWwgY2FtZXJhcyB0aGF0IHVzZSB0aGUgRElHSUM0 IGNoaXAuCj4gLQo+IC1jb25maWcgQVJDSF9FUDkzWFgKPiAtICAgICAgIGJvb2wgIkNpcnJ1cyBM b2dpYyBFUDkzeHgiCj4gLSAgICAgICBzZWxlY3QgQ1BVX0FSTTkyMFQKPiAtICAgICAgIHNlbGVj dCBHRU5FUklDX0dQSU8KPiAtCj4gLWNvbmZpZyBBUkNIX0hJR0hCQU5LCj4gLSAgICAgICBib29s ICJDYWx4ZWRhIEhpZ2hiYW5rIgo+ICtjb25maWcgQVJDSF9WSVJUCj4gKyAgICAgICBib29sICJB Uk0gUUVNVSB2aXJ0IGJvYXJkcyIKPiAgICAgICAgIHNlbGVjdCBIQVNfREVCVUdfTEwKPiAtICAg ICAgIHNlbGVjdCBIQVNfUE9XRVJPRkYKPiAtICAgICAgIHNlbGVjdCBBUkNIX0hBU19MMlgwCj4g LSAgICAgICBzZWxlY3QgQ1BVX1Y3Cj4gKyAgICAgICBzZWxlY3QgQ1BVX1Y4Cj4gKyAgICAgICBz ZWxlY3QgU1lTX1NVUFBPUlRTXzY0QklUX0tFUk5FTAo+ICAgICAgICAgc2VsZWN0IEFSTV9BTUJB Cj4gLSAgICAgICBzZWxlY3QgQU1CQV9TUDgwNAo+IC0gICAgICAgc2VsZWN0IENMS0RFVl9MT09L VVAKPiAtICAgICAgIHNlbGVjdCBDT01NT05fQ0xLCj4gLSAgICAgICBzZWxlY3QgR1BJT0xJQgo+ IC0KPiAtY29uZmlnIEFSQ0hfSU1YCj4gLSAgICAgICBib29sICJGcmVlc2NhbGUgaU1YLWJhc2Vk Igo+IC0gICAgICAgc2VsZWN0IEdQSU9MSUIKPiAtICAgICAgIHNlbGVjdCBDT01NT05fQ0xLCj4g LSAgICAgICBzZWxlY3QgQ0xLREVWX0xPT0tVUAo+IC0gICAgICAgc2VsZWN0IFdBVENIRE9HX0lN WF9SRVNFVF9TT1VSQ0UKPiAtICAgICAgIHNlbGVjdCBIQVNfREVCVUdfTEwKPiAtCj4gLWNvbmZp ZyBBUkNIX01WRUJVCj4gLSAgICAgICBib29sICJNYXJ2ZWxsIEVCVSBwbGF0Zm9ybXMiCj4gLSAg ICAgICBzZWxlY3QgQ09NTU9OX0NMSwo+IC0gICAgICAgc2VsZWN0IENPTU1PTl9DTEtfT0ZfUFJP VklERVIKPiAtICAgICAgIHNlbGVjdCBDTEtERVZfTE9PS1VQCj4gLSAgICAgICBzZWxlY3QgR1BJ T0xJQgo+IC0gICAgICAgc2VsZWN0IEhBU19ERUJVR19MTAo+IC0gICAgICAgc2VsZWN0IEhBVkVf UEJMX01VTFRJX0lNQUdFUwo+IC0gICAgICAgc2VsZWN0IEhXX0hBU19QQ0kKPiAtICAgICAgIHNl bGVjdCBNVkVCVV9NQlVTCj4gLSAgICAgICBzZWxlY3QgT0ZUUkVFCj4gLSAgICAgICBzZWxlY3Qg T0ZfQUREUkVTU19QQ0kKPiAtICAgICAgIHNlbGVjdCBQSU5DVFJMCj4gLQo+IC1jb25maWcgQVJD SF9NWFMKPiAtICAgICAgIGJvb2wgIkZyZWVzY2FsZSBpLk1YMjMvMjggKG14cykgYmFzZWQiCj4g LSAgICAgICBzZWxlY3QgR1BJT0xJQgo+IC0gICAgICAgc2VsZWN0IEdFTkVSSUNfR1BJTwo+IC0g ICAgICAgc2VsZWN0IENPTU1PTl9DTEsKPiAtICAgICAgIHNlbGVjdCBDTEtERVZfTE9PS1VQCj4g LSAgICAgICBzZWxlY3QgSEFTX0RFQlVHX0xMCj4gLQo+IC1jb25maWcgQVJDSF9ORVRYCj4gLSAg ICAgICBib29sICJIaWxzY2hlciBOZXRYIGJhc2VkIgo+IC0gICAgICAgc2VsZWN0IENQVV9BUk05 MjZUCj4gLQo+IC1jb25maWcgQVJDSF9OT01BRElLCj4gLSAgICAgICBib29sICJTVE1pY3JvZWxl Y3Ryb25pY3MgTm9tYWRpayIKPiAtICAgICAgIHNlbGVjdCBDUFVfQVJNOTI2VAo+IC0gICAgICAg c2VsZWN0IENMT0NLU09VUkNFX05PTUFESUsKPiAtICAgICAgIHNlbGVjdCBIQVZFX0NMSwo+IC0g ICAgICAgaGVscAo+IC0gICAgICAgICBTdXBwb3J0IGZvciB0aGUgTm9tYWRpayBwbGF0Zm9ybSBi eSBTVC1Fcmljc3Nvbgo+IC0KPiAtY29uZmlnIEFSQ0hfT01BUAo+IC0gICAgICAgYm9vbCAiVEkg T01BUCIKPiAtICAgICAgIHNlbGVjdCBIQVNfREVCVUdfTEwKPiAtICAgICAgIHNlbGVjdCBHUElP TElCCj4gLQo+IC1jb25maWcgQVJDSF9QWEEKPiAtICAgICAgIGJvb2wgIkludGVsL01hcnZlbGwg UFhBIGJhc2VkIgo+IC0gICAgICAgc2VsZWN0IEdFTkVSSUNfR1BJTwo+IC0gICAgICAgc2VsZWN0 IEhBU19QT1dFUk9GRgo+IC0KPiAtY29uZmlnIEFSQ0hfUk9DS0NISVAKPiAtICAgICAgIGJvb2wg IlJvY2tjaGlwIFJYM3h4eCIKPiAtICAgICAgIHNlbGVjdCBDUFVfVjcKPiAtICAgICAgIHNlbGVj dCBBUk1fU01QX1RXRAo+IC0gICAgICAgc2VsZWN0IENPTU1PTl9DTEsKPiAtICAgICAgIHNlbGVj dCBDTEtERVZfTE9PS1VQCj4gLSAgICAgICBzZWxlY3QgQ09NTU9OX0NMS19PRl9QUk9WSURFUgo+ IC0gICAgICAgc2VsZWN0IEdQSU9MSUIKPiAtICAgICAgIHNlbGVjdCBQSU5DVFJMCj4gLSAgICAg ICBzZWxlY3QgUElOQ1RSTF9ST0NLQ0hJUAo+IC0gICAgICAgc2VsZWN0IE9GVFJFRQo+IC0gICAg ICAgc2VsZWN0IEhBVkVfUEJMX01VTFRJX0lNQUdFUwo+IC0gICAgICAgc2VsZWN0IEhBU19ERUJV R19MTAo+IC0gICAgICAgc2VsZWN0IEFSQ0hfSEFTX0wyWDAKPiAtCj4gLWNvbmZpZyBBUkNIX1NP Q0ZQR0EKPiAtICAgICAgIGJvb2wgIkFsdGVyYSBTT0NGUEdBIGN5Y2xvbmU1Igo+IC0gICAgICAg c2VsZWN0IEhBU19ERUJVR19MTAo+IC0gICAgICAgc2VsZWN0IEFSTV9TTVBfVFdECj4gLSAgICAg ICBzZWxlY3QgQ1BVX1Y3Cj4gLSAgICAgICBzZWxlY3QgQ09NTU9OX0NMSwo+IC0gICAgICAgc2Vs ZWN0IENMS0RFVl9MT09LVVAKPiAtICAgICAgIHNlbGVjdCBHUElPTElCCj4gLSAgICAgICBzZWxl Y3QgSEFWRV9QQkxfTVVMVElfSU1BR0VTCj4gLSAgICAgICBzZWxlY3QgT0ZERVZJQ0UgaWYgIUFS Q0hfU09DRlBHQV9YTE9BRAo+IC0gICAgICAgc2VsZWN0IE9GVFJFRSBpZiAhQVJDSF9TT0NGUEdB X1hMT0FECj4gLQo+IC1jb25maWcgQVJDSF9TM0MyNHh4Cj4gLSAgICAgICBib29sICJTYW1zdW5n IFMzQzI0MTAsIFMzQzI0NDAiCj4gLSAgICAgICBzZWxlY3QgQVJDSF9TQU1TVU5HCj4gLSAgICAg ICBzZWxlY3QgQ1BVX0FSTTkyMFQKPiAtICAgICAgIHNlbGVjdCBHRU5FUklDX0dQSU8KPiAtCj4g LWNvbmZpZyBBUkNIX1M1UEN4eAo+IC0gICAgICAgYm9vbCAiU2Ftc3VuZyBTNVBDMTEwLCBTNVBW MjEwIgo+IC0gICAgICAgc2VsZWN0IEFSQ0hfU0FNU1VORwo+IC0gICAgICAgc2VsZWN0IENQVV9W Nwo+IC0gICAgICAgc2VsZWN0IEdFTkVSSUNfR1BJTwo+IC0KPiAtY29uZmlnIEFSQ0hfUzNDNjR4 eAo+IC0gICAgICAgYm9vbCAiU2Ftc3VuZyBTM0M2NHh4Igo+IC0gICAgICAgc2VsZWN0IEFSQ0hf U0FNU1VORwo+IC0gICAgICAgc2VsZWN0IENQVV9WNgo+IC0gICAgICAgc2VsZWN0IEdFTkVSSUNf R1BJTwo+IC0KPiAtY29uZmlnIEFSQ0hfVkVSU0FUSUxFCj4gLSAgICAgICBib29sICJBUk0gVmVy c2F0aWxlIGJvYXJkcyAoQVJNOTI2RUotUykiCj4gLSAgICAgICBzZWxlY3QgR1BJT0xJQgo+IC0g ICAgICAgc2VsZWN0IEhBVkVfQ0xLCj4gLSAgICAgICBzZWxlY3QgSEFTX0RFQlVHX0xMCj4gLQo+ IC1jb25maWcgQVJDSF9WRVhQUkVTUwo+IC0gICAgICAgYm9vbCAiQVJNIFZleHByZXMgYm9hcmRz Igo+IC0gICAgICAgc2VsZWN0IEhBU19ERUJVR19MTAo+IC0gICAgICAgc2VsZWN0IENQVV9WNwo+ IC0gICAgICAgc2VsZWN0IEFSTV9BTUJBCj4gLSAgICAgICBzZWxlY3QgQU1CQV9TUDgwNAo+IC0g ICAgICAgc2VsZWN0IENMS0RFVl9MT09LVVAKPiAtICAgICAgIHNlbGVjdCBDT01NT05fQ0xLCj4g LQo+IC1jb25maWcgQVJDSF9URUdSQQo+IC0gICAgICAgYm9vbCAiTlZJRElBIFRlZ3JhIgo+IC0g ICAgICAgc2VsZWN0IENQVV9WNwo+IC0gICAgICAgc2VsZWN0IEhBU19ERUJVR19MTAo+IC0gICAg ICAgc2VsZWN0IEhXX0hBU19QQ0kKPiAtICAgICAgIHNlbGVjdCBDT01NT05fQ0xLCj4gLSAgICAg ICBzZWxlY3QgQ09NTU9OX0NMS19PRl9QUk9WSURFUgo+IC0gICAgICAgc2VsZWN0IENMS0RFVl9M T09LVVAKPiAtICAgICAgIHNlbGVjdCBHUElPTElCCj4gLSAgICAgICBzZWxlY3QgR1BJT19URUdS QQo+IC0gICAgICAgc2VsZWN0IEhBVkVfREVGQVVMVF9FTlZJUk9OTUVOVF9ORVcKPiAtICAgICAg IHNlbGVjdCBIQVZFX1BCTF9NVUxUSV9JTUFHRVMKPiAtICAgICAgIHNlbGVjdCBPRkRFVklDRQo+ IC0gICAgICAgc2VsZWN0IE9GVFJFRQo+IC0gICAgICAgc2VsZWN0IFJFTE9DQVRBQkxFCj4gLSAg ICAgICBzZWxlY3QgUkVTRVRfQ09OVFJPTExFUgo+IC0gICAgICAgc2VsZWN0IFBJTkNUUkwKPiAt Cj4gLWNvbmZpZyBBUkNIX1VFTUQKPiAtICAgICAgIGJvb2wgIlJDIE1vZHVsZSBVRU1EIFBsYXRm b3JtIgo+IC0gICAgICAgc2VsZWN0IENQVV9BUk0xMTc2Cj4gLSAgICAgICBzZWxlY3QgQ09NTU9O X0NMSwo+IC0gICAgICAgc2VsZWN0IENPTU1PTl9DTEtfT0ZfUFJPVklERVIKPiAtICAgICAgIHNl bGVjdCBDTEtERVZfTE9PS1VQCj4gLSAgICAgICBzZWxlY3QgT0ZERVZJQ0UKPiAtICAgICAgIHNl bGVjdCBPRlRSRUUKPiAtICAgICAgIHNlbGVjdCBDTE9DS1NPVVJDRV9VRU1ECj4gLSAgICAgICBz ZWxlY3QgSEFTX0RFQlVHX0xMCj4gLQo+IC1jb25maWcgQVJDSF9aWU5RCj4gLSAgICAgICBib29s ICJYaWxpbnggWnlucS1iYXNlZCBib2FyZHMiCj4gLSAgICAgICBzZWxlY3QgSEFTX0RFQlVHX0xM Cj4gKyAgICAgICBzZWxlY3QgSEFWRV9DT05GSUdVUkFCTEVfTUVNT1JZX0xBWU9VVAo+Cj4gIGVu ZGNob2ljZQo+Cj4gIHNvdXJjZSBhcmNoL2FybS9jcHUvS2NvbmZpZwo+IC1zb3VyY2UgYXJjaC9h cm0vbWFjaC1hdDkxL0tjb25maWcKPiAtc291cmNlIGFyY2gvYXJtL21hY2gtYmNtMjgzeC9LY29u ZmlnCj4gLXNvdXJjZSBhcmNoL2FybS9tYWNoLWNscHM3MTF4L0tjb25maWcKPiAtc291cmNlIGFy Y2gvYXJtL21hY2gtZGF2aW5jaS9LY29uZmlnCj4gLXNvdXJjZSBhcmNoL2FybS9tYWNoLWRpZ2lj L0tjb25maWcKPiAtc291cmNlIGFyY2gvYXJtL21hY2gtZXA5M3h4L0tjb25maWcKPiAtc291cmNl IGFyY2gvYXJtL21hY2gtaGlnaGJhbmsvS2NvbmZpZwo+IC1zb3VyY2UgYXJjaC9hcm0vbWFjaC1p bXgvS2NvbmZpZwo+IC1zb3VyY2UgYXJjaC9hcm0vbWFjaC1teHMvS2NvbmZpZwo+IC1zb3VyY2Ug YXJjaC9hcm0vbWFjaC1tdmVidS9LY29uZmlnCj4gLXNvdXJjZSBhcmNoL2FybS9tYWNoLW5ldHgv S2NvbmZpZwo+IC1zb3VyY2UgYXJjaC9hcm0vbWFjaC1ub21hZGlrL0tjb25maWcKPiAtc291cmNl IGFyY2gvYXJtL21hY2gtb21hcC9LY29uZmlnCj4gLXNvdXJjZSBhcmNoL2FybS9tYWNoLXB4YS9L Y29uZmlnCj4gLXNvdXJjZSBhcmNoL2FybS9tYWNoLXJvY2tjaGlwL0tjb25maWcKPiAtc291cmNl IGFyY2gvYXJtL21hY2gtc2Ftc3VuZy9LY29uZmlnCj4gLXNvdXJjZSBhcmNoL2FybS9tYWNoLXNv Y2ZwZ2EvS2NvbmZpZwo+IC1zb3VyY2UgYXJjaC9hcm0vbWFjaC12ZXJzYXRpbGUvS2NvbmZpZwo+ IC1zb3VyY2UgYXJjaC9hcm0vbWFjaC12ZXhwcmVzcy9LY29uZmlnCj4gLXNvdXJjZSBhcmNoL2Fy bS9tYWNoLXRlZ3JhL0tjb25maWcKPiAtc291cmNlIGFyY2gvYXJtL21hY2gtdWVtZC9LY29uZmln Cj4gLXNvdXJjZSBhcmNoL2FybS9tYWNoLXp5bnEvS2NvbmZpZwo+ICtzb3VyY2UgYXJjaC9hcm0v bWFjaC12aXJ0L0tjb25maWcKPgo+ICBjb25maWcgQVJNX0FTTV9VTklGSUVECj4gICAgICAgICBi b29sCj4gQEAgLTI5MiwyMCArNjUsNiBAQCBjb25maWcgQUVBQkkKPgo+ICAgICAgICAgICBUbyB1 c2UgdGhpcyB5b3UgbmVlZCBHQ0MgdmVyc2lvbiA0LjAuMCBvciBsYXRlci4KPgo+IC1jb25maWcg VEhVTUIyX0JBUkVCT1gKPiAtICAgICAgIHNlbGVjdCBBUk1fQVNNX1VOSUZJRUQKPiAtICAgICAg IHNlbGVjdCBBRUFCSQo+IC0gICAgICAgZGVwZW5kcyBvbiAhQVJDSF9URUdSQSAmJiAhQVJDSF9B VDkxCj4gLSAgICAgICBkZXBlbmRzIG9uIENQVV9WNyAmJiAhQ1BVXzMydjRUICYmICFDUFVfMzJ2 NSAmJiAhQ1BVXzMydjYKPiAtICAgICAgIGJvb2wgIkNvbXBpbGUgYmFyZWJveCBpbiB0aHVtYi0y IG1vZGUgKHJlYWQgaGVscCkiCj4gLSAgICAgICBoZWxwCj4gLSAgICAgICAgIFRoaXMgZW5hYmxl cyBjb21waWxhdGlvbiBvZiBiYXJlYm94IGluIHRodW1iLTIgbW9kZSB3aGljaCBnZW5lcmF0ZXMK PiAtICAgICAgICAgfjI1JSBzbWFsbGVyIGJpbmFyaWVzLiBBUk0gYXNzZW1ibHkgY29kZSBuZWVk cyBzb21lIGZpeHVwcyB0byBiZSBhYmxlCj4gLSAgICAgICAgIHRvIHdvcmsgY29ycmVjdGx5IGlu IHRodW1iLTIgbW9kZS4gdGhlIGJhcmVib3ggY29yZSBzaG91bGQgaGF2ZSB0aGVzZQo+IC0gICAg ICAgICBmaXh1cHMgc2luY2UgbW9zdCBhc3NlbWJseSBjb2RlIGlzIGRlcml2ZWQgZnJvbSB0aGUg S2VybmVsLiBIb3dldmVyLAo+IC0gICAgICAgICB5b3VyIGJvYXJkIGxvd2xldmVsIGluaXQgY29k ZSBtYXkgYnJlYWsgaW4gdGh1bWItMiBtb2RlLiBZb3UgaGF2ZSBiZWVuCj4gLSAgICAgICAgIHdh cm5lZC4KPiAtCj4gIGNvbmZpZyBBUk1fQk9BUkRfQVBQRU5EX0FUQUcKPiAgICAgICAgIGJvb2wg IkxldCBib2FyZCBzcGVjaWZpYyBjb2RlIHRvIGFkZCBBVEFHcyB0byBiZSBwYXNzZWQgdG8gdGhl IGtlcm5lbCIKPiAgICAgICAgIGRlcGVuZHMgb24gQVJNX0xJTlVYCj4gQEAgLTMxNSw2ICs3NCwy OSBAQCBjb25maWcgQVJNX0JPQVJEX0FQUEVORF9BVEFHCj4KPiAgZW5kbWVudQo+Cj4gK2Nob2lj ZQo+ICsgICAgICAgcHJvbXB0ICJCYXJlYm94IGNvZGUgbW9kZWwiCj4gKyAgICAgICBoZWxwCj4g KyAgICAgICAgIFlvdSBzaG91bGQgb25seSBzZWxlY3QgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUg YSB3b3JrbG9hZCB0aGF0Cj4gKyAgICAgICAgIGFjdHVhbGx5IGJlbmVmaXRzIGZyb20gNjQtYml0 IHByb2Nlc3Npbmcgb3IgaWYgeW91ciBtYWNoaW5lIGhhcwo+ICsgICAgICAgICBsYXJnZSBtZW1v cnkuIFlvdSB3aWxsIG9ubHkgYmUgcHJlc2VudGVkIGEgc2luZ2xlIG9wdGlvbiBpbiB0aGlzCj4g KyAgICAgICAgIG1lbnUgaWYgeW91ciBzeXN0ZW0gZG9lcyBub3Qgc3VwcG9ydCBib3RoIDMyLWJp dCBhbmQgNjQtYml0IG1vZGVzLgo+ICsKPiArY29uZmlnIDMyQklUCj4gKyAgICAgICBib29sICIz Mi1iaXQgYmFyZWJveCIKPiArICAgICAgIGRlcGVuZHMgb24gQ1BVX1NVUFBPUlRTXzMyQklUX0tF Uk5FTCAmJiBTWVNfU1VQUE9SVFNfMzJCSVRfS0VSTkVMCj4gKyAgICAgICBoZWxwCj4gKyAgICAg ICAgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byBidWlsZCBhIDMyLWJpdCBiYXJl Ym94Lgo+ICsKPiArY29uZmlnIDY0QklUCj4gKyAgICAgICBib29sICI2NC1iaXQgYmFyZWJveCIK PiArICAgICAgIGRlcGVuZHMgb24gQ1BVX1NVUFBPUlRTXzY0QklUX0tFUk5FTCAmJiBTWVNfU1VQ UE9SVFNfNjRCSVRfS0VSTkVMCj4gKyAgICAgICBzZWxlY3QgQVJDSF9ETUFfQUREUl9UXzY0QklU Cj4gKyAgICAgICBoZWxwCj4gKyAgICAgICAgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3Ugd2Fu dCB0byBidWlsZCBhIDY0LWJpdCBiYXJlYm94Lgo+ICsKPiArZW5kY2hvaWNlCj4gKwo+ICBtZW51 ICJBUk0gc3BlY2lmaWMgc2V0dGluZ3MiCj4KPiAgY29uZmlnIEFSTV9PUFRJTVpFRF9TVFJJTkdf RlVOQ1RJT05TCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL01ha2VmaWxlIGIvYXJjaC9hcm0vTWFr ZWZpbGUKPiBpbmRleCA1Y2NkYjgzLi5hZDI1MGM0IDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL01h a2VmaWxlCj4gKysrIGIvYXJjaC9hcm0vTWFrZWZpbGUKPiBAQCAtMSw3ICsxLDYgQEAKPgo+ICBD UFBGTEFHUyAgICAgICArPSAtRF9fQVJNX18gLWZuby1zdHJpY3QtYWxpYXNpbmcKPiAtIyBFeHBs aWNpdGx5IHNwZWNpZml5IDMyLWJpdCBBUk0gSVNBIHNpbmNlIHRvb2xjaGFpbiBkZWZhdWx0IGNh biBiZSAtbXRodW1iOgo+IC1DUFBGTEFHUyAgICAgICArPSQoY2FsbCBjYy1vcHRpb24sLW1hcm0s KQo+ICtDUFBGTEFHUyAgICAgICArPSQoY2FsbCBjYy1vcHRpb24sLW1hYXJjaDY0LCkKPgo+ICBp ZmVxICgkKENPTkZJR19DUFVfQklHX0VORElBTikseSkKPiAgQ1BQRkxBR1MgICAgICAgKz0gLW1i aWctZW5kaWFuCj4gQEAgLTEzLDkxICsxMiwyNyBAQCBBUyAgICAgICAgICArPSAtRUwKPiAgTEQg ICAgICAgICAgICAgKz0gLUVMCj4gIGVuZGlmCj4KPiAtIyBVbmFsaWduZWQgYWNjZXNzIGlzIG5v dCBzdXBwb3J0ZWQgd2hlbiBNTVUgaXMgZGlzYWJsZWQsIHNvIGdpdmVuIGhvdwo+IC0jIGF0IGxl YXN0IHNvbWUgb2YgdGhlIGNvZGUgd291bGQgYmUgZXhlY3V0ZWQgd2l0aCBNTVUgb2ZmLCBsZXRz IGJlCj4gLSMgY29uc2VydmF0aXZlIGFuZCBpbnN0cnVjdCB0aGUgY29tcGlsZXIgbm90IHRvIGdl bmVyYXRlIGFueSB1bmFsaWduZWQKPiAtIyBhY2Nlc3Nlcwo+IC1DRkxBR1MgKz0gLW1uby11bmFs aWduZWQtYWNjZXNzCj4gLQo+IC0KPiAgIyBUaGlzIHNlbGVjdHMgd2hpY2ggaW5zdHJ1Y3Rpb24g c2V0IGlzIHVzZWQuCj4gICMgTm90ZSB0aGF0IEdDQyBkb2VzIG5vdCBudW1lcmljYWxseSBkZWZp bmUgYW4gYXJjaGl0ZWN0dXJlIHZlcnNpb24KPiAgIyBtYWNybywgYnV0IGluc3RlYWQgZGVmaW5l cyBhIHdob2xlIHNlcmllcyBvZiBtYWNyb3Mgd2hpY2ggbWFrZXMKPiAgIyB0ZXN0aW5nIGZvciBh IHNwZWNpZmljIGFyY2hpdGVjdHVyZSBvciBsYXRlciByYXRoZXIgaW1wb3NzaWJsZS4KPiAtYXJj aC0kKENPTkZJR19DUFVfMzJ2NykgICAgICAgICAgICAgICAgOj0tRF9fTElOVVhfQVJNX0FSQ0hf Xz03ICQoY2FsbCBjYy1vcHRpb24sLW1hcmNoPWFybXY3LWEsLW1hcmNoPWFybXY1dCAtV2EkKGNv bW1hKS1tYXJjaD1hcm12Ny1hKQo+IC1hcmNoLSQoQ09ORklHX0NQVV8zMnY2KSAgICAgICAgICAg IDo9LURfX0xJTlVYX0FSTV9BUkNIX189NiAkKGNhbGwgY2Mtb3B0aW9uLC1tYXJjaD1hcm12Niwt bWFyY2g9YXJtdjV0IC1XYSQoY29tbWEpLW1hcmNoPWFybXY2KQo+IC1hcmNoLSQoQ09ORklHX0NQ VV8zMnY1KSAgICAgICAgICAgICAgICA6PS1EX19MSU5VWF9BUk1fQVJDSF9fPTUgJChjYWxsIGNj LW9wdGlvbiwtbWFyY2g9YXJtdjV0ZSwtbWFyY2g9YXJtdjR0KQo+IC1hcmNoLSQoQ09ORklHX0NQ VV8zMnY0VCkgICAgICAgOj0tRF9fTElOVVhfQVJNX0FSQ0hfXz00IC1tYXJjaD1hcm12NHQKPiAt Cj4gLSMgVGhpcyBzZWxlY3RzIGhvdyB3ZSBvcHRpbWlzZSBmb3IgdGhlIHByb2Nlc3Nvci4KPiAt dHVuZS0kKENPTkZJR19DUFVfQVJNOTIwVCkgICAgIDo9LW10dW5lPWFybTl0ZG1pCj4gLXR1bmUt JChDT05GSUdfQ1BVX0FSTTkyNlQpICAgICA6PS1tdHVuZT1hcm05dGRtaQo+IC10dW5lLSQoQ09O RklHX0NQVV9YU0NBTEUpICAgICAgOj0kKGNhbGwgY2Mtb3B0aW9uLC1tdHVuZT14c2NhbGUsLW10 dW5lPXN0cm9uZ2FybTExMCkgLVdhLC1tY3B1PXhzY2FsZQo+ICthcmNoLSQoQ09ORklHX0NQVV82 NHY4KSAgICAgICAgICAgICAgICA6PSAtRF9fTElOVVhfQVJNX0FSQ0hfXz04ICQoY2FsbCBjYy1v cHRpb24sLW1hcmNoPWFybXY4LWEpCj4KPiAtaWZlcSAoJChDT05GSUdfQUVBQkkpLHkpCj4gLUNG TEFHU19BQkkgICAgIDo9LW1hYmk9YWFwY3MtbGludXggLW1uby10aHVtYi1pbnRlcndvcmsKPiAt ZWxzZQo+IC1DRkxBR1NfQUJJICAgICA6PSQoY2FsbCBjYy1vcHRpb24sLW1hcGNzLTMyLC1tYWJp PWFwY3MtZ251KSAkKGNhbGwgY2Mtb3B0aW9uLC1tbm8tdGh1bWItaW50ZXJ3b3JrLCkKPiAtZW5k aWYKPiArQ0ZMQUdTX0FCSSAgICAgOj0tbWFiaT1scDY0Cj4KPiAgaWZlcSAoJChDT05GSUdfQVJN X1VOV0lORCkseSkKPiAgQ0ZMQUdTX0FCSSAgICAgKz0tZnVud2luZC10YWJsZXMKPiAgZW5kaWYK Pgo+IC1pZmVxICgkKENPTkZJR19USFVNQjJfQkFSRUJPWCkseSkKPiAtQUZMQUdTX0FVVE9JVCAg Oj0kKGNhbGwgYXMtb3B0aW9uLC1XYSQoY29tbWEpLW1pbXBsaWNpdC1pdD1hbHdheXMsLVdhJChj b21tYSktbWF1dG8taXQpCj4gLUFGTEFHU19OT1dBUk4gIDo9JChjYWxsIGFzLW9wdGlvbiwtV2Ek KGNvbW1hKS1tbm8td2Fybi1kZXByZWNhdGVkLC1XYSQoY29tbWEpLVcpCj4gLUNGTEFHU19USFVN QjIgIDo9LW10aHVtYiAkKEFGTEFHU19BVVRPSVQpICQoQUZMQUdTX05PV0FSTikKPiAtQUZMQUdT X1RIVU1CMiAgOj0kKENGTEFHU19USFVNQjIpIC1XYSQoY29tbWEpLW10aHVtYgo+IC1lbmRpZgo+ ICtDUFBGTEFHUyArPSAkKENGTEFHU19BQkkpICQoYXJjaC15KSAkKHR1bmUteSkKPgo+IC1DUFBG TEFHUyArPSAkKENGTEFHU19BQkkpICQoYXJjaC15KSAkKHR1bmUteSkgLW1zb2Z0LWZsb2F0ICQo Q0ZMQUdTX1RIVU1CMikKPiAtQUZMQUdTICAgKz0gLWluY2x1ZGUgYXNtL3VuaWZpZWQuaCAtbXNv ZnQtZmxvYXQgJChBRkxBR1NfVEhVTUIyKQo+ICtBRkxBR1MgICArPSAtaW5jbHVkZSBhc20vdW5p ZmllZC5oCj4KPiAgIyBNYWNoaW5lIGRpcmVjdG9yeSBuYW1lLiAgVGhpcyBsaXN0IGlzIHNvcnRl ZCBhbHBoYW51bWVyaWNhbGx5Cj4gICMgYnkgQ09ORklHXyogbWFjcm8gbmFtZS4KPiAtbWFjaGlu ZS0kKENPTkZJR19BUkNIX0FUOTEpICAgICAgICAgICAgOj0gYXQ5MQo+IC1tYWNoaW5lLSQoQ09O RklHX0FSQ0hfQkNNMjgzWCkgICAgICAgICA6PSBiY20yODN4Cj4gLW1hY2hpbmUtJChDT05GSUdf QVJDSF9DTFBTNzExWCkgICAgICAgICAgICAgICAgOj0gY2xwczcxMXgKPiAtbWFjaGluZS0kKENP TkZJR19BUkNIX0RBVklOQ0kpICAgICAgICAgOj0gZGF2aW5jaQo+IC1tYWNoaW5lLSQoQ09ORklH X0FSQ0hfRElHSUMpICAgICAgICAgICA6PSBkaWdpYwo+IC1tYWNoaW5lLSQoQ09ORklHX0FSQ0hf RVA5M1hYKSAgICAgICAgICA6PSBlcDkzeHgKPiAtbWFjaGluZS0kKENPTkZJR19BUkNIX0hJR0hC QU5LKSAgICAgICAgICAgICAgICA6PSBoaWdoYmFuawo+IC1tYWNoaW5lLSQoQ09ORklHX0FSQ0hf SU1YKSAgICAgICAgICAgICA6PSBpbXgKPiAtbWFjaGluZS0kKENPTkZJR19BUkNIX01YUykgICAg ICAgICAgICAgOj0gbXhzCj4gLW1hY2hpbmUtJChDT05GSUdfQVJDSF9NVkVCVSkgICAgICAgICAg IDo9IG12ZWJ1Cj4gLW1hY2hpbmUtJChDT05GSUdfQVJDSF9OT01BRElLKSAgICAgICAgIDo9IG5v bWFkaWsKPiAtbWFjaGluZS0kKENPTkZJR19BUkNIX05FVFgpICAgICAgICAgICAgOj0gbmV0eAo+ IC1tYWNoaW5lLSQoQ09ORklHX0FSQ0hfT01BUCkgICAgICAgICAgICA6PSBvbWFwCj4gLW1hY2hp bmUtJChDT05GSUdfQVJDSF9QWEEpICAgICAgICAgICAgIDo9IHB4YQo+IC1tYWNoaW5lLSQoQ09O RklHX0FSQ0hfUk9DS0NISVApICAgICAgICAgICAgICAgIDo9IHJvY2tjaGlwCj4gLW1hY2hpbmUt JChDT05GSUdfQVJDSF9TQU1TVU5HKSAgICAgICAgIDo9IHNhbXN1bmcKPiAtbWFjaGluZS0kKENP TkZJR19BUkNIX1NPQ0ZQR0EpICAgICAgICAgOj0gc29jZnBnYQo+IC1tYWNoaW5lLSQoQ09ORklH X0FSQ0hfVkVSU0FUSUxFKSAgICAgICA6PSB2ZXJzYXRpbGUKPiAtbWFjaGluZS0kKENPTkZJR19B UkNIX1ZFWFBSRVNTKSAgICAgICAgICAgICAgICA6PSB2ZXhwcmVzcwo+IC1tYWNoaW5lLSQoQ09O RklHX0FSQ0hfVEVHUkEpICAgICAgICAgICA6PSB0ZWdyYQo+IC1tYWNoaW5lLSQoQ09ORklHX0FS Q0hfVUVNRCkgICAgICAgICAgICA6PSB1ZW1kCj4gLW1hY2hpbmUtJChDT05GSUdfQVJDSF9aWU5R KSAgICAgICAgICAgIDo9IHp5bnEKPiArbWFjaGluZS0kKENPTkZJR19BUkNIX1ZJUlQpICAgICAg ICAgICAgOj0gdmlydAo+Cj4KPiAtIyBCb2FyZCBkaXJlY3RvcnkgbmFtZS4gIFRoaXMgbGlzdCBp cyBzb3J0ZWQgYWxwaGFudW1lcmljYWxseQo+IC0jIGJ5IENPTkZJR18qIG1hY3JvIG5hbWUuCj4g LSMKPiAtIyBETyBOT1QgQUREIE5FVyBFTlRSSUVTIFRPIFRISVMgTElTVCEKPiAtIyBBZGQgdG8g YXJjaC9hcm0vYm9hcmRzL01ha2VmaWxlIGluc3RlYWQuCj4gLSMKPiAtIyBUaGVzZSBhcmUgaGVy ZSBvbmx5IGJlY2F1c2UgdGhleSBoYXZlIGEgYm9hcmQgc3BlY2lmaWMgY29uZmlnLmguCj4gLSMg VE9ETzogR2V0IHJpZCBvZiBib2FyZCBzcGVjaWZpYyBjb25maWcuaCBhbmQgbW92ZSB0aGVzZSB0 bwo+IC0jIGFyY2gvYXJtL2JvYXJkcy9NYWtlZmlsZSBhc3dlbGwuCj4gLWJvYXJkLSQoQ09ORklH X01BQ0hfQTlNMjQxMCkgICAgICAgICAgICAgICAgICAgKz0gYTltMjQxMAo+IC1ib2FyZC0kKENP TkZJR19NQUNIX0E5TTI0NDApICAgICAgICAgICAgICAgICAgICs9IGE5bTI0NDAKPiAtYm9hcmQt JChDT05GSUdfTUFDSF9BVDkxUk05MjAwRUspICAgICAgICAgICAgICArPSBhdDkxcm05MjAwZWsK PiAtYm9hcmQtJChDT05GSUdfTUFDSF9NSU5JMjQ0MCkgICAgICAgICAgICAgICAgICArPSBmcmll bmRseWFybS1taW5pMjQ0MAo+IC1ib2FyZC0kKENPTkZJR19NQUNIX01JTkk2NDEwKSAgICAgICAg ICAgICAgICAgICs9IGZyaWVuZGx5YXJtLW1pbmk2NDEwCj4gLWJvYXJkLSQoQ09ORklHX01BQ0hf UENNMDI3KSAgICAgICAgICAgICAgICAgICAgKz0gcGh5dGVjLXBoeWNvcmUtcHhhMjcwCj4gLWJv YXJkLSQoQ09ORklHX01BQ0hfVElOWTIxMCkgICAgICAgICAgICAgICAgICAgKz0gZnJpZW5kbHlh cm0tdGlueTIxMAo+IC1ib2FyZC0kKENPTkZJR19NQUNIX1RJTlk2NDEwKSAgICAgICAgICAgICAg ICAgICs9IGZyaWVuZGx5YXJtLXRpbnk2NDEwCj4gLQo+ICBtYWNoZGlycyA6PSAkKHBhdHN1YnN0 ICUsYXJjaC9hcm0vbWFjaC0lLywkKG1hY2hpbmUteSkpCj4KPiAgaWZlcSAoJChLQlVJTERfU1JD KSwpCj4gQEAgLTE0MSwxMDYgKzc2LDcgQEAgZW5kaWYKPiAgYmFyZWJveC5zNXA6ICQoS0JVSUxE X0JJTkFSWSkKPiAgICAgICAgICQoUSlzY3JpcHRzL3M1cF9ja3N1bSAkPCBiYXJlYm94LnM1cAo+ Cj4gLWlmZXEgKCQoQ09ORklHX0FSQ0hfUzVQQ3h4KSx5KQo+IC1LQlVJTERfSU1BR0UgOj0gYmFy ZWJveC5zNXAKPiAtZW5kaWYKPiAtCj4gLXF1aWV0X2NtZF9tbG8gPz0gSUZUICAgICAkQAo+IC0g ICAgICAgY21kX21sbyA/PSBzY3JpcHRzL29tYXBfc2lnbkdQIC1vIE1MTyAtbCAkKFRFWFRfQkFT RSkgLWMgJDwKPiAtCj4gLU1MTzogJChLQlVJTERfQklOQVJZKQo+IC0gICAgICAgJChjYWxsIGlm X2NoYW5nZWQsbWxvKQo+IC0KPiAtaWZlcSAoJChDT05GSUdfT01BUF9CVUlMRF9JRlQpLHkpCj4g LUtCVUlMRF9JTUFHRSA6PSBNTE8KPiAtZW5kaWYKPiAtCj4gLXF1aWV0X2NtZF9kYXZpbmNpX3Vi bF9pbWFnZSA9IFVCTC1JTUcgJEAKPiAtICAgICAgY21kX2RhdmluY2lfdWJsX2ltYWdlID0gc2V0 IC1lOyBcCj4gLSAgICAgICAgc2NyaXB0cy9ta3VibGhlYWRlciAkPCA+ICRAOyBcCj4gLSAgICAg ICAgY2F0ICQ8ID4+ICRACj4gLQo+IC1iYXJlYm94LnVibDogJChLQlVJTERfQklOQVJZKSBGT1JD RQo+IC0gICAgICAgJChjYWxsIGlmX2NoYW5nZWQsZGF2aW5jaV91YmxfaW1hZ2UpCj4gLQo+IC1p ZmVxICgkKENPTkZJR19BUkNIX0RBVklOQ0kpLHkpCj4gLUtCVUlMRF9JTUFHRSA6PSBiYXJlYm94 LnVibAo+IC1lbmRpZgo+IC0KPiAtcXVpZXRfY21kX2FtMzV4eF9zcGlfaW1hZ2UgPSBTUEktSU1H ICRACj4gLSAgICAgIGNtZF9hbTM1eHhfc3BpX2ltYWdlID0gc2NyaXB0cy9tay1vbWFwLWltYWdl IC1zIC1hICQoVEVYVF9CQVNFKSAkPCA+ICRACj4gLQo+IC1iYXJlYm94LnNwaTogJChLQlVJTERf QklOQVJZKSBGT1JDRQo+IC0gICAgICAgJChjYWxsIGlmX2NoYW5nZWQsYW0zNXh4X3NwaV9pbWFn ZSkKPiAtCj4gLU1MTy5zcGk6IE1MTyBGT1JDRQo+IC0gICAgICAgJChjYWxsIGlmX2NoYW5nZWQs YW0zNXh4X3NwaV9pbWFnZSkKPiAtCj4gLWlmZXEgKCQoQ09ORklHX09NQVBfQlVJTERfU1BJKSx5 KQo+IC1LQlVJTERfSU1BR0UgOj0gTUxPLnNwaQo+IC1lbmRpZgo+IC0KPiAtcXVpZXRfY21kX3p5 bnFfaW1hZ2UgPSBaWU5RLUlNRyAkQAo+IC0gICAgICBjbWRfenlucV9pbWFnZSA9IHNjcmlwdHMv enlucV9ta2ltYWdlICQ8ICRACj4gLQo+IC1iYXJlYm94Lnp5bnE6ICQoS0JVSUxEX0JJTkFSWSkg Rk9SQ0UKPiAtICAgICAgICQoY2FsbCBpZl9jaGFuZ2VkLHp5bnFfaW1hZ2UpCj4gLQo+IC1pZmVx ICgkKG1hY2hpbmUteSksenlucSkKPiAtS0JVSUxEX0lNQUdFIDo9IGJhcmVib3guenlucQo+IC1l bmRpZgo+IC0KPiAtcXVpZXRfY21kX2Nhbm9uX2ExMTAwX2ltYWdlID0gREQgICAgICAkQAo+IC0g ICAgICBjbWRfY2Fub25fYTExMDBfaW1hZ2UgPSBzY3JpcHRzL2Nhbm9uLWExMTAwLWltYWdlICQ8 ICRAIHx8IFwKPiAtICAgICAgIGVjaG8gIldBUk5JTkc6IENvdWxkbid0IGNyZWF0ZSBDYW5vbiBB MTEwMCBpbWFnZSBkdWUgdG8gcHJldmlvdXMgZXJyb3JzLiIKPiAtYmFyZWJveC5jYW5vbi1hMTEw MC5iaW46ICQoS0JVSUxEX0JJTkFSWSkgRk9SQ0UKPiAtICAgICAgICQoY2FsbCBpZl9jaGFuZ2Vk LGNhbm9uX2ExMTAwX2ltYWdlKQo+IC0KPiAtaWZlcSAoJChDT05GSUdfTUFDSF9DQU5PTl9BMTEw MCkseSkKPiAtS0JVSUxEX0lNQUdFIDo9IGJhcmVib3guY2Fub24tYTExMDAuYmluCj4gLWVuZGlm Cj4gLQo+IC1LV0JJTUFHRV9PUFRTID0gXAo+IC0gICAgICAgLWMgLWkgJChzcmN0cmVlKS8kKEJP QVJEKS9rd2JpbWFnZS5jZmcgLWQgJChURVhUX0JBU0UpIC1lICQoVEVYVF9CQVNFKQo+IC0KPiAt cXVpZXRfY21kX2t3YmltYWdlID0gS1dCICAgICAkQAo+IC0gICAgICBjbWRfa3diaW1hZ2UgPSBz Y3JpcHRzL2t3YmltYWdlIC1wICQ8ICQoS1dCSU1BR0VfT1BUUykgLW8gJEAgfHwgXAo+IC0gICAg ICAgZWNobyAiV0FSTklORzogQ291bGRuJ3QgY3JlYXRlIEtXQiBpbWFnZSBkdWUgdG8gcHJldmlv dXMgZXJyb3JzLiIKPiAtCj4gLXF1aWV0X2NtZF9rd2JpbWFnZV91YXJ0ID0gS1dCVUFSVCAkQAo+ IC0gICAgICBjbWRfa3diaW1hZ2VfdWFydCA9IHNjcmlwdHMva3diaW1hZ2UgLW0gdWFydCAtcCAk PCAkKEtXQklNQUdFX09QVFMpIC1vICRAIHx8IFwKPiAtICAgICAgIGVjaG8gIldBUk5JTkcgQ291 bGRuJ3QgY3JlYXRlIEtXQiBpbWFnZSBkdWUgdG8gcHJldmlvdXMgZXJyb3JzLiIKPiAtCj4gLWJh cmVib3gua3diOiAkKEtCVUlMRF9CSU5BUlkpIEZPUkNFCj4gLSAgICAgICAkKGNhbGwgaWZfY2hh bmdlZCxrd2JpbWFnZSkKPiAtCj4gLWJhcmVib3gua3didWFydDogJChLQlVJTERfQklOQVJZKSBG T1JDRQo+IC0gICAgICAgJChjYWxsIGlmX2NoYW5nZWQsa3diaW1hZ2VfdWFydCkKPiAtCj4gLWlm ZXEgKCQoQ09ORklHX0FSQ0hfTVZFQlUpLHkpCj4gLUtCVUlMRF9JTUFHRSAgOj0gYmFyZWJveC5r d2IgYmFyZWJveC5rd2J1YXJ0Cj4gLWVuZGlmCj4gLQo+IC1iYXJlYm94LmlteGltZzogJChLQlVJ TERfQklOQVJZKSBGT1JDRQo+IC0gICAgICAgJChjYWxsIGlmX2NoYW5nZWQsaW14X2ltYWdlLCQo Q0ZHXyQoQEYpKSwpCj4gLQo+ICBib2FyZGRpciA9ICQoc3JjdHJlZSkvYXJjaC9hcm0vYm9hcmRz Cj4gLWlteGNmZy0kKENPTkZJR19NQUNIX0ZSRUVTQ0FMRV9NWDUzX1NNRCkgKz0gJChib2FyZGRp cikvZnJlZXNjYWxlLW14NTMtc21kL2ZsYXNoLWhlYWRlci5pbXhjZmcKPiAtaW14Y2ZnLSQoQ09O RklHX01BQ0hfQ0NNWDUxKSArPSAkKGJvYXJkZGlyKS9jY3hteDUxL2ZsYXNoLWhlYWRlci5pbXhj ZmcKPiAtaW14Y2ZnLSQoQ09ORklHX01BQ0hfVFg1MSkgKz0gJChib2FyZGRpcikva2Fyby10eDUx L2ZsYXNoLWhlYWRlci1rYXJvLXR4NTEuaW14Y2ZnCj4gLWlteGNmZy0kKENPTkZJR19NQUNIX0dV Rl9WSU5DRUxMKSArPSAkKGJvYXJkZGlyKS9ndWYtdmluY2VsbC9mbGFzaC1oZWFkZXIuaW14Y2Zn Cj4gLWlteGNmZy0kKENPTkZJR19NQUNIX0VVS1JFQV9DUFVJTVg1MVNEKSArPSAkKGJvYXJkZGly KS9ldWtyZWFfY3B1aW14NTEvZmxhc2gtaGVhZGVyLmlteGNmZwo+IC1pbXhjZmctJChDT05GSUdf TUFDSF9GUkVFU0NBTEVfTVgyNV8zU1RBQ0spICs9ICQoYm9hcmRkaXIpL2ZyZWVzY2FsZS1teDI1 LTNkcy9mbGFzaC1oZWFkZXIuaW14Y2ZnCj4gLWlteGNmZy0kKENPTkZJR19NQUNIX0ZSRUVTQ0FM RV9NWDM1XzNTVEFDSykgKz0gJChib2FyZGRpcikvZnJlZXNjYWxlLW14MzUtM2RzL2ZsYXNoLWhl YWRlci5pbXhjZmcKPiAtaW14Y2ZnLSQoQ09ORklHX01BQ0hfVFFNQTUzKSArPSAkKGJvYXJkZGly KS90cW1hNTMvZmxhc2gtaGVhZGVyLmlteGNmZwo+IC1pbXhjZmctJChDT05GSUdfTUFDSF9FVUtS RUFfQ1BVSU1YMjUpICs9ICQoYm9hcmRkaXIpL2V1a3JlYV9jcHVpbXgyNS9mbGFzaC1oZWFkZXIu aW14Y2ZnCj4gLWlteGNmZy0kKENPTkZJR19NQUNIX0VVS1JFQV9DUFVJTVgzNSkgKz0gJChib2Fy ZGRpcikvZXVrcmVhX2NwdWlteDM1L2ZsYXNoLWhlYWRlci5pbXhjZmcKPiAtaW14Y2ZnLSQoQ09O RklHX1RYNTNfUkVWXzEwMTEpICs9ICQoYm9hcmRkaXIpL2thcm8tdHg1My9mbGFzaC1oZWFkZXIt dHg1My1yZXYxMDExLmlteGNmZwo+IC1pbXhjZmctJChDT05GSUdfVFg1M19SRVZfWFgzMCkgKz0g JChib2FyZGRpcikva2Fyby10eDUzL2ZsYXNoLWhlYWRlci10eDUzLXJldnh4MzAuaW14Y2ZnCj4g LWlmbmVxICgkKGlteGNmZy15KSwpCj4gLUNGR19iYXJlYm94LmlteGltZyA6PSAkKGlteGNmZy15 KQo+IC1LQlVJTERfSU1BR0UgIDo9IGJhcmVib3guaW14aW1nCj4gLWVuZGlmCj4KPiAgcGJsIDo9 IGFyY2gvYXJtL3BibAo+ICAkKHBibCkvemJhcmVib3guUyAkKHBibCkvemJhcmVib3guYmluICQo cGJsKS96YmFyZWJveDogYmFyZWJveC5iaW4gRk9SQ0UKPiBAQCAtMjQ5LDE5ICs4NSw4IEBAICQo cGJsKS96YmFyZWJveC5TICQocGJsKS96YmFyZWJveC5iaW4gJChwYmwpL3piYXJlYm94OiBiYXJl Ym94LmJpbiBGT1JDRQo+ICBhcmNoY2xlYW46Cj4gICAgICAgICAkKE1BS0UpICQoY2xlYW4pPSQo cGJsKQo+Cj4gLWR0cyA6PSBhcmNoL2FybS9kdHMKPiAtCj4gLSUuZHRiOiBzY3JpcHRzCj4gLSAg ICAgICAkKFEpJChNQUtFKSAkKGJ1aWxkKT0kKGR0cykgJChkdHMpLyRACj4gLQo+ICBLQlVJTERf SU1BR0UgPz0gJChLQlVJTERfQklOQVJZKQo+Cj4gLWFyY2hwcmVwYXJlOiBtYWtldG9vbHMKPiAt bWFrZXRvb2xzOgo+IC0gICAgICAgJChRKSQoTUFLRSkgJChidWlsZCk9YXJjaC9hcm0vdG9vbHMg aW5jbHVkZS9nZW5lcmF0ZWQvbWFjaC10eXBlcy5oCj4gLQo+IC1QSE9OWSArPSBtYWtldG9vbHMK PiAtCj4gIGlmbmVxICgkKGJvYXJkLXkpLCkKPiAgQk9BUkQgOj0gYXJjaC9hcm0vYm9hcmRzLyQo Ym9hcmQteSkvCj4gIGVsc2UKPiBAQCAtMjc2LDkgKzEwMSw2IEBAIGVuZGlmCj4KPiAgY29tbW9u LXkgKz0gJChCT0FSRCkgYXJjaC9hcm0vYm9hcmRzLyAkKE1BQ0gpCj4gIGNvbW1vbi15ICs9IGFy Y2gvYXJtL2xpYi8gYXJjaC9hcm0vY3B1Lwo+IC1jb21tb24teSArPSBhcmNoL2FybS9jcnlwdG8v Cj4gLQo+IC1jb21tb24tJChDT05GSUdfT0ZUUkVFKSArPSBhcmNoL2FybS9kdHMvCj4KPiAgbGRz LXkgIDo9IGFyY2gvYXJtL2xpYi9iYXJlYm94Lmxkcwo+Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJt L2JvYXJkcy9NYWtlZmlsZSBiL2FyY2gvYXJtL2JvYXJkcy9NYWtlZmlsZQo+IGluZGV4IDkyNDFi NjYuLmY5Y2IwNTkgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vYm9hcmRzL01ha2VmaWxlCj4gKysr IGIvYXJjaC9hcm0vYm9hcmRzL01ha2VmaWxlCj4gQEAgLTEzNSwzICsxMzUsNCBAQCBvYmotJChD T05GSUdfTUFDSF9WSVJUMlJFQUwpICAgICAgICAgICAgICAgICAgICAgICAgKz0gdmlydDJyZWFs Lwo+ICBvYmotJChDT05GSUdfTUFDSF9aRURCT0FSRCkgICAgICAgICAgICAgICAgICAgICs9IGF2 bmV0LXplZGJvYXJkLwo+ICBvYmotJChDT05GSUdfTUFDSF9aWUxPTklURSkgICAgICAgICAgICAg ICAgICAgICs9IHp5bG9uaXRlLwo+ICBvYmotJChDT05GSUdfTUFDSF9WQVJJU0NJVEVfTVg2KSAg ICAgICAgICAgICAgICs9IHZhcmlzY2l0ZS1teDYvCj4gK29iai0kKENPTkZJR19NQUNIX1ZJUlQp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArPSB2aXJ0Lwo+IGRpZmYgLS1naXQgYS9h cmNoL2FybS9ib2FyZHMvdmlydC9LY29uZmlnIGIvYXJjaC9hcm0vYm9hcmRzL3ZpcnQvS2NvbmZp Zwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uYjIzOTEyNwo+IC0tLSAv ZGV2L251bGwKPiArKysgYi9hcmNoL2FybS9ib2FyZHMvdmlydC9LY29uZmlnCj4gQEAgLTAsMCAr MSw4IEBACj4gKwo+ICtpZiBNQUNIX1ZJUlQKPiArCj4gK2NvbmZpZyBBUkNIX1RFWFRfQkFTRQo+ ICsgICAgICAgaGV4Cj4gKyAgICAgICBkZWZhdWx0IDB4NDAwMDAwMDAKPiArCj4gK2VuZGlmCj4g ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy92aXJ0L01ha2VmaWxlIGIvYXJjaC9hcm0vYm9h cmRzL3ZpcnQvTWFrZWZpbGUKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAu LmViMDcyYzAKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYXJjaC9hcm0vYm9hcmRzL3ZpcnQvTWFr ZWZpbGUKPiBAQCAtMCwwICsxIEBACj4gK29iai15ICs9IGluaXQubwo+IGRpZmYgLS1naXQgYS9h cmNoL2FybS9ib2FyZHMvdmlydC9lbnYvYmluL191cGRhdGUgYi9hcmNoL2FybS9ib2FyZHMvdmly dC9lbnYvYmluL191cGRhdGUKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAu LjAxNGJjZTMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYXJjaC9hcm0vYm9hcmRzL3ZpcnQvZW52 L2Jpbi9fdXBkYXRlCj4gQEAgLTAsMCArMSwzNiBAQAo+ICsjIS9iaW4vc2gKPiArCj4gK2lmIFsg LXogIiRwYXJ0IiAtbyAteiAiJGltYWdlIiBdOyB0aGVuCj4gKyAgICAgICBlY2hvICJkZWZpbmUg XCRwYXJ0IGFuZCBcJGltYWdlIgo+ICsgICAgICAgZXhpdCAxCj4gK2ZpCj4gKwo+ICtpZiBbICEg LWUgIiRwYXJ0IiBdOyB0aGVuCj4gKyAgICAgICBlY2hvICJQYXJ0aXRpb24gJHBhcnQgZG9lcyBu b3QgZXhpc3QiCj4gKyAgICAgICBleGl0IDEKPiArZmkKPiArCj4gK2lmIFsgJCMgPSAxIF07IHRo ZW4KPiArICAgICAgIGltYWdlPSQxCj4gK2ZpCj4gKwo+ICtpZiBbIHgkaXAgPSB4ZGhjcCBdOyB0 aGVuCj4gKyAgICAgICBkaGNwCj4gK2ZpCj4gKwo+ICtwaW5nICRldGgwLnNlcnZlcmlwCj4gK2lm IFsgJD8gLW5lIDAgXSA7IHRoZW4KPiArICAgICAgIGVjaG8gInVwZGF0ZSBhYm9ydGVkIgo+ICsg ICAgICAgZXhpdCAxCj4gK2ZpCj4gKwo+ICt1bnByb3RlY3QgJHBhcnQKPiArCj4gK2VjaG8KPiAr ZWNobyAiZXJhc2luZyBwYXJ0aXRpb24gJHBhcnQiCj4gK2VyYXNlICRwYXJ0Cj4gKwo+ICtlY2hv Cj4gK2VjaG8gImZsYXNoaW5nICRpbWFnZSB0byAkcGFydCIKPiArZWNobwo+ICt0ZnRwICRpbWFn ZSAkcGFydAo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvdmlydC9lbnYvYmluL2Jvb3Qg Yi9hcmNoL2FybS9ib2FyZHMvdmlydC9lbnYvYmluL2Jvb3QKPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDAwMDAwMDAuLjM4NTlkYzEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYXJjaC9h cm0vYm9hcmRzL3ZpcnQvZW52L2Jpbi9ib290Cj4gQEAgLTAsMCArMSwzOCBAQAo+ICsjIS9iaW4v c2gKPiArCj4gKy4gL2Vudi9jb25maWcKPiArCj4gK2lmIFsgeCQxID0geGZsYXNoIF07IHRoZW4K PiArICAgICAgIHJvb3Q9Zmxhc2gKPiArICAgICAgIGtlcm5lbD1mbGFzaAo+ICtmaQo+ICsKPiAr aWYgWyB4JDEgPSB4bmV0IF07IHRoZW4KPiArICAgICAgIHJvb3Q9bmV0Cj4gKyAgICAgICBrZXJu ZWw9bmV0Cj4gK2ZpCj4gKwo+ICtpZiBbIHgkaXAgPSB4ZGhjcCBdOyB0aGVuCj4gKyAgICAgICBi b290YXJncz0iJGJvb3RhcmdzIGlwPWRoY3AiCj4gK2Vsc2UKPiArICAgICAgIGJvb3RhcmdzPSIk Ym9vdGFyZ3MgaXA9JGV0aDAuaXBhZGRyOiRldGgwLnNlcnZlcmlwOiRldGgwLmdhdGV3YXk6JGV0 aDAubmV0bWFzazo6OiIKPiArZmkKPiArCj4gK2lmIFsgeCRyb290ID0geGZsYXNoIF07IHRoZW4K PiArICAgICAgIGJvb3RhcmdzPSIkYm9vdGFyZ3Mgcm9vdD0kcm9vdHBhcnQgcm9vdGZzdHlwZT1q ZmZzMiIKPiArZWxzZQo+ICsgICAgICAgYm9vdGFyZ3M9IiRib290YXJncyByb290PS9kZXYvbmZz IG5mc3Jvb3Q9JGV0aDAuc2VydmVyaXA6JG5mc3Jvb3QsdjMsdGNwIgo+ICtmaQo+ICsKPiArYm9v dGFyZ3M9IiRib290YXJncyBtdGRwYXJ0cz1waHlzbWFwLWZsYXNoLjA6JG10ZHBhcnRzIgo+ICsK PiAraWYgWyAka2VybmVsID0gbmV0IF07IHRoZW4KPiArICAgICAgIGlmIFsgeCRpcCA9IHhkaGNw IF07IHRoZW4KPiArICAgICAgICAgICAgICAgZGhjcAo+ICsgICAgICAgZmkKPiArICAgICAgIHRm dHAgJHVpbWFnZSB1SW1hZ2UgfHwgZXhpdCAxCj4gKyAgICAgICBib290bSB1SW1hZ2UKPiArZWxz ZQo+ICsgICAgICAgYm9vdG0gL2Rldi9ub3IwLmtlcm5lbAo+ICtmaQo+ICsKPiBkaWZmIC0tZ2l0 IGEvYXJjaC9hcm0vYm9hcmRzL3ZpcnQvZW52L2Jpbi9pbml0IGIvYXJjaC9hcm0vYm9hcmRzL3Zp cnQvZW52L2Jpbi9pbml0Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi40 OGUyMTM5Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FyY2gvYXJtL2JvYXJkcy92aXJ0L2Vudi9i aW4vaW5pdAo+IEBAIC0wLDAgKzEsMjAgQEAKPiArIyEvYmluL3NoCj4gKwo+ICtQQVRIPS9lbnYv YmluCj4gK2V4cG9ydCBQQVRICj4gKwo+ICsuIC9lbnYvY29uZmlnCj4gK2FkZHBhcnQgL2Rldi9u b3IwICRtdGRwYXJ0cwo+ICsKPiArZWNobwo+ICtlY2hvIC1uICJIaXQgYW55IGtleSB0byBzdG9w IGF1dG9ib290OiAiCj4gK3RpbWVvdXQgLWEgJGF1dG9ib290X3RpbWVvdXQKPiAraWYgWyAkPyAh PSAwIF07IHRoZW4KPiArICAgICAgIGVjaG8KPiArICAgICAgIGVjaG8gInR5cGUgdXBkYXRlX2tl cm5lbCBbPGltYWdlbmFtZT5dIHRvIHVwZGF0ZSBrZXJuZWwgaW50byBmbGFzaCIKPiArICAgICAg IGVjaG8gInR5cGUgdWRhdGVfcm9vdCBbPGltYWdlbmFtZT5dIHRvIHVwZGF0ZSByb290ZnMgaW50 byBmbGFzaCIKPiArICAgICAgIGVjaG8KPiArICAgICAgIGV4aXQKPiArZmkKPiArCj4gK2Jvb3QK PiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9h cmRzL3ZpcnQvZW52L2Jpbi91cGRhdGVfa2VybmVsIGIvYXJjaC9hcm0vYm9hcmRzL3ZpcnQvZW52 L2Jpbi91cGRhdGVfa2VybmVsCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAw Li4xYWQ5NWZjCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FyY2gvYXJtL2JvYXJkcy92aXJ0L2Vu di9iaW4vdXBkYXRlX2tlcm5lbAo+IEBAIC0wLDAgKzEsOCBAQAo+ICsjIS9iaW4vc2gKPiArCj4g Ky4gL2Vudi9jb25maWcKPiArCj4gK2ltYWdlPSR1aW1hZ2UKPiArcGFydD0vZGV2L25vcjAua2Vy bmVsCj4gKwo+ICsuIC9lbnYvYmluL191cGRhdGUgJDEKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v Ym9hcmRzL3ZpcnQvZW52L2Jpbi91cGRhdGVfcm9vdCBiL2FyY2gvYXJtL2JvYXJkcy92aXJ0L2Vu di9iaW4vdXBkYXRlX3Jvb3QKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAu LmI3NTdhNWIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYXJjaC9hcm0vYm9hcmRzL3ZpcnQvZW52 L2Jpbi91cGRhdGVfcm9vdAo+IEBAIC0wLDAgKzEsOCBAQAo+ICsjIS9iaW4vc2gKPiArCj4gKy4g L2Vudi9jb25maWcKPiArCj4gK2ltYWdlPSRqZmZzMgo+ICtwYXJ0PS9kZXYvbm9yMC5yb290Cj4g Kwo+ICsuIC9lbnYvYmluL191cGRhdGUgJDEKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRz L3ZpcnQvZW52L2NvbmZpZyBiL2FyY2gvYXJtL2JvYXJkcy92aXJ0L2Vudi9jb25maWcKPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjZjMGFiZGEKPiAtLS0gL2Rldi9udWxs Cj4gKysrIGIvYXJjaC9hcm0vYm9hcmRzL3ZpcnQvZW52L2NvbmZpZwo+IEBAIC0wLDAgKzEsMzgg QEAKPiArIyEvYmluL3NoCj4gKwo+ICsjIHVzZSAnZGhjcCcgdG8gZG8gZGhjcCBpbiBiYXJlYm94 IGFuZCBpbiBrZXJuZWwKPiArIyB1c2UgJ25vbmUnIGlmIHlvdSB3YW50IHRvIHNraXAga2VybmVs IGlwIGF1dG9jb25maWd1cmF0aW9uCj4gK2lwPWRoY3AKPiArZ2xvYmFsLmRoY3AudmVuZG9yX2lk PWJhcmVib3gtJHtnbG9iYWwuaG9zdG5hbWV9Cj4gKwo+ICsjIG9yIHNldCB5b3VyIG5ldHdvcmtp bmcgcGFyYW1ldGVycyBoZXJlCj4gKyNldGgwLmlwYWRkcj1hLmIuYy5kCj4gKyNldGgwLm5ldG1h c2s9YS5iLmMuZAo+ICsjZXRoMC5nYXRld2F5PWEuYi5jLmQKPiArI2V0aDAuc2VydmVyaXA9YS5i LmMuZAo+ICsKPiArIyBjYW4gYmUgZWl0aGVyICduZnMnLCAndGZ0cCcgb3IgJ25vcicKPiAra2Vy bmVsX2xvYz10ZnRwCj4gKyMgY2FuIGJlIGVpdGhlciAnbmV0JywgJ25vcicgb3IgJ2luaXRyZCcK PiArcm9vdGZzX2xvYz1pbml0cmQKPiArCj4gKyMgY2FuIGJlIGVpdGhlciAnamZmczInIG9yICd1 YmlmcycKPiArcm9vdGZzX3R5cGU9dWJpZnMKPiArcm9vdGZzaW1hZ2U9cm9vdC4kcm9vdGZzX3R5 cGUKPiArCj4gK2tlcm5lbGltYWdlPXpJbWFnZQo+ICsja2VybmVsaW1hZ2U9dUltYWdlCj4gKyNr ZXJuZWxpbWFnZT1JbWFnZQo+ICsja2VybmVsaW1hZ2U9SW1hZ2UubHpvCj4gKwo+ICtuZnNyb290 PSIkZXRoMC5zZXJ2ZXJpcDovb3B0L3dvcmsvYnVzeWJveC9hcm05L3Jvb3Rmc19hcm0iCj4gKwo+ ICtub3JfcGFydHM9IjI1NmsoYmFyZWJveClybyw2NGsoYmFyZWJveGVudiksMTUzNmsoa2VybmVs KSwtKHJvb3QpIgo+ICtyb290ZnNfbXRkYmxvY2tfbm9yPTMKPiArCj4gK2F1dG9ib290X3RpbWVv dXQ9Mwo+ICsKPiArYm9vdGFyZ3M9ImNvbnNvbGU9dHR5QU1BMCwxMTUyMDBuOCBDT05TT0xFPS9k ZXYvdHR5QU1BMCIKPiArCj4gKyMgc2V0IGEgZmFuY3kgcHJvbXB0IChpZiBzdXBwb3J0IGlzIGNv bXBpbGVkIGluKQo+ICtQUzE9IlxlWzE7MzFtW2JhcmVib3hAXGhdOlx3XGVbMG1cbiMgIgo+IGRp ZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvdmlydC9lbnYvaW5pdC9tdGRwYXJ0cy1ub3IgYi9h cmNoL2FybS9ib2FyZHMvdmlydC9lbnYvaW5pdC9tdGRwYXJ0cy1ub3IKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjMzMDc1OTYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv YXJjaC9hcm0vYm9hcmRzL3ZpcnQvZW52L2luaXQvbXRkcGFydHMtbm9yCj4gQEAgLTAsMCArMSwx MSBAQAo+ICsjIS9iaW4vc2gKPiArCj4gK2lmIFsgIiQxIiA9IG1lbnUgXTsgdGhlbgo+ICsgICAg ICAgIGluaXQtbWVudS1hZGQtZW50cnkgIiQwIiAiTk9SIHBhcnRpdGlvbnMiCj4gKyAgICAgICAg ZXhpdAo+ICtmaQo+ICsKPiArbXRkcGFydHM9IjIwNDhrQDAobm9yMC5iYXJlYm94KXJvLDI1Nmso bm9yMC5iYXJlYm94LWVudiksMjU2ayhub3IwLmJhcmVib3gtbG9nbyksMjU2ayhub3IwLmJhcmVi b3gtbG9nbzIpLDUxMjBrKG5vcjAua2VybmVsKSwtKG5vcjAucm9vdCkiCj4gK2tlcm5lbG5hbWU9 ImFwcGxpY2F0aW9uLWZsYXNoIgo+ICsKPiArbXRkcGFydHMtYWRkIC1kIG5vcjAgLWsgJHtrZXJu ZWxuYW1lfSAtcCAke210ZHBhcnRzfQo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvdmly dC9pbml0LmMgYi9hcmNoL2FybS9ib2FyZHMvdmlydC9pbml0LmMKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAuLjk2MjYwNjcKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYXJj aC9hcm0vYm9hcmRzL3ZpcnQvaW5pdC5jCj4gQEAgLTAsMCArMSw2NyBAQAo+ICsvKgo+ICsgKiBD b3B5cmlnaHQgKEMpIDIwMTYgUmFwaGHDq2wgUG9nZ2kgPHBvZ2dpLnJhcGhAZ21haWwuY29tPgo+ ICsgKgo+ICsgKiBHUEx2MiBvbmx5Cj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGNvbW1vbi5oPgo+ ICsjaW5jbHVkZSA8aW5pdC5oPgo+ICsjaW5jbHVkZSA8YXNtL2FybWxpbnV4Lmg+Cj4gKyNpbmNs dWRlIDxhc20vc3lzdGVtX2luZm8uaD4KPiArI2luY2x1ZGUgPG1hY2gvZGV2aWNlcy5oPgo+ICsj aW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NpemVzLmg+Cj4gKyNp bmNsdWRlIDxpby5oPgo+ICsjaW5jbHVkZSA8Z2xvYmFsdmFyLmg+Cj4gKyNpbmNsdWRlIDxhc20v bW11Lmg+Cj4gKwo+ICtzdGF0aWMgaW50IHZpcnRfbWVtX2luaXQodm9pZCkKPiArewo+ICsgICAg ICAgdmlydF9hZGRfZGRyYW0oU1pfNTEyTSk7Cj4gKwo+ICsgICAgICAgYWRkX2NmaV9mbGFzaF9k ZXZpY2UoMCwgMHgwMDAwMDAwMCwgU1pfNE0sIDApOwo+ICsKPiArICAgICAgIGRldmZzX2FkZF9w YXJ0aXRpb24oIm5vcjAiLCAweDAwMDAwLCAweDQwMDAwLCBERVZGU19QQVJUSVRJT05fRklYRUQs ICJzZWxmMCIpOwo+ICsgICAgICAgZGV2ZnNfYWRkX3BhcnRpdGlvbigibm9yMCIsIDB4NDAwMDAs IDB4MjAwMDAsIERFVkZTX1BBUlRJVElPTl9GSVhFRCwgImVudjAiKTsKPiArCj4gKyAgICAgICBy ZXR1cm4gMDsKPiArfQo+ICttZW1faW5pdGNhbGwodmlydF9tZW1faW5pdCk7Cj4gKwo+ICtzdGF0 aWMgaW50IHZpcnRfY29uc29sZV9pbml0KHZvaWQpCj4gK3sKPiArICAgICAgIHZpcnRfcmVnaXN0 ZXJfdWFydCgwKTsKPiArCj4gKyAgICAgICByZXR1cm4gMDsKPiArfQo+ICtjb25zb2xlX2luaXRj YWxsKHZpcnRfY29uc29sZV9pbml0KTsKPiArCj4gK3N0YXRpYyBpbnQgdmlydF9jb3JlX2luaXQo dm9pZCkKPiArewo+ICsgICAgICAgY2hhciAqaG9zdG5hbWUgPSAidmlydCI7Cj4gKwo+ICsgICAg ICAgaWYgKGNwdV9pc19jb3J0ZXhfYTUzKCkpCj4gKyAgICAgICAgICAgICAgIGhvc3RuYW1lID0g InZpcnQtYTUzIjsKPiArICAgICAgIGVsc2UgaWYgKGNwdV9pc19jb3J0ZXhfYTU3KCkpCj4gKyAg ICAgICAgICAgICAgIGhvc3RuYW1lID0gInZpcnQtYTU3IjsKPiArCj4gKyAgICAgICBiYXJlYm94 X3NldF9tb2RlbCgiQVJNIFFFTVUgdmlydCIpOwo+ICsgICAgICAgYmFyZWJveF9zZXRfaG9zdG5h bWUoaG9zdG5hbWUpOwo+ICsKPiArICAgICAgIHJldHVybiAwOwo+ICt9Cj4gK3Bvc3Rjb3JlX2lu aXRjYWxsKHZpcnRfY29yZV9pbml0KTsKPiArCj4gK3N0YXRpYyBpbnQgdmlydF9tbXVfZW5hYmxl KHZvaWQpCj4gK3sKPiArICAgICAgIC8qIE1hcHBpbmcgYWxsIHBlcmlwaCByYW5nZSAqLwo+ICsg ICAgICAgYXJjaF9yZW1hcF9yYW5nZSgweDA5MDAwMDAwLCAweDAxMDAwMDAwLCBQTURfU0VDVF9E RUZfQ0FDSEVEKTsKPiArCj4gKyAgICAgICAvKiBNYXBwaW5nIGFsbCBmbGFzaCByYW5nZSAqLwo+ ICsgICAgICAgYXJjaF9yZW1hcF9yYW5nZSgweDAwMDAwMDAwLCAweDA4MDAwMDAwLCBQTURfU0VD VF9ERUZfQ0FDSEVEKTsKPiArCj4gKyAgICAgICBtbXVfZW5hYmxlKCk7Cj4gKwo+ICsgICAgICAg cmV0dXJuIDA7Cj4gK30KPiArcG9zdG1tdV9pbml0Y2FsbCh2aXJ0X21tdV9lbmFibGUpOwo+IGRp ZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3ZpcnRfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29u Zmlncy92aXJ0X2RlZmNvbmZpZwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAw MC4uYWU5MjhhMgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9hcmNoL2FybS9jb25maWdzL3ZpcnRf ZGVmY29uZmlnCj4gQEAgLTAsMCArMSw1MyBAQAo+ICtDT05GSUdfQUVBQkk9eQo+ICtDT05GSUdf QVJNX09QVElNWkVEX1NUUklOR19GVU5DVElPTlM9eQo+ICtDT05GSUdfQkFSRUJPWF9NQVhfSU1B R0VfU0laRT0weDA1MDAwMDAwCj4gK0NPTkZJR19CQVJFQk9YX01BWF9CQVJFX0lOSVRfU0laRT0w eDAxMDAwMDAwCj4gK0NPTkZJR19NRU1PUllfTEFZT1VUX0ZJWEVEPXkKPiArQ09ORklHX1NUQUNL X0JBU0U9MHg2MDAwMDAwMAo+ICtDT05GSUdfTUFMTE9DX0JBU0U9MHg1MDAwMDAwMAo+ICtDT05G SUdfUFJPTVBUPSJ2aXJ0OiAiCj4gK0NPTkZJR19IVVNIX0ZBTkNZX1BST01QVD15Cj4gK0NPTkZJ R19DTURMSU5FX0VESVRJTkc9eQo+ICtDT05GSUdfQVVUT19DT01QTEVURT15Cj4gK0NPTkZJR19N RU5VPXkKPiArQ09ORklHX1BBU1NXT1JEPXkKPiArQ09ORklHX1BBUlRJVElPTj15Cj4gK0NPTkZJ R19ERUZBVUxUX0VOVklST05NRU5UX0dFTkVSSUNfTkVXPXkKPiArQ09ORklHX0RFRkFVTFRfRU5W SVJPTk1FTlRfUEFUSD0iYXJjaC9hcm0vYm9hcmRzL3ZpcnQvZW52Igo+ICtDT05GSUdfREVCVUdf SU5GTz15Cj4gKyMgQ09ORklHX0NNRF9BUk1fQ1BVSU5GTyBpcyBub3Qgc2V0Cj4gK0NPTkZJR19M T05HSEVMUD15Cj4gKyMgQ09ORklHX0NNRF9CT09UTSBpcyBub3Qgc2V0Cj4gKyMgQ09ORklHX0NN RF9CT09UVSBpcyBub3Qgc2V0Cj4gKyMgQ09ORklHX0NNRF9NT1VOVCBpcyBub3Qgc2V0Cj4gKyMg Q09ORklHX0NNRF9VTU9VTlQgaXMgbm90IHNldAo+ICsjIENPTkZJR19DTURfQ0FUIGlzIG5vdCBz ZXQKPiArIyBDT05GSUdfQ01EX0NEIGlzIG5vdCBzZXQKPiArIyBDT05GSUdfQ01EX0NQIGlzIG5v dCBzZXQKPiArIyBDT05GSUdfQ01EX0xTIGlzIG5vdCBzZXQKPiArIyBDT05GSUdfQ01EX01LRElS IGlzIG5vdCBzZXQKPiArIyBDT05GSUdfQ01EX1BXRCBpcyBub3Qgc2V0Cj4gKyMgQ09ORklHX0NN RF9STSBpcyBub3Qgc2V0Cj4gKyMgQ09ORklHX0NNRF9STURJUiBpcyBub3Qgc2V0Cj4gKyMgQ09O RklHX0NNRF9GQUxTRSBpcyBub3Qgc2V0Cj4gKyMgQ09ORklHX0NNRF9URVNUIGlzIG5vdCBzZXQK PiArIyBDT05GSUdfQ01EX1RSVUUgaXMgbm90IHNldAo+ICsjIENPTkZJR19DTURfQ0xFQVIgaXMg bm90IHNldAo+ICsjIENPTkZJR19DTURfRUNITyBpcyBub3Qgc2V0Cj4gK0NPTkZJR19DTURfQ1JD PXkKPiArQ09ORklHX0NNRF9DUkNfQ01QPXkKPiArIyBDT05GSUdfQ01EX01EIGlzIG5vdCBzZXQK PiArIyBDT05GSUdfQ01EX01FTUNNUCBpcyBub3Qgc2V0Cj4gKyMgQ09ORklHX0NNRF9NRU1DUFkg aXMgbm90IHNldAo+ICsjIENPTkZJR19DTURfTUVNU0VUIGlzIG5vdCBzZXQKPiArIyBDT05GSUdf Q01EX01XIGlzIG5vdCBzZXQKPiArQ09ORklHX1NFUklBTF9BTUJBX1BMMDExPXkKPiArIyBDT05G SUdfU1BJIGlzIG5vdCBzZXQKPiArQ09ORklHX01URD15Cj4gK0NPTkZJR19EUklWRVJfQ0ZJPXkK PiArQ09ORklHX0RSSVZFUl9DRklfQkFOS19XSURUSF84PXkKPiArQ09ORklHX0NGSV9CVUZGRVJf V1JJVEU9eQo+ICtDT05GSUdfTkFORD15Cj4gKyMgQ09ORklHX0ZTX1JBTUZTIGlzIG5vdCBzZXQK PiArQ09ORklHX0RJR0VTVF9TSEExX0dFTkVSSUM9eQo+ICtDT05GSUdfRElHRVNUX1NIQTI1Nl9H RU5FUklDPXkKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY3B1L0tjb25maWcgYi9hcmNoL2FybS9j cHUvS2NvbmZpZwo+IGluZGV4IDRmNWQ5YjYuLjg2ZDY0YTQgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9h cm0vY3B1L0tjb25maWcKPiArKysgYi9hcmNoL2FybS9jcHUvS2NvbmZpZwo+IEBAIC0xLDYgKzEs NiBAQAo+ICBjb21tZW50ICJQcm9jZXNzb3IgVHlwZSIKPgo+IC1jb25maWcgQ1BVXzMyCj4gK2Nv bmZpZyBDUFVfNjQKPiAgICAgICAgIGJvb2wKPiAgICAgICAgIGRlZmF1bHQgeQo+Cj4gQEAgLTgs OTAgKzgsMTMgQEAgY29uZmlnIENQVV8zMgo+ICAjIHdoaWNoIENQVXMgd2Ugc3VwcG9ydCBpbiB0 aGUga2VybmVsIGltYWdlLCBhbmQgdGhlIGNvbXBpbGVyIGluc3RydWN0aW9uCj4gICMgb3B0aW1p c2VyIGJlaGF2aW91ci4KPgo+IC0jIEFSTTExNzYKPiAtY29uZmlnIENQVV9BUk0xMTc2Cj4gKyMg QVJNdjgKPiArY29uZmlnIENQVV9WOAo+ICAgICAgICAgYm9vbAo+IC0gICAgICAgc2VsZWN0IENQ VV9WNgo+ICsgICAgICAgc2VsZWN0IENQVV82NHY4Cj4gKyAgICAgICBzZWxlY3QgQ1BVX1NVUFBP UlRTXzY0QklUX0tFUk5FTAo+Cj4gLSMgQVJNOTIwVAo+IC1jb25maWcgQ1BVX0FSTTkyMFQKPiAt ICAgICAgIGJvb2wKPiAtICAgICAgIHNlbGVjdCBDUFVfMzJ2NFQKPiAtICAgICAgIGhlbHAKPiAt ICAgICAgICAgVGhlIEFSTTkyMFQgaXMgbGljZW5zZWQgdG8gYmUgcHJvZHVjZWQgYnkgbnVtZXJv dXMgdmVuZG9ycywKPiAtICAgICAgICAgYW5kIGlzIHVzZWQgaW4gdGhlIE1hdmVyaWNrIEVQOTMx MiBhbmQgdGhlIFNhbXN1bmcgUzNDMjQxMC4KPiAtCj4gLSAgICAgICAgIE1vcmUgaW5mb3JtYXRp b24gb24gdGhlIE1hdmVyaWNrIEVQOTMxMiBhdAo+IC0gICAgICAgICA8aHR0cDovL3d3dy5jaXJy dXMuY29tL2VuL3Byb2R1Y3RzL2VwOTMxMi5odG1sPi4KPiAtCj4gLSAgICAgICAgIFNheSBZIGlm IHlvdSB3YW50IHN1cHBvcnQgZm9yIHRoZSBBUk05MjBUIHByb2Nlc3Nvci4KPiAtICAgICAgICAg T3RoZXJ3aXNlLCBzYXkgTi4KPiAtCj4gLSMgQVJNOTI2VAo+IC1jb25maWcgQ1BVX0FSTTkyNlQK PiAtICAgICAgIGJvb2wKPiAtICAgICAgIHNlbGVjdCBDUFVfMzJ2NQo+IC0gICAgICAgaGVscAo+ IC0gICAgICAgICBUaGlzIGlzIGEgdmFyaWFudCBvZiB0aGUgQVJNOTIwLiBJdCBoYXMgc2xpZ2h0 bHkgZGlmZmVyZW50Cj4gLSAgICAgICAgIGluc3RydWN0aW9uIHNlcXVlbmNlcyBmb3IgY2FjaGUg YW5kIFRMQiBvcGVyYXRpb25zLiBDdXJpb3VzbHksCj4gLSAgICAgICAgIHRoZXJlIGlzIG5vIGRv Y3VtZW50YXRpb24gb24gaXQgYXQgdGhlIEFSTSBjb3Jwb3JhdGUgd2Vic2l0ZS4KPiAtCj4gLSAg ICAgICAgIFNheSBZIGlmIHlvdSB3YW50IHN1cHBvcnQgZm9yIHRoZSBBUk05MjZUIHByb2Nlc3Nv ci4KPiAtICAgICAgICAgT3RoZXJ3aXNlLCBzYXkgTi4KPiAtCj4gLSMgQVJNOTQ2RS1TCj4gLWNv bmZpZyBDUFVfQVJNOTQ2RQo+IC0gICAgICAgYm9vbAo+IC0gICAgICAgc2VsZWN0IENQVV8zMnY0 VAo+IC0gICAgICAgaGVscAo+IC0gICAgICAgICBBUk05NDZFLVMgaXMgYSBtZW1iZXIgb2YgdGhl IEFSTTlFLVMgZmFtaWx5IG9mIGhpZ2gtCj4gLSAgICAgICAgIHBlcmZvcm1hbmNlLCAzMi1iaXQg c3lzdGVtLW9uLWNoaXAgcHJvY2Vzc29yIHNvbHV0aW9ucy4KPiAtICAgICAgICAgVGhlIFRDTSBh bmQgQVJNdjVURSAzMi1iaXQgaW5zdHJ1Y3Rpb24gc2V0IGlzIHN1cHBvcnRlZC4KPiAtCj4gLSAg ICAgICAgIFNheSBZIGlmIHlvdSB3YW50IHN1cHBvcnQgZm9yIHRoZSBBUk05NDZFLVMgcHJvY2Vz c29yLgo+IC0gICAgICAgICBPdGhlcndpc2UsIHNheSBOLgo+IC0KPiAtIyBGZXJvY2Vvbgo+IC1j b25maWcgQ1BVX0ZFUk9DRU9OCj4gLSAgICAgICBib29sCj4gLSAgICAgICBzZWxlY3QgQ1BVXzMy djUKPiAtICAgICAgIGhlbHAKPiAtICAgICAgICAgVGhpcyBpcyBhIE1hcnZlbGwgaW1wbGVtZW50 YXRpb24gb2YgYW4gQVJNdjVURSBjb21wYXRpYmxlCj4gLSAgICAgICAgIEFSTSBjb3JlLCB1c2Vk IGluIHRoZSBNYXJ2ZWxsIEtpcmt3b29kIFNvQyBmYW1pbHkuCj4gLQo+IC0jIEFSTXY2Cj4gLWNv bmZpZyBDUFVfVjYKPiAtICAgICAgIGJvb2wKPiAtICAgICAgIHNlbGVjdCBDUFVfMzJ2Ngo+IC0K PiAtIyBBUk12Nwo+IC1jb25maWcgQ1BVX1Y3Cj4gLSAgICAgICBib29sCj4gLSAgICAgICBzZWxl Y3QgQ1BVXzMydjcKPiAtCj4gLWNvbmZpZyBDUFVfWFNDMwo+IC0gICAgICAgIGJvb2wKPiAtICAg ICAgICBzZWxlY3QgQ1BVXzMydjRUCj4gLSAgICAgICAgaGVscAo+IC0gICAgICAgICAgU2VsZWN0 IGNvZGUgc3BlY2lmaWMgdG8gUFhBM3h4IHZhcmlhbnRzCj4gLQo+IC0jIFhzY2FsZSBQWEEyNXgs IFBYQTI3eAo+IC1jb25maWcgQ1BVX1hTQ0FMRQo+IC0gICAgICAgYm9vbAo+IC0gICAgICAgc2Vs ZWN0IENQVV8zMnY0VAo+IC0KPiAtIyBGaWd1cmUgb3V0IHdoYXQgcHJvY2Vzc29yIGFyY2hpdGVj dHVyZSB2ZXJzaW9uIHdlIHNob3VsZCBiZSB1c2luZy4KPiAtIyBUaGlzIGRlZmluZXMgdGhlIGNv bXBpbGVyIGluc3RydWN0aW9uIHNldCB3aGljaCBkZXBlbmRzIG9uIHRoZSBtYWNoaW5lIHR5cGUu Cj4gLWNvbmZpZyBDUFVfMzJ2NFQKPiAtICAgICAgIGJvb2wKPiAtCj4gLWNvbmZpZyBDUFVfMzJ2 NQo+IC0gICAgICAgYm9vbAo+IC0KPiAtY29uZmlnIENQVV8zMnY2Cj4gLSAgICAgICBib29sCj4g LQo+IC1jb25maWcgQ1BVXzMydjcKPiArY29uZmlnIENQVV82NHY4Cj4gICAgICAgICBib29sCj4K PiAgY29tbWVudCAicHJvY2Vzc29yIGZlYXR1cmVzIgo+IEBAIC0xMTcsMTAgKzQwLDE1IEBAIGNv bmZpZyBCT09UX0VORElBTk5FU1NfU1dJVENICj4KPiAgICAgICAgICAgQ3VycmVudGx5IGltcGxl bWVudGVkIG9ubHkgYnkgImJvb3R6IiBjb21tYW5kLgo+Cj4gLWNvbmZpZyBBUkNIX0hBU19MMlgw Cj4gK2NvbmZpZyBTWVNfU1VQUE9SVFNfMzJCSVRfS0VSTkVMCj4gKyAgICAgICBib29sCj4gKwo+ ICtjb25maWcgU1lTX1NVUFBPUlRTXzY0QklUX0tFUk5FTAo+ICsgICAgICAgYm9vbAo+ICsKPiAr Y29uZmlnIENQVV9TVVBQT1JUU18zMkJJVF9LRVJORUwKPiAgICAgICAgIGJvb2wKPgo+IC1jb25m aWcgQ0FDSEVfTDJYMAo+IC0gICAgICAgYm9vbCAiRW5hYmxlIEwyeDAgUHJpbWVDZWxsIgo+IC0g ICAgICAgZGVwZW5kcyBvbiBNTVUgJiYgQVJDSF9IQVNfTDJYMAo+ICtjb25maWcgQ1BVX1NVUFBP UlRTXzY0QklUX0tFUk5FTAo+ICsgICAgICAgYm9vbAo+Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJt L2NwdS9NYWtlZmlsZSBiL2FyY2gvYXJtL2NwdS9NYWtlZmlsZQo+IGluZGV4IDg1NGRmNjBlLi5m ZTZlN2FmIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL2NwdS9NYWtlZmlsZQo+ICsrKyBiL2FyY2gv YXJtL2NwdS9NYWtlZmlsZQo+IEBAIC0xLDM4ICsxLDI1IEBACj4gIG9iai15ICs9IGNwdS5vCj4g IG9iai0kKENPTkZJR19BUk1fRVhDRVBUSU9OUykgKz0gZXhjZXB0aW9ucy5vCj4gIG9iai0kKENP TkZJR19BUk1fRVhDRVBUSU9OUykgKz0gaW50ZXJydXB0cy5vCj4gLW9iai15ICs9IHN0YXJ0Lm8g c2V0dXBjLm8gZW50cnkubwo+ICtvYmoteSArPSBzdGFydC5vIGVudHJ5Lm8KPgo+ICAjCj4gICMg QW55IHZhcmlhbnRzIGNhbiBiZSBjYWxsZWQgYXMgc3RhcnQtYXJteHl6LlMKPiAgIwo+ICBvYmot JChDT05GSUdfQ01EX0FSTV9DUFVJTkZPKSArPSBjcHVpbmZvLm8KPiAgb2JqLSQoQ09ORklHX0NN RF9BUk1fTU1VSU5GTykgKz0gbW11aW5mby5vCj4gLW9iai0kKENPTkZJR19PRkRFVklDRSkgKz0g ZHRiLm8KPiAtb2JqLSQoQ09ORklHX01NVSkgKz0gbW11Lm8gY2FjaGUubyBtbXUtZWFybHkubwo+ IC1wYmwtJChDT05GSUdfTU1VKSArPSBtbXUtZWFybHkubwo+ICtvYmotJChDT05GSUdfTU1VKSAr PSBtbXUubyBjYWNoZS5vCj4KPiAtaWZlcSAoJChDT05GSUdfTU1VKSwpCj4gLW9iai15ICs9IG5v LW1tdS5vCj4gLWVuZGlmCj4gLQo+IC1vYmotJChDT05GSUdfQ1BVXzMydjRUKSArPSBjYWNoZS1h cm12NC5vCj4gLXBibC0kKENPTkZJR19DUFVfMzJ2NFQpICs9IGNhY2hlLWFybXY0Lm8KPiAtb2Jq LSQoQ09ORklHX0NQVV8zMnY1KSArPSBjYWNoZS1hcm12NS5vCj4gLXBibC0kKENPTkZJR19DUFVf MzJ2NSkgKz0gY2FjaGUtYXJtdjUubwo+IC1vYmotJChDT05GSUdfQ1BVXzMydjYpICs9IGNhY2hl LWFybXY2Lm8KPiAtcGJsLSQoQ09ORklHX0NQVV8zMnY2KSArPSBjYWNoZS1hcm12Ni5vCj4gLUFG TEFHU19jYWNoZS1hcm12Ny5vICAgICAgIDo9LVdhLC1tYXJjaD1hcm12Ny1hCj4gLW9iai0kKENP TkZJR19DUFVfMzJ2NykgKz0gY2FjaGUtYXJtdjcubwo+IC1BRkxBR1NfcGJsLWNhY2hlLWFybXY3 Lm8gICAgICAgOj0tV2EsLW1hcmNoPWFybXY3LWEKPiAtcGJsLSQoQ09ORklHX0NQVV8zMnY3KSAr PSBjYWNoZS1hcm12Ny5vCj4gLW9iai0kKENPTkZJR19DQUNIRV9MMlgwKSArPSBjYWNoZS1sMngw Lm8KPiArQUZMQUdTX2NhY2hlLWFybXY4Lm8gICAgICAgOj0tV2EsLW1hcmNoPWFybXY4LWEKPiAr b2JqLSQoQ09ORklHX0NQVV82NHY4KSArPSBjYWNoZS1hcm12OC5vCj4gK0FGTEFHU19wYmwtY2Fj aGUtYXJtdjgubyAgICAgICA6PS1XYSwtbWFyY2g9YXJtdjgtYQo+ICtwYmwtJChDT05GSUdfQ1BV XzY0djgpICs9IGNhY2hlLWFybXY4Lm8KPgo+ICBwYmwteSArPSBzZXR1cGMubyBlbnRyeS5vCj4g IHBibC0kKENPTkZJR19QQkxfU0lOR0xFX0lNQUdFKSArPSBzdGFydC1wYmwubwo+ICBwYmwtJChD T05GSUdfUEJMX01VTFRJX0lNQUdFUykgKz0gdW5jb21wcmVzcy5vCj4KPiAtb2JqLXkgKz0gY29t bW9uLm8gY2FjaGUubwo+IC1wYmwteSArPSBjb21tb24ubyBjYWNoZS5vCj4gK29iai15ICs9IGNh Y2hlLm8KPiArcGJsLXkgKz0gY2FjaGUubwo+Cj4gIGx3bC15ICs9IGxvd2xldmVsLm8KPiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vY3B1L2NhY2hlLWFybXY4LlMgYi9hcmNoL2FybS9jcHUvY2FjaGUt YXJtdjguUwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uODJiMmY4MQo+ IC0tLSAvZGV2L251bGwKPiArKysgYi9hcmNoL2FybS9jcHUvY2FjaGUtYXJtdjguUwo+IEBAIC0w LDAgKzEsMTY4IEBACj4gKy8qCj4gKyAqIChDKSBDb3B5cmlnaHQgMjAxMwo+ICsgKiBEYXZpZCBG ZW5nIDxmZW5naHVhQHBoeXRpdW0uY29tLmNuPgo+ICsgKgo+ICsgKiBUaGlzIGZpbGUgaXMgYmFz ZWQgb24gc2FtcGxlIGNvZGUgZnJvbSBBUk12OCBBUk0uCj4gKyAqCj4gKyAqIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiAgICBHUEwtMi4wKwo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxjb25maWcu aD4KPiArI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KPiArI2luY2x1ZGUgPGluaXQuaD4KPiAr Cj4gKy8qCj4gKyAqIHZvaWQgdjhfZmx1c2hfZGNhY2hlX2xldmVsKGxldmVsKQo+ICsgKgo+ICsg KiBjbGVhbiBhbmQgaW52YWxpZGF0ZSBvbmUgbGV2ZWwgY2FjaGUuCj4gKyAqCj4gKyAqIHgwOiBj YWNoZSBsZXZlbAo+ICsgKiB4MTogMCBmbHVzaCAmIGludmFsaWRhdGUsIDEgaW52YWxpZGF0ZSBv bmx5Cj4gKyAqIHgyfng5OiBjbG9iYmVyZWQKPiArICovCj4gKy5zZWN0aW9uIC50ZXh0LnY4X2Zs dXNoX2RjYWNoZV9sZXZlbAo+ICtFTlRSWSh2OF9mbHVzaF9kY2FjaGVfbGV2ZWwpCj4gKyAgICAg ICBsc2wgICAgIHgxMiwgeDAsICMxCj4gKyAgICAgICBtc3IgICAgIGNzc2Vscl9lbDEsIHgxMiAg ICAgICAgIC8qIHNlbGVjdCBjYWNoZSBsZXZlbCAqLwo+ICsgICAgICAgaXNiICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiBzeW5jIGNoYW5nZSBvZiBjc3NpZHJfZWwxICovCj4gKyAgICAg ICBtcnMgICAgIHg2LCBjY3NpZHJfZWwxICAgICAgICAgIC8qIHJlYWQgdGhlIG5ldyBjc3NpZHJf ZWwxICovCj4gKyAgICAgICBhbmQgICAgIHgyLCB4NiwgIzcgICAgICAgICAgICAgIC8qIHgyIDwt IGxvZzIoY2FjaGUgbGluZSBzaXplKS00ICovCj4gKyAgICAgICBhZGQgICAgIHgyLCB4MiwgIzQg ICAgICAgICAgICAgIC8qIHgyIDwtIGxvZzIoY2FjaGUgbGluZSBzaXplKSAqLwo+ICsgICAgICAg bW92ICAgICB4MywgIzB4M2ZmCj4gKyAgICAgICBhbmQgICAgIHgzLCB4MywgeDYsIGxzciAjMyAg ICAgIC8qIHgzIDwtIG1heCBudW1iZXIgb2YgI3dheXMgKi8KPiArICAgICAgIGNseiAgICAgdzUs IHczICAgICAgICAgICAgICAgICAgLyogYml0IHBvc2l0aW9uIG9mICN3YXlzICovCj4gKyAgICAg ICBtb3YgICAgIHg0LCAjMHg3ZmZmCj4gKyAgICAgICBhbmQgICAgIHg0LCB4NCwgeDYsIGxzciAj MTMgICAgIC8qIHg0IDwtIG1heCBudW1iZXIgb2YgI3NldHMgKi8KPiArICAgICAgIC8qIHgxMiA8 LSBjYWNoZSBsZXZlbCA8PCAxICovCj4gKyAgICAgICAvKiB4MiA8LSBsaW5lIGxlbmd0aCBvZmZz ZXQgKi8KPiArICAgICAgIC8qIHgzIDwtIG51bWJlciBvZiBjYWNoZSB3YXlzIC0gMSAqLwo+ICsg ICAgICAgLyogeDQgPC0gbnVtYmVyIG9mIGNhY2hlIHNldHMgLSAxICovCj4gKyAgICAgICAvKiB4 NSA8LSBiaXQgcG9zaXRpb24gb2YgI3dheXMgKi8KPiArCj4gK2xvb3Bfc2V0Ogo+ICsgICAgICAg bW92ICAgICB4NiwgeDMgICAgICAgICAgICAgICAgICAvKiB4NiA8LSB3b3JraW5nIGNvcHkgb2Yg I3dheXMgKi8KPiArbG9vcF93YXk6Cj4gKyAgICAgICBsc2wgICAgIHg3LCB4NiwgeDUKPiArICAg ICAgIG9yciAgICAgeDksIHgxMiwgeDcgICAgICAgICAgICAgLyogbWFwIHdheSBhbmQgbGV2ZWwg dG8gY2lzdyB2YWx1ZSAqLwo+ICsgICAgICAgbHNsICAgICB4NywgeDQsIHgyCj4gKyAgICAgICBv cnIgICAgIHg5LCB4OSwgeDcgICAgICAgICAgICAgIC8qIG1hcCBzZXQgbnVtYmVyIHRvIGNpc3cg dmFsdWUgKi8KPiArICAgICAgIHRieiAgICAgdzEsICMwLCAxZgo+ICsgICAgICAgZGMgICAgICBp c3csIHg5Cj4gKyAgICAgICBiICAgICAgIDJmCj4gKzE6ICAgICBkYyAgICAgIGNpc3csIHg5ICAg ICAgICAgICAgICAgIC8qIGNsZWFuICYgaW52YWxpZGF0ZSBieSBzZXQvd2F5ICovCj4gKzI6ICAg ICBzdWJzICAgIHg2LCB4NiwgIzEgICAgICAgICAgICAgIC8qIGRlY3JlbWVudCB0aGUgd2F5ICov Cj4gKyAgICAgICBiLmdlICAgIGxvb3Bfd2F5Cj4gKyAgICAgICBzdWJzICAgIHg0LCB4NCwgIzEg ICAgICAgICAgICAgIC8qIGRlY3JlbWVudCB0aGUgc2V0ICovCj4gKyAgICAgICBiLmdlICAgIGxv b3Bfc2V0Cj4gKwo+ICsgICAgICAgcmV0Cj4gK0VORFBST0ModjhfZmx1c2hfZGNhY2hlX2xldmVs KQo+ICsKPiArLyoKPiArICogdm9pZCB2OF9mbHVzaF9kY2FjaGVfYWxsKGludCBpbnZhbGlkYXRl X29ubHkpCj4gKyAqCj4gKyAqIHgwOiAwIGZsdXNoICYgaW52YWxpZGF0ZSwgMSBpbnZhbGlkYXRl IG9ubHkKPiArICoKPiArICogY2xlYW4gYW5kIGludmFsaWRhdGUgYWxsIGRhdGEgY2FjaGUgYnkg U0VUL1dBWS4KPiArICovCj4gKy5zZWN0aW9uIC50ZXh0LnY4X2RjYWNoZV9hbGwKPiArRU5UUlko djhfZGNhY2hlX2FsbCkKPiArICAgICAgIG1vdiAgICAgeDEsIHgwCj4gKyAgICAgICBkc2IgICAg IHN5Cj4gKyAgICAgICBtcnMgICAgIHgxMCwgY2xpZHJfZWwxICAgICAgICAgIC8qIHJlYWQgY2xp ZHJfZWwxICovCj4gKyAgICAgICBsc3IgICAgIHgxMSwgeDEwLCAjMjQKPiArICAgICAgIGFuZCAg ICAgeDExLCB4MTEsICMweDcgICAgICAgICAgLyogeDExIDwtIGxvYyAqLwo+ICsgICAgICAgY2J6 ICAgICB4MTEsIGZpbmlzaGVkICAgICAgICAgICAvKiBpZiBsb2MgaXMgMCwgZXhpdCAqLwo+ICsg ICAgICAgbW92ICAgICB4MTUsIHgzMAo+ICsgICAgICAgbW92ICAgICB4MCwgIzAgICAgICAgICAg ICAgICAgICAvKiBzdGFydCBmbHVzaCBhdCBjYWNoZSBsZXZlbCAwICovCj4gKyAgICAgICAvKiB4 MCAgPC0gY2FjaGUgbGV2ZWwgKi8KPiArICAgICAgIC8qIHgxMCA8LSBjbGlkcl9lbDEgKi8KPiAr ICAgICAgIC8qIHgxMSA8LSBsb2MgKi8KPiArICAgICAgIC8qIHgxNSA8LSByZXR1cm4gYWRkcmVz cyAqLwo+ICsKPiArbG9vcF9sZXZlbDoKPiArICAgICAgIGxzbCAgICAgeDEyLCB4MCwgIzEKPiAr ICAgICAgIGFkZCAgICAgeDEyLCB4MTIsIHgwICAgICAgICAgICAgLyogeDAgPC0gdHJpcGxlZCBj YWNoZSBsZXZlbCAqLwo+ICsgICAgICAgbHNyICAgICB4MTIsIHgxMCwgeDEyCj4gKyAgICAgICBh bmQgICAgIHgxMiwgeDEyLCAjNyAgICAgICAgICAgIC8qIHgxMiA8LSBjYWNoZSB0eXBlICovCj4g KyAgICAgICBjbXAgICAgIHgxMiwgIzIKPiArICAgICAgIGIubHQgICAgc2tpcCAgICAgICAgICAg ICAgICAgICAgLyogc2tpcCBpZiBubyBjYWNoZSBvciBpY2FjaGUgKi8KPiArICAgICAgIGJsICAg ICAgdjhfZmx1c2hfZGNhY2hlX2xldmVsICAgLyogeDEgPSAwIGZsdXNoLCAxIGludmFsaWRhdGUg Ki8KPiArc2tpcDoKPiArICAgICAgIGFkZCAgICAgeDAsIHgwLCAjMSAgICAgICAgICAgICAgLyog aW5jcmVtZW50IGNhY2hlIGxldmVsICovCj4gKyAgICAgICBjbXAgICAgIHgxMSwgeDAKPiArICAg ICAgIGIuZ3QgICAgbG9vcF9sZXZlbAo+ICsKPiArICAgICAgIG1vdiAgICAgeDAsICMwCj4gKyAg ICAgICBtc3IgICAgIGNzc2Vscl9lbDEsIHgwICAgICAgICAgIC8qIHJlc3RvcmUgY3NzZWxyX2Vs MSAqLwo+ICsgICAgICAgZHNiICAgICBzeQo+ICsgICAgICAgaXNiCj4gKyAgICAgICBtb3YgICAg IHgzMCwgeDE1Cj4gKwo+ICtmaW5pc2hlZDoKPiArICAgICAgIHJldAo+ICtFTkRQUk9DKHY4X2Rj YWNoZV9hbGwpCj4gKwo+ICsuc2VjdGlvbiAudGV4dC52OF9mbHVzaF9kY2FjaGVfYWxsCj4gK0VO VFJZKHY4X2ZsdXNoX2RjYWNoZV9hbGwpCj4gKyAgICAgICBtb3YgICAgIHgxNiwgeDMwCj4gKyAg ICAgICBtb3YgICAgIHgwLCAjMAo+ICsgICAgICAgYmwgICAgICB2OF9kY2FjaGVfYWxsCj4gKyAg ICAgICBtb3YgICAgIHgzMCwgeDE2Cj4gKyAgICAgICByZXQKPiArRU5EUFJPQyh2OF9mbHVzaF9k Y2FjaGVfYWxsKQo+ICsKPiArLnNlY3Rpb24gLnRleHQudjhfaW52YWxpZGF0ZV9kY2FjaGVfYWxs Cj4gK0VOVFJZKHY4X2ludmFsaWRhdGVfZGNhY2hlX2FsbCkKPiArICAgICAgIG1vdiAgICAgeDE2 LCB4MzAKPiArICAgICAgIG1vdiAgICAgeDAsICMweDEKPiArICAgICAgIGJsICAgICAgdjhfZGNh Y2hlX2FsbAo+ICsgICAgICAgbW92ICAgICB4MzAsIHgxNgo+ICsgICAgICAgcmV0Cj4gK0VORFBS T0ModjhfaW52YWxpZGF0ZV9kY2FjaGVfYWxsKQo+ICsKPiArLyoKPiArICogdm9pZCB2OF9mbHVz aF9kY2FjaGVfcmFuZ2Uoc3RhcnQsIGVuZCkKPiArICoKPiArICogY2xlYW4gJiBpbnZhbGlkYXRl IGRhdGEgY2FjaGUgaW4gdGhlIHJhbmdlCj4gKyAqCj4gKyAqIHgwOiBzdGFydCBhZGRyZXNzCj4g KyAqIHgxOiBlbmQgYWRkcmVzcwo+ICsgKi8KPiArLnNlY3Rpb24gLnRleHQudjhfZmx1c2hfZGNh Y2hlX3JhbmdlCj4gK0VOVFJZKHY4X2ZsdXNoX2RjYWNoZV9yYW5nZSkKPiArICAgICAgIG1ycyAg ICAgeDMsIGN0cl9lbDAKPiArICAgICAgIGxzciAgICAgeDMsIHgzLCAjMTYKPiArICAgICAgIGFu ZCAgICAgeDMsIHgzLCAjMHhmCj4gKyAgICAgICBtb3YgICAgIHgyLCAjNAo+ICsgICAgICAgbHNs ICAgICB4MiwgeDIsIHgzICAgICAgICAgICAgICAvKiBjYWNoZSBsaW5lIHNpemUgKi8KPiArCj4g KyAgICAgICAvKiB4MiA8LSBtaW5pbWFsIGNhY2hlIGxpbmUgc2l6ZSBpbiBjYWNoZSBzeXN0ZW0g Ki8KPiArICAgICAgIHN1YiAgICAgeDMsIHgyLCAjMQo+ICsgICAgICAgYmljICAgICB4MCwgeDAs IHgzCj4gKzE6ICAgICBkYyAgICAgIGNpdmFjLCB4MCAgICAgICAvKiBjbGVhbiAmIGludmFsaWRh dGUgZGF0YSBvciB1bmlmaWVkIGNhY2hlICovCj4gKyAgICAgICBhZGQgICAgIHgwLCB4MCwgeDIK PiArICAgICAgIGNtcCAgICAgeDAsIHgxCj4gKyAgICAgICBiLmxvICAgIDFiCj4gKyAgICAgICBk c2IgICAgIHN5Cj4gKyAgICAgICByZXQKPiArRU5EUFJPQyh2OF9mbHVzaF9kY2FjaGVfcmFuZ2Up Cj4gKwo+ICsvKgo+ICsgKiB2b2lkIHY4X2ludmFsaWRhdGVfaWNhY2hlX2FsbCh2b2lkKQo+ICsg Kgo+ICsgKiBpbnZhbGlkYXRlIGFsbCB0bGIgZW50cmllcy4KPiArICovCj4gKy5zZWN0aW9uIC50 ZXh0LnY4X2ludmFsaWRhdGVfaWNhY2hlX2FsbAo+ICtFTlRSWSh2OF9pbnZhbGlkYXRlX2ljYWNo ZV9hbGwpCj4gKyAgICAgICBpYyAgICAgIGlhbGx1aXMKPiArICAgICAgIGlzYiAgICAgc3kKPiAr ICAgICAgIHJldAo+ICtFTkRQUk9DKHY4X2ludmFsaWRhdGVfaWNhY2hlX2FsbCkKPiArCj4gKy5z ZWN0aW9uIC50ZXh0LnY4X2ZsdXNoX2wzX2NhY2hlCj4gK0VOVFJZKHY4X2ZsdXNoX2wzX2NhY2hl KQo+ICsgICAgICAgbW92ICAgICB4MCwgIzAgICAgICAgICAgICAgICAgICAvKiByZXR1cm4gc3Rh dHVzIGFzIHN1Y2Nlc3MgKi8KPiArICAgICAgIHJldAo+ICtFTkRQUk9DKHY4X2ZsdXNoX2wzX2Nh Y2hlKQo+ICsgICAgICAgLndlYWsgICB2OF9mbHVzaF9sM19jYWNoZQo+IGRpZmYgLS1naXQgYS9h cmNoL2FybS9jcHUvY2FjaGUuYyBiL2FyY2gvYXJtL2NwdS9jYWNoZS5jCj4gaW5kZXggMjdlYWQx Yy4uODQ2NWNmOSAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybS9jcHUvY2FjaGUuYwo+ICsrKyBiL2Fy Y2gvYXJtL2NwdS9jYWNoZS5jCj4gQEAgLTMyLDEwICszMiw3IEBAIHN0cnVjdCBjYWNoZV9mbnMg KmNhY2hlX2ZuczsKPiAgICAgICAgICAgICAgICAgLm1tdV9jYWNoZV9mbHVzaCA9IGFyY2gjI19t bXVfY2FjaGVfZmx1c2gsICAgICAgICAgICAgICAgICAgICAgIFwKPiAgICAgICAgIH07Cj4KPiAt REVGSU5FX0NQVV9GTlModjQpCj4gLURFRklORV9DUFVfRk5TKHY1KQo+IC1ERUZJTkVfQ1BVX0ZO Uyh2NikKPiAtREVGSU5FX0NQVV9GTlModjcpCj4gK0RFRklORV9DUFVfRk5TKHY4KQo+Cj4gIHZv aWQgX19kbWFfY2xlYW5fcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBl bmQpCj4gIHsKPiBAQCAtNzgsMjkgKzc1LDkgQEAgdm9pZCBfX21tdV9jYWNoZV9mbHVzaCh2b2lk KQo+ICBpbnQgYXJtX3NldF9jYWNoZV9mdW5jdGlvbnModm9pZCkKPiAgewo+ICAgICAgICAgc3dp dGNoIChjcHVfYXJjaGl0ZWN0dXJlKCkpIHsKPiAtI2lmZGVmIENPTkZJR19DUFVfMzJ2NFQKPiAt ICAgICAgIGNhc2UgQ1BVX0FSQ0hfQVJNdjRUOgo+IC0gICAgICAgICAgICAgICBjYWNoZV9mbnMg PSAmY2FjaGVfZm5zX2FybXY0Owo+ICsgICAgICAgY2FzZSBDUFVfQVJDSF9BUk12ODoKPiArICAg ICAgICAgICAgICAgY2FjaGVfZm5zID0gJmNhY2hlX2Zuc19hcm12ODsKPiAgICAgICAgICAgICAg ICAgYnJlYWs7Cj4gLSNlbmRpZgo+IC0jaWZkZWYgQ09ORklHX0NQVV8zMnY1Cj4gLSAgICAgICBj YXNlIENQVV9BUkNIX0FSTXY1Ogo+IC0gICAgICAgY2FzZSBDUFVfQVJDSF9BUk12NVQ6Cj4gLSAg ICAgICBjYXNlIENQVV9BUkNIX0FSTXY1VEU6Cj4gLSAgICAgICBjYXNlIENQVV9BUkNIX0FSTXY1 VEVKOgo+IC0gICAgICAgICAgICAgICBjYWNoZV9mbnMgPSAmY2FjaGVfZm5zX2FybXY1Owo+IC0g ICAgICAgICAgICAgICBicmVhazsKPiAtI2VuZGlmCj4gLSNpZmRlZiBDT05GSUdfQ1BVXzMydjYK PiAtICAgICAgIGNhc2UgQ1BVX0FSQ0hfQVJNdjY6Cj4gLSAgICAgICAgICAgICAgIGNhY2hlX2Zu cyA9ICZjYWNoZV9mbnNfYXJtdjY7Cj4gLSAgICAgICAgICAgICAgIGJyZWFrOwo+IC0jZW5kaWYK PiAtI2lmZGVmIENPTkZJR19DUFVfMzJ2Nwo+IC0gICAgICAgY2FzZSBDUFVfQVJDSF9BUk12NzoK PiAtICAgICAgICAgICAgICAgY2FjaGVfZm5zID0gJmNhY2hlX2Zuc19hcm12NzsKPiAtICAgICAg ICAgICAgICAgYnJlYWs7Cj4gLSNlbmRpZgo+ICAgICAgICAgZGVmYXVsdDoKPiAgICAgICAgICAg ICAgICAgd2hpbGUoMSk7Cj4gICAgICAgICB9Cj4gQEAgLTExNSw0OSArOTIsMTkgQEAgaW50IGFy bV9zZXRfY2FjaGVfZnVuY3Rpb25zKHZvaWQpCj4gIHZvaWQgYXJtX2Vhcmx5X21tdV9jYWNoZV9m bHVzaCh2b2lkKQo+ICB7Cj4gICAgICAgICBzd2l0Y2ggKGFybV9lYXJseV9nZXRfY3B1X2FyY2hp dGVjdHVyZSgpKSB7Cj4gLSNpZmRlZiBDT05GSUdfQ1BVXzMydjRUCj4gLSAgICAgICBjYXNlIENQ VV9BUkNIX0FSTXY0VDoKPiAtICAgICAgICAgICAgICAgdjRfbW11X2NhY2hlX2ZsdXNoKCk7Cj4g LSAgICAgICAgICAgICAgIHJldHVybjsKPiAtI2VuZGlmCj4gLSNpZmRlZiBDT05GSUdfQ1BVXzMy djUKPiAtICAgICAgIGNhc2UgQ1BVX0FSQ0hfQVJNdjU6Cj4gLSAgICAgICBjYXNlIENQVV9BUkNI X0FSTXY1VDoKPiAtICAgICAgIGNhc2UgQ1BVX0FSQ0hfQVJNdjVURToKPiAtICAgICAgIGNhc2Ug Q1BVX0FSQ0hfQVJNdjVURUo6Cj4gLSAgICAgICAgICAgICAgIHY1X21tdV9jYWNoZV9mbHVzaCgp Owo+ICsgICAgICAgY2FzZSBDUFVfQVJDSF9BUk12ODoKPiArLy8gICAgICAgICAgICAgdjdfbW11 X2NhY2hlX2ZsdXNoKCk7Cj4gICAgICAgICAgICAgICAgIHJldHVybjsKPiAtI2VuZGlmCj4gLSNp ZmRlZiBDT05GSUdfQ1BVXzMydjYKPiAtICAgICAgIGNhc2UgQ1BVX0FSQ0hfQVJNdjY6Cj4gLSAg ICAgICAgICAgICAgIHY2X21tdV9jYWNoZV9mbHVzaCgpOwo+IC0gICAgICAgICAgICAgICByZXR1 cm47Cj4gLSNlbmRpZgo+IC0jaWZkZWYgQ09ORklHX0NQVV8zMnY3Cj4gLSAgICAgICBjYXNlIENQ VV9BUkNIX0FSTXY3Ogo+IC0gICAgICAgICAgICAgICB2N19tbXVfY2FjaGVfZmx1c2goKTsKPiAt ICAgICAgICAgICAgICAgcmV0dXJuOwo+IC0jZW5kaWYKPiAgICAgICAgIH0KPiAgfQo+Cj4gLXZv aWQgdjdfbW11X2NhY2hlX2ludmFsaWRhdGUodm9pZCk7Cj4gKy8vdm9pZCB2N19tbXVfY2FjaGVf aW52YWxpZGF0ZSh2b2lkKTsKPgo+ICB2b2lkIGFybV9lYXJseV9tbXVfY2FjaGVfaW52YWxpZGF0 ZSh2b2lkKQo+ICB7Cj4gICAgICAgICBzd2l0Y2ggKGFybV9lYXJseV9nZXRfY3B1X2FyY2hpdGVj dHVyZSgpKSB7Cj4gLSAgICAgICBjYXNlIENQVV9BUkNIX0FSTXY0VDoKPiAtICAgICAgIGNhc2Ug Q1BVX0FSQ0hfQVJNdjU6Cj4gLSAgICAgICBjYXNlIENQVV9BUkNIX0FSTXY1VDoKPiAtICAgICAg IGNhc2UgQ1BVX0FSQ0hfQVJNdjVURToKPiAtICAgICAgIGNhc2UgQ1BVX0FSQ0hfQVJNdjVURUo6 Cj4gLSAgICAgICBjYXNlIENQVV9BUkNIX0FSTXY2Ogo+IC0gICAgICAgICAgICAgICBhc20gdm9s YXRpbGUoIm1jciBwMTUsIDAsICUwLCBjNywgYzYsIDBcbiIgOiA6ICJyIigwKSk7Cj4gLSAgICAg ICAgICAgICAgIHJldHVybjsKPiAtI2lmZGVmIENPTkZJR19DUFVfMzJ2Nwo+IC0gICAgICAgY2Fz ZSBDUFVfQVJDSF9BUk12NzoKPiAtICAgICAgICAgICAgICAgdjdfbW11X2NhY2hlX2ludmFsaWRh dGUoKTsKPiArICAgICAgIGNhc2UgQ1BVX0FSQ0hfQVJNdjg6Cj4gKy8vICAgICAgICAgICAgIHY3 X21tdV9jYWNoZV9pbnZhbGlkYXRlKCk7Cj4gICAgICAgICAgICAgICAgIHJldHVybjsKPiAtI2Vu ZGlmCj4gICAgICAgICB9Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY3B1L2NwdS5jIGIv YXJjaC9hcm0vY3B1L2NwdS5jCj4gaW5kZXggZWIxMjE2Ni4uMTljZDk0NCAxMDA2NDQKPiAtLS0g YS9hcmNoL2FybS9jcHUvY3B1LmMKPiArKysgYi9hcmNoL2FybS9jcHUvY3B1LmMKPiBAQCAtNDAs MTEgKzQwLDggQEAKPiAgICovCj4gIHZvaWQgaWNhY2hlX2VuYWJsZSh2b2lkKQo+ICB7Cj4gLSAg ICAgICB1MzIgcjsKPiAtCj4gLSAgICAgICByID0gZ2V0X2NyKCk7Cj4gLSAgICAgICByIHw9IENS X0k7Cj4gLSAgICAgICBzZXRfY3Iocik7Cj4gKyAgICAgICB2OF9pbnZhbGlkYXRlX2ljYWNoZV9h bGwoKTsKPiArICAgICAgIHNldF9zY3RscihnZXRfc2N0bHIoKSB8IENSX0kpOwo+ICB9Cj4KPiAg LyoqCj4gQEAgLTUyLDExICs0OSw3IEBAIHZvaWQgaWNhY2hlX2VuYWJsZSh2b2lkKQo+ICAgKi8K PiAgdm9pZCBpY2FjaGVfZGlzYWJsZSh2b2lkKQo+ICB7Cj4gLSAgICAgICB1MzIgcjsKPiAtCj4g LSAgICAgICByID0gZ2V0X2NyKCk7Cj4gLSAgICAgICByICY9IH5DUl9JOwo+IC0gICAgICAgc2V0 X2NyKHIpOwo+ICsgICAgICAgc2V0X3NjdGxyKGdldF9zY3RscigpICYgfkNSX0kpOwo+ICB9Cj4K PiAgLyoqCj4gQEAgLTY1LDI2ICs1OCw3IEBAIHZvaWQgaWNhY2hlX2Rpc2FibGUodm9pZCkKPiAg ICovCj4gIGludCBpY2FjaGVfc3RhdHVzKHZvaWQpCj4gIHsKPiAtICAgICAgIHJldHVybiAoZ2V0 X2NyICgpICYgQ1JfSSkgIT0gMDsKPiAtfQo+IC0KPiAtLyoKPiAtICogU29DIGxpa2UgdGhlIHV4 NTAwIGhhdmUgdGhlIGwyeDAgYWx3YXlzIGVuYWJsZQo+IC0gKiB3aXRoIG9yIHdpdGhvdXQgTU1V IGVuYWJsZQo+IC0gKi8KPiAtc3RydWN0IG91dGVyX2NhY2hlX2ZucyBvdXRlcl9jYWNoZTsKPiAt Cj4gLS8qCj4gLSAqIENsZWFuIGFuZCBpbnZhbGlkZSBjYWNoZXMsIGRpc2FibGUgTU1VCj4gLSAq Lwo+IC12b2lkIG1tdV9kaXNhYmxlKHZvaWQpCj4gLXsKPiAtICAgICAgIF9fbW11X2NhY2hlX2Zs dXNoKCk7Cj4gLSAgICAgICBpZiAob3V0ZXJfY2FjaGUuZGlzYWJsZSkgewo+IC0gICAgICAgICAg ICAgICBvdXRlcl9jYWNoZS5mbHVzaF9hbGwoKTsKPiAtICAgICAgICAgICAgICAgb3V0ZXJfY2Fj aGUuZGlzYWJsZSgpOwo+IC0gICAgICAgfQo+IC0gICAgICAgX19tbXVfY2FjaGVfb2ZmKCk7Cj4g KyAgICAgICByZXR1cm4gKGdldF9zY3RscigpICYgQ1JfSSkgIT0gMDsKPiAgfQo+Cj4gIC8qKgo+ IEBAIC05NiwxOCArNzAsOCBAQCB2b2lkIG1tdV9kaXNhYmxlKHZvaWQpCj4gICAqLwo+ICBzdGF0 aWMgdm9pZCBhcmNoX3NodXRkb3duKHZvaWQpCj4gIHsKPiAtICAgICAgIHVpbnQzMl90IHI7Cj4g LQo+ICAgICAgICAgbW11X2Rpc2FibGUoKTsKPiAgICAgICAgIGZsdXNoX2ljYWNoZSgpOwo+IC0g ICAgICAgLyoKPiAtICAgICAgICAqIGJhcmVib3ggbm9ybWFsbHkgZG9lcyBub3QgdXNlIGludGVy cnVwdHMsIGJ1dCBzb21lIGZ1bmN0aW9uYWxpdGllcwo+IC0gICAgICAgICogKGVnLiBPTUFQNF9V U0JCT09UKSByZXF1aXJlIHRoZW0gZW5hYmxlZC4gU28gYmUgc3VyZSBpbnRlcnJ1cHRzIGFyZQo+ IC0gICAgICAgICogZGlzYWJsZWQgYmVmb3JlIGV4aXRpbmcuCj4gLSAgICAgICAgKi8KPiAtICAg ICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJtcnMgJTAsIGNwc3IiIDogIj1yIihyKSk7Cj4gLSAg ICAgICByIHw9IFBTUl9JX0JJVDsKPiAtICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJtc3Ig Y3BzciwgJTAiIDogOiAiciIocikpOwo+ICB9Cj4gIGFyY2hzaHV0ZG93bl9leGl0Y2FsbChhcmNo X3NodXRkb3duKTsKPgo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9jcHUvY3B1aW5mby5jIGIvYXJj aC9hcm0vY3B1L2NwdWluZm8uYwo+IGluZGV4IDhiMjJlOWIuLjIzMDYxMDEgMTAwNjQ0Cj4gLS0t IGEvYXJjaC9hcm0vY3B1L2NwdWluZm8uYwo+ICsrKyBiL2FyY2gvYXJtL2NwdS9jcHVpbmZvLmMK PiBAQCAtMjEsMjEgKzIxLDEwIEBACj4gICNpbmNsdWRlIDxjb21wbGV0ZS5oPgo+Cj4gICNkZWZp bmUgQ1BVX0FSQ0hfVU5LTk9XTiAgICAgICAwCj4gLSNkZWZpbmUgQ1BVX0FSQ0hfQVJNdjMgICAg ICAgICAxCj4gLSNkZWZpbmUgQ1BVX0FSQ0hfQVJNdjQgICAgICAgICAyCj4gLSNkZWZpbmUgQ1BV X0FSQ0hfQVJNdjRUICAgICAgICAgICAgICAgIDMKPiAtI2RlZmluZSBDUFVfQVJDSF9BUk12NSAg ICAgICAgIDQKPiAtI2RlZmluZSBDUFVfQVJDSF9BUk12NVQgICAgICAgICAgICAgICAgNQo+IC0j ZGVmaW5lIENQVV9BUkNIX0FSTXY1VEUgICAgICAgNgo+IC0jZGVmaW5lIENQVV9BUkNIX0FSTXY1 VEVKICAgICAgNwo+IC0jZGVmaW5lIENQVV9BUkNIX0FSTXY2ICAgICAgICAgOAo+IC0jZGVmaW5l IENQVV9BUkNIX0FSTXY3ICAgICAgICAgOQo+IC0KPiAtI2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09S VEVYX0E1ICAgICAgMHhDMDUwCj4gLSNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRFWF9BNyAgICAg IDB4QzA3MAo+IC0jZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfQTggICAgICAweEMwODAKPiAt I2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09SVEVYX0E5ICAgICAgMHhDMDkwCj4gLSNkZWZpbmUgQVJN X0NQVV9QQVJUX0NPUlRFWF9BMTUgICAgIDB4QzBGMAo+ICsjZGVmaW5lIENQVV9BUkNIX0FSTXY4 ICAgICAgICAgMTAKPiArCj4gKyNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRFWF9BNTMgICAgICAg ICAgICAweEQwMzQKPiArI2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09SVEVYX0E1NyAgICAgICAgICAg IDB4RDA3MAo+Cj4gIHN0YXRpYyB2b2lkIGRlY29kZV9jYWNoZSh1bnNpZ25lZCBsb25nIHNpemUp Cj4gIHsKPiBAQCAtNjEsMjIgKzUwLDIyIEBAIHN0YXRpYyBpbnQgZG9fY3B1aW5mbyhpbnQgYXJn YywgY2hhciAqYXJndltdKQo+ICAgICAgICAgaW50IGNwdV9hcmNoOwo+Cj4gICAgICAgICBfX2Fz bV9fIF9fdm9sYXRpbGVfXygKPiAtICAgICAgICAgICAgICAgIm1yYyAgICBwMTUsIDAsICUwLCBj MCwgYzAsIDAgICBAIHJlYWQgY29udHJvbCByZWdcbiIKPiArICAgICAgICAgICAgICAgIm1ycyAg ICAlMCwgbWlkcl9lbDFcbiIKPiAgICAgICAgICAgICAgICAgOiAiPXIiIChtYWluaWQpCj4gICAg ICAgICAgICAgICAgIDoKPiAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7Cj4KPiAtICAgICAg IF9fYXNtX18gX192b2xhdGlsZV9fKAo+IC0gICAgICAgICAgICAgICAibXJjICAgIHAxNSwgMCwg JTAsIGMwLCBjMCwgMSAgIEAgcmVhZCBjb250cm9sIHJlZ1xuIgo+IC0gICAgICAgICAgICAgICA6 ICI9ciIgKGNhY2hlKQo+IC0gICAgICAgICAgICAgICA6Cj4gLSAgICAgICAgICAgICAgIDogIm1l bW9yeSIpOwo+IC0KPiAtICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKAo+IC0gICAgICAgICAg ICAgICAibXJjICAgIHAxNSwgMCwgJTAsIGMxLCBjMCwgMCAgIEAgcmVhZCBjb250cm9sIHJlZ1xu Igo+IC0gICAgICAgICAgICAgICAgICAgICAgIDogIj1yIiAoY3IpCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgOgo+IC0gICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOwo+ICsvLyAg ICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCj4gKy8vICAgICAgICAgICAgICJtcmMgICAgcDE1LCAw LCAlMCwgYzAsIGMwLCAxICAgQCByZWFkIGNvbnRyb2wgcmVnXG4iCj4gKy8vICAgICAgICAgICAg IDogIj1yIiAoY2FjaGUpCj4gKy8vICAgICAgICAgICAgIDoKPiArLy8gICAgICAgICAgICAgOiAi bWVtb3J5Iik7Cj4gKy8vCj4gKy8vICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKPiArLy8gICAg ICAgICAgICAgIm1yYyAgICBwMTUsIDAsICUwLCBjMSwgYzAsIDAgICBAIHJlYWQgY29udHJvbCBy ZWdcbiIKPiArLy8gICAgICAgICAgICAgICAgICAgICA6ICI9ciIgKGNyKQo+ICsvLyAgICAgICAg ICAgICAgICAgICAgIDoKPiArLy8gICAgICAgICAgICAgICAgICAgICA6ICJtZW1vcnkiKTsKPgo+ ICAgICAgICAgc3dpdGNoIChtYWluaWQgPj4gMjQpIHsKPiAgICAgICAgIGNhc2UgMHg0MToKPiBA QCAtMTExLDggKzEwMCw4IEBAIHN0YXRpYyBpbnQgZG9fY3B1aW5mbyhpbnQgYXJnYywgY2hhciAq YXJndltdKQo+Cj4gICAgICAgICAgICAgICAgIC8qIFJldmlzZWQgQ1BVSUQgZm9ybWF0LiBSZWFk IHRoZSBNZW1vcnkgTW9kZWwgRmVhdHVyZQo+ICAgICAgICAgICAgICAgICAgKiBSZWdpc3RlciAw IGFuZCBjaGVjayBmb3IgVk1TQXY3IG9yIFBNU0F2NyAqLwo+IC0gICAgICAgICAgICAgICBhc20o Im1yYyAgICAgICAgcDE1LCAwLCAlMCwgYzAsIGMxLCA0Igo+IC0gICAgICAgICAgICAgICAgICAg OiAiPXIiIChtbWZyMCkpOwo+ICsvLyAgICAgICAgICAgICBhc20oIm1yYyAgICAgICAgcDE1LCAw LCAlMCwgYzAsIGMxLCA0Igo+ICsvLyAgICAgICAgICAgICAgICAgOiAiPXIiIChtbWZyMCkpOwo+ ICAgICAgICAgICAgICAgICBpZiAoKG1tZnIwICYgMHgwMDAwMDAwZikgPj0gMHgwMDAwMDAwMyB8 fAo+ICAgICAgICAgICAgICAgICAgICAgKG1tZnIwICYgMHgwMDAwMDBmMCkgPj0gMHgwMDAwMDAz MCkKPiAgICAgICAgICAgICAgICAgICAgICAgICBjcHVfYXJjaCA9IENQVV9BUkNIX0FSTXY3Owo+ IEBAIC0xNTIsNiArMTQxLDkgQEAgc3RhdGljIGludCBkb19jcHVpbmZvKGludCBhcmdjLCBjaGFy ICphcmd2W10pCj4gICAgICAgICBjYXNlIENQVV9BUkNIX0FSTXY3Ogo+ICAgICAgICAgICAgICAg ICBhcmNoaXRlY3R1cmUgPSAidjciOwo+ICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAg IGNhc2UgQ1BVX0FSQ0hfQVJNdjg6Cj4gKyAgICAgICAgICAgICAgIGFyY2hpdGVjdHVyZSA9ICJ2 OCI7Cj4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgY2FzZSBDUFVfQVJDSF9VTktO T1dOOgo+ICAgICAgICAgZGVmYXVsdDoKPiAgICAgICAgICAgICAgICAgYXJjaGl0ZWN0dXJlID0g IlVua25vd24iOwo+IEBAIC0xODEsMjkgKzE3MywzMSBAQCBzdGF0aWMgaW50IGRvX2NwdWluZm8o aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgICAgICAgICAgICAgICAgY2FzZSBBUk1fQ1BVX1BB UlRfQ09SVEVYX0ExNToKPiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0ID0gIkNvcnRleC1B MTUiOwo+ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAgICBj YXNlIEFSTV9DUFVfUEFSVF9DT1JURVhfQTUzOgo+ICsgICAgICAgICAgICAgICAgICAgICAgIHBh cnQgPSAiQ29ydGV4LUE1MyI7Cj4gICAgICAgICAgICAgICAgIGRlZmF1bHQ6Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgcGFydCA9ICJ1bmtub3duIjsKPiAgICAgICAgICAgICAgICAgfQo+ICAg ICAgICAgICAgICAgICBwcmludGYoImNvcmU6ICVzIHIldXAldVxuIiwgcGFydCwgbWFqb3IsIG1p bm9yKTsKPiAgICAgICAgIH0KPgo+IC0gICAgICAgaWYgKGNhY2hlICYgKDEgPDwgMjQpKSB7Cj4g LSAgICAgICAgICAgICAgIC8qIHNlcGFyYXRlIEkvRCBjYWNoZSAqLwo+IC0gICAgICAgICAgICAg ICBwcmludGYoIkktY2FjaGU6ICIpOwo+IC0gICAgICAgICAgICAgICBkZWNvZGVfY2FjaGUoY2Fj aGUgJiAweGZmZik7Cj4gLSAgICAgICAgICAgICAgIHByaW50ZigiRC1jYWNoZTogIik7Cj4gLSAg ICAgICAgICAgICAgIGRlY29kZV9jYWNoZSgoY2FjaGUgPj4gMTIpICYgMHhmZmYpOwo+IC0gICAg ICAgfSBlbHNlIHsKPiAtICAgICAgICAgICAgICAgLyogdW5pZmllZCBJL0QgY2FjaGUgKi8KPiAt ICAgICAgICAgICAgICAgcHJpbnRmKCJjYWNoZTogIik7Cj4gLSAgICAgICAgICAgICAgIGRlY29k ZV9jYWNoZShjYWNoZSAmIDB4ZmZmKTsKPiAtICAgICAgIH0KPiAtCj4gLSAgICAgICBwcmludGYo IkNvbnRyb2wgcmVnaXN0ZXI6ICIpOwo+IC0gICAgICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJ WkUoY3JiaXRzKTsgaSsrKQo+IC0gICAgICAgICAgICAgICBpZiAoY3IgJiAoMSA8PCBpKSkKPiAt ICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiVzICIsIGNyYml0c1tpXSk7Cj4gLSAgICAg ICBwcmludGYoIlxuIik7Cj4gKy8vICAgICBpZiAoY2FjaGUgJiAoMSA8PCAyNCkpIHsKPiArLy8g ICAgICAgICAgICAgLyogc2VwYXJhdGUgSS9EIGNhY2hlICovCj4gKy8vICAgICAgICAgICAgIHBy aW50ZigiSS1jYWNoZTogIik7Cj4gKy8vICAgICAgICAgICAgIGRlY29kZV9jYWNoZShjYWNoZSAm IDB4ZmZmKTsKPiArLy8gICAgICAgICAgICAgcHJpbnRmKCJELWNhY2hlOiAiKTsKPiArLy8gICAg ICAgICAgICAgZGVjb2RlX2NhY2hlKChjYWNoZSA+PiAxMikgJiAweGZmZik7Cj4gKy8vICAgICB9 IGVsc2Ugewo+ICsvLyAgICAgICAgICAgICAvKiB1bmlmaWVkIEkvRCBjYWNoZSAqLwo+ICsvLyAg ICAgICAgICAgICBwcmludGYoImNhY2hlOiAiKTsKPiArLy8gICAgICAgICAgICAgZGVjb2RlX2Nh Y2hlKGNhY2hlICYgMHhmZmYpOwo+ICsvLyAgICAgfQo+ICsKPiArLy8gICAgIHByaW50ZigiQ29u dHJvbCByZWdpc3RlcjogIik7Cj4gKy8vICAgICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShj cmJpdHMpOyBpKyspCj4gKy8vICAgICAgICAgICAgIGlmIChjciAmICgxIDw8IGkpKQo+ICsvLyAg ICAgICAgICAgICAgICAgICAgIHByaW50ZigiJXMgIiwgY3JiaXRzW2ldKTsKPiArLy8gICAgIHBy aW50ZigiXG4iKTsKPgo+ICAgICAgICAgcmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vY3B1L2VudHJ5LmMgYi9hcmNoL2FybS9jcHUvZW50cnkuYwo+IGluZGV4IDBjZGNmZWMu LmEwMjlmMDkgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vY3B1L2VudHJ5LmMKPiArKysgYi9hcmNo L2FybS9jcHUvZW50cnkuYwo+IEBAIC0xLDcgKzEsNiBAQAo+ICAjaW5jbHVkZSA8dHlwZXMuaD4K Pgo+ICAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+Cj4gLSNpbmNsdWRlIDxhc20vYmFyZWJveC1hcm0u aD4KPgo+ICAjaW5jbHVkZSAiZW50cnkuaCIKPgo+IEBAIC0yNCwxMCArMjMsMTAgQEAKPiAgICog YmUgZmluZS4KPiAgICovCj4KPiAtdm9pZCBfX25ha2VkIF9fbm9yZXR1cm4gYmFyZWJveF9hcm1f ZW50cnkodW5zaWduZWQgbG9uZyBtZW1iYXNlLAo+ICt2b2lkIF9fbm9yZXR1cm4gYmFyZWJveF9h cm1fZW50cnkodW5zaWduZWQgbG9uZyBtZW1iYXNlLAo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWVtc2l6ZSwgdm9pZCAqYm9hcmRkYXRh KQo+ICB7Cj4gLSAgICAgICBhcm1fc2V0dXBfc3RhY2soYXJtX21lbV9zdGFjayhtZW1iYXNlLCBt ZW1iYXNlICsgbWVtc2l6ZSkgKyBTVEFDS19TSVpFIC0gMTYpOwo+ICsgICAgICAgYXJtX3NldHVw X3N0YWNrKG1lbWJhc2UgKyBtZW1zaXplIC0gMTYpOwo+ICAgICAgICAgYXJtX2Vhcmx5X21tdV9j YWNoZV9pbnZhbGlkYXRlKCk7Cj4KPiAgICAgICAgIGlmIChJU19FTkFCTEVEKENPTkZJR19QQkxf TVVMVElfSU1BR0VTKSkKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY3B1L2V4Y2VwdGlvbnMuUyBi L2FyY2gvYXJtL2NwdS9leGNlcHRpb25zLlMKPiBpbmRleCBlZGEwZDZhLi41ODEyMDI1IDEwMDY0 NAo+IC0tLSBhL2FyY2gvYXJtL2NwdS9leGNlcHRpb25zLlMKPiArKysgYi9hcmNoL2FybS9jcHUv ZXhjZXB0aW9ucy5TCj4gQEAgLTEsMjIwICsxLDExOSBAQAo+IC0jaW5jbHVkZSA8Y29uZmlnLmg+ Cj4gLSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Cj4gLSNpbmNsdWRlIDxhc20tZ2VuZXJpYy9t ZW1vcnlfbGF5b3V0Lmg+Cj4gLQo+ICAvKgo+IC0gKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+IC0gKgo+IC0g KiBJbnRlcnJ1cHQgaGFuZGxpbmcKPiArICogKEMpIENvcHlyaWdodCAyMDEzCj4gKyAqIERhdmlk IEZlbmcgPGZlbmdodWFAcGh5dGl1bS5jb20uY24+Cj4gICAqCj4gLSAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Cj4gKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAgICBHUEwtMi4wKwo+ICAgKi8KPgo+IC1A Cj4gLUAgSVJRIHN0YWNrIGZyYW1lLgo+IC1ACj4gLSNkZWZpbmUgU19GUkFNRV9TSVpFICAgNzIK PiAtCj4gLSNkZWZpbmUgU19PTERfUjAgICAgICAgNjgKPiAtI2RlZmluZSBTX1BTUiAgICAgICAg ICA2NAo+IC0jZGVmaW5lIFNfUEMgICAgICAgICAgIDYwCj4gLSNkZWZpbmUgU19MUiAgICAgICAg ICAgNTYKPiAtI2RlZmluZSBTX1NQICAgICAgICAgICA1Mgo+IC0KPiAtI2RlZmluZSBTX0lQICAg ICAgICAgICA0OAo+IC0jZGVmaW5lIFNfRlAgICAgICAgICAgIDQ0Cj4gLSNkZWZpbmUgU19SMTAg ICAgICAgICAgNDAKPiAtI2RlZmluZSBTX1I5ICAgICAgICAgICAzNgo+IC0jZGVmaW5lIFNfUjgg ICAgICAgICAgIDMyCj4gLSNkZWZpbmUgU19SNyAgICAgICAgICAgMjgKPiAtI2RlZmluZSBTX1I2 ICAgICAgICAgICAyNAo+IC0jZGVmaW5lIFNfUjUgICAgICAgICAgIDIwCj4gLSNkZWZpbmUgU19S NCAgICAgICAgICAgMTYKPiAtI2RlZmluZSBTX1IzICAgICAgICAgICAxMgo+IC0jZGVmaW5lIFNf UjIgICAgICAgICAgIDgKPiAtI2RlZmluZSBTX1IxICAgICAgICAgICA0Cj4gLSNkZWZpbmUgU19S MCAgICAgICAgICAgMAo+IC0KPiAtI2RlZmluZSBNT0RFX1NWQyAgICAgICAweDEzCj4gKyNpbmNs dWRlIDxjb25maWcuaD4KPiArI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KPiArI2luY2x1ZGUgPGxp bnV4L2xpbmthZ2UuaD4KPgo+ICAvKgo+IC0gKiB1c2UgYmFkX3NhdmVfdXNlcl9yZWdzIGZvciBh Ym9ydC9wcmVmZXRjaC91bmRlZi9zd2kgLi4uCj4gLSAqIHVzZSBpcnFfc2F2ZV91c2VyX3JlZ3Mg LyBpcnFfcmVzdG9yZV91c2VyX3JlZ3MgZm9yIElSUS9GSVEgaGFuZGxpbmcKPiArICogRW50ZXIg RXhjZXB0aW9uLgo+ICsgKiBUaGlzIHdpbGwgc2F2ZSB0aGUgcHJvY2Vzc29yIHN0YXRlIHRoYXQg aXMgRUxSL1gwflgzMAo+ICsgKiB0byB0aGUgc3RhY2sgZnJhbWUuCj4gICAqLwo+IC0KPiAtICAg ICAgIC5tYWNybyAgYmFkX3NhdmVfdXNlcl9yZWdzCj4gLSAgICAgICBzdWIgICAgIHNwLCBzcCwg I1NfRlJBTUVfU0laRQo+IC0gICAgICAgc3RtaWEgICBzcCwge3IwIC0gcjEyfSAgICAgICAgICAg ICAgICAgIEAgQ2FsbGluZyByMC1yMTIKPiAtICAgICAgIGxkciAgICAgcjIsID1hYm9ydF9zdGFj awo+IC0gICAgICAgbGRtaWEgICByMiwge3IyIC0gcjN9ICAgICAgICAgICAgICAgICAgIEAgZ2V0 IHBjLCBjcHNyCj4gLSAgICAgICBhZGQgICAgIHIwLCBzcCwgI1NfRlJBTUVfU0laRSAgICAgICAg ICAgQCByZXN0b3JlIHNwX1NWQwo+IC0KPiAtICAgICAgIGFkZCAgICAgcjUsIHNwLCAjU19TUAo+ IC0gICAgICAgbW92ICAgICByMSwgbHIKPiAtICAgICAgIHN0bWlhICAgcjUsIHtyMCAtIHIzfSAg ICAgICAgICAgICAgICAgICBAIHNhdmUgc3BfU1ZDLCBscl9TVkMsIHBjLCBjcHNyCj4gLSAgICAg ICBtb3YgICAgIHIwLCBzcAo+IC0gICAgICAgLmVuZG0KPiAtCj4gLSAgICAgICAubWFjcm8gIGly cV9zYXZlX3VzZXJfcmVncwo+IC0gICAgICAgc3ViICAgICBzcCwgc3AsICNTX0ZSQU1FX1NJWkUK PiAtICAgICAgIHN0bWlhICAgc3AsIHtyMCAtIHIxMn0gICAgICAgICAgICAgICAgICBAIENhbGxp bmcgcjAtcjEyCj4gLSAgICAgICBhZGQgICAgIHI4LCBzcCwgI1NfUEMKPiAtICAgICAgIHN0bWRi ICAgcjgsIHtzcCwgbHJ9XiAgICAgICAgICAgICAgICAgICBAIENhbGxpbmcgU1AsIExSCj4gLSAg ICAgICBzdHIgICAgIGxyLCBbcjgsICMwXSAgICAgICAgICAgICAgICAgICAgQCBTYXZlIGNhbGxp bmcgUEMKPiAtICAgICAgIG1ycyAgICAgcjYsIHNwc3IKPiAtICAgICAgIHN0ciAgICAgcjYsIFty OCwgIzRdICAgICAgICAgICAgICAgICAgICBAIFNhdmUgQ1BTUgo+IC0gICAgICAgc3RyICAgICBy MCwgW3I4LCAjOF0gICAgICAgICAgICAgICAgICAgIEAgU2F2ZSBPTERfUjAKPiAtICAgICAgIG1v diAgICAgcjAsIHNwCj4gLSAgICAgICAuZW5kbQo+IC0KPiAtICAgICAgIC5tYWNybyAgaXJxX3Jl c3RvcmVfdXNlcl9yZWdzCj4gLSAgICAgICBsZG1pYSAgIHNwLCB7cjAgLSBscn1eICAgICAgICAg ICAgICAgICAgQCBDYWxsaW5nIHIwIC0gbHIKPiAtICAgICAgIG1vdiAgICAgcjAsIHIwCj4gLSAg ICAgICBsZHIgICAgIGxyLCBbc3AsICNTX1BDXSAgICAgICAgICAgICAgICAgQCBHZXQgUEMKPiAt ICAgICAgIGFkZCAgICAgc3AsIHNwLCAjU19GUkFNRV9TSVpFCj4gLSAgICAgICBzdWJzICAgIHBj LCBsciwgIzQgICAgICAgICAgICAgICAgICAgICAgQCByZXR1cm4gJiBtb3ZlIHNwc3Jfc3ZjIGlu dG8gY3Bzcgo+IC0gICAgICAgLmVuZG0KPiAtCj4gLSAgICAgICAubWFjcm8gZ2V0X2JhZF9zdGFj awo+IC0gICAgICAgbGRyICAgICByMTMsID1hYm9ydF9zdGFjawo+IC0gICAgICAgc3RyICAgICBs ciwgW3IxM10gICAgICAgICAgICAgICAgICAgICAgIEAgc2F2ZSBjYWxsZXIgbHIgLyBzcHNyCj4g LSAgICAgICBtcnMgICAgIGxyLCBzcHNyCj4gLSAgICAgICBzdHIgICAgIGxyLCBbcjEzLCAjNF0K PiAtCj4gLSAgICAgICBtb3YgICAgIHIxMywgI01PREVfU1ZDICAgICAgICAgICAgICAgICAgQCBw cmVwYXJlIFNWQy1Nb2RlCj4gLSAgICAgICBAIG1zciAgIHNwc3JfYywgcjEzCj4gLSAgICAgICBt c3IgICAgIHNwc3IsIHIxMwo+IC0gICAgICAgbW92ICAgICBsciwgcGMKPiAtICAgICAgIG1vdnMg ICAgcGMsIGxyCj4gLSAgICAgICAuZW5kbQo+IC0KPiAtICAgICAgIC5tYWNybyB0cnlfZGF0YV9h Ym9ydAo+IC0gICAgICAgbGRyICAgICByMTMsID1hcm1faWdub3JlX2RhdGFfYWJvcnQgICAgIEAg Y2hlY2sgdHJ5IG1vZGUKPiAtICAgICAgIGxkciAgICAgcjEzLCBbcjEzXQo+IC0gICAgICAgY21w ICAgICByMTMsICMwCj4gLSAgICAgICBiZXEgICAgIGRvX2Fib3J0X1xACj4gLSAgICAgICBsZHIg ICAgIHIxMywgPWFybV9kYXRhX2Fib3J0X29jY3VycmVkCj4gLSAgICAgICBzdHIgICAgIHIxMywg W3IxM10KPiAtICAgICAgIG1ycyAgICAgcjEzLCBzcHNyICAgICAgICAgICAgICAgICAgICAgICBA IHJlYWQgc2F2ZWQgQ1BTUgo+IC0gICAgICAgdHN0ICAgICByMTMsICMxPDw1ICAgICAgICAgICAg ICAgICAgICAgIEAgY2hlY2sgVGh1bWIgbW9kZQo+IC0gICAgICAgc3ViZXEgICBsciwgIzQgICAg ICAgICAgICAgICAgICAgICAgICAgIEAgbmV4dCBBUk0gaW5zdHIKPiAtICAgICAgIHN1Ym5lICAg bHIsICM2ICAgICAgICAgICAgICAgICAgICAgICAgICBAIG5leHQgVGh1bWIgaW5zdHIKPiAtICAg ICAgIG1vdnMgICAgcGMsIGxyCj4gLWRvX2Fib3J0X1xAOgo+IC0gICAgICAgLmVuZG0KPiAtCj4g LSAgICAgICAubWFjcm8gZ2V0X2lycV9zdGFjayAgICAgICAgICAgICAgICAgICAgQCBzZXR1cCBJ UlEgc3RhY2sKPiAtICAgICAgIGxkciAgICAgc3AsIElSUV9TVEFDS19TVEFSVAo+IC0gICAgICAg LmVuZG0KPiAtCj4gLSAgICAgICAubWFjcm8gZ2V0X2ZpcV9zdGFjayAgICAgICAgICAgICAgICAg ICAgQCBzZXR1cCBGSVEgc3RhY2sKPiAtICAgICAgIGxkciAgICAgc3AsIEZJUV9TVEFDS19TVEFS VAo+IC0gICAgICAgLmVuZG0KPiArLm1hY3JvIGV4Y2VwdGlvbl9lbnRyeQo+ICsgICAgICAgc3Rw ICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKPiArICAgICAgIHN0cCAgICAgeDI3LCB4MjgsIFtz cCwgIy0xNl0hCj4gKyAgICAgICBzdHAgICAgIHgyNSwgeDI2LCBbc3AsICMtMTZdIQo+ICsgICAg ICAgc3RwICAgICB4MjMsIHgyNCwgW3NwLCAjLTE2XSEKPiArICAgICAgIHN0cCAgICAgeDIxLCB4 MjIsIFtzcCwgIy0xNl0hCj4gKyAgICAgICBzdHAgICAgIHgxOSwgeDIwLCBbc3AsICMtMTZdIQo+ ICsgICAgICAgc3RwICAgICB4MTcsIHgxOCwgW3NwLCAjLTE2XSEKPiArICAgICAgIHN0cCAgICAg eDE1LCB4MTYsIFtzcCwgIy0xNl0hCj4gKyAgICAgICBzdHAgICAgIHgxMywgeDE0LCBbc3AsICMt MTZdIQo+ICsgICAgICAgc3RwICAgICB4MTEsIHgxMiwgW3NwLCAjLTE2XSEKPiArICAgICAgIHN0 cCAgICAgeDksIHgxMCwgW3NwLCAjLTE2XSEKPiArICAgICAgIHN0cCAgICAgeDcsIHg4LCBbc3As ICMtMTZdIQo+ICsgICAgICAgc3RwICAgICB4NSwgeDYsIFtzcCwgIy0xNl0hCj4gKyAgICAgICBz dHAgICAgIHgzLCB4NCwgW3NwLCAjLTE2XSEKPiArICAgICAgIHN0cCAgICAgeDEsIHgyLCBbc3As ICMtMTZdIQo+ICsKPiArICAgICAgIC8qIENvdWxkIGJlIHJ1bm5pbmcgYXQgRUwzL0VMMi9FTDEg Ki8KPiArICAgICAgIG1ycyAgICAgeDExLCBDdXJyZW50RUwKPiArICAgICAgIGNtcCAgICAgeDEx LCAjMHhDICAgICAgICAgICAgICAgLyogQ2hlY2sgRUwzIHN0YXRlICovCj4gKyAgICAgICBiLmVx ICAgIDFmCj4gKyAgICAgICBjbXAgICAgIHgxMSwgIzB4OCAgICAgICAgICAgICAgIC8qIENoZWNr IEVMMiBzdGF0ZSAqLwo+ICsgICAgICAgYi5lcSAgICAyZgo+ICsgICAgICAgY21wICAgICB4MTEs ICMweDQgICAgICAgICAgICAgICAvKiBDaGVjayBFTDEgc3RhdGUgKi8KPiArICAgICAgIGIuZXEg ICAgM2YKPiArMzogICAgIG1ycyAgICAgeDEsIGVzcl9lbDMKPiArICAgICAgIG1ycyAgICAgeDIs IGVscl9lbDMKPiArICAgICAgIGIgICAgICAgMGYKPiArMjogICAgIG1ycyAgICAgeDEsIGVzcl9l bDIKPiArICAgICAgIG1ycyAgICAgeDIsIGVscl9lbDIKPiArICAgICAgIGIgICAgICAgMGYKPiAr MTogICAgIG1ycyAgICAgeDEsIGVzcl9lbDEKPiArICAgICAgIG1ycyAgICAgeDIsIGVscl9lbDEK PiArMDoKPiArICAgICAgIHN0cCAgICAgeDIsIHgwLCBbc3AsICMtMTZdIQo+ICsgICAgICAgbW92 ICAgICB4MCwgc3AKPiArLmVuZG0KPgo+ICAvKgo+IC0gKiBleGNlcHRpb24gaGFuZGxlcnMKPiAr ICogRXhjZXB0aW9uIHZlY3RvcnMuCj4gICAqLwo+IC0gICAgICAgLnNlY3Rpb24gIi50ZXh0Iiwi YXgiCj4gLSAgICAgICAuYXJtCj4gLQo+IC0gICAgICAgLmFsaWduICA1Cj4gLXVuZGVmaW5lZF9p bnN0cnVjdGlvbjoKPiAtICAgICAgIGdldF9iYWRfc3RhY2sKPiAtICAgICAgIGJhZF9zYXZlX3Vz ZXJfcmVncwo+IC0gICAgICAgYmwgICAgICBkb191bmRlZmluZWRfaW5zdHJ1Y3Rpb24KPiAtCj4g LSAgICAgICAuYWxpZ24gIDUKPiAtc29mdHdhcmVfaW50ZXJydXB0Ogo+IC0gICAgICAgZ2V0X2Jh ZF9zdGFjawo+IC0gICAgICAgYmFkX3NhdmVfdXNlcl9yZWdzCj4gLSAgICAgICBibCAgICAgIGRv X3NvZnR3YXJlX2ludGVycnVwdAo+IC0KPiAtICAgICAgIC5hbGlnbiAgNQo+IC1wcmVmZXRjaF9h Ym9ydDoKPiAtICAgICAgIGdldF9iYWRfc3RhY2sKPiAtICAgICAgIGJhZF9zYXZlX3VzZXJfcmVn cwo+IC0gICAgICAgYmwgICAgICBkb19wcmVmZXRjaF9hYm9ydAo+IC0KPiAtICAgICAgIC5hbGln biAgNQo+IC1kYXRhX2Fib3J0Ogo+IC0gICAgICAgdHJ5X2RhdGFfYWJvcnQKPiAtICAgICAgIGdl dF9iYWRfc3RhY2sKPiAtICAgICAgIGJhZF9zYXZlX3VzZXJfcmVncwo+IC0gICAgICAgYmwgICAg ICBkb19kYXRhX2Fib3J0Cj4gLQo+IC0gICAgICAgLmFsaWduICA1Cj4gLWlycToKPiAtICAgICAg IGdldF9iYWRfc3RhY2sKPiAtICAgICAgIGJhZF9zYXZlX3VzZXJfcmVncwo+IC0gICAgICAgYmwg ICAgICBkb19pcnEKPiAtCj4gLSAgICAgICAuYWxpZ24gIDUKPiAtZmlxOgo+IC0gICAgICAgZ2V0 X2JhZF9zdGFjawo+IC0gICAgICAgYmFkX3NhdmVfdXNlcl9yZWdzCj4gLSAgICAgICBibCAgICAg IGRvX2ZpcQo+IC0KPiAtI2lmIGRlZmluZWQoQ09ORklHX1JFTE9DQVRBQkxFKSAmJiBkZWZpbmVk KENPTkZJR19BUk1fRVhDRVBUSU9OUykKPiAtLyoKPiAtICogV2l0aCByZWxvY2F0YWJsZSBiaW5h cnkgc3VwcG9ydCB0aGUgcnVudGltZSBleGNlcHRpb24gdmVjdG9ycyBkbyBub3QgbWF0Y2gKPiAt ICogdGhlIGFkZHJlc3NlcyBpbiB0aGUgYmluYXJ5LiBXZSBoYXZlIHRvIGZpeCB0aGVtIHVwIGR1 cmluZyBydW50aW1lCj4gLSAqLwo+IC1FTlRSWShhcm1fZml4dXBfdmVjdG9ycykKPiAtICAgICAg IGxkciAgICAgcjAsID11bmRlZmluZWRfaW5zdHJ1Y3Rpb24KPiAtICAgICAgIGxkciAgICAgcjEs ID1fdW5kZWZpbmVkX2luc3RydWN0aW9uCj4gLSAgICAgICBzdHIgICAgIHIwLCBbcjFdCj4gLSAg ICAgICBsZHIgICAgIHIwLCA9c29mdHdhcmVfaW50ZXJydXB0Cj4gLSAgICAgICBsZHIgICAgIHIx LCA9X3NvZnR3YXJlX2ludGVycnVwdAo+IC0gICAgICAgc3RyICAgICByMCwgW3IxXQo+IC0gICAg ICAgbGRyICAgICByMCwgPXByZWZldGNoX2Fib3J0Cj4gLSAgICAgICBsZHIgICAgIHIxLCA9X3By ZWZldGNoX2Fib3J0Cj4gLSAgICAgICBzdHIgICAgIHIwLCBbcjFdCj4gLSAgICAgICBsZHIgICAg IHIwLCA9ZGF0YV9hYm9ydAo+IC0gICAgICAgbGRyICAgICByMSwgPV9kYXRhX2Fib3J0Cj4gLSAg ICAgICBzdHIgICAgIHIwLCBbcjFdCj4gLSAgICAgICBsZHIgICAgIHIwLCA9aXJxCj4gLSAgICAg ICBsZHIgICAgIHIxLCA9X2lycQo+IC0gICAgICAgc3RyICAgICByMCwgW3IxXQo+IC0gICAgICAg bGRyICAgICByMCwgPWZpcQo+IC0gICAgICAgbGRyICAgICByMSwgPV9maXEKPiAtICAgICAgIHN0 ciAgICAgcjAsIFtyMV0KPiAtICAgICAgIGJ4ICAgICAgbHIKPiAtRU5EUFJPQyhhcm1fZml4dXBf dmVjdG9ycykKPiAtI2VuZGlmCj4gLQo+IC0uc2VjdGlvbiAudGV4dF9leGNlcHRpb25zCj4gLS5n bG9ibCBleHRhYmxlCj4gLWV4dGFibGU6Cj4gLTE6ICAgICBiIDFiICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIGJhcmVib3hfYXJtX3Jlc2V0X3ZlY3RvciAqLwo+IC0jaWZkZWYgQ09ORklH X0FSTV9FWENFUFRJT05TCj4gLSAgICAgICBsZHIgcGMsIF91bmRlZmluZWRfaW5zdHJ1Y3Rpb24g IC8qIHVuZGVmaW5lZCBpbnN0cnVjdGlvbiAqLwo+IC0gICAgICAgbGRyIHBjLCBfc29mdHdhcmVf aW50ZXJydXB0ICAgICAvKiBzb2Z0d2FyZSBpbnRlcnJ1cHQgKFNXSSkgKi8KPiAtICAgICAgIGxk ciBwYywgX3ByZWZldGNoX2Fib3J0ICAgICAgICAgLyogcHJlZmV0Y2ggYWJvcnQgKi8KPiAtICAg ICAgIGxkciBwYywgX2RhdGFfYWJvcnQgICAgICAgICAgICAgLyogZGF0YSBhYm9ydCAqLwo+IC0x OiAgICAgYiAxYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAocmVzZXJ2ZWQpICovCj4g LSAgICAgICBsZHIgcGMsIF9pcnEgICAgICAgICAgICAgICAgICAgIC8qIGlycSAoaW50ZXJydXB0 KSAqLwo+IC0gICAgICAgbGRyIHBjLCBfZmlxICAgICAgICAgICAgICAgICAgICAvKiBmaXEgKGZh c3QgaW50ZXJydXB0KSAqLwo+IC0uZ2xvYmwgX3VuZGVmaW5lZF9pbnN0cnVjdGlvbgo+IC1fdW5k ZWZpbmVkX2luc3RydWN0aW9uOiAud29yZCB1bmRlZmluZWRfaW5zdHJ1Y3Rpb24KPiAtLmdsb2Js IF9zb2Z0d2FyZV9pbnRlcnJ1cHQKPiAtX3NvZnR3YXJlX2ludGVycnVwdDogLndvcmQgc29mdHdh cmVfaW50ZXJydXB0Cj4gLS5nbG9ibCBfcHJlZmV0Y2hfYWJvcnQKPiAtX3ByZWZldGNoX2Fib3J0 OiAud29yZCBwcmVmZXRjaF9hYm9ydAo+IC0uZ2xvYmwgX2RhdGFfYWJvcnQKPiAtX2RhdGFfYWJv cnQ6IC53b3JkIGRhdGFfYWJvcnQKPiAtLmdsb2JsIF9pcnEKPiAtX2lycTogLndvcmQgaXJxCj4g LS5nbG9ibCBfZmlxCj4gLV9maXE6IC53b3JkIGZpcQo+IC0jZWxzZQo+IC0xOiAgICAgYiAxYiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bmRlZmluZWQgaW5zdHJ1Y3Rpb24gKi8KPiAt MTogICAgIGIgMWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc29mdHdhcmUgaW50ZXJy dXB0IChTV0kpICovCj4gLTE6ICAgICBiIDFiICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IHByZWZldGNoIGFib3J0ICovCj4gLTE6ICAgICBiIDFiICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIGRhdGEgYWJvcnQgKi8KPiAtMTogICAgIGIgMWIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogKHJlc2VydmVkKSAqLwo+IC0xOiAgICAgYiAxYiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBpcnEgKGludGVycnVwdCkgKi8KPiAtMTogICAgIGIgMWIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogZmlxIChmYXN0IGludGVycnVwdCkgKi8KPiAtI2VuZGlmCj4gKyAg ICAgICAuYWxpZ24gIDExCj4gKyAgICAgICAuZ2xvYmwgIHZlY3RvcnMKPiArdmVjdG9yczoKPiAr ICAgICAgIC5hbGlnbiAgNwo+ICsgICAgICAgYiAgICAgICBfZG9fYmFkX3N5bmMgICAgLyogQ3Vy cmVudCBFTCBTeW5jaHJvbm91cyBUaHJlYWQgKi8KPiArCj4gKyAgICAgICAuYWxpZ24gIDcKPiAr ICAgICAgIGIgICAgICAgX2RvX2JhZF9pcnEgICAgIC8qIEN1cnJlbnQgRUwgSVJRIFRocmVhZCAq Lwo+ICsKPiArICAgICAgIC5hbGlnbiAgNwo+ICsgICAgICAgYiAgICAgICBfZG9fYmFkX2ZpcSAg ICAgLyogQ3VycmVudCBFTCBGSVEgVGhyZWFkICovCj4gKwo+ICsgICAgICAgLmFsaWduICA3Cj4g KyAgICAgICBiICAgICAgIF9kb19iYWRfZXJyb3IgICAvKiBDdXJyZW50IEVMIEVycm9yIFRocmVh ZCAqLwo+ICsKPiArICAgICAgIC5hbGlnbiAgNwo+ICsgICAgICAgYiAgICAgICBfZG9fc3luYyAg ICAgICAgLyogQ3VycmVudCBFTCBTeW5jaHJvbm91cyBIYW5kbGVyICovCj4gKwo+ICsgICAgICAg LmFsaWduICA3Cj4gKyAgICAgICBiICAgICAgIF9kb19pcnEgICAgICAgICAvKiBDdXJyZW50IEVM IElSUSBIYW5kbGVyICovCj4gKwo+ICsgICAgICAgLmFsaWduICA3Cj4gKyAgICAgICBiICAgICAg IF9kb19maXEgICAgICAgICAvKiBDdXJyZW50IEVMIEZJUSBIYW5kbGVyICovCj4gKwo+ICsgICAg ICAgLmFsaWduICA3Cj4gKyAgICAgICBiICAgICAgIF9kb19lcnJvciAgICAgICAvKiBDdXJyZW50 IEVMIEVycm9yIEhhbmRsZXIgKi8KPiArCj4gKwo+ICtfZG9fYmFkX3N5bmM6Cj4gKyAgICAgICBl eGNlcHRpb25fZW50cnkKPiArICAgICAgIGJsICAgICAgZG9fYmFkX3N5bmMKPiArCj4gK19kb19i YWRfaXJxOgo+ICsgICAgICAgZXhjZXB0aW9uX2VudHJ5Cj4gKyAgICAgICBibCAgICAgIGRvX2Jh ZF9pcnEKPiArCj4gK19kb19iYWRfZmlxOgo+ICsgICAgICAgZXhjZXB0aW9uX2VudHJ5Cj4gKyAg ICAgICBibCAgICAgIGRvX2JhZF9maXEKPiArCj4gK19kb19iYWRfZXJyb3I6Cj4gKyAgICAgICBl eGNlcHRpb25fZW50cnkKPiArICAgICAgIGJsICAgICAgZG9fYmFkX2Vycm9yCj4gKwo+ICtfZG9f c3luYzoKPiArICAgICAgIGV4Y2VwdGlvbl9lbnRyeQo+ICsgICAgICAgYmwgICAgICBkb19zeW5j Cj4gKwo+ICtfZG9faXJxOgo+ICsgICAgICAgZXhjZXB0aW9uX2VudHJ5Cj4gKyAgICAgICBibCAg ICAgIGRvX2lycQo+ICsKPiArX2RvX2ZpcToKPiArICAgICAgIGV4Y2VwdGlvbl9lbnRyeQo+ICsg ICAgICAgYmwgICAgICBkb19maXEKPiArCj4gK19kb19lcnJvcjoKPiArICAgICAgIGV4Y2VwdGlv bl9lbnRyeQo+ICsgICAgICAgYmwgICAgICBkb19lcnJvcgo+Cj4gIC5zZWN0aW9uIC5kYXRhCj4g IC5hbGlnbiA0Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NwdS9pbnRlcnJ1cHRzLmMgYi9hcmNo L2FybS9jcHUvaW50ZXJydXB0cy5jCj4gaW5kZXggZmI0YmI3OC4uZDQyYTViMSAxMDA2NDQKPiAt LS0gYS9hcmNoL2FybS9jcHUvaW50ZXJydXB0cy5jCj4gKysrIGIvYXJjaC9hcm0vY3B1L2ludGVy cnVwdHMuYwo+IEBAIC0yNyw1NCArMjcsOCBAQAo+ICAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgo+ ICAjaW5jbHVkZSA8YXNtL3Vud2luZC5oPgo+Cj4gLS8qKgo+IC0gKiBEaXNwbGF5IGN1cnJlbnQg cmVnaXN0ZXIgc2V0IGNvbnRlbnQKPiAtICogQHBhcmFtW2luXSByZWdzIEd1ZXNzIHdoYXQKPiAt ICovCj4gLXZvaWQgc2hvd19yZWdzIChzdHJ1Y3QgcHRfcmVncyAqcmVncykKPiAtewo+IC0gICAg ICAgdW5zaWduZWQgbG9uZyBmbGFnczsKPiAtICAgICAgIGNvbnN0IGNoYXIgKnByb2Nlc3Nvcl9t b2Rlc1tdID0gewo+IC0gICAgICAgIlVTRVJfMjYiLCAgICAgICJGSVFfMjYiLCAgICAgICAiSVJR XzI2IiwgICAgICAgIlNWQ18yNiIsCj4gLSAgICAgICAiVUs0XzI2IiwgICAgICAgIlVLNV8yNiIs ICAgICAgICJVSzZfMjYiLCAgICAgICAiVUs3XzI2IiwKPiAtICAgICAgICJVSzhfMjYiLCAgICAg ICAiVUs5XzI2IiwgICAgICAgIlVLMTBfMjYiLCAgICAgICJVSzExXzI2IiwKPiAtICAgICAgICJV SzEyXzI2IiwgICAgICAiVUsxM18yNiIsICAgICAgIlVLMTRfMjYiLCAgICAgICJVSzE1XzI2IiwK PiAtICAgICAgICJVU0VSXzMyIiwgICAgICAiRklRXzMyIiwgICAgICAgIklSUV8zMiIsICAgICAg ICJTVkNfMzIiLAo+IC0gICAgICAgIlVLNF8zMiIsICAgICAgICJVSzVfMzIiLCAgICAgICAiVUs2 XzMyIiwgICAgICAgIkFCVF8zMiIsCj4gLSAgICAgICAiVUs4XzMyIiwgICAgICAgIlVLOV8zMiIs ICAgICAgICJVSzEwXzMyIiwgICAgICAiVU5EXzMyIiwKPiAtICAgICAgICJVSzEyXzMyIiwgICAg ICAiVUsxM18zMiIsICAgICAgIlVLMTRfMzIiLCAgICAgICJTWVNfMzIiLAo+IC0gICAgICAgfTsK PiAtCj4gLSAgICAgICBmbGFncyA9IGNvbmRpdGlvbl9jb2RlcyAocmVncyk7Cj4gLQo+IC0gICAg ICAgcHJpbnRmICgicGMgOiBbPCUwOGx4Pl0gICAgbHIgOiBbPCUwOGx4Pl1cbiIKPiAtICAgICAg ICAgICAgICAgInNwIDogJTA4bHggIGlwIDogJTA4bHggIGZwIDogJTA4bHhcbiIsCj4gLSAgICAg ICAgICAgICAgIGluc3RydWN0aW9uX3BvaW50ZXIgKHJlZ3MpLAo+IC0gICAgICAgICAgICAgICBy ZWdzLT5BUk1fbHIsIHJlZ3MtPkFSTV9zcCwgcmVncy0+QVJNX2lwLCByZWdzLT5BUk1fZnApOwo+ IC0gICAgICAgcHJpbnRmICgicjEwOiAlMDhseCAgcjkgOiAlMDhseCAgcjggOiAlMDhseFxuIiwK PiAtICAgICAgICAgICAgICAgcmVncy0+QVJNX3IxMCwgcmVncy0+QVJNX3I5LCByZWdzLT5BUk1f cjgpOwo+IC0gICAgICAgcHJpbnRmICgicjcgOiAlMDhseCAgcjYgOiAlMDhseCAgcjUgOiAlMDhs eCAgcjQgOiAlMDhseFxuIiwKPiAtICAgICAgICAgICAgICAgcmVncy0+QVJNX3I3LCByZWdzLT5B Uk1fcjYsIHJlZ3MtPkFSTV9yNSwgcmVncy0+QVJNX3I0KTsKPiAtICAgICAgIHByaW50ZiAoInIz IDogJTA4bHggIHIyIDogJTA4bHggIHIxIDogJTA4bHggIHIwIDogJTA4bHhcbiIsCj4gLSAgICAg ICAgICAgICAgIHJlZ3MtPkFSTV9yMywgcmVncy0+QVJNX3IyLCByZWdzLT5BUk1fcjEsIHJlZ3Mt PkFSTV9yMCk7Cj4gLSAgICAgICBwcmludGYgKCJGbGFnczogJWMlYyVjJWMiLAo+IC0gICAgICAg ICAgICAgICBmbGFncyAmIFBTUl9OX0JJVCA/ICdOJyA6ICduJywKPiAtICAgICAgICAgICAgICAg ZmxhZ3MgJiBQU1JfWl9CSVQgPyAnWicgOiAneicsCj4gLSAgICAgICAgICAgICAgIGZsYWdzICYg UFNSX0NfQklUID8gJ0MnIDogJ2MnLCBmbGFncyAmIFBTUl9WX0JJVCA/ICdWJyA6ICd2Jyk7Cj4g LSAgICAgICBwcmludGYgKCIgIElSUXMgJXMgIEZJUXMgJXMgIE1vZGUgJXMlc1xuIiwKPiAtICAg ICAgICAgICAgICAgaW50ZXJydXB0c19lbmFibGVkIChyZWdzKSA/ICJvbiIgOiAib2ZmIiwKPiAt ICAgICAgICAgICAgICAgZmFzdF9pbnRlcnJ1cHRzX2VuYWJsZWQgKHJlZ3MpID8gIm9uIiA6ICJv ZmYiLAo+IC0gICAgICAgICAgICAgICBwcm9jZXNzb3JfbW9kZXNbcHJvY2Vzc29yX21vZGUgKHJl Z3MpXSwKPiAtICAgICAgICAgICAgICAgdGh1bWJfbW9kZSAocmVncykgPyAiIChUKSIgOiAiIik7 Cj4gLSNpZmRlZiBDT05GSUdfQVJNX1VOV0lORAo+IC0gICAgICAgdW53aW5kX2JhY2t0cmFjZShy ZWdzKTsKPiAtI2VuZGlmCj4gLX0KPiAtCj4gIHN0YXRpYyB2b2lkIF9fbm9yZXR1cm4gZG9fZXhj ZXB0aW9uKHN0cnVjdCBwdF9yZWdzICpwdF9yZWdzKQo+ICB7Cj4gLSAgICAgICBzaG93X3JlZ3Mo cHRfcmVncyk7Cj4gLQo+ICAgICAgICAgcGFuaWMoIiIpOwo+ICB9Cj4KPiBAQCAtMTIxLDE0ICs3 NSw2IEBAIHZvaWQgZG9fcHJlZmV0Y2hfYWJvcnQgKHN0cnVjdCBwdF9yZWdzICpwdF9yZWdzKQo+ ICAgKi8KPiAgdm9pZCBkb19kYXRhX2Fib3J0IChzdHJ1Y3QgcHRfcmVncyAqcHRfcmVncykKPiAg ewo+IC0gICAgICAgdTMyIGZhcjsKPiAtCj4gLSAgICAgICBhc20gdm9sYXRpbGUgKCJtcmMgICAg IHAxNSwgMCwgJTAsIGM2LCBjMCwgMCIgOiAiPXIiIChmYXIpIDogOiAiY2MiKTsKPiAtCj4gLSAg ICAgICBwcmludGYoInVuYWJsZSB0byBoYW5kbGUgJXMgYXQgYWRkcmVzcyAweCUwOHhcbiIsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgZmFyIDwgUEFHRV9TSVpFID8gIk5VTEwgcG9pbnRlciBk ZXJlZmVyZW5jZSIgOgo+IC0gICAgICAgICAgICAgICAgICAgICAgICJwYWdpbmcgcmVxdWVzdCIs IGZhcik7Cj4gLQo+ICAgICAgICAgZG9fZXhjZXB0aW9uKHB0X3JlZ3MpOwo+ICB9Cj4KPiBAQCAt MTU2LDYgKzEwMiw0MyBAQCB2b2lkIGRvX2lycSAoc3RydWN0IHB0X3JlZ3MgKnB0X3JlZ3MpCj4g ICAgICAgICBkb19leGNlcHRpb24ocHRfcmVncyk7Cj4gIH0KPgo+ICt2b2lkIGRvX2JhZF9zeW5j KHN0cnVjdCBwdF9yZWdzICpwdF9yZWdzKQo+ICt7Cj4gKyAgICAgICBwcmludGYoImJhZCBzeW5j XG4iKTsKPiArICAgICAgIGRvX2V4Y2VwdGlvbihwdF9yZWdzKTsKPiArfQo+ICsKPiArdm9pZCBk b19iYWRfaXJxKHN0cnVjdCBwdF9yZWdzICpwdF9yZWdzKQo+ICt7Cj4gKyAgICAgICBwcmludGYo ImJhZCBpcnFcbiIpOwo+ICsgICAgICAgZG9fZXhjZXB0aW9uKHB0X3JlZ3MpOwo+ICt9Cj4gKwo+ ICt2b2lkIGRvX2JhZF9maXEoc3RydWN0IHB0X3JlZ3MgKnB0X3JlZ3MpCj4gK3sKPiArICAgICAg IHByaW50ZigiYmFkIGZpcVxuIik7Cj4gKyAgICAgICBkb19leGNlcHRpb24ocHRfcmVncyk7Cj4g K30KPiArCj4gK3ZvaWQgZG9fYmFkX2Vycm9yKHN0cnVjdCBwdF9yZWdzICpwdF9yZWdzKQo+ICt7 Cj4gKyAgICAgICBwcmludGYoImJhZCBlcnJvclxuIik7Cj4gKyAgICAgICBkb19leGNlcHRpb24o cHRfcmVncyk7Cj4gK30KPiArCj4gK3ZvaWQgZG9fc3luYyhzdHJ1Y3QgcHRfcmVncyAqcHRfcmVn cykKPiArewo+ICsgICAgICAgcHJpbnRmKCJzeW5jIGV4Y2VwdGlvblxuIik7Cj4gKyAgICAgICBk b19leGNlcHRpb24ocHRfcmVncyk7Cj4gK30KPiArCj4gKwo+ICt2b2lkIGRvX2Vycm9yKHN0cnVj dCBwdF9yZWdzICpwdF9yZWdzKQo+ICt7Cj4gKyAgICAgICBwcmludGYoImVycm9yIGV4Y2VwdGlv blxuIik7Cj4gKyAgICAgICBkb19leGNlcHRpb24ocHRfcmVncyk7Cj4gK30KPiArCj4gIGV4dGVy biB2b2xhdGlsZSBpbnQgYXJtX2lnbm9yZV9kYXRhX2Fib3J0Owo+ICBleHRlcm4gdm9sYXRpbGUg aW50IGFybV9kYXRhX2Fib3J0X29jY3VycmVkOwo+Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Nw dS9sb3dsZXZlbC5TIGIvYXJjaC9hcm0vY3B1L2xvd2xldmVsLlMKPiBpbmRleCBlNWJhYTEyLi4w NjkxYjJiIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL2NwdS9sb3dsZXZlbC5TCj4gKysrIGIvYXJj aC9hcm0vY3B1L2xvd2xldmVsLlMKPiBAQCAtMSw2MCArMSw0MyBAQAo+ICAjaW5jbHVkZSA8bGlu dXgvbGlua2FnZS5oPgo+ICAjaW5jbHVkZSA8aW5pdC5oPgo+ICAjaW5jbHVkZSA8YXNtL3N5c3Rl bS5oPgo+ICsjaW5jbHVkZSA8YXNtL2dpYy5oPgo+ICsjaW5jbHVkZSA8YXNtLWdlbmVyaWMvbWVt b3J5X2xheW91dC5oPgo+Cj4gIC5zZWN0aW9uICIudGV4dF9iYXJlX2luaXRfIiwiYXgiCj4gKwo+ ICBFTlRSWShhcm1fY3B1X2xvd2xldmVsX2luaXQpCj4gLSAgICAgICAvKiBzYXZlIGxyLCBzaW5j ZSBpdCBtYXkgYmUgYmFua2VkIGF3YXkgd2l0aCBhIHByb2Nlc3NvciBtb2RlIGNoYW5nZSAqLwo+ IC0gICAgICAgbW92ICAgICByMiwgbHIKPiAtICAgICAgIC8qIHNldCB0aGUgY3B1IHRvIFNWQzMy IG1vZGUsIG1hc2sgaXJxIGFuZCBmaXEgKi8KPiAtICAgICAgIG1ycyAgICAgcjEyLCBjcHNyCj4g LSAgICAgICBiaWMgICAgIHIxMiwgcjEyLCAjMHgxZgo+IC0gICAgICAgb3JyICAgICByMTIsIHIx MiwgIzB4ZDMKPiAtICAgICAgIG1zciAgICAgY3BzciwgcjEyCj4gLQo+IC0jaWYgX19MSU5VWF9B Uk1fQVJDSF9fID49IDYKPiAtICAgICAgIC8qCj4gLSAgICAgICAgKiBJQ0lBTExVOiBJbnZhbGlk YXRlIGFsbCBpbnN0cnVjdGlvbiBjYWNoZXMgdG8gUG9VLAo+IC0gICAgICAgICogaW5jbHVkZXMg Zmx1c2hpbmcgb2YgYnJhbmNoIHByZWRpY3RvcnMuCj4gLSAgICAgICAgKiBFdmVuIGlmIHRoZSBp LWNhY2hlIGlzIG9mZiBpdCBtaWdodCBjb250YWluIHN0YWxlIGVudHJpZXMKPiAtICAgICAgICAq IHRoYXQgYXJlIGJldHRlciBkaXNjYXJkZWQgYmVmb3JlIGVuYWJsaW5nIHRoZSBjYWNoZS4KPiAt ICAgICAgICAqIEFyY2hpdGVjdHVhbGx5IHRoaXMgaXMgZXZlbiBwb3NzaWJsZSBhZnRlciBhIGNv bGQgcmVzZXQuCj4gLSAgICAgICAgKi8KPiAtICAgICAgIG1jciAgICAgcDE1LCAwLCByMTIsIGM3 LCBjNSwgMAo+IC0gICAgICAgLyogRFNCLCBlbnN1cmUgY29tcGxldGlvbiBvZiB0aGUgaW52YWxp ZGF0aW9uICovCj4gLSAgICAgICBtY3IgICAgIHAxNSwgMCwgcjEyLCBjNywgYzEwLCA0Cj4gLSAg ICAgICAvKgo+IC0gICAgICAgICogSVNCLCBlbnN1cmUgaW5zdHJ1Y3Rpb24gZmV0Y2ggcGF0aCBp cyBpbiBzeW5jLgo+IC0gICAgICAgICogTm90ZSB0aGF0IHRoZSBBUk0gQXJjaGl0ZWN0dXJlIFJl ZmVyZW5jZSBNYW51YWwsIEFSTXY3LUEgYW5kIEFSTXY3LVIKPiAtICAgICAgICAqIGVkaXRpb24g KEFSTSBEREkgMDQwNkMuYykgZG9lc24ndCBkZWZpbmUgdGhpcyBpbnN0cnVjdGlvbiBpbiB0aGUK PiAtICAgICAgICAqIEFSTXY2IHBhcnQgKEQxMi43LjEwKS4gSXQgb25seSBoYXM6ICJTdXBwb3J0 IG9mIGFkZGl0aW9uYWwKPiAtICAgICAgICAqIG9wZXJhdGlvbnMgaXMgSU1QTEVNRU5UQVRJT04g REVGSU5FRCIuCj4gLSAgICAgICAgKiBCdXQgYW4gZWFybGllciB2ZXJzaW9uIG9mIHRoZSBBUk1B Uk0gKEFSTSBEREkgMDEwMEkpIGRvZXMgZGVmaW5lIGl0Cj4gLSAgICAgICAgKiBhcyAiRmx1c2gg cHJlZmV0Y2ggYnVmZmVyIChQcmVmZXRjaEZsdXNoKSIuCj4gLSAgICAgICAgKi8KPiAtICAgICAg IG1jciAgICAgcDE1LCAwLCByMTIsIGM3LCBjNSwgNAo+IC0jZW5kaWYKPiAtCj4gLSAgICAgICAv KiBkaXNhYmxlIE1NVSBzdHVmZiBhbmQgZGF0YS91bmlmaWVkIGNhY2hlcyAqLwo+IC0gICAgICAg bXJjICAgICBwMTUsIDAsIHIxMiwgYzEsIGMwLCAwICAgICAgICAgIC8qIFNDVExSICovCj4gLSAg ICAgICBiaWMgICAgIHIxMiwgcjEyLCAjKENSX00gfCBDUl9DIHwgQ1JfQikKPiAtICAgICAgIGJp YyAgICAgcjEyLCByMTIsICMoQ1JfUyB8IENSX1IgfCBDUl9WKQo+IC0KPiAtICAgICAgIC8qIGVu YWJsZSBpbnN0cnVjdGlvbiBjYWNoZSAqLwo+IC0gICAgICAgb3JyICAgICByMTIsIHIxMiwgI0NS X0kKPiAtCj4gLSNpZiBfX0xJTlVYX0FSTV9BUkNIX18gPj0gNgo+IC0gICAgICAgb3JyICAgICBy MTIsIHIxMiwgI0NSX1UKPiAtICAgICAgIGJpYyAgICAgcjEyLCByMTIsICNDUl9BCj4gLSNlbHNl Cj4gLSAgICAgICBvcnIgICAgIHIxMiwgcjEyLCAjQ1JfQQo+IC0jZW5kaWYKPiAtCj4gLSNpZmRl ZiBfX0FSTUVCX18KPiAtICAgICAgIG9yciAgICAgcjEyLCByMTIsICNDUl9CCj4gLSNlbmRpZgo+ IC0KPiAtICAgICAgIG1jciAgICAgcDE1LCAwLCByMTIsIGMxLCBjMCwgMCAgICAgICAgICAvKiBT Q1RMUiAqLwo+IC0KPiAtICAgICAgIG1vdiAgICAgcGMsIHIyCj4gKyAgICAgICBhZHIgICAgIHgw LCB2ZWN0b3JzCj4gKyAgICAgICBtcnMgICAgIHgxLCBDdXJyZW50RUwKPiArICAgICAgIGNtcCAg ICAgeDEsICMweEMgICAgICAgICAgICAgICAgLyogQ2hlY2sgRUwzIHN0YXRlICovCj4gKyAgICAg ICBiLmVxICAgIDFmCj4gKyAgICAgICBjbXAgICAgIHgxLCAjMHg4ICAgICAgICAgICAgICAgIC8q IENoZWNrIEVMMiBzdGF0ZSAqLwo+ICsgICAgICAgYi5lcSAgICAyZgo+ICsgICAgICAgY21wICAg ICB4MSwgIzB4NCAgICAgICAgICAgICAgICAvKiBDaGVjayBFTDEgc3RhdGUgKi8KPiArICAgICAg IGIuZXEgICAgM2YKPiArCj4gKzE6Cj4gKyAgICAgICBtc3IgICAgIHZiYXJfZWwzLCB4MAo+ICsg ICAgICAgbW92ICAgICB4MCwgIzEgICAgICAgICAgICAgICAgICAvKiBOb24tU2VjdXJlIEVMMC8x ICovCj4gKyAgICAgICBvcnIgICAgIHgwLCB4MCwgIygxIDw8IDEwKSAgICAgIC8qIDY0LWJpdCBF TDIgKi8KPiArICAgICAgIG1zciAgICAgc2NyX2VsMywgeDAKPiArICAgICAgIG1zciAgICAgY3B0 cl9lbDMsIHh6cgo+ICsgICAgICAgYiAgICAgICBkb25lCj4gKwo+ICsyOgo+ICsgICAgICAgbXNy ICAgICB2YmFyX2VsMiwgeDAKPiArICAgICAgIG1vdiAgICAgeDAsICMweDMzZmYgICAgICAgICAg ICAgLyogRW5hYmxlIEZQL1NJTUQgKi8KPiArICAgICAgIG1zciAgICAgY3B0cl9lbDIsIHgwCj4g KyAgICAgICBiICAgICAgIGRvbmUKPiArCj4gKwo+ICszOgo+ICsgICAgICAgbXNyICAgICB2YmFy X2VsMSwgeDAKPiArICAgICAgIG1vdiAgICAgeDAsICMoMyA8PCAyMCkgICAgICAgICAgLyogRW5h YmxlIEZQL1NJTUQgKi8KPiArICAgICAgIG1zciAgICAgY3BhY3JfZWwxLCB4MAo+ICsgICAgICAg YiAgICAgICBkb25lCj4gKwo+ICtkb25lOgo+ICsgICAgICAgcmV0Cj4gKwo+ICBFTkRQUk9DKGFy bV9jcHVfbG93bGV2ZWxfaW5pdCkKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY3B1L21tdS5jIGIv YXJjaC9hcm0vY3B1L21tdS5jCj4gaW5kZXggYTMxYmNlNC4uYjE3MWY4MCAxMDA2NDQKPiAtLS0g YS9hcmNoL2FybS9jcHUvbW11LmMKPiArKysgYi9hcmNoL2FybS9jcHUvbW11LmMKPiBAQCAtMzIs NTQgKzMyLDggQEAKPgo+ICAjaW5jbHVkZSAibW11LmgiCj4KPiAtc3RhdGljIHVuc2lnbmVkIGxv bmcgKnR0YjsKPiAtCj4gLXN0YXRpYyB2b2lkIGNyZWF0ZV9zZWN0aW9ucyh1bnNpZ25lZCBsb25n IHZpcnQsIHVuc2lnbmVkIGxvbmcgcGh5cywgaW50IHNpemVfbSwKPiAtICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGZsYWdzKQo+IC17Cj4gLSAgICAgICBpbnQgaTsKPiAtCj4gLSAgICAgICBw aHlzID4+PSAyMDsKPiAtICAgICAgIHZpcnQgPj49IDIwOwo+IC0KPiAtICAgICAgIGZvciAoaSA9 IHNpemVfbTsgaSA+IDA7IGktLSwgdmlydCsrLCBwaHlzKyspCj4gLSAgICAgICAgICAgICAgIHR0 Ylt2aXJ0XSA9IChwaHlzIDw8IDIwKSB8IGZsYWdzOwo+IC0KPiAtICAgICAgIF9fbW11X2NhY2hl X2ZsdXNoKCk7Cj4gLX0KPiAtCj4gLS8qCj4gLSAqIERvIGl0IHRoZSBzaW1wbGUgd2F5IGZvciBu b3cgYW5kIGludmFsaWRhdGUgdGhlIGVudGlyZQo+IC0gKiB0bGIKPiAtICovCj4gLXN0YXRpYyBp bmxpbmUgdm9pZCB0bGJfaW52YWxpZGF0ZSh2b2lkKQo+IC17Cj4gLSAgICAgICBhc20gdm9sYXRp bGUgKAo+IC0gICAgICAgICAgICAgICAibW92ICAgIHIwLCAjMFxuIgo+IC0gICAgICAgICAgICAg ICAibWNyICAgIHAxNSwgMCwgcjAsIGM3LCBjMTAsIDQ7IEAgZHJhaW4gd3JpdGUgYnVmZmVyXG4i Cj4gLSAgICAgICAgICAgICAgICJtY3IgICAgcDE1LCAwLCByMCwgYzgsIGM2LCAwOyAgQCBpbnZh bGlkYXRlIEQgVExCc1xuIgo+IC0gICAgICAgICAgICAgICAibWNyICAgIHAxNSwgMCwgcjAsIGM4 LCBjNSwgMDsgIEAgaW52YWxpZGF0ZSBJIFRMQnNcbiIKPiAtICAgICAgICAgICAgICAgOgo+IC0g ICAgICAgICAgICAgICA6Cj4gLSAgICAgICAgICAgICAgIDogInIwIgo+IC0gICAgICAgKTsKPiAt fQo+IC0KPiAtI2RlZmluZSBQVEVfRkxBR1NfQ0FDSEVEX1Y3IChQVEVfRVhUX1RFWCgxKSB8IFBU RV9CVUZGRVJBQkxFIHwgUFRFX0NBQ0hFQUJMRSkKPiAtI2RlZmluZSBQVEVfRkxBR1NfV0NfVjcg UFRFX0VYVF9URVgoMSkKPiAtI2RlZmluZSBQVEVfRkxBR1NfVU5DQUNIRURfVjcgKDApCj4gLSNk ZWZpbmUgUFRFX0ZMQUdTX0NBQ0hFRF9WNCAoUFRFX1NNQUxMX0FQX1VOT19TUlcgfCBQVEVfQlVG RkVSQUJMRSB8IFBURV9DQUNIRUFCTEUpCj4gLSNkZWZpbmUgUFRFX0ZMQUdTX1VOQ0FDSEVEX1Y0 IFBURV9TTUFMTF9BUF9VTk9fU1JXCj4gLQo+IC0vKgo+IC0gKiBQVEUgZmxhZ3MgdG8gc2V0IGNh Y2hlZCBhbmQgdW5jYWNoZWQgYXJlYXMuCj4gLSAqIFRoaXMgd2lsbCBiZSBkZXRlcm1pbmVkIGF0 IHJ1bnRpbWUuCj4gLSAqLwo+IC1zdGF0aWMgdWludDMyX3QgcHRlX2ZsYWdzX2NhY2hlZDsKPiAt c3RhdGljIHVpbnQzMl90IHB0ZV9mbGFnc193YzsKPiAtc3RhdGljIHVpbnQzMl90IHB0ZV9mbGFn c191bmNhY2hlZDsKPiAtCj4gLSNkZWZpbmUgUFRFX01BU0sgKCgxIDw8IDEyKSAtIDEpCj4gK3N0 YXRpYyB1aW50NjRfdCAqdHRiOwo+ICtzdGF0aWMgaW50IGZyZWVfaWR4Owo+Cj4gIHN0YXRpYyB2 b2lkIGFybV9tbXVfbm90X2luaXRpYWxpemVkX2Vycm9yKHZvaWQpCj4gIHsKPiBAQCAtOTIsMzI5 ICs0NiwxNzUgQEAgc3RhdGljIHZvaWQgYXJtX21tdV9ub3RfaW5pdGlhbGl6ZWRfZXJyb3Iodm9p ZCkKPiAgICAgICAgIHBhbmljKCJNTVUgbm90IGluaXRpYWxpemVkXG4iKTsKPiAgfQo+Cj4gKwo+ ICAvKgo+IC0gKiBDcmVhdGUgYSBzZWNvbmQgbGV2ZWwgdHJhbnNsYXRpb24gdGFibGUgZm9yIHRo ZSBnaXZlbiB2aXJ0dWFsIGFkZHJlc3MuCj4gLSAqIFdlIGluaXRpYWxseSBjcmVhdGUgYSBmbGF0 IHVuY2FjaGVkIG1hcHBpbmcgb24gaXQuCj4gLSAqIE5vdCB5ZXQgZXhwb3J0ZWQsIGJ1dCBtYXkg YmUgbGF0ZXIgaWYgc29tZW9uZSBmaW5kcyB1c2UgZm9yIGl0Lgo+ICsgKiBEbyBpdCB0aGUgc2lt cGxlIHdheSBmb3Igbm93IGFuZCBpbnZhbGlkYXRlIHRoZSBlbnRpcmUKPiArICogdGxiCj4gICAq Lwo+IC1zdGF0aWMgdTMyICphcm1fY3JlYXRlX3B0ZSh1bnNpZ25lZCBsb25nIHZpcnQpCj4gK3N0 YXRpYyBpbmxpbmUgdm9pZCB0bGJfaW52YWxpZGF0ZSh2b2lkKQo+ICB7Cj4gLSAgICAgICB1MzIg KnRhYmxlOwo+IC0gICAgICAgaW50IGk7Cj4gKyAgICAgICB1bnNpZ25lZCBpbnQgZWwgPSBjdXJy ZW50X2VsKCk7Cj4KPiAtICAgICAgIHRhYmxlID0gbWVtYWxpZ24oMHg0MDAsIDB4NDAwKTsKPiAr ICAgICAgIGRzYigpOwo+Cj4gLSAgICAgICBpZiAoIXR0YikKPiAtICAgICAgICAgICAgICAgYXJt X21tdV9ub3RfaW5pdGlhbGl6ZWRfZXJyb3IoKTsKPiAtCj4gLSAgICAgICB0dGJbdmlydCA+PiAy MF0gPSAodW5zaWduZWQgbG9uZyl0YWJsZSB8IFBNRF9UWVBFX1RBQkxFOwo+IC0KPiAtICAgICAg IGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewo+IC0gICAgICAgICAgICAgICB0YWJsZVtpXSA9 IHZpcnQgfCBQVEVfVFlQRV9TTUFMTCB8IHB0ZV9mbGFnc191bmNhY2hlZDsKPiAtICAgICAgICAg ICAgICAgdmlydCArPSBQQUdFX1NJWkU7Cj4gLSAgICAgICB9Cj4gKyAgICAgICBpZiAoZWwgPT0g MSkKPiArICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oInRsYmkgYWxsZTFcblx0 IiA6IDogOiAibWVtb3J5Iik7Cj4gKyAgICAgICBlbHNlIGlmIChlbCA9PSAyKQo+ICsgICAgICAg ICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygidGxiaSBhbGxlMlxuXHQiIDogOiA6ICJtZW1v cnkiKTsKPiArICAgICAgIGVsc2UgaWYgKGVsID09IDMpCj4gKyAgICAgICAgICAgICAgIF9fYXNt X18gX192b2xhdGlsZV9fKCJ0bGJpIGFsbGUzXG5cdCIgOiA6IDogIm1lbW9yeSIpOwo+Cj4gLSAg ICAgICByZXR1cm4gdGFibGU7Cj4gKyAgICAgICBkc2IoKTsKPiArICAgICAgIGlzYigpOwo+ICB9 Cj4KPiAtc3RhdGljIHUzMiAqZmluZF9wdGUodW5zaWduZWQgbG9uZyBhZHIpCj4gK3N0YXRpYyBp bnQgbGV2ZWwyc2hpZnQoaW50IGxldmVsKQo+ICB7Cj4gLSAgICAgICB1MzIgKnRhYmxlOwo+IC0K PiAtICAgICAgIGlmICghdHRiKQo+IC0gICAgICAgICAgICAgICBhcm1fbW11X25vdF9pbml0aWFs aXplZF9lcnJvcigpOwo+IC0KPiAtICAgICAgIGlmICgodHRiW2FkciA+PiAyMF0gJiBQTURfVFlQ RV9NQVNLKSAhPSBQTURfVFlQRV9UQUJMRSkgewo+IC0gICAgICAgICAgICAgICBzdHJ1Y3QgbWVt b3J5X2JhbmsgKmJhbms7Cj4gLSAgICAgICAgICAgICAgIGludCBpID0gMDsKPiArICAgICAgIC8q IFBhZ2UgaXMgMTIgYml0cyB3aWRlLCBldmVyeSBsZXZlbCB0cmFuc2xhdGVzIDkgYml0cyAqLwo+ ICsgICAgICAgcmV0dXJuICgxMiArIDkgKiAoMyAtIGxldmVsKSk7Cj4gK30KPgo+IC0gICAgICAg ICAgICAgICAvKgo+IC0gICAgICAgICAgICAgICAgKiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxl ZCBmb3IgcGFnZSBtYXBwZWQgbWVtb3J5IGluc2lkZSBvdXIKPiAtICAgICAgICAgICAgICAgICog bWVtb3J5IGJhbmtzLiBJdCdzIGEgYnVnIHRvIGNhbGwgaXQgd2l0aCBzZWN0aW9uIG1hcHBlZCBt ZW1vcnkKPiAtICAgICAgICAgICAgICAgICogbG9jYXRpb25zLgo+IC0gICAgICAgICAgICAgICAg Ki8KPiAtICAgICAgICAgICAgICAgcHJfY3JpdCgiJXM6IFRUQiBmb3IgYWRkcmVzcyAweCUwOGx4 IGlzIG5vdCBvZiB0eXBlIHRhYmxlXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgX19mdW5jX18sIGFkcik7Cj4gLSAgICAgICAgICAgICAgIHByX2NyaXQoIk1lbW9yeSBiYW5r czpcbiIpOwo+IC0gICAgICAgICAgICAgICBmb3JfZWFjaF9tZW1vcnlfYmFuayhiYW5rKQo+IC0g ICAgICAgICAgICAgICAgICAgICAgIHByX2NyaXQoIiMlZCAweCUwOGx4IC0gMHglMDhseFxuIiwg aSwgYmFuay0+c3RhcnQsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJhbmstPnN0YXJ0ICsgYmFuay0+c2l6ZSAtIDEpOwo+IC0gICAgICAgICAgICAgICBCVUcoKTsK PiAtICAgICAgIH0KPiArc3RhdGljIHVpbnQ2NF90IGxldmVsMm1hc2soaW50IGxldmVsKQo+ICt7 Cj4gKyAgICAgICB1aW50NjRfdCBtYXNrID0gLUVJTlZBTDsKPgo+IC0gICAgICAgLyogZmluZCB0 aGUgY29hcnNlIHBhZ2UgdGFibGUgYmFzZSBhZGRyZXNzICovCj4gLSAgICAgICB0YWJsZSA9ICh1 MzIgKikodHRiW2FkciA+PiAyMF0gJiB+MHgzZmYpOwo+ICsgICAgICAgaWYgKGxldmVsID09IDEp Cj4gKyAgICAgICAgICAgICAgIG1hc2sgPSBMMV9BRERSX01BU0s7Cj4gKyAgICAgICBlbHNlIGlm IChsZXZlbCA9PSAyKQo+ICsgICAgICAgICAgICAgICBtYXNrID0gTDJfQUREUl9NQVNLOwo+ICsg ICAgICAgZWxzZSBpZiAobGV2ZWwgPT0gMykKPiArICAgICAgICAgICAgICAgbWFzayA9IEwzX0FE RFJfTUFTSzsKPgo+IC0gICAgICAgLyogZmluZCBzZWNvbmQgbGV2ZWwgZGVzY3JpcHRvciAqLwo+ IC0gICAgICAgcmV0dXJuICZ0YWJsZVsoYWRyID4+IFBBR0VfU0hJRlQpICYgMHhmZl07Cj4gKyAg ICAgICByZXR1cm4gbWFzazsKPiAgfQo+Cj4gLXN0YXRpYyB2b2lkIGRtYV9mbHVzaF9yYW5nZSh1 bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKPiArc3RhdGljIGludCBwdGVf dHlwZSh1aW50NjRfdCAqcHRlKQo+ICB7Cj4gLSAgICAgICBfX2RtYV9mbHVzaF9yYW5nZShzdGFy dCwgZW5kKTsKPiAtICAgICAgIGlmIChvdXRlcl9jYWNoZS5mbHVzaF9yYW5nZSkKPiAtICAgICAg ICAgICAgICAgb3V0ZXJfY2FjaGUuZmx1c2hfcmFuZ2Uoc3RhcnQsIGVuZCk7Cj4gKyAgICAgICBy ZXR1cm4gKnB0ZSAmIFBNRF9UWVBFX01BU0s7Cj4gIH0KPgo+IC1zdGF0aWMgdm9pZCBkbWFfaW52 X3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQo+ICtzdGF0aWMg dm9pZCBzZXRfdGFibGUodWludDY0X3QgKnB0LCB1aW50NjRfdCAqdGFibGVfYWRkcikKPiAgewo+ IC0gICAgICAgaWYgKG91dGVyX2NhY2hlLmludl9yYW5nZSkKPiAtICAgICAgICAgICAgICAgb3V0 ZXJfY2FjaGUuaW52X3JhbmdlKHN0YXJ0LCBlbmQpOwo+IC0gICAgICAgX19kbWFfaW52X3Jhbmdl KHN0YXJ0LCBlbmQpOwo+ICsgICAgICAgdWludDY0X3QgdmFsOwo+ICsKPiArICAgICAgIHZhbCA9 IFBNRF9UWVBFX1RBQkxFIHwgKHVpbnQ2NF90KXRhYmxlX2FkZHI7Cj4gKyAgICAgICAqcHQgPSB2 YWw7Cj4gIH0KPgo+IC1zdGF0aWMgaW50IF9fcmVtYXBfcmFuZ2Uodm9pZCAqX3N0YXJ0LCBzaXpl X3Qgc2l6ZSwgdTMyIHB0ZV9mbGFncykKPiArc3RhdGljIHVpbnQ2NF90ICpjcmVhdGVfdGFibGUo dm9pZCkKPiAgewo+IC0gICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCA9ICh1bnNpZ25lZCBsb25n KV9zdGFydDsKPiAtICAgICAgIHUzMiAqcDsKPiAtICAgICAgIGludCBudW1lbnRyaWVzLCBpOwo+ IC0KPiAtICAgICAgIG51bWVudHJpZXMgPSBzaXplID4+IFBBR0VfU0hJRlQ7Cj4gLSAgICAgICBw ID0gZmluZF9wdGUoc3RhcnQpOwo+IC0KPiAtICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1lbnRy aWVzOyBpKyspIHsKPiAtICAgICAgICAgICAgICAgcFtpXSAmPSB+UFRFX01BU0s7Cj4gLSAgICAg ICAgICAgICAgIHBbaV0gfD0gcHRlX2ZsYWdzIHwgUFRFX1RZUEVfU01BTEw7Cj4gLSAgICAgICB9 Cj4gKyAgICAgICB1aW50NjRfdCAqbmV3X3RhYmxlID0gdHRiICsgZnJlZV9pZHggKiBHUkFOVUxF X1NJWkU7Cj4KPiAtICAgICAgIGRtYV9mbHVzaF9yYW5nZSgodW5zaWduZWQgbG9uZylwLAo+IC0g ICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKXAgKyBudW1lbnRyaWVzICogc2l6 ZW9mKHUzMikpOwo+ICsgICAgICAgLyogTWFyayBhbGwgZW50cmllcyBhcyBpbnZhbGlkICovCj4g KyAgICAgICBtZW1zZXQobmV3X3RhYmxlLCAwLCBHUkFOVUxFX1NJWkUpOwo+Cj4gLSAgICAgICB0 bGJfaW52YWxpZGF0ZSgpOwo+ICsgICAgICAgZnJlZV9pZHgrKzsKPgo+IC0gICAgICAgcmV0dXJu IDA7Cj4gKyAgICAgICByZXR1cm4gbmV3X3RhYmxlOwo+ICB9Cj4KPiAtaW50IGFyY2hfcmVtYXBf cmFuZ2Uodm9pZCAqc3RhcnQsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBmbGFncykKPiArc3RhdGlj IHVpbnQ2NF90ICpnZXRfbGV2ZWxfdGFibGUodWludDY0X3QgKnB0ZSkKPiAgewo+IC0gICAgICAg dTMyIHB0ZV9mbGFnczsKPiAtCj4gLSAgICAgICBzd2l0Y2ggKGZsYWdzKSB7Cj4gLSAgICAgICBj YXNlIE1BUF9DQUNIRUQ6Cj4gLSAgICAgICAgICAgICAgIHB0ZV9mbGFncyA9IHB0ZV9mbGFnc19j YWNoZWQ7Cj4gLSAgICAgICAgICAgICAgIGJyZWFrOwo+IC0gICAgICAgY2FzZSBNQVBfVU5DQUNI RUQ6Cj4gLSAgICAgICAgICAgICAgIHB0ZV9mbGFncyA9IHB0ZV9mbGFnc191bmNhY2hlZDsKPiAt ICAgICAgICAgICAgICAgYnJlYWs7Cj4gLSAgICAgICBkZWZhdWx0Ogo+IC0gICAgICAgICAgICAg ICByZXR1cm4gLUVJTlZBTDsKPiArICAgICAgIHVpbnQ2NF90ICp0YWJsZSA9ICh1aW50NjRfdCAq KSgqcHRlICYgWExBVF9BRERSX01BU0spOwo+ICsKPiArICAgICAgIGlmIChwdGVfdHlwZShwdGUp ICE9IFBNRF9UWVBFX1RBQkxFKSB7Cj4gKyAgICAgICAgICAgICAgIHRhYmxlID0gY3JlYXRlX3Rh YmxlKCk7Cj4gKyAgICAgICAgICAgICAgIHNldF90YWJsZShwdGUsIHRhYmxlKTsKPiAgICAgICAg IH0KPgo+IC0gICAgICAgcmV0dXJuIF9fcmVtYXBfcmFuZ2Uoc3RhcnQsIHNpemUsIHB0ZV9mbGFn cyk7Cj4gKyAgICAgICByZXR1cm4gdGFibGU7Cj4gIH0KPgo+IC12b2lkICptYXBfaW9fc2VjdGlv bnModW5zaWduZWQgbG9uZyBwaHlzLCB2b2lkICpfc3RhcnQsIHNpemVfdCBzaXplKQo+ICtzdGF0 aWMgdWludDY0X3QgKmZpbmRfcHRlKHVpbnQ2NF90IGFkZHIpCj4gIHsKPiAtICAgICAgIHVuc2ln bmVkIGxvbmcgc3RhcnQgPSAodW5zaWduZWQgbG9uZylfc3RhcnQsIHNlYzsKPiArICAgICAgIHVp bnQ2NF90ICpwdGU7Cj4gKyAgICAgICB1aW50NjRfdCBibG9ja19zaGlmdDsKPiArICAgICAgIHVp bnQ2NF90IGlkeDsKPiArICAgICAgIGludCBpOwo+Cj4gLSAgICAgICBwaHlzID4+PSAyMDsKPiAt ICAgICAgIGZvciAoc2VjID0gc3RhcnQ7IHNlYyA8IHN0YXJ0ICsgc2l6ZTsgc2VjICs9ICgxIDw8 IDIwKSkKPiAtICAgICAgICAgICAgICAgdHRiW3NlYyA+PiAyMF0gPSAocGh5cysrIDw8IDIwKSB8 IFBNRF9TRUNUX0RFRl9VTkNBQ0hFRDsKPiArICAgICAgIHB0ZSA9IHR0YjsKPgo+IC0gICAgICAg ZG1hX2ZsdXNoX3JhbmdlKCh1bnNpZ25lZCBsb25nKXR0YiwgKHVuc2lnbmVkIGxvbmcpdHRiICsg MHg0MDAwKTsKPiAtICAgICAgIHRsYl9pbnZhbGlkYXRlKCk7Cj4gLSAgICAgICByZXR1cm4gX3N0 YXJ0Owo+ICsgICAgICAgZm9yIChpID0gMTsgaSA8IDQ7IGkrKykgewo+ICsgICAgICAgICAgICAg ICBibG9ja19zaGlmdCA9IGxldmVsMnNoaWZ0KGkpOwo+ICsgICAgICAgICAgICAgICBpZHggPSAo YWRkciAmIGxldmVsMm1hc2soaSkpID4+IGJsb2NrX3NoaWZ0Owo+ICsgICAgICAgICAgICAgICBw dGUgKz0gaWR4Owo+ICsKPiArICAgICAgICAgICAgICAgaWYgKChwdGVfdHlwZShwdGUpICE9IFBN RF9UWVBFX1RBQkxFKSB8fCAoYmxvY2tfc2hpZnQgPD0gR1JBTlVMRV9TSVpFX1NISUZUKSkKPiAr ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgICAgZWxzZQo+ICsg ICAgICAgICAgICAgICAgICAgICAgIHB0ZSA9ICh1aW50NjRfdCAqKSgqcHRlICYgWExBVF9BRERS X01BU0spOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHJldHVybiBwdGU7Cj4gIH0KPgo+IC0v Kgo+IC0gKiByZW1hcCB0aGUgbWVtb3J5IGJhbmsgZGVzY3JpYmVkIGJ5IG1lbSBjYWNoYWJsZSBh bmQKPiAtICogYnVmZmVyYWJsZQo+IC0gKi8KPiAtc3RhdGljIGludCBhcm1fbW11X3JlbWFwX3Nk cmFtKHN0cnVjdCBtZW1vcnlfYmFuayAqYmFuaykKPiArc3RhdGljIHZvaWQgbWFwX3JlZ2lvbih1 aW50NjRfdCB2aXJ0LCB1aW50NjRfdCBwaHlzLCB1aW50NjRfdCBzaXplLCB1aW50NjRfdCBhdHRy KQo+ICB7Cj4gLSAgICAgICB1bnNpZ25lZCBsb25nIHBoeXMgPSAodW5zaWduZWQgbG9uZyliYW5r LT5zdGFydDsKPiAtICAgICAgIHVuc2lnbmVkIGxvbmcgdHRiX3N0YXJ0ID0gcGh5cyA+PiAyMDsK PiAtICAgICAgIHVuc2lnbmVkIGxvbmcgdHRiX2VuZCA9IChwaHlzID4+IDIwKSArIChiYW5rLT5z aXplID4+IDIwKTsKPiAtICAgICAgIHVuc2lnbmVkIGxvbmcgbnVtX3B0ZXMgPSBiYW5rLT5zaXpl ID4+IDEyOwo+IC0gICAgICAgaW50IGksIHB0ZTsKPiAtICAgICAgIHUzMiAqcHRlczsKPiArICAg ICAgIHVpbnQ2NF90IGJsb2NrX3NpemU7Cj4gKyAgICAgICB1aW50NjRfdCBibG9ja19zaGlmdDsK PiArICAgICAgIHVpbnQ2NF90ICpwdGU7Cj4gKyAgICAgICB1aW50NjRfdCBpZHg7Cj4gKyAgICAg ICB1aW50NjRfdCBhZGRyOwo+ICsgICAgICAgdWludDY0X3QgKnRhYmxlOwo+ICsgICAgICAgaW50 IGxldmVsOwo+Cj4gLSAgICAgICBwcl9kZWJ1ZygicmVtYXBwaW5nIFNEUkFNIGZyb20gMHglMDhs eCAoc2l6ZSAweCUwOGx4KVxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICBwaHlzLCBiYW5r LT5zaXplKTsKPiArICAgICAgIGlmICghdHRiKQo+ICsgICAgICAgICAgICAgICBhcm1fbW11X25v dF9pbml0aWFsaXplZF9lcnJvcigpOwo+Cj4gLSAgICAgICAvKgo+IC0gICAgICAgICogV2UgcmVw bGFjZSBlYWNoIDFNaUIgc2VjdGlvbiBpbiB0aGlzIHJhbmdlIHdpdGggc2Vjb25kIGxldmVsIHBh Z2UKPiAtICAgICAgICAqIHRhYmxlcywgdGhlcmVmb3JlIHdlIG11c3QgaGF2ZSAxTWliIGFsaWdt ZW50IGhlcmUuCj4gLSAgICAgICAgKi8KPiAtICAgICAgIGlmICgocGh5cyAmIChTWl8xTSAtIDEp KSB8fCAoYmFuay0+c2l6ZSAmIChTWl8xTSAtIDEpKSkKPiAtICAgICAgICAgICAgICAgcmV0dXJu IC1FSU5WQUw7Cj4gKyAgICAgICBhZGRyID0gdmlydDsKPgo+IC0gICAgICAgcHRlcyA9IHhtZW1h bGlnbihQQUdFX1NJWkUsIG51bV9wdGVzICogc2l6ZW9mKHUzMikpOwo+ICsgICAgICAgYXR0ciAm PSB+KFBNRF9UWVBFX1NFQ1QpOwo+Cj4gLSAgICAgICBwcl9kZWJ1ZygicHRlczogMHglcCB0dGJf c3RhcnQ6IDB4JTA4bHggdHRiX2VuZDogMHglMDhseFxuIiwKPiAtICAgICAgICAgICAgICAgICAg ICAgICBwdGVzLCB0dGJfc3RhcnQsIHR0Yl9lbmQpOwo+ICsgICAgICAgd2hpbGUgKHNpemUpIHsK PiArICAgICAgICAgICAgICAgdGFibGUgPSB0dGI7Cj4gKyAgICAgICAgICAgICAgIGZvciAobGV2 ZWwgPSAxOyBsZXZlbCA8IDQ7IGxldmVsKyspIHsKPiArICAgICAgICAgICAgICAgICAgICAgICBi bG9ja19zaGlmdCA9IGxldmVsMnNoaWZ0KGxldmVsKTsKPiArICAgICAgICAgICAgICAgICAgICAg ICBpZHggPSAoYWRkciAmIGxldmVsMm1hc2sobGV2ZWwpKSA+PiBibG9ja19zaGlmdDsKPiArICAg ICAgICAgICAgICAgICAgICAgICBibG9ja19zaXplID0gKDEgPDwgYmxvY2tfc2hpZnQpOwo+Cj4g LSAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3B0ZXM7IGkrKykgewo+IC0gICAgICAgICAgICAg ICBwdGVzW2ldID0gKHBoeXMgKyBpICogUEFHRV9TSVpFKSB8IFBURV9UWVBFX1NNQUxMIHwKPiAt ICAgICAgICAgICAgICAgICAgICAgICBwdGVfZmxhZ3NfY2FjaGVkOwo+IC0gICAgICAgfQo+ICsg ICAgICAgICAgICAgICAgICAgICAgIHB0ZSA9IHRhYmxlICsgaWR4Owo+Cj4gLSAgICAgICBwdGUg PSAwOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZXZlbCA9PSAzKQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXR0ciB8PSBQTURfVFlQRV9QQUdFOwo+ICsgICAgICAg ICAgICAgICAgICAgICAgIGVsc2UKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0 dHIgfD0gUE1EX1RZUEVfU0VDVDsKPgo+IC0gICAgICAgZm9yIChpID0gdHRiX3N0YXJ0OyBpIDwg dHRiX2VuZDsgaSsrKSB7Cj4gLSAgICAgICAgICAgICAgIHR0YltpXSA9ICh1bnNpZ25lZCBsb25n KSgmcHRlc1twdGVdKSB8IFBNRF9UWVBFX1RBQkxFIHwKPiAtICAgICAgICAgICAgICAgICAgICAg ICAoMCA8PCA0KTsKPiAtICAgICAgICAgICAgICAgcHRlICs9IDI1NjsKPiAtICAgICAgIH0KPiAr ICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZSA+PSBibG9ja19zaXplICYmIElTX0FMSUdO RUQoYWRkciwgYmxvY2tfc2l6ZSkpIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICpwdGUgPSBwaHlzIHwgYXR0cjsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFk ZHIgKz0gYmxvY2tfc2l6ZTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXMg Kz0gYmxvY2tfc2l6ZTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgLT0g YmxvY2tfc2l6ZTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+Cj4g LSAgICAgICBkbWFfZmx1c2hfcmFuZ2UoKHVuc2lnbmVkIGxvbmcpdHRiLCAodW5zaWduZWQgbG9u Zyl0dGIgKyAweDQwMDApOwo+IC0gICAgICAgZG1hX2ZsdXNoX3JhbmdlKCh1bnNpZ25lZCBsb25n KXB0ZXMsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpcHRlcyArIG51 bV9wdGVzICogc2l6ZW9mKHUzMikpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIH0KPgo+IC0g ICAgICAgdGxiX2ludmFsaWRhdGUoKTsKPiArICAgICAgICAgICAgICAgICAgICAgICB0YWJsZSA9 IGdldF9sZXZlbF90YWJsZShwdGUpOwo+ICsgICAgICAgICAgICAgICB9Cj4KPiAtICAgICAgIHJl dHVybiAwOwo+ICsgICAgICAgfQo+ICB9Cj4gLS8qCj4gLSAqIFdlIGhhdmUgOCBleGNlcHRpb24g dmVjdG9ycyBhbmQgdGhlIHRhYmxlIGNvbnNpc3RzIG9mIGFic29sdXRlCj4gLSAqIGp1bXBzLCBz byB3ZSBuZWVkIDggKiA0IGJ5dGVzIGZvciB0aGUgaW5zdHJ1Y3Rpb25zIGFuZCBhbm90aGVyCj4g LSAqIDggKiA0IGJ5dGVzIGZvciB0aGUgYWRkcmVzc2VzLgo+IC0gKi8KPiAtI2RlZmluZSBBUk1f VkVDVE9SU19TSVpFICAgICAgIChzaXplb2YodTMyKSAqIDggKiAyKQo+IC0KPiAtI2RlZmluZSBB Uk1fSElHSF9WRUNUT1JTICAgICAgIDB4ZmZmZjAwMDAKPiAtI2RlZmluZSBBUk1fTE9XX1ZFQ1RP UlMgICAgICAgICAgICAgICAgMHgwCj4KPiAtLyoqCj4gLSAqIGNyZWF0ZV92ZWN0b3JfdGFibGUg LSBjcmVhdGUgYSB2ZWN0b3IgdGFibGUgYXQgZ2l2ZW4gYWRkcmVzcwo+IC0gKiBAYWRyIC0gVGhl IGFkZHJlc3Mgd2hlcmUgdGhlIHZlY3RvciB0YWJsZSBzaG91bGQgYmUgY3JlYXRlZAo+IC0gKgo+ IC0gKiBBZnRlciBleGVjdXRpbmcgdGhpcyBmdW5jdGlvbiB0aGUgdmVjdG9yIHRhYmxlIGlzIGZv dW5kIGF0IHRoZQo+IC0gKiB2aXJ0dWFsIGFkZHJlc3MgQGFkci4KPiAtICovCj4gLXN0YXRpYyB2 b2lkIGNyZWF0ZV92ZWN0b3JfdGFibGUodW5zaWduZWQgbG9uZyBhZHIpCj4gK3N0YXRpYyB2b2lk IGNyZWF0ZV9zZWN0aW9ucyh1aW50NjRfdCB2aXJ0LCB1aW50NjRfdCBwaHlzLCB1aW50NjRfdCBz aXplX20sIHVpbnQ2NF90IGZsYWdzKQo+ICB7Cj4gLSAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgKnZl Y3RvcnNfc2RyYW07Cj4gLSAgICAgICB2b2lkICp2ZWN0b3JzOwo+IC0gICAgICAgdTMyICpleGM7 Cj4gLSAgICAgICBpbnQgaWR4Owo+IC0KPiAtICAgICAgIHZlY3RvcnNfc2RyYW0gPSByZXF1ZXN0 X3NkcmFtX3JlZ2lvbigidmVjdG9yIHRhYmxlIiwgYWRyLCBTWl80Syk7Cj4gLSAgICAgICBpZiAo dmVjdG9yc19zZHJhbSkgewo+IC0gICAgICAgICAgICAgICAvKgo+IC0gICAgICAgICAgICAgICAg KiBUaGUgdmVjdG9yIHRhYmxlIGFkZHJlc3MgaXMgaW5zaWRlIHRoZSBTRFJBTSBwaHlzaWNhbAo+ IC0gICAgICAgICAgICAgICAgKiBhZGRyZXNzIHNwYWNlLiBVc2UgdGhlIGV4aXN0aW5nIGlkZW50 aXR5IG1hcHBpbmcgZm9yCj4gLSAgICAgICAgICAgICAgICAqIHRoZSB2ZWN0b3IgdGFibGUuCj4g LSAgICAgICAgICAgICAgICAqLwo+IC0gICAgICAgICAgICAgICBwcl9kZWJ1ZygiQ3JlYXRpbmcg dmVjdG9yIHRhYmxlLCB2aXJ0ID0gcGh5cyA9IDB4JTA4bHhcbiIsIGFkcik7Cj4gLSAgICAgICAg ICAgICAgIHZlY3RvcnMgPSAodm9pZCAqKXZlY3RvcnNfc2RyYW0tPnN0YXJ0Owo+IC0gICAgICAg fSBlbHNlIHsKPiAtICAgICAgICAgICAgICAgLyoKPiAtICAgICAgICAgICAgICAgICogVGhlIHZl Y3RvciB0YWJsZSBhZGRyZXNzIGlzIG91dHNpZGUgb2YgU0RSQU0uIENyZWF0ZQo+IC0gICAgICAg ICAgICAgICAgKiBhIHNlY29uZGFyeSBwYWdlIHRhYmxlIGZvciB0aGUgc2VjdGlvbiBhbmQgbWFw Cj4gLSAgICAgICAgICAgICAgICAqIGFsbG9jYXRlZCBtZW1vcnkgdG8gdGhlIHZlY3RvciBhZGRy ZXNzLgo+IC0gICAgICAgICAgICAgICAgKi8KPiAtICAgICAgICAgICAgICAgdmVjdG9ycyA9IHht ZW1hbGlnbihQQUdFX1NJWkUsIFBBR0VfU0laRSk7Cj4gLSAgICAgICAgICAgICAgIHByX2RlYnVn KCJDcmVhdGluZyB2ZWN0b3IgdGFibGUsIHZpcnQgPSAweCVwLCBwaHlzID0gMHglMDhseFxuIiwK PiAtICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9ycywgYWRyKTsKPiAtICAgICAgICAgICAg ICAgZXhjID0gYXJtX2NyZWF0ZV9wdGUoYWRyKTsKPiAtICAgICAgICAgICAgICAgaWR4ID0gKGFk ciAmIChTWl8xTSAtIDEpKSA+PiBQQUdFX1NISUZUOwo+IC0gICAgICAgICAgICAgICBleGNbaWR4 XSA9ICh1MzIpdmVjdG9ycyB8IFBURV9UWVBFX1NNQUxMIHwgcHRlX2ZsYWdzX2NhY2hlZDsKPiAt ICAgICAgIH0KPgo+IC0gICAgICAgYXJtX2ZpeHVwX3ZlY3RvcnMoKTsKPiAtCj4gLSAgICAgICBt ZW1zZXQodmVjdG9ycywgMCwgUEFHRV9TSVpFKTsKPiAtICAgICAgIG1lbWNweSh2ZWN0b3JzLCBf X2V4Y2VwdGlvbnNfc3RhcnQsIF9fZXhjZXB0aW9uc19zdG9wIC0gX19leGNlcHRpb25zX3N0YXJ0 KTsKPiArICAgICAgIG1hcF9yZWdpb24odmlydCwgcGh5cywgc2l6ZV9tLCBmbGFncyk7Cj4gIH0K Pgo+IC0vKioKPiAtICogc2V0X3ZlY3Rvcl90YWJsZSAtIGxldCBDUFUgdXNlIHRoZSB2ZWN0b3Ig dGFibGUgYXQgZ2l2ZW4gYWRkcmVzcwo+IC0gKiBAYWRyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHZl Y3RvciB0YWJsZQo+IC0gKgo+IC0gKiBEZXBlbmRpbmcgb24gdGhlIENQVSB0aGUgcG9zc2liaWxp dGllcyBkaWZmZXIuIEFSTXY3IGFuZCBsYXRlciBhbGxvdwo+IC0gKiB0byBtYXAgdGhlIHZlY3Rv ciB0YWJsZSB0byBhcmJpdHJhcnkgYWRkcmVzc2VzLiBPdGhlciBDUFVzIG9ubHkgYWxsb3cKPiAt ICogdmVjdG9ycyBhdCAweGZmZmYwMDAwIG9yIGF0IDB4MC4KPiAtICovCj4gLXN0YXRpYyBpbnQg c2V0X3ZlY3Rvcl90YWJsZSh1bnNpZ25lZCBsb25nIGFkcikKPiArdm9pZCAqbWFwX2lvX3NlY3Rp b25zKHVpbnQ2NF90IHBoeXMsIHZvaWQgKl9zdGFydCwgc2l6ZV90IHNpemUpCj4gIHsKPiAtICAg ICAgIHUzMiBjcjsKPiAtCj4gLSAgICAgICBpZiAoY3B1X2FyY2hpdGVjdHVyZSgpID49IENQVV9B UkNIX0FSTXY3KSB7Cj4gLSAgICAgICAgICAgICAgIHByX2RlYnVnKCJWZWN0b3JzIGFyZSBhdCAw eCUwOGx4XG4iLCBhZHIpOwo+IC0gICAgICAgICAgICAgICBzZXRfdmJhcihhZHIpOwo+IC0gICAg ICAgICAgICAgICByZXR1cm4gMDsKPiAtICAgICAgIH0KPgo+IC0gICAgICAgaWYgKGFkciA9PSBB Uk1fSElHSF9WRUNUT1JTKSB7Cj4gLSAgICAgICAgICAgICAgIGNyID0gZ2V0X2NyKCk7Cj4gLSAg ICAgICAgICAgICAgIGNyIHw9IENSX1Y7Cj4gLSAgICAgICAgICAgICAgIHNldF9jcihjcik7Cj4g LSAgICAgICAgICAgICAgIGNyID0gZ2V0X2NyKCk7Cj4gLSAgICAgICAgICAgICAgIGlmIChjciAm IENSX1YpIHsKPiAtICAgICAgICAgICAgICAgICAgICAgICBwcl9kZWJ1ZygiVmVjdG9ycyBhcmUg YXQgMHglMDhseFxuIiwgYWRyKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsK PiAtICAgICAgICAgICAgICAgfSBlbHNlIHsKPiAtICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsKPiAtICAgICAgICAgICAgICAgfQo+IC0gICAgICAgfQo+IC0KPiAtICAgICAg IGlmIChhZHIgPT0gQVJNX0xPV19WRUNUT1JTKSB7Cj4gLSAgICAgICAgICAgICAgIGNyID0gZ2V0 X2NyKCk7Cj4gLSAgICAgICAgICAgICAgIGNyICY9IH5DUl9WOwo+IC0gICAgICAgICAgICAgICBz ZXRfY3IoY3IpOwo+IC0gICAgICAgICAgICAgICBjciA9IGdldF9jcigpOwo+IC0gICAgICAgICAg ICAgICBpZiAoY3IgJiBDUl9WKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1F SU5WQUw7Cj4gLSAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gLSAgICAgICAgICAgICAgICAgICAg ICAgcHJfZGVidWcoIlZlY3RvcnMgYXJlIGF0IDB4JTA4bHhcbiIsIGFkcik7Cj4gLSAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gLSAgICAgICAgICAgICAgIH0KPiAtICAgICAgIH0K PiArICAgICAgIG1hcF9yZWdpb24oKHVpbnQ2NF90KV9zdGFydCwgcGh5cywgKHVpbnQ2NF90KXNp emUsIFBNRF9TRUNUX0RFRl9VTkNBQ0hFRCk7Cj4KPiAtICAgICAgIHJldHVybiAtRUlOVkFMOwo+ ICsgICAgICAgdGxiX2ludmFsaWRhdGUoKTsKPiArICAgICAgIHJldHVybiBfc3RhcnQ7Cj4gIH0K Pgo+IC1zdGF0aWMgdm9pZCBjcmVhdGVfemVyb19wYWdlKHZvaWQpCj4gLXsKPiAtICAgICAgIHN0 cnVjdCByZXNvdXJjZSAqemVyb19zZHJhbTsKPiAtICAgICAgIHUzMiAqemVybzsKPiAtCj4gLSAg ICAgICB6ZXJvX3NkcmFtID0gcmVxdWVzdF9zZHJhbV9yZWdpb24oInplcm8gcGFnZSIsIDB4MCwg U1pfNEspOwo+IC0gICAgICAgaWYgKHplcm9fc2RyYW0pIHsKPiAtICAgICAgICAgICAgICAgLyoK PiAtICAgICAgICAgICAgICAgICogSGVyZSB3ZSB3b3VsZCBuZWVkIHRvIHNldCB0aGUgc2Vjb25k IGxldmVsIHBhZ2UgdGFibGUKPiAtICAgICAgICAgICAgICAgICogZW50cnkgdG8gZmF1bHRpbmcu IFRoaXMgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KPiAtICAgICAgICAgICAgICAgICovCj4gLSAg ICAgICAgICAgICAgIHByX2RlYnVnKCJ6ZXJvIHBhZ2UgaXMgaW4gU0RSQU0gYXJlYSwgY3VycmVu dGx5IG5vdCBzdXBwb3J0ZWRcbiIpOwo+IC0gICAgICAgfSBlbHNlIHsKPiAtICAgICAgICAgICAg ICAgemVybyA9IGFybV9jcmVhdGVfcHRlKDB4MCk7Cj4gLSAgICAgICAgICAgICAgIHplcm9bMF0g PSAwOwo+IC0gICAgICAgICAgICAgICBwcl9kZWJ1ZygiQ3JlYXRlZCB6ZXJvIHBhZ2VcbiIpOwo+ IC0gICAgICAgfQo+IC19Cj4KPiAtLyoKPiAtICogTWFwIHZlY3RvcnMgYW5kIHplcm8gcGFnZQo+ IC0gKi8KPiAtc3RhdGljIHZvaWQgdmVjdG9yc19pbml0KHZvaWQpCj4gK2ludCBhcmNoX3JlbWFw X3JhbmdlKHZvaWQgKl9zdGFydCwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGZsYWdzKQo+ICB7Cj4g LSAgICAgICAvKgo+IC0gICAgICAgICogRmlyc3QgdHJ5IHRvIHVzZSB0aGUgdmVjdG9ycyB3aGVy ZSB0aGV5IGFjdHVhbGx5IGFyZSwgd29ya3MKPiAtICAgICAgICAqIG9uIEFSTXY3IGFuZCBsYXRl ci4KPiAtICAgICAgICAqLwo+IC0gICAgICAgaWYgKCFzZXRfdmVjdG9yX3RhYmxlKCh1bnNpZ25l ZCBsb25nKV9fZXhjZXB0aW9uc19zdGFydCkpIHsKPiAtICAgICAgICAgICAgICAgYXJtX2ZpeHVw X3ZlY3RvcnMoKTsKPiAtICAgICAgICAgICAgICAgY3JlYXRlX3plcm9fcGFnZSgpOwo+IC0gICAg ICAgICAgICAgICByZXR1cm47Cj4gLSAgICAgICB9Cj4gLQo+IC0gICAgICAgLyoKPiAtICAgICAg ICAqIE5leHQgdHJ5IGhpZ2ggdmVjdG9ycyBhdCAweGZmZmYwMDAwLgo+IC0gICAgICAgICovCj4g LSAgICAgICBpZiAoIXNldF92ZWN0b3JfdGFibGUoQVJNX0hJR0hfVkVDVE9SUykpIHsKPiAtICAg ICAgICAgICAgICAgY3JlYXRlX3plcm9fcGFnZSgpOwo+IC0gICAgICAgICAgICAgICBjcmVhdGVf dmVjdG9yX3RhYmxlKEFSTV9ISUdIX1ZFQ1RPUlMpOwo+IC0gICAgICAgICAgICAgICByZXR1cm47 Cj4gLSAgICAgICB9Cj4gKyAgICAgICBtYXBfcmVnaW9uKCh1aW50NjRfdClfc3RhcnQsICh1aW50 NjRfdClfc3RhcnQsICh1aW50NjRfdClzaXplLCBmbGFncyk7Cj4KPiAtICAgICAgIC8qCj4gLSAg ICAgICAgKiBBcyBhIGxhc3QgcmVzb3J0IHVzZSBsb3cgdmVjdG9ycyBhdCAweDAuIFdpdGggdGhp cyB3ZSBjYW4ndAo+IC0gICAgICAgICogc2V0IHRoZSB6ZXJvIHBhZ2UgdG8gZmF1bHRpbmcgYW5k IGNhbid0IGNhdGNoIE5VTEwgcG9pbnRlcgo+IC0gICAgICAgICogZXhjZXB0aW9ucy4KPiAtICAg ICAgICAqLwo+IC0gICAgICAgc2V0X3ZlY3Rvcl90YWJsZShBUk1fTE9XX1ZFQ1RPUlMpOwo+IC0g ICAgICAgY3JlYXRlX3ZlY3Rvcl90YWJsZShBUk1fTE9XX1ZFQ1RPUlMpOwo+ICsgICAgICAgcmV0 dXJuIDA7Cj4gIH0KPgo+ICAvKgo+IEBAIC00MjMsNyArMjIzLDYgQEAgc3RhdGljIHZvaWQgdmVj dG9yc19pbml0KHZvaWQpCj4gIHN0YXRpYyBpbnQgbW11X2luaXQodm9pZCkKPiAgewo+ICAgICAg ICAgc3RydWN0IG1lbW9yeV9iYW5rICpiYW5rOwo+IC0gICAgICAgaW50IGk7Cj4KPiAgICAgICAg IGlmIChsaXN0X2VtcHR5KCZtZW1vcnlfYmFua3MpKQo+ICAgICAgICAgICAgICAgICAvKgo+IEBA IC00MzQsNTYgKzIzMywzMSBAQCBzdGF0aWMgaW50IG1tdV9pbml0KHZvaWQpCj4gICAgICAgICAg ICAgICAgICAqLwo+ICAgICAgICAgICAgICAgICBwYW5pYygiTU1VOiBObyBtZW1vcnkgYmFuayBm b3VuZCEgQ2Fubm90IGNvbnRpbnVlXG4iKTsKPgo+IC0gICAgICAgYXJtX3NldF9jYWNoZV9mdW5j dGlvbnMoKTsKPiAtCj4gLSAgICAgICBpZiAoY3B1X2FyY2hpdGVjdHVyZSgpID49IENQVV9BUkNI X0FSTXY3KSB7Cj4gLSAgICAgICAgICAgICAgIHB0ZV9mbGFnc19jYWNoZWQgPSBQVEVfRkxBR1Nf Q0FDSEVEX1Y3Owo+IC0gICAgICAgICAgICAgICBwdGVfZmxhZ3Nfd2MgPSBQVEVfRkxBR1NfV0Nf Vjc7Cj4gLSAgICAgICAgICAgICAgIHB0ZV9mbGFnc191bmNhY2hlZCA9IFBURV9GTEFHU19VTkNB Q0hFRF9WNzsKPiAtICAgICAgIH0gZWxzZSB7Cj4gLSAgICAgICAgICAgICAgIHB0ZV9mbGFnc19j YWNoZWQgPSBQVEVfRkxBR1NfQ0FDSEVEX1Y0Owo+IC0gICAgICAgICAgICAgICBwdGVfZmxhZ3Nf d2MgPSBQVEVfRkxBR1NfVU5DQUNIRURfVjQ7Cj4gLSAgICAgICAgICAgICAgIHB0ZV9mbGFnc191 bmNhY2hlZCA9IFBURV9GTEFHU19VTkNBQ0hFRF9WNDsKPiAtICAgICAgIH0KPiAtCj4gLSAgICAg ICBpZiAoZ2V0X2NyKCkgJiBDUl9NKSB7Cj4gLSAgICAgICAgICAgICAgIC8qCj4gLSAgICAgICAg ICAgICAgICAqIEVhcmx5IE1NVSBjb2RlIGhhcyBhbHJlYWR5IGVuYWJsZWQgdGhlIE1NVS4gV2Ug YXNzdW1lIGEKPiAtICAgICAgICAgICAgICAgICogZmxhdCAxOjEgc2VjdGlvbiBtYXBwaW5nIGlu IHRoaXMgY2FzZS4KPiAtICAgICAgICAgICAgICAgICovCj4gLSAgICAgICAgICAgICAgIGFzbSB2 b2xhdGlsZSAoIm1yYyAgcDE1LDAsJTAsYzIsYzAsMCIgOiAiPXIiKHR0YikpOwo+IC0KPiAtICAg ICAgICAgICAgICAgLyogQ2xlYXIgdW5wcmVkaWN0YWJsZSBiaXRzIFsxMzowXSAqLwo+IC0gICAg ICAgICAgICAgICB0dGIgPSAodW5zaWduZWQgbG9uZyAqKSgodW5zaWduZWQgbG9uZyl0dGIgJiB+ MHgzZmZmKTsKPiAtCj4gKyAgICAgICBpZiAoZ2V0X3NjdGxyKCkgJiBDUl9NKSB7Cj4gKyAgICAg ICAgICAgICAgIHR0YiA9ICh1aW50NjRfdCAqKWdldF90dGJyKDEpOwo+ICAgICAgICAgICAgICAg ICBpZiAoIXJlcXVlc3Rfc2RyYW1fcmVnaW9uKCJ0dGIiLCAodW5zaWduZWQgbG9uZyl0dGIsIFNa XzE2SykpCj4gICAgICAgICAgICAgICAgICAgICAgICAgLyoKPiAtICAgICAgICAgICAgICAgICAg ICAgICAgKiBUaGlzIGNhbiBtZWFuIHRoYXQ6Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICog LSB0aGUgZWFybHkgTU1VIGNvZGUgaGFzIHB1dCB0aGUgdHRiIGludG8gYSBwbGFjZQo+IC0gICAg ICAgICAgICAgICAgICAgICAgICAqICAgd2hpY2ggd2UgZG9uJ3QgaGF2ZSBpbnNpZGUgb3VyIGF2 YWlsYWJsZSBtZW1vcnkKPiAtICAgICAgICAgICAgICAgICAgICAgICAgKiAtIFNvbWVib2R5IGVs c2UgaGFzIG9jY3VwaWVkIHRoZSB0dGIgcmVnaW9uIHdoaWNoIG1lYW5zCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICogICB0aGUgdHRiIHdpbGwgZ2V0IGNvcnJ1cHRlZC4KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgKi8KPiArICAgICAgICAgICAgICAgICAgICAgICAqIFRoaXMgY2FuIG1l YW4gdGhhdDoKPiArICAgICAgICAgICAgICAgICAgICAgICAqIC0gdGhlIGVhcmx5IE1NVSBjb2Rl IGhhcyBwdXQgdGhlIHR0YiBpbnRvIGEgcGxhY2UKPiArICAgICAgICAgICAgICAgICAgICAgICAq ICAgd2hpY2ggd2UgZG9uJ3QgaGF2ZSBpbnNpZGUgb3VyIGF2YWlsYWJsZSBtZW1vcnkKPiArICAg ICAgICAgICAgICAgICAgICAgICAqIC0gU29tZWJvZHkgZWxzZSBoYXMgb2NjdXBpZWQgdGhlIHR0 YiByZWdpb24gd2hpY2ggbWVhbnMKPiArICAgICAgICAgICAgICAgICAgICAgICAqICAgdGhlIHR0 YiB3aWxsIGdldCBjb3JydXB0ZWQuCj4gKyAgICAgICAgICAgICAgICAgICAgICAgKi8KPiAgICAg ICAgICAgICAgICAgICAgICAgICBwcl9jcml0KCJDcml0aWNhbCBFcnJvcjogQ2FuJ3QgcmVxdWVz dCBTRFJBTSByZWdpb24gZm9yIHR0YiBhdCAlcFxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdHRiKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHR0Yik7Cj4gICAgICAgICB9IGVsc2Ugewo+IC0gICAgICAgICAgICAgICB0dGIgPSBtZW1hbGln bigweDEwMDAwLCAweDQwMDApOwo+IC0gICAgICAgfQo+ICsgICAgICAgICAgICAgICB0dGIgPSBt ZW1hbGlnbigweDEwMDAsIFNaXzE2Syk7Cj4gKyAgICAgICAgICAgICAgIGZyZWVfaWR4ID0gMTsK Pgo+IC0gICAgICAgcHJfZGVidWcoInR0YjogMHglcFxuIiwgdHRiKTsKPiArICAgICAgICAgICAg ICAgbWVtc2V0KHR0YiwgMCwgR1JBTlVMRV9TSVpFKTsKPgo+IC0gICAgICAgLyogU2V0IHRoZSB0 dGIgcmVnaXN0ZXIgKi8KPiAtICAgICAgIGFzbSB2b2xhdGlsZSAoIm1jciAgcDE1LDAsJTAsYzIs YzAsMCIgOiA6ICJyIih0dGIpIC8qOiovKTsKPiArICAgICAgICAgICAgICAgc2V0X3R0YnJfdGNy X21haXIoY3VycmVudF9lbCgpLCAodWludDY0X3QpdHRiLCBUQ1JfRkxBR1MsIE1FTU9SWV9BVFRS KTsKPiArICAgICAgIH0KPgo+IC0gICAgICAgLyogU2V0IHRoZSBEb21haW4gQWNjZXNzIENvbnRy b2wgUmVnaXN0ZXIgKi8KPiAtICAgICAgIGkgPSAweDM7Cj4gLSAgICAgICBhc20gdm9sYXRpbGUg KCJtY3IgIHAxNSwwLCUwLGMzLGMwLDAiIDogOiAiciIoaSkgLyo6Ki8pOwo+ICsgICAgICAgcHJf ZGVidWcoInR0YjogMHglcFxuIiwgdHRiKTsKPgo+ICAgICAgICAgLyogY3JlYXRlIGEgZmxhdCBt YXBwaW5nIHVzaW5nIDFNaUIgc2VjdGlvbnMgKi8KPiAtICAgICAgIGNyZWF0ZV9zZWN0aW9ucygw LCAwLCBQQUdFX1NJWkUsIFBNRF9TRUNUX0FQX1dSSVRFIHwgUE1EX1NFQ1RfQVBfUkVBRCB8Cj4g LSAgICAgICAgICAgICAgICAgICAgICAgUE1EX1RZUEVfU0VDVCk7Cj4gLQo+IC0gICAgICAgdmVj dG9yc19pbml0KCk7Cj4gKyAgICAgICBjcmVhdGVfc2VjdGlvbnMoMCwgMCwgR1JBTlVMRV9TSVpF LCBQTURfU0VDVF9BUF9XUklURSB8IFBNRF9TRUNUX0FQX1JFQUQgfCBQTURfVFlQRV9TRUNUKTsK Pgo+ICAgICAgICAgLyoKPiAgICAgICAgICAqIEZpcnN0IHJlbWFwIHNkcmFtIGNhY2hlZCB1c2lu ZyBzZWN0aW9ucy4KPiBAQCAtNDkxLDkyICsyNjUsNzAgQEAgc3RhdGljIGludCBtbXVfaW5pdCh2 b2lkKQo+ICAgICAgICAgICogYmVsb3cKPiAgICAgICAgICAqLwo+ICAgICAgICAgZm9yX2VhY2hf bWVtb3J5X2JhbmsoYmFuaykKPiAtICAgICAgICAgICAgICAgY3JlYXRlX3NlY3Rpb25zKGJhbmst PnN0YXJ0LCBiYW5rLT5zdGFydCwgYmFuay0+c2l6ZSA+PiAyMCwKPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBNRF9TRUNUX0RFRl9DQUNIRUQpOwo+IC0KPiAtICAgICAgIF9fbW11 X2NhY2hlX29uKCk7Cj4gLQo+IC0gICAgICAgLyoKPiAtICAgICAgICAqIE5vdyB0aGF0IHdlIGhh dmUgdGhlIE1NVSBhbmQgY2FjaGVzIG9uIHJlbWFwIHNkcmFtIGFnYWluIHVzaW5nCj4gLSAgICAg ICAgKiBwYWdlIHRhYmxlcwo+IC0gICAgICAgICovCj4gLSAgICAgICBmb3JfZWFjaF9tZW1vcnlf YmFuayhiYW5rKQo+IC0gICAgICAgICAgICAgICBhcm1fbW11X3JlbWFwX3NkcmFtKGJhbmspOwo+ ICsgICAgICAgICAgICAgICBjcmVhdGVfc2VjdGlvbnMoYmFuay0+c3RhcnQsIGJhbmstPnN0YXJ0 LCBiYW5rLT5zaXplLCBQTURfU0VDVF9ERUZfQ0FDSEVEKTsKPgo+ICAgICAgICAgcmV0dXJuIDA7 Cj4gIH0KPiAgbW11X2luaXRjYWxsKG1tdV9pbml0KTsKPgo+IC12b2lkICpkbWFfYWxsb2NfY29o ZXJlbnQoc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUpCj4gK3ZvaWQgbW11X2Vu YWJsZSh2b2lkKQo+ICB7Cj4gLSAgICAgICB2b2lkICpyZXQ7Cj4gLQo+IC0gICAgICAgc2l6ZSA9 IFBBR0VfQUxJR04oc2l6ZSk7Cj4gLSAgICAgICByZXQgPSB4bWVtYWxpZ24oUEFHRV9TSVpFLCBz aXplKTsKPiAtICAgICAgIGlmIChkbWFfaGFuZGxlKQo+IC0gICAgICAgICAgICAgICAqZG1hX2hh bmRsZSA9IChkbWFfYWRkcl90KXJldDsKPiAtCj4gLSAgICAgICBkbWFfaW52X3JhbmdlKCh1bnNp Z25lZCBsb25nKXJldCwgKHVuc2lnbmVkIGxvbmcpcmV0ICsgc2l6ZSk7Cj4gKyAgICAgICBpZiAo IXR0YikKPiArICAgICAgICAgICAgICAgYXJtX21tdV9ub3RfaW5pdGlhbGl6ZWRfZXJyb3IoKTsK Pgo+IC0gICAgICAgX19yZW1hcF9yYW5nZShyZXQsIHNpemUsIHB0ZV9mbGFnc191bmNhY2hlZCk7 Cj4gKyAgICAgICBpZiAoIShnZXRfc2N0bHIoKSAmIENSX00pKSB7Cj4KPiAtICAgICAgIHJldHVy biByZXQ7Cj4gKyAgICAgICAgICAgICAgIGlzYigpOwo+ICsgICAgICAgICAgICAgICBzZXRfc2N0 bHIoZ2V0X3NjdGxyKCkgfCBDUl9NIHwgQ1JfQyB8IENSX0kpOwo+ICsgICAgICAgfQo+ICB9Cj4K PiAtdm9pZCAqZG1hX2FsbG9jX3dyaXRlY29tYmluZShzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAq ZG1hX2hhbmRsZSkKPiArdm9pZCBtbXVfZGlzYWJsZSh2b2lkKQo+ICB7Cj4gLSAgICAgICB2b2lk ICpyZXQ7Cj4gKyAgICAgICB1bnNpZ25lZCBpbnQgc2N0bHI7Cj4gKwo+ICsgICAgICAgaWYgKCF0 dGIpCj4gKyAgICAgICAgICAgICAgIGFybV9tbXVfbm90X2luaXRpYWxpemVkX2Vycm9yKCk7Cj4K PiAtICAgICAgIHNpemUgPSBQQUdFX0FMSUdOKHNpemUpOwo+IC0gICAgICAgcmV0ID0geG1lbWFs aWduKFBBR0VfU0laRSwgc2l6ZSk7Cj4gLSAgICAgICBpZiAoZG1hX2hhbmRsZSkKPiAtICAgICAg ICAgICAgICAgKmRtYV9oYW5kbGUgPSAoZG1hX2FkZHJfdClyZXQ7Cj4gKyAgICAgICBzY3RsciA9 IGdldF9zY3RscigpOwo+ICsgICAgICAgc2N0bHIgJj0gfihDUl9NIHwgQ1JfQyB8IENSX0kpOwo+ Cj4gLSAgICAgICBkbWFfaW52X3JhbmdlKCh1bnNpZ25lZCBsb25nKXJldCwgKHVuc2lnbmVkIGxv bmcpcmV0ICsgc2l6ZSk7Cj4gKyAgICAgICB0bGJfaW52YWxpZGF0ZSgpOwo+Cj4gLSAgICAgICBf X3JlbWFwX3JhbmdlKHJldCwgc2l6ZSwgcHRlX2ZsYWdzX3djKTsKPiArICAgICAgIGRzYigpOwo+ ICsgICAgICAgaXNiKCk7Cj4KPiAtICAgICAgIHJldHVybiByZXQ7Cj4gLX0KPiArICAgICAgIHNl dF9zY3RscihzY3Rscik7Cj4KPiAtdW5zaWduZWQgbG9uZyB2aXJ0X3RvX3BoeXModm9sYXRpbGUg dm9pZCAqdmlydCkKPiAtewo+IC0gICAgICAgcmV0dXJuICh1bnNpZ25lZCBsb25nKXZpcnQ7Cj4g KyAgICAgICBkc2IoKTsKPiArICAgICAgIGlzYigpOwo+ICB9Cj4KPiAtdm9pZCAqcGh5c190b192 aXJ0KHVuc2lnbmVkIGxvbmcgcGh5cykKPiArdm9pZCBtbXVfZWFybHlfZW5hYmxlKHVpbnQ2NF90 IG1lbWJhc2UsIHVpbnQ2NF90IG1lbXNpemUsIHVpbnQ2NF90IF90dGIpCj4gIHsKPiAtICAgICAg IHJldHVybiAodm9pZCAqKXBoeXM7Cj4gLX0KPiArICAgICAgIHR0YiA9ICh1aW50NjRfdCAqKV90 dGI7Cj4KPiAtdm9pZCBkbWFfZnJlZV9jb2hlcmVudCh2b2lkICptZW0sIGRtYV9hZGRyX3QgZG1h X2hhbmRsZSwgc2l6ZV90IHNpemUpCj4gLXsKPiAtICAgICAgIHNpemUgPSBQQUdFX0FMSUdOKHNp emUpOwo+IC0gICAgICAgX19yZW1hcF9yYW5nZShtZW0sIHNpemUsIHB0ZV9mbGFnc19jYWNoZWQp Owo+ICsgICAgICAgbWVtc2V0KHR0YiwgMCwgR1JBTlVMRV9TSVpFKTsKPiArICAgICAgIGZyZWVf aWR4ID0gMTsKPiArCj4gKyAgICAgICBzZXRfdHRicl90Y3JfbWFpcihjdXJyZW50X2VsKCksICh1 aW50NjRfdCl0dGIsIFRDUl9GTEFHUywgTUVNT1JZX0FUVFIpOwo+Cj4gLSAgICAgICBmcmVlKG1l bSk7Cj4gKyAgICAgICBjcmVhdGVfc2VjdGlvbnMoMCwgMCwgNDA5NiwgUE1EX1NFQ1RfQVBfV1JJ VEUgfAo+ICsgICAgICAgICAgICAgICAgICAgICAgIFBNRF9TRUNUX0FQX1JFQUQgfCBQTURfVFlQ RV9TRUNUKTsKPiArCj4gKyAgICAgICBjcmVhdGVfc2VjdGlvbnMobWVtYmFzZSwgbWVtYmFzZSwg bWVtc2l6ZSwgUE1EX1NFQ1RfQVBfV1JJVEUgfAo+ICsgICAgICAgICAgICAgICBQTURfU0VDVF9B UF9SRUFEIHwgUE1EX1RZUEVfU0VDVCB8IFBNRF9TRUNUX1dCKTsKPiArCj4gKyAgICAgICBpc2Io KTsKPiArICAgICAgIHNldF9zY3RscihnZXRfc2N0bHIoKSB8IENSX00pOwo+ICB9Cj4KPiAtdm9p ZCBkbWFfc3luY19zaW5nbGVfZm9yX2NwdSh1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHNpemVfdCBz aXplLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rp b24gZGlyKQo+ICt1bnNpZ25lZCBsb25nIHZpcnRfdG9fcGh5cyh2b2xhdGlsZSB2b2lkICp2aXJ0 KQo+ICB7Cj4gLSAgICAgICBpZiAoZGlyICE9IERNQV9UT19ERVZJQ0UpIHsKPiAtICAgICAgICAg ICAgICAgaWYgKG91dGVyX2NhY2hlLmludl9yYW5nZSkKPiAtICAgICAgICAgICAgICAgICAgICAg ICBvdXRlcl9jYWNoZS5pbnZfcmFuZ2UoYWRkcmVzcywgYWRkcmVzcyArIHNpemUpOwo+IC0gICAg ICAgICAgICAgICBfX2RtYV9pbnZfcmFuZ2UoYWRkcmVzcywgYWRkcmVzcyArIHNpemUpOwo+IC0g ICAgICAgfQo+ICsgICAgICAgcmV0dXJuICh1bnNpZ25lZCBsb25nKXZpcnQ7Cj4gIH0KPgo+IC12 b2lkIGRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgc2l6 ZV90IHNpemUsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGRtYV9kYXRh X2RpcmVjdGlvbiBkaXIpCj4gK3ZvaWQgKnBoeXNfdG9fdmlydCh1bnNpZ25lZCBsb25nIHBoeXMp Cj4gIHsKPiAtICAgICAgIGlmIChkaXIgPT0gRE1BX0ZST01fREVWSUNFKSB7Cj4gLSAgICAgICAg ICAgICAgIF9fZG1hX2ludl9yYW5nZShhZGRyZXNzLCBhZGRyZXNzICsgc2l6ZSk7Cj4gLSAgICAg ICAgICAgICAgIGlmIChvdXRlcl9jYWNoZS5pbnZfcmFuZ2UpCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgb3V0ZXJfY2FjaGUuaW52X3JhbmdlKGFkZHJlc3MsIGFkZHJlc3MgKyBzaXplKTsKPiAt ICAgICAgIH0gZWxzZSB7Cj4gLSAgICAgICAgICAgICAgIF9fZG1hX2NsZWFuX3JhbmdlKGFkZHJl c3MsIGFkZHJlc3MgKyBzaXplKTsKPiAtICAgICAgICAgICAgICAgaWYgKG91dGVyX2NhY2hlLmNs ZWFuX3JhbmdlKQo+IC0gICAgICAgICAgICAgICAgICAgICAgIG91dGVyX2NhY2hlLmNsZWFuX3Jh bmdlKGFkZHJlc3MsIGFkZHJlc3MgKyBzaXplKTsKPiAtICAgICAgIH0KPiArICAgICAgIHJldHVy biAodm9pZCAqKXBoeXM7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY3B1L21tdS5oIGIv YXJjaC9hcm0vY3B1L21tdS5oCj4gaW5kZXggNzllYmM4MC4uYTIwYWRlYyAxMDA2NDQKPiAtLS0g YS9hcmNoL2FybS9jcHUvbW11LmgKPiArKysgYi9hcmNoL2FybS9jcHUvbW11LmgKPiBAQCAtMSw2 ICsxLDE1OSBAQAo+ICAjaWZuZGVmIF9fQVJNX01NVV9ICj4gICNkZWZpbmUgX19BUk1fTU1VX0gK Pgo+ICsjZGVmaW5lIFVMKHgpICAgICAgICAgIF9BQyh4LCBVTCkKPiArCj4gKyNkZWZpbmUgVU5V U0VEX0RFU0MgICAgICAgICAgICAgICAgMHg2RWJBQUQwQkJBRGJBNkUwCj4gKwo+ICsjZGVmaW5l IFZBX1NUQVJUICAgICAgICAgICAgICAgICAgIDB4MAo+ICsjZGVmaW5lIEJJVFNfUEVSX1ZBICAg ICAgICAgICAgICAgIDMzCj4gKwo+ICsvKiBHcmFudWxlIHNpemUgb2YgNEtCIGlzIGJlaW5nIHVz ZWQgKi8KPiArI2RlZmluZSBHUkFOVUxFX1NJWkVfU0hJRlQgICAgICAgICAxMgo+ICsjZGVmaW5l IEdSQU5VTEVfU0laRSAgICAgICAgICAgICAgICgxIDw8IEdSQU5VTEVfU0laRV9TSElGVCkKPiAr I2RlZmluZSBYTEFUX0FERFJfTUFTSyAgICAgICAgICAgICAoKDFVTCA8PCBCSVRTX1BFUl9WQSkg LSBHUkFOVUxFX1NJWkUpCj4gKyNkZWZpbmUgR1JBTlVMRV9TSVpFX01BU0sgICAgICAgICAgKCgx IDw8IEdSQU5VTEVfU0laRV9TSElGVCkgLSAxKQo+ICsKPiArI2RlZmluZSBCSVRTX1JFU09MVkVE X1BFUl9MVkwgICAoR1JBTlVMRV9TSVpFX1NISUZUIC0gMykKPiArI2RlZmluZSBMMV9BRERSX1NI SUZUICAgICAgICAgICAoR1JBTlVMRV9TSVpFX1NISUZUICsgQklUU19SRVNPTFZFRF9QRVJfTFZM ICogMikKPiArI2RlZmluZSBMMl9BRERSX1NISUZUICAgICAgICAgICAoR1JBTlVMRV9TSVpFX1NI SUZUICsgQklUU19SRVNPTFZFRF9QRVJfTFZMICogMSkKPiArI2RlZmluZSBMM19BRERSX1NISUZU ICAgICAgICAgICAoR1JBTlVMRV9TSVpFX1NISUZUICsgQklUU19SRVNPTFZFRF9QRVJfTFZMICog MCkKPiArCj4gKwo+ICsjZGVmaW5lIEwxX0FERFJfTUFTSyAgICAgKCgoMVVMIDw8IEJJVFNfUkVT T0xWRURfUEVSX0xWTCkgLSAxKSA8PCBMMV9BRERSX1NISUZUKQo+ICsjZGVmaW5lIEwyX0FERFJf TUFTSyAgICAgKCgoMVVMIDw8IEJJVFNfUkVTT0xWRURfUEVSX0xWTCkgLSAxKSA8PCBMMl9BRERS X1NISUZUKQo+ICsjZGVmaW5lIEwzX0FERFJfTUFTSyAgICAgKCgoMVVMIDw8IEJJVFNfUkVTT0xW RURfUEVSX0xWTCkgLSAxKSA8PCBMM19BRERSX1NISUZUKQo+ICsKPiArLyogVGhlc2UgbWFjcm9z IGdpdmUgdGhlIHNpemUgb2YgdGhlIHJlZ2lvbiBhZGRyZXNzZWQgYnkgZWFjaCBlbnRyeSBvZiBh IHhsYXQKPiArICAgdGFibGUgYXQgYW55IGdpdmVuIGxldmVsICovCj4gKyNkZWZpbmUgTDNfWExB VF9TSVpFICAgICAgICAgICAgICAgKDFVTCA8PCBMM19BRERSX1NISUZUKQo+ICsjZGVmaW5lIEwy X1hMQVRfU0laRSAgICAgICAgICAgICAgICgxVUwgPDwgTDJfQUREUl9TSElGVCkKPiArI2RlZmlu ZSBMMV9YTEFUX1NJWkUgICAgICAgICAgICAgICAoMVVMIDw8IEwxX0FERFJfU0hJRlQpCj4gKwo+ ICsjZGVmaW5lIEdSQU5VTEVfTUFTSyAgIEdSQU5VTEVfU0laRQo+ICsKPiArLyoKPiArICogTWVt b3J5IHR5cGVzCj4gKyAqLwo+ICsjZGVmaW5lIE1UX0RFVklDRV9OR05STkUgICAgICAgMAo+ICsj ZGVmaW5lIE1UX0RFVklDRV9OR05SRSAgICAgICAgICAgICAgICAxCj4gKyNkZWZpbmUgTVRfREVW SUNFX0dSRSAgICAgICAgICAyCj4gKyNkZWZpbmUgTVRfTk9STUFMX05DICAgICAgICAgICAzCj4g KyNkZWZpbmUgTVRfTk9STUFMICAgICAgICAgICAgICA0Cj4gKwo+ICsjZGVmaW5lIE1FTU9SWV9B VFRSSUJVVEVTICAgICAgKCgweDAwIDw8IChNVF9ERVZJQ0VfTkdOUk5FKjgpKSB8ICAgICAgIFwK PiArICAgICAgICAgICAgICAgKDB4MDQgPDwgKE1UX0RFVklDRV9OR05SRSo4KSkgfCAgICAgICAg IFwKPiArICAgICAgICAgICAgICAgKDB4MGMgPDwgKE1UX0RFVklDRV9HUkUqOCkpIHwgICAgICAg ICAgIFwKPiArICAgICAgICAgICAgICAgKDB4NDQgPDwgKE1UX05PUk1BTF9OQyo4KSkgfCAgICAg ICAgICAgIFwKPiArICAgICAgICAgICAgICAgKFVMKDB4ZmYpIDw8IChNVF9OT1JNQUwqOCkpKQo+ ICsKPiArLyoKPiArICogSGFyZHdhcmUgcGFnZSB0YWJsZSBkZWZpbml0aW9ucy4KPiArICoKPiAr ICogTGV2ZWwgMiBkZXNjcmlwdG9yIChQTUQpLgo+ICsgKi8KPiArI2RlZmluZSBQTURfVFlQRV9N QVNLICAgICAgICAgICgzIDw8IDApCj4gKyNkZWZpbmUgUE1EX1RZUEVfRkFVTFQgICAgICAgICAo MCA8PCAwKQo+ICsjZGVmaW5lIFBNRF9UWVBFX1RBQkxFICAgICAgICAgKDMgPDwgMCkKPiArI2Rl ZmluZSBQTURfVFlQRV9QQUdFICAgICAgICAgICgzIDw8IDApCj4gKyNkZWZpbmUgUE1EX1RZUEVf U0VDVCAgICAgICAgICAoMSA8PCAwKQo+ICsKPiArLyoKPiArICogU2VjdGlvbgo+ICsgKi8KPiAr I2RlZmluZSBQTURfU0VDVF9OT05fU0hBUkUgICAgICgwIDw8IDgpCj4gKyNkZWZpbmUgUE1EX1NF Q1RfT1VURVJfU0hBUkUgICAoMiA8PCA4KQo+ICsjZGVmaW5lIFBNRF9TRUNUX0lOTkVSX1NIQVJF ICAgKDMgPDwgOCkKPiArI2RlZmluZSBQTURfU0VDVF9BRiAgICAgICAgICAgICgxIDw8IDEwKQo+ ICsjZGVmaW5lIFBNRF9TRUNUX05HICAgICAgICAgICAgKDEgPDwgMTEpCj4gKyNkZWZpbmUgUE1E X1NFQ1RfUFhOICAgICAgICAgICAoVUwoMSkgPDwgNTMpCj4gKyNkZWZpbmUgUE1EX1NFQ1RfVVhO ICAgICAgICAgICAoVUwoMSkgPDwgNTQpCj4gKwo+ICsvKgo+ICsgKiBBdHRySW5keFsyOjBdCj4g KyAqLwo+ICsjZGVmaW5lIFBNRF9BVFRSSU5EWCh0KSAgICAgICAgICAgICAgICAoKHQpIDw8IDIp Cj4gKyNkZWZpbmUgUE1EX0FUVFJJTkRYX01BU0sgICAgICAoNyA8PCAyKQo+ICsKPiArLyoKPiAr ICogVENSIGZsYWdzLgo+ICsgKi8KPiArI2RlZmluZSBUQ1JfVDBTWih4KSAgICAgICAgICAgICgo NjQgLSAoeCkpIDw8IDApCj4gKyNkZWZpbmUgVENSX0lSR05fTkMgICAgICAgICAgICAoMCA8PCA4 KQo+ICsjZGVmaW5lIFRDUl9JUkdOX1dCV0EgICAgICAgICAgKDEgPDwgOCkKPiArI2RlZmluZSBU Q1JfSVJHTl9XVCAgICAgICAgICAgICgyIDw8IDgpCj4gKyNkZWZpbmUgVENSX0lSR05fV0JOV0Eg ICAgICAgICAoMyA8PCA4KQo+ICsjZGVmaW5lIFRDUl9JUkdOX01BU0sgICAgICAgICAgKDMgPDwg OCkKPiArI2RlZmluZSBUQ1JfT1JHTl9OQyAgICAgICAgICAgICgwIDw8IDEwKQo+ICsjZGVmaW5l IFRDUl9PUkdOX1dCV0EgICAgICAgICAgKDEgPDwgMTApCj4gKyNkZWZpbmUgVENSX09SR05fV1Qg ICAgICAgICAgICAoMiA8PCAxMCkKPiArI2RlZmluZSBUQ1JfT1JHTl9XQk5XQSAgICAgICAgICgz IDw8IDEwKQo+ICsjZGVmaW5lIFRDUl9PUkdOX01BU0sgICAgICAgICAgKDMgPDwgMTApCj4gKyNk ZWZpbmUgVENSX1NIQVJFRF9OT04gICAgICAgICAoMCA8PCAxMikKPiArI2RlZmluZSBUQ1JfU0hB UkVEX09VVEVSICAgICAgICgyIDw8IDEyKQo+ICsjZGVmaW5lIFRDUl9TSEFSRURfSU5ORVIgICAg ICAgKDMgPDwgMTIpCj4gKyNkZWZpbmUgVENSX1RHMF80SyAgICAgICAgICAgICAoMCA8PCAxNCkK PiArI2RlZmluZSBUQ1JfVEcwXzY0SyAgICAgICAgICAgICgxIDw8IDE0KQo+ICsjZGVmaW5lIFRD Ul9URzBfMTZLICAgICAgICAgICAgKDIgPDwgMTQpCj4gKyNkZWZpbmUgVENSX0VMMV9JUFNfQklU UyAgICAgICAoVUwoMykgPDwgMzIpICAgLyogNDIgYml0cyBwaHlzaWNhbCBhZGRyZXNzICovCj4g KyNkZWZpbmUgVENSX0VMMl9JUFNfQklUUyAgICAgICAoMyA8PCAxNikgICAgICAgLyogNDIgYml0 cyBwaHlzaWNhbCBhZGRyZXNzICovCj4gKyNkZWZpbmUgVENSX0VMM19JUFNfQklUUyAgICAgICAo MyA8PCAxNikgICAgICAgLyogNDIgYml0cyBwaHlzaWNhbCBhZGRyZXNzICovCj4gKwo+ICsjZGVm aW5lIFRDUl9FTDFfUlNWRCAgICAgICAgICAgKDEgPDwgMzEpCj4gKyNkZWZpbmUgVENSX0VMMl9S U1ZEICAgICAgICAgICAoMSA8PCAzMSB8IDEgPDwgMjMpCj4gKyNkZWZpbmUgVENSX0VMM19SU1ZE ICAgICAgICAgICAoMSA8PCAzMSB8IDEgPDwgMjMpCj4gKwo+ICsjZGVmaW5lIFRDUl9GTEFHUyAg ICAgICAgICAgICAgKFRDUl9URzBfNEsgfCBcCj4gKyAgICAgICAgICAgICAgIFRDUl9TSEFSRURf T1VURVIgfCBcCj4gKyAgICAgICAgICAgICAgIFRDUl9TSEFSRURfSU5ORVIgfCBcCj4gKyAgICAg ICAgICAgICAgIFRDUl9JUkdOX1dCV0EgfCBcCj4gKyAgICAgICAgICAgICAgIFRDUl9PUkdOX1dC V0EgfCBcCj4gKyAgICAgICAgICAgICAgIFRDUl9UMFNaKEJJVFNfUEVSX1ZBKSkKPiArCj4gKyNk ZWZpbmUgTUVNT1JZX0FUVFIgICAgIChQTURfU0VDVF9BRiB8IFBNRF9TRUNUX0lOTkVSX1NIQVJF IHwgICAgXAo+ICsgICAgICAgICAgICAgICBQTURfQVRUUklORFgoTVRfTk9STUFMKSB8ICAgICAg IFwKPiArICAgICAgICAgICAgICAgUE1EX1RZUEVfU0VDVCkKPiArCj4gKyNpZm5kZWYgX19BU1NF TUJMWV9fCj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3R0YnJfdGNyX21haXIoaW50IGVs LCB1aW50NjRfdCB0YWJsZSwgdWludDY0X3QgdGNyLCB1aW50NjRfdCBhdHRyKQo+ICt7Cj4gKyAg ICAgICBhc20gdm9sYXRpbGUoImRzYiBzeSIpOwo+ICsgICAgICAgaWYgKGVsID09IDEpIHsKPiAr ICAgICAgICAgICAgICAgYXNtIHZvbGF0aWxlKCJtc3IgdHRicjBfZWwxLCAlMCIgOiA6ICJyIiAo dGFibGUpIDogIm1lbW9yeSIpOwo+ICsgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUoIm1zciB0 Y3JfZWwxLCAlMCIgOiA6ICJyIiAodGNyKSA6ICJtZW1vcnkiKTsKPiArICAgICAgICAgICAgICAg YXNtIHZvbGF0aWxlKCJtc3IgbWFpcl9lbDEsICUwIiA6IDogInIiIChhdHRyKSA6ICJtZW1vcnki KTsKPiArICAgICAgIH0gZWxzZSBpZiAoZWwgPT0gMikgewo+ICsgICAgICAgICAgICAgICBhc20g dm9sYXRpbGUoIm1zciB0dGJyMF9lbDIsICUwIiA6IDogInIiICh0YWJsZSkgOiAibWVtb3J5Iik7 Cj4gKyAgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgibXNyIHRjcl9lbDIsICUwIiA6IDogInIi ICh0Y3IpIDogIm1lbW9yeSIpOwo+ICsgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUoIm1zciBt YWlyX2VsMiwgJTAiIDogOiAiciIgKGF0dHIpIDogIm1lbW9yeSIpOwo+ICsgICAgICAgfSBlbHNl IGlmIChlbCA9PSAzKSB7Cj4gKyAgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgibXNyIHR0YnIw X2VsMywgJTAiIDogOiAiciIgKHRhYmxlKSA6ICJtZW1vcnkiKTsKPiArICAgICAgICAgICAgICAg YXNtIHZvbGF0aWxlKCJtc3IgdGNyX2VsMywgJTAiIDogOiAiciIgKHRjcikgOiAibWVtb3J5Iik7 Cj4gKyAgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgibXNyIG1haXJfZWwzLCAlMCIgOiA6ICJy IiAoYXR0cikgOiAibWVtb3J5Iik7Cj4gKyAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICAg ICBoYW5nKCk7Cj4gKyAgICAgICB9Cj4gKyAgICAgICBhc20gdm9sYXRpbGUoImlzYiIpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGdldF90dGJyKGludCBlbCkKPiArewo+ICsg ICAgICAgdWludDY0X3QgdmFsOwo+ICsgICAgICAgaWYgKGVsID09IDEpIHsKPiArICAgICAgICAg ICAgICAgYXNtIHZvbGF0aWxlKCJtcnMgJTAsIHR0YnIwX2VsMSIgOiAiPXIiICh2YWwpKTsKPiAr ICAgICAgIH0gZWxzZSBpZiAoZWwgPT0gMikgewo+ICsgICAgICAgICAgICAgICBhc20gdm9sYXRp bGUoIm1ycyAlMCwgdHRicjBfZWwyIiA6ICI9ciIgKHZhbCkpOwo+ICsgICAgICAgfSBlbHNlIGlm IChlbCA9PSAzKSB7Cj4gKyAgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgibXJzICUwLCB0dGJy MF9lbDMiIDogIj1yIiAodmFsKSk7Cj4gKyAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICAg ICBoYW5nKCk7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmV0dXJuIHZhbDsKPiArfQo+ICsj ZW5kaWYKPiArCj4gICNpZmRlZiBDT05GSUdfTU1VCj4gIHZvaWQgX19tbXVfY2FjaGVfb24odm9p ZCk7Cj4gIHZvaWQgX19tbXVfY2FjaGVfb2ZmKHZvaWQpOwo+IEBAIC0xMSw0ICsxNjQsNiBAQCBz dGF0aWMgaW5saW5lIHZvaWQgX19tbXVfY2FjaGVfb2ZmKHZvaWQpIHt9Cj4gIHN0YXRpYyBpbmxp bmUgdm9pZCBfX21tdV9jYWNoZV9mbHVzaCh2b2lkKSB7fQo+ICAjZW5kaWYKPgo+ICt2b2lkIG1t dV9lYXJseV9lbmFibGUodWludDY0X3QgbWVtYmFzZSwgdWludDY0X3QgbWVtc2l6ZSwgdWludDY0 X3QgX3R0Yik7Cj4gKwo+ICAjZW5kaWYgLyogX19BUk1fTU1VX0ggKi8KPiBkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vY3B1L3N0YXJ0LmMgYi9hcmNoL2FybS9jcHUvc3RhcnQuYwo+IGluZGV4IGUwMzdk OTEuLjFkMDE3YmMgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vY3B1L3N0YXJ0LmMKPiArKysgYi9h cmNoL2FybS9jcHUvc3RhcnQuYwo+IEBAIC0zMSw3ICszMSw3IEBACj4gICNpbmNsdWRlIDxtYWxs b2MuaD4KPgo+ICAjaW5jbHVkZSA8ZGVidWdfbGwuaD4KPiAtI2luY2x1ZGUgIm1tdS1lYXJseS5o Igo+ICsjaW5jbHVkZSAibW11LmgiCj4KPiAgdW5zaWduZWQgbG9uZyBhcm1fc3RhY2tfdG9wOwo+ ICBzdGF0aWMgdW5zaWduZWQgbG9uZyBhcm1faGVhZF9ib3R0b207Cj4gQEAgLTE1MSw3ICsxNTEs NyBAQCBfX25vcmV0dXJuIHZvaWQgYmFyZWJveF9ub25fcGJsX3N0YXJ0KHVuc2lnbmVkIGxvbmcg bWVtYmFzZSwKPiAgICAgICAgICAgICAgICAgcmVsb2NhdGVfdG9fYWRyKGJhcmVib3hfYmFzZSk7 Cj4gICAgICAgICB9Cj4KPiAtICAgICAgIHNldHVwX2MoKTsKPiArLy8gICAgIHNldHVwX2MoKTsK Pgo+ICAgICAgICAgYmFycmllcigpOwo+Cj4gQEAgLTE3MCw3ICsxNzAsNyBAQCBfX25vcmV0dXJu IHZvaWQgYmFyZWJveF9ub25fcGJsX3N0YXJ0KHVuc2lnbmVkIGxvbmcgbWVtYmFzZSwKPiAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKPiAgICAgICAgICAgICAgICAgICAgICAgICBwcl9kZWJ1Zygi ZW5hYmxpbmcgTU1VLCB0dGIgQCAweCUwOGx4XG4iLCB0dGIpOwo+ICAgICAgICAgICAgICAgICAg ICAgICAgIGFybV9lYXJseV9tbXVfY2FjaGVfaW52YWxpZGF0ZSgpOwo+IC0gICAgICAgICAgICAg ICAgICAgICAgIG1tdV9lYXJseV9lbmFibGUobWVtYmFzZSwgbWVtc2l6ZSwgdHRiKTsKPiArICAg ICAgICAgICAgICAgICAgICAgICBtbXVfZWFybHlfZW5hYmxlKCh1aW50NjRfdCltZW1iYXNlLCAo dWludDY0X3QpbWVtc2l6ZSwgKHVpbnQ2NF90KXR0Yik7Cj4gICAgICAgICAgICAgICAgIH0KPiAg ICAgICAgIH0KPgo+IEBAIC0xOTMsNyArMTkzLDcgQEAgX19ub3JldHVybiB2b2lkIGJhcmVib3hf bm9uX3BibF9zdGFydCh1bnNpZ25lZCBsb25nIG1lbWJhc2UsCj4gICAgICAgICAgICAgICAgIGlm ICh0b3RhbHNpemUpIHsKPiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1l bSA9IGFybV9tZW1fYm9hcmRkYXRhKG1lbWJhc2UsIGVuZG1lbSwKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsc2l6ZSk7 Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgcHJfZGVidWcoImZvdW5kICVzIGluIGJvYXJkZGF0 YSwgY29weWluZyB0byAweCUwOGx4XG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgIHByX2Rl YnVnKCJmb3VuZCAlcyBpbiBib2FyZGRhdGEsIGNvcHlpbmcgdG8gMHglbHVcbiIsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgbWVtKTsKPiAgICAgICAgICAgICAgICAg ICAgICAgICBiYXJlYm94X2JvYXJkZGF0YSA9IG1lbWNweSgodm9pZCAqKW1lbSwgYm9hcmRkYXRh LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRv dGFsc2l6ZSk7Cj4gQEAgLTIyOSw3ICsyMjksNyBAQCBfX25vcmV0dXJuIHZvaWQgYmFyZWJveF9u b25fcGJsX3N0YXJ0KHVuc2lnbmVkIGxvbmcgbWVtYmFzZSwKPgo+ICAjaWZuZGVmIENPTkZJR19Q QkxfSU1BR0UKPgo+IC12b2lkIF9fbmFrZWQgX19zZWN0aW9uKC50ZXh0X2VudHJ5KSBzdGFydCh2 b2lkKQo+ICt2b2lkIF9fc2VjdGlvbigudGV4dF9lbnRyeSkgc3RhcnQodm9pZCkKPiAgewo+ICAg ICAgICAgYmFyZWJveF9hcm1faGVhZCgpOwo+ICB9Cj4gQEAgLTIzOSw3ICsyMzksNyBAQCB2b2lk IF9fbmFrZWQgX19zZWN0aW9uKC50ZXh0X2VudHJ5KSBzdGFydCh2b2lkKQo+ICAgKiBGaXJzdCBm dW5jdGlvbiBpbiB0aGUgdW5jb21wcmVzc2VkIGltYWdlLiBXZSBnZXQgaGVyZSBmcm9tCj4gICAq IHRoZSBwYmwuIFRoZSBzdGFjayBhbHJlYWR5IGhhcyBiZWVuIHNldCB1cCBieSB0aGUgcGJsLgo+ ICAgKi8KPiAtdm9pZCBfX25ha2VkIF9fc2VjdGlvbigudGV4dF9lbnRyeSkgc3RhcnQodW5zaWdu ZWQgbG9uZyBtZW1iYXNlLAo+ICt2b2lkIF9fc2VjdGlvbigudGV4dF9lbnRyeSkgc3RhcnQodW5z aWduZWQgbG9uZyBtZW1iYXNlLAo+ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1lbXNp emUsIHZvaWQgKmJvYXJkZGF0YSkKPiAgewo+ICAgICAgICAgYmFyZWJveF9ub25fcGJsX3N0YXJ0 KG1lbWJhc2UsIG1lbXNpemUsIGJvYXJkZGF0YSk7Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Nw dS91bmNvbXByZXNzLmMgYi9hcmNoL2FybS9jcHUvdW5jb21wcmVzcy5jCj4gaW5kZXggYjhlMmU5 Zi4uNWJjY2U2YiAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybS9jcHUvdW5jb21wcmVzcy5jCj4gKysr IGIvYXJjaC9hcm0vY3B1L3VuY29tcHJlc3MuYwo+IEBAIC02MCw3ICs2MCw3IEBAIHZvaWQgX19u b3JldHVybiBiYXJlYm94X211bHRpX3BibF9zdGFydCh1bnNpZ25lZCBsb25nIG1lbWJhc2UsCj4g ICAgICAgICAgICAgICAgICAqIHRvIHRoZSBjdXJyZW50IGFkZHJlc3MuIE90aGVyd2lzZSBpdCBt YXkgYmUgYSByZWFkb25seSBsb2NhdGlvbi4KPiAgICAgICAgICAgICAgICAgICogQ29weSBhbmQg cmVsb2NhdGUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBtZW1vcnkgaW4gdGhpcyBjYXNlLgo+ICAgICAg ICAgICAgICAgICAgKi8KPiAtICAgICAgICAgICAgICAgaWYgKHBjID4gbWVtYmFzZSAmJiBwYyAt IG1lbWJhc2UgPCBtZW1zaXplKQo+ICsgICAgICAgICAgICAgICBpZiAocGMgPiBtZW1iYXNlICYm IHBjIDwgbWVtYmFzZSArIG1lbXNpemUpCj4gICAgICAgICAgICAgICAgICAgICAgICAgcmVsb2Nh dGVfdG9fY3VycmVudF9hZHIoKTsKPiAgICAgICAgICAgICAgICAgZWxzZQo+ICAgICAgICAgICAg ICAgICAgICAgICAgIHJlbG9jYXRlX3RvX2FkcihtZW1iYXNlKTsKPiBkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vaW5jbHVkZS9hc20vYmFyZWJveC1hcm0uaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Jh cmVib3gtYXJtLmgKPiBpbmRleCA4ZTdiNDVjLi42NzEzMzI2IDEwMDY0NAo+IC0tLSBhL2FyY2gv YXJtL2luY2x1ZGUvYXNtL2JhcmVib3gtYXJtLmgKPiArKysgYi9hcmNoL2FybS9pbmNsdWRlL2Fz bS9iYXJlYm94LWFybS5oCj4gQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCAqYmFyZWJveF9hcm1fYm9v dF9kdGIodm9pZCk7Cj4gIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBhcm1fbWVtX3N0YWNr KHVuc2lnbmVkIGxvbmcgbWVtYmFzZSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGVuZG1lbSkKPiAgewo+IC0gICAgICAgcmV0dXJuIGVu ZG1lbSAtIFNaXzY0SyAtIFNUQUNLX1NJWkU7Cj4gKyAgICAgICByZXR1cm4gZW5kbWVtIC0gU1RB Q0tfU0laRTsKPiAgfQo+Cj4gIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBhcm1fbWVtX3R0 Yih1bnNpZ25lZCBsb25nIG1lbWJhc2UsCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUv YXNtL2JpdG9wcy5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vYml0b3BzLmgKPiBpbmRleCAxMzhl YmUyLi5hYzg1YTBhIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2JpdG9wcy5o Cj4gKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vYml0b3BzLmgKPiBAQCAtMSwxODQgKzEsNDgg QEAKPiAgLyoKPiAtICogQ29weXJpZ2h0IDE5OTUsIFJ1c3NlbGwgS2luZy4KPiAtICogVmFyaW91 cyBiaXRzIGFuZCBwaWVjZXMgY29weXJpZ2h0cyBpbmNsdWRlOgo+IC0gKiAgTGludXMgVG9ydmFs ZHMgKHRlc3RfYml0KS4KPiArICogQ29weXJpZ2h0IChDKSAyMDEyIEFSTSBMdGQuCj4gICAqCj4g LSAqIGJpdCAwIGlzIHRoZSBMU0Igb2YgYWRkcjsgYml0IDMyIGlzIHRoZSBMU0Igb2YgKGFkZHIr MSkuCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCj4gKyAqIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICAgKgo+IC0gKiBQbGVhc2Ugbm90ZSB0aGF0 IHRoZSBjb2RlIGluIHRoaXMgZmlsZSBzaG91bGQgbmV2ZXIgYmUgaW5jbHVkZWQKPiAtICogZnJv bSB1c2VyIHNwYWNlLiAgTWFueSBvZiB0aGVzZSBhcmUgbm90IGltcGxlbWVudGVkIGluIGFzc2Vt Ymxlcgo+IC0gKiBzaW5jZSB0aGV5IHdvdWxkIGJlIHRvbyBjb3N0bHkuICBBbHNvLCB0aGV5IHJl cXVpcmUgcHJpdmlsZWRnZWQKPiAtICogaW5zdHJ1Y3Rpb25zICh3aGljaCBhcmUgbm90IGF2YWls YWJsZSBmcm9tIHVzZXIgbW9kZSkgdG8gZW5zdXJlCj4gLSAqIHRoYXQgdGhleSBhcmUgYXRvbWlj Lgo+ICsgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKPiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQo+ICsgKiBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICsgKgo+ICsgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo+ICsg KiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KPiAgICovCj4gKyNpZm5kZWYgX19BU01fQklUT1BTX0gKPiArI2RlZmlu ZSBfX0FTTV9CSVRPUFNfSAo+Cj4gLSNpZm5kZWYgX19BU01fQVJNX0JJVE9QU19ICj4gLSNkZWZp bmUgX19BU01fQVJNX0JJVE9QU19ICj4gKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgo+Cj4g ICNpZm5kZWYgX0xJTlVYX0JJVE9QU19ICj4gICNlcnJvciBvbmx5IDxsaW51eC9iaXRvcHMuaD4g Y2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5Cj4gICNlbmRpZgo+Cj4gIC8qCj4gLSAqIEZ1bmN0aW9u cyBlcXVpdmFsZW50IG9mIG9wcy5oCj4gLSAqLwo+IC1zdGF0aWMgaW5saW5lIHZvaWQgX19zZXRf Yml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKPiAtewo+IC0gICAgICAgKCh1bnNpZ25l ZCBjaGFyICopIGFkZHIpW25yID4+IDNdIHw9ICgxVSA8PCAobnIgJiA3KSk7Cj4gLX0KPiAtCj4g LXN0YXRpYyBpbmxpbmUgdm9pZCBfX2NsZWFyX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFk ZHIpCj4gLXsKPiAtICAgICAgICgodW5zaWduZWQgY2hhciAqKSBhZGRyKVtuciA+PiAzXSAmPSB+ KDFVIDw8IChuciAmIDcpKTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSB2b2lkIF9fY2hhbmdl X2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCj4gLXsKPiAtICAgICAgICgodW5zaWdu ZWQgY2hhciAqKSBhZGRyKVtuciA+PiAzXSBePSAoMVUgPDwgKG5yICYgNykpOwo+IC19Cj4gLQo+ IC1zdGF0aWMgaW5saW5lIGludCBfX3Rlc3RfYW5kX3NldF9iaXQoaW50IG5yLCB2b2xhdGlsZSB2 b2lkICphZGRyKQo+IC17Cj4gLSAgICAgICB1bnNpZ25lZCBpbnQgbWFzayA9IDEgPDwgKG5yICYg Nyk7Cj4gLSAgICAgICB1bnNpZ25lZCBpbnQgb2xkdmFsOwo+IC0KPiAtICAgICAgIG9sZHZhbCA9 ICgodW5zaWduZWQgY2hhciAqKSBhZGRyKVtuciA+PiAzXTsKPiAtICAgICAgICgodW5zaWduZWQg Y2hhciAqKSBhZGRyKVtuciA+PiAzXSA9IG9sZHZhbCB8IG1hc2s7Cj4gLSAgICAgICByZXR1cm4g b2xkdmFsICYgbWFzazsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSBpbnQgX190ZXN0X2FuZF9j bGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQo+IC17Cj4gLSAgICAgICB1bnNp Z25lZCBpbnQgbWFzayA9IDEgPDwgKG5yICYgNyk7Cj4gLSAgICAgICB1bnNpZ25lZCBpbnQgb2xk dmFsOwo+IC0KPiAtICAgICAgIG9sZHZhbCA9ICgodW5zaWduZWQgY2hhciAqKSBhZGRyKVtuciA+ PiAzXTsKPiAtICAgICAgICgodW5zaWduZWQgY2hhciAqKSBhZGRyKVtuciA+PiAzXSA9IG9sZHZh bCAmIH5tYXNrOwo+IC0gICAgICAgcmV0dXJuIG9sZHZhbCAmIG1hc2s7Cj4gLX0KPiAtCj4gLXN0 YXRpYyBpbmxpbmUgaW50IF9fdGVzdF9hbmRfY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZv aWQgKmFkZHIpCj4gLXsKPiAtICAgICAgIHVuc2lnbmVkIGludCBtYXNrID0gMSA8PCAobnIgJiA3 KTsKPiAtICAgICAgIHVuc2lnbmVkIGludCBvbGR2YWw7Cj4gLQo+IC0gICAgICAgb2xkdmFsID0g KCh1bnNpZ25lZCBjaGFyICopIGFkZHIpW25yID4+IDNdOwo+IC0gICAgICAgKCh1bnNpZ25lZCBj aGFyICopIGFkZHIpW25yID4+IDNdID0gb2xkdmFsIF4gbWFzazsKPiAtICAgICAgIHJldHVybiBv bGR2YWwgJiBtYXNrOwo+IC19Cj4gLQo+IC0vKgo+IC0gKiBUaGlzIHJvdXRpbmUgZG9lc24ndCBu ZWVkIHRvIGJlIGF0b21pYy4KPiAtICovCj4gLXN0YXRpYyBpbmxpbmUgaW50IHRlc3RfYml0KGlu dCBuciwgY29uc3Qgdm9pZCAqIGFkZHIpCj4gLXsKPiAtICAgIHJldHVybiAoKHVuc2lnbmVkIGNo YXIgKikgYWRkcilbbnIgPj4gM10gJiAoMVUgPDwgKG5yICYgNykpOwo+IC19Cj4gLQo+IC0jZGVm aW5lIHNldF9iaXQoeCwgeSkgICAgICAgICAgICAgICAgICBfX3NldF9iaXQoeCwgeSkKPiAtI2Rl ZmluZSBjbGVhcl9iaXQoeCwgeSkgICAgICAgICAgICAgICAgICAgICAgICBfX2NsZWFyX2JpdCh4 LCB5KQo+IC0jZGVmaW5lIGNoYW5nZV9iaXQoeCwgeSkgICAgICAgICAgICAgICBfX2NoYW5nZV9i aXQoeCwgeSkKPiAtI2RlZmluZSB0ZXN0X2FuZF9zZXRfYml0KHgsIHkpICAgICAgICAgX190ZXN0 X2FuZF9zZXRfYml0KHgsIHkpCj4gLSNkZWZpbmUgdGVzdF9hbmRfY2xlYXJfYml0KHgsIHkpICAg ICAgIF9fdGVzdF9hbmRfY2xlYXJfYml0KHgsIHkpCj4gLSNkZWZpbmUgdGVzdF9hbmRfY2hhbmdl X2JpdCh4LCB5KSAgICAgIF9fdGVzdF9hbmRfY2hhbmdlX2JpdCh4LCB5KQo+IC0KPiAtI2lmbmRl ZiBfX0FSTUVCX18KPiAtLyoKPiAtICogVGhlc2UgYXJlIHRoZSBsaXR0bGUgZW5kaWFuIGRlZmlu aXRpb25zLgo+ICsgKiBMaXR0bGUgZW5kaWFuIGFzc2VtYmx5IGF0b21pYyBiaXRvcHMuCj4gICAq Lwo+IC1leHRlcm4gaW50IF9maW5kX2ZpcnN0X3plcm9fYml0X2xlKGNvbnN0IHZvaWQgKnAsIHVu c2lnbmVkIHNpemUpOwo+IC1leHRlcm4gaW50IF9maW5kX25leHRfemVyb19iaXRfbGUoY29uc3Qg dm9pZCAqcCwgaW50IHNpemUsIGludCBvZmZzZXQpOwo+IC1leHRlcm4gaW50IF9maW5kX2ZpcnN0 X2JpdF9sZShjb25zdCB1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBzaXplKTsKPiAtZXh0ZXJu IGludCBfZmluZF9uZXh0X2JpdF9sZShjb25zdCB1bnNpZ25lZCBsb25nICpwLCBpbnQgc2l6ZSwg aW50IG9mZnNldCk7Cj4gLSNkZWZpbmUgZmluZF9maXJzdF96ZXJvX2JpdChwLCBzeikgICAgIF9m aW5kX2ZpcnN0X3plcm9fYml0X2xlKHAsIHN6KQo+IC0jZGVmaW5lIGZpbmRfbmV4dF96ZXJvX2Jp dChwLCBzeiwgb2ZmKSBfZmluZF9uZXh0X3plcm9fYml0X2xlKHAsIHN6LCBvZmYpCj4gLSNkZWZp bmUgZmluZF9maXJzdF9iaXQocCwgc3opICAgICAgICAgIF9maW5kX2ZpcnN0X2JpdF9sZShwLCBz eikKPiAtI2RlZmluZSBmaW5kX25leHRfYml0KHAsIHN6LCBvZmYpICAgICAgX2ZpbmRfbmV4dF9i aXRfbGUocCwgc3osIG9mZikKPiArZXh0ZXJuIHZvaWQgc2V0X2JpdChpbnQgbnIsIHZvbGF0aWxl IHVuc2lnbmVkIGxvbmcgKnApOwo+ICtleHRlcm4gdm9pZCBjbGVhcl9iaXQoaW50IG5yLCB2b2xh dGlsZSB1bnNpZ25lZCBsb25nICpwKTsKPiArZXh0ZXJuIHZvaWQgY2hhbmdlX2JpdChpbnQgbnIs IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKnApOwo+ICtleHRlcm4gaW50IHRlc3RfYW5kX3NldF9i aXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICpwKTsKPiArZXh0ZXJuIGludCB0ZXN0 X2FuZF9jbGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICpwKTsKPiArZXh0 ZXJuIGludCB0ZXN0X2FuZF9jaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9u ZyAqcCk7Cj4KPiAtI2RlZmluZSBXT1JEX0JJVE9GRl9UT19MRSh4KSAgICAgICAgICAgKCh4KSkK PiAtCj4gLSNlbHNlICAgICAgICAgIC8qICEgX19BUk1FQl9fICovCj4gLQo+IC0vKgo+IC0gKiBU aGVzZSBhcmUgdGhlIGJpZyBlbmRpYW4gZGVmaW5pdGlvbnMuCj4gLSAqLwo+IC1leHRlcm4gaW50 IF9maW5kX2ZpcnN0X3plcm9fYml0X2JlKGNvbnN0IHZvaWQgKnAsIHVuc2lnbmVkIHNpemUpOwo+ IC1leHRlcm4gaW50IF9maW5kX25leHRfemVyb19iaXRfYmUoY29uc3Qgdm9pZCAqcCwgaW50IHNp emUsIGludCBvZmZzZXQpOwo+IC1leHRlcm4gaW50IF9maW5kX2ZpcnN0X2JpdF9iZShjb25zdCB1 bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBzaXplKTsKPiAtZXh0ZXJuIGludCBfZmluZF9uZXh0 X2JpdF9iZShjb25zdCB1bnNpZ25lZCBsb25nICpwLCBpbnQgc2l6ZSwgaW50IG9mZnNldCk7Cj4g LSNkZWZpbmUgZmluZF9maXJzdF96ZXJvX2JpdChwLCBzeikgICAgIF9maW5kX2ZpcnN0X3plcm9f Yml0X2JlKHAsIHN6KQo+IC0jZGVmaW5lIGZpbmRfbmV4dF96ZXJvX2JpdChwLCBzeiwgb2ZmKSBf ZmluZF9uZXh0X3plcm9fYml0X2JlKHAsIHN6LCBvZmYpCj4gLSNkZWZpbmUgZmluZF9maXJzdF9i aXQocCwgc3opICAgICAgICAgIF9maW5kX2ZpcnN0X2JpdF9iZShwLCBzeikKPiAtI2RlZmluZSBm aW5kX25leHRfYml0KHAsIHN6LCBvZmYpICAgICAgX2ZpbmRfbmV4dF9iaXRfYmUocCwgc3osIG9m ZikKPiAtCj4gLSNkZWZpbmUgV09SRF9CSVRPRkZfVE9fTEUoeCkgICAgICAgICAgICgoeCkgXiAw eDE4KQo+IC0KPiAtI2VuZGlmICAgICAgICAgLyogX19BUk1FQl9fICovCj4gLQo+IC0jaWYgZGVm aW5lZChfX0xJTlVYX0FSTV9BUkNIX18pICYmIChfX0xJTlVYX0FSTV9BUkNIX18gPj0gNSkKPiAt c3RhdGljIGlubGluZSBpbnQgY29uc3RhbnRfZmxzKGludCB4KQo+IC17Cj4gLSAgICAgICBpbnQg ciA9IDMyOwo+IC0KPiAtICAgICAgIGlmICgheCkKPiAtICAgICAgICAgICAgICAgcmV0dXJuIDA7 Cj4gLSAgICAgICBpZiAoISh4ICYgMHhmZmZmMDAwMHUpKSB7Cj4gLSAgICAgICAgICAgICAgIHgg PDw9IDE2Owo+IC0gICAgICAgICAgICAgICByIC09IDE2Owo+IC0gICAgICAgfQo+IC0gICAgICAg aWYgKCEoeCAmIDB4ZmYwMDAwMDB1KSkgewo+IC0gICAgICAgICAgICAgICB4IDw8PSA4Owo+IC0g ICAgICAgICAgICAgICByIC09IDg7Cj4gLSAgICAgICB9Cj4gLSAgICAgICBpZiAoISh4ICYgMHhm MDAwMDAwMHUpKSB7Cj4gLSAgICAgICAgICAgICAgIHggPDw9IDQ7Cj4gLSAgICAgICAgICAgICAg IHIgLT0gNDsKPiAtICAgICAgIH0KPiAtICAgICAgIGlmICghKHggJiAweGMwMDAwMDAwdSkpIHsK PiAtICAgICAgICAgICAgICAgeCA8PD0gMjsKPiAtICAgICAgICAgICAgICAgciAtPSAyOwo+IC0g ICAgICAgfQo+IC0gICAgICAgaWYgKCEoeCAmIDB4ODAwMDAwMDB1KSkgewo+IC0gICAgICAgICAg ICAgICB4IDw8PSAxOwo+IC0gICAgICAgICAgICAgICByIC09IDE7Cj4gLSAgICAgICB9Cj4gLSAg ICAgICByZXR1cm4gcjsKPiAtfQo+IC0KPiAtLyoKPiAtICogT24gQVJNdjUgYW5kIGFib3ZlIHRo b3NlIGZ1bmN0aW9ucyBjYW4gYmUgaW1wbGVtZW50ZWQgYXJvdW5kCj4gLSAqIHRoZSBjbHogaW5z dHJ1Y3Rpb24gZm9yIG11Y2ggYmV0dGVyIGNvZGUgZWZmaWNpZW5jeS4KPiAtICovCj4gLSNkZWZp bmUgZmxzKHgpIFwKPiAtICAgICAgIChfX2J1aWx0aW5fY29uc3RhbnRfcCh4KSA/IGNvbnN0YW50 X2Zscyh4KSA6IFwKPiAtICAgICAgICh7IGludCBfX3I7IGFzbSgiY2x6XHQlMCwgJTEiIDogIj1y IihfX3IpIDogInIiKHgpIDogImNjIik7IDMyLV9fcjsgfSkpCj4gLSNkZWZpbmUgZmZzKHgpICh7 IHVuc2lnbmVkIGxvbmcgX190ID0gKHgpOyBmbHMoX190ICYtX190KTsgfSkKPiAtI2RlZmluZSBf X2Zmcyh4KSAoZmZzKHgpIC0gMSkKPiAtI2RlZmluZSBmZnooeCkgX19mZnMofih4KSkKPiAtI2Vs c2UgICAgICAgICAgLyogISBfX0FSTV9fVVNFX0dFTkVSSUNfRkYgKi8KPiAtLyoKPiAtICogZmZ6 ID0gRmluZCBGaXJzdCBaZXJvIGluIHdvcmQuIFVuZGVmaW5lZCBpZiBubyB6ZXJvIGV4aXN0cywK PiAtICogc28gY29kZSBzaG91bGQgY2hlY2sgYWdhaW5zdCB+MFVMIGZpcnN0Li4KPiAtICovCj4g LXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBmZnoodW5zaWduZWQgbG9uZyB3b3JkKQo+IC17 Cj4gLSAgICAgICBpbnQgazsKPiAtCj4gLSAgICAgICB3b3JkID0gfndvcmQ7Cj4gLSAgICAgICBr ID0gMzE7Cj4gLSAgICAgICBpZiAod29yZCAmIDB4MDAwMGZmZmYpIHsgayAtPSAxNjsgd29yZCA8 PD0gMTY7IH0KPiAtICAgICAgIGlmICh3b3JkICYgMHgwMGZmMDAwMCkgeyBrIC09IDg7ICB3b3Jk IDw8PSA4OyAgfQo+IC0gICAgICAgaWYgKHdvcmQgJiAweDBmMDAwMDAwKSB7IGsgLT0gNDsgIHdv cmQgPDw9IDQ7ICB9Cj4gLSAgICAgICBpZiAod29yZCAmIDB4MzAwMDAwMDApIHsgayAtPSAyOyAg d29yZCA8PD0gMjsgIH0KPiAtICAgICAgIGlmICh3b3JkICYgMHg0MDAwMDAwMCkgeyBrIC09IDE7 IH0KPiAtICAgICAgIHJldHVybiBrOwo+IC19Cj4gICNpbmNsdWRlIDxhc20tZ2VuZXJpYy9iaXRv cHMvX19mZnMuaD4KPiAgI2luY2x1ZGUgPGFzbS1nZW5lcmljL2JpdG9wcy9mZnMuaD4KPiArI2lu Y2x1ZGUgPGFzbS1nZW5lcmljL2JpdG9wcy9fX2Zscy5oPgo+ICAjaW5jbHVkZSA8YXNtLWdlbmVy aWMvYml0b3BzL2Zscy5oPgo+IC0jZW5kaWYgICAgICAgICAvKiBfX0FSTV9fVVNFX0dFTkVSSUNf RkYgKi8KPiArCj4gKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9iaXRvcHMvZmZ6Lmg+Cj4gICNpbmNs dWRlIDxhc20tZ2VuZXJpYy9iaXRvcHMvZmxzNjQuaD4KPiArI2luY2x1ZGUgPGFzbS1nZW5lcmlj L2JpdG9wcy9maW5kLmg+Cj4KPiAgI2luY2x1ZGUgPGFzbS1nZW5lcmljL2JpdG9wcy9od2VpZ2h0 Lmg+Cj4KPiAtI2VuZGlmIC8qIF9BUk1fQklUT1BTX0ggKi8KPiArI2luY2x1ZGUgPGFzbS1nZW5l cmljL2JpdG9wcy9vcHMuaD4KPiArCj4gKyNlbmRpZiAvKiBfX0FTTV9CSVRPUFNfSCAqLwo+IGRp ZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9ib2FyZGRhdGEuaCBiL2FyY2gvYXJtL2lu Y2x1ZGUvYXNtL2JvYXJkZGF0YS5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAw MDAwLi44YzNjNWYwCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNt L2JvYXJkZGF0YS5oCj4gQEAgLTAsMCArMSw1IEBACj4gKyNpZm5kZWYgX19BU01fQk9BUkREQVRB X0gKPiArI2RlZmluZSBfX0FTTV9CT0FSRERBVEFfSAo+ICsKPiArCj4gKyNlbmRpZiAvKiBfX0FT TV9CT0FSRERBVEFfSCAqLwo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9jYWNo ZS1sMngwLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9jYWNoZS1sMngwLmgKPiBpbmRleCA5YmIy NDViLi45NjNkZDk5IDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2NhY2hlLWwy eDAuaAo+ICsrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2NhY2hlLWwyeDAuaAo+IEBAIC01Niwx NCArNTYsNiBAQAo+ICAjZGVmaW5lIEwyWDBfTElORV9UQUcgICAgICAgICAgICAgICAgICAweEYz MAo+ICAjZGVmaW5lIEwyWDBfREVCVUdfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgIDB4RjQw Cj4gICNkZWZpbmUgTDJYMF9QUkVGRVRDSF9DVFJMICAgICAgICAgICAgIDB4RjYwCj4gLSNkZWZp bmUgICBMMlgwX0RPVUJMRV9MSU5FRklMTF9FTiAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAz MCkKPiAtI2RlZmluZSAgIEwyWDBfSU5TVFJVQ1RJT05fUFJFRkVUQ0hfRU4gICAgICAgICAgICAg ICAgICgxIDw8IDI5KQo+IC0jZGVmaW5lICAgTDJYMF9EQVRBX1BSRUZFVENIX0VOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOCkKPiAtI2RlZmluZSAgIEwyWDBfRE9VQkxF X0xJTkVGSUxMX09OX1dSQVBfUkVBRF9ESVMgICAgICAgICAgICAgICAgKDEgPDwgMjcpCj4gLSNk ZWZpbmUgICBMMlgwX1BSRUZFVENIX0RST1BfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgxIDw8IDI0KQo+IC0jZGVmaW5lICAgTDJYMF9JTkNSX0RPVUJMRV9MSU5FRklMTF9FTiAg ICAgICAgICAgICAgICAgKDEgPDwgMjMpCj4gLSNkZWZpbmUgICBMMlgwX0VTQ0xVU0lWRV9TRVFV RU5DRV9FTiAgICAgICAgICAgICAgICAgICAoMSA8PCAyMSkKPiAtCj4gICNkZWZpbmUgTDJYMF9Q T1dFUl9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgMHhGODAKPiAgI2RlZmluZSAgIEwyWDBf RFlOQU1JQ19DTEtfR0FUSU5HX0VOICAgKDEgPDwgMSkKPiAgI2RlZmluZSAgIEwyWDBfU1ROREJZ X01PREVfRU4gICAgICAgICAgKDEgPDwgMCkKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVk ZS9hc20vY2FjaGUuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2NhY2hlLmgKPiBpbmRleCAyZjZl YWIwLi41YTUyNGYzIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2NhY2hlLmgK PiArKysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9jYWNoZS5oCj4gQEAgLTEsOSArMSwxMSBAQAo+ ICAjaWZuZGVmIF9fQVNNX0NBQ0hFX0gKPiAgI2RlZmluZSBfX0FTTV9DQUNIRV9ICj4KPiArZXh0 ZXJuIHZvaWQgdjhfaW52YWxpZGF0ZV9pY2FjaGVfYWxsKHZvaWQpOwo+ICsKPiAgc3RhdGljIGlu bGluZSB2b2lkIGZsdXNoX2ljYWNoZSh2b2lkKQo+ICB7Cj4gLSAgICAgICBhc20gdm9sYXRpbGUo Im1jciBwMTUsIDAsICUwLCBjNywgYzUsIDAiIDogOiAiciIgKDApKTsKPiArICAgICAgIHY4X2lu dmFsaWRhdGVfaWNhY2hlX2FsbCgpOwo+ICB9Cj4KPiAgaW50IGFybV9zZXRfY2FjaGVfZnVuY3Rp b25zKHZvaWQpOwo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9lcnJhdGEuaCBi L2FyY2gvYXJtL2luY2x1ZGUvYXNtL2VycmF0YS5oCj4gaW5kZXggOTgxMzdiNS4uOTUyNTgyMyAx MDA2NDQKPiAtLS0gYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9lcnJhdGEuaAo+ICsrKyBiL2FyY2gv YXJtL2luY2x1ZGUvYXNtL2VycmF0YS5oCj4gQEAgLTc3LDEyICs3NywzIEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBlbmFibGVfYXJtX2VycmF0YV83OTQwNzJfd2FyKHZvaWQpCj4gICAgICAgICAgICAg ICAgICJtY3IgICAgcDE1LCAwLCByMCwgYzE1LCBjMCwgMVxuIgo+ICAgICAgICAgKTsKPiAgfQo+ IC0KPiAtc3RhdGljIGlubGluZSB2b2lkIGVuYWJsZV9hcm1fZXJyYXRhXzg0NTM2OV93YXIodm9p ZCkKPiAtewo+IC0gICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAo+IC0gICAgICAgICAgICAg ICAibXJjICAgIHAxNSwgMCwgcjAsIGMxNSwgYzAsIDFcbiIKPiAtICAgICAgICAgICAgICAgIm9y ciAgICByMCwgcjAsICMxIDw8IDIyXG4iCj4gLSAgICAgICAgICAgICAgICJtY3IgICAgcDE1LCAw LCByMCwgYzE1LCBjMCwgMVxuIgo+IC0gICAgICAgKTsKPiAtfQo+IGRpZmYgLS1naXQgYS9hcmNo L2FybS9pbmNsdWRlL2FzbS9naWMuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2dpYy5oCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5jN2MxN2UzCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2dpYy5oCj4gQEAgLTAsMCArMSwxMjggQEAK PiArI2lmbmRlZiBfX0dJQ19IX18KPiArI2RlZmluZSBfX0dJQ19IX18KPiArCj4gKy8qIEdlbmVy aWMgSW50ZXJydXB0IENvbnRyb2xsZXIgRGVmaW5pdGlvbnMgKi8KPiArLy8jaWZkZWYgQ09ORklH X0dJQ1YzCj4gKy8vI2RlZmluZSBHSUNEX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICgweDJm MDAwMDAwKQo+ICsvLyNkZWZpbmUgR0lDUl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAoMHgy ZjEwMDAwMCkKPiArLy8jZWxzZQo+ICsKPiArLy8jaWYgZGVmaW5lZChDT05GSUdfVEFSR0VUX1ZF WFBSRVNTNjRfQkFTRV9GVlApIHx8IFwKPiArICAgICAgICBkZWZpbmVkKENPTkZJR19UQVJHRVRf VkVYUFJFU1M2NF9CQVNFX0ZWUF9EUkFNKQo+ICsvLyNkZWZpbmUgR0lDRF9CQVNFICAgICAgICAg ICAgICAgICAgICAgICAoMHgyZjAwMDAwMCkKPiArLy8jZGVmaW5lIEdJQ0NfQkFTRSAgICAgICAg ICAgICAgICAgICAgICAgKDB4MmMwMDAwMDApCj4gKy8vI2VsaWYgQ09ORklHX1RBUkdFVF9WRVhQ UkVTUzY0X0pVTk8KPiArI2RlZmluZSBHSUNfRElTVF9CQVNFICAgICAgICAgICAgICAgICAgICAg ICAoMHgyQzAxMDAwMCkKPiArI2RlZmluZSBHSUNfQ1BVX0JBU0UgICAgICAgICAgICAgICAgICAg ICAgICgweDJDMDJmMDAwKQo+ICsvLyNlbHNlCj4gKy8vI2Vycm9yICJVbmtub3duIGJvYXJkIHZh cmlhbnQiCj4gKy8vI2VuZGlmCj4gKy8vI2VuZGlmIC8qICFDT05GSUdfR0lDVjMgKi8KPiArCj4g Ky8qIFJlZ2lzdGVyIG9mZnNldHMgZm9yIHRoZSBBUk0gZ2VuZXJpYyBpbnRlcnJ1cHQgY29udHJv bGxlciAoR0lDKSAqLwo+ICsKPiArI2RlZmluZSBHSUNfRElTVF9PRkZTRVQgICAgICAgICAgICAg ICAgMHgxMDAwCj4gKyNkZWZpbmUgR0lDX0NQVV9PRkZTRVRfQTkgICAgICAweDAxMDAKPiArI2Rl ZmluZSBHSUNfQ1BVX09GRlNFVF9BMTUgICAgIDB4MjAwMAo+ICsKPiArLyogRGlzdHJpYnV0b3Ig UmVnaXN0ZXJzICovCj4gKyNkZWZpbmUgR0lDRF9DVExSICAgICAgICAgICAgICAweDAwMDAKPiAr I2RlZmluZSBHSUNEX1RZUEVSICAgICAgICAgICAgIDB4MDAwNAo+ICsjZGVmaW5lIEdJQ0RfSUlE UiAgICAgICAgICAgICAgMHgwMDA4Cj4gKyNkZWZpbmUgR0lDRF9TVEFUVVNSICAgICAgICAgICAw eDAwMTAKPiArI2RlZmluZSBHSUNEX1NFVFNQSV9OU1IgICAgICAgICAgICAgICAgMHgwMDQwCj4g KyNkZWZpbmUgR0lDRF9DTFJTUElfTlNSICAgICAgICAgICAgICAgIDB4MDA0OAo+ICsjZGVmaW5l IEdJQ0RfU0VUU1BJX1NSICAgICAgICAgMHgwMDUwCj4gKyNkZWZpbmUgR0lDRF9DTFJTUElfU1Ig ICAgICAgICAweDAwNTgKPiArI2RlZmluZSBHSUNEX1NFSVIgICAgICAgICAgICAgIDB4MDA2OAo+ ICsjZGVmaW5lIEdJQ0RfSUdST1VQUm4gICAgICAgICAgMHgwMDgwCj4gKyNkZWZpbmUgR0lDRF9J U0VOQUJMRVJuICAgICAgICAgICAgICAgIDB4MDEwMAo+ICsjZGVmaW5lIEdJQ0RfSUNFTkFCTEVS biAgICAgICAgICAgICAgICAweDAxODAKPiArI2RlZmluZSBHSUNEX0lTUEVORFJuICAgICAgICAg IDB4MDIwMAo+ICsjZGVmaW5lIEdJQ0RfSUNQRU5EUm4gICAgICAgICAgMHgwMjgwCj4gKyNkZWZp bmUgR0lDRF9JU0FDVElWRVJuICAgICAgICAgICAgICAgIDB4MDMwMAo+ICsjZGVmaW5lIEdJQ0Rf SUNBQ1RJVkVSbiAgICAgICAgICAgICAgICAweDAzODAKPiArI2RlZmluZSBHSUNEX0lQUklPUklU WVJuICAgICAgIDB4MDQwMAo+ICsjZGVmaW5lIEdJQ0RfSVRBUkdFVFNSbiAgICAgICAgICAgICAg ICAweDA4MDAKPiArI2RlZmluZSBHSUNEX0lDRkdSICAgICAgICAgICAgIDB4MGMwMAo+ICsjZGVm aW5lIEdJQ0RfSUdST1VQTU9EUm4gICAgICAgMHgwZDAwCj4gKyNkZWZpbmUgR0lDRF9OU0FDUm4g ICAgICAgICAgICAweDBlMDAKPiArI2RlZmluZSBHSUNEX1NHSVIgICAgICAgICAgICAgIDB4MGYw MAo+ICsjZGVmaW5lIEdJQ0RfQ1BFTkRTR0lSbiAgICAgICAgICAgICAgICAweDBmMTAKPiArI2Rl ZmluZSBHSUNEX1NQRU5EU0dJUm4gICAgICAgICAgICAgICAgMHgwZjIwCj4gKyNkZWZpbmUgR0lD RF9JUk9VVEVSbiAgICAgICAgICAweDYwMDAKPiArCj4gKy8qIENwdSBJbnRlcmZhY2UgTWVtb3J5 IE1hcHBlZCBSZWdpc3RlcnMgKi8KPiArI2RlZmluZSBHSUNDX0NUTFIgICAgICAgICAgICAgIDB4 MDAwMAo+ICsjZGVmaW5lIEdJQ0NfUE1SICAgICAgICAgICAgICAgMHgwMDA0Cj4gKyNkZWZpbmUg R0lDQ19CUFIgICAgICAgICAgICAgICAweDAwMDgKPiArI2RlZmluZSBHSUNDX0lBUiAgICAgICAg ICAgICAgIDB4MDAwQwo+ICsjZGVmaW5lIEdJQ0NfRU9JUiAgICAgICAgICAgICAgMHgwMDEwCj4g KyNkZWZpbmUgR0lDQ19SUFIgICAgICAgICAgICAgICAweDAwMTQKPiArI2RlZmluZSBHSUNDX0hQ UElSICAgICAgICAgICAgIDB4MDAxOAo+ICsjZGVmaW5lIEdJQ0NfQUJQUiAgICAgICAgICAgICAg MHgwMDFjCj4gKyNkZWZpbmUgR0lDQ19BSUFSICAgICAgICAgICAgICAweDAwMjAKPiArI2RlZmlu ZSBHSUNDX0FFT0lSICAgICAgICAgICAgIDB4MDAyNAo+ICsjZGVmaW5lIEdJQ0NfQUhQUElSICAg ICAgICAgICAgMHgwMDI4Cj4gKyNkZWZpbmUgR0lDQ19BUFJuICAgICAgICAgICAgICAweDAwZDAK PiArI2RlZmluZSBHSUNDX05TQVBSbiAgICAgICAgICAgIDB4MDBlMAo+ICsjZGVmaW5lIEdJQ0Nf SUlEUiAgICAgICAgICAgICAgMHgwMGZjCj4gKyNkZWZpbmUgR0lDQ19ESVIgICAgICAgICAgICAg ICAweDEwMDAKPiArCj4gKy8qIFJlRGlzdHJpYnV0b3IgUmVnaXN0ZXJzIGZvciBDb250cm9sIGFu ZCBQaHlzaWNhbCBMUElzICovCj4gKyNkZWZpbmUgR0lDUl9DVExSICAgICAgICAgICAgICAweDAw MDAKPiArI2RlZmluZSBHSUNSX0lJRFIgICAgICAgICAgICAgIDB4MDAwNAo+ICsjZGVmaW5lIEdJ Q1JfVFlQRVIgICAgICAgICAgICAgMHgwMDA4Cj4gKyNkZWZpbmUgR0lDUl9TVEFUVVNSICAgICAg ICAgICAweDAwMTAKPiArI2RlZmluZSBHSUNSX1dBS0VSICAgICAgICAgICAgIDB4MDAxNAo+ICsj ZGVmaW5lIEdJQ1JfU0VUTFBJUiAgICAgICAgICAgMHgwMDQwCj4gKyNkZWZpbmUgR0lDUl9DTFJM UElSICAgICAgICAgICAweDAwNDgKPiArI2RlZmluZSBHSUNSX1NFSVIgICAgICAgICAgICAgIDB4 MDA2OAo+ICsjZGVmaW5lIEdJQ1JfUFJPUEJBU0VSICAgICAgICAgMHgwMDcwCj4gKyNkZWZpbmUg R0lDUl9QRU5EQkFTRVIgICAgICAgICAweDAwNzgKPiArI2RlZmluZSBHSUNSX0lOVkxQSVIgICAg ICAgICAgIDB4MDBhMAo+ICsjZGVmaW5lIEdJQ1JfSU5WQUxMUiAgICAgICAgICAgMHgwMGIwCj4g KyNkZWZpbmUgR0lDUl9TWU5DUiAgICAgICAgICAgICAweDAwYzAKPiArI2RlZmluZSBHSUNSX01P VkxQSVIgICAgICAgICAgIDB4MDEwMAo+ICsjZGVmaW5lIEdJQ1JfTU9WQUxMUiAgICAgICAgICAg MHgwMTEwCj4gKwo+ICsvKiBSZURpc3RyaWJ1dG9yIFJlZ2lzdGVycyBmb3IgU0dJcyBhbmQgUFBJ cyAqLwo+ICsjZGVmaW5lIEdJQ1JfSUdST1VQUm4gICAgICAgICAgMHgwMDgwCj4gKyNkZWZpbmUg R0lDUl9JU0VOQUJMRVJuICAgICAgICAgICAgICAgIDB4MDEwMAo+ICsjZGVmaW5lIEdJQ1JfSUNF TkFCTEVSbiAgICAgICAgICAgICAgICAweDAxODAKPiArI2RlZmluZSBHSUNSX0lTUEVORFJuICAg ICAgICAgIDB4MDIwMAo+ICsjZGVmaW5lIEdJQ1JfSUNQRU5EUm4gICAgICAgICAgMHgwMjgwCj4g KyNkZWZpbmUgR0lDUl9JU0FDVElWRVJuICAgICAgICAgICAgICAgIDB4MDMwMAo+ICsjZGVmaW5l IEdJQ1JfSUNBQ1RJVkVSbiAgICAgICAgICAgICAgICAweDAzODAKPiArI2RlZmluZSBHSUNSX0lQ UklPUklUWVJuICAgICAgIDB4MDQwMAo+ICsjZGVmaW5lIEdJQ1JfSUNGR1IwICAgICAgICAgICAg MHgwYzAwCj4gKyNkZWZpbmUgR0lDUl9JQ0ZHUjEgICAgICAgICAgICAweDBjMDQKPiArI2RlZmlu ZSBHSUNSX0lHUk9VUE1PRFJuICAgICAgIDB4MGQwMAo+ICsjZGVmaW5lIEdJQ1JfTlNBQ1JuICAg ICAgICAgICAgMHgwZTAwCj4gKwo+ICsvKiBDcHUgSW50ZXJmYWNlIFN5c3RlbSBSZWdpc3RlcnMg Ki8KPiArI2RlZmluZSBJQ0NfSUFSMF9FTDEgICAgICAgICAgIFMzXzBfQzEyX0M4XzAKPiArI2Rl ZmluZSBJQ0NfSUFSMV9FTDEgICAgICAgICAgIFMzXzBfQzEyX0MxMl8wCj4gKyNkZWZpbmUgSUND X0VPSVIwX0VMMSAgICAgICAgICBTM18wX0MxMl9DOF8xCj4gKyNkZWZpbmUgSUNDX0VPSVIxX0VM MSAgICAgICAgICBTM18wX0MxMl9DMTJfMQo+ICsjZGVmaW5lIElDQ19IUFBJUjBfRUwxICAgICAg ICAgUzNfMF9DMTJfQzhfMgo+ICsjZGVmaW5lIElDQ19IUFBJUjFfRUwxICAgICAgICAgUzNfMF9D MTJfQzEyXzIKPiArI2RlZmluZSBJQ0NfQlBSMF9FTDEgICAgICAgICAgIFMzXzBfQzEyX0M4XzMK PiArI2RlZmluZSBJQ0NfQlBSMV9FTDEgICAgICAgICAgIFMzXzBfQzEyX0MxMl8zCj4gKyNkZWZp bmUgSUNDX0RJUl9FTDEgICAgICAgICAgICBTM18wX0MxMl9DMTFfMQo+ICsjZGVmaW5lIElDQ19Q TVJfRUwxICAgICAgICAgICAgUzNfMF9DNF9DNl8wCj4gKyNkZWZpbmUgSUNDX1JQUl9FTDEgICAg ICAgICAgICBTM18wX0MxMl9DMTFfMwo+ICsjZGVmaW5lIElDQ19DVExSX0VMMSAgICAgICAgICAg UzNfMF9DMTJfQzEyXzQKPiArI2RlZmluZSBJQ0NfQ1RMUl9FTDMgICAgICAgICAgIFMzXzZfQzEy X0MxMl80Cj4gKyNkZWZpbmUgSUNDX1NSRV9FTDEgICAgICAgICAgICBTM18wX0MxMl9DMTJfNQo+ ICsjZGVmaW5lIElDQ19TUkVfRUwyICAgICAgICAgICAgUzNfNF9DMTJfQzlfNQo+ICsjZGVmaW5l IElDQ19TUkVfRUwzICAgICAgICAgICAgUzNfNl9DMTJfQzEyXzUKPiArI2RlZmluZSBJQ0NfSUdS UEVOMF9FTDEgICAgICAgICAgICAgICAgUzNfMF9DMTJfQzEyXzYKPiArI2RlZmluZSBJQ0NfSUdS UEVOMV9FTDEgICAgICAgICAgICAgICAgUzNfMF9DMTJfQzEyXzcKPiArI2RlZmluZSBJQ0NfSUdS UEVOMV9FTDMgICAgICAgICAgICAgICAgUzNfNl9DMTJfQzEyXzcKPiArI2RlZmluZSBJQ0NfU0VJ RU5fRUwxICAgICAgICAgIFMzXzBfQzEyX0MxM18wCj4gKyNkZWZpbmUgSUNDX1NHSTBSX0VMMSAg ICAgICAgICBTM18wX0MxMl9DMTFfNwo+ICsjZGVmaW5lIElDQ19TR0kxUl9FTDEgICAgICAgICAg UzNfMF9DMTJfQzExXzUKPiArI2RlZmluZSBJQ0NfQVNHSTFSX0VMMSAgICAgICAgIFMzXzBfQzEy X0MxMV82Cj4gKwo+ICsjZW5kaWYgLyogX19HSUNfSF9fICovCj4gZGlmZiAtLWdpdCBhL2FyY2gv YXJtL2luY2x1ZGUvYXNtL21tdS5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vbW11LmgKPiBpbmRl eCA4ZGU2NTQ0Li44YTFkODBhIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21t dS5oCj4gKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vbW11LmgKPiBAQCAtMTMsOSArMTMsNyBA QAo+Cj4gIHN0cnVjdCBhcm1fbWVtb3J5Owo+Cj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBtbXVfZW5h YmxlKHZvaWQpCj4gLXsKPiAtfQo+ICt2b2lkIG1tdV9lbmFibGUodm9pZCk7Cj4gIHZvaWQgbW11 X2Rpc2FibGUodm9pZCk7Cj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBhcm1fY3JlYXRlX3NlY3Rpb24o dW5zaWduZWQgbG9uZyB2aXJ0LCB1bnNpZ25lZCBsb25nIHBoeXMsIGludCBzaXplX20sCj4gICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncykKPiBAQCAtMzAsNyArMjgsNyBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgc2V0dXBfZG1hX2NvaGVyZW50KHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQo+ ICAjZGVmaW5lIEFSQ0hfSEFTX1JFTUFQCj4gICNkZWZpbmUgTUFQX0FSQ0hfREVGQVVMVCBNQVBf Q0FDSEVECj4gIGludCBhcmNoX3JlbWFwX3JhbmdlKHZvaWQgKl9zdGFydCwgc2l6ZV90IHNpemUs IHVuc2lnbmVkIGZsYWdzKTsKPiAtdm9pZCAqbWFwX2lvX3NlY3Rpb25zKHVuc2lnbmVkIGxvbmcg cGh5c2FkZHIsIHZvaWQgKnN0YXJ0LCBzaXplX3Qgc2l6ZSk7Cj4gK3ZvaWQgKm1hcF9pb19zZWN0 aW9ucyh1aW50NjRfdCBwaHlzLCB2b2lkICpfc3RhcnQsIHNpemVfdCBzaXplKTsKPiAgI2Vsc2UK PiAgI2RlZmluZSBNQVBfQVJDSF9ERUZBVUxUIE1BUF9VTkNBQ0hFRAo+ICBzdGF0aWMgaW5saW5l IHZvaWQgKm1hcF9pb19zZWN0aW9ucyh1bnNpZ25lZCBsb25nIHBoeXMsIHZvaWQgKnN0YXJ0LCBz aXplX3Qgc2l6ZSkKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vcGd0YWJsZS5o IGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4gaW5kZXggZmQxNTIxZC4uZTRhM2M1 MyAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKPiArKysgYi9h cmNoL2FybS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKPiBAQCAtMTgsOCArMTgsOSBAQAo+ICAgKi8K PiAgI2RlZmluZSBQTURfVFlQRV9NQVNLICAgICAgICAgICgzIDw8IDApCj4gICNkZWZpbmUgUE1E X1RZUEVfRkFVTFQgICAgICAgICAoMCA8PCAwKQo+IC0jZGVmaW5lIFBNRF9UWVBFX1RBQkxFICAg ICAgICAgKDEgPDwgMCkKPiAtI2RlZmluZSBQTURfVFlQRV9TRUNUICAgICAgICAgICgyIDw8IDAp Cj4gKyNkZWZpbmUgUE1EX1RZUEVfVEFCTEUgICAgICAgICAoMyA8PCAwKQo+ICsjZGVmaW5lIFBN RF9UWVBFX1BBR0UgICAgICAgICAgKDMgPDwgMCkKPiArI2RlZmluZSBQTURfVFlQRV9TRUNUICAg ICAgICAgICgxIDw8IDApCj4gICNkZWZpbmUgUE1EX0JJVDQgICAgICAgICAgICAgICAoMSA8PCA0 KQo+ICAjZGVmaW5lIFBNRF9ET01BSU4oeCkgICAgICAgICAgKCh4KSA8PCA1KQo+ICAjZGVmaW5l IFBNRF9QUk9URUNUSU9OICAgICAgICAgKDEgPDwgOSkgICAgICAgIC8qIHY1ICovCj4gZGlmZiAt LWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3B0cmFjZS5oIGIvYXJjaC9hcm0vaW5jbHVkZS9h c20vcHRyYWNlLmgKPiBpbmRleCAwMjJkMzY1Li40NTBiNjNhIDEwMDY0NAo+IC0tLSBhL2FyY2gv YXJtL2luY2x1ZGUvYXNtL3B0cmFjZS5oCj4gKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vcHRy YWNlLmgKPiBAQCAtMjAsMTI0ICsyMCwxNSBAQAo+ICAvKiBvcHRpb25zIHNldCB1c2luZyBQVFJB Q0VfU0VUT1BUSU9OUyAqLwo+ICAjZGVmaW5lIFBUUkFDRV9PX1RSQUNFU1lTR09PRCAgMHgwMDAw MDAwMQo+Cj4gLS8qCj4gLSAqIFBTUiBiaXRzCj4gLSAqLwo+IC0jZGVmaW5lIFVTUjI2X01PREUg ICAgIDB4MDAwMDAwMDAKPiAtI2RlZmluZSBGSVEyNl9NT0RFICAgICAweDAwMDAwMDAxCj4gLSNk ZWZpbmUgSVJRMjZfTU9ERSAgICAgMHgwMDAwMDAwMgo+IC0jZGVmaW5lIFNWQzI2X01PREUgICAg IDB4MDAwMDAwMDMKPiAtI2RlZmluZSBVU1JfTU9ERSAgICAgICAweDAwMDAwMDEwCj4gLSNkZWZp bmUgRklRX01PREUgICAgICAgMHgwMDAwMDAxMQo+IC0jZGVmaW5lIElSUV9NT0RFICAgICAgIDB4 MDAwMDAwMTIKPiAtI2RlZmluZSBTVkNfTU9ERSAgICAgICAweDAwMDAwMDEzCj4gLSNkZWZpbmUg QUJUX01PREUgICAgICAgMHgwMDAwMDAxNwo+IC0jZGVmaW5lIFVORF9NT0RFICAgICAgIDB4MDAw MDAwMWIKPiAtI2RlZmluZSBTWVNURU1fTU9ERSAgICAweDAwMDAwMDFmCj4gLSNkZWZpbmUgTU9E RTMyX0JJVCAgICAgMHgwMDAwMDAxMAo+IC0jZGVmaW5lIE1PREVfTUFTSyAgICAgIDB4MDAwMDAw MWYKPiAtI2RlZmluZSBQU1JfVF9CSVQgICAgICAweDAwMDAwMDIwCj4gLSNkZWZpbmUgUFNSX0Zf QklUICAgICAgMHgwMDAwMDA0MAo+IC0jZGVmaW5lIFBTUl9JX0JJVCAgICAgIDB4MDAwMDAwODAK PiAtI2RlZmluZSBQU1JfQV9CSVQgICAgICAweDAwMDAwMTAwCj4gLSNkZWZpbmUgUFNSX0VfQklU ICAgICAgMHgwMDAwMDIwMAo+IC0jZGVmaW5lIFBTUl9KX0JJVCAgICAgIDB4MDEwMDAwMDAKPiAt I2RlZmluZSBQU1JfUV9CSVQgICAgICAweDA4MDAwMDAwCj4gLSNkZWZpbmUgUFNSX1ZfQklUICAg ICAgMHgxMDAwMDAwMAo+IC0jZGVmaW5lIFBTUl9DX0JJVCAgICAgIDB4MjAwMDAwMDAKPiAtI2Rl ZmluZSBQU1JfWl9CSVQgICAgICAweDQwMDAwMDAwCj4gLSNkZWZpbmUgUFNSX05fQklUICAgICAg MHg4MDAwMDAwMAo+IC0jZGVmaW5lIFBDTUFTSyAgICAgICAgIDAKPiAtCj4gICNpZm5kZWYgX19B U1NFTUJMWV9fCj4KPiAgLyogdGhpcyBzdHJ1Y3QgZGVmaW5lcyB0aGUgd2F5IHRoZSByZWdpc3Rl cnMgYXJlIHN0b3JlZCBvbiB0aGUKPiAgICAgc3RhY2sgZHVyaW5nIGEgc3lzdGVtIGNhbGwuICov Cj4KPiAgc3RydWN0IHB0X3JlZ3Mgewo+IC0gICAgICAgbG9uZyB1cmVnc1sxOF07Cj4gKyAgICAg ICBsb25nIHVyZWdzWzMxXTsKPiAgfTsKPgo+IC0jZGVmaW5lIEFSTV9jcHNyICAgICAgIHVyZWdz WzE2XQo+IC0jZGVmaW5lIEFSTV9wYyAgICAgICAgIHVyZWdzWzE1XQo+IC0jZGVmaW5lIEFSTV9s ciAgICAgICAgIHVyZWdzWzE0XQo+IC0jZGVmaW5lIEFSTV9zcCAgICAgICAgIHVyZWdzWzEzXQo+ IC0jZGVmaW5lIEFSTV9pcCAgICAgICAgIHVyZWdzWzEyXQo+IC0jZGVmaW5lIEFSTV9mcCAgICAg ICAgIHVyZWdzWzExXQo+IC0jZGVmaW5lIEFSTV9yMTAgICAgICAgICAgICAgICAgdXJlZ3NbMTBd Cj4gLSNkZWZpbmUgQVJNX3I5ICAgICAgICAgdXJlZ3NbOV0KPiAtI2RlZmluZSBBUk1fcjggICAg ICAgICB1cmVnc1s4XQo+IC0jZGVmaW5lIEFSTV9yNyAgICAgICAgIHVyZWdzWzddCj4gLSNkZWZp bmUgQVJNX3I2ICAgICAgICAgdXJlZ3NbNl0KPiAtI2RlZmluZSBBUk1fcjUgICAgICAgICB1cmVn c1s1XQo+IC0jZGVmaW5lIEFSTV9yNCAgICAgICAgIHVyZWdzWzRdCj4gLSNkZWZpbmUgQVJNX3Iz ICAgICAgICAgdXJlZ3NbM10KPiAtI2RlZmluZSBBUk1fcjIgICAgICAgICB1cmVnc1syXQo+IC0j ZGVmaW5lIEFSTV9yMSAgICAgICAgIHVyZWdzWzFdCj4gLSNkZWZpbmUgQVJNX3IwICAgICAgICAg dXJlZ3NbMF0KPiAtI2RlZmluZSBBUk1fT1JJR19yMCAgICB1cmVnc1sxN10KPiAtCj4gLSNpZmRl ZiBfX0tFUk5FTF9fCj4gLQo+IC0jZGVmaW5lIHVzZXJfbW9kZShyZWdzKSAgICAgICAgXAo+IC0g ICAgICAgKCgocmVncyktPkFSTV9jcHNyICYgMHhmKSA9PSAwKQo+IC0KPiAtI2lmZGVmIENPTkZJ R19BUk1fVEhVTUIKPiAtI2RlZmluZSB0aHVtYl9tb2RlKHJlZ3MpIFwKPiAtICAgICAgICgoKHJl Z3MpLT5BUk1fY3BzciAmIFBTUl9UX0JJVCkpCj4gLSNlbHNlCj4gLSNkZWZpbmUgdGh1bWJfbW9k ZShyZWdzKSAoMCkKPiAtI2VuZGlmCj4gLQo+IC0jZGVmaW5lIHByb2Nlc3Nvcl9tb2RlKHJlZ3Mp IFwKPiAtICAgICAgICgocmVncyktPkFSTV9jcHNyICYgTU9ERV9NQVNLKQo+IC0KPiAtI2RlZmlu ZSBpbnRlcnJ1cHRzX2VuYWJsZWQocmVncykgXAo+IC0gICAgICAgKCEoKHJlZ3MpLT5BUk1fY3Bz ciAmIFBTUl9JX0JJVCkpCj4gLQo+IC0jZGVmaW5lIGZhc3RfaW50ZXJydXB0c19lbmFibGVkKHJl Z3MpIFwKPiAtICAgICAgICghKChyZWdzKS0+QVJNX2Nwc3IgJiBQU1JfRl9CSVQpKQo+IC0KPiAt I2RlZmluZSBjb25kaXRpb25fY29kZXMocmVncykgXAo+IC0gICAgICAgKChyZWdzKS0+QVJNX2Nw c3IgJiAoUFNSX1ZfQklUIHwgUFNSX0NfQklUIHwgUFNSX1pfQklUIHwgUFNSX05fQklUKSkKPiAt Cj4gLS8qIEFyZSB0aGUgY3VycmVudCByZWdpc3RlcnMgc3VpdGFibGUgZm9yIHVzZXIgbW9kZT8K PiAtICogKHVzZWQgdG8gbWFpbnRhaW4gc2VjdXJpdHkgaW4gc2lnbmFsIGhhbmRsZXJzKQo+IC0g Ki8KPiAtc3RhdGljIGlubGluZSBpbnQgdmFsaWRfdXNlcl9yZWdzKHN0cnVjdCBwdF9yZWdzICpy ZWdzKQo+IC17Cj4gLSAgICAgICBpZiAoKHJlZ3MtPkFSTV9jcHNyICYgMHhmKSA9PSAwICYmCj4g LSAgICAgICAgICAgKHJlZ3MtPkFSTV9jcHNyICYgKFBTUl9GX0JJVCB8IFBTUl9JX0JJVCkpID09 IDApCj4gLSAgICAgICAgICAgICAgIHJldHVybiAxOwo+IC0KPiAtICAgICAgIC8qCj4gLSAgICAg ICAgKiBGb3JjZSBDUFNSIHRvIHNvbWV0aGluZyBsb2dpY2FsLi4uCj4gLSAgICAgICAgKi8KPiAt ICAgICAgIHJlZ3MtPkFSTV9jcHNyICY9IChQU1JfVl9CSVQgfCBQU1JfQ19CSVQgfCBQU1JfWl9C SVQgfCBQU1JfTl9CSVQgfAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCk7 Cj4gLQo+IC0gICAgICAgcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLSNlbmRpZiAvKiBfX0tFUk5FTF9f ICovCj4gLQo+ICAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCj4KPiAtI2lmbmRlZiBfX0FTU0VN QkxZX18KPiAtI2RlZmluZSBwY19wb2ludGVyKHYpIFwKPiAtICAgICAgICgodikgJiB+UENNQVNL KQo+IC0KPiAtI2RlZmluZSBpbnN0cnVjdGlvbl9wb2ludGVyKHJlZ3MpIFwKPiAtICAgICAgIChw Y19wb2ludGVyKChyZWdzKS0+QVJNX3BjKSkKPiAtCj4gLSNpZmRlZiBfX0tFUk5FTF9fCj4gLWV4 dGVybiB2b2lkIHNob3dfcmVncyhzdHJ1Y3QgcHRfcmVncyAqKTsKPiAtCj4gLSNkZWZpbmUgcHJl ZGljYXRlKHgpICAgKHggJiAweGYwMDAwMDAwKQo+IC0jZGVmaW5lIFBSRURJQ0FURV9BTFdBWVMg ICAgICAgMHhlMDAwMDAwMAo+IC0KPiAtI2VuZGlmCj4gLQo+IC0jZW5kaWYgLyogX19BU1NFTUJM WV9fICovCj4gLQo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20v c3lzdGVtLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9zeXN0ZW0uaAo+IGluZGV4IGIxMThhNDIu LjA0YTc5YzQgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vc3lzdGVtLmgKPiAr KysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9zeXN0ZW0uaAo+IEBAIC0xLDk2ICsxLDEyNSBAQAo+ ICAjaWZuZGVmIF9fQVNNX0FSTV9TWVNURU1fSAo+ICAjZGVmaW5lIF9fQVNNX0FSTV9TWVNURU1f SAo+Cj4gLSNpZiBfX0xJTlVYX0FSTV9BUkNIX18gPj0gNwo+ICAjZGVmaW5lIGlzYigpIF9fYXNt X18gX192b2xhdGlsZV9fICgiaXNiIiA6IDogOiAibWVtb3J5IikKPiAtI2RlZmluZSBkc2IoKSBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoImRzYiIgOiA6IDogIm1lbW9yeSIpCj4gKyNkZWZpbmUgZHNi KCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJkc2Igc3kiIDogOiA6ICJtZW1vcnkiKQo+ICAjZGVm aW5lIGRtYigpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZG1iIiA6IDogOiAibWVtb3J5IikKPiAt I2VsaWYgZGVmaW5lZChDT05GSUdfQ1BVX1hTQzMpIHx8IF9fTElOVVhfQVJNX0FSQ0hfXyA9PSA2 Cj4gLSNkZWZpbmUgaXNiKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtY3IgcDE1LCAwLCAlMCwg YzcsIGM1LCA0IiBcCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogOiAi ciIgKDApIDogIm1lbW9yeSIpCj4gLSNkZWZpbmUgZHNiKCkgX19hc21fXyBfX3ZvbGF0aWxlX18g KCJtY3IgcDE1LCAwLCAlMCwgYzcsIGMxMCwgNCIgXAo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IDogInIiICgwKSA6ICJtZW1vcnkiKQo+IC0jZGVmaW5lIGRtYigpIF9f YXNtX18gX192b2xhdGlsZV9fICgibWNyIHAxNSwgMCwgJTAsIGM3LCBjMTAsIDUiIFwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiA6ICJyIiAoMCkgOiAibWVtb3J5IikK PiAtI2VsaWYgZGVmaW5lZChDT05GSUdfQ1BVX0ZBNTI2KQo+IC0jZGVmaW5lIGlzYigpIF9fYXNt X18gX192b2xhdGlsZV9fICgibWNyIHAxNSwgMCwgJTAsIGM3LCBjNSwgNCIgXAo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDogInIiICgwKSA6ICJtZW1vcnkiKQo+IC0j ZGVmaW5lIGRzYigpIF9fYXNtX18gX192b2xhdGlsZV9fICgibWNyIHAxNSwgMCwgJTAsIGM3LCBj MTAsIDQiIFwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiA6ICJyIiAo MCkgOiAibWVtb3J5IikKPiAtI2RlZmluZSBkbWIoKSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIg OiA6IDogIm1lbW9yeSIpCj4gLSNlbHNlCj4gLSNkZWZpbmUgaXNiKCkgX19hc21fXyBfX3ZvbGF0 aWxlX18gKCIiIDogOiA6ICJtZW1vcnkiKQo+IC0jZGVmaW5lIGRzYigpIF9fYXNtX18gX192b2xh dGlsZV9fICgibWNyIHAxNSwgMCwgJTAsIGM3LCBjMTAsIDQiIFwKPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOiA6ICJyIiAoMCkgOiAibWVtb3J5IikKPiAtI2RlZmluZSBk bWIoKSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIgOiA6IDogIm1lbW9yeSIpCj4gLSNlbmRpZgo+ Cj4gIC8qCj4gLSAqIENSMSBiaXRzIChDUCMxNSBDUjEpCj4gKyAqIFNDVExSX0VMMS9TQ1RMUl9F TDIvU0NUTFJfRUwzIGJpdHMgZGVmaW5pdGlvbnMKPiAgICovCj4gLSNkZWZpbmUgQ1JfTSAgICAo MSA8PCAwKSAgICAgICAvKiBNTVUgZW5hYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K PiAtI2RlZmluZSBDUl9BICAgICgxIDw8IDEpICAgICAgIC8qIEFsaWdubWVudCBhYm9ydCBlbmFi bGUgICAgICAgICAgICAgICAqLwo+IC0jZGVmaW5lIENSX0MgICAgKDEgPDwgMikgICAgICAgLyog RGNhY2hlIGVuYWJsZSAgICAgICAgICAgICAgICAgICAgICAgICovCj4gLSNkZWZpbmUgQ1JfVyAg ICAoMSA8PCAzKSAgICAgICAvKiBXcml0ZSBidWZmZXIgZW5hYmxlICAgICAgICAgICAgICAgICAg Ki8KPiAtI2RlZmluZSBDUl9QICAgICgxIDw8IDQpICAgICAgIC8qIDMyLWJpdCBleGNlcHRpb24g aGFuZGxlciAgICAgICAgICAgICAqLwo+IC0jZGVmaW5lIENSX0QgICAgKDEgPDwgNSkgICAgICAg LyogMzItYml0IGRhdGEgYWRkcmVzcyByYW5nZSAgICAgICAgICAgICovCj4gLSNkZWZpbmUgQ1Jf TCAgICAoMSA8PCA2KSAgICAgICAvKiBJbXBsZW1lbnRhdGlvbiBkZWZpbmVkICAgICAgICAgICAg ICAgKi8KPiAtI2RlZmluZSBDUl9CICAgICgxIDw8IDcpICAgICAgIC8qIEJpZyBlbmRpYW4gICAg ICAgICAgICAgICAgICAgICAgICAgICAqLwo+IC0jZGVmaW5lIENSX1MgICAgKDEgPDwgOCkgICAg ICAgLyogU3lzdGVtIE1NVSBwcm90ZWN0aW9uICAgICAgICAgICAgICAgICovCj4gLSNkZWZpbmUg Q1JfUiAgICAoMSA8PCA5KSAgICAgICAvKiBST00gTU1VIHByb3RlY3Rpb24gICAgICAgICAgICAg ICAgICAgKi8KPiAtI2RlZmluZSBDUl9GICAgICgxIDw8IDEwKSAgICAgIC8qIEltcGxlbWVudGF0 aW9uIGRlZmluZWQgICAgICAgICAgICAgICAqLwo+IC0jZGVmaW5lIENSX1ogICAgKDEgPDwgMTEp ICAgICAgLyogSW1wbGVtZW50YXRpb24gZGVmaW5lZCAgICAgICAgICAgICAgICovCj4gLSNkZWZp bmUgQ1JfSSAgICAoMSA8PCAxMikgICAgICAvKiBJY2FjaGUgZW5hYmxlICAgICAgICAgICAgICAg ICAgICAgICAgKi8KPiAtI2RlZmluZSBDUl9WICAgICgxIDw8IDEzKSAgICAgIC8qIFZlY3RvcnMg cmVsb2NhdGVkIHRvIDB4ZmZmZjAwMDAgICAgICAqLwo+IC0jZGVmaW5lIENSX1JSICAgKDEgPDwg MTQpICAgICAgLyogUm91bmQgUm9iaW4gY2FjaGUgcmVwbGFjZW1lbnQgICAgICAgICovCj4gLSNk ZWZpbmUgQ1JfTDQgICAoMSA8PCAxNSkgICAgICAvKiBMRFIgcGMgY2FuIHNldCBUIGJpdCAgICAg ICAgICAgICAgICAgKi8KPiAtI2RlZmluZSBDUl9EVCAgICgxIDw8IDE2KQo+IC0jZGVmaW5lIENS X0lUICAgKDEgPDwgMTgpCj4gLSNkZWZpbmUgQ1JfU1QgICAoMSA8PCAxOSkKPiAtI2RlZmluZSBD Ul9GSSAgICgxIDw8IDIxKSAgICAgIC8qIEZhc3QgaW50ZXJydXB0IChsb3dlciBsYXRlbmN5IG1v ZGUpICAqLwo+IC0jZGVmaW5lIENSX1UgICAgKDEgPDwgMjIpICAgICAgLyogVW5hbGlnbmVkIGFj Y2VzcyBvcGVyYXRpb24gICAgICAgICAgICovCj4gLSNkZWZpbmUgQ1JfWFAgICAoMSA8PCAyMykg ICAgICAvKiBFeHRlbmRlZCBwYWdlIHRhYmxlcyAgICAgICAgICAgICAgICAgKi8KPiAtI2RlZmlu ZSBDUl9WRSAgICgxIDw8IDI0KSAgICAgIC8qIFZlY3RvcmVkIGludGVycnVwdHMgICAgICAgICAg ICAgICAgICAqLwo+IC0jZGVmaW5lIENSX0VFICAgKDEgPDwgMjUpICAgICAgLyogRXhjZXB0aW9u IChCaWcpIEVuZGlhbiAgICAgICAgICAgICAgICovCj4gLSNkZWZpbmUgQ1JfVFJFICAoMSA8PCAy OCkgICAgICAvKiBURVggcmVtYXAgZW5hYmxlICAgICAgICAgICAgICAgICAgICAgKi8KPiAtI2Rl ZmluZSBDUl9BRkUgICgxIDw8IDI5KSAgICAgIC8qIEFjY2VzcyBmbGFnIGVuYWJsZSAgICAgICAg ICAgICAgICAgICAqLwo+IC0jZGVmaW5lIENSX1RFICAgKDEgPDwgMzApICAgICAgLyogVGh1bWIg ZXhjZXB0aW9uIGVuYWJsZSAgICAgICAgICAgICAgICovCj4gKyNkZWZpbmUgQ1JfTSAgICAgICAg ICAgKDEgPDwgMCkgICAgICAgIC8qIE1NVSBlbmFibGUgICAgICAgICAgICAgICAgICAgKi8KPiAr I2RlZmluZSBDUl9BICAgICAgICAgICAoMSA8PCAxKSAgICAgICAgLyogQWxpZ25tZW50IGFib3J0 IGVuYWJsZSAgICAgICAqLwo+ICsjZGVmaW5lIENSX0MgICAgICAgICAgICgxIDw8IDIpICAgICAg ICAvKiBEY2FjaGUgZW5hYmxlICAgICAgICAgICAgICAgICovCj4gKyNkZWZpbmUgQ1JfU0EgICAg ICAgICAgKDEgPDwgMykgICAgICAgIC8qIFN0YWNrIEFsaWdubWVudCBDaGVjayBFbmFibGUgKi8K PiArI2RlZmluZSBDUl9JICAgICAgICAgICAoMSA8PCAxMikgICAgICAgLyogSWNhY2hlIGVuYWJs ZSAgICAgICAgICAgICAgICAqLwo+ICsjZGVmaW5lIENSX1dYTiAgICAgICAgICgxIDw8IDE5KSAg ICAgICAvKiBXcml0ZSBQZXJtaXNpb24gSW1wbHkgWE4gICAgICovCj4gKyNkZWZpbmUgQ1JfRUUg ICAgICAgICAgKDEgPDwgMjUpICAgICAgIC8qIEV4Y2VwdGlvbiAoQmlnKSBFbmRpYW4gICAgICAg Ki8KPiArCj4gKyNpZm5kZWYgQ09ORklHX1NZU19GVUxMX1ZBCj4gKyNkZWZpbmUgUEdUQUJMRV9T SVpFICAgKDB4MTAwMDApCj4gKyNlbHNlCj4gKyNkZWZpbmUgUEdUQUJMRV9TSVpFICAgQ09ORklH X1NZU19QR1RBQkxFX1NJWkUKPiArI2VuZGlmCj4gKwo+ICsvKiAyTUIgZ3JhbnVsYXJpdHkgKi8K PiArI2RlZmluZSBNTVVfU0VDVElPTl9TSElGVCAgICAgIDIxCj4gKyNkZWZpbmUgTU1VX1NFQ1RJ T05fU0laRSAgICAgICAoMSA8PCBNTVVfU0VDVElPTl9TSElGVCkKPgo+ICAjaWZuZGVmIF9fQVNT RU1CTFlfXwo+IC1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBnZXRfY3Iodm9pZCkKPiArCj4g K2VudW0gZGNhY2hlX29wdGlvbiB7Cj4gKyAgICAgICBEQ0FDSEVfT0ZGID0gMHgzLAo+ICt9Owo+ ICsKPiArI2RlZmluZSB3ZmkoKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAg KHthc20gdm9sYXRpbGUoICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAid2ZpIiA6IDogOiAi bWVtb3J5Iik7ICAgICAgICAgIFwKPiArICAgICAgIH0pCj4gKwo+ICtzdGF0aWMgaW5saW5lIHVu c2lnbmVkIGludCBjdXJyZW50X2VsKHZvaWQpCj4gIHsKPiAtICAgICAgIHVuc2lnbmVkIGludCB2 YWw7Cj4gLSAgICAgICBhc20gdm9sYXRpbGUgKCJtcmMgcDE1LCAwLCAlMCwgYzEsIGMwLCAwICBA IGdldCBDUiIgOiAiPXIiICh2YWwpIDogOiAiY2MiKTsKPiAtICAgICAgIHJldHVybiB2YWw7Cj4g KyAgICAgICB1bnNpZ25lZCBpbnQgZWw7Cj4gKyAgICAgICBhc20gdm9sYXRpbGUoIm1ycyAlMCwg Q3VycmVudEVMIiA6ICI9ciIgKGVsKSA6IDogImNjIik7Cj4gKyAgICAgICByZXR1cm4gZWwgPj4g MjsKPiAgfQo+Cj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfY3IodW5zaWduZWQgaW50IHZhbCkK PiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZ2V0X3NjdGxyKHZvaWQpCj4gIHsKPiAtICAg ICAgIGFzbSB2b2xhdGlsZSgibWNyIHAxNSwgMCwgJTAsIGMxLCBjMCwgMCBAIHNldCBDUiIKPiAt ICAgICAgICAgOiA6ICJyIiAodmFsKSA6ICJjYyIpOwo+IC0gICAgICAgaXNiKCk7Cj4gKyAgICAg ICB1bnNpZ25lZCBpbnQgZWwsIHZhbDsKPiArCj4gKyAgICAgICBlbCA9IGN1cnJlbnRfZWwoKTsK PiArICAgICAgIGlmIChlbCA9PSAxKQo+ICsgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUoIm1y cyAlMCwgc2N0bHJfZWwxIiA6ICI9ciIgKHZhbCkgOiA6ICJjYyIpOwo+ICsgICAgICAgZWxzZSBp ZiAoZWwgPT0gMikKPiArICAgICAgICAgICAgICAgYXNtIHZvbGF0aWxlKCJtcnMgJTAsIHNjdGxy X2VsMiIgOiAiPXIiICh2YWwpIDogOiAiY2MiKTsKPiArICAgICAgIGVsc2UKPiArICAgICAgICAg ICAgICAgYXNtIHZvbGF0aWxlKCJtcnMgJTAsIHNjdGxyX2VsMyIgOiAiPXIiICh2YWwpIDogOiAi Y2MiKTsKPiArCj4gKyAgICAgICByZXR1cm4gdmFsOwo+ICB9Cj4KPiAtI2lmZGVmIENPTkZJR19D UFVfMzJ2Nwo+IC1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBnZXRfdmJhcih2b2lkKQo+ICtz dGF0aWMgaW5saW5lIHZvaWQgc2V0X3NjdGxyKHVuc2lnbmVkIGludCB2YWwpCj4gIHsKPiAtICAg ICAgIHVuc2lnbmVkIGludCB2YmFyOwo+IC0gICAgICAgYXNtIHZvbGF0aWxlKCJtcmMgcDE1LCAw LCAlMCwgYzEyLCBjMCwgMCBAIGdldCBWQkFSIgo+IC0gICAgICAgICAgICAgICAgICAgIDogIj1y IiAodmJhcikgOiA6ICJjYyIpOwo+IC0gICAgICAgcmV0dXJuIHZiYXI7Cj4gKyAgICAgICB1bnNp Z25lZCBpbnQgZWw7Cj4gKwo+ICsgICAgICAgZWwgPSBjdXJyZW50X2VsKCk7Cj4gKyAgICAgICBp ZiAoZWwgPT0gMSkKPiArICAgICAgICAgICAgICAgYXNtIHZvbGF0aWxlKCJtc3Igc2N0bHJfZWwx LCAlMCIgOiA6ICJyIiAodmFsKSA6ICJjYyIpOwo+ICsgICAgICAgZWxzZSBpZiAoZWwgPT0gMikK PiArICAgICAgICAgICAgICAgYXNtIHZvbGF0aWxlKCJtc3Igc2N0bHJfZWwyLCAlMCIgOiA6ICJy IiAodmFsKSA6ICJjYyIpOwo+ICsgICAgICAgZWxzZQo+ICsgICAgICAgICAgICAgICBhc20gdm9s YXRpbGUoIm1zciBzY3Rscl9lbDMsICUwIiA6IDogInIiICh2YWwpIDogImNjIik7Cj4gKwo+ICsg ICAgICAgYXNtIHZvbGF0aWxlKCJpc2IiKTsKPiAgfQo+Cj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBz ZXRfdmJhcih1bnNpZ25lZCBpbnQgdmJhcikKPiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25n IHJlYWRfbXBpZHIodm9pZCkKPiAgewo+IC0gICAgICAgYXNtIHZvbGF0aWxlKCJtY3IgcDE1LCAw LCAlMCwgYzEyLCBjMCwgMCBAIHNldCBWQkFSIgo+IC0gICAgICAgICAgICAgICAgICAgIDogOiAi ciIgKHZiYXIpIDogImNjIik7Cj4gLSAgICAgICBpc2IoKTsKPiArICAgICAgIHVuc2lnbmVkIGxv bmcgdmFsOwo+ICsKPiArICAgICAgIGFzbSB2b2xhdGlsZSgibXJzICUwLCBtcGlkcl9lbDEiIDog Ij1yIiAodmFsKSk7Cj4gKwo+ICsgICAgICAgcmV0dXJuIHZhbDsKPiAgfQo+IC0jZWxzZQo+IC1z dGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBnZXRfdmJhcih2b2lkKSB7IHJldHVybiAwOyB9Cj4g LXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfdmJhcih1bnNpZ25lZCBpbnQgdmJhcikge30KPiAtI2Vu ZGlmCj4KPiAtI2VuZGlmCj4gKyNkZWZpbmUgQlNQX0NPUkVJRCAgICAgMAo+ICsKPiArdm9pZCBf X2FzbV9mbHVzaF9kY2FjaGVfYWxsKHZvaWQpOwo+ICt2b2lkIF9fYXNtX2ludmFsaWRhdGVfZGNh Y2hlX2FsbCh2b2lkKTsKPiArdm9pZCBfX2FzbV9mbHVzaF9kY2FjaGVfcmFuZ2UodTY0IHN0YXJ0 LCB1NjQgZW5kKTsKPiArdm9pZCBfX2FzbV9pbnZhbGlkYXRlX3RsYl9hbGwodm9pZCk7Cj4gK3Zv aWQgX19hc21faW52YWxpZGF0ZV9pY2FjaGVfYWxsKHZvaWQpOwo+ICtpbnQgX19hc21fZmx1c2hf bDNfY2FjaGUodm9pZCk7Cj4gKwo+ICt2b2lkIGFybXY4X3N3aXRjaF90b19lbDIodm9pZCk7Cj4g K3ZvaWQgYXJtdjhfc3dpdGNoX3RvX2VsMSh2b2lkKTsKPiArdm9pZCBnaWNfaW5pdCh2b2lkKTsK PiArdm9pZCBnaWNfc2VuZF9zZ2kodW5zaWduZWQgbG9uZyBzZ2lubyk7Cj4gK3ZvaWQgd2FpdF9m b3Jfd2FrZXVwKHZvaWQpOwo+ICt2b2lkIHByb3RlY3Rfc2VjdXJlX3JlZ2lvbih2b2lkKTsKPiAr dm9pZCBzbXBfa2lja19hbGxfY3B1cyh2b2lkKTsKPiArCj4gK3ZvaWQgZmx1c2hfbDNfY2FjaGUo dm9pZCk7Cj4gKwo+ICsvKgo+ICsgKklzc3VlIGEgaHlwZXJ2aXNvciBjYWxsIGluIGFjY29yZGFu Y2Ugd2l0aCBBUk0gIlNNQyBDYWxsaW5nIGNvbnZlbnRpb24iLAo+ICsgKiBERU4wMDI4QQo+ICsg Kgo+ICsgKiBAYXJnczogaW5wdXQgYW5kIG91dHB1dCBhcmd1bWVudHMKPiArICoKPiArICovCj4g K3ZvaWQgaHZjX2NhbGwoc3RydWN0IHB0X3JlZ3MgKmFyZ3MpOwo+ICsKPiArLyoKPiArICpJc3N1 ZSBhIHNlY3VyZSBtb25pdG9yIGNhbGwgaW4gYWNjb3JkYW5jZSB3aXRoIEFSTSAiU01DIENhbGxp bmcgY29udmVudGlvbiIsCj4gKyAqIERFTjAwMjhBCj4gKyAqCj4gKyAqIEBhcmdzOiBpbnB1dCBh bmQgb3V0cHV0IGFyZ3VtZW50cwo+ICsgKgo+ICsgKi8KPiArdm9pZCBzbWNfY2FsbChzdHJ1Y3Qg cHRfcmVncyAqYXJncyk7Cj4gKwo+ICsjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCj4KPiAgI2Vu ZGlmIC8qIF9fQVNNX0FSTV9TWVNURU1fSCAqLwo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNs dWRlL2FzbS9zeXN0ZW1faW5mby5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vc3lzdGVtX2luZm8u aAo+IGluZGV4IDA3NjE4NDguLmY1OTVhYWUgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vaW5jbHVk ZS9hc20vc3lzdGVtX2luZm8uaAo+ICsrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3N5c3RlbV9p bmZvLmgKPiBAQCAtMTMsNiArMTMsNyBAQAo+ICAjZGVmaW5lIENQVV9BUkNIX0FSTXY1VEVKICAg ICAgNwo+ICAjZGVmaW5lIENQVV9BUkNIX0FSTXY2ICAgICAgICAgOAo+ICAjZGVmaW5lIENQVV9B UkNIX0FSTXY3ICAgICAgICAgOQo+ICsjZGVmaW5lIENQVV9BUkNIX0FSTXY4ICAgICAgICAgMTAK Pgo+ICAjZGVmaW5lIENQVV9JU19BUk03MjAgICAgICAgICAgMHg0MTAwNzIwMAo+ICAjZGVmaW5l IENQVV9JU19BUk03MjBfTUFTSyAgICAgMHhmZjAwZmZmMAo+IEBAIC00MSw2ICs0MiwxMiBAQAo+ ICAjZGVmaW5lIENQVV9JU19DT1JURVhfQTE1ICAgICAgMHg0MTBmYzBmMAo+ICAjZGVmaW5lIENQ VV9JU19DT1JURVhfQTE1X01BU0sgMHhmZjBmZmZmMAo+Cj4gKyNkZWZpbmUgQ1BVX0lTX0NPUlRF WF9BNTMgICAgICAweDQxMGZkMDM0Cj4gKyNkZWZpbmUgQ1BVX0lTX0NPUlRFWF9BNTNfTUFTSyAw eGZmMGZmZmYwCj4gKwo+ICsjZGVmaW5lIENQVV9JU19DT1JURVhfQTU3ICAgICAgMHg0MTFmZDA3 MAo+ICsjZGVmaW5lIENQVV9JU19DT1JURVhfQTU3X01BU0sgMHhmZjBmZmZmMAo+ICsKPiAgI2Rl ZmluZSBDUFVfSVNfUFhBMjUwICAgICAgICAgIDB4NjkwNTIxMDAKPiAgI2RlZmluZSBDUFVfSVNf UFhBMjUwX01BU0sgICAgIDB4ZmZmZmY3ZjAKPgo+IEBAIC0xMTIsNiArMTE5LDIwIEBACj4gICNk ZWZpbmUgY3B1X2lzX2NvcnRleF9hMTUoKSAoMCkKPiAgI2VuZGlmCj4KPiArCj4gKyNpZmRlZiBD T05GSUdfQ1BVXzY0djgKPiArI2lmZGVmIEFSTV9BUkNICj4gKyNkZWZpbmUgQVJNX01VTFRJQVJD SAo+ICsjZWxzZQo+ICsjZGVmaW5lIEFSTV9BUkNIIENQVV9BUkNIX0FSTXY4Cj4gKyNlbmRpZgo+ ICsjZGVmaW5lIGNwdV9pc19jb3J0ZXhfYTUzKCkgY3B1X2lzX2FybShDT1JURVhfQTUzKQo+ICsj ZGVmaW5lIGNwdV9pc19jb3J0ZXhfYTU3KCkgY3B1X2lzX2FybShDT1JURVhfQTU3KQo+ICsjZWxz ZQo+ICsjZGVmaW5lIGNwdV9pc19jb3J0ZXhfYTUzKCkgKDApCj4gKyNkZWZpbmUgY3B1X2lzX2Nv cnRleF9hNTcoKSAoMCkKPiArI2VuZGlmCj4gKwo+ICAjaWZuZGVmIF9fQVNTRU1CTFlfXwo+Cj4g ICNpZmRlZiBBUk1fTVVMVElBUkNICj4gQEAgLTEyNCwzMSArMTQ1LDMzIEBAIHN0YXRpYyBpbmxp bmUgaW50IGFybV9lYXJseV9nZXRfY3B1X2FyY2hpdGVjdHVyZSh2b2lkKQo+ICB7Cj4gICAgICAg ICBpbnQgY3B1X2FyY2g7Cj4KPiAtICAgICAgIGlmICgocmVhZF9jcHVpZF9pZCgpICYgMHgwMDA4 ZjAwMCkgPT0gMCkgewo+IC0gICAgICAgICAgICAgICBjcHVfYXJjaCA9IENQVV9BUkNIX1VOS05P V047Cj4gLSAgICAgICB9IGVsc2UgaWYgKChyZWFkX2NwdWlkX2lkKCkgJiAweDAwMDhmMDAwKSA9 PSAweDAwMDA3MDAwKSB7Cj4gLSAgICAgICAgICAgICAgIGNwdV9hcmNoID0gKHJlYWRfY3B1aWRf aWQoKSAmICgxIDw8IDIzKSkgPyBDUFVfQVJDSF9BUk12NFQgOiBDUFVfQVJDSF9BUk12MzsKPiAt ICAgICAgIH0gZWxzZSBpZiAoKHJlYWRfY3B1aWRfaWQoKSAmIDB4MDAwODAwMDApID09IDB4MDAw MDAwMDApIHsKPiAtICAgICAgICAgICAgICAgY3B1X2FyY2ggPSAocmVhZF9jcHVpZF9pZCgpID4+ IDE2KSAmIDc7Cj4gLSAgICAgICAgICAgICAgIGlmIChjcHVfYXJjaCkKPiAtICAgICAgICAgICAg ICAgICAgICAgICBjcHVfYXJjaCArPSBDUFVfQVJDSF9BUk12MzsKPiAtICAgICAgIH0gZWxzZSBp ZiAoKHJlYWRfY3B1aWRfaWQoKSAmIDB4MDAwZjAwMDApID09IDB4MDAwZjAwMDApIHsKPiAtICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IG1tZnIwOwo+IC0KPiAtICAgICAgICAgICAgICAgLyog UmV2aXNlZCBDUFVJRCBmb3JtYXQuIFJlYWQgdGhlIE1lbW9yeSBNb2RlbCBGZWF0dXJlCj4gLSAg ICAgICAgICAgICAgICAqIFJlZ2lzdGVyIDAgYW5kIGNoZWNrIGZvciBWTVNBdjcgb3IgUE1TQXY3 ICovCj4gLSAgICAgICAgICAgICAgIGFzbSgibXJjICAgICAgICBwMTUsIDAsICUwLCBjMCwgYzEs IDQiCj4gLSAgICAgICAgICAgICAgICAgICA6ICI9ciIgKG1tZnIwKSk7Cj4gLSAgICAgICAgICAg ICAgIGlmICgobW1mcjAgJiAweDAwMDAwMDBmKSA+PSAweDAwMDAwMDAzIHx8Cj4gLSAgICAgICAg ICAgICAgICAgICAobW1mcjAgJiAweDAwMDAwMGYwKSA+PSAweDAwMDAwMDMwKQo+IC0gICAgICAg ICAgICAgICAgICAgICAgIGNwdV9hcmNoID0gQ1BVX0FSQ0hfQVJNdjc7Cj4gLSAgICAgICAgICAg ICAgIGVsc2UgaWYgKChtbWZyMCAmIDB4MDAwMDAwMGYpID09IDB4MDAwMDAwMDIgfHwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgKG1tZnIwICYgMHgwMDAwMDBmMCkgPT0gMHgwMDAwMDAyMCkK PiAtICAgICAgICAgICAgICAgICAgICAgICBjcHVfYXJjaCA9IENQVV9BUkNIX0FSTXY2Owo+IC0g ICAgICAgICAgICAgICBlbHNlCj4gLSAgICAgICAgICAgICAgICAgICAgICAgY3B1X2FyY2ggPSBD UFVfQVJDSF9VTktOT1dOOwo+IC0gICAgICAgfSBlbHNlCj4gLSAgICAgICAgICAgICAgIGNwdV9h cmNoID0gQ1BVX0FSQ0hfVU5LTk9XTjsKPiArLy8gICAgIGlmICgocmVhZF9jcHVpZF9pZCgpICYg MHgwMDA4ZjAwMCkgPT0gMCkgewo+ICsvLyAgICAgICAgICAgICBjcHVfYXJjaCA9IENQVV9BUkNI X1VOS05PV047Cj4gKy8vICAgICB9IGVsc2UgaWYgKChyZWFkX2NwdWlkX2lkKCkgJiAweDAwMDhm MDAwKSA9PSAweDAwMDA3MDAwKSB7Cj4gKy8vICAgICAgICAgICAgIGNwdV9hcmNoID0gKHJlYWRf Y3B1aWRfaWQoKSAmICgxIDw8IDIzKSkgPyBDUFVfQVJDSF9BUk12NFQgOiBDUFVfQVJDSF9BUk12 MzsKPiArLy8gICAgIH0gZWxzZSBpZiAoKHJlYWRfY3B1aWRfaWQoKSAmIDB4MDAwODAwMDApID09 IDB4MDAwMDAwMDApIHsKPiArLy8gICAgICAgICAgICAgY3B1X2FyY2ggPSAocmVhZF9jcHVpZF9p ZCgpID4+IDE2KSAmIDc7Cj4gKy8vICAgICAgICAgICAgIGlmIChjcHVfYXJjaCkKPiArLy8gICAg ICAgICAgICAgICAgICAgICBjcHVfYXJjaCArPSBDUFVfQVJDSF9BUk12MzsKPiArLy8gICAgIH0g ZWxzZSBpZiAoKHJlYWRfY3B1aWRfaWQoKSAmIDB4MDAwZjAwMDApID09IDB4MDAwZjAwMDApIHsK PiArLy8gICAgICAgICAgICAgdW5zaWduZWQgaW50IG1tZnIwOwo+ICsvLwo+ICsvLyAgICAgICAg ICAgICAvKiBSZXZpc2VkIENQVUlEIGZvcm1hdC4gUmVhZCB0aGUgTWVtb3J5IE1vZGVsIEZlYXR1 cmUKPiArLy8gICAgICAgICAgICAgICogUmVnaXN0ZXIgMCBhbmQgY2hlY2sgZm9yIFZNU0F2NyBv ciBQTVNBdjcgKi8KPiArLy8gICAgICAgICAgICAgYXNtKCJtcmMgICAgICAgIHAxNSwgMCwgJTAs IGMwLCBjMSwgNCIKPiArLy8gICAgICAgICAgICAgICAgIDogIj1yIiAobW1mcjApKTsKPiArLy8g ICAgICAgICAgICAgaWYgKChtbWZyMCAmIDB4MDAwMDAwMGYpID49IDB4MDAwMDAwMDMgfHwKPiAr Ly8gICAgICAgICAgICAgICAgIChtbWZyMCAmIDB4MDAwMDAwZjApID49IDB4MDAwMDAwMzApCj4g Ky8vICAgICAgICAgICAgICAgICAgICAgY3B1X2FyY2ggPSBDUFVfQVJDSF9BUk12NzsKPiArLy8g ICAgICAgICAgICAgZWxzZSBpZiAoKG1tZnIwICYgMHgwMDAwMDAwZikgPT0gMHgwMDAwMDAwMiB8 fAo+ICsvLyAgICAgICAgICAgICAgICAgICAgICAobW1mcjAgJiAweDAwMDAwMGYwKSA9PSAweDAw MDAwMDIwKQo+ICsvLyAgICAgICAgICAgICAgICAgICAgIGNwdV9hcmNoID0gQ1BVX0FSQ0hfQVJN djY7Cj4gKy8vICAgICAgICAgICAgIGVsc2UKPiArLy8gICAgICAgICAgICAgICAgICAgICBjcHVf YXJjaCA9IENQVV9BUkNIX1VOS05PV047Cj4gKy8vICAgICB9IGVsc2UKPiArLy8gICAgICAgICAg ICAgY3B1X2FyY2ggPSBDUFVfQVJDSF9VTktOT1dOOwo+ICsKPiArICAgICAgIGNwdV9hcmNoID0g Q1BVX0FSQ0hfQVJNdjg7Cj4KPiAgICAgICAgIHJldHVybiBjcHVfYXJjaDsKPiAgfQo+IGRpZmYg LS1naXQgYS9hcmNoL2FybS9saWIvTWFrZWZpbGUgYi9hcmNoL2FybS9saWIvTWFrZWZpbGUKPiBp bmRleCBlMWM2ZjViLi41YjlkNGE1IDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL2xpYi9NYWtlZmls ZQo+ICsrKyBiL2FyY2gvYXJtL2xpYi9NYWtlZmlsZQo+IEBAIC0zLDI0ICszLDExIEBAIG9iai0k KENPTkZJR19CT09UTSkgICArPSBib290bS5vCj4gIG9iai0kKENPTkZJR19DTURfQk9PVFopICAg ICAgICArPSBib290ei5vCj4gIG9iai0kKENPTkZJR19DTURfQk9PVFUpICAgICAgICArPSBib290 dS5vCj4gIG9iai15ICArPSBkaXYwLm8KPiAtb2JqLXkgICs9IGZpbmRiaXQubwo+IC1vYmoteSAg Kz0gaW8ubwo+IC1vYmoteSAgKz0gaW8tcmVhZHNiLm8KPiAtb2JqLXkgICs9IGlvLXJlYWRzdy1h cm12NC5vCj4gLW9iai15ICArPSBpby1yZWFkc2wubwo+IC1vYmoteSAgKz0gaW8td3JpdGVzYi5v Cj4gLW9iai15ICArPSBpby13cml0ZXN3LWFybXY0Lm8KPiAtb2JqLXkgICs9IGlvLXdyaXRlc2wu bwo+IC1vYmoteSAgKz0gbGliMWZ1bmNzLm8KPiAtb2JqLXkgICs9IGFzaHJkaTMubwo+IC1vYmot eSAgKz0gYXNobGRpMy5vCj4gLW9iai15ICArPSBsc2hyZGkzLm8KPiAgb2JqLXkgICs9IHJ1bnRp bWUtb2Zmc2V0Lm8KPiAgcGJsLXkgICs9IHJ1bnRpbWUtb2Zmc2V0Lm8KPiAgb2JqLSQoQ09ORklH X0FSTV9PUFRJTVpFRF9TVFJJTkdfRlVOQ1RJT05TKSAgICArPSBtZW1jcHkubwo+ICBvYmotJChD T05GSUdfQVJNX09QVElNWkVEX1NUUklOR19GVU5DVElPTlMpICAgICs9IG1lbXNldC5vCj4gIG9i ai0kKENPTkZJR19BUk1fVU5XSU5EKSArPSB1bndpbmQubwo+IC1vYmotJChDT05GSUdfQVJNX1NF TUlIT1NUSU5HKSArPSBzZW1paG9zdGluZy10cmFwLm8gc2VtaWhvc3Rpbmcubwo+ICBvYmotJChD T05GSUdfTU9EVUxFUykgKz0gbW9kdWxlLm8KPiAgZXh0cmEteSArPSBiYXJlYm94Lmxkcwo+Cj4g ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2xpYi9hcm1saW51eC5jIGIvYXJjaC9hcm0vbGliL2FybWxp bnV4LmMKPiBpbmRleCA0N2I5YmQzLi4yMWEyMjkyIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL2xp Yi9hcm1saW51eC5jCj4gKysrIGIvYXJjaC9hcm0vbGliL2FybWxpbnV4LmMKPiBAQCAtMjcwLDEy ICsyNzAsNiBAQCB2b2lkIHN0YXJ0X2xpbnV4KHZvaWQgKmFkciwgaW50IHN3YXAsIHVuc2lnbmVk IGxvbmcgaW5pdHJkX2FkZHJlc3MsCj4gICAgICAgICBhcmNoaXRlY3R1cmUgPSBhcm1saW51eF9n ZXRfYXJjaGl0ZWN0dXJlKCk7Cj4KPiAgICAgICAgIHNodXRkb3duX2JhcmVib3goKTsKPiAtICAg ICAgIGlmIChzd2FwKSB7Cj4gLSAgICAgICAgICAgICAgIHUzMiByZWc7Cj4gLSAgICAgICAgICAg ICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJtcmMgcDE1LCAwLCAlMCwgYzEsIGMwIiA6ICI9ciIg KHJlZykpOwo+IC0gICAgICAgICAgICAgICByZWcgXj0gQ1JfQjsgLyogc3dhcCBiaWctZW5kaWFu IGZsYWcgKi8KPiAtICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIm1jciBwMTUs IDAsICUwLCBjMSwgYzAiIDo6ICJyIiAocmVnKSk7Cj4gLSAgICAgICB9Cj4KPiAgICAgICAgIGtl cm5lbCgwLCBhcmNoaXRlY3R1cmUsIHBhcmFtcyk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vbGliL2JhcmVib3gubGRzLlMgYi9hcmNoL2FybS9saWIvYmFyZWJveC5sZHMuUwo+IGluZGV4 IDZkYzhiZDIuLjI0MDY5OWYgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vbGliL2JhcmVib3gubGRz LlMKPiArKysgYi9hcmNoL2FybS9saWIvYmFyZWJveC5sZHMuUwo+IEBAIC0yMCw4ICsyMCw4IEBA Cj4KPiAgI2luY2x1ZGUgPGFzbS1nZW5lcmljL2JhcmVib3gubGRzLmg+Cj4KPiAtT1VUUFVUX0ZP Uk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1saXR0bGVh cm0iKQo+IC1PVVRQVVRfQVJDSChhcm0pCj4gK09VVFBVVF9GT1JNQVQoImVsZjY0LWxpdHRsZWFh cmNoNjQiLCAiZWxmNjQtbGl0dGxlYWFyY2g2NCIsICJlbGY2NC1saXR0bGVhYXJjaDY0IikKPiAr T1VUUFVUX0FSQ0goYWFyY2g2NCkKPiAgRU5UUlkoc3RhcnQpCj4gIFNFQ1RJT05TCj4gIHsKPiBA QCAtNDMsNyArNDMsNiBAQCBTRUNUSU9OUwo+ICAgICAgICAgICAgICAgICBfX2JhcmVfaW5pdF9z dGFydCA9IC47Cj4gICAgICAgICAgICAgICAgICooLnRleHRfYmFyZV9pbml0KikKPiAgICAgICAg ICAgICAgICAgX19iYXJlX2luaXRfZW5kID0gLjsKPiAtICAgICAgICAgICAgICAgLiA9IEFMSUdO KDQpOwo+ICAgICAgICAgICAgICAgICBfX2V4Y2VwdGlvbnNfc3RhcnQgPSAuOwo+ICAgICAgICAg ICAgICAgICBLRUVQKCooLnRleHRfZXhjZXB0aW9ucyopKQo+ICAgICAgICAgICAgICAgICBfX2V4 Y2VwdGlvbnNfc3RvcCA9IC47Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2xpYi9ib290bS5jIGIv YXJjaC9hcm0vbGliL2Jvb3RtLmMKPiBpbmRleCBmNjAyNGM4Li4xOTEzZDVmIDEwMDY0NAo+IC0t LSBhL2FyY2gvYXJtL2xpYi9ib290bS5jCj4gKysrIGIvYXJjaC9hcm0vbGliL2Jvb3RtLmMKPiBA QCAtNjcsNTUgKzY3LDYgQEAgc3RhdGljIGludCBzZHJhbV9zdGFydF9hbmRfc2l6ZSh1bnNpZ25l ZCBsb25nICpzdGFydCwgdW5zaWduZWQgbG9uZyAqc2l6ZSkKPiAgICAgICAgIHJldHVybiAwOwo+ ICB9Cj4KPiAtc3RhdGljIGludCBnZXRfa2VybmVsX2FkZHJlc3NlcyhzaXplX3QgaW1hZ2Vfc2l6 ZSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmVyYm9zZSwgdW5zaWdu ZWQgbG9uZyAqbG9hZF9hZGRyZXNzLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgKm1lbV9mcmVlKQo+IC17Cj4gLSAgICAgICB1bnNpZ25lZCBsb25nIG1l bV9zdGFydCwgbWVtX3NpemU7Cj4gLSAgICAgICBpbnQgcmV0Owo+IC0gICAgICAgc2l6ZV90IGlt YWdlX2RlY29tcF9zaXplOwo+IC0gICAgICAgdW5zaWduZWQgbG9uZyBzcGFjaW5nOwo+IC0KPiAt ICAgICAgIHJldCA9IHNkcmFtX3N0YXJ0X2FuZF9zaXplKCZtZW1fc3RhcnQsICZtZW1fc2l6ZSk7 Cj4gLSAgICAgICBpZiAocmV0KQo+IC0gICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+IC0KPiAt ICAgICAgIC8qCj4gLSAgICAgICAgKiBXZSBkb24ndCBrbm93IHRoZSBleGFjdCBkZWNvbXByZXNz ZWQgc2l6ZSBzbyBqdXN0IHVzZSBhIGNvbnNlcnZhdGl2ZQo+IC0gICAgICAgICogZGVmYXVsdCBv ZiA0IHRpbWVzIHRoZSBzaXplIG9mIHRoZSBjb21wcmVzc2VkIGltYWdlLgo+IC0gICAgICAgICov Cj4gLSAgICAgICBpbWFnZV9kZWNvbXBfc2l6ZSA9IFBBR0VfQUxJR04oaW1hZ2Vfc2l6ZSAqIDQp Owo+IC0KPiAtICAgICAgIC8qCj4gLSAgICAgICAgKiBCeSBkZWZhdWx0IHB1dCBvZnRyZWUvaW5p dHJkIGNsb3NlIGJlaGluZCBjb21wcmVzc2VkIGtlcm5lbCBpbWFnZSB0bwo+IC0gICAgICAgICog YXZvaWQgcGxhY2luZyBpdCBvdXRzaWRlIG9mIHRoZSBrZXJuZWxzIGxvd21lbSByZWdpb24uCj4g LSAgICAgICAgKi8KPiAtICAgICAgIHNwYWNpbmcgPSBTWl8xTTsKPiAtCj4gLSAgICAgICBpZiAo KmxvYWRfYWRkcmVzcyA9PSBVSU1BR0VfSU5WQUxJRF9BRERSRVNTKSB7Cj4gLSAgICAgICAgICAg ICAgIC8qCj4gLSAgICAgICAgICAgICAgICAqIFBsYWNlIHRoZSBrZXJuZWwgYXQgYW4gYWRkcmVz cyB3aGVyZSBpdCBkb2VzIG5vdCBuZWVkIHRvCj4gLSAgICAgICAgICAgICAgICAqIHJlbG9jYXRl IGl0c2VsZiBiZWZvcmUgZGVjb21wcmVzc2lvbi4KPiAtICAgICAgICAgICAgICAgICovCj4gLSAg ICAgICAgICAgICAgICpsb2FkX2FkZHJlc3MgPSBtZW1fc3RhcnQgKyBpbWFnZV9kZWNvbXBfc2l6 ZTsKPiAtICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgcHJpbnRmKCJubyBPUyBsb2FkIGFkZHJlc3MsIGRlZmF1bHRpbmcgdG8gMHglMDhseFxuIiwK PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpsb2FkX2FkZHJlc3MpOwo+IC0gICAg ICAgfSBlbHNlIGlmICgqbG9hZF9hZGRyZXNzIDw9IG1lbV9zdGFydCArIGltYWdlX2RlY29tcF9z aXplKSB7Cj4gLSAgICAgICAgICAgICAgIC8qCj4gLSAgICAgICAgICAgICAgICAqIElmIHRoZSB1 c2VyL2ltYWdlIHNwZWNpZmllZCBhbiBhZGRyZXNzIHdoZXJlIHRoZSBrZXJuZWwgbmVlZHMKPiAt ICAgICAgICAgICAgICAgICogdG8gcmVsb2NhdGUgaXRzZWxmIGJlZm9yZSBkZWNvbXByZXNzaW9u IHdlIG5lZWQgdG8gZXh0ZW5kIHRoZQo+IC0gICAgICAgICAgICAgICAgKiBzcGFjaW5nIHRvIGFs bG93IHRoaXMgcmVsb2NhdGlvbiB0byBoYXBwZW4gd2l0aG91dAo+IC0gICAgICAgICAgICAgICAg KiBvdmVyd3JpdGluZyBhbnl0aGluZyBwbGFjZWQgYmVoaW5kIHRoZSBrZXJuZWwuCj4gLSAgICAg ICAgICAgICAgICAqLwo+IC0gICAgICAgICAgICAgICBzcGFjaW5nICs9IGltYWdlX2RlY29tcF9z aXplOwo+IC0gICAgICAgfQo+IC0KPiAtICAgICAgICptZW1fZnJlZSA9IFBBR0VfQUxJR04oKmxv YWRfYWRkcmVzcyArIGltYWdlX3NpemUgKyBzcGFjaW5nKTsKPiAtCj4gLSAgICAgICByZXR1cm4g MDsKPiAtfQo+IC0KPiAgc3RhdGljIGludCBfX2RvX2Jvb3RtX2xpbnV4KHN0cnVjdCBpbWFnZV9k YXRhICpkYXRhLCB1bnNpZ25lZCBsb25nIGZyZWVfbWVtLCBpbnQgc3dhcCkKPiAgewo+ICAgICAg ICAgdW5zaWduZWQgbG9uZyBrZXJuZWw7Cj4gQEAgLTE3MywyMCArMTI0LDM4IEBAIHN0YXRpYyBp bnQgX19kb19ib290bV9saW51eChzdHJ1Y3QgaW1hZ2VfZGF0YSAqZGF0YSwgdW5zaWduZWQgbG9u ZyBmcmVlX21lbSwgaW50Cj4KPiAgc3RhdGljIGludCBkb19ib290bV9saW51eChzdHJ1Y3QgaW1h Z2VfZGF0YSAqZGF0YSkKPiAgewo+IC0gICAgICAgdW5zaWduZWQgbG9uZyBsb2FkX2FkZHJlc3Ms IG1lbV9mcmVlOwo+ICsgICAgICAgdW5zaWduZWQgbG9uZyBsb2FkX2FkZHJlc3MsIG1lbV9zdGFy dCwgbWVtX3NpemUsIG1lbV9mcmVlOwo+ICAgICAgICAgaW50IHJldDsKPgo+IC0gICAgICAgbG9h ZF9hZGRyZXNzID0gZGF0YS0+b3NfYWRkcmVzczsKPiAtCj4gLSAgICAgICByZXQgPSBnZXRfa2Vy bmVsX2FkZHJlc3Nlcyhib290bV9nZXRfb3Nfc2l6ZShkYXRhKSwKPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb3RtX3ZlcmJvc2UoZGF0YSksICZsb2FkX2FkZHJlc3MsICZtZW1fZnJl ZSk7Cj4gKyAgICAgICByZXQgPSBzZHJhbV9zdGFydF9hbmRfc2l6ZSgmbWVtX3N0YXJ0LCAmbWVt X3NpemUpOwo+ICAgICAgICAgaWYgKHJldCkKPiAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsK Pgo+ICsgICAgICAgbG9hZF9hZGRyZXNzID0gZGF0YS0+b3NfYWRkcmVzczsKPiArCj4gKyAgICAg ICBpZiAobG9hZF9hZGRyZXNzID09IFVJTUFHRV9JTlZBTElEX0FERFJFU1MpIHsKPiArICAgICAg ICAgICAgICAgLyoKPiArICAgICAgICAgICAgICAgICogSnVzdCB1c2UgYSBjb25zZXJ2YXRpdmUg ZGVmYXVsdCBvZiA0IHRpbWVzIHRoZSBzaXplIG9mIHRoZQo+ICsgICAgICAgICAgICAgICAgKiBj b21wcmVzc2VkIGltYWdlLCB0byBhdm9pZCB0aGUgbmVlZCBmb3IgdGhlIGtlcm5lbCB0bwo+ICsg ICAgICAgICAgICAgICAgKiByZWxvY2F0ZSBpdHNlbGYgYmVmb3JlIGRlY29tcHJlc3Npb24uCj4g KyAgICAgICAgICAgICAgICAqLwo+ICsgICAgICAgICAgICAgICBsb2FkX2FkZHJlc3MgPSBtZW1f c3RhcnQgKyBQQUdFX0FMSUdOKAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib290 bV9nZXRfb3Nfc2l6ZShkYXRhKSAqIDQpOwo+ICsgICAgICAgICAgICAgICBpZiAoYm9vdG1fdmVy Ym9zZShkYXRhKSkKPiArICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIm5vIE9TIGxvYWQg YWRkcmVzcywgZGVmYXVsdGluZyB0byAweCUwOGx4XG4iLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbG9hZF9hZGRyZXNzKTsKPiArICAgICAgIH0KPiArCj4gICAgICAgICByZXQg PSBib290bV9sb2FkX29zKGRhdGEsIGxvYWRfYWRkcmVzcyk7Cj4gICAgICAgICBpZiAocmV0KQo+ ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+Cj4gKyAgICAgICAvKgo+ICsgICAgICAgICog cHV0IG9mdHJlZS9pbml0cmQgY2xvc2UgYmVoaW5kIGNvbXByZXNzZWQga2VybmVsIGltYWdlIHRv IGF2b2lkCj4gKyAgICAgICAgKiBwbGFjaW5nIGl0IG91dHNpZGUgb2YgdGhlIGtlcm5lbHMgbG93 bWVtLgo+ICsgICAgICAgICovCj4gKyAgICAgICBtZW1fZnJlZSA9IFBBR0VfQUxJR04oZGF0YS0+ b3NfcmVzLT5lbmQgKyBTWl8xTSk7Cj4gKwo+ICAgICAgICAgcmV0dXJuIF9fZG9fYm9vdG1fbGlu dXgoZGF0YSwgbWVtX2ZyZWUsIDApOwo+ICB9Cj4KPiBAQCAtMjgyLDcgKzI1MSwxMSBAQCBzdGF0 aWMgaW50IGRvX2Jvb3R6X2xpbnV4KHN0cnVjdCBpbWFnZV9kYXRhICpkYXRhKQo+ICAgICAgICAg dTMyIGVuZCwgc3RhcnQ7Cj4gICAgICAgICBzaXplX3QgaW1hZ2Vfc2l6ZTsKPiAgICAgICAgIHVu c2lnbmVkIGxvbmcgbG9hZF9hZGRyZXNzID0gZGF0YS0+b3NfYWRkcmVzczsKPiAtICAgICAgIHVu c2lnbmVkIGxvbmcgbWVtX2ZyZWU7Cj4gKyAgICAgICB1bnNpZ25lZCBsb25nIG1lbV9zdGFydCwg bWVtX3NpemUsIG1lbV9mcmVlOwo+ICsKPiArICAgICAgIHJldCA9IHNkcmFtX3N0YXJ0X2FuZF9z aXplKCZtZW1fc3RhcnQsICZtZW1fc2l6ZSk7Cj4gKyAgICAgICBpZiAocmV0KQo+ICsgICAgICAg ICAgICAgICByZXR1cm4gcmV0Owo+Cj4gICAgICAgICBmZCA9IG9wZW4oZGF0YS0+b3NfZmlsZSwg T19SRE9OTFkpOwo+ICAgICAgICAgaWYgKGZkIDwgMCkgewo+IEBAIC0zMTgsMTIgKzI5MSwyMCBA QCBzdGF0aWMgaW50IGRvX2Jvb3R6X2xpbnV4KHN0cnVjdCBpbWFnZV9kYXRhICpkYXRhKQo+ICAg ICAgICAgfQo+Cj4gICAgICAgICBpbWFnZV9zaXplID0gZW5kIC0gc3RhcnQ7Cj4gLSAgICAgICBs b2FkX2FkZHJlc3MgPSBkYXRhLT5vc19hZGRyZXNzOwo+Cj4gLSAgICAgICByZXQgPSBnZXRfa2Vy bmVsX2FkZHJlc3NlcyhpbWFnZV9zaXplLCBib290bV92ZXJib3NlKGRhdGEpLAo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmxvYWRfYWRkcmVzcywgJm1lbV9mcmVlKTsKPiAtICAgICAg IGlmIChyZXQpCj4gLSAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gKyAgICAgICBpZiAobG9h ZF9hZGRyZXNzID09IFVJTUFHRV9JTlZBTElEX0FERFJFU1MpIHsKPiArICAgICAgICAgICAgICAg LyoKPiArICAgICAgICAgICAgICAgICogSnVzdCB1c2UgYSBjb25zZXJ2YXRpdmUgZGVmYXVsdCBv ZiA0IHRpbWVzIHRoZSBzaXplIG9mIHRoZQo+ICsgICAgICAgICAgICAgICAgKiBjb21wcmVzc2Vk IGltYWdlLCB0byBhdm9pZCB0aGUgbmVlZCBmb3IgdGhlIGtlcm5lbCB0bwo+ICsgICAgICAgICAg ICAgICAgKiByZWxvY2F0ZSBpdHNlbGYgYmVmb3JlIGRlY29tcHJlc3Npb24uCj4gKyAgICAgICAg ICAgICAgICAqLwo+ICsgICAgICAgICAgICAgICBkYXRhLT5vc19hZGRyZXNzID0gbWVtX3N0YXJ0 ICsgUEFHRV9BTElHTihpbWFnZV9zaXplICogNCk7Cj4gKwo+ICsgICAgICAgICAgICAgICBsb2Fk X2FkZHJlc3MgPSBkYXRhLT5vc19hZGRyZXNzOwo+ICsgICAgICAgICAgICAgICBpZiAoYm9vdG1f dmVyYm9zZShkYXRhKSkKPiArICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIm5vIE9TIGxv YWQgYWRkcmVzcywgZGVmYXVsdGluZyB0byAweCUwOGx4XG4iLAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbG9hZF9hZGRyZXNzKTsKPiArICAgICAgIH0KPgo+ICAgICAgICAgZGF0 YS0+b3NfcmVzID0gcmVxdWVzdF9zZHJhbV9yZWdpb24oInppbWFnZSIsIGxvYWRfYWRkcmVzcywg aW1hZ2Vfc2l6ZSk7Cj4gICAgICAgICBpZiAoIWRhdGEtPm9zX3Jlcykgewo+IEBAIC0zNTksNiAr MzQwLDEyIEBAIHN0YXRpYyBpbnQgZG9fYm9vdHpfbGludXgoc3RydWN0IGltYWdlX2RhdGEgKmRh dGEpCj4KPiAgICAgICAgIGNsb3NlKGZkKTsKPgo+ICsgICAgICAgLyoKPiArICAgICAgICAqIHB1 dCBvZnRyZWUvaW5pdHJkIGNsb3NlIGJlaGluZCBjb21wcmVzc2VkIGtlcm5lbCBpbWFnZSB0byBh dm9pZAo+ICsgICAgICAgICogcGxhY2luZyBpdCBvdXRzaWRlIG9mIHRoZSBrZXJuZWxzIGxvd21l bS4KPiArICAgICAgICAqLwo+ICsgICAgICAgbWVtX2ZyZWUgPSBQQUdFX0FMSUdOKGRhdGEtPm9z X3Jlcy0+ZW5kICsgU1pfMU0pOwo+ICsKPiAgICAgICAgIHJldHVybiBfX2RvX2Jvb3RtX2xpbnV4 KGRhdGEsIG1lbV9mcmVlLCBzd2FwKTsKPgo+ICBlcnJfb3V0Ogo+IEBAIC01NzUsNyArNTYyLDcg QEAgc3RhdGljIGludCBhcm1saW51eF9yZWdpc3Rlcl9pbWFnZV9oYW5kbGVyKHZvaWQpCj4gICAg ICAgICAgICAgICAgIHJlZ2lzdGVyX2ltYWdlX2hhbmRsZXIoJmFpbWFnZV9oYW5kbGVyKTsKPiAg ICAgICAgICAgICAgICAgYmluZm10X3JlZ2lzdGVyKCZiaW5mbXRfYWltYWdlX2hvb2spOwo+ICAg ICAgICAgfQo+IC0gICAgICAgaWYgKElTX0JVSUxUSU4oQ09ORklHX0ZJVElNQUdFKSkKPiArICAg ICAgIGlmIChJU19CVUlMVElOKENPTkZJR19DTURfQk9PVE1fRklUSU1BR0UpKQo+ICAgICAgICAg ICAgICAgICByZWdpc3Rlcl9pbWFnZV9oYW5kbGVyKCZhcm1fZml0X2hhbmRsZXIpOwo+ICAgICAg ICAgYmluZm10X3JlZ2lzdGVyKCZiaW5mbXRfYXJtX3ppbWFnZV9ob29rKTsKPiAgICAgICAgIGJp bmZtdF9yZWdpc3RlcigmYmluZm10X2JhcmVib3hfaG9vayk7Cj4gZGlmZiAtLWdpdCBhL2FyY2gv YXJtL2xpYi9jb3B5X3RlbXBsYXRlLlMgYi9hcmNoL2FybS9saWIvY29weV90ZW1wbGF0ZS5TCj4g aW5kZXggZDhlYjA2My4uY2M5YTg0MiAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybS9saWIvY29weV90 ZW1wbGF0ZS5TCj4gKysrIGIvYXJjaC9hcm0vbGliL2NvcHlfdGVtcGxhdGUuUwo+IEBAIC0xLDI2 OCArMSwxOTIgQEAKPiAgLyoKPiAtICogIGxpbnV4L2FyY2gvYXJtL2xpYi9jb3B5X3RlbXBsYXRl LnMKPiArICogQ29weXJpZ2h0IChDKSAyMDEzIEFSTSBMdGQuCj4gKyAqIENvcHlyaWdodCAoQykg MjAxMyBMaW5hcm8uCj4gICAqCj4gLSAqICBDb2RlIHRlbXBsYXRlIGZvciBvcHRpbWl6ZWQgbWVt b3J5IGNvcHkgZnVuY3Rpb25zCj4gKyAqIFRoaXMgY29kZSBpcyBiYXNlZCBvbiBnbGliYyBjb3J0 ZXggc3RyaW5ncyB3b3JrIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTGluYXJvCj4gKyAqIGFuZCBy ZS1saWNlbnNlZCB1bmRlciBHUEx2MiBmb3IgdGhlIExpbnV4IGtlcm5lbC4gVGhlIG9yaWdpbmFs IGNvZGUgY2FuCj4gKyAqIGJlIGZvdW5kIEAKPiAgICoKPiAtICogIEF1dGhvcjogICAgTmljb2xh cyBQaXRyZQo+IC0gKiAgQ3JlYXRlZDogICBTZXAgMjgsIDIwMDUKPiAtICogIENvcHlyaWdodDog TW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLgo+ICsgKiBodHRwOi8vYmF6YWFyLmxhdW5jaHBhZC5u ZXQvfmxpbmFyby10b29sY2hhaW4tZGV2L2NvcnRleC1zdHJpbmdzL3RydW5rLwo+ICsgKiBmaWxl cy9oZWFkOi9zcmMvYWFyY2g2NC8KPiAgICoKPiAtICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gLSAqICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24g MiBhcwo+IC0gKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4g LSAqLwo+IC0KPiAtLyoKPiAtICogVGhlb3J5IG9mIG9wZXJhdGlvbgo+IC0gKiAtLS0tLS0tLS0t LS0tLS0tLS0tCj4gLSAqCj4gLSAqIFRoaXMgZmlsZSBwcm92aWRlcyB0aGUgY29yZSBjb2RlIGZv ciBhIGZvcndhcmQgbWVtb3J5IGNvcHkgdXNlZCBpbgo+IC0gKiB0aGUgaW1wbGVtZW50YXRpb24g b2YgbWVtY29weSgpLCBjb3B5X3RvX3VzZXIoKSBhbmQgY29weV9mcm9tX3VzZXIoKS4KPiAtICoK PiAtICogVGhlIGluY2x1ZGluZyBmaWxlIG11c3QgZGVmaW5lIHRoZSBmb2xsb3dpbmcgYWNjZXNz b3IgbWFjcm9zCj4gLSAqIGFjY29yZGluZyB0byB0aGUgbmVlZCBvZiB0aGUgZ2l2ZW4gZnVuY3Rp b246Cj4gLSAqCj4gLSAqIGxkcjF3IHB0ciByZWcgYWJvcnQKPiAtICoKPiAtICogICAgIFRoaXMg bG9hZHMgb25lIHdvcmQgZnJvbSAncHRyJywgc3RvcmVzIGl0IGluICdyZWcnIGFuZCBpbmNyZW1l bnRzCj4gLSAqICAgICAncHRyJyB0byB0aGUgbmV4dCB3b3JkLiBUaGUgJ2Fib3J0JyBhcmd1bWVu dCBpcyB1c2VkIGZvciBmaXh1cCB0YWJsZXMuCj4gLSAqCj4gLSAqIGxkcjR3IHB0ciByZWcxIHJl ZzIgcmVnMyByZWc0IGFib3J0Cj4gLSAqIGxkcjh3IHB0ciwgcmVnMSByZWcyIHJlZzMgcmVnNCBy ZWc1IHJlZzYgcmVnNyByZWc4IGFib3J0Cj4gLSAqCj4gLSAqICAgICBUaGlzIGxvYWRzIGZvdXIg b3IgZWlnaHQgd29yZHMgc3RhcnRpbmcgZnJvbSAncHRyJywgc3RvcmVzIHRoZW0KPiAtICogICAg IGluIHByb3ZpZGVkIHJlZ2lzdGVycyBhbmQgaW5jcmVtZW50cyAncHRyJyBwYXN0IHRob3NlIHdv cmRzLgo+IC0gKiAgICAgVGhlJ2Fib3J0JyBhcmd1bWVudCBpcyB1c2VkIGZvciBmaXh1cCB0YWJs ZXMuCj4gLSAqCj4gLSAqIGxkcjFiIHB0ciByZWcgY29uZCBhYm9ydAo+IC0gKgo+IC0gKiAgICAg U2ltaWxhciB0byBsZHIxdywgYnV0IGl0IGxvYWRzIGEgYnl0ZSBhbmQgaW5jcmVtZW50cyAncHRy JyBvbmUgYnl0ZS4KPiAtICogICAgIEl0IGFsc28gbXVzdCBhcHBseSB0aGUgY29uZGl0aW9uIGNv ZGUgaWYgcHJvdmlkZWQsIG90aGVyd2lzZSB0aGUKPiAtICogICAgICJhbCIgY29uZGl0aW9uIGlz IGFzc3VtZWQgYnkgZGVmYXVsdC4KPiAtICoKPiAtICogc3RyMXcgcHRyIHJlZyBhYm9ydAo+IC0g KiBzdHI4dyBwdHIgcmVnMSByZWcyIHJlZzMgcmVnNCByZWc1IHJlZzYgcmVnNyByZWc4IGFib3J0 Cj4gLSAqIHN0cjFiIHB0ciByZWcgY29uZCBhYm9ydAo+IC0gKgo+IC0gKiAgICAgU2FtZSBhcyB0 aGVpciBsZHIqIGNvdW50ZXJwYXJ0cywgYnV0IGRhdGEgaXMgc3RvcmVkIHRvICdwdHInIGxvY2F0 aW9uCj4gLSAqICAgICByYXRoZXIgdGhhbiBiZWluZyBsb2FkZWQuCj4gKyAqIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgdmVyc2lvbiAyIGFzCj4gKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLgo+ICAgKgo+IC0gKiBlbnRlciByZWcxIHJlZzIKPiArICogVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKPiArICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KPiAgICoKPiAtICogICAgIFByZXNlcnZlIHRoZSBwcm92aWRlZCByZWdpc3RlcnMg b24gdGhlIHN0YWNrIHBsdXMgYW55IGFkZGl0aW9uYWwKPiAtICogICAgIGRhdGEgYXMgbmVlZGVk IGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBpbmNsdWRpbmcgdGhpcyBjb2RlLiBDYWxsZWQKPiAtICog ICAgIHVwb24gY29kZSBlbnRyeS4KPiAtICoKPiAtICogZXhpdCByZWcxIHJlZzIKPiAtICoKPiAt ICogICAgIFJlc3RvcmUgcmVnaXN0ZXJzIHdpdGggdGhlIHZhbHVlcyBwcmV2aW91c2x5IHNhdmVk IHdpdGggdGhlCj4gLSAqICAgICAncHJlc2VydicgbWFjcm8uIENhbGxlZCB1cG9uIGNvZGUgdGVy bWluYXRpb24uCj4gLSAqCj4gLSAqIExEUjFXX1NISUZUCj4gLSAqIFNUUjFXX1NISUZUCj4gLSAq Cj4gLSAqICAgICBDb3JyZWN0aW9uIHRvIGJlIGFwcGxpZWQgdG8gdGhlICJpcCIgcmVnaXN0ZXIg d2hlbiBicmFuY2hpbmcgaW50bwo+IC0gKiAgICAgdGhlIGxkcjF3IG9yIHN0cjF3IGluc3RydWN0 aW9ucyAoc29tZSBvZiB0aGVzZSBtYWNyb3MgbWF5IGV4cGFuZCB0bwo+IC0gKiAgICAgdGhhbiBv bmUgMzJiaXQgaW5zdHJ1Y3Rpb24gaW4gVGh1bWItMikKPiArICogWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKPiArICogYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCj4gICAqLwo+Cj4KPiAtICAgICAgICAgICAgICAgZW50ZXIgICByNCwgbHIKPiAt Cj4gLSAgICAgICAgICAgICAgIHN1YnMgICAgcjIsIHIyLCAjNAo+IC0gICAgICAgICAgICAgICBi bHQgICAgIDhmCj4gLSAgICAgICAgICAgICAgIGFuZHMgICAgaXAsIHIwLCAjMwo+IC0gICAgICAg UExEKCAgICBwbGQgICAgIFtyMSwgIzBdICAgICAgICAgICAgICAgICkKPiAtICAgICAgICAgICAg ICAgYm5lICAgICA5Zgo+IC0gICAgICAgICAgICAgICBhbmRzICAgIGlwLCByMSwgIzMKPiAtICAg ICAgICAgICAgICAgYm5lICAgICAxMGYKPiAtCj4gLTE6ICAgICAgICAgICAgIHN1YnMgICAgcjIs IHIyLCAjKDI4KQo+IC0gICAgICAgICAgICAgICBzdG1mZCAgIHNwISwge3I1IC0gcjh9Cj4gLSAg ICAgICAgICAgICAgIGJsdCAgICAgNWYKPiAtCj4gLSAgICAgICBDQUxHTiggIGFuZHMgICAgaXAs IHIwLCAjMzEgICAgICAgICAgICAgKQo+IC0gICAgICAgQ0FMR04oICByc2IgICAgIHIzLCBpcCwg IzMyICAgICAgICAgICAgICkKPiAtICAgICAgIENBTEdOKCAgc2JjbmVzICByNCwgcjMsIHIyICAg ICAgICAgICAgICApICBAIEMgaXMgYWx3YXlzIHNldCBoZXJlCj4gLSAgICAgICBDQUxHTiggIGJj cyAgICAgMmYgICAgICAgICAgICAgICAgICAgICAgKQo+IC0gICAgICAgQ0FMR04oICBhZHIgICAg IHI0LCA2ZiAgICAgICAgICAgICAgICAgICkKPiAtICAgICAgIENBTEdOKCAgc3VicyAgICByMiwg cjIsIHIzICAgICAgICAgICAgICApICBAIEMgZ2V0cyBzZXQKPiAtICAgICAgIENBTEdOKCAgYWRk ICAgICBwYywgcjQsIGlwICAgICAgICAgICAgICApCj4gLQo+IC0gICAgICAgUExEKCAgICBwbGQg ICAgIFtyMSwgIzBdICAgICAgICAgICAgICAgICkKPiAtMjogICAgIFBMRCggICAgc3VicyAgICBy MiwgcjIsICM5NiAgICAgICAgICAgICApCj4gLSAgICAgICBQTEQoICAgIHBsZCAgICAgW3IxLCAj MjhdICAgICAgICAgICAgICAgKQo+IC0gICAgICAgUExEKCAgICBibHQgICAgIDRmICAgICAgICAg ICAgICAgICAgICAgICkKPiAtICAgICAgIFBMRCggICAgcGxkICAgICBbcjEsICM2MF0gICAgICAg ICAgICAgICApCj4gLSAgICAgICBQTEQoICAgIHBsZCAgICAgW3IxLCAjOTJdICAgICAgICAgICAg ICAgKQo+IC0KPiAtMzogICAgIFBMRCggICAgcGxkICAgICBbcjEsICMxMjRdICAgICAgICAgICAg ICApCj4gLTQ6ICAgICAgICAgICAgIGxkcjh3ICAgcjEsIHIzLCByNCwgcjUsIHI2LCByNywgcjgs IGlwLCBsciwgYWJvcnQ9MjBmCj4gLSAgICAgICAgICAgICAgIHN1YnMgICAgcjIsIHIyLCAjMzIK PiAtICAgICAgICAgICAgICAgc3RyOHcgICByMCwgcjMsIHI0LCByNSwgcjYsIHI3LCByOCwgaXAs IGxyLCBhYm9ydD0yMGYKPiAtICAgICAgICAgICAgICAgYmdlICAgICAzYgo+IC0gICAgICAgUExE KCAgICBjbW4gICAgIHIyLCAjOTYgICAgICAgICAgICAgICAgICkKPiAtICAgICAgIFBMRCggICAg YmdlICAgICA0YiAgICAgICAgICAgICAgICAgICAgICApCj4gLQo+IC01OiAgICAgICAgICAgICBh bmRzICAgIGlwLCByMiwgIzI4Cj4gLSAgICAgICAgICAgICAgIHJzYiAgICAgaXAsIGlwLCAjMzIK PiAtI2lmIExEUjFXX1NISUZUID4gMAo+IC0gICAgICAgICAgICAgICBsc2wgICAgIGlwLCBpcCwg I0xEUjFXX1NISUZUCj4gLSNlbmRpZgo+IC0gICAgICAgICAgICAgICBhZGRuZSAgIHBjLCBwYywg aXAgICAgICAgICAgICAgIEAgQyBpcyBhbHdheXMgY2xlYXIgaGVyZQo+IC0gICAgICAgICAgICAg ICBiICAgICAgIDdmCj4gLTY6Cj4gLSAgICAgICAgICAgICAgIC5yZXB0ICAgKDEgPDwgTERSMVdf U0hJRlQpCj4gLSAgICAgICAgICAgICAgIFcobm9wKQo+IC0gICAgICAgICAgICAgICAuZW5kcgo+ IC0gICAgICAgICAgICAgICBsZHIxdyAgIHIxLCByMywgYWJvcnQ9MjBmCj4gLSAgICAgICAgICAg ICAgIGxkcjF3ICAgcjEsIHI0LCBhYm9ydD0yMGYKPiAtICAgICAgICAgICAgICAgbGRyMXcgICBy MSwgcjUsIGFib3J0PTIwZgo+IC0gICAgICAgICAgICAgICBsZHIxdyAgIHIxLCByNiwgYWJvcnQ9 MjBmCj4gLSAgICAgICAgICAgICAgIGxkcjF3ICAgcjEsIHI3LCBhYm9ydD0yMGYKPiAtICAgICAg ICAgICAgICAgbGRyMXcgICByMSwgcjgsIGFib3J0PTIwZgo+IC0gICAgICAgICAgICAgICBsZHIx dyAgIHIxLCBsciwgYWJvcnQ9MjBmCj4gLQo+IC0jaWYgTERSMVdfU0hJRlQgPCBTVFIxV19TSElG VAo+IC0gICAgICAgICAgICAgICBsc2wgICAgIGlwLCBpcCwgI1NUUjFXX1NISUZUIC0gTERSMVdf U0hJRlQKPiAtI2VsaWYgTERSMVdfU0hJRlQgPiBTVFIxV19TSElGVAo+IC0gICAgICAgICAgICAg ICBsc3IgICAgIGlwLCBpcCwgI0xEUjFXX1NISUZUIC0gU1RSMVdfU0hJRlQKPiAtI2VuZGlmCj4g LSAgICAgICAgICAgICAgIGFkZCAgICAgcGMsIHBjLCBpcAo+IC0gICAgICAgICAgICAgICBub3AK PiAtICAgICAgICAgICAgICAgLnJlcHQgICAoMSA8PCBTVFIxV19TSElGVCkKPiAtICAgICAgICAg ICAgICAgVyhub3ApCj4gLSAgICAgICAgICAgICAgIC5lbmRyCj4gLSAgICAgICAgICAgICAgIHN0 cjF3ICAgcjAsIHIzLCBhYm9ydD0yMGYKPiAtICAgICAgICAgICAgICAgc3RyMXcgICByMCwgcjQs IGFib3J0PTIwZgo+IC0gICAgICAgICAgICAgICBzdHIxdyAgIHIwLCByNSwgYWJvcnQ9MjBmCj4g LSAgICAgICAgICAgICAgIHN0cjF3ICAgcjAsIHI2LCBhYm9ydD0yMGYKPiAtICAgICAgICAgICAg ICAgc3RyMXcgICByMCwgcjcsIGFib3J0PTIwZgo+IC0gICAgICAgICAgICAgICBzdHIxdyAgIHIw LCByOCwgYWJvcnQ9MjBmCj4gLSAgICAgICAgICAgICAgIHN0cjF3ICAgcjAsIGxyLCBhYm9ydD0y MGYKPiAtCj4gLSAgICAgICBDQUxHTiggIGJjcyAgICAgMmIgICAgICAgICAgICAgICAgICAgICAg KQo+IC0KPiAtNzogICAgICAgICAgICAgbGRtZmQgICBzcCEsIHtyNSAtIHI4fQo+IC0KPiAtODog ICAgICAgICAgICAgbW92cyAgICByMiwgcjIsIGxzbCAjMzEKPiAtICAgICAgICAgICAgICAgbGRy MWIgICByMSwgcjMsIG5lLCBhYm9ydD0yMWYKPiAtICAgICAgICAgICAgICAgbGRyMWIgICByMSwg cjQsIGNzLCBhYm9ydD0yMWYKPiAtICAgICAgICAgICAgICAgbGRyMWIgICByMSwgaXAsIGNzLCBh Ym9ydD0yMWYKPiAtICAgICAgICAgICAgICAgc3RyMWIgICByMCwgcjMsIG5lLCBhYm9ydD0yMWYK PiAtICAgICAgICAgICAgICAgc3RyMWIgICByMCwgcjQsIGNzLCBhYm9ydD0yMWYKPiAtICAgICAg ICAgICAgICAgc3RyMWIgICByMCwgaXAsIGNzLCBhYm9ydD0yMWYKPiAtCj4gLSAgICAgICAgICAg ICAgIGV4aXQgICAgcjQsIHBjCj4gLQo+IC05OiAgICAgICAgICAgICByc2IgICAgIGlwLCBpcCwg IzQKPiAtICAgICAgICAgICAgICAgY21wICAgICBpcCwgIzIKPiAtICAgICAgICAgICAgICAgbGRy MWIgICByMSwgcjMsIGd0LCBhYm9ydD0yMWYKPiAtICAgICAgICAgICAgICAgbGRyMWIgICByMSwg cjQsIGdlLCBhYm9ydD0yMWYKPiAtICAgICAgICAgICAgICAgbGRyMWIgICByMSwgbHIsIGFib3J0 PTIxZgo+IC0gICAgICAgICAgICAgICBzdHIxYiAgIHIwLCByMywgZ3QsIGFib3J0PTIxZgo+IC0g ICAgICAgICAgICAgICBzdHIxYiAgIHIwLCByNCwgZ2UsIGFib3J0PTIxZgo+IC0gICAgICAgICAg ICAgICBzdWJzICAgIHIyLCByMiwgaXAKPiAtICAgICAgICAgICAgICAgc3RyMWIgICByMCwgbHIs IGFib3J0PTIxZgo+IC0gICAgICAgICAgICAgICBibHQgICAgIDhiCj4gLSAgICAgICAgICAgICAg IGFuZHMgICAgaXAsIHIxLCAjMwo+IC0gICAgICAgICAgICAgICBiZXEgICAgIDFiCj4gLQo+IC0x MDogICAgICAgICAgICBiaWMgICAgIHIxLCByMSwgIzMKPiAtICAgICAgICAgICAgICAgY21wICAg ICBpcCwgIzIKPiAtICAgICAgICAgICAgICAgbGRyMXcgICByMSwgbHIsIGFib3J0PTIxZgo+IC0g ICAgICAgICAgICAgICBiZXEgICAgIDE3Zgo+IC0gICAgICAgICAgICAgICBiZ3QgICAgIDE4Zgo+ IC0KPiAtCj4gLSAgICAgICAgICAgICAgIC5tYWNybyAgZm9yd2FyZF9jb3B5X3NoaWZ0IHB1bGwg cHVzaAo+IC0KPiAtICAgICAgICAgICAgICAgc3VicyAgICByMiwgcjIsICMyOAo+IC0gICAgICAg ICAgICAgICBibHQgICAgIDE0Zgo+IC0KPiAtICAgICAgIENBTEdOKCAgYW5kcyAgICBpcCwgcjAs ICMzMSAgICAgICAgICAgICApCj4gLSAgICAgICBDQUxHTiggIHJzYiAgICAgaXAsIGlwLCAjMzIg ICAgICAgICAgICAgKQo+IC0gICAgICAgQ0FMR04oICBzYmNuZXMgIHI0LCBpcCwgcjIgICAgICAg ICAgICAgICkgIEAgQyBpcyBhbHdheXMgc2V0IGhlcmUKPiAtICAgICAgIENBTEdOKCAgc3ViY2Mg ICByMiwgcjIsIGlwICAgICAgICAgICAgICApCj4gLSAgICAgICBDQUxHTiggIGJjYyAgICAgMTVm ICAgICAgICAgICAgICAgICAgICAgKQo+IC0KPiAtMTE6ICAgICAgICAgICAgc3RtZmQgICBzcCEs IHtyNSAtIHI5fQo+IC0KPiAtICAgICAgIFBMRCggICAgcGxkICAgICBbcjEsICMwXSAgICAgICAg ICAgICAgICApCj4gLSAgICAgICBQTEQoICAgIHN1YnMgICAgcjIsIHIyLCAjOTYgICAgICAgICAg ICAgKQo+IC0gICAgICAgUExEKCAgICBwbGQgICAgIFtyMSwgIzI4XSAgICAgICAgICAgICAgICkK PiAtICAgICAgIFBMRCggICAgYmx0ICAgICAxM2YgICAgICAgICAgICAgICAgICAgICApCj4gLSAg ICAgICBQTEQoICAgIHBsZCAgICAgW3IxLCAjNjBdICAgICAgICAgICAgICAgKQo+IC0gICAgICAg UExEKCAgICBwbGQgICAgIFtyMSwgIzkyXSAgICAgICAgICAgICAgICkKPiAtCj4gLTEyOiAgICBQ TEQoICAgIHBsZCAgICAgW3IxLCAjMTI0XSAgICAgICAgICAgICAgKQo+IC0xMzogICAgICAgICAg ICBsZHI0dyAgIHIxLCByNCwgcjUsIHI2LCByNywgYWJvcnQ9MTlmCj4gLSAgICAgICAgICAgICAg IG1vdiAgICAgcjMsIGxyLCBwdWxsICNccHVsbAo+IC0gICAgICAgICAgICAgICBzdWJzICAgIHIy LCByMiwgIzMyCj4gLSAgICAgICAgICAgICAgIGxkcjR3ICAgcjEsIHI4LCByOSwgaXAsIGxyLCBh Ym9ydD0xOWYKPiAtICAgICAgICAgICAgICAgb3JyICAgICByMywgcjMsIHI0LCBwdXNoICNccHVz aAo+IC0gICAgICAgICAgICAgICBtb3YgICAgIHI0LCByNCwgcHVsbCAjXHB1bGwKPiAtICAgICAg ICAgICAgICAgb3JyICAgICByNCwgcjQsIHI1LCBwdXNoICNccHVzaAo+IC0gICAgICAgICAgICAg ICBtb3YgICAgIHI1LCByNSwgcHVsbCAjXHB1bGwKPiAtICAgICAgICAgICAgICAgb3JyICAgICBy NSwgcjUsIHI2LCBwdXNoICNccHVzaAo+IC0gICAgICAgICAgICAgICBtb3YgICAgIHI2LCByNiwg cHVsbCAjXHB1bGwKPiAtICAgICAgICAgICAgICAgb3JyICAgICByNiwgcjYsIHI3LCBwdXNoICNc cHVzaAo+IC0gICAgICAgICAgICAgICBtb3YgICAgIHI3LCByNywgcHVsbCAjXHB1bGwKPiAtICAg ICAgICAgICAgICAgb3JyICAgICByNywgcjcsIHI4LCBwdXNoICNccHVzaAo+IC0gICAgICAgICAg ICAgICBtb3YgICAgIHI4LCByOCwgcHVsbCAjXHB1bGwKPiAtICAgICAgICAgICAgICAgb3JyICAg ICByOCwgcjgsIHI5LCBwdXNoICNccHVzaAo+IC0gICAgICAgICAgICAgICBtb3YgICAgIHI5LCBy OSwgcHVsbCAjXHB1bGwKPiAtICAgICAgICAgICAgICAgb3JyICAgICByOSwgcjksIGlwLCBwdXNo ICNccHVzaAo+IC0gICAgICAgICAgICAgICBtb3YgICAgIGlwLCBpcCwgcHVsbCAjXHB1bGwKPiAt ICAgICAgICAgICAgICAgb3JyICAgICBpcCwgaXAsIGxyLCBwdXNoICNccHVzaAo+IC0gICAgICAg ICAgICAgICBzdHI4dyAgIHIwLCByMywgcjQsIHI1LCByNiwgcjcsIHI4LCByOSwgaXAsICwgYWJv cnQ9MTlmCj4gLSAgICAgICAgICAgICAgIGJnZSAgICAgMTJiCj4gLSAgICAgICBQTEQoICAgIGNt biAgICAgcjIsICM5NiAgICAgICAgICAgICAgICAgKQo+IC0gICAgICAgUExEKCAgICBiZ2UgICAg IDEzYiAgICAgICAgICAgICAgICAgICAgICkKPiAtCj4gLSAgICAgICAgICAgICAgIGxkbWZkICAg c3AhLCB7cjUgLSByOX0KPiAtCj4gLTE0OiAgICAgICAgICAgIGFuZHMgICAgaXAsIHIyLCAjMjgK PiAtICAgICAgICAgICAgICAgYmVxICAgICAxNmYKPiAtCj4gLTE1OiAgICAgICAgICAgIG1vdiAg ICAgcjMsIGxyLCBwdWxsICNccHVsbAo+IC0gICAgICAgICAgICAgICBsZHIxdyAgIHIxLCBsciwg YWJvcnQ9MjFmCj4gLSAgICAgICAgICAgICAgIHN1YnMgICAgaXAsIGlwLCAjNAo+IC0gICAgICAg ICAgICAgICBvcnIgICAgIHIzLCByMywgbHIsIHB1c2ggI1xwdXNoCj4gLSAgICAgICAgICAgICAg IHN0cjF3ICAgcjAsIHIzLCBhYm9ydD0yMWYKPiAtICAgICAgICAgICAgICAgYmd0ICAgICAxNWIK PiAtICAgICAgIENBTEdOKCAgY21wICAgICByMiwgIzAgICAgICAgICAgICAgICAgICApCj4gLSAg ICAgICBDQUxHTiggIGJnZSAgICAgMTFiICAgICAgICAgICAgICAgICAgICAgKQo+IC0KPiAtMTY6 ICAgICAgICAgICAgc3ViICAgICByMSwgcjEsICMoXHB1c2ggLyA4KQo+IC0gICAgICAgICAgICAg ICBiICAgICAgIDhiCj4gLQo+IC0gICAgICAgICAgICAgICAuZW5kbQo+IC0KPiAtCj4gLSAgICAg ICAgICAgICAgIGZvcndhcmRfY29weV9zaGlmdCAgICAgIHB1bGw9OCAgcHVzaD0yNAo+IC0KPiAt MTc6ICAgICAgICAgICAgZm9yd2FyZF9jb3B5X3NoaWZ0ICAgICAgcHVsbD0xNiBwdXNoPTE2Cj4g LQo+IC0xODogICAgICAgICAgICBmb3J3YXJkX2NvcHlfc2hpZnQgICAgICBwdWxsPTI0IHB1c2g9 OAo+IC0KPiAtCj4gIC8qCj4gLSAqIEFib3J0IHByZWFtYmxlIGFuZCBjb21wbGV0aW9uIG1hY3Jv cy4KPiAtICogSWYgYSBmaXh1cCBoYW5kbGVyIGlzIHJlcXVpcmVkIHRoZW4gdGhvc2UgbWFjcm9z IG11c3Qgc3Vycm91bmQgaXQuCj4gLSAqIEl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgZml4dXAgY29k ZSB3aWxsIGhhbmRsZSB0aGUgcHJpdmF0ZSBwYXJ0IG9mCj4gLSAqIHRoZSBleGl0IG1hY3JvLgo+ ICsgKiBDb3B5IGEgYnVmZmVyIGZyb20gc3JjIHRvIGRlc3QgKGFsaWdubWVudCBoYW5kbGVkIGJ5 IHRoZSBoYXJkd2FyZSkKPiArICoKPiArICogUGFyYW1ldGVyczoKPiArICogICAgIHgwIC0gZGVz dAo+ICsgKiAgICAgeDEgLSBzcmMKPiArICogICAgIHgyIC0gbgo+ICsgKiBSZXR1cm5zOgo+ICsg KiAgICAgeDAgLSBkZXN0Cj4gICAqLwo+IC0KPiAtICAgICAgIC5tYWNybyAgY29weV9hYm9ydF9w cmVhbWJsZQo+IC0xOTogICAgbGRtZmQgICBzcCEsIHtyNSAtIHI5fQo+IC0gICAgICAgYiAgICAg ICAyMWYKPiAtMjA6ICAgIGxkbWZkICAgc3AhLCB7cjUgLSByOH0KPiAtMjE6Cj4gLSAgICAgICAu ZW5kbQo+IC0KPiAtICAgICAgIC5tYWNybyAgY29weV9hYm9ydF9lbmQKPiAtICAgICAgIGxkbWZk ICAgc3AhLCB7cjQsIHBjfQo+IC0gICAgICAgLmVuZG0KPiAtCj4gLQo+ICtkc3RpbiAgLnJlcSAg ICB4MAo+ICtzcmMgICAgLnJlcSAgICB4MQo+ICtjb3VudCAgLnJlcSAgICB4Mgo+ICt0bXAxICAg LnJlcSAgICB4Mwo+ICt0bXAxdyAgLnJlcSAgICB3Mwo+ICt0bXAyICAgLnJlcSAgICB4NAo+ICt0 bXAydyAgLnJlcSAgICB3NAo+ICtkc3QgICAgLnJlcSAgICB4Ngo+ICsKPiArQV9sICAgIC5yZXEg ICAgeDcKPiArQV9oICAgIC5yZXEgICAgeDgKPiArQl9sICAgIC5yZXEgICAgeDkKPiArQl9oICAg IC5yZXEgICAgeDEwCj4gK0NfbCAgICAucmVxICAgIHgxMQo+ICtDX2ggICAgLnJlcSAgICB4MTIK PiArRF9sICAgIC5yZXEgICAgeDEzCj4gK0RfaCAgICAucmVxICAgIHgxNAo+ICsKPiArICAgICAg IG1vdiAgICAgZHN0LCBkc3Rpbgo+ICsgICAgICAgY21wICAgICBjb3VudCwgIzE2Cj4gKyAgICAg ICAvKldoZW4gbWVtb3J5IGxlbmd0aCBpcyBsZXNzIHRoYW4gMTYsIHRoZSBhY2Nlc3NlZCBhcmUg bm90IGFsaWduZWQuKi8KPiArICAgICAgIGIubG8gICAgLkx0aW55MTUKPiArCj4gKyAgICAgICBu ZWcgICAgIHRtcDIsIHNyYwo+ICsgICAgICAgYW5kcyAgICB0bXAyLCB0bXAyLCAjMTUvKiBCeXRl cyB0byByZWFjaCBhbGlnbm1lbnQuICovCj4gKyAgICAgICBiLmVxICAgIC5MU3JjQWxpZ25lZAo+ ICsgICAgICAgc3ViICAgICBjb3VudCwgY291bnQsIHRtcDIKPiArICAgICAgIC8qCj4gKyAgICAg ICAqIENvcHkgdGhlIGxlYWRpbmcgbWVtb3J5IGRhdGEgZnJvbSBzcmMgdG8gZHN0IGluIGFuIGlu Y3JlYXNpbmcKPiArICAgICAgICogYWRkcmVzcyBvcmRlci5CeSB0aGlzIHdheSx0aGUgcmlzayBv ZiBvdmVyd3JpdHRpbmcgdGhlIHNvdXJjZQo+ICsgICAgICAgKiBtZW1vcnkgZGF0YSBpcyBlbGlt aW5hdGVkIHdoZW4gdGhlIGRpc3RhbmNlIGJldHdlZW4gc3JjIGFuZAo+ICsgICAgICAgKiBkc3Qg aXMgbGVzcyB0aGFuIDE2LiBUaGUgbWVtb3J5IGFjY2Vzc2VzIGhlcmUgYXJlIGFsaWdubWVudC4K PiArICAgICAgICovCj4gKyAgICAgICB0YnogICAgIHRtcDIsICMwLCAxZgo+ICsgICAgICAgbGRy YjEgICB0bXAxdywgc3JjLCAjMQo+ICsgICAgICAgc3RyYjEgICB0bXAxdywgZHN0LCAjMQo+ICsx Ogo+ICsgICAgICAgdGJ6ICAgICB0bXAyLCAjMSwgMmYKPiArICAgICAgIGxkcmgxICAgdG1wMXcs IHNyYywgIzIKPiArICAgICAgIHN0cmgxICAgdG1wMXcsIGRzdCwgIzIKPiArMjoKPiArICAgICAg IHRieiAgICAgdG1wMiwgIzIsIDNmCj4gKyAgICAgICBsZHIxICAgIHRtcDF3LCBzcmMsICM0Cj4g KyAgICAgICBzdHIxICAgIHRtcDF3LCBkc3QsICM0Cj4gKzM6Cj4gKyAgICAgICB0YnogICAgIHRt cDIsICMzLCAuTFNyY0FsaWduZWQKPiArICAgICAgIGxkcjEgICAgdG1wMSwgc3JjLCAjOAo+ICsg ICAgICAgc3RyMSAgICB0bXAxLCBkc3QsICM4Cj4gKwo+ICsuTFNyY0FsaWduZWQ6Cj4gKyAgICAg ICBjbXAgICAgIGNvdW50LCAjNjQKPiArICAgICAgIGIuZ2UgICAgLkxjcHlfb3ZlcjY0Cj4gKyAg ICAgICAvKgo+ICsgICAgICAgKiBEZWFsIHdpdGggc21hbGwgY29waWVzIHF1aWNrbHkgYnkgZHJv cHBpbmcgc3RyYWlnaHQgaW50byB0aGUKPiArICAgICAgICogZXhpdCBibG9jay4KPiArICAgICAg ICovCj4gKy5MdGFpbDYzOgo+ICsgICAgICAgLyoKPiArICAgICAgICogQ29weSB1cCB0byA0OCBi eXRlcyBvZiBkYXRhLiBBdCB0aGlzIHBvaW50IHdlIG9ubHkgbmVlZCB0aGUKPiArICAgICAgICog Ym90dG9tIDYgYml0cyBvZiBjb3VudCB0byBiZSBhY2N1cmF0ZS4KPiArICAgICAgICovCj4gKyAg ICAgICBhbmRzICAgIHRtcDEsIGNvdW50LCAjMHgzMAo+ICsgICAgICAgYi5lcSAgICAuTHRpbnkx NQo+ICsgICAgICAgY21wICAgICB0bXAxdywgIzB4MjAKPiArICAgICAgIGIuZXEgICAgMWYKPiAr ICAgICAgIGIubHQgICAgMmYKPiArICAgICAgIGxkcDEgICAgQV9sLCBBX2gsIHNyYywgIzE2Cj4g KyAgICAgICBzdHAxICAgIEFfbCwgQV9oLCBkc3QsICMxNgo+ICsxOgo+ICsgICAgICAgbGRwMSAg ICBBX2wsIEFfaCwgc3JjLCAjMTYKPiArICAgICAgIHN0cDEgICAgQV9sLCBBX2gsIGRzdCwgIzE2 Cj4gKzI6Cj4gKyAgICAgICBsZHAxICAgIEFfbCwgQV9oLCBzcmMsICMxNgo+ICsgICAgICAgc3Rw MSAgICBBX2wsIEFfaCwgZHN0LCAjMTYKPiArLkx0aW55MTU6Cj4gKyAgICAgICAvKgo+ICsgICAg ICAgKiBQcmVmZXIgdG8gYnJlYWsgb25lIGxkcC9zdHAgaW50byBzZXZlcmFsIGxvYWQvc3RvcmUg dG8gYWNjZXNzCj4gKyAgICAgICAqIG1lbW9yeSBpbiBhbiBpbmNyZWFzaW5nIGFkZHJlc3Mgb3Jk ZXIscmF0aGVyIHRoYW4gdG8gbG9hZC9zdG9yZSAxNgo+ICsgICAgICAgKiBieXRlcyBmcm9tIChz cmMtMTYpIHRvIChkc3QtMTYpIGFuZCB0byBiYWNrd2FyZCB0aGUgc3JjIHRvIGFsaWduZWQKPiAr ICAgICAgICogYWRkcmVzcyx3aGljaCB3YXkgaXMgdXNlZCBpbiBvcmlnaW5hbCBjb3J0ZXggbWVt Y3B5LiBJZiBrZWVwaW5nCj4gKyAgICAgICAqIHRoZSBvcmlnaW5hbCBtZW1jcHkgcHJvY2VzcyBo ZXJlLCBtZW1tb3ZlIG5lZWQgdG8gc2F0aXNmeSB0aGUKPiArICAgICAgICogcHJlY29uZGl0aW9u IHRoYXQgc3JjIGFkZHJlc3MgaXMgYXQgbGVhc3QgMTYgYnl0ZXMgYmlnZ2VyIHRoYW4gZHN0Cj4g KyAgICAgICAqIGFkZHJlc3Msb3RoZXJ3aXNlIHNvbWUgc291cmNlIGRhdGEgd2lsbCBiZSBvdmVy d3JpdHRlbiB3aGVuIG1lbW92ZQo+ICsgICAgICAgKiBjYWxsIG1lbWNweSBkaXJlY3RseS4gVG8g bWFrZSBtZW1tb3ZlIHNpbXBsZXIgYW5kIGRlY291cGxlIHRoZQo+ICsgICAgICAgKiBtZW1jcHkn cyBkZXBlbmRlbmN5IG9uIG1lbW1vdmUsIHdpdGhkcmV3IHRoZSBvcmlnaW5hbCBwcm9jZXNzLgo+ ICsgICAgICAgKi8KPiArICAgICAgIHRieiAgICAgY291bnQsICMzLCAxZgo+ICsgICAgICAgbGRy MSAgICB0bXAxLCBzcmMsICM4Cj4gKyAgICAgICBzdHIxICAgIHRtcDEsIGRzdCwgIzgKPiArMToK PiArICAgICAgIHRieiAgICAgY291bnQsICMyLCAyZgo+ICsgICAgICAgbGRyMSAgICB0bXAxdywg c3JjLCAjNAo+ICsgICAgICAgc3RyMSAgICB0bXAxdywgZHN0LCAjNAo+ICsyOgo+ICsgICAgICAg dGJ6ICAgICBjb3VudCwgIzEsIDNmCj4gKyAgICAgICBsZHJoMSAgIHRtcDF3LCBzcmMsICMyCj4g KyAgICAgICBzdHJoMSAgIHRtcDF3LCBkc3QsICMyCj4gKzM6Cj4gKyAgICAgICB0YnogICAgIGNv dW50LCAjMCwgLkxleGl0ZnVuYwo+ICsgICAgICAgbGRyYjEgICB0bXAxdywgc3JjLCAjMQo+ICsg ICAgICAgc3RyYjEgICB0bXAxdywgZHN0LCAjMQo+ICsKPiArICAgICAgIGIgICAgICAgLkxleGl0 ZnVuYwo+ICsKPiArLkxjcHlfb3ZlcjY0Ogo+ICsgICAgICAgc3VicyAgICBjb3VudCwgY291bnQs ICMxMjgKPiArICAgICAgIGIuZ2UgICAgLkxjcHlfYm9keV9sYXJnZQo+ICsgICAgICAgLyoKPiAr ICAgICAgICogTGVzcyB0aGFuIDEyOCBieXRlcyB0byBjb3B5LCBzbyBoYW5kbGUgNjQgaGVyZSBh bmQgdGhlbiBqdW1wCj4gKyAgICAgICAqIHRvIHRoZSB0YWlsLgo+ICsgICAgICAgKi8KPiArICAg ICAgIGxkcDEgICAgQV9sLCBBX2gsIHNyYywgIzE2Cj4gKyAgICAgICBzdHAxICAgIEFfbCwgQV9o LCBkc3QsICMxNgo+ICsgICAgICAgbGRwMSAgICBCX2wsIEJfaCwgc3JjLCAjMTYKPiArICAgICAg IGxkcDEgICAgQ19sLCBDX2gsIHNyYywgIzE2Cj4gKyAgICAgICBzdHAxICAgIEJfbCwgQl9oLCBk c3QsICMxNgo+ICsgICAgICAgc3RwMSAgICBDX2wsIENfaCwgZHN0LCAjMTYKPiArICAgICAgIGxk cDEgICAgRF9sLCBEX2gsIHNyYywgIzE2Cj4gKyAgICAgICBzdHAxICAgIERfbCwgRF9oLCBkc3Qs ICMxNgo+ICsKPiArICAgICAgIHRzdCAgICAgY291bnQsICMweDNmCj4gKyAgICAgICBiLm5lICAg IC5MdGFpbDYzCj4gKyAgICAgICBiICAgICAgIC5MZXhpdGZ1bmMKPiArCj4gKyAgICAgICAvKgo+ ICsgICAgICAgKiBDcml0aWNhbCBsb29wLiAgU3RhcnQgYXQgYSBuZXcgY2FjaGUgbGluZSBib3Vu ZGFyeS4gIEFzc3VtaW5nCj4gKyAgICAgICAqIDY0IGJ5dGVzIHBlciBsaW5lIHRoaXMgZW5zdXJl cyB0aGUgZW50aXJlIGxvb3AgaXMgaW4gb25lIGxpbmUuCj4gKyAgICAgICAqLwo+ICsuTGNweV9i b2R5X2xhcmdlOgo+ICsgICAgICAgLyogcHJlLWdldCA2NCBieXRlcyBkYXRhLiAqLwo+ICsgICAg ICAgbGRwMSAgICBBX2wsIEFfaCwgc3JjLCAjMTYKPiArICAgICAgIGxkcDEgICAgQl9sLCBCX2gs IHNyYywgIzE2Cj4gKyAgICAgICBsZHAxICAgIENfbCwgQ19oLCBzcmMsICMxNgo+ICsgICAgICAg bGRwMSAgICBEX2wsIERfaCwgc3JjLCAjMTYKPiArMToKPiArICAgICAgIC8qCj4gKyAgICAgICAq IGludGVybGFjZSB0aGUgbG9hZCBvZiBuZXh0IDY0IGJ5dGVzIGRhdGEgYmxvY2sgd2l0aCBzdG9y ZSBvZiB0aGUgbGFzdAo+ICsgICAgICAgKiBsb2FkZWQgNjQgYnl0ZXMgZGF0YS4KPiArICAgICAg ICovCj4gKyAgICAgICBzdHAxICAgIEFfbCwgQV9oLCBkc3QsICMxNgo+ICsgICAgICAgbGRwMSAg ICBBX2wsIEFfaCwgc3JjLCAjMTYKPiArICAgICAgIHN0cDEgICAgQl9sLCBCX2gsIGRzdCwgIzE2 Cj4gKyAgICAgICBsZHAxICAgIEJfbCwgQl9oLCBzcmMsICMxNgo+ICsgICAgICAgc3RwMSAgICBD X2wsIENfaCwgZHN0LCAjMTYKPiArICAgICAgIGxkcDEgICAgQ19sLCBDX2gsIHNyYywgIzE2Cj4g KyAgICAgICBzdHAxICAgIERfbCwgRF9oLCBkc3QsICMxNgo+ICsgICAgICAgbGRwMSAgICBEX2ws IERfaCwgc3JjLCAjMTYKPiArICAgICAgIHN1YnMgICAgY291bnQsIGNvdW50LCAjNjQKPiArICAg ICAgIGIuZ2UgICAgMWIKPiArICAgICAgIHN0cDEgICAgQV9sLCBBX2gsIGRzdCwgIzE2Cj4gKyAg ICAgICBzdHAxICAgIEJfbCwgQl9oLCBkc3QsICMxNgo+ICsgICAgICAgc3RwMSAgICBDX2wsIENf aCwgZHN0LCAjMTYKPiArICAgICAgIHN0cDEgICAgRF9sLCBEX2gsIGRzdCwgIzE2Cj4gKwo+ICsg ICAgICAgdHN0ICAgICBjb3VudCwgIzB4M2YKPiArICAgICAgIGIubmUgICAgLkx0YWlsNjMKPiAr LkxleGl0ZnVuYzoKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbGliL21lbWNweS5TIGIvYXJjaC9h cm0vbGliL21lbWNweS5TCj4gaW5kZXggNTEyMzY5MS4uY2ZlZDMxOSAxMDA2NDQKPiAtLS0gYS9h cmNoL2FybS9saWIvbWVtY3B5LlMKPiArKysgYi9hcmNoL2FybS9saWIvbWVtY3B5LlMKPiBAQCAt MSw2NCArMSw3NCBAQAo+ICAvKgo+IC0gKiAgbGludXgvYXJjaC9hcm0vbGliL21lbWNweS5TCj4g KyAqIENvcHlyaWdodCAoQykgMjAxMyBBUk0gTHRkLgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTMg TGluYXJvLgo+ICAgKgo+IC0gKiAgQXV0aG9yOiAgICBOaWNvbGFzIFBpdHJlCj4gLSAqICBDcmVh dGVkOiAgIFNlcCAyOCwgMjAwNQo+IC0gKiAgQ29weXJpZ2h0OiBNb250YVZpc3RhIFNvZnR3YXJl LCBJbmMuCj4gKyAqIFRoaXMgY29kZSBpcyBiYXNlZCBvbiBnbGliYyBjb3J0ZXggc3RyaW5ncyB3 b3JrIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTGluYXJvCj4gKyAqIGFuZCByZS1saWNlbnNlZCB1 bmRlciBHUEx2MiBmb3IgdGhlIExpbnV4IGtlcm5lbC4gVGhlIG9yaWdpbmFsIGNvZGUgY2FuCj4g KyAqIGJlIGZvdW5kIEAKPiAgICoKPiAtICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gLSAqICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwo+ IC0gKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4gKyAqIGh0 dHA6Ly9iYXphYXIubGF1bmNocGFkLm5ldC9+bGluYXJvLXRvb2xjaGFpbi1kZXYvY29ydGV4LXN0 cmluZ3MvdHJ1bmsvCj4gKyAqIGZpbGVzL2hlYWQ6L3NyYy9hYXJjaDY0Lwo+ICsgKgo+ICsgKiBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQo+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwo+ICsgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbi4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gKyAqIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKPiArICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiAr ICoKPiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKPiArICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4gICAqLwo+Cj4gICNpbmNsdWRl IDxsaW51eC9saW5rYWdlLmg+Cj4gICNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+Cj4KPiAtI2Rl ZmluZSBMRFIxV19TSElGVCAgICAwCj4gLSNkZWZpbmUgU1RSMVdfU0hJRlQgICAgMAo+IC0KPiAt ICAgICAgIC5tYWNybyBsZHIxdyBwdHIgcmVnIGFib3J0Cj4gLSAgICAgICBXKGxkcikgXHJlZywg W1xwdHJdLCAjNAo+IC0gICAgICAgLmVuZG0KPiAtCj4gLSAgICAgICAubWFjcm8gbGRyNHcgcHRy IHJlZzEgcmVnMiByZWczIHJlZzQgYWJvcnQKPiAtICAgICAgIGxkbWlhIFxwdHIhLCB7XHJlZzEs IFxyZWcyLCBccmVnMywgXHJlZzR9Cj4gKy8qCj4gKyAqIENvcHkgYSBidWZmZXIgZnJvbSBzcmMg dG8gZGVzdCAoYWxpZ25tZW50IGhhbmRsZWQgYnkgdGhlIGhhcmR3YXJlKQo+ICsgKgo+ICsgKiBQ YXJhbWV0ZXJzOgo+ICsgKiAgICAgeDAgLSBkZXN0Cj4gKyAqICAgICB4MSAtIHNyYwo+ICsgKiAg ICAgeDIgLSBuCj4gKyAqIFJldHVybnM6Cj4gKyAqICAgICB4MCAtIGRlc3QKPiArICovCj4gKyAg ICAgICAubWFjcm8gbGRyYjEgcHRyLCByZWdCLCB2YWwKPiArICAgICAgIGxkcmIgIFxwdHIsIFtc cmVnQl0sIFx2YWwKPiAgICAgICAgIC5lbmRtCj4KPiAtICAgICAgIC5tYWNybyBsZHI4dyBwdHIg cmVnMSByZWcyIHJlZzMgcmVnNCByZWc1IHJlZzYgcmVnNyByZWc4IGFib3J0Cj4gLSAgICAgICBs ZG1pYSBccHRyISwge1xyZWcxLCBccmVnMiwgXHJlZzMsIFxyZWc0LCBccmVnNSwgXHJlZzYsIFxy ZWc3LCBccmVnOH0KPiArICAgICAgIC5tYWNybyBzdHJiMSBwdHIsIHJlZ0IsIHZhbAo+ICsgICAg ICAgc3RyYiBccHRyLCBbXHJlZ0JdLCBcdmFsCj4gICAgICAgICAuZW5kbQo+Cj4gLSAgICAgICAu bWFjcm8gbGRyMWIgcHRyIHJlZyBjb25kPWFsIGFib3J0Cj4gLSAgICAgICBsZHJcY29uZFwoKWIg XHJlZywgW1xwdHJdLCAjMQo+ICsgICAgICAgLm1hY3JvIGxkcmgxIHB0ciwgcmVnQiwgdmFsCj4g KyAgICAgICBsZHJoICBccHRyLCBbXHJlZ0JdLCBcdmFsCj4gICAgICAgICAuZW5kbQo+Cj4gLSAg ICAgICAubWFjcm8gc3RyMXcgcHRyIHJlZyBhYm9ydAo+IC0gICAgICAgVyhzdHIpIFxyZWcsIFtc cHRyXSwgIzQKPiArICAgICAgIC5tYWNybyBzdHJoMSBwdHIsIHJlZ0IsIHZhbAo+ICsgICAgICAg c3RyaCBccHRyLCBbXHJlZ0JdLCBcdmFsCj4gICAgICAgICAuZW5kbQo+Cj4gLSAgICAgICAubWFj cm8gc3RyOHcgcHRyIHJlZzEgcmVnMiByZWczIHJlZzQgcmVnNSByZWc2IHJlZzcgcmVnOCBhYm9y dAo+IC0gICAgICAgc3RtaWEgXHB0ciEsIHtccmVnMSwgXHJlZzIsIFxyZWczLCBccmVnNCwgXHJl ZzUsIFxyZWc2LCBccmVnNywgXHJlZzh9Cj4gKyAgICAgICAubWFjcm8gbGRyMSBwdHIsIHJlZ0Is IHZhbAo+ICsgICAgICAgbGRyIFxwdHIsIFtccmVnQl0sIFx2YWwKPiAgICAgICAgIC5lbmRtCj4K PiAtICAgICAgIC5tYWNybyBzdHIxYiBwdHIgcmVnIGNvbmQ9YWwgYWJvcnQKPiAtICAgICAgIHN0 clxjb25kXCgpYiBccmVnLCBbXHB0cl0sICMxCj4gKyAgICAgICAubWFjcm8gc3RyMSBwdHIsIHJl Z0IsIHZhbAo+ICsgICAgICAgc3RyIFxwdHIsIFtccmVnQl0sIFx2YWwKPiAgICAgICAgIC5lbmRt Cj4KPiAtICAgICAgIC5tYWNybyBlbnRlciByZWcxIHJlZzIKPiAtICAgICAgIHN0bWRiIHNwISwg e3IwLCBccmVnMSwgXHJlZzJ9Cj4gKyAgICAgICAubWFjcm8gbGRwMSBwdHIsIHJlZ0IsIHJlZ0Ms IHZhbAo+ICsgICAgICAgbGRwIFxwdHIsIFxyZWdCLCBbXHJlZ0NdLCBcdmFsCj4gICAgICAgICAu ZW5kbQo+Cj4gLSAgICAgICAubWFjcm8gZXhpdCByZWcxIHJlZzIKPiAtICAgICAgIGxkbWZkIHNw ISwge3IwLCBccmVnMSwgXHJlZzJ9Cj4gKyAgICAgICAubWFjcm8gc3RwMSBwdHIsIHJlZ0IsIHJl Z0MsIHZhbAo+ICsgICAgICAgc3RwIFxwdHIsIFxyZWdCLCBbXHJlZ0NdLCBcdmFsCj4gICAgICAg ICAuZW5kbQo+Cj4gLSAgICAgICAudGV4dAo+IC0KPiAtLyogUHJvdG90eXBlOiB2b2lkICptZW1j cHkodm9pZCAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3Qgbik7ICovCj4gLQo+ICsgICAg ICAgLndlYWsgbWVtY3B5Cj4gIEVOVFJZKG1lbWNweSkKPiAtCj4gICNpbmNsdWRlICJjb3B5X3Rl bXBsYXRlLlMiCj4gLQo+ICsgICAgICAgcmV0Cj4gIEVORFBST0MobWVtY3B5KQo+IC0KPiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbGliL21lbXNldC5TIGIvYXJjaC9hcm0vbGliL21lbXNldC5TCj4g aW5kZXggYzRkMjY3Mi4uMzgwYTU0MCAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybS9saWIvbWVtc2V0 LlMKPiArKysgYi9hcmNoL2FybS9saWIvbWVtc2V0LlMKPiBAQCAtMSwxMjQgKzEsMjE1IEBACj4g IC8qCj4gLSAqICBsaW51eC9hcmNoL2FybS9saWIvbWVtc2V0LlMKPiArICogQ29weXJpZ2h0IChD KSAyMDEzIEFSTSBMdGQuCj4gKyAqIENvcHlyaWdodCAoQykgMjAxMyBMaW5hcm8uCj4gICAqCj4g LSAqICBDb3B5cmlnaHQgKEMpIDE5OTUtMjAwMCBSdXNzZWxsIEtpbmcKPiArICogVGhpcyBjb2Rl IGlzIGJhc2VkIG9uIGdsaWJjIGNvcnRleCBzdHJpbmdzIHdvcmsgb3JpZ2luYWxseSBhdXRob3Jl ZCBieSBMaW5hcm8KPiArICogYW5kIHJlLWxpY2Vuc2VkIHVuZGVyIEdQTHYyIGZvciB0aGUgTGlu dXgga2VybmVsLiBUaGUgb3JpZ2luYWwgY29kZSBjYW4KPiArICogYmUgZm91bmQgQAo+ICsgKgo+ ICsgKiBodHRwOi8vYmF6YWFyLmxhdW5jaHBhZC5uZXQvfmxpbmFyby10b29sY2hhaW4tZGV2L2Nv cnRleC1zdHJpbmdzL3RydW5rLwo+ICsgKiBmaWxlcy9oZWFkOi9zcmMvYWFyY2g2NC8KPiAgICoK PiAgICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKPiAgICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKPiAgICogcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4gICAqCj4gLSAqICBBU00gb3B0aW1pc2VkIHN0cmlu ZyBmdW5jdGlvbnMKPiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKPiArICogR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiArICoKPiArICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKPiArICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4gICAqLwo+ICsKPiAgI2luY2x1ZGUgPGxpbnV4L2xp bmthZ2UuaD4KPiAgI2luY2x1ZGUgPGFzbS9hc3NlbWJsZXIuaD4KPgo+IC0gICAgICAgLnRleHQK PiAtICAgICAgIC5hbGlnbiAgNQo+IC0KPiAtRU5UUlkobWVtc2V0KQo+IC0gICAgICAgYW5kcyAg ICByMywgcjAsICMzICAgICAgICAgICAgICBAIDEgdW5hbGlnbmVkPwo+IC0gICAgICAgbW92ICAg ICBpcCwgcjAgICAgICAgICAgICAgICAgICBAIHByZXNlcnZlIHIwIGFzIHJldHVybiB2YWx1ZQo+ IC0gICAgICAgYm5lICAgICA2ZiAgICAgICAgICAgICAgICAgICAgICBAIDEKPiAgLyoKPiAtICog d2Uga25vdyB0aGF0IHRoZSBwb2ludGVyIGluIGlwIGlzIGFsaWduZWQgdG8gYSB3b3JkIGJvdW5k YXJ5Lgo+IC0gKi8KPiAtMTogICAgIG9yciAgICAgcjEsIHIxLCByMSwgbHNsICM4Cj4gLSAgICAg ICBvcnIgICAgIHIxLCByMSwgcjEsIGxzbCAjMTYKPiAtICAgICAgIG1vdiAgICAgcjMsIHIxCj4g LSAgICAgICBjbXAgICAgIHIyLCAjMTYKPiAtICAgICAgIGJsdCAgICAgNGYKPiAtCj4gLSNpZiAh IENBTEdOKDEpKzAKPiAtCj4gLS8qCj4gLSAqIFdlIG5lZWQgYW4gMiBleHRyYSByZWdpc3RlcnMg Zm9yIHRoaXMgbG9vcCAtIHVzZSByOCBhbmQgdGhlIExSCj4gLSAqLwo+IC0gICAgICAgc3RtZmQg ICBzcCEsIHtyOCwgbHJ9Cj4gLSAgICAgICBtb3YgICAgIHI4LCByMQo+IC0gICAgICAgbW92ICAg ICBsciwgcjEKPiAtCj4gLTI6ICAgICBzdWJzICAgIHIyLCByMiwgIzY0Cj4gLSAgICAgICBzdG1n ZWlhIGlwISwge3IxLCByMywgcjgsIGxyfSAgIEAgNjQgYnl0ZXMgYXQgYSB0aW1lLgo+IC0gICAg ICAgc3RtZ2VpYSBpcCEsIHtyMSwgcjMsIHI4LCBscn0KPiAtICAgICAgIHN0bWdlaWEgaXAhLCB7 cjEsIHIzLCByOCwgbHJ9Cj4gLSAgICAgICBzdG1nZWlhIGlwISwge3IxLCByMywgcjgsIGxyfQo+ IC0gICAgICAgYmd0ICAgICAyYgo+IC0gICAgICAgbGRtZXFmZCBzcCEsIHtyOCwgcGN9ICAgICAg ICAgICBAIE5vdyA8NjQgYnl0ZXMgdG8gZ28uCj4gLS8qCj4gLSAqIE5vIG5lZWQgdG8gY29ycmVj dCB0aGUgY291bnQ7IHdlJ3JlIG9ubHkgdGVzdGluZyBiaXRzIGZyb20gbm93IG9uCj4gKyAqIEZp bGwgaW4gdGhlIGJ1ZmZlciB3aXRoIGNoYXJhY3RlciBjIChhbGlnbm1lbnQgaGFuZGxlZCBieSB0 aGUgaGFyZHdhcmUpCj4gKyAqCj4gKyAqIFBhcmFtZXRlcnM6Cj4gKyAqICAgICB4MCAtIGJ1Zgo+ ICsgKiAgICAgeDEgLSBjCj4gKyAqICAgICB4MiAtIG4KPiArICogUmV0dXJuczoKPiArICogICAg IHgwIC0gYnVmCj4gICAqLwo+IC0gICAgICAgdHN0ICAgICByMiwgIzMyCj4gLSAgICAgICBzdG1u ZWlhIGlwISwge3IxLCByMywgcjgsIGxyfQo+IC0gICAgICAgc3RtbmVpYSBpcCEsIHtyMSwgcjMs IHI4LCBscn0KPiAtICAgICAgIHRzdCAgICAgcjIsICMxNgo+IC0gICAgICAgc3RtbmVpYSBpcCEs IHtyMSwgcjMsIHI4LCBscn0KPiAtICAgICAgIGxkbWZkICAgc3AhLCB7cjgsIGxyfQo+IC0KPiAt I2Vsc2UKPgo+ICtkc3RpbiAgICAgICAgICAucmVxICAgIHgwCj4gK3ZhbCAgICAgICAgICAgIC5y ZXEgICAgdzEKPiArY291bnQgICAgICAgICAgLnJlcSAgICB4Mgo+ICt0bXAxICAgICAgICAgICAu cmVxICAgIHgzCj4gK3RtcDF3ICAgICAgICAgIC5yZXEgICAgdzMKPiArdG1wMiAgICAgICAgICAg LnJlcSAgICB4NAo+ICt0bXAydyAgICAgICAgICAucmVxICAgIHc0Cj4gK3p2YV9sZW5feCAgICAg IC5yZXEgICAgeDUKPiArenZhX2xlbiAgICAgICAgICAgICAgICAucmVxICAgIHc1Cj4gK3p2YV9i aXRzX3ggICAgIC5yZXEgICAgeDYKPiArCj4gK0FfbCAgICAgICAgICAgIC5yZXEgICAgeDcKPiAr QV9sdyAgICAgICAgICAgLnJlcSAgICB3Nwo+ICtkc3QgICAgICAgICAgICAucmVxICAgIHg4Cj4g K3RtcDN3ICAgICAgICAgIC5yZXEgICAgdzkKPiArdG1wMyAgICAgICAgICAgLnJlcSAgICB4OQo+ ICsKPiArICAgICAgIC53ZWFrIG1lbXNldAo+ICtFTlRSWShtZW1zZXQpCj4gKyAgICAgICBtb3Yg ICAgIGRzdCwgZHN0aW4gICAgICAvKiBQcmVzZXJ2ZSByZXR1cm4gdmFsdWUuICAqLwo+ICsgICAg ICAgYW5kICAgICBBX2x3LCB2YWwsICMyNTUKPiArICAgICAgIG9yciAgICAgQV9sdywgQV9sdywg QV9sdywgbHNsICM4Cj4gKyAgICAgICBvcnIgICAgIEFfbHcsIEFfbHcsIEFfbHcsIGxzbCAjMTYK PiArICAgICAgIG9yciAgICAgQV9sLCBBX2wsIEFfbCwgbHNsICMzMgo+ICsKPiArICAgICAgIGNt cCAgICAgY291bnQsICMxNQo+ICsgICAgICAgYi5oaSAgICAuTG92ZXIxNl9wcm9jCj4gKyAgICAg ICAvKkFsbCBzdG9yZSBtYXliZSBhcmUgbm9uLWFsaWduZWQuLiovCj4gKyAgICAgICB0YnogICAg IGNvdW50LCAjMywgMWYKPiArICAgICAgIHN0ciAgICAgQV9sLCBbZHN0XSwgIzgKPiArMToKPiAr ICAgICAgIHRieiAgICAgY291bnQsICMyLCAyZgo+ICsgICAgICAgc3RyICAgICBBX2x3LCBbZHN0 XSwgIzQKPiArMjoKPiArICAgICAgIHRieiAgICAgY291bnQsICMxLCAzZgo+ICsgICAgICAgc3Ry aCAgICBBX2x3LCBbZHN0XSwgIzIKPiArMzoKPiArICAgICAgIHRieiAgICAgY291bnQsICMwLCA0 Zgo+ICsgICAgICAgc3RyYiAgICBBX2x3LCBbZHN0XQo+ICs0Ogo+ICsgICAgICAgcmV0Cj4gKwo+ ICsuTG92ZXIxNl9wcm9jOgo+ICsgICAgICAgLypXaGV0aGVyICB0aGUgc3RhcnQgYWRkcmVzcyBp cyBhbGlnbmVkIHdpdGggMTYuKi8KPiArICAgICAgIG5lZyAgICAgdG1wMiwgZHN0Cj4gKyAgICAg ICBhbmRzICAgIHRtcDIsIHRtcDIsICMxNQo+ICsgICAgICAgYi5lcSAgICAuTGFsaWduZWQKPiAg LyoKPiAtICogVGhpcyB2ZXJzaW9uIGFsaWducyB0aGUgZGVzdGluYXRpb24gcG9pbnRlciBpbiBv cmRlciB0byB3cml0ZQo+IC0gKiB3aG9sZSBjYWNoZSBsaW5lcyBhdCBvbmNlLgo+IC0gKi8KPiAt Cj4gLSAgICAgICBzdG1mZCAgIHNwISwge3I0LXI4LCBscn0KPiAtICAgICAgIG1vdiAgICAgcjQs IHIxCj4gLSAgICAgICBtb3YgICAgIHI1LCByMQo+IC0gICAgICAgbW92ICAgICByNiwgcjEKPiAt ICAgICAgIG1vdiAgICAgcjcsIHIxCj4gLSAgICAgICBtb3YgICAgIHI4LCByMQo+IC0gICAgICAg bW92ICAgICBsciwgcjEKPiAtCj4gLSAgICAgICBjbXAgICAgIHIyLCAjOTYKPiAtICAgICAgIHRz dGd0ICAgaXAsICMzMQo+IC0gICAgICAgYmxlICAgICAzZgo+IC0KPiAtICAgICAgIGFuZCAgICAg cjgsIGlwLCAjMzEKPiAtICAgICAgIHJzYiAgICAgcjgsIHI4LCAjMzIKPiAtICAgICAgIHN1YiAg ICAgcjIsIHIyLCByOAo+IC0gICAgICAgbW92cyAgICByOCwgcjgsIGxzbCAjKDMyIC0gNCkKPiAt ICAgICAgIHN0bWNzaWEgaXAhLCB7cjQsIHI1LCByNiwgcjd9Cj4gLSAgICAgICBzdG1taWlhIGlw ISwge3I0LCByNX0KPiAtICAgICAgIHRzdCAgICAgcjgsICMoMSA8PCAzMCkKPiAtICAgICAgIG1v diAgICAgcjgsIHIxCj4gLSAgICAgICBzdHJuZSAgIHIxLCBbaXBdLCAjNAo+IC0KPiAtMzogICAg IHN1YnMgICAgcjIsIHIyLCAjNjQKPiAtICAgICAgIHN0bWdlaWEgaXAhLCB7cjEsIHIzLXI4LCBs cn0KPiAtICAgICAgIHN0bWdlaWEgaXAhLCB7cjEsIHIzLXI4LCBscn0KPiAtICAgICAgIGJndCAg ICAgM2IKPiAtICAgICAgIGxkbWVxZmQgc3AhLCB7cjQtcjgsIHBjfQo+IC0KPiAtICAgICAgIHRz dCAgICAgcjIsICMzMgo+IC0gICAgICAgc3RtbmVpYSBpcCEsIHtyMSwgcjMtcjgsIGxyfQo+IC0g ICAgICAgdHN0ICAgICByMiwgIzE2Cj4gLSAgICAgICBzdG1uZWlhIGlwISwge3I0LXI3fQo+IC0g ICAgICAgbGRtZmQgICBzcCEsIHtyNC1yOCwgbHJ9Cj4gLQo+IC0jZW5kaWYKPiAtCj4gLTQ6ICAg ICB0c3QgICAgIHIyLCAjOAo+IC0gICAgICAgc3RtbmVpYSBpcCEsIHtyMSwgcjN9Cj4gLSAgICAg ICB0c3QgICAgIHIyLCAjNAo+IC0gICAgICAgc3RybmUgICByMSwgW2lwXSwgIzQKPiArKiBUaGUg Y291bnQgaXMgbm90IGxlc3MgdGhhbiAxNiwgd2UgY2FuIHVzZSBzdHAgdG8gc3RvcmUgdGhlIHN0 YXJ0IDE2IGJ5dGVzLAo+ICsqIHRoZW4gYWRqdXN0IHRoZSBkc3QgYWxpZ25lZCB3aXRoIDE2LlRo aXMgcHJvY2VzcyB3aWxsIG1ha2UgdGhlIGN1cnJlbnQKPiArKiBtZW1vcnkgYWRkcmVzcyBhdCBh bGlnbm1lbnQgYm91bmRhcnkuCj4gKyovCj4gKyAgICAgICBzdHAgICAgIEFfbCwgQV9sLCBbZHN0 XSAvKm5vbi1hbGlnbmVkIHN0b3JlLi4qLwo+ICsgICAgICAgLyptYWtlIHRoZSBkc3QgYWxpZ25l ZC4uKi8KPiArICAgICAgIHN1YiAgICAgY291bnQsIGNvdW50LCB0bXAyCj4gKyAgICAgICBhZGQg ICAgIGRzdCwgZHN0LCB0bXAyCj4gKwo+ICsuTGFsaWduZWQ6Cj4gKyAgICAgICBjYnogICAgIEFf bCwgLkx6ZXJvX21lbQo+ICsKPiArLkx0YWlsX21heWJlX2xvbmc6Cj4gKyAgICAgICBjbXAgICAg IGNvdW50LCAjNjQKPiArICAgICAgIGIuZ2UgICAgLkxub3Rfc2hvcnQKPiArLkx0YWlsNjM6Cj4g KyAgICAgICBhbmRzICAgIHRtcDEsIGNvdW50LCAjMHgzMAo+ICsgICAgICAgYi5lcSAgICAzZgo+ ICsgICAgICAgY21wICAgICB0bXAxdywgIzB4MjAKPiArICAgICAgIGIuZXEgICAgMWYKPiArICAg ICAgIGIubHQgICAgMmYKPiArICAgICAgIHN0cCAgICAgQV9sLCBBX2wsIFtkc3RdLCAjMTYKPiAr MToKPiArICAgICAgIHN0cCAgICAgQV9sLCBBX2wsIFtkc3RdLCAjMTYKPiArMjoKPiArICAgICAg IHN0cCAgICAgQV9sLCBBX2wsIFtkc3RdLCAjMTYKPiAgLyoKPiAtICogV2hlbiB3ZSBnZXQgaGVy ZSwgd2UndmUgZ290IGxlc3MgdGhhbiA0IGJ5dGVzIHRvIHplcm8uICBXZQo+IC0gKiBtYXkgaGF2 ZSBhbiB1bmFsaWduZWQgcG9pbnRlciBhcyB3ZWxsLgo+IC0gKi8KPiAtNTogICAgIHRzdCAgICAg cjIsICMyCj4gLSAgICAgICBzdHJuZWIgIHIxLCBbaXBdLCAjMQo+IC0gICAgICAgc3RybmViICBy MSwgW2lwXSwgIzEKPiAtICAgICAgIHRzdCAgICAgcjIsICMxCj4gLSAgICAgICBzdHJuZWIgIHIx LCBbaXBdLCAjMQo+IC0gICAgICAgbW92ICAgICBwYywgbHIKPiAtCj4gLTY6ICAgICBzdWJzICAg IHIyLCByMiwgIzQgICAgICAgICAgICAgIEAgMSBkbyB3ZSBoYXZlIGVub3VnaAo+IC0gICAgICAg Ymx0ICAgICA1YiAgICAgICAgICAgICAgICAgICAgICBAIDEgYnl0ZXMgdG8gYWxpZ24gd2l0aD8K PiAtICAgICAgIGNtcCAgICAgcjMsICMyICAgICAgICAgICAgICAgICAgQCAxCj4gLSAgICAgICBz dHJsdGIgIHIxLCBbaXBdLCAjMSAgICAgICAgICAgIEAgMQo+IC0gICAgICAgc3RybGViICByMSwg W2lwXSwgIzEgICAgICAgICAgICBAIDEKPiAtICAgICAgIHN0cmIgICAgcjEsIFtpcF0sICMxICAg ICAgICAgICAgQCAxCj4gLSAgICAgICBhZGQgICAgIHIyLCByMiwgcjMgICAgICAgICAgICAgIEAg MSAocjIgPSByMiAtICg0IC0gcjMpKQo+IC0gICAgICAgYiAgICAgICAxYgo+ICsqIFRoZSBsYXN0 IHN0b3JlIGxlbmd0aCBpcyBsZXNzIHRoYW4gMTYsdXNlIHN0cCB0byB3cml0ZSBsYXN0IDE2IGJ5 dGVzLgo+ICsqIEl0IHdpbGwgbGVhZCBzb21lIGJ5dGVzIHdyaXR0ZW4gdHdpY2UgYW5kIHRoZSBh Y2Nlc3MgaXMgbm9uLWFsaWduZWQuCj4gKyovCj4gKzM6Cj4gKyAgICAgICBhbmRzICAgIGNvdW50 LCBjb3VudCwgIzE1Cj4gKyAgICAgICBjYnogICAgIGNvdW50LCA0Zgo+ICsgICAgICAgYWRkICAg ICBkc3QsIGRzdCwgY291bnQKPiArICAgICAgIHN0cCAgICAgQV9sLCBBX2wsIFtkc3QsICMtMTZd ICAgLyogUmVwZWF0IHNvbWUvYWxsIG9mIGxhc3Qgc3RvcmUuICovCj4gKzQ6Cj4gKyAgICAgICBy ZXQKPiArCj4gKyAgICAgICAvKgo+ICsgICAgICAgKiBDcml0aWNhbCBsb29wLiBTdGFydCBhdCBh IG5ldyBjYWNoZSBsaW5lIGJvdW5kYXJ5LiBBc3N1bWluZwo+ICsgICAgICAgKiA2NCBieXRlcyBw ZXIgbGluZSwgdGhpcyBlbnN1cmVzIHRoZSBlbnRpcmUgbG9vcCBpcyBpbiBvbmUgbGluZS4KPiAr ICAgICAgICovCj4gKy5Mbm90X3Nob3J0Ogo+ICsgICAgICAgc3ViICAgICBkc3QsIGRzdCwgIzE2 LyogUHJlLWJpYXMuICAqLwo+ICsgICAgICAgc3ViICAgICBjb3VudCwgY291bnQsICM2NAo+ICsx Ogo+ICsgICAgICAgc3RwICAgICBBX2wsIEFfbCwgW2RzdCwgIzE2XQo+ICsgICAgICAgc3RwICAg ICBBX2wsIEFfbCwgW2RzdCwgIzMyXQo+ICsgICAgICAgc3RwICAgICBBX2wsIEFfbCwgW2RzdCwg IzQ4XQo+ICsgICAgICAgc3RwICAgICBBX2wsIEFfbCwgW2RzdCwgIzY0XSEKPiArICAgICAgIHN1 YnMgICAgY291bnQsIGNvdW50LCAjNjQKPiArICAgICAgIGIuZ2UgICAgMWIKPiArICAgICAgIHRz dCAgICAgY291bnQsICMweDNmCj4gKyAgICAgICBhZGQgICAgIGRzdCwgZHN0LCAjMTYKPiArICAg ICAgIGIubmUgICAgLkx0YWlsNjMKPiArLkxleGl0ZnVuYzoKPiArICAgICAgIHJldAo+ICsKPiAr ICAgICAgIC8qCj4gKyAgICAgICAqIEZvciB6ZXJvaW5nIG1lbW9yeSwgY2hlY2sgdG8gc2VlIGlm IHdlIGNhbiB1c2UgdGhlIFpWQSBmZWF0dXJlIHRvCj4gKyAgICAgICAqIHplcm8gZW50aXJlICdj YWNoZScgbGluZXMuCj4gKyAgICAgICAqLwo+ICsuTHplcm9fbWVtOgo+ICsgICAgICAgY21wICAg ICBjb3VudCwgIzYzCj4gKyAgICAgICBiLmxlICAgIC5MdGFpbDYzCj4gKyAgICAgICAvKgo+ICsg ICAgICAgKiBGb3IgemVyb2luZyBzbWFsbCBhbW91bnRzIG9mIG1lbW9yeSwgaXQncyBub3Qgd29y dGggc2V0dGluZyB1cAo+ICsgICAgICAgKiB0aGUgbGluZS1jbGVhciBjb2RlLgo+ICsgICAgICAg Ki8KPiArICAgICAgIGNtcCAgICAgY291bnQsICMxMjgKPiArICAgICAgIGIubHQgICAgLkxub3Rf c2hvcnQgLypjb3VudCBpcyBhdCBsZWFzdCAgMTI4IGJ5dGVzKi8KPiArCj4gKyAgICAgICBtcnMg ICAgIHRtcDEsIGRjemlkX2VsMAo+ICsgICAgICAgdGJueiAgICB0bXAxLCAjNCwgLkxub3Rfc2hv cnQKPiArICAgICAgIG1vdiAgICAgdG1wM3csICM0Cj4gKyAgICAgICBhbmQgICAgIHp2YV9sZW4s IHRtcDF3LCAjMTUgICAgIC8qIFNhZmV0eTogb3RoZXIgYml0cyByZXNlcnZlZC4gICovCj4gKyAg ICAgICBsc2wgICAgIHp2YV9sZW4sIHRtcDN3LCB6dmFfbGVuCj4gKwo+ICsgICAgICAgYW5kcyAg ICB0bXAzdywgenZhX2xlbiwgIzYzCj4gKyAgICAgICAvKgo+ICsgICAgICAgKiBlbnN1cmUgdGhl IHp2YV9sZW4gaXMgbm90IGxlc3MgdGhhbiA2NC4KPiArICAgICAgICogSXQgaXMgbm90IG1lYW5p bmdmdWwgdG8gdXNlIFpWQSBpZiB0aGUgYmxvY2sgc2l6ZSBpcyBsZXNzIHRoYW4gNjQuCj4gKyAg ICAgICAqLwo+ICsgICAgICAgYi5uZSAgICAuTG5vdF9zaG9ydAo+ICsuTHplcm9fYnlfbGluZToK PiArICAgICAgIC8qCj4gKyAgICAgICAqIENvbXB1dGUgaG93IGZhciB3ZSBuZWVkIHRvIGdvIHRv IGJlY29tZSBzdWl0YWJseSBhbGlnbmVkLiBXZSdyZQo+ICsgICAgICAgKiBhbHJlYWR5IGF0IHF1 YWQtd29yZCBhbGlnbm1lbnQuCj4gKyAgICAgICAqLwo+ICsgICAgICAgY21wICAgICBjb3VudCwg enZhX2xlbl94Cj4gKyAgICAgICBiLmx0ICAgIC5Mbm90X3Nob3J0ICAgICAgICAgICAgIC8qIE5v dCBlbm91Z2ggdG8gcmVhY2ggYWxpZ25tZW50LiAgKi8KPiArICAgICAgIHN1YiAgICAgenZhX2Jp dHNfeCwgenZhX2xlbl94LCAjMQo+ICsgICAgICAgbmVnICAgICB0bXAyLCBkc3QKPiArICAgICAg IGFuZHMgICAgdG1wMiwgdG1wMiwgenZhX2JpdHNfeAo+ICsgICAgICAgYi5lcSAgICAyZiAgICAg ICAgICAgICAgICAgICAgICAvKiBBbHJlYWR5IGFsaWduZWQuICAqLwo+ICsgICAgICAgLyogTm90 IGFsaWduZWQsIGNoZWNrIHRoYXQgdGhlcmUncyBlbm91Z2ggdG8gY29weSBhZnRlciBhbGlnbm1l bnQuKi8KPiArICAgICAgIHN1YiAgICAgdG1wMSwgY291bnQsIHRtcDIKPiArICAgICAgIC8qCj4g KyAgICAgICAqIGdyYW50ZWUgdGhlIHJlbWFpbiBsZW5ndGggdG8gYmUgWlZBIGlzIGJpZ2dlciB0 aGFuIDY0LAo+ICsgICAgICAgKiBhdm9pZCB0byBtYWtlIHRoZSAyZidzIHByb2Nlc3Mgb3ZlciBt ZW0gcmFuZ2UuKi8KPiArICAgICAgIGNtcCAgICAgdG1wMSwgIzY0Cj4gKyAgICAgICBjY21wICAg IHRtcDEsIHp2YV9sZW5feCwgIzgsIGdlIC8qIE5aQ1Y9MGIxMDAwICovCj4gKyAgICAgICBiLmx0 ICAgIC5Mbm90X3Nob3J0Cj4gKyAgICAgICAvKgo+ICsgICAgICAgKiBXZSBrbm93IHRoYXQgdGhl cmUncyBhdCBsZWFzdCA2NCBieXRlcyB0byB6ZXJvIGFuZCB0aGF0IGl0J3Mgc2FmZQo+ICsgICAg ICAgKiB0byBvdmVycnVuIGJ5IDY0IGJ5dGVzLgo+ICsgICAgICAgKi8KPiArICAgICAgIG1vdiAg ICAgY291bnQsIHRtcDEKPiArMToKPiArICAgICAgIHN0cCAgICAgQV9sLCBBX2wsIFtkc3RdCj4g KyAgICAgICBzdHAgICAgIEFfbCwgQV9sLCBbZHN0LCAjMTZdCj4gKyAgICAgICBzdHAgICAgIEFf bCwgQV9sLCBbZHN0LCAjMzJdCj4gKyAgICAgICBzdWJzICAgIHRtcDIsIHRtcDIsICM2NAo+ICsg ICAgICAgc3RwICAgICBBX2wsIEFfbCwgW2RzdCwgIzQ4XQo+ICsgICAgICAgYWRkICAgICBkc3Qs IGRzdCwgIzY0Cj4gKyAgICAgICBiLmdlICAgIDFiCj4gKyAgICAgICAvKiBXZSd2ZSBvdmVycnVu IGEgYml0LCBzbyBhZGp1c3QgZHN0IGRvd253YXJkcy4qLwo+ICsgICAgICAgYWRkICAgICBkc3Qs IGRzdCwgdG1wMgo+ICsyOgo+ICsgICAgICAgc3ViICAgICBjb3VudCwgY291bnQsIHp2YV9sZW5f eAo+ICszOgo+ICsgICAgICAgZGMgICAgICB6dmEsIGRzdAo+ICsgICAgICAgYWRkICAgICBkc3Qs IGRzdCwgenZhX2xlbl94Cj4gKyAgICAgICBzdWJzICAgIGNvdW50LCBjb3VudCwgenZhX2xlbl94 Cj4gKyAgICAgICBiLmdlICAgIDNiCj4gKyAgICAgICBhbmRzICAgIGNvdW50LCBjb3VudCwgenZh X2JpdHNfeAo+ICsgICAgICAgYi5uZSAgICAuTHRhaWxfbWF5YmVfbG9uZwo+ICsgICAgICAgcmV0 Cj4gIEVORFBST0MobWVtc2V0KQo+IC0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbGliL3J1bnRp bWUtb2Zmc2V0LlMgYi9hcmNoL2FybS9saWIvcnVudGltZS1vZmZzZXQuUwo+IGluZGV4IGYxMGM0 YzguLmUzNjhiYWEgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vbGliL3J1bnRpbWUtb2Zmc2V0LlMK PiArKysgYi9hcmNoL2FybS9saWIvcnVudGltZS1vZmZzZXQuUwo+IEBAIC04LDExICs4LDExIEBA Cj4gICAqIHdlIGFyZSBjdXJyZW50bHkgcnVubmluZyBhdC4KPiAgICovCj4gIEVOVFJZKGdldF9y dW50aW1lX29mZnNldCkKPiAtMTogICAgIGFkciByMCwgMWIKPiAtICAgICAgIGxkciByMSwgbGlu a2Fkcgo+IC0gICAgICAgc3VicyByMCwgcjEsIHIwCj4gLVRIVU1CKCBzdWJzIHIwLCByMCwgIzEp Cj4gLSAgICAgICBtb3YgcGMsIGxyCj4gKzE6ICAgICBhZHIgeDAsIDFiCj4gKyAgICAgICBhZHIg eDEsIGdldF9ydW50aW1lX29mZnNldAo+ICsgICAgICAgc3VicyB4MCwgeDEsIHgwCj4gKyAgICAg ICBzdWJzIHgwLCB4MCwgIzEKPiArICAgICAgIHJldAo+Cj4gIGxpbmthZHI6Cj4gIC53b3JkIGdl dF9ydW50aW1lX29mZnNldAo+IEBAIC0yOCw3ICsyOCw3IEBAIF9fbGRfdmFyX2Jhc2U6Cj4gICAq Lwo+ICAubWFjcm8gbGRfdmFyX2VudHJ5IG5hbWUKPiAgICAgICAgIEVOVFJZKF9fbGRfdmFyX1xu YW1lKQo+IC0gICAgICAgICAgICAgICBsZHIgcjAsIF9fXG5hbWUKPiArICAgICAgICAgICAgICAg bGRyIHgwLCBfX1xuYW1lCj4gICAgICAgICAgICAgICAgIGIgMWYKPiAgICAgICAgIF9fXG5hbWU6 IC53b3JkIFxuYW1lIC0gX19sZF92YXJfYmFzZQo+ICAgICAgICAgRU5EUFJPQyhfX2xkX3Zhcl9c bmFtZSkKPiBAQCAtNDcsNiArNDcsNiBAQCBsZF92YXJfZW50cnkgX19pbWFnZV9lbmQKPiAgI2Vu ZGlmCj4KPiAgMToKPiAtICAgICAgIGxkciByMSwgPV9fbGRfdmFyX2Jhc2UKPiAtICAgICAgIGFk ZHMgcjAsIHIwLCByMQo+IC0gICAgICAgbW92IHBjLCBscgo+ICsgICAgICAgbGRyIHgxLCA9X19s ZF92YXJfYmFzZQo+ICsgICAgICAgYWRkcyB4MCwgeDAsIHgxCj4gKyAgICAgICByZXQKPiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC12aXJ0L0tjb25maWcgYi9hcmNoL2FybS9tYWNoLXZpcnQv S2NvbmZpZwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uMWY0MzYwNgo+ IC0tLSAvZGV2L251bGwKPiArKysgYi9hcmNoL2FybS9tYWNoLXZpcnQvS2NvbmZpZwo+IEBAIC0w LDAgKzEsMTUgQEAKPiAraWYgQVJDSF9WSVJUCj4gKwo+ICtjb25maWcgQVJDSF9URVhUX0JBU0UK PiArICAgICAgIGhleAo+ICsgICAgICAgZGVmYXVsdCAweDQwMDAwMDAwCj4gKwo+ICtjaG9pY2UK PiArICAgICAgIHByb21wdCAiQVJNIEJvYXJkIHR5cGUiCj4gKwo+ICtjb25maWcgTUFDSF9WSVJU Cj4gKyAgICAgICBib29sICJBUk0gUUVNVSB2aXJ0Igo+ICsKPiArZW5kY2hvaWNlCj4gKwo+ICtl bmRpZgo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXZpcnQvTWFrZWZpbGUgYi9hcmNoL2Fy bS9tYWNoLXZpcnQvTWFrZWZpbGUKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAw MDAuLjM5MjRhMTAKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYXJjaC9hcm0vbWFjaC12aXJ0L01h a2VmaWxlCj4gQEAgLTAsMCArMSwzIEBACj4gK29iai15ICs9IGRldmljZXMubyByZXNldC5vCj4g Kwo+ICtsd2wteSArPSBsb3dsZXZlbC5vCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtdmly dC9kZXZpY2VzLmMgYi9hcmNoL2FybS9tYWNoLXZpcnQvZGV2aWNlcy5jCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi45OTlmNDYzCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L2FyY2gvYXJtL21hY2gtdmlydC9kZXZpY2VzLmMKPiBAQCAtMCwwICsxLDMwIEBACj4gKy8qCj4g KyAqIENvcHlyaWdodCAoQykgMjAxNiBSYXBoYcOrbCBQb2dnaSA8cG9nZ2kucmFwaEBnbWFpbC5j b20+Cj4gKyAqCj4gKyAqIEdQTHYyIG9ubHkKPiArICovCj4gKwo+ICsjaW5jbHVkZSA8Y29tbW9u Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9hbWJhL2J1cy5oPgo+ICsjaW5jbHVkZSA8YXNtL21lbW9y eS5oPgo+ICsjaW5jbHVkZSA8bWFjaC9kZXZpY2VzLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pb3Bv cnQuaD4KPiArCj4gK3ZvaWQgdmlydF9hZGRfZGRyYW0odTMyIHNpemUpCj4gK3sKPiArICAgICAg IGFybV9hZGRfbWVtX2RldmljZSgicmFtMCIsIDB4NDAwMDAwMDAsIHNpemUpOwo+ICt9Cj4gKwo+ ICt2b2lkIHZpcnRfcmVnaXN0ZXJfdWFydCh1bnNpZ25lZCBpZCkKPiArewo+ICsgICAgICAgcmVz b3VyY2Vfc2l6ZV90IHN0YXJ0Owo+ICsKPiArICAgICAgIHN3aXRjaCAoaWQpIHsKPiArICAgICAg IGNhc2UgMDoKPiArICAgICAgICAgICAgICAgc3RhcnQgPSAweDA5MDAwMDAwOwo+ICsgICAgICAg ICAgICAgICBicmVhazsKPiArICAgICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgICAgICAgIHJldHVy bjsKPiArICAgICAgIH0KPiArICAgICAgIGFtYmFfYXBiX2RldmljZV9hZGQoTlVMTCwgInVhcnQt cGwwMTEiLCBpZCwgc3RhcnQsIDQwOTYsIE5VTEwsIDApOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL21hY2gtdmlydC9pbmNsdWRlL21hY2gvZGVidWdfbGwuaCBiL2FyY2gvYXJtL21hY2gt dmlydC9pbmNsdWRlL21hY2gvZGVidWdfbGwuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMC4uODliMDY5Mgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9hcmNoL2FybS9tYWNo LXZpcnQvaW5jbHVkZS9tYWNoL2RlYnVnX2xsLmgKPiBAQCAtMCwwICsxLDI0IEBACj4gKy8qCj4g KyAqIENvcHlyaWdodCAyMDEzIEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFn bmlvbEBqY3Jvc29mdC5jb20+Cj4gKyAqCj4gKyAqIEdQTHYyIG9ubHkKPiArICovCj4gKwo+ICsj aWZuZGVmIF9fTUFDSF9ERUJVR19MTF9IX18KPiArI2RlZmluZSAgIF9fTUFDSF9ERUJVR19MTF9I X18KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9hbWJhL3NlcmlhbC5oPgo+ICsjaW5jbHVkZSA8aW8u aD4KPiArCj4gKyNkZWZpbmUgREVCVUdfTExfUEhZU19CQVNFICAgICAgICAgICAgIDB4MTAwMDAw MDAKPiArI2RlZmluZSBERUJVR19MTF9QSFlTX0JBU0VfUlMxICAgICAgICAgMHgxYzAwMDAwMAo+ ICsKPiArI2lmZGVmIE1QCj4gKyNkZWZpbmUgREVCVUdfTExfVUFSVF9BRERSIERFQlVHX0xMX1BI WVNfQkFTRQo+ICsjZWxzZQo+ICsjZGVmaW5lIERFQlVHX0xMX1VBUlRfQUREUiBERUJVR19MTF9Q SFlTX0JBU0VfUlMxCj4gKyNlbmRpZgo+ICsKPiArI2luY2x1ZGUgPGFzbS9kZWJ1Z19sbF9wbDAx MS5oPgo+ICsKPiArI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtdmlydC9pbmNs dWRlL21hY2gvZGV2aWNlcy5oIGIvYXJjaC9hcm0vbWFjaC12aXJ0L2luY2x1ZGUvbWFjaC9kZXZp Y2VzLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjk4NzJjNjEKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvYXJjaC9hcm0vbWFjaC12aXJ0L2luY2x1ZGUvbWFjaC9kZXZp Y2VzLmgKPiBAQCAtMCwwICsxLDEzIEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCAoQykgMjAxNiBS YXBoYcOrbCBQb2dnaSA8cG9nZ2kucmFwaEBnbWFpbC5jb20+Cj4gKyAqCj4gKyAqIEdQTHYyIG9u bHkKPiArICovCj4gKwo+ICsjaWZuZGVmIF9fQVNNX0FSQ0hfREVWSUNFU19IX18KPiArI2RlZmlu ZSBfX0FTTV9BUkNIX0RFVklDRVNfSF9fCj4gKwo+ICt2b2lkIHZpcnRfYWRkX2RkcmFtKHUzMiBz aXplKTsKPiArdm9pZCB2aXJ0X3JlZ2lzdGVyX3VhcnQodW5zaWduZWQgaWQpOwo+ICsKPiArI2Vu ZGlmIC8qIF9fQVNNX0FSQ0hfREVWSUNFU19IX18gKi8KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v bWFjaC12aXJ0L2xvd2xldmVsLmMgYi9hcmNoL2FybS9tYWNoLXZpcnQvbG93bGV2ZWwuYwo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uNmY2OTVhNQo+IC0tLSAvZGV2L251 bGwKPiArKysgYi9hcmNoL2FybS9tYWNoLXZpcnQvbG93bGV2ZWwuYwo+IEBAIC0wLDAgKzEsMTkg QEAKPiArLyoKPiArICogQ29weXJpZ2h0IChDKSAyMDEzIEplYW4tQ2hyaXN0b3BoZSBQTEFHTklP TC1WSUxMQVJEIDxwbGFnbmlvQGpjcm9zb2Z0LmNvbT4KPiArICoKPiArICogR1BMdjIgb25seQo+ ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxjb21tb24uaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NpemVz Lmg+Cj4gKyNpbmNsdWRlIDxhc20vYmFyZWJveC1hcm0taGVhZC5oPgo+ICsjaW5jbHVkZSA8YXNt L2JhcmVib3gtYXJtLmg+Cj4gKyNpbmNsdWRlIDxhc20vc3lzdGVtX2luZm8uaD4KPiArCj4gK3Zv aWQgYmFyZWJveF9hcm1fcmVzZXRfdmVjdG9yKHZvaWQpCj4gK3sKPiArICAgICAgIGFybV9jcHVf bG93bGV2ZWxfaW5pdCgpOwo+ICsgICAgICAgYXJtX3NldHVwX3N0YWNrKFNUQUNLX0JBU0UpOwo+ ICsKPiArICAgICAgIGJhcmVib3hfYXJtX2VudHJ5KDB4NDAwMDAwMDAsIFNaXzUxMk0sIE5VTEwp Owo+ICt9Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtdmlydC9yZXNldC5jIGIvYXJjaC9h cm0vbWFjaC12aXJ0L3Jlc2V0LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAw MDAuLmZiODk1ZWIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYXJjaC9hcm0vbWFjaC12aXJ0L3Jl c2V0LmMKPiBAQCAtMCwwICsxLDI0IEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCAoQykgMjAxNiBS YXBoYcOrbCBQb2dnaSA8cG9nZ2kucmFwaEBnbWFpbC5jb20+Cj4gKyAqCj4gKyAqIEdQTHYyIG9u bHkKPiArICovCj4gKwo+ICsjaW5jbHVkZSA8Y29tbW9uLmg+Cj4gKyNpbmNsdWRlIDxpby5oPgo+ ICsjaW5jbHVkZSA8aW5pdC5oPgo+ICsjaW5jbHVkZSA8cmVzdGFydC5oPgo+ICsjaW5jbHVkZSA8 bWFjaC9kZXZpY2VzLmg+Cj4gKwo+ICtzdGF0aWMgdm9pZCB2aXJ0X3Jlc2V0X3NvYyhzdHJ1Y3Qg cmVzdGFydF9oYW5kbGVyICpyc3QpCj4gK3sKPiArICAgICAgIGhhbmcoKTsKPiArfQo+ICsKPiAr c3RhdGljIGludCByZXN0YXJ0X3JlZ2lzdGVyX2ZlYXR1cmUodm9pZCkKPiArewo+ICsgICAgICAg cmVzdGFydF9oYW5kbGVyX3JlZ2lzdGVyX2ZuKHZpcnRfcmVzZXRfc29jKTsKPiArCj4gKyAgICAg ICByZXR1cm4gMDsKPiArfQo+ICtjb3JlZGV2aWNlX2luaXRjYWxsKHJlc3RhcnRfcmVnaXN0ZXJf ZmVhdHVyZSk7Cj4gLS0KPiAyLjguMC5yYzMKPgo+Cj4gLS0KPiBQZW5ndXRyb25peCBlLksuICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ IEluZHVzdHJpYWwgTGludXggU29sdXRpb25zICAgICAgICAgICAgICAgICB8IGh0dHA6Ly93d3cu cGVuZ3V0cm9uaXguZGUvICB8Cj4gUGVpbmVyIFN0ci4gNi04LCAzMTEzNyBIaWxkZXNoZWltLCBH ZXJtYW55IHwgUGhvbmU6ICs0OS01MTIxLTIwNjkxNy0wICAgIHwKPiBBbXRzZ2VyaWNodCBIaWxk ZXNoZWltLCBIUkEgMjY4NiAgICAgICAgICAgfCBGYXg6ICAgKzQ5LTUxMjEtMjA2OTE3LTU1NTUg fAo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBi YXJlYm94IG1haWxpbmcgbGlzdAo+IGJhcmVib3hAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IGh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vYmFyZWJveAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYmFyZWJveCBtYWlsaW5nIGxp c3QKYmFyZWJveEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vYmFyZWJveAo=