From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Richter Subject: Re: [PATCH 10/16] drm/i915: Rewrite ns2501 driver a bit Date: Fri, 15 Aug 2014 15:13:25 +0200 Message-ID: <53EE0775.2070007@rus.uni-stuttgart.de> References: <1408054928-24141-1-git-send-email-ville.syrjala@linux.intel.com> <1408054928-24141-11-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from charon.rus.uni-stuttgart.de (charon.rus.uni-stuttgart.de [129.69.192.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 852646E7DD for ; Fri, 15 Aug 2014 06:13:36 -0700 (PDT) In-Reply-To: <1408054928-24141-11-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org, Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gMTUuMDguMjAxNCAwMDoyMiwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6 Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pgo+IFRyeSB0byB1c2UgdGhlIHNhbWUgcHJvZ3JhbW1pbmcgc2VxdWVuY2UgYXMgdXNlZCBieSB0 aGUgSUVHRCBkcml2ZXIuCj4KPiBBbHNvIHNob3ZlbCB0aGUgbWFnaWMgcmVnaXN0ZXIgdmFsdWVz IGludG8gYSBiaWcgc3RhdGljIGNvbnN0IGFycmF5Lgo+Cj4gVGhlIHJlZ2lzdGVyIHZhbHVlcyBh cmUgYWN0dWFsbHkgdGhlIGJhc2VkIG9uIHdoYXQgdGhlIEJJT1MgcHJvZ3JhbXMKPiBvbiB0aGUg RnVqaXRzdS1TaWVtZW5zIExpZmVib29rIFM2MDEwLiBJRUdEIHNlZW1lZCB0byBoYXZlIGhhcmRj b2RlZAo+IHJlZ2lzdGVyIHZhbHVlcyAod2hpY2ggYWxzbyBlbmFibGVkIHRoZSBzY2FsZXIgZm9y IDEwMjR4NzY4IG1vZGUpLgo+IEhvd2V2ZXIgdGhvc2UgZGlkbid0IGFjdHVhbGx5IHdvcmsgc28g d2VsbCBvbiB0aGUgUzYwMTAuIFBvc3NpYmx5IHRoZQo+IHBpcGUgdGltaW5ncyB0aGF0IGdvdCB1 c2VkIGRpZG4ndCBtYXRjaCB0aGUgbnMyNTAxIGNvbmZpZ3VyYXRpb24uCgpMb29rcyBmaW5lLiBI YXJkIHRvIHNheSB3aGF0IHRoZXNlIHZhbHVlcyBhY3R1YWxseSBtZWFuLCBJIHRyaWVkIHRvIGZp bmQgCnNvbWUgcmVhc29uYWJsZSBhbGdvcml0aG0gdG8gZGVyaXZlIHRoZW0sIGJ1dCBoYWQgbGl0 dGxlIHN1Y2Nlc3MuIFRoZSAKY3VycmVudCBzZXQgb2YgdmFsdWVzIGlzIHdvcmtpbmcgZm9yIHRo ZSBTNjAxMCwgdGhvdWdoIHByb2JhYmx5IG5vdCBmb3IgCm90aGVyIGRldmljZXMgdXNpbmcgdGhl IHNhbWUgRFZPIGJ1dCBoYXZpbmcgYSBkaWZmZXJlbnQgZGlzcGxheSBzaXplLgoKU2lnbmVkLW9m Zi1ieTogVGhvbWFzIFJpY2h0ZXIgPHJpY2h0ZXJAcnVzLnVuaS1zdHV0dGdhcnQuZGU+CgoKCgo+ IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kdm9fbnMyNTAxLmMgfCA1Mjkg KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPiAgIDEgZmlsZSBjaGFuZ2Vk LCAzMjUgaW5zZXJ0aW9ucygrKSwgMjA0IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2R2b19uczI1MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2R2 b19uczI1MDEuYwo+IGluZGV4IDg1MDMwZDQuLmIyNzg1NzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZHZvX25zMjUwMS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZHZvX25zMjUwMS5jCj4gQEAgLTYwLDE2ICs2MCwyOTEgQEAKPgo+ICAgI2RlZmluZSBOUzI1MDFf UkVHQyAweDBjCj4KPiArZW51bSB7Cj4gKwlNT0RFXzY0MHg0ODAsCj4gKwlNT0RFXzgwMHg2MDAs Cj4gKwlNT0RFXzEwMjR4NzY4LAo+ICt9Owo+ICsKPiArc3RydWN0IG5zMjUwMV9yZWcgewo+ICsJ IHVpbnQ4X3Qgb2Zmc2V0Owo+ICsJIHVpbnQ4X3QgdmFsdWU7Cj4gK307Cj4gKwo+ICsvKgo+ICsg KiBNYWdpYyB2YWx1ZXMgYmFzZWQgb24gd2hhdCB0aGUgQklPUyBvbgo+ICsgKiBGdWppdHN1LVNp ZW1lbnMgTGlmZWJvb2sgUzYwMTAgcHJvZ3JhbXMgKDEwMjR4NzY4IHBhbmVsKS4KPiArICovCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgbnMyNTAxX3JlZyByZWdzXzEwMjR4NzY4W11bODZdID0gewo+ ICsJW01PREVfNjQweDQ4MF0gPSB7Cj4gKwkJWzBdID0geyAub2Zmc2V0ID0gMHgwYSwgLnZhbHVl ID0gMHg4MSwgfSwKPiArCQlbMV0gPSB7IC5vZmZzZXQgPSAweDE4LCAudmFsdWUgPSAweDA3LCB9 LAo+ICsJCVsyXSA9IHsgLm9mZnNldCA9IDB4MTksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzNd ID0geyAub2Zmc2V0ID0gMHgxYSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNF0gPSB7IC5vZmZz ZXQgPSAweDFiLCAudmFsdWUgPSAweDExLCB9LAo+ICsJCVs1XSA9IHsgLm9mZnNldCA9IDB4MWMs IC52YWx1ZSA9IDB4NTQsIH0sCj4gKwkJWzZdID0geyAub2Zmc2V0ID0gMHgxZCwgLnZhbHVlID0g MHgwMywgfSwKPiArCQlbN10gPSB7IC5vZmZzZXQgPSAweDFlLCAudmFsdWUgPSAweDAyLCB9LAo+ ICsJCVs4XSA9IHsgLm9mZnNldCA9IDB4ZjMsIC52YWx1ZSA9IDB4OTAsIH0sCj4gKwkJWzldID0g eyAub2Zmc2V0ID0gMHhmOSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMTBdID0geyAub2Zmc2V0 ID0gMHhjMSwgLnZhbHVlID0gMHg5MCwgfSwKPiArCQlbMTFdID0geyAub2Zmc2V0ID0gMHhjMiwg LnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMTJdID0geyAub2Zmc2V0ID0gMHhjMywgLnZhbHVlID0g MHgwZiwgfSwKPiArCQlbMTNdID0geyAub2Zmc2V0ID0gMHhjNCwgLnZhbHVlID0gMHgwMywgfSwK PiArCQlbMTRdID0geyAub2Zmc2V0ID0gMHhjNSwgLnZhbHVlID0gMHgxNiwgfSwKPiArCQlbMTVd ID0geyAub2Zmc2V0ID0gMHhjNiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMTZdID0geyAub2Zm c2V0ID0gMHhjNywgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbMTddID0geyAub2Zmc2V0ID0gMHhj OCwgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbMThdID0geyAub2Zmc2V0ID0gMHhmNCwgLnZhbHVl ID0gMHgwMCwgfSwKPiArCQlbMTldID0geyAub2Zmc2V0ID0gMHg4MCwgLnZhbHVlID0gMHhmZiwg fSwKPiArCQlbMjBdID0geyAub2Zmc2V0ID0gMHg4MSwgLnZhbHVlID0gMHgwNywgfSwKPiArCQlb MjFdID0geyAub2Zmc2V0ID0gMHg4MiwgLnZhbHVlID0gMHgzZCwgfSwKPiArCQlbMjJdID0geyAu b2Zmc2V0ID0gMHg4MywgLnZhbHVlID0gMHgwNSwgfSwKPiArCQlbMjNdID0geyAub2Zmc2V0ID0g MHg5NCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMjRdID0geyAub2Zmc2V0ID0gMHg5NSwgLnZh bHVlID0gMHgwMCwgfSwKPiArCQlbMjVdID0geyAub2Zmc2V0ID0gMHg5NiwgLnZhbHVlID0gMHgw NSwgfSwKPiArCQlbMjZdID0geyAub2Zmc2V0ID0gMHg5NywgLnZhbHVlID0gMHgwMCwgfSwKPiAr CQlbMjddID0geyAub2Zmc2V0ID0gMHg5YSwgLnZhbHVlID0gMHg4OCwgfSwKPiArCQlbMjhdID0g eyAub2Zmc2V0ID0gMHg5YiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMjldID0geyAub2Zmc2V0 ID0gMHg5OCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMzBdID0geyAub2Zmc2V0ID0gMHg5OSwg LnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMzFdID0geyAub2Zmc2V0ID0gMHhmNywgLnZhbHVlID0g MHg4OCwgfSwKPiArCQlbMzJdID0geyAub2Zmc2V0ID0gMHhmOCwgLnZhbHVlID0gMHgwYSwgfSwK PiArCQlbMzNdID0geyAub2Zmc2V0ID0gMHg5YywgLnZhbHVlID0gMHgyNCwgfSwKPiArCQlbMzRd ID0geyAub2Zmc2V0ID0gMHg5ZCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMzVdID0geyAub2Zm c2V0ID0gMHg5ZSwgLnZhbHVlID0gMHgyNSwgfSwKPiArCQlbMzZdID0geyAub2Zmc2V0ID0gMHg5 ZiwgLnZhbHVlID0gMHgwMywgfSwKPiArCQlbMzddID0geyAub2Zmc2V0ID0gMHhhMCwgLnZhbHVl ID0gMHgyOCwgfSwKPiArCQlbMzhdID0geyAub2Zmc2V0ID0gMHhhMSwgLnZhbHVlID0gMHgwMSwg fSwKPiArCQlbMzldID0geyAub2Zmc2V0ID0gMHhhMiwgLnZhbHVlID0gMHgyOCwgfSwKPiArCQlb NDBdID0geyAub2Zmc2V0ID0gMHhhMywgLnZhbHVlID0gMHgwNSwgfSwKPiArCQlbNDFdID0geyAu b2Zmc2V0ID0gMHhiNiwgLnZhbHVlID0gMHgwOSwgfSwKPiArCQlbNDJdID0geyAub2Zmc2V0ID0g MHhiOCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNDNdID0geyAub2Zmc2V0ID0gMHhiOSwgLnZh bHVlID0gMHhhMCwgfSwKPiArCQlbNDRdID0geyAub2Zmc2V0ID0gMHhiYSwgLnZhbHVlID0gMHgw MCwgfSwKPiArCQlbNDVdID0geyAub2Zmc2V0ID0gMHhiYiwgLnZhbHVlID0gMHgyMCwgfSwKPiAr CQlbNDZdID0geyAub2Zmc2V0ID0gMHgxMCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNDddID0g eyAub2Zmc2V0ID0gMHgxMSwgLnZhbHVlID0gMHhhMCwgfSwKPiArCQlbNDhdID0geyAub2Zmc2V0 ID0gMHgxMiwgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbNDldID0geyAub2Zmc2V0ID0gMHgyMCwg LnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNTBdID0geyAub2Zmc2V0ID0gMHgyMiwgLnZhbHVlID0g MHgwMCwgfSwKPiArCQlbNTFdID0geyAub2Zmc2V0ID0gMHgyMywgLnZhbHVlID0gMHgwMCwgfSwK PiArCQlbNTJdID0geyAub2Zmc2V0ID0gMHgyNCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNTNd ID0geyAub2Zmc2V0ID0gMHgyNSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNTRdID0geyAub2Zm c2V0ID0gMHg4YywgLnZhbHVlID0gMHgxMCwgfSwKPiArCQlbNTVdID0geyAub2Zmc2V0ID0gMHg4 ZCwgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbNTZdID0geyAub2Zmc2V0ID0gMHg4ZSwgLnZhbHVl ID0gMHgxMCwgfSwKPiArCQlbNTddID0geyAub2Zmc2V0ID0gMHg4ZiwgLnZhbHVlID0gMHgwMCwg fSwKPiArCQlbNThdID0geyAub2Zmc2V0ID0gMHg5MCwgLnZhbHVlID0gMHhmZiwgfSwKPiArCQlb NTldID0geyAub2Zmc2V0ID0gMHg5MSwgLnZhbHVlID0gMHgwNywgfSwKPiArCQlbNjBdID0geyAu b2Zmc2V0ID0gMHg5MiwgLnZhbHVlID0gMHhhMCwgfSwKPiArCQlbNjFdID0geyAub2Zmc2V0ID0g MHg5MywgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbNjJdID0geyAub2Zmc2V0ID0gMHhhNSwgLnZh bHVlID0gMHgwMCwgfSwKPiArCQlbNjNdID0geyAub2Zmc2V0ID0gMHhhNiwgLnZhbHVlID0gMHgw MCwgfSwKPiArCQlbNjRdID0geyAub2Zmc2V0ID0gMHhhNywgLnZhbHVlID0gMHgwMCwgfSwKPiAr CQlbNjVdID0geyAub2Zmc2V0ID0gMHhhOCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNjZdID0g eyAub2Zmc2V0ID0gMHhhOSwgLnZhbHVlID0gMHgwNCwgfSwKPiArCQlbNjddID0geyAub2Zmc2V0 ID0gMHhhYSwgLnZhbHVlID0gMHg3MCwgfSwKPiArCQlbNjhdID0geyAub2Zmc2V0ID0gMHhhYiwg LnZhbHVlID0gMHg0ZiwgfSwKPiArCQlbNjldID0geyAub2Zmc2V0ID0gMHhhYywgLnZhbHVlID0g MHgwMCwgfSwKPiArCQlbNzBdID0geyAub2Zmc2V0ID0gMHhhNCwgLnZhbHVlID0gMHg4NCwgfSwK PiArCQlbNzFdID0geyAub2Zmc2V0ID0gMHg3ZSwgLnZhbHVlID0gMHgxOCwgfSwKPiArCQlbNzJd ID0geyAub2Zmc2V0ID0gMHg4NCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNzNdID0geyAub2Zm c2V0ID0gMHg4NSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNzRdID0geyAub2Zmc2V0ID0gMHg4 NiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNzVdID0geyAub2Zmc2V0ID0gMHg4NywgLnZhbHVl ID0gMHgwMCwgfSwKPiArCQlbNzZdID0geyAub2Zmc2V0ID0gMHg4OCwgLnZhbHVlID0gMHgwMCwg fSwKPiArCQlbNzddID0geyAub2Zmc2V0ID0gMHg4OSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlb NzhdID0geyAub2Zmc2V0ID0gMHg4YSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNzldID0geyAu b2Zmc2V0ID0gMHg4YiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbODBdID0geyAub2Zmc2V0ID0g MHgyNiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbODFdID0geyAub2Zmc2V0ID0gMHgyNywgLnZh bHVlID0gMHgwMCwgfSwKPiArCQlbODJdID0geyAub2Zmc2V0ID0gMHhhZCwgLnZhbHVlID0gMHgw MCwgfSwKPiArCQlbODNdID0geyAub2Zmc2V0ID0gMHgwOCwgLnZhbHVlID0gMHgzMCwgfSwgLyog MHgzMSAqLwo+ICsJCVs4NF0gPSB7IC5vZmZzZXQgPSAweDQxLCAudmFsdWUgPSAweDAwLCB9LAo+ ICsJCVs4NV0gPSB7IC5vZmZzZXQgPSAweGMwLCAudmFsdWUgPSAweDA1LCB9LAo+ICsJfSwKPiAr CVtNT0RFXzgwMHg2MDBdID0gewo+ICsJCVswXSA9IHsgLm9mZnNldCA9IDB4MGEsIC52YWx1ZSA9 IDB4ODEsIH0sCj4gKwkJWzFdID0geyAub2Zmc2V0ID0gMHgxOCwgLnZhbHVlID0gMHgwNywgfSwK PiArCQlbMl0gPSB7IC5vZmZzZXQgPSAweDE5LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVszXSA9 IHsgLm9mZnNldCA9IDB4MWEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzRdID0geyAub2Zmc2V0 ID0gMHgxYiwgLnZhbHVlID0gMHgxOSwgfSwKPiArCQlbNV0gPSB7IC5vZmZzZXQgPSAweDFjLCAu dmFsdWUgPSAweDY0LCB9LAo+ICsJCVs2XSA9IHsgLm9mZnNldCA9IDB4MWQsIC52YWx1ZSA9IDB4 MDIsIH0sCj4gKwkJWzddID0geyAub2Zmc2V0ID0gMHgxZSwgLnZhbHVlID0gMHgwMiwgfSwKPiAr CQlbOF0gPSB7IC5vZmZzZXQgPSAweGYzLCAudmFsdWUgPSAweDkwLCB9LAo+ICsJCVs5XSA9IHsg Lm9mZnNldCA9IDB4ZjksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzEwXSA9IHsgLm9mZnNldCA9 IDB4YzEsIC52YWx1ZSA9IDB4ZDcsIH0sCj4gKwkJWzExXSA9IHsgLm9mZnNldCA9IDB4YzIsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzEyXSA9IHsgLm9mZnNldCA9IDB4YzMsIC52YWx1ZSA9IDB4 ZjgsIH0sCj4gKwkJWzEzXSA9IHsgLm9mZnNldCA9IDB4YzQsIC52YWx1ZSA9IDB4MDMsIH0sCj4g KwkJWzE0XSA9IHsgLm9mZnNldCA9IDB4YzUsIC52YWx1ZSA9IDB4MWEsIH0sCj4gKwkJWzE1XSA9 IHsgLm9mZnNldCA9IDB4YzYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzE2XSA9IHsgLm9mZnNl dCA9IDB4YzcsIC52YWx1ZSA9IDB4NzMsIH0sCj4gKwkJWzE3XSA9IHsgLm9mZnNldCA9IDB4Yzgs IC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzE4XSA9IHsgLm9mZnNldCA9IDB4ZjQsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gKwkJWzE5XSA9IHsgLm9mZnNldCA9IDB4ODAsIC52YWx1ZSA9IDB4MjcsIH0s Cj4gKwkJWzIwXSA9IHsgLm9mZnNldCA9IDB4ODEsIC52YWx1ZSA9IDB4MDMsIH0sCj4gKwkJWzIx XSA9IHsgLm9mZnNldCA9IDB4ODIsIC52YWx1ZSA9IDB4NDEsIH0sCj4gKwkJWzIyXSA9IHsgLm9m ZnNldCA9IDB4ODMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkJWzIzXSA9IHsgLm9mZnNldCA9IDB4 OTQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI0XSA9IHsgLm9mZnNldCA9IDB4OTUsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gKwkJWzI1XSA9IHsgLm9mZnNldCA9IDB4OTYsIC52YWx1ZSA9IDB4MDUs IH0sCj4gKwkJWzI2XSA9IHsgLm9mZnNldCA9IDB4OTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzI3XSA9IHsgLm9mZnNldCA9IDB4OWEsIC52YWx1ZSA9IDB4ODgsIH0sCj4gKwkJWzI4XSA9IHsg Lm9mZnNldCA9IDB4OWIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI5XSA9IHsgLm9mZnNldCA9 IDB4OTgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzMwXSA9IHsgLm9mZnNldCA9IDB4OTksIC52 YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzMxXSA9IHsgLm9mZnNldCA9IDB4ZjcsIC52YWx1ZSA9IDB4 ODgsIH0sCj4gKwkJWzMyXSA9IHsgLm9mZnNldCA9IDB4ZjgsIC52YWx1ZSA9IDB4MDYsIH0sCj4g KwkJWzMzXSA9IHsgLm9mZnNldCA9IDB4OWMsIC52YWx1ZSA9IDB4MjMsIH0sCj4gKwkJWzM0XSA9 IHsgLm9mZnNldCA9IDB4OWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzM1XSA9IHsgLm9mZnNl dCA9IDB4OWUsIC52YWx1ZSA9IDB4MjUsIH0sCj4gKwkJWzM2XSA9IHsgLm9mZnNldCA9IDB4OWYs IC52YWx1ZSA9IDB4MDMsIH0sCj4gKwkJWzM3XSA9IHsgLm9mZnNldCA9IDB4YTAsIC52YWx1ZSA9 IDB4MjgsIH0sCj4gKwkJWzM4XSA9IHsgLm9mZnNldCA9IDB4YTEsIC52YWx1ZSA9IDB4MDEsIH0s Cj4gKwkJWzM5XSA9IHsgLm9mZnNldCA9IDB4YTIsIC52YWx1ZSA9IDB4MjgsIH0sCj4gKwkJWzQw XSA9IHsgLm9mZnNldCA9IDB4YTMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkJWzQxXSA9IHsgLm9m ZnNldCA9IDB4YjYsIC52YWx1ZSA9IDB4MDksIH0sCj4gKwkJWzQyXSA9IHsgLm9mZnNldCA9IDB4 YjgsIC52YWx1ZSA9IDB4MzAsIH0sCj4gKwkJWzQzXSA9IHsgLm9mZnNldCA9IDB4YjksIC52YWx1 ZSA9IDB4YzgsIH0sCj4gKwkJWzQ0XSA9IHsgLm9mZnNldCA9IDB4YmEsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzQ1XSA9IHsgLm9mZnNldCA9IDB4YmIsIC52YWx1ZSA9IDB4MjAsIH0sCj4gKwkJ WzQ2XSA9IHsgLm9mZnNldCA9IDB4MTAsIC52YWx1ZSA9IDB4MjAsIH0sCj4gKwkJWzQ3XSA9IHsg Lm9mZnNldCA9IDB4MTEsIC52YWx1ZSA9IDB4YzgsIH0sCj4gKwkJWzQ4XSA9IHsgLm9mZnNldCA9 IDB4MTIsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzQ5XSA9IHsgLm9mZnNldCA9IDB4MjAsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUwXSA9IHsgLm9mZnNldCA9IDB4MjIsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzUxXSA9IHsgLm9mZnNldCA9IDB4MjMsIC52YWx1ZSA9IDB4MDAsIH0sCj4g KwkJWzUyXSA9IHsgLm9mZnNldCA9IDB4MjQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUzXSA9 IHsgLm9mZnNldCA9IDB4MjUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzU0XSA9IHsgLm9mZnNl dCA9IDB4OGMsIC52YWx1ZSA9IDB4MTAsIH0sCj4gKwkJWzU1XSA9IHsgLm9mZnNldCA9IDB4OGQs IC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzU2XSA9IHsgLm9mZnNldCA9IDB4OGUsIC52YWx1ZSA9 IDB4MDQsIH0sCj4gKwkJWzU3XSA9IHsgLm9mZnNldCA9IDB4OGYsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gKwkJWzU4XSA9IHsgLm9mZnNldCA9IDB4OTAsIC52YWx1ZSA9IDB4ZmYsIH0sCj4gKwkJWzU5 XSA9IHsgLm9mZnNldCA9IDB4OTEsIC52YWx1ZSA9IDB4MDcsIH0sCj4gKwkJWzYwXSA9IHsgLm9m ZnNldCA9IDB4OTIsIC52YWx1ZSA9IDB4YTAsIH0sCj4gKwkJWzYxXSA9IHsgLm9mZnNldCA9IDB4 OTMsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzYyXSA9IHsgLm9mZnNldCA9IDB4YTUsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gKwkJWzYzXSA9IHsgLm9mZnNldCA9IDB4YTYsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzY0XSA9IHsgLm9mZnNldCA9IDB4YTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzY1XSA9IHsgLm9mZnNldCA9IDB4YTgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzY2XSA9IHsg Lm9mZnNldCA9IDB4YTksIC52YWx1ZSA9IDB4ODMsIH0sCj4gKwkJWzY3XSA9IHsgLm9mZnNldCA9 IDB4YWEsIC52YWx1ZSA9IDB4NDAsIH0sCj4gKwkJWzY4XSA9IHsgLm9mZnNldCA9IDB4YWIsIC52 YWx1ZSA9IDB4MzIsIH0sCj4gKwkJWzY5XSA9IHsgLm9mZnNldCA9IDB4YWMsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzcwXSA9IHsgLm9mZnNldCA9IDB4YTQsIC52YWx1ZSA9IDB4ODAsIH0sCj4g KwkJWzcxXSA9IHsgLm9mZnNldCA9IDB4N2UsIC52YWx1ZSA9IDB4MTgsIH0sCj4gKwkJWzcyXSA9 IHsgLm9mZnNldCA9IDB4ODQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzczXSA9IHsgLm9mZnNl dCA9IDB4ODUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc0XSA9IHsgLm9mZnNldCA9IDB4ODYs IC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc1XSA9IHsgLm9mZnNldCA9IDB4ODcsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gKwkJWzc2XSA9IHsgLm9mZnNldCA9IDB4ODgsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gKwkJWzc3XSA9IHsgLm9mZnNldCA9IDB4ODksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc4 XSA9IHsgLm9mZnNldCA9IDB4OGEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc5XSA9IHsgLm9m ZnNldCA9IDB4OGIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgwXSA9IHsgLm9mZnNldCA9IDB4 MjYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgxXSA9IHsgLm9mZnNldCA9IDB4MjcsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gKwkJWzgyXSA9IHsgLm9mZnNldCA9IDB4YWQsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzgzXSA9IHsgLm9mZnNldCA9IDB4MDgsIC52YWx1ZSA9IDB4MzAsIH0sIC8qIDB4 MzEgKi8KPiArCQlbODRdID0geyAub2Zmc2V0ID0gMHg0MSwgLnZhbHVlID0gMHgwMCwgfSwKPiAr CQlbODVdID0geyAub2Zmc2V0ID0gMHhjMCwgLnZhbHVlID0gMHgwNywgfSwKPiArCX0sCj4gKwlb TU9ERV8xMDI0eDc2OF0gPSB7Cj4gKwkJWzBdID0geyAub2Zmc2V0ID0gMHgwYSwgLnZhbHVlID0g MHg4MSwgfSwKPiArCQlbMV0gPSB7IC5vZmZzZXQgPSAweDE4LCAudmFsdWUgPSAweDA3LCB9LAo+ ICsJCVsyXSA9IHsgLm9mZnNldCA9IDB4MTksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzNdID0g eyAub2Zmc2V0ID0gMHgxYSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNF0gPSB7IC5vZmZzZXQg PSAweDFiLCAudmFsdWUgPSAweDExLCB9LAo+ICsJCVs1XSA9IHsgLm9mZnNldCA9IDB4MWMsIC52 YWx1ZSA9IDB4NTQsIH0sCj4gKwkJWzZdID0geyAub2Zmc2V0ID0gMHgxZCwgLnZhbHVlID0gMHgw MywgfSwKPiArCQlbN10gPSB7IC5vZmZzZXQgPSAweDFlLCAudmFsdWUgPSAweDAyLCB9LAo+ICsJ CVs4XSA9IHsgLm9mZnNldCA9IDB4ZjMsIC52YWx1ZSA9IDB4OTAsIH0sCj4gKwkJWzldID0geyAu b2Zmc2V0ID0gMHhmOSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMTBdID0geyAub2Zmc2V0ID0g MHhjMSwgLnZhbHVlID0gMHg5MCwgfSwKPiArCQlbMTFdID0geyAub2Zmc2V0ID0gMHhjMiwgLnZh bHVlID0gMHgwMCwgfSwKPiArCQlbMTJdID0geyAub2Zmc2V0ID0gMHhjMywgLnZhbHVlID0gMHgw ZiwgfSwKPiArCQlbMTNdID0geyAub2Zmc2V0ID0gMHhjNCwgLnZhbHVlID0gMHgwMywgfSwKPiAr CQlbMTRdID0geyAub2Zmc2V0ID0gMHhjNSwgLnZhbHVlID0gMHgxNiwgfSwKPiArCQlbMTVdID0g eyAub2Zmc2V0ID0gMHhjNiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMTZdID0geyAub2Zmc2V0 ID0gMHhjNywgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbMTddID0geyAub2Zmc2V0ID0gMHhjOCwg LnZhbHVlID0gMHgwMiwgfSwKPiArCQlbMThdID0geyAub2Zmc2V0ID0gMHhmNCwgLnZhbHVlID0g MHgwMCwgfSwKPiArCQlbMTldID0geyAub2Zmc2V0ID0gMHg4MCwgLnZhbHVlID0gMHhmZiwgfSwK PiArCQlbMjBdID0geyAub2Zmc2V0ID0gMHg4MSwgLnZhbHVlID0gMHgwNywgfSwKPiArCQlbMjFd ID0geyAub2Zmc2V0ID0gMHg4MiwgLnZhbHVlID0gMHgzZCwgfSwKPiArCQlbMjJdID0geyAub2Zm c2V0ID0gMHg4MywgLnZhbHVlID0gMHgwNSwgfSwKPiArCQlbMjNdID0geyAub2Zmc2V0ID0gMHg5 NCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMjRdID0geyAub2Zmc2V0ID0gMHg5NSwgLnZhbHVl ID0gMHgwMCwgfSwKPiArCQlbMjVdID0geyAub2Zmc2V0ID0gMHg5NiwgLnZhbHVlID0gMHgwNSwg fSwKPiArCQlbMjZdID0geyAub2Zmc2V0ID0gMHg5NywgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlb MjddID0geyAub2Zmc2V0ID0gMHg5YSwgLnZhbHVlID0gMHg4OCwgfSwKPiArCQlbMjhdID0geyAu b2Zmc2V0ID0gMHg5YiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMjldID0geyAub2Zmc2V0ID0g MHg5OCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMzBdID0geyAub2Zmc2V0ID0gMHg5OSwgLnZh bHVlID0gMHgwMCwgfSwKPiArCQlbMzFdID0geyAub2Zmc2V0ID0gMHhmNywgLnZhbHVlID0gMHg4 OCwgfSwKPiArCQlbMzJdID0geyAub2Zmc2V0ID0gMHhmOCwgLnZhbHVlID0gMHgwYSwgfSwKPiAr CQlbMzNdID0geyAub2Zmc2V0ID0gMHg5YywgLnZhbHVlID0gMHgyNCwgfSwKPiArCQlbMzRdID0g eyAub2Zmc2V0ID0gMHg5ZCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbMzVdID0geyAub2Zmc2V0 ID0gMHg5ZSwgLnZhbHVlID0gMHgyNSwgfSwKPiArCQlbMzZdID0geyAub2Zmc2V0ID0gMHg5Ziwg LnZhbHVlID0gMHgwMywgfSwKPiArCQlbMzddID0geyAub2Zmc2V0ID0gMHhhMCwgLnZhbHVlID0g MHgyOCwgfSwKPiArCQlbMzhdID0geyAub2Zmc2V0ID0gMHhhMSwgLnZhbHVlID0gMHgwMSwgfSwK PiArCQlbMzldID0geyAub2Zmc2V0ID0gMHhhMiwgLnZhbHVlID0gMHgyOCwgfSwKPiArCQlbNDBd ID0geyAub2Zmc2V0ID0gMHhhMywgLnZhbHVlID0gMHgwNSwgfSwKPiArCQlbNDFdID0geyAub2Zm c2V0ID0gMHhiNiwgLnZhbHVlID0gMHgwOSwgfSwKPiArCQlbNDJdID0geyAub2Zmc2V0ID0gMHhi OCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNDNdID0geyAub2Zmc2V0ID0gMHhiOSwgLnZhbHVl ID0gMHhhMCwgfSwKPiArCQlbNDRdID0geyAub2Zmc2V0ID0gMHhiYSwgLnZhbHVlID0gMHgwMCwg fSwKPiArCQlbNDVdID0geyAub2Zmc2V0ID0gMHhiYiwgLnZhbHVlID0gMHgyMCwgfSwKPiArCQlb NDZdID0geyAub2Zmc2V0ID0gMHgxMCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNDddID0geyAu b2Zmc2V0ID0gMHgxMSwgLnZhbHVlID0gMHhhMCwgfSwKPiArCQlbNDhdID0geyAub2Zmc2V0ID0g MHgxMiwgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbNDldID0geyAub2Zmc2V0ID0gMHgyMCwgLnZh bHVlID0gMHgwMCwgfSwKPiArCQlbNTBdID0geyAub2Zmc2V0ID0gMHgyMiwgLnZhbHVlID0gMHgw MCwgfSwKPiArCQlbNTFdID0geyAub2Zmc2V0ID0gMHgyMywgLnZhbHVlID0gMHgwMCwgfSwKPiAr CQlbNTJdID0geyAub2Zmc2V0ID0gMHgyNCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNTNdID0g eyAub2Zmc2V0ID0gMHgyNSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNTRdID0geyAub2Zmc2V0 ID0gMHg4YywgLnZhbHVlID0gMHgxMCwgfSwKPiArCQlbNTVdID0geyAub2Zmc2V0ID0gMHg4ZCwg LnZhbHVlID0gMHgwMiwgfSwKPiArCQlbNTZdID0geyAub2Zmc2V0ID0gMHg4ZSwgLnZhbHVlID0g MHgxMCwgfSwKPiArCQlbNTddID0geyAub2Zmc2V0ID0gMHg4ZiwgLnZhbHVlID0gMHgwMCwgfSwK PiArCQlbNThdID0geyAub2Zmc2V0ID0gMHg5MCwgLnZhbHVlID0gMHhmZiwgfSwKPiArCQlbNTld ID0geyAub2Zmc2V0ID0gMHg5MSwgLnZhbHVlID0gMHgwNywgfSwKPiArCQlbNjBdID0geyAub2Zm c2V0ID0gMHg5MiwgLnZhbHVlID0gMHhhMCwgfSwKPiArCQlbNjFdID0geyAub2Zmc2V0ID0gMHg5 MywgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbNjJdID0geyAub2Zmc2V0ID0gMHhhNSwgLnZhbHVl ID0gMHgwMCwgfSwKPiArCQlbNjNdID0geyAub2Zmc2V0ID0gMHhhNiwgLnZhbHVlID0gMHgwMCwg fSwKPiArCQlbNjRdID0geyAub2Zmc2V0ID0gMHhhNywgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlb NjVdID0geyAub2Zmc2V0ID0gMHhhOCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNjZdID0geyAu b2Zmc2V0ID0gMHhhOSwgLnZhbHVlID0gMHgwNCwgfSwKPiArCQlbNjddID0geyAub2Zmc2V0ID0g MHhhYSwgLnZhbHVlID0gMHg3MCwgfSwKPiArCQlbNjhdID0geyAub2Zmc2V0ID0gMHhhYiwgLnZh bHVlID0gMHg0ZiwgfSwKPiArCQlbNjldID0geyAub2Zmc2V0ID0gMHhhYywgLnZhbHVlID0gMHgw MCwgfSwKPiArCQlbNzBdID0geyAub2Zmc2V0ID0gMHhhNCwgLnZhbHVlID0gMHg4NCwgfSwKPiAr CQlbNzFdID0geyAub2Zmc2V0ID0gMHg3ZSwgLnZhbHVlID0gMHgxOCwgfSwKPiArCQlbNzJdID0g eyAub2Zmc2V0ID0gMHg4NCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNzNdID0geyAub2Zmc2V0 ID0gMHg4NSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNzRdID0geyAub2Zmc2V0ID0gMHg4Niwg LnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNzVdID0geyAub2Zmc2V0ID0gMHg4NywgLnZhbHVlID0g MHgwMCwgfSwKPiArCQlbNzZdID0geyAub2Zmc2V0ID0gMHg4OCwgLnZhbHVlID0gMHgwMCwgfSwK PiArCQlbNzddID0geyAub2Zmc2V0ID0gMHg4OSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNzhd ID0geyAub2Zmc2V0ID0gMHg4YSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbNzldID0geyAub2Zm c2V0ID0gMHg4YiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbODBdID0geyAub2Zmc2V0ID0gMHgy NiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbODFdID0geyAub2Zmc2V0ID0gMHgyNywgLnZhbHVl ID0gMHgwMCwgfSwKPiArCQlbODJdID0geyAub2Zmc2V0ID0gMHhhZCwgLnZhbHVlID0gMHgwMCwg fSwKPiArCQlbODNdID0geyAub2Zmc2V0ID0gMHgwOCwgLnZhbHVlID0gMHgzNCwgfSwgLyogMHgz NSAqLwo+ICsJCVs4NF0gPSB7IC5vZmZzZXQgPSAweDQxLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJ CVs4NV0gPSB7IC5vZmZzZXQgPSAweGMwLCAudmFsdWUgPSAweDAxLCB9LAo+ICsJfSwKPiArfTsK PiArCj4gICBzdHJ1Y3QgbnMyNTAxX3ByaXYgewo+IC0JLy9JMkNEZXZSZWMgZDsKPiAgIAlib29s IHF1aWV0Owo+IC0JaW50IHJlZ184X3NoYWRvdzsKPiAtCWludCByZWdfOF9zZXQ7Cj4gLQkvLyBT aGFkb3cgcmVnaXN0ZXJzIGZvciBpOTE1Cj4gLQlpbnQgZHZvYzsKPiAtCWludCBwbGxfYTsKPiAt CWludCBzcmNkaW07Cj4gLQlpbnQgZndfYmxjOwo+ICsJY29uc3Qgc3RydWN0IG5zMjUwMV9yZWcg KnJlZ3M7Cj4gICB9Owo+Cj4gICAjZGVmaW5lIE5TUFRSKGQpICgoTlMyNTAxUHRyKShkLT5Ecml2 ZXJQcml2YXRlLnB0cikpCj4gQEAgLTIwNSwxMSArNDgwLDkgQEAgc3RhdGljIGJvb2wgbnMyNTAx X2luaXQoc3RydWN0IGludGVsX2R2b19kZXZpY2UgKmR2bywKPiAgIAkJZ290byBvdXQ7Cj4gICAJ fQo+ICAgCW5zLT5xdWlldCA9IGZhbHNlOwo+IC0JbnMtPnJlZ184X3NldCA9IDA7Cj4gLQlucy0+ cmVnXzhfc2hhZG93ID0KPiAtCSAgICBOUzI1MDFfOF9QRCB8IE5TMjUwMV84X0JQQVMgfCBOUzI1 MDFfOF9WRU4gfCBOUzI1MDFfOF9IRU47Cj4KPiAgIAlEUk1fREVCVUdfS01TKCJpbml0IG5zMjUw MSBkdm8gY29udHJvbGxlciBzdWNjZXNzZnVsbHkhXG4iKTsKPiArCj4gICAJcmV0dXJuIHRydWU7 Cj4KPiAgIG91dDoKPiBAQCAtMjU1LDE4MCArNTI4LDI2IEBAIHN0YXRpYyB2b2lkIG5zMjUwMV9t b2RlX3NldChzdHJ1Y3QgaW50ZWxfZHZvX2RldmljZSAqZHZvLAo+ICAgCQkJICAgIHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlLAo+ICAgCQkJICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlKQo+ICAgewo+IC0JYm9vbCBvazsKPiAtCWludCByZXRyaWVzID0gMTA7 Cj4gICAJc3RydWN0IG5zMjUwMV9wcml2ICpucyA9IChzdHJ1Y3QgbnMyNTAxX3ByaXYgKikoZHZv LT5kZXZfcHJpdik7Cj4gKwlpbnQgbW9kZV9pZHgsIGk7Cj4KPiAgIAlEUk1fREVCVUdfS01TCj4g ICAJICAgICgic2V0IG1vZGUgKGhkaXNwbGF5PSVkLGh0b3RhbD0lZCx2ZGlzcGxheT0lZCx2dG90 YWw9JWQpLlxuIiwKPiAgIAkgICAgIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT5odG90YWwsIG1vZGUt PnZkaXNwbGF5LCBtb2RlLT52dG90YWwpOwo+Cj4gLQkvKgo+IC0JICogV2hlcmUgZG8gSSBmaW5k IHRoZSBuYXRpdmUgcmVzb2x1dGlvbiBmb3Igd2hpY2ggc2NhbGluZyBpcyBub3QgcmVxdWlyZWQ/ Pz8KPiAtCSAqCj4gLQkgKiBGaXJzdCB0cmlnZ2VyIHRoZSBEVk8gb24gYXMgb3RoZXJ3aXNlIHRo ZSBjaGlwIGRvZXMgbm90IGFwcGVhciBvbiB0aGUgaTJjCj4gLQkgKiBidXMuCj4gLQkgKi8KPiAt CWRvIHsKPiAtCQlvayA9IHRydWU7Cj4gLQo+IC0JCWlmIChtb2RlLT5oZGlzcGxheSA9PSA4MDAg JiYgbW9kZS0+dmRpc3BsYXkgPT0gNjAwKSB7Cj4gLQkJCS8qIG1vZGUgMjc3ICovCj4gLQkJCW5z LT5yZWdfOF9zaGFkb3cgJj0gfk5TMjUwMV84X0JQQVM7Cj4gLQkJCURSTV9ERUJVR19LTVMoInN3 aXRjaGluZyB0byA4MDB4NjAwXG4iKTsKPiAtCj4gLQkJCS8qCj4gLQkJCSAqIE5vLCBJIGRvIG5v dCBrbm93IHdoZXJlIHRoaXMgZGF0YSBjb21lcyBmcm9tLgo+IC0JCQkgKiBJdCBpcyBqdXN0IHdo YXQgdGhlIHZpZGVvIGJpb3MgbGVmdCBpbiB0aGUgRFZPLCBzbwo+IC0JCQkgKiBJJ20ganVzdCBj b3B5aW5nIGl0IGhlcmUgb3Zlci4KPiAtCQkJICogVGhpcyBhbHNvIG1lYW5zIHRoYXQgSSBjYW5u b3Qgc3VwcG9ydCBhbnkgb3RoZXIgbW9kZXMKPiAtCQkJICogZXhjZXB0IHRoZSBvbmVzIHN1cHBv cnRlZCBieSB0aGUgYmlvcy4KPiAtCQkJICovCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZv LCAweDExLCAweGM4KTsJLy8gMHhjNyBhbHNvIHdvcmtzLgo+IC0JCQlvayAmPSBuczI1MDFfd3Jp dGViKGR2bywgMHgxYiwgMHgxOSk7Cj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweDFj LCAweDYyKTsJLy8gVkJJT1MgbGVmdCAweDY0IGhlcmUsIGJ1dCAweDYyIHdvcmtzIG5pY2VyCj4g LQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweDFkLCAweDAyKTsKPiAtCj4gLQkJCW9rICY9 IG5zMjUwMV93cml0ZWIoZHZvLCAweDM0LCAweDAzKTsKPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRl Yihkdm8sIDB4MzUsIDB4ZmYpOwo+IC0KPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4 ODAsIDB4MjcpOwo+IC0JCQlvayAmPSBuczI1MDFfd3JpdGViKGR2bywgMHg4MSwgMHgwMyk7Cj4g LQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweDgyLCAweDQxKTsKPiAtCQkJb2sgJj0gbnMy NTAxX3dyaXRlYihkdm8sIDB4ODMsIDB4MDUpOwo+ICsJaWYgKG1vZGUtPmhkaXNwbGF5ID09IDY0 MCAmJiBtb2RlLT52ZGlzcGxheSA9PSA0ODApCj4gKwkJbW9kZV9pZHggPSBNT0RFXzY0MHg0ODA7 Cj4gKwllbHNlIGlmIChtb2RlLT5oZGlzcGxheSA9PSA4MDAgJiYgbW9kZS0+dmRpc3BsYXkgPT0g NjAwKQo+ICsJCW1vZGVfaWR4ID0gTU9ERV84MDB4NjAwOwo+ICsJZWxzZSBpZiAobW9kZS0+aGRp c3BsYXkgPT0gMTAyNCAmJiBtb2RlLT52ZGlzcGxheSA9PSA3NjgpCj4gKwkJbW9kZV9pZHggPSBN T0RFXzEwMjR4NzY4Owo+ICsJZWxzZQo+ICsJCXJldHVybjsKPgo+IC0JCQlvayAmPSBuczI1MDFf d3JpdGViKGR2bywgMHg4ZCwgMHgwMik7Cj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAw eDhlLCAweDA0KTsKPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4OGYsIDB4MDApOwo+ ICsJbnMtPnJlZ3MgPSByZWdzXzEwMjR4NzY4W21vZGVfaWR4XTsKPgo+IC0JCQlvayAmPSBuczI1 MDFfd3JpdGViKGR2bywgMHg5MCwgMHhmZSk7CS8qIHZlcnRpY2FsLiBWQklPUyBsZWZ0IDB4ZmYg aGVyZSwgYnV0IDB4ZmUgd29ya3MgYmV0dGVyICovCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIo ZHZvLCAweDkxLCAweDA3KTsKPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4OTQsIDB4 MDApOwo+IC0JCQlvayAmPSBuczI1MDFfd3JpdGViKGR2bywgMHg5NSwgMHgwMCk7Cj4gLQo+IC0J CQlvayAmPSBuczI1MDFfd3JpdGViKGR2bywgMHg5NiwgMHgwMCk7Cj4gLQo+IC0JCQlvayAmPSBu czI1MDFfd3JpdGViKGR2bywgMHg5OSwgMHgwMCk7Cj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIo ZHZvLCAweDlhLCAweDg4KTsKPiAtCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweDlj LCAweDIzKTsJLyogTG9va3MgbGlrZSBmaXJzdCBhbmQgbGFzdCBsaW5lIG9mIHRoZSBpbWFnZS4g Ki8KPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4OWQsIDB4MDApOwo+IC0JCQlvayAm PSBuczI1MDFfd3JpdGViKGR2bywgMHg5ZSwgMHgyNSk7Cj4gLQkJCW9rICY9IG5zMjUwMV93cml0 ZWIoZHZvLCAweDlmLCAweDAzKTsKPiAtCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAw eGE0LCAweDgwKTsKPiAtCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweGI2LCAweDAw KTsKPiAtCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweGI5LCAweGM4KTsJLyogaG9y aXpvbnRhbD8gKi8KPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4YmEsIDB4MDApOwkv KiBob3Jpem9udGFsPyAqLwo+IC0KPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4YzAs IDB4MDUpOwkvKiBob3Jpem9udGFsPyAqLwo+IC0JCQlvayAmPSBuczI1MDFfd3JpdGViKGR2bywg MHhjMSwgMHhkNyk7Cj4gLQo+IC0JCQlvayAmPSBuczI1MDFfd3JpdGViKGR2bywgMHhjMiwgMHgw MCk7Cj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweGMzLCAweGY4KTsKPiAtCj4gLQkJ CW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweGM0LCAweDAzKTsKPiAtCQkJb2sgJj0gbnMyNTAx X3dyaXRlYihkdm8sIDB4YzUsIDB4MWEpOwo+IC0KPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihk dm8sIDB4YzYsIDB4MDApOwo+IC0JCQlvayAmPSBuczI1MDFfd3JpdGViKGR2bywgMHhjNywgMHg3 Myk7Cj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweGM4LCAweDAyKTsKPiAtCj4gLQkJ fSBlbHNlIGlmIChtb2RlLT5oZGlzcGxheSA9PSA2NDAgJiYgbW9kZS0+dmRpc3BsYXkgPT0gNDgw KSB7Cj4gLQkJCS8qIG1vZGUgMjc0ICovCj4gLQkJCURSTV9ERUJVR19LTVMoInN3aXRjaGluZyB0 byA2NDB4NDgwXG4iKTsKPiAtCQkJLyoKPiAtCQkJICogTm8sIEkgZG8gbm90IGtub3cgd2hlcmUg dGhpcyBkYXRhIGNvbWVzIGZyb20uCj4gLQkJCSAqIEl0IGlzIGp1c3Qgd2hhdCB0aGUgdmlkZW8g YmlvcyBsZWZ0IGluIHRoZSBEVk8sIHNvCj4gLQkJCSAqIEknbSBqdXN0IGNvcHlpbmcgaXQgaGVy ZSBvdmVyLgo+IC0JCQkgKiBUaGlzIGFsc28gbWVhbnMgdGhhdCBJIGNhbm5vdCBzdXBwb3J0IGFu eSBvdGhlciBtb2Rlcwo+IC0JCQkgKiBleGNlcHQgdGhlIG9uZXMgc3VwcG9ydGVkIGJ5IHRoZSBi aW9zLgo+IC0JCQkgKi8KPiAtCQkJbnMtPnJlZ184X3NoYWRvdyAmPSB+TlMyNTAxXzhfQlBBUzsK PiAtCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweDExLCAweGEwKTsKPiAtCQkJb2sg Jj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4MWIsIDB4MTEpOwo+IC0JCQlvayAmPSBuczI1MDFfd3Jp dGViKGR2bywgMHgxYywgMHg1NCk7Cj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweDFk LCAweDAzKTsKPiAtCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweDM0LCAweDAzKTsK PiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4MzUsIDB4ZmYpOwo+IC0KPiAtCQkJb2sg Jj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4ODAsIDB4ZmYpOwo+IC0JCQlvayAmPSBuczI1MDFfd3Jp dGViKGR2bywgMHg4MSwgMHgwNyk7Cj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweDgy LCAweDNkKTsKPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4ODMsIDB4MDUpOwo+IC0K PiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4OGQsIDB4MDIpOwo+IC0JCQlvayAmPSBu czI1MDFfd3JpdGViKGR2bywgMHg4ZSwgMHgxMCk7Cj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIo ZHZvLCAweDhmLCAweDAwKTsKPiAtCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweDkw LCAweGZmKTsJLyogdmVydGljYWwgKi8KPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4 OTEsIDB4MDcpOwo+IC0JCQlvayAmPSBuczI1MDFfd3JpdGViKGR2bywgMHg5NCwgMHgwMCk7Cj4g LQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweDk1LCAweDAwKTsKPiAtCj4gLQkJCW9rICY9 IG5zMjUwMV93cml0ZWIoZHZvLCAweDk2LCAweDA1KTsKPiAtCj4gLQkJCW9rICY9IG5zMjUwMV93 cml0ZWIoZHZvLCAweDk5LCAweDAwKTsKPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4 OWEsIDB4ODgpOwo+IC0KPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4OWMsIDB4MjQp Owo+IC0JCQlvayAmPSBuczI1MDFfd3JpdGViKGR2bywgMHg5ZCwgMHgwMCk7Cj4gLQkJCW9rICY9 IG5zMjUwMV93cml0ZWIoZHZvLCAweDllLCAweDI1KTsKPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRl Yihkdm8sIDB4OWYsIDB4MDMpOwo+IC0KPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4 YTQsIDB4ODQpOwo+IC0KPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4YjYsIDB4MDkp Owo+IC0KPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4YjksIDB4YTApOwkvKiBob3Jp em9udGFsPyAqLwo+IC0JCQlvayAmPSBuczI1MDFfd3JpdGViKGR2bywgMHhiYSwgMHgwMCk7CS8q IGhvcml6b250YWw/ICovCj4gLQo+IC0JCQlvayAmPSBuczI1MDFfd3JpdGViKGR2bywgMHhjMCwg MHgwNSk7CS8qIGhvcml6b250YWw/ICovCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAw eGMxLCAweDkwKTsKPiAtCj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweGMyLCAweDAw KTsKPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4YzMsIDB4MGYpOwo+IC0KPiAtCQkJ b2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4YzQsIDB4MDMpOwo+IC0JCQlvayAmPSBuczI1MDFf d3JpdGViKGR2bywgMHhjNSwgMHgxNik7Cj4gLQo+IC0JCQlvayAmPSBuczI1MDFfd3JpdGViKGR2 bywgMHhjNiwgMHgwMCk7Cj4gLQkJCW9rICY9IG5zMjUwMV93cml0ZWIoZHZvLCAweGM3LCAweDAy KTsKPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIDB4YzgsIDB4MDIpOwo+IC0KPiAtCQl9 IGVsc2UgaWYgKG1vZGUtPmhkaXNwbGF5ID09IDEwMjQgJiYgbW9kZS0+dmRpc3BsYXkgPT0gNzY4 KSB7Cj4gLQkJCS8qIG1vZGUgMjgwICovCj4gLQkJCURSTV9ERUJVR19LTVMoInN3aXRjaGluZyB0 byAxMDI0eDc2OFxuIik7Cj4gLQkJCS8qCj4gLQkJCSAqIFRoaXMgbWlnaHQgb3IgbWlnaHQgbm90 IHdvcmssIGFjdHVhbGx5LiBJJ20gc2lsZW50bHkKPiAtCQkJICogYXNzdW1pbmcgaGVyZSB0aGF0 IHRoZSBuYXRpdmUgcGFuZWwgcmVzb2x1dGlvbiBpcwo+IC0JCQkgKiAxMDI0eDc2OC4gSWYgbm90 LCB0aGVuIHRoaXMgbGVhdmVzIHRoZSBzY2FsZXIgZGlzYWJsZWQKPiAtCQkJICogZ2VuZXJhdGlu ZyBhIHBpY3R1cmUgdGhhdCBpcyBsaWtlbHkgbm90IHRoZSBleHBlY3RlZC4KPiAtCQkJICoKPiAt CQkJICogUHJvYmxlbSBpcyB0aGF0IEkgZG8gbm90IGtub3cgd2hlcmUgdG8gdGFrZSB0aGUgcGFu ZWwKPiAtCQkJICogZGltZW5zaW9ucyBmcm9tLgo+IC0JCQkgKgo+IC0JCQkgKiBFbmFibGUgdGhl IGJ5cGFzcywgc2NhbGluZyBub3QgcmVxdWlyZWQuCj4gLQkJCSAqCj4gLQkJCSAqIFRoZSBzY2Fs ZXIgcmVnaXN0ZXJzIGFyZSBpcnJlbGV2YW50IGhlcmUuLi4uCj4gLQkJCSAqCj4gLQkJCSAqLwo+ IC0JCQlucy0+cmVnXzhfc2hhZG93IHw9IE5TMjUwMV84X0JQQVM7Cj4gLQkJCW9rICY9IG5zMjUw MV93cml0ZWIoZHZvLCAweDM3LCAweDQ0KTsKPiAtCQl9IGVsc2Ugewo+IC0JCQkvKgo+IC0JCQkg KiBEYXRhIG5vdCBrbm93bi4gQnVtbWVyIQo+IC0JCQkgKiBIb3BlZnVsbHksIHRoZSBjb2RlIHNo b3VsZCBub3QgZ28gaGVyZQo+IC0JCQkgKiBhcyBtb2RlX09LIGRlbGl2ZXJlZCBubyBvdGhlciBt b2Rlcy4KPiAtCQkJICovCj4gLQkJCW5zLT5yZWdfOF9zaGFkb3cgfD0gTlMyNTAxXzhfQlBBUzsK PiAtCQl9Cj4gLQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc4LCBucy0+cmVn Xzhfc2hhZG93KTsKPiAtCX0gd2hpbGUgKCFvayAmJiByZXRyaWVzLS0pOwo+ICsJZm9yIChpID0g MDsgaSA8IDg0OyBpKyspCj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIG5zLT5yZWdzW2ldLm9mZnNl dCwgbnMtPnJlZ3NbaV0udmFsdWUpOwo+ICAgfQo+Cj4gICAvKiBzZXQgdGhlIE5TMjUwMSBwb3dl ciBzdGF0ZSAqLwo+IEBAIC00MzksNDMgKzU1OCw0NSBAQCBzdGF0aWMgYm9vbCBuczI1MDFfZ2V0 X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9kdm9fZGV2aWNlICpkdm8pCj4gICAJaWYgKCFuczI1MDFf cmVhZGIoZHZvLCBOUzI1MDFfUkVHOCwgJmNoKSkKPiAgIAkJcmV0dXJuIGZhbHNlOwo+Cj4gLQlp ZiAoY2ggJiBOUzI1MDFfOF9QRCkKPiAtCQlyZXR1cm4gdHJ1ZTsKPiAtCWVsc2UKPiAtCQlyZXR1 cm4gZmFsc2U7Cj4gKwlyZXR1cm4gY2ggJiBOUzI1MDFfOF9QRDsKPiAgIH0KPgo+ICAgLyogc2V0 IHRoZSBOUzI1MDEgcG93ZXIgc3RhdGUgKi8KPiAgIHN0YXRpYyB2b2lkIG5zMjUwMV9kcG1zKHN0 cnVjdCBpbnRlbF9kdm9fZGV2aWNlICpkdm8sIGJvb2wgZW5hYmxlKQo+ICAgewo+IC0JYm9vbCBv azsKPiAtCWludCByZXRyaWVzID0gMTA7Cj4gICAJc3RydWN0IG5zMjUwMV9wcml2ICpucyA9IChz dHJ1Y3QgbnMyNTAxX3ByaXYgKikoZHZvLT5kZXZfcHJpdik7Cj4gLQl1bnNpZ25lZCBjaGFyIGNo Owo+Cj4gICAJRFJNX0RFQlVHX0tNUygiVHJ5aW5nIHNldCB0aGUgZHBtcyBvZiB0aGUgRFZPIHRv ICVpXG4iLCBlbmFibGUpOwo+Cj4gLQljaCA9IG5zLT5yZWdfOF9zaGFkb3c7Cj4gKwlpZiAoZW5h YmxlKSB7Cj4gKwkJaWYgKFdBUk5fT04obnMtPnJlZ3NbODNdLm9mZnNldCAhPSAweDA4IHx8Cj4g KwkJCSAgICBucy0+cmVnc1s4NF0ub2Zmc2V0ICE9IDB4NDEgfHwKPiArCQkJICAgIG5zLT5yZWdz Wzg1XS5vZmZzZXQgIT0gMHhjMCkpCj4gKwkJCXJldHVybjsKPgo+IC0JaWYgKGVuYWJsZSkKPiAt CQljaCB8PSBOUzI1MDFfOF9QRDsKPiAtCWVsc2UKPiAtCQljaCAmPSB+TlMyNTAxXzhfUEQ7Cj4g LQo+IC0JaWYgKG5zLT5yZWdfOF9zZXQgPT0gMCB8fCBucy0+cmVnXzhfc2hhZG93ICE9IGNoKSB7 Cj4gLQkJbnMtPnJlZ184X3NldCA9IDE7Cj4gLQkJbnMtPnJlZ184X3NoYWRvdyA9IGNoOwo+IC0K PiAtCQlkbyB7Cj4gLQkJCW9rID0gdHJ1ZTsKPiAtCQkJb2sgJj0gbnMyNTAxX3dyaXRlYihkdm8s IE5TMjUwMV9SRUc4LCBjaCk7Cj4gLQkJCW9rICY9Cj4gLQkJCSAgICBuczI1MDFfd3JpdGViKGR2 bywgMHgzNCwKPiAtCQkJCQkgIGVuYWJsZSA/IDB4MDMgOiAweDAwKTsKPiAtCQkJb2sgJj0KPiAt CQkJICAgIG5zMjUwMV93cml0ZWIoZHZvLCAweDM1LAo+IC0JCQkJCSAgZW5hYmxlID8gMHhmZiA6 IDB4MDApOwo+IC0JCX0gd2hpbGUgKCFvayAmJiByZXRyaWVzLS0pOwo+ICsJCW5zMjUwMV93cml0 ZWIoZHZvLCAweGMwLCBucy0+cmVnc1s4NV0udmFsdWUgfCAweDA4KTsKPiArCj4gKwkJbnMyNTAx X3dyaXRlYihkdm8sIDB4NDEsIG5zLT5yZWdzWzg0XS52YWx1ZSk7Cj4gKwo+ICsJCW5zMjUwMV93 cml0ZWIoZHZvLCAweDM0LCAweDAxKTsKPiArCQltc2xlZXAoMTUpOwo+ICsKPiArCQluczI1MDFf d3JpdGViKGR2bywgMHgwOCwgMHgzNSk7Cj4gKwkJaWYgKCEobnMtPnJlZ3NbODNdLnZhbHVlICYg TlMyNTAxXzhfQlBBUykpCj4gKwkJCW5zMjUwMV93cml0ZWIoZHZvLCAweDA4LCAweDMxKTsKPiAr CQltc2xlZXAoMjAwKTsKPiArCj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIDB4MzQsIDB4MDMpOwo+ ICsKPiArCQluczI1MDFfd3JpdGViKGR2bywgMHhjMCwgbnMtPnJlZ3NbODVdLnZhbHVlKTsKPiAr CX0gZWxzZSB7Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIDB4MzQsIDB4MDEpOwo+ICsJCW1zbGVl cCgyMDApOwo+ICsKPiArCQluczI1MDFfd3JpdGViKGR2bywgMHgwOCwgMHgzNCk7Cj4gKwkJbXNs ZWVwKDE1KTsKPiArCj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIDB4MzQsIDB4MDApOwo+ICAgCX0K PiAgIH0KPgo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=