From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: [PATCH i-g-t v5 4/7] Introduce common frame dumping configuration and helpers Date: Wed, 19 Jul 2017 16:46:07 +0300 Message-ID: <20170719134610.8278-5-paul.kocialkowski@linux.intel.com> References: <20170705080435.26789-1-paul.kocialkowski@linux.intel.com> <20170719134610.8278-1-paul.kocialkowski@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0BF256E0BC for ; Wed, 19 Jul 2017 13:46:23 +0000 (UTC) In-Reply-To: <20170719134610.8278-1-paul.kocialkowski@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBpbnRyb2R1Y2VzIGEgY29tbW9uIEZyYW1lRHVtcFBhdGggY29uZmlndXJhdGlvbiBmaWVs ZCwgYXMgd2VsbCBhcwpoZWxwZXIgZnVuY3Rpb25zIGluIGRlZGljYXRlZCBpZ3RfZnJhbWUgZm9y IHdyaXRpbmcgY2Fpcm8gc3VyZmFjZXMKdG8gcG5nIGZpbGVzLgoKU2lnbmVkLW9mZi1ieTogUGF1 bCBLb2NpYWxrb3dza2kgPHBhdWwua29jaWFsa293c2tpQGxpbnV4LmludGVsLmNvbT4KLS0tCiBs aWIvTWFrZWZpbGUuc291cmNlcyB8ICAgMiArCiBsaWIvaWd0LmggICAgICAgICAgICB8ICAgMSAr CiBsaWIvaWd0X2NvcmUuYyAgICAgICB8ICAxMiArKysrKwogbGliL2lndF9jb3JlLmggICAgICAg fCAgIDIgKy0KIGxpYi9pZ3RfZnJhbWUuYyAgICAgIHwgMTM3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL2lndF9mcmFtZS5oICAgICAgfCAg NDMgKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCAxOTYgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pZ3RfZnJhbWUuYwogY3JlYXRl IG1vZGUgMTAwNjQ0IGxpYi9pZ3RfZnJhbWUuaAoKZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZS5z b3VyY2VzIGIvbGliL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggNTNmZGI1NGMuLmMyZTU4ODA5IDEw MDY0NAotLS0gYS9saWIvTWFrZWZpbGUuc291cmNlcworKysgYi9saWIvTWFrZWZpbGUuc291cmNl cwpAQCAtODMsNiArODMsOCBAQCBsaWJfc291cmNlX2xpc3QgPQkgCVwKIAl1d2lsZG1hdC91d2ls ZG1hdC5jCVwKIAlpZ3Rfa21vZC5jCQlcCiAJaWd0X2ttb2QuaAkJXAorCWlndF9mcmFtZS5jCQlc CisJaWd0X2ZyYW1lLmgJCVwKIAkkKE5VTEwpCiAKIC5QSE9OWTogdmVyc2lvbi5oLnRtcApkaWZm IC0tZ2l0IGEvbGliL2lndC5oIGIvbGliL2lndC5oCmluZGV4IGEwNjlkZWIzLi5kMTZhNDk5MSAx MDA2NDQKLS0tIGEvbGliL2lndC5oCisrKyBiL2xpYi9pZ3QuaApAQCAtMzQsNiArMzQsNyBAQAog I2luY2x1ZGUgImlndF9kcmF3LmgiCiAjaW5jbHVkZSAiaWd0X2R1bW15bG9hZC5oIgogI2luY2x1 ZGUgImlndF9mYi5oIgorI2luY2x1ZGUgImlndF9mcmFtZS5oIgogI2luY2x1ZGUgImlndF9ndC5o IgogI2luY2x1ZGUgImlndF9rbXMuaCIKICNpbmNsdWRlICJpZ3RfcG0uaCIKZGlmZiAtLWdpdCBh L2xpYi9pZ3RfY29yZS5jIGIvbGliL2lndF9jb3JlLmMKaW5kZXggMWJhNzkzNjEuLjVhM2IwMGU4 IDEwMDY0NAotLS0gYS9saWIvaWd0X2NvcmUuYworKysgYi9saWIvaWd0X2NvcmUuYwpAQCAtMjM1 LDYgKzIzNSwxMCBAQAogICogQW4gZXhhbXBsZSBjb25maWd1cmF0aW9uIGZvbGxvd3M6CiAgKgog ICogfFs8IS0tIGxhbmd1YWdlPSJwbGFpbiIgLS0+CisgKgkjIFRoZSBjb21tb24gY29uZmlndXJh dGlvbiBzZWN0b24gZm9sbG93cy4KKyAqCVtDb21tb25dCisgKglGcmFtZUR1bXBQYXRoPS90bXAg IyBUaGUgcGF0aCB0byBkdW1wIGZyYW1lcyB0aGF0IGZhaWwgY29tcGFyaXNvbiBjaGVja3MKKyAq CiAgKgkjIFRoZSBmb2xsb3dpbmcgc2VjdGlvbiBpcyB1c2VkIGZvciBjb25maWd1cmluZyB0aGUg RGV2aWNlIFVuZGVyIFRlc3QuCiAgKgkjIEl0IGlzIG5vdCBtYW5kYXRvcnkgYW5kIGFsbG93cyBv dmVycmlkaW5nIGRlZmF1bHQgdmFsdWVzLgogICoJW0RVVF0KQEAgLTI5MCw2ICsyOTQsNyBAQCBz dGF0aWMgc3RydWN0IHsKIHN0YXRpYyBwdGhyZWFkX211dGV4X3QgbG9nX2J1ZmZlcl9tdXRleCA9 IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CiAKIEdLZXlGaWxlICppZ3Rfa2V5X2ZpbGU7Citj aGFyICpmcmFtZV9kdW1wX3BhdGg7CiAKIGNvbnN0IGNoYXIgKmlndF90ZXN0X25hbWUodm9pZCkK IHsKQEAgLTYyMSw2ICs2MjYsMTMgQEAgc3RhdGljIGludCBjb25maWdfcGFyc2Uodm9pZCkKIAlp ZiAoIWlndF9rZXlfZmlsZSkKIAkJcmV0dXJuIDA7CiAKKwlmcmFtZV9kdW1wX3BhdGggPSBnZXRl bnYoIklHVF9GUkFNRV9EVU1QX1BBVEgiKTsKKworCWlmICghZnJhbWVfZHVtcF9wYXRoKQorCQlm cmFtZV9kdW1wX3BhdGggPSBnX2tleV9maWxlX2dldF9zdHJpbmcoaWd0X2tleV9maWxlLCAiQ29t bW9uIiwKKwkJCQkJCQkiRnJhbWVEdW1wUGF0aCIsCisJCQkJCQkJJmVycm9yKTsKKwogCXJjID0g Z19rZXlfZmlsZV9nZXRfaW50ZWdlcihpZ3Rfa2V5X2ZpbGUsICJEVVQiLCAiU3VzcGVuZFJlc3Vt ZURlbGF5IiwKIAkJCQkgICAgJmVycm9yKTsKIAlpZiAoZXJyb3IgJiYgZXJyb3ItPmNvZGUgPT0g R19LRVlfRklMRV9FUlJPUl9JTlZBTElEX1ZBTFVFKQpkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3Jl LmggYi9saWIvaWd0X2NvcmUuaAppbmRleCAwNzM5Y2E4My4uMTYxOWE5ZDYgMTAwNjQ0Ci0tLSBh L2xpYi9pZ3RfY29yZS5oCisrKyBiL2xpYi9pZ3RfY29yZS5oCkBAIC01MCw3ICs1MCw3IEBACiBl eHRlcm4gY29uc3QgY2hhciogX19pZ3RfdGVzdF9kZXNjcmlwdGlvbiBfX2F0dHJpYnV0ZV9fKCh3 ZWFrKSk7CiBleHRlcm4gYm9vbCBfX2lndF9wbGFpbl9vdXRwdXQ7CiBleHRlcm4gR0tleUZpbGUg KmlndF9rZXlfZmlsZTsKLQorZXh0ZXJuIGNoYXIgKmZyYW1lX2R1bXBfcGF0aDsKIAogLyoqCiAg KiBJR1RfVEVTVF9ERVNDUklQVElPTjoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZnJhbWUuYyBiL2xp Yi9pZ3RfZnJhbWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZGZhZmU1 M2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvaWd0X2ZyYW1lLmMKQEAgLTAsMCArMSwxMzcgQEAK Ky8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNyBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGlu Y2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgor ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogIFBh dWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBsaW51eC5pbnRlbC5jb20+CisgKi8K KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxw aXhtYW4uaD4KKyNpbmNsdWRlIDxjYWlyby5oPgorCisjaW5jbHVkZSAiaWd0LmgiCisKKy8qKgor ICogU0VDVElPTjppZ3RfZnJhbWUKKyAqIEBzaG9ydF9kZXNjcmlwdGlvbjogTGlicmFyeSBmb3Ig ZnJhbWUtcmVsYXRlZCB0ZXN0cworICogQHRpdGxlOiBGcmFtZQorICogQGluY2x1ZGU6IGlndF9m cmFtZS5oCisgKgorICogVGhpcyBsaWJyYXJ5IGNvbnRhaW5zIGhlbHBlcnMgZm9yIGZyYW1lLXJl bGF0ZWQgdGVzdHMuIFRoaXMgaW5jbHVkZXMgY29tbW9uCisgKiBmcmFtZSBkdW1waW5nIGFzIHdl bGwgYXMgZnJhbWUgY29tcGFyaXNvbiBoZWxwZXJzLgorICovCisKKy8qKgorICogaWd0X2ZyYW1l X2R1bXBfaXNfZW5hYmxlZDoKKyAqCisgKiBHZXQgd2hldGhlciBmcmFtZSBkdW1waW5nIGlzIGVu YWJsZWQuCisgKgorICogUmV0dXJuczogQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBmcmFt ZSBkdW1waW5nIGlzIGVuYWJsZWQKKyAqLworYm9vbCBpZ3RfZnJhbWVfZHVtcF9pc19lbmFibGVk KHZvaWQpCit7CisJcmV0dXJuIGZyYW1lX2R1bXBfcGF0aCAhPSBOVUxMOworfQorCitzdGF0aWMg dm9pZCBpZ3Rfd3JpdGVfZnJhbWVfdG9fcG5nKGNhaXJvX3N1cmZhY2VfdCAqc3VyZmFjZSwgaW50 IGZkLAorCQkJCSAgIGNvbnN0IGNoYXIgKnF1YWxpZmllciwgY29uc3QgY2hhciAqc3VmZml4KQor eworCWNoYXIgcGF0aFtQQVRIX01BWF07CisJY29uc3QgY2hhciAqdGVzdF9uYW1lOworCWNvbnN0 IGNoYXIgKnN1YnRlc3RfbmFtZTsKKwljYWlyb19zdGF0dXNfdCBzdGF0dXM7CisJaW50IGluZGV4 OworCisJdGVzdF9uYW1lID0gaWd0X3Rlc3RfbmFtZSgpOworCXN1YnRlc3RfbmFtZSA9IGlndF9z dWJ0ZXN0X25hbWUoKTsKKworCWlmIChzdWZmaXgpCisJCXNucHJpbnRmKHBhdGgsIFBBVEhfTUFY LCAiJXMvZnJhbWUtJXMtJXMtJXMtJXMucG5nIiwKKwkJCSBmcmFtZV9kdW1wX3BhdGgsIHRlc3Rf bmFtZSwgc3VidGVzdF9uYW1lLCBxdWFsaWZpZXIsCisJCQkgc3VmZml4KTsKKwllbHNlCisJCXNu cHJpbnRmKHBhdGgsIFBBVEhfTUFYLCAiJXMvZnJhbWUtJXMtJXMtJXMucG5nIiwKKwkJCSBmcmFt ZV9kdW1wX3BhdGgsIHRlc3RfbmFtZSwgc3VidGVzdF9uYW1lLCBxdWFsaWZpZXIpOworCisJaWd0 X2RlYnVnKCJEdW1waW5nICVzIGZyYW1lIHRvICVzLi4uXG4iLCBxdWFsaWZpZXIsIHBhdGgpOwor CisJc3RhdHVzID0gY2Fpcm9fc3VyZmFjZV93cml0ZV90b19wbmcoc3VyZmFjZSwgcGF0aCk7CisK KwlpZ3RfYXNzZXJ0X2VxKHN0YXR1cywgQ0FJUk9fU1RBVFVTX1NVQ0NFU1MpOworCisJaW5kZXgg PSBzdHJsZW4ocGF0aCk7CisKKwlpZiAoZmQgPj0gMCAmJiBpbmRleCA8IChQQVRIX01BWCAtIDEp KSB7CisJCXBhdGhbaW5kZXgrK10gPSAnXG4nOworCQlwYXRoW2luZGV4XSA9ICdcMCc7CisKKwkJ d3JpdGUoZmQsIHBhdGgsIHN0cmxlbihwYXRoKSk7CisJfQorfQorCisvKioKKyAqIGlndF93cml0 ZV9jb21wYXJlZF9mcmFtZXNfdG9fcG5nOgorICogQHJlZmVyZW5jZTogVGhlIHJlZmVyZW5jZSBj YWlybyBzdXJmYWNlCisgKiBAY2FwdHVyZTogVGhlIGNhcHR1cmVkIGNhaXJvIHN1cmZhY2UKKyAq IEByZWZlcmVuY2Vfc3VmZml4OiBUaGUgc3VmZml4IHRvIGdpdmUgdG8gdGhlIHJlZmVyZW5jZSBw bmcgZmlsZQorICogQGNhcHR1cmVfc3VmZml4OiBUaGUgc3VmZml4IHRvIGdpdmUgdG8gdGhlIGNh cHR1cmUgcG5nIGZpbGUKKyAqCisgKiBXcml0ZSBwcmV2aW91c2x5IGNvbXBhcmVkIGZyYW1lcyB0 byBwbmcgZmlsZXMuCisgKi8KK3ZvaWQgaWd0X3dyaXRlX2NvbXBhcmVkX2ZyYW1lc190b19wbmco Y2Fpcm9fc3VyZmFjZV90ICpyZWZlcmVuY2UsCisJCQkJICAgICAgY2Fpcm9fc3VyZmFjZV90ICpj YXB0dXJlLAorCQkJCSAgICAgIGNvbnN0IGNoYXIgKnJlZmVyZW5jZV9zdWZmaXgsCisJCQkJICAg ICAgY29uc3QgY2hhciAqY2FwdHVyZV9zdWZmaXgpCit7CisJY2hhciAqaWQ7CisJY29uc3QgY2hh ciAqdGVzdF9uYW1lOworCWNvbnN0IGNoYXIgKnN1YnRlc3RfbmFtZTsKKwljaGFyIHBhdGhbUEFU SF9NQVhdOworCWludCBmZCA9IC0xOworCisJaWYgKCFpZ3RfZnJhbWVfZHVtcF9pc19lbmFibGVk KCkpCisJCXJldHVybjsKKworCWlkID0gZ2V0ZW52KCJJR1RfRlJBTUVfRFVNUF9JRCIpOworCisJ dGVzdF9uYW1lID0gaWd0X3Rlc3RfbmFtZSgpOworCXN1YnRlc3RfbmFtZSA9IGlndF9zdWJ0ZXN0 X25hbWUoKTsKKworCWlmIChpZCkKKwkJc25wcmludGYocGF0aCwgUEFUSF9NQVgsICIlcy9mcmFt ZS0lcy0lcy0lcy50eHQiLAorCQkJIGZyYW1lX2R1bXBfcGF0aCwgdGVzdF9uYW1lLCBzdWJ0ZXN0 X25hbWUsIGlkKTsKKwllbHNlCisJCXNucHJpbnRmKHBhdGgsIFBBVEhfTUFYLCAiJXMvZnJhbWUt JXMtJXMudHh0IiwKKwkJCSBmcmFtZV9kdW1wX3BhdGgsIHRlc3RfbmFtZSwgc3VidGVzdF9uYW1l KTsKKworCWZkID0gb3BlbihwYXRoLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX1RSVU5DLCAwNjQ0 KTsKKwlpZ3RfYXNzZXJ0KGZkID49IDApOworCisJaWd0X2RlYnVnKCJXcml0aW5nIGR1bXAgcmVw b3J0IHRvICVzLi4uXG4iLCBwYXRoKTsKKworCWlndF93cml0ZV9mcmFtZV90b19wbmcocmVmZXJl bmNlLCBmZCwgInJlZmVyZW5jZSIsIHJlZmVyZW5jZV9zdWZmaXgpOworCWlndF93cml0ZV9mcmFt ZV90b19wbmcoY2FwdHVyZSwgZmQsICJjYXB0dXJlIiwgY2FwdHVyZV9zdWZmaXgpOworCisJY2xv c2UoZmQpOworfQpkaWZmIC0tZ2l0IGEvbGliL2lndF9mcmFtZS5oIGIvbGliL2lndF9mcmFtZS5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5lYzZhMTY0MwotLS0gL2Rldi9u dWxsCisrKyBiL2xpYi9pZ3RfZnJhbWUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp Z2h0IMKpIDIwMTcgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICog Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg KHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVz dHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8g dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl LAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1 YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5l eHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJz dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBS RVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFV VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH RVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisg KiBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqICBQYXVsIEtvY2lhbGtvd3Nr aSA8cGF1bC5rb2NpYWxrb3dza2lAbGludXguaW50ZWwuY29tPgorICovCisKKyNpZm5kZWYgSUdU X0ZSQU1FX0gKKyNkZWZpbmUgSUdUX0ZSQU1FX0gKKworI2lmZGVmIEhBVkVfQ09ORklHX0gKKyNp bmNsdWRlICJjb25maWcuaCIKKyNlbmRpZgorCisjaW5jbHVkZSAiaWd0LmgiCisjaW5jbHVkZSA8 c3RkYm9vbC5oPgorCitib29sIGlndF9mcmFtZV9kdW1wX2lzX2VuYWJsZWQodm9pZCk7Cit2b2lk IGlndF93cml0ZV9jb21wYXJlZF9mcmFtZXNfdG9fcG5nKGNhaXJvX3N1cmZhY2VfdCAqcmVmZXJl bmNlLAorCQkJCSAgICAgIGNhaXJvX3N1cmZhY2VfdCAqY2FwdHVyZSwKKwkJCQkgICAgICBjb25z dCBjaGFyICpyZWZlcmVuY2Vfc3VmZml4LAorCQkJCSAgICAgIGNvbnN0IGNoYXIgKmNhcHR1cmVf c3VmZml4KTsKKworI2VuZGlmCi0tIAoyLjEzLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=