From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.3.1-8 Date: Mon, 29 Jun 2026 12:23:52 GMT Message-ID: <178273583281.1.1700724365360721044.rpms-gcc-dc4fc4efbaa7@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: dc4fc4efbaa7f4704b6f4dbd64e041bc297ed681 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogZGM0ZmM0ZWZiYWE3ZjQ3MDRiNmY0ZGJkNjRlMDQxYmMy OTdlZDY4MQpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOC0wOC0yNVQxMjowNzo0MCswMDowMApTdGF0cyAgOiArMTAxMC8tMCBpbiAx IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nY2Mv Yy9kYzRmYzRlZmJhYTdmNDcwNGI2ZjRkYmQ2NGUwNDFiYzI5N2VkNjgxP2JyYW5jaD1yaGVsLWY0 MS1iYXNlCgpMb2c6CjQuMy4xLTgKCi0tLQpkaWZmIC0tZ2l0IGEvZ2NjNDMtZm9ydHJhbi1kZWJ1 ZzIucGF0Y2ggYi9nY2M0My1mb3J0cmFuLWRlYnVnMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi45ZTA3MDhlCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDMtZm9ydHJh bi1kZWJ1ZzIucGF0Y2gKQEAgLTAsMCArMSwxMDEwIEBACisyMDA4LTA4LTIyICBKYWt1YiBKZWxp bmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCVBSIGZvcnRyYW4vMjk2MzUKKwlQUiBmb3J0cmFu LzIzMDU3CisJKiBkZWJ1Zy5oIChzdHJ1Y3QgZ2NjX2RlYnVnX2hvb2tzKTogQWRkIE5BTUUgYW5k IENISUxECisJYXJndW1lbnRzIHRvIGltcG9ydGVkX21vZHVsZV9vcl9kZWNsLgorCShkZWJ1Z19u b3RoaW5nX3RyZWVfdHJlZSk6IFJlbW92ZWQuCisJKGRlYnVnX25vdGhpbmdfdHJlZV90cmVlX3Ry ZWVfYm9vbCk6IE5ldyBwcm90b3R5cGUuCisJKiBkZWJ1Zy5jIChkb19ub3RoaW5nX2RlYnVnX2hv b2tzKTogQWRqdXN0LgorCShkZWJ1Z19ub3RoaW5nX3RyZWVfdHJlZSk6IFJlbW92ZWQuCisJKGRl YnVnX25vdGhpbmdfdHJlZV90cmVlX3RyZWVfYm9vbCk6IE5ldyBmdW5jdGlvbi4KKwkqIGR3YXJm Mm91dC5jIChpc19zeW1ib2xfZGllKTogSGFuZGxlIERXX1RBR19tb2R1bGUuCisJKGdlbl92YXJp YWJsZV9kaWUpOiBQdXQgYWxsIGNvbW1vbiB2YXJzIGZvciB0aGUKKwlzYW1lIENPTU1PTiBibG9j ayB1bmRlciBvbmUgRFdfVEFHX2NvbW1vbl9ibG9jay4KKwkoZGVjbGFyZV9pbl9uYW1lc3BhY2Up OiBSZXR1cm4gbmV3IGNvbnRleHRfZGllLCBmb3IgRm9ydHJhbgorCXJldHVybiB0aGUgbW9kdWxl IERJRSBpbnN0ZWFkIG9mIGFkZGluZyBleHRyYSBkZWNsYXJhdGlvbnMgaW50bworCXRoZSBuYW1l c3BhY2UuCisJKGdlbl90eXBlX2RpZV93aXRoX3VzYWdlKTogQWRqdXN0IGRlY2xhcmVfaW5fbmFt ZXNwYWNlIGNhbGxlci4KKwkoZ2VuX25hbWVzcGFjZV9kaWUpOiBJZiBpc19mb3J0cmFuICgpLCBn ZW5lcmF0ZSBEV19UQUdfbW9kdWxlCisJaW5zdGVhZCBvZiBEV19UQUdfbmFtZXNwYWNlLiAgSWYg REVDTF9FWFRFUk5BTCBpcyBzZXQsIGFkZAorCURXX0FUX2RlY2xhcmF0aW9uLgorCShkd2FyZjJv dXRfZ2xvYmFsX2RlY2wpOiBEb24ndCBza2lwIEZvcnRyYW4gZ2xvYmFsIHZhcnMuCisJKGdlbl9k ZWNsX2RpZSk6IExpa2V3aXNlLiAgQWRqdXN0IGRlY2xhcmVfaW5fbmFtZXNwYWNlIGNhbGxlcnMu CisJKGR3YXJmMm91dF9pbXBvcnRlZF9tb2R1bGVfb3JfZGVjbCk6IEFkZCBOQU1FIGFuZCBDSElM RCBhcmd1bWVudHMuCisJSWYgTkFNRSBpcyBub24tTlVMTCwgYWRkIERXX0FUX25hbWUuICBJZiBD SElMRCBpcyBub24tTlVMTCwgcHV0CisJRFdfVEFHX2ltcG9ydGVkX2RlY2xhcmF0aW9uIGFzIGNo aWxkIG9mIHByZXZpb3VzCisJRFdfVEFHX2ltcG9ydGVkX21vZHVsZS4KKwkqIGRieG91dC5jIChk YnhfZGVidWdfaG9va3MsIHhjb2ZmX2RlYnVnX2hvb2tzKTogQWRqdXN0LgorCSogc2Rib3V0LmMg KHNkYl9kZWJ1Z19ob29rcyk6IExpa2V3aXNlLgorCSogdm1zZGJnb3V0LmMgKHZtc2RiZ19kZWJ1 Z19ob29rcyk6IExpa2V3aXNlLgorCisJKiBuYW1lLWxvb2t1cC5jIChkb191c2luZ19kaXJlY3Rp dmUsIGNwX2VtaXRfZGVidWdfaW5mb19mb3JfdXNpbmcpOgorCUFkanVzdCBkZWJ1Z19ob29rcy0+ aW1wb3J0ZWRfbW9kdWxlX29yX2RlY2wgY2FsbGVycy4KKworCSogZjk1LWxhbmcuYyAoZ2ZjX2lu aXRfdHMpOiBOZXcgZnVuY3Rpb24uCisJKExBTkdfSE9PS1NfSU5JVF9UUyk6IERlZmluZS4KKwkq IGdmb3J0cmFuLmggKGdmY191c2VfcmVuYW1lKTogTmV3IHR5cGUsIG1vdmVkIGZyb20gbW9kdWxl LmMuCisJKGdmY19nZXRfdXNlX3JlbmFtZSk6IE5ldyBtYWNybywgbW92ZWQgZnJvbSBtb2R1bGUu Yy4KKwkoZ2ZjX3VzZV9saXN0KTogTmV3IHR5cGUuCisJKGdmY19nZXRfdXNlX2xpc3QpOiBOZXcg bWFjcm8uCisJKGdmY19uYW1lc3BhY2UpOiBBZGQgdXNlX3N0bXRzIGZpZWxkLgorCShnZmNfZnJl ZV91c2Vfc3RtdHMpOiBOZXcgcHJvdG90eXBlLgorCSogTWFrZS1sYW5nLmluIChmb3J0cmFuL3Ry YW5zLWRlY2wubyk6IERlcGVuZCBvbiBkZWJ1Zy5oLgorCSogbW9kdWxlLmMgKGdmY191c2VfcmVu YW1lLCBnZmNfZ2V0X3VzZV9yZW5hbWUpOiBNb3ZlZCB0bworCWdmb3J0cmFuLmguCisJKGdmY191 c2VfbW9kdWxlKTogQ2hhaW4gdGhlIFVTRSBzdGF0ZW1lbnQgaW5mbyB0bworCW5zLT51c2Vfc3Rt dHMuCisJKGdmY19mcmVlX3VzZV9zdG10cyk6IE5ldyBmdW5jdGlvbi4KKwkqIHN5bWJvbC5jIChn ZmNfZnJlZV9uYW1lc3BhY2UpOiBDYWxsIGdmY19mcmVlX3VzZV9zdG10cy4KKwkqIHRyYW5zLmgg KHN0cnVjdCBtb2R1bGVfaHRhYl9lbnRyeSk6IE5ldyB0eXBlLgorCShnZmNfZmluZF9tb2R1bGUs IGdmY19tb2R1bGVfYWRkX2RlY2wpOiBOZXcgZnVuY3Rpb25zLgorCSogdHJhbnMuYyAoZ2ZjX2dl bmVyYXRlX21vZHVsZV9jb2RlKTogQ3JlYXRlIE5BTUVTUEFDRV9ERUNMIGZvcgorCXRoZSBtb2R1 bGUsIGFkanVzdCBERUNMX0NPTlRFWFRzIG9mIG1vZHVsZSBwcm9jZWR1cmVzIGFuZAorCWNhbGwg Z2ZjX21vZHVsZV9hZGRfZGVjbCBmb3IgdGhlbS4KKwkqIHRyYW5zLWNvbW1vbi5jIChidWlsZF9j b21tb25fZGVjbCk6IFNldCBERUNMX0lHTk9SRURfUAorCW9uIHRoZSBjb21tb24gdmFyaWFibGUu CisJKGNyZWF0ZV9jb21tb24pOiBTZXQgREVDTF9JR05PUkVEX1AgZm9yIHVzZSBhc3NvY2lhdGVk IHZhcnMuCisJKiB0cmFucy1kZWNsLmM6IEluY2x1ZGUgZGVidWcuaC4KKwkoZ2ZjX2dldF9zeW1i b2xfZGVjbCk6IFNldCBERUNMX0lHTk9SRURfUCBvbiB1c2VfYXNzb2MgdmFycyBmcm9tCisJbW9k dWxlcy4KKwkoYnVpbGRfZnVuY3Rpb25fZGVjbCk6IEFsbG93IGN1cnJlbnRfZnVuY3Rpb25fZGVj bCdzIGNvbnRleHQKKwl0byBiZSBhIE5BTUVTUEFDRV9ERUNMLgorCShtb2R1bGVfaHRhYiwgY3Vy X21vZHVsZSk6IE5ldyB2YXJpYWJsZXMuCisJKG1vZHVsZV9odGFiX2RvX2hhc2gsIG1vZHVsZV9o dGFiX2VxLCBtb2R1bGVfaHRhYl9kZWNsc19oYXNoLAorCW1vZHVsZV9odGFiX2RlY2xzX2VxLCBn ZmNfZmluZF9tb2R1bGUsIGdmY19tb2R1bGVfYWRkX2RlY2wpOiBOZXcKKwlmdW5jdGlvbnMuCisJ KGdmY19jcmVhdGVfbW9kdWxlX3ZhcmlhYmxlKTogQWRqdXN0IERFQ0xfQ09OVEVYVHMgb2YgbW9k dWxlCisJdmFyaWFibGVzIGFuZCB0eXBlcyBhbmQgY2FsbCBnZmNfbW9kdWxlX2FkZF9kZWNsIGZv ciB0aGVtLgorCShnZmNfZ2VuZXJhdGVfbW9kdWxlX3ZhcnMpOiBUZW1wb3JhcmlseSBzZXQgY3Vy X21vZHVsZS4KKwkoZ2ZjX3RyYW5zX3VzZV9zdG10cyk6IE5ldyBmdW5jdGlvbi4KKwkoZ2ZjX2dl bmVyYXRlX2Z1bmN0aW9uX2NvZGUpOiBDYWxsIGl0LgorCShnZmNfZ2VuZXJhdGVfYmxvY2tfZGF0 YSk6IFNldCBERUNMX0lHTk9SRURfUCBvbiBkZWNsLgorCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2dl dF9kZXJpdmVkX3R5cGUpOiBBZGp1c3QgREVDTF9DT05URVhUCisJYW5kIFRZUEVfQ09OVEVYVCBv ZiBtb2R1bGUgZGVyaXZlZCB0eXBlcy4KKworLS0tIGdjYy9mb3J0cmFuL2Y5NS1sYW5nLmMuamoJ MjAwOC0wOC0yMSAxMDoxOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvZm9ydHJhbi9mOTUt bGFuZy5jCTIwMDgtMDgtMjEgMTA6MjE6MzAuMDAwMDAwMDAwICswMjAwCitAQCAtOTksNiArOTks NyBAQCB2b2lkIGluc2VydF9ibG9jayAodHJlZSk7Cisgc3RhdGljIHZvaWQgZ2ZjX2NsZWFyX2Jp bmRpbmdfc3RhY2sgKHZvaWQpOworIHN0YXRpYyB2b2lkIGdmY19iZV9wYXJzZV9maWxlIChpbnQp OworIHN0YXRpYyBhbGlhc19zZXRfdHlwZSBnZmNfZ2V0X2FsaWFzX3NldCAodHJlZSk7Cisrc3Rh dGljIHZvaWQgZ2ZjX2luaXRfdHMgKHZvaWQpOworIAorICN1bmRlZiBMQU5HX0hPT0tTX05BTUUK KyAjdW5kZWYgTEFOR19IT09LU19JTklUCitAQCAtMTEzLDYgKzExNCw3IEBAIHN0YXRpYyBhbGlh c19zZXRfdHlwZSBnZmNfZ2V0X2FsaWFzX3NldCAKKyAjdW5kZWYgTEFOR19IT09LU19UWVBFX0ZP Ul9TSVpFCisgI3VuZGVmIExBTkdfSE9PS1NfQ0xFQVJfQklORElOR19TVEFDSworICN1bmRlZiBM QU5HX0hPT0tTX0dFVF9BTElBU19TRVQKKysjdW5kZWYgTEFOR19IT09LU19JTklUX1RTCisgI3Vu ZGVmIExBTkdfSE9PS1NfT01QX1BSSVZBVElaRV9CWV9SRUZFUkVOQ0UKKyAjdW5kZWYgTEFOR19I T09LU19PTVBfUFJFREVURVJNSU5FRF9TSEFSSU5HCisgI3VuZGVmIExBTkdfSE9PS1NfT01QX0NM QVVTRV9ERUZBVUxUX0NUT1IKK0BAIC0xNDAsNiArMTQyLDcgQEAgc3RhdGljIGFsaWFzX3NldF90 eXBlIGdmY19nZXRfYWxpYXNfc2V0IAorICNkZWZpbmUgTEFOR19IT09LU19UWVBFX0ZPUl9TSVpF ICAgICAgICAgICBnZmNfdHlwZV9mb3Jfc2l6ZQorICNkZWZpbmUgTEFOR19IT09LU19DTEVBUl9C SU5ESU5HX1NUQUNLICAgICBnZmNfY2xlYXJfYmluZGluZ19zdGFjaworICNkZWZpbmUgTEFOR19I T09LU19HRVRfQUxJQVNfU0VUCSAgIGdmY19nZXRfYWxpYXNfc2V0CisrI2RlZmluZSBMQU5HX0hP T0tTX0lOSVRfVFMJCWdmY19pbml0X3RzCisgI2RlZmluZSBMQU5HX0hPT0tTX09NUF9QUklWQVRJ WkVfQllfUkVGRVJFTkNFCWdmY19vbXBfcHJpdmF0aXplX2J5X3JlZmVyZW5jZQorICNkZWZpbmUg TEFOR19IT09LU19PTVBfUFJFREVURVJNSU5FRF9TSEFSSU5HCWdmY19vbXBfcHJlZGV0ZXJtaW5l ZF9zaGFyaW5nCisgI2RlZmluZSBMQU5HX0hPT0tTX09NUF9DTEFVU0VfREVGQVVMVF9DVE9SCWdm Y19vbXBfY2xhdXNlX2RlZmF1bHRfY3RvcgorQEAgLTExODQsNSArMTE4NywxNSBAQCBnZmNfaW5p dF9idWlsdGluX2Z1bmN0aW9ucyAodm9pZCkKKyAjdW5kZWYgREVGSU5FX01BVEhfQlVJTFRJTl9D CisgI3VuZGVmIERFRklORV9NQVRIX0JVSUxUSU4KKyAKKytzdGF0aWMgdm9pZAorK2dmY19pbml0 X3RzICh2b2lkKQorK3sKKysgIHRyZWVfY29udGFpbnNfc3RydWN0W05BTUVTUEFDRV9ERUNMXVtU U19ERUNMX05PTl9DT01NT05dID0gMTsKKysgIHRyZWVfY29udGFpbnNfc3RydWN0W05BTUVTUEFD RV9ERUNMXVtUU19ERUNMX1dJVEhfVklTXSA9IDE7CisrICB0cmVlX2NvbnRhaW5zX3N0cnVjdFtO QU1FU1BBQ0VfREVDTF1bVFNfREVDTF9XUlRMXSA9IDE7CisrICB0cmVlX2NvbnRhaW5zX3N0cnVj dFtOQU1FU1BBQ0VfREVDTF1bVFNfREVDTF9DT01NT05dID0gMTsKKysgIHRyZWVfY29udGFpbnNf c3RydWN0W05BTUVTUEFDRV9ERUNMXVtUU19ERUNMX01JTklNQUxdID0gMTsKKyt9CisrCisgI2lu Y2x1ZGUgImd0LWZvcnRyYW4tZjk1LWxhbmcuaCIKKyAjaW5jbHVkZSAiZ3R5cGUtZm9ydHJhbi5o IgorLS0tIGdjYy9mb3J0cmFuL3RyYW5zLmMuamoJMjAwOC0wOC0yMSAxMDoxOTo0OS4wMDAwMDAw MDAgKzAyMDAKKysrKyBnY2MvZm9ydHJhbi90cmFucy5jCTIwMDgtMDgtMjEgMTA6MjE6MzAuMDAw MDAwMDAwICswMjAwCitAQCAtMTIwOSw2ICsxMjA5LDE5IEBAIHZvaWQKKyBnZmNfZ2VuZXJhdGVf bW9kdWxlX2NvZGUgKGdmY19uYW1lc3BhY2UgKiBucykKKyB7CisgICBnZmNfbmFtZXNwYWNlICpu OworKyAgc3RydWN0IG1vZHVsZV9odGFiX2VudHJ5ICplbnRyeTsKKysKKysgIGdjY19hc3NlcnQg KG5zLT5wcm9jX25hbWUtPmJhY2tlbmRfZGVjbCA9PSBOVUxMKTsKKysgIG5zLT5wcm9jX25hbWUt PmJhY2tlbmRfZGVjbAorKyAgICA9IGJ1aWxkX2RlY2wgKE5BTUVTUEFDRV9ERUNMLCBnZXRfaWRl bnRpZmllciAobnMtPnByb2NfbmFtZS0+bmFtZSksCisrCQkgIHZvaWRfdHlwZV9ub2RlKTsKKysg IGdmY19zZXRfZGVjbF9sb2NhdGlvbiAobnMtPnByb2NfbmFtZS0+YmFja2VuZF9kZWNsLAorKwkJ CSAmbnMtPnByb2NfbmFtZS0+ZGVjbGFyZWRfYXQpOworKyAgZW50cnkgPSBnZmNfZmluZF9tb2R1 bGUgKG5zLT5wcm9jX25hbWUtPm5hbWUpOworKyAgaWYgKGVudHJ5LT5uYW1lc3BhY2VfZGVjbCkK KysgICAgLyogQnVnZ3kgc291cmNlY29kZSwgdXNpbmcgYSBtb2R1bGUgYmVmb3JlIGRlZmluaW5n IGl0PyAgKi8KKysgICAgaHRhYl9lbXB0eSAoZW50cnktPmRlY2xzKTsKKysgIGVudHJ5LT5uYW1l c3BhY2VfZGVjbCA9IG5zLT5wcm9jX25hbWUtPmJhY2tlbmRfZGVjbDsKKyAKKyAgIGdmY19nZW5l cmF0ZV9tb2R1bGVfdmFycyAobnMpOworIAorQEAgLTEyMTYsMTAgKzEyMjksMjEgQEAgZ2ZjX2dl bmVyYXRlX21vZHVsZV9jb2RlIChnZmNfbmFtZXNwYWNlIAorICAgICAgc2libGluZyBjYWxscy4g ICovCisgICBmb3IgKG4gPSBucy0+Y29udGFpbmVkOyBuOyBuID0gbi0+c2libGluZykKKyAgICAg eworKyAgICAgIGdmY19lbnRyeV9saXN0ICplbDsKKysKKyAgICAgICBpZiAoIW4tPnByb2NfbmFt ZSkKKyAgICAgICAgIGNvbnRpbnVlOworIAorICAgICAgIGdmY19jcmVhdGVfZnVuY3Rpb25fZGVj bCAobik7CisrICAgICAgZ2NjX2Fzc2VydCAoREVDTF9DT05URVhUIChuLT5wcm9jX25hbWUtPmJh Y2tlbmRfZGVjbCkgPT0gTlVMTF9UUkVFKTsKKysgICAgICBERUNMX0NPTlRFWFQgKG4tPnByb2Nf bmFtZS0+YmFja2VuZF9kZWNsKSA9IG5zLT5wcm9jX25hbWUtPmJhY2tlbmRfZGVjbDsKKysgICAg ICBnZmNfbW9kdWxlX2FkZF9kZWNsIChlbnRyeSwgbi0+cHJvY19uYW1lLT5iYWNrZW5kX2RlY2wp OworKyAgICAgIGZvciAoZWwgPSBucy0+ZW50cmllczsgZWw7IGVsID0gZWwtPm5leHQpCisrCXsK KysJICBnY2NfYXNzZXJ0IChERUNMX0NPTlRFWFQgKGVsLT5zeW0tPmJhY2tlbmRfZGVjbCkgPT0g TlVMTF9UUkVFKTsKKysJICBERUNMX0NPTlRFWFQgKGVsLT5zeW0tPmJhY2tlbmRfZGVjbCkgPSBu cy0+cHJvY19uYW1lLT5iYWNrZW5kX2RlY2w7CisrCSAgZ2ZjX21vZHVsZV9hZGRfZGVjbCAoZW50 cnksIGVsLT5zeW0tPmJhY2tlbmRfZGVjbCk7CisrCX0KKyAgICAgfQorIAorICAgZm9yIChuID0g bnMtPmNvbnRhaW5lZDsgbjsgbiA9IG4tPnNpYmxpbmcpCistLS0gZ2NjL2ZvcnRyYW4vbW9kdWxl LmMuamoJMjAwOC0wOC0yMSAxMDoxOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvZm9ydHJh bi9tb2R1bGUuYwkyMDA4LTA4LTIxIDEwOjIxOjMwLjAwMDAwMDAwMCArMDIwMAorQEAgLTE2MSwy MCArMTYxLDYgQEAgcG9pbnRlcl9pbmZvOworICNkZWZpbmUgZ2ZjX2dldF9wb2ludGVyX2luZm8o KSBnZmNfZ2V0bWVtKHNpemVvZihwb2ludGVyX2luZm8pKQorIAorIAorLS8qIExpc3RzIG9mIHJl bmFtZSBpbmZvIGZvciB0aGUgVVNFIHN0YXRlbWVudC4gICovCistCistdHlwZWRlZiBzdHJ1Y3Qg Z2ZjX3VzZV9yZW5hbWUKKy17CistICBjaGFyIGxvY2FsX25hbWVbR0ZDX01BWF9TWU1CT0xfTEVO ICsgMV0sIHVzZV9uYW1lW0dGQ19NQVhfU1lNQk9MX0xFTiArIDFdOworLSAgc3RydWN0IGdmY191 c2VfcmVuYW1lICpuZXh0OworLSAgaW50IGZvdW5kOworLSAgZ2ZjX2ludHJpbnNpY19vcCBvcGVy YXRvcjsKKy0gIGxvY3VzIHdoZXJlOworLX0KKy1nZmNfdXNlX3JlbmFtZTsKKy0KKy0jZGVmaW5l IGdmY19nZXRfdXNlX3JlbmFtZSgpIGdmY19nZXRtZW0oc2l6ZW9mKGdmY191c2VfcmVuYW1lKSkK Ky0KKyAvKiBMb2NhbCB2YXJpYWJsZXMgKi8KKyAKKyAvKiBUaGUgRklMRSBmb3IgdGhlIG1vZHVs ZSB3ZSdyZSByZWFkaW5nIG9yIHdyaXRpbmcuICAqLworQEAgLTQ3NDksNiArNDczNSw3IEBAIGdm Y191c2VfbW9kdWxlICh2b2lkKQorICAgZ2ZjX3N0YXRlX2RhdGEgKnA7CisgICBpbnQgYywgbGlu ZSwgc3RhcnQ7CisgICBnZmNfc3ltdHJlZSAqbW9kX3N5bXRyZWU7CisrICBnZmNfdXNlX2xpc3Qg KnVzZV9zdG10OworIAorICAgZmlsZW5hbWUgPSAoY2hhciAqKSBhbGxvY2EgKHN0cmxlbiAobW9k dWxlX25hbWUpICsgc3RybGVuIChNT0RVTEVfRVhURU5TSU9OKQorIAkJCSAgICAgICsgMSk7CitA QCAtNDg0MSw2ICs0ODI4LDMzIEBAIGdmY191c2VfbW9kdWxlICh2b2lkKQorICAgcGlfcm9vdCA9 IE5VTEw7CisgCisgICBmY2xvc2UgKG1vZHVsZV9mcCk7CisrCisrICB1c2Vfc3RtdCA9IGdmY19n ZXRfdXNlX2xpc3QgKCk7CisrICB1c2Vfc3RtdC0+bW9kdWxlX25hbWUgPSBnZmNfZ2V0X3N0cmlu ZyAobW9kdWxlX25hbWUpOworKyAgdXNlX3N0bXQtPm9ubHlfZmxhZyA9IG9ubHlfZmxhZzsKKysg IHVzZV9zdG10LT5yZW5hbWUgPSBnZmNfcmVuYW1lX2xpc3Q7CisrICBnZmNfcmVuYW1lX2xpc3Qg PSBOVUxMOworKyAgdXNlX3N0bXQtPm5leHQgPSBnZmNfY3VycmVudF9ucy0+dXNlX3N0bXRzOwor KyAgZ2ZjX2N1cnJlbnRfbnMtPnVzZV9zdG10cyA9IHVzZV9zdG10OworK30KKysKKysKKyt2b2lk CisrZ2ZjX2ZyZWVfdXNlX3N0bXRzIChnZmNfdXNlX2xpc3QgKnVzZV9zdG10cykKKyt7CisrICBn ZmNfdXNlX2xpc3QgKm5leHQ7CisrICBmb3IgKDsgdXNlX3N0bXRzOyB1c2Vfc3RtdHMgPSBuZXh0 KQorKyAgICB7CisrICAgICAgZ2ZjX3VzZV9yZW5hbWUgKm5leHRfcmVuYW1lOworKworKyAgICAg IGZvciAoOyB1c2Vfc3RtdHMtPnJlbmFtZTsgdXNlX3N0bXRzLT5yZW5hbWUgPSBuZXh0X3JlbmFt ZSkKKysJeworKwkgIG5leHRfcmVuYW1lID0gdXNlX3N0bXRzLT5yZW5hbWUtPm5leHQ7CisrCSAg Z2ZjX2ZyZWUgKHVzZV9zdG10cy0+cmVuYW1lKTsKKysJfQorKyAgICAgIG5leHQgPSB1c2Vfc3Rt dHMtPm5leHQ7CisrICAgICAgZ2ZjX2ZyZWUgKHVzZV9zdG10cyk7CisrICAgIH0KKyB9CisgCisg CistLS0gZ2NjL2ZvcnRyYW4vTWFrZS1sYW5nLmluLmpqCTIwMDgtMDgtMjEgMTA6MTk6NDkuMDAw MDAwMDAwICswMjAwCisrKysgZ2NjL2ZvcnRyYW4vTWFrZS1sYW5nLmluCTIwMDgtMDgtMjEgMTA6 MjE6MzAuMDAwMDAwMDAwICswMjAwCitAQCAtMzEwLDcgKzMxMCw3IEBAIGZvcnRyYW4vY29udmVy dC5vOiAkKEdGT1JUUkFOX1RSQU5TX0RFUFMKKyBmb3J0cmFuL3RyYW5zLm86ICQoR0ZPUlRSQU5f VFJBTlNfREVQUykKKyBmb3J0cmFuL3RyYW5zLWRlY2wubzogJChHRk9SVFJBTl9UUkFOU19ERVBT KSBndC1mb3J0cmFuLXRyYW5zLWRlY2wuaCBcCisgICAkKENHUkFQSF9IKSAkKFRBUkdFVF9IKSAk KEZVTkNUSU9OX0gpICQoRkxBR1NfSCkgJChSVExfSCkgJChUUkVFX0dJTVBMRV9IKSBcCistICAk KFRSRUVfRFVNUF9IKQorKyAgJChUUkVFX0RVTVBfSCkgZGVidWcuaAorIGZvcnRyYW4vdHJhbnMt dHlwZXMubzogJChHRk9SVFJBTl9UUkFOU19ERVBTKSBndC1mb3J0cmFuLXRyYW5zLXR5cGVzLmgg XAorICAgJChSRUFMX0gpIHRvcGxldi5oICQoVEFSR0VUX0gpICQoRkxBR1NfSCkgZHdhcmYyb3V0 LmgKKyBmb3J0cmFuL3RyYW5zLWNvbnN0Lm86ICQoR0ZPUlRSQU5fVFJBTlNfREVQUykKKy0tLSBn Y2MvZm9ydHJhbi9nZm9ydHJhbi5oLmpqCTIwMDgtMDgtMjEgMTA6MTk6NDkuMDAwMDAwMDAwICsw MjAwCisrKysgZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaAkyMDA4LTA4LTIxIDEwOjIxOjMwLjAwMDAw MDAwMCArMDIwMAorQEAgLTEwOTMsNiArMTA5MywzNSBAQCBnZmNfZW50cnlfbGlzdDsKKyAjZGVm aW5lIGdmY19nZXRfZW50cnlfbGlzdCgpIFwKKyAgIChnZmNfZW50cnlfbGlzdCAqKSBnZmNfZ2V0 bWVtKHNpemVvZihnZmNfZW50cnlfbGlzdCkpCisgCisrLyogTGlzdHMgb2YgcmVuYW1lIGluZm8g Zm9yIHRoZSBVU0Ugc3RhdGVtZW50LiAgKi8KKysKKyt0eXBlZGVmIHN0cnVjdCBnZmNfdXNlX3Jl bmFtZQorK3sKKysgIGNoYXIgbG9jYWxfbmFtZVtHRkNfTUFYX1NZTUJPTF9MRU4gKyAxXSwgdXNl X25hbWVbR0ZDX01BWF9TWU1CT0xfTEVOICsgMV07CisrICBzdHJ1Y3QgZ2ZjX3VzZV9yZW5hbWUg Km5leHQ7CisrICBpbnQgZm91bmQ7CisrICBnZmNfaW50cmluc2ljX29wIG9wZXJhdG9yOworKyAg bG9jdXMgd2hlcmU7CisrfQorK2dmY191c2VfcmVuYW1lOworKworKyNkZWZpbmUgZ2ZjX2dldF91 c2VfcmVuYW1lKCkgWENORVcgKGdmY191c2VfcmVuYW1lKTsKKysKKysvKiBBIGxpc3Qgb2YgYWxs IFVTRSBzdGF0ZW1lbnRzIGluIGEgbmFtZXNwYWNlLiAgKi8KKysKKyt0eXBlZGVmIHN0cnVjdCBn ZmNfdXNlX2xpc3QKKyt7CisrICBjb25zdCBjaGFyICptb2R1bGVfbmFtZTsKKysgIGludCBvbmx5 X2ZsYWc7CisrICBzdHJ1Y3QgZ2ZjX3VzZV9yZW5hbWUgKnJlbmFtZTsKKysgIC8qIE5leHQgVVNF IHN0YXRlbWVudC4gICovCisrICBzdHJ1Y3QgZ2ZjX3VzZV9saXN0ICpuZXh0OworK30KKytnZmNf dXNlX2xpc3Q7CisrCisrI2RlZmluZSBnZmNfZ2V0X3VzZV9saXN0KCkgXAorKyAgKGdmY191c2Vf bGlzdCAqKSBnZmNfZ2V0bWVtKHNpemVvZihnZmNfdXNlX2xpc3QpKQorKworIC8qIFdpdGhpbiBh IG5hbWVzcGFjZSwgc3ltYm9scyBhcmUgcG9pbnRlZCB0byBieSBzeW10cmVlIG5vZGVzIHRoYXQK KyAgICBhcmUgbGlua2VkIHRvZ2V0aGVyIGluIGEgYmFsYW5jZWQgYmluYXJ5IHRyZWUuICBUaGVy ZSBjYW4gYmUKKyAgICBzZXZlcmFsIHN5bXRyZWVzIHBvaW50aW5nIHRvIHRoZSBzYW1lIHN5bWJv bCBub2RlIHZpYSBVU0UKK0BAIC0xMTg5LDYgKzEyMTgsOSBAQCB0eXBlZGVmIHN0cnVjdCBnZmNf bmFtZXNwYWNlCisgICAvKiBBIGxpc3Qgb2YgYWxsIGFsdGVybmF0ZSBlbnRyeSBwb2ludHMgdG8g dGhpcyBwcm9jZWR1cmUgKG9yIE5VTEwpLiAgKi8KKyAgIGdmY19lbnRyeV9saXN0ICplbnRyaWVz OworIAorKyAgLyogQSBsaXN0IG9mIFVTRSBzdGF0ZW1lbnRzIGluIHRoaXMgbmFtZXNwYWNlLiAg Ki8KKysgIGdmY191c2VfbGlzdCAqdXNlX3N0bXRzOworKworICAgLyogU2V0IHRvIDEgaWYgbmFt ZXNwYWNlIGlzIGEgQkxPQ0sgREFUQSBwcm9ncmFtIHVuaXQuICAqLworICAgaW50IGlzX2Jsb2Nr X2RhdGE7CisgCitAQCAtMjM0MCw2ICsyMzcyLDcgQEAgdm9pZCBnZmNfbW9kdWxlX2luaXRfMiAo dm9pZCk7Cisgdm9pZCBnZmNfbW9kdWxlX2RvbmVfMiAodm9pZCk7Cisgdm9pZCBnZmNfZHVtcF9t b2R1bGUgKGNvbnN0IGNoYXIgKiwgaW50KTsKKyBib29sIGdmY19jaGVja19hY2Nlc3MgKGdmY19h Y2Nlc3MsIGdmY19hY2Nlc3MpOworK3ZvaWQgZ2ZjX2ZyZWVfdXNlX3N0bXRzIChnZmNfdXNlX2xp c3QgKik7CisgCisgLyogcHJpbWFyeS5jICovCisgc3ltYm9sX2F0dHJpYnV0ZSBnZmNfdmFyaWFi bGVfYXR0ciAoZ2ZjX2V4cHIgKiwgZ2ZjX3R5cGVzcGVjICopOworLS0tIGdjYy9mb3J0cmFuL3N5 bWJvbC5jLmpqCTIwMDgtMDgtMjEgMTA6MTk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2Zv cnRyYW4vc3ltYm9sLmMJMjAwOC0wOC0yMSAxMDoyMTozMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0z MDQyLDYgKzMwNDIsNyBAQCBnZmNfZnJlZV9uYW1lc3BhY2UgKGdmY19uYW1lc3BhY2UgKm5zKQor IAorICAgZ2ZjX2ZyZWVfZXF1aXYgKG5zLT5lcXVpdik7CisgICBnZmNfZnJlZV9lcXVpdl9saXN0 cyAobnMtPmVxdWl2X2xpc3RzKTsKKysgIGdmY19mcmVlX3VzZV9zdG10cyAobnMtPnVzZV9zdG10 cyk7CisgCisgICBmb3IgKGkgPSBHRkNfSU5UUklOU0lDX0JFR0lOOyBpICE9IEdGQ19JTlRSSU5T SUNfRU5EOyBpKyspCisgICAgIGdmY19mcmVlX2ludGVyZmFjZSAobnMtPm9wW2ldKTsKKy0tLSBn Y2MvZm9ydHJhbi90cmFucy10eXBlcy5jLmpqCTIwMDgtMDgtMjEgMTA6MTk6NDkuMDAwMDAwMDAw ICswMjAwCisrKysgZ2NjL2ZvcnRyYW4vdHJhbnMtdHlwZXMuYwkyMDA4LTA4LTIxIDEwOjIxOjMw LjAwMDAwMDAwMCArMDIwMAorQEAgLTE5MzQsMTIgKzE5MzQsMjMgQEAgZ2ZjX2dldF9kZXJpdmVk X3R5cGUgKGdmY19zeW1ib2wgKiBkZXJpdgorIAorICAgZ2ZjX2ZpbmlzaF90eXBlICh0eXBlbm9k ZSk7CisgICBnZmNfc2V0X2RlY2xfbG9jYXRpb24gKFRZUEVfU1RVQl9ERUNMICh0eXBlbm9kZSks ICZkZXJpdmVkLT5kZWNsYXJlZF9hdCk7CisrICBpZiAoZGVyaXZlZC0+bW9kdWxlICYmIGRlcml2 ZWQtPm5zLT5wcm9jX25hbWUtPmF0dHIuZmxhdm9yID09IEZMX01PRFVMRSkKKysgICAgeworKyAg ICAgIGlmIChkZXJpdmVkLT5ucy0+cHJvY19uYW1lLT5iYWNrZW5kX2RlY2wKKysJICAmJiBUUkVF X0NPREUgKGRlcml2ZWQtPm5zLT5wcm9jX25hbWUtPmJhY2tlbmRfZGVjbCkKKysJICAgICA9PSBO QU1FU1BBQ0VfREVDTCkKKysJeworKwkgIFRZUEVfQ09OVEVYVCAodHlwZW5vZGUpID0gZGVyaXZl ZC0+bnMtPnByb2NfbmFtZS0+YmFja2VuZF9kZWNsOworKwkgIERFQ0xfQ09OVEVYVCAoVFlQRV9T VFVCX0RFQ0wgKHR5cGVub2RlKSkKKysJICAgID0gZGVyaXZlZC0+bnMtPnByb2NfbmFtZS0+YmFj a2VuZF9kZWNsOworKwl9CisrICAgIH0KKyAKKyAgIGRlcml2ZWQtPmJhY2tlbmRfZGVjbCA9IHR5 cGVub2RlOworIAorLSAgICAvKiBBZGQgdGhpcyBiYWNrZW5kX2RlY2wgdG8gYWxsIHRoZSBvdGhl ciwgZXF1YWwgZGVyaXZlZCB0eXBlcy4gICovCistICAgIGZvciAoZHQgPSBnZmNfZGVyaXZlZF90 eXBlczsgZHQ7IGR0ID0gZHQtPm5leHQpCistICAgICAgY29weV9kdF9kZWNsc19pZmVxdWFsIChk ZXJpdmVkLCBkdC0+ZGVyaXZlZCk7CisrICAvKiBBZGQgdGhpcyBiYWNrZW5kX2RlY2wgdG8gYWxs IHRoZSBvdGhlciwgZXF1YWwgZGVyaXZlZCB0eXBlcy4gICovCisrICBmb3IgKGR0ID0gZ2ZjX2Rl cml2ZWRfdHlwZXM7IGR0OyBkdCA9IGR0LT5uZXh0KQorKyAgICBjb3B5X2R0X2RlY2xzX2lmZXF1 YWwgKGRlcml2ZWQsIGR0LT5kZXJpdmVkKTsKKyAKKyAgIHJldHVybiBkZXJpdmVkLT5iYWNrZW5k X2RlY2w7CisgfQorLS0tIGdjYy9mb3J0cmFuL3RyYW5zLmguamoJMjAwOC0wOC0yMSAxMDoxOTo0 OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvZm9ydHJhbi90cmFucy5oCTIwMDgtMDgtMjEgMTA6 MjE6MzAuMDAwMDAwMDAwICswMjAwCitAQCAtNDI5LDYgKzQyOSwxNiBAQCB2b2lkIGdmY19nZW5l cmF0ZV9ibG9ja19kYXRhIChnZmNfbmFtZXNwCisgLyogT3V0cHV0IGEgZGVjbCBmb3IgYSBtb2R1 bGUgdmFyaWFibGUuICAqLworIHZvaWQgZ2ZjX2dlbmVyYXRlX21vZHVsZV92YXJzIChnZmNfbmFt ZXNwYWNlICopOworIAorK3N0cnVjdCBtb2R1bGVfaHRhYl9lbnRyeSBHVFkoKCkpCisreworKyAg Y29uc3QgY2hhciAqbmFtZTsKKysgIHRyZWUgbmFtZXNwYWNlX2RlY2w7CisrICBodGFiX3QgR1RZ ICgocGFyYW1faXMgKHVuaW9uIHRyZWVfbm9kZSkpKSBkZWNsczsKKyt9OworKworK3N0cnVjdCBt b2R1bGVfaHRhYl9lbnRyeSAqZ2ZjX2ZpbmRfbW9kdWxlIChjb25zdCBjaGFyICopOworK3ZvaWQg Z2ZjX21vZHVsZV9hZGRfZGVjbCAoc3RydWN0IG1vZHVsZV9odGFiX2VudHJ5ICosIHRyZWUpOwor KworIC8qIEdldCBhbmQgc2V0IHRoZSBjdXJyZW50IGxvY2F0aW9uLiAgKi8KKyB2b2lkIGdmY19z ZXRfYmFja2VuZF9sb2N1cyAobG9jdXMgKik7Cisgdm9pZCBnZmNfZ2V0X2JhY2tlbmRfbG9jdXMg KGxvY3VzICopOworLS0tIGdjYy9mb3J0cmFuL3RyYW5zLWRlY2wuYwkyMDA4LTA4LTIxIDExOjU2 OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9mb3J0cmFuL3RyYW5zLWRlY2wuYwkyMDA4LTA4 LTIyIDIxOjMxOjI4LjAwMDAwMDAwMCArMDIwMAorQEAgLTM1LDYgKzM1LDcgQEAgYWxvbmcgd2l0 aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIAorICNpbmNsdWRlICJmdW5jdGlvbi5oIgor ICNpbmNsdWRlICJmbGFncy5oIgorICNpbmNsdWRlICJjZ3JhcGguaCIKKysjaW5jbHVkZSAiZGVi dWcuaCIKKyAjaW5jbHVkZSAiZ2ZvcnRyYW4uaCIKKyAjaW5jbHVkZSAidHJhbnMuaCIKKyAjaW5j bHVkZSAidHJhbnMtdHlwZXMuaCIKK0BAIC05ODIsNyArOTgzLDExIEBAIGdmY19nZXRfc3ltYm9s X2RlY2wgKGdmY19zeW1ib2wgKiBzeW0pCisgICAgICBUaGlzIGlzIGRvbmUgaGVyZSByYXRoZXIg dGhhbiBpbiBnZmNfZmluaXNoX3Zhcl9kZWNsIGJlY2F1c2UgaXQKKyAgICAgIGlzIGRpZmZlcmVu dCBmb3Igc3RyaW5nIGxlbmd0aCB2YXJpYWJsZXMuICAqLworICAgaWYgKHN5bS0+bW9kdWxlKQor LSAgICBTRVRfREVDTF9BU1NFTUJMRVJfTkFNRSAoZGVjbCwgZ2ZjX3N5bV9tYW5nbGVkX2lkZW50 aWZpZXIgKHN5bSkpOworKyAgICB7CisrICAgICAgU0VUX0RFQ0xfQVNTRU1CTEVSX05BTUUgKGRl Y2wsIGdmY19zeW1fbWFuZ2xlZF9pZGVudGlmaWVyIChzeW0pKTsKKysgICAgICBpZiAoc3ltLT5h dHRyLnVzZV9hc3NvYykKKysJREVDTF9JR05PUkVEX1AgKGRlY2wpID0gMTsKKysgICAgfQorIAor ICAgaWYgKHN5bS0+YXR0ci5kaW1lbnNpb24pCisgICAgIHsKK0BAIC0xMjQ3LDcgKzEyNTIsOSBA QCBidWlsZF9mdW5jdGlvbl9kZWNsIChnZmNfc3ltYm9sICogc3ltKQorIAorICAgLyogQWxsb3cg b25seSBvbmUgbmVzdGluZyBsZXZlbC4gIEFsbG93IHB1YmxpYyBkZWNsYXJhdGlvbnMuICAqLwor ICAgZ2NjX2Fzc2VydCAoY3VycmVudF9mdW5jdGlvbl9kZWNsID09IE5VTExfVFJFRQorLQkgIHx8 IERFQ0xfQ09OVEVYVCAoY3VycmVudF9mdW5jdGlvbl9kZWNsKSA9PSBOVUxMX1RSRUUpOworKwkg ICAgICB8fCBERUNMX0NPTlRFWFQgKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCkgPT0gTlVMTF9UUkVF CisrCSAgICAgIHx8IFRSRUVfQ09ERSAoREVDTF9DT05URVhUIChjdXJyZW50X2Z1bmN0aW9uX2Rl Y2wpKQorKwkJID09IE5BTUVTUEFDRV9ERUNMKTsKKyAKKyAgIHR5cGUgPSBnZmNfZ2V0X2Z1bmN0 aW9uX3R5cGUgKHN5bSk7CisgICBmbmRlY2wgPSBidWlsZF9kZWNsIChGVU5DVElPTl9ERUNMLCBn ZmNfc3ltX2lkZW50aWZpZXIgKHN5bSksIHR5cGUpOworQEAgLTI3OTAsNiArMjc5Nyw4OCBAQCBn ZmNfdHJhbnNfZGVmZXJyZWRfdmFycyAoZ2ZjX3N5bWJvbCAqIHByCisgICByZXR1cm4gZ2ZjX2Zp bmlzaF9ibG9jayAoJmJvZHkpOworIH0KKyAKKytzdGF0aWMgR1RZICgocGFyYW1faXMgKHN0cnVj dCBtb2R1bGVfaHRhYl9lbnRyeSkpKSBodGFiX3QgbW9kdWxlX2h0YWI7CisrCisrLyogSGFzaCBh bmQgZXF1YWxpdHkgZnVuY3Rpb25zIGZvciBtb2R1bGVfaHRhYi4gICovCisrCisrc3RhdGljIGhh c2h2YWxfdAorK21vZHVsZV9odGFiX2RvX2hhc2ggKGNvbnN0IHZvaWQgKngpCisreworKyAgcmV0 dXJuIGh0YWJfaGFzaF9zdHJpbmcgKCgoY29uc3Qgc3RydWN0IG1vZHVsZV9odGFiX2VudHJ5ICop eCktPm5hbWUpOworK30KKysKKytzdGF0aWMgaW50CisrbW9kdWxlX2h0YWJfZXEgKGNvbnN0IHZv aWQgKngxLCBjb25zdCB2b2lkICp4MikKKyt7CisrICByZXR1cm4gc3RyY21wICgoKChjb25zdCBz dHJ1Y3QgbW9kdWxlX2h0YWJfZW50cnkgKil4MSktPm5hbWUpLAorKwkJIChjb25zdCBjaGFyICop eDIpID09IDA7CisrfQorKworKy8qIEhhc2ggYW5kIGVxdWFsaXR5IGZ1bmN0aW9ucyBmb3IgbW9k dWxlX2h0YWIncyBkZWNscy4gICovCisrCisrc3RhdGljIGhhc2h2YWxfdAorK21vZHVsZV9odGFi X2RlY2xzX2hhc2ggKGNvbnN0IHZvaWQgKngpCisreworKyAgY29uc3RfdHJlZSB0ID0gKGNvbnN0 X3RyZWUpIHg7CisrICBjb25zdF90cmVlIG4gPSBERUNMX05BTUUgKHQpOworKyAgaWYgKG4gPT0g TlVMTF9UUkVFKQorKyAgICBuID0gVFlQRV9OQU1FIChUUkVFX1RZUEUgKHQpKTsKKysgIHJldHVy biBodGFiX2hhc2hfc3RyaW5nIChJREVOVElGSUVSX1BPSU5URVIgKG4pKTsKKyt9CisrCisrc3Rh dGljIGludAorK21vZHVsZV9odGFiX2RlY2xzX2VxIChjb25zdCB2b2lkICp4MSwgY29uc3Qgdm9p ZCAqeDIpCisreworKyAgY29uc3RfdHJlZSB0MSA9IChjb25zdF90cmVlKSB4MTsKKysgIGNvbnN0 X3RyZWUgbjEgPSBERUNMX05BTUUgKHQxKTsKKysgIGlmIChuMSA9PSBOVUxMX1RSRUUpCisrICAg IG4xID0gVFlQRV9OQU1FIChUUkVFX1RZUEUgKHQxKSk7CisrICByZXR1cm4gc3RyY21wIChJREVO VElGSUVSX1BPSU5URVIgKG4xKSwgKGNvbnN0IGNoYXIgKikgeDIpID09IDA7CisrfQorKworK3N0 cnVjdCBtb2R1bGVfaHRhYl9lbnRyeSAqCisrZ2ZjX2ZpbmRfbW9kdWxlIChjb25zdCBjaGFyICpu YW1lKQorK3sKKysgIHZvaWQgKipzbG90OworKworKyAgaWYgKCEgbW9kdWxlX2h0YWIpCisrICAg IG1vZHVsZV9odGFiID0gaHRhYl9jcmVhdGVfZ2djICgxMCwgbW9kdWxlX2h0YWJfZG9faGFzaCwK KysJCQkJICAgbW9kdWxlX2h0YWJfZXEsIE5VTEwpOworKworKyAgc2xvdCA9IGh0YWJfZmluZF9z bG90X3dpdGhfaGFzaCAobW9kdWxlX2h0YWIsIG5hbWUsCisrCQkJCSAgIGh0YWJfaGFzaF9zdHJp bmcgKG5hbWUpLCBJTlNFUlQpOworKyAgaWYgKCpzbG90ID09IE5VTEwpCisrICAgIHsKKysgICAg ICBzdHJ1Y3QgbW9kdWxlX2h0YWJfZW50cnkgKmVudHJ5ID0gR0dDX0NORVcgKHN0cnVjdCBtb2R1 bGVfaHRhYl9lbnRyeSk7CisrCisrICAgICAgZW50cnktPm5hbWUgPSBnZmNfZ2V0X3N0cmluZyAo bmFtZSk7CisrICAgICAgZW50cnktPmRlY2xzID0gaHRhYl9jcmVhdGVfZ2djICgxMCwgbW9kdWxl X2h0YWJfZGVjbHNfaGFzaCwKKysJCQkJICAgICAgbW9kdWxlX2h0YWJfZGVjbHNfZXEsIE5VTEwp OworKyAgICAgICpzbG90ID0gKHZvaWQgKikgZW50cnk7CisrICAgIH0KKysgIHJldHVybiAoc3Ry dWN0IG1vZHVsZV9odGFiX2VudHJ5ICopICpzbG90OworK30KKysKKyt2b2lkCisrZ2ZjX21vZHVs ZV9hZGRfZGVjbCAoc3RydWN0IG1vZHVsZV9odGFiX2VudHJ5ICplbnRyeSwgdHJlZSBkZWNsKQor K3sKKysgIHZvaWQgKipzbG90OworKyAgY29uc3QgY2hhciAqbmFtZTsKKysKKysgIGlmIChERUNM X05BTUUgKGRlY2wpKQorKyAgICBuYW1lID0gSURFTlRJRklFUl9QT0lOVEVSIChERUNMX05BTUUg KGRlY2wpKTsKKysgIGVsc2UKKysgICAgeworKyAgICAgIGdjY19hc3NlcnQgKFRSRUVfQ09ERSAo ZGVjbCkgPT0gVFlQRV9ERUNMKTsKKysgICAgICBuYW1lID0gSURFTlRJRklFUl9QT0lOVEVSIChU WVBFX05BTUUgKFRSRUVfVFlQRSAoZGVjbCkpKTsKKysgICAgfQorKyAgc2xvdCA9IGh0YWJfZmlu ZF9zbG90X3dpdGhfaGFzaCAoZW50cnktPmRlY2xzLCBuYW1lLAorKwkJCQkgICBodGFiX2hhc2hf c3RyaW5nIChuYW1lKSwgSU5TRVJUKTsKKysgIGlmICgqc2xvdCA9PSBOVUxMKQorKyAgICAqc2xv dCA9ICh2b2lkICopIGRlY2w7CisrfQorKworK3N0YXRpYyBzdHJ1Y3QgbW9kdWxlX2h0YWJfZW50 cnkgKmN1cl9tb2R1bGU7CisgCisgLyogT3V0cHV0IGFuIGluaXRpYWxpemVkIGRlY2wgZm9yIGEg bW9kdWxlIHZhcmlhYmxlLiAgKi8KKyAKK0BAIC0yODA5LDYgKzI4OTgsMjIgQEAgZ2ZjX2NyZWF0 ZV9tb2R1bGVfdmFyaWFibGUgKGdmY19zeW1ib2wgKgorICAgICAgICYmIHN5bS0+dHMudHlwZSA9 PSBCVF9ERVJJVkVEKQorICAgICBzeW0tPmJhY2tlbmRfZGVjbCA9IGdmY190eXBlbm9kZV9mb3Jf c3BlYyAoJihzeW0tPnRzKSk7CisgCisrICBpZiAoc3ltLT5hdHRyLmZsYXZvciA9PSBGTF9ERVJJ VkVECisrICAgICAgJiYgc3ltLT5iYWNrZW5kX2RlY2wKKysgICAgICAmJiBUUkVFX0NPREUgKHN5 bS0+YmFja2VuZF9kZWNsKSA9PSBSRUNPUkRfVFlQRSkKKysgICAgeworKyAgICAgIGRlY2wgPSBz eW0tPmJhY2tlbmRfZGVjbDsKKysgICAgICBnY2NfYXNzZXJ0IChzeW0tPm5zLT5wcm9jX25hbWUt PmF0dHIuZmxhdm9yID09IEZMX01PRFVMRSk7CisrICAgICAgZ2NjX2Fzc2VydCAoVFlQRV9DT05U RVhUIChkZWNsKSA9PSBOVUxMX1RSRUUKKysJCSAgfHwgVFlQRV9DT05URVhUIChkZWNsKSA9PSBz eW0tPm5zLT5wcm9jX25hbWUtPmJhY2tlbmRfZGVjbCk7CisrICAgICAgZ2NjX2Fzc2VydCAoREVD TF9DT05URVhUIChUWVBFX1NUVUJfREVDTCAoZGVjbCkpID09IE5VTExfVFJFRQorKwkJICB8fCBE RUNMX0NPTlRFWFQgKFRZUEVfU1RVQl9ERUNMIChkZWNsKSkKKysJCSAgICAgPT0gc3ltLT5ucy0+ cHJvY19uYW1lLT5iYWNrZW5kX2RlY2wpOworKyAgICAgIFRZUEVfQ09OVEVYVCAoZGVjbCkgPSBz eW0tPm5zLT5wcm9jX25hbWUtPmJhY2tlbmRfZGVjbDsKKysgICAgICBERUNMX0NPTlRFWFQgKFRZ UEVfU1RVQl9ERUNMIChkZWNsKSkgPSBzeW0tPm5zLT5wcm9jX25hbWUtPmJhY2tlbmRfZGVjbDsK KysgICAgICBnZmNfbW9kdWxlX2FkZF9kZWNsIChjdXJfbW9kdWxlLCBUWVBFX1NUVUJfREVDTCAo ZGVjbCkpOworKyAgICB9CisrCisgICAvKiBPbmx5IG91dHB1dCB2YXJpYWJsZXMgYW5kIGFycmF5 IHZhbHVlZCwgb3IgZGVyaXZlZCB0eXBlLAorICAgICAgcGFyYW1ldGVycy4gICovCisgICBpZiAo c3ltLT5hdHRyLmZsYXZvciAhPSBGTF9WQVJJQUJMRQorQEAgLTI4MTYsNiArMjkyMSwxNSBAQCBn ZmNfY3JlYXRlX21vZHVsZV92YXJpYWJsZSAoZ2ZjX3N5bWJvbCAqCisgCSAgICAgICAmJiAoc3lt LT5hdHRyLmRpbWVuc2lvbiB8fCBzeW0tPnRzLnR5cGUgPT0gQlRfREVSSVZFRCkpKQorICAgICBy ZXR1cm47CisgCisrICBpZiAoKHN5bS0+YXR0ci5pbl9jb21tb24gfHwgc3ltLT5hdHRyLmluX2Vx dWl2YWxlbmNlKSAmJiBzeW0tPmJhY2tlbmRfZGVjbCkKKysgICAgeworKyAgICAgIGRlY2wgPSBz eW0tPmJhY2tlbmRfZGVjbDsKKysgICAgICBnY2NfYXNzZXJ0IChERUNMX0NPTlRFWFQgKGRlY2wp ID09IE5VTExfVFJFRSk7CisrICAgICAgZ2NjX2Fzc2VydCAoc3ltLT5ucy0+cHJvY19uYW1lLT5h dHRyLmZsYXZvciA9PSBGTF9NT0RVTEUpOworKyAgICAgIERFQ0xfQ09OVEVYVCAoZGVjbCkgPSBz eW0tPm5zLT5wcm9jX25hbWUtPmJhY2tlbmRfZGVjbDsKKysgICAgICBnZmNfbW9kdWxlX2FkZF9k ZWNsIChjdXJfbW9kdWxlLCBkZWNsKTsKKysgICAgfQorKworICAgLyogRG9uJ3QgZ2VuZXJhdGUg dmFyaWFibGVzIGZyb20gb3RoZXIgbW9kdWxlcy4gVmFyaWFibGVzIGZyb20KKyAgICAgIENPTU1P TnMgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiBnZW5lcmF0ZWQuICAqLworICAgaWYgKHN5bS0+YXR0 ci51c2VfYXNzb2MgfHwgc3ltLT5hdHRyLmluX2NvbW1vbikKK0BAIC0yODIzLDggKzI5MzcsOCBA QCBnZmNfY3JlYXRlX21vZHVsZV92YXJpYWJsZSAoZ2ZjX3N5bWJvbCAqCisgCisgICAvKiBFcXVp dmFsZW5jZWQgdmFyaWFibGVzIGFycml2ZSBoZXJlIGFmdGVyIGNyZWF0aW9uLiAgKi8KKyAgIGlm IChzeW0tPmJhY2tlbmRfZGVjbAorLQkmJiAoc3ltLT5lcXVpdl9idWlsdCB8fCBzeW0tPmF0dHIu aW5fZXF1aXZhbGVuY2UpKQorLSAgICAgIHJldHVybjsKKysgICAgICAmJiAoc3ltLT5lcXVpdl9i dWlsdCB8fCBzeW0tPmF0dHIuaW5fZXF1aXZhbGVuY2UpKQorKyAgICByZXR1cm47CisgCisgICBp ZiAoc3ltLT5iYWNrZW5kX2RlY2wpCisgICAgIGludGVybmFsX2Vycm9yICgiYmFja2VuZCBkZWNs IGZvciBtb2R1bGUgdmFyaWFibGUgJXMgYWxyZWFkeSBleGlzdHMiLAorQEAgLTI4MzcsNyArMjk1 MSwxMSBAQCBnZmNfY3JlYXRlX21vZHVsZV92YXJpYWJsZSAoZ2ZjX3N5bWJvbCAqCisgCisgICAv KiBDcmVhdGUgdGhlIHZhcmlhYmxlLiAgKi8KKyAgIHB1c2hkZWNsIChkZWNsKTsKKysgIGdjY19h c3NlcnQgKERFQ0xfQ09OVEVYVCAoZGVjbCkgPT0gTlVMTF9UUkVFKTsKKysgIGdjY19hc3NlcnQg KHN5bS0+bnMtPnByb2NfbmFtZS0+YXR0ci5mbGF2b3IgPT0gRkxfTU9EVUxFKTsKKysgIERFQ0xf Q09OVEVYVCAoZGVjbCkgPSBzeW0tPm5zLT5wcm9jX25hbWUtPmJhY2tlbmRfZGVjbDsKKyAgIHJl c3Rfb2ZfZGVjbF9jb21waWxhdGlvbiAoZGVjbCwgMSwgMCk7CisrICBnZmNfbW9kdWxlX2FkZF9k ZWNsIChjdXJfbW9kdWxlLCBkZWNsKTsKKyAKKyAgIC8qIEFsc28gYWRkIGxlbmd0aCBvZiBzdHJp bmdzLiAgKi8KKyAgIGlmIChzeW0tPnRzLnR5cGUgPT0gQlRfQ0hBUkFDVEVSKQorQEAgLTI4NjAs NiArMjk3OCw3IEBAIHZvaWQKKyBnZmNfZ2VuZXJhdGVfbW9kdWxlX3ZhcnMgKGdmY19uYW1lc3Bh Y2UgKiBucykKKyB7CisgICBtb2R1bGVfbmFtZXNwYWNlID0gbnM7CisrICBjdXJfbW9kdWxlID0g Z2ZjX2ZpbmRfbW9kdWxlIChucy0+cHJvY19uYW1lLT5uYW1lKTsKKyAKKyAgIC8qIENoZWNrIGlm IHRoZSBmcm9udGVuZCBsZWZ0IHRoZSBuYW1lc3BhY2UgaW4gYSByZWFzb25hYmxlIHN0YXRlLiAg Ki8KKyAgIGdjY19hc3NlcnQgKG5zLT5wcm9jX25hbWUgJiYgIW5zLT5wcm9jX25hbWUtPnRsaW5r KTsKK0BAIC0yODY5LDYgKzI5ODgsNzkgQEAgZ2ZjX2dlbmVyYXRlX21vZHVsZV92YXJzIChnZmNf bmFtZXNwYWNlIAorIAorICAgLyogQ3JlYXRlIGRlY2xzIGZvciBhbGwgdGhlIG1vZHVsZSB2YXJp YWJsZXMuICAqLworICAgZ2ZjX3RyYXZlcnNlX25zIChucywgZ2ZjX2NyZWF0ZV9tb2R1bGVfdmFy aWFibGUpOworKworKyAgY3VyX21vZHVsZSA9IE5VTEw7CisrfQorKworK3N0YXRpYyB2b2lkCisr Z2ZjX3RyYW5zX3VzZV9zdG10cyAoZ2ZjX25hbWVzcGFjZSAqIG5zKQorK3sKKysgIGdmY191c2Vf bGlzdCAqdXNlX3N0bXQ7CisrICBmb3IgKHVzZV9zdG10ID0gbnMtPnVzZV9zdG10czsgdXNlX3N0 bXQ7IHVzZV9zdG10ID0gdXNlX3N0bXQtPm5leHQpCisrICAgIHsKKysgICAgICBzdHJ1Y3QgbW9k dWxlX2h0YWJfZW50cnkgKmVudHJ5CisrCT0gZ2ZjX2ZpbmRfbW9kdWxlICh1c2Vfc3RtdC0+bW9k dWxlX25hbWUpOworKyAgICAgIGdmY191c2VfcmVuYW1lICpyZW50OworKworKyAgICAgIGlmIChl bnRyeS0+bmFtZXNwYWNlX2RlY2wgPT0gTlVMTCkKKysJeworKwkgIGVudHJ5LT5uYW1lc3BhY2Vf ZGVjbAorKwkgICAgPSBidWlsZF9kZWNsIChOQU1FU1BBQ0VfREVDTCwKKysJCQkgIGdldF9pZGVu dGlmaWVyICh1c2Vfc3RtdC0+bW9kdWxlX25hbWUpLAorKwkJCSAgdm9pZF90eXBlX25vZGUpOwor KwkgIERFQ0xfRVhURVJOQUwgKGVudHJ5LT5uYW1lc3BhY2VfZGVjbCkgPSAxOworKwl9CisrICAg ICAgaWYgKCF1c2Vfc3RtdC0+b25seV9mbGFnKQorKwkoKmRlYnVnX2hvb2tzLT5pbXBvcnRlZF9t b2R1bGVfb3JfZGVjbCkgKGVudHJ5LT5uYW1lc3BhY2VfZGVjbCwKKysJCQkJCQkgTlVMTF9UUkVF LAorKwkJCQkJCSBucy0+cHJvY19uYW1lLT5iYWNrZW5kX2RlY2wsCisrCQkJCQkJIGZhbHNlKTsK KysgICAgICBmb3IgKHJlbnQgPSB1c2Vfc3RtdC0+cmVuYW1lOyByZW50OyByZW50ID0gcmVudC0+ bmV4dCkKKysJeworKwkgIHRyZWUgZGVjbCwgbG9jYWxfbmFtZTsKKysJICB2b2lkICoqc2xvdDsK KysKKysJICBpZiAocmVudC0+b3BlcmF0b3IgIT0gSU5UUklOU0lDX05PTkUpCisrCSAgICBjb250 aW51ZTsKKysKKysJICBzbG90ID0gaHRhYl9maW5kX3Nsb3Rfd2l0aF9oYXNoIChlbnRyeS0+ZGVj bHMsIHJlbnQtPnVzZV9uYW1lLAorKwkJCQkJICAgaHRhYl9oYXNoX3N0cmluZyAocmVudC0+dXNl X25hbWUpLAorKwkJCQkJICAgSU5TRVJUKTsKKysJICBpZiAoKnNsb3QgPT0gTlVMTCkKKysJICAg IHsKKysJICAgICAgZ2ZjX3N5bXRyZWUgKnN0OworKworKwkgICAgICBzdCA9IGdmY19maW5kX3N5 bXRyZWUgKG5zLT5zeW1fcm9vdCwKKysJCQkJICAgICByZW50LT5sb2NhbF9uYW1lWzBdCisrCQkJ CSAgICAgPyByZW50LT5sb2NhbF9uYW1lIDogcmVudC0+dXNlX25hbWUpOworKwkgICAgICBnY2Nf YXNzZXJ0IChzdCAmJiBzdC0+bi5zeW0tPmF0dHIudXNlX2Fzc29jKTsKKysJICAgICAgaWYgKHN0 LT5uLnN5bS0+YmFja2VuZF9kZWNsICYmIERFQ0xfUCAoc3QtPm4uc3ltLT5iYWNrZW5kX2RlY2wp KQorKwkJeworKwkJICBnY2NfYXNzZXJ0IChERUNMX0VYVEVSTkFMIChlbnRyeS0+bmFtZXNwYWNl X2RlY2wpKTsKKysJCSAgZGVjbCA9IGNvcHlfbm9kZSAoc3QtPm4uc3ltLT5iYWNrZW5kX2RlY2wp OworKwkJICBERUNMX0NPTlRFWFQgKGRlY2wpID0gZW50cnktPm5hbWVzcGFjZV9kZWNsOworKwkJ ICBERUNMX0VYVEVSTkFMIChkZWNsKSA9IDE7CisrCQkgIERFQ0xfSUdOT1JFRF9QIChkZWNsKSA9 IDA7CisrCQkgIERFQ0xfSU5JVElBTCAoZGVjbCkgPSBOVUxMX1RSRUU7CisrCQl9CisrCSAgICAg IGVsc2UKKysJCXsKKysJCSAgKnNsb3QgPSBlcnJvcl9tYXJrX25vZGU7CisrCQkgIGh0YWJfY2xl YXJfc2xvdCAoZW50cnktPmRlY2xzLCBzbG90KTsKKysJCSAgY29udGludWU7CisrCQl9CisrCSAg ICAgICpzbG90ID0gZGVjbDsKKysJICAgIH0KKysJICBkZWNsID0gKHRyZWUpICpzbG90OworKwkg IGlmIChyZW50LT5sb2NhbF9uYW1lWzBdKQorKwkgICAgbG9jYWxfbmFtZSA9IGdldF9pZGVudGlm aWVyIChyZW50LT5sb2NhbF9uYW1lKTsKKysJICBlbHNlCisrCSAgICBsb2NhbF9uYW1lID0gTlVM TF9UUkVFOworKwkgICgqZGVidWdfaG9va3MtPmltcG9ydGVkX21vZHVsZV9vcl9kZWNsKSAoZGVj bCwgbG9jYWxfbmFtZSwKKysJCQkJCQkgICBucy0+cHJvY19uYW1lLT5iYWNrZW5kX2RlY2wsCisr CQkJCQkJICAgIXVzZV9zdG10LT5vbmx5X2ZsYWcpOworKwl9CisrICAgIH0KKyB9CisgCisgc3Rh dGljIHZvaWQKK0BAIC0zMzczLDYgKzM1NjcsOCBAQCBnZmNfZ2VuZXJhdGVfZnVuY3Rpb25fY29k ZSAoZ2ZjX25hbWVzcGFjCisgICAgICAgZ2ZjX2dpbXBsaWZ5X2Z1bmN0aW9uIChmbmRlY2wpOwor ICAgICAgIGNncmFwaF9maW5hbGl6ZV9mdW5jdGlvbiAoZm5kZWNsLCBmYWxzZSk7CisgICAgIH0K KysKKysgIGdmY190cmFuc191c2Vfc3RtdHMgKG5zKTsKKyB9CisgCisgdm9pZAorQEAgLTM0NjQs NiArMzY2MCw3IEBAIGdmY19nZW5lcmF0ZV9ibG9ja19kYXRhIChnZmNfbmFtZXNwYWNlICoKKyAg IGRlY2wgPSBidWlsZF9kZWNsIChWQVJfREVDTCwgaWQsIGdmY19hcnJheV9pbmRleF90eXBlKTsK KyAgIFRSRUVfUFVCTElDIChkZWNsKSA9IDE7CisgICBUUkVFX1NUQVRJQyAoZGVjbCkgPSAxOwor KyAgREVDTF9JR05PUkVEX1AgKGRlY2wpID0gMTsKKyAKKyAgIHB1c2hkZWNsIChkZWNsKTsKKyAg IHJlc3Rfb2ZfZGVjbF9jb21waWxhdGlvbiAoZGVjbCwgMSwgMCk7CistLS0gZ2NjL2ZvcnRyYW4v dHJhbnMtY29tbW9uLmMuamoJMjAwOC0wOC0yMSAxMDoxOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysr KyBnY2MvZm9ydHJhbi90cmFucy1jb21tb24uYwkyMDA4LTA4LTIxIDEwOjIxOjMwLjAwMDAwMDAw MCArMDIwMAorQEAgLTQxNiw2ICs0MTYsNyBAQCBidWlsZF9jb21tb25fZGVjbCAoZ2ZjX2NvbW1v bl9oZWFkICpjb20sCisgICAgICAgU0VUX0RFQ0xfQVNTRU1CTEVSX05BTUUgKGRlY2wsIGdmY19z eW1fbWFuZ2xlZF9jb21tb25faWQgKGNvbSkpOworICAgICAgIFRSRUVfUFVCTElDIChkZWNsKSA9 IDE7CisgICAgICAgVFJFRV9TVEFUSUMgKGRlY2wpID0gMTsKKysgICAgICBERUNMX0lHTk9SRURf UCAoZGVjbCkgPSAxOworICAgICAgIGlmICghY29tLT5pc19iaW5kX2MpCisgCURFQ0xfQUxJR04g KGRlY2wpID0gQklHR0VTVF9BTElHTk1FTlQ7CisgICAgICAgZWxzZQorQEAgLTY4MCw2ICs2ODEs OCBAQCBjcmVhdGVfY29tbW9uIChnZmNfY29tbW9uX2hlYWQgKmNvbSwgc2VnCisgICAgICAgVFJF RV9QVUJMSUMgKHZhcl9kZWNsKSA9IFRSRUVfUFVCTElDIChkZWNsKTsKKyAgICAgICBUUkVFX1NU QVRJQyAodmFyX2RlY2wpID0gVFJFRV9TVEFUSUMgKGRlY2wpOworICAgICAgIFRSRUVfVVNFRCAo dmFyX2RlY2wpID0gVFJFRV9VU0VEIChkZWNsKTsKKysgICAgICBpZiAocy0+c3ltLT5hdHRyLnVz ZV9hc3NvYykKKysJREVDTF9JR05PUkVEX1AgKHZhcl9kZWNsKSA9IDE7CisgICAgICAgaWYgKHMt PnN5bS0+YXR0ci50YXJnZXQpCisgCVRSRUVfQUREUkVTU0FCTEUgKHZhcl9kZWNsKSA9IDE7Cisg ICAgICAgLyogVGhpcyBpcyBhIGZha2UgdmFyaWFibGUganVzdCBmb3IgZGVidWdnaW5nIHB1cnBv c2VzLiAgKi8KKy0tLSBnY2MvY3AvbmFtZS1sb29rdXAuYy5qagkyMDA4LTA4LTIxIDEwOjE5OjUy LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9jcC9uYW1lLWxvb2t1cC5jCTIwMDgtMDgtMjEgMTA6 MjE6MzAuMDAwMDAwMDAwICswMjAwCitAQCAtMzQwMSw3ICszNDAxLDggQEAgZG9fdXNpbmdfZGly ZWN0aXZlICh0cmVlIG5hbWVzcGFjZSkKKyAKKyAgIC8qIEVtaXQgZGVidWdnaW5nIGluZm8uICAq LworICAgaWYgKCFwcm9jZXNzaW5nX3RlbXBsYXRlX2RlY2wpCistICAgICgqZGVidWdfaG9va3Mt PmltcG9ydGVkX21vZHVsZV9vcl9kZWNsKSAobmFtZXNwYWNlLCBjb250ZXh0KTsKKysgICAgKCpk ZWJ1Z19ob29rcy0+aW1wb3J0ZWRfbW9kdWxlX29yX2RlY2wpIChuYW1lc3BhY2UsIE5VTExfVFJF RSwKKysJCQkJCSAgICAgY29udGV4dCwgZmFsc2UpOworIH0KKyAKKyAvKiBEZWFsIHdpdGggYSB1 c2luZy1kaXJlY3RpdmUgc2VlbiBieSB0aGUgcGFyc2VyLiAgQ3VycmVudGx5IHdlIG9ubHkKK0BA IC01MjM0LDcgKzUyMzUsNyBAQCBjcF9lbWl0X2RlYnVnX2luZm9fZm9yX3VzaW5nICh0cmVlIHQs IHRyCisgICAvKiBGSVhNRTogSGFuZGxlIFRFTVBMQVRFX0RFQ0xzLiAgKi8KKyAgIGZvciAodCA9 IE9WTF9DVVJSRU5UICh0KTsgdDsgdCA9IE9WTF9ORVhUICh0KSkKKyAgICAgaWYgKFRSRUVfQ09E RSAodCkgIT0gVEVNUExBVEVfREVDTCkKKy0gICAgICAoKmRlYnVnX2hvb2tzLT5pbXBvcnRlZF9t b2R1bGVfb3JfZGVjbCkgKHQsIGNvbnRleHQpOworKyAgICAgICgqZGVidWdfaG9va3MtPmltcG9y dGVkX21vZHVsZV9vcl9kZWNsKSAodCwgTlVMTF9UUkVFLCBjb250ZXh0LCBmYWxzZSk7CisgfQor IAorICNpbmNsdWRlICJndC1jcC1uYW1lLWxvb2t1cC5oIgorLS0tIGdjYy9kZWJ1Zy5oLmpqCTIw MDgtMDgtMjEgMTA6MTk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2RlYnVnLmgJMjAwOC0w OC0yMSAxMDoyMTozMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC05OCw3ICs5OCw4IEBAIHN0cnVjdCBn Y2NfZGVidWdfaG9va3MKKyAgIHZvaWQgKCogdHlwZV9kZWNsKSAodHJlZSBkZWNsLCBpbnQgbG9j YWwpOworIAorICAgLyogRGVidWcgaW5mb3JtYXRpb24gZm9yIGltcG9ydGVkIG1vZHVsZXMgYW5k IGRlY2xhcmF0aW9ucy4gICovCistICB2b2lkICgqIGltcG9ydGVkX21vZHVsZV9vcl9kZWNsKSAo dHJlZSBkZWNsLCB0cmVlIGNvbnRleHQpOworKyAgdm9pZCAoKiBpbXBvcnRlZF9tb2R1bGVfb3Jf ZGVjbCkgKHRyZWUgZGVjbCwgdHJlZSBuYW1lLAorKwkJCQkgICAgdHJlZSBjb250ZXh0LCBib29s IGNoaWxkKTsKKyAKKyAgIC8qIERFQ0wgaXMgYW4gaW5saW5lIGZ1bmN0aW9uLCB3aG9zZSBib2R5 IGlzIHByZXNlbnQsIGJ1dCB3aGljaCBpcworICAgICAgbm90IGJlaW5nIG91dHB1dCBhdCB0aGlz IHBvaW50LiAgKi8KK0BAIC0xMzksNyArMTQwLDcgQEAgZXh0ZXJuIHZvaWQgZGVidWdfbm90aGlu Z19pbnQgKHVuc2lnbmVkIAorIGV4dGVybiB2b2lkIGRlYnVnX25vdGhpbmdfaW50X2ludCAodW5z aWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOworIGV4dGVybiB2b2lkIGRlYnVnX25vdGhpbmdfdHJl ZSAodHJlZSk7CisgZXh0ZXJuIHZvaWQgZGVidWdfbm90aGluZ190cmVlX2ludCAodHJlZSwgaW50 KTsKKy1leHRlcm4gdm9pZCBkZWJ1Z19ub3RoaW5nX3RyZWVfdHJlZSAodHJlZSwgdHJlZSk7Cisr ZXh0ZXJuIHZvaWQgZGVidWdfbm90aGluZ190cmVlX3RyZWVfdHJlZV9ib29sICh0cmVlLCB0cmVl LCB0cmVlLCBib29sKTsKKyBleHRlcm4gYm9vbCBkZWJ1Z190cnVlX2NvbnN0X3RyZWUgKGNvbnN0 X3RyZWUpOworIGV4dGVybiB2b2lkIGRlYnVnX25vdGhpbmdfcnR4IChydHgpOworIAorLS0tIGdj Yy92bXNkYmdvdXQuYy5qagkyMDA4LTA4LTIxIDEwOjE5OjQ4LjAwMDAwMDAwMCArMDIwMAorKysr IGdjYy92bXNkYmdvdXQuYwkyMDA4LTA4LTIxIDEwOjIxOjMwLjAwMDAwMDAwMCArMDIwMAorQEAg LTIwNCw3ICsyMDQsNyBAQCBjb25zdCBzdHJ1Y3QgZ2NjX2RlYnVnX2hvb2tzIHZtc2RiZ19kZWJ1 CisgICAgdm1zZGJnb3V0X2RlY2wsCisgICAgdm1zZGJnb3V0X2dsb2JhbF9kZWNsLAorICAgIGRl YnVnX25vdGhpbmdfdHJlZV9pbnQsCSAgLyogdHlwZV9kZWNsICovCistICAgZGVidWdfbm90aGlu Z190cmVlX3RyZWUsICAgICAgIC8qIGltcG9ydGVkX21vZHVsZV9vcl9kZWNsICovCisrICAgZGVi dWdfbm90aGluZ190cmVlX3RyZWVfdHJlZV9ib29sLCAvKiBpbXBvcnRlZF9tb2R1bGVfb3JfZGVj bCAqLworICAgIGRlYnVnX25vdGhpbmdfdHJlZSwJCSAgLyogZGVmZXJyZWRfaW5saW5lX2Z1bmN0 aW9uICovCisgICAgdm1zZGJnb3V0X2Fic3RyYWN0X2Z1bmN0aW9uLAorICAgIGRlYnVnX25vdGhp bmdfcnR4LAkJICAvKiBsYWJlbCAqLworLS0tIGdjYy9kYnhvdXQuYy5qagkyMDA4LTA4LTIxIDEw OjE5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9kYnhvdXQuYwkyMDA4LTA4LTIxIDEwOjIx OjMwLjAwMDAwMDAwMCArMDIwMAorQEAgLTM2OSw3ICszNjksNyBAQCBjb25zdCBzdHJ1Y3QgZ2Nj X2RlYnVnX2hvb2tzIGRieF9kZWJ1Z19oCisgICBkYnhvdXRfZnVuY3Rpb25fZGVjbCwKKyAgIGRi eG91dF9nbG9iYWxfZGVjbCwJCSAgICAgICAgIC8qIGdsb2JhbF9kZWNsICovCisgICBkYnhvdXRf dHlwZV9kZWNsLAkJCSAvKiB0eXBlX2RlY2wgKi8KKy0gIGRlYnVnX25vdGhpbmdfdHJlZV90cmVl LCAgICAgICAgICAgICAgIC8qIGltcG9ydGVkX21vZHVsZV9vcl9kZWNsICovCisrICBkZWJ1Z19u b3RoaW5nX3RyZWVfdHJlZV90cmVlX2Jvb2wsCSAvKiBpbXBvcnRlZF9tb2R1bGVfb3JfZGVjbCAq LworICAgZGVidWdfbm90aGluZ190cmVlLAkJICAgICAgICAgLyogZGVmZXJyZWRfaW5saW5lX2Z1 bmN0aW9uICovCisgICBkZWJ1Z19ub3RoaW5nX3RyZWUsCQkgICAgICAgICAvKiBvdXRsaW5pbmdf aW5saW5lX2Z1bmN0aW9uICovCisgICBkZWJ1Z19ub3RoaW5nX3J0eCwJCSAgICAgICAgIC8qIGxh YmVsICovCitAQCAtNDAxLDcgKzQwMSw3IEBAIGNvbnN0IHN0cnVjdCBnY2NfZGVidWdfaG9va3Mg eGNvZmZfZGVidWcKKyAgIGRlYnVnX25vdGhpbmdfdHJlZSwJCSAgICAgICAgIC8qIGZ1bmN0aW9u X2RlY2wgKi8KKyAgIGRieG91dF9nbG9iYWxfZGVjbCwJCSAgICAgICAgIC8qIGdsb2JhbF9kZWNs ICovCisgICBkYnhvdXRfdHlwZV9kZWNsLAkJCSAvKiB0eXBlX2RlY2wgKi8KKy0gIGRlYnVnX25v dGhpbmdfdHJlZV90cmVlLCAgICAgICAgICAgICAgIC8qIGltcG9ydGVkX21vZHVsZV9vcl9kZWNs ICovCisrICBkZWJ1Z19ub3RoaW5nX3RyZWVfdHJlZV90cmVlX2Jvb2wsCSAvKiBpbXBvcnRlZF9t b2R1bGVfb3JfZGVjbCAqLworICAgZGVidWdfbm90aGluZ190cmVlLAkJICAgICAgICAgLyogZGVm ZXJyZWRfaW5saW5lX2Z1bmN0aW9uICovCisgICBkZWJ1Z19ub3RoaW5nX3RyZWUsCQkgICAgICAg ICAvKiBvdXRsaW5pbmdfaW5saW5lX2Z1bmN0aW9uICovCisgICBkZWJ1Z19ub3RoaW5nX3J0eCwJ CSAgICAgICAgIC8qIGxhYmVsICovCistLS0gZ2NjL2RlYnVnLmMuamoJMjAwOC0wOC0yMSAxMDox OTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvZGVidWcuYwkyMDA4LTA4LTIxIDEwOjIxOjMw LjAwMDAwMDAwMCArMDIwMAorQEAgLTQyLDcgKzQyLDcgQEAgY29uc3Qgc3RydWN0IGdjY19kZWJ1 Z19ob29rcyBkb19ub3RoaW5nXworICAgZGVidWdfbm90aGluZ190cmVlLAkJICAgICAgICAgLyog ZnVuY3Rpb25fZGVjbCAqLworICAgZGVidWdfbm90aGluZ190cmVlLAkJICAgICAgICAgLyogZ2xv YmFsX2RlY2wgKi8KKyAgIGRlYnVnX25vdGhpbmdfdHJlZV9pbnQsCQkgLyogdHlwZV9kZWNsICov CistICBkZWJ1Z19ub3RoaW5nX3RyZWVfdHJlZSwgICAgICAgICAgICAgICAvKiBpbXBvcnRlZF9t b2R1bGVfb3JfZGVjbCAqLworKyAgZGVidWdfbm90aGluZ190cmVlX3RyZWVfdHJlZV9ib29sLAkg LyogaW1wb3J0ZWRfbW9kdWxlX29yX2RlY2wgKi8KKyAgIGRlYnVnX25vdGhpbmdfdHJlZSwJCSAg ICAgICAgIC8qIGRlZmVycmVkX2lubGluZV9mdW5jdGlvbiAqLworICAgZGVidWdfbm90aGluZ190 cmVlLAkJICAgICAgICAgLyogb3V0bGluaW5nX2lubGluZV9mdW5jdGlvbiAqLworICAgZGVidWdf bm90aGluZ19ydHgsCQkgICAgICAgICAvKiBsYWJlbCAqLworQEAgLTY2LDggKzY2LDEwIEBAIGRl YnVnX25vdGhpbmdfdHJlZSAodHJlZSBkZWNsIEFUVFJJQlVURV8KKyB9CisgCisgdm9pZAorLWRl YnVnX25vdGhpbmdfdHJlZV90cmVlICh0cmVlIHQxIEFUVFJJQlVURV9VTlVTRUQsCistCQkJIHRy ZWUgdDIgQVRUUklCVVRFX1VOVVNFRCkKKytkZWJ1Z19ub3RoaW5nX3RyZWVfdHJlZV90cmVlX2Jv b2wgKHRyZWUgdDEgQVRUUklCVVRFX1VOVVNFRCwKKysJCQkJICAgdHJlZSB0MiBBVFRSSUJVVEVf VU5VU0VELAorKwkJCQkgICB0cmVlIHQzIEFUVFJJQlVURV9VTlVTRUQsCisrCQkJCSAgIGJvb2wg YjEgQVRUUklCVVRFX1VOVVNFRCkKKyB7CisgfQorIAorLS0tIGdjYy9kd2FyZjJvdXQuYy5qagky MDA4LTA4LTIxIDEwOjE5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9kd2FyZjJvdXQuYwky MDA4LTA4LTIxIDEzOjE1OjQxLjAwMDAwMDAwMCArMDIwMAorQEAgLTM5MTAsNyArMzkxMCw3IEBA IHN0YXRpYyB2b2lkIGR3YXJmMm91dF9lbmRfYmxvY2sgKHVuc2lnbmUKKyBzdGF0aWMgYm9vbCBk d2FyZjJvdXRfaWdub3JlX2Jsb2NrIChjb25zdF90cmVlKTsKKyBzdGF0aWMgdm9pZCBkd2FyZjJv dXRfZ2xvYmFsX2RlY2wgKHRyZWUpOworIHN0YXRpYyB2b2lkIGR3YXJmMm91dF90eXBlX2RlY2wg KHRyZWUsIGludCk7Cistc3RhdGljIHZvaWQgZHdhcmYyb3V0X2ltcG9ydGVkX21vZHVsZV9vcl9k ZWNsICh0cmVlLCB0cmVlKTsKKytzdGF0aWMgdm9pZCBkd2FyZjJvdXRfaW1wb3J0ZWRfbW9kdWxl X29yX2RlY2wgKHRyZWUsIHRyZWUsIHRyZWUsIGJvb2wpOworIHN0YXRpYyB2b2lkIGR3YXJmMm91 dF9hYnN0cmFjdF9mdW5jdGlvbiAodHJlZSk7Cisgc3RhdGljIHZvaWQgZHdhcmYyb3V0X3Zhcl9s b2NhdGlvbiAocnR4KTsKKyBzdGF0aWMgdm9pZCBkd2FyZjJvdXRfYmVnaW5fZnVuY3Rpb24gKHRy ZWUpOworQEAgLTQ1NDEsNyArNDU0MSw3IEBAIHN0YXRpYyB2b2lkIGdlbl9kZWNsX2RpZSAodHJl ZSwgZHdfZGllX3IKKyBzdGF0aWMgZHdfZGllX3JlZiBmb3JjZV9kZWNsX2RpZSAodHJlZSk7Cisg c3RhdGljIGR3X2RpZV9yZWYgZm9yY2VfdHlwZV9kaWUgKHRyZWUpOworIHN0YXRpYyBkd19kaWVf cmVmIHNldHVwX25hbWVzcGFjZV9jb250ZXh0ICh0cmVlLCBkd19kaWVfcmVmKTsKKy1zdGF0aWMg dm9pZCBkZWNsYXJlX2luX25hbWVzcGFjZSAodHJlZSwgZHdfZGllX3JlZik7Cisrc3RhdGljIGR3 X2RpZV9yZWYgZGVjbGFyZV9pbl9uYW1lc3BhY2UgKHRyZWUsIGR3X2RpZV9yZWYpOworIHN0YXRp YyBzdHJ1Y3QgZHdhcmZfZmlsZV9kYXRhICogbG9va3VwX2ZpbGVuYW1lIChjb25zdCBjaGFyICop OworIHN0YXRpYyB2b2lkIHJldHJ5X2luY29tcGxldGVfdHlwZXMgKHZvaWQpOworIHN0YXRpYyB2 b2lkIGdlbl90eXBlX2RpZV9mb3JfbWVtYmVyICh0cmVlLCB0cmVlLCBkd19kaWVfcmVmKTsKK0BA IC02NjIxLDcgKzY2MjEsOCBAQCBpc19zeW1ib2xfZGllIChkd19kaWVfcmVmIGMpCisgICByZXR1 cm4gKGlzX3R5cGVfZGllIChjKQorIAkgIHx8IChnZXRfQVQgKGMsIERXX0FUX2RlY2xhcmF0aW9u KQorIAkgICAgICAmJiAhZ2V0X0FUIChjLCBEV19BVF9zcGVjaWZpY2F0aW9uKSkKKy0JICB8fCBj LT5kaWVfdGFnID09IERXX1RBR19uYW1lc3BhY2UpOworKwkgIHx8IGMtPmRpZV90YWcgPT0gRFdf VEFHX25hbWVzcGFjZQorKwkgIHx8IGMtPmRpZV90YWcgPT0gRFdfVEFHX21vZHVsZSk7CisgfQor IAorIHN0YXRpYyBjaGFyICoKK0BAIC0xMjg5OCwyOSArMTI4OTksNDkgQEAgZ2VuX3ZhcmlhYmxl X2RpZSAodHJlZSBkZWNsLCBkd19kaWVfcmVmIAorICAgY29tX2RlY2wgPSBmb3J0cmFuX2NvbW1v biAoZGVjbCwgJm9mZik7CisgCisgICAvKiBTeW1ib2wgaW4gY29tbW9uIGdldHMgZW1pdHRlZCBh cyBhIGNoaWxkIG9mIHRoZSBjb21tb24gYmxvY2ssIGluIHRoZSBmb3JtCistICAgICBvZiBhIGRh dGEgbWVtYmVyLgorLQorLSAgICAgPz8/IFRoaXMgY3JlYXRlcyBhIG5ldyBjb21tb24gYmxvY2sg ZGllIGZvciBldmVyeSBjb21tb24gYmxvY2sgc3ltYm9sLgorLSAgICAgQmV0dGVyIHRvIHNoYXJl IHNhbWUgY29tbW9uIGJsb2NrIGRpZSBmb3IgYWxsIHN5bWJvbHMgaW4gdGhhdCBibG9jay4gICov CisrICAgICBvZiBhIGRhdGEgbWVtYmVyLiAgKi8KKyAgIGlmIChjb21fZGVjbCkKKyAgICAgewor ICAgICAgIHRyZWUgZmllbGQ7CisgICAgICAgZHdfZGllX3JlZiBjb21fZGllOworLSAgICAgIGNv bnN0IGNoYXIgKmNuYW0gPSBJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfQVNTRU1CTEVSX05BTUUg KGNvbV9kZWNsKSk7CistICAgICAgZHdfbG9jX2Rlc2NyX3JlZiBsb2MgPSBsb2NfZGVzY3JpcHRv cl9mcm9tX3RyZWUgKGNvbV9kZWNsKTsKKyAKKysgICAgICBpZiAobG9va3VwX2RlY2xfZGllIChk ZWNsKSkKKysJcmV0dXJuOworICAgICAgIGZpZWxkID0gVFJFRV9PUEVSQU5EIChERUNMX1ZBTFVF X0VYUFIgKGRlY2wpLCAwKTsKKy0gICAgICB2YXJfZGllID0gbmV3X2RpZSAoRFdfVEFHX2NvbW1v bl9ibG9jaywgY29udGV4dF9kaWUsIGRlY2wpOworLSAgICAgIGFkZF9uYW1lX2FuZF9zcmNfY29v cmRzX2F0dHJpYnV0ZXMgKHZhcl9kaWUsIGZpZWxkKTsKKy0gICAgICBhZGRfQVRfZmxhZyAodmFy X2RpZSwgRFdfQVRfZXh0ZXJuYWwsIDEpOworLSAgICAgIGFkZF9BVF9sb2MgKHZhcl9kaWUsIERX X0FUX2xvY2F0aW9uLCBsb2MpOworKyAgICAgIHZhcl9kaWUgPSBsb29rdXBfZGVjbF9kaWUgKGNv bV9kZWNsKTsKKysgICAgICBpZiAodmFyX2RpZSA9PSBOVUxMKQorKwl7CisrCSAgY29uc3QgY2hh ciAqY25hbQorKwkgICAgPSBJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfQVNTRU1CTEVSX05BTUUg KGNvbV9kZWNsKSk7CisrCSAgZHdfbG9jX2Rlc2NyX3JlZiBsb2MgPSBsb2NfZGVzY3JpcHRvcl9m cm9tX3RyZWUgKGNvbV9kZWNsKTsKKysKKysJICB2YXJfZGllID0gbmV3X2RpZSAoRFdfVEFHX2Nv bW1vbl9ibG9jaywgY29udGV4dF9kaWUsIGRlY2wpOworKwkgIGFkZF9uYW1lX2FuZF9zcmNfY29v cmRzX2F0dHJpYnV0ZXMgKHZhcl9kaWUsIGNvbV9kZWNsKTsKKysJICBhZGRfQVRfZmxhZyAodmFy X2RpZSwgRFdfQVRfZXh0ZXJuYWwsIDEpOworKwkgIGlmIChsb2MpCisrCSAgICBhZGRfQVRfbG9j ICh2YXJfZGllLCBEV19BVF9sb2NhdGlvbiwgbG9jKTsKKysgICAgICAgICAgZWxzZSBpZiAoREVD TF9FWFRFUk5BTCAoZGVjbCkpCisrCSAgICBhZGRfQVRfZmxhZyAodmFyX2RpZSwgRFdfQVRfZGVj bGFyYXRpb24sIDEpOworKwkgIGFkZF9wdWJuYW1lX3N0cmluZyAoY25hbSwgdmFyX2RpZSk7IC8q ID8/PyBuZWVkZWQ/ICovCisrCSAgZXF1YXRlX2RlY2xfbnVtYmVyX3RvX2RpZSAoY29tX2RlY2ws IHZhcl9kaWUpOworKwl9CisrICAgICAgZWxzZSBpZiAoZ2V0X0FUICh2YXJfZGllLCBEV19BVF9s b2NhdGlvbikgPT0gTlVMTCkKKysJeworKwkgIGR3X2xvY19kZXNjcl9yZWYgbG9jID0gbG9jX2Rl c2NyaXB0b3JfZnJvbV90cmVlIChjb21fZGVjbCk7CisrCisrCSAgaWYgKGxvYykKKysJICAgIHsK KysJICAgICAgYWRkX0FUX2xvYyAodmFyX2RpZSwgRFdfQVRfbG9jYXRpb24sIGxvYyk7CisrCSAg ICAgIHJlbW92ZV9BVCAodmFyX2RpZSwgRFdfQVRfZGVjbGFyYXRpb24pOworKwkgICAgfQorKwl9 CisgICAgICAgY29tX2RpZSA9IG5ld19kaWUgKERXX1RBR19tZW1iZXIsIHZhcl9kaWUsIGRlY2wp OworICAgICAgIGFkZF9uYW1lX2FuZF9zcmNfY29vcmRzX2F0dHJpYnV0ZXMgKGNvbV9kaWUsIGRl Y2wpOworICAgICAgIGFkZF90eXBlX2F0dHJpYnV0ZSAoY29tX2RpZSwgVFJFRV9UWVBFIChkZWNs KSwgVFJFRV9SRUFET05MWSAoZGVjbCksCisgCQkJICBUUkVFX1RISVNfVk9MQVRJTEUgKGRlY2wp LCBjb250ZXh0X2RpZSk7CisgICAgICAgYWRkX0FUX2xvYyAoY29tX2RpZSwgRFdfQVRfZGF0YV9t ZW1iZXJfbG9jYXRpb24sCisgCQkgIGludF9sb2NfZGVzY3JpcHRvciAob2ZmKSk7CistICAgICAg YWRkX3B1Ym5hbWVfc3RyaW5nIChjbmFtLCB2YXJfZGllKTsgLyogPz8/IG5lZWRlZD8gKi8KKysg ICAgICBlcXVhdGVfZGVjbF9udW1iZXJfdG9fZGllIChkZWNsLCBjb21fZGllKTsKKyAgICAgICBy ZXR1cm47CisgICAgIH0KKyAKK0BAIC0xMzY4NSw3ICsxMzcwNiw3IEBAIGdlbl90eXBlX2RpZV93 aXRoX3VzYWdlICh0cmVlIHR5cGUsIGR3X2QKKyAJfQorICAgICAgIGVsc2UKKyAJeworLQkgIGRl Y2xhcmVfaW5fbmFtZXNwYWNlICh0eXBlLCBjb250ZXh0X2RpZSk7CisrCSAgY29udGV4dF9kaWUg PSBkZWNsYXJlX2luX25hbWVzcGFjZSAodHlwZSwgY29udGV4dF9kaWUpOworIAkgIG5lZWRfcG9w ID0gMDsKKyAJfQorIAorQEAgLTE0MDU3LDI5ICsxNDA3OCwzMiBAQCBzZXR1cF9uYW1lc3BhY2Vf Y29udGV4dCAodHJlZSB0aGluZywgZHdfCisgICAgRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRl ciBkZWJ1Z2dlcnMsIG5hbWVzcGFjZSBESUVzIG9ubHkgY29udGFpbgorICAgIGRlY2xhcmF0aW9u czsgYWxsIGRlZmluaXRpb25zIGFyZSBlbWl0dGVkIGF0IENVIHNjb3BlLiAgKi8KKyAKKy1zdGF0 aWMgdm9pZAorK3N0YXRpYyBkd19kaWVfcmVmCisgZGVjbGFyZV9pbl9uYW1lc3BhY2UgKHRyZWUg dGhpbmcsIGR3X2RpZV9yZWYgY29udGV4dF9kaWUpCisgeworICAgZHdfZGllX3JlZiBuc19jb250 ZXh0OworIAorICAgaWYgKGRlYnVnX2luZm9fbGV2ZWwgPD0gRElORk9fTEVWRUxfVEVSU0UpCist ICAgIHJldHVybjsKKysgICAgcmV0dXJuIGNvbnRleHRfZGllOworIAorICAgLyogSWYgdGhpcyBk ZWNsIGlzIGZyb20gYW4gaW5saW5lZCBmdW5jdGlvbiwgdGhlbiBkb24ndCB0cnkgdG8gZW1pdCBp dCBpbiBpdHMKKyAgICAgIG5hbWVzcGFjZSwgYXMgd2Ugd2lsbCBnZXQgY29uZnVzZWQuICBJdCB3 b3VsZCBoYXZlIGFscmVhZHkgYmVlbiBlbWl0dGVkCisgICAgICB3aGVuIHRoZSBhYnN0cmFjdCBp bnN0YW5jZSBvZiB0aGUgaW5saW5lIGZ1bmN0aW9uIHdhcyBlbWl0dGVkIGFueXdheXMuICAqLwor ICAgaWYgKERFQ0xfUCAodGhpbmcpICYmIERFQ0xfQUJTVFJBQ1RfT1JJR0lOICh0aGluZykpCist ICAgIHJldHVybjsKKysgICAgcmV0dXJuIGNvbnRleHRfZGllOworIAorICAgbnNfY29udGV4dCA9 IHNldHVwX25hbWVzcGFjZV9jb250ZXh0ICh0aGluZywgY29udGV4dF9kaWUpOworIAorICAgaWYg KG5zX2NvbnRleHQgIT0gY29udGV4dF9kaWUpCisgICAgIHsKKysgICAgICBpZiAoaXNfZm9ydHJh biAoKSkKKysJcmV0dXJuIG5zX2NvbnRleHQ7CisgICAgICAgaWYgKERFQ0xfUCAodGhpbmcpKQor IAlnZW5fZGVjbF9kaWUgKHRoaW5nLCBuc19jb250ZXh0KTsKKyAgICAgICBlbHNlCisgCWdlbl90 eXBlX2RpZSAodGhpbmcsIG5zX2NvbnRleHQpOworICAgICB9CisrICByZXR1cm4gY29udGV4dF9k aWU7CisgfQorIAorIC8qIEdlbmVyYXRlIGEgRElFIGZvciBhIG5hbWVzcGFjZSBvciBuYW1lc3Bh Y2UgYWxpYXMuICAqLworQEAgLTE0MDk1LDggKzE0MTE5LDExIEBAIGdlbl9uYW1lc3BhY2VfZGll ICh0cmVlIGRlY2wpCisgICAgIHsKKyAgICAgICAvKiBPdXRwdXQgYSByZWFsIG5hbWVzcGFjZS4g ICovCisgICAgICAgZHdfZGllX3JlZiBuYW1lc3BhY2VfZGllCistCT0gbmV3X2RpZSAoRFdfVEFH X25hbWVzcGFjZSwgY29udGV4dF9kaWUsIGRlY2wpOworKwk9IG5ld19kaWUgKGlzX2ZvcnRyYW4g KCkgPyBEV19UQUdfbW9kdWxlIDogRFdfVEFHX25hbWVzcGFjZSwKKysJCSAgIGNvbnRleHRfZGll LCBkZWNsKTsKKyAgICAgICBhZGRfbmFtZV9hbmRfc3JjX2Nvb3Jkc19hdHRyaWJ1dGVzIChuYW1l c3BhY2VfZGllLCBkZWNsKTsKKysgICAgICBpZiAoREVDTF9FWFRFUk5BTCAoZGVjbCkpCisrCWFk ZF9BVF9mbGFnIChuYW1lc3BhY2VfZGllLCBEV19BVF9kZWNsYXJhdGlvbiwgMSk7CisgICAgICAg ZXF1YXRlX2RlY2xfbnVtYmVyX3RvX2RpZSAoZGVjbCwgbmFtZXNwYWNlX2RpZSk7CisgICAgIH0K KyAgIGVsc2UKK0BAIC0xNDE4Niw3ICsxNDIxMyw3IEBAIGdlbl9kZWNsX2RpZSAodHJlZSBkZWNs LCBkd19kaWVfcmVmIGNvbnQKKyAJICAgIGdlbl90eXBlX2RpZV9mb3JfbWVtYmVyIChvcmlnaW4s IGRlY2wsIGNvbnRleHRfZGllKTsKKyAKKyAJICAvKiBBbmQgaXRzIGNvbnRhaW5pbmcgbmFtZXNw YWNlLiAgKi8KKy0JICBkZWNsYXJlX2luX25hbWVzcGFjZSAoZGVjbCwgY29udGV4dF9kaWUpOwor KwkgIGNvbnRleHRfZGllID0gZGVjbGFyZV9pbl9uYW1lc3BhY2UgKGRlY2wsIGNvbnRleHRfZGll KTsKKyAJfQorIAorICAgICAgIC8qIE5vdyBvdXRwdXQgYSBESUUgdG8gcmVwcmVzZW50IHRoZSBm dW5jdGlvbiBpdHNlbGYuICAqLworQEAgLTE0MjMxLDE2ICsxNDI1OCw2IEBAIGdlbl9kZWNsX2Rp ZSAodHJlZSBkZWNsLCBkd19kaWVfcmVmIGNvbnQKKyAgICAgICBpZiAoZGVidWdfaW5mb19sZXZl bCA8PSBESU5GT19MRVZFTF9URVJTRSkKKyAJYnJlYWs7CisgCistICAgICAgLyogSWYgdGhpcyBp cyB0aGUgZ2xvYmFsIGRlZmluaXRpb24gb2YgdGhlIEZvcnRyYW4gQ09NTU9OIGJsb2NrLCB3ZSBk b24ndAorLSAgICAgICAgIG5lZWQgdG8gZG8gYW55dGhpbmcuICBTeW50YWN0aWNhbGx5LCB0aGUg YmxvY2sgaXRzZWxmIGhhcyBubyBpZGVudGl0eSwKKy0gICAgICAgICBqdXN0IGl0cyBjb25zdGl0 dWVudCBpZGVudGlmaWVycy4gICovCistICAgICAgaWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gVkFS X0RFQ0wKKy0gICAgICAgICAgJiYgVFJFRV9QVUJMSUMgKGRlY2wpCistICAgICAgICAgICYmIFRS RUVfU1RBVElDIChkZWNsKQorLSAgICAgICAgICAmJiBpc19mb3J0cmFuICgpCistICAgICAgICAg ICYmICFERUNMX0hBU19WQUxVRV9FWFBSX1AgKGRlY2wpKQorLSAgICAgICAgYnJlYWs7CistCisg ICAgICAgLyogT3V0cHV0IGFueSBESUVzIHRoYXQgYXJlIG5lZWRlZCB0byBzcGVjaWZ5IHRoZSB0 eXBlIG9mIHRoaXMgZGF0YQorIAkgb2JqZWN0LiAgKi8KKyAgICAgICBpZiAoVFJFRV9DT0RFIChk ZWNsKSA9PSBSRVNVTFRfREVDTCAmJiBERUNMX0JZX1JFRkVSRU5DRSAoZGVjbCkpCitAQCAtMTQy NTQsNyArMTQyNzEsNyBAQCBnZW5fZGVjbF9kaWUgKHRyZWUgZGVjbCwgZHdfZGllX3JlZiBjb250 CisgCWdlbl90eXBlX2RpZV9mb3JfbWVtYmVyIChvcmlnaW4sIGRlY2wsIGNvbnRleHRfZGllKTsK KyAKKyAgICAgICAvKiBBbmQgaXRzIGNvbnRhaW5pbmcgbmFtZXNwYWNlLiAgKi8KKy0gICAgICBk ZWNsYXJlX2luX25hbWVzcGFjZSAoZGVjbCwgY29udGV4dF9kaWUpOworKyAgICAgIGNvbnRleHRf ZGllID0gZGVjbGFyZV9pbl9uYW1lc3BhY2UgKGRlY2wsIGNvbnRleHRfZGllKTsKKyAKKyAgICAg ICAvKiBOb3cgb3V0cHV0IHRoZSBESUUgdG8gcmVwcmVzZW50IHRoZSBkYXRhIG9iamVjdCBpdHNl bGYuICBUaGlzIGdldHMKKyAJIGNvbXBsaWNhdGVkIGJlY2F1c2Ugb2YgdGhlIHBvc3NpYmlsaXR5 IHRoYXQgdGhlIFZBUl9ERUNMIHJlYWxseQorQEAgLTE0MzA3LDE1ICsxNDMyNCw3IEBAIGR3YXJm Mm91dF9nbG9iYWxfZGVjbCAodHJlZSBkZWNsKQorICAgLyogT3V0cHV0IERXQVJGMiBpbmZvcm1h dGlvbiBmb3IgZmlsZS1zY29wZSB0ZW50YXRpdmUgZGF0YSBvYmplY3QKKyAgICAgIGRlY2xhcmF0 aW9ucywgZmlsZS1zY29wZSAoZXh0ZXJuKSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgKHdoaWNoIGhh ZCBubworICAgICAgY29ycmVzcG9uZGluZyBib2R5KSBhbmQgZmlsZS1zY29wZSB0YWdnZWQgdHlw ZSBkZWNsYXJhdGlvbnMgYW5kCistICAgICBkZWZpbml0aW9ucyB3aGljaCBoYXZlIG5vdCB5ZXQg YmVlbiBmb3JjZWQgb3V0LgorLQorLSAgICAgSWdub3JlIHRoZSBnbG9iYWwgZGVjbCBvZiBhbnkg Rm9ydHJhbiBDT01NT04gYmxvY2tzIHdoaWNoIGFsc28gd2luZCB1cCBoZXJlCistICAgICB0aG91 Z2ggdGhleSBoYXZlIGFscmVhZHkgYmVlbiBkZXNjcmliZWQgaW4gdGhlIGxvY2FsIHNjb3BlIGZv ciB0aGUgCistICAgICBwcm9jZWR1cmVzIHVzaW5nIHRoZW0uICAqLworLSAgaWYgKFRSRUVfQ09E RSAoZGVjbCkgPT0gVkFSX0RFQ0wKKy0gICAgICAmJiBUUkVFX1BVQkxJQyAoZGVjbCkgJiYgVFJF RV9TVEFUSUMgKGRlY2wpICYmIGlzX2ZvcnRyYW4gKCkpCistICAgIHJldHVybjsKKy0KKysgICAg IGRlZmluaXRpb25zIHdoaWNoIGhhdmUgbm90IHlldCBiZWVuIGZvcmNlZCBvdXQuICAqLworICAg aWYgKFRSRUVfQ09ERSAoZGVjbCkgIT0gRlVOQ1RJT05fREVDTCB8fCAhREVDTF9JTklUSUFMIChk ZWNsKSkKKyAgICAgZHdhcmYyb3V0X2RlY2wgKGRlY2wpOworIH0KK0BAIC0xNDMyOSwxMCArMTQz MzgsMTQgQEAgZHdhcmYyb3V0X3R5cGVfZGVjbCAodHJlZSBkZWNsLCBpbnQgbG9jYQorICAgICBk d2FyZjJvdXRfZGVjbCAoZGVjbCk7CisgfQorIAorLS8qIE91dHB1dCBkZWJ1ZyBpbmZvcm1hdGlv biBmb3IgaW1wb3J0ZWQgbW9kdWxlIG9yIGRlY2wuICAqLworKy8qIE91dHB1dCBkZWJ1ZyBpbmZv cm1hdGlvbiBmb3IgaW1wb3J0ZWQgbW9kdWxlIG9yIGRlY2wgREVDTC4KKysgICBOQU1FIGlzIG5v bi1OVUxMIG5hbWUgaW4gY29udGV4dCBpZiB0aGUgZGVjbCBoYXMgYmVlbiByZW5hbWVkLgorKyAg IENISUxEIGlzIHRydWUgaWYgZGVjbCBpcyBvbmUgb2YgdGhlIHJlbmFtZWQgZGVjbHMgYXMgcGFy dCBvZgorKyAgIGltcG9ydGluZyB3aG9sZSBtb2R1bGUuICAqLworIAorIHN0YXRpYyB2b2lkCist ZHdhcmYyb3V0X2ltcG9ydGVkX21vZHVsZV9vcl9kZWNsICh0cmVlIGRlY2wsIHRyZWUgY29udGV4 dCkKKytkd2FyZjJvdXRfaW1wb3J0ZWRfbW9kdWxlX29yX2RlY2wgKHRyZWUgZGVjbCwgdHJlZSBu YW1lLCB0cmVlIGNvbnRleHQsCisrCQkJCSAgIGJvb2wgY2hpbGQpCisgeworICAgZHdfZGllX3Jl ZiBpbXBvcnRlZF9kaWUsIGF0X2ltcG9ydF9kaWU7CisgICBkd19kaWVfcmVmIHNjb3BlX2RpZTsK K0BAIC0xNDM1NSw2ICsxNDM2OCwxNCBAQCBkd2FyZjJvdXRfaW1wb3J0ZWRfbW9kdWxlX29yX2Rl Y2wgKHRyZWUgCisgICAgIHJldHVybjsKKyAgIHNjb3BlX2RpZSA9IGdldF9jb250ZXh0X2RpZSAo Y29udGV4dCk7CisgCisrICBpZiAoY2hpbGQpCisrICAgIHsKKysgICAgICBnY2NfYXNzZXJ0IChz Y29wZV9kaWUtPmRpZV9jaGlsZCk7CisrICAgICAgZ2NjX2Fzc2VydCAoc2NvcGVfZGllLT5kaWVf Y2hpbGQtPmRpZV90YWcgPT0gRFdfVEFHX2ltcG9ydGVkX21vZHVsZSk7CisrICAgICAgZ2NjX2Fz c2VydCAoVFJFRV9DT0RFIChkZWNsKSAhPSBOQU1FU1BBQ0VfREVDTCk7CisrICAgICAgc2NvcGVf ZGllID0gc2NvcGVfZGllLT5kaWVfY2hpbGQ7CisrICAgIH0KKysKKyAgIC8qIEZvciBUWVBFX0RF Q0wgb3IgQ09OU1RfREVDTCwgbG9va3VwIFRSRUVfVFlQRS4gICovCisgICBpZiAoVFJFRV9DT0RF IChkZWNsKSA9PSBUWVBFX0RFQ0wgfHwgVFJFRV9DT0RFIChkZWNsKSA9PSBDT05TVF9ERUNMKQor ICAgICB7CitAQCAtMTQ0MDUsNiArMTQ0MjYsOCBAQCBkd2FyZjJvdXRfaW1wb3J0ZWRfbW9kdWxl X29yX2RlY2wgKHRyZWUgCisgICB4bG9jID0gZXhwYW5kX2xvY2F0aW9uIChpbnB1dF9sb2NhdGlv bik7CisgICBhZGRfQVRfZmlsZSAoaW1wb3J0ZWRfZGllLCBEV19BVF9kZWNsX2ZpbGUsIGxvb2t1 cF9maWxlbmFtZSAoeGxvYy5maWxlKSk7CisgICBhZGRfQVRfdW5zaWduZWQgKGltcG9ydGVkX2Rp ZSwgRFdfQVRfZGVjbF9saW5lLCB4bG9jLmxpbmUpOworKyAgaWYgKG5hbWUpCisrICAgIGFkZF9B VF9zdHJpbmcgKGltcG9ydGVkX2RpZSwgRFdfQVRfbmFtZSwgSURFTlRJRklFUl9QT0lOVEVSIChu YW1lKSk7CisgICBhZGRfQVRfZGllX3JlZiAoaW1wb3J0ZWRfZGllLCBEV19BVF9pbXBvcnQsIGF0 X2ltcG9ydF9kaWUpOworIH0KKyAKKy0tLSBnY2Mvc2Rib3V0LmMuamoJMjAwOC0wOC0yMSAxMDox OTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2Mvc2Rib3V0LmMJMjAwOC0wOC0yMSAxMDoyMToz MC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zMjksNyArMzI5LDcgQEAgY29uc3Qgc3RydWN0IGdjY19k ZWJ1Z19ob29rcyBzZGJfZGVidWdfaAorICAgZGVidWdfbm90aGluZ190cmVlLAkJICAgICAgICAg LyogZnVuY3Rpb25fZGVjbCAqLworICAgc2Rib3V0X2dsb2JhbF9kZWNsLAkJICAgICAgICAgLyog Z2xvYmFsX2RlY2wgKi8KKyAgIHNkYm91dF9zeW1ib2wsCQkJIC8qIHR5cGVfZGVjbCAqLworLSAg ZGVidWdfbm90aGluZ190cmVlX3RyZWUsICAgICAgICAgICAgICAgLyogaW1wb3J0ZWRfbW9kdWxl X29yX2RlY2wgKi8KKysgIGRlYnVnX25vdGhpbmdfdHJlZV90cmVlX3RyZWVfYm9vbCwJIC8qIGlt cG9ydGVkX21vZHVsZV9vcl9kZWNsICovCisgICBkZWJ1Z19ub3RoaW5nX3RyZWUsCQkgICAgICAg ICAvKiBkZWZlcnJlZF9pbmxpbmVfZnVuY3Rpb24gKi8KKyAgIGRlYnVnX25vdGhpbmdfdHJlZSwJ CSAgICAgICAgIC8qIG91dGxpbmluZ19pbmxpbmVfZnVuY3Rpb24gKi8KKyAgIHNkYm91dF9sYWJl bCwJCQkgICAgICAgICAvKiBsYWJlbCAqLwo=