From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH v2 6/6] drm/i915: hide away VBT private data in a separate header Date: Thu, 14 Jan 2016 14:53:07 +0200 Message-ID: <1452775987.4104.30.camel@sorvi> References: Reply-To: mika.kahola@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 8C4AF6E9C1 for ; Thu, 14 Jan 2016 04:51:49 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE2LTAxLTExIGF0IDIxOjU0ICswMjAwLCBKYW5pIE5pa3VsYSB3cm90ZToKPiBX ZSd2ZSBiZWVuIGFjY3VtdWxhdGluZyBjb2RlIGFjcm9zcyB0aGUgZHJpdmVyIHRoYXQgZGVwZW5k cyBvbiB0aGUgVkJUCj4gc3BlY2lmaWMgc3RydWN0dXJlcyBhbmQgZGVmaW5lcy4gVGhlIFZCVCBp cyBhbiB1bmNvbnRyb2xsYWJsZQo+IGJlYXN0LiBFbmNvdXJhZ2UgZW5jYXBzdWxhdGlvbiBvZiB0 aGUgVkJUIGRhdGEgYnkgaGlkaW5nIHRoZSBzdHJ1Y3R1cmVzCj4gYW5kIGRlZmluZXMgaW4gYSBw cml2YXRlIGhlYWRlciBvbmx5IHRvIGJlIGluY2x1ZGVkIGZyb20gaW50ZWxfYmlvcy5jLgo+IApU ZXN0ZWQtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9m Zi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiAtLS0KPiAgRG9jdW1l bnRhdGlvbi9Eb2NCb29rL2dwdS50bXBsICAgICAgICAgICAgfCAgIDIgKy0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jICAgICAgICAgfCAgIDIgKy0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYmlvcy5oICAgICAgICAgfCA4NjAgKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3NfcHJpdmF0ZS5oIHwg ODIzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCA4NTkg aW5zZXJ0aW9ucygrKSwgODI4IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvc19wcml2YXRlLmgKPiAKPiBkaWZmIC0tZ2l0IGEv RG9jdW1lbnRhdGlvbi9Eb2NCb29rL2dwdS50bXBsIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2dw dS50bXBsCj4gaW5kZXggMzUxZTgwMWNlYWQ5Li40YmE3YzZmOGU4YjEgMTAwNjQ0Cj4gLS0tIGEv RG9jdW1lbnRhdGlvbi9Eb2NCb29rL2dwdS50bXBsCj4gKysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NC b29rL2dwdS50bXBsCj4gQEAgLTMzMjMsNyArMzMyMyw3IEBAIGludCBudW1faW9jdGxzOzwvc3lu b3BzaXM+Cj4gIAk8dGl0bGU+VmlkZW8gQklPUyBUYWJsZSAoVkJUKTwvdGl0bGU+Cj4gICFQZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jIFZpZGVvIEJJT1MgVGFibGUgKFZCVCkKPiAg IUlkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKPiAtIUlkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9iaW9zLmgKPiArIUlkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zX3By aXZhdGUuaAo+ICAgICAgICA8L3NlY3QyPgo+ICAgICAgPC9zZWN0MT4KPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Jpb3MuYwo+IGluZGV4IDk0YzJiYWE1MGRiNy4uODNiNzhlMGRmMzA2IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwo+IEBAIC0yOSw3ICsyOSw3IEBACj4gICNpbmNs dWRlIDxkcm0vZHJtUC5oPgo+ICAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+Cj4gICNpbmNsdWRl ICJpOTE1X2Rydi5oIgo+IC0jaW5jbHVkZSAiaW50ZWxfYmlvcy5oIgo+ICsjaW5jbHVkZSAiaW50 ZWxfYmlvc19wcml2YXRlLmgiCj4gIAo+ICAvKioKPiAgICogRE9DOiBWaWRlbyBCSU9TIFRhYmxl IChWQlQpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaAo+IGluZGV4IDM1MGQ0ZTBmNzVhNC4u NTM2ZDkwZjBjM2ViIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jp b3MuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaAo+IEBAIC0xLDUg KzEsNSBAQAo+ICAvKgo+IC0gKiBDb3B5cmlnaHQgwqkgMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbgo+ ICsgKiBDb3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgo+ICAgKgo+ICAgKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv YnRhaW5pbmcgYQo+ICAgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+IEBAIC0xOSw1NDMgKzE5LDE1IEBA Cj4gICAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCj4gICAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCj4g ICAqIFNPRlRXQVJFLgo+IC0gKgo+IC0gKiBBdXRob3JzOgo+IC0gKiAgICBFcmljIEFuaG9sdCA8 ZXJpY0BhbmhvbHQubmV0Pgo+IC0gKgo+IC0gKi8KPiAtCj4gLSNpZm5kZWYgX0lOVEVMX0JJT1Nf SF8KPiAtI2RlZmluZSBfSU5URUxfQklPU19IXwo+IC0KPiAtLyoqCj4gLSAqIHN0cnVjdCB2YnRf aGVhZGVyIC0gVkJUIEhlYWRlciBzdHJ1Y3R1cmUKPiAtICogQHNpZ25hdHVyZToJCVZCVCBzaWdu YXR1cmUsIGFsd2F5cyBzdGFydHMgd2l0aCAiJFZCVCIKPiAtICogQHZlcnNpb246CQlWZXJzaW9u IG9mIHRoaXMgc3RydWN0dXJlCj4gLSAqIEBoZWFkZXJfc2l6ZToJU2l6ZSBvZiB0aGlzIHN0cnVj dHVyZQo+IC0gKiBAdmJ0X3NpemU6CQlTaXplIG9mIFZCVCAoVkJUIEhlYWRlciwgQkRCIEhlYWRl ciBhbmQgZGF0YSBibG9ja3MpCj4gLSAqIEB2YnRfY2hlY2tzdW06CUNoZWNrc3VtCj4gLSAqIEBy ZXNlcnZlZDA6CQlSZXNlcnZlZAo+IC0gKiBAYmRiX29mZnNldDoJCU9mZnNldCBvZiAmc3RydWN0 IGJkYl9oZWFkZXIgZnJvbSBiZWdpbm5pbmcgb2YgVkJUCj4gLSAqIEBhaW1fb2Zmc2V0OgkJT2Zm c2V0cyBvZiBhZGQtaW4gZGF0YSBibG9ja3MgZnJvbSBiZWdpbm5pbmcgb2YgVkJUCj4gLSAqLwo+ IC1zdHJ1Y3QgdmJ0X2hlYWRlciB7Cj4gLQl1OCBzaWduYXR1cmVbMjBdOwo+IC0JdTE2IHZlcnNp b247Cj4gLQl1MTYgaGVhZGVyX3NpemU7Cj4gLQl1MTYgdmJ0X3NpemU7Cj4gLQl1OCB2YnRfY2hl Y2tzdW07Cj4gLQl1OCByZXNlcnZlZDA7Cj4gLQl1MzIgYmRiX29mZnNldDsKPiAtCXUzMiBhaW1f b2Zmc2V0WzRdOwo+IC19IF9fcGFja2VkOwo+IC0KPiAtLyoqCj4gLSAqIHN0cnVjdCBiZGJfaGVh ZGVyIC0gQkRCIEhlYWRlciBzdHJ1Y3R1cmUKPiAtICogQHNpZ25hdHVyZToJCUJEQiBzaWduYXR1 cmUgIkJJT1NfREFUQV9CTE9DSyIKPiAtICogQHZlcnNpb246CQlWZXJzaW9uIG9mIHRoZSBkYXRh IGJsb2NrIGRlZmluaXRpb25zCj4gLSAqIEBoZWFkZXJfc2l6ZToJU2l6ZSBvZiB0aGlzIHN0cnVj dHVyZQo+IC0gKiBAYmRiX3NpemU6CQlTaXplIG9mIEJEQiAoQkRCIEhlYWRlciBhbmQgZGF0YSBi bG9ja3MpCj4gLSAqLwo+IC1zdHJ1Y3QgYmRiX2hlYWRlciB7Cj4gLQl1OCBzaWduYXR1cmVbMTZd Owo+IC0JdTE2IHZlcnNpb247Cj4gLQl1MTYgaGVhZGVyX3NpemU7Cj4gLQl1MTYgYmRiX3NpemU7 Cj4gLX0gX19wYWNrZWQ7Cj4gLQo+IC0vKiBzdHJpY3RseSBzcGVha2luZywgdGhpcyBpcyBhICJz a2lwIiBibG9jaywgYnV0IGl0IGhhcyBpbnRlcmVzdGluZyBpbmZvICovCj4gLXN0cnVjdCB2Ymlv c19kYXRhIHsKPiAtCXU4IHR5cGU7IC8qIDAgPT0gZGVza3RvcCwgMSA9PSBtb2JpbGUgKi8KPiAt CXU4IHJlbHN0YWdlOwo+IC0JdTggY2hpcHNldDsKPiAtCXU4IGx2ZHNfcHJlc2VudDoxOwo+IC0J dTggdHZfcHJlc2VudDoxOwo+IC0JdTggcnN2ZDI6NjsgLyogZmluaXNoIGJ5dGUgKi8KPiAtCXU4 IHJzdmQzWzRdOwo+IC0JdTggc2lnbm9uWzE1NV07Cj4gLQl1OCBjb3B5cmlnaHRbNjFdOwo+IC0J dTE2IGNvZGVfc2VnbWVudDsKPiAtCXU4IGRvc19ib290X21vZGU7Cj4gLQl1OCBiYW5kd2lkdGhf cGVyY2VudDsKPiAtCXU4IHJzdmQ0OyAvKiBwb3B1cCBtZW1vcnkgc2l6ZSAqLwo+IC0JdTggcmVz aXplX3BjaV9iaW9zOwo+IC0JdTggcnN2ZDU7IC8qIGlzIGNydCBhbHJlYWR5IG9uIGRkYzIgKi8K PiAtfSBfX3BhY2tlZDsKPiAtCj4gLS8qCj4gLSAqIFRoZXJlIGFyZSBzZXZlcmFsIHR5cGVzIG9m IEJJT1MgZGF0YSBibG9ja3MgKEJEQnMpLCBlYWNoIGJsb2NrIGhhcwo+IC0gKiBhbiBJRCBhbmQg c2l6ZSBpbiB0aGUgZmlyc3QgMyBieXRlcyAoSUQgaW4gZmlyc3QsIHNpemUgaW4gbmV4dCAyKS4K PiAtICogS25vd24gdHlwZXMgYXJlIGxpc3RlZCBiZWxvdy4KPiAgICovCj4gLSNkZWZpbmUgQkRC X0dFTkVSQUxfRkVBVFVSRVMJICAxCj4gLSNkZWZpbmUgQkRCX0dFTkVSQUxfREVGSU5JVElPTlMJ ICAyCj4gLSNkZWZpbmUgQkRCX09MRF9UT0dHTEVfTElTVAkgIDMKPiAtI2RlZmluZSBCREJfTU9E RV9TVVBQT1JUX0xJU1QJICA0Cj4gLSNkZWZpbmUgQkRCX0dFTkVSSUNfTU9ERV9UQUJMRQkgIDUK PiAtI2RlZmluZSBCREJfRVhUX01NSU9fUkVHUwkgIDYKPiAtI2RlZmluZSBCREJfU1dGX0lPCQkg IDcKPiAtI2RlZmluZSBCREJfU1dGX01NSU8JCSAgOAo+IC0jZGVmaW5lIEJEQl9QU1IJCQkgIDkK PiAtI2RlZmluZSBCREJfTU9ERV9SRU1PVkFMX1RBQkxFCSAxMAo+IC0jZGVmaW5lIEJEQl9DSElM RF9ERVZJQ0VfVEFCTEUJIDExCj4gLSNkZWZpbmUgQkRCX0RSSVZFUl9GRUFUVVJFUwkgMTIKPiAt I2RlZmluZSBCREJfRFJJVkVSX1BFUlNJU1RFTkNFCSAxMwo+IC0jZGVmaW5lIEJEQl9FWFRfVEFC TEVfUFRSUwkgMTQKPiAtI2RlZmluZSBCREJfRE9UX0NMT0NLX09WRVJSSURFCSAxNQo+IC0jZGVm aW5lIEJEQl9ESVNQTEFZX1NFTEVDVAkgMTYKPiAtLyogMTcgcnN2ZCAqLwo+IC0jZGVmaW5lIEJE Ql9EUklWRVJfUk9UQVRJT04JIDE4Cj4gLSNkZWZpbmUgQkRCX0RJU1BMQVlfUkVNT1ZFCSAxOQo+ IC0jZGVmaW5lIEJEQl9PRU1fQ1VTVE9NCQkgMjAKPiAtI2RlZmluZSBCREJfRUZQX0xJU1QJCSAy MSAvKiB3b3JrYXJvdW5kcyBmb3IgVkdBIGhzeW5jL3ZzeW5jICovCj4gLSNkZWZpbmUgQkRCX1NE Vk9fTFZEU19PUFRJT05TCSAyMgo+IC0jZGVmaW5lIEJEQl9TRFZPX1BBTkVMX0RURFMJIDIzCj4g LSNkZWZpbmUgQkRCX1NEVk9fTFZEU19QTlBfSURTCSAyNAo+IC0jZGVmaW5lIEJEQl9TRFZPX0xW RFNfUE9XRVJfU0VRCSAyNQo+IC0jZGVmaW5lIEJEQl9UVl9PUFRJT05TCQkgMjYKPiAtI2RlZmlu ZSBCREJfRURQCQkJIDI3Cj4gLSNkZWZpbmUgQkRCX0xWRFNfT1BUSU9OUwkgNDAKPiAtI2RlZmlu ZSBCREJfTFZEU19MRlBfREFUQV9QVFJTCSA0MQo+IC0jZGVmaW5lIEJEQl9MVkRTX0xGUF9EQVRB CSA0Mgo+IC0jZGVmaW5lIEJEQl9MVkRTX0JBQ0tMSUdIVAkgNDMKPiAtI2RlZmluZSBCREJfTFZE U19QT1dFUgkJIDQ0Cj4gLSNkZWZpbmUgQkRCX01JUElfQ09ORklHCQkgNTIKPiAtI2RlZmluZSBC REJfTUlQSV9TRVFVRU5DRQkgNTMKPiAtI2RlZmluZSBCREJfU0tJUAkJMjU0IC8qIFZCSU9TIHBy aXZhdGUgYmxvY2ssIGlnbm9yZSAqLwo+IC0KPiAtc3RydWN0IGJkYl9nZW5lcmFsX2ZlYXR1cmVz IHsKPiAtICAgICAgICAvKiBiaXRzIDEgKi8KPiAtCXU4IHBhbmVsX2ZpdHRpbmc6MjsKPiAtCXU4 IGZsZXhhaW06MTsKPiAtCXU4IG1zZ19lbmFibGU6MTsKPiAtCXU4IGNsZWFyX3NjcmVlbjozOwo+ IC0JdTggY29sb3JfZmxpcDoxOwo+IC0KPiAtICAgICAgICAvKiBiaXRzIDIgKi8KPiAtCXU4IGRv d25sb2FkX2V4dF92YnQ6MTsKPiAtCXU4IGVuYWJsZV9zc2M6MTsKPiAtCXU4IHNzY19mcmVxOjE7 Cj4gLQl1OCBlbmFibGVfbGZwX29uX292ZXJyaWRlOjE7Cj4gLQl1OCBkaXNhYmxlX3NzY19kZHQ6 MTsKPiAtCXU4IHJzdmQ3OjE7Cj4gLQl1OCBkaXNwbGF5X2Nsb2NrX21vZGU6MTsKPiAtCXU4IHJz dmQ4OjE7IC8qIGZpbmlzaCBieXRlICovCj4gLQo+IC0gICAgICAgIC8qIGJpdHMgMyAqLwo+IC0J dTggZGlzYWJsZV9zbW9vdGhfdmlzaW9uOjE7Cj4gLQl1OCBzaW5nbGVfZHZpOjE7Cj4gLQl1OCBy c3ZkOToxOwo+IC0JdTggZmRpX3J4X3BvbGFyaXR5X2ludmVydGVkOjE7Cj4gLQl1OCByc3ZkMTA6 NDsgLyogZmluaXNoIGJ5dGUgKi8KPiAtCj4gLSAgICAgICAgLyogYml0cyA0ICovCj4gLQl1OCBs ZWdhY3lfbW9uaXRvcl9kZXRlY3Q7Cj4gLQo+IC0gICAgICAgIC8qIGJpdHMgNSAqLwo+IC0JdTgg aW50X2NydF9zdXBwb3J0OjE7Cj4gLQl1OCBpbnRfdHZfc3VwcG9ydDoxOwo+IC0JdTggaW50X2Vm cF9zdXBwb3J0OjE7Cj4gLQl1OCBkcF9zc2NfZW5iOjE7CS8qIFBDSCBhdHRhY2hlZCBlRFAgc3Vw cG9ydHMgU1NDICovCj4gLQl1OCBkcF9zc2NfZnJlcToxOwkvKiBTU0MgZnJlcSBmb3IgUENIIGF0 dGFjaGVkIGVEUCAqLwo+IC0JdTggcnN2ZDExOjM7IC8qIGZpbmlzaCBieXRlICovCj4gLX0gX19w YWNrZWQ7Cj4gLQo+IC0vKiBwcmUtOTE1ICovCj4gLSNkZWZpbmUgR1BJT19QSU5fRFZJX0xWRFMJ MHgwMyAvKiAiRFZJL0xWRFMgRERDIEdQSU8gcGlucyIgKi8KPiAtI2RlZmluZSBHUElPX1BJTl9B RERfSTJDCTB4MDUgLyogIkFERENBUkQgSTJDIEdQSU8gcGlucyIgKi8KPiAtI2RlZmluZSBHUElP X1BJTl9BRERfRERDCTB4MDQgLyogIkFERENBUkQgRERDIEdQSU8gcGlucyIgKi8KPiAtI2RlZmlu ZSBHUElPX1BJTl9BRERfRERDX0kyQwkweDA2IC8qICJBRERDQVJEIEREQy9JMkMgR1BJTyBwaW5z IiAqLwo+IC0KPiAtLyogUHJlIDkxNSAqLwo+IC0jZGVmaW5lIERFVklDRV9UWVBFX05PTkUJMHgw MAo+IC0jZGVmaW5lIERFVklDRV9UWVBFX0NSVAkJMHgwMQo+IC0jZGVmaW5lIERFVklDRV9UWVBF X1RWCQkweDA5Cj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfRUZQCQkweDEyCj4gLSNkZWZpbmUgREVW SUNFX1RZUEVfTEZQCQkweDIyCj4gLS8qIE9uIDkxNSsgKi8KPiAtI2RlZmluZSBERVZJQ0VfVFlQ RV9DUlRfRFBNUwkJMHg2MDAxCj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfQ1JUX0RQTVNfSE9UUExV RwkweDQwMDEKPiAtI2RlZmluZSBERVZJQ0VfVFlQRV9UVl9DT01QT1NJVEUJMHgwMjA5Cj4gLSNk ZWZpbmUgREVWSUNFX1RZUEVfVFZfTUFDUk9WSVNJT04JMHgwMjg5Cj4gLSNkZWZpbmUgREVWSUNF X1RZUEVfVFZfUkZfQ09NUE9TSVRFCTB4MDIwYwo+IC0jZGVmaW5lIERFVklDRV9UWVBFX1RWX1NW SURFT19DT01QT1NJVEUJMHgwNjA5Cj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfVFZfU0NBUlQJCTB4 MDIwOQo+IC0jZGVmaW5lIERFVklDRV9UWVBFX1RWX0NPREVDX0hPVFBMVUdfUFdSIDB4NjAwOQo+ IC0jZGVmaW5lIERFVklDRV9UWVBFX0VGUF9IT1RQTFVHX1BXUgkweDYwMTIKPiAtI2RlZmluZSBE RVZJQ0VfVFlQRV9FRlBfRFZJX0hPVFBMVUdfUFdSCTB4NjA1Mgo+IC0jZGVmaW5lIERFVklDRV9U WVBFX0VGUF9EVklfSQkJMHg2MDUzCj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfRUZQX0RWSV9EX0RV QUwJMHg2MTUyCj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfRUZQX0RWSV9EX0hEQ1AJMHg2MGQyCj4g LSNkZWZpbmUgREVWSUNFX1RZUEVfT1BFTkxESV9IT1RQTFVHX1BXUgkweDYwNjIKPiAtI2RlZmlu ZSBERVZJQ0VfVFlQRV9PUEVOTERJX0RVQUxQSVgJMHg2MTYyCj4gLSNkZWZpbmUgREVWSUNFX1RZ UEVfTEZQX1BBTkVMTElOSwkweDUwMTIKPiAtI2RlZmluZSBERVZJQ0VfVFlQRV9MRlBfQ01PU19Q V1IJMHg1MDQyCj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfTEZQX0xWRFNfUFdSCTB4NTA2Mgo+IC0j ZGVmaW5lIERFVklDRV9UWVBFX0xGUF9MVkRTX0RVQUwJMHg1MTYyCj4gLSNkZWZpbmUgREVWSUNF X1RZUEVfTEZQX0xWRFNfRFVBTF9IRENQCTB4NTFlMgo+IC0KPiAtI2RlZmluZSBERVZJQ0VfQ0ZH X05PTkUJCTB4MDAKPiAtI2RlZmluZSBERVZJQ0VfQ0ZHXzEyQklUX0RWT0IJMHgwMQo+IC0jZGVm aW5lIERFVklDRV9DRkdfMTJCSVRfRFZPQwkweDAyCj4gLSNkZWZpbmUgREVWSUNFX0NGR18yNEJJ VF9EVk9CQwkweDA5Cj4gLSNkZWZpbmUgREVWSUNFX0NGR18yNEJJVF9EVk9DQgkweDBhCj4gLSNk ZWZpbmUgREVWSUNFX0NGR19EVUFMX0RWT0IJMHgxMQo+IC0jZGVmaW5lIERFVklDRV9DRkdfRFVB TF9EVk9DCTB4MTIKPiAtI2RlZmluZSBERVZJQ0VfQ0ZHX0RVQUxfRFZPQkMJMHgxMwo+IC0jZGVm aW5lIERFVklDRV9DRkdfRFVBTF9MSU5LX0RWT0JDCTB4MTkKPiAtI2RlZmluZSBERVZJQ0VfQ0ZH X0RVQUxfTElOS19EVk9DQgkweDFhCj4gLQo+IC0jZGVmaW5lIERFVklDRV9XSVJFX05PTkUJMHgw MAo+IC0jZGVmaW5lIERFVklDRV9XSVJFX0RWT0IJMHgwMQo+IC0jZGVmaW5lIERFVklDRV9XSVJF X0RWT0MJMHgwMgo+IC0jZGVmaW5lIERFVklDRV9XSVJFX0RWT0JDCTB4MDMKPiAtI2RlZmluZSBE RVZJQ0VfV0lSRV9EVk9CQgkweDA1Cj4gLSNkZWZpbmUgREVWSUNFX1dJUkVfRFZPQ0MJMHgwNgo+ IC0jZGVmaW5lIERFVklDRV9XSVJFX0RWT0JfTUFTVEVSIDB4MGQKPiAtI2RlZmluZSBERVZJQ0Vf V0lSRV9EVk9DX01BU1RFUiAweDBlCj4gLQo+IC0jZGVmaW5lIERFVklDRV9QT1JUX0RWT0EJMHgw MCAvKiBub25lIG9uIDg0NSsgKi8KPiAtI2RlZmluZSBERVZJQ0VfUE9SVF9EVk9CCTB4MDEKPiAt I2RlZmluZSBERVZJQ0VfUE9SVF9EVk9DCTB4MDIKPiAgCj4gIC8qCj4gLSAqIFdlIHVzZWQgdG8g a2VlcCB0aGlzIHN0cnVjdCBidXQgd2l0aG91dCBhbnkgdmVyc2lvbiBjb250cm9sLiBXZSBzaG91 bGQgYXZvaWQKPiAtICogdXNpbmcgaXQgaW4gdGhlIGZ1dHVyZSwgYnV0IGl0IHNob3VsZCBiZSBz YWZlIHRvIGtlZXAgdXNpbmcgaXQgaW4gdGhlIG9sZAo+IC0gKiBjb2RlLiBEbyBub3QgY2hhbmdl OyB3ZSByZWx5IG9uIGl0cyBzaXplLgo+ICsgKiBQbGVhc2UgdXNlIGludGVsX2Jpb3NfcHJpdmF0 ZS5oIGZvciBWQlQgcHJpdmF0ZSBkYXRhLCBhbmQgYWRkIHRoZSBwYXJzZWQgZGF0YQo+ICsgKiB0 byBzdHJ1Y3QgaW50ZWxfdmJ0X2RhdGEuCj4gICAqLwo+IC1zdHJ1Y3Qgb2xkX2NoaWxkX2Rldl9j b25maWcgewo+IC0JdTE2IGhhbmRsZTsKPiAtCXUxNiBkZXZpY2VfdHlwZTsKPiAtCXU4ICBkZXZp Y2VfaWRbMTBdOyAvKiBhc2NpaSBzdHJpbmcgKi8KPiAtCXUxNiBhZGRpbl9vZmZzZXQ7Cj4gLQl1 OCAgZHZvX3BvcnQ7IC8qIFNlZSBEZXZpY2VfUE9SVF8qIGFib3ZlICovCj4gLQl1OCAgaTJjX3Bp bjsKPiAtCXU4ICBzbGF2ZV9hZGRyOwo+IC0JdTggIGRkY19waW47Cj4gLQl1MTYgZWRpZF9wdHI7 Cj4gLQl1OCAgZHZvX2NmZzsgLyogU2VlIERFVklDRV9DRkdfKiBhYm92ZSAqLwo+IC0JdTggIGR2 bzJfcG9ydDsKPiAtCXU4ICBpMmMyX3BpbjsKPiAtCXU4ICBzbGF2ZTJfYWRkcjsKPiAtCXU4ICBk ZGMyX3BpbjsKPiAtCXU4ICBjYXBhYmlsaXRpZXM7Cj4gLQl1OCAgZHZvX3dpcmluZzsvKiBTZWUg REVWSUNFX1dJUkVfKiBhYm92ZSAqLwo+IC0JdTggIGR2bzJfd2lyaW5nOwo+IC0JdTE2IGV4dGVu ZGVkX3R5cGU7Cj4gLQl1OCAgZHZvX2Z1bmN0aW9uOwo+IC19IF9fcGFja2VkOwo+IC0KPiAtLyog VGhpcyBvbmUgY29udGFpbnMgZmllbGQgb2Zmc2V0cyB0aGF0IGFyZSBrbm93biB0byBiZSBjb21t b24gZm9yIGFsbCBCREIKPiAtICogdmVyc2lvbnMuIE5vdGljZSB0aGF0IHRoZSBtZWFuaW5nIG9m IHRoZSBjb250ZW50cyBjb250ZW50cyBtYXkgc3RpbGwgY2hhbmdlLAo+IC0gKiBidXQgYXQgbGVh c3QgdGhlIG9mZnNldHMgYXJlIGNvbnNpc3RlbnQuICovCj4gLQo+IC0vKiBEZWZpbml0aW9ucyBm b3IgZmxhZ3NfMSAqLwo+IC0jZGVmaW5lIElCT09TVF9FTkFCTEUgKDE8PDMpCj4gLQo+IC1zdHJ1 Y3QgY29tbW9uX2NoaWxkX2Rldl9jb25maWcgewo+IC0JdTE2IGhhbmRsZTsKPiAtCXUxNiBkZXZp Y2VfdHlwZTsKPiAtCXU4IG5vdF9jb21tb24xWzEyXTsKPiAtCXU4IGR2b19wb3J0Owo+IC0JdTgg bm90X2NvbW1vbjJbMl07Cj4gLQl1OCBkZGNfcGluOwo+IC0JdTE2IGVkaWRfcHRyOwo+IC0JdTgg b2Jzb2xldGU7Cj4gLQl1OCBmbGFnc18xOwo+IC0JdTggbm90X2NvbW1vbjNbMTNdOwo+IC0JdTgg aWJvb3N0X2xldmVsOwo+IC19IF9fcGFja2VkOwo+IC0KPiAtCj4gLS8qIFRoaXMgZmllbGQgY2hh bmdlcyBkZXBlbmRpbmcgb24gdGhlIEJEQiB2ZXJzaW9uLCBzbyB0aGUgbW9zdCByZWxpYWJsZSB3 YXkgdG8KPiAtICogcmVhZCBpdCBpcyBieSBjaGVja2luZyB0aGUgQkRCIHZlcnNpb24gYW5kIHJl YWRpbmcgdGhlIHJhdyBwb2ludGVyLiAqLwo+IC11bmlvbiBjaGlsZF9kZXZpY2VfY29uZmlnIHsK PiAtCS8qIFRoaXMgb25lIGlzIHNhZmUgdG8gYmUgdXNlZCBhbnl3aGVyZSwgYnV0IHRoZSBjb2Rl IHNob3VsZCBzdGlsbCBjaGVjawo+IC0JICogdGhlIEJEQiB2ZXJzaW9uLiAqLwo+IC0JdTggcmF3 WzMzXTsKPiAtCS8qIFRoaXMgb25lIHNob3VsZCBvbmx5IGJlIGtlcHQgZm9yIGxlZ2FjeSBjb2Rl LiAqLwo+IC0Jc3RydWN0IG9sZF9jaGlsZF9kZXZfY29uZmlnIG9sZDsKPiAtCS8qIFRoaXMgb25l IHNob3VsZCBhbHNvIGJlIHNhZmUgdG8gdXNlIGFueXdoZXJlLCBldmVuIHdpdGhvdXQgdmVyc2lv bgo+IC0JICogY2hlY2tzLiAqLwo+IC0Jc3RydWN0IGNvbW1vbl9jaGlsZF9kZXZfY29uZmlnIGNv bW1vbjsKPiAtfSBfX3BhY2tlZDsKPiAtCj4gLXN0cnVjdCBiZGJfZ2VuZXJhbF9kZWZpbml0aW9u cyB7Cj4gLQkvKiBEREMgR1BJTyAqLwo+IC0JdTggY3J0X2RkY19nbWJ1c19waW47Cj4gLQo+IC0J LyogRFBNUyBiaXRzICovCj4gLQl1OCBkcG1zX2FjcGk6MTsKPiAtCXU4IHNraXBfYm9vdF9jcnRf ZGV0ZWN0OjE7Cj4gLQl1OCBkcG1zX2FpbToxOwo+IC0JdTggcnN2ZDE6NTsgLyogZmluaXNoIGJ5 dGUgKi8KPiAtCj4gLQkvKiBib290IGRldmljZSBiaXRzICovCj4gLQl1OCBib290X2Rpc3BsYXlb Ml07Cj4gLQl1OCBjaGlsZF9kZXZfc2l6ZTsKPiAtCj4gLQkvKgo+IC0JICogRGV2aWNlIGluZm86 Cj4gLQkgKiBJZiBUViBpcyBwcmVzZW50LCBpdCdsbCBiZSBhdCBkZXZpY2VzWzBdLgo+IC0JICog TFZEUyB3aWxsIGJlIG5leHQsIGVpdGhlciBkZXZpY2VzWzBdIG9yIFsxXSwgaWYgcHJlc2VudC4K PiAtCSAqIE9uIHNvbWUgcGxhdGZvcm1zIHRoZSBudW1iZXIgb2YgZGV2aWNlIGlzIDYuIEJ1dCBj b3VsZCBiZSBhcyBmZXcgYXMKPiAtCSAqIDQgaWYgYm90aCBUViBhbmQgTFZEUyBhcmUgbWlzc2lu Zy4KPiAtCSAqIEFuZCB0aGUgZGV2aWNlIG51bSBpcyByZWxhdGVkIHdpdGggdGhlIHNpemUgb2Yg Z2VuZXJhbCBkZWZpbml0aW9uCj4gLQkgKiBibG9jay4gSXQgaXMgb2J0YWluZWQgYnkgdXNpbmcg dGhlIGZvbGxvd2luZyBmb3JtdWxhOgo+IC0JICogbnVtYmVyID0gKGJsb2NrX3NpemUgLSBzaXpl b2YoYmRiX2dlbmVyYWxfZGVmaW5pdGlvbnMpKS8KPiAtCSAqCSAgICAgZGVmcy0+Y2hpbGRfZGV2 X3NpemU7Cj4gLQkgKi8KPiAtCXVpbnQ4X3QgZGV2aWNlc1swXTsKPiAtfSBfX3BhY2tlZDsKPiAt Cj4gLS8qIE1hc2sgZm9yIERSUlMgLyBQYW5lbCBDaGFubmVsIC8gU1NDIC8gQkxUIGNvbnRyb2wg Yml0cyBleHRyYWN0aW9uICovCj4gLSNkZWZpbmUgTU9ERV9NQVNLCQkweDMKPiAtCj4gLXN0cnVj dCBiZGJfbHZkc19vcHRpb25zIHsKPiAtCXU4IHBhbmVsX3R5cGU7Cj4gLQl1OCByc3ZkMTsKPiAt CS8qIExWRFMgY2FwYWJpbGl0aWVzLCBzdG9yZWQgaW4gYSBkd29yZCAqLwo+IC0JdTggcGZpdF9t b2RlOjI7Cj4gLQl1OCBwZml0X3RleHRfbW9kZV9lbmhhbmNlZDoxOwo+IC0JdTggcGZpdF9nZnhf bW9kZV9lbmhhbmNlZDoxOwo+IC0JdTggcGZpdF9yYXRpb19hdXRvOjE7Cj4gLQl1OCBwaXhlbF9k aXRoZXI6MTsKPiAtCXU4IGx2ZHNfZWRpZDoxOwo+IC0JdTggcnN2ZDI6MTsKPiAtCXU4IHJzdmQ0 Owo+IC0JLyogTFZEUyBQYW5lbCBjaGFubmVsIGJpdHMgc3RvcmVkIGhlcmUgKi8KPiAtCXUzMiBs dmRzX3BhbmVsX2NoYW5uZWxfYml0czsKPiAtCS8qIExWRFMgU1NDIChTcHJlYWQgU3BlY3RydW0g Q2xvY2spIGJpdHMgc3RvcmVkIGhlcmUuICovCj4gLQl1MTYgc3NjX2JpdHM7Cj4gLQl1MTYgc3Nj X2ZyZXE7Cj4gLQl1MTYgc3NjX2RkdDsKPiAtCS8qIFBhbmVsIGNvbG9yIGRlcHRoIGRlZmluZWQg aGVyZSAqLwo+IC0JdTE2IHBhbmVsX2NvbG9yX2RlcHRoOwo+IC0JLyogTFZEUyBwYW5lbCB0eXBl IGJpdHMgc3RvcmVkIGhlcmUgKi8KPiAtCXUzMiBkcHNfcGFuZWxfdHlwZV9iaXRzOwo+IC0JLyog TFZEUyBiYWNrbGlnaHQgY29udHJvbCB0eXBlIGJpdHMgc3RvcmVkIGhlcmUgKi8KPiAtCXUzMiBi bHRfY29udHJvbF90eXBlX2JpdHM7Cj4gLX0gX19wYWNrZWQ7Cj4gLQo+IC0vKiBMRlAgcG9pbnRl ciB0YWJsZSBjb250YWlucyBlbnRyaWVzIHRvIHRoZSBzdHJ1Y3QgYmVsb3cgKi8KPiAtc3RydWN0 IGJkYl9sdmRzX2xmcF9kYXRhX3B0ciB7Cj4gLQl1MTYgZnBfdGltaW5nX29mZnNldDsgLyogb2Zm c2V0cyBhcmUgZnJvbSBzdGFydCBvZiBiZGIgKi8KPiAtCXU4IGZwX3RhYmxlX3NpemU7Cj4gLQl1 MTYgZHZvX3RpbWluZ19vZmZzZXQ7Cj4gLQl1OCBkdm9fdGFibGVfc2l6ZTsKPiAtCXUxNiBwYW5l bF9wbnBfaWRfb2Zmc2V0Owo+IC0JdTggcG5wX3RhYmxlX3NpemU7Cj4gLX0gX19wYWNrZWQ7Cj4g LQo+IC1zdHJ1Y3QgYmRiX2x2ZHNfbGZwX2RhdGFfcHRycyB7Cj4gLQl1OCBsdmRzX2VudHJpZXM7 IC8qIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGx2ZHNfZGF0YV9wdHIgc3RydWN0cyAqLwo+IC0J c3RydWN0IGJkYl9sdmRzX2xmcF9kYXRhX3B0ciBwdHJbMTZdOwo+IC19IF9fcGFja2VkOwo+IC0K PiAtLyogTEZQIGRhdGEgaGFzIDMgYmxvY2tzIHBlciBlbnRyeSAqLwo+IC1zdHJ1Y3QgbHZkc19m cF90aW1pbmcgewo+IC0JdTE2IHhfcmVzOwo+IC0JdTE2IHlfcmVzOwo+IC0JdTMyIGx2ZHNfcmVn Owo+IC0JdTMyIGx2ZHNfcmVnX3ZhbDsKPiAtCXUzMiBwcF9vbl9yZWc7Cj4gLQl1MzIgcHBfb25f cmVnX3ZhbDsKPiAtCXUzMiBwcF9vZmZfcmVnOwo+IC0JdTMyIHBwX29mZl9yZWdfdmFsOwo+IC0J dTMyIHBwX2N5Y2xlX3JlZzsKPiAtCXUzMiBwcF9jeWNsZV9yZWdfdmFsOwo+IC0JdTMyIHBmaXRf cmVnOwo+IC0JdTMyIHBmaXRfcmVnX3ZhbDsKPiAtCXUxNiB0ZXJtaW5hdG9yOwo+IC19IF9fcGFj a2VkOwo+IC0KPiAtc3RydWN0IGx2ZHNfZHZvX3RpbWluZyB7Cj4gLQl1MTYgY2xvY2s7CQkvKio8 IEluIDEwa2h6ICovCj4gLQl1OCBoYWN0aXZlX2xvOwo+IC0JdTggaGJsYW5rX2xvOwo+IC0JdTgg aGJsYW5rX2hpOjQ7Cj4gLQl1OCBoYWN0aXZlX2hpOjQ7Cj4gLQl1OCB2YWN0aXZlX2xvOwo+IC0J dTggdmJsYW5rX2xvOwo+IC0JdTggdmJsYW5rX2hpOjQ7Cj4gLQl1OCB2YWN0aXZlX2hpOjQ7Cj4g LQl1OCBoc3luY19vZmZfbG87Cj4gLQl1OCBoc3luY19wdWxzZV93aWR0aDsKPiAtCXU4IHZzeW5j X3B1bHNlX3dpZHRoOjQ7Cj4gLQl1OCB2c3luY19vZmY6NDsKPiAtCXU4IHJzdmQwOjY7Cj4gLQl1 OCBoc3luY19vZmZfaGk6MjsKPiAtCXU4IGhfaW1hZ2U7Cj4gLQl1OCB2X2ltYWdlOwo+IC0JdTgg bWF4X2h2Owo+IC0JdTggaF9ib3JkZXI7Cj4gLQl1OCB2X2JvcmRlcjsKPiAtCXU4IHJzdmQxOjM7 Cj4gLQl1OCBkaWdpdGFsOjI7Cj4gLQl1OCB2c3luY19wb3NpdGl2ZToxOwo+IC0JdTggaHN5bmNf cG9zaXRpdmU6MTsKPiAtCXU4IHJzdmQyOjE7Cj4gLX0gX19wYWNrZWQ7Cj4gLQo+IC1zdHJ1Y3Qg bHZkc19wbnBfaWQgewo+IC0JdTE2IG1mZ19uYW1lOwo+IC0JdTE2IHByb2R1Y3RfY29kZTsKPiAt CXUzMiBzZXJpYWw7Cj4gLQl1OCBtZmdfd2VlazsKPiAtCXU4IG1mZ195ZWFyOwo+IC19IF9fcGFj a2VkOwo+IC0KPiAtc3RydWN0IGJkYl9sdmRzX2xmcF9kYXRhX2VudHJ5IHsKPiAtCXN0cnVjdCBs dmRzX2ZwX3RpbWluZyBmcF90aW1pbmc7Cj4gLQlzdHJ1Y3QgbHZkc19kdm9fdGltaW5nIGR2b190 aW1pbmc7Cj4gLQlzdHJ1Y3QgbHZkc19wbnBfaWQgcG5wX2lkOwo+IC19IF9fcGFja2VkOwo+IC0K PiAtc3RydWN0IGJkYl9sdmRzX2xmcF9kYXRhIHsKPiAtCXN0cnVjdCBiZGJfbHZkc19sZnBfZGF0 YV9lbnRyeSBkYXRhWzE2XTsKPiAtfSBfX3BhY2tlZDsKPiAtCj4gLSNkZWZpbmUgQkRCX0JBQ0tM SUdIVF9UWVBFX05PTkUJMAo+IC0jZGVmaW5lIEJEQl9CQUNLTElHSFRfVFlQRV9QV00JMgo+IC0K PiAtc3RydWN0IGJkYl9sZnBfYmFja2xpZ2h0X2RhdGFfZW50cnkgewo+IC0JdTggdHlwZToyOwo+ IC0JdTggYWN0aXZlX2xvd19wd206MTsKPiAtCXU4IG9ic29sZXRlMTo1Owo+IC0JdTE2IHB3bV9m cmVxX2h6Owo+IC0JdTggbWluX2JyaWdodG5lc3M7Cj4gLQl1OCBvYnNvbGV0ZTI7Cj4gLQl1OCBv YnNvbGV0ZTM7Cj4gLX0gX19wYWNrZWQ7Cj4gLQo+IC1zdHJ1Y3QgYmRiX2xmcF9iYWNrbGlnaHRf ZGF0YSB7Cj4gLQl1OCBlbnRyeV9zaXplOwo+IC0Jc3RydWN0IGJkYl9sZnBfYmFja2xpZ2h0X2Rh dGFfZW50cnkgZGF0YVsxNl07Cj4gLQl1OCBsZXZlbFsxNl07Cj4gLX0gX19wYWNrZWQ7Cj4gLQo+ IC1zdHJ1Y3QgYWltZGJfaGVhZGVyIHsKPiAtCWNoYXIgc2lnbmF0dXJlWzE2XTsKPiAtCWNoYXIg b2VtX2RldmljZVsyMF07Cj4gLQl1MTYgYWltZGJfdmVyc2lvbjsKPiAtCXUxNiBhaW1kYl9oZWFk ZXJfc2l6ZTsKPiAtCXUxNiBhaW1kYl9zaXplOwo+IC19IF9fcGFja2VkOwo+IC0KPiAtc3RydWN0 IGFpbWRiX2Jsb2NrIHsKPiAtCXU4IGFpbWRiX2lkOwo+IC0JdTE2IGFpbWRiX3NpemU7Cj4gLX0g X19wYWNrZWQ7Cj4gIAo+IC1zdHJ1Y3QgdmNoX3BhbmVsX2RhdGEgewo+IC0JdTE2IGZwX3RpbWlu Z19vZmZzZXQ7Cj4gLQl1OCBmcF90aW1pbmdfc2l6ZTsKPiAtCXUxNiBkdm9fdGltaW5nX29mZnNl dDsKPiAtCXU4IGR2b190aW1pbmdfc2l6ZTsKPiAtCXUxNiB0ZXh0X2ZpdHRpbmdfb2Zmc2V0Owo+ IC0JdTggdGV4dF9maXR0aW5nX3NpemU7Cj4gLQl1MTYgZ3JhcGhpY3NfZml0dGluZ19vZmZzZXQ7 Cj4gLQl1OCBncmFwaGljc19maXR0aW5nX3NpemU7Cj4gLX0gX19wYWNrZWQ7Cj4gLQo+IC1zdHJ1 Y3QgdmNoX2JkYl8yMiB7Cj4gLQlzdHJ1Y3QgYWltZGJfYmxvY2sgYWltZGJfYmxvY2s7Cj4gLQlz dHJ1Y3QgdmNoX3BhbmVsX2RhdGEgcGFuZWxzWzE2XTsKPiAtfSBfX3BhY2tlZDsKPiAtCj4gLXN0 cnVjdCBiZGJfc2R2b19sdmRzX29wdGlvbnMgewo+IC0JdTggcGFuZWxfYmFja2xpZ2h0Owo+IC0J dTggaDQwX3NldF9wYW5lbF90eXBlOwo+IC0JdTggcGFuZWxfdHlwZTsKPiAtCXU4IHNzY19jbGtf ZnJlcTsKPiAtCXUxNiBhbHNfbG93X3RyaXA7Cj4gLQl1MTYgYWxzX2hpZ2hfdHJpcDsKPiAtCXU4 IHNjbGFsYXJjb2VmZl90YWJfcm93X251bTsKPiAtCXU4IHNjbGFsYXJjb2VmZl90YWJfcm93X3Np emU7Cj4gLQl1OCBjb2VmZmljaWVudFs4XTsKPiAtCXU4IHBhbmVsX21pc2NfYml0c18xOwo+IC0J dTggcGFuZWxfbWlzY19iaXRzXzI7Cj4gLQl1OCBwYW5lbF9taXNjX2JpdHNfMzsKPiAtCXU4IHBh bmVsX21pc2NfYml0c180Owo+IC19IF9fcGFja2VkOwo+IC0KPiAtCj4gLSNkZWZpbmUgQkRCX0RS SVZFUl9GRUFUVVJFX05PX0xWRFMJCTAKPiAtI2RlZmluZSBCREJfRFJJVkVSX0ZFQVRVUkVfSU5U X0xWRFMJCTEKPiAtI2RlZmluZSBCREJfRFJJVkVSX0ZFQVRVUkVfU0RWT19MVkRTCQkyCj4gLSNk ZWZpbmUgQkRCX0RSSVZFUl9GRUFUVVJFX0VEUAkJCTMKPiAtCj4gLXN0cnVjdCBiZGJfZHJpdmVy X2ZlYXR1cmVzIHsKPiAtCXU4IGJvb3RfZGV2X2FsZ29yaXRobToxOwo+IC0JdTggYmxvY2tfZGlz cGxheV9zd2l0Y2g6MTsKPiAtCXU4IGFsbG93X2Rpc3BsYXlfc3dpdGNoOjE7Cj4gLQl1OCBob3Rw bHVnX2R2bzoxOwo+IC0JdTggZHVhbF92aWV3X3pvb206MTsKPiAtCXU4IGludDE1aF9ob29rOjE7 Cj4gLQl1OCBzcHJpdGVfaW5fY2xvbmU6MTsKPiAtCXU4IHByaW1hcnlfbGZwX2lkOjE7Cj4gLQo+ IC0JdTE2IGJvb3RfbW9kZV94Owo+IC0JdTE2IGJvb3RfbW9kZV95Owo+IC0JdTggYm9vdF9tb2Rl X2JwcDsKPiAtCXU4IGJvb3RfbW9kZV9yZWZyZXNoOwo+IC0KPiAtCXUxNiBlbmFibGVfbGZwX3By aW1hcnk6MTsKPiAtCXUxNiBzZWxlY3RpdmVfbW9kZV9wcnVuaW5nOjE7Cj4gLQl1MTYgZHVhbF9m cmVxdWVuY3k6MTsKPiAtCXUxNiByZW5kZXJfY2xvY2tfZnJlcToxOyAvKiAwOiBoaWdoIGZyZXE7 IDE6IGxvdyBmcmVxICovCj4gLQl1MTYgbnRfY2xvbmVfc3VwcG9ydDoxOwo+IC0JdTE2IHBvd2Vy X3NjaGVtZV91aToxOyAvKiAwOiBDVUk7IDE6IDNyZCBwYXJ0eSAqLwo+IC0JdTE2IHNwcml0ZV9k aXNwbGF5X2Fzc2lnbjoxOyAvKiAwOiBzZWNvbmRhcnk7IDE6IHByaW1hcnkgKi8KPiAtCXUxNiBj dWlfYXNwZWN0X3NjYWxpbmc6MTsKPiAtCXUxNiBwcmVzZXJ2ZV9hc3BlY3RfcmF0aW86MTsKPiAt CXUxNiBzZHZvX2RldmljZV9wb3dlcl9kb3duOjE7Cj4gLQl1MTYgY3J0X2hvdHBsdWc6MTsKPiAt CXUxNiBsdmRzX2NvbmZpZzoyOwo+IC0JdTE2IHR2X2hvdHBsdWc6MTsKPiAtCXUxNiBoZG1pX2Nv bmZpZzoyOwo+IC0KPiAtCXU4IHN0YXRpY19kaXNwbGF5OjE7Cj4gLQl1OCByZXNlcnZlZDI6NzsK PiAtCXUxNiBsZWdhY3lfY3J0X21heF94Owo+IC0JdTE2IGxlZ2FjeV9jcnRfbWF4X3k7Cj4gLQl1 OCBsZWdhY3lfY3J0X21heF9yZWZyZXNoOwo+IC0KPiAtCXU4IGhkbWlfdGVybWluYXRpb247Cj4g LQl1OCBjdXN0b21fdmJ0X3ZlcnNpb247Cj4gLQkvKiBEcml2ZXIgZmVhdHVyZXMgZGF0YSBibG9j ayAqLwo+IC0JdTE2IHJtcG1fZW5hYmxlZDoxOwo+IC0JdTE2IHMyZGR0X2VuYWJsZWQ6MTsKPiAt CXUxNiBkcHN0X2VuYWJsZWQ6MTsKPiAtCXUxNiBibHRjbHRfZW5hYmxlZDoxOwo+IC0JdTE2IGFk Yl9lbmFibGVkOjE7Cj4gLQl1MTYgZHJyc19lbmFibGVkOjE7Cj4gLQl1MTYgZ3JzX2VuYWJsZWQ6 MTsKPiAtCXUxNiBncG10X2VuYWJsZWQ6MTsKPiAtCXUxNiB0YnRfZW5hYmxlZDoxOwo+IC0JdTE2 IHBzcl9lbmFibGVkOjE7Cj4gLQl1MTYgaXBzX2VuYWJsZWQ6MTsKPiAtCXUxNiByZXNlcnZlZDM6 NDsKPiAtCXUxNiBwY19mZWF0dXJlX3ZhbGlkOjE7Cj4gLX0gX19wYWNrZWQ7Cj4gLQo+IC0jZGVm aW5lIEVEUF8xOEJQUAkwCj4gLSNkZWZpbmUgRURQXzI0QlBQCTEKPiAtI2RlZmluZSBFRFBfMzBC UFAJMgo+IC0jZGVmaW5lIEVEUF9SQVRFXzFfNjIJMAo+IC0jZGVmaW5lIEVEUF9SQVRFXzJfNwkx Cj4gLSNkZWZpbmUgRURQX0xBTkVfMQkwCj4gLSNkZWZpbmUgRURQX0xBTkVfMgkxCj4gLSNkZWZp bmUgRURQX0xBTkVfNAkzCj4gLSNkZWZpbmUgRURQX1BSRUVNUEhBU0lTX05PTkUJMAo+IC0jZGVm aW5lIEVEUF9QUkVFTVBIQVNJU18zXzVkQgkxCj4gLSNkZWZpbmUgRURQX1BSRUVNUEhBU0lTXzZk QgkyCj4gLSNkZWZpbmUgRURQX1BSRUVNUEhBU0lTXzlfNWRCCTMKPiAtI2RlZmluZSBFRFBfVlNX SU5HXzBfNFYJCTAKPiAtI2RlZmluZSBFRFBfVlNXSU5HXzBfNlYJCTEKPiAtI2RlZmluZSBFRFBf VlNXSU5HXzBfOFYJCTIKPiAtI2RlZmluZSBFRFBfVlNXSU5HXzFfMlYJCTMKPiArI2lmbmRlZiBf SU5URUxfQklPU19IXwo+ICsjZGVmaW5lIF9JTlRFTF9CSU9TX0hfCj4gIAo+ICBzdHJ1Y3QgZWRw X3Bvd2VyX3NlcSB7Cj4gIAl1MTYgdDFfdDM7Cj4gQEAgLTU2NSwyNDUgKzM3LDM3IEBAIHN0cnVj dCBlZHBfcG93ZXJfc2VxIHsKPiAgCXUxNiB0MTFfdDEyOwo+ICB9IF9fcGFja2VkOwo+ICAKPiAt c3RydWN0IGVkcF9saW5rX3BhcmFtcyB7Cj4gLQl1OCByYXRlOjQ7Cj4gLQl1OCBsYW5lczo0Owo+ IC0JdTggcHJlZW1waGFzaXM6NDsKPiAtCXU4IHZzd2luZzo0Owo+IC19IF9fcGFja2VkOwo+IC0K PiAtc3RydWN0IGJkYl9lZHAgewo+IC0Jc3RydWN0IGVkcF9wb3dlcl9zZXEgcG93ZXJfc2Vxc1sx Nl07Cj4gLQl1MzIgY29sb3JfZGVwdGg7Cj4gLQlzdHJ1Y3QgZWRwX2xpbmtfcGFyYW1zIGxpbmtf cGFyYW1zWzE2XTsKPiAtCXUzMiBzZHJyc19tc2FfdGltaW5nX2RlbGF5Owo+IC0KPiAtCS8qIGl0 aCBiaXQgaW5kaWNhdGVzIGVuYWJsZWQvZGlzYWJsZWQgZm9yIChpKzEpdGggcGFuZWwgKi8KPiAt CXUxNiBlZHBfczNkX2ZlYXR1cmU7Cj4gLQl1MTYgZWRwX3QzX29wdGltaXphdGlvbjsKPiAtCXU2 NCBlZHBfdnN3aW5nX3ByZWVtcGg7CQkvKiB2MTczICovCj4gLX0gX19wYWNrZWQ7Cj4gLQo+IC1z dHJ1Y3QgcHNyX3RhYmxlIHsKPiAtCS8qIEZlYXR1cmUgYml0cyAqLwo+IC0JdTggZnVsbF9saW5r OjE7Cj4gLQl1OCByZXF1aXJlX2F1eF90b193YWtldXA6MTsKPiAtCXU4IGZlYXR1cmVfYml0c19y c3ZkOjY7Cj4gLQo+IC0JLyogV2FpdCB0aW1lcyAqLwo+IC0JdTggaWRsZV9mcmFtZXM6NDsKPiAt CXU4IGxpbmVzX3RvX3dhaXQ6MzsKPiAtCXU4IHdhaXRfdGltZXNfcnN2ZDoxOwo+IC0KPiAtCS8q IFRQIHdha2UgdXAgdGltZSBpbiBtdWx0aXBsZSBvZiAxMDAgKi8KPiAtCXUxNiB0cDFfd2FrZXVw X3RpbWU7Cj4gLQl1MTYgdHAyX3RwM193YWtldXBfdGltZTsKPiAtfSBfX3BhY2tlZDsKPiAtCj4g LXN0cnVjdCBiZGJfcHNyIHsKPiAtCXN0cnVjdCBwc3JfdGFibGUgcHNyX3RhYmxlWzE2XTsKPiAt fSBfX3BhY2tlZDsKPiAtCj4gLS8qCj4gLSAqIERyaXZlcjwtPlZCSU9TIGludGVyYWN0aW9uIG9j Y3VycyB0aHJvdWdoIHNjcmF0Y2ggYml0cyBpbgo+IC0gKiBHUjE4ICYgU1dGKi4KPiAtICovCj4g LQo+IC0vKiBHUjE4IGJpdHMgYXJlIHNldCBvbiBkaXNwbGF5IHN3aXRjaCBhbmQgaG90a2V5IGV2 ZW50cyAqLwo+IC0jZGVmaW5lIEdSMThfRFJJVkVSX1NXSVRDSF9FTgkoMTw8NykgLyogMDogVkJJ T1MgY29udHJvbCwgMTogZHJpdmVyIGNvbnRyb2wgKi8KPiAtI2RlZmluZSBHUjE4X0hPVEtFWV9N QVNLCTB4NzggLyogU2VlIGFsc28gU1dGNCAxNTowICovCj4gLSNkZWZpbmUgICBHUjE4X0hLX05P TkUJCSgweDA8PDMpCj4gLSNkZWZpbmUgICBHUjE4X0hLX0xGUF9TVFJFVENICSgweDE8PDMpCj4g LSNkZWZpbmUgICBHUjE4X0hLX1RPR0dMRV9ESVNQCSgweDI8PDMpCj4gLSNkZWZpbmUgICBHUjE4 X0hLX0RJU1BfU1dJVENICSgweDQ8PDMpIC8qIHNlZSBTV0YxNCAxNTowIGZvciB3aGF0IHRvIGVu YWJsZSAqLwo+IC0jZGVmaW5lICAgR1IxOF9IS19QT1BVUF9ESVNBQkxFRCAoMHg2PDwzKQo+IC0j ZGVmaW5lICAgR1IxOF9IS19QT1BVUF9FTkFCTEVECSgweDc8PDMpCj4gLSNkZWZpbmUgICBHUjE4 X0hLX1BGSVQJCSgweDg8PDMpCj4gLSNkZWZpbmUgICBHUjE4X0hLX0FQTV9DSEFOR0UJKDB4YTw8 MykKPiAtI2RlZmluZSAgIEdSMThfSEtfTVVMVElQTEUJKDB4Yzw8MykKPiAtI2RlZmluZSBHUjE4 X1VTRVJfSU5UX0VOCSgxPDwyKQo+IC0jZGVmaW5lIEdSMThfQTAwMDBfRkxVU0hfRU4JKDE8PDEp Cj4gLSNkZWZpbmUgR1IxOF9TTU1fRU4JCSgxPDwwKQo+IC0KPiAtLyogU2V0IGJ5IGRyaXZlciwg Y2xlYXJlZCBieSBWQklPUyAqLwo+IC0jZGVmaW5lIFNXRjAwX1lSRVNfU0hJRlQJMTYKPiAtI2Rl ZmluZSBTV0YwMF9YUkVTX1NISUZUCTAKPiAtI2RlZmluZSBTV0YwMF9SRVNfTUFTSwkJMHhmZmZm Cj4gLQo+IC0vKiBTZXQgYnkgVkJJT1MgYXQgYm9vdCB0aW1lIGFuZCBkcml2ZXIgYXQgcnVudGlt ZSAqLwo+IC0jZGVmaW5lIFNXRjAxX1RWMl9GT1JNQVRfU0hJRlQJOAo+IC0jZGVmaW5lIFNXRjAx X1RWMV9GT1JNQVRfU0hJRlQJMAo+IC0jZGVmaW5lIFNXRjAxX1RWX0ZPUk1BVF9NQVNLCTB4ZmZm Zgo+IC0KPiAtI2RlZmluZSBTV0YxMF9WQklPU19CTENfSTJDX0VOCSgxPDwyOSkKPiAtI2RlZmlu ZSBTV0YxMF9HVFRfT1ZFUlJJREVfRU4JKDE8PDI4KQo+IC0jZGVmaW5lIFNXRjEwX0xGUF9EUE1T X09WUgkoMTw8MjcpIC8qIG92ZXJyaWRlIERQTVMgb24gZGlzcGxheSBzd2l0Y2ggKi8KPiAtI2Rl ZmluZSBTV0YxMF9BQ1RJVkVfVE9HR0xFX0xJU1RfTUFTSyAoNzw8MjQpCj4gLSNkZWZpbmUgICBT V0YxMF9PTERfVE9HR0xFCTB4MAo+IC0jZGVmaW5lICAgU1dGMTBfVE9HR0xFX0xJU1RfMQkweDEK PiAtI2RlZmluZSAgIFNXRjEwX1RPR0dMRV9MSVNUXzIJMHgyCj4gLSNkZWZpbmUgICBTV0YxMF9U T0dHTEVfTElTVF8zCTB4Mwo+IC0jZGVmaW5lICAgU1dGMTBfVE9HR0xFX0xJU1RfNAkweDQKPiAt I2RlZmluZSBTV0YxMF9QQU5OSU5HX0VOCSgxPDwyMykKPiAtI2RlZmluZSBTV0YxMF9EUklWRVJf TE9BREVECSgxPDwyMikKPiAtI2RlZmluZSBTV0YxMF9FWFRFTkRFRF9ERVNLVE9QCSgxPDwyMSkK PiAtI2RlZmluZSBTV0YxMF9FWENMVVNJVkVfTU9ERQkoMTw8MjApCj4gLSNkZWZpbmUgU1dGMTBf T1ZFUkxBWV9FTgkoMTw8MTkpCj4gLSNkZWZpbmUgU1dGMTBfUExBTkVCX0hPTERPRkYJKDE8PDE4 KQo+IC0jZGVmaW5lIFNXRjEwX1BMQU5FQV9IT0xET0ZGCSgxPDwxNykKPiAtI2RlZmluZSBTV0Yx MF9WR0FfSE9MRE9GRgkoMTw8MTYpCj4gLSNkZWZpbmUgU1dGMTBfQUNUSVZFX0RJU1BfTUFTSwkw eGZmZmYKPiAtI2RlZmluZSAgIFNXRjEwX1BJUEVCX0xGUDIJKDE8PDE1KQo+IC0jZGVmaW5lICAg U1dGMTBfUElQRUJfRUZQMgkoMTw8MTQpCj4gLSNkZWZpbmUgICBTV0YxMF9QSVBFQl9UVjIJKDE8 PDEzKQo+IC0jZGVmaW5lICAgU1dGMTBfUElQRUJfQ1JUMgkoMTw8MTIpCj4gLSNkZWZpbmUgICBT V0YxMF9QSVBFQl9MRlAJKDE8PDExKQo+IC0jZGVmaW5lICAgU1dGMTBfUElQRUJfRUZQCSgxPDwx MCkKPiAtI2RlZmluZSAgIFNXRjEwX1BJUEVCX1RWCSgxPDw5KQo+IC0jZGVmaW5lICAgU1dGMTBf UElQRUJfQ1JUCSgxPDw4KQo+IC0jZGVmaW5lICAgU1dGMTBfUElQRUFfTEZQMgkoMTw8NykKPiAt I2RlZmluZSAgIFNXRjEwX1BJUEVBX0VGUDIJKDE8PDYpCj4gLSNkZWZpbmUgICBTV0YxMF9QSVBF QV9UVjIJKDE8PDUpCj4gLSNkZWZpbmUgICBTV0YxMF9QSVBFQV9DUlQyCSgxPDw0KQo+IC0jZGVm aW5lICAgU1dGMTBfUElQRUFfTEZQCSgxPDwzKQo+IC0jZGVmaW5lICAgU1dGMTBfUElQRUFfRUZQ CSgxPDwyKQo+IC0jZGVmaW5lICAgU1dGMTBfUElQRUFfVFYJKDE8PDEpCj4gLSNkZWZpbmUgICBT V0YxMF9QSVBFQV9DUlQJKDE8PDApCj4gLQo+IC0jZGVmaW5lIFNXRjExX01FTU9SWV9TSVpFX1NI SUZUCTE2Cj4gLSNkZWZpbmUgU1dGMTFfU1ZfVEVTVF9FTgkoMTw8MTUpCj4gLSNkZWZpbmUgU1dG MTFfSVNfQUdQCQkoMTw8MTQpCj4gLSNkZWZpbmUgU1dGMTFfRElTUExBWV9IT0xET0ZGCSgxPDwx MykKPiAtI2RlZmluZSBTV0YxMV9EUE1TX1JFRFVDRUQJKDE8PDEyKQo+IC0jZGVmaW5lIFNXRjEx X0lTX1ZCRV9NT0RFCSgxPDwxMSkKPiAtI2RlZmluZSBTV0YxMV9QSVBFQl9BQ0NFU1MJKDE8PDEw KSAvKiAwIGhlcmUgbWVhbnMgcGlwZSBhICovCj4gLSNkZWZpbmUgU1dGMTFfRFBNU19NQVNLCQkw eDA3Cj4gLSNkZWZpbmUgICBTV0YxMV9EUE1TX09GRgkoMTw8MikKPiAtI2RlZmluZSAgIFNXRjEx X0RQTVNfU1VTUEVORAkoMTw8MSkKPiAtI2RlZmluZSAgIFNXRjExX0RQTVNfU1RBTkRCWQkoMTw8 MCkKPiAtI2RlZmluZSAgIFNXRjExX0RQTVNfT04JCTAKPiAtCj4gLSNkZWZpbmUgU1dGMTRfR0ZY X1BGSVRfRU4JKDE8PDMxKQo+IC0jZGVmaW5lIFNXRjE0X1RFWFRfUEZJVF9FTgkoMTw8MzApCj4g LSNkZWZpbmUgU1dGMTRfTElEX1NUQVRVU19DTE9TRUQJKDE8PDI5KSAvKiAwIGhlcmUgbWVhbnMg b3BlbiAqLwo+IC0jZGVmaW5lIFNXRjE0X1BPUFVQX0VOCQkoMTw8MjgpCj4gLSNkZWZpbmUgU1dG MTRfRElTUExBWV9IT0xET0ZGCSgxPDwyNykKPiAtI2RlZmluZSBTV0YxNF9ESVNQX0RFVEVDVF9F TgkoMTw8MjYpCj4gLSNkZWZpbmUgU1dGMTRfRE9DS0lOR19TVEFUVVNfRE9DS0VEICgxPDwyNSkg LyogMCBoZXJlIG1lYW5zIHVuZG9ja2VkICovCj4gLSNkZWZpbmUgU1dGMTRfRFJJVkVSX1NUQVRV UwkoMTw8MjQpCj4gLSNkZWZpbmUgU1dGMTRfT1NfVFlQRV9XSU45WAkoMTw8MjMpCj4gLSNkZWZp bmUgU1dGMTRfT1NfVFlQRV9XSU5OVAkoMTw8MjIpCj4gLS8qIDIxOjE5IHJzdmQgKi8KPiAtI2Rl ZmluZSBTV0YxNF9QTV9UWVBFX01BU0sJMHgwMDA3MDAwMAo+IC0jZGVmaW5lICAgU1dGMTRfUE1f QUNQSV9WSURFTwkoMHg0IDw8IDE2KQo+IC0jZGVmaW5lICAgU1dGMTRfUE1fQUNQSQkJKDB4MyA8 PCAxNikKPiAtI2RlZmluZSAgIFNXRjE0X1BNX0FQTV8xMgkoMHgyIDw8IDE2KQo+IC0jZGVmaW5l ICAgU1dGMTRfUE1fQVBNXzExCSgweDEgPDwgMTYpCj4gLSNkZWZpbmUgU1dGMTRfSEtfUkVRVUVT VF9NQVNLCTB4MDAwMGZmZmYgLyogc2VlIEdSMTggNjozIGZvciBldmVudCB0eXBlICovCj4gLSAg ICAgICAgICAvKiBpZiBHUjE4IGluZGljYXRlcyBhIGRpc3BsYXkgc3dpdGNoICovCj4gLSNkZWZp bmUgICBTV0YxNF9EU19QSVBFQl9MRlAyX0VOICgxPDwxNSkKPiAtI2RlZmluZSAgIFNXRjE0X0RT X1BJUEVCX0VGUDJfRU4gKDE8PDE0KQo+IC0jZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfVFYyX0VO ICAoMTw8MTMpCj4gLSNkZWZpbmUgICBTV0YxNF9EU19QSVBFQl9DUlQyX0VOICgxPDwxMikKPiAt I2RlZmluZSAgIFNXRjE0X0RTX1BJUEVCX0xGUF9FTiAgKDE8PDExKQo+IC0jZGVmaW5lICAgU1dG MTRfRFNfUElQRUJfRUZQX0VOICAoMTw8MTApCj4gLSNkZWZpbmUgICBTV0YxNF9EU19QSVBFQl9U Vl9FTiAgICgxPDw5KQo+IC0jZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfQ1JUX0VOICAoMTw8OCkK PiAtI2RlZmluZSAgIFNXRjE0X0RTX1BJUEVBX0xGUDJfRU4gKDE8PDcpCj4gLSNkZWZpbmUgICBT V0YxNF9EU19QSVBFQV9FRlAyX0VOICgxPDw2KQo+IC0jZGVmaW5lICAgU1dGMTRfRFNfUElQRUFf VFYyX0VOICAoMTw8NSkKPiAtI2RlZmluZSAgIFNXRjE0X0RTX1BJUEVBX0NSVDJfRU4gKDE8PDQp Cj4gLSNkZWZpbmUgICBTV0YxNF9EU19QSVBFQV9MRlBfRU4gICgxPDwzKQo+IC0jZGVmaW5lICAg U1dGMTRfRFNfUElQRUFfRUZQX0VOICAoMTw8MikKPiAtI2RlZmluZSAgIFNXRjE0X0RTX1BJUEVB X1RWX0VOICAgKDE8PDEpCj4gLSNkZWZpbmUgICBTV0YxNF9EU19QSVBFQV9DUlRfRU4gICgxPDww KQo+IC0gICAgICAgICAgLyogaWYgR1IxOCBpbmRpY2F0ZXMgYSBwYW5lbCBmaXR0aW5nIHJlcXVl c3QgKi8KPiAtI2RlZmluZSAgIFNXRjE0X1BGSVRfRU4JCSgxPDwwKSAvKiAwIG1lYW5zIGRpc2Fi bGUgKi8KPiAtICAgICAgICAgIC8qIGlmIEdSMTggaW5kaWNhdGVzIGFuIEFQTSBjaGFuZ2UgcmVx dWVzdCAqLwo+IC0jZGVmaW5lICAgU1dGMTRfQVBNX0hJQkVSTkFURQkweDQKPiAtI2RlZmluZSAg IFNXRjE0X0FQTV9TVVNQRU5ECTB4Mwo+IC0jZGVmaW5lICAgU1dGMTRfQVBNX1NUQU5EQlkJMHgx Cj4gLSNkZWZpbmUgICBTV0YxNF9BUE1fUkVTVE9SRQkweDAKPiAtCj4gLS8qIEFkZCB0aGUgZGV2 aWNlIGNsYXNzIGZvciBMRlAsIFRWLCBIRE1JICovCj4gLSNkZWZpbmUJIERFVklDRV9UWVBFX0lO VF9MRlAJMHgxMDIyCj4gLSNkZWZpbmUJIERFVklDRV9UWVBFX0lOVF9UVgkweDEwMDkKPiAtI2Rl ZmluZQkgREVWSUNFX1RZUEVfSERNSQkweDYwRDIKPiAtI2RlZmluZQkgREVWSUNFX1RZUEVfRFAJ CTB4NjhDNgo+IC0jZGVmaW5lCSBERVZJQ0VfVFlQRV9lRFAJMHg3OEM2Cj4gLQo+IC0jZGVmaW5l ICBERVZJQ0VfVFlQRV9DTEFTU19FWFRFTlNJT04JKDEgPDwgMTUpCj4gLSNkZWZpbmUgIERFVklD RV9UWVBFX1BPV0VSX01BTkFHRU1FTlQJKDEgPDwgMTQpCj4gLSNkZWZpbmUgIERFVklDRV9UWVBF X0hPVFBMVUdfU0lHTkFMSU5HCSgxIDw8IDEzKQo+IC0jZGVmaW5lICBERVZJQ0VfVFlQRV9JTlRF Uk5BTF9DT05ORUNUT1IJKDEgPDwgMTIpCj4gLSNkZWZpbmUgIERFVklDRV9UWVBFX05PVF9IRE1J X09VVFBVVAkoMSA8PCAxMSkKPiAtI2RlZmluZSAgREVWSUNFX1RZUEVfTUlQSV9PVVRQVVQJKDEg PDwgMTApCj4gLSNkZWZpbmUgIERFVklDRV9UWVBFX0NPTVBPU0lURV9PVVRQVVQJKDEgPDwgOSkK PiAtI2RlZmluZSAgREVWSUNFX1RZUEVfRFVBTF9DSEFOTkVMCSgxIDw8IDgpCj4gLSNkZWZpbmUg IERFVklDRV9UWVBFX0hJR0hfU1BFRURfTElOSwkoMSA8PCA2KQo+IC0jZGVmaW5lICBERVZJQ0Vf VFlQRV9MVkRTX1NJTkdBTElORwkoMSA8PCA1KQo+IC0jZGVmaW5lICBERVZJQ0VfVFlQRV9UTURT X0RWSV9TSUdOQUxJTkcJKDEgPDwgNCkKPiAtI2RlZmluZSAgREVWSUNFX1RZUEVfVklERU9fU0lH TkFMSU5HCSgxIDw8IDMpCj4gLSNkZWZpbmUgIERFVklDRV9UWVBFX0RJU1BMQVlQT1JUX09VVFBV VAkoMSA8PCAyKQo+IC0jZGVmaW5lICBERVZJQ0VfVFlQRV9ESUdJVEFMX09VVFBVVAkoMSA8PCAx KQo+IC0jZGVmaW5lICBERVZJQ0VfVFlQRV9BTkFMT0dfT1VUUFVUCSgxIDw8IDApCj4gLQo+IC0v Kgo+IC0gKiBCaXRzIHdlIGNhcmUgYWJvdXQgd2hlbiBjaGVja2luZyBmb3IgREVWSUNFX1RZUEVf ZURQCj4gLSAqIERlcGVuZGluZyBvbiB0aGUgc3lzdGVtLCB0aGUgb3RoZXIgYml0cyBtYXkgb3Ig bWF5IG5vdAo+IC0gKiBiZSBzZXQgZm9yIGVEUCBvdXRwdXRzLgo+IC0gKi8KPiAtI2RlZmluZSBE RVZJQ0VfVFlQRV9lRFBfQklUUyBcCj4gLQkoREVWSUNFX1RZUEVfSU5URVJOQUxfQ09OTkVDVE9S IHwgXAo+IC0JIERFVklDRV9UWVBFX01JUElfT1VUUFVUIHwgXAo+IC0JIERFVklDRV9UWVBFX0NP TVBPU0lURV9PVVRQVVQgfCBcCj4gLQkgREVWSUNFX1RZUEVfRFVBTF9DSEFOTkVMIHwgXAo+IC0J IERFVklDRV9UWVBFX0xWRFNfU0lOR0FMSU5HIHwgXAo+IC0JIERFVklDRV9UWVBFX1RNRFNfRFZJ X1NJR05BTElORyB8IFwKPiAtCSBERVZJQ0VfVFlQRV9WSURFT19TSUdOQUxJTkcgfCBcCj4gLQkg REVWSUNFX1RZUEVfRElTUExBWVBPUlRfT1VUUFVUIHwgXAo+IC0JIERFVklDRV9UWVBFX0FOQUxP R19PVVRQVVQpCj4gLQo+IC0vKiBkZWZpbmUgdGhlIERWTyBwb3J0IGZvciBIRE1JIG91dHB1dCB0 eXBlICovCj4gLSNkZWZpbmUJCURWT19CCQkxCj4gLSNkZWZpbmUJCURWT19DCQkyCj4gLSNkZWZp bmUJCURWT19ECQkzCj4gLQo+IC0vKiBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRoZSAiRFZPIFBvcnQi IGZpZWxkIGZvciB2ZXJzaW9ucyA+PSAxNTU6ICovCj4gLSNkZWZpbmUgRFZPX1BPUlRfSERNSUEJ MAo+IC0jZGVmaW5lIERWT19QT1JUX0hETUlCCTEKPiAtI2RlZmluZSBEVk9fUE9SVF9IRE1JQwky Cj4gLSNkZWZpbmUgRFZPX1BPUlRfSERNSUQJMwo+IC0jZGVmaW5lIERWT19QT1JUX0xWRFMJNAo+ IC0jZGVmaW5lIERWT19QT1JUX1RWCTUKPiAtI2RlZmluZSBEVk9fUE9SVF9DUlQJNgo+IC0jZGVm aW5lIERWT19QT1JUX0RQQgk3Cj4gLSNkZWZpbmUgRFZPX1BPUlRfRFBDCTgKPiAtI2RlZmluZSBE Vk9fUE9SVF9EUEQJOQo+IC0jZGVmaW5lIERWT19QT1JUX0RQQQkxMAo+IC0jZGVmaW5lIERWT19Q T1JUX0RQRQkxMQo+IC0jZGVmaW5lIERWT19QT1JUX0hETUlFCTEyCj4gLSNkZWZpbmUgRFZPX1BP UlRfTUlQSUEJMjEKPiAtI2RlZmluZSBEVk9fUE9SVF9NSVBJQgkyMgo+IC0jZGVmaW5lIERWT19Q T1JUX01JUElDCTIzCj4gLSNkZWZpbmUgRFZPX1BPUlRfTUlQSUQJMjQKPiArLyogTUlQSSBTZXF1 ZW5jZSBCbG9jayBkZWZpbml0aW9ucyAqLwo+ICtlbnVtIG1pcGlfc2VxIHsKPiArCU1JUElfU0VR X0VORCA9IDAsCj4gKwlNSVBJX1NFUV9BU1NFUlRfUkVTRVQsCj4gKwlNSVBJX1NFUV9JTklUX09U UCwKPiArCU1JUElfU0VRX0RJU1BMQVlfT04sCj4gKwlNSVBJX1NFUV9ESVNQTEFZX09GRiwKPiAr CU1JUElfU0VRX0RFQVNTRVJUX1JFU0VULAo+ICsJTUlQSV9TRVFfQkFDS0xJR0hUX09OLAkJLyog c2VxdWVuY2UgYmxvY2sgdjIrICovCj4gKwlNSVBJX1NFUV9CQUNLTElHSFRfT0ZGLAkJLyogc2Vx dWVuY2UgYmxvY2sgdjIrICovCj4gKwlNSVBJX1NFUV9URUFSX09OLAkJLyogc2VxdWVuY2UgYmxv Y2sgdjIrICovCj4gKwlNSVBJX1NFUV9URUFSX09GRiwJCS8qIHNlcXVlbmNlIGJsb2NrIHYzKyAq Lwo+ICsJTUlQSV9TRVFfUE9XRVJfT04sCQkvKiBzZXF1ZW5jZSBibG9jayB2MysgKi8KPiArCU1J UElfU0VRX1BPV0VSX09GRiwJCS8qIHNlcXVlbmNlIGJsb2NrIHYzKyAqLwo+ICsJTUlQSV9TRVFf TUFYCj4gK307Cj4gIAo+IC0vKiBCbG9jayA1MiBjb250YWlucyBNSVBJIFBhbmVsIGluZm8KPiAt ICogNiBzdWNoIGVudGVyaWVzIHdpbGwgdGhlcmUuIEluZGV4IGludG8gY29ycmVjdAo+IC0gKiBl bnRlcnkgaXMgYmFzZWQgb24gdGhlIHBhbmVsX2luZGV4IGluICM0MCBMRlAKPiAtICovCj4gLSNk ZWZpbmUgTUFYX01JUElfQ09ORklHVVJBVElPTlMJNgo+ICtlbnVtIG1pcGlfc2VxX2VsZW1lbnQg ewo+ICsJTUlQSV9TRVFfRUxFTV9FTkQgPSAwLAo+ICsJTUlQSV9TRVFfRUxFTV9TRU5EX1BLVCwK PiArCU1JUElfU0VRX0VMRU1fREVMQVksCj4gKwlNSVBJX1NFUV9FTEVNX0dQSU8sCj4gKwlNSVBJ X1NFUV9FTEVNX0kyQywJCS8qIHNlcXVlbmNlIGJsb2NrIHYyKyAqLwo+ICsJTUlQSV9TRVFfRUxF TV9TUEksCQkvKiBzZXF1ZW5jZSBibG9jayB2MysgKi8KPiArCU1JUElfU0VRX0VMRU1fUE1JQywJ CS8qIHNlcXVlbmNlIGJsb2NrIHYzKyAqLwo+ICsJTUlQSV9TRVFfRUxFTV9NQVgKPiArfTsKPiAg Cj4gICNkZWZpbmUgTUlQSV9EU0lfVU5ERUZJTkVEX1BBTkVMX0lECTAKPiAgI2RlZmluZSBNSVBJ X0RTSV9HRU5FUklDX1BBTkVMX0lECTEKPiAgCj4gLS8qCj4gLSAqIFBNSUMgdnMgU29DIEJhY2ts aWdodCBzdXBwb3J0IHNwZWNpZmllZCBpbiBwd21fYmxjCj4gLSAqIGZpZWxkIGluIG1pcGlfY29u ZmlnIGJsb2NrIGJlbG93Lgo+IC0qLwo+IC0jZGVmaW5lIFBQU19CTENfUE1JQyAgIDAKPiAtI2Rl ZmluZSBQUFNfQkxDX1NPQyAgICAxCj4gLQo+ICBzdHJ1Y3QgbWlwaV9jb25maWcgewo+ICAJdTE2 IHBhbmVsX2lkOwo+ICAKPiBAQCAtODIxLDYgKzg1LDggQEAgc3RydWN0IG1pcGlfY29uZmlnIHsK PiAgCXUzMiB2aWRlb190cmFuc2Zlcl9tb2RlOjI7Cj4gIAo+ICAJdTMyIGNhYmNfc3VwcG9ydGVk OjE7Cj4gKyNkZWZpbmUgUFBTX0JMQ19QTUlDICAgMAo+ICsjZGVmaW5lIFBQU19CTENfU09DICAg IDEKPiAgCXUzMiBwd21fYmxjOjE7Cj4gIAo+ICAJLyogQml0IDEzOjEwICovCj4gQEAgLTkyNCwx MiArMTkwLDcgQEAgc3RydWN0IG1pcGlfY29uZmlnIHsKPiAgCj4gIH0gX19wYWNrZWQ7Cj4gIAo+ IC0vKiBCbG9jayA1MiBjb250YWlucyBNSVBJIGNvbmZpZ3VyYXRpb24gYmxvY2sKPiAtICogNiAq IGJkYl9taXBpX2NvbmZpZywgZm9sbG93ZWQgYnkgNiBwcHMgZGF0YQo+IC0gKiBibG9jayBiZWxv dwo+IC0gKgo+IC0gKiBhbGwgZGVsYXlzIGhhcyBhIHVuaXQgb2YgMTAwdXMKPiAtICovCj4gKy8q IGFsbCBkZWxheXMgaGF2ZSBhIHVuaXQgb2YgMTAwdXMgKi8KPiAgc3RydWN0IG1pcGlfcHBzX2Rh dGEgewo+ICAJdTE2IHBhbmVsX29uX2RlbGF5Owo+ICAJdTE2IGJsX2VuYWJsZV9kZWxheTsKPiBA QCAtOTM4LDU3ICsxOTksNCBAQCBzdHJ1Y3QgbWlwaV9wcHNfZGF0YSB7Cj4gIAl1MTYgcGFuZWxf cG93ZXJfY3ljbGVfZGVsYXk7Cj4gIH0gX19wYWNrZWQ7Cj4gIAo+IC1zdHJ1Y3QgYmRiX21pcGlf Y29uZmlnIHsKPiAtCXN0cnVjdCBtaXBpX2NvbmZpZyBjb25maWdbTUFYX01JUElfQ09ORklHVVJB VElPTlNdOwo+IC0Jc3RydWN0IG1pcGlfcHBzX2RhdGEgcHBzW01BWF9NSVBJX0NPTkZJR1VSQVRJ T05TXTsKPiAtfSBfX3BhY2tlZDsKPiAtCj4gLS8qIEJsb2NrIDUzIGNvbnRhaW5zIE1JUEkgc2Vx dWVuY2VzIGFzIG5lZWRlZCBieSB0aGUgcGFuZWwKPiAtICogZm9yIGVuYWJsaW5nIGl0LiBUaGlz IGJsb2NrIGNhbiBiZSB2YXJpYWJsZSBpbiBzaXplIGFuZAo+IC0gKiBjYW4gYmUgbWF4aW11bSBv ZiA2IGJsb2Nrcwo+IC0gKi8KPiAtc3RydWN0IGJkYl9taXBpX3NlcXVlbmNlIHsKPiAtCXU4IHZl cnNpb247Cj4gLQl1OCBkYXRhWzBdOwo+IC19IF9fcGFja2VkOwo+IC0KPiAtLyogTUlQSSBTZXF1 bmVjZSBCbG9jayBkZWZpbml0aW9ucyAqLwo+IC1lbnVtIG1pcGlfc2VxIHsKPiAtCU1JUElfU0VR X0VORCA9IDAsCj4gLQlNSVBJX1NFUV9BU1NFUlRfUkVTRVQsCj4gLQlNSVBJX1NFUV9JTklUX09U UCwKPiAtCU1JUElfU0VRX0RJU1BMQVlfT04sCj4gLQlNSVBJX1NFUV9ESVNQTEFZX09GRiwKPiAt CU1JUElfU0VRX0RFQVNTRVJUX1JFU0VULAo+IC0JTUlQSV9TRVFfQkFDS0xJR0hUX09OLAkJLyog c2VxdWVuY2UgYmxvY2sgdjIrICovCj4gLQlNSVBJX1NFUV9CQUNLTElHSFRfT0ZGLAkJLyogc2Vx dWVuY2UgYmxvY2sgdjIrICovCj4gLQlNSVBJX1NFUV9URUFSX09OLAkJLyogc2VxdWVuY2UgYmxv Y2sgdjIrICovCj4gLQlNSVBJX1NFUV9URUFSX09GRiwJCS8qIHNlcXVlbmNlIGJsb2NrIHYzKyAq Lwo+IC0JTUlQSV9TRVFfUE9XRVJfT04sCQkvKiBzZXF1ZW5jZSBibG9jayB2MysgKi8KPiAtCU1J UElfU0VRX1BPV0VSX09GRiwJCS8qIHNlcXVlbmNlIGJsb2NrIHYzKyAqLwo+IC0JTUlQSV9TRVFf TUFYCj4gLX07Cj4gLQo+IC1lbnVtIG1pcGlfc2VxX2VsZW1lbnQgewo+IC0JTUlQSV9TRVFfRUxF TV9FTkQgPSAwLAo+IC0JTUlQSV9TRVFfRUxFTV9TRU5EX1BLVCwKPiAtCU1JUElfU0VRX0VMRU1f REVMQVksCj4gLQlNSVBJX1NFUV9FTEVNX0dQSU8sCj4gLQlNSVBJX1NFUV9FTEVNX0kyQywJCS8q IHNlcXVlbmNlIGJsb2NrIHYyKyAqLwo+IC0JTUlQSV9TRVFfRUxFTV9TUEksCQkvKiBzZXF1ZW5j ZSBibG9jayB2MysgKi8KPiAtCU1JUElfU0VRX0VMRU1fUE1JQywJCS8qIHNlcXVlbmNlIGJsb2Nr IHYzKyAqLwo+IC0JTUlQSV9TRVFfRUxFTV9NQVgKPiAtfTsKPiAtCj4gLWVudW0gbWlwaV9ncGlv X3Bpbl9pbmRleCB7Cj4gLQlNSVBJX0dQSU9fVU5ERUZJTkVEID0gMCwKPiAtCU1JUElfR1BJT19Q QU5FTF9FTkFCTEUsCj4gLQlNSVBJX0dQSU9fQkxfRU5BQkxFLAo+IC0JTUlQSV9HUElPX1BXTV9F TkFCTEUsCj4gLQlNSVBJX0dQSU9fUkVTRVRfTiwKPiAtCU1JUElfR1BJT19QV1JfRE9XTl9SLAo+ IC0JTUlQSV9HUElPX1NUREJZX1JTVF9OLAo+IC0JTUlQSV9HUElPX01BWAo+IC19Owo+IC0KPiAg I2VuZGlmIC8qIF9JTlRFTF9CSU9TX0hfICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Jpb3NfcHJpdmF0ZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Ymlvc19wcml2YXRlLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAw MC4uNTZkM2FlY2FlMDY0Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Jpb3NfcHJpdmF0ZS5oCj4gQEAgLTAsMCArMSw4MjMgQEAKPiArLyoKPiArICog Q29weXJpZ2h0IMKpIDIwMDYtMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv YnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9u Cj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUg aXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz c2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJl IGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4g KyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4g KyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Ig T1RIRVJXSVNFLCBBUklTSU5HIEZST00sCj4gKyAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCj4gKyAq IFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBBdXRob3JzOgo+ICsgKiAgICBFcmljIEFuaG9sdCA8ZXJp Y0BhbmhvbHQubmV0Pgo+ICsgKgo+ICsgKi8KPiArCj4gKy8qCj4gKyAqIFRoaXMgaW5mb3JtYXRp b24gaXMgcHJpdmF0ZSB0byBWQlQgcGFyc2luZyBpbiBpbnRlbF9iaW9zLmMuCj4gKyAqCj4gKyAq IFBsZWFzZSBkbyBOT1QgaW5jbHVkZSBhbnl3aGVyZSBlbHNlLgo+ICsgKi8KPiArCj4gKyNpZm5k ZWYgX0lOVEVMX0JJT1NfUFJJVkFURV9IXwo+ICsjZGVmaW5lIF9JTlRFTF9CSU9TX1BSSVZBVEVf SF8KPiArCj4gKyNpbmNsdWRlICJpbnRlbF9iaW9zLmgiCj4gKwo+ICsvKioKPiArICogc3RydWN0 IHZidF9oZWFkZXIgLSBWQlQgSGVhZGVyIHN0cnVjdHVyZQo+ICsgKiBAc2lnbmF0dXJlOgkJVkJU IHNpZ25hdHVyZSwgYWx3YXlzIHN0YXJ0cyB3aXRoICIkVkJUIgo+ICsgKiBAdmVyc2lvbjoJCVZl cnNpb24gb2YgdGhpcyBzdHJ1Y3R1cmUKPiArICogQGhlYWRlcl9zaXplOglTaXplIG9mIHRoaXMg c3RydWN0dXJlCj4gKyAqIEB2YnRfc2l6ZToJCVNpemUgb2YgVkJUIChWQlQgSGVhZGVyLCBCREIg SGVhZGVyIGFuZCBkYXRhIGJsb2NrcykKPiArICogQHZidF9jaGVja3N1bToJQ2hlY2tzdW0KPiAr ICogQHJlc2VydmVkMDoJCVJlc2VydmVkCj4gKyAqIEBiZGJfb2Zmc2V0OgkJT2Zmc2V0IG9mICZz dHJ1Y3QgYmRiX2hlYWRlciBmcm9tIGJlZ2lubmluZyBvZiBWQlQKPiArICogQGFpbV9vZmZzZXQ6 CQlPZmZzZXRzIG9mIGFkZC1pbiBkYXRhIGJsb2NrcyBmcm9tIGJlZ2lubmluZyBvZiBWQlQKPiAr ICovCj4gK3N0cnVjdCB2YnRfaGVhZGVyIHsKPiArCXU4IHNpZ25hdHVyZVsyMF07Cj4gKwl1MTYg dmVyc2lvbjsKPiArCXUxNiBoZWFkZXJfc2l6ZTsKPiArCXUxNiB2YnRfc2l6ZTsKPiArCXU4IHZi dF9jaGVja3N1bTsKPiArCXU4IHJlc2VydmVkMDsKPiArCXUzMiBiZGJfb2Zmc2V0Owo+ICsJdTMy IGFpbV9vZmZzZXRbNF07Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICsvKioKPiArICogc3RydWN0IGJk Yl9oZWFkZXIgLSBCREIgSGVhZGVyIHN0cnVjdHVyZQo+ICsgKiBAc2lnbmF0dXJlOgkJQkRCIHNp Z25hdHVyZSAiQklPU19EQVRBX0JMT0NLIgo+ICsgKiBAdmVyc2lvbjoJCVZlcnNpb24gb2YgdGhl IGRhdGEgYmxvY2sgZGVmaW5pdGlvbnMKPiArICogQGhlYWRlcl9zaXplOglTaXplIG9mIHRoaXMg c3RydWN0dXJlCj4gKyAqIEBiZGJfc2l6ZToJCVNpemUgb2YgQkRCIChCREIgSGVhZGVyIGFuZCBk YXRhIGJsb2NrcykKPiArICovCj4gK3N0cnVjdCBiZGJfaGVhZGVyIHsKPiArCXU4IHNpZ25hdHVy ZVsxNl07Cj4gKwl1MTYgdmVyc2lvbjsKPiArCXUxNiBoZWFkZXJfc2l6ZTsKPiArCXUxNiBiZGJf c2l6ZTsKPiArfSBfX3BhY2tlZDsKPiArCj4gKy8qIHN0cmljdGx5IHNwZWFraW5nLCB0aGlzIGlz IGEgInNraXAiIGJsb2NrLCBidXQgaXQgaGFzIGludGVyZXN0aW5nIGluZm8gKi8KPiArc3RydWN0 IHZiaW9zX2RhdGEgewo+ICsJdTggdHlwZTsgLyogMCA9PSBkZXNrdG9wLCAxID09IG1vYmlsZSAq Lwo+ICsJdTggcmVsc3RhZ2U7Cj4gKwl1OCBjaGlwc2V0Owo+ICsJdTggbHZkc19wcmVzZW50OjE7 Cj4gKwl1OCB0dl9wcmVzZW50OjE7Cj4gKwl1OCByc3ZkMjo2OyAvKiBmaW5pc2ggYnl0ZSAqLwo+ ICsJdTggcnN2ZDNbNF07Cj4gKwl1OCBzaWdub25bMTU1XTsKPiArCXU4IGNvcHlyaWdodFs2MV07 Cj4gKwl1MTYgY29kZV9zZWdtZW50Owo+ICsJdTggZG9zX2Jvb3RfbW9kZTsKPiArCXU4IGJhbmR3 aWR0aF9wZXJjZW50Owo+ICsJdTggcnN2ZDQ7IC8qIHBvcHVwIG1lbW9yeSBzaXplICovCj4gKwl1 OCByZXNpemVfcGNpX2Jpb3M7Cj4gKwl1OCByc3ZkNTsgLyogaXMgY3J0IGFscmVhZHkgb24gZGRj MiAqLwo+ICt9IF9fcGFja2VkOwo+ICsKPiArLyoKPiArICogVGhlcmUgYXJlIHNldmVyYWwgdHlw ZXMgb2YgQklPUyBkYXRhIGJsb2NrcyAoQkRCcyksIGVhY2ggYmxvY2sgaGFzCj4gKyAqIGFuIElE IGFuZCBzaXplIGluIHRoZSBmaXJzdCAzIGJ5dGVzIChJRCBpbiBmaXJzdCwgc2l6ZSBpbiBuZXh0 IDIpLgo+ICsgKiBLbm93biB0eXBlcyBhcmUgbGlzdGVkIGJlbG93Lgo+ICsgKi8KPiArI2RlZmlu ZSBCREJfR0VORVJBTF9GRUFUVVJFUwkgIDEKPiArI2RlZmluZSBCREJfR0VORVJBTF9ERUZJTklU SU9OUwkgIDIKPiArI2RlZmluZSBCREJfT0xEX1RPR0dMRV9MSVNUCSAgMwo+ICsjZGVmaW5lIEJE Ql9NT0RFX1NVUFBPUlRfTElTVAkgIDQKPiArI2RlZmluZSBCREJfR0VORVJJQ19NT0RFX1RBQkxF CSAgNQo+ICsjZGVmaW5lIEJEQl9FWFRfTU1JT19SRUdTCSAgNgo+ICsjZGVmaW5lIEJEQl9TV0Zf SU8JCSAgNwo+ICsjZGVmaW5lIEJEQl9TV0ZfTU1JTwkJICA4Cj4gKyNkZWZpbmUgQkRCX1BTUgkJ CSAgOQo+ICsjZGVmaW5lIEJEQl9NT0RFX1JFTU9WQUxfVEFCTEUJIDEwCj4gKyNkZWZpbmUgQkRC X0NISUxEX0RFVklDRV9UQUJMRQkgMTEKPiArI2RlZmluZSBCREJfRFJJVkVSX0ZFQVRVUkVTCSAx Mgo+ICsjZGVmaW5lIEJEQl9EUklWRVJfUEVSU0lTVEVOQ0UJIDEzCj4gKyNkZWZpbmUgQkRCX0VY VF9UQUJMRV9QVFJTCSAxNAo+ICsjZGVmaW5lIEJEQl9ET1RfQ0xPQ0tfT1ZFUlJJREUJIDE1Cj4g KyNkZWZpbmUgQkRCX0RJU1BMQVlfU0VMRUNUCSAxNgo+ICsvKiAxNyByc3ZkICovCj4gKyNkZWZp bmUgQkRCX0RSSVZFUl9ST1RBVElPTgkgMTgKPiArI2RlZmluZSBCREJfRElTUExBWV9SRU1PVkUJ IDE5Cj4gKyNkZWZpbmUgQkRCX09FTV9DVVNUT00JCSAyMAo+ICsjZGVmaW5lIEJEQl9FRlBfTElT VAkJIDIxIC8qIHdvcmthcm91bmRzIGZvciBWR0EgaHN5bmMvdnN5bmMgKi8KPiArI2RlZmluZSBC REJfU0RWT19MVkRTX09QVElPTlMJIDIyCj4gKyNkZWZpbmUgQkRCX1NEVk9fUEFORUxfRFREUwkg MjMKPiArI2RlZmluZSBCREJfU0RWT19MVkRTX1BOUF9JRFMJIDI0Cj4gKyNkZWZpbmUgQkRCX1NE Vk9fTFZEU19QT1dFUl9TRVEJIDI1Cj4gKyNkZWZpbmUgQkRCX1RWX09QVElPTlMJCSAyNgo+ICsj ZGVmaW5lIEJEQl9FRFAJCQkgMjcKPiArI2RlZmluZSBCREJfTFZEU19PUFRJT05TCSA0MAo+ICsj ZGVmaW5lIEJEQl9MVkRTX0xGUF9EQVRBX1BUUlMJIDQxCj4gKyNkZWZpbmUgQkRCX0xWRFNfTEZQ X0RBVEEJIDQyCj4gKyNkZWZpbmUgQkRCX0xWRFNfQkFDS0xJR0hUCSA0Mwo+ICsjZGVmaW5lIEJE Ql9MVkRTX1BPV0VSCQkgNDQKPiArI2RlZmluZSBCREJfTUlQSV9DT05GSUcJCSA1Mgo+ICsjZGVm aW5lIEJEQl9NSVBJX1NFUVVFTkNFCSA1Mwo+ICsjZGVmaW5lIEJEQl9TS0lQCQkyNTQgLyogVkJJ T1MgcHJpdmF0ZSBibG9jaywgaWdub3JlICovCj4gKwo+ICtzdHJ1Y3QgYmRiX2dlbmVyYWxfZmVh dHVyZXMgewo+ICsgICAgICAgIC8qIGJpdHMgMSAqLwo+ICsJdTggcGFuZWxfZml0dGluZzoyOwo+ ICsJdTggZmxleGFpbToxOwo+ICsJdTggbXNnX2VuYWJsZToxOwo+ICsJdTggY2xlYXJfc2NyZWVu OjM7Cj4gKwl1OCBjb2xvcl9mbGlwOjE7Cj4gKwo+ICsgICAgICAgIC8qIGJpdHMgMiAqLwo+ICsJ dTggZG93bmxvYWRfZXh0X3ZidDoxOwo+ICsJdTggZW5hYmxlX3NzYzoxOwo+ICsJdTggc3NjX2Zy ZXE6MTsKPiArCXU4IGVuYWJsZV9sZnBfb25fb3ZlcnJpZGU6MTsKPiArCXU4IGRpc2FibGVfc3Nj X2RkdDoxOwo+ICsJdTggcnN2ZDc6MTsKPiArCXU4IGRpc3BsYXlfY2xvY2tfbW9kZToxOwo+ICsJ dTggcnN2ZDg6MTsgLyogZmluaXNoIGJ5dGUgKi8KPiArCj4gKyAgICAgICAgLyogYml0cyAzICov Cj4gKwl1OCBkaXNhYmxlX3Ntb290aF92aXNpb246MTsKPiArCXU4IHNpbmdsZV9kdmk6MTsKPiAr CXU4IHJzdmQ5OjE7Cj4gKwl1OCBmZGlfcnhfcG9sYXJpdHlfaW52ZXJ0ZWQ6MTsKPiArCXU4IHJz dmQxMDo0OyAvKiBmaW5pc2ggYnl0ZSAqLwo+ICsKPiArICAgICAgICAvKiBiaXRzIDQgKi8KPiAr CXU4IGxlZ2FjeV9tb25pdG9yX2RldGVjdDsKPiArCj4gKyAgICAgICAgLyogYml0cyA1ICovCj4g Kwl1OCBpbnRfY3J0X3N1cHBvcnQ6MTsKPiArCXU4IGludF90dl9zdXBwb3J0OjE7Cj4gKwl1OCBp bnRfZWZwX3N1cHBvcnQ6MTsKPiArCXU4IGRwX3NzY19lbmI6MTsJLyogUENIIGF0dGFjaGVkIGVE UCBzdXBwb3J0cyBTU0MgKi8KPiArCXU4IGRwX3NzY19mcmVxOjE7CS8qIFNTQyBmcmVxIGZvciBQ Q0ggYXR0YWNoZWQgZURQICovCj4gKwl1OCByc3ZkMTE6MzsgLyogZmluaXNoIGJ5dGUgKi8KPiAr fSBfX3BhY2tlZDsKPiArCj4gKy8qIHByZS05MTUgKi8KPiArI2RlZmluZSBHUElPX1BJTl9EVklf TFZEUwkweDAzIC8qICJEVkkvTFZEUyBEREMgR1BJTyBwaW5zIiAqLwo+ICsjZGVmaW5lIEdQSU9f UElOX0FERF9JMkMJMHgwNSAvKiAiQUREQ0FSRCBJMkMgR1BJTyBwaW5zIiAqLwo+ICsjZGVmaW5l IEdQSU9fUElOX0FERF9EREMJMHgwNCAvKiAiQUREQ0FSRCBEREMgR1BJTyBwaW5zIiAqLwo+ICsj ZGVmaW5lIEdQSU9fUElOX0FERF9ERENfSTJDCTB4MDYgLyogIkFERENBUkQgRERDL0kyQyBHUElP IHBpbnMiICovCj4gKwo+ICsvKiBQcmUgOTE1ICovCj4gKyNkZWZpbmUgREVWSUNFX1RZUEVfTk9O RQkweDAwCj4gKyNkZWZpbmUgREVWSUNFX1RZUEVfQ1JUCQkweDAxCj4gKyNkZWZpbmUgREVWSUNF X1RZUEVfVFYJCTB4MDkKPiArI2RlZmluZSBERVZJQ0VfVFlQRV9FRlAJCTB4MTIKPiArI2RlZmlu ZSBERVZJQ0VfVFlQRV9MRlAJCTB4MjIKPiArLyogT24gOTE1KyAqLwo+ICsjZGVmaW5lIERFVklD RV9UWVBFX0NSVF9EUE1TCQkweDYwMDEKPiArI2RlZmluZSBERVZJQ0VfVFlQRV9DUlRfRFBNU19I T1RQTFVHCTB4NDAwMQo+ICsjZGVmaW5lIERFVklDRV9UWVBFX1RWX0NPTVBPU0lURQkweDAyMDkK PiArI2RlZmluZSBERVZJQ0VfVFlQRV9UVl9NQUNST1ZJU0lPTgkweDAyODkKPiArI2RlZmluZSBE RVZJQ0VfVFlQRV9UVl9SRl9DT01QT1NJVEUJMHgwMjBjCj4gKyNkZWZpbmUgREVWSUNFX1RZUEVf VFZfU1ZJREVPX0NPTVBPU0lURQkweDA2MDkKPiArI2RlZmluZSBERVZJQ0VfVFlQRV9UVl9TQ0FS VAkJMHgwMjA5Cj4gKyNkZWZpbmUgREVWSUNFX1RZUEVfVFZfQ09ERUNfSE9UUExVR19QV1IgMHg2 MDA5Cj4gKyNkZWZpbmUgREVWSUNFX1RZUEVfRUZQX0hPVFBMVUdfUFdSCTB4NjAxMgo+ICsjZGVm aW5lIERFVklDRV9UWVBFX0VGUF9EVklfSE9UUExVR19QV1IJMHg2MDUyCj4gKyNkZWZpbmUgREVW SUNFX1RZUEVfRUZQX0RWSV9JCQkweDYwNTMKPiArI2RlZmluZSBERVZJQ0VfVFlQRV9FRlBfRFZJ X0RfRFVBTAkweDYxNTIKPiArI2RlZmluZSBERVZJQ0VfVFlQRV9FRlBfRFZJX0RfSERDUAkweDYw ZDIKPiArI2RlZmluZSBERVZJQ0VfVFlQRV9PUEVOTERJX0hPVFBMVUdfUFdSCTB4NjA2Mgo+ICsj ZGVmaW5lIERFVklDRV9UWVBFX09QRU5MRElfRFVBTFBJWAkweDYxNjIKPiArI2RlZmluZSBERVZJ Q0VfVFlQRV9MRlBfUEFORUxMSU5LCTB4NTAxMgo+ICsjZGVmaW5lIERFVklDRV9UWVBFX0xGUF9D TU9TX1BXUgkweDUwNDIKPiArI2RlZmluZSBERVZJQ0VfVFlQRV9MRlBfTFZEU19QV1IJMHg1MDYy Cj4gKyNkZWZpbmUgREVWSUNFX1RZUEVfTEZQX0xWRFNfRFVBTAkweDUxNjIKPiArI2RlZmluZSBE RVZJQ0VfVFlQRV9MRlBfTFZEU19EVUFMX0hEQ1AJMHg1MWUyCj4gKwo+ICsjZGVmaW5lIERFVklD RV9DRkdfTk9ORQkJMHgwMAo+ICsjZGVmaW5lIERFVklDRV9DRkdfMTJCSVRfRFZPQgkweDAxCj4g KyNkZWZpbmUgREVWSUNFX0NGR18xMkJJVF9EVk9DCTB4MDIKPiArI2RlZmluZSBERVZJQ0VfQ0ZH XzI0QklUX0RWT0JDCTB4MDkKPiArI2RlZmluZSBERVZJQ0VfQ0ZHXzI0QklUX0RWT0NCCTB4MGEK PiArI2RlZmluZSBERVZJQ0VfQ0ZHX0RVQUxfRFZPQgkweDExCj4gKyNkZWZpbmUgREVWSUNFX0NG R19EVUFMX0RWT0MJMHgxMgo+ICsjZGVmaW5lIERFVklDRV9DRkdfRFVBTF9EVk9CQwkweDEzCj4g KyNkZWZpbmUgREVWSUNFX0NGR19EVUFMX0xJTktfRFZPQkMJMHgxOQo+ICsjZGVmaW5lIERFVklD RV9DRkdfRFVBTF9MSU5LX0RWT0NCCTB4MWEKPiArCj4gKyNkZWZpbmUgREVWSUNFX1dJUkVfTk9O RQkweDAwCj4gKyNkZWZpbmUgREVWSUNFX1dJUkVfRFZPQgkweDAxCj4gKyNkZWZpbmUgREVWSUNF X1dJUkVfRFZPQwkweDAyCj4gKyNkZWZpbmUgREVWSUNFX1dJUkVfRFZPQkMJMHgwMwo+ICsjZGVm aW5lIERFVklDRV9XSVJFX0RWT0JCCTB4MDUKPiArI2RlZmluZSBERVZJQ0VfV0lSRV9EVk9DQwkw eDA2Cj4gKyNkZWZpbmUgREVWSUNFX1dJUkVfRFZPQl9NQVNURVIgMHgwZAo+ICsjZGVmaW5lIERF VklDRV9XSVJFX0RWT0NfTUFTVEVSIDB4MGUKPiArCj4gKyNkZWZpbmUgREVWSUNFX1BPUlRfRFZP QQkweDAwIC8qIG5vbmUgb24gODQ1KyAqLwo+ICsjZGVmaW5lIERFVklDRV9QT1JUX0RWT0IJMHgw MQo+ICsjZGVmaW5lIERFVklDRV9QT1JUX0RWT0MJMHgwMgo+ICsKPiArLyoKPiArICogV2UgdXNl ZCB0byBrZWVwIHRoaXMgc3RydWN0IGJ1dCB3aXRob3V0IGFueSB2ZXJzaW9uIGNvbnRyb2wuIFdl IHNob3VsZCBhdm9pZAo+ICsgKiB1c2luZyBpdCBpbiB0aGUgZnV0dXJlLCBidXQgaXQgc2hvdWxk IGJlIHNhZmUgdG8ga2VlcCB1c2luZyBpdCBpbiB0aGUgb2xkCj4gKyAqIGNvZGUuIERvIG5vdCBj aGFuZ2U7IHdlIHJlbHkgb24gaXRzIHNpemUuCj4gKyAqLwo+ICtzdHJ1Y3Qgb2xkX2NoaWxkX2Rl dl9jb25maWcgewo+ICsJdTE2IGhhbmRsZTsKPiArCXUxNiBkZXZpY2VfdHlwZTsKPiArCXU4ICBk ZXZpY2VfaWRbMTBdOyAvKiBhc2NpaSBzdHJpbmcgKi8KPiArCXUxNiBhZGRpbl9vZmZzZXQ7Cj4g Kwl1OCAgZHZvX3BvcnQ7IC8qIFNlZSBEZXZpY2VfUE9SVF8qIGFib3ZlICovCj4gKwl1OCAgaTJj X3BpbjsKPiArCXU4ICBzbGF2ZV9hZGRyOwo+ICsJdTggIGRkY19waW47Cj4gKwl1MTYgZWRpZF9w dHI7Cj4gKwl1OCAgZHZvX2NmZzsgLyogU2VlIERFVklDRV9DRkdfKiBhYm92ZSAqLwo+ICsJdTgg IGR2bzJfcG9ydDsKPiArCXU4ICBpMmMyX3BpbjsKPiArCXU4ICBzbGF2ZTJfYWRkcjsKPiArCXU4 ICBkZGMyX3BpbjsKPiArCXU4ICBjYXBhYmlsaXRpZXM7Cj4gKwl1OCAgZHZvX3dpcmluZzsvKiBT ZWUgREVWSUNFX1dJUkVfKiBhYm92ZSAqLwo+ICsJdTggIGR2bzJfd2lyaW5nOwo+ICsJdTE2IGV4 dGVuZGVkX3R5cGU7Cj4gKwl1OCAgZHZvX2Z1bmN0aW9uOwo+ICt9IF9fcGFja2VkOwo+ICsKPiAr LyogVGhpcyBvbmUgY29udGFpbnMgZmllbGQgb2Zmc2V0cyB0aGF0IGFyZSBrbm93biB0byBiZSBj b21tb24gZm9yIGFsbCBCREIKPiArICogdmVyc2lvbnMuIE5vdGljZSB0aGF0IHRoZSBtZWFuaW5n IG9mIHRoZSBjb250ZW50cyBjb250ZW50cyBtYXkgc3RpbGwgY2hhbmdlLAo+ICsgKiBidXQgYXQg bGVhc3QgdGhlIG9mZnNldHMgYXJlIGNvbnNpc3RlbnQuICovCj4gKwo+ICsvKiBEZWZpbml0aW9u cyBmb3IgZmxhZ3NfMSAqLwo+ICsjZGVmaW5lIElCT09TVF9FTkFCTEUgKDE8PDMpCj4gKwo+ICtz dHJ1Y3QgY29tbW9uX2NoaWxkX2Rldl9jb25maWcgewo+ICsJdTE2IGhhbmRsZTsKPiArCXUxNiBk ZXZpY2VfdHlwZTsKPiArCXU4IG5vdF9jb21tb24xWzEyXTsKPiArCXU4IGR2b19wb3J0Owo+ICsJ dTggbm90X2NvbW1vbjJbMl07Cj4gKwl1OCBkZGNfcGluOwo+ICsJdTE2IGVkaWRfcHRyOwo+ICsJ dTggb2Jzb2xldGU7Cj4gKwl1OCBmbGFnc18xOwo+ICsJdTggbm90X2NvbW1vbjNbMTNdOwo+ICsJ dTggaWJvb3N0X2xldmVsOwo+ICt9IF9fcGFja2VkOwo+ICsKPiArCj4gKy8qIFRoaXMgZmllbGQg Y2hhbmdlcyBkZXBlbmRpbmcgb24gdGhlIEJEQiB2ZXJzaW9uLCBzbyB0aGUgbW9zdCByZWxpYWJs ZSB3YXkgdG8KPiArICogcmVhZCBpdCBpcyBieSBjaGVja2luZyB0aGUgQkRCIHZlcnNpb24gYW5k IHJlYWRpbmcgdGhlIHJhdyBwb2ludGVyLiAqLwo+ICt1bmlvbiBjaGlsZF9kZXZpY2VfY29uZmln IHsKPiArCS8qIFRoaXMgb25lIGlzIHNhZmUgdG8gYmUgdXNlZCBhbnl3aGVyZSwgYnV0IHRoZSBj b2RlIHNob3VsZCBzdGlsbCBjaGVjawo+ICsJICogdGhlIEJEQiB2ZXJzaW9uLiAqLwo+ICsJdTgg cmF3WzMzXTsKPiArCS8qIFRoaXMgb25lIHNob3VsZCBvbmx5IGJlIGtlcHQgZm9yIGxlZ2FjeSBj b2RlLiAqLwo+ICsJc3RydWN0IG9sZF9jaGlsZF9kZXZfY29uZmlnIG9sZDsKPiArCS8qIFRoaXMg b25lIHNob3VsZCBhbHNvIGJlIHNhZmUgdG8gdXNlIGFueXdoZXJlLCBldmVuIHdpdGhvdXQgdmVy c2lvbgo+ICsJICogY2hlY2tzLiAqLwo+ICsJc3RydWN0IGNvbW1vbl9jaGlsZF9kZXZfY29uZmln IGNvbW1vbjsKPiArfSBfX3BhY2tlZDsKPiArCj4gK3N0cnVjdCBiZGJfZ2VuZXJhbF9kZWZpbml0 aW9ucyB7Cj4gKwkvKiBEREMgR1BJTyAqLwo+ICsJdTggY3J0X2RkY19nbWJ1c19waW47Cj4gKwo+ ICsJLyogRFBNUyBiaXRzICovCj4gKwl1OCBkcG1zX2FjcGk6MTsKPiArCXU4IHNraXBfYm9vdF9j cnRfZGV0ZWN0OjE7Cj4gKwl1OCBkcG1zX2FpbToxOwo+ICsJdTggcnN2ZDE6NTsgLyogZmluaXNo IGJ5dGUgKi8KPiArCj4gKwkvKiBib290IGRldmljZSBiaXRzICovCj4gKwl1OCBib290X2Rpc3Bs YXlbMl07Cj4gKwl1OCBjaGlsZF9kZXZfc2l6ZTsKPiArCj4gKwkvKgo+ICsJICogRGV2aWNlIGlu Zm86Cj4gKwkgKiBJZiBUViBpcyBwcmVzZW50LCBpdCdsbCBiZSBhdCBkZXZpY2VzWzBdLgo+ICsJ ICogTFZEUyB3aWxsIGJlIG5leHQsIGVpdGhlciBkZXZpY2VzWzBdIG9yIFsxXSwgaWYgcHJlc2Vu dC4KPiArCSAqIE9uIHNvbWUgcGxhdGZvcm1zIHRoZSBudW1iZXIgb2YgZGV2aWNlIGlzIDYuIEJ1 dCBjb3VsZCBiZSBhcyBmZXcgYXMKPiArCSAqIDQgaWYgYm90aCBUViBhbmQgTFZEUyBhcmUgbWlz c2luZy4KPiArCSAqIEFuZCB0aGUgZGV2aWNlIG51bSBpcyByZWxhdGVkIHdpdGggdGhlIHNpemUg b2YgZ2VuZXJhbCBkZWZpbml0aW9uCj4gKwkgKiBibG9jay4gSXQgaXMgb2J0YWluZWQgYnkgdXNp bmcgdGhlIGZvbGxvd2luZyBmb3JtdWxhOgo+ICsJICogbnVtYmVyID0gKGJsb2NrX3NpemUgLSBz aXplb2YoYmRiX2dlbmVyYWxfZGVmaW5pdGlvbnMpKS8KPiArCSAqCSAgICAgZGVmcy0+Y2hpbGRf ZGV2X3NpemU7Cj4gKwkgKi8KPiArCXVpbnQ4X3QgZGV2aWNlc1swXTsKPiArfSBfX3BhY2tlZDsK PiArCj4gKy8qIE1hc2sgZm9yIERSUlMgLyBQYW5lbCBDaGFubmVsIC8gU1NDIC8gQkxUIGNvbnRy b2wgYml0cyBleHRyYWN0aW9uICovCj4gKyNkZWZpbmUgTU9ERV9NQVNLCQkweDMKPiArCj4gK3N0 cnVjdCBiZGJfbHZkc19vcHRpb25zIHsKPiArCXU4IHBhbmVsX3R5cGU7Cj4gKwl1OCByc3ZkMTsK PiArCS8qIExWRFMgY2FwYWJpbGl0aWVzLCBzdG9yZWQgaW4gYSBkd29yZCAqLwo+ICsJdTggcGZp dF9tb2RlOjI7Cj4gKwl1OCBwZml0X3RleHRfbW9kZV9lbmhhbmNlZDoxOwo+ICsJdTggcGZpdF9n ZnhfbW9kZV9lbmhhbmNlZDoxOwo+ICsJdTggcGZpdF9yYXRpb19hdXRvOjE7Cj4gKwl1OCBwaXhl bF9kaXRoZXI6MTsKPiArCXU4IGx2ZHNfZWRpZDoxOwo+ICsJdTggcnN2ZDI6MTsKPiArCXU4IHJz dmQ0Owo+ICsJLyogTFZEUyBQYW5lbCBjaGFubmVsIGJpdHMgc3RvcmVkIGhlcmUgKi8KPiArCXUz MiBsdmRzX3BhbmVsX2NoYW5uZWxfYml0czsKPiArCS8qIExWRFMgU1NDIChTcHJlYWQgU3BlY3Ry dW0gQ2xvY2spIGJpdHMgc3RvcmVkIGhlcmUuICovCj4gKwl1MTYgc3NjX2JpdHM7Cj4gKwl1MTYg c3NjX2ZyZXE7Cj4gKwl1MTYgc3NjX2RkdDsKPiArCS8qIFBhbmVsIGNvbG9yIGRlcHRoIGRlZmlu ZWQgaGVyZSAqLwo+ICsJdTE2IHBhbmVsX2NvbG9yX2RlcHRoOwo+ICsJLyogTFZEUyBwYW5lbCB0 eXBlIGJpdHMgc3RvcmVkIGhlcmUgKi8KPiArCXUzMiBkcHNfcGFuZWxfdHlwZV9iaXRzOwo+ICsJ LyogTFZEUyBiYWNrbGlnaHQgY29udHJvbCB0eXBlIGJpdHMgc3RvcmVkIGhlcmUgKi8KPiArCXUz MiBibHRfY29udHJvbF90eXBlX2JpdHM7Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICsvKiBMRlAgcG9p bnRlciB0YWJsZSBjb250YWlucyBlbnRyaWVzIHRvIHRoZSBzdHJ1Y3QgYmVsb3cgKi8KPiArc3Ry dWN0IGJkYl9sdmRzX2xmcF9kYXRhX3B0ciB7Cj4gKwl1MTYgZnBfdGltaW5nX29mZnNldDsgLyog b2Zmc2V0cyBhcmUgZnJvbSBzdGFydCBvZiBiZGIgKi8KPiArCXU4IGZwX3RhYmxlX3NpemU7Cj4g Kwl1MTYgZHZvX3RpbWluZ19vZmZzZXQ7Cj4gKwl1OCBkdm9fdGFibGVfc2l6ZTsKPiArCXUxNiBw YW5lbF9wbnBfaWRfb2Zmc2V0Owo+ICsJdTggcG5wX3RhYmxlX3NpemU7Cj4gK30gX19wYWNrZWQ7 Cj4gKwo+ICtzdHJ1Y3QgYmRiX2x2ZHNfbGZwX2RhdGFfcHRycyB7Cj4gKwl1OCBsdmRzX2VudHJp ZXM7IC8qIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGx2ZHNfZGF0YV9wdHIgc3RydWN0cyAqLwo+ ICsJc3RydWN0IGJkYl9sdmRzX2xmcF9kYXRhX3B0ciBwdHJbMTZdOwo+ICt9IF9fcGFja2VkOwo+ ICsKPiArLyogTEZQIGRhdGEgaGFzIDMgYmxvY2tzIHBlciBlbnRyeSAqLwo+ICtzdHJ1Y3QgbHZk c19mcF90aW1pbmcgewo+ICsJdTE2IHhfcmVzOwo+ICsJdTE2IHlfcmVzOwo+ICsJdTMyIGx2ZHNf cmVnOwo+ICsJdTMyIGx2ZHNfcmVnX3ZhbDsKPiArCXUzMiBwcF9vbl9yZWc7Cj4gKwl1MzIgcHBf b25fcmVnX3ZhbDsKPiArCXUzMiBwcF9vZmZfcmVnOwo+ICsJdTMyIHBwX29mZl9yZWdfdmFsOwo+ ICsJdTMyIHBwX2N5Y2xlX3JlZzsKPiArCXUzMiBwcF9jeWNsZV9yZWdfdmFsOwo+ICsJdTMyIHBm aXRfcmVnOwo+ICsJdTMyIHBmaXRfcmVnX3ZhbDsKPiArCXUxNiB0ZXJtaW5hdG9yOwo+ICt9IF9f cGFja2VkOwo+ICsKPiArc3RydWN0IGx2ZHNfZHZvX3RpbWluZyB7Cj4gKwl1MTYgY2xvY2s7CQkv Kio8IEluIDEwa2h6ICovCj4gKwl1OCBoYWN0aXZlX2xvOwo+ICsJdTggaGJsYW5rX2xvOwo+ICsJ dTggaGJsYW5rX2hpOjQ7Cj4gKwl1OCBoYWN0aXZlX2hpOjQ7Cj4gKwl1OCB2YWN0aXZlX2xvOwo+ ICsJdTggdmJsYW5rX2xvOwo+ICsJdTggdmJsYW5rX2hpOjQ7Cj4gKwl1OCB2YWN0aXZlX2hpOjQ7 Cj4gKwl1OCBoc3luY19vZmZfbG87Cj4gKwl1OCBoc3luY19wdWxzZV93aWR0aDsKPiArCXU4IHZz eW5jX3B1bHNlX3dpZHRoOjQ7Cj4gKwl1OCB2c3luY19vZmY6NDsKPiArCXU4IHJzdmQwOjY7Cj4g Kwl1OCBoc3luY19vZmZfaGk6MjsKPiArCXU4IGhfaW1hZ2U7Cj4gKwl1OCB2X2ltYWdlOwo+ICsJ dTggbWF4X2h2Owo+ICsJdTggaF9ib3JkZXI7Cj4gKwl1OCB2X2JvcmRlcjsKPiArCXU4IHJzdmQx OjM7Cj4gKwl1OCBkaWdpdGFsOjI7Cj4gKwl1OCB2c3luY19wb3NpdGl2ZToxOwo+ICsJdTggaHN5 bmNfcG9zaXRpdmU6MTsKPiArCXU4IHJzdmQyOjE7Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICtzdHJ1 Y3QgbHZkc19wbnBfaWQgewo+ICsJdTE2IG1mZ19uYW1lOwo+ICsJdTE2IHByb2R1Y3RfY29kZTsK PiArCXUzMiBzZXJpYWw7Cj4gKwl1OCBtZmdfd2VlazsKPiArCXU4IG1mZ195ZWFyOwo+ICt9IF9f cGFja2VkOwo+ICsKPiArc3RydWN0IGJkYl9sdmRzX2xmcF9kYXRhX2VudHJ5IHsKPiArCXN0cnVj dCBsdmRzX2ZwX3RpbWluZyBmcF90aW1pbmc7Cj4gKwlzdHJ1Y3QgbHZkc19kdm9fdGltaW5nIGR2 b190aW1pbmc7Cj4gKwlzdHJ1Y3QgbHZkc19wbnBfaWQgcG5wX2lkOwo+ICt9IF9fcGFja2VkOwo+ ICsKPiArc3RydWN0IGJkYl9sdmRzX2xmcF9kYXRhIHsKPiArCXN0cnVjdCBiZGJfbHZkc19sZnBf ZGF0YV9lbnRyeSBkYXRhWzE2XTsKPiArfSBfX3BhY2tlZDsKPiArCj4gKyNkZWZpbmUgQkRCX0JB Q0tMSUdIVF9UWVBFX05PTkUJMAo+ICsjZGVmaW5lIEJEQl9CQUNLTElHSFRfVFlQRV9QV00JMgo+ ICsKPiArc3RydWN0IGJkYl9sZnBfYmFja2xpZ2h0X2RhdGFfZW50cnkgewo+ICsJdTggdHlwZToy Owo+ICsJdTggYWN0aXZlX2xvd19wd206MTsKPiArCXU4IG9ic29sZXRlMTo1Owo+ICsJdTE2IHB3 bV9mcmVxX2h6Owo+ICsJdTggbWluX2JyaWdodG5lc3M7Cj4gKwl1OCBvYnNvbGV0ZTI7Cj4gKwl1 OCBvYnNvbGV0ZTM7Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICtzdHJ1Y3QgYmRiX2xmcF9iYWNrbGln aHRfZGF0YSB7Cj4gKwl1OCBlbnRyeV9zaXplOwo+ICsJc3RydWN0IGJkYl9sZnBfYmFja2xpZ2h0 X2RhdGFfZW50cnkgZGF0YVsxNl07Cj4gKwl1OCBsZXZlbFsxNl07Cj4gK30gX19wYWNrZWQ7Cj4g Kwo+ICtzdHJ1Y3QgYWltZGJfaGVhZGVyIHsKPiArCWNoYXIgc2lnbmF0dXJlWzE2XTsKPiArCWNo YXIgb2VtX2RldmljZVsyMF07Cj4gKwl1MTYgYWltZGJfdmVyc2lvbjsKPiArCXUxNiBhaW1kYl9o ZWFkZXJfc2l6ZTsKPiArCXUxNiBhaW1kYl9zaXplOwo+ICt9IF9fcGFja2VkOwo+ICsKPiArc3Ry dWN0IGFpbWRiX2Jsb2NrIHsKPiArCXU4IGFpbWRiX2lkOwo+ICsJdTE2IGFpbWRiX3NpemU7Cj4g K30gX19wYWNrZWQ7Cj4gKwo+ICtzdHJ1Y3QgdmNoX3BhbmVsX2RhdGEgewo+ICsJdTE2IGZwX3Rp bWluZ19vZmZzZXQ7Cj4gKwl1OCBmcF90aW1pbmdfc2l6ZTsKPiArCXUxNiBkdm9fdGltaW5nX29m ZnNldDsKPiArCXU4IGR2b190aW1pbmdfc2l6ZTsKPiArCXUxNiB0ZXh0X2ZpdHRpbmdfb2Zmc2V0 Owo+ICsJdTggdGV4dF9maXR0aW5nX3NpemU7Cj4gKwl1MTYgZ3JhcGhpY3NfZml0dGluZ19vZmZz ZXQ7Cj4gKwl1OCBncmFwaGljc19maXR0aW5nX3NpemU7Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICtz dHJ1Y3QgdmNoX2JkYl8yMiB7Cj4gKwlzdHJ1Y3QgYWltZGJfYmxvY2sgYWltZGJfYmxvY2s7Cj4g KwlzdHJ1Y3QgdmNoX3BhbmVsX2RhdGEgcGFuZWxzWzE2XTsKPiArfSBfX3BhY2tlZDsKPiArCj4g K3N0cnVjdCBiZGJfc2R2b19sdmRzX29wdGlvbnMgewo+ICsJdTggcGFuZWxfYmFja2xpZ2h0Owo+ ICsJdTggaDQwX3NldF9wYW5lbF90eXBlOwo+ICsJdTggcGFuZWxfdHlwZTsKPiArCXU4IHNzY19j bGtfZnJlcTsKPiArCXUxNiBhbHNfbG93X3RyaXA7Cj4gKwl1MTYgYWxzX2hpZ2hfdHJpcDsKPiAr CXU4IHNjbGFsYXJjb2VmZl90YWJfcm93X251bTsKPiArCXU4IHNjbGFsYXJjb2VmZl90YWJfcm93 X3NpemU7Cj4gKwl1OCBjb2VmZmljaWVudFs4XTsKPiArCXU4IHBhbmVsX21pc2NfYml0c18xOwo+ ICsJdTggcGFuZWxfbWlzY19iaXRzXzI7Cj4gKwl1OCBwYW5lbF9taXNjX2JpdHNfMzsKPiArCXU4 IHBhbmVsX21pc2NfYml0c180Owo+ICt9IF9fcGFja2VkOwo+ICsKPiArCj4gKyNkZWZpbmUgQkRC X0RSSVZFUl9GRUFUVVJFX05PX0xWRFMJCTAKPiArI2RlZmluZSBCREJfRFJJVkVSX0ZFQVRVUkVf SU5UX0xWRFMJCTEKPiArI2RlZmluZSBCREJfRFJJVkVSX0ZFQVRVUkVfU0RWT19MVkRTCQkyCj4g KyNkZWZpbmUgQkRCX0RSSVZFUl9GRUFUVVJFX0VEUAkJCTMKPiArCj4gK3N0cnVjdCBiZGJfZHJp dmVyX2ZlYXR1cmVzIHsKPiArCXU4IGJvb3RfZGV2X2FsZ29yaXRobToxOwo+ICsJdTggYmxvY2tf ZGlzcGxheV9zd2l0Y2g6MTsKPiArCXU4IGFsbG93X2Rpc3BsYXlfc3dpdGNoOjE7Cj4gKwl1OCBo b3RwbHVnX2R2bzoxOwo+ICsJdTggZHVhbF92aWV3X3pvb206MTsKPiArCXU4IGludDE1aF9ob29r OjE7Cj4gKwl1OCBzcHJpdGVfaW5fY2xvbmU6MTsKPiArCXU4IHByaW1hcnlfbGZwX2lkOjE7Cj4g Kwo+ICsJdTE2IGJvb3RfbW9kZV94Owo+ICsJdTE2IGJvb3RfbW9kZV95Owo+ICsJdTggYm9vdF9t b2RlX2JwcDsKPiArCXU4IGJvb3RfbW9kZV9yZWZyZXNoOwo+ICsKPiArCXUxNiBlbmFibGVfbGZw X3ByaW1hcnk6MTsKPiArCXUxNiBzZWxlY3RpdmVfbW9kZV9wcnVuaW5nOjE7Cj4gKwl1MTYgZHVh bF9mcmVxdWVuY3k6MTsKPiArCXUxNiByZW5kZXJfY2xvY2tfZnJlcToxOyAvKiAwOiBoaWdoIGZy ZXE7IDE6IGxvdyBmcmVxICovCj4gKwl1MTYgbnRfY2xvbmVfc3VwcG9ydDoxOwo+ICsJdTE2IHBv d2VyX3NjaGVtZV91aToxOyAvKiAwOiBDVUk7IDE6IDNyZCBwYXJ0eSAqLwo+ICsJdTE2IHNwcml0 ZV9kaXNwbGF5X2Fzc2lnbjoxOyAvKiAwOiBzZWNvbmRhcnk7IDE6IHByaW1hcnkgKi8KPiArCXUx NiBjdWlfYXNwZWN0X3NjYWxpbmc6MTsKPiArCXUxNiBwcmVzZXJ2ZV9hc3BlY3RfcmF0aW86MTsK PiArCXUxNiBzZHZvX2RldmljZV9wb3dlcl9kb3duOjE7Cj4gKwl1MTYgY3J0X2hvdHBsdWc6MTsK PiArCXUxNiBsdmRzX2NvbmZpZzoyOwo+ICsJdTE2IHR2X2hvdHBsdWc6MTsKPiArCXUxNiBoZG1p X2NvbmZpZzoyOwo+ICsKPiArCXU4IHN0YXRpY19kaXNwbGF5OjE7Cj4gKwl1OCByZXNlcnZlZDI6 NzsKPiArCXUxNiBsZWdhY3lfY3J0X21heF94Owo+ICsJdTE2IGxlZ2FjeV9jcnRfbWF4X3k7Cj4g Kwl1OCBsZWdhY3lfY3J0X21heF9yZWZyZXNoOwo+ICsKPiArCXU4IGhkbWlfdGVybWluYXRpb247 Cj4gKwl1OCBjdXN0b21fdmJ0X3ZlcnNpb247Cj4gKwkvKiBEcml2ZXIgZmVhdHVyZXMgZGF0YSBi bG9jayAqLwo+ICsJdTE2IHJtcG1fZW5hYmxlZDoxOwo+ICsJdTE2IHMyZGR0X2VuYWJsZWQ6MTsK PiArCXUxNiBkcHN0X2VuYWJsZWQ6MTsKPiArCXUxNiBibHRjbHRfZW5hYmxlZDoxOwo+ICsJdTE2 IGFkYl9lbmFibGVkOjE7Cj4gKwl1MTYgZHJyc19lbmFibGVkOjE7Cj4gKwl1MTYgZ3JzX2VuYWJs ZWQ6MTsKPiArCXUxNiBncG10X2VuYWJsZWQ6MTsKPiArCXUxNiB0YnRfZW5hYmxlZDoxOwo+ICsJ dTE2IHBzcl9lbmFibGVkOjE7Cj4gKwl1MTYgaXBzX2VuYWJsZWQ6MTsKPiArCXUxNiByZXNlcnZl ZDM6NDsKPiArCXUxNiBwY19mZWF0dXJlX3ZhbGlkOjE7Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICsj ZGVmaW5lIEVEUF8xOEJQUAkwCj4gKyNkZWZpbmUgRURQXzI0QlBQCTEKPiArI2RlZmluZSBFRFBf MzBCUFAJMgo+ICsjZGVmaW5lIEVEUF9SQVRFXzFfNjIJMAo+ICsjZGVmaW5lIEVEUF9SQVRFXzJf NwkxCj4gKyNkZWZpbmUgRURQX0xBTkVfMQkwCj4gKyNkZWZpbmUgRURQX0xBTkVfMgkxCj4gKyNk ZWZpbmUgRURQX0xBTkVfNAkzCj4gKyNkZWZpbmUgRURQX1BSRUVNUEhBU0lTX05PTkUJMAo+ICsj ZGVmaW5lIEVEUF9QUkVFTVBIQVNJU18zXzVkQgkxCj4gKyNkZWZpbmUgRURQX1BSRUVNUEhBU0lT XzZkQgkyCj4gKyNkZWZpbmUgRURQX1BSRUVNUEhBU0lTXzlfNWRCCTMKPiArI2RlZmluZSBFRFBf VlNXSU5HXzBfNFYJCTAKPiArI2RlZmluZSBFRFBfVlNXSU5HXzBfNlYJCTEKPiArI2RlZmluZSBF RFBfVlNXSU5HXzBfOFYJCTIKPiArI2RlZmluZSBFRFBfVlNXSU5HXzFfMlYJCTMKPiArCj4gKwo+ ICtzdHJ1Y3QgZWRwX2xpbmtfcGFyYW1zIHsKPiArCXU4IHJhdGU6NDsKPiArCXU4IGxhbmVzOjQ7 Cj4gKwl1OCBwcmVlbXBoYXNpczo0Owo+ICsJdTggdnN3aW5nOjQ7Cj4gK30gX19wYWNrZWQ7Cj4g Kwo+ICtzdHJ1Y3QgYmRiX2VkcCB7Cj4gKwlzdHJ1Y3QgZWRwX3Bvd2VyX3NlcSBwb3dlcl9zZXFz WzE2XTsKPiArCXUzMiBjb2xvcl9kZXB0aDsKPiArCXN0cnVjdCBlZHBfbGlua19wYXJhbXMgbGlu a19wYXJhbXNbMTZdOwo+ICsJdTMyIHNkcnJzX21zYV90aW1pbmdfZGVsYXk7Cj4gKwo+ICsJLyog aXRoIGJpdCBpbmRpY2F0ZXMgZW5hYmxlZC9kaXNhYmxlZCBmb3IgKGkrMSl0aCBwYW5lbCAqLwo+ ICsJdTE2IGVkcF9zM2RfZmVhdHVyZTsKPiArCXUxNiBlZHBfdDNfb3B0aW1pemF0aW9uOwo+ICsJ dTY0IGVkcF92c3dpbmdfcHJlZW1waDsJCS8qIHYxNzMgKi8KPiArfSBfX3BhY2tlZDsKPiArCj4g K3N0cnVjdCBwc3JfdGFibGUgewo+ICsJLyogRmVhdHVyZSBiaXRzICovCj4gKwl1OCBmdWxsX2xp bms6MTsKPiArCXU4IHJlcXVpcmVfYXV4X3RvX3dha2V1cDoxOwo+ICsJdTggZmVhdHVyZV9iaXRz X3JzdmQ6NjsKPiArCj4gKwkvKiBXYWl0IHRpbWVzICovCj4gKwl1OCBpZGxlX2ZyYW1lczo0Owo+ ICsJdTggbGluZXNfdG9fd2FpdDozOwo+ICsJdTggd2FpdF90aW1lc19yc3ZkOjE7Cj4gKwo+ICsJ LyogVFAgd2FrZSB1cCB0aW1lIGluIG11bHRpcGxlIG9mIDEwMCAqLwo+ICsJdTE2IHRwMV93YWtl dXBfdGltZTsKPiArCXUxNiB0cDJfdHAzX3dha2V1cF90aW1lOwo+ICt9IF9fcGFja2VkOwo+ICsK PiArc3RydWN0IGJkYl9wc3Igewo+ICsJc3RydWN0IHBzcl90YWJsZSBwc3JfdGFibGVbMTZdOwo+ ICt9IF9fcGFja2VkOwo+ICsKPiArLyoKPiArICogRHJpdmVyPC0+VkJJT1MgaW50ZXJhY3Rpb24g b2NjdXJzIHRocm91Z2ggc2NyYXRjaCBiaXRzIGluCj4gKyAqIEdSMTggJiBTV0YqLgo+ICsgKi8K PiArCj4gKy8qIEdSMTggYml0cyBhcmUgc2V0IG9uIGRpc3BsYXkgc3dpdGNoIGFuZCBob3RrZXkg ZXZlbnRzICovCj4gKyNkZWZpbmUgR1IxOF9EUklWRVJfU1dJVENIX0VOCSgxPDw3KSAvKiAwOiBW QklPUyBjb250cm9sLCAxOiBkcml2ZXIgY29udHJvbCAqLwo+ICsjZGVmaW5lIEdSMThfSE9US0VZ X01BU0sJMHg3OCAvKiBTZWUgYWxzbyBTV0Y0IDE1OjAgKi8KPiArI2RlZmluZSAgIEdSMThfSEtf Tk9ORQkJKDB4MDw8MykKPiArI2RlZmluZSAgIEdSMThfSEtfTEZQX1NUUkVUQ0gJKDB4MTw8MykK PiArI2RlZmluZSAgIEdSMThfSEtfVE9HR0xFX0RJU1AJKDB4Mjw8MykKPiArI2RlZmluZSAgIEdS MThfSEtfRElTUF9TV0lUQ0gJKDB4NDw8MykgLyogc2VlIFNXRjE0IDE1OjAgZm9yIHdoYXQgdG8g ZW5hYmxlICovCj4gKyNkZWZpbmUgICBHUjE4X0hLX1BPUFVQX0RJU0FCTEVEICgweDY8PDMpCj4g KyNkZWZpbmUgICBHUjE4X0hLX1BPUFVQX0VOQUJMRUQJKDB4Nzw8MykKPiArI2RlZmluZSAgIEdS MThfSEtfUEZJVAkJKDB4ODw8MykKPiArI2RlZmluZSAgIEdSMThfSEtfQVBNX0NIQU5HRQkoMHhh PDwzKQo+ICsjZGVmaW5lICAgR1IxOF9IS19NVUxUSVBMRQkoMHhjPDwzKQo+ICsjZGVmaW5lIEdS MThfVVNFUl9JTlRfRU4JKDE8PDIpCj4gKyNkZWZpbmUgR1IxOF9BMDAwMF9GTFVTSF9FTgkoMTw8 MSkKPiArI2RlZmluZSBHUjE4X1NNTV9FTgkJKDE8PDApCj4gKwo+ICsvKiBTZXQgYnkgZHJpdmVy LCBjbGVhcmVkIGJ5IFZCSU9TICovCj4gKyNkZWZpbmUgU1dGMDBfWVJFU19TSElGVAkxNgo+ICsj ZGVmaW5lIFNXRjAwX1hSRVNfU0hJRlQJMAo+ICsjZGVmaW5lIFNXRjAwX1JFU19NQVNLCQkweGZm ZmYKPiArCj4gKy8qIFNldCBieSBWQklPUyBhdCBib290IHRpbWUgYW5kIGRyaXZlciBhdCBydW50 aW1lICovCj4gKyNkZWZpbmUgU1dGMDFfVFYyX0ZPUk1BVF9TSElGVAk4Cj4gKyNkZWZpbmUgU1dG MDFfVFYxX0ZPUk1BVF9TSElGVAkwCj4gKyNkZWZpbmUgU1dGMDFfVFZfRk9STUFUX01BU0sJMHhm ZmZmCj4gKwo+ICsjZGVmaW5lIFNXRjEwX1ZCSU9TX0JMQ19JMkNfRU4JKDE8PDI5KQo+ICsjZGVm aW5lIFNXRjEwX0dUVF9PVkVSUklERV9FTgkoMTw8MjgpCj4gKyNkZWZpbmUgU1dGMTBfTEZQX0RQ TVNfT1ZSCSgxPDwyNykgLyogb3ZlcnJpZGUgRFBNUyBvbiBkaXNwbGF5IHN3aXRjaCAqLwo+ICsj ZGVmaW5lIFNXRjEwX0FDVElWRV9UT0dHTEVfTElTVF9NQVNLICg3PDwyNCkKPiArI2RlZmluZSAg IFNXRjEwX09MRF9UT0dHTEUJMHgwCj4gKyNkZWZpbmUgICBTV0YxMF9UT0dHTEVfTElTVF8xCTB4 MQo+ICsjZGVmaW5lICAgU1dGMTBfVE9HR0xFX0xJU1RfMgkweDIKPiArI2RlZmluZSAgIFNXRjEw X1RPR0dMRV9MSVNUXzMJMHgzCj4gKyNkZWZpbmUgICBTV0YxMF9UT0dHTEVfTElTVF80CTB4NAo+ ICsjZGVmaW5lIFNXRjEwX1BBTk5JTkdfRU4JKDE8PDIzKQo+ICsjZGVmaW5lIFNXRjEwX0RSSVZF Ul9MT0FERUQJKDE8PDIyKQo+ICsjZGVmaW5lIFNXRjEwX0VYVEVOREVEX0RFU0tUT1AJKDE8PDIx KQo+ICsjZGVmaW5lIFNXRjEwX0VYQ0xVU0lWRV9NT0RFCSgxPDwyMCkKPiArI2RlZmluZSBTV0Yx MF9PVkVSTEFZX0VOCSgxPDwxOSkKPiArI2RlZmluZSBTV0YxMF9QTEFORUJfSE9MRE9GRgkoMTw8 MTgpCj4gKyNkZWZpbmUgU1dGMTBfUExBTkVBX0hPTERPRkYJKDE8PDE3KQo+ICsjZGVmaW5lIFNX RjEwX1ZHQV9IT0xET0ZGCSgxPDwxNikKPiArI2RlZmluZSBTV0YxMF9BQ1RJVkVfRElTUF9NQVNL CTB4ZmZmZgo+ICsjZGVmaW5lICAgU1dGMTBfUElQRUJfTEZQMgkoMTw8MTUpCj4gKyNkZWZpbmUg ICBTV0YxMF9QSVBFQl9FRlAyCSgxPDwxNCkKPiArI2RlZmluZSAgIFNXRjEwX1BJUEVCX1RWMgko MTw8MTMpCj4gKyNkZWZpbmUgICBTV0YxMF9QSVBFQl9DUlQyCSgxPDwxMikKPiArI2RlZmluZSAg IFNXRjEwX1BJUEVCX0xGUAkoMTw8MTEpCj4gKyNkZWZpbmUgICBTV0YxMF9QSVBFQl9FRlAJKDE8 PDEwKQo+ICsjZGVmaW5lICAgU1dGMTBfUElQRUJfVFYJKDE8PDkpCj4gKyNkZWZpbmUgICBTV0Yx MF9QSVBFQl9DUlQJKDE8PDgpCj4gKyNkZWZpbmUgICBTV0YxMF9QSVBFQV9MRlAyCSgxPDw3KQo+ ICsjZGVmaW5lICAgU1dGMTBfUElQRUFfRUZQMgkoMTw8NikKPiArI2RlZmluZSAgIFNXRjEwX1BJ UEVBX1RWMgkoMTw8NSkKPiArI2RlZmluZSAgIFNXRjEwX1BJUEVBX0NSVDIJKDE8PDQpCj4gKyNk ZWZpbmUgICBTV0YxMF9QSVBFQV9MRlAJKDE8PDMpCj4gKyNkZWZpbmUgICBTV0YxMF9QSVBFQV9F RlAJKDE8PDIpCj4gKyNkZWZpbmUgICBTV0YxMF9QSVBFQV9UVgkoMTw8MSkKPiArI2RlZmluZSAg IFNXRjEwX1BJUEVBX0NSVAkoMTw8MCkKPiArCj4gKyNkZWZpbmUgU1dGMTFfTUVNT1JZX1NJWkVf U0hJRlQJMTYKPiArI2RlZmluZSBTV0YxMV9TVl9URVNUX0VOCSgxPDwxNSkKPiArI2RlZmluZSBT V0YxMV9JU19BR1AJCSgxPDwxNCkKPiArI2RlZmluZSBTV0YxMV9ESVNQTEFZX0hPTERPRkYJKDE8 PDEzKQo+ICsjZGVmaW5lIFNXRjExX0RQTVNfUkVEVUNFRAkoMTw8MTIpCj4gKyNkZWZpbmUgU1dG MTFfSVNfVkJFX01PREUJKDE8PDExKQo+ICsjZGVmaW5lIFNXRjExX1BJUEVCX0FDQ0VTUwkoMTw8 MTApIC8qIDAgaGVyZSBtZWFucyBwaXBlIGEgKi8KPiArI2RlZmluZSBTV0YxMV9EUE1TX01BU0sJ CTB4MDcKPiArI2RlZmluZSAgIFNXRjExX0RQTVNfT0ZGCSgxPDwyKQo+ICsjZGVmaW5lICAgU1dG MTFfRFBNU19TVVNQRU5ECSgxPDwxKQo+ICsjZGVmaW5lICAgU1dGMTFfRFBNU19TVEFOREJZCSgx PDwwKQo+ICsjZGVmaW5lICAgU1dGMTFfRFBNU19PTgkJMAo+ICsKPiArI2RlZmluZSBTV0YxNF9H RlhfUEZJVF9FTgkoMTw8MzEpCj4gKyNkZWZpbmUgU1dGMTRfVEVYVF9QRklUX0VOCSgxPDwzMCkK PiArI2RlZmluZSBTV0YxNF9MSURfU1RBVFVTX0NMT1NFRAkoMTw8MjkpIC8qIDAgaGVyZSBtZWFu cyBvcGVuICovCj4gKyNkZWZpbmUgU1dGMTRfUE9QVVBfRU4JCSgxPDwyOCkKPiArI2RlZmluZSBT V0YxNF9ESVNQTEFZX0hPTERPRkYJKDE8PDI3KQo+ICsjZGVmaW5lIFNXRjE0X0RJU1BfREVURUNU X0VOCSgxPDwyNikKPiArI2RlZmluZSBTV0YxNF9ET0NLSU5HX1NUQVRVU19ET0NLRUQgKDE8PDI1 KSAvKiAwIGhlcmUgbWVhbnMgdW5kb2NrZWQgKi8KPiArI2RlZmluZSBTV0YxNF9EUklWRVJfU1RB VFVTCSgxPDwyNCkKPiArI2RlZmluZSBTV0YxNF9PU19UWVBFX1dJTjlYCSgxPDwyMykKPiArI2Rl ZmluZSBTV0YxNF9PU19UWVBFX1dJTk5UCSgxPDwyMikKPiArLyogMjE6MTkgcnN2ZCAqLwo+ICsj ZGVmaW5lIFNXRjE0X1BNX1RZUEVfTUFTSwkweDAwMDcwMDAwCj4gKyNkZWZpbmUgICBTV0YxNF9Q TV9BQ1BJX1ZJREVPCSgweDQgPDwgMTYpCj4gKyNkZWZpbmUgICBTV0YxNF9QTV9BQ1BJCQkoMHgz IDw8IDE2KQo+ICsjZGVmaW5lICAgU1dGMTRfUE1fQVBNXzEyCSgweDIgPDwgMTYpCj4gKyNkZWZp bmUgICBTV0YxNF9QTV9BUE1fMTEJKDB4MSA8PCAxNikKPiArI2RlZmluZSBTV0YxNF9IS19SRVFV RVNUX01BU0sJMHgwMDAwZmZmZiAvKiBzZWUgR1IxOCA2OjMgZm9yIGV2ZW50IHR5cGUgKi8KPiAr ICAgICAgICAgIC8qIGlmIEdSMTggaW5kaWNhdGVzIGEgZGlzcGxheSBzd2l0Y2ggKi8KPiArI2Rl ZmluZSAgIFNXRjE0X0RTX1BJUEVCX0xGUDJfRU4gKDE8PDE1KQo+ICsjZGVmaW5lICAgU1dGMTRf RFNfUElQRUJfRUZQMl9FTiAoMTw8MTQpCj4gKyNkZWZpbmUgICBTV0YxNF9EU19QSVBFQl9UVjJf RU4gICgxPDwxMykKPiArI2RlZmluZSAgIFNXRjE0X0RTX1BJUEVCX0NSVDJfRU4gKDE8PDEyKQo+ ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfTEZQX0VOICAoMTw8MTEpCj4gKyNkZWZpbmUgICBT V0YxNF9EU19QSVBFQl9FRlBfRU4gICgxPDwxMCkKPiArI2RlZmluZSAgIFNXRjE0X0RTX1BJUEVC X1RWX0VOICAgKDE8PDkpCj4gKyNkZWZpbmUgICBTV0YxNF9EU19QSVBFQl9DUlRfRU4gICgxPDw4 KQo+ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQRUFfTEZQMl9FTiAoMTw8NykKPiArI2RlZmluZSAg IFNXRjE0X0RTX1BJUEVBX0VGUDJfRU4gKDE8PDYpCj4gKyNkZWZpbmUgICBTV0YxNF9EU19QSVBF QV9UVjJfRU4gICgxPDw1KQo+ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQRUFfQ1JUMl9FTiAoMTw8 NCkKPiArI2RlZmluZSAgIFNXRjE0X0RTX1BJUEVBX0xGUF9FTiAgKDE8PDMpCj4gKyNkZWZpbmUg ICBTV0YxNF9EU19QSVBFQV9FRlBfRU4gICgxPDwyKQo+ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQ RUFfVFZfRU4gICAoMTw8MSkKPiArI2RlZmluZSAgIFNXRjE0X0RTX1BJUEVBX0NSVF9FTiAgKDE8 PDApCj4gKyAgICAgICAgICAvKiBpZiBHUjE4IGluZGljYXRlcyBhIHBhbmVsIGZpdHRpbmcgcmVx dWVzdCAqLwo+ICsjZGVmaW5lICAgU1dGMTRfUEZJVF9FTgkJKDE8PDApIC8qIDAgbWVhbnMgZGlz YWJsZSAqLwo+ICsgICAgICAgICAgLyogaWYgR1IxOCBpbmRpY2F0ZXMgYW4gQVBNIGNoYW5nZSBy ZXF1ZXN0ICovCj4gKyNkZWZpbmUgICBTV0YxNF9BUE1fSElCRVJOQVRFCTB4NAo+ICsjZGVmaW5l ICAgU1dGMTRfQVBNX1NVU1BFTkQJMHgzCj4gKyNkZWZpbmUgICBTV0YxNF9BUE1fU1RBTkRCWQkw eDEKPiArI2RlZmluZSAgIFNXRjE0X0FQTV9SRVNUT1JFCTB4MAo+ICsKPiArLyogQWRkIHRoZSBk ZXZpY2UgY2xhc3MgZm9yIExGUCwgVFYsIEhETUkgKi8KPiArI2RlZmluZQkgREVWSUNFX1RZUEVf SU5UX0xGUAkweDEwMjIKPiArI2RlZmluZQkgREVWSUNFX1RZUEVfSU5UX1RWCTB4MTAwOQo+ICsj ZGVmaW5lCSBERVZJQ0VfVFlQRV9IRE1JCTB4NjBEMgo+ICsjZGVmaW5lCSBERVZJQ0VfVFlQRV9E UAkJMHg2OEM2Cj4gKyNkZWZpbmUJIERFVklDRV9UWVBFX2VEUAkweDc4QzYKPiArCj4gKyNkZWZp bmUgIERFVklDRV9UWVBFX0NMQVNTX0VYVEVOU0lPTgkoMSA8PCAxNSkKPiArI2RlZmluZSAgREVW SUNFX1RZUEVfUE9XRVJfTUFOQUdFTUVOVAkoMSA8PCAxNCkKPiArI2RlZmluZSAgREVWSUNFX1RZ UEVfSE9UUExVR19TSUdOQUxJTkcJKDEgPDwgMTMpCj4gKyNkZWZpbmUgIERFVklDRV9UWVBFX0lO VEVSTkFMX0NPTk5FQ1RPUgkoMSA8PCAxMikKPiArI2RlZmluZSAgREVWSUNFX1RZUEVfTk9UX0hE TUlfT1VUUFVUCSgxIDw8IDExKQo+ICsjZGVmaW5lICBERVZJQ0VfVFlQRV9NSVBJX09VVFBVVAko MSA8PCAxMCkKPiArI2RlZmluZSAgREVWSUNFX1RZUEVfQ09NUE9TSVRFX09VVFBVVAkoMSA8PCA5 KQo+ICsjZGVmaW5lICBERVZJQ0VfVFlQRV9EVUFMX0NIQU5ORUwJKDEgPDwgOCkKPiArI2RlZmlu ZSAgREVWSUNFX1RZUEVfSElHSF9TUEVFRF9MSU5LCSgxIDw8IDYpCj4gKyNkZWZpbmUgIERFVklD RV9UWVBFX0xWRFNfU0lOR0FMSU5HCSgxIDw8IDUpCj4gKyNkZWZpbmUgIERFVklDRV9UWVBFX1RN RFNfRFZJX1NJR05BTElORwkoMSA8PCA0KQo+ICsjZGVmaW5lICBERVZJQ0VfVFlQRV9WSURFT19T SUdOQUxJTkcJKDEgPDwgMykKPiArI2RlZmluZSAgREVWSUNFX1RZUEVfRElTUExBWVBPUlRfT1VU UFVUCSgxIDw8IDIpCj4gKyNkZWZpbmUgIERFVklDRV9UWVBFX0RJR0lUQUxfT1VUUFVUCSgxIDw8 IDEpCj4gKyNkZWZpbmUgIERFVklDRV9UWVBFX0FOQUxPR19PVVRQVVQJKDEgPDwgMCkKPiArCj4g Ky8qCj4gKyAqIEJpdHMgd2UgY2FyZSBhYm91dCB3aGVuIGNoZWNraW5nIGZvciBERVZJQ0VfVFlQ RV9lRFAKPiArICogRGVwZW5kaW5nIG9uIHRoZSBzeXN0ZW0sIHRoZSBvdGhlciBiaXRzIG1heSBv ciBtYXkgbm90Cj4gKyAqIGJlIHNldCBmb3IgZURQIG91dHB1dHMuCj4gKyAqLwo+ICsjZGVmaW5l IERFVklDRV9UWVBFX2VEUF9CSVRTIFwKPiArCShERVZJQ0VfVFlQRV9JTlRFUk5BTF9DT05ORUNU T1IgfCBcCj4gKwkgREVWSUNFX1RZUEVfTUlQSV9PVVRQVVQgfCBcCj4gKwkgREVWSUNFX1RZUEVf Q09NUE9TSVRFX09VVFBVVCB8IFwKPiArCSBERVZJQ0VfVFlQRV9EVUFMX0NIQU5ORUwgfCBcCj4g KwkgREVWSUNFX1RZUEVfTFZEU19TSU5HQUxJTkcgfCBcCj4gKwkgREVWSUNFX1RZUEVfVE1EU19E VklfU0lHTkFMSU5HIHwgXAo+ICsJIERFVklDRV9UWVBFX1ZJREVPX1NJR05BTElORyB8IFwKPiAr CSBERVZJQ0VfVFlQRV9ESVNQTEFZUE9SVF9PVVRQVVQgfCBcCj4gKwkgREVWSUNFX1RZUEVfQU5B TE9HX09VVFBVVCkKPiArCj4gKy8qIGRlZmluZSB0aGUgRFZPIHBvcnQgZm9yIEhETUkgb3V0cHV0 IHR5cGUgKi8KPiArI2RlZmluZQkJRFZPX0IJCTEKPiArI2RlZmluZQkJRFZPX0MJCTIKPiArI2Rl ZmluZQkJRFZPX0QJCTMKPiArCj4gKy8qIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhlICJEVk8gUG9y dCIgZmllbGQgZm9yIHZlcnNpb25zID49IDE1NTogKi8KPiArI2RlZmluZSBEVk9fUE9SVF9IRE1J QQkwCj4gKyNkZWZpbmUgRFZPX1BPUlRfSERNSUIJMQo+ICsjZGVmaW5lIERWT19QT1JUX0hETUlD CTIKPiArI2RlZmluZSBEVk9fUE9SVF9IRE1JRAkzCj4gKyNkZWZpbmUgRFZPX1BPUlRfTFZEUwk0 Cj4gKyNkZWZpbmUgRFZPX1BPUlRfVFYJNQo+ICsjZGVmaW5lIERWT19QT1JUX0NSVAk2Cj4gKyNk ZWZpbmUgRFZPX1BPUlRfRFBCCTcKPiArI2RlZmluZSBEVk9fUE9SVF9EUEMJOAo+ICsjZGVmaW5l IERWT19QT1JUX0RQRAk5Cj4gKyNkZWZpbmUgRFZPX1BPUlRfRFBBCTEwCj4gKyNkZWZpbmUgRFZP X1BPUlRfRFBFCTExCj4gKyNkZWZpbmUgRFZPX1BPUlRfSERNSUUJMTIKPiArI2RlZmluZSBEVk9f UE9SVF9NSVBJQQkyMQo+ICsjZGVmaW5lIERWT19QT1JUX01JUElCCTIyCj4gKyNkZWZpbmUgRFZP X1BPUlRfTUlQSUMJMjMKPiArI2RlZmluZSBEVk9fUE9SVF9NSVBJRAkyNAo+ICsKPiArLyogQmxv Y2sgNTIgY29udGFpbnMgTUlQSSBjb25maWd1cmF0aW9uIGJsb2NrCj4gKyAqIDYgKiBiZGJfbWlw aV9jb25maWcsIGZvbGxvd2VkIGJ5IDYgcHBzIGRhdGEgYmxvY2sKPiArICogYmxvY2sgYmVsb3cK PiArICovCj4gKyNkZWZpbmUgTUFYX01JUElfQ09ORklHVVJBVElPTlMJNgo+ICsKPiArc3RydWN0 IGJkYl9taXBpX2NvbmZpZyB7Cj4gKwlzdHJ1Y3QgbWlwaV9jb25maWcgY29uZmlnW01BWF9NSVBJ X0NPTkZJR1VSQVRJT05TXTsKPiArCXN0cnVjdCBtaXBpX3Bwc19kYXRhIHBwc1tNQVhfTUlQSV9D T05GSUdVUkFUSU9OU107Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICsvKiBCbG9jayA1MyBjb250YWlu cyBNSVBJIHNlcXVlbmNlcyBhcyBuZWVkZWQgYnkgdGhlIHBhbmVsCj4gKyAqIGZvciBlbmFibGlu ZyBpdC4gVGhpcyBibG9jayBjYW4gYmUgdmFyaWFibGUgaW4gc2l6ZSBhbmQKPiArICogY2FuIGJl IG1heGltdW0gb2YgNiBibG9ja3MKPiArICovCj4gK3N0cnVjdCBiZGJfbWlwaV9zZXF1ZW5jZSB7 Cj4gKwl1OCB2ZXJzaW9uOwo+ICsJdTggZGF0YVswXTsKPiArfSBfX3BhY2tlZDsKPiArCj4gK2Vu dW0gbWlwaV9ncGlvX3Bpbl9pbmRleCB7Cj4gKwlNSVBJX0dQSU9fVU5ERUZJTkVEID0gMCwKPiAr CU1JUElfR1BJT19QQU5FTF9FTkFCTEUsCj4gKwlNSVBJX0dQSU9fQkxfRU5BQkxFLAo+ICsJTUlQ SV9HUElPX1BXTV9FTkFCTEUsCj4gKwlNSVBJX0dQSU9fUkVTRVRfTiwKPiArCU1JUElfR1BJT19Q V1JfRE9XTl9SLAo+ICsJTUlQSV9HUElPX1NUREJZX1JTVF9OLAo+ICsJTUlQSV9HUElPX01BWAo+ ICt9Owo+ICsKPiArI2VuZGlmIC8qIF9JTlRFTF9CSU9TX1BSSVZBVEVfSF8gKi8KCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=