From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: [PATCH 05/16] drm/amd/display: refactor member referencing to improve readability Date: Mon, 3 Apr 2017 19:07:19 -0400 Message-ID: <20170403230730.9884-6-harry.wentland@amd.com> References: <20170403230730.9884-1-harry.wentland@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170403230730.9884-1-harry.wentland-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Reza Amini RnJvbTogUmV6YSBBbWluaSA8cmV6YS5hbWluaUBhbWQuY29tPgoKQ2hhbmdlLUlkOiBJMDZmMjJl NzhhNjNlMWVhMjUxZmNkODQ3NTk0ZmQyYWJhYThlZGE2NQpTaWduZWQtb2ZmLWJ5OiBSZXphIEFt aW5pIDxyZXphLmFtaW5pQGFtZC5jb20+ClJldmlld2VkLWJ5OiBIYXJyeSBXZW50bGFuZCA8SGFy cnkuV2VudGxhbmRAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMv Y29yZS9kY19yZXNvdXJjZS5jIHwgMTA3ICsrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19yZXNvdXJjZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfcmVzb3VyY2UuYwppbmRleCA4ZjUzZDdh OWY0ZGQuLjA2OWY1ODhhOWUwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2NvcmUvZGNfcmVzb3VyY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvY29yZS9kY19yZXNvdXJjZS5jCkBAIC0xNTE5LDE3ICsxNTE5LDE2IEBAIHN0YXRpYyB2 b2lkIHNldF9hdmlfaW5mb19mcmFtZSgKIAl1aW50OF90IGNuMF9jbjEgPSAwOwogCXVpbnQ4X3Qg KmNoZWNrX3N1bSA9IE5VTEw7CiAJdWludDhfdCBieXRlX2luZGV4ID0gMDsKKwl1bmlvbiBoZG1p X2luZm9fcGFja2V0ICpoZG1pX2luZm8gPSAmaW5mb19mcmFtZS5hdmlfaW5mb19wYWNrZXQuaW5m b19wYWNrZXRfaGRtaTsKIAogCWNvbG9yX3NwYWNlID0gcGlwZV9jdHgtPnN0cmVhbS0+cHVibGlj Lm91dHB1dF9jb2xvcl9zcGFjZTsKIAogCS8qIEluaXRpYWxpemUgaGVhZGVyICovCi0JaW5mb19m cmFtZS5hdmlfaW5mb19wYWNrZXQuaW5mb19wYWNrZXRfaGRtaS5iaXRzLmhlYWRlci4KLQkJCWlu Zm9fZnJhbWVfdHlwZSA9IEhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJOworCWhkbWlfaW5mby0+Yml0 cy5oZWFkZXIuaW5mb19mcmFtZV90eXBlID0gSERNSV9JTkZPRlJBTUVfVFlQRV9BVkk7CiAJLyog SW5mb0ZyYW1lVmVyc2lvbl8zIGlzIGRlZmluZWQgYnkgQ0VBODYxRiAoU2VjdGlvbiA2LjQpLCBi dXQgc2hhbGwKIAkqIG5vdCBiZSB1c2VkIGluIEhETUkgMi4wIChTZWN0aW9uIDEwLjEpICovCi0J aW5mb19mcmFtZS5hdmlfaW5mb19wYWNrZXQuaW5mb19wYWNrZXRfaGRtaS5iaXRzLmhlYWRlci52 ZXJzaW9uID0gMjsKLQlpbmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1p LmJpdHMuaGVhZGVyLmxlbmd0aCA9Ci0JCQlIRE1JX0FWSV9JTkZPRlJBTUVfU0laRTsKKwloZG1p X2luZm8tPmJpdHMuaGVhZGVyLnZlcnNpb24gPSAyOworCWhkbWlfaW5mby0+Yml0cy5oZWFkZXIu bGVuZ3RoID0gSERNSV9BVklfSU5GT0ZSQU1FX1NJWkU7CiAKIAkvKgogCSAqIElETy1kZWZpbmVk IChZMixZMSxZMCA9IDEsMSwxKSBzaGFsbCBub3QgYmUgdXNlZCBieSBkZXZpY2VzIGJ1aWx0CkBA IC0xNTU1LDUyICsxNTU0LDQxIEBAIHN0YXRpYyB2b2lkIHNldF9hdmlfaW5mb19mcmFtZSgKIAog CS8qIFkwX1kxX1kyIDogVGhlIHBpeGVsIGVuY29kaW5nICovCiAJLyogSDE0YiBBVkkgSW5mb0Zy YW1lIGhhcyBleHRlbnNpb24gb24gWS1maWVsZCBmcm9tIDIgYml0cyB0byAzIGJpdHMgKi8KLQlp bmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuWTBfWTFfWTIg PQotCQlwaXhlbF9lbmNvZGluZzsKKwloZG1pX2luZm8tPmJpdHMuWTBfWTFfWTIgPSBwaXhlbF9l bmNvZGluZzsKIAogCS8qIEEwID0gMSBBY3RpdmUgRm9ybWF0IEluZm9ybWF0aW9uIHZhbGlkICov Ci0JaW5mb19mcmFtZS5hdmlfaW5mb19wYWNrZXQuaW5mb19wYWNrZXRfaGRtaS5iaXRzLkEwID0K LQkJQUNUSVZFX0ZPUk1BVF9WQUxJRDsKKwloZG1pX2luZm8tPmJpdHMuQTAgPSBBQ1RJVkVfRk9S TUFUX1ZBTElEOwogCiAJLyogQjAsIEIxID0gMzsgQmFyIGluZm8gZGF0YSBpcyB2YWxpZCAqLwot CWluZm9fZnJhbWUuYXZpX2luZm9fcGFja2V0LmluZm9fcGFja2V0X2hkbWkuYml0cy5CMF9CMSA9 Ci0JCUJBUl9JTkZPX0JPVEhfVkFMSUQ7CisJaGRtaV9pbmZvLT5iaXRzLkIwX0IxID0gQkFSX0lO Rk9fQk9USF9WQUxJRDsKIAotCWluZm9fZnJhbWUuYXZpX2luZm9fcGFja2V0LmluZm9fcGFja2V0 X2hkbWkuYml0cy5TQzBfU0MxID0KLQkJCVBJQ1RVUkVfU0NBTElOR19VTklGT1JNOworCWhkbWlf aW5mby0+Yml0cy5TQzBfU0MxID0gUElDVFVSRV9TQ0FMSU5HX1VOSUZPUk07CiAKIAkvKiBTMCwg UzEgOiBVbmRlcnNjYW4gLyBPdmVyc2NhbiAqLwogCS8qIFRPRE86IHVuLWhhcmRjb2RlIHNjYW4g dHlwZSAqLwogCXNjYW5fdHlwZSA9IFNDQU5OSU5HX1RZUEVfVU5ERVJTQ0FOOwotCWluZm9fZnJh bWUuYXZpX2luZm9fcGFja2V0LmluZm9fcGFja2V0X2hkbWkuYml0cy5TMF9TMSA9IHNjYW5fdHlw ZTsKKwloZG1pX2luZm8tPmJpdHMuUzBfUzEgPSBzY2FuX3R5cGU7CiAKIAkvKiBDMCwgQzEgOiBD b2xvcmltZXRyeSAqLwogCWlmIChjb2xvcl9zcGFjZSA9PSBDT0xPUl9TUEFDRV9ZQ0JDUjcwOSB8 fAogCQkJY29sb3Jfc3BhY2UgPT0gQ09MT1JfU1BBQ0VfWUNCQ1I3MDlfTElNSVRFRCkKLQkJaW5m b19mcmFtZS5hdmlfaW5mb19wYWNrZXQuaW5mb19wYWNrZXRfaGRtaS5iaXRzLkMwX0MxID0KLQkJ CQlDT0xPUklNRVRSWV9JVFU3MDk7CisJCWhkbWlfaW5mby0+Yml0cy5DMF9DMSA9IENPTE9SSU1F VFJZX0lUVTcwOTsKIAllbHNlIGlmIChjb2xvcl9zcGFjZSA9PSBDT0xPUl9TUEFDRV9ZQ0JDUjYw MSB8fAogCQkJY29sb3Jfc3BhY2UgPT0gQ09MT1JfU1BBQ0VfWUNCQ1I2MDFfTElNSVRFRCkKLQkJ aW5mb19mcmFtZS5hdmlfaW5mb19wYWNrZXQuaW5mb19wYWNrZXRfaGRtaS5iaXRzLkMwX0MxID0K LQkJCQlDT0xPUklNRVRSWV9JVFU2MDE7CisJCWhkbWlfaW5mby0+Yml0cy5DMF9DMSA9IENPTE9S SU1FVFJZX0lUVTYwMTsKIAllbHNlIHsKIAkJaWYgKHN0cmVhbS0+cHVibGljLnRpbWluZy5waXhl bF9lbmNvZGluZyAhPSBQSVhFTF9FTkNPRElOR19SR0IpCiAJCQlCUkVBS19UT19ERUJVR0dFUigp OwotCQlpbmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuQzBf QzEgPQotCQkJCUNPTE9SSU1FVFJZX05PX0RBVEE7CisJCWhkbWlfaW5mby0+Yml0cy5DMF9DMSA9 IENPTE9SSU1FVFJZX05PX0RBVEE7CiAJfQogCWlmIChjb2xvcl9zcGFjZSA9PSBDT0xPUl9TUEFD RV8yMDIwX1JHQl9GVUxMUkFOR0UgfHwKIAkJCWNvbG9yX3NwYWNlID09IENPTE9SX1NQQUNFXzIw MjBfUkdCX0xJTUlURURSQU5HRSB8fAogCQkJY29sb3Jfc3BhY2UgPT0gQ09MT1JfU1BBQ0VfMjAy MF9ZQ0JDUikgewotCQlpbmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1p LmJpdHMuRUMwX0VDMiA9Ci0JCQkJQ09MT1JJTUVUUllFWF9CVDIwMjBSR0JZQ0JDUjsKLQkJaW5m b19mcmFtZS5hdmlfaW5mb19wYWNrZXQuaW5mb19wYWNrZXRfaGRtaS5iaXRzLkMwX0MxID0KLQkJ CQlDT0xPUklNRVRSWV9FWFRFTkRFRDsKKwkJaGRtaV9pbmZvLT5iaXRzLkVDMF9FQzIgPSBDT0xP UklNRVRSWUVYX0JUMjAyMFJHQllDQkNSOworCQloZG1pX2luZm8tPmJpdHMuQzBfQzEgICA9IENP TE9SSU1FVFJZX0VYVEVOREVEOwogCX0gZWxzZSBpZiAoY29sb3Jfc3BhY2UgPT0gQ09MT1JfU1BB Q0VfQURPQkVSR0IpIHsKLQkJaW5mb19mcmFtZS5hdmlfaW5mb19wYWNrZXQuaW5mb19wYWNrZXRf aGRtaS5iaXRzLkVDMF9FQzIgPQotCQkJCUNPTE9SSU1FVFJZRVhfQURPQkVSR0I7Ci0JCWluZm9f ZnJhbWUuYXZpX2luZm9fcGFja2V0LmluZm9fcGFja2V0X2hkbWkuYml0cy5DMF9DMSA9Ci0JCQkJ Q09MT1JJTUVUUllfRVhURU5ERUQ7CisJCWhkbWlfaW5mby0+Yml0cy5FQzBfRUMyID0gQ09MT1JJ TUVUUllFWF9BRE9CRVJHQjsKKwkJaGRtaV9pbmZvLT5iaXRzLkMwX0MxICAgPSBDT0xPUklNRVRS WV9FWFRFTkRFRDsKIAl9CiAKIAkvKiBUT0RPOiB1bi1oYXJkY29kZSBhc3BlY3QgcmF0aW8gKi8K QEAgLTE2MDksOTMgKzE1OTcsNzYgQEAgc3RhdGljIHZvaWQgc2V0X2F2aV9pbmZvX2ZyYW1lKAog CXN3aXRjaCAoYXNwZWN0KSB7CiAJY2FzZSBBU1BFQ1RfUkFUSU9fNF8zOgogCWNhc2UgQVNQRUNU X1JBVElPXzE2Xzk6Ci0JCWluZm9fZnJhbWUuYXZpX2luZm9fcGFja2V0LmluZm9fcGFja2V0X2hk bWkuYml0cy5NMF9NMSA9IGFzcGVjdDsKKwkJaGRtaV9pbmZvLT5iaXRzLk0wX00xID0gYXNwZWN0 OwogCQlicmVhazsKIAogCWNhc2UgQVNQRUNUX1JBVElPX05PX0RBVEE6CiAJY2FzZSBBU1BFQ1Rf UkFUSU9fNjRfMjc6CiAJY2FzZSBBU1BFQ1RfUkFUSU9fMjU2XzEzNToKIAlkZWZhdWx0OgotCQlp bmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuTTBfTTEgPSAw OworCQloZG1pX2luZm8tPmJpdHMuTTBfTTEgPSAwOwogCX0KIAogCS8qIEFjdGl2ZSBGb3JtYXQg QXNwZWN0IHJhdGlvIC0gc2FtZSBhcyBQaWN0dXJlIEFzcGVjdCBSYXRpby4gKi8KLQlpbmZvX2Zy YW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuUjBfUjMgPQotCQkJQUNU SVZFX0ZPUk1BVF9BU1BFQ1RfUkFUSU9fU0FNRV9BU19QSUNUVVJFOworCWhkbWlfaW5mby0+Yml0 cy5SMF9SMyA9IEFDVElWRV9GT1JNQVRfQVNQRUNUX1JBVElPX1NBTUVfQVNfUElDVFVSRTsKIAog CS8qIFRPRE86IHVuLWhhcmRjb2RlIGNuMF9jbjEgYW5kIGl0YyAqLwogCWNuMF9jbjEgPSAwOwog CWl0YyA9IGZhbHNlOwogCiAJaWYgKGl0YykgewotCQlpbmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tl dC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuSVRDID0gMTsKLQkJaW5mb19mcmFtZS5hdmlfaW5mb19w YWNrZXQuaW5mb19wYWNrZXRfaGRtaS5iaXRzLkNOMF9DTjEgPQotCQkJY24wX2NuMTsKKwkJaGRt aV9pbmZvLT5iaXRzLklUQyAgICAgPSAxOworCQloZG1pX2luZm8tPmJpdHMuQ04wX0NOMSA9IGNu MF9jbjE7CiAJfQogCiAJLyogVE9ETyA6IFdlIHNob3VsZCBoYW5kbGUgWUNDIHF1YW50aXphdGlv biAqLwogCS8qIGJ1dCB3ZSBkbyBub3QgaGF2ZSBtYXRyaXggY2FsY3VsYXRpb24gKi8KIAlpZiAo Y29sb3Jfc3BhY2UgPT0gQ09MT1JfU1BBQ0VfU1JHQikgewotCQlpbmZvX2ZyYW1lLmF2aV9pbmZv X3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuUTBfUTEgPQotCQkJCQkJUkdCX1FVQU5USVpB VElPTl9GVUxMX1JBTkdFOwotCQlpbmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tl dF9oZG1pLmJpdHMuWVEwX1lRMSA9Ci0JCQkJCQlZWUNfUVVBTlRJWkFUSU9OX0ZVTExfUkFOR0U7 CisJCWhkbWlfaW5mby0+Yml0cy5RMF9RMSAgID0gUkdCX1FVQU5USVpBVElPTl9GVUxMX1JBTkdF OworCQloZG1pX2luZm8tPmJpdHMuWVEwX1lRMSA9IFlZQ19RVUFOVElaQVRJT05fRlVMTF9SQU5H RTsKIAl9IGVsc2UgaWYgKGNvbG9yX3NwYWNlID09IENPTE9SX1NQQUNFX1NSR0JfTElNSVRFRCkg ewotCQlpbmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuUTBf UTEgPQotCQkJCQkJUkdCX1FVQU5USVpBVElPTl9MSU1JVEVEX1JBTkdFOwotCQlpbmZvX2ZyYW1l LmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuWVEwX1lRMSA9Ci0JCQkJCQlZ WUNfUVVBTlRJWkFUSU9OX0xJTUlURURfUkFOR0U7CisJCWhkbWlfaW5mby0+Yml0cy5RMF9RMSAg ID0gUkdCX1FVQU5USVpBVElPTl9MSU1JVEVEX1JBTkdFOworCQloZG1pX2luZm8tPmJpdHMuWVEw X1lRMSA9IFlZQ19RVUFOVElaQVRJT05fTElNSVRFRF9SQU5HRTsKIAl9IGVsc2UgewotCQlpbmZv X2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuUTBfUTEgPQotCQkJ CQkJUkdCX1FVQU5USVpBVElPTl9ERUZBVUxUX1JBTkdFOwotCQlpbmZvX2ZyYW1lLmF2aV9pbmZv X3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuWVEwX1lRMSA9Ci0JCQkJCQlZWUNfUVVBTlRJ WkFUSU9OX0xJTUlURURfUkFOR0U7CisJCWhkbWlfaW5mby0+Yml0cy5RMF9RMSAgID0gUkdCX1FV QU5USVpBVElPTl9ERUZBVUxUX1JBTkdFOworCQloZG1pX2luZm8tPmJpdHMuWVEwX1lRMSA9IFlZ Q19RVUFOVElaQVRJT05fTElNSVRFRF9SQU5HRTsKIAl9CiAKLQlpbmZvX2ZyYW1lLmF2aV9pbmZv X3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMuVklDMF9WSUM3ID0KKwloZG1pX2luZm8tPmJp dHMuVklDMF9WSUM3ID0KIAkJCQkJc3RyZWFtLT5wdWJsaWMudGltaW5nLnZpYzsKIAogCS8qIHBp eGVsIHJlcGV0aXRpb24KIAkgKiBQUjAgLSBQUjMgc3RhcnQgZnJvbSAwIHdoZXJlYXMgcEh3UGF0 aE1vZGUtPm1vZGUudGltaW5nLmZsYWdzLnBpeGVsCiAJICogcmVwZXRpdGlvbiBzdGFydCBmcm9t IDEgKi8KLQlpbmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLmJpdHMu UFIwX1BSMyA9IDA7CisJaGRtaV9pbmZvLT5iaXRzLlBSMF9QUjMgPSAwOwogCiAJLyogQmFyIElu Zm8KIAkgKiBiYXJUb3A6ICAgIExpbmUgTnVtYmVyIG9mIEVuZCBvZiBUb3AgQmFyLgogCSAqIGJh ckJvdHRvbTogTGluZSBOdW1iZXIgb2YgU3RhcnQgb2YgQm90dG9tIEJhci4KIAkgKiBiYXJMZWZ0 OiAgIFBpeGVsIE51bWJlciBvZiBFbmQgb2YgTGVmdCBCYXIuCiAJICogYmFyUmlnaHQ6ICBQaXhl bCBOdW1iZXIgb2YgU3RhcnQgb2YgUmlnaHQgQmFyLiAqLwotCWluZm9fZnJhbWUuYXZpX2luZm9f cGFja2V0LmluZm9fcGFja2V0X2hkbWkuYml0cy5iYXJfdG9wID0KLQkJCXN0cmVhbS0+cHVibGlj LnRpbWluZy52X2JvcmRlcl90b3A7Ci0JaW5mb19mcmFtZS5hdmlfaW5mb19wYWNrZXQuaW5mb19w YWNrZXRfaGRtaS5iaXRzLmJhcl9ib3R0b20gPQotCQkoc3RyZWFtLT5wdWJsaWMudGltaW5nLnZf Ym9yZGVyX3RvcAorCWhkbWlfaW5mby0+Yml0cy5iYXJfdG9wID0gc3RyZWFtLT5wdWJsaWMudGlt aW5nLnZfYm9yZGVyX3RvcDsKKwloZG1pX2luZm8tPmJpdHMuYmFyX2JvdHRvbSA9IChzdHJlYW0t PnB1YmxpYy50aW1pbmcudl9ib3JkZXJfdG9wCiAJCQktIHN0cmVhbS0+cHVibGljLnRpbWluZy52 X2JvcmRlcl9ib3R0b20gKyAxKTsKLQlpbmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3Bh Y2tldF9oZG1pLmJpdHMuYmFyX2xlZnQgPQotCQkJc3RyZWFtLT5wdWJsaWMudGltaW5nLmhfYm9y ZGVyX2xlZnQ7Ci0JaW5mb19mcmFtZS5hdmlfaW5mb19wYWNrZXQuaW5mb19wYWNrZXRfaGRtaS5i aXRzLmJhcl9yaWdodCA9Ci0JCShzdHJlYW0tPnB1YmxpYy50aW1pbmcuaF90b3RhbAorCWhkbWlf aW5mby0+Yml0cy5iYXJfbGVmdCAgPSBzdHJlYW0tPnB1YmxpYy50aW1pbmcuaF9ib3JkZXJfbGVm dDsKKwloZG1pX2luZm8tPmJpdHMuYmFyX3JpZ2h0ID0gKHN0cmVhbS0+cHVibGljLnRpbWluZy5o X3RvdGFsCiAJCQktIHN0cmVhbS0+cHVibGljLnRpbWluZy5oX2JvcmRlcl9yaWdodCArIDEpOwog CiAJLyogY2hlY2tfc3VtIC0gQ2FsY3VsYXRlIEFGTVRfQVZJX0lORk8wIH4gQUZNVF9BVklfSU5G TzMgKi8KLQljaGVja19zdW0gPQotCQkmaW5mb19mcmFtZS4KLQkJYXZpX2luZm9fcGFja2V0Lmlu Zm9fcGFja2V0X2hkbWkucGFja2V0X3Jhd19kYXRhLnNiWzBdOworCWNoZWNrX3N1bSA9ICZpbmZv X2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLnBhY2tldF9yYXdfZGF0YS5z YlswXTsKKwogCSpjaGVja19zdW0gPSBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSSArIEhETUlfQVZJ X0lORk9GUkFNRV9TSVpFICsgMjsKIAogCWZvciAoYnl0ZV9pbmRleCA9IDE7IGJ5dGVfaW5kZXgg PD0gSERNSV9BVklfSU5GT0ZSQU1FX1NJWkU7IGJ5dGVfaW5kZXgrKykKLQkJKmNoZWNrX3N1bSAr PSBpbmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLgotCQkJCXBhY2tl dF9yYXdfZGF0YS5zYltieXRlX2luZGV4XTsKKwkJKmNoZWNrX3N1bSArPSBoZG1pX2luZm8tPnBh Y2tldF9yYXdfZGF0YS5zYltieXRlX2luZGV4XTsKIAogCS8qIG9uZSBieXRlIGNvbXBsZW1lbnQg Ki8KIAkqY2hlY2tfc3VtID0gKHVpbnQ4X3QpICgweDEwMCAtICpjaGVja19zdW0pOwogCiAJLyog U3RvcmUgaW4gaHdfcGF0aF9tb2RlICovCi0JaW5mb19wYWNrZXQtPmhiMCA9Ci0JCWluZm9fZnJh bWUuYXZpX2luZm9fcGFja2V0LmluZm9fcGFja2V0X2hkbWkucGFja2V0X3Jhd19kYXRhLmhiMDsK LQlpbmZvX3BhY2tldC0+aGIxID0KLQkJaW5mb19mcmFtZS5hdmlfaW5mb19wYWNrZXQuaW5mb19w YWNrZXRfaGRtaS5wYWNrZXRfcmF3X2RhdGEuaGIxOwotCWluZm9fcGFja2V0LT5oYjIgPQotCQlp bmZvX2ZyYW1lLmF2aV9pbmZvX3BhY2tldC5pbmZvX3BhY2tldF9oZG1pLnBhY2tldF9yYXdfZGF0 YS5oYjI7CisJaW5mb19wYWNrZXQtPmhiMCA9IGhkbWlfaW5mby0+cGFja2V0X3Jhd19kYXRhLmhi MDsKKwlpbmZvX3BhY2tldC0+aGIxID0gaGRtaV9pbmZvLT5wYWNrZXRfcmF3X2RhdGEuaGIxOwor CWluZm9fcGFja2V0LT5oYjIgPSBoZG1pX2luZm8tPnBhY2tldF9yYXdfZGF0YS5oYjI7CiAKIAlm b3IgKGJ5dGVfaW5kZXggPSAwOyBieXRlX2luZGV4IDwgc2l6ZW9mKGluZm9fZnJhbWUuYXZpX2lu Zm9fcGFja2V0LgogCQkJCWluZm9fcGFja2V0X2hkbWkucGFja2V0X3Jhd19kYXRhLnNiKTsgYnl0 ZV9pbmRleCsrKQotLSAKMi4xMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ft ZC1nZngK