From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephane Viau Subject: [PATCH 6/6] drm/msm/mdp5: add more YUV formats for MDP5 Date: Mon, 6 Jul 2015 16:35:31 -0400 Message-ID: <1436214931-23527-7-git-send-email-sviau@codeaurora.org> References: <1436214931-23527-1-git-send-email-sviau@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1436214931-23527-1-git-send-email-sviau@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org QWRkIHBhY2tlZCBZVVY0MjIgYW5kIHBsYW5hciBZVVY0MjAgZm9ybWF0cyB0byBNRFAgc3VwcG9y dGVkCmZvcm1hdHMuCgpTaWduZWQtb2ZmLWJ5OiBTdGVwaGFuZSBWaWF1IDxzdmlhdUBjb2RlYXVy b3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYyB8 IDEwNSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20v bWRwL21kcF9mb3JtYXQuYyAgICAgIHwgIDE5ICsrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA3NyBp bnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21k cDUvbWRwNV9wbGFuZS5jCmluZGV4IDdmYjUyNmQuLjNkNjNlMjEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly aWdodCAoYykgMjAxNCBUaGUgTGludXggRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K KyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzIFJlZCBIYXQKICAqIEF1dGhvcjog Um9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgogICoKQEAgLTQwLDYgKzQwLDcgQEAgc3Rh dGljIGludCBtZHA1X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQl1 bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAogCQl1aW50MzJfdCBzcmNf eCwgdWludDMyX3Qgc3JjX3ksCiAJCXVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCk7CisK IHN0YXRpYyB2b2lkIHNldF9zY2Fub3V0X2xvY2tlZChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwogCkBAIC0zNDYsMTYgKzM0NywyMSBAQCBz dGF0aWMgaW50IGNhbGNfcGhhc2Vfc3RlcCh1aW50MzJfdCBzcmMsIHVpbnQzMl90IGRzdCwgdWlu dDMyX3QgKm91dF9waGFzZSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBjYWxjX3NjYWxl eF9zdGVwcyh1aW50MzJfdCBwaXhlbF9mb3JtYXQsIHVpbnQzMl90IHNyYywgdWludDMyX3QgZGVz dCwKK3N0YXRpYyBpbnQgY2FsY19zY2FsZXhfc3RlcHMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CisJCXVpbnQzMl90IHBpeGVsX2Zvcm1hdCwgdWludDMyX3Qgc3JjLCB1aW50MzJfdCBkZXN0LAog CQl1aW50MzJfdCBwaGFzZXhfc3RlcHNbMl0pCiB7CisJc3RydWN0IG1kcDVfa21zICptZHA1X2tt cyA9IGdldF9rbXMocGxhbmUpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9IG1kcDVfa21zLT5kZXYt PmRldjsKIAl1aW50MzJfdCBwaGFzZXhfc3RlcDsKIAl1bnNpZ25lZCBpbnQgaHN1YjsKIAlpbnQg cmV0OwogCiAJcmV0ID0gY2FsY19waGFzZV9zdGVwKHNyYywgZGVzdCwgJnBoYXNleF9zdGVwKTsK LQlpZiAocmV0KQorCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICJYIHNjYWxpbmcgKCVkLT4l ZCkgZmFpbGVkOiAlZFxuIiwgc3JjLCBkZXN0LCByZXQpOwogCQlyZXR1cm4gcmV0OworCX0KIAog CWhzdWIgPSBkcm1fZm9ybWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKHBpeGVsX2Zvcm1hdCk7 CiAKQEAgLTM2NSwxNiArMzcxLDIxIEBAIHN0YXRpYyBpbnQgY2FsY19zY2FsZXhfc3RlcHModWlu dDMyX3QgcGl4ZWxfZm9ybWF0LCB1aW50MzJfdCBzcmMsIHVpbnQzMl90IGRlc3QsCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgY2FsY19zY2FsZXlfc3RlcHModWludDMyX3QgcGl4ZWxfZm9y bWF0LCB1aW50MzJfdCBzcmMsIHVpbnQzMl90IGRlc3QsCitzdGF0aWMgaW50IGNhbGNfc2NhbGV5 X3N0ZXBzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQl1aW50MzJfdCBwaXhlbF9mb3JtYXQs IHVpbnQzMl90IHNyYywgdWludDMyX3QgZGVzdCwKIAkJdWludDMyX3QgcGhhc2V5X3N0ZXBzWzJd KQogeworCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSBnZXRfa21zKHBsYW5lKTsKKwlzdHJ1 Y3QgZGV2aWNlICpkZXYgPSBtZHA1X2ttcy0+ZGV2LT5kZXY7CiAJdWludDMyX3QgcGhhc2V5X3N0 ZXA7CiAJdW5zaWduZWQgaW50IHZzdWI7CiAJaW50IHJldDsKIAogCXJldCA9IGNhbGNfcGhhc2Vf c3RlcChzcmMsIGRlc3QsICZwaGFzZXlfc3RlcCk7Ci0JaWYgKHJldCkKKwlpZiAocmV0KSB7CisJ CWRldl9lcnIoZGV2LCAiWSBzY2FsaW5nICglZC0+JWQpIGZhaWxlZDogJWRcbiIsIHNyYywgZGVz dCwgcmV0KTsKIAkJcmV0dXJuIHJldDsKKwl9CiAKIAl2c3ViID0gZHJtX2Zvcm1hdF92ZXJ0X2No cm9tYV9zdWJzYW1wbGluZyhwaXhlbF9mb3JtYXQpOwogCkBAIC0zODQsMjggKzM5NSwzOCBAQCBz dGF0aWMgaW50IGNhbGNfc2NhbGV5X3N0ZXBzKHVpbnQzMl90IHBpeGVsX2Zvcm1hdCwgdWludDMy X3Qgc3JjLCB1aW50MzJfdCBkZXN0LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdWludDMyX3Qg Z2V0X3NjYWxleF9jb25maWcodWludDMyX3Qgc3JjLCB1aW50MzJfdCBkZXN0KQotewotCXVpbnQz Ml90IGZpbHRlcjsKLQotCWZpbHRlciA9IChzcmMgPD0gZGVzdCkgPyBTQ0FMRV9GSUxURVJfQklM IDogU0NBTEVfRklMVEVSX1BDTU47Ci0KLQlyZXR1cm4gIE1EUDVfUElQRV9TQ0FMRV9DT05GSUdf U0NBTEVYX0VOIHwKLQkJTURQNV9QSVBFX1NDQUxFX0NPTkZJR19TQ0FMRVhfRklMVEVSX0NPTVBf MChmaWx0ZXIpIHwKLQkJTURQNV9QSVBFX1NDQUxFX0NPTkZJR19TQ0FMRVhfRklMVEVSX0NPTVBf MV8yKGZpbHRlcikgIHwKLQkJTURQNV9QSVBFX1NDQUxFX0NPTkZJR19TQ0FMRVhfRklMVEVSX0NP TVBfMyhmaWx0ZXIpOwotfQotCi1zdGF0aWMgdWludDMyX3QgZ2V0X3NjYWxleV9jb25maWcodWlu dDMyX3Qgc3JjLCB1aW50MzJfdCBkZXN0KQorc3RhdGljIHVpbnQzMl90IGdldF9zY2FsZV9jb25m aWcoZW51bSBtZHBfY2hyb21hX3NhbXBfdHlwZSBjaHJvbWFfc2FtcGxlLAorCQl1aW50MzJfdCBz cmMsIHVpbnQzMl90IGRlc3QsIGJvb2wgaG9yKQogewotCXVpbnQzMl90IGZpbHRlcjsKLQotCWZp bHRlciA9IChzcmMgPD0gZGVzdCkgPyBTQ0FMRV9GSUxURVJfQklMIDogU0NBTEVfRklMVEVSX1BD TU47CisJdWludDMyX3QgeV9maWx0ZXIgPSAgIChzcmMgPD0gZGVzdCkgPyBTQ0FMRV9GSUxURVJf Q0EgIDogU0NBTEVfRklMVEVSX1BDTU47CisJdWludDMyX3QgeV9hX2ZpbHRlciA9IChzcmMgPD0g ZGVzdCkgPyBTQ0FMRV9GSUxURVJfQklMIDogU0NBTEVfRklMVEVSX1BDTU47CisJdWludDMyX3Qg dXZfZmlsdGVyID0gKChzcmMgLyAyKSA8PSBkZXN0KSA/IC8qIDJ4IHVwc2FtcGxlICovCisJCQkg ICAgICBTQ0FMRV9GSUxURVJfQklMIDogU0NBTEVfRklMVEVSX1BDTU47CisJdWludDMyX3QgdmFs dWUgPSAwOworCisJaWYgKGNocm9tYV9zYW1wbGUgPT0gQ0hST01BXzQyMCB8fCBjaHJvbWFfc2Ft cGxlID09IENIUk9NQV9IMlYxKSB7CisJCWlmIChob3IpCisJCQl2YWx1ZSA9IE1EUDVfUElQRV9T Q0FMRV9DT05GSUdfU0NBTEVYX0VOIHwKKwkJCQlNRFA1X1BJUEVfU0NBTEVfQ09ORklHX1NDQUxF WF9GSUxURVJfQ09NUF8wKHlfZmlsdGVyKSB8CisJCQkJTURQNV9QSVBFX1NDQUxFX0NPTkZJR19T Q0FMRVhfRklMVEVSX0NPTVBfMyh5X2FfZmlsdGVyKSB8CisJCQkJTURQNV9QSVBFX1NDQUxFX0NP TkZJR19TQ0FMRVhfRklMVEVSX0NPTVBfMV8yKHV2X2ZpbHRlcik7CisJCWVsc2UKKwkJCXZhbHVl ID0gTURQNV9QSVBFX1NDQUxFX0NPTkZJR19TQ0FMRVlfRU4gfAorCQkJCU1EUDVfUElQRV9TQ0FM RV9DT05GSUdfU0NBTEVZX0ZJTFRFUl9DT01QXzAoeV9maWx0ZXIpIHwKKwkJCQlNRFA1X1BJUEVf U0NBTEVfQ09ORklHX1NDQUxFWV9GSUxURVJfQ09NUF8zKHlfYV9maWx0ZXIpIHwKKwkJCQlNRFA1 X1BJUEVfU0NBTEVfQ09ORklHX1NDQUxFWV9GSUxURVJfQ09NUF8xXzIodXZfZmlsdGVyKTsKKwl9 IGVsc2UgaWYgKHNyYyAhPSBkZXN0KSB7CisJCWlmIChob3IpCisJCQl2YWx1ZSA9IE1EUDVfUElQ RV9TQ0FMRV9DT05GSUdfU0NBTEVYX0VOIHwKKwkJCQlNRFA1X1BJUEVfU0NBTEVfQ09ORklHX1ND QUxFWF9GSUxURVJfQ09NUF8wKHlfYV9maWx0ZXIpIHwKKwkJCQlNRFA1X1BJUEVfU0NBTEVfQ09O RklHX1NDQUxFWF9GSUxURVJfQ09NUF8zKHlfYV9maWx0ZXIpOworCQllbHNlCisJCQl2YWx1ZSA9 IE1EUDVfUElQRV9TQ0FMRV9DT05GSUdfU0NBTEVZX0VOIHwKKwkJCQlNRFA1X1BJUEVfU0NBTEVf Q09ORklHX1NDQUxFWV9GSUxURVJfQ09NUF8wKHlfYV9maWx0ZXIpIHwKKwkJCQlNRFA1X1BJUEVf U0NBTEVfQ09ORklHX1NDQUxFWV9GSUxURVJfQ09NUF8zKHlfYV9maWx0ZXIpOworCX0KIAotCXJl dHVybiAgTURQNV9QSVBFX1NDQUxFX0NPTkZJR19TQ0FMRVlfRU4gfAotCQlNRFA1X1BJUEVfU0NB TEVfQ09ORklHX1NDQUxFWV9GSUxURVJfQ09NUF8wKGZpbHRlcikgfAotCQlNRFA1X1BJUEVfU0NB TEVfQ09ORklHX1NDQUxFWV9GSUxURVJfQ09NUF8xXzIoZmlsdGVyKSAgfAotCQlNRFA1X1BJUEVf U0NBTEVfQ09ORklHX1NDQUxFWV9GSUxURVJfQ09NUF8zKGZpbHRlcik7CisJcmV0dXJuIHZhbHVl OwogfQogCiBzdGF0aWMgaW50IG1kcDVfcGxhbmVfbW9kZV9zZXQoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCkBAIC00MTcsNyArNDM4LDYgQEAgc3RhdGljIGludCBtZHA1X3BsYW5lX21vZGVfc2V0 KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogewogCXN0cnVjdCBtZHA1X3BsYW5lICptZHA1X3Bs YW5lID0gdG9fbWRwNV9wbGFuZShwbGFuZSk7CiAJc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9 IGdldF9rbXMocGxhbmUpOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9IG1kcDVfa21zLT5kZXYtPmRl djsKIAllbnVtIG1kcDVfcGlwZSBwaXBlID0gbWRwNV9wbGFuZS0+cGlwZTsKIAljb25zdCBzdHJ1 Y3QgbWRwX2Zvcm1hdCAqZm9ybWF0OwogCXVpbnQzMl90IG5wbGFuZXMsIGNvbmZpZyA9IDA7CkBA IC00NjEsMjkgKzQ4MSwyMCBAQCBzdGF0aWMgaW50IG1kcDVfcGxhbmVfbW9kZV9zZXQoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJICovCiAJbWRwNV9zbXBfY29uZmlndXJlKG1kcDVfa21zLT5z bXAsIHBpcGUpOwogCi0JLyogU0NBTEUgaXMgdXNlZCB0byBib3RoIHNjYWxlIGFuZCB1cC1zYW1w bGUgY2hyb21hIGNvbXBvbmVudHMgKi8KKwlyZXQgPSBjYWxjX3NjYWxleF9zdGVwcyhwbGFuZSwg cGl4X2Zvcm1hdCwgc3JjX3csIGNydGNfdywgcGhhc2V4X3N0ZXApOworCWlmIChyZXQpCisJCXJl dHVybiByZXQ7CiAKLQlpZiAoKHNyY193ICE9IGNydGNfdykgfHwgTURQX0ZPUk1BVF9JU19ZVVYo Zm9ybWF0KSkgewotCQkvKiBUT0RPIGNhbGMgaGRlY20gKi8KLQkJcmV0ID0gY2FsY19zY2FsZXhf c3RlcHMocGl4X2Zvcm1hdCwgc3JjX3csIGNydGNfdywgcGhhc2V4X3N0ZXApOwotCQlpZiAocmV0 KSB7Ci0JCQlkZXZfZXJyKGRldiwgIlggc2NhbGluZyAoJWQgLT4gJWQpIGZhaWxlZDogJWRcbiIs Ci0JCQkJCXNyY193LCBjcnRjX3csIHJldCk7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0JCWNvbmZp ZyB8PSBnZXRfc2NhbGV4X2NvbmZpZyhzcmNfdywgY3J0Y193KTsKLQl9CisJcmV0ID0gY2FsY19z Y2FsZXlfc3RlcHMocGxhbmUsIHBpeF9mb3JtYXQsIHNyY19oLCBjcnRjX2gsIHBoYXNleV9zdGVw KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCi0JaWYgKChzcmNfaCAhPSBjcnRjX2gpIHx8 IE1EUF9GT1JNQVRfSVNfWVVWKGZvcm1hdCkpIHsKLQkJLyogVE9ETyBjYWxjIHZkZWNtICovCi0J CXJldCA9IGNhbGNfc2NhbGV5X3N0ZXBzKHBpeF9mb3JtYXQsIHNyY19oLCBjcnRjX2gsIHBoYXNl eV9zdGVwKTsKLQkJaWYgKHJldCkgewotCQkJZGV2X2VycihkZXYsICJZIHNjYWxpbmcgKCVkIC0+ ICVkKSBmYWlsZWQ6ICVkXG4iLAotCQkJCQlzcmNfaCwgY3J0Y19oLCByZXQpOwotCQkJcmV0dXJu IHJldDsKLQkJfQotCQljb25maWcgfD0gZ2V0X3NjYWxleV9jb25maWcoc3JjX2gsIGNydGNfaCk7 Ci0JfQorCS8qIFRPRE8gY2FsYyBoZGVjbSwgdmRlY20gKi8KKworCS8qIFNDQUxFIGlzIHVzZWQg dG8gYm90aCBzY2FsZSBhbmQgdXAtc2FtcGxlIGNocm9tYSBjb21wb25lbnRzICovCisJY29uZmln IHw9IGdldF9zY2FsZV9jb25maWcoZm9ybWF0LT5jaHJvbWFfc2FtcGxlLCBzcmNfdywgY3J0Y193 LCB0cnVlKTsKKwljb25maWcgfD0gZ2V0X3NjYWxlX2NvbmZpZyhmb3JtYXQtPmNocm9tYV9zYW1w bGUsIHNyY19oLCBjcnRjX2gsIGZhbHNlKTsKKwlEQkcoInNjYWxlIGNvbmZpZyA9ICV4IiwgY29u ZmlnKTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZtZHA1X3BsYW5lLT5waXBlX2xvY2ssIGZsYWdz KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwX2Zvcm1hdC5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwX2Zvcm1hdC5jCmluZGV4IGZkODAzYzUuLjFjMmNh ZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcF9mb3JtYXQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHBfZm9ybWF0LmMKQEAgLTExNiwxMCArMTE2LDI5 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWRwX2Zvcm1hdCBmb3JtYXRzW10gPSB7CiAKIAkvKiAt LS0gUkdCIGZvcm1hdHMgYWJvdmUgLyBZVVYgZm9ybWF0cyBiZWxvdyB0aGlzIGxpbmUgLS0tICov CiAKKwkvKiAyIHBsYW5lIFlVViAqLwogCUZNVChOVjEyLCAgICAgMCwgOCwgOCwgOCwgIDEsIDIs IDAsIDAsICBmYWxzZSwgIHRydWUsICAyLCAyLAogCQkJTURQX1BMQU5FX1BTRVVET19QTEFOQVIs IENIUk9NQV80MjAsIHRydWUpLAogCUZNVChOVjIxLCAgICAgMCwgOCwgOCwgOCwgIDIsIDEsIDAs IDAsICBmYWxzZSwgIHRydWUsICAyLCAyLAogCQkJTURQX1BMQU5FX1BTRVVET19QTEFOQVIsIENI Uk9NQV80MjAsIHRydWUpLAorCUZNVChOVjE2LCAgICAgMCwgOCwgOCwgOCwgIDEsIDIsIDAsIDAs ICBmYWxzZSwgIHRydWUsICAyLCAyLAorCQkJTURQX1BMQU5FX1BTRVVET19QTEFOQVIsIENIUk9N QV9IMlYxLCB0cnVlKSwKKwlGTVQoTlY2MSwgICAgIDAsIDgsIDgsIDgsICAyLCAxLCAwLCAwLCAg ZmFsc2UsICB0cnVlLCAgMiwgMiwKKwkJCU1EUF9QTEFORV9QU0VVRE9fUExBTkFSLCBDSFJPTUFf SDJWMSwgdHJ1ZSksCisJLyogMSBwbGFuZSBZVVYgKi8KKwlGTVQoVllVWSwgICAgIDAsIDgsIDgs IDgsICAyLCAwLCAxLCAwLCAgZmFsc2UsICB0cnVlLCAgMiwgNCwKKwkJCU1EUF9QTEFORV9JTlRF UkxFQVZFRCwgQ0hST01BX0gyVjEsIHRydWUpLAorCUZNVChVWVZZLCAgICAgMCwgOCwgOCwgOCwg IDEsIDAsIDIsIDAsICBmYWxzZSwgIHRydWUsICAyLCA0LAorCQkJTURQX1BMQU5FX0lOVEVSTEVB VkVELCBDSFJPTUFfSDJWMSwgdHJ1ZSksCisJRk1UKFlVWVYsICAgICAwLCA4LCA4LCA4LCAgMCwg MSwgMCwgMiwgIGZhbHNlLCAgdHJ1ZSwgIDIsIDQsCisJCQlNRFBfUExBTkVfSU5URVJMRUFWRUQs IENIUk9NQV9IMlYxLCB0cnVlKSwKKwlGTVQoWVZZVSwgICAgIDAsIDgsIDgsIDgsICAwLCAyLCAw LCAxLCAgZmFsc2UsICB0cnVlLCAgMiwgNCwKKwkJCU1EUF9QTEFORV9JTlRFUkxFQVZFRCwgQ0hS T01BX0gyVjEsIHRydWUpLAorCS8qIDMgcGxhbmUgWVVWICovCisJRk1UKFlVVjQyMCwgICAwLCA4 LCA4LCA4LCAgMiwgMSwgMCwgMCwgIGZhbHNlLCAgdHJ1ZSwgIDEsIDEsCisJCQlNRFBfUExBTkVf UExBTkFSLCBDSFJPTUFfNDIwLCB0cnVlKSwKKwlGTVQoWVZVNDIwLCAgIDAsIDgsIDgsIDgsICAx LCAyLCAwLCAwLCAgZmFsc2UsICB0cnVlLCAgMSwgMSwKKwkJCU1EUF9QTEFORV9QTEFOQVIsIENI Uk9NQV80MjAsIHRydWUpLAogfTsKIAogLyoKLS0gClF1YWxjb21tIElubm92YXRpb24gQ2VudGVy LCBJbmMuCgpUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIg b2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLCBhIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2 ZSBQcm9qZWN0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=