From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] Enable dithering for NS 2501 DVO Date: Mon, 20 Apr 2015 09:12:09 -0700 Message-ID: <20150420161209.GD14565@bremse> References: <553109EB.5030201@math.tu-berlin.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f47.google.com (mail-pa0-f47.google.com [209.85.220.47]) by gabe.freedesktop.org (Postfix) with ESMTP id 1C09B6E0F9 for ; Mon, 20 Apr 2015 09:12:13 -0700 (PDT) Received: by paboj16 with SMTP id oj16so211131075pab.0 for ; Mon, 20 Apr 2015 09:12:13 -0700 (PDT) Content-Disposition: inline In-Reply-To: <553109EB.5030201@math.tu-berlin.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Thomas Richter Cc: intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBcHIgMTcsIDIwMTUgYXQgMDM6MjY6MDNQTSArMDIwMCwgVGhvbWFzIFJpY2h0ZXIg d3JvdGU6Cj4gSGkgRGFuaWVsLCBoaSBWaWxsZSwKPiAKPiBkaWQgeW91IGdldCB0aGlzPwo+IAo+ IEdyZWV0aW5ncywKPiAgICAgVGhvbWFzCj4gCgo+IFNpZ25lZC1vZmYtYnk6IFRob21hcyBSaWNo dGVyIDx0aG9yQG1hdGgudHUtYmVybGluLmRlPgo+IAo+IFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUg KHVuZm9ydHVuYXRlbHkgdW5kb2N1bWVudGVkKSBzY2FsZXIgb2YgdGhlCj4gTmF0U2VtaSAyNTAx IERWTyBmb3VuZCBpbiB0aGUgRnVqaXRzdS1TaWVtZW5zIFM2MDEwIGxhcHRvcCBhbmQgb3RoZXIK PiBtYWNoaW5lcyBvZiB0aGUgc2FtZSBzZXJpZXMgYW5kIGFnZS4KPiAKPiBQYXJ0cyBvZiB0aGUg RFZPIHNjYWxlciBsb2dpYyBoYXZlIGJlZW4gcmV2ZWFsZWQgYnkgcmV2ZXJzZQo+IGVuZ2luZWVy aW5nIGFuZCB0cmlhbCBhbmQgZXJyb3IsIHNvIHlvdXIgbWlsYWdlIG1heSB2YXJ5LiBUaGUKPiBw YXRjaCAoYW5kIHRoZSB3aG9sZSBuczI1MDEgRFZPIGNvZGUpIGlzIGN1cnJlbnRseSBvbmx5IGdv b2QgZm9yCj4gdGhlIDEwMjR4NzY4IHBhbmVsIG9mIHRoZSBTNjAxMCwgYW5kIG1heSBob3BlZnVs bHkgd29yayBvbiBvdGhlcgo+IG1hY2hpbmVzIHdpdGggdGhlIHNhbWUgcGFuZWwgc2l6ZS4KPiAK PiBUaGUgbW9kZS1zcGVjaWZpYyBjb25maWd1cmF0aW9uIG9mIHRoZSBzY2FsZXIgaGF2ZSBiZWVu IG1vdmVkIG91dAo+IGludG8gYSBzZXBhcmF0ZSBjbGFzcywgdGhlIG1vZGUtYWdub3N0aWMgc2V0 dGluZ3MgcmVtYWluIGFzIHJhdwo+IHJlZ2lzdGVyIGxpc3QgYXMgdGhlaXIgcHVycG9zZSByZW1h aW5zIHVuY2xlYXIgYXQgdGhpcyBwb2ludC4KClN0aWxsIGRvZXNuJ3QgcmVhbGx5IGZvbGxvdyB0 aGUgcGF0Y2ggZm9ybWF0LiBTaW1wbGVzdCB3YXkgcmVhbGx5IGlzIHRvCnVzZSBnaXQuIEFuZCBp ZiBnaXQgc2VuZC1lbWFpbCBkb2Vzbid0IHdvcmsgZm9yIHlvdSB5b3UgY2FuIGp1c3QgY3JlYXRl CnRoZSByYXcgY29tbWl0IHBhdGNoIHdpdGggZ2l0IGZvcm1hdC1wYXRjaCBhbmQgdGhlbiBhdHRh Y2ggdGhhdCBvbmUKdW5jaGFuZ2VkLiBBbHNvIHBsZWFzZSBub3RlIHRoYXQgYWNjb3JkaW5nIHRv CkRvY3VtZW50YXRpb24vU3VibWl0dGluZ1BhdGNoZXMgdGhlIHMtby1iIGxpbmUgc2hvdWxkIGJl IGF0IHRoZSBib3R0b20uCgpUaGFua3MsIERhbmllbAo+IAo+IC0tLQo+IC0tLSBkdm9fbnMyNTAx LmMJMjAxNS0wNC0xNSAxOTozNjozMS4wMDAwMDAwMDAgKzAyMDAKPiArKysgZHZvX25zMjUwMS5j LW9yZwkyMDE1LTA0LTE0IDE1OjM0OjM0LjAwMDAwMDAwMCArMDIwMAo+IEBAIC02MCwxMzAgKzYw LDYgQEAKPiAgCj4gICNkZWZpbmUgTlMyNTAxX1JFR0MgMHgwYwo+ICAKPiAtLyoKPiAtICogVGhl IGZvbGxvd2luZyByZWdpc3RlcnMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBkYXRhc2hl ZXQKPiAtICogYW5kIGFyZSB0aGUgcmVzdWx0IG9mIHJldmVyc2UgZW5naW5lZXJpbmcuCj4gLSAq Lwo+IC0KPiAtLyoKPiAtICogUmVnaXN0ZXIgYzAgY29udHJvbHMgaG93IHRoZSBEVk8gc3luY2hy b25pemVzIHdpdGgKPiAtICogaXRzIGlucHV0Lgo+IC0gKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVH QzAgMHhjMAo+IC0jZGVmaW5lIE5TMjUwMV9DMF9FTkFCTEUgKDE8PDApCS8qIGVuYWJsZSB0aGUg RFZPIHN5bmMgaW4gZ2VuZXJhbCAqLwo+IC0jZGVmaW5lIE5TMjUwMV9DMF9IU1lOQyAoMTw8MSkJ Lyogc3luY2hyb25pemUgaG9yaXpvbnRhbCB3aXRoIGlucHV0ICovCj4gLSNkZWZpbmUgTlMyNTAx X0MwX1ZTWU5DICgxPDwyKQkvKiBzeW5jaHJvbml6ZSB2ZXJ0aWNhbCB3aXRoIGlucHV0ICovCj4g LSNkZWZpbmUgTlMyNTAxX0MwX1JFU0VUICgxPDw3KQkvKiByZXNldCB0aGUgc3luY2hyb25pemF0 aW9uIGZsaXAvZmxvcHMgKi8KPiAtCj4gLS8qCj4gLSAqIFJlZ2lzdGVyIDQxIGlzIHNvbWVob3cg cmVsYXRlZCB0byB0aGUgc3luYyByZWdpc3RlciBhbmQgc3luYwo+IC0gKiBjb25maWd1cmF0aW9u LiBJdCBzaG91bGQgYmUgMHgzMiB3aGVuZXZlciByZWdDMCBpcyAweDA1IChoc3luYyBvZmYpCj4g LSAqIGFuZCAweDAwIG90aGVyd2lzZS4KPiAtICovCj4gLSNkZWZpbmUgTlMyNTAxX1JFRzQxIDB4 NDEKPiAtCj4gLS8qCj4gLSAqIHRoaXMgcmVnaXN0ZXIgY29udHJvbHMgdGhlIGRpdGhlcmluZyBv ZiB0aGUgRFZPCj4gLSAqIE9uZSBiaXQgZW5hYmxlcyBpdCwgdGhlIG90aGVyIGRlZmluZSB0aGUg ZGl0aGVyaW5nIGRlcHRoLgo+IC0gKiBUaGUgaGlnaGVyIHRoZSB2YWx1ZSwgdGhlIGxvd2VyIHRo ZSBkaXRoZXJpbmcgZGVwdGguCj4gLSAqLwo+IC0jZGVmaW5lIE5TMjUwMV9GOV9SRUcgMHhmOQo+ IC0jZGVmaW5lIE5TMjUwMV9GOV9FTkFCTEUgKDE8PDApCQkvKiBpZiBzZXQsIGRpdGhlcmluZyBp cyBlbmFibGVkICovCj4gLSNkZWZpbmUgTlMyNTAxX0Y5X0RJVEhFUl9NQVNLICgweDdmPDwxKQkv KiBjb250cm9scyB0aGUgZGl0aGVyIGRlcHRoICovCj4gLSNkZWZpbmUgTlMyNTAxX0Y5X0RJVEhF Ul9TSElGVCAxCS8qIHNoaWZ0cyB0aGUgZGl0aGVyIG1hc2sgKi8KPiAtCj4gLS8qCj4gLSAqIFBM TCBjb25maWd1cmF0aW9uIHJlZ2lzdGVyLiBUaGlzIGlzIGEgcGFpciBvZiByZWdpc3RlcnMsCj4g LSAqIG9uZSBzaW5nbGUgYnl0ZSByZWdpc3RlciBhdCAxQiwgYW5kIGEgcGFpciBhdCAxQywxRC4K PiAtICogVGhlc2UgcmVnaXN0ZXJzIGFyZSBjb3VudGVycy9kaXZpZGVycy4KPiAtICovCj4gLSNk ZWZpbmUgTlMyNTAxX1JFRzFCIDB4MWIgLyogb25lIGJ5dGUgUExMIGNvbnRyb2wgcmVnaXN0ZXIg Ki8KPiAtI2RlZmluZSBOUzI1MDFfUkVHMUMgMHgxYyAvKiBsb3ctcGFydCBvZiB0aGUgc2Vjb25k IHJlZ2lzdGVyICovCj4gLSNkZWZpbmUgTlMyNTAxX1JFRzFEIDB4MWQgLyogaGlnaC1wYXJ0IG9m IHRoZSBzZWNvbmQgcmVnaXN0ZXIgKi8KPiAtCj4gLS8qCj4gLSAqIFNjYWxlciBjb250cm9sIHJl Z2lzdGVycy4gSG9yaXpvbnRhbCBhdCBiOCxiOSwKPiAtICogdmVydGljYWwgYXQgMTAsMTEuIFRo ZSBzY2FsZSBmYWN0b3IgaXMgY29tcHV0ZWQgYXMKPiAtICogMl4xNi9jb250cm9sLXZhbHVlLiBU aGUgbG93LWJ5dGUgY29tZXMgZmlyc3QuCj4gLSAqLwo+IC0jZGVmaW5lIE5TMjUwMV9SRUcxMCAw eDEwIC8qIGxvdy1ieXRlIHZlcnRpY2FsIHNjYWxlciAqLwo+IC0jZGVmaW5lIE5TMjUwMV9SRUcx MSAweDExIC8qIGhpZ2gtYnl0ZSB2ZXJ0aWNhbCBzY2FsZXIgKi8KPiAtI2RlZmluZSBOUzI1MDFf UkVHQjggMHhiOCAvKiBsb3ctYnl0ZSBob3Jpem9udGFsIHNjYWxlciAqLwo+IC0jZGVmaW5lIE5T MjUwMV9SRUdCOSAweGI5IC8qIGhpZ2gtYnl0ZSBob3Jpem9udGFsIHNjYWxlciAqLwo+IC0KPiAt LyoKPiAtICogRGlzcGxheSB3aW5kb3cgZGVmaW5pdGlvbi4gVGhpcyBjb25zaXN0cyBvZiBmb3Vy IHJlZ2lzdGVycwo+IC0gKiBwZXIgZGltZW5zaW9uLiBPbmUgcmVnaXN0ZXIgcGFpciBkZWZpbmVz IHRoZSBzdGFydCBvZiB0aGUKPiAtICogZGlzcGxheSwgb25lIHRoZSBlbmQuCj4gLSAqIEFzIGZh ciBhcyBJIHVuZGVyc3RhbmQsIHRoaXMgZGVmaW5lcyB0aGUgd2luZG93IHdpdGhpbiB3aGljaAo+ IC0gKiB0aGUgc2NhbGVyIHNhbXBsZXMgdGhlIGlucHV0Lgo+IC0gKi8KPiAtI2RlZmluZSBOUzI1 MDFfUkVHQzEgMHhjMSAvKiBsb3ctYnl0ZSBob3Jpem9udGFsIGRpc3BsYXkgc3RhcnQgKi8KPiAt I2RlZmluZSBOUzI1MDFfUkVHQzIgMHhjMiAvKiBoaWdoLWJ5dGUgaG9yaXpvbnRhbCBkaXNwbGF5 IHN0YXJ0ICovCj4gLSNkZWZpbmUgTlMyNTAxX1JFR0MzIDB4YzMgLyogbG93LWJ5dGUgaG9yaXpv bnRhbCBkaXNwbGF5IHN0b3AgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHQzQgMHhjNCAvKiBoaWdo LWJ5dGUgaG9yaXpvbnRhbCBkaXNwbGF5IHN0b3AgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHQzUg MHhjNSAvKiBsb3ctYnl0ZSB2ZXJ0aWNhbCBkaXNwbGF5IHN0YXJ0ICovCj4gLSNkZWZpbmUgTlMy NTAxX1JFR0M2IDB4YzYgLyogaGlnaC1ieXRlIHZlcnRpY2FsIGRpc3BsYXkgc3RhcnQgKi8KPiAt I2RlZmluZSBOUzI1MDFfUkVHQzcgMHhjNyAvKiBsb3ctYnl0ZSB2ZXJ0aWNhbCBkaXNwbGF5IHN0 b3AgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHQzggMHhjOCAvKiBoaWdoLWJ5dGUgdmVydGljYWwg ZGlzcGxheSBzdG9wICovCj4gLQo+IC0vKgo+IC0gKiBUaGUgZm9sbG93aW5nIHJlZ2lzdGVyIHBh aXIgc2VlbXMgdG8gZGVmaW5lIHRoZSBzdGFydCBvZgo+IC0gKiB0aGUgdmVydGljYWwgc3luYy4g SWYgYXV0b21hdGljIHN5bmNpbmcgaXMgZW5hYmxlZCwgYW5kIHRoZQo+IC0gKiByZWdpc3RlciB2 YWx1ZSBkZWZpbmVzIGEgc3luYyBwdWxzZSB0aGF0IGlzIGxhdGVyIHRoYW4gdGhlCj4gLSAqIGlu Y29taW5nIHN5bmMsIHRoZW4gdGhlIHJlZ2lzdGVyIHZhbHVlIGlzIGlnbm9yZWQgYW5kIHRoZQo+ IC0gKiBleHRlcm5hbCBoc3luYyB0cmlnZ2VycyB0aGUgc3luY2hyb25pemF0aW9uLgo+IC0gKi8K PiAtI2RlZmluZSBOUzI1MDFfUkVHODAgMHg4MCAvKiBsb3ctYnl0ZSB2c3luYy1zdGFydCAqLwo+ IC0jZGVmaW5lIE5TMjUwMV9SRUc4MSAweDgxIC8qIGhpZ2gtYnl0ZSB2c3luYy1zdGFydCAqLwo+ IC0KPiAtLyoKPiAtICogVGhlIGZvbGxvd2luZyByZWdpc3RlciBwYWlyIHNlZW1zIHRvIGRlZmlu ZSB0aGUgdG90YWwgbnVtYmVyCj4gLSAqIG9mIGxpbmVzIGNyZWF0ZWQgYXQgdGhlIG91dHB1dCBz aWRlIG9mIHRoZSBzY2FsZXIuCj4gLSAqIFRoaXMgaXMgYWdhaW4gYSBsb3ctaGlnaCByZWdpc3Rl ciBwYWlyLgo+IC0gKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHODIgMHg4MiAvKiBvdXRwdXQgZGlz cGxheSBoZWlnaHQsIGxvdyBieXRlICovCj4gLSNkZWZpbmUgTlMyNTAxX1JFRzgzIDB4ODMgLyog b3V0cHV0IGRpc3BsYXkgaGVpZ2h0LCBoaWdoIGJ5dGUgKi8KPiAtCj4gLS8qCj4gLSAqIFRoZSBm b2xsb3dpbmcgcmVnaXN0ZXJzIGRlZmluZSB0aGUgZW5kIG9mIHRoZSBmcm9udC1wb3JjaAo+IC0g KiBpbiBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBwb3NpdGlvbiBhbmQgaGVuY2UgYWxsb3cgdG8g c2hpZnQKPiAtICogdGhlIGltYWdlIGxlZnQvcmlnaHQgb3IgdXAvZG93bi4KPiAtICovCj4gLSNk ZWZpbmUgTlMyNTAxX1JFRzk4IDB4OTggLyogaG9yaXpvbnRhbCBzdGFydCBvZiBkaXNwbGF5ICsg MjU2LCBsb3cgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHOTkgMHg5OSAvKiBob3Jpem9udGFsIHN0 YXJ0IG9mIGRpc3BsYXkgKyAyNTYsIGhpZ2ggKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHOEUgMHg4 ZSAvKiB2ZXJ0aWNhbCBzdGFydCBvZiB0aGUgZGlzcGxheSwgbG93IGJ5dGUgKi8KPiAtI2RlZmlu ZSBOUzI1MDFfUkVHOEYgMHg4ZiAvKiB2ZXJ0aWNhbCBzdGFydCBvZiB0aGUgZGlzcGxheSwgaGln aCBieXRlICovCj4gLQo+IC0vKgo+IC0gKiBUaGUgZm9sbG93aW5nIHJlZ2lzdGVyIHBhaXIgY29u dHJvbCB0aGUgZnVuY3Rpb24gb2YgdGhlCj4gLSAqIGJhY2tsaWdodCBhbmQgdGhlIERWTyBvdXRw dXQuIFRvIGVuYWJsZSB0aGUgY29ycmVzcG9uZGluZwo+IC0gKiBmdW5jdGlvbiwgdGhlIGNvcnJl c3BvbmRpbmcgYml0IG11c3QgYmUgc2V0IGluIGJvdGggcmVnaXN0ZXJzLgo+IC0gKi8KPiAtI2Rl ZmluZSBOUzI1MDFfUkVHMzQgMHgzNCAvKiBEVk8gZW5hYmxlIGZ1bmN0aW9ucywgZmlyc3QgcmVn aXN0ZXIgKi8KPiAtI2RlZmluZSBOUzI1MDFfUkVHMzUgMHgzNSAvKiBEVk8gZW5hYmxlIGZ1bmN0 aW9ucywgc2Vjb25kIHJlZ2lzdGVyICovCj4gLSNkZWZpbmUgTlMyNTAxXzM0X0VOQUJMRV9PVVRQ VVQgKDE8PDApIC8qIGVuYWJsZSBEVk8gb3V0cHV0ICovCj4gLSNkZWZpbmUgTlMyNTAxXzM0X0VO QUJMRV9CQUNLTElHSFQgKDE8PDEpIC8qIGVuYWJsZSBiYWNrbGlnaHQgKi8KPiAtCj4gLS8qCj4g LSAqIFJlZ2lzdGVycyA5QyBhbmQgOUQgZGVmaW5lIHRoZSB2ZXJ0aWNhbCBvdXRwdXQgb2Zmc2V0 Cj4gLSAqIG9mIHRoZSB2aXNpYmxlIHJlZ2lvbi4KPiAtICovCj4gLSNkZWZpbmUgTlMyNTAxX1JF RzlDIDB4OWMKPiAtI2RlZmluZSBOUzI1MDFfUkVHOUQgMHg5ZAo+IC0KPiAtLyoKPiAtICogVGhl IHJlZ2lzdGVyIDlGIGRlZmluZXMgdGhlIGRpdGhlcmluZy4gVGhpcyByZXF1aXJlcyB0aGUKPiAt ICogc2NhbGVyIHRvIGJlIE9OLiBCaXQgMCBlbmFibGVzIGRpdGhlcmluZywgdGhlIHJlbWFpbmlu Zwo+IC0gKiBiaXRzIGNvbnRyb2wgdGhlIGRlcHRoIG9mIHRoZSBkaXRoZXIuIFRoZSBoaWdoZXIg dGhlIHZhbHVlLAo+IC0gKiB0aGUgTE9XRVIgdGhlIGRpdGhlcmluZyBhbXBsaXR1ZGUuIEEgZ29v ZCB2YWx1ZSBzZWVtcyB0byBiZQo+IC0gKiAxNSAodG90YWwgcmVnaXN0ZXIgdmFsdWUpLgo+IC0g Ki8KPiAtI2RlZmluZSBOUzI1MDFfUkVHRjkgMHhmOQo+IC0jZGVmaW5lIE5TMjUwMV9GOV9FTkFC TEVfRElUSEVSICgxPDwwKSAvKiBlbmFibGUgZGl0aGVyaW5nICovCj4gLSNkZWZpbmUgTlMyNTAx X0Y5X0RJVEhFUl9NQVNLICgweDdmPDwxKSAvKiBkaXRoZXIgbWFza2luZyAqLwo+IC0jZGVmaW5l IE5TMjUwMV9GOV9ESVRIRVJfU0hJRlQgMQkvKiB1cHNoaWZ0IG9mIHRoZSBkaXRoZXIgbWFzayAq Lwo+IC0KPiAgZW51bSB7Cj4gIAlNT0RFXzY0MHg0ODAsCj4gIAlNT0RFXzgwMHg2MDAsCj4gQEAg LTE5NiwxNzggKzcyLDI3NCBAQAo+ICB9Owo+ICAKPiAgLyoKPiAtICogVGhlIGZvbGxvd2luZyBz dHJ1Y3R1cmUga2VlcHMgdGhlIGNvbXBsZXRlIGNvbmZpZ3VyYXRpb24gb2YKPiAtICogdGhlIERW TywgZ2l2ZW4gYSBzcGVjaWZpYyBvdXRwdXQgY29uZmlndXJhdGlvbi4KPiAtICogVGhpcyBpcyBw cmV0dHkgbXVjaCBndWVzcy13b3JrIGZyb20gcmV2ZXJzZS1lbmdpbmVlcmluZywgc28KPiAtICog cmVhZCBhbGwgdGhpcyB3aXRoIGEgZ3JhaW4gb2Ygc2FsdC4KPiAtICovCj4gLXN0cnVjdCBuczI1 MDFfY29uZmlndXJhdGlvbiB7Cj4gLQl1aW50OF90IHN5bmM7CQkvKiBjb25maWd1cmF0aW9uIG9m IHRoZSBDMCByZWdpc3RlciAqLwo+IC0JdWludDhfdCBjb25mOwkJLyogY29uZmlndXJhdGlvbiBy ZWdpc3RlciA4ICovCj4gLQl1aW50OF90IHN5bmNiOwkJLyogY29uZmlndXJhdGlvbiByZWdpc3Rl ciA0MSAqLwo+IC0JdWludDhfdAlkaXRoZXI7CQkvKiBjb25maWd1cmF0aW9uIG9mIHRoZSBkaXRo ZXJpbmcgKi8KPiAtCXVpbnQ4X3QgcGxsX2E7CQkvKiBQTEwgY29uZmlndXJhdGlvbiwgcmVnaXN0 ZXIgQSwgMUIgKi8KPiAtCXVpbnQxNl90IHBsbF9iOwkJLyogUExMIGNvbmZpZ3VyYXRpb24sIHJl Z2lzdGVyIEIsIDFDLzFEICovCj4gLQl1aW50MTZfdCBoc3RhcnQ7CS8qIGhvcml6b250YWwgc3Rh cnQsIHJlZ2lzdGVycyBDMS9DMiAqLwo+IC0JdWludDE2X3QgaHN0b3A7CQkvKiBob3Jpem9udGFs IHRvdGFsLCByZWdpc3RlcnMgQzMvQzQgKi8KPiAtCXVpbnQxNl90IHZzdGFydDsJLyogdmVydGlj YWwgc3RhcnQsIHJlZ2lzdGVycyBDNS9DNiAqLwo+IC0JdWludDE2X3QgdnN0b3A7CQkvKiB2ZXJ0 aWNhbCB0b3RhbCwgcmVnaXN0ZXJzIEM3L0M4ICovCj4gLQl1aW50MTZfdCB2c3luYzsgICAgICAg ICAvKiBtYW51YWwgdmVydGljYWwgc3luYyBzdGFydCwgODAvODEgKi8KPiAtCXVpbnQxNl90IHZ0 b3RhbDsgICAgICAgIC8qIG51bWJlciBvZiBsaW5lcyBnZW5lcmF0ZWQsIDgyLzgzICovCj4gLQl1 aW50MTZfdCBocG9zOwkJLyogaG9yaXpvbnRhbCBwb3NpdGlvbiArIDI1NiwgOTgvOTkgICovCj4g LQl1aW50MTZfdCB2cG9zOwkJLyogdmVydGljYWwgcG9zaXRpb24sIDhlLzhmICovCj4gLQl1aW50 MTZfdCB2b2ZmczsJCS8qIHZlcnRpY2FsIG91dHB1dCBvZmZzZXQsIDljLzlkICovCj4gLQl1aW50 MTZfdCBoc2NhbGU7CS8qIGhvcml6b250YWwgc2NhbGluZyBmYWN0b3IsIGI4L2I5ICovCj4gLQl1 aW50MTZfdCB2c2NhbGU7CS8qIHZlcnRpY2FsIHNjYWxpbmcgZmFjdG9yLCAxMC8xMSAqLwo+IC19 Owo+IC0KPiAtLyoKPiAtICogRFZPIGNvbmZpZ3VyYXRpb24gdmFsdWVzLCBwYXJ0aWFsbHkgYmFz ZWQgb24gd2hhdCB0aGUgQklPUwo+IC0gKiBvZiB0aGUgRnVqaXRzdSBMaWZlYm9vayBTNjAxMCB3 cml0ZXMgaW50byByZWdpc3RlcnMsCj4gLSAqIHBhcnRpYWxseSBmb3VuZCBieSBtYW51YWwgdHdl YWtpbmcuIFRoZXNlIGNvbmZpZ3VyYXRpb25zIGFzc3VtZQo+IC0gKiBhIDEwMjR4NzY4IHBhbmVs Lgo+ICsgKiBNYWdpYyB2YWx1ZXMgYmFzZWQgb24gd2hhdCB0aGUgQklPUyBvbgo+ICsgKiBGdWpp dHN1LVNpZW1lbnMgTGlmZWJvb2sgUzYwMTAgcHJvZ3JhbXMgKDEwMjR4NzY4IHBhbmVsKS4KPiAg ICovCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbnMyNTAxX2NvbmZpZ3VyYXRpb24gbnMyNTAxX21v ZGVzW10gPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbnMyNTAxX3JlZyByZWdzXzEwMjR4NzY4 W11bODZdID0gewo+ICAJW01PREVfNjQweDQ4MF0gPSB7Cj4gLQkJLnN5bmMJPSBOUzI1MDFfQzBf RU5BQkxFIHwgTlMyNTAxX0MwX1ZTWU5DLAo+IC0JCS5jb25mCT0gTlMyNTAxXzhfVkVOIHwgTlMy NTAxXzhfSEVOIHwgTlMyNTAxXzhfUEQsCj4gLQkJLnN5bmNiCT0gMHgzMiwKPiAtCQkuZGl0aGVy CT0gMHgwZiwKPiAtCQkucGxsX2EJPSAxNywKPiAtCQkucGxsX2IJPSA4NTIsCj4gLQkJLmhzdGFy dAk9IDE0NCwKPiAtCQkuaHN0b3AJPSA3ODMsCj4gLQkJLnZzdGFydAk9IDIyLAo+IC0JCS52c3Rv cAk9IDUxNCwKPiAtCQkudnN5bmMJPSAyMDQ3LCAvKiBhY3R1YWxseSwgaWdub3JlZCB3aXRoIHRo aXMgY29uZmlnICovCj4gLQkJLnZ0b3RhbAk9IDEzNDEsCj4gLQkJLmhwb3MJPSAwLAo+IC0JCS52 cG9zCT0gMTYsCj4gLQkJLnZvZmZzCT0gMzYsCj4gLQkJLmhzY2FsZQk9IDQwOTYwLAo+IC0JCS52 c2NhbGUJPSA0MDk2MAo+ICsJCVswXSA9IHsgLm9mZnNldCA9IDB4MGEsIC52YWx1ZSA9IDB4ODEs IH0sCj4gKwkJWzFdID0geyAub2Zmc2V0ID0gMHgxOCwgLnZhbHVlID0gMHgwNywgfSwKPiArCQlb Ml0gPSB7IC5vZmZzZXQgPSAweDE5LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVszXSA9IHsgLm9m ZnNldCA9IDB4MWEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzRdID0geyAub2Zmc2V0ID0gMHgx YiwgLnZhbHVlID0gMHgxMSwgfSwKPiArCQlbNV0gPSB7IC5vZmZzZXQgPSAweDFjLCAudmFsdWUg PSAweDU0LCB9LAo+ICsJCVs2XSA9IHsgLm9mZnNldCA9IDB4MWQsIC52YWx1ZSA9IDB4MDMsIH0s Cj4gKwkJWzddID0geyAub2Zmc2V0ID0gMHgxZSwgLnZhbHVlID0gMHgwMiwgfSwKPiArCQlbOF0g PSB7IC5vZmZzZXQgPSAweGYzLCAudmFsdWUgPSAweDkwLCB9LAo+ICsJCVs5XSA9IHsgLm9mZnNl dCA9IDB4ZjksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzEwXSA9IHsgLm9mZnNldCA9IDB4YzEs IC52YWx1ZSA9IDB4OTAsIH0sCj4gKwkJWzExXSA9IHsgLm9mZnNldCA9IDB4YzIsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gKwkJWzEyXSA9IHsgLm9mZnNldCA9IDB4YzMsIC52YWx1ZSA9IDB4MGYsIH0s Cj4gKwkJWzEzXSA9IHsgLm9mZnNldCA9IDB4YzQsIC52YWx1ZSA9IDB4MDMsIH0sCj4gKwkJWzE0 XSA9IHsgLm9mZnNldCA9IDB4YzUsIC52YWx1ZSA9IDB4MTYsIH0sCj4gKwkJWzE1XSA9IHsgLm9m ZnNldCA9IDB4YzYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzE2XSA9IHsgLm9mZnNldCA9IDB4 YzcsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzE3XSA9IHsgLm9mZnNldCA9IDB4YzgsIC52YWx1 ZSA9IDB4MDIsIH0sCj4gKwkJWzE4XSA9IHsgLm9mZnNldCA9IDB4ZjQsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzE5XSA9IHsgLm9mZnNldCA9IDB4ODAsIC52YWx1ZSA9IDB4ZmYsIH0sCj4gKwkJ WzIwXSA9IHsgLm9mZnNldCA9IDB4ODEsIC52YWx1ZSA9IDB4MDcsIH0sCj4gKwkJWzIxXSA9IHsg Lm9mZnNldCA9IDB4ODIsIC52YWx1ZSA9IDB4M2QsIH0sCj4gKwkJWzIyXSA9IHsgLm9mZnNldCA9 IDB4ODMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkJWzIzXSA9IHsgLm9mZnNldCA9IDB4OTQsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI0XSA9IHsgLm9mZnNldCA9IDB4OTUsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzI1XSA9IHsgLm9mZnNldCA9IDB4OTYsIC52YWx1ZSA9IDB4MDUsIH0sCj4g KwkJWzI2XSA9IHsgLm9mZnNldCA9IDB4OTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI3XSA9 IHsgLm9mZnNldCA9IDB4OWEsIC52YWx1ZSA9IDB4ODgsIH0sCj4gKwkJWzI4XSA9IHsgLm9mZnNl dCA9IDB4OWIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI5XSA9IHsgLm9mZnNldCA9IDB4OTgs IC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzMwXSA9IHsgLm9mZnNldCA9IDB4OTksIC52YWx1ZSA9 IDB4MDAsIH0sCj4gKwkJWzMxXSA9IHsgLm9mZnNldCA9IDB4ZjcsIC52YWx1ZSA9IDB4ODgsIH0s Cj4gKwkJWzMyXSA9IHsgLm9mZnNldCA9IDB4ZjgsIC52YWx1ZSA9IDB4MGEsIH0sCj4gKwkJWzMz XSA9IHsgLm9mZnNldCA9IDB4OWMsIC52YWx1ZSA9IDB4MjQsIH0sCj4gKwkJWzM0XSA9IHsgLm9m ZnNldCA9IDB4OWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzM1XSA9IHsgLm9mZnNldCA9IDB4 OWUsIC52YWx1ZSA9IDB4MjUsIH0sCj4gKwkJWzM2XSA9IHsgLm9mZnNldCA9IDB4OWYsIC52YWx1 ZSA9IDB4MDMsIH0sCj4gKwkJWzM3XSA9IHsgLm9mZnNldCA9IDB4YTAsIC52YWx1ZSA9IDB4Mjgs IH0sCj4gKwkJWzM4XSA9IHsgLm9mZnNldCA9IDB4YTEsIC52YWx1ZSA9IDB4MDEsIH0sCj4gKwkJ WzM5XSA9IHsgLm9mZnNldCA9IDB4YTIsIC52YWx1ZSA9IDB4MjgsIH0sCj4gKwkJWzQwXSA9IHsg Lm9mZnNldCA9IDB4YTMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkJWzQxXSA9IHsgLm9mZnNldCA9 IDB4YjYsIC52YWx1ZSA9IDB4MDksIH0sCj4gKwkJWzQyXSA9IHsgLm9mZnNldCA9IDB4YjgsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzQzXSA9IHsgLm9mZnNldCA9IDB4YjksIC52YWx1ZSA9IDB4 YTAsIH0sCj4gKwkJWzQ0XSA9IHsgLm9mZnNldCA9IDB4YmEsIC52YWx1ZSA9IDB4MDAsIH0sCj4g KwkJWzQ1XSA9IHsgLm9mZnNldCA9IDB4YmIsIC52YWx1ZSA9IDB4MjAsIH0sCj4gKwkJWzQ2XSA9 IHsgLm9mZnNldCA9IDB4MTAsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzQ3XSA9IHsgLm9mZnNl dCA9IDB4MTEsIC52YWx1ZSA9IDB4YTAsIH0sCj4gKwkJWzQ4XSA9IHsgLm9mZnNldCA9IDB4MTIs IC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzQ5XSA9IHsgLm9mZnNldCA9IDB4MjAsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gKwkJWzUwXSA9IHsgLm9mZnNldCA9IDB4MjIsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gKwkJWzUxXSA9IHsgLm9mZnNldCA9IDB4MjMsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUy XSA9IHsgLm9mZnNldCA9IDB4MjQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUzXSA9IHsgLm9m ZnNldCA9IDB4MjUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzU0XSA9IHsgLm9mZnNldCA9IDB4 OGMsIC52YWx1ZSA9IDB4MTAsIH0sCj4gKwkJWzU1XSA9IHsgLm9mZnNldCA9IDB4OGQsIC52YWx1 ZSA9IDB4MDIsIH0sCj4gKwkJWzU2XSA9IHsgLm9mZnNldCA9IDB4OGUsIC52YWx1ZSA9IDB4MTAs IH0sCj4gKwkJWzU3XSA9IHsgLm9mZnNldCA9IDB4OGYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzU4XSA9IHsgLm9mZnNldCA9IDB4OTAsIC52YWx1ZSA9IDB4ZmYsIH0sCj4gKwkJWzU5XSA9IHsg Lm9mZnNldCA9IDB4OTEsIC52YWx1ZSA9IDB4MDcsIH0sCj4gKwkJWzYwXSA9IHsgLm9mZnNldCA9 IDB4OTIsIC52YWx1ZSA9IDB4YTAsIH0sCj4gKwkJWzYxXSA9IHsgLm9mZnNldCA9IDB4OTMsIC52 YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzYyXSA9IHsgLm9mZnNldCA9IDB4YTUsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzYzXSA9IHsgLm9mZnNldCA9IDB4YTYsIC52YWx1ZSA9IDB4MDAsIH0sCj4g KwkJWzY0XSA9IHsgLm9mZnNldCA9IDB4YTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzY1XSA9 IHsgLm9mZnNldCA9IDB4YTgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzY2XSA9IHsgLm9mZnNl dCA9IDB4YTksIC52YWx1ZSA9IDB4MDQsIH0sCj4gKwkJWzY3XSA9IHsgLm9mZnNldCA9IDB4YWEs IC52YWx1ZSA9IDB4NzAsIH0sCj4gKwkJWzY4XSA9IHsgLm9mZnNldCA9IDB4YWIsIC52YWx1ZSA9 IDB4NGYsIH0sCj4gKwkJWzY5XSA9IHsgLm9mZnNldCA9IDB4YWMsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gKwkJWzcwXSA9IHsgLm9mZnNldCA9IDB4YTQsIC52YWx1ZSA9IDB4ODQsIH0sCj4gKwkJWzcx XSA9IHsgLm9mZnNldCA9IDB4N2UsIC52YWx1ZSA9IDB4MTgsIH0sCj4gKwkJWzcyXSA9IHsgLm9m ZnNldCA9IDB4ODQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzczXSA9IHsgLm9mZnNldCA9IDB4 ODUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc0XSA9IHsgLm9mZnNldCA9IDB4ODYsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gKwkJWzc1XSA9IHsgLm9mZnNldCA9IDB4ODcsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzc2XSA9IHsgLm9mZnNldCA9IDB4ODgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ Wzc3XSA9IHsgLm9mZnNldCA9IDB4ODksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc4XSA9IHsg Lm9mZnNldCA9IDB4OGEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc5XSA9IHsgLm9mZnNldCA9 IDB4OGIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgwXSA9IHsgLm9mZnNldCA9IDB4MjYsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgxXSA9IHsgLm9mZnNldCA9IDB4MjcsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzgyXSA9IHsgLm9mZnNldCA9IDB4YWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4g KwkJWzgzXSA9IHsgLm9mZnNldCA9IDB4MDgsIC52YWx1ZSA9IDB4MzAsIH0sIC8qIDB4MzEgKi8K PiArCQlbODRdID0geyAub2Zmc2V0ID0gMHg0MSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCQlbODVd ID0geyAub2Zmc2V0ID0gMHhjMCwgLnZhbHVlID0gMHgwNSwgfSwKPiAgCX0sCj4gIAlbTU9ERV84 MDB4NjAwXSA9IHsKPiAtCQkuc3luYwk9IE5TMjUwMV9DMF9FTkFCTEUgfAo+IC0JCQkgIE5TMjUw MV9DMF9IU1lOQyB8IE5TMjUwMV9DMF9WU1lOQywKPiAtCQkuY29uZiAgID0gTlMyNTAxXzhfVkVO IHwgTlMyNTAxXzhfSEVOIHwgTlMyNTAxXzhfUEQsCj4gLQkJLnN5bmNiCT0gMHgwMCwKPiAtCQku ZGl0aGVyCT0gMHgwZiwKPiAtCQkucGxsX2EJPSAyNSwKPiAtCQkucGxsX2IJPSA2MTIsCj4gLQkJ LmhzdGFydAk9IDIxNSwKPiAtCQkuaHN0b3AJPSAxMDE2LAo+IC0JCS52c3RhcnQJPSAyNiwKPiAt CQkudnN0b3AJPSA2MjcsCj4gLQkJLnZzeW5jCT0gODA3LAo+IC0JCS52dG90YWwJPSAxMzQxLAo+ IC0JCS5ocG9zCT0gMCwKPiAtCQkudnBvcwk9IDQsCj4gLQkJLnZvZmZzCT0gMzUsCj4gLQkJLmhz Y2FsZQk9IDUxMjQ4LAo+IC0JCS52c2NhbGUJPSA1MTIzMgo+ICsJCVswXSA9IHsgLm9mZnNldCA9 IDB4MGEsIC52YWx1ZSA9IDB4ODEsIH0sCj4gKwkJWzFdID0geyAub2Zmc2V0ID0gMHgxOCwgLnZh bHVlID0gMHgwNywgfSwKPiArCQlbMl0gPSB7IC5vZmZzZXQgPSAweDE5LCAudmFsdWUgPSAweDAw LCB9LAo+ICsJCVszXSA9IHsgLm9mZnNldCA9IDB4MWEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzRdID0geyAub2Zmc2V0ID0gMHgxYiwgLnZhbHVlID0gMHgxOSwgfSwKPiArCQlbNV0gPSB7IC5v ZmZzZXQgPSAweDFjLCAudmFsdWUgPSAweDY0LCB9LAo+ICsJCVs2XSA9IHsgLm9mZnNldCA9IDB4 MWQsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzddID0geyAub2Zmc2V0ID0gMHgxZSwgLnZhbHVl ID0gMHgwMiwgfSwKPiArCQlbOF0gPSB7IC5vZmZzZXQgPSAweGYzLCAudmFsdWUgPSAweDkwLCB9 LAo+ICsJCVs5XSA9IHsgLm9mZnNldCA9IDB4ZjksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzEw XSA9IHsgLm9mZnNldCA9IDB4YzEsIC52YWx1ZSA9IDB4ZDcsIH0sCj4gKwkJWzExXSA9IHsgLm9m ZnNldCA9IDB4YzIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzEyXSA9IHsgLm9mZnNldCA9IDB4 YzMsIC52YWx1ZSA9IDB4ZjgsIH0sCj4gKwkJWzEzXSA9IHsgLm9mZnNldCA9IDB4YzQsIC52YWx1 ZSA9IDB4MDMsIH0sCj4gKwkJWzE0XSA9IHsgLm9mZnNldCA9IDB4YzUsIC52YWx1ZSA9IDB4MWEs IH0sCj4gKwkJWzE1XSA9IHsgLm9mZnNldCA9IDB4YzYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzE2XSA9IHsgLm9mZnNldCA9IDB4YzcsIC52YWx1ZSA9IDB4NzMsIH0sCj4gKwkJWzE3XSA9IHsg Lm9mZnNldCA9IDB4YzgsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzE4XSA9IHsgLm9mZnNldCA9 IDB4ZjQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzE5XSA9IHsgLm9mZnNldCA9IDB4ODAsIC52 YWx1ZSA9IDB4MjcsIH0sCj4gKwkJWzIwXSA9IHsgLm9mZnNldCA9IDB4ODEsIC52YWx1ZSA9IDB4 MDMsIH0sCj4gKwkJWzIxXSA9IHsgLm9mZnNldCA9IDB4ODIsIC52YWx1ZSA9IDB4NDEsIH0sCj4g KwkJWzIyXSA9IHsgLm9mZnNldCA9IDB4ODMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkJWzIzXSA9 IHsgLm9mZnNldCA9IDB4OTQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI0XSA9IHsgLm9mZnNl dCA9IDB4OTUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI1XSA9IHsgLm9mZnNldCA9IDB4OTYs IC52YWx1ZSA9IDB4MDUsIH0sCj4gKwkJWzI2XSA9IHsgLm9mZnNldCA9IDB4OTcsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gKwkJWzI3XSA9IHsgLm9mZnNldCA9IDB4OWEsIC52YWx1ZSA9IDB4ODgsIH0s Cj4gKwkJWzI4XSA9IHsgLm9mZnNldCA9IDB4OWIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzI5 XSA9IHsgLm9mZnNldCA9IDB4OTgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzMwXSA9IHsgLm9m ZnNldCA9IDB4OTksIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzMxXSA9IHsgLm9mZnNldCA9IDB4 ZjcsIC52YWx1ZSA9IDB4ODgsIH0sCj4gKwkJWzMyXSA9IHsgLm9mZnNldCA9IDB4ZjgsIC52YWx1 ZSA9IDB4MDYsIH0sCj4gKwkJWzMzXSA9IHsgLm9mZnNldCA9IDB4OWMsIC52YWx1ZSA9IDB4MjMs IH0sCj4gKwkJWzM0XSA9IHsgLm9mZnNldCA9IDB4OWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzM1XSA9IHsgLm9mZnNldCA9IDB4OWUsIC52YWx1ZSA9IDB4MjUsIH0sCj4gKwkJWzM2XSA9IHsg Lm9mZnNldCA9IDB4OWYsIC52YWx1ZSA9IDB4MDMsIH0sCj4gKwkJWzM3XSA9IHsgLm9mZnNldCA9 IDB4YTAsIC52YWx1ZSA9IDB4MjgsIH0sCj4gKwkJWzM4XSA9IHsgLm9mZnNldCA9IDB4YTEsIC52 YWx1ZSA9IDB4MDEsIH0sCj4gKwkJWzM5XSA9IHsgLm9mZnNldCA9IDB4YTIsIC52YWx1ZSA9IDB4 MjgsIH0sCj4gKwkJWzQwXSA9IHsgLm9mZnNldCA9IDB4YTMsIC52YWx1ZSA9IDB4MDUsIH0sCj4g KwkJWzQxXSA9IHsgLm9mZnNldCA9IDB4YjYsIC52YWx1ZSA9IDB4MDksIH0sCj4gKwkJWzQyXSA9 IHsgLm9mZnNldCA9IDB4YjgsIC52YWx1ZSA9IDB4MzAsIH0sCj4gKwkJWzQzXSA9IHsgLm9mZnNl dCA9IDB4YjksIC52YWx1ZSA9IDB4YzgsIH0sCj4gKwkJWzQ0XSA9IHsgLm9mZnNldCA9IDB4YmEs IC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzQ1XSA9IHsgLm9mZnNldCA9IDB4YmIsIC52YWx1ZSA9 IDB4MjAsIH0sCj4gKwkJWzQ2XSA9IHsgLm9mZnNldCA9IDB4MTAsIC52YWx1ZSA9IDB4MjAsIH0s Cj4gKwkJWzQ3XSA9IHsgLm9mZnNldCA9IDB4MTEsIC52YWx1ZSA9IDB4YzgsIH0sCj4gKwkJWzQ4 XSA9IHsgLm9mZnNldCA9IDB4MTIsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzQ5XSA9IHsgLm9m ZnNldCA9IDB4MjAsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUwXSA9IHsgLm9mZnNldCA9IDB4 MjIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzUxXSA9IHsgLm9mZnNldCA9IDB4MjMsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gKwkJWzUyXSA9IHsgLm9mZnNldCA9IDB4MjQsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzUzXSA9IHsgLm9mZnNldCA9IDB4MjUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzU0XSA9IHsgLm9mZnNldCA9IDB4OGMsIC52YWx1ZSA9IDB4MTAsIH0sCj4gKwkJWzU1XSA9IHsg Lm9mZnNldCA9IDB4OGQsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzU2XSA9IHsgLm9mZnNldCA9 IDB4OGUsIC52YWx1ZSA9IDB4MDQsIH0sCj4gKwkJWzU3XSA9IHsgLm9mZnNldCA9IDB4OGYsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzU4XSA9IHsgLm9mZnNldCA9IDB4OTAsIC52YWx1ZSA9IDB4 ZmYsIH0sCj4gKwkJWzU5XSA9IHsgLm9mZnNldCA9IDB4OTEsIC52YWx1ZSA9IDB4MDcsIH0sCj4g KwkJWzYwXSA9IHsgLm9mZnNldCA9IDB4OTIsIC52YWx1ZSA9IDB4YTAsIH0sCj4gKwkJWzYxXSA9 IHsgLm9mZnNldCA9IDB4OTMsIC52YWx1ZSA9IDB4MDIsIH0sCj4gKwkJWzYyXSA9IHsgLm9mZnNl dCA9IDB4YTUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzYzXSA9IHsgLm9mZnNldCA9IDB4YTYs IC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzY0XSA9IHsgLm9mZnNldCA9IDB4YTcsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gKwkJWzY1XSA9IHsgLm9mZnNldCA9IDB4YTgsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gKwkJWzY2XSA9IHsgLm9mZnNldCA9IDB4YTksIC52YWx1ZSA9IDB4ODMsIH0sCj4gKwkJWzY3 XSA9IHsgLm9mZnNldCA9IDB4YWEsIC52YWx1ZSA9IDB4NDAsIH0sCj4gKwkJWzY4XSA9IHsgLm9m ZnNldCA9IDB4YWIsIC52YWx1ZSA9IDB4MzIsIH0sCj4gKwkJWzY5XSA9IHsgLm9mZnNldCA9IDB4 YWMsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzcwXSA9IHsgLm9mZnNldCA9IDB4YTQsIC52YWx1 ZSA9IDB4ODAsIH0sCj4gKwkJWzcxXSA9IHsgLm9mZnNldCA9IDB4N2UsIC52YWx1ZSA9IDB4MTgs IH0sCj4gKwkJWzcyXSA9IHsgLm9mZnNldCA9IDB4ODQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJ WzczXSA9IHsgLm9mZnNldCA9IDB4ODUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc0XSA9IHsg Lm9mZnNldCA9IDB4ODYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc1XSA9IHsgLm9mZnNldCA9 IDB4ODcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc2XSA9IHsgLm9mZnNldCA9IDB4ODgsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzc3XSA9IHsgLm9mZnNldCA9IDB4ODksIC52YWx1ZSA9IDB4 MDAsIH0sCj4gKwkJWzc4XSA9IHsgLm9mZnNldCA9IDB4OGEsIC52YWx1ZSA9IDB4MDAsIH0sCj4g KwkJWzc5XSA9IHsgLm9mZnNldCA9IDB4OGIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgwXSA9 IHsgLm9mZnNldCA9IDB4MjYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgxXSA9IHsgLm9mZnNl dCA9IDB4MjcsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgyXSA9IHsgLm9mZnNldCA9IDB4YWQs IC52YWx1ZSA9IDB4MDAsIH0sCj4gKwkJWzgzXSA9IHsgLm9mZnNldCA9IDB4MDgsIC52YWx1ZSA9 IDB4MzAsIH0sIC8qIDB4MzEgKi8KPiArCQlbODRdID0geyAub2Zmc2V0ID0gMHg0MSwgLnZhbHVl ID0gMHgwMCwgfSwKPiArCQlbODVdID0geyAub2Zmc2V0ID0gMHhjMCwgLnZhbHVlID0gMHgwNywg fSwKPiAgCX0sCj4gIAlbTU9ERV8xMDI0eDc2OF0gPSB7Cj4gLQkJLnN5bmMJPSBOUzI1MDFfQzBf RU5BQkxFIHwgTlMyNTAxX0MwX1ZTWU5DLAo+IC0JCS5jb25mICAgPSBOUzI1MDFfOF9WRU4gfCBO UzI1MDFfOF9IRU4gfCBOUzI1MDFfOF9QRCwKPiAtCQkuc3luY2IJPSAweDMyLAo+IC0JCS5kaXRo ZXIJPSAweDBmLAo+IC0JCS5wbGxfYQk9IDExLAo+IC0JCS5wbGxfYgk9IDEzNTAsCj4gLQkJLmhz dGFydAk9IDI3NiwKPiAtCQkuaHN0b3AJPSAxMjk5LAo+IC0JCS52c3RhcnQJPSAxNSwKPiAtCQku dnN0b3AJPSAxMDU2LAo+IC0JCS52c3luYwk9IDIwNDcsCj4gLQkJLnZ0b3RhbAk9IDEzNDEsCj4g LQkJLmhwb3MJPSAwLAo+IC0JCS52cG9zCT0gNywKPiAtCQkudm9mZnMJPSAyNywKPiAtCQkuaHNj YWxlCT0gNjU1MzUsCj4gLQkJLnZzY2FsZQk9IDY1NTM1Cj4gLQl9Cj4gLX07Cj4gLQo+IC0vKgo+ IC0gKiBPdGhlciBjb25maWd1cmF0aW9uIHZhbHVlcyBsZWZ0IGJ5IHRoZSBCSU9TIG9mIHRoZQo+ IC0gKiBGdWppdHN1IFM2MDEwIGluIHRoZSBEVk8gY29udHJvbCByZWdpc3RlcnMuIFRoZWlyCj4g LSAqIHZhbHVlIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgQklPUyBhbmQgdGhlaXIgbWVhbmluZwo+ IC0gKiBpcyB1bmtub3duLgo+IC0gKi8KPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbnMyNTAx X3JlZyBtb2RlX2Fnbm9zdGljX3ZhbHVlc1tdID0gewo+IC0JLyogMDggaXMgbW9kZSBzcGVjaWZp YyAqLwo+IC0JWzBdID0geyAub2Zmc2V0ID0gMHgwYSwgLnZhbHVlID0gMHg4MSwgfSwKPiAtCS8q IDEwLDExIGFyZSBwYXJ0IG9mIHRoZSBtb2RlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gKi8KPiAt CVsxXSA9IHsgLm9mZnNldCA9IDB4MTIsIC52YWx1ZSA9IDB4MDIsIH0sCj4gLQlbMl0gPSB7IC5v ZmZzZXQgPSAweDE4LCAudmFsdWUgPSAweDA3LCB9LAo+IC0JWzNdID0geyAub2Zmc2V0ID0gMHgx OSwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVs0XSA9IHsgLm9mZnNldCA9IDB4MWEsIC52YWx1ZSA9 IDB4MDAsIH0sIC8qIFBMTD8sIGlnbm9yZWQgKi8KPiAtCS8qIDFiLDFjLDFkIGFyZSBwYXJ0IG9m IHRoZSBtb2RlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gKi8KPiAtCVs1XSA9IHsgLm9mZnNldCA9 IDB4MWUsIC52YWx1ZSA9IDB4MDIsIH0sCj4gLQlbNl0gPSB7IC5vZmZzZXQgPSAweDFmLCAudmFs dWUgPSAweDQwLCB9LAo+IC0JWzddID0geyAub2Zmc2V0ID0gMHgyMCwgLnZhbHVlID0gMHgwMCwg fSwKPiAtCVs4XSA9IHsgLm9mZnNldCA9IDB4MjEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlbOV0g PSB7IC5vZmZzZXQgPSAweDIyLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JWzEwXSA9IHsgLm9mZnNl dCA9IDB4MjMsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlbMTFdID0geyAub2Zmc2V0ID0gMHgyNCwg LnZhbHVlID0gMHgwMCwgfSwKPiAtCVsxMl0gPSB7IC5vZmZzZXQgPSAweDI1LCAudmFsdWUgPSAw eDAwLCB9LAo+IC0JWzEzXSA9IHsgLm9mZnNldCA9IDB4MjYsIC52YWx1ZSA9IDB4MDAsIH0sCj4g LQlbMTRdID0geyAub2Zmc2V0ID0gMHgyNywgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVsxNV0gPSB7 IC5vZmZzZXQgPSAweDdlLCAudmFsdWUgPSAweDE4LCB9LAo+IC0JLyogODAtODQgYXJlIHBhcnQg b2YgdGhlIG1vZGUtc3BlY2lmaWMgY29uZmlndXJhdGlvbiAqLwo+IC0JWzE2XSA9IHsgLm9mZnNl dCA9IDB4ODQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlbMTddID0geyAub2Zmc2V0ID0gMHg4NSwg LnZhbHVlID0gMHgwMCwgfSwKPiAtCVsxOF0gPSB7IC5vZmZzZXQgPSAweDg2LCAudmFsdWUgPSAw eDAwLCB9LAo+IC0JWzE5XSA9IHsgLm9mZnNldCA9IDB4ODcsIC52YWx1ZSA9IDB4MDAsIH0sCj4g LQlbMjBdID0geyAub2Zmc2V0ID0gMHg4OCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVsyMV0gPSB7 IC5vZmZzZXQgPSAweDg5LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JWzIyXSA9IHsgLm9mZnNldCA9 IDB4OGEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlbMjNdID0geyAub2Zmc2V0ID0gMHg4YiwgLnZh bHVlID0gMHgwMCwgfSwKPiAtCVsyNF0gPSB7IC5vZmZzZXQgPSAweDhjLCAudmFsdWUgPSAweDEw LCB9LAo+IC0JWzI1XSA9IHsgLm9mZnNldCA9IDB4OGQsIC52YWx1ZSA9IDB4MDIsIH0sCj4gLQkv KiA4ZSw4ZiBhcmUgcGFydCBvZiB0aGUgbW9kZS1zcGVjaWZpYyBjb25maWd1cmF0aW9uICovCj4g LQlbMjZdID0geyAub2Zmc2V0ID0gMHg5MCwgLnZhbHVlID0gMHhmZiwgfSwKPiAtCVsyN10gPSB7 IC5vZmZzZXQgPSAweDkxLCAudmFsdWUgPSAweDA3LCB9LAo+IC0JWzI4XSA9IHsgLm9mZnNldCA9 IDB4OTIsIC52YWx1ZSA9IDB4YTAsIH0sCj4gLQlbMjldID0geyAub2Zmc2V0ID0gMHg5MywgLnZh bHVlID0gMHgwMiwgfSwKPiAtCVszMF0gPSB7IC5vZmZzZXQgPSAweDk0LCAudmFsdWUgPSAweDAw LCB9LAo+IC0JWzMxXSA9IHsgLm9mZnNldCA9IDB4OTUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQlb MzJdID0geyAub2Zmc2V0ID0gMHg5NiwgLnZhbHVlID0gMHgwNSwgfSwKPiAtCVszM10gPSB7IC5v ZmZzZXQgPSAweDk3LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JLyogOTgsOTkgYXJlIHBhcnQgb2Yg dGhlIG1vZGUtc3BlY2lmaWMgY29uZmlndXJhdGlvbiAqLwo+IC0JWzM0XSA9IHsgLm9mZnNldCA9 IDB4OWEsIC52YWx1ZSA9IDB4ODgsIH0sCj4gLQlbMzVdID0geyAub2Zmc2V0ID0gMHg5YiwgLnZh bHVlID0gMHgwMCwgfSwKPiAtCS8qIDljLDlkIGFyZSBwYXJ0IG9mIHRoZSBtb2RlLXNwZWNpZmlj IGNvbmZpZ3VyYXRpb24gKi8KPiAtCVszNl0gPSB7IC5vZmZzZXQgPSAweDllLCAudmFsdWUgPSAw eDI1LCB9LAo+IC0JWzM3XSA9IHsgLm9mZnNldCA9IDB4OWYsIC52YWx1ZSA9IDB4MDMsIH0sCj4g LQlbMzhdID0geyAub2Zmc2V0ID0gMHhhMCwgLnZhbHVlID0gMHgyOCwgfSwKPiAtCVszOV0gPSB7 IC5vZmZzZXQgPSAweGExLCAudmFsdWUgPSAweDAxLCB9LAo+IC0JWzQwXSA9IHsgLm9mZnNldCA9 IDB4YTIsIC52YWx1ZSA9IDB4MjgsIH0sCj4gLQlbNDFdID0geyAub2Zmc2V0ID0gMHhhMywgLnZh bHVlID0gMHgwNSwgfSwKPiAtCS8qIHJlZ2lzdGVyIDB4YTQgaXMgbW9kZSBzcGVjaWZpYywgYnV0 IDB4ODAuLjB4ODQgd29ya3MgYWx3YXlzICovCj4gLQlbNDJdID0geyAub2Zmc2V0ID0gMHhhNCwg LnZhbHVlID0gMHg4NCwgfSwKPiAtCVs0M10gPSB7IC5vZmZzZXQgPSAweGE1LCAudmFsdWUgPSAw eDAwLCB9LAo+IC0JWzQ0XSA9IHsgLm9mZnNldCA9IDB4YTYsIC52YWx1ZSA9IDB4MDAsIH0sCj4g LQlbNDVdID0geyAub2Zmc2V0ID0gMHhhNywgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVs0Nl0gPSB7 IC5vZmZzZXQgPSAweGE4LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JLyogMHhhOSB0byAweGFiIGFy ZSBtb2RlIHNwZWNpZmljLCBidXQgaGF2ZSBubyB2aXNpYmxlIGVmZmVjdCAqLwo+IC0JWzQ3XSA9 IHsgLm9mZnNldCA9IDB4YTksIC52YWx1ZSA9IDB4MDQsIH0sCj4gLQlbNDhdID0geyAub2Zmc2V0 ID0gMHhhYSwgLnZhbHVlID0gMHg3MCwgfSwKPiAtCVs0OV0gPSB7IC5vZmZzZXQgPSAweGFiLCAu dmFsdWUgPSAweDRmLCB9LAo+IC0JWzUwXSA9IHsgLm9mZnNldCA9IDB4YWMsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gLQlbNTFdID0geyAub2Zmc2V0ID0gMHhhZCwgLnZhbHVlID0gMHgwMCwgfSwKPiAt CVs1Ml0gPSB7IC5vZmZzZXQgPSAweGI2LCAudmFsdWUgPSAweDA5LCB9LAo+IC0JWzUzXSA9IHsg Lm9mZnNldCA9IDB4YjcsIC52YWx1ZSA9IDB4MDMsIH0sCj4gLQkvKiBiOCxiOSBhcmUgcGFydCBv ZiB0aGUgbW9kZS1zcGVjaWZpYyBjb25maWd1cmF0aW9uICovCj4gLQlbNTRdID0geyAub2Zmc2V0 ID0gMHhiYSwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCVs1NV0gPSB7IC5vZmZzZXQgPSAweGJiLCAu dmFsdWUgPSAweDIwLCB9LAo+IC0JWzU2XSA9IHsgLm9mZnNldCA9IDB4ZjMsIC52YWx1ZSA9IDB4 OTAsIH0sCj4gLQlbNTddID0geyAub2Zmc2V0ID0gMHhmNCwgLnZhbHVlID0gMHgwMCwgfSwKPiAt CVs1OF0gPSB7IC5vZmZzZXQgPSAweGY3LCAudmFsdWUgPSAweDg4LCB9LAo+IC0JLyogZjggaXMg bW9kZSBzcGVjaWZpYywgYnV0IHRoZSB2YWx1ZSBkb2VzIG5vdCBtYXR0ZXIgKi8KPiAtCVs1OV0g PSB7IC5vZmZzZXQgPSAweGY4LCAudmFsdWUgPSAweDBhLCB9LAo+IC0JWzYwXSA9IHsgLm9mZnNl dCA9IDB4ZjksIC52YWx1ZSA9IDB4MDAsIH0KPiArCQlbMF0gPSB7IC5vZmZzZXQgPSAweDBhLCAu dmFsdWUgPSAweDgxLCB9LAo+ICsJCVsxXSA9IHsgLm9mZnNldCA9IDB4MTgsIC52YWx1ZSA9IDB4 MDcsIH0sCj4gKwkJWzJdID0geyAub2Zmc2V0ID0gMHgxOSwgLnZhbHVlID0gMHgwMCwgfSwKPiAr CQlbM10gPSB7IC5vZmZzZXQgPSAweDFhLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs0XSA9IHsg Lm9mZnNldCA9IDB4MWIsIC52YWx1ZSA9IDB4MTEsIH0sCj4gKwkJWzVdID0geyAub2Zmc2V0ID0g MHgxYywgLnZhbHVlID0gMHg1NCwgfSwKPiArCQlbNl0gPSB7IC5vZmZzZXQgPSAweDFkLCAudmFs dWUgPSAweDAzLCB9LAo+ICsJCVs3XSA9IHsgLm9mZnNldCA9IDB4MWUsIC52YWx1ZSA9IDB4MDIs IH0sCj4gKwkJWzhdID0geyAub2Zmc2V0ID0gMHhmMywgLnZhbHVlID0gMHg5MCwgfSwKPiArCQlb OV0gPSB7IC5vZmZzZXQgPSAweGY5LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVsxMF0gPSB7IC5v ZmZzZXQgPSAweGMxLCAudmFsdWUgPSAweDkwLCB9LAo+ICsJCVsxMV0gPSB7IC5vZmZzZXQgPSAw eGMyLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVsxMl0gPSB7IC5vZmZzZXQgPSAweGMzLCAudmFs dWUgPSAweDBmLCB9LAo+ICsJCVsxM10gPSB7IC5vZmZzZXQgPSAweGM0LCAudmFsdWUgPSAweDAz LCB9LAo+ICsJCVsxNF0gPSB7IC5vZmZzZXQgPSAweGM1LCAudmFsdWUgPSAweDE2LCB9LAo+ICsJ CVsxNV0gPSB7IC5vZmZzZXQgPSAweGM2LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVsxNl0gPSB7 IC5vZmZzZXQgPSAweGM3LCAudmFsdWUgPSAweDAyLCB9LAo+ICsJCVsxN10gPSB7IC5vZmZzZXQg PSAweGM4LCAudmFsdWUgPSAweDAyLCB9LAo+ICsJCVsxOF0gPSB7IC5vZmZzZXQgPSAweGY0LCAu dmFsdWUgPSAweDAwLCB9LAo+ICsJCVsxOV0gPSB7IC5vZmZzZXQgPSAweDgwLCAudmFsdWUgPSAw eGZmLCB9LAo+ICsJCVsyMF0gPSB7IC5vZmZzZXQgPSAweDgxLCAudmFsdWUgPSAweDA3LCB9LAo+ ICsJCVsyMV0gPSB7IC5vZmZzZXQgPSAweDgyLCAudmFsdWUgPSAweDNkLCB9LAo+ICsJCVsyMl0g PSB7IC5vZmZzZXQgPSAweDgzLCAudmFsdWUgPSAweDA1LCB9LAo+ICsJCVsyM10gPSB7IC5vZmZz ZXQgPSAweDk0LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVsyNF0gPSB7IC5vZmZzZXQgPSAweDk1 LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVsyNV0gPSB7IC5vZmZzZXQgPSAweDk2LCAudmFsdWUg PSAweDA1LCB9LAo+ICsJCVsyNl0gPSB7IC5vZmZzZXQgPSAweDk3LCAudmFsdWUgPSAweDAwLCB9 LAo+ICsJCVsyN10gPSB7IC5vZmZzZXQgPSAweDlhLCAudmFsdWUgPSAweDg4LCB9LAo+ICsJCVsy OF0gPSB7IC5vZmZzZXQgPSAweDliLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVsyOV0gPSB7IC5v ZmZzZXQgPSAweDk4LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVszMF0gPSB7IC5vZmZzZXQgPSAw eDk5LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVszMV0gPSB7IC5vZmZzZXQgPSAweGY3LCAudmFs dWUgPSAweDg4LCB9LAo+ICsJCVszMl0gPSB7IC5vZmZzZXQgPSAweGY4LCAudmFsdWUgPSAweDBh LCB9LAo+ICsJCVszM10gPSB7IC5vZmZzZXQgPSAweDljLCAudmFsdWUgPSAweDI0LCB9LAo+ICsJ CVszNF0gPSB7IC5vZmZzZXQgPSAweDlkLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVszNV0gPSB7 IC5vZmZzZXQgPSAweDllLCAudmFsdWUgPSAweDI1LCB9LAo+ICsJCVszNl0gPSB7IC5vZmZzZXQg PSAweDlmLCAudmFsdWUgPSAweDAzLCB9LAo+ICsJCVszN10gPSB7IC5vZmZzZXQgPSAweGEwLCAu dmFsdWUgPSAweDI4LCB9LAo+ICsJCVszOF0gPSB7IC5vZmZzZXQgPSAweGExLCAudmFsdWUgPSAw eDAxLCB9LAo+ICsJCVszOV0gPSB7IC5vZmZzZXQgPSAweGEyLCAudmFsdWUgPSAweDI4LCB9LAo+ ICsJCVs0MF0gPSB7IC5vZmZzZXQgPSAweGEzLCAudmFsdWUgPSAweDA1LCB9LAo+ICsJCVs0MV0g PSB7IC5vZmZzZXQgPSAweGI2LCAudmFsdWUgPSAweDA5LCB9LAo+ICsJCVs0Ml0gPSB7IC5vZmZz ZXQgPSAweGI4LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs0M10gPSB7IC5vZmZzZXQgPSAweGI5 LCAudmFsdWUgPSAweGEwLCB9LAo+ICsJCVs0NF0gPSB7IC5vZmZzZXQgPSAweGJhLCAudmFsdWUg PSAweDAwLCB9LAo+ICsJCVs0NV0gPSB7IC5vZmZzZXQgPSAweGJiLCAudmFsdWUgPSAweDIwLCB9 LAo+ICsJCVs0Nl0gPSB7IC5vZmZzZXQgPSAweDEwLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs0 N10gPSB7IC5vZmZzZXQgPSAweDExLCAudmFsdWUgPSAweGEwLCB9LAo+ICsJCVs0OF0gPSB7IC5v ZmZzZXQgPSAweDEyLCAudmFsdWUgPSAweDAyLCB9LAo+ICsJCVs0OV0gPSB7IC5vZmZzZXQgPSAw eDIwLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs1MF0gPSB7IC5vZmZzZXQgPSAweDIyLCAudmFs dWUgPSAweDAwLCB9LAo+ICsJCVs1MV0gPSB7IC5vZmZzZXQgPSAweDIzLCAudmFsdWUgPSAweDAw LCB9LAo+ICsJCVs1Ml0gPSB7IC5vZmZzZXQgPSAweDI0LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJ CVs1M10gPSB7IC5vZmZzZXQgPSAweDI1LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs1NF0gPSB7 IC5vZmZzZXQgPSAweDhjLCAudmFsdWUgPSAweDEwLCB9LAo+ICsJCVs1NV0gPSB7IC5vZmZzZXQg PSAweDhkLCAudmFsdWUgPSAweDAyLCB9LAo+ICsJCVs1Nl0gPSB7IC5vZmZzZXQgPSAweDhlLCAu dmFsdWUgPSAweDEwLCB9LAo+ICsJCVs1N10gPSB7IC5vZmZzZXQgPSAweDhmLCAudmFsdWUgPSAw eDAwLCB9LAo+ICsJCVs1OF0gPSB7IC5vZmZzZXQgPSAweDkwLCAudmFsdWUgPSAweGZmLCB9LAo+ ICsJCVs1OV0gPSB7IC5vZmZzZXQgPSAweDkxLCAudmFsdWUgPSAweDA3LCB9LAo+ICsJCVs2MF0g PSB7IC5vZmZzZXQgPSAweDkyLCAudmFsdWUgPSAweGEwLCB9LAo+ICsJCVs2MV0gPSB7IC5vZmZz ZXQgPSAweDkzLCAudmFsdWUgPSAweDAyLCB9LAo+ICsJCVs2Ml0gPSB7IC5vZmZzZXQgPSAweGE1 LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs2M10gPSB7IC5vZmZzZXQgPSAweGE2LCAudmFsdWUg PSAweDAwLCB9LAo+ICsJCVs2NF0gPSB7IC5vZmZzZXQgPSAweGE3LCAudmFsdWUgPSAweDAwLCB9 LAo+ICsJCVs2NV0gPSB7IC5vZmZzZXQgPSAweGE4LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs2 Nl0gPSB7IC5vZmZzZXQgPSAweGE5LCAudmFsdWUgPSAweDA0LCB9LAo+ICsJCVs2N10gPSB7IC5v ZmZzZXQgPSAweGFhLCAudmFsdWUgPSAweDcwLCB9LAo+ICsJCVs2OF0gPSB7IC5vZmZzZXQgPSAw eGFiLCAudmFsdWUgPSAweDRmLCB9LAo+ICsJCVs2OV0gPSB7IC5vZmZzZXQgPSAweGFjLCAudmFs dWUgPSAweDAwLCB9LAo+ICsJCVs3MF0gPSB7IC5vZmZzZXQgPSAweGE0LCAudmFsdWUgPSAweDg0 LCB9LAo+ICsJCVs3MV0gPSB7IC5vZmZzZXQgPSAweDdlLCAudmFsdWUgPSAweDE4LCB9LAo+ICsJ CVs3Ml0gPSB7IC5vZmZzZXQgPSAweDg0LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3M10gPSB7 IC5vZmZzZXQgPSAweDg1LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3NF0gPSB7IC5vZmZzZXQg PSAweDg2LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3NV0gPSB7IC5vZmZzZXQgPSAweDg3LCAu dmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3Nl0gPSB7IC5vZmZzZXQgPSAweDg4LCAudmFsdWUgPSAw eDAwLCB9LAo+ICsJCVs3N10gPSB7IC5vZmZzZXQgPSAweDg5LCAudmFsdWUgPSAweDAwLCB9LAo+ ICsJCVs3OF0gPSB7IC5vZmZzZXQgPSAweDhhLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs3OV0g PSB7IC5vZmZzZXQgPSAweDhiLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs4MF0gPSB7IC5vZmZz ZXQgPSAweDI2LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs4MV0gPSB7IC5vZmZzZXQgPSAweDI3 LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJCVs4Ml0gPSB7IC5vZmZzZXQgPSAweGFkLCAudmFsdWUg PSAweDAwLCB9LAo+ICsJCVs4M10gPSB7IC5vZmZzZXQgPSAweDA4LCAudmFsdWUgPSAweDM0LCB9 LCAvKiAweDM1ICovCj4gKwkJWzg0XSA9IHsgLm9mZnNldCA9IDB4NDEsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwkJWzg1XSA9IHsgLm9mZnNldCA9IDB4YzAsIC52YWx1ZSA9IDB4MDEsIH0sCj4gKwl9 LAo+ICB9Owo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBuczI1MDFfcmVnIHJlZ3NfaW5pdFtd ID0gewo+IEBAIC0zNzgsMTIgKzM1MCwyNSBAQAo+ICAKPiAgc3RydWN0IG5zMjUwMV9wcml2IHsK PiAgCWJvb2wgcXVpZXQ7Cj4gLQljb25zdCBzdHJ1Y3QgbnMyNTAxX2NvbmZpZ3VyYXRpb24gKmNv bmY7Cj4gKwljb25zdCBzdHJ1Y3QgbnMyNTAxX3JlZyAqcmVnczsKPiAgfTsKPiAgCj4gICNkZWZp bmUgTlNQVFIoZCkgKChOUzI1MDFQdHIpKGQtPkRyaXZlclByaXZhdGUucHRyKSkKPiAgCj4gIC8q Cj4gKyAqIEZvciByZWFzb25zIHVuY2xlYXIgdG8gbWUsIHRoZSBuczI1MDEgYXQgbGVhc3Qgb24g dGhlIEZ1aml0c3UvU2llbWVucwo+ICsgKiBsYXB0b3BzIGRvZXMgbm90IHJlYWN0IG9uIHRoZSBp MmMgYnVzIHVubGVzcwo+ICsgKiBib3RoIHRoZSBQTEwgaXMgcnVubmluZyBhbmQgdGhlIGRpc3Bs YXkgaXMgY29uZmlndXJlZCBpbiBpdHMgbmF0aXZlCj4gKyAqIHJlc29sdXRpb24uCj4gKyAqIFRo aXMgZnVuY3Rpb24gZm9yY2VzIHRoZSBEVk8gb24sIGFuZCBzdG9yZXMgdGhlIHJlZ2lzdGVycyBp dCB0b3VjaGVzLgo+ICsgKiBBZnRlcndhcmRzLCByZWdpc3RlcnMgYXJlIHJlc3RvcmVkIHRvIHJl Z3VsYXIgdmFsdWVzLgo+ICsgKgo+ICsgKiBUaGlzIGlzIHByZXR0eSBtdWNoIGEgaGFjaywgdGhv dWdoIGl0IHdvcmtzLgo+ICsgKiBXaXRob3V0IHRoYXQsIG5zMjUwMV9yZWFkYiBhbmQgbnMyNTAx X3dyaXRlYiBmYWlsCj4gKyAqIHdoZW4gc3dpdGNoaW5nIHRoZSByZXNvbHV0aW9uLgo+ICsgKi8K PiArCj4gKy8qCj4gICoqIFJlYWQgYSByZWdpc3RlciBmcm9tIHRoZSBuczI1MDEuCj4gICoqIFJl dHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLCBmYWxzZSBvdGhlcndpc2UuCj4gICoqIElmIGl0IHJl dHVybnMgZmFsc2UsIGl0IG1pZ2h0IGJlIHdpc2UgdG8gZW5hYmxlIHRoZQo+IEBAIC01NDksNyAr NTM0LDYgQEAKPiAgCQkJICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ICAJCQkg ICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gIHsKPiAtCWNvbnN0 IHN0cnVjdCBuczI1MDFfY29uZmlndXJhdGlvbiAqY29uZjsKPiAgCXN0cnVjdCBuczI1MDFfcHJp diAqbnMgPSAoc3RydWN0IG5zMjUwMV9wcml2ICopKGR2by0+ZGV2X3ByaXYpOwo+ICAJaW50IG1v ZGVfaWR4LCBpOwo+ICAKPiBAQCAtNTU3LDM2ICs1NDEsNiBAQAo+ICAJICAgICgic2V0IG1vZGUg KGhkaXNwbGF5PSVkLGh0b3RhbD0lZCx2ZGlzcGxheT0lZCx2dG90YWw9JWQpLlxuIiwKPiAgCSAg ICAgbW9kZS0+aGRpc3BsYXksIG1vZGUtPmh0b3RhbCwgbW9kZS0+dmRpc3BsYXksIG1vZGUtPnZ0 b3RhbCk7Cj4gIAo+IC0JRFJNX0RFQlVHX0tNUygiRGV0YWlsZWQgcmVxdWVzdGVkIG1vZGUgc2V0 dGluZ3MgYXJlOlxuIgo+IC0JCQkiY2xvY2sJCTogJWQga0h6XG4iCj4gLQkJCSJoZGlzcGxheQk6 ICVkXG4iCj4gLQkJCSJoYmxhbmsgc3RhcnQJOiAlZFxuIgo+IC0JCQkiaGJsYW5rIGVuZAk6ICVk XG4iCj4gLQkJCSJoc3luYyBzdGFydAk6ICVkXG4iCj4gLQkJCSJoc3luYyBlbmQJOiAlZFxuIgo+ IC0JCQkiaHRvdGFsCQk6ICVkXG4iCj4gLQkJCSJoc2tldwkJOiAlZFxuIgo+IC0JCQkidmRpc3Bs YXkJOiAlZFxuIgo+IC0JCQkidmJsYW5rIHN0YXJ0CTogJWRcbiIKPiAtCQkJImhibGFuayBlbmQJ OiAlZFxuIgo+IC0JCQkidnN5bmMgc3RhcnQJOiAlZFxuIgo+IC0JCQkidnN5bmMgZW5kCTogJWRc biIKPiAtCQkJInZ0b3RhbAkJOiAlZFxuIiwKPiAtCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j aywKPiAtCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSwKPiAtCQkJYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19oYmxhbmtfc3RhcnQsCj4gLQkJCWFkanVzdGVkX21vZGUtPmNydGNfaGJsYW5rX2Vu ZCwKPiAtCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19zdGFydCwKPiAtCQkJYWRqdXN0ZWRf bW9kZS0+Y3J0Y19oc3luY19lbmQsCj4gLQkJCWFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsLAo+ IC0JCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hza2V3LAo+IC0JCQlhZGp1c3RlZF9tb2RlLT5jcnRj X3ZkaXNwbGF5LAo+IC0JCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZibGFua19zdGFydCwKPiAtCQkJ YWRqdXN0ZWRfbW9kZS0+Y3J0Y192YmxhbmtfZW5kLAo+IC0JCQlhZGp1c3RlZF9tb2RlLT5jcnRj X3ZzeW5jX3N0YXJ0LAo+IC0JCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZzeW5jX2VuZCwKPiAtCQkJ YWRqdXN0ZWRfbW9kZS0+Y3J0Y192dG90YWwpOwo+IC0KPiAgCWlmIChtb2RlLT5oZGlzcGxheSA9 PSA2NDAgJiYgbW9kZS0+dmRpc3BsYXkgPT0gNDgwKQo+ICAJCW1vZGVfaWR4ID0gTU9ERV82NDB4 NDgwOwo+ICAJZWxzZSBpZiAobW9kZS0+aGRpc3BsYXkgPT0gODAwICYmIG1vZGUtPnZkaXNwbGF5 ID09IDYwMCkKPiBAQCAtNjAwLDQ0ICs1NTQsMTAgQEAKPiAgCWZvciAoaSA9IDA7IGkgPCBBUlJB WV9TSVpFKHJlZ3NfaW5pdCk7IGkrKykKPiAgCQluczI1MDFfd3JpdGViKGR2bywgcmVnc19pbml0 W2ldLm9mZnNldCwgcmVnc19pbml0W2ldLnZhbHVlKTsKPiAgCj4gLQkvKiBXcml0ZSB0aGUgbW9k ZS1hZ25vc3RpYyB2YWx1ZXMgKi8KPiAtCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG1vZGVf YWdub3N0aWNfdmFsdWVzKTsgaSsrKQo+IC0JCW5zMjUwMV93cml0ZWIoZHZvLCBtb2RlX2Fnbm9z dGljX3ZhbHVlc1tpXS5vZmZzZXQsCj4gLQkJCQltb2RlX2Fnbm9zdGljX3ZhbHVlc1tpXS52YWx1 ZSk7Cj4gLQo+IC0JLyogV3JpdGUgbm93IHRoZSBtb2RlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24g Ki8KPiAtCWNvbmYgPSBuczI1MDFfbW9kZXMgKyBtb2RlX2lkeDsKPiAtCW5zLT5jb25mID0gY29u ZjsKPiAtCj4gLQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzgsIGNvbmYtPmNvbmYpOwo+ IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUcxQiwgY29uZi0+cGxsX2EpOwo+IC0JbnMy NTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUcxQywgY29uZi0+cGxsX2IgJiAweGZmKTsKPiAtCW5z MjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMUQsIGNvbmYtPnBsbF9iID4+IDgpOwo+IC0JbnMy NTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdDMSwgY29uZi0+aHN0YXJ0ICYgMHhmZik7Cj4gLQlu czI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0MyLCBjb25mLT5oc3RhcnQgPj4gOCk7Cj4gLQlu czI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0MzLCBjb25mLT5oc3RvcCAmIDB4ZmYpOwo+IC0J bnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdDNCwgY29uZi0+aHN0b3AgPj4gOCk7Cj4gLQlu czI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0M1LCBjb25mLT52c3RhcnQgJiAweGZmKTsKPiAt CW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQzYsIGNvbmYtPnZzdGFydCA+PiA4KTsKPiAt CW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQzcsIGNvbmYtPnZzdG9wICYgMHhmZik7Cj4g LQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0M4LCBjb25mLT52c3RvcCA+PiA4KTsKPiAt CW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHODAsIGNvbmYtPnZzeW5jICYgMHhmZik7Cj4g LQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzgxLCBjb25mLT52c3luYyA+PiA4KTsKPiAt CW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHODIsIGNvbmYtPnZ0b3RhbCAmIDB4ZmYpOwo+ IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc4MywgY29uZi0+dnRvdGFsID4+IDgpOwo+ IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc5OCwgY29uZi0+aHBvcyAmIDB4ZmYpOwo+ IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc5OSwgY29uZi0+aHBvcyA+PiA4KTsKPiAt CW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHOEUsIGNvbmYtPnZwb3MgJiAweGZmKTsKPiAt CW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHOEYsIGNvbmYtPnZwb3MgPj4gOCk7Cj4gLQlu czI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzlDLCBjb25mLT52b2ZmcyAmIDB4ZmYpOwo+IC0J bnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc5RCwgY29uZi0+dm9mZnMgPj4gOCk7Cj4gLQlu czI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0I4LCBjb25mLT5oc2NhbGUgJiAweGZmKTsKPiAt CW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQjksIGNvbmYtPmhzY2FsZSA+PiA4KTsKPiAt CW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMTAsIGNvbmYtPnZzY2FsZSAmIDB4ZmYpOwo+ IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUcxMSwgY29uZi0+dnNjYWxlID4+IDgpOwo+ IC0JbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdGOSwgY29uZi0+ZGl0aGVyKTsKPiAtCW5z MjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHNDEsIGNvbmYtPnN5bmNiKTsKPiAtCW5zMjUwMV93 cml0ZWIoZHZvLCBOUzI1MDFfUkVHQzAsIGNvbmYtPnN5bmMpOwo+ICsJbnMtPnJlZ3MgPSByZWdz XzEwMjR4NzY4W21vZGVfaWR4XTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgODQ7IGkrKykKPiAr CQluczI1MDFfd3JpdGViKGR2bywgbnMtPnJlZ3NbaV0ub2Zmc2V0LCBucy0+cmVnc1tpXS52YWx1 ZSk7Cj4gIH0KPiAgCj4gIC8qIHNldCB0aGUgTlMyNTAxIHBvd2VyIHN0YXRlICovCj4gQEAgLTY1 OSwzMiArNTc5LDM0IEBACj4gIAlEUk1fREVCVUdfS01TKCJUcnlpbmcgc2V0IHRoZSBkcG1zIG9m IHRoZSBEVk8gdG8gJWlcbiIsIGVuYWJsZSk7Cj4gIAo+ICAJaWYgKGVuYWJsZSkgewo+IC0JCW5z MjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQzAsIG5zLT5jb25mLT5zeW5jIHwgMHgwOCk7Cj4g KwkJaWYgKFdBUk5fT04obnMtPnJlZ3NbODNdLm9mZnNldCAhPSAweDA4IHx8Cj4gKwkJCSAgICBu cy0+cmVnc1s4NF0ub2Zmc2V0ICE9IDB4NDEgfHwKPiArCQkJICAgIG5zLT5yZWdzWzg1XS5vZmZz ZXQgIT0gMHhjMCkpCj4gKwkJCXJldHVybjsKPiArCj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIDB4 YzAsIG5zLT5yZWdzWzg1XS52YWx1ZSB8IDB4MDgpOwo+ICAKPiAtCQluczI1MDFfd3JpdGViKGR2 bywgTlMyNTAxX1JFRzQxLCBucy0+Y29uZi0+c3luY2IpOwo+ICsJCW5zMjUwMV93cml0ZWIoZHZv LCAweDQxLCBucy0+cmVnc1s4NF0udmFsdWUpOwo+ICAKPiAtCQluczI1MDFfd3JpdGViKGR2bywg TlMyNTAxX1JFRzM0LCBOUzI1MDFfMzRfRU5BQkxFX09VVFBVVCk7Cj4gKwkJbnMyNTAxX3dyaXRl Yihkdm8sIDB4MzQsIDB4MDEpOwo+ICAJCW1zbGVlcCgxNSk7Cj4gIAo+IC0JCW5zMjUwMV93cml0 ZWIoZHZvLCBOUzI1MDFfUkVHOCwKPiAtCQkJCW5zLT5jb25mLT5jb25mIHwgTlMyNTAxXzhfQlBB Uyk7Cj4gLQkJaWYgKCEobnMtPmNvbmYtPmNvbmYgJiBOUzI1MDFfOF9CUEFTKSkKPiAtCQkJbnMy NTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc4LCBucy0+Y29uZi0+Y29uZik7Cj4gKwkJbnMyNTAx X3dyaXRlYihkdm8sIDB4MDgsIDB4MzUpOwo+ICsJCWlmICghKG5zLT5yZWdzWzgzXS52YWx1ZSAm IE5TMjUwMV84X0JQQVMpKQo+ICsJCQluczI1MDFfd3JpdGViKGR2bywgMHgwOCwgMHgzMSk7Cj4g IAkJbXNsZWVwKDIwMCk7Cj4gIAo+IC0JCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMzQs Cj4gLQkJCU5TMjUwMV8zNF9FTkFCTEVfT1VUUFVUIHwgTlMyNTAxXzM0X0VOQUJMRV9CQUNLTElH SFQpOwo+ICsJCW5zMjUwMV93cml0ZWIoZHZvLCAweDM0LCAweDAzKTsKPiAgCj4gLQkJbnMyNTAx X3dyaXRlYihkdm8sIE5TMjUwMV9SRUdDMCwgbnMtPmNvbmYtPnN5bmMpOwo+ICsJCW5zMjUwMV93 cml0ZWIoZHZvLCAweGMwLCBucy0+cmVnc1s4NV0udmFsdWUpOwo+ICAJfSBlbHNlIHsKPiAtCQlu czI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzM0LCBOUzI1MDFfMzRfRU5BQkxFX09VVFBVVCk7 Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIDB4MzQsIDB4MDEpOwo+ICAJCW1zbGVlcCgyMDApOwo+ ICAKPiAtCQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzgsIE5TMjUwMV84X1ZFTiB8IE5T MjUwMV84X0hFTiB8Cj4gLQkJCQlOUzI1MDFfOF9CUEFTKTsKPiArCQluczI1MDFfd3JpdGViKGR2 bywgMHgwOCwgMHgzNCk7Cj4gIAkJbXNsZWVwKDE1KTsKPiAgCj4gLQkJbnMyNTAxX3dyaXRlYihk dm8sIE5TMjUwMV9SRUczNCwgMHgwMCk7Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIDB4MzQsIDB4 MDApOwo+ICAJfQo+ICB9Cj4gIAoKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVy LCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=