From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v2 15/23] drm/i915/dsc: Define & Compute VESA DSC params Date: Tue, 28 Aug 2018 15:47:21 -0700 Message-ID: <20180828224720.GA4186@intel.com> References: <1533071239-28815-1-git-send-email-manasi.d.navare@intel.com> <1533071239-28815-16-git-send-email-manasi.d.navare@intel.com> <83F5C7385F545743AD4FB2A62F75B07347F4818F@ORSMSX108.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0CA816E440 for ; Tue, 28 Aug 2018 22:44:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: <83F5C7385F545743AD4FB2A62F75B07347F4818F@ORSMSX108.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Srivatsa, Anusha" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBdWcgMjgsIDIwMTggYXQgMDM6MTg6NTZQTSAtMDcwMCwgU3JpdmF0c2EsIEFudXNo YSB3cm90ZToKPiAKPiAKPiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+RnJvbTogTmF2 YXJlLCBNYW5hc2kgRAo+ID5TZW50OiBUdWVzZGF5LCBKdWx5IDMxLCAyMDE4IDI6MDcgUE0KPiA+ VG86IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+Q2M6IFNpbmdoLCBHYXVyYXYg SyA8Z2F1cmF2Lmsuc2luZ2hAaW50ZWwuY29tPjsgSmFuaSBOaWt1bGEKPiA+PGphbmkubmlrdWxh QGxpbnV4LmludGVsLmNvbT47IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPjsKPiA+U3JpdmF0c2EsIEFudXNoYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT47 IE5hdmFyZSwgTWFuYXNpIEQKPiA+PG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPlN1Ympl Y3Q6IFtQQVRDSCB2MiAxNS8yM10gZHJtL2k5MTUvZHNjOiBEZWZpbmUgJiBDb21wdXRlIFZFU0Eg RFNDIHBhcmFtcwo+ID4KPiA+RnJvbTogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGlu dGVsLmNvbT4KPiA+Cj4gPlRoaXMgcGF0Y2hlcyBkb2VzIHRoZSBmb2xsb3dpbmc6Cj4gPgo+ID4x LiBUaGlzIHBhdGNoIGRlZmluZXMgYWxsIHRoZSBEU0MgcGFyYW1ldGVycyBhcyBwZXIgdGhlIFZF U0EgRFNDIHNwZWNpZmljYXRpb24uCj4gPlRoZXNlIGFyZSBzdG9yZWQgaW4gdGhlIGVuY29kZXIg YW5kIHVzZWQgdG8gY29tcHV0ZSB0aGUgUFBTIHBhcmFtZXRlcnMgdG8gYmUKPiA+c2VudCB0byB0 aGUgU2luay4KPiA+Mi4gQ29tcHV0ZSBhbGwgdGhlIERTQyBwYXJhbWV0ZXJzIHdoaWNoIGFyZSBk ZXJpdmVkIGZyb20gRFNDIHN0YXRlIG9mCj4gPmludGVsX2NydGNfc3RhdGUuCj4gPjMuIENvbXB1 dGUgYWxsIHBhcmFtZXRlcnMgdGhhdCBhcmUgVkVTQSBEU0Mgc3BlY2lmaWMKPiA+Cj4gPlRoaXMg Y29tcHV0YXRpb24gaGFwcGVucyBpbiB0aGUgYXRvbWljIGNoZWNrIHBoYXNlIGR1cmluZwo+ID5j b21wdXRlX2NvbmZpZygpIHRvIHZhbGlkYXRlIGlmIGRpc3BsYXkgc3RyZWFtIGNvbXByZXNzaW9u IGNhbiBiZSBlbmFibGVkIGZvcgo+ID50aGUgcmVxdWVzdGVkIG1vZGUuCj4gPgo+ID52NSAoRnJv bSBNYW5hc2kpOgo+ID4qIEFkZCBsb2dpYyB0byBsaW1pdCB0aGUgbWF4IGxpbmUgYnVmIGRlcHRo IGZvciBEU0MgMS4xIHRvIDEzIGFzIHBlciBEU0MgMS4xIHNwZWMKPiA+KiBGaXggZGltIGNoZWNr cGF0Y2ggd2FybmluZ3MvY2hlY2tzCj4gPgo+ID52NCAoRnJvbSBHYXVyYXYpOgo+ID4qIFJlYmFz ZSBvbiBsYXRlc3QgZHJtIHRpcAo+ID4qIHJlbmFtZSB2YXJpYWJsZSBuYW1lKE1hbmFzaSkKPiA+ KiBQb3B1bGF0ZSBsaW5lYnVmX2RlcHRoIHZhcmlhYmxlKE1hbmFzaSkKPiA+Cj4gPnYzIChGcm9t IEdhdXJhdik6Cj4gPiogUmViYXNlIG15IHByZXZpb3VzIHBhdGNoZXMgb24gdG9wIG9mIE1hbmFz aSdzIGxhdGVzdCBwYXRjaCBzZXJpZXMKPiA+KiBVc2luZyA+Pm4gcmF0aGVyIHRoYW4gLzJebiAo TWFuYXNpKQo+ID4qIENoYW5nZSB0aGUgY29tbWl0IG1lc3NhZ2UgdG8gZXhwbGFpbiB3aGF0IHRo ZSBwYXRjaCBpcyBkb2luZyhHYXVyYXYpCj4gPgo+ID5GaXhlZCByZXZpZXcgY29tbWVudHMgZnJv bSBWaWxsZToKPiA+KiBEb24ndCB1c2UgbWFjcm8gVFdPU19DT01QTEVNRU5UCj4gPiogTWVudGlv biBpbiBjb21tZW50IGFib3V0IHRoZSBzb3VyY2Ugb2YgUkMgcGFyYW1zCj4gPiogUmV0dXJuIGRp cmVjdGx5IGZyb20gY2FzZSBzdGF0ZW1lbnRzCj4gPiogVXNpbmcgc2luZ2xlIGFzc3NpZ25tZW50 IGZvciBhc3NpZ25pbmcgcmNfcmFuZ2VfcGFyYW1zCj4gPiogVXNpbmcgPDxuIHJhdGhlciB0aGFu ICoyXm4gYW5kIHJlbW92aW5nIHRoZSBjb21tZW50cyBhYm91dCB0aGUgZml4ZWQgcG9pbnQKPiA+ bnVtYmVycwo+ID4KPiA+djIgKEZyb20gTWFuYXNpKToKPiA+KiBVcGRhdGUgbG9naWMgZm9yIG1p bm9yIHZlcnNpb24gdG8gY29uc2lkZXIgdGhlIGRwY2QgdmFsdWUgYW5kIHdoYXQgc3VwcG9ydGVk Cj4gPmJ5IHRoZSBIVyBwbGF0Zm9ybQo+ID4qIFVzZSBEUk0gRFNDIGNvbmZpZyBzdHJ1Y3QgaW5z dGVhZCBvZiBpbnRlbF9kcCBzdHJ1Y3QKPiA+KiBNb3ZlIHRoZSBEU0MgY29uc3RhbnRzIHRvIERS TSBEU0MgaGVhZGVyIGZpbGUKPiA+KiBVc2UgdTE2LCB1OCB3aGVyZSBiaWdnZXIgZGF0YSB0eXBl cyBub3QgbmVlZGVkCj4gPiogKiBDb21wdXRlIHRoZSBEU0MgcGFyYW1ldGVycyBhcyBwYXJ0IG9m IERTQyBjb21wdXRlIGNvbmZpZyBzaW5jZSB0aGUKPiA+Y29tcHV0YXRpb24gY2FuIGZhaWwgKE1h bmFzaSkKPiA+Cj4gPkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29t Pgo+ID5DYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4g PkNjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gPkNjOiBH YXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hAaW50ZWwuY29tPgo+ID5TaWduZWQtb2ZmLWJ5 OiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hAaW50ZWwuY29tPgo+ID5TaWduZWQtb2Zm LWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+ID4tLS0KPiA+ IGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICB8ICAgMyArLQo+ID4gZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgIHwgICA3ICsKPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oICB8ICAgNCArCj4gPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF92ZHNj LmMgfCA0NTUKPiA+KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+IGlu Y2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaCAgICAgICB8ICAgMyArCj4gPiBpbmNsdWRlL2RybS9k cm1fZHNjLmggICAgICAgICAgICAgfCAgIDIgKy0KPiA+IDYgZmlsZXMgY2hhbmdlZCwgNDcyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pICBjcmVhdGUgbW9kZSAxMDA2NDQKPiA+ZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5jCj4gPgo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ID5p bmRleCA1Nzk0ZjEwLi5kZWFmMmQ0IDEwMDY0NAo+ID4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9NYWtlZmlsZQo+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ID5AQCAt MTUzLDcgKzE1Myw4IEBAIGk5MTUteSArPSBkdm9fY2g3MDE3Lm8gXAo+ID4gCSAgaW50ZWxfc2R2 by5vIFwKPiA+IAkgIGludGVsX3R2Lm8gXAo+ID4gCSAgdmx2X2RzaS5vIFwKPiA+LQkgIHZsdl9k c2lfcGxsLm8KPiA+KwkgIHZsdl9kc2lfcGxsLm8gXAo+ID4rCSAgaW50ZWxfdmRzYy5vCj4gPgo+ ID4gIyBQb3N0LW1vcnRlbSBkZWJ1ZyBhbmQgR1BVIGhhbmcgc3RhdGUgY2FwdHVyZQo+ID4gaTkx NS0kKENPTkZJR19EUk1fSTkxNV9DQVBUVVJFX0VSUk9SKSArPSBpOTE1X2dwdV9lcnJvci5vIGRp ZmYgLS1naXQKPiA+YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBpbmRleAo+ID43MTMyZjUyLi5kYzBhM2MyIDEwMDY0NAo+ ID4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+QEAgLTIwNDIsNiArMjA0MiwxMyBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoc3RydWN0Cj4gPmludGVsX2RwICppbnRl bF9kcCwKPiA+IAkJCXJldHVybiBmYWxzZTsKPiA+IAkJfQo+ID4gCX0KPiA+KwlpZiAoaW50ZWxf ZHBfY29tcHV0ZV9kc2NfcGFyYW1zKGludGVsX2RwLCBwaXBlX2NvbmZpZykgPCAwKSB7Cj4gPisJ CURSTV9FUlJPUigiQ2Fubm90IGNvbXB1dGUgdmFsaWQgRFNDIHBhcmFtZXRlcnMgZm9yIElucHV0 Cj4gPkJwcCA9ICVkIgo+ID4rCQkJICAiQ29tcHJlc3NlZCBCUFAgPSAlZFxuIiwKPiA+KwkJCSAg cGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4rCQkJICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5j b21wcmVzc2VkX2JwcCk7Cj4gPisJCXJldHVybiBmYWxzZTsKPiA+Kwl9Cj4gPiAJcGlwZV9jb25m aWctPmRzY19wYXJhbXMuY29tcHJlc3Npb25fZW5hYmxlID0gdHJ1ZTsKPiA+IAlEUk1fREVCVUdf S01TKCJEUCBEU0MgY29tcHV0ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAiCj4gPiAJCSAgICAgICJD b21wcmVzc2VkIEJwcCA9ICVkIFNsaWNlIENvdW50ID0gJWRcbiIsIGRpZmYgLS1naXQKPiA+YS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gPmluZGV4IGI3YzI2NTIuLjMzY2M3NzcgMTAwNjQ0Cj4gPi0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gPkBAIC0xNzQ5LDYgKzE3NDksMTAgQEAgdWludDE2X3QgaW50ZWxfZHBf ZHNjX2dldF9vdXRwdXRfYnBwKGludCBsaW5rX2Nsb2NrLAo+ID51aW50OF90IGxhbmVfY291bnQs ICB1aW50OF90IGludGVsX2RwX2RzY19nZXRfc2xpY2VfY291bnQoc3RydWN0IGludGVsX2RwCj4g PippbnRlbF9kcCwgaW50IG1vZGVfY2xvY2ssCj4gPiAJCQkJICAgICBpbnQgbW9kZV9oZGlzcGxh eSk7Cj4gPgo+ID4rLyogaW50ZWxfdmRzYy5jICovCj4gPitpbnQgaW50ZWxfZHBfY29tcHV0ZV9k c2NfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPisJCQkJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKPiA+Kwo+ID4gc3RhdGljIGlubGluZSB1bnNpZ25l ZCBpbnQgaW50ZWxfZHBfdW51c2VkX2xhbmVfbWFzayhpbnQgbGFuZV9jb3VudCkgIHsKPiA+IAly ZXR1cm4gfigoMSA8PCBsYW5lX2NvdW50KSAtIDEpICYgMHhmOyBkaWZmIC0tZ2l0Cj4gPmEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdmRzYy5jCj4gPm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPmluZGV4IDAwMDAwMDAuLmVjZDI3 MGMKPiA+LS0tIC9kZXYvbnVsbAo+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF92 ZHNjLmMKPiA+QEAgLTAsMCArMSw0NTUgQEAKPiA+Ky8qCj4gPisgKiBDb3B5cmlnaHQgwqkgMjAx OCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4rICoKPiA+KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCj4gPitvYnRhaW5pbmcgYQo+ID4r ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZQo+ID4rIlNvZnR3YXJlIiksCj4gPisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3 aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dAo+ID4rbGltaXRhdGlvbgo+ID4r ICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsCj4gPitzdWJsaWNlbnNlLAo+ID4rICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20KPiA+K3RoZQo+ID4rICogU29m dHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9uczoKPiA+KyAqCj4gPisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZQo+ID4rbmV4dAo+ID4rICogcGFyYWdy YXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp b25zCj4gPitvZiB0aGUKPiA+KyAqIFNvZnR3YXJlLgo+ID4rICoKPiA+KyAqIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAo+ID4r RVhQUkVTUyBPUgo+ID4rICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU SEUgV0FSUkFOVElFUyBPRgo+ID4rTUVSQ0hBTlRBQklMSVRZLAo+ID4rICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PCj4gPkVWRU5U Cj4gPitTSEFMTAo+ID4rICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB QkxFIEZPUiBBTlkgQ0xBSU0sCj4gPkRBTUFHRVMgT1IKPiA+K09USEVSCj4gPisgKiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwK PiA+K0FSSVNJTkcKPiA+KyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKPiA+T1RIRVIKPiA+KyAqIERFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4KPiA+KyAqCj4gPisgKiBBdXRob3I6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5z aW5naEBpbnRlbC5jb20+Cj4gPisgKiAgICAgICAgIE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5h dmFyZUBpbnRlbC5jb20+Cj4gPisgKi8KPiA+Kwo+ID4rI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4g PisjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+Cj4gPisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiA+ KyNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPiA+Kwo+ID4rZW51bSBST1dfSU5ERVhfQlBQIHsKPiA+ KwlST1dfSU5ERVhfNkJQUCA9IDAsCj4gPisJUk9XX0lOREVYXzhCUFAsCj4gPisJUk9XX0lOREVY XzEwQlBQLAo+ID4rCVJPV19JTkRFWF8xMkJQUCwKPiA+KwlST1dfSU5ERVhfMTVCUFAsCj4gPisJ TUFYX1JPV19JTkRFWAo+ID4rfTsKPiA+Kwo+ID4rZW51bSBDT0xVTU5fSU5ERVhfQlBDIHsKPiA+ KwlDT0xVTU5fSU5ERVhfOEJQQyA9IDAsCj4gPisJQ09MVU1OX0lOREVYXzEwQlBDLAo+ID4rCUNP TFVNTl9JTkRFWF8xMkJQQywKPiA+KwlDT0xVTU5fSU5ERVhfMTRCUEMsCj4gPisJQ09MVU1OX0lO REVYXzE2QlBDLAo+ID4rCU1BWF9DT0xVTU5fSU5ERVgKPiA+K307Cj4gPisKPiA+KyNkZWZpbmUg RFNDX1NVUFBPUlRFRF9WRVJTSU9OX01JTgkJMQo+ID4rCj4gPisvKiBGcm9tIERTQ192MS4xMSBz cGVjLCByY19wYXJhbWV0ZXJfU2V0IHN5bnRheCBlbGVtZW50IHR5cGljYWxseQo+ID4rY29uc3Rh bnQgKi8gc3RhdGljIHUxNiByY19idWZfdGhyZXNoW10gPSB7Cj4gPisJODk2LCAxNzkyLCAyNjg4 LCAzNTg0LCA0NDgwLCA1Mzc2LCA2MjcyLCA2NzIwLCA3MTY4LCA3NjE2LAo+ID4rCTc3NDQsIDc4 NzIsIDgwMDAsIDgwNjQKPiA+K307Cj4gPisKPiA+K3N0cnVjdCByY19wYXJhbWV0ZXJzIHsKPiA+ Kwl1MTYgaW5pdGlhbF94bWl0X2RlbGF5Owo+ID4rCXU4IGZpcnN0X2xpbmVfYnBnX29mZnNldDsK PiA+Kwl1MTYgaW5pdGlhbF9vZmZzZXQ7Cj4gPisJdTggZmxhdG5lc3NfbWluX3FwOwo+ID4rCXU4 IGZsYXRuZXNzX21heF9xcDsKPiA+Kwl1OCByY19xdWFudF9pbmNyX2xpbWl0MDsKPiA+Kwl1OCBy Y19xdWFudF9pbmNyX2xpbWl0MTsKPiA+KwlzdHJ1Y3QgZHNjX3JjX3JhbmdlX3BhcmFtZXRlcnMK PiA+cmNfcmFuZ2VfcGFyYW1zW0RTQ19OVU1fQlVGX1JBTkdFU107Cj4gPit9Owo+ID4rCj4gPisv Kgo+ID4rICogU2VsZWN0ZWQgUmF0ZSBDb250cm9sIFJlbGF0ZWQgUGFyYW1ldGVyIFJlY29tbWVu ZGVkIFZhbHVlcwo+ID4rICogZnJvbSBEU0NfdjEuMTEgc3BlYyAmIEMgTW9kZWwgcmVsZWFzZTog RFNDX21vZGVsXzIwMTYxMjEyICAqLyBzdGF0aWMKPiA+K3N0cnVjdCByY19wYXJhbWV0ZXJzIHJj X3BhcmFtc1tdW01BWF9DT0xVTU5fSU5ERVhdID0geyB7Cj4gPisJLyogNkJQUC84QlBDICovCj4g PisJeyA3NjgsIDE1LCA2MTQ0LCAzLCAxMywgMTEsIDExLCB7Cj4gPisJCXsgMCwgNCwgMCB9LCB7 IDEsIDYsIC0yIH0sIHsgMywgOCwgLTIgfSwgeyA0LCA4LCAtNCB9LAo+ID4rCQl7IDUsIDksIC02 IH0sIHsgNSwgOSwgLTYgfSwgeyA2LCA5LCAtNiB9LCB7IDYsIDEwLCAtOCB9LAo+ID4rCQl7IDcs IDExLCAtOCB9LCB7IDgsIDEyLCAtMTAgfSwgeyA5LCAxMiwgLTEwIH0sIHsgMTAsIDEyLCAtMTIg fSwKPiA+KwkJeyAxMCwgMTIsIC0xMiB9LCB7IDExLCAxMiwgLTEyIH0sIHsgMTMsIDE0LCAtMTIg fQo+ID4rCQl9Cj4gPisJfSwKPiA+KwkvKiA2QlBQLzEwQlBDICovCj4gPisJeyA3NjgsIDE1LCA2 MTQ0LCA3LCAxNywgMTUsIDE1LCB7Cj4gPisJCXsgMCwgOCwgMCB9LCB7IDMsIDEwLCAtMiB9LCB7 IDcsIDEyLCAtMiB9LCB7IDgsIDEyLCAtNCB9LAo+ID4rCQl7IDksIDEzLCAtNiB9LCB7IDksIDEz LCAtNiB9LCB7IDEwLCAxMywgLTYgfSwgeyAxMCwgMTQsIC04IH0sCj4gPisJCXsgMTEsIDE1LCAt OCB9LCB7IDEyLCAxNiwgLTEwIH0sIHsgMTMsIDE2LCAtMTAgfSwKPiA+KwkJeyAxNCwgMTYsIC0x MiB9LCB7IDE0LCAxNiwgLTEyIH0sIHsgMTUsIDE2LCAtMTIgfSwKPiA+KwkJeyAxNywgMTgsIC0x MiB9Cj4gPisJCX0KPiA+Kwl9LAo+ID4rCS8qIDZCUFAvMTJCUEMgKi8KPiA+Kwl7IDc2OCwgMTUs IDYxNDQsIDExLCAyMSwgMTksIDE5LCB7Cj4gPisJCXsgMCwgMTIsIDAgfSwgeyA1LCAxNCwgLTIg fSwgeyAxMSwgMTYsIC0yIH0sIHsgMTIsIDE2LCAtNCB9LAo+ID4rCQl7IDEzLCAxNywgLTYgfSwg eyAxMywgMTcsIC02IH0sIHsgMTQsIDE3LCAtNiB9LCB7IDE0LCAxOCwgLTggfSwKPiA+KwkJeyAx NSwgMTksIC04IH0sIHsgMTYsIDIwLCAtMTAgfSwgeyAxNywgMjAsIC0xMCB9LAo+ID4rCQl7IDE4 LCAyMCwgLTEyIH0sIHsgMTgsIDIwLCAtMTIgfSwgeyAxOSwgMjAsIC0xMiB9LAo+ID4rCQl7IDIx LCAyMiwgLTEyIH0KPiA+KwkJfQo+ID4rCX0sCj4gPisJLyogNkJQUC8xNEJQQyAqLwo+ID4rCXsg NzY4LCAxNSwgNjE0NCwgMTUsIDI1LCAyMywgMjcsIHsKPiA+KwkJeyAwLCAxNiwgMCB9LCB7IDcs IDE4LCAtMiB9LCB7IDE1LCAyMCwgLTIgfSwgeyAxNiwgMjAsIC00IH0sCj4gPisJCXsgMTcsIDIx LCAtNiB9LCB7IDE3LCAyMSwgLTYgfSwgeyAxOCwgMjEsIC02IH0sIHsgMTgsIDIyLCAtOCB9LAo+ ID4rCQl7IDE5LCAyMywgLTggfSwgeyAyMCwgMjQsIC0xMCB9LCB7IDIxLCAyNCwgLTEwIH0sCj4g PisJCXsgMjIsIDI0LCAtMTIgfSwgeyAyMiwgMjQsIC0xMiB9LCB7IDIzLCAyNCwgLTEyIH0sCj4g PisJCXsgMjUsIDI2LCAtMTIgfQo+ID4rCQl9Cj4gPisJfSwKPiA+KwkvKiA2QlBQLzE2QlBDICov Cj4gPisJeyA3NjgsIDE1LCA2MTQ0LCAxOSwgMjksIDI3LCAyNywgewo+ID4rCQl7IDAsIDIwLCAw IH0sIHsgOSwgMjIsIC0yIH0sIHsgMTksIDI0LCAtMiB9LCB7IDIwLCAyNCwgLTQgfSwKPiA+KwkJ eyAyMSwgMjUsIC02IH0sIHsgMjEsIDI1LCAtNiB9LCB7IDIyLCAyNSwgLTYgfSwgeyAyMiwgMjYs IC04IH0sCj4gPisJCXsgMjMsIDI3LCAtOCB9LCB7IDI0LCAyOCwgLTEwIH0sIHsgMjUsIDI4LCAt MTAgfSwKPiA+KwkJeyAyNiwgMjgsIC0xMiB9LCB7IDI2LCAyOCwgLTEyIH0sIHsgMjcsIDI4LCAt MTIgfSwKPiA+KwkJeyAyOSwgMzAsIC0xMiB9Cj4gPisJCX0KPiA+Kwl9LAo+ID4rfSwKPiA+K3sK PiA+KwkvKiA4QlBQLzhCUEMgKi8KPiA+Kwl7IDUxMiwgMTIsIDYxNDQsIDMsIDEyLCAxMSwgMTEs IHsKPiA+KwkJeyAwLCA0LCAyIH0sIHsgMCwgNCwgMCB9LCB7IDEsIDUsIDAgfSwgeyAxLCA2LCAt MiB9LAo+ID4rCQl7IDMsIDcsIC00IH0sIHsgMywgNywgLTYgfSwgeyAzLCA3LCAtOCB9LCB7IDMs IDgsIC04IH0sCj4gPisJCXsgMywgOSwgLTggfSwgeyAzLCAxMCwgLTEwIH0sIHsgNSwgMTEsIC0x MCB9LCB7IDUsIDEyLCAtMTIgfSwKPiA+KwkJeyA1LCAxMywgLTEyIH0sIHsgNywgMTMsIC0xMiB9 LCB7IDEzLCAxNSwgLTEyIH0KPiA+KwkJfQo+ID4rCX0sCj4gPisJLyogOEJQUC8xMEJQQyAqLwo+ ID4rCXsgNTEyLCAxMiwgNjE0NCwgNywgMTYsIDE1LCAxNSwgewo+ID4rCQl7IDAsIDQsIDIgfSwg eyA0LCA4LCAwIH0sIHsgNSwgOSwgMCB9LCB7IDUsIDEwLCAtMiB9LAo+ID4rCQl7IDcsIDExLCAt NCB9LCB7IDcsIDExLCAtNiB9LCB7IDcsIDExLCAtOCB9LCB7IDcsIDEyLCAtOCB9LAo+ID4rCQl7 IDcsIDEzLCAtOCB9LCB7IDcsIDE0LCAtMTAgfSwgeyA5LCAxNSwgLTEwIH0sIHsgOSwgMTYsIC0x MiB9LAo+ID4rCQl7IDksIDE3LCAtMTIgfSwgeyAxMSwgMTcsIC0xMiB9LCB7IDE3LCAxOSwgLTEy IH0KPiA+KwkJfQo+ID4rCX0sCj4gPisJLyogOEJQUC8xMkJQQyAqLwo+ID4rCXsgNTEyLCAxMiwg NjE0NCwgMTEsIDIwLCAxOSwgMTksIHsKPiA+KwkJeyAwLCAxMiwgMiB9LCB7IDQsIDEyLCAwIH0s IHsgOSwgMTMsIDAgfSwgeyA5LCAxNCwgLTIgfSwKPiA+KwkJeyAxMSwgMTUsIC00IH0sIHsgMTEs IDE1LCAtNiB9LCB7IDExLCAxNSwgLTggfSwgeyAxMSwgMTYsIC04IH0sCj4gPisJCXsgMTEsIDE3 LCAtOCB9LCB7IDExLCAxOCwgLTEwIH0sIHsgMTMsIDE5LCAtMTAgfSwKPiA+KwkJeyAxMywgMjAs IC0xMiB9LCB7IDEzLCAyMSwgLTEyIH0sIHsgMTUsIDIxLCAtMTIgfSwKPiA+KwkJeyAyMSwgMjMs IC0xMiB9Cj4gPisJCX0KPiA+Kwl9LAo+ID4rCS8qIDhCUFAvMTRCUEMgKi8KPiA+Kwl7IDUxMiwg MTIsIDYxNDQsIDE1LCAyNCwgMjMsIDIzLCB7Cj4gPisJCXsgMCwgMTIsIDAgfSwgeyA1LCAxMywg MCB9LCB7IDExLCAxNSwgMCB9LCB7IDEyLCAxNywgLTIgfSwKPiA+KwkJeyAxNSwgMTksIC00IH0s IHsgMTUsIDE5LCAtNiB9LCB7IDE1LCAxOSwgLTggfSwgeyAxNSwgMjAsIC04IH0sCj4gPisJCXsg MTUsIDIxLCAtOCB9LCB7IDE1LCAyMiwgLTEwIH0sIHsgMTcsIDIyLCAtMTAgfSwKPiA+KwkJeyAx NywgMjMsIC0xMiB9LCB7IDE3LCAyMywgLTEyIH0sIHsgMjEsIDI0LCAtMTIgfSwKPiA+KwkJeyAy NCwgMjUsIC0xMiB9Cj4gPisJCX0KPiA+Kwl9LAo+ID4rCS8qIDhCUFAvMTZCUEMgKi8KPiA+Kwl7 IDUxMiwgMTIsIDYxNDQsIDE5LCAyOCwgMjcsIDI3LCB7Cj4gPisJCXsgMCwgMTIsIDIgfSwgeyA2 LCAxNCwgMCB9LCB7IDEzLCAxNywgMCB9LCB7IDE1LCAyMCwgLTIgfSwKPiA+KwkJeyAxOSwgMjMs IC00IH0sIHsgMTksIDIzLCAtNiB9LCB7IDE5LCAyMywgLTggfSwgeyAxOSwgMjQsIC04IH0sCj4g PisJCXsgMTksIDI1LCAtOCB9LCB7IDE5LCAyNiwgLTEwIH0sIHsgMjEsIDI2LCAtMTAgfSwKPiA+ KwkJeyAyMSwgMjcsIC0xMiB9LCB7IDIxLCAyNywgLTEyIH0sIHsgMjUsIDI4LCAtMTIgfSwKPiA+ KwkJeyAyOCwgMjksIC0xMiB9Cj4gPisJCX0KPiA+Kwl9LAo+ID4rfSwKPiA+K3sKPiA+KwkvKiAx MEJQUC84QlBDICovCj4gPisJeyA0MTAsIDE1LCA1NjMyLCAzLCAxMiwgMTEsIDExLCB7Cj4gPisJ CXsgMCwgMywgMiB9LCB7IDAsIDQsIDAgfSwgeyAxLCA1LCAwIH0sIHsgMiwgNiwgLTIgfSwKPiA+ KwkJeyAzLCA3LCAtNCB9LCB7IDMsIDcsIC02IH0sIHsgMywgNywgLTggfSwgeyAzLCA4LCAtOCB9 LAo+ID4rCQl7IDMsIDksIC04IH0sIHsgMywgOSwgLTEwIH0sIHsgNSwgMTAsIC0xMCB9LCB7IDUs IDEwLCAtMTAgfSwKPiA+KwkJeyA1LCAxMSwgLTEyIH0sIHsgNywgMTEsIC0xMiB9LCB7IDExLCAx MiwgLTEyIH0KPiA+KwkJfQo+ID4rCX0sCj4gPisJLyogMTBCUFAvMTBCUEMgKi8KPiA+Kwl7IDQx MCwgMTUsIDU2MzIsIDcsIDE2LCAxNSwgMTUsIHsKPiA+KwkJeyAwLCA3LCAyIH0sIHsgNCwgOCwg MCB9LCB7IDUsIDksIDAgfSwgeyA2LCAxMCwgLTIgfSwKPiA+KwkJeyA3LCAxMSwgLTQgfSwgeyA3 LCAxMSwgLTYgfSwgeyA3LCAxMSwgLTggfSwgeyA3LCAxMiwgLTggfSwKPiA+KwkJeyA3LCAxMywg LTggfSwgeyA3LCAxMywgLTEwIH0sIHsgOSwgMTQsIC0xMCB9LCB7IDksIDE0LCAtMTAgfSwKPiA+ KwkJeyA5LCAxNSwgLTEyIH0sIHsgMTEsIDE1LCAtMTIgfSwgeyAxNSwgMTYsIC0xMiB9Cj4gPisJ CX0KPiA+Kwl9LAo+ID4rCS8qIDEwQlBQLzEyQlBDICovCj4gPisJeyA0MTAsIDE1LCA1NjMyLCAx MSwgMjAsIDE5LCAxOSwgewo+ID4rCQl7IDAsIDExLCAyIH0sIHsgNCwgMTIsIDAgfSwgeyA5LCAx MywgMCB9LCB7IDEwLCAxNCwgLTIgfSwKPiA+KwkJeyAxMSwgMTUsIC00IH0sIHsgMTEsIDE1LCAt NiB9LCB7IDExLCAxNSwgLTggfSwgeyAxMSwgMTYsIC04IH0sCj4gPisJCXsgMTEsIDE3LCAtOCB9 LCB7IDExLCAxNywgLTEwIH0sIHsgMTMsIDE4LCAtMTAgfSwKPiA+KwkJeyAxMywgMTgsIC0xMCB9 LCB7IDEzLCAxOSwgLTEyIH0sIHsgMTUsIDE5LCAtMTIgfSwKPiA+KwkJeyAxOSwgMjAsIC0xMiB9 Cj4gPisJCX0KPiA+Kwl9LAo+ID4rCS8qIDEwQlBQLzE0QlBDICovCj4gPisJeyA0MTAsIDE1LCA1 NjMyLCAxNSwgMjQsIDIzLCAyMywgewo+ID4rCQl7IDAsIDExLCAyIH0sIHsgNSwgMTMsIDAgfSwg eyAxMSwgMTUsIDAgfSwgeyAxMywgMTgsIC0yIH0sCj4gPisJCXsgMTUsIDE5LCAtNCB9LCB7IDE1 LCAxOSwgLTYgfSwgeyAxNSwgMTksIC04IH0sIHsgMTUsIDIwLCAtOCB9LAo+ID4rCQl7IDE1LCAy MSwgLTggfSwgeyAxNSwgMjEsIC0xMCB9LCB7IDE3LCAyMiwgLTEwIH0sCj4gPisJCXsgMTcsIDIy LCAtMTAgfSwgeyAxNywgMjMsIC0xMiB9LCB7IDE5LCAyMywgLTEyIH0sCj4gPisJCXsgMjMsIDI0 LCAtMTIgfQo+ID4rCQl9Cj4gPisJfSwKPiA+KwkvKiAxMEJQUC8xNkJQQyAqLwo+ID4rCXsgNDEw LCAxNSwgNTYzMiwgMTksIDI4LCAyNywgMjcsIHsKPiA+KwkJeyAwLCAxMSwgMiB9LCB7IDYsIDE0 LCAwIH0sIHsgMTMsIDE3LCAwIH0sIHsgMTYsIDIwLCAtMiB9LAo+ID4rCQl7IDE5LCAyMywgLTQg fSwgeyAxOSwgMjMsIC02IH0sIHsgMTksIDIzLCAtOCB9LCB7IDE5LCAyNCwgLTggfSwKPiA+KwkJ eyAxOSwgMjUsIC04IH0sIHsgMTksIDI1LCAtMTAgfSwgeyAyMSwgMjYsIC0xMCB9LAo+ID4rCQl7 IDIxLCAyNiwgLTEwIH0sIHsgMjEsIDI3LCAtMTIgfSwgeyAyMywgMjcsIC0xMiB9LAo+ID4rCQl7 IDI3LCAyOCwgLTEyIH0KPiA+KwkJfQo+ID4rCX0sCj4gPit9LAo+ID4rewo+ID4rCS8qIDEyQlBQ LzhCUEMgKi8KPiA+Kwl7IDM0MSwgMTUsIDIwNDgsIDMsIDEyLCAxMSwgMTEsIHsKPiA+KwkJeyAw LCAyLCAyIH0sIHsgMCwgNCwgMCB9LCB7IDEsIDUsIDAgfSwgeyAxLCA2LCAtMiB9LAo+ID4rCQl7 IDMsIDcsIC00IH0sIHsgMywgNywgLTYgfSwgeyAzLCA3LCAtOCB9LCB7IDMsIDgsIC04IH0sCj4g PisJCXsgMywgOSwgLTggfSwgeyAzLCAxMCwgLTEwIH0sIHsgNSwgMTEsIC0xMCB9LAo+ID4rCQl7 IDUsIDEyLCAtMTIgfSwgeyA1LCAxMywgLTEyIH0sIHsgNywgMTMsIC0xMiB9LCB7IDEzLCAxNSwg LTEyIH0KPiA+KwkJfQo+ID4rCX0sCj4gPisJLyogMTJCUFAvMTBCUEMgKi8KPiA+Kwl7IDM0MSwg MTUsIDIwNDgsIDcsIDE2LCAxNSwgMTUsIHsKPiA+KwkJeyAwLCAyLCAyIH0sIHsgMiwgNSwgMCB9 LCB7IDMsIDcsIDAgfSwgeyA0LCA4LCAtMiB9LAo+ID4rCQl7IDYsIDksIC00IH0sIHsgNywgMTAs IC02IH0sIHsgNywgMTEsIC04IH0sIHsgNywgMTIsIC04IH0sCj4gPisJCXsgNywgMTMsIC04IH0s IHsgNywgMTQsIC0xMCB9LCB7IDksIDE1LCAtMTAgfSwgeyA5LCAxNiwgLTEyIH0sCj4gPisJCXsg OSwgMTcsIC0xMiB9LCB7IDExLCAxNywgLTEyIH0sIHsgMTcsIDE5LCAtMTIgfQo+ID4rCQl9Cj4g PisJfSwKPiA+KwkvKiAxMkJQUC8xMkJQQyAqLwo+ID4rCXsgMzQxLCAxNSwgMjA0OCwgMTEsIDIw LCAxOSwgMTksIHsKPiA+KwkJeyAwLCA2LCAyIH0sIHsgNCwgOSwgMCB9LCB7IDcsIDExLCAwIH0s IHsgOCwgMTIsIC0yIH0sCj4gPisJCXsgMTAsIDEzLCAtNCB9LCB7IDExLCAxNCwgLTYgfSwgeyAx MSwgMTUsIC04IH0sIHsgMTEsIDE2LCAtOCB9LAo+ID4rCQl7IDExLCAxNywgLTggfSwgeyAxMSwg MTgsIC0xMCB9LCB7IDEzLCAxOSwgLTEwIH0sCj4gPisJCXsgMTMsIDIwLCAtMTIgfSwgeyAxMywg MjEsIC0xMiB9LCB7IDE1LCAyMSwgLTEyIH0sCj4gPisJCXsgMjEsIDIzLCAtMTIgfQo+ID4rCQl9 Cj4gPisJfSwKPiA+KwkvKiAxMkJQUC8xNEJQQyAqLwo+ID4rCXsgMzQxLCAxNSwgMjA0OCwgMTUs IDI0LCAyMywgMjMsIHsKPiA+KwkJeyAwLCA2LCAyIH0sIHsgNywgMTAsIDAgfSwgeyA5LCAxMywg MCB9LCB7IDExLCAxNiwgLTIgfSwKPiA+KwkJeyAxNCwgMTcsIC00IH0sIHsgMTUsIDE4LCAtNiB9 LCB7IDE1LCAxOSwgLTggfSwgeyAxNSwgMjAsIC04IH0sCj4gPisJCXsgMTUsIDIwLCAtOCB9LCB7 IDE1LCAyMSwgLTEwIH0sIHsgMTcsIDIxLCAtMTAgfSwKPiA+KwkJeyAxNywgMjEsIC0xMiB9LCB7 IDE3LCAyMSwgLTEyIH0sIHsgMTksIDIyLCAtMTIgfSwKPiA+KwkJeyAyMiwgMjMsIC0xMiB9Cj4g PisJCX0KPiA+Kwl9LAo+ID4rCS8qIDEyQlBQLzE2QlBDICovCj4gPisJeyAzNDEsIDE1LCAyMDQ4 LCAxOSwgMjgsIDI3LCAyNywgewo+ID4rCQl7IDAsIDYsIDIgfSwgeyA2LCAxMSwgMCB9LCB7IDEx LCAxNSwgMCB9LCB7IDE0LCAxOCwgLTIgfSwKPiA+KwkJeyAxOCwgMjEsIC00IH0sIHsgMTksIDIy LCAtNiB9LCB7IDE5LCAyMywgLTggfSwgeyAxOSwgMjQsIC04IH0sCj4gPisJCXsgMTksIDI0LCAt OCB9LCB7IDE5LCAyNSwgLTEwIH0sIHsgMjEsIDI1LCAtMTAgfSwKPiA+KwkJeyAyMSwgMjUsIC0x MiB9LCB7IDIxLCAyNSwgLTEyIH0sIHsgMjMsIDI2LCAtMTIgfSwKPiA+KwkJeyAyNiwgMjcsIC0x MiB9Cj4gPisJCX0KPiA+Kwl9LAo+ID4rfSwKPiA+K3sKPiA+KwkvKiAxNUJQUC84QlBDICovCj4g PisJeyAyNzMsIDE1LCAyMDQ4LCAzLCAxMiwgMTEsIDExLCB7Cj4gPisJCXsgMCwgMCwgMTAgfSwg eyAwLCAxLCA4IH0sIHsgMCwgMSwgNiB9LCB7IDAsIDIsIDQgfSwKPiA+KwkJeyAxLCAyLCAyIH0s IHsgMSwgMywgMCB9LCB7IDEsIDMsIC0yIH0sIHsgMiwgNCwgLTQgfSwKPiA+KwkJeyAyLCA1LCAt NiB9LCB7IDMsIDUsIC04IH0sIHsgNCwgNiwgLTEwIH0sIHsgNCwgNywgLTEwIH0sCj4gPisJCXsg NSwgNywgLTEyIH0sIHsgNywgOCwgLTEyIH0sIHsgOCwgOSwgLTEyIH0KPiA+KwkJfQo+ID4rCX0s Cj4gPisJLyogMTVCUFAvMTBCUEMgKi8KPiA+Kwl7IDI3MywgMTUsIDIwNDgsIDcsIDE2LCAxNSwg MTUsIHsKPiA+KwkJeyAwLCAyLCAxMCB9LCB7IDIsIDUsIDggfSwgeyAzLCA1LCA2IH0sIHsgNCwg NiwgNCB9LAo+ID4rCQl7IDUsIDYsIDIgfSwgeyA1LCA3LCAwIH0sIHsgNSwgNywgLTIgfSwgeyA2 LCA4LCAtNCB9LAo+ID4rCQl7IDYsIDksIC02IH0sIHsgNywgOSwgLTggfSwgeyA4LCAxMCwgLTEw IH0sIHsgOCwgMTEsIC0xMCB9LAo+ID4rCQl7IDksIDExLCAtMTIgfSwgeyAxMSwgMTIsIC0xMiB9 LCB7IDEyLCAxMywgLTEyIH0KPiA+KwkJfQo+ID4rCX0sCj4gPisJLyogMTVCUFAvMTJCUEMgKi8K PiA+Kwl7IDI3MywgMTUsIDIwNDgsIDExLCAyMCwgMTksIDE5LCB7Cj4gPisJCXsgMCwgNCwgMTAg fSwgeyAyLCA3LCA4IH0sIHsgNCwgOSwgNiB9LCB7IDYsIDExLCA0IH0sCj4gPisJCXsgOSwgMTEs IDIgfSwgeyA5LCAxMSwgMCB9LCB7IDksIDEyLCAtMiB9LCB7IDEwLCAxMiwgLTQgfSwKPiA+KwkJ eyAxMSwgMTMsIC02IH0sIHsgMTEsIDEzLCAtOCB9LCB7IDEyLCAxNCwgLTEwIH0sCj4gPisJCXsg MTMsIDE1LCAtMTAgfSwgeyAxMywgMTUsIC0xMiB9LCB7IDE1LCAxNiwgLTEyIH0sCj4gPisJCXsg MTYsIDE3LCAtMTIgfQo+ID4rCQl9Cj4gPisJfSwKPiA+KwkvKiAxNUJQUC8xNEJQQyAqLwo+ID4r CXsgMjczLCAxNSwgMjA0OCwgMTUsIDI0LCAyMywgMjMsIHsKPiA+KwkJeyAwLCA0LCAxMCB9LCB7 IDMsIDgsIDggfSwgeyA2LCAxMSwgNiB9LCB7IDksIDE0LCA0IH0sCj4gPisJCXsgMTMsIDE1LCAy IH0sIHsgMTMsIDE1LCAwIH0sIHsgMTMsIDE2LCAtMiB9LCB7IDE0LCAxNiwgLTQgfSwKPiA+KwkJ eyAxNSwgMTcsIC02IH0sIHsgMTUsIDE3LCAtOCB9LCB7IDE2LCAxOCwgLTEwIH0sCj4gPisJCXsg MTcsIDE5LCAtMTAgfSwgeyAxNywgMTksIC0xMiB9LCB7IDE5LCAyMCwgLTEyIH0sCj4gPisJCXsg MjAsIDIxLCAtMTIgfQo+ID4rCQl9Cj4gPisJfSwKPiA+KwkvKiAxNUJQUC8xNkJQQyAqLwo+ID4r CXsgMjczLCAxNSwgMjA0OCwgMTksIDI4LCAyNywgMjcsIHsKPiA+KwkJeyAwLCA0LCAxMCB9LCB7 IDQsIDksIDggfSwgeyA4LCAxMywgNiB9LCB7IDEyLCAxNywgNCB9LAo+ID4rCQl7IDE3LCAxOSwg MiB9LCB7IDE3LCAyMCwgMCB9LCB7IDE3LCAyMCwgLTIgfSwgeyAxOCwgMjAsIC00IH0sCj4gPisJ CXsgMTksIDIxLCAtNiB9LCB7IDE5LCAyMSwgLTggfSwgeyAyMCwgMjIsIC0xMCB9LAo+ID4rCQl7 IDIxLCAyMywgLTEwIH0sIHsgMjEsIDIzLCAtMTIgfSwgeyAyMywgMjQsIC0xMiB9LAo+ID4rCQl7 IDI0LCAyNSwgLTEyIH0KPiA+KwkJfQo+ID4rCX0KPiA+K30KPiA+K307Cj4gPisKPiA+K3N0YXRp YyBpbnQgZ2V0X3Jvd19pbmRleF9mb3JfcmNfcGFyYW1zKHUxNiBjb21wcmVzc2VkX2JwcCkgewo+ ID4rCXN3aXRjaCAoY29tcHJlc3NlZF9icHApIHsKPiA+KwljYXNlIDY6Cj4gPisJCXJldHVybiBS T1dfSU5ERVhfNkJQUDsKPiA+KwljYXNlIDg6Cj4gPisJCXJldHVybiBST1dfSU5ERVhfOEJQUDsK PiA+KwljYXNlIDEwOgo+ID4rCQlyZXR1cm4gUk9XX0lOREVYXzEwQlBQOwo+ID4rCWNhc2UgMTI6 Cj4gPisJCXJldHVybiBST1dfSU5ERVhfMTJCUFA7Cj4gPisJY2FzZSAxNToKPiA+KwkJcmV0dXJu IFJPV19JTkRFWF8xNUJQUDsKPiA+KwlkZWZhdWx0Ogo+ID4rCQlyZXR1cm4gLUVJTlZBTDsKPiA+ Kwl9Cj4gPit9Cj4gPisKPiA+K3N0YXRpYyBpbnQgZ2V0X2NvbHVtbl9pbmRleF9mb3JfcmNfcGFy YW1zKHU4IGJpdHNfcGVyX2NvbXBvbmVudCkgewo+ID4rCXN3aXRjaCAoYml0c19wZXJfY29tcG9u ZW50KSB7Cj4gPisJY2FzZSA4Ogo+ID4rCQlyZXR1cm4gQ09MVU1OX0lOREVYXzhCUEM7Cj4gPisJ Y2FzZSAxMDoKPiA+KwkJcmV0dXJuIENPTFVNTl9JTkRFWF8xMEJQQzsKPiA+KwljYXNlIDEyOgo+ ID4rCQlyZXR1cm4gQ09MVU1OX0lOREVYXzEyQlBDOwo+ID4rCWNhc2UgMTQ6Cj4gPisJCXJldHVy biBDT0xVTU5fSU5ERVhfMTRCUEM7Cj4gPisJY2FzZSAxNjoKPiA+KwkJcmV0dXJuIENPTFVNTl9J TkRFWF8xNkJQQzsKPiA+KwlkZWZhdWx0Ogo+ID4rCQlyZXR1cm4gLUVJTlZBTDsKPiA+Kwl9Cj4g Pit9Cj4gPisKPiA+K2ludCBpbnRlbF9kcF9jb21wdXRlX2RzY19wYXJhbXMoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwKPiA+KwkJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnKSB7Cj4gPisJc3RydWN0IGRybV9kc2NfY29uZmlnICp2ZHNjX2NmZyA9ICZwaXBlX2NvbmZp Zy0+ZHBfZHNjX2NmZzsKPiA+Kwl1MTYgY29tcHJlc3NlZF9icHAgPSBwaXBlX2NvbmZpZy0+ZHNj X3BhcmFtcy5jb21wcmVzc2VkX2JwcDsKPiA+Kwl1OCBpID0gMDsKPiA+Kwl1OCByb3dfaW5kZXgg PSAwOwo+ID4rCXU4IGNvbHVtbl9pbmRleCA9IDA7Cj4gPisJdTggbGluZV9idWZfZGVwdGggPSAw Owo+ID4rCj4gPisJdmRzY19jZmctPnBpY193aWR0aCA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGUuY3J0Y19oZGlzcGxheTsKPiA+Kwl2ZHNjX2NmZy0+cGljX2hlaWdodCA9IHBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxheTsKPiA+Kwl2ZHNjX2NmZy0+ c2xpY2Vfd2lkdGggPSBESVZfUk9VTkRfVVAodmRzY19jZmctPnBpY193aWR0aCwKPiA+KwkJCQkJ ICAgICBwaXBlX2NvbmZpZy0KPiA+PmRzY19wYXJhbXMuc2xpY2VfY291bnQpOwo+ID4rCS8qCj4g PisJICogU2xpY2UgSGVpZ2h0IG9mIDggd29ya3MgZm9yIGFsbCBjdXJyZW50bHkgYXZhaWxhYmxl IHBhbmVscy4gU28gc3RhcnQKPiA+KwkgKiB3aXRoIHRoYXQgaWYgcGljX2hlaWdodCBpcyBhbiBp bnRlZ3JhbCBtdWx0aXBsZSBvZiA4Lgo+ID4rCSAqIEV2ZW50dWFsbHkgYWRkIGxvZ2ljIHRvIHRy eSBtdWx0aXBsZSBzbGljZSBoZWlnaHRzLgo+ID4rCSAqLwo+ID4rCWlmICh2ZHNjX2NmZy0+cGlj X2hlaWdodCAlIDggPT0gMCkKPiA+KwkJdmRzY19jZmctPnNsaWNlX2hlaWdodCA9IDg7Cj4gPisJ ZWxzZSBpZiAodmRzY19jZmctPnBpY19oZWlnaHQgJSA0ID09IDApCj4gPisJCXZkc2NfY2ZnLT5z bGljZV9oZWlnaHQgPSA0Owo+ID4rCWVsc2UKPiA+KwkJdmRzY19jZmctPnNsaWNlX2hlaWdodCA9 IDI7Cj4gPisKPiA+KwkvKiBWYWx1ZXMgZmlsbGVkIGZyb20gRFNDIFNpbmsgRFBDRCAqLwo+ID4r CXZkc2NfY2ZnLT5kc2NfdmVyc2lvbl9tYWpvciA9IChpbnRlbF9kcC0+ZHNjX2RwY2RbRFBfRFND X1JFViAtCj4gPkRQX0RTQ19TVVBQT1JUXSAmCj4gPisJCQkJICAgICAgIERQX0RTQ19NQUpPUl9N QVNLKSA+Pgo+ID5EUF9EU0NfTUFKT1JfU0hJRlQ7Cj4gPisJdmRzY19jZmctPmRzY192ZXJzaW9u X21pbm9yID0gbWluKERTQ19TVVBQT1JURURfVkVSU0lPTl9NSU4sCj4gPisJCQkJCSAgKGludGVs X2RwLT5kc2NfZHBjZFtEUF9EU0NfUkVWIC0KPiA+RFBfRFNDX1NVUFBPUlRdICYKPiA+KwkJCQkJ ICAgRFBfRFNDX01JTk9SX01BU0spID4+Cj4gPkRQX0RTQ19NSU5PUl9TSElGVCk7Cj4gPisKPiA+ Kwl2ZHNjX2NmZy0+Y29udmVydF9yZ2IgPSBpbnRlbF9kcC0KPiA+PmRzY19kcGNkW0RQX0RTQ19E RUNfQ09MT1JfRk9STUFUX0NBUCAtIERQX0RTQ19TVVBQT1JUXSAmCj4gPisJCURQX0RTQ19SR0I7 Cj4gPisKPiA+KwlsaW5lX2J1Zl9kZXB0aCA9IGRybV9kcF9kc2Nfc2lua19saW5lX2J1Zl9kZXB0 aChpbnRlbF9kcC0+ZHNjX2RwY2QpOwo+ID4rCWlmICh2ZHNjX2NmZy0+ZHNjX3ZlcnNpb25fbWlu b3IgPT0gMikKPiA+KwkJdmRzY19jZmctPmxpbmVfYnVmX2RlcHRoID0gKGxpbmVfYnVmX2RlcHRo ID09Cj4gPkRTQ18xXzJfTUFYX0xJTkVCVUZfREVQVEhfQklUUykgPwo+ID4rCQkJRFNDXzFfMl9N QVhfTElORUJVRl9ERVBUSF9WQUwgOiBsaW5lX2J1Zl9kZXB0aDsKPiBTaG91bGRuJ3QgIHRoaXMg YmUgbGluZV9idWZfZGVwdGggPj0gRFNDXzFfMl9NQVhfTElORUJVRl9ERVBUSF9CSVRTPwoKSWYg eW91IGxvb2sgYXQgZHJtX2RwX2RzY19zaW5rX2xpbmVfYnVmX2RlcHRoKCkgZnVuY3Rpb24sIGl0 IHdpbGwgb25seSByZXR1cm4gbWF4aW11bSBvZiAxNi4KR3JlYXRlciB0aGFuIERTQ18xXzJfTUFY X0xJTkVCVUZfREVQVEhfQklUUyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBhbmQgdGhlIGZ1bmN0aW9u IHdpbGwgcmV0dXJuIDAgZm9yIHRoYXQuCgo+IAo+ID4rCWVsc2UKPiA+KwkJdmRzY19jZmctPmxp bmVfYnVmX2RlcHRoID0gKGxpbmVfYnVmX2RlcHRoID4KPiAJCQkJCQlMaW5lX2J1Zl9kZXB0aCA+ PSAgRFNDXzFfMV9NQVhfTElORUJVRl9ERVBUSF9CSVRTPz8KClRoaXMgc2hvdWxkIGJlIG9ubHkg Z3JlYXRlciB0aGFuIHNpbmNlIGlmIGl0cyBlcXVhbCB0byB0aGUgbWF4IHRoZW4gaXQgY2FuIGp1 c3QgdXNlIHRoZSBtYXhpbXVtIHZhbHVlLgoKTWFuYXNpCgo+IAo+IEFudXNoYSAKPiA+RFNDXzFf MV9NQVhfTElORUJVRl9ERVBUSF9CSVRTKSA/Cj4gPisJCQlEU0NfMV8xX01BWF9MSU5FQlVGX0RF UFRIX0JJVFMgOiBsaW5lX2J1Zl9kZXB0aDsKPiA+Kwo+ID4rCS8qIEdlbiAxMSBkb2VzIG5vdCBz dXBwb3J0IFlDYkNyICovCj4gPisJdmRzY19jZmctPmVuYWJsZTQyMiA9IGZhbHNlOwo+ID4rCS8q IEdlbiAxMSBkb2VzIG5vdCBzdXBwb3J0IFZCUiAqLwo+ID4rCXZkc2NfY2ZnLT52YnJfZW5hYmxl ID0gZmFsc2U7Cj4gPisJdmRzY19jZmctPmJsb2NrX3ByZWRfZW5hYmxlID0KPiA+KwkJCWludGVs X2RwLQo+ID4+ZHNjX2RwY2RbRFBfRFNDX0JMS19QUkVESUNUSU9OX1NVUFBPUlQgLSBEUF9EU0Nf U1VQUE9SVF0gJgo+ID4rCQlEUF9EU0NfQkxLX1BSRURJQ1RJT05fSVNfU1VQUE9SVEVEOwo+ID4r Cj4gPisJLyogR2VuIDExIG9ubHkgc3VwcG9ydHMgaW50ZWdyYWwgdmFsdWVzIG9mIGJwcCAqLwo+ ID4rCXZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCA9IGNvbXByZXNzZWRfYnBwIDw8IDQ7Cj4gPisJ dmRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVudCA9IHBpcGVfY29uZmlnLT5waXBlX2JwcCAvIDM7 Cj4gPisKPiA+Kwlmb3IgKGkgPSAwOyBpIDwgRFNDX05VTV9CVUZfUkFOR0VTIC0gMTsgaSsrKSB7 Cj4gPisJCS8qCj4gPisJCSAqIHNpeCAwcyBhcmUgYXBwZW5kZWQgdG8gdGhlIGxzYiBvZiBlYWNo IHRocmVzaG9sZCB2YWx1ZQo+ID4rCQkgKiBpbnRlcm5hbGx5IGluIGgvdy4KPiA+KwkJICogT25s eSA4IGJpdHMgYXJlIGFsbG93ZWQgZm9yIHByb2dyYW1taW5nIFJjQnVmVGhyZXNob2xkCj4gPisJ CSAqLwo+ID4rCQl2ZHNjX2NmZy0+cmNfYnVmX3RocmVzaFtpXSA9IHJjX2J1Zl90aHJlc2hbaV0g Pj4gNjsKPiA+Kwl9Cj4gPisKPiA+KwkvKgo+ID4rCSAqIEZvciA2YnBwLCBSQyBCdWZmZXIgdGhy ZXNob2xkIDEyIGFuZCAxMyBuZWVkIGEgZGlmZmVyZW50IHZhbHVlCj4gPisJICogYXMgcGVyIEMg TW9kZWwKPiA+KwkgKi8KPiA+KwlpZiAoY29tcHJlc3NlZF9icHAgPT0gNikgewo+ID4rCQl2ZHNj X2NmZy0+cmNfYnVmX3RocmVzaFsxMl0gPSAweDdDOwo+ID4rCQl2ZHNjX2NmZy0+cmNfYnVmX3Ro cmVzaFsxM10gPSAweDdEOwo+ID4rCX0KPiA+Kwo+ID4rCXJvd19pbmRleCA9IGdldF9yb3dfaW5k ZXhfZm9yX3JjX3BhcmFtcyhjb21wcmVzc2VkX2JwcCk7Cj4gPisJY29sdW1uX2luZGV4ID0KPiA+ KwkJZ2V0X2NvbHVtbl9pbmRleF9mb3JfcmNfcGFyYW1zKHZkc2NfY2ZnLQo+ID4+Yml0c19wZXJf Y29tcG9uZW50KTsKPiA+Kwo+ID4rCWlmIChyb3dfaW5kZXggPCAwIHx8IGNvbHVtbl9pbmRleCA8 IDApCj4gPisJCXJldHVybiAtRUlOVkFMOwo+ID4rCj4gPisJdmRzY19jZmctPmZpcnN0X2xpbmVf YnBnX29mZnNldCA9Cj4gPisJCXJjX3BhcmFtc1tyb3dfaW5kZXhdW2NvbHVtbl9pbmRleF0uZmly c3RfbGluZV9icGdfb2Zmc2V0Owo+ID4rCXZkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXkgPQo+ ID4rCQlyY19wYXJhbXNbcm93X2luZGV4XVtjb2x1bW5faW5kZXhdLmluaXRpYWxfeG1pdF9kZWxh eTsKPiA+Kwl2ZHNjX2NmZy0+aW5pdGlhbF9vZmZzZXQgPQo+ID4rCQlyY19wYXJhbXNbcm93X2lu ZGV4XVtjb2x1bW5faW5kZXhdLmluaXRpYWxfb2Zmc2V0Owo+ID4rCXZkc2NfY2ZnLT5mbGF0bmVz c19taW5fcXAgPQo+ID4rCQlyY19wYXJhbXNbcm93X2luZGV4XVtjb2x1bW5faW5kZXhdLmZsYXRu ZXNzX21pbl9xcDsKPiA+Kwl2ZHNjX2NmZy0+ZmxhdG5lc3NfbWF4X3FwID0KPiA+KwkJcmNfcGFy YW1zW3Jvd19pbmRleF1bY29sdW1uX2luZGV4XS5mbGF0bmVzc19tYXhfcXA7Cj4gPisJdmRzY19j ZmctPnJjX3F1YW50X2luY3JfbGltaXQwID0KPiA+KwkJcmNfcGFyYW1zW3Jvd19pbmRleF1bY29s dW1uX2luZGV4XS5yY19xdWFudF9pbmNyX2xpbWl0MDsKPiA+Kwl2ZHNjX2NmZy0+cmNfcXVhbnRf aW5jcl9saW1pdDEgPQo+ID4rCQlyY19wYXJhbXNbcm93X2luZGV4XVtjb2x1bW5faW5kZXhdLnJj X3F1YW50X2luY3JfbGltaXQxOwo+ID4rCj4gPisJZm9yIChpID0gMDsgaSA8IERTQ19OVU1fQlVG X1JBTkdFUzsgaSsrKQo+ID4rCQl2ZHNjX2NmZy0+cmNfcmFuZ2VfcGFyYW1zW2ldID0KPiA+Kwo+ ID4JcmNfcGFyYW1zW3Jvd19pbmRleF1bY29sdW1uX2luZGV4XS5yY19yYW5nZV9wYXJhbXNbaV07 Cj4gPisKPiA+KwkvKgo+ID4rCSAqIEJpdHNQZXJDb21wb25lbnQgdmFsdWUgZGV0ZXJtaW5lcyBt dXhfd29yZF9zaXplOgo+ID4rCSAqIFdoZW4gQml0c1BlckNvbXBvbmVudCBpcyAxMmJwYywgbXV4 V29yZFNpemUgd2lsbCBiZSBlcXVhbCB0byA2NAo+ID5iaXRzCj4gPisJICogV2hlbiBCaXRzUGVy Q29tcG9uZW50IGlzIDggb3IgMTBicGMsIG11eFdvcmRTaXplIHdpbGwgYmUgZXF1YWwgdG8KPiA+ KwkgKiA0OCBiaXRzCj4gPisJICovCj4gPisJaWYgKHZkc2NfY2ZnLT5iaXRzX3Blcl9jb21wb25l bnQgPT0gOCB8fAo+ID4rCSAgICB2ZHNjX2NmZy0+Yml0c19wZXJfY29tcG9uZW50ID09IDEwKQo+ ID4rCQl2ZHNjX2NmZy0+bXV4X3dvcmRfc2l6ZSA9IERTQ19NVVhfV09SRF9TSVpFXzhfMTBfQlBD Owo+ID4rCWVsc2UgaWYgKHZkc2NfY2ZnLT5iaXRzX3Blcl9jb21wb25lbnQgPT0gMTIpCj4gPisJ CXZkc2NfY2ZnLT5tdXhfd29yZF9zaXplID0gRFNDX01VWF9XT1JEX1NJWkVfMTJfQlBDOwo+ID4r Cj4gPisJLyogSW5pdGlhbFNjYWxlVmFsdWUgaXMgYSA2IGJpdCB2YWx1ZSB3aXRoIDMgZnJhY3Rp b25hbCBiaXRzIChVMy4zKSAqLwo+ID4rCXZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlID0g KHZkc2NfY2ZnLT5yY19tb2RlbF9zaXplIDw8IDMpIC8KPiA+KwkJKHZkc2NfY2ZnLT5yY19tb2Rl bF9zaXplIC0gdmRzY19jZmctPmluaXRpYWxfb2Zmc2V0KTsKPiA+Kwo+ID4rCXJldHVybiAwOwo+ ID4rfQo+ID5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oIGIvaW5jbHVk ZS9kcm0vZHJtX2RwX2hlbHBlci5oIGluZGV4Cj4gPjBjZjI0MDcuLmYxNzg5MzMgMTAwNjQ0Cj4g Pi0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAo+ID4rKysgYi9pbmNsdWRlL2RybS9k cm1fZHBfaGVscGVyLmgKPiA+QEAgLTE4Niw2ICsxODYsOSBAQAo+ID4KPiA+ICNkZWZpbmUgRFBf R1VJRAkJCQkgICAgMHgwMzAgICAvKiAxLjIgKi8KPiA+Cj4gPisjZGVmaW5lIERQX0RTQ19SQ19Q SVhFTFNfUEVSX0dST1VQCQkzCj4gPisjZGVmaW5lIERQX0RTQ19TQ0FMRV9ERUNSRU1FTlRfSU5U RVJWQUxfTUFYCTQwOTUKPiA+Kwo+ID4gI2RlZmluZSBEUF9EU0NfU1VQUE9SVCAgICAgICAgICAg ICAgICAgICAgICAweDA2MCAgIC8qIERQIDEuNCAqLwo+ID4gIyBkZWZpbmUgRFBfRFNDX0RFQ09N UFJFU1NJT05fSVNfU1VQUE9SVEVEICAoMSA8PCAwKQo+ID4KPiA+ZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9kc2MuaCBiL2luY2x1ZGUvZHJtL2RybV9kc2MuaCBpbmRleAo+ID40Y2ZjZDAz Li43OTZjNzk4IDEwMDY0NAo+ID4tLS0gYS9pbmNsdWRlL2RybS9kcm1fZHNjLmgKPiA+KysrIGIv aW5jbHVkZS9kcm0vZHJtX2RzYy5oCj4gPkBAIC02Nyw3ICs2Nyw3IEBAIHN0cnVjdCBkc2NfcmNf cmFuZ2VfcGFyYW1ldGVycyB7Cj4gPiAJLyogTWF4IFF1YW50aXphdGlvbiBQYXJhbWV0ZXJzIGFs bG93ZWQgZm9yIHRoaXMgcmFuZ2UgKi8KPiA+IAl1OCByYW5nZV9tYXhfcXA7Cj4gPiAJLyogQml0 cy9ncm91cCBvZmZzZXQgdG8gYXBwbHkgdG8gdGFyZ2V0IGZvciB0aGlzIGdyb3VwICovCj4gPi0J dTggcmFuZ2VfYnBnX29mZnNldDsKPiA+KwlzOCByYW5nZV9icGdfb2Zmc2V0Owo+ID4gfTsKPiA+ Cj4gPiBzdHJ1Y3QgZHJtX2RzY19jb25maWcgewo+ID4tLQo+ID4yLjcuNAo+IApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK