ZGlmZiAtLWdpdCBhL3N5cy9hbnNpLmggYi9zeXMvYW5zaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNGQyNDQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvYW5zaS5oCkBAIC0wLDAgKzEsMzUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBhbnNpLmggLS0gU2VxdWVuemVuIGZ1ZXIgQU5TSS0gdW5kIFZUMTAwLVRlcm1pbmFscworLy8KKy8vICRJZDogYW5zaS5oLHYgMy4zIDIwMDAvMDIvMTIgMTY6MTg6NDIgUGFkcmVpYyBFeHAgJAorCisjaWZuZGVmIF9BTlNJXworI2RlZmluZSBfQU5TSV8KKworI2RlZmluZSBBTlNJX0JPTEQgIhtbMW0iCisjZGVmaW5lIEFOU0lfVU5ERVJMICIbWzRtIgorI2RlZmluZSBBTlNJX0JMSU5LICIbWzVtIgorI2RlZmluZSBBTlNJX0lOVkVSUyAiG1s3bSIKKworI2RlZmluZSBBTlNJX0JMQUNLICIbWzMwbSIKKyNkZWZpbmUgQU5TSV9SRUQgIhtbMzFtIgorI2RlZmluZSBBTlNJX0dSRUVOICIbWzMybSIKKyNkZWZpbmUgQU5TSV9ZRUxMT1cgIhtbMzNtIgorI2RlZmluZSBBTlNJX0JMVUUgIhtbMzRtIgorI2RlZmluZSBBTlNJX1BVUlBMRSAiG1szNW0iCisjZGVmaW5lIEFOU0lfQ1lBTiAiG1szNm0iCisjZGVmaW5lIEFOU0lfV0hJVEUgIhtbMzdtIgorCisjZGVmaW5lIEFOU0lfQkdfQkxBQ0sgIhtbNDBtIgorI2RlZmluZSBBTlNJX0JHX1JFRCAiG1s0MW0iCisjZGVmaW5lIEFOU0lfQkdfR1JFRU4gIhtbNDJtIgorI2RlZmluZSBBTlNJX0JHX1lFTExPVyAiG1s0M20iCisjZGVmaW5lIEFOU0lfQkdfQkxVRSAiG1s0NG0iCisjZGVmaW5lIEFOU0lfQkdfUFVSUExFICIbWzQ1bSIKKyNkZWZpbmUgQU5TSV9CR19DWUFOICIbWzQ2bSIKKyNkZWZpbmUgQU5TSV9CR19XSElURSAiG1s0N20iCisKKyNkZWZpbmUgQU5TSV9OT1JNQUwgIhtbMG0iCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL2FybW91ci5oIGIvc3lzL2FybW91ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzM2U0M2UKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvYXJtb3VyLmgKQEAgLTAsMCArMSw0MSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGFybW91ci5oIC0tIGFybW91ciBoZWFkZXIKKy8vCisvLyAkSWQ6IGFybW91ci5oIDkwOTIgMjAxNS0wMS0xOSAyMzo1Nzo1MFogWmVzc3RyYSAkCisgCisjaWZuZGVmIF9fQVJNT1VSX0hfXworI2RlZmluZSBfX0FSTU9VUl9IX18KKworI2luY2x1ZGUgPGNsb3RoaW5nLmg+CisjaW5jbHVkZSA8Y29tYmF0Lmg+CisKKy8vIHByb3BlcnRpZXMKKyNpZm5kZWYgUF9OUl9IQU5EUworI2RlZmluZSBQX05SX0hBTkRTICAgICAgIm5yX2hhbmRzIiAgICAgLy8gYmVub2V0aWd0ZSBIYWVuZGUgenVtIHRyYWdlbiAoU2NoaWxkKQorI2VuZGlmCisKKyNkZWZpbmUgUF9BQyAgICAgICAgICAgICJhYyIgICAgICAgICAgIC8vIFJ1ZXN0dW5nc2tsYXNzZSAoYXJtb3VyIGNsYXNzKQorCisjZGVmaW5lIFBfQVJNT1VSX1RZUEUgICAiYXJtb3VyX3R5cGUiICAvLyBBcnQgZGVyIFJ1ZXN0dW5nIChIZWxtLCBSaW5nIHVzdy4pCisKKyNkZWZpbmUgUF9ERUZFTkRfRlVOQyAgICJkZWZlbmRfZnVuYyIgIC8vIE9iamVrdCBkYXMgZWluZSBEZWZlbmRGdW5jIGRlZmluaWVydAorCisjZW5kaWYgLy8gX19BUk1PVVJfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0FSTU9VUl9IX1BST1RPX18KKyNkZWZpbmUgX19BUk1PVVJfSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKK2ludCBRdWVyeURlZmVuZCAoc3RyaW5nfHN0cmluZyogZGFtX3R5cGUsIGludHxtYXBwaW5nIHNwZWxsLCBvYmplY3QgZW5lbXkpOworCisvLyBUTyBCRSBSRU1PVkVECisKK3ZvaWQgU2V0RGVmZW5kRnVuYyhvYmplY3Qgb2IpOworb2JqZWN0IFF1ZXJ5RGVmZW5kRnVuYygpOworCisjZW5kaWYgLy8gX19BUk1PVVJfSF9QUk9UT19fCisKKyNlbmRpZgkvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL2F0dHJpYnV0ZXMuaCBiL3N5cy9hdHRyaWJ1dGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAwYjNkYwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9hdHRyaWJ1dGVzLmgKQEAgLTAsMCArMSwxMiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGF0dHJpYnV0ZXMuaCAtLSBsaXZpbmcgYXR0cmlidXRlcworLy8KKy8vICRJZDogYXR0cmlidXRlcy5oLHYgMy4xIDE5OTcvMDIvMTIgMTM6MDQ6NTkgV2FyZ29uIEV4cCAkCisKKyNpZm5kZWYgX19BVFRSSUJVVEVTX0hfXworI2RlZmluZSBfX0FUVFJJQlVURVNfSF9fCisKKyNpbmNsdWRlICIvc3lzL2xpdmluZy9hdHRyaWJ1dGVzLmgiCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL2JhbmsuaCBiL3N5cy9iYW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM2MzA2ZQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9iYW5rLmgKQEAgLTAsMCArMSwzNiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGJhbmsuaCAtLSBEZWZpbml0aW9uZW4gZnVlciBkaWUgWmVudHJhbGJhbmsgYnp3LiBMYWVkZW4KKy8vCisvLyAkSWQ6IGJhbmsuaCA2NzQ5IDIwMDgtMDMtMTIgMTk6NDU6MjdaIFplc3N0cmEgJAorCisjaWZuZGVmIF9fQkFOS19IX18KKyNkZWZpbmUgX19CQU5LX0hfXworCisjZGVmaW5lIFpFTlRSQUxCQU5LICIvcC9kYWVtb24vemVudHJhbGJhbmsiCisKKy8vIERpZXNlIFByb3BlcnRpZXMgbGFzc2VuIHNpY2ggbnVyIGFiZnJhZ2VuIQorI2RlZmluZSBQX1NIT1BfUEVSQ0VOVF9MRUZUICJzaG9wX3BlcmNlbnRfbGVmdCIgICAgLy8gQWt0dWVsbGUgUHJvemVudGUgaW4KKyNkZWZpbmUgUF9TVE9SRV9QRVJDRU5UX0xFRlQgInN0b3JlX3BlcmNlbnRfbGVmdCIgIC8vIExhZGVuIHVuZCBTcGVpY2hlcgorI2RlZmluZSBQX0NVUlJFTlRfTU9ORVkgImN1cnJlbnRfbW9uZXkiICAgICAgIC8vIFZlcm1vZWdlbiBkZXMgTGFkZW5zCisKKyNkZWZpbmUgUF9TVE9SRV9DT05TVU1FICAic3RvcmVfY29uc3VtZSIgICAgLyogZGVmYXVsdCAyMCUsIGltbWVyIG1pbmQuIDElICovCisjZGVmaW5lIFBfTUlOX1NUT0NLICAgICAgIm1pbl9zdG9jayIgICAgLyogbWluZGVzdCBWb3JyYXQgYW4gR2VnZW5zdGFlbmRlbiAqLworCisjZW5kaWYgLy8gX19CQU5LX0hfXworCisvLyBLb25zdGFudGVuIGZ1ZXIgZGllIEltcGxlbWVudGF0aW9uCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9fQkFOS19IX1BST1RPVFlQRVNfXworI2RlZmluZSBfX0JBTktfSF9QUk9UT1RZUEVTX18KKworI2RlZmluZSBCQU5LX0RFRkFVTFRfUEVSQ0VOVCAyMCAvLyBTbyB2aWVsZSAlIGRlciBFaW56YWhsdW5nIGdlaGVuIGF1ZnMgS29udG8KKyNkZWZpbmUgU0hPUF9QRVJDRU5UX0xFRlQgMzAgLy8gU28gdmllbGUgJSBrcmllZ3QgZGVyIExhZGVuIGZ1ZXIgT2JqZWt0ZQorCQkJICAgICAvLyBndXRnZXNjaHJpZWJlbiwgZGllIGVyIHplcnN0b2VydAorCisjZGVmaW5lIFNUT1JFX1BFUkNFTlRfTEVGVCAyNSAvLyBEaXRvIGZ1ZXIgZGVuIFN0b3JlCisKKyNlbmRpZiAvLyBfX0JBTktfSF9QUk9UT1RZUEVTX18KKworI2VuZGlmIC8vIE5FRURfUFJPVE9UWVBFUworCmRpZmYgLS1naXQgYS9zeXMvYnJlYWtfc3RyaW5nLmggYi9zeXMvYnJlYWtfc3RyaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY0ZjIxYQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9icmVha19zdHJpbmcuaApAQCAtMCwwICsxLDIxIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gYnJlYWtfc3RyaW5nLmggLSBzeW0uIEtvbnN0YW50ZW4gZnVlciBicmVha19zdHJpbmcoKQorLy8KKy8vICRJZDogZGVmaW5lcy5oIDY0MTUgMjAwNy0wOC0xMCAxOToyNDowNFogWmVzc3RyYSAkCisKKyNpZm5kZWYgX0JSRUFLX1NUUklOR19IXworI2RlZmluZSBfQlJFQUtfU1RSSU5HX0hfCisKKyNkZWZpbmUgQlNfTEVBVkVfTVlfTEZTIAkxCisjZGVmaW5lIEJTX1NJTkdMRV9TUEFDRSAgICAgICAgIDIKKyNkZWZpbmUgQlNfQkxPQ0sJCTQKKyNkZWZpbmUgQlNfTk9fUEFSSU5ERU5UCQk4CisjZGVmaW5lIEJTX0lOREVOVF9PTkNFICAgICAgICAgMTYKKyNkZWZpbmUgQlNfUFJFUEVORF9JTkRFTlQgICAgICAzMgorLy8gRmFsbHMgaGllciBGbGFncyBlcmdhZW56dCB3ZXJkZW4sIHNvbGx0ZW4gc2llIGF1Y2ggaW4gbGl2aW5nL2NvbW0uaCBmdWVyCisvLyBSZWNlaXZlTXNnKCkgZWluZ2V0cmFnZW4gd2VyZGVuLiBSZWNlaXZlTXNnKCkga2FubiBwZXIgc2UgYXVjaCBudXIgMTAKKy8vIEJTLUZsYWdzIHZlcmFyYmVpdGVuLCBkYXMgc29sbHRlIGJlaW0gRXJnYWVuemVuIGJlYWNodGV0IHdlcmRlbi4KKworI2VuZGlmIC8qIF9CUkVBS19TVFJJTkdfSF8gKi8KKwpkaWZmIC0tZ2l0IGEvc3lzL2NsYXNzLmggYi9zeXMvY2xhc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGZjMzg5Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2NsYXNzLmgKQEAgLTAsMCArMSw4OSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGNsYXNzLmggLS0gRGVmaW5pdGlvbmVuIGZ1ZXIgS2xhc3NlbiB2b24gT2JqZWt0ZW4gdW5kIExlYmV3ZXNlbi4KKy8vICAgICAgICAgICAgU2llaGUgQWRkQ2xhc3MoKS9pc19jbGFzc19tZW1iZXIoKSBpbiAvc3RkL3RoaW5nL2Rlc2NyaXB0aW9uLmMKKy8vCisvLyAkSWQ6IGNsYXNzLmggOTU1MiAyMDE2LTA0LTI0IDA5OjUzOjEzWiBBcmF0aG9ybiAkCisKKyNpZm5kZWYgX19DTEFTU19IX18KKyNkZWZpbmUgX19DTEFTU19IX18KKworI2RlZmluZSBDTEFTU0RCICIvcC9kYWVtb24vY2xhc3NkYiIKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gS2xhc3NlbiBmdWVyICJMZWJld2VzZW4iIC0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyNkZWZpbmUgQ0xfQU5JTUFMICJ0aWVyIgorI2RlZmluZSBDTF9BUkFDSE5JRCAic3Bpbm5lIiAgLy8gdW5kIFNwaW5uZW5hcnRpZ2UKKyNkZWZpbmUgQ0xfQklSRCAidm9nZWwiCisjZGVmaW5lIENMX0RBUktFTEYgImR1bmtlbGVsZiIKKyNkZWZpbmUgQ0xfREVNT04gImRhZW1vbiIKKyNkZWZpbmUgQ0xfRFJBR09OICJkcmFjaGUiCisjZGVmaW5lIENMX0RXQVJGICJ6d2VyZyIKKyNkZWZpbmUgQ0xfRUxGICJlbGYiCisjZGVmaW5lIENMX0VMRU1FTlRBTCAiZWxlbWVudGFyd2VzZW4iCisjZGVmaW5lIENMX0ZFTElORSAiZmVsaW5lIgorI2RlZmluZSBDTF9GSVNIICJmaXNjaCIKKyNkZWZpbmUgQ0xfRlJPRyAiZnJvc2NoIgorI2RlZmluZSBDTF9GVVJJRSAiZnVyaWUiCisjZGVmaW5lIENMX0hBUlBZICJoYXJweWllIgorI2RlZmluZSBDTF9HSE9TVCAiZ2Vpc3QiCisjZGVmaW5lIENMX0dIT1VMICAiZ2hvdWwiCisjZGVmaW5lIENMX0dJQU5UICJyaWVzZSIKKyNkZWZpbmUgQ0xfR05PTUUgImdub20iCisjZGVmaW5lIENMX0dPQkxJTiAiZ29ibGluIgorI2RlZmluZSBDTF9IT0JCSVQgImhvYmJpdCIKKyNkZWZpbmUgQ0xfSE9CR09CTElOICJob2Jnb2JsaW4iCisjZGVmaW5lIENMX0hVTUFOICJtZW5zY2giCisjZGVmaW5lIENMX0lMTFVTSU9OICJpbGx1c2lvbiIgLy8gQnNwLiBiZXNjaHdvcmVuZSBJbGx1c2lvbmVuCisjZGVmaW5lIENMX0lOU0VDVCAiaW5zZWt0IgorI2RlZmluZSBDTF9MSVZJTkcgImxlYmV3ZXNlbiIKKyNkZWZpbmUgQ0xfTUFNTUFMICJzYWV1Z2V0aWVyIgorI2RlZmluZSBDTF9NQU1NQUxfTEFORCAibGFuZHNhZXVnZXIiCisjZGVmaW5lIENMX01BTU1BTF9XQVRFUiAid2Fzc2Vyc2FldWdlciIgLy8gRGFtaXQgbWFuIERlbHBoaW5lbiBuaWNodCBkYXMgSGFhciB3dXNjaGVsdAorI2RlZmluZSBDTF9PUkMgIm9yayIKKyNkZWZpbmUgQ0xfUExBTlQgInBmbGFuemUiCisjZGVmaW5lIENMX1JFUFRJTEUgInJlcHRpbCIKKyNkZWZpbmUgQ0xfU0hBRE9XICJzY2hhdHRlbndlc2VuIgorI2RlZmluZSBDTF9TS0VMRVRPTiAic2tlbGV0dCIKKyNkZWZpbmUgQ0xfU0xJTUUgInNjaGxlaW13ZXNlbiIgLy8gRnVlciBFaW56ZWxsZXIgdW5kIGFlaG5saWNoZXMKKyNkZWZpbmUgQ0xfU05BS0UgInNjaGxhbmdlIgorI2RlZmluZSBDTF9UUk9MTCAidHJvbGwiCisjZGVmaW5lIENMX1VOREVBRCAidW50b3RlciIKKyNkZWZpbmUgQ0xfVkFNUElSRSAiX2NsX3ZhbXBpciIKKyNkZWZpbmUgQ0xfWk9NQklFICJ6b21iaWUiCisjZGVmaW5lIENMX1NIQVBFQ0hBTkdFUiAiZ2VzdGFsdHdhbmRsZXIiIC8vIEJzcC4gV2Vyd29lbGZlIGV0Yy4KKyNkZWZpbmUgQ0xfR09MRU0gImdvbGVtIgorI2RlZmluZSBDTF9DT05TVFJVQ1QgImtvbnN0cnVrdCIKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tIEtsYXNzZW4gbmFjaCBCZXdlZ3VuZ3NtZXRob2RlbiAtLS0tLS0tLS0tLS0tLS0tLSAqLworCisjZGVmaW5lIENMX1dBTEtJTkcgICJnZWhlbmQiCisjZGVmaW5lIENMX0NSQVdMSU5HICJrcmllY2hlbmQiCisjZGVmaW5lIENMX1NXSU1NSU5HICJzY2h3aW1tZW5kIgorI2RlZmluZSBDTF9GTFlJTkcgICAiZmxpZWdlbmQiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtsYXNzZW4gZnVlciBHZWdlbnN0YWVuZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBDTF9FWFBMT1NJVkUgInNwcmVuZ3N0b2ZmIgorI2RlZmluZSBDTF9ESVNFQVNFICJrcmFua2hlaXQiCisjZGVmaW5lIENMX0NVUlNFICJmbHVjaCIKKyNkZWZpbmUgQ0xfSU5PUkdBTklDICJhbm9yZ2FuaXNjaCIKKyNkZWZpbmUgQ0xfUE9JU09OICJnaWZ0IgorI2RlZmluZSBDTF9QT0lTT05PVVMgImdpZnRpZ2VzIgorI2RlZmluZSBDTF9BTU1VTklUSU9OICJtdW5pdGlvbiIKKy8vIEVzIGthbm4gYXVjaCBmdWVyIEdlZ2Vuc3RhZW5kZSBDTF9JTExVU0lPTiB2ZXJ3ZW5kZXQgd2VyZGVuLgorCisjZGVmaW5lIENMX0FMTCAoe0NMX0FOSU1BTCwgQ0xfQVJBQ0hOSUQsIENMX0JJUkQsIENMX0RFTU9OLCBDTF9EUkFHT04sIFwKKyAgICAgICAgICAgICAgICBDTF9EV0FSRiwgQ0xfRUxGLCBDTF9FTEVNRU5UQUwsIENMX0ZFTElORSwgQ0xfRklTSCwgQ0xfRlJPRywgXAorICAgICAgICAgICAgICAgIENMX0ZVUklFLCBDTF9IQVJQWSwgQ0xfVkFNUElSRSxcCisgICAgICAgICAgICAgICAgQ0xfR0hPU1QsIENMX0dIT1VMLCBDTF9HSUFOVCwgQ0xfR05PTUUsIENMX0dPQkxJTiwgQ0xfSE9CQklULCBcCisgICAgICAgICAgICAgICAgQ0xfSE9CR09CTElOLCBDTF9IVU1BTiwgQ0xfSU5PUkdBTklDLCBDTF9JTlNFQ1QsIENMX0xJVklORywgXAorICAgICAgICAgICAgICAgIENMX01BTU1BTCwgQ0xfTUFNTUFMX0xBTkQsIENMX01BTU1BTF9XQVRFUiwgQ0xfT1JDLCBDTF9QTEFOVCwgXAorICAgICAgICAgICAgICAgIENMX1JFUFRJTEUsIENMX1NIQURPVywgQ0xfU0tFTEVUT04sIENMX1NMSU1FLCBDTF9TTkFLRSwgXAorICAgICAgICAgICAgICAgIENMX1RST0xMLCBDTF9VTkRFQUQsIENMX1pPTUJJRSwgQ0xfU0hBUEVDSEFOR0VSLCBDTF9XQUxLSU5HLCBcCisgICAgICAgICAgICAgICAgQ0xfQ1JBV0xJTkcsIENMX1NXSU1NSU5HLCBDTF9GTFlJTkcsIENMX0VYUExPU0lWRSwgXAorICAgICAgICAgICAgICAgIENMX0RJU0VBU0UsIENMX0NVUlNFLCBDTF9QT0lTT04sIENMX1BPSVNPTk9VUywgXAorICAgICAgICAgICAgICAgIENMX0FNTVVOSVRJT04sIENMX0lMTFVTSU9OLCBDTF9HT0xFTSwgQ0xfQ09OU1RSVUNUIH0pCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9zeXMvY2xvdGhpbmcuaCBiL3N5cy9jbG90aGluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkNjE4NDEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvY2xvdGhpbmcuaApAQCAtMCwwICsxLDQ5IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gY2xvdGhpbmcuaCAtLSBjbG90aGluZyBoZWFkZXIKKy8vCisvLyAkSWQ6IGNsb3RoaW5nLmggNjA2NSAyMDA2LTA5LTI5IDIzOjIyOjUyWiBaZXNzdHJhICQKKyAKKyNpZm5kZWYgX19DTE9USElOR19IX18KKyNkZWZpbmUgX19DTE9USElOR19IX18KKworLy8gcHJvcGVydGllcworI2RlZmluZSBQX1dPUk4gICAgICAgICAgIndvcm4iICAgICAgICAgLy8gT2JqZWt0IG1pdCBkZW0gVHJhZWdlciBkZXIgUnVlc3R1bmcKKworI2RlZmluZSBQX1dFQVJfRlVOQyAgICAgIndlYXJfZnVuYyIgICAgLy8gT2JqZWt0IGRhcyBlaW5lIFdlYXJGdW5jIGRlZmluaWVydAorI2RlZmluZSBQX1JFTU9WRV9GVU5DICAgInJlbW92ZV9mdW5jIiAgLy8gT2JqZWt0IGRhcyBlaW5lIFJlbW92ZUZ1bmMgZGVmaW5pZXJ0CisKKyNkZWZpbmUgUF9XRUFSX01TRyAgICAgICJ3ZWFyX21zZyIgICAgIC8vIE1lbGR1bmdlbiBiZWltIEFuemllaGVuCisjZGVmaW5lIFBfVU5XRUFSX01TRyAgICAidW53ZWFyX21zZyIgICAvLyBNZWxkdW5nZW4gYmVpbSBBdXN6aWVoZW4KKworI2RlZmluZSBQX0xBU1RfV0VBUl9BQ1RJT04gImxhc3Rfd2Vhcl9hY3Rpb24iIC8vIExldHp0ZSBBa3Rpb24gZGVzIFNwaWVsZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW4tIHVuZCBhdXN6aWVoZW4gYmV0cmVmZgorCisvLyBEaWUgV2Vhci1BY3Rpb25zIGltIGVpbnplbG5lbgorCisjZGVmaW5lIFdBX1dFQVIgICAgICAgICAgICAwCisjZGVmaW5lIFdBX1VOV0VBUiAgICAgICAgICAxCisKKyNlbmRpZiAvLyBfX0NMT1RISU5HX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19DTE9USElOR19IX1BST1RPX18KKyNkZWZpbmUgX19DTE9USElOR19IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworLy8gZnVuY3Rpb25zIHRoYXQgd2lsbCBiZSBjYWxsZWQgaWYgb25lIGlzc3VlcyBhIHdlYXIgY29tbWFuZCAob3IgdG8gbWFudWFsbHkKKy8vIHdlYXIgdGhpcyBhcm1vdXIKK3ZhcmFyZ3MgaW50IGRvX3dlYXIoc3RyaW5nIHN0ciwgaW50IHNpbGVudCk7CisKKy8vIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgaWYgb25lIGlzc3VlcyBhbiB1bndlYXIgY29tbWFuZCBvciB0byBtYW51YWxseQorLy8gdW53ZWFyIHRoZSBhcm1vdXIKK3ZhcmFyZ3MgaW50IGRvX3Vud2VhcihzdHJpbmcgc3RyLCBpbnQgc2lsZW50KTsKKy8vIGZ1bmN0aW9uIGlzIHRoZSByZXN0IG9mIGRvX3Vud2VhcigpIC0tIG1zZ3MgZXRjCit2YXJhcmdzIGludCBEb1Vud2VhcihpbnQgc2lsZW50LCBpbnQgYWxsKTsKKworaW50IHppZWhlKHN0cmluZyBzdHIpOworCisjZW5kaWYgLy8gX19DTE9USElOR19IX1BST1RPX18KKworI2VuZGlmCS8vIE5FRURfUFJPVE9ZUEVTCmRpZmYgLS1naXQgYS9zeXMvY29tYmF0LmggYi9zeXMvY29tYmF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAwY2JkMwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9jb21iYXQuaApAQCAtMCwwICsxLDM2MCBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGNvbWJhdC5oIC0tIFNjaGFkZW5zdHlwZW4sIFdhZmZlbi0gdW5kIFJ1ZXN0dW5nc2tsYXNzZW4gdW5kIGVpbgorLy8gICAgICAgICAgICAgcGFhciBQcm9wZXJ0aWVzIGZ1ZXIgZGFzIEthbXBmc3lzdGVtCisvLworLy8gJElkOiBjb21iYXQuaCA3MTc4IDIwMDktMDMtMDkgMjA6NDI6NDlaIFplc3N0cmEgJAorCisjaWZuZGVmIF9DT01CQVRfSF8KKyNkZWZpbmUgX0NPTUJBVF9IXworCisjaW5jbHVkZSA8d2VhcG9uLmg+CisjaW5jbHVkZSA8YXJtb3VyLmg+CisjaW5jbHVkZSA8cmFuZ2VkX3dlYXBvbi5oPgorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0aWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qIC0tLS0tLS0tLS0gS2FtcGYgYWxsZ2VtZWluIC0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBQX0VOQUJMRV9JTl9BVFRBQ0tfT1VUICJlbmFibGVfaW5fYXR0YWNrX291dCIKKyNkZWZpbmUgUF9OT19HTE9CQUxfQVRUQUNLICAgICAibm9fZ2xvYmFsX2F0dGFjayIKKyNkZWZpbmUgUF9GUklFTkQgICAgICAgICAgICAgICAiZnJpZW5kIgorI2RlZmluZSBQX0xBU1RfQ09NQkFUX1RJTUUgICAgICJsYXN0X2NvbWJhdF90aW1lIgorCisvKiAtLS0tLS0tLS0tIEJlZnJpZWRlbiAtLS0tLS0tLS0tLS0tLS0tICovCisKKyNkZWZpbmUgUF9BQ0NFUFRfUEVBQ0UgICAgICAgICAiYWNjZXB0X3BlYWNlIgorCisvKiAtLS0tLS0tLS0tIFdhZmZlbiB1bmQgUnVlc3R1bmdlbiAtLS0tLS0tLS0tICovCisKKyNkZWZpbmUgUF9MQVNUX1VTRSAgICAgICAgICAgICAibGFzdF9vYmplY3RfdXNlIgorI2RlZmluZSBQX0RBTUFHRUQgICAgICAgICAgICAgICJpdGVtX2RhbWFnZWQiCisjZGVmaW5lIFBfRUZGRUNUSVZFX1dDICAgICAgICAgImVmZmVjdGl2ZV93YyIKKyNkZWZpbmUgUF9FRkZFQ1RJVkVfQUMgICAgICAgICAiZWZmZWN0aXZlX2FjIgorI2RlZmluZSBQX1FVQUxJVFkgICAgICAgICAgICAgICJxdWFsaXR5IgorI2RlZmluZSBQX1JFU1RSSUNUSU9OUyAgICAgICAgICJyZXN0cmljdGlvbnMiCisjZGVmaW5lIFBfRVFVSVBfVElNRSAgICAgICAgICAgImVxdWlwX3RpbWUiCisKKy8qIC0tLS0tLS0tLS0gQXJ0aWxsZXJpZSAtLS0tLS0tLS0tLS0qLworCisjZGVmaW5lIFBfSVNfQVJUSUxMRVJZICAgICAgICAgImFydGlsbGVyeSIKKworLyogLS0tLS0tLS0tLSBGZXJua2FtcGZ3YWZmZW4gLS0tLS0tLS0tLSAqLworCisjZGVmaW5lIFBfU0hPT1RJTkdfV0MgICAgICAgICAgInNob290aW5nX3djIgorI2RlZmluZSBQX0FNTVVOSVRJT04gICAgICAgICAgICJtdW5pdGlvbiIKKyNkZWZpbmUgUF9TVFJFVENIX1RJTUUgICAgICAgICAic3RyZXRjaF90aW1lIgorI2RlZmluZSBQX1JBTkdFICAgICAgICAgICAgICAgICJyYW5nZSIKKyNkZWZpbmUgUF9TSE9PVElOR19BUkVBICAgICAgICAic2hvb3RpbmdfYXJlYSIKKyNkZWZpbmUgUF9UQVJHRVRfQVJFQSAgICAgICAgICAidGFyZ2V0X2FyZWEiCisKKy8qIC0tLS0tIERlZmluZXMgZnVlciBBcnJheS1Qb3NpdGlvbmVuIC0tLS0tICovCisKKyNkZWZpbmUgUldfU0laRSAgIDUKKyNkZWZpbmUgUldfRU5FTVkgIDAKKyNkZWZpbmUgUldfQU1NVSAgIDEKKyNkZWZpbmUgUldfV1JJVEUgIDIKKyNkZWZpbmUgUldfVklDVElNIDMKKyNkZWZpbmUgUldfU0FZICAgIDQKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gV2FmZmVudHlwZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBXVF9BTU1VICAgICAgICAgICJhbW11bml0aW9uIgorI2RlZmluZSBXVF9BWEUgICAgICAgICAgICJheGUiCisjZGVmaW5lIFdUX0NMVUIgICAgICAgICAgImNsdWIiCisjZGVmaW5lIFdUX0hBTkRTICAgICAgICAgImhhbmRzIgorI2RlZmluZSBXVF9LTklGRSAgICAgICAgICJrbmlmZSIKKyNkZWZpbmUgV1RfTUFHSUMgICAgICAgICAibWFnaWMiCisjZGVmaW5lIFdUX1JBTkdFRF9XRUFQT04gImZlcm53YWZmZSIKKyNkZWZpbmUgV1RfU1BFQVIgICAgICAgICAic3BlYXIiCisjZGVmaW5lIFdUX1NUQUZGICAgICAgICAgInN0YWZmIgorI2RlZmluZSBXVF9TV09SRCAgICAgICAgICJzd29yZCIKKyNkZWZpbmUgV1RfV0hJUCAgICAgICAgICAid2hpcCIKKworLy8gRnVlciBhbGxlcywgd2FzIHNpY2ggdW50ZXIgZGVuIG8uZy4gVHlwZW4gbmljaHQgZWlub3JkbmVuIGxhZXNzdAorI2RlZmluZSBXVF9NSVNDICAgICAgICAgICJtaXNjIgorCisvKiAtLS0tLS0tLS0tIExpc3RlIGFsbGVyIGVybGF1YnRlbiBXYWZmZW50eXBlbiAtLS0tLS0tLS0tICovCisKKyNkZWZpbmUgVkFMSURfV0VBUE9OX1RZUEUodCkgKG1lbWJlcigoe1wKKyAgICBXVF9TV09SRCwgV1RfQVhFLCAgV1RfQ0xVQiwgV1RfU1BFQVIsIFdUX0tOSUZFLCBXVF9BTU1VLCBXVF9NQUdJQyxcCisgICAgV1RfU1RBRkYsIFdUX1dISVAsICBXVF9NSVNDLCBXVF9SQU5HRURfV0VBUE9OIH0pLCB0ICkgIT0gLTEpCisKKy8qIC0tLS0tLS0tLS0gTWF4aW1hbCBlcmxhdWJ0ZSBXYWZmZW5zdGFlcmtlIC0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBNQVhfV0VBUE9OX0NMQVNTIDIwMAorCisjZGVmaW5lIE1BWF9UV09IQU5ERURfV0MgTUFYX1dFQVBPTl9DTEFTUworLyogRGllIEVpbmhhbHR1bmcgZGVyIEVpbmhhZW5kZXItR3JlbnplIHdpcmQgYmlzaGVyIG5pY2h0IGdhcmFudGllcnQgKi8KKyNkZWZpbmUgTUFYX09ORUhBTkRFRF9XQyAxNTAKKworLyogLS0tLS0tLS0tLSBNaW5kZXN0LVdhZmZlbnN0YWVya2UsIGRpZSBlaW5lIFdhZmZlCisgICAgICAgICAgICAgIGJlaSBlaW5lciBCZXNjaGFlZGlndW5nIGJlaGFlbHQgICAgICAgLS0tLS0tLS0tLSAqLworCisjZGVmaW5lIE1JTl9XRUFQT05fQ0xBU1MgMzAKKworLyogLS0tLS0tLS0tLSBNYXhpbWFsIGVybGF1YnRlIFBhcmllcndhZmZlbnN0YWVya2UgLS0tLS0tLS0tLSAqLworCisjZGVmaW5lIE1BWF9QQVJSWV9DTEFTUyA0MAorCisvKiAtLS0tLS0tLS0tIEF1Y2ggZnVlciBQYXJ1ZXJ3YWZmZW4gZ2lidCAKKyAgICAgICAgICAgICAgZXMgZWluZSBNaW5pbWFsc3RhZXJrZSAgICAgIC0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBNSU5fUEFSUllfQ0xBU1MgMAorCisvKiAtLS0tLS0tLS0tIERpdG8gZnVlciBSdWVzdHVuZ2VuIC0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBNSU5fQVJNT1VSX0NMQVNTIDAKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gTXVuaXRpb24gZnVlciBGZXJua2FtcGZ3YWZmZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLy8gYWxzIHggYml0dGUgX2ltbWVyXyBkZW4gTmFtZW4gZGVyIE11bml0aW9uc2FydCBpbSBQbHVyYWwgYW5nZWJlbiwKKy8vIGRpZXNlcyBlcm1vZWdsaWNodCBlaW4gYXVzd2VydGVuIHZpYSBNVU5fTkFNRSgpIHouYi4gaW4gZ2lsZGVuCisKKyNkZWZpbmUgTVVOX01JU0MoeCkgIk11bml0aW9uOiIreAorCisvLyB1ZWJlciBkaWVzZXMgZGVmaW5lIHVuZCBiaXR0ZSBfbnVyXyB1ZWJlciBkaWVzZXMgZGVmaW5lIGtvZW5uZW4KKy8vIEdpbGRlbiBvZGVyIGFlaG5saWNoZXMgZGVuIE5hbWVuIGVpbmVyIE11bml0aW9uc2FydCBlcm1pdHRlbG4uIERpZXNlcworLy8gaXN0IHdpY2h0aWcgd2VubiBuYWVoZXJlIEluZm9zIHVlYmVyIGVpbmUgV2FmZmUgYXVzZ2VnZWJlbiB3ZXJkZW4gc29sbGVuLgorLy8gQnNwLiAgIkVpbiBCb2dlbiB3aWVndCAxNTAwIEdyYW1tIHVuZCBlcmxhdWJ0IGVzIERpciBQZmVpbGUgbWl0IGVpbmVyCisvLyAgICAgICAgUmVpY2h3ZWl0ZSB2b24gNTAgbSB6dSB2ZXJzY2hpZXNzZW4uIgorLy8gc3ByaW50ZigiJXMgd2llZ3QgJWQgR3JhbW0gdW5kIGVybGF1YnQgZXMgRGlyICVzIG1pdCBlaW5lciBSZWljaHdlaXRlICIKKy8vICAgICAgICArInZvbiAlZCBtIHp1IHZlcnNjaGllc3Nlbi4iLCBvYi0+TmFtZShXRVIpLCBvYi0+UXVlcnlQcm9wKFBfV0VJR0hUKSwKKy8vICAgICAgICBNVU5fTkFNRShvYi0+UXVlcnlQcm9wKFBfQU1NVU5JVElPTikpLCBvYi0+UXVlcnlQcm9wKFBfUkFOR0UpKQorCisjZGVmaW5lIE1VTl9OQU1FKHgpIHhbOS4uXQorCisjZGVmaW5lIE1VTl9BUlJPVyAgIE1VTl9NSVNDKCJQZmVpbGUiKQorI2RlZmluZSBNVU5fU1RPTkUgICBNVU5fTUlTQygiU3RlaW5lIikKKyNkZWZpbmUgTVVOX0JPTFQgICAgTVVOX01JU0MoIkJvbHplbiIpCisjZGVmaW5lIE1VTl9EQVJUICAgIE1VTl9NSVNDKCJrbGVpbmUgQmxhc3JvaHJwZmVpbGUiKQorCisvLyBGdWVyIGRpZSBoaWVyIGRlZmluaWVydGVuIE11bml0aW9uc3R5cGVuIGdpYnQgZXMgYXVjaCBlaW5lbiBTY2h1c3MtU2tpbGwKKworI2RlZmluZSBWQUxJRF9TSE9PVF9TS0lMTCAoW1wKKyAgTVVOX0FSUk9XIDogImFycm93IixcCisgIE1VTl9TVE9ORSA6ICJzdG9uZSIsXAorICBNVU5fQk9MVCAgOiAiYm9sdCIsXAorICBNVU5fREFSVCAgOiAiZGFydCIgXSkKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2NoYWRlbnNhcnRlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKiAtLS0tLS0tLS0tIHBoeXNpa2FsaXNjaCAtLS0tLS0tLS0gKi8KKworLy8gU2NobGFnc2NoYWRlbgorI2RlZmluZSBEVF9CTFVER0VPTiAiYmx1ZGdlb24iCisKKyNkZWZpbmUgRFRfRVhQTE9TSU9OICJleHBsb3Npb24iCisKKy8vIFN0aWNoc2NoYWRlbgorI2RlZmluZSBEVF9QSUVSQ0UgInBpZXJjZSIKKworLy8gcmVpc3NlbmRlciBTY2hhZGVuL0tyYWxsZW4KKyNkZWZpbmUgRFRfUklQICJyaXAiCisKKy8vIFNjaG5pdHRzY2hhZGVuCisjZGVmaW5lIERUX1NMQVNIICJzbGFzaCIKKworLy8gUXVldHNjaHVuZ3NzY2hhZGVuCisjZGVmaW5lIERUX1NRVUVFWkUgInNxdWVlemUiCisKKy8vIHBlaXRzY2hlbmRlciBTY2hhZGVuCisjZGVmaW5lIERUX1dISVAgIndoaXAiCisKKy8qIC0tLS0tLS0tLS0gTWFwcGluZyBhbGxlciBwaHlzaWthbGlzY2hlbiBTY2hhZGVuc2FydGVuIC0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBQSFlTSUNBTF9EQU1BR0VfVFlQRVMgKFtcCisgICAgRFRfQkxVREdFT04gIDogMSxcCisgICAgRFRfRVhQTE9TSU9OIDogMSxcCisgICAgRFRfUElFUkNFICAgIDogMSxcCisgICAgRFRfUklQICAgICAgIDogMSxcCisgICAgRFRfU0xBU0ggICAgIDogMSxcCisgICAgRFRfU1FVRUVaRSAgIDogMSxcCisgICAgRFRfV0hJUCAgICAgIDogMSBdKQorCisvKiAtLS0tLS0tLS0tLSBtYWdpc2NoIC0tLS0tLS0tLS0gKi8KKworLy8gU2FldXJlCisjZGVmaW5lIERUX0FDSUQgImFjaWQiCisKKy8vIEx1ZnQobWFuZ2VsKQorI2RlZmluZSBEVF9BSVIgImFpciIKKworLy8gS2FlbHRlIG9kZXIgRWlzCisjZGVmaW5lIERUX0NPTEQgImNvbGQiCisKKy8vIEZldWVyCisjZGVmaW5lIERUX0ZJUkUgImZpcmUiCisKKy8vIGhlaWxpZ2VyIFNjaGFkZW4KKyNkZWZpbmUgRFRfSE9MWSAiaG9seSIKKworLy8gQmxpdHogb2RlciBFbGVrdHJpeml0YWV0CisjZGVmaW5lIERUX0xJR0hUTklORyAibGlnaHRuaW5nIgorCisvLyAoYWxsZy4pIE1hZ2llCisjZGVmaW5lIERUX01BR0lDICJtYWdpYyIKKworLy8gR2lmdAorI2RlZmluZSBEVF9QT0lTT04gInBvaXNvbiIKKworLy8gTGFlcm0gYnp3LiBTY2hhbGwKKyNkZWZpbmUgRFRfU09VTkQgInNvdW5kIgorCisvLyBBbmdzdAorI2RlZmluZSBEVF9URVJST1IgInRlcnJvciIKKworLy8gc2F0YW5pc2NoZXIgU2NoYWRlbgorI2RlZmluZSBEVF9VTkhPTFkgInVuaG9seSIKKworLy8gV2Fzc2VyCisjZGVmaW5lIERUX1dBVEVSICJ3YXRlciIKKworLyogLS0tLS0tLS0tLSBNYXBwaW5nIGFsbGVyIG1hZ2lzY2hlbiBTY2hhZGVuc2FydGVuIC0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBNQUdJQ0FMX0RBTUFHRV9UWVBFUyAoW1wKKyAgICBEVF9BQ0lEICAgICAgOiAxLFwKKyAgICBEVF9BSVIgICAgICAgOiAxLFwKKyAgICBEVF9DT0xEICAgICAgOiAxLFwKKyAgICBEVF9GSVJFICAgICAgOiAxLFwKKyAgICBEVF9IT0xZICAgICAgOiAxLFwKKyAgICBEVF9MSUdIVE5JTkcgOiAxLFwKKyAgICBEVF9NQUdJQyAgICAgOiAxLFwKKyAgICBEVF9QT0lTT04gICAgOiAxLFwKKyAgICBEVF9TT1VORCAgICAgOiAxLFwKKyAgICBEVF9URVJST1IgICAgOiAxLFwKKyAgICBEVF9VTkhPTFkgICAgOiAxLFwKKyAgICBEVF9XQVRFUiAgICAgOiAxIF0pCisKKworLyogLS0tLS0tLS0tLSBMaXN0ZSBhbGxlciBTY2hhZGVuc2FydGVuIC0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBBTExfREFNQUdFX1RZUEVTICAgKHsgRFRfQkxVREdFT04sIERUX1NMQVNILCBEVF9QSUVSQ0UsIERUX01BR0lDLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEVF9GSVJFLCBEVF9DT0xELCBEVF9BQ0lELCBEVF9XQVRFUiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFRfTElHSFROSU5HLCBEVF9BSVIsIERUX1BPSVNPTiwgRFRfRVhQTE9TSU9OLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEVF9TUVVFRVpFLCBEVF9TT1VORCwgRFRfUklQLCBEVF9XSElQLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEVF9IT0xZLCBEVF9VTkhPTFksIERUX1RFUlJPUiB9KQorCisvKiBJc3QgeCBlaW4gZ3VlbHRpZ2VyIFNjaGFkZW5zdHlwIGRlciBNdWRsaWI/ICovCisjZGVmaW5lIFZBTElEX0RBTUFHRV9UWVBFKHgpIChtZW1iZXIoQUxMX0RBTUFHRV9UWVBFUywgeCkgPiAtMSkKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gUnVlc3R1bmdzdHlwZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBBVF9BTVVMRVQgICAiQW11bGV0dCIKKyNkZWZpbmUgQVRfQVJNT1VSICAgIlJ1ZXN0dW5nIgorI2RlZmluZSBBVF9CRUxUICAgICAiR3VlcnRlbCIKKyNkZWZpbmUgQVRfQk9PVCAgICAgIlNjaHVoZSIKKyNkZWZpbmUgQVRfQ0xPQUsgICAgIlVtaGFuZyIKKyNkZWZpbmUgQVRfR0xPVkUgICAgIkhhbmRzY2h1aCIKKyNkZWZpbmUgQVRfSEVMTUVUICAgIkhlbG0iCisjZGVmaW5lIEFUX1FVSVZFUiAgICJLb2VjaGVyIgorI2RlZmluZSBBVF9SSU5HICAgICAiUmluZyIKKyNkZWZpbmUgQVRfU0hJRUxEICAgIlNjaGlsZCIKKyNkZWZpbmUgQVRfVFJPVVNFUlMgIkhvc2VuIgorCisvLyBGdWVyIGFsbGVzLCB3YXMgc2ljaCB1bnRlciBkZW4gby5nLiBUeXBlbiBuaWNodCBlaW5vcmRuZW4gbGFlc3N0CisjZGVmaW5lIEFUX01JU0MgICAgICJNaXNjIgorCisvLyBSdWVzdHVuZ2VuLCBkaWUgbmljaHQgYW5nZXpvZ2VuIHdlcmRlbiBrb2VubmVuL2R1ZXJmZW4KKyNkZWZpbmUgQVRfSUxMRUdBTCAgIklMTEVHQUwiCisKKy8qIC0tLS0tLS0tLS0gTGlzdGUgYWxsZXIgZXJsYXVidGVuIFJ1ZXN0dW5nc3R5cGVuIC0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBWQUxJRF9BUk1PVVJfVFlQRSh0KSAobWVtYmVyKCh7XAorICAgIEFUX0FSTU9VUiwgQVRfSEVMTUVULCBBVF9SSU5HLCBBVF9HTE9WRSwgQVRfQ0xPQUssIEFUX0JPT1QsXAorICAgIEFUX1RST1VTRVJTLCBBVF9TSElFTEQsIEFUX0FNVUxFVCwgQVRfTUlTQywgQVRfQkVMVCxcCisgICAgQVRfUVVJVkVSfSksIHQgKSAhPSAtMSkKKworLyogLS0tLS0tLS0tLSBNYXBwaW5nIG1pdCBkZW4gbWF4aW1hbCBlcmxhdWJ0ZW4gCisgICAgICAgICAgICAgIFJ1ZXN0dW5nc3dlcnRlbiBkZXIgZWluemVsbmVuIFJ1ZXN0dW5nc3R5cGVuIC0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBWQUxJRF9BUk1PVVJfQ0xBU1MgKFsgXAorICAgIEFUX0FNVUxFVCAgIDogIDIgLFwKKyAgICBBVF9BUk1PVVIgICA6IDUwICxcCisgICAgQVRfQkVMVCAgICAgOiAgMiAsXAorICAgIEFUX0JPT1QgICAgIDogIDYgLFwKKyAgICBBVF9DTE9BSyAgICA6IDEwICxcCisgICAgQVRfR0xPVkUgICAgOiAgNSAsXAorICAgIEFUX0hFTE1FVCAgIDogMTUgLFwKKyAgICBBVF9RVUlWRVIgICA6ICAwICxcCisgICAgQVRfUklORyAgICAgOiAgMiAsXAorICAgIEFUX1NISUVMRCAgIDogNDAgLFwKKyAgICBBVF9UUk9VU0VSUyA6IDE1ICxcCisgICAgQVRfTUlTQyAgICAgOiAgMCBdKQorCisvKiAtLS0tLS0tLS0tIE1hcHBpbmcgbWl0IGRlbiBSdWVzdHVuZ3N3ZXJ0ZW4sIGFiIGRlbmVuCisgICAgICAgICAgICAgIGRpZSBSdWVzdHVuZyBpbSBMYWRlbiBlaW5iZWhhbHRlbiB3ZXJkZW4gIC0tLS0tLS0tLS0gKi8KKworI2RlZmluZSBLRUVQX0FSTU9VUl9DTEFTUyAoWyBcCisgICAgQVRfQU1VTEVUICAgOiAgMiAsXAorICAgIEFUX0FSTU9VUiAgIDogMzUgLFwKKyAgICBBVF9CRUxUICAgICA6ICAyICxcCisgICAgQVRfQk9PVCAgICAgOiAgNSAsXAorICAgIEFUX0NMT0FLICAgIDogIDcgLFwKKyAgICBBVF9HTE9WRSAgICA6ICA1ICxcCisgICAgQVRfSEVMTUVUICAgOiAxMiAsXAorICAgIEFUX1FVSVZFUiAgIDogIDEgLFwKKyAgICBBVF9SSU5HICAgICA6ICAyICxcCisgICAgQVRfU0hJRUxEICAgOiAyNiAsXAorICAgIEFUX1RST1VTRVJTIDogMTIgLFwKKyAgICBBVF9NSVNDICAgICA6ICAxIF0pCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tIERlZmluZXMgZnVlciBLYW1wZmtvbW1hbmRvcyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjZGVmaW5lIENfQVZHICJhdmciCisjZGVmaW5lIENfTUFYICJtYXgiCisjZGVmaW5lIENfTUlOICJtaW4iCisjZGVmaW5lIENfRFRZUEVTICJkdHlwZXMiCisjZGVmaW5lIENfSEVBTCAiaGVhbCIKKworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBEZWZpbmVzIGZ1ZXIgZXJ3ZWl0ZXJ0ZSBEZWZlbmRpbmZvcm1hdGlvbmVuIC0tICovCisjZGVmaW5lIEVJTkZPX0RFRkVORAkJImVpbmZvX2RlZmVuZCIKKyNkZWZpbmUgT1JJR0lOQUxfREFNCQkib3JpZ2luYWxfZGFtIgorI2RlZmluZSBPUklHSU5BTF9EQU1UWVBFCSJvcmlnaW5hbF9kYW10eXBlIgorI2RlZmluZSBDVVJSRU5UX0RBTQkJImN1cnJlbnRfZGFtIgorI2RlZmluZSBDVVJSRU5UX0RBTVRZUEUJCSJjdXJyZW50X2RhbXR5cGUiCisjZGVmaW5lIE9SSUdJTkFMX0FJTkZPICAJIm9yaWdpbmFsX2FpbmZvIgorI2RlZmluZSBFTkVNWV9JTlNFUlRFRAkJImVuZW15X2luc2VydGVkIgorI2RlZmluZSBSRlJfUkVEVUNFCQkicmZyX3JlZHVjZSIKKyNkZWZpbmUgUFJFU0VOVF9ERUZFTkRFUlMgIAkicHJlc2VudF9kZWZlbmRlcnMiCisjZGVmaW5lIERFRkVORElOR19ERUZFTkRFUgkiZGVmZW5kaW5nX2RlZmVuZGVyIgorI2RlZmluZSBERUZFTkRfSE9PSwkJImRlZmVuZF9ob29rIgorI2RlZmluZSBERUZFTkRfQVJNT1VSUwkJImRlZmVuZF9hcm1vdXJzIgorI2RlZmluZSBERUZFTkRfR1VJTEQJCSJkZWZlbmRfZ3VpbGQiCisjZGVmaW5lIERFRkVORF9SRVNJCQkiZGVmZW5kX3Jlc2kiCisjZGVmaW5lIERFRkVORF9CT0RZCQkiZGVmZW5kX2JvZHkiCisjZGVmaW5lIERFRkVORF9MT1NUTFAJCSJkZWZlbmRfbG9zdGxwIgorI2RlZmluZSBERUZFTkRfQ1VSX0FSTU9VUl9QUk9UCSJkZWZlbmRfY3VyX2FybW91cl9wcm90IgorCisjZGVmaW5lIERFRl9ERUZFTkRFUgkJMAorI2RlZmluZSBERUZfREFNCQkJMQorI2RlZmluZSBERUZfREFNVFlQRQkJMgorI2RlZmluZSBERUZfU1BFTEwJCTMKKworI2RlZmluZSBIT09LX0RBTQkJMAorI2RlZmluZSBIT09LX0RBTVRZUEUJCTEKKyNkZWZpbmUgSE9PS19TUEVMTAkJMgorI2RlZmluZSBESV9OT0hPT0sJCTAKKyNkZWZpbmUgRElfSE9PSwkJCTEKKyNkZWZpbmUgRElfSE9PS0lOVEVSUlVQVAkyCisKKyNkZWZpbmUgREVGX0FSTU9VUl9EQU0JCTAKKyNkZWZpbmUgREVGX0FSTU9VUl9QUk9UCQkxCisKKyNkZWZpbmUgR1VJTERfREFNCQkwCisjZGVmaW5lIEdVSUxEX0RBTVRZUEUJCTEKKworI2VuZGlmCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3RvdHlwZW4tRGVrbGFyYXRpb25lbiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWZuZGVmIF9fQ09NQkFUX0hfUFJPVE9UWVBFU19fCisjZGVmaW5lIF9fQ09NQkFUX0hfUFJPVE9UWVBFU19fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2VuZGlmIC8vIE5FRURfUFJPVE9UWVBFUworCisjZW5kaWYgLy8gX19DT01CQVRfSF9QUk9UT1RZUEVTX18KKwpkaWZmIC0tZ2l0IGEvc3lzL2NvbW0uaCBiL3N5cy9jb21tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZhZWIzMwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9jb21tLmgKQEAgLTAsMCArMSwxNSBAQAorI2lmbmRlZiBMUENfQ09NTV9IXworI2RlZmluZSBMUENfQ09NTV9IXworCisvKiByZXR1cm4gdmFsdWVzIGZvciBuZXRfY29ubmVjdCgpICovCisKKyNkZWZpbmUgTkNfU1VDQ0VTUyAgICAgICAgIDAgIC8qIFN1Y2Nlc3MhICovCisjZGVmaW5lIE5DX0VVTktOT1dOSE9TVCAgICAxICAvKiBob3N0IGFkZHJlc3MgY291bGQgbm90IGJlIHJlc29sdmVkICovCisjZGVmaW5lIE5DX0VOT1NPQ0tFVCAgICAgICAyICAvKiBzb2NrZXQgY291bGQgbm90IGJlIGNyZWF0ZWQgKi8KKyNkZWZpbmUgTkNfRU5PQklORCAgICAgICAgIDMgIC8qIHNvY2tldCBjb3VsZCBub3QgYmUgYm91bmQgKi8KKyNkZWZpbmUgTkNfRU5PQ09OTkVDVCAgICAgIDQgIC8qIHNvY2tldCBjb3VsZCBub3QgYmUgY29ubmVjdGVkICovCisjZGVmaW5lIE5DX0VDT05OUkVGVVNFRCAgICA1ICAvKiB0YXJnZXQgYWRkcmVzcyBub3QgbGlzdGVuaW5nICovCisjZGVmaW5lIE5DX0VNQ09OTiAgICAgICAgICA2ICAvKiB0b28gbWFueSBwZW5kaW5nIGNvbm5lY3Rpb25zICovCisjZGVmaW5lIE5DX0VOT1JFU1NPVVJDRVMgICA3ICAvKiBpbnN1ZmZpY2llbnQgc3lzdGVtIHJlc3NvdXJjZXMgKi8KKworI2VuZGlmIC8qIExQQ19DT01NX0hfICovCmRpZmYgLS1naXQgYS9zeXMvY29tbWFuZHMuaCBiL3N5cy9jb21tYW5kcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5ODIzNzIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvY29tbWFuZHMuaApAQCAtMCwwICsxLDUwIEBACisjaWZuZGVmIExQQ19DT01NQU5EU19IXworI2RlZmluZSBMUENfQ09NTUFORFNfSF8KKworLyogRmxhZ3MgYWNjZXB0ZWQgYnkgYWRkX2FjdGlvbihmdW4sIHZlcmIsIGZsYWcpLgorICogKEJlbG93LCBWRVJCIGlzIHdoYXQgdGhlIHBsYXllciBlbnRlcnMpLgorICogTmVnYXRpdmUgZmxhZyB2YWx1ZXMgYWxsb3cgVkVSQiB0byBiZSBqdXN0IHRoZSBmaXJzdCAtPGZsYWc+CisgKiBjaGFyYWN0ZXJzIG9mIDx2ZXJiPiAoYWJicmV2aWF0ZWQgdmVyYikuCisgKi8KKworI2RlZmluZSBBQV9WRVJCICAgICAwICAvKiBWRVJCIG11c3QgYmUgPHZlcmI+ICovCisjZGVmaW5lIEFBX1NIT1JUICAgIDEgIC8qIFZFUkIgbXVzdCBzdGFydCB3aXRoIDx2ZXJiPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICogYXJncyBkbyBub3QgaW5jbHVkZSBleHRyYSBjaGFyYWN0ZXJzICovCisjZGVmaW5lIEFBX05PU1BBQ0UgIDIgIC8qIFZFUkIgbXVzdCBzdGFydCB3aXRoIDx2ZXJiPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICogYXJncyBhbmQgdmVyYiBkbyBpbmNsdWRlIGV4dHJhIGNoYXJhY3RlcnMgKi8KKyNkZWZpbmUgQUFfSU1NX0FSR1MgMyAgLyogVkVSQiBtdXN0IHN0YXJ0IHdpdGggPHZlcmI+LAorICAgICAgICAgICAgICAgICAgICAgICAgKiBhcmdzIGRvIGluY2x1ZGUgZXh0cmEgY2hhcmFjdGVycyAqLworCisvKiBCaXRmbGFncyBhY2NlcHRlZCBieSAgcXVlcnlfYWN0aW9ucyhvYmplY3Qgb2IsIGludCBtYXNrKQorICovCisKKyNkZWZpbmUgUUFfVkVSQiAgICAgICAgIDEKKyNkZWZpbmUgUUFfVFlQRSAgICAgICAgIDIKKyNkZWZpbmUgUUFfU0hPUlRfVkVSQiAgIDQKKyNkZWZpbmUgUUFfT0JKRUNUICAgICAgIDgKKyNkZWZpbmUgUUFfRlVOQ1RJT04gICAgMTYKKworCisvKiBJbmRpY2VzIGluIHRoZSBhcnJheXMgcmV0dXJuZWQgZnJvbSBjb21tYW5kX3N0YWNrKCkKKyAqLworCisjZGVmaW5lIENNRF9WRVJCICAgICAgIDAKKyNkZWZpbmUgQ01EX1RFWFQgICAgICAgMQorI2RlZmluZSBDTURfT1JJR0lOICAgICAyCisjZGVmaW5lIENNRF9QTEFZRVIgICAgIDMKKyNkZWZpbmUgQ01EX0ZBSUwgICAgICAgNAorI2RlZmluZSBDTURfRkFJTE9CSiAgICA1CisKKyNkZWZpbmUgQ01EX1NJWkUgICAgICAgNgorCisKKy8qIEluZGljZXMgaW50byB0aGUgc3ViYXJyYXlzIHJldHVybmVkIGZyb20gbWF0Y2hfY29tbWFuZCgpCisgKi8KKyNkZWZpbmUgQ01ETV9WRVJCICAgICAwCisjZGVmaW5lIENNRE1fQVJHICAgICAgMQorI2RlZmluZSBDTURNX09CSkVDVCAgIDIKKyNkZWZpbmUgQ01ETV9GVU4gICAgICAzCisKKyNkZWZpbmUgQ01ETV9TSVpFICAgICA0CisKKyNlbmRpZiAvKiBMUENfQ09NTUFORFNfSF8gKi8KZGlmZiAtLWdpdCBhL3N5cy9jb25maWd1cmF0aW9uLmggYi9zeXMvY29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyYzBiODgKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvY29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEsNDAgQEAKKyNpZm5kZWYgTFBDX0NPTkZJR1VSQVRJT05fSF8KKyNkZWZpbmUgTFBDX0NPTkZJR1VSQVRJT05fSF8KKworLyogRGVmaW5pdGlvbiBvZiBhcmd1bWVudCB2YWx1ZXMgZm9yIHRoZSBjb25maWd1cmVfKigpIGVmdW5zLgorICovCisKKy8qIFBvc3NpYmxlIG9wdGlvbnMgZm9yIGNvbmZpZ3VyZV9pbnRlcmFjdGl2ZSgpLgorICovCisjZGVmaW5lIElDX01BWF9XUklURV9CVUZGRVJfU0laRSAgICAgICAgIDAKKyNkZWZpbmUgSUNfU09DS0VUX0JVRkZFUl9TSVpFICAgICAgICAgICAgMQorI2RlZmluZSBJQ19DT01CSU5FX0NIQVJTRVRfQVNfU1RSSU5HICAgICAyCisjZGVmaW5lIElDX0NPTUJJTkVfQ0hBUlNFVF9BU19BUlJBWSAgICAgIDMKKyNkZWZpbmUgSUNfQ09OTkVDVElPTl9DSEFSU0VUX0FTX1NUUklORyAgNAorI2RlZmluZSBJQ19DT05ORUNUSU9OX0NIQVJTRVRfQVNfQVJSQVkgICA1CisjZGVmaW5lIElDX1FVT1RFX0lBQyAgICAgICAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgSUNfVEVMTkVUX0VOQUJMRUQgICAgICAgICAgICAgICAgNworI2RlZmluZSBJQ19NQ0NQICAgICAgICAgICAgICAgICAgICAgICAgICA4CisjZGVmaW5lIElDX1BST01QVCAgICAgICAgICAgICAgICAgICAgICAgIDkKKyNkZWZpbmUgSUNfTUFYX0NPTU1BTkRTICAgICAgICAgICAgICAgICAxMAorI2RlZmluZSBJQ19NT0RJRllfQ09NTUFORCAgICAgICAgICAgICAgIDExCisKKy8qIFBvc3NpYmxlIG9wdGlvbnMgZm9yIGNvbmZpZ3VyZV9vYmplY3QoKS4KKyAqLworI2RlZmluZSBPQ19DT01NQU5EU19FTkFCTEVEICAgIDAKKyNkZWZpbmUgT0NfSEVBUlRfQkVBVCAgICAgICAgICAxCisKKy8qIFBvc3NpYmxlIG9wdGlvbnMgZm9yIGNvbmZpZ3VyZV9kcml2ZXIoKS4KKyAqLworI2RlZmluZSBEQ19NRU1PUllfTElNSVQgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIERDX0VOQUJMRV9IRUFSVF9CRUFUUyAgICAgICAgICAgIDEKKyNkZWZpbmUgRENfTE9OR19FWEVDX1RJTUUgICAgICAgICAgICAgICAgMgorI2RlZmluZSBEQ19EQVRBX0NMRUFOX1RJTUUgICAgICAgICAgICAgICAzCisjZGVmaW5lIERDX1RMU19DRVJUSUZJQ0FURSAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgRENfVExTX0RIRV9QQVJBTUVURVIgICAgICAgICAgICAgNQorI2RlZmluZSBEQ19UTFNfQ0lQSEVSTElTVCAgICAgICAgICAgICAgICA2CisjZGVmaW5lIERDX0VYVFJBX1dJWklORk9fU0laRSAgICAgICAgICAgIDcKKyNkZWZpbmUgRENfREVGQVVMVF9SVU5USU1FX0xJTUlUUyAgICAgICAgOAorI2RlZmluZSBEQ19TV0FQX0NPTVBBQ1RfTU9ERSAgICAgICAgICAgICA5CisKKyNlbmRpZiAvKiBMUENfQ09ORklHVVJBVElPTl9IXyAqLwpkaWZmIC0tZ2l0IGEvc3lzL2NvbnRhaW5lci5oIGIvc3lzL2NvbnRhaW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1NTU2MTAKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvY29udGFpbmVyLmgKQEAgLTAsMCArMSw3MyBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGNvbnRhaW5lci5oIC0tIFByb3BlcnRpZXMgdW5kIERlZmluaXRpb25lbiBmdWVyIEJlaGFlbHRlcgorLy8KKy8vICRJZDogY29udGFpbmVyLmggOTAyMCAyMDE1LTAxLTEwIDIxOjQ5OjQxWiBaZXNzdHJhICQKKworI2lmbmRlZiBfX0NPTlRBSU5FUl9IX18KKyNkZWZpbmUgX19DT05UQUlORVJfSF9fCisKKyNpbmNsdWRlIDx0aGluZy9yZXN0cmljdGlvbnMuaD4KKworLy8gcHJvcGVydGllcworI2RlZmluZSBQX0NPTlRFTlRTICAgICAgICAgICAgImNvbnRlbnRzIiAgICAgICAgICAgIC8vIE9ic29sZXQhISEKKworI2RlZmluZSBQX0NPTlRBSU5FUiAgICAgICAgICAgImNvbnRhaW5lciIgICAgICAgICAgLy8gT2JqZWt0IGlzdCBlaW4gQ29udGFpbmVyCisjZGVmaW5lIFBfQ05UX1NUQVRVUyAgICAgICAgICAiY250X3N0YXR1cyIgICAgICAgICAvLyBTdGF0dXMgZGVzIENvbnRhaW5lcnMKKyNkZWZpbmUgUF9UUkFOU1BBUkVOVCAgICAgICAgICJ0cmFuc3BhcmVudCIgICAgICAgIC8vIGthbm4gbWFuIGhpbmVpbnNjaGF1bj8KKyNkZWZpbmUgUF9MSUdIVF9UUkFOU1BBUkVOQ1kgICJsaWdodF90cmFuc3BhcmVuY3kiIC8vIExpY2h0ZHVyY2hsYWVzc2lna2VpdAorCisjZGVmaW5lIFBfUFJFUE9TSVRJT04gICAgICAgICAicHJlcG9zaXRpb24iICAgICAgICAvLyBTYWNoZW4gSU4gZGVtIENvbnRhaW5lcgorI2RlZmluZSBQX1NPVVJDRV9QUkVQT1NJVElPTiAgInNvdXJjZV9wcmVwb3NpdGlvbiIgLy8ga2FubiBtYW4gQVVTIGlobSBuZWhtZW4KKyNkZWZpbmUgUF9ERVNUX1BSRVBPU0lUSU9OICAgICJkZXN0X3ByZXBvc2l0aW9uIiAgIC8vIC4uLndpZWRlciBJTiBpaG4gc3RlY2tlbgorCisjZGVmaW5lIFBfTUFYX1dFSUdIVCAgICAgICAgICAibWF4X3dlaWdodCIgICAgICAgICAvLyBtYXguIEdld2ljaHQKKyNkZWZpbmUgUF9XRUlHSFRfUEVSQ0VOVCAgICAgICJ3ZWlnaHRfcGVyY2VudCIgICAgIC8vIEdld2ljaHRzcmVkdWt0aW9uIGluICUKKworI2RlZmluZSBQX1RPVEFMX09CSkVDVFMgICAgICAgInRvdGFsX29iamVjdHMiICAgICAgLy8gIyBkZXIgbm9uLWludmlzIE9iamVrdGUKKyNkZWZpbmUgUF9NQVhfT0JKRUNUUyAgICAgICAgICJtYXhfb2JqZWN0cyIgICAgICAgIC8vIG1heC4gT2JqZWt0YW56YWhsCisKKyNkZWZpbmUgUF9JTlRfTElHSFQgICAgICAgICAgICJpbnRfbGlnaHQiCisKKyNkZWZpbmUgUF9JVEVNUyAgICAgICAgICAgICAgICJpdGVtcyIgICAgICAgICAgICAgIC8vIHNpZWhlIEFkZEl0ZW0oKQorCisjZGVmaW5lIFBfUFJFVkVOVF9QSUxFICAgICAgICAicHJldmVudF9waWxlIiAgICAgICAvLyBzaWVoZSAvc3RkL2NvcnBzZQorI2RlZmluZSBQX1BJTEVfTkFNRSAgICAgICAgICAgInBpbGVfbmFtZSIgICAgICAgICAgLy8gTmFtZSBkZXMgU3BpZWxlcnMgaW0gRGF0aXYKKworLy8gc3BlY2lhbCBkZWZpbmVzCisjZGVmaW5lIENOVF9TVEFUVVNfT1BFTiAgIDAKKyNkZWZpbmUgQ05UX1NUQVRVU19DTE9TRUQgMQorI2RlZmluZSBDTlRfU1RBVFVTX0xPQ0tFRCAyCisKKyNkZWZpbmUgUl9JTlNFUlQgImluc2VydCIKKworI2RlZmluZSBDTlRfQVJSQVkgICAgICAgMQorI2RlZmluZSBDTlRfQ09MTEVDVCAgICAgMgorCisjZW5kaWYgLy8gX19DT05UQUlORVJfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0NPTlRBSU5FUl9IX1BST1RPX18KKyNkZWZpbmUgX19DT05UQUlORVJfSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKKy8vIGZyb206IGNvbnRhaW5lci9kZXNjcmlwdGlvbi5jCit2YXJhcmdzIG1peGVkIG1ha2VfaW52bGlzdChvYmplY3Qgdmlld2VyLCBtaXhlZCBpbnYsIGludCBhcnJheSk7CisKKy8vIGZyb206IGNvbnRhaW5lci9yZXN0cmljdGlvbnMuYworaW50IHF1ZXJ5X3dlaWdodF9jb250ZW50cygpOworc3RhdGljIGludCBfcXVlcnlfbGFzdF9jb250ZW50X2NoYW5nZSgpOworCitpbnQgTWF5QWRkV2VpZ2h0KGludCB3KTsKK2ludCBNYXlBZGRPYmplY3Qob2JqZWN0IG9iKTsKK3B1YmxpYyBpbnQgUHJldmVudEluc2VydChvYmplY3Qgb2IpOworcHVibGljIGludCBQcmV2ZW50TGVhdmUob2JqZWN0IG9iLCBtaXhlZCBkZXN0KTsKK29iamVjdCAqcHJlc2VudF9vYmplY3RzKHN0cmluZyBjb21wbGV4X2Rlc2MpOworb2JqZWN0ICpsb2NhdGVfb2JqZWN0cyhzdHJpbmcgY29tcGxleF9kZXNjLGludCBpbmZvKTsKKworLy8gY29udGFpbmVyL2l0ZW1zLmMKK3B1YmxpYyB2YXJhcmdzIG9iamVjdCAgICAgQWRkSXRlbSggbWl4ZWQgZmlsZW5hbWUsIGludCByZWZyZXNoLCBtaXhlZCBwcm9wcyk7CisjZW5kaWYgLy8gX19DT05UQUlORVJfSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPVFlQRVMKZGlmZiAtLWdpdCBhL3N5cy9jb250YWluZXIvbW9uZXloYW5kbGVyLmggYi9zeXMvY29udGFpbmVyL21vbmV5aGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZGYzYjcKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvY29udGFpbmVyL21vbmV5aGFuZGxlci5oCkBAIC0wLDAgKzEsMjAgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBjb250YWluZXIvbW9uZXloYW5kbGVyLmggLS0gRGFzIC1HZWxkLUludGVyZmFjZQorLy8KKy8vICRJZDogbW9uZXloYW5kbGVyLmgsdiAzLjEgMTk5Ny8wMi8xMiAxMzoyOTowOSBXYXJnb24gRXhwICQKKworI2lmbmRlZiBfX0NPTlRBSU5FUl9NT05FWUhBTkRMRVJfSF9fCisjZGVmaW5lIF9fQ09OVEFJTkVSX01PTkVZSEFORExFUl9IX18KKworI2VuZGlmCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKyNpZm5kZWYgX19DT05UQUlORVJfTU9ORVlIQU5ETEVSX0hfUFJPVE9fXworI2RlZmluZSBfX0NPTlRBSU5FUl9NT05FWUhBTkRMRVJfSF9QUk9UT19fCisKK2ludCBBZGRNb25leShpbnQgYW1vdW50KTsKK2ludCBRdWVyeU1vbmV5KCk7CisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvZGFlbW9uLmggYi9zeXMvZGFlbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQ3OWJjYQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9kYWVtb24uaApAQCAtMCwwICsxLDEwIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gZGFlbW9uLmggLS0gRGVmaW5pdGlvbmVuIGZ1ZXIgT2JqZWt0ZSBpbiAvcC9kYWVtb24vCisvLworLy8gJElkOiBkYWVtb24uaCA3NDE5IDIwMTAtMDItMDcgMjE6MDQ6NDBaIFplc3N0cmEgJAorCisjaW5jbHVkZSAiL3N5cy9kYWVtb24vY2hhbm5lbC5oIiAgICAvLyBjaGFubmVsIGhhbmRsaW5nCisjaW5jbHVkZSAiL3N5cy9kYWVtb24vb2JqZWN0LmgiICAgICAvLyBwZXJzaXN0ZW50IG9iamVjdCBoYW5kbGluZworI2luY2x1ZGUgIi9zeXMvZGFlbW9uL3RyYXZlbGQuaCIgICAgLy8gVFJBVkVMIGRhZW1vbgorI2luY2x1ZGUgIi9zeXMvZGFlbW9uL21hbmQuaCIgICAgICAgLy8gTUFOIGRhZW1vbgpkaWZmIC0tZ2l0IGEvc3lzL2RhZW1vbi9jaGFubmVsLmggYi9zeXMvZGFlbW9uL2NoYW5uZWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjUxMmUwCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2RhZW1vbi9jaGFubmVsLmgKQEAgLTAsMCArMSw2IEBACisvLyBjaC5oIC0gY2hhbm5lbCBkYWVtb24gZGVmaW5lcworLy8gLS0KKy8vICR0aW1lc3RhbXA6OiQKKworI2luY2x1ZGUgIi9wL2RhZW1vbi9jaGFubmVsLmgiCisKZGlmZiAtLWdpdCBhL3N5cy9kYWVtb24vbWFuZC5oIGIvc3lzL2RhZW1vbi9tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA5ZjhkNQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9kYWVtb24vbWFuZC5oCkBAIC0wLDAgKzEsMjIgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBtYW5kLmgKKy8vCisvLyAkSWQ6IG1hbmQuaCA2Njk4IDIwMDgtMDEtMjkgMjM6MjY6MDhaIFplc3N0cmEgJAorCisKKyNpZm5kZWYgX19NQU5EX0hfXworI2RlZmluZSBfX01BTkRfSF9fCisKKyNkZWZpbmUgTUFORF9ET0NESVIgIi9kb2MvIgorI2RlZmluZSBNQU5EX0VYQ0xVREUgKHsgIjMuMCIsIktVUlMiLCJiZWlzcGllbGUiLCJvbGQiLCJuZXciLCAiaW5mb21haWxzIn0pCisjZGVmaW5lIE1BTkQgIi9wL2RhZW1vbi9tYW5kIgorCisjZW5kaWYKKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworI2lmbmRlZiBfX01BTkRfSF9QUk9UT1NfXworI2RlZmluZSBfX01BTkRfSF9QUk9UT1NfXworCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL2RhZW1vbi9vYmplY3QuaCBiL3N5cy9kYWVtb24vb2JqZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVjMDZhYwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9kYWVtb24vb2JqZWN0LmgKQEAgLTAsMCArMSw0MSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIE9CSkVDVC5IIC0tIHBlcnNpc3RlbnQgb2JqZWN0IGhhbmRsaW5nCisvLworLy8gJERhdGU6IDIwMDIvMDgvMjggMTA6MDQ6MjggJAorLy8gJFJldmlzaW9uOiAxLjEgJAorLyogJExvZzogb2JqZWN0LmgsdiAkCisgKiBSZXZpc2lvbiAxLjEgIDIwMDIvMDgvMjggMTA6MDQ6MjggIFJpa3VzCisgKiBJbml0aWFsIHJldmlzaW9uCisgKgorICogUmV2aXNpb24gMS4xICAxOTk1LzAzLzMxICAxMzozMDozMyAgSGF0ZQorICogSW5pdGlhbCByZXZpc2lvbgorICoKKyAqIFJldmlzaW9uIDEuMSAgMTk5NC8wMy8yMCAgMTc6MDc6MjggIEhhdGUKKyAqIEluaXRpYWwgcmV2aXNpb24KKyAqCisgKi8KKyAKKyNpZm5kZWYgX19PQkpFQ1RfSF9fCisjZGVmaW5lIF9fT0JKRUNUX0hfXworCisvLyBkZWZpbmVzCisjZGVmaW5lIE9CSkVDVEQgICAgICAgIi9wL2RhZW1vbi9vYmplY3RkIgorI2RlZmluZSBPQkpFQ1REX1NBVkUgICIvcC9kYWVtb24vc2F2ZS9vYmplY3RkIgorCisjZW5kaWYgLy8gX19PQkpFQ1RfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX09CSkVDVF9IX1BST1RPX18KKyNkZWZpbmUgX19PQkpFQ1RfSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKK21peGVkIEFkZE9iamVjdChzdHJpbmcgb2JqLCBzdHJpbmcgZW52KTsKK21peGVkIFJlbW92ZU9iamVjdChzdHJpbmcgb2JqLCBzdHJpbmcgZW52KTsKK3ZhcmFyZ3Mgdm9pZCBRdWVyeU9iamVjdChtaXhlZCBlbnYpOworCisKKyNlbmRpZiAvLyBfX09CSkVDVF9IX1BST1RPX18KKworI2VuZGlmCS8vIE5FRURfUFJPVE9ZUEVTCmRpZmYgLS1naXQgYS9zeXMvZGFlbW9uL3RyYXZlbGQuaCBiL3N5cy9kYWVtb24vdHJhdmVsZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxN2E2MzcKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZGFlbW9uL3RyYXZlbGQuaApAQCAtMCwwICsxLDIyIEBACisjaWZuZGVmIF9fVFJBVkVMRF9IX18KKyNkZWZpbmUgX19UUkFWRUxEX0hfXworCisjZGVmaW5lIFRSQVZFTEQgICAgICAgICAgIi9wL2RhZW1vbi90cmF2ZWxkIgorI2RlZmluZSBUUkFWRUxEX1NBVkVGSUxFICIvcC9kYWVtb24vc2F2ZS90cmF2ZWxkIgorCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9fVFJBVkVMRF9IX1BST1RPX18KKyNkZWZpbmUgX19UUkFWRUxEX0hfUFJPVE9fXworCitwdWJsaWMgdm9pZCBBZGRTdG9wKHN0cmluZyBzaGlwLCBzdHJpbmcgaGFyYm91cik7CitwdWJsaWMgdm9pZCBSZW1vdmVUcmFuc3BvcnRlcihvYmplY3Qgc2hpcCk7CitwdWJsaWMgdmFyYXJncyBtaXhlZCBIYXNUcmFuc3BvcnRlcihvYmplY3QgaGFyYm91ciwgc3RyaW5nIHNoaXApOworcHVibGljIG1peGVkIFJvdXRlRXhpc3RzKG9iamVjdCBzaGlwLCBzdHJpbmcgZGVzdCk7CitwdWJsaWMgbWFwcGluZyBRdWVyeVNoaXBzKCk7CitwdWJsaWMgbWFwcGluZyBRdWVyeUFsbEhhcmJvdXJzKCk7CisKKyNlbmRpZiAvLyBfX1RSQVZFTERfSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPVFlQRVMKKworI2VuZGlmIC8vIF9fVFJBVkVMRF9IX18KZGlmZiAtLWdpdCBhL3N5cy9kYWVtb24vd2hvaXMuaCBiL3N5cy9kYWVtb24vd2hvaXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjI2ODJjCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2RhZW1vbi93aG9pcy5oCkBAIC0wLDAgKzEsMjEgQEAKKyNpZm5kZWYgX19EQUVNT05fV0hPSVNfSF9fCisjZGVmaW5lIF9fREFFTU9OX1dIT0lTX0hfXworCisjZGVmaW5lIFdIT0lTICAgICAgICAgIi9wL2RhZW1vbi91ZHAvd2hvaXMiCisKKyNkZWZpbmUgREVTQ1IgICAwCisjZGVmaW5lIENPVU5UUlkgMQorI2RlZmluZSBEQVRFICAgIDIKKyNkZWZpbmUgTkVUTkFNRSAzCisKKworLy8gcHJvdG90eXBlcworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCittaXhlZCB3aG9pcyhzdHJpbmcgcXVlcnksIGludCB0eXBlKTsKK3N0cmluZyBjb3VudHJ5KHN0cmluZyBxdWVyeSk7CitzdHJpbmcgY2l0eShzdHJpbmcgcXVlcnkpOworc3RyaW5nIGxvY2F0ZShzdHJpbmcgcXVlcnksIHN0cmluZyBpcCk7CisKKyNlbmRpZiAvKiBORUVEX1BST1RPVFlQRVMgKi8KKyNlbmRpZiAvKiBfX0RBRU1PTl9XSE9JU19IX18gKi8KZGlmZiAtLWdpdCBhL3N5cy9kZWF0aF9yb29tLmggYi9zeXMvZGVhdGhfcm9vbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NWRiMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZGVhdGhfcm9vbS5oCkBAIC0wLDAgKzEsOSBAQAorCisjaWZuZGVmIF9ERUFUSF9ST09NX0hfCisjZGVmaW5lIF9ERUFUSF9ST09NX0hfCisKKworLy8geCBtdXNzIGVpbiBTcGllbGVyb2JqZWt0IHNlaW4KKyNkZWZpbmUgSVNfSU5fREVBVEhfUk9PTSh4KSAoZW52aXJvbm1lbnQoeCkmJm9iamVjdF9uYW1lKGVudmlyb25tZW50KHgpKT09KCIvcm9vbS9kZWF0aC92aXJ0dWFsL2RlYXRoX3Jvb21fIitnZXR1aWQoeCkpKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5cy9kZWJ1Zy5oIGIvc3lzL2RlYnVnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg4MDQzYQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9kZWJ1Zy5oCkBAIC0wLDAgKzEsNjEgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBkZWJ1Zy5oIC0tIERlYnVnLU9wdGlvbmVuIGZ1ZXIgZGllIE1VRGxpYgorLy8KKy8vICRJZDogZGVidWcuaCx2IDMuMSAxOTk3LzAyLzEyIDEzOjA0OjU5IFdhcmdvbiBFeHAgJAorCisjaWZuZGVmIF9ERUJVR18KKyNkZWZpbmUgX0RFQlVHXworCisKKy8qCisgKiBMUEMgZGVidWcgb3B0aW9ucworICovCisKKworI2RlZmluZSBOT0RFQlVHCQkJLyogYWxsIGRlYnVnZ2luZyBtb2RlcyBkaXNhYmxlZCAqLworCisjaWZuZGVmIE5PREVCVUcKKworI2RlZmluZSBERUJVR19TVERfQ1JFQVRFICAgICAgICAvKiBkZWJ1ZyBvYmplY3QgY3JlYXRpb24gaW4gL3N0ZCBvYmplY3RzICovCisvKiAjZGVmaW5lIERFQlVHX1BST1BFUlRJRVMJLyogc29tZSBwcm9wZXJ0eSBkZWJ1ZyBmdW5jdGlvbnMgKi8KKy8qICNkZWZpbmUgREVCVUdfSUQJCS8qIGVjaG8gdGhlIG9iamVjdCBpZCBvcGVyYXRpb24gKi8KKyNkZWZpbmUgREVCVUdfUElDSwkJLyogb2JqZWN0IHBpY2t1cCAqLworI2RlZmluZSBERUJVR19DTURTCQkvKiBjb21tYW5kIGRlYnVnZ2luZyBmb3IgaW5pdCAqLworI2RlZmluZSBERUJVR19ET01BSU4JCS8qIGRlYnVnIGRvbWFpbiBmaWxlcyAqLworI2RlZmluZSBERUJVR19ET09SCQkvKiBkZWJ1ZyBkb29ycyAqLworI2RlZmluZSBXQVJOX1VOREVGUFJPUAkJLyogd2FybmluZ3MgaWYgdW5kZWYgcHJvcGVydGllcyBhcmUgc2V0ICovCisjZGVmaW5lIERFQlVHX0VWRU5UUwkJLyogZGVidWcgZXZlbnQgaGFuZGxlciBjYWxsICovCisjZGVmaW5lIERFQlVHX01PVkUJCS8qIGRlYnVnIGluIG9iamVjdCBtb3ZpbmcgKi8KKworI2RlZmluZSBERUJVR19SRVMJCS8qIGRlYnVnIHJlc3RyaWN0aW9uIGhhbmRsaW5nICovCisjZGVmaW5lIERFQlVHX1JFU19NQVgJCS8qIGRlYnVnIHJlc3RyaWN0aW9uIHxyZXNfbWF4fCAqLworI2RlZmluZSBERUJVR19SRVNfTElNSVQJCS8qIGRlYnVnIHJlc3RyaWN0aW9uIHxyZXNfbGltaXR8ICovCisjZGVmaW5lIERFQlVHX1JFU19QTEFZRVIJLyogcmVzdHJpY3Rpb24gb2YgbnVtYmVyIG9mIHNvbWV0aGluZyAqLworLyogI2RlZmluZSBERUJVR19GVU5DVElPTgkvKiBkZWJ1ZyBtZXNzYWdlIGZ1bmN0aW9ucyAqLworLyogI2RlZmluZSBERUJVR19BUlJBWQkJLyogZGVidWcgYXJyYXkgYW5kIG1lbWJlciBjb21wYXJpc29uICovCisjZGVmaW5lIERFQlVHX1BST1BBR0FUSU9OCS8qIGRlYnVnIGJhY2tncm91bmQgcHJvcGFnYXRpb24gbWVjaGFuaXNtICovCisjZGVmaW5lIERFQlVHX1JFU19HUk9VTkQJLyogZGVidWcgZ3JvdW5kIHR5cGUgcmVzdHJpY3Rpb25zICovCisjZGVmaW5lIERFQlVHX0ZFQVRVUkVTCSAgICAgICAgLyogZGVidWcgZmVhdHVyZSBtZWNoYW5pc20gKi8KKyNkZWZpbmUgREVCVUdfUkVTX0ZFQVRVUkVTCS8qIGRlYnVnIGZlYXR1cmUgbWVjaGFuaXNtICovCisjZGVmaW5lIERFQlVHX1ZJRVcJCS8qIGRlYnVnIHBsYXllcnMgdmlzaW9uICovCisjZGVmaW5lIERFQlVHX1BST1BBR0FUSU9OCS8qIGRlYnVnIGJhY2tncm91bmQgcHJvcGFnYXRpb24gbWVjaGFuaXNtICovCisjZGVmaW5lIERFQlVHX01TRwkJLyogbWVzc2FnZSBkZWJ1Z2dpbmcgKi8KKyNkZWZpbmUgREVCVUdfU0VMRUNUCQkvKiBkZWJ1ZyBzZWxlY3Rpb24gbWVjaGFuaXNtICovCisjZGVmaW5lIERFQlVHX1JFU09VUkNFUwkJLyogZGVidWcgbGl2aW5nIHJlc291cmNlcyAqLworI2RlZmluZSBERUJVR19JU01FCQkvKiBkZWJ1ZyB0aGUgaXNfbWUgb3BlcmF0aW9uICovCisjZGVmaW5lIERFQlVHX0ZPTExPVwkJLyogZGVidWcgZm9sbG93IG1vZGUgZm9yIHdhbGtlcnMgKi8KKyNkZWZpbmUgREVCVUdfUkVTT1VSQ0VTMgkvKiBkZWJ1ZyBsaXZpbmcgcmVzb3VyY2VzICovCisjZGVmaW5lIEFDQ0VTU19ERUJVRyAxCQkvKiBkZWJ1ZyBvZiBhY2Nlc3MgY29udHJvbCAqLworI2RlZmluZSBERUJVR19TQVZFCQkvKiBkZWJ1ZyBsb2FkaW5nIGFuZCBzYXZpbmcgb2Ygb2JqZWN0cyAqLworI2RlZmluZSBERUJVR19CT0FSRAkJLyogZGVidWcgYm9hcmQgc3lzdGVtICovCisjZGVmaW5lIERFQlVHX0FTRUUJCS8qIGRlYnVnICJ0byBzZWUiIGFiaWxpdHkgKi8KKyNkZWZpbmUgREVCVUdfU1BFTExTCQkvKiBkZWJ1ZyBzcGVsbHMgKi8KKyNkZWZpbmUgREVCVUdfQkFUVExFCQkvKiBkZWJ1ZyBiYXR0bGUgc3lzdGVtICovCisKKyNlbmRpZgorCisKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL3N5cy9kZWJ1Z19pbmZvLmggYi9zeXMvZGVidWdfaW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0ZmI3ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZGVidWdfaW5mby5oCkBAIC0wLDAgKzEsMjE4IEBACisjaWZuZGVmIExQQ19ERUJVR19JTkZPX0hfCisjZGVmaW5lIExQQ19ERUJVR19JTkZPX0hfIDEKKworI2luY2x1ZGUgIi9zeXMvZHJpdmVyX2luZm8uaCIKKworLyogUmVxdWVzdCB2YWx1ZXMgZm9yIGVmdW4gZGVidWdfaW5mbygpLgorICovCisKKyNkZWZpbmUgRElORk9fT0JKRUNUICAwICAvKiBQcmludCBpbmZvcm1hdGlvbiBhYm91dCBhbiBvYmplY3QgKi8KKyNkZWZpbmUgRElORk9fTUVNT1JZICAxICAvKiBQcmludCBtZW1vcnkgdXNhZ2Ugb2YgYW4gb2JqZWN0ICovCisjZGVmaW5lIERJTkZPX09CSkxJU1QgMiAgLyogUmV0dXJuIGFuIG9iamVjdCBmcm9tIHRoZSBnbG9iYWwgbGlzdCAqLworI2RlZmluZSBESU5GT19NQUxMT0MgIDMgIC8qIFByaW50IHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSAnbWFsbG9jJyBjbWQgKi8KKyNkZWZpbmUgRElORk9fU1RBVFVTICA0ICAvKiBSZXR1cm4gdGhlICdzdGF0dXMnIGluZm9ybWF0aW9uICovCisjZGVmaW5lIERJTkZPX0RVTVAgICAgNSAgLyogRHVtcCBzb21lIHNwZWNpYWwgaW5mb3JtYXRpb24gaW50byBmaWxlcyAqLworI2RlZmluZSBESU5GT19EQVRBICAgIDYgIC8qIFJldHVybiBpbnRlcm5hbCBpbmZvcm1hdGlvbiAqLworI2RlZmluZSBESU5GT19UUkFDRSAgIDcgIC8qIFJldHVybiB0aGUgY3VycmVudCBjYWxsIHRyYWNlICovCisjZGVmaW5lIERJTkZPX0VWQUxfTlVNQkVSIDggLyogUmV0dXJuIHRoZSBjdXJyZW50IGV2YWwgbnVtYmVyICovCisKKy8qIFN1Yi1yZXF1ZXN0IHZhbHVlcyBmb3IgZGVidWdfaW5mbyhESU5GT19EQVRBKSAqLworCisjZGVmaW5lIERJRF9TVEFUVVMgIDAgIC8qIFJldHVybiB0aGUgJ3N0YXR1cycgYW5kICdzdGF0dXMgdGFibGVzJyBpbmZvcm1hdGlvbiAqLworI2RlZmluZSBESURfU1dBUCAgICAxICAvKiBSZXR1cm4gdGhlICdzdGF0dXMgc3dhcCcgaW5mb3JtYXRpb24gKi8KKyNkZWZpbmUgRElEX01FTU9SWSAgMiAgLyogUmV0dXJuIHRoZSAnc3RhdHVzIG1hbGxvYycgaW5mb3JtYXRpb24gKi8KKworLyogU3ViLXJlcXVlc3QgdmFsdWVzIGZvciBkZWJ1Z19pbmZvKERJTkZPX1RSQUNFKSAqLworCisjZGVmaW5lIERJVF9DVVJSRU5UICAgICAgICAwICAvKiBSZXR1cm4gdGhlIGN1cnJlbnQgY2FsbCBjaGFpbiBhcyBhbiBhcnJheSAqLworI2RlZmluZSBESVRfRVJST1IgICAgICAgICAgMSAgLyogUmV0dXJuIHRoZSBsYXN0IGVycm9yIGNhbGwgY2hhaW4gYXMgYW4gYXJyYXkgKi8KKyNkZWZpbmUgRElUX1VOQ0FVR0hUX0VSUk9SIDIgIC8qIFJldHVybiB0aGUgbGFzdCB1bmNhdWdodCBlcnJvciBjYWxsIGNoYWluICovCisjZGVmaW5lIERJVF9TVFJfQ1VSUkVOVCAgICAzICAvKiBSZXR1cm4gdGhlIGN1cnJlbnQgY2FsbCBjaGFpbiBhcyBhIHN0cmluZyAqLworI2RlZmluZSBESVRfQ1VSUkVOVF9ERVBUSCAgNCAgLyogUmV0dXJuIHRoZSBjdXJyZW50IGNvbnRyb2wgc3RhY2sgZGVwdGggKi8KKworLyogSW5kaWNlcyBpbnRvIHRoZSBhcnJheSByZXN1bHRpbmcgZnJvbSBkZWJ1Z19pbmZvKERJTkZPX0RBVEEsIERJRF9TVEFUVVMpCisgKi8KKworI2RlZmluZSBESURfU1RfQUNUSU9OUyAgICAgICAgICAgICAwCisjZGVmaW5lIERJRF9TVF9BQ1RJT05TX1NJWkUgICAgICAgIDEKKyNkZWZpbmUgRElEX1NUX1NIQURPV1MgICAgICAgICAgICAgMgorI2RlZmluZSBESURfU1RfU0hBRE9XU19TSVpFICAgICAgICAzCisKKyNkZWZpbmUgRElEX1NUX09CSkVDVFMgICAgICAgICAgICAgNAorI2RlZmluZSBESURfU1RfT0JKRUNUU19TSVpFICAgICAgICA1CisjZGVmaW5lIERJRF9TVF9PQkpFQ1RTX1NXQVBQRUQgICAgIDYKKyNkZWZpbmUgRElEX1NUX09CSkVDVFNfU1dBUF9TSVpFICAgNworI2RlZmluZSBESURfU1RfT0JKRUNUU19MSVNUICAgICAgICA4CisjZGVmaW5lIERJRF9TVF9PQkpFQ1RTX05FV0xZX0RFU1QgIDkKKyNkZWZpbmUgRElEX1NUX09CSkVDVFNfREVTVFJVQ1RFRCAxMAorI2RlZmluZSBESURfU1RfT0JKRUNUU19QUk9DRVNTRUQgIDExCisjZGVmaW5lIERJRF9TVF9PQkpFQ1RTX0FWR19QUk9DICAgMTIKKworI2RlZmluZSBESURfU1RfT1RBQkxFICAgICAgICAgICAgIDEzCisjZGVmaW5lIERJRF9TVF9PVEFCTEVfU0xPVFMgICAgICAgMTQKKyNkZWZpbmUgRElEX1NUX09UQUJMRV9TSVpFICAgICAgICAxNQorCisjZGVmaW5lIERJRF9TVF9IQkVBVF9PQkpTICAgICAgICAgMTYKKyNkZWZpbmUgRElEX1NUX0hCRUFUX0NBTExTICAgICAgICAxNworI2RlZmluZSBESURfU1RfSEJFQVRfQ0FMTFNfVE9UQUwgIDE4CisjZGVmaW5lIERJRF9TVF9IQkVBVF9TTE9UUyAgICAgICAgMTkKKyNkZWZpbmUgRElEX1NUX0hCRUFUX1NJWkUgICAgICAgICAyMAorI2RlZmluZSBESURfU1RfSEJFQVRfUFJPQ0VTU0VEICAgIDIxCisjZGVmaW5lIERJRF9TVF9IQkVBVF9BVkdfUFJPQyAgICAgMjIKKworI2RlZmluZSBESURfU1RfQ0FMTE9VVFMgICAgICAgICAgIDIzCisjZGVmaW5lIERJRF9TVF9DQUxMT1VUX1NJWkUgICAgICAgMjQKKworI2RlZmluZSBESURfU1RfQVJSQVlTICAgICAgICAgICAgIDI1CisjZGVmaW5lIERJRF9TVF9BUlJBWVNfU0laRSAgICAgICAgMjYKKworI2RlZmluZSBESURfU1RfTUFQUElOR1MgICAgICAgICAgIDI3CisjZGVmaW5lIERJRF9TVF9NQVBQSU5HU19TSVpFICAgICAgMjgKKyNkZWZpbmUgRElEX1NUX0hZQlJJRF9NQVBQSU5HUyAgICA1MQorI2RlZmluZSBESURfU1RfSEFTSF9NQVBQSU5HUyAgICAgIDU0CisKKyNkZWZpbmUgRElEX1NUX1NUUlVDVFMgICAgICAgICAgICAyOQorI2RlZmluZSBESURfU1RfU1RSVUNUU19TSVpFICAgICAgIDMwCisjZGVmaW5lIERJRF9TVF9TVFJVQ1RfVFlQRVMgICAgICAgMzEKKyNkZWZpbmUgRElEX1NUX1NUUlVDVF9UWVBFU19TSVpFICAzMgorCisjZGVmaW5lIERJRF9TVF9QUk9HUyAgICAgICAgICAgICAgMzMKKyNkZWZpbmUgRElEX1NUX1BST0dTX1NJWkUgICAgICAgICAzNAorCisjZGVmaW5lIERJRF9TVF9QUk9HU19TV0FQUEVEICAgICAgMzUKKyNkZWZpbmUgRElEX1NUX1BST0dTX1NXQVBfU0laRSAgICAzNgorCisjZGVmaW5lIERJRF9TVF9VU0VSX1JFU0VSVkUgICAgICAgMzcKKyNkZWZpbmUgRElEX1NUX01BU1RFUl9SRVNFUlZFICAgICAzOAorI2RlZmluZSBESURfU1RfU1lTVEVNX1JFU0VSVkUgICAgIDM5CisKKyNkZWZpbmUgRElEX1NUX0FERF9NRVNTQUdFICAgICAgICA0MAorI2RlZmluZSBESURfU1RfUEFDS0VUUyAgICAgICAgICAgIDQxCisjZGVmaW5lIERJRF9TVF9QQUNLRVRfU0laRSAgICAgICAgNDIKKyNkZWZpbmUgRElEX1NUX1BBQ0tFVFNfSU4gICAgICAgICA0MworI2RlZmluZSBESURfU1RfUEFDS0VUX1NJWkVfSU4gICAgIDQ0CisKKyNkZWZpbmUgRElEX1NUX0FQUExZICAgICAgICAgICAgICA0NQorI2RlZmluZSBESURfU1RfQVBQTFlfSElUUyAgICAgICAgIDQ2CisKKyNkZWZpbmUgRElEX1NUX1NUUklOR1MgICAgICAgICAgICA0NworI2RlZmluZSBESURfU1RfU1RSSU5HX1NJWkUgICAgICAgIDQ4CisjZGVmaW5lIERJRF9TVF9TVFJfVEFCTEVfU0laRSAgICAgNDkKKyNkZWZpbmUgRElEX1NUX1NUUl9PVkVSSEVBRCAgICAgICA1MAorI2RlZmluZSBESURfU1RfVU5UQUJMRUQgICAgICAgICAgIDUyCisjZGVmaW5lIERJRF9TVF9VTlRBQkxFRF9TSVpFICAgICAgNTMKKyNkZWZpbmUgRElEX1NUX1VOVVNFRDU0ICAgICAgICAgICA1NCAvKiBVTlVTRUQgKi8KKyNkZWZpbmUgRElEX1NUX1VOVVNFRDU1ICAgICAgICAgICA1NSAvKiBVTlVTRUQgKi8KKyNkZWZpbmUgRElEX1NUX1RBQkxFRCAgICAgICAgICAgICA1NgorI2RlZmluZSBESURfU1RfVEFCTEVEX1NJWkUgICAgICAgIDU3CisjZGVmaW5lIERJRF9TVF9TVFJfU0VBUkNIRVMgICAgICAgNTgKKyNkZWZpbmUgRElEX1NUX1NUUl9TRUFSQ0hMRU4gICAgICA1OQorI2RlZmluZSBESURfU1RfU1RSX1NFQVJDSEVTX0JZVkFMVUUgICA2MAorI2RlZmluZSBESURfU1RfU1RSX1NFQVJDSExFTl9CWVZBTFVFICA2MQorI2RlZmluZSBESURfU1RfU1RSX0NIQUlOUyAgICAgICAgIDYyCisjZGVmaW5lIERJRF9TVF9TVFJfQURERUQgICAgICAgICAgNjMKKyNkZWZpbmUgRElEX1NUX1NUUl9ERUxFVEVEICAgICAgICA2NAorI2RlZmluZSBESURfU1RfU1RSX0NPTExJU0lPTlMgICAgIDY1CisjZGVmaW5lIERJRF9TVF9TVFJfRk9VTkQgICAgICAgICAgNjYKKyNkZWZpbmUgRElEX1NUX1NUUl9GT1VORF9CWVZBTFVFICA2NworCisjZGVmaW5lIERJRF9TVF9SWF9DQUNIRUQgICAgICAgICAgNjgKKyNkZWZpbmUgRElEX1NUX1JYX1RBQkxFICAgICAgICAgICA2OQorI2RlZmluZSBESURfU1RfUlhfVEFCTEVfU0laRSAgICAgIDcwCisjZGVmaW5lIERJRF9TVF9SWF9SRVFVRVNUUyAgICAgICAgNzEKKyNkZWZpbmUgRElEX1NUX1JYX1JFUV9GT1VORCAgICAgICA3MgorI2RlZmluZSBESURfU1RfUlhfUkVRX0NPTEwgICAgICAgIDczCisKKyNkZWZpbmUgRElEX1NUX01CX0ZJTEUgICAgICAgICAgICA3NAorI2RlZmluZSBESURfU1RfTUJfU1dBUCAgICAgICAgICAgIDc1CisKKyNkZWZpbmUgRElEX1NUX0JPT1RfVElNRSAgICAgICAgICA3NgorCisjZGVmaW5lIERJRF9TVEFUVVNfTUFYICAgICAgICAgICAgNzcgLyogVG90YWwgbnVtYmVyIG9mIGVudHJpZXMgKi8KKworCisvKiBJbmRpY2VzIGludG8gdGhlIGFycmF5IHJlc3VsdGluZyBmcm9tIGRlYnVnX2luZm8oRElORk9fREFUQSwgRElEX1NXQVApCisgKi8KKworI2RlZmluZSBESURfU1dfUFJPR1MgICAgICAgICAgICAwCisjZGVmaW5lIERJRF9TV19QUk9HX1NJWkUgICAgICAgIDEKKyNkZWZpbmUgRElEX1NXX1BST0dfVU5TV0FQUEVEICAgMgorI2RlZmluZSBESURfU1dfUFJPR19VX1NJWkUgICAgICAzCisjZGVmaW5lIERJRF9TV19WQVJTICAgICAgICAgICAgIDQKKyNkZWZpbmUgRElEX1NXX1ZBUl9TSVpFICAgICAgICAgNQorI2RlZmluZSBESURfU1dfRlJFRSAgICAgICAgICAgICA2CisjZGVmaW5lIERJRF9TV19GUkVFX1NJWkUgICAgICAgIDcKKyNkZWZpbmUgRElEX1NXX0ZJTEVfU0laRSAgICAgICAgOAorI2RlZmluZSBESURfU1dfUkVVU0VEICAgICAgICAgICA5CisjZGVmaW5lIERJRF9TV19TRUFSQ0hFUyAgICAgICAgMTAKKyNkZWZpbmUgRElEX1NXX1NFQVJDSF9MRU4gICAgICAxMQorI2RlZmluZSBESURfU1dfRl9TRUFSQ0hFUyAgICAgIDEyCisjZGVmaW5lIERJRF9TV19GX1NFQVJDSF9MRU4gICAgMTMKKyNkZWZpbmUgRElEX1NXX0NPTVBBQ1QgICAgICAgICAxNAorI2RlZmluZSBESURfU1dfUkVDWUNMRV9GUkVFICAgIDE1CisKKyNkZWZpbmUgRElEX1NXQVBfTUFYICAgICAgICAgICAxNgorCisKKy8qIEluZGljZXMgaW50byB0aGUgYXJyYXkgcmVzdWx0aW5nIGZyb20gZGVidWdfaW5mbyhESU5GT19EQVRBLCBESURfTUVNT1JZKQorICovCisKKyNkZWZpbmUgRElEX01FTV9OQU1FICAgICAgICAgICAgMAorI2RlZmluZSBESURfTUVNX1NCUksgICAgICAgICAgICAxCisjZGVmaW5lIERJRF9NRU1fU0JSS19TSVpFICAgICAgIDIKKyNkZWZpbmUgRElEX01FTV9MQVJHRSAgICAgICAgICAgMworI2RlZmluZSBESURfTUVNX0xBUkdFX1NJWkUgICAgICA0CisjZGVmaW5lIERJRF9NRU1fTEZSRUUgICAgICAgICAgIDUKKyNkZWZpbmUgRElEX01FTV9MRlJFRV9TSVpFICAgICAgNgorI2RlZmluZSBESURfTUVNX0xXQVNURUQgICAgICAgICA3CisjZGVmaW5lIERJRF9NRU1fTFdBU1RFRF9TSVpFICAgIDgKKyNkZWZpbmUgRElEX01FTV9DSFVOSyAgICAgICAgICAgOQorI2RlZmluZSBESURfTUVNX0NIVU5LX1NJWkUgICAgIDEwCisjZGVmaW5lIERJRF9NRU1fU0xBQiAgICAgICAgICAgIChESURfTUVNX0NIVU5LKQorI2RlZmluZSBESURfTUVNX1NMQUJfU0laRSAgICAgICAoRElEX01FTV9DSFVOS19TSVpFKQorI2RlZmluZSBESURfTUVNX1NNQUxMICAgICAgICAgIDExCisjZGVmaW5lIERJRF9NRU1fU01BTExfU0laRSAgICAgMTIKKyNkZWZpbmUgRElEX01FTV9TRlJFRSAgICAgICAgICAxMworI2RlZmluZSBESURfTUVNX1NGUkVFX1NJWkUgICAgIDE0CisjZGVmaW5lIERJRF9NRU1fU1dBU1RFRCAgICAgICAgMTUKKyNkZWZpbmUgRElEX01FTV9TV0FTVEVEX1NJWkUgICAxNgorI2RlZmluZSBESURfTUVNX1NNQUxMX09WRVJIRUFEX1NJWkUgIChESURfTUVNX1NXQVNURURfU0laRSkKKyNkZWZpbmUgRElEX01FTV9NSU5DX0NBTExTICAgICAxNworI2RlZmluZSBESURfTUVNX01JTkNfU1VDQ0VTUyAgIDE5CisjZGVmaW5lIERJRF9NRU1fTUlOQ19TSVpFICAgICAgMTkKKyNkZWZpbmUgRElEX01FTV9QRVJNICAgICAgICAgICAyMAorI2RlZmluZSBESURfTUVNX1BFUk1fU0laRSAgICAgIDIxCisjZGVmaW5lIERJRF9NRU1fQ0xJQiAgICAgICAgICAgMjIKKyNkZWZpbmUgRElEX01FTV9DTElCX1NJWkUgICAgICAyMworI2RlZmluZSBESURfTUVNX09WRVJIRUFEICAgICAgIDI0CisjZGVmaW5lIERJRF9NRU1fQUxMT0NBVEVEICAgICAgMjUKKyNkZWZpbmUgRElEX01FTV9VU0VEICAgICAgICAgICAyNgorI2RlZmluZSBESURfTUVNX1RPVEFMX1VOVVNFRCAgIDI3CisjZGVmaW5lIERJRF9NRU1fREVGUkFHX0NBTExTICAgICAgICAgICAgIDI4CisjZGVmaW5lIERJRF9NRU1fREVGUkFHX0NBTExTX1JFUSAgICAgICAgIDI5CisjZGVmaW5lIERJRF9NRU1fU0xBQl9GUkVFICAgICAgICAgICAgICAgICAoRElEX01FTV9ERUZSQUdfQ0FMTFMpCisjZGVmaW5lIERJRF9NRU1fU0xBQl9GUkVFX1NJWkUgICAgICAgICAgICAoRElEX01FTV9ERUZSQUdfQ0FMTFNfUkVRKQorI2RlZmluZSBESURfTUVNX0RFRlJBR19SRVFfU1VDQ0VTUyAgICAgICAzMAorI2RlZmluZSBESURfTUVNX0RFRlJBR19CTE9DS1NfSU5TUEVDVEVEICAzMQorI2RlZmluZSBESURfTUVNX0RFRlJBR19CTE9DS1NfTUVSR0VEICAgICAzMgorI2RlZmluZSBESURfTUVNX0RFRlJBR19CTE9DS1NfUkVTVUxUICAgICAzMworI2RlZmluZSBESURfTUVNX0FWTF9OT0RFUyAgICAgIDM0CisjZGVmaW5lIERJRF9NRU1fRVhUX1NUQVRJU1RJQ1MgMzUKKworI2RlZmluZSBESURfTUVNT1JZX01BWCAgICAgICAgIDM2CisKKy8qIEluZGljZXMgaW50byB0aGUgc3ViYXJyYXlzIG9mIERJRF9NRU1fRVhUX1NUQVRJU1RJQ1MgKGlmIGdpdmVuKSAqLworCisjZGVmaW5lIERJRF9NRU1fRVNfTUFYX0FMTE9DICAgMAorI2RlZmluZSBESURfTUVNX0VTX0NVUl9BTExPQyAgIDEKKyNkZWZpbmUgRElEX01FTV9FU19NQVhfRlJFRSAgICAyCisjZGVmaW5lIERJRF9NRU1fRVNfQ1VSX0ZSRUUgICAgMworI2RlZmluZSBESURfTUVNX0VTX0FWR19YQUxMT0MgIDQKKyNkZWZpbmUgRElEX01FTV9FU19BVkdfWEZSRUUgICA1CisjZGVmaW5lIERJRF9NRU1fRVNfRlVMTF9TTEFCUyAgNgorI2RlZmluZSBESURfTUVNX0VTX0ZSRUVfU0xBQlMgIDcKKyNkZWZpbmUgRElEX01FTV9FU19UT1RBTF9TTEFCUyA4CisKKyNkZWZpbmUgRElEX01FTV9FU19NQVggIDkKKworI2VuZGlmIC8qIExQQ19ERUJVR19JTkZPX0hfICovCmRpZmYgLS1naXQgYS9zeXMvZGVidWdfbWVzc2FnZS5oIGIvc3lzL2RlYnVnX21lc3NhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTk0NGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2RlYnVnX21lc3NhZ2UuaApAQCAtMCwwICsxLDE4IEBACisjaWZuZGVmIExQQ19ERUJVR19NRVNTQUdFX0hfCisjZGVmaW5lIExQQ19ERUJVR19NRVNTQUdFX0hfIDEKKworLyogRGVmaW5pdGlvbnMgYW5kIG1hY3JvcyBmb3IgdGhlIGRlYnVnX21lc3NhZ2UoKSAqLworCisjZGVmaW5lIERNU0dfREVGQVVMVCAwICAgICAgICAgLyogbG9nIHRvIHN0ZG91dCBhbmQgLmRlYnVnLmxvZyAqLworI2RlZmluZSBETVNHX1NURE9VVCAgKDEgPDwgMCkgIC8qIGxvZyB0byBzdGRvdXQgKi8KKyNkZWZpbmUgRE1TR19TVERFUlIgICgxIDw8IDEpICAvKiBsb2cgdG8gc3RkZXJyICovCisjZGVmaW5lIERNU0dfTE9HRklMRSAoMSA8PCAyKSAgLyogbG9nIHRvIC5kZWJ1Zy5sb2cgKi8KKworI2RlZmluZSBETVNHX1NUQU1QICAgKDEgPDwgMykgIC8qIFByZXBlbmQgdGhlIHRpbWVzdGFtcCAqLworCisvKiBEZXJpdmVkIG1hY3JvcyAqLworCisjZGVmaW5lIERNU0dfVEFSR0VUIChETVNHX1NURE9VVHxETVNHX1NUREVSUnxETVNHX0xPR0ZJTEUpCisgIC8qIE1hc2sgZm9yIGFsbCB0YXJnZXQgYml0ZmxhZ3MgKi8KKworI2VuZGlmIC8qIExQQ19ERUJVR19NRVNTQUdFX0hfICovCmRpZmYgLS1naXQgYS9zeXMvZGVmaW5lcy5oIGIvc3lzL2RlZmluZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODRiNjZmCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2RlZmluZXMuaApAQCAtMCwwICsxLDYzIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gZGVmaW5lcy5oIC0tIE51ZXR6bGljaGUgdW5kIG9mdCBnZWJyYXVjaHRlIERlZmluaXRpb25lbgorLy8KKy8vICRJZDogZGVmaW5lcy5oIDcyNjUgMjAwOS0wOC0yMSAxODoxMzoyMlogWmVzc3RyYSAkCisKKyNpZm5kZWYgX0RFRklORVNfSF8KKyNkZWZpbmUgX0RFRklORVNfSF8KKworLy8gZGVmaW5lcy5oIGRhcmYgbGVpZGVyIGtlaW5lIFN0YW5kYXJkLUluY2x1ZGV2ZXJ6ZWljaG5pc3NlIGJlbnV0emVuLCB3ZWlscworLy8gZXMgdm9tIE1hc3RlciBzZWxiZXIgYmVudXR6dCB3aXJkLgorI2luY2x1ZGUgIi9zeXMvYnJlYWtfc3RyaW5nLmgiCisKKyNpZm5kZWYgTUUKKyNkZWZpbmUgTUUgdGhpc19vYmplY3QoKQorI2VuZGlmCisKKyNpZm5kZWYgUEwKKyNkZWZpbmUgUEwgdGhpc19wbGF5ZXIoKQorI2VuZGlmCisKKyNpZm5kZWYgUlBMCisjZGVmaW5lIFJQTCB0aGlzX2ludGVyYWN0aXZlKCkKKyNlbmRpZgorCisjaWZuZGVmIENBUAorI2RlZmluZSBDQVAoc3RyKSBjYXBpdGFsaXplKHN0cikKKyNlbmRpZgorCisjaWZuZGVmIFFQUAorI2RlZmluZSBRUFAgUXVlcnlQb3NzUHJvbm91bgorI2VuZGlmCisKKyNkZWZpbmUgUkVBTF9VSUQoeCkgICAoZXhwbG9kZShnZXR1aWQoeCksICAiLiIpWzwxXSkKKyNkZWZpbmUgUkVBTF9FVUlEKHgpICAoZXhwbG9kZShnZXRldWlkKHgpLCAiLiIpWzwxXSkKKworLy8gb2Jzb2xldCwgbnVyIGF1cyBLb21wYXRpYmlsaXRhZXRzZ3J1ZW5kZW4gbm9jaCB2b3JoYW5kZW4KKyNpZm5kZWYgSVNfQ0xPTkUKKyNkZWZpbmUgSVNfQ0xPTkUob2IpIChjbG9uZXAob2IpKQorI2VuZGlmCisKKy8vIG9ic29sZXQsIG51ciBhdXMgS29tcGF0aWJpbGl0YWV0c2dydWVuZGVuIG5vY2ggdm9yaGFuZGVuCisjaWZuZGVmIElTX0JMVUUKKyNkZWZpbmUgSVNfQkxVRShvYikgKCFjbG9uZXAob2IpKQorI2VuZGlmCisKKyNpZm5kZWYgQkxVRV9OQU1FCisjZGVmaW5lIEJMVUVfTkFNRShvYikgbG9hZF9uYW1lKG9iKQorLy8jZGVmaW5lIEJMVUVfTkFNRShvYikgKGV4cGxvZGUob2JqZWN0X25hbWUob2IpLCIjIilbMF0pCisjZW5kaWYKKworI2lmbmRlZiBJU19QQVJBCisjZGVmaW5lIElTX1BBUkEob2IpIChzaXplb2YocmVnZXhwKCh7dG9fc3RyaW5nKG9iKX0pLCJcXF5bMS05XVswLTldKiQiKSkpCisKKyNlbmRpZgorCisvLyBvYnNvbGV0LCBudXIgYXVzIEtvbXBhdGliaWxpdGFldHNncnVlbmRlbiBub2NoIHZvcmhhbmRlbgorI2lmbmRlZiBNQVgKKyNkZWZpbmUgTUFYKGEsYikgbWF4KGEsYikKKyNlbmRpZgorCisjZW5kaWYgLyogX0RFRklORVNfSF8gKi8KKwpkaWZmIC0tZ2l0IGEvc3lzL2RlZnVlbC5oIGIvc3lzL2RlZnVlbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1ZjJmMGQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZGVmdWVsLmgKQEAgLTAsMCArMSwzOSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGRlZnVlbC5oIC0tIEhlYWRlciBmdWVyIGRlZnVlbC5jIChFbnR0YW5rZW4pCisvLworLy8gJElkOiBkZWZ1ZWwuaCx2IDEuMyAyMDAzLzExLzExIDEwOjU5OjA2IE11YWRpYiBFeHAgJAorCisjaWZuZGVmIF9fREVGVUVMX0hfXworI2RlZmluZSBfX0RFRlVFTF9IX18KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICBTdGF0aXN0aWsKKyNkZWZpbmUgRlVFTFNUQVQJIi9kL2Vyem1hZ2llci9tdWFkaWIvZnVlbHN0YXQvZnVlbHN0YXQiICAgCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICBMaW1pdCAtICNkZWZpbmVzCisvLyAgIEFiIHdpZXZpZWwga2FubiBtYW4gdWViZXJoYXVwdCBlbnR0YW5rZW4/IChyYXNzZW5hYmhhZW5naWcpCisjZGVmaW5lICAgUF9ERUZVRUxfTElNSVRfRk9PRCAgICAgICAiZGVmdWVsX2xpbWl0X2Zvb2QiCisjZGVmaW5lICAgUF9ERUZVRUxfTElNSVRfRFJJTksgICAgICAiZGVmdWVsX2xpbWl0X2RyaW5rIgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgIFRpbWUgLSAjZGVmaW5lcworLy8gICBXaWVsYW5nZSBtdXNzIG1hbiB6d2lzY2hlbiBkZW0gRW50dGFua2VuIHZlcmRhdWVuPyAocmFzc2VuYWJoYWVuZ2lnKQorI2RlZmluZSAgIFBfREVGVUVMX1RJTUVfRk9PRCAgICAgICAgImRlZnVlbF90aW1lX2Zvb2QiCisjZGVmaW5lICAgUF9ERUZVRUxfVElNRV9EUklOSyAgICAgICAiZGVmdWVsX3RpbWVfZHJpbmsiCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgQW1vdW50IC0gI2RlZmluZXMKKy8vICAgV2lldmllbCBQcm96ZW50IGRlciBha3R1ZWxsZW4gUF9GT09EL1BfRFJJTksgV2VydGUga2FubiBtYW4gZW50dGFua2VuPworLy8gICAocmFzc2VuYWJoYWVuaGlnKQorI2RlZmluZSAgIFBfREVGVUVMX0FNT1VOVF9GT09EICAgICAgImRlZnVlbF9hbW91bnRfZm9vZCIKKyNkZWZpbmUgICBQX0RFRlVFTF9BTU9VTlRfRFJJTksgICAgICJkZWZ1ZWxfYW1vdW50X2RyaW5rIgorCisvLyBSZXR1cm53ZXJ0ZSBkZXIgenUgdmVyd2VuZGV0ZW4gSW50ZXJmYWNlcworI2RlZmluZSAgIE5PX0RFRlVFTCAgICAgICAgICAgICAgICAgIDAgIC8vIGxlZXIKKyNkZWZpbmUgICBERUZVRUxfVE9PX0xPVyAgICAgICAgICAgIC0xICAvLyBuaWNodCBsZWVyLCBhYmVyIHp1IHdlbmlnCisjZGVmaW5lICAgREVGVUVMX1RPT19TT09OICAgICAgICAgICAtMiAgLy8gbGV0enRlcyBlbnRhbmtlbiBpc3Qgbm9jaCBuaWNodCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsYW5nZSBnZW51ZyBoZXIKKyNlbmRpZiAvLyBfX0RFRlVFTF9IX18KZGlmZiAtLWdpdCBhL3N5cy9kb29ycm9vbS5oIGIvc3lzL2Rvb3Jyb29tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY2MzE0MwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9kb29ycm9vbS5oCkBAIC0wLDAgKzEsNzMgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBkb29ycm9vbS5oIC0tIG5ldyBkb29ycywgbWFuYWdlZCBieSBkb29ybWFzdGVyCisvLworLy8gJElkOiBkb29ycm9vbS5oIDkxMjggMjAxNS0wMS0yNiAxNzo0MjoyMVogQXJhdGhvcm4gJAorCisjaWZuZGVmIF9ET09SUk9PTV9IXworI2RlZmluZSBfRE9PUlJPT01fSF8KKworI2RlZmluZSBET09SX01BU1RFUiAiL29iai9kb29ybWFzdGVyIgorI2RlZmluZSBQX0RPT1JfSU5GT1MgImRvb3JfaW5mb3MiICAgLy8gSW5mb3JtYXRpb25lbgorCisjZGVmaW5lIERPT1JfT1BFTiAgICAgMHgwMSAvLyBUdWVyIGluaXRpYWwgb2ZmZW4KKyNkZWZpbmUgRE9PUl9DTE9TRUQgICAweDAyIC8vIFR1ZXIgaW5pdGlhbCB6dQorI2RlZmluZSBET09SX05FRURLRVkgIDB4MDggLy8gTWFuIGJyYXVjaHQgZWluZW4gU2NobHVlc3NlbCB6dW0gT2VmZm5lbgorI2RlZmluZSBET09SX0NMT1NFS0VZIDB4MTAgLy8gTWFuIGJyYXVjaHQgZWluZW4gU2NobHVlc3NlbCB6dW0gU2NobGllc3NlbgorI2RlZmluZSBET09SX1JFU0VUX0NMIDB4MjAgLy8gVHVlciBzY2hsaWVzc3Qgc2ljaCBiZWkgamVkZW0gcmVzZXQoKQorI2RlZmluZSBET09SX1JFU0VUX09QIDB4NDAgLy8gVHVlciBvZWZmbmV0IHNpY2ggYmVpIGplZGVtIHJlc2V0KCkKKworI2RlZmluZSBEX0RFU1QgMAorI2RlZmluZSBEX0NNRFMgMQorI2RlZmluZSBEX0lEUyAyCisKKy8vIHByb3BlcnRpZXMKKy8vIEFiIGhpZXIgZGllIGFlbmRlcmJhcmVuIEVpZ2Vuc2NoYWZ0ZW4gZGVyIFR1ZXIKKyNkZWZpbmUgRF9GTEFHUyAzCisjZGVmaW5lIERfTE9ORyA0CisjZGVmaW5lIERfU0hPUlQgNQorI2RlZmluZSBEX05BTUUgNgorI2RlZmluZSBEX0dFTkRFUiA3CisjZGVmaW5lIERfRlVOQyA4CisvLyBGdW5rdGlvbiwgZGllIFZPUiBkZW0gRHVyY2hzY2hyZWl0ZW4gZGVyIFR1ZXIgYXVmZ2VydWZlbiB3aXJkIChpbSBTdGFydHJhdW0pCisjZGVmaW5lIERfTVNHUyA5CisvLyBNZXNzYWdlcyBmdWVyIE1vdmUKKyNkZWZpbmUgRF9GVU5DMiAxMAorLy8gRnVua3Rpb24sIGRpZSBOQUNIIGRlbSBEdXJjaHNjaHJlaXRlbiBkZXIgVHVlciBhdWZnZXJ1ZmVuIHdpcmQgKGltIFppZWxyYXVtKQorI2RlZmluZSBEX1RFU1RGVU5DIDExCisvLyBGdW5rdGlvbiwgZGllIHRlc3RldCwgb2IgZGllIFR1ZXIgZHVyY2hzY2hyaXR0ZW4gd2VyZGVuIGRhcmYgKGltIFN0YXJ0cmF1bSkKKyNkZWZpbmUgRF9SRVNFVF9NU0cgMTIKKy8vIE1lbGR1bmcgYmVpbSBUdWVyLVJlc2V0ICh0dWVyLT5uYW1lKFdFUiwwKStEX1JFU0VUX01TRykuCisjZGVmaW5lIERfT1BFTl9XSVRIX01PVkUgMTMKKy8vIEZhbGxzIGdlc2V0enQgd2lyZCBkaWUgVHVlciBhdWNoIG1pdCBkZW0gQmV3ZWd1bmdzYmVmZWhsIGdlb2VmZm5ldAorLy8gdW5kIGR1cmNoc2Nocml0dGVuLCBmYWxscyBvZWZmbmVuIGVyZm9sZ3JlaWNoCisKKyNkZWZpbmUgRF9NSU5QUk9QUyAzCisjZGVmaW5lIERfTUFYUFJPUFMgMTMKKworI2RlZmluZSBEX1NUQVRVU19MT0NLRUQgLTIKKyNkZWZpbmUgRF9TVEFUVVNfQ0xPU0VEIC0xCisjZGVmaW5lIERfU1RBVFVTX09QRU4gICAgMQorCisjZW5kaWYgLyogX0RPT1JST09NX0hfICovCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0RPT1JST09NX0hfUFJPVE9fXworI2RlZmluZSBfX0RPT1JST09NX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCittYXBwaW5nIFF1ZXJ5QWxsRG9vcnMoKTsKK3ZhcmFyZ3MgaW50IE5ld0Rvb3Ioc3RyaW5nfHN0cmluZyogY21kcywgc3RyaW5nIGRlc3QsIHN0cmluZ3xzdHJpbmcqIGlkcywKKyAgICAgICAgICAgICAgICAgICAgbWFwcGluZ3w8aW50fHN0cmluZ3xzdHJpbmcqPiogcHJvcHMpOwordm9pZCAgICBpbml0X2Rvb3JzICgpOworc3RyaW5nICBsb29rX2Rvb3JzICgpOwordm9pZCAgICByZXNldF9kb29ycyAoKTsKK3ZhcmFyZ3MgaW50IGdvX2Rvb3IgKHN0cmluZyBzdHIpOworLy9pbnQgICAgIG9lZmZuZW4gKHN0cmluZyBzdHIpOworLy9pbnQgICAgIHNjaGxpZXNzZW4gKHN0cmluZyBzdHIpOworaW50ICAgICBzZXRfZG9vcnMgKHN0cmluZyAqY21kcywgaW50IG9wZW4pOwordmFyYXJncyBzdHJpbmcgR2V0RXhpdHMob2JqZWN0IHZpZXdlcik7IAorCisjZW5kaWYgLyogX19ET09SUk9PTV9IX1BST1RPX18gKi8KKyNlbmRpZiAvKiBORUVEX1BST1RPVFlQRVMgKi8KZGlmZiAtLWdpdCBhL3N5cy9kcml2ZXJfaG9vay5oIGIvc3lzL2RyaXZlcl9ob29rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI5N2Y4MAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9kcml2ZXJfaG9vay5oCkBAIC0wLDAgKzEsMzYgQEAKKyNpZm5kZWYgTFBDX0RSSVZFUl9IT09LX0hfCisjZGVmaW5lIExQQ19EUklWRVJfSE9PS19IXyAxCisKKy8qIC0tLSBEcml2ZXIgSG9va3MgLS0tCisgKi8KKworI2RlZmluZSBIX01PVkVfT0JKRUNUMCAgICAgICAgICAgMAorI2RlZmluZSBIX01PVkVfT0JKRUNUMSAgICAgICAgICAgMQorI2RlZmluZSBIX0xPQURfVUlEUyAgICAgICAgICAgICAgMgorI2RlZmluZSBIX0NMT05FX1VJRFMgICAgICAgICAgICAgMworI2RlZmluZSBIX0NSRUFURV9TVVBFUiAgICAgICAgICAgNAorI2RlZmluZSBIX0NSRUFURV9PQiAgICAgICAgICAgICAgNQorI2RlZmluZSBIX0NSRUFURV9DTE9ORSAgICAgICAgICAgNgorI2RlZmluZSBIX1JFU0VUICAgICAgICAgICAgICAgICAgNworI2RlZmluZSBIX0NMRUFOX1VQICAgICAgICAgICAgICAgOAorI2RlZmluZSBIX01PRElGWV9DT01NQU5EICAgICAgICAgOQorI2RlZmluZSBIX05PVElGWV9GQUlMICAgICAgICAgICAxMAorI2RlZmluZSBIX05PX0lQQ19TTE9UICAgICAgICAgICAxMQorI2RlZmluZSBIX0lOQ0xVREVfRElSUyAgICAgICAgICAxMgorI2RlZmluZSBIX1RFTE5FVF9ORUcgICAgICAgICAgICAxMworI2RlZmluZSBIX05PRUNITyAgICAgICAgICAgICAgICAxNAorI2RlZmluZSBIX0VSUV9TVE9QICAgICAgICAgICAgICAxNQorI2RlZmluZSBIX01PRElGWV9DT01NQU5EX0ZOQU1FICAxNgorI2RlZmluZSBIX0NPTU1BTkQgICAgICAgICAgICAgICAxNworI2RlZmluZSBIX1NFTkRfTk9USUZZX0ZBSUwgICAgICAxOAorI2RlZmluZSBIX0FVVE9fSU5DTFVERSAgICAgICAgICAxOQorI2RlZmluZSBIX0RFRkFVTFRfTUVUSE9EICAgICAgICAyMAorI2RlZmluZSBIX0RFRkFVTFRfUFJPTVBUICAgICAgICAyMQorI2RlZmluZSBIX1BSSU5UX1BST01QVCAgICAgICAgICAyMgorI2RlZmluZSBIX1JFR0VYUF9QQUNLQUdFICAgICAgICAyMworI2RlZmluZSBIX01TR19ESVNDQVJERUQgICAgICAgICAyNAorCisjZGVmaW5lIE5VTV9EUklWRVJfSE9PS1MgICAgICAgIDI1ICAvKiBOdW1iZXIgb2YgaG9va3MgKi8KKworI2VuZGlmIC8qIExQQ19EUklWRVJfSE9PS18gKi8KKwpkaWZmIC0tZ2l0IGEvc3lzL2RyaXZlcl9pbmZvLmggYi9zeXMvZHJpdmVyX2luZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzY5NzVjCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2RyaXZlcl9pbmZvLmgKQEAgLTAsMCArMSwyMzcgQEAKKyNpZm5kZWYgTFBDX0RSSVZFUl9JTkZPX0hfCisjZGVmaW5lIExQQ19EUklWRVJfSU5GT19IXworCisvKiBEZWZpbml0aW9uIG9mIGFyZ3VtZW50IHZhbHVlcyBmb3IgZHJpdmVyX2luZm8oKQorICovCisKKyNpbmNsdWRlICJjb25maWd1cmF0aW9uLmgiCisKKy8qIERyaXZlciBFbnZpcm9ubWVudCAqLworI2RlZmluZSBESV9CT09UX1RJTUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMQorCisvKiBMUEMgUnVudGltZSBzdGF0dXMgKi8KKyNkZWZpbmUgRElfQ1VSUkVOVF9SVU5USU1FX0xJTUlUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMTAKKyNkZWZpbmUgRElfRVZBTF9OVU1CRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMTEKKworLyogTmV0d29yayBjb25maWd1cmF0aW9uICovCisjZGVmaW5lIERJX01VRF9QT1JUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTIwCisjZGVmaW5lIERJX1VEUF9QT1JUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTIxCisKKy8qIE1lbW9yeSBtYW5hZ2VtZW50ICovCisjZGVmaW5lIERJX01FTU9SWV9SRVNFUlZFX1VTRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTMwCisjZGVmaW5lIERJX01FTU9SWV9SRVNFUlZFX01BU1RFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTMxCisjZGVmaW5lIERJX01FTU9SWV9SRVNFUlZFX1NZU1RFTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTMyCisKKy8qIFRyYWNlcyAqLworI2RlZmluZSBESV9UUkFDRV9DVVJSRU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00MAorI2RlZmluZSBESV9UUkFDRV9DVVJSRU5UX0RFUFRIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00MQorI2RlZmluZSBESV9UUkFDRV9DVVJSRU5UX0FTX1NUUklORyAgICAgICAgICAgICAgICAgICAgICAgICAgIC00MgorI2RlZmluZSBESV9UUkFDRV9MQVNUX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00MworI2RlZmluZSBESV9UUkFDRV9MQVNUX0VSUk9SX0FTX1NUUklORyAgICAgICAgICAgICAgICAgICAgICAgIC00NAorI2RlZmluZSBESV9UUkFDRV9MQVNUX1VOQ0FVR0hUX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICAgIC00NQorI2RlZmluZSBESV9UUkFDRV9MQVNUX1VOQ0FVR0hUX0VSUk9SX0FTX1NUUklORyAgICAgICAgICAgICAgIC00NgorCisvKiBMUEMgUnVudGltZSBzdGF0aXN0aWNzICovCisjZGVmaW5lIERJX05VTV9GVU5DVElPTl9OQU1FX0NBTExTICAgICAgICAgICAgICAgICAgICAgICAgICAtMTAwCisjZGVmaW5lIERJX05VTV9GVU5DVElPTl9OQU1FX0NBTExfSElUUyAgICAgICAgICAgICAgICAgICAgICAtMTAxCisjZGVmaW5lIERJX05VTV9GVU5DVElPTl9OQU1FX0NBTExfTUlTU0VTICAgICAgICAgICAgICAgICAgICAtMTAyCisKKyNkZWZpbmUgRElfTlVNX09CSkVDVFNfTEFTVF9QUk9DRVNTRUQgICAgICAgICAgICAgICAgICAgICAgIC0xMDMKKworI2RlZmluZSBESV9OVU1fSEVBUlRCRUFUX1RPVEFMX0NZQ0xFUyAgICAgICAgICAgICAgICAgICAgICAgLTEwNAorI2RlZmluZSBESV9OVU1fSEVBUlRCRUFUX0FDVElWRV9DWUNMRVMgICAgICAgICAgICAgICAgICAgICAgLTEwNQorI2RlZmluZSBESV9OVU1fSEVBUlRCRUFUU19MQVNUX1BST0NFU1NFRCAgICAgICAgICAgICAgICAgICAgLTEwNgorCisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfU1RSSU5HU19BRERFRCAgICAgICAgICAgICAgICAgICAtMTEwCisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfU1RSSU5HU19SRU1PVkVEICAgICAgICAgICAgICAgICAtMTExCisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfTE9PS1VQU19CWV9WQUxVRSAgICAgICAgICAgICAgICAtMTEyCisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfTE9PS1VQU19CWV9JTkRFWCAgICAgICAgICAgICAgICAtMTEzCisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfTE9PS1VQX1NURVBTX0JZX1ZBTFVFICAgICAgICAgICAtMTE0CisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfTE9PS1VQX1NURVBTX0JZX0lOREVYICAgICAgICAgICAtMTE1CisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfSElUU19CWV9WQUxVRSAgICAgICAgICAgICAgICAgICAtMTE2CisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfSElUU19CWV9JTkRFWCAgICAgICAgICAgICAgICAgICAtMTE3CisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfQ09MTElTSU9OUyAgICAgICAgICAgICAgICAgICAgICAtMTE4CisKKyNkZWZpbmUgRElfTlVNX1JFR0VYX0xPT0tVUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xMjAKKyNkZWZpbmUgRElfTlVNX1JFR0VYX0xPT0tVUF9ISVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xMjEKKyNkZWZpbmUgRElfTlVNX1JFR0VYX0xPT0tVUF9NSVNTRVMgICAgICAgICAgICAgICAgICAgICAgICAgIC0xMjIKKyNkZWZpbmUgRElfTlVNX1JFR0VYX0xPT0tVUF9DT0xMSVNJT05TICAgICAgICAgICAgICAgICAgICAgIC0xMjMKKworLyogTmV0d29yayBzdGF0aXN0aWNzICovCisjZGVmaW5lIERJX05VTV9NRVNTQUdFU19PVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMjAwCisjZGVmaW5lIERJX05VTV9QQUNLRVRTX09VVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMjAxCisjZGVmaW5lIERJX05VTV9QQUNLRVRTX0lOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMjAyCisjZGVmaW5lIERJX1NJWkVfUEFDS0VUU19PVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMjAzCisjZGVmaW5lIERJX1NJWkVfUEFDS0VUU19JTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMjA0CisKKy8qIExvYWQgKi8KKyNkZWZpbmUgRElfTE9BRF9BVkVSQUdFX0NPTU1BTkRTICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0zMDAKKyNkZWZpbmUgRElfTE9BRF9BVkVSQUdFX0xJTkVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0zMDEKKyNkZWZpbmUgRElfTE9BRF9BVkVSQUdFX1BST0NFU1NFRF9PQkpFQ1RTICAgICAgICAgICAgICAgICAgIC0zMDIKKyNkZWZpbmUgRElfTE9BRF9BVkVSQUdFX1BST0NFU1NFRF9PQkpFQ1RTX1JFTEFUSVZFICAgICAgICAgIC0zMDMKKyNkZWZpbmUgRElfTE9BRF9BVkVSQUdFX1BST0NFU1NFRF9IRUFSVEJFQVRTX1JFTEFUSVZFICAgICAgIC0zMDQKKworLyogTWVtb3J5IHVzZSBzdGF0aXN0aWNzICovCisjZGVmaW5lIERJX05VTV9BQ1RJT05TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDAwCisjZGVmaW5lIERJX05VTV9DQUxMT1VUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDAxCisjZGVmaW5lIERJX05VTV9IRUFSVEJFQVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDAyCisjZGVmaW5lIERJX05VTV9TSEFET1dTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDAzCisjZGVmaW5lIERJX05VTV9PQkpFQ1RTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDA0CisjZGVmaW5lIERJX05VTV9PQkpFQ1RTX1NXQVBQRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDA1CisjZGVmaW5lIERJX05VTV9PQkpFQ1RTX0lOX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDA2CisjZGVmaW5lIERJX05VTV9PQkpFQ1RTX0lOX1RBQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDA3CisjZGVmaW5lIERJX05VTV9PQkpFQ1RTX0RFU1RSVUNURUQgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDA4CisjZGVmaW5lIERJX05VTV9PQkpFQ1RTX05FV0xZX0RFU1RSVUNURUQgICAgICAgICAgICAgICAgICAgICAtNDA5CisjZGVmaW5lIERJX05VTV9PQkpFQ1RfVEFCTEVfU0xPVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDEwCisjZGVmaW5lIERJX05VTV9QUk9HUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDExCisjZGVmaW5lIERJX05VTV9QUk9HU19TV0FQUEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDEyCisjZGVmaW5lIERJX05VTV9QUk9HU19VTlNXQVBQRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDEzCisjZGVmaW5lIERJX05VTV9BUlJBWVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDE0CisjZGVmaW5lIERJX05VTV9NQVBQSU5HUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDE1CisjZGVmaW5lIERJX05VTV9NQVBQSU5HU19DTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDE2CisjZGVmaW5lIERJX05VTV9NQVBQSU5HU19IQVNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDE3CisjZGVmaW5lIERJX05VTV9NQVBQSU5HU19IWUJSSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDE4CisjZGVmaW5lIERJX05VTV9TVFJVQ1RTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDE5CisjZGVmaW5lIERJX05VTV9TVFJVQ1RfVFlQRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDIwCisjZGVmaW5lIERJX05VTV9WSVJUVUFMX1NUUklOR1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDIxCisjZGVmaW5lIERJX05VTV9TVFJJTkdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDIyCisjZGVmaW5lIERJX05VTV9TVFJJTkdTX1RBQkxFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDIzCisjZGVmaW5lIERJX05VTV9TVFJJTkdTX1VOVEFCTEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDI0CisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfU0xPVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDI1CisjZGVmaW5lIERJX05VTV9TVFJJTkdfVEFCTEVfU0xPVFNfVVNFRCAgICAgICAgICAgICAgICAgICAgICAtNDI2CisjZGVmaW5lIERJX05VTV9SRUdFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDI3CisjZGVmaW5lIERJX05VTV9SRUdFWF9UQUJMRV9TTE9UUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNDI4CisKKyNkZWZpbmUgRElfU0laRV9BQ1RJT05TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NTAKKyNkZWZpbmUgRElfU0laRV9DQUxMT1VUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NTEKKyNkZWZpbmUgRElfU0laRV9IRUFSVEJFQVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NTIKKyNkZWZpbmUgRElfU0laRV9TSEFET1dTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NTMKKyNkZWZpbmUgRElfU0laRV9PQkpFQ1RTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NTQKKyNkZWZpbmUgRElfU0laRV9PQkpFQ1RTX1NXQVBQRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NTUKKyNkZWZpbmUgRElfU0laRV9PQkpFQ1RfVEFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NTYKKyNkZWZpbmUgRElfU0laRV9QUk9HUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NTcKKyNkZWZpbmUgRElfU0laRV9QUk9HU19TV0FQUEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NTgKKyNkZWZpbmUgRElfU0laRV9QUk9HU19VTlNXQVBQRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NTkKKyNkZWZpbmUgRElfU0laRV9BUlJBWVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NjAKKyNkZWZpbmUgRElfU0laRV9NQVBQSU5HUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NjEKKyNkZWZpbmUgRElfU0laRV9TVFJVQ1RTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NjIKKyNkZWZpbmUgRElfU0laRV9TVFJVQ1RfVFlQRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NjMKKyNkZWZpbmUgRElfU0laRV9TVFJJTkdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NjQKKyNkZWZpbmUgRElfU0laRV9TVFJJTkdTX1RBQkxFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NjUKKyNkZWZpbmUgRElfU0laRV9TVFJJTkdTX1VOVEFCTEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NjYKKyNkZWZpbmUgRElfU0laRV9TVFJJTkdfVEFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NjcKKyNkZWZpbmUgRElfU0laRV9TVFJJTkdfT1ZFUkhFQUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NjgKKyNkZWZpbmUgRElfU0laRV9SRUdFWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NjkKKyNkZWZpbmUgRElfU0laRV9CVUZGRVJfRklMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NzAKKyNkZWZpbmUgRElfU0laRV9CVUZGRVJfU1dBUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00NzEKKworLyogTWVtb3J5IHN3YXBwZXIgc3RhdGlzdGljcyAqLworI2RlZmluZSBESV9OVU1fU1dBUF9CTE9DS1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTUwMAorI2RlZmluZSBESV9OVU1fU1dBUF9CTE9DS1NfRlJFRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTUwMQorI2RlZmluZSBESV9OVU1fU1dBUF9CTE9DS1NfUkVVU0VfTE9PS1VQUyAgICAgICAgICAgICAgICAgICAgLTUwMgorI2RlZmluZSBESV9OVU1fU1dBUF9CTE9DS1NfUkVVU0VfTE9PS1VQX1NURVBTICAgICAgICAgICAgICAgLTUwMworI2RlZmluZSBESV9OVU1fU1dBUF9CTE9DS1NfRlJFRV9MT09LVVBTICAgICAgICAgICAgICAgICAgICAgLTUwNQorI2RlZmluZSBESV9OVU1fU1dBUF9CTE9DS1NfRlJFRV9MT09LVVBfU1RFUFMgICAgICAgICAgICAgICAgLTUwNgorI2RlZmluZSBESV9TSVpFX1NXQVBfQkxPQ0tTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTUwNworI2RlZmluZSBESV9TSVpFX1NXQVBfQkxPQ0tTX0ZSRUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTUwOAorI2RlZmluZSBESV9TSVpFX1NXQVBfQkxPQ0tTX1JFVVNFRCAgICAgICAgICAgICAgICAgICAgICAgICAgLTUwOQorI2RlZmluZSBESV9TV0FQX1JFQ1lDTEVfUEhBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTUxMAorCisvKiBNZW1vcnkgYWxsb2NhdG9yIHN0YXRpc3RpY3MgKi8KKyNkZWZpbmUgRElfTUVNT1JZX0FMTE9DQVRPUl9OQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgIC02MDAKKworI2RlZmluZSBESV9OVU1fU1lTX0FMTE9DQVRFRF9CTE9DS1MgICAgICAgICAgICAgICAgICAgICAgICAgLTYxMAorI2RlZmluZSBESV9OVU1fTEFSR0VfQkxPQ0tTX0FMTE9DQVRFRCAgICAgICAgICAgICAgICAgICAgICAgLTYxMQorI2RlZmluZSBESV9OVU1fTEFSR0VfQkxPQ0tTX0ZSRUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTYxMgorI2RlZmluZSBESV9OVU1fTEFSR0VfQkxPQ0tTX1dBU1RFICAgICAgICAgICAgICAgICAgICAgICAgICAgLTYxMworI2RlZmluZSBESV9OVU1fU01BTExfQkxPQ0tTX0FMTE9DQVRFRCAgICAgICAgICAgICAgICAgICAgICAgLTYxNAorI2RlZmluZSBESV9OVU1fU01BTExfQkxPQ0tTX0ZSRUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTYxNQorI2RlZmluZSBESV9OVU1fU01BTExfQkxPQ0tTX1dBU1RFICAgICAgICAgICAgICAgICAgICAgICAgICAgLTYxNgorI2RlZmluZSBESV9OVU1fU01BTExfQkxPQ0tfQ0hVTktTICAgICAgICAgICAgICAgICAgICAgICAgICAgLTYxNworI2RlZmluZSBESV9OVU1fVU5NQU5BR0VEX0JMT0NLUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTYxOAorI2RlZmluZSBESV9OVU1fRlJFRV9CTE9DS1NfQVZMX05PREVTICAgICAgICAgICAgICAgICAgICAgICAgLTYxOQorCisjZGVmaW5lIERJX1NJWkVfU1lTX0FMTE9DQVRFRF9CTE9DS1MgICAgICAgICAgICAgICAgICAgICAgICAtNjMwCisjZGVmaW5lIERJX1NJWkVfTEFSR0VfQkxPQ0tTX0FMTE9DQVRFRCAgICAgICAgICAgICAgICAgICAgICAtNjMxCisjZGVmaW5lIERJX1NJWkVfTEFSR0VfQkxPQ0tTX0ZSRUUgICAgICAgICAgICAgICAgICAgICAgICAgICAtNjMyCisjZGVmaW5lIERJX1NJWkVfTEFSR0VfQkxPQ0tTX1dBU1RFICAgICAgICAgICAgICAgICAgICAgICAgICAtNjMzCisjZGVmaW5lIERJX1NJWkVfTEFSR0VfQkxPQ0tfT1ZFUkhFQUQgICAgICAgICAgICAgICAgICAgICAgICAtNjM0CisjZGVmaW5lIERJX1NJWkVfU01BTExfQkxPQ0tTX0FMTE9DQVRFRCAgICAgICAgICAgICAgICAgICAgICAtNjM1CisjZGVmaW5lIERJX1NJWkVfU01BTExfQkxPQ0tTX0ZSRUUgICAgICAgICAgICAgICAgICAgICAgICAgICAtNjM2CisjZGVmaW5lIERJX1NJWkVfU01BTExfQkxPQ0tTX1dBU1RFICAgICAgICAgICAgICAgICAgICAgICAgICAtNjM3CisjZGVmaW5lIERJX1NJWkVfU01BTExfQkxPQ0tfT1ZFUkhFQUQgICAgICAgICAgICAgICAgICAgICAgICAtNjM4CisjZGVmaW5lIERJX1NJWkVfU01BTExfQkxPQ0tfQ0hVTktTICAgICAgICAgICAgICAgICAgICAgICAgICAtNjM5CisjZGVmaW5lIERJX1NJWkVfVU5NQU5BR0VEX0JMT0NLUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNjQwCisjZGVmaW5lIERJX1NJWkVfTUVNT1JZX1VTRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNjQxCisjZGVmaW5lIERJX1NJWkVfTUVNT1JZX1VOVVNFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNjQyCisjZGVmaW5lIERJX1NJWkVfTUVNT1JZX09WRVJIRUFEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtNjQzCisKKyNkZWZpbmUgRElfTlVNX0lOQ1JFTUVOVF9TSVpFX0NBTExTICAgICAgICAgICAgICAgICAgICAgICAgIC02NTAKKyNkZWZpbmUgRElfTlVNX0lOQ1JFTUVOVF9TSVpFX0NBTExfU1VDQ0VTU0VTICAgICAgICAgICAgICAgIC02NTEKKyNkZWZpbmUgRElfU0laRV9JTkNSRU1FTlRfU0laRV9DQUxMX0RJRkZTICAgICAgICAgICAgICAgICAgIC02NTIKKyNkZWZpbmUgRElfTlVNX1JFUExBQ0VNRU5UX01BTExPQ19DQUxMUyAgICAgICAgICAgICAgICAgICAgIC02NTMKKyNkZWZpbmUgRElfU0laRV9SRVBMQUNFTUVOVF9NQUxMT0NfQ0FMTFMgICAgICAgICAgICAgICAgICAgIC02NTQKKyNkZWZpbmUgRElfTlVNX01FTU9SWV9ERUZSQUdNRU5UQVRJT05fQ0FMTFNfRlVMTCAgICAgICAgICAgIC02NTUKKyNkZWZpbmUgRElfTlVNX01FTU9SWV9ERUZSQUdNRU5UQVRJT05fQ0FMTFNfVEFSR0VURUQgICAgICAgIC02NTYKKyNkZWZpbmUgRElfTlVNX01FTU9SWV9ERUZSQUdNRU5UQVRJT05fQ0FMTF9UQVJHRVRfSElUUyAgICAgIC02NTcKKyNkZWZpbmUgRElfTlVNX01FTU9SWV9ERUZSQUdNRU5UQVRJT05fQkxPQ0tTX0lOU1BFQ1RFRCAgICAgIC02NTgKKyNkZWZpbmUgRElfTlVNX01FTU9SWV9ERUZSQUdNRU5UQVRJT05fQkxPQ0tTX01FUkdFRCAgICAgICAgIC02NTkKKyNkZWZpbmUgRElfTlVNX01FTU9SWV9ERUZSQUdNRU5UQVRJT05fQkxPQ0tTX1JFU1VMVElORyAgICAgIC02NjAKKworI2RlZmluZSBESV9NRU1PUllfRVhURU5ERURfU1RBVElTVElDUyAgICAgICAgICAgICAgICAgICAgICAgLTY3MAorCisvKiBTdGF0dXMgdGV4dHMgKi8KKyNkZWZpbmUgRElfU1RBVFVTX1RFWFRfTUVNT1JZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC03MDAKKyNkZWZpbmUgRElfU1RBVFVTX1RFWFRfVEFCTEVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC03MDEKKyNkZWZpbmUgRElfU1RBVFVTX1RFWFRfU1dBUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC03MDIKKyNkZWZpbmUgRElfU1RBVFVTX1RFWFRfTUFMTE9DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC03MDMKKyNkZWZpbmUgRElfU1RBVFVTX1RFWFRfTUFMTE9DX0VYVEVOREVEICAgICAgICAgICAgICAgICAgICAgIC03MDQKKworLyogSW5kaWNlcyBpbnRvIHRoZSBzdWJhcnJheXMgb2YgRElfTUVNT1JZX0VYVEVOREVEX1NUQVRJU1RJQ1MgKGlmIGdpdmVuKSAqLworCisjZGVmaW5lIERJTV9FU19NQVhfQUxMT0MgICAwCisjZGVmaW5lIERJTV9FU19DVVJfQUxMT0MgICAxCisjZGVmaW5lIERJTV9FU19NQVhfRlJFRSAgICAyCisjZGVmaW5lIERJTV9FU19DVVJfRlJFRSAgICAzCisjZGVmaW5lIERJTV9FU19BVkdfWEFMTE9DICA0CisjZGVmaW5lIERJTV9FU19BVkdfWEZSRUUgICA1CisjZGVmaW5lIERJTV9FU19GVUxMX1NMQUJTICA2CisjZGVmaW5lIERJTV9FU19GUkVFX1NMQUJTICA3CisjZGVmaW5lIERJTV9FU19UT1RBTF9TTEFCUyA4CisKKyNkZWZpbmUgRElNX0VTX01BWCAgOQorCisKKy8qIERlZmluaXRpb24gb2YgYXJndW1lbnQgdmFsdWVzIGZvciBkdW1wX2RyaXZlcl9pbmZvKCkKKyAqLworCisjZGVmaW5lIERESV9PQkpFQ1RTICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBERElfT0JKRUNUU19ERVNUUlVDVEVEICAgICAgICAgIDEKKyNkZWZpbmUgRERJX09QQ09ERVMgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIERESV9NRU1PUlkgICAgICAgICAgICAgICAgICAgICAgMworCisvKiBJbmRpY2VzIGludG8gdGhlIHN1YmFycmF5cyByZXN1bHRpbmcgZnJvbSBkcml2ZXJfaW5mbyhESV9UUkFDRV8qKQorICovCisKKyNkZWZpbmUgVFJBQ0VfVFlQRSAgICAwCisjZGVmaW5lIFRSQUNFX05BTUUgICAgMQorI2RlZmluZSBUUkFDRV9QUk9HUkFNIDIKKyNkZWZpbmUgVFJBQ0VfT0JKRUNUICAzCisjZGVmaW5lIFRSQUNFX0xPQyAgICAgNAorI2lmZGVmIF9fRVZBTF9DT1NUX1RSQUNFX18KKyNkZWZpbmUgVFJBQ0VfRVZBTENPU1QgNQorCisjZGVmaW5lIFRSQUNFX01BWCAgICAgNgorI2Vsc2UKKyNkZWZpbmUgVFJBQ0VfTUFYICAgICA1CisjZW5kaWYKKworLyogVmFsdWVzIGZvciBlbnRyeSBUUkFDRV9UWVBFICovCisKKyNkZWZpbmUgVFJBQ0VfVFlQRV9TWU1CT0wgIDAKKyNkZWZpbmUgVFJBQ0VfVFlQRV9TRUZVTiAgIDEKKyNkZWZpbmUgVFJBQ0VfVFlQRV9FRlVOICAgIDIKKyNkZWZpbmUgVFJBQ0VfVFlQRV9MQU1CREEgIDMKKyNkZWZpbmUgVFJBQ0VfVFlQRV9MRlVOICAgIDQKKworI2VuZGlmIC8qIExQQ19EUklWRVJfSU5GT19IXyAqLwpkaWZmIC0tZ2l0IGEvc3lzL2VycS5oIGIvc3lzL2VycS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMGVkZmQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZXJxLmgKQEAgLTAsMCArMSw1OSBAQAorLyogZXh0ZXJuYWwgcmVxdWVzdCBkZW1vbiBpbnRlcmZhY2UgZGVmaW5pdGlvbnMgKi8KKworI2lmbmRlZiBMUENfX0VSUV9IX18KKyNkZWZpbmUgTFBDX19FUlFfSF9fIDEKKworLyogc2Vydml2ZSByZXF1ZXN0IHR5cGVzICovCisKKyNkZWZpbmUgRVJRX1JMT09LVVAgICAgIDAgIC8qIExvb2t1cCBpcCAtPiBuYW1lICovCisjZGVmaW5lIEVSUV9FWEVDVVRFICAgICAxICAvKiBFeGVjdXRlIGEgcHJvZ3JhbSAqLworI2RlZmluZSBFUlFfRk9SSyAgICAgICAgMiAgLyogRm9yayBhIHByb2dyYW0gKi8KKyNkZWZpbmUgRVJRX0FVVEggICAgICAgIDMgIC8qIENvbm5lY3QgdG8gYSByZW1vdGUgYXV0aGQgKi8KKyNkZWZpbmUgRVJRX1NQQVdOICAgICAgIDQgIC8qIFNwYXduIGEgcHJvZ3JhbSAqLworI2RlZmluZSBFUlFfU0VORCAgICAgICAgNSAgLyogU2VuZCBkYXRhIHRvIGEgcHJvZ3JhbSBvciBjb25uZWN0aW9uICovCisjZGVmaW5lIEVSUV9LSUxMICAgICAgICA2ICAvKiBLaWxsIGEgcHJvZ3JhbSBvciBjb25uZWN0aW9uICovCisjZGVmaW5lIEVSUV9PUEVOX1VEUCAgICA3ICAvKiBPcGVuIGEgVURQIHNvY2tldCAqLworI2RlZmluZSBFUlFfT1BFTl9UQ1AgICAgOCAgLyogT3BlbiBhIFRDUCBjb25uZWN0aW9uICovCisjZGVmaW5lIEVSUV9MSVNURU4gICAgICA5ICAvKiBPcGVuIGEgVENQIGFjY2VwdC1zb2NrZXQgKi8KKyNkZWZpbmUgRVJRX0FDQ0VQVCAgICAgMTAgIC8qIEFjY2VwdCBhIGNvbm5lY3Rpb24gZnJvbSBhIGFjY2VwdC1zb2NrZXQgKi8KKyNkZWZpbmUgRVJRX0xPT0tVUCAgICAgMTEgIC8qIExvb2t1cCBuYW1lIC0+IGlwICovCisKKyNpZmRlZiBfX0lQVjZfXworI2RlZmluZSBFUlFfUkxPT0tVUFY2ICAxMiAgLyogTG9va3VwIG5hbWUvaXA2ICovCisjZW5kaWYKKworLyogQWRkaXRpb25hbCBzZXJ2aWNlIHJlcXVlc3QgdHlwZSBmbGFncyBldmFsdWF0ZWQgYnkgZWZ1biBzZW5kX2VycSgpLgorICogVGhlIEVSUSBpdHNlbGYgd29uJ3QgZ2V0IHRvIHNlZSBpdC4KKyAqLworCisjZGVmaW5lIEVSUV9DQl9TVFJJTkcgICgxIDw8IDMxKSAgLyogQ2FsbGJhY2sgY2xvc3VyZSB0YWtlcyBhIHN0cmluZyBhcmcgKi8KKworCisvKiBhbnN3ZXJzIGZyb20gRVJRX0VYRUNVVEUgLyBFUlFfRk9SSyAqLworCisjZGVmaW5lIEVSUV9PSwkJICAwCisjZGVmaW5lIEVSUV9TSUdOQUxFRAkgIDEKKyNkZWZpbmUgRVJRX0VfTk9URk9VTkQJICAyICAvKiBwcm9jZXNzIG5vdCBmb3VuZCBieSB3YWl0ICovCisjZGVmaW5lIEVSUV9FX1VOS05PV04JICAzICAvKiB1bmtub3duIGV4aXQgY29uZGl0aW9uIGZyb20gd2FpdCgpICovCisjZGVmaW5lIEVSUV9FX0FSR0xFTkdUSAkgIDQKKyNkZWZpbmUgRVJRX0VfQVJHRk9STUFUCSAgNQorI2RlZmluZSBFUlFfRV9BUkdOVU1CRVIJICA2CisjZGVmaW5lIEVSUV9FX0lMTEVHQUwJICA3CisjZGVmaW5lIEVSUV9FX1BBVEhMRU4JICA4CisjZGVmaW5lIEVSUV9FX0ZPUktGQUlMCSAgOQorI2RlZmluZSBFUlFfRV9USUNLRVQJIDExCisjZGVmaW5lIEVSUV9FX0lOQ09NUExFVEUgMTIKKyNkZWZpbmUgRVJRX0VfV09VTERCTE9DSyAxMworI2RlZmluZSBFUlFfRV9QSVBFCSAxNAorI2RlZmluZSBFUlFfU1RET1VUCSAxNSAgLyogTm9ybWFsIGRhdGEgcmVjZWl2ZWQgKi8KKyNkZWZpbmUgRVJRX1NUREVSUgkgMTYKKyNkZWZpbmUgRVJRX0VYSVRFRAkgMTcgIC8qIENvbm5lY3Rpb24gY2xvc2VkIG9uIEVPRiAqLworI2RlZmluZSBFUlFfRV9OU0xPVFMJIDE4CisKKy8qIHJlc2VydmVkIGhhbmRsZXMgKi8KKworI2RlZmluZSBFUlFfSEFORExFX1JMT09LVVAgKC0xKQorI2RlZmluZSBFUlFfSEFORExFX0tFRVBfSEFORExFICgtMikKKyNkZWZpbmUgRVJRX0hBTkRMRV9STE9PS1VQVjYgKC0zKQorCisjZW5kaWYgLyogTFBDX19FUlFfSF9fICovCmRpZmYgLS1naXQgYS9zeXMvZXZlbnRzLmggYi9zeXMvZXZlbnRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVmNDVmNgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9ldmVudHMuaApAQCAtMCwwICsxLDY0IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gL3N5cy9ldmVudHMuaCAtLSBTdGFuZGFyZC1FdmVudC1JRCB1bmQgUHJvdG90eXBlbiBkZXIgTXVkbGliCisvLworLy8gJElkJAorCisjaWZuZGVmIF9fRVZFTlRTX0hfXworI2RlZmluZSBfX0VWRU5UU19IX18KKworI2RlZmluZSBFVkVOVEQgIi9wL2RhZW1vbi9ldmVudGQiCisKKy8vIFN0YW5kYXJkbGliCisjZGVmaW5lIEVWVF9MSUJfTE9HSU4gICAgICAgICAgICAgICAiZXZ0X2xpYl9sb2dpbiIKKyNkZWZpbmUgRVZUX0xJQl9MT0dPVVQgICAgICAgICAgICAgICJldnRfbGliX2xvZ291dCIKKyNkZWZpbmUgRVZUX0xJQl9QTEFZRVJfREVBVEggICAgICAgICJldnRfbGliX3BsYXllcl9kZWF0aCIKKyNkZWZpbmUgRVZUX0xJQl9QTEFZRVJfREVMRVRJT04gICAgICJldnRfbGliX3BsYXllcl9kZWxldGlvbiIKKyNkZWZpbmUgRVZUX0xJQl9QTEFZRVJfQ1JFQVRJT04JICAgICJldnRfbGliX3BsYXllcl9jcmVhdGlvbiIKKyNkZWZpbmUgRVZUX0xJQl9OUENfREVBVEgoeCkgICAgICAgICgiZXZ0X2xpYl9ucGNfZGVhdGhfIit4KQorI2RlZmluZSBFVlRfTElCX0FEVkFOQ0UgICAgICAgICAgICAgImV2dF9saWJfYWR2YW5jZSIKKyNkZWZpbmUgRVZUX0xJQl9RVUVTVF9TT0xWRUQgICAgICAgICJldnRfbGliX3F1ZXN0X3NvbHZlZCIKKyNkZWZpbmUgRVZUX0xJQl9NSU5JUVVFU1RfU09MVkVEICAgICJldnRfbGliX21pbmlxdWVzdF9zb2x2ZWQiCisjZGVmaW5lIEVWVF9MSUJfUExBWUVSX0FUVFJfQ0hBTkdFICAiZXZ0X2xpYl9wbGF5ZXJfYXR0cl9jaGFuZ2UiCisjZGVmaW5lIEVWVF9MSUJfQ0xPQ0sgICAgICAgICAgICAgICAiZXZ0X2xpYl9jbG9jayIKKyNkZWZpbmUgRVZUX0xJQl9EQVRFQ0hBTkdFICAgICAgICAgICJldnRfbGliX2RhdGVjaGFuZ2UiCisjZGVmaW5lIEVWVF9MSUJfTkVXX0VSUk9SICAgICAgICAgICAiZXZ0X2xpYl9ldmVudGRfbmV3X2Vycm9yIgorCisvLyBHaWxkZW4KKyNkZWZpbmUgRVZUX0dVSUxEX0NIQU5HRSAgICAgICAgImV2dF9ndWlsZF9jaGFuZ2UiCisjZGVmaW5lIEVWVF9HVUlMRF9BRFZBTkNFICAgICAgICJldnRfZ3VpbGRfYWR2YW5jZSIKKworCisvLyBLb25zdGFudGVuIGZ1ZXIgRXZlbnQtRGF0ZW4uIHMuIE1hbnBhZ2VzIGRlciBlaW56ZWxuZW4gRXZlbnRzLCBkaWUKKy8vIEJlZGV1dHVuZ2VuIGRpZXNlciBLZXlzIGtvZW5uZW4gc2ljaCBqZXdlaWxzIGxlaWNodCB1bnRlcnNjaGVpZGVuIQorI2RlZmluZSBFX1RJTUUgICAgICAgICAgICAiZXZ0X3RpbWUiCisjZGVmaW5lIEVfT0JKRUNUICAgICAgICAgICJldnRfb2JqZWN0IgorI2RlZmluZSBFX09CTkFNRSAgICAgICAgICAiZXZ0X29iamVjdF9uYW1lIgorI2RlZmluZSBFX0VOVklST05NRU5UICAgICAiZXZ0X2Vudmlyb25tZW50IgorI2RlZmluZSBFX1BMTkFNRSAgICAgICAgICAiZXZ0X3BsYXllcl9uYW1lIgorI2RlZmluZSBFX0VYVEVSTkFMX0RFQVRIICAiZXZ0X2V4dGVybmFsX2RlYXRoIgorI2RlZmluZSBFX1BPSVNPTl9ERUFUSCAgICAiZXZ0X3BvaXNvbl9kZWF0aCIKKyNkZWZpbmUgRV9DT1JQU0UgICAgICAgICAgImV2dF9jb3Jwc2UiCisjZGVmaW5lIEVfR1VJTEROQU1FICAgICAgICJldnRfZ3VpbGRfbmFtZSIKKyNkZWZpbmUgRV9MQVNUX0dVSUxETkFNRSAgImV2dF9sYXN0X2d1aWxkX25hbWUiCisjZGVmaW5lIEVfUVVFU1ROQU1FICAgICAgICJldnRfcXVlc3RfbmFtZSIKKyNkZWZpbmUgRV9RUF9HUkFOVEVEICAgICAgImV2dF9xcF9ncmFudGVkIgorI2RlZmluZSBFX01JTklRVUVTVE5BTUUgICAiZXZ0X21pbmlxdWVzdF9uYW1lIgorI2RlZmluZSBFX01RUF9HUkFOVEVEICAgICAiZXZ0X21xcF9ncmFudGVkIgorCisjZW5kaWYgLy8gX19FVkVOVFNfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0VWRU5UU19QUk9UT1RZUEVTX0hfCisjZGVmaW5lIF9fRVZFTlRTX1BST1RPVFlQRVNfSF8KKyAgICAgICAgaW50IENoZWNrRXZlbnRJRChzdHJpbmcgZWlkKTsKKyAgICAgICAgaW50IFJlZ2lzdGVyRXZlbnQoc3RyaW5nIGVpZCwgc3RyaW5nIGZ1biwgb2JqZWN0IG9iKTsKKyAgICAgICAgaW50IFVucmVnaXN0ZXJFdmVudChzdHJpbmcgZWlkLCBvYmplY3Qgb2IpOwordmFyYXJncyBpbnQgVHJpZ2dlckV2ZW50KHN0cmluZyBlaWQsIG1peGVkIGFyZ3MpOworCisjZW5kaWYgLy8gX19FVkVOVFNfUFJPVE9UWVBFU19IXworCisKKyNlbmRpZiAvLyBORUVEX1BST1RPVFlQRVMKKwpkaWZmIC0tZ2l0IGEvc3lzL2ZpbGVzLmggYi9zeXMvZmlsZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDdlMmM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2ZpbGVzLmgKQEAgLTAsMCArMSwyOSBAQAorI2lmbmRlZiBMUENfRklMRVNfSF8KKyNkZWZpbmUgTFBDX0ZJTEVTX0hfIDEKKworLyogRGVmaW5pdGlvbnMgYW5kIG1hY3JvcyBmb3IgdGhlIHZhcmlvdXMgZmlsZSBlZnVucyAqLworCisvKiBTcGVjaWFsIHJldHVybiB2YWx1ZXMgb2YgZmlsZV9zaXplKCkgYW5kIHRoZSBzaXplIHBhcnQgb2YgZ2V0X2RpcigpLgorICovCisKKyNkZWZpbmUgRlNJWkVfTk9GSUxFICAtMSAgLyogRmlsZSBkb2Vzbid0IGV4aXN0IG9yIGlzIG5vdCByZWFkYWJsZSAqLworI2RlZmluZSBGU0laRV9ESVIgICAgIC0yICAvKiBUaGUgZmlsZSBpcyBhY3R1YWxseSBhIGRpcmVjdG9yeSAqLworCisKKy8qIEZsYWcgdmFsdWVzIGZvciBnZXRfZGlyKCkuCisgKi8KKworI2RlZmluZSBHRVRESVJfRU1QVFkgICAgICAgKDApICAvKiByZXR1cm4gYW4gZW1wdHkgYXJyYXkgKG5vdCB2ZXJ5IHVzZWZ1bCkgKi8KKyNkZWZpbmUgR0VURElSX05BTUVTICAgICAoMHgwMSkgIC8qIHJldHVybiB0aGUgZmlsZW5hbWVzICovCisjZGVmaW5lIEdFVERJUl9TSVpFUyAgICAgKDB4MDIpICAvKiByZXR1cm4gdGhlIGZpbGUgc2l6ZXMgKi8KKyNkZWZpbmUgR0VURElSX0RBVEVTICAgICAoMHgwNCkgIC8qIHJldHVybiB0aGUgZGF0ZXMgb2YgbGFzdCBtb2RpZmljYXRpb24gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAoMHgwOCkgdW51c2VkICovCisjZGVmaW5lIEdFVERJUl9BQ0NFU1MgICAgKDB4NDApICAvKiByZXR1cm4gdGhlIGRhdGVzIG9mIGxhc3QgYWNjZXNzICovCisjZGVmaW5lIEdFVERJUl9NT0RFUyAgICAgKDB4ODApICAvKiByZXR1cm4gdGhlIGZpbGUgbW9kZSAqLworCisjZGVmaW5lIEdFVERJUl9QQVRIICAgICAgKDB4MTApICAvKiB3aXRoIF9OQU1FUzogYWRkIHRoZSBwYXRoIHRvIHRoZSBmaWxlbmFtZXMgKi8KKyNkZWZpbmUgR0VURElSX1VOU09SVEVEICAoMHgyMCkgIC8qIHJldHVybiB0aGUgcmVzdWx0cyB1bnNvcnRlZCAqLworCisjZGVmaW5lIEdFVERJUl9BTEwgICAgICAgKDB4REYpICAvKiByZXR1cm4gYWxsICovCisKKyNlbmRpZiAvKiBMUENfRklMRVNfSF8gKi8KZGlmZiAtLWdpdCBhL3N5cy9maXNoaW5nLmggYi9zeXMvZmlzaGluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlNjYwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZmlzaGluZy5oCkBAIC0wLDAgKzEsNiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vICRJZDogZmlzaGluZy5oIDg5MzAgMjAxNC0wOS0wOCAyMjowMDozMlogQXJhdGhvcm4gJAorCisjaW5jbHVkZSA8aXRlbXMvZmlzaGluZy9maXNoaW5nLmg+CisKZGlmZiAtLWdpdCBhL3N5cy9mb29kLmggYi9zeXMvZm9vZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4NWM2Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZm9vZC5oCkBAIC0wLDAgKzEsMTk4IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gL3N5cy9mb29kLnN5cyAgLSBEZWZpbmVzIHVuZCBQcm90b3R5cGVuIGZ1ZXIgTGViZW5zbWl0dGVsCisvLworLy8gJElkOiBmb29kLmggNzcwMiAyMDEwLTEwLTI2IDIxOjIyOjM3WiBaZXNzdHJhICQKKworI2lmbmRlZiBfRk9PRF9IXworI2RlZmluZSBfRk9PRF9IXworCisjaW5jbHVkZSA8cHJvcGVydGllcy5oPgorCisvLyBGdWVsbGdyYWQgcHJvIFBvcnRpb24gRXNzZW4gKGRlZmluZWQgaW4gbGlmZS5oKQorLy8gI2RlZmluZSAgIFBfRk9PRAorCisvLyBGdWVsbGdyYWQgcHJvIFNjaGx1Y2sgZGVzIEdldHJhZW5rZXMgKGRlZmluZWQgaW4gbGlmZS5oKQorLy8gI2RlZmluZSAgIFBfRFJJTksKKworLy8gTWVuZ2UgYW4gQWxrb2hvbCwgZGllIGRpZSBTcGVpc2UgcHJvIFBvcnRpb24gaGF0IChkZWZpbmVkIGluIGxpZmUuaCkKKy8vICNkZWZpbmUgICBQX0FMQ09IT0wKKworLy8gSGVpbHdpcmt1bmcgZGVyIFNwZWlzZSAoZGVmaW5lZCBpbiBsaWZlLmgpCisvLyAjZGVmaW5lICAgUF9TUAorLy8gI2RlZmluZSAgIFBfSFAKKworLy8gR2V3aWNodCBwcm8gUG9ydGlvbiAoZGVmaW5lZCBpbiByZXN0cmljdGlvbnMuaCkKKy8vIGluIFBfRU1QVFlfUFJPUFMgaXN0IGVzIGRhcyBHZXdpY2h0IGRlcyBCZWhhZWx0ZXJzCisvLyBtaXQgYmVpZGVuIEFuZ2FiZW4gd2lyZCBkYXMgR2V3aWNodCBpbW1lciBrb3JyZWt0IGJlcmVjaG5ldAorLy8gI2RlZmluZSAgIFBfV0VJR0hUCisKKy8vIFdlcnQgcHJvIFBvcnRpb24gKGRlZmluZWQgaW4gcHJvcGVydGllcy5oKQorLy8gaW4gUF9FTVBUWV9QUk9QUyBpc3QgZXMgZGVyIFdlcnQgZGVzIEJlaGFlbHRlcnMKKy8vIG1pdCBiZWlkZW4gQW5nYWJlbiB3aXJkIGRlciBXZXJ0IGltbWVyIGtvcnJla3QgYmVyZWNobmV0CisvLyAjZGVmaW5lICAgUF9WQUxVRQorCisvLyBEaWUgTWVsZHVuZywgZGllIGRpZSBVbXN0ZWhlbmRlbiBlcmhhbHRlbiwgd2VubiBnZWdlc3Nlbi9nZXRydW5rZW4gd2lyZC4KKyNkZWZpbmUgICBQX0NPTlNVTUVfTVNHICAgICAgICAic3RkX2Zvb2RfY29uc3VtZV9tc2ciCisKKy8vIERpZSBNZWxkdW5nLCBkaWUgZGVyamVuaWdlIGtyaWVndCwgZGVyIGRhcyBEaW5nIGlzc3QvdHJpbmt0LgorI2RlZmluZSAgIFBfRUFURVJfTVNHICAgICAgICAgICJzdGRfZm9vZF9lYXRlcl9tc2ciCisKKy8vIE1lc3NhZ2UsIHdlbm4gbWFuIGRpZSBTcGVpc2UgYmVpbSBLb25zdW1pZXJlbiBnYXIgbmljaHQgaW4gZGVyIEhhbmQgaGF0CisvLyBXZW5uIG1hbiBkaWUgUHJvcCBsb2VzY2h0LCBrYW5uIGRpZSBTcGVpc2UgaW1tZXIgdmVydGlsZ3Qgd2VyZGVuCisjZGVmaW5lICAgUF9FTlZfTVNHICAgICAgICAgICAgInN0ZF9mb29kX2Vudl9tc2ciCisKKy8vIERpZSBNZWxkdW5nLCB3ZW5uIGRpZSBTcGVpc2UgbGVlciBpc3QKKyNkZWZpbmUgICBQX0VNUFRZX01TRyAgICAgICAgICAic3RkX2Zvb2RfZW1wdHlfbXNnIgorCisvLyBEaWUgTWVsZHVuZywgd2VubiBHZXRyYWVua2UgZ2VnZXNzZW4gd2VyZGVuCisjZGVmaW5lICAgUF9OT0ZPT0RfTVNHICAgICAgICAgInN0ZF9mb29kX25vZm9vZF9tc2ciCisKKy8vIERpZSBNZWxkdW5nLCB3ZW5uIFNwZWlzZW4gZ2V0cnVua2VuIHdlcmRlbgorI2RlZmluZSAgIFBfTk9EUklOS19NU0cgICAgICAgICJzdGRfZm9vZF9ub2RyaW5rX21zZyIKKworLy8gRGllIE1lbGR1bmcsIHdlbm4gZGllIFNwZWlzZSBnZXJhZGUgdmVyZGlyYnQKKyNkZWZpbmUgICBQX0JBRF9NU0cgICAgICAgICAgICAic3RkX2Zvb2RfYmFkX21zZyIKKworLy8gRGllIE1lbGR1bmcsIHdlbm4gbmljaHRzIG1laHIgZ2VnZXNzZW4gd2VyZGVuIGthbm4KKyNkZWZpbmUgICBQX0ZPT0RfRlVMTF9NU0cgICAgICAic3RkX2Zvb2RfZnVsbF9tc2ciCisvLyBEaWUgTWVsZHVuZywgd2VubiBuaWNodHMgbWVociBnZXRydW5rZW4gd2VyZGVuIGthbm4KKyNkZWZpbmUgICBQX0RSSU5LX0ZVTExfTVNHICAgICAic3RkX2Zvb2RfZHJpbmtfZnVsbF9tc2ciCisvLyBEaWUgTWVsZHVuZywgd2VubiBuaWNodHMgbWVociBhbGtvaG9saXNjaGVzIGdlaHQKKyNkZWZpbmUgICBQX0FMQ19GVUxMX01TRyAgICAgICAic3RkX2Zvb2RfYWxjX2Z1bGxfbXNnIgorLy8gRGllIE1lbGR1bmcsIHdlbm4gZWluZSB2ZXJkb3JiZW5lIFNwZWlzZSB6ZXJzdG9lcnQgd2lyZAorLy8gd2lyZCBudXIgdmVyd2VuZGV0LCB3ZW5uIFBfREVTVFJPWV9CQUQgPiAwIGlzdAorI2RlZmluZSAgIFBfUkVNT1ZFX01TRyAgICAgICAgICJzdGRfZm9vZF9yZW1vdmVfbWVzc2FnZSIKKworLy8gTWFwcGluZyBtaXQgUHJvcGVydGllcyBmdWVyIGRlbiBsZWVyZW4gQmVoYWVsdGVyLgorLy8gQWxsZSBlbnRoYWx0ZW5lbiBQcm9wZXJ0aWVzIHdlcmRlbiBnZXNldHp0LCB3ZW5uCisvLyBrZWluZSBQb3J0aW9uZW4gbWVociB2b3JoYW5kZW4gc2luZCwgYmVyZWl0cyBpbiBkaWVzZW4gUHJvcGVydGllcworLy8gZWluZ2V0cmFnZW5lIFdlcnRlIHdlcmRlbiB1ZWJlcnNjaHJpZWJlbiEKKy8vIFdlbm4gZGllc2UgUHJvcGVydHkgbmljaHQgZ2VzZXR6dCBpc3QsIHdpcmQgZGllIFNwZWlzZSB6ZXJzdG9lcnQsCisvLyB3ZW5uIGFsbGUgUG9ydGlvbmVuIGF1ZmdlYnJhdWNodCBpc3QuCisvLyBBY2h0dW5nOiBlcyB3ZXJkZW4ga2VpbmUgY2xvc3VyZXMgdW50ZXJzdHVldHp0IQorI2RlZmluZSAgIFBfRU1QVFlfUFJPUFMgICAgICAgICJzdGRfZm9vZF9lbXB0eV9wcm9wcyIKKworLy8gV2lldmllbGUgUG9ydGlvbmVuIGhhdCBkaWUgU3BlaXNlCisjZGVmaW5lICAgUF9QT1JUSU9OUyAgICAgICAgICAgInN0ZF9mb29kX3BvcnRpb25zIgorCisvLyBWZXJ0ZWlsdW5nIGRlciBIZWlsdW5nc3JhdGUgcHJvIFBvcnRpb24gKHNpZWhlIEhfRElTVFJJQlVUSU9OKQorI2RlZmluZSAgIFBfRElTVFJJQlVUSU9OICAgICAgICJzdGRfZm9vZF9kaXN0cmlidXRpb24iCisKKy8vIEFuemFobCBkZXIgU2VrdW5kZW4sIGJpcyBkaWUgU3BlaXNlIHZlcmRvcmJlbiBpc3QuCisvLyBFcyBtdXNzIGVpbiBXZXJ0IGdyb2Vzc2VyIDAgZWluZ2V0cmFnZW4gd2VyZGVuLgorLy8gV2VubiBrZWluIFdlcnQgZ2VzZXR6dCB3aXJkLCB2ZXJkaXJidCBkaWUgU3BlaXNlIGJlaW0gbmFlY2hzdGVuIFJlc2V0CisvLyBEZXIgVGltZXIgc3RhcnRldCBpbW1lciBlcnN0LCB3ZW5uIGVpbiBTcGllbGVyIGRpZSBTcGVpc2UgZGFzIGVyc3RlIE1hbAorLy8gaW4gZGllIEhhbmQgYmVrb21tdAorI2RlZmluZSAgIFBfTElGRVRJTUUgICAgICAgICAgICJzdGRfZm9vZF9saWZldGltZSIKKy8vIEFuemFobCBkZXIgUmVzZXRzLCBiaXMgZGllIFNwZWlzZSB2ZXJkb3JiZW4gaXN0LgorLy8gUF9SRVNFVF9MSUZFVElNRSB1bmQgUF9MSUZFVElNRSBzaW5kIGtvbXBsZW1lbnRhZXIsIGRhcyBoZWlzc3QsIGRhc3MKKy8vIGJlaW0gU2V0emVuIGRlciBlaW5lbiBkaWUgYW5kZXJlIGF1dG9tYXRpc2NoIGJlcmVjaG5ldCB3aXJkLiBNYW4gYnJhdWNodAorLy8gZGFoZXIgbmljaHQgYmVpZGUgenUgc2V0emVuLCBiencuIHNvbGx0ZSBkaWVzIGdhciBuaWNodCBlcnN0IHR1bi4KKyNkZWZpbmUgICBQX1JFU0VUX0xJRkVUSU1FICAgICAic3RkX2Zvb2RfbGlmZXRpbWVfcmVzZXQiCisKKy8vIEZsYWcsIG9iIGRpZSBTcGVpc2UgdmVyZGlyYnQKKy8vIFN0YW5kYXJkOiAwIC0+IERhcmYgbnVyIG1pdCBCYWxhbmNlZ2VuZWhtaWd1bmcgZ2VhZW5kZXJ0IHdlcmRlbiEKKyNkZWZpbmUgICBQX05PX0JBRCAgICAgICAgICAgICAic3RkX2Zvb2Rfbm9fYmFkIgorCisvLyBaZWl0IGluIFNla3VuZGVuLCB3YW5uIGRpZSBTcGVpc2UgbmFjaCBkZW0gU2NobGVjaHR3ZXJkZW4gemVyc3RvZXJ0IHdpcmQuCisvLyB3ZW5uIFBfRU1QVFlfUFJPUFMgZ2VzZXR6dCBpc3QsIHdpcmQgZGVyIEJlaGFlbHRlciBnZWxlZXJ0LgorLy8gU3RhbmRhcmQ6IC0xID0gc29mb3J0IGJlaW0gU2NobGVjaHR3ZXJkZW4KKy8vICAgICAgICAgICAgMCA9IHdpcmQgbmljaHQgemVyc3RvZXJ0CisvLyAgICAgICAgICAgPjAgPSBBbnphaGwgZGVyIFNla3VuZGVuCisjZGVmaW5lICAgUF9ERVNUUk9ZX0JBRCAgICAgICAgInN0ZF9mb29kX2Rlc3Ryb3lfYmFkIgorI2RlZmluZSAgIERFU1RST1lfTkVWRVIgICAgICAgICAwCisjZGVmaW5lICAgREVTVFJPWV9CQUQgICAgICAgICAgLTEKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBLb21wYXRpYmlsaXRhZXRzY29kZQorI2RlZmluZSAgIEZfSVNfRk9PRCAgICAgICAgICAgICJvbGRfaXNfZm9vZCIKKyNkZWZpbmUgICBGX0lTX0RSSU5LICAgICAgICAgICAib2xkX2lzX2RyaW5rIgorI2RlZmluZSAgIEZfSVNfRlVMTCAgICAgICAgICAgICJvbGRfaXNfZnVsbCIKKyNkZWZpbmUgICBGX01FU1NBR0UgICAgICAgICAgICAib2xkX21lc3MiCisjZGVmaW5lICAgRl9FQVRFUiAgICAgICAgICAgICAgIm9sZF9lYXRlciIKKyNkZWZpbmUgICBGX0VNUFRZX0NPTlRBSU5FUiAgICAib2xkX2VtcHR5X2NvbiIKKyNkZWZpbmUgICBGX0VNUFRZX0dFTkRFUiAgICAgICAib2xkX2VtcHR5X2dlbmRlciIKKyNkZWZpbmUgICBGX0VNUFRZX0lEICAgICAgICAgICAib2xkX2VtcHR5X2lkIgorI2RlZmluZSAgIEZfRU1QVFlfTE9ORyAgICAgICAgICJvbGRfZW1wdHlfbG9uZyIKKyNkZWZpbmUgICBGX0FMQyAgICAgICAgICAgICAgICAib2xkX2FsYyIKKyNkZWZpbmUgICBGX0xJUVVJRCAgICAgICAgICAgICAib2xkX3dhdGVyIgorI2RlZmluZSAgIEZfRk9PRF9TSVpFICAgICAgICAgICJvbGRfZm9vZF9zaXplIgorI2RlZmluZSAgIEZfUE9USU9OICAgICAgICAgICAgICJvbGRfcG90aW9uIgorI2RlZmluZSAgIEZfSEVBTF9TUCAgICAgICAgICAgICJvbGRfaGVhbF9zcCIKKyNkZWZpbmUgICBGX0hFQUxfSFAgICAgICAgICAgICAib2xkX2hlYWxfaHAiCisjZGVmaW5lICAgRl9OT19DT05UQUlORVIgICAgICAgIm9sZF9ub19jb24iCisjZGVmaW5lICAgRl9CQUQgICAgICAgICAgICAgICAgIm9sZF9iYWQiCisjZGVmaW5lICAgRl9QT0lTT04gICAgICAgICAgICAgIm9sZF9wb2lzb24iCisKKyNlbmRpZiAvLyBfRk9PRF9IXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9GT09EX0hfUFJPVE9UWVBFU18KKyNkZWZpbmUgX0ZPT0RfSF9QUk9UT1RZUEVTXworCitwdWJsaWMgaW50IGNtZF9lYXQoc3RyaW5nIHN0cik7CitwdWJsaWMgaW50IGNtZF9kcmluayhzdHJpbmcgc3RyKTsKK3B1YmxpYyBpbnQgaXNfZWF0YWJsZSgpOworcHVibGljIGludCBpc19kcmlua2FibGUoKTsKK3B1YmxpYyBpbnQgaXNfbm90X2VtcHR5KCk7CitwdWJsaWMgaW50IGlzX2JhZCgpOworCisvLyBBbnphaGwgZGVyIFNla3VuZGVuLCBkaWUgZGFzIExlYmVuc21pdHRlbCBiZXJlaXRzIGhpbnRlciBzaWNoIGhhdCwKKy8vIHNlaXQgZXMgbWl0IGVpbmVtIFNwaWVsZXIgaW4gQmVydWVocnVuZyBrYW0KKy8vIHdlbm4gMCB6dXJ1ZWNrZ2VnZWJlbiB3aXJkLCBpc3QgZGVyIFRpbWVyIHp1bSBTY2hsZWNodHdlcmRlbiBub2NoIG5pY2h0CisvLyBnZXN0YXJ0ZXQgd29yZGVuCitwdWJsaWMgaW50IGdldF9jdXJyZW50X2xpZmV0aW1lKCk7CisKKy8vIFN0YXJ0ZXQgZGVuIFRpbWVyIHp1bSBWZXJkZXJiZW4gZGVyIFNwZWlzZSwgZmFsbHMga2VpbmUgR3J1ZW5kZSBkYWdlZ2VuCisvLyBzcHJlY2hlbiwgd2lyZCB2b24gaW5pdCgpIHVuZCBOb3RpZnlNb3ZlIGF1ZmdlcnVmZW4sIGthbm4gaW4gc3BlemllbGxlbgorLy8gU2l0dWF0aW9uZW4gYWJlciBhdWNoIG1hbnVlbGwgYXVmZ2VydWZlbiB3ZXJkZW4gKHNpZWhlIG1hbiBmb29kKQorcHVibGljIHZvaWQgc3RhcnRfbGlmZXRpbWUoKTsKKworLy8gd2lyZCBhdWZnZXJ1ZmVuLCB3ZW5uIGRpZSBTcGVpc2UgdmVyZG9yYmVuIGlzdCB1bmQgZGllIFplaXQgYXVzCisvLyBQX0RFU1RST1lfQkFEIGFiZ2VsYXVmZW4gaXN0CisvLyByZXR1cm4gMSwgZmFsbHMgT2JqZWt0IHplcnN0b2VydCB3aXJkLCBzb25zdCAwCitwdWJsaWMgaW50IG1ha2VfZGVzdHJveSgpOworCisvLyB3aXJkIGF1ZmdlcnVmZW4sIHdlbm4gZGllIFNwZWlzZSBnZXJhZGUgdmVyZGlyYnQKKy8vIHJldHVybiAxLCBmYWxscyBPYmpla3QgZGFiZWkgemVyc3RvZXJ0IHdpcmQsIHNvbnN0IDAKK3B1YmxpYyBpbnQgbWFrZV9iYWQoKTsKKworLy8gd2lyZCBhdWZnZXJ1ZmVuLCBzb2JhbGQgZGllIGxldHp0ZSBQb3J0aW9uIGdlZ2Vzc2VuL2dldHJ1bmtlbiB3dXJkZQorLy8gRmFsbHMgUF9FTVBUWV9QUk9QUyAwIGlzdCwgd2lyZCBkYXMgT2JqZWt0IHplcnN0b2VydAorLy8gcmV0dXJuIDEsIGZhbGxzIE9iamVrdCBkYWJlaSB6ZXJzdG9lcnQgd2lyZCwgc29uc3QgMAorcHVibGljIGludCBtYWtlX2VtcHR5KCk7CisKKy8vIHdpcmQgamVkZXNtYWwgYXVmZ2VydWZlbiwgd2VubiBlaW5lIHZlcmRvcmJlbmUgU3BlaXNlIGtvbnN1bWllcnQgd2lyZC4KKy8vIEFscyBBcmd1bWVudCB3aXJkIGRhcyBNYXBwaW5nIHVlYmVyZ2ViZW4sIGRhcyBjb25zdW1lKCkgaW0gTGViZXdlc2VuCisvLyB1ZWJlcmdlYmVuIHdlcmRlbiBzb2xsLiBEaWVzZXMgTWFwcGluZyBrYW5uIHZlcmFlbmRlcnQgd2VyZGVuLgorLy8gU3RhbmRhcmQ6IERpZSBIZWlsd2lya3VuZyB3aXJkIGVudGZlcm50IHVuZCBzdGF0dGRlc3NlbiB3aXJkIGRhcyBMZWJld2VzZW4KKy8vICAgICAgICAgICB2ZXJnaWZ0ZXQuCitwcm90ZWN0ZWQgdm9pZCBjb25zdW1lX2JhZChtYXBwaW5nIGVudHJ5X2luZm8pOworCisvLyB3aXJkIGF1cyBjbWRfZWF0IHVuZCBjbWRfZHJpbmsgYXVmZ2VydWZlbiB1bmQgZnVlaHJ0IGRhcyBLb25zdW1pZXJlbiBkdXJjaAorcHJvdGVjdGVkIGludCBjb25zdW1lKCk7CisvLyB3aXJkIGF1cyBjb25zdW1lKCkgYXVmZ2VydWZlbiB1bmQgZnVlaHJ0IGRhcyBLb25zdW1pZXJlbiBkdXJjaAorLy8gaXN0IGF1c2dlbGFnZXJ0LCBkYW1pdCBtYW4gZGFzIHRlc3RmbGFnIGJlaSBCZWRhcmYgbnV0emVuIGthbm4KK3Byb3RlY3RlZCB2YXJhcmdzIGludCB0cnlfY29uc3VtZShpbnQgdGVzdG9ubHkpOworCisvLyBGdXR0ZXJuIGhhdCBnZWtsYXBwdAorcHJvdGVjdGVkIHZvaWQgc3VjY2Vzc19jb25zdW1lKCk7CisvLyBGdXR0ZXJuIGhhdCBuaWNodCBnZWtsYXBwdCAobGVlcmVyIEJlaGFlbHRlciBpc3QgaGllciBrZWluIEdydW5kISkKKy8vIFdpcmQgYXVzIHRyeV9jb25zdW1lKCkgZ2VydWZlbi4KKy8vIHJlYXNvbiBlbnRzcHJpY2h0IGRlbSBSdWVja2dhYmV3ZXJ0IHZvbiBjb25zdW1lKCkgaW0gTGViZXdlc2VuLgorcHJvdGVjdGVkIHZvaWQgZmFpbGVkX2NvbnN1bWUoaW50IHJlYXNvbik7CisKKy8vIE1ldGhvZGUsIGRpZSBNZWxkdW5nZW4genUgU3RhdHVzYWVuZGVydW5nZW4gdmVyYXJiZWl0ZXQgdW5kIGtvcnJla3QgYXVzZ2lidC4KKy8vIEVzIHdpcmQgZGVyIE5hbWUgZGVyIGF1c3p1Z2ViZW5lbiBQcm9wZXJ0eSB1ZWJlcmdlYmVuLgorLy8gRXMgd2VyZGVuIGFsbGUgbm90d2VuZGlnZW4gRXJzZXR6dW5nZW4gcGVyIHJlcGxhY2VfcGVyc29uYWwgZ2VtYWNodCB1bmQKKy8vIGdlcHJ1ZWZ0LCBvYiBkZW0gQmVzaXR6ZXIgb2RlciBkZW0gUmF1bSBkaWUgTWVsZHVuZyBhdXNnZWdlYmVuIHdlcmRlbgorLy8gbXVzcy4KKy8vIEhpZXJ1ZWJlciBzb2xsdGVuIG51ciBNZWxkdW5nZW4gYXVzZ2VnZWJlbiB3ZXJkZW4sIGRpZSBkdXJjaCBBZW5kZXJ1bmdlbgorLy8gYW4gZGVyIFNwZWlzZSBpbSBSZXNldCBhdXNnZWxvZXN0IHdlcmRlbiwgYWxzbyBpbSByZXNldCBzZWxic3QgdW5kIGluIGRlbgorLy8gbWFrZV8qLU1ldGhvZGVuLgorcHJvdGVjdGVkIHZvaWQgbWVzc2FnZShzdHJpbmcgcHJvcCk7CisKKyNlbmRpZiAvLyBfRk9PRF9IX1BST1RPVFlQRVNfCisjZW5kaWYgLy8gTkVFRF9QUk9UT1RZUEVTCisKZGlmZiAtLWdpdCBhL3N5cy9mdW5jdGlvbmxpc3QuaCBiL3N5cy9mdW5jdGlvbmxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWRjZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2Z1bmN0aW9ubGlzdC5oCkBAIC0wLDAgKzEsNjIgQEAKKyNpZm5kZWYgTFBDX0ZVTkNUSU9OTElTVF9ICisjZGVmaW5lIExQQ19GVU5DVElPTkxJU1RfSAorCisjaWZuZGVmIF9fRFJJVkVSX1NPVVJDRV9fCisjaW5jbHVkZSAibHBjdHlwZXMuaCIKKworI2RlZmluZSBOQU1FX0lOSEVSSVRFRCAgICAgIDB4ODAwMDAwMDAgLyogRGVmaW5lZCBieSBpbmhlcml0YW5jZSAgICAgICAgICovCisjZGVmaW5lIFRZUEVfTU9EX1NUQVRJQyAgICAgMHg0MDAwMDAwMCAvKiBTdGF0aWMgZnVuY3Rpb24gb3IgdmFyaWFibGUgICAgKi8KKyNkZWZpbmUgVFlQRV9NT0RfTk9fTUFTSyAgICAweDIwMDAwMDAwIC8qIFRoZSBub21hc2sgPT4gbm90IHJlZGVmaW5lYWJsZSAqLworI2RlZmluZSBUWVBFX01PRF9QUklWQVRFICAgIDB4MTAwMDAwMDAgLyogQ2FuJ3QgYmUgaW5oZXJpdGVkICAgICAgICAgICAgICovCisjZGVmaW5lIFRZUEVfTU9EX1BVQkxJQyAgICAgMHgwODAwMDAwMCAvKiBGb3JjZSBpbmhlcml0IHRocm91Z2ggcHJpdmF0ZSAgKi8KKyNkZWZpbmUgVFlQRV9NT0RfVkFSQVJHUyAgICAweDA0MDAwMDAwIC8qIFVzZWQgZm9yIHR5cGUgY2hlY2tpbmcgICAgICAgICAqLworI2RlZmluZSBUWVBFX01PRF9WSVJUVUFMICAgIDB4MDIwMDAwMDAgIC8qIGNhbiBiZSByZS0gYW5kIGNyb3NzLSBkZWZpbmVkICovCisjZGVmaW5lIFRZUEVfTU9EX1BST1RFQ1RFRCAgMHgwMTAwMDAwMCAvKiBjYW5ub3QgYmUgY2FsbGVkIGV4dGVybmFsbHkgICAgKi8KKyNkZWZpbmUgVFlQRV9NT0RfWFZBUkFSR1MgICAweDAwODAwMDAwICAvKiBhY2NlcHRzIG9wdGlvbmFsIGFyZ3VtZW50cyAgICAqLworI2RlZmluZSBUWVBFX01PRF9OT1NBVkUgICAgIFRZUEVfTU9EX1NUQVRJQyAgLyogdmFyczogY2FuJ3QgYmUgc2F2ZWQgICAgICovCisgIC8qIEludGVybmFsbHkgVFlQRV9NT0RfTk9TQVZFIGlzIDB4MDA0MDAwMDAsIGJ1dCB0aGF0IG5ldmVyIGxlYXZlcworICAgKiB0aGUgY29tcGlsZXIuCisgICAqLworI2RlZmluZSBOQU1FX0NST1NTX0RFRklORUQgIDB4MDAwODAwMDAgLyogZnVuY3Rpb24gZGVmaW5lZCBmcm9tIG90aGVyIHByb2dyYW0gKi8KKyNkZWZpbmUgTkFNRV9ISURERU4gICAgICAgICAweDAwMDIwMDAwIC8qIE5vdCB2aXNpYmxlIGZvciBpbmhlcml0YW5jZSAgICAqLworI2RlZmluZSBOQU1FX1BST1RPVFlQRSAgICAgIDB4MDAwMTAwMDAgLyogRGVmaW5lZCBieSBhIHByb3RvdHlwZSBvbmx5ICAgICovCisjZGVmaW5lIE5BTUVfVU5ERUZJTkVEICAgICAgMHgwMDAwODAwMCAvKiBOb3QgZGVmaW5lZCB5ZXQgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgTkFNRV9UWVBFU19MT1NUICAgICAweDAwMDA0MDAwIC8qIGluaGVyaXRlZCwgbm8gc2F2ZV90eXBlcyAgICAgICAqLworCisjZW5kaWYgLyogIV9fRFJJVkVSX1NPVVJDRV9fICovCisKKworLyogUmV0dXJuIHZhbHVlIGZsYWcgdHlwZXMgZm9yIGZ1bmN0aW9ubGlzdCgpIGFuZCB2YXJpYWJsZV9saXN0KCkgKi8KKworI2RlZmluZSBSRVRVUk5fRlVOQ1RJT05fTkFNRQkweDAxCisjZGVmaW5lIFJFVFVSTl9GVU5DVElPTl9GTEFHUwkweDAyCisjZGVmaW5lIFJFVFVSTl9GVU5DVElPTl9UWVBFCTB4MDQKKworCisvKiBBZGRpdGlvbmFsIHJldHVybiB2YWx1ZSBmbGFnIHR5cGVzIGZvciBmdW5jdGlvbmxpc3QoKSAqLworCisjZGVmaW5lIFJFVFVSTl9GVU5DVElPTl9OVU1BUkcJMHgwOAorI2RlZmluZSBSRVRVUk5fRlVOQ1RJT05fQVJHVFlQRSAweDEwIC8qIG5vdCBpbXBsZW1lbnRlZCAqLworCisKKy8qIEFkZGl0aW9uYWwgcmV0dXJuIHZhbHVlIGZsYWcgdHlwZXMgZm9yIHZhcmlhYmxlX2xpc3QoKSAqLworCisjZGVmaW5lIFJFVFVSTl9WQVJJQUJMRV9WQUxVRQkweDA4CisKKworLyogTWFza3Mgb2YgdGhlIGZsYWcgdW5pb25zIGFsbG93ZWQgZm9yIHZhcmlvdXMgZWZ1bnM6ICovCisjZGVmaW5lIFJFVFVSTl9GVU5DVElPTl9NQVNLICAgIDB4MGYgIC8qIGZ1bmN0aW9ubGlzdCgpICovCisjZGVmaW5lIFJFVFVSTl9WQVJJQUJMRV9NQVNLICAgIDB4MGYgIC8qIHZhcmlhYmxlX2xpc3QoKSAqLworCisvKiBSZXR1cm4gdmFsdWUgZmxhZyB0eXBlcyBmb3IgZnVuY3Rpb25fZXhpc3RzKCkgKi8KKworI2RlZmluZSBGRVhJU1RTX1BST0dOQU1FICAoMCkKKyNkZWZpbmUgRkVYSVNUU19GSUxFTkFNRSAgKDEpCisjZGVmaW5lIEZFWElTVFNfTElORU5PICAgICgyKQorI2RlZmluZSBGRVhJU1RTX05VTUFSRyAgICAoMykKKyNkZWZpbmUgRkVYSVNUU19UWVBFICAgICAgKDQpCisjZGVmaW5lIEZFWElTVFNfRkxBR1MgICAgICg1KQorCisjZGVmaW5lIEZFWElTVFNfQUxMICAgICAgICgzKQorCisjZW5kaWYgLyogTFBDX0ZVTkNUSU9OTElTVF9IICovCmRpZmYgLS1naXQgYS9zeXMvZ3VhcmQuaCBiL3N5cy9ndWFyZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljYzQ3N2YKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZ3VhcmQuaApAQCAtMCwwICsxLDEyIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gZ3VhcmQuaCAtLSBEZWZpbml0aW9uIGZ1ZXIgUF9HVUFSRC1Qcm9wZXJ0eSB2b24gTlBDcy4KKy8vCisvLyAkSWQ6IGd1YXJkLmggNzcwMSAyMDEwLTEwLTI0IDIwOjM4OjM3WiBaZXNzdHJhICQKKworI2lmbmRlZiBfR1VBUkRfSF8KKyNkZWZpbmUgX0dVQVJEX0hfCisKKyNkZWZpbmUgUF9HVUFSRCAiZ3VhcmQiCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL2hlYWRlci5oIGIvc3lzL2hlYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjN2ExMDcKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvaGVhZGVyLmgKQEAgLTAsMCArMSwyNCBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHh4eHguaCAtLSBoZWFkZXIKKy8vCisvLyAkSWQ6IGhlYWRlci5oLHYgMy4xIDE5OTcvMDIvMTIgMTM6MDQ6NTkgV2FyZ29uIEV4cCAkCisgCisjaWZuZGVmIF9fWFhYWF9IX18KKyNkZWZpbmUgX19YWFhYX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNlbmRpZiAvLyBfX1hYWFhfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1hYWFhfSF9QUk9UT19fCisjZGVmaW5lIF9fWFhYWF9IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworLy8gbm8gcHJvdG90eXBlcworCisjZW5kaWYgLy8gX19YWFhYX0hfUFJPVE9fXworCisjZW5kaWYJLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy9oZWFsdGguaCBiL3N5cy9oZWFsdGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDU3YmNiCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2hlYWx0aC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBoZWFsdGguaCAtLSBIZWlsc3RhZXJrZW4gdW5kIC1nZXNjaHdpbmRpZ2tlaXRlbgorLy8KKy8vICRJZDogaGVhbHRoLmggODM2OCAyMDEzLTAyLTEyIDIxOjAzOjA3WiBaZXNzdHJhICQKKworI2lmbmRlZiBfSEVBTFRIXworI2RlZmluZSBfSEVBTFRIXworCisvKgorICogaGVhbHRoLmgKKyAqCisgKiBBIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgYWxsIGZvb2QgYW5kIGRyaW5rIHN0dWZmCisgKi8KKworLyogVGhlc2UgYXJlIHR1bmUgbWFjcm9zIHRvIGRldGVybWluZSB0aGUgYWN0dWFsIGVmZmVjdCBvZiBmb29kLCAqLworLyogZHJpbmsgYW5kIGFsY29ob2wgKi8KKyNkZWZpbmUgQUxPQ0hPTF9WQUxVRShzdHJlbmd0aCkgc3RyZW5ndGgKKyNkZWZpbmUgRFJJTktfVkFMVUUoc3RyZW5ndGgpIHN0cmVuZ3RoCisjZGVmaW5lIEZPT0RfVkFMVUUoc3RyZW5ndGgpIHN0cmVuZ3RoCisKKy8qIEhvdyBmYXN0IGFsY29ob2wgd2VhcnMgb2ZmIGFuZCBkcmluayBhbmQgZm9vZCBhcmUgcmVkdWNlZCAqLworI2RlZmluZSBBTENPSE9MX0RFTEFZIDUgLyogcXVpdGUgZmFzdCAqLworI2RlZmluZSBEUklOS19ERUxBWSA3IC8qIHF1aXRlIG1lZGl1bSAqLworI2RlZmluZSBGT09EX0RFTEFZIDkgLyogcXVpdGUgc2xvdyAqLworI2RlZmluZSBIRUFMX0RFTEFZIDQgLyogcXVpdGUgZmFzdCAqLworCisjZGVmaW5lIFBPSVNPTl9ERUxBWSA0CisjZGVmaW5lIFBPSVNPTl9NRVJDWV9ERUxBWSAzCisKKyNkZWZpbmUgQUxDX0VGRkVDVF9ISUNLIDAKKyNkZWZpbmUgQUxDX0VGRkVDVF9SVUVMUFMgMQorI2RlZmluZSBBTENfRUZGRUNUX0xPT0tEUlVOSyAyCisjZGVmaW5lIEFMQ19FRkZFQ1RfU1RVTUJMRSAzCisKKyNkZWZpbmUgQUxDX0VGRkVDVF9BUkVBX0dVSUxEIDAKKyNkZWZpbmUgQUxDX0VGRkVDVF9BUkVBX0VOViAxCisKKy8qIEFueSByZWdlbmVyYXRpb24gcHJvaGliaXRlZCA/ICovCisjZGVmaW5lIE5PX1JFR19IUCAgICAgICAgIDB4MDEKKyNkZWZpbmUgTk9fUkVHX0JVRkZFUl9IUCAgMHgwMgorI2RlZmluZSBOT19SRUdfU1AgICAgICAgICAweDA0CisjZGVmaW5lIE5PX1JFR19CVUZGRVJfU1AgIDB4MDgKKyNkZWZpbmUgTk9fUkVHX0FMQ09IT0wgICAgMHgxMAorI2RlZmluZSBOT19SRUdfRFJJTksgICAgICAweDIwCisjZGVmaW5lIE5PX1JFR19GT09EICAgICAgIDB4NDAKKyNkZWZpbmUgTk9fUkVHICAgKE5PX1JFR19IUHxOT19SRUdfQlVGRkVSX0hQfE5PX1JFR19TUHxOT19SRUdfQlVGRkVSX1NQfCBcCisgICAgICAgICAgICAgICAgICBOT19SRUdfQUxDT0hPTHxOT19SRUdfRFJJTkt8Tk9fUkVHX0ZPT0QpCisgICAgICAgICAgICAgICAgICAKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL2hvb2suaCBiL3N5cy9ob29rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFlNjU1ZAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9ob29rLmgKQEAgLTAsMCArMSw5NiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIC9zeXMvaG9va3MuaCAgLSBIb29rc3lzdGVtCisvLworLy8gJElkOiBob29rLmggOTQ3NSAyMDE2LTAyLTE5IDIxOjE2OjE3WiBaZXNzdHJhICQKKworI2lmbmRlZiBfSE9PS1NfSF8KKyNkZWZpbmUgX0hPT0tTX0hfCisKKy8vIGdsb2JhbCBob29rcworI2RlZmluZSBIX0hPT0tfTU9WRSAgICAgICAgICAgMQorI2RlZmluZSBIX0hPT0tfRElFICAgICAgICAgICAgMgorI2RlZmluZSBIX0hPT0tfREVGRU5EICAgICAgICAgMworI2RlZmluZSBIX0hPT0tfQVRUQUNLICAgICAgICAgNAorI2RlZmluZSBIX0hPT0tfSFAgICAgICAgICAgICAgNQorI2RlZmluZSBIX0hPT0tfU1AgICAgICAgICAgICAgNgorI2RlZmluZSBIX0hPT0tfQVRUQUNLX01PRCAgICAgNworI2RlZmluZSBIX0hPT0tfQUxDT0hPTCAgICAgICAgOAorI2RlZmluZSBIX0hPT0tfRk9PRCAgICAgICAgICAgOQorI2RlZmluZSBIX0hPT0tfRFJJTksgICAgICAgICAgMTAKKyNkZWZpbmUgSF9IT09LX1BPSVNPTiAgICAgICAgIDExCisjZGVmaW5lIEhfSE9PS19DT05TVU1FICAgICAgICAxMgorI2RlZmluZSBIX0hPT0tfVEVBTVJPV0NIQU5HRSAgMTMKKyNkZWZpbmUgSF9IT09LX0lOU0VSVCAgICAgICAgIDE0CisjZGVmaW5lIEhfSE9PS19FWElUX1VTRSAgICAgICAxNQorCisvLyB0aGUgcG9zc2libGUgY29uc3VtZXIgdHlwZXMKKyNkZWZpbmUgSF9IT09LX1NVUlZFWU9SICAgICAgIDAKKyNkZWZpbmUgSF9IT09LX01PRElGSUNBVE9SICAgIDEKKyNkZWZpbmUgSF9EQVRBX01PRElGSUNBVE9SICAgIDIKKyNkZWZpbmUgSF9MSVNURU5FUiAgICAgICAgICAgIDMKKyNkZWZpbmUgSF9DT05TVU1FUkNIRUNLKHgpICAgICgoaW50cCh4KSYmIHg+PTAgJiYgeDw9SF9MSVNURU5FUik/eDotMSkKKyNkZWZpbmUgSF9DT05TVU1FUk5BTUVTICAgICAgICh7InN1cnZleW9ycyIsImhtb2RzIiwiZG1vZHMiLCJsaXN0ZW5lcnMifSkKKworLy8gcHJpb3JpdGllcworI2RlZmluZSBIX0hPT0tfUFJJT1JJVFlSQU5HRSAgMworI2RlZmluZSBIX0hPT0tfTElCQkFTRVBSSU8gICAgMAorI2RlZmluZSBIX0hPT0tfR1VJTERCQVNFUFJJTyAgKEhfSE9PS19MSUJCQVNFUFJJTytIX0hPT0tfUFJJT1JJVFlSQU5HRSkKKyNkZWZpbmUgSF9IT09LX09USEVSQkFTRVBSSU8gIChIX0hPT0tfR1VJTERCQVNFUFJJTytIX0hPT0tfUFJJT1JJVFlSQU5HRSkKKyNkZWZpbmUgSF9IT09LX1BSSU9DSEVDSyh4KSAgICgoaW50cCh4KSAmJiB4Pj0wICYmIHg8SF9IT09LX1BSSU9SSVRZUkFOR0UpP3g6LTEpCisjZGVmaW5lIEhfSE9PS19MSUJQUklPKHgpICAgICAoKEhfSE9PS19QUklPQ0hFQ0soeCkhPS0xKT8oSF9IT09LX0xJQkJBU0VQUklPK3gpOi0xKQorI2RlZmluZSBIX0hPT0tfR1VJTERQUklPKHgpICAgKChIX0hPT0tfUFJJT0NIRUNLKHgpIT0tMSk/KEhfSE9PS19HVUlMREJBU0VQUklPK3gpOi0xKQorI2RlZmluZSBIX0hPT0tfT1RIRVJQUklPKHgpICAgKChIX0hPT0tfUFJJT0NIRUNLKHgpIT0tMSk/KEhfSE9PS19PVEhFUkJBU0VQUklPK3gpOi0xKQorI2RlZmluZSBIX0hPT0tfVkFMSURQUklPKHgpICAgKChpbnRwKHgpICYmIHg+PTAgJiYgeDwoSF9IT09LX09USEVSQkFTRVBSSU8rSF9IT09LX1BSSU9SSVRZUkFOR0UpKT94Oi0xKQorCisvLyBtYXhpbXVtIGNvbnN1bWVyIHBlciB0eXBlCisjZGVmaW5lIE1BWF9TVVJWRVlPUiAgICAgICAgICAxCisjZGVmaW5lIE1BWF9IT09LX01PRElGSUNBVE9SICAyCisjZGVmaW5lIE1BWF9EQVRBX01PRElGSUNBVE9SICAzCisjZGVmaW5lIE1BWF9MSVNURU5FUiAgICAgICAgICA1CisjZGVmaW5lIE1BWF9IT09LX0NPVU5UUyAoe01BWF9TVVJWRVlPUiwgTUFYX0hPT0tfTU9ESUZJQ0FUT1IsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX0RBVEFfTU9ESUZJQ0FUT1IsIE1BWF9MSVNURU5FUiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisKKy8vIGRhdGEgaW5kaWNlcyBmb3IgcmV0dXJuIHZhbHVlIG9mIEhvb2tDYWxsYmFjaygpICYgQ28uCisjZGVmaW5lIEhfUkVUQ09ERSAgICAgICAgICAgICAwCisjZGVmaW5lIEhfUkVUREFUQSAgICAgICAgICAgICAxCisKKy8vIHJldHVybiBjb2RlcyBmb3IgSG9va0Zsb3cgJiBDby4KKyNkZWZpbmUgSF9OT19NT0QgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSF9DQU5DRUxMRUQgICAgICAgICAgIDEKKyNkZWZpbmUgSF9BTFRFUkVEICAgICAgICAgICAgIDIKKworLy8gZGVidWdnaW5nCisjZGVmaW5lIEhfRE1TRyh4KSAgICAgICAgICAgICAoaF9kYmcoKSAmJiAoZmluZF9wbGF5ZXIoInplc3N0cmEiKSkgPyBcCisgICAgdGVsbF9vYmplY3QoZmluZF9wbGF5ZXIoInplc3N0cmEiKSx4KTowKQorCisjZW5kaWYgLy9fSE9PS1NfSF8KKworLy8gcHJvdG90eXBlcyAKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKy8vIHByb3ZpZGVyCisjaWZuZGVmIF9fSE9PS19QUk9WSURFUl9QUk9UTworI2RlZmluZSBfX0hPT0tfUFJPVklERVJfUFJPVE8KKworLy8gbGlzdCBvZiBvZmZlcmVkIGhvb2tzCitpbnQqIEhMaXN0SG9va3MoKTsKKworLy8gcmVnaXN0ZXIgdG8gaG9vaworaW50IEhSZWdpc3RlclRvSG9vayhpbnQgaG9va2lkLCBtaXhlZCBjb25zdW1lciwgaW50IGhvb2twcmlvLAorICAgIGludCBjb25zdW1lcnR5cGUsIGludCB0aW1lSW5TZWNvbmRzKTsKKworLy8gdW5yZWdpc3RlciBmcm9tIGhvb2sKK2ludCBIVW5yZWdpc3RlckZyb21Ib29rKGludCBob29raWQsIG1peGVkIGNvbnN1bWVyKTsKKworLy8gY2hlY2sgd2V0aGVyIG9iamVjdCBpcyBhIGNvbnN1bWVyIGZvciBhIGdpdmVuIGhvb2sKK2ludCBISXNIb29rQ29uc3VtZXIoaW50IGhvb2tpZCwgbWl4ZWQgY29uc3VtZXIpOworCisvLyBvZmZlciBhIGhvb2sgb3Igc3RvcCBvZmZlcmluZyBpdAorcHJvdGVjdGVkIHZvaWQgb2ZmZXJIb29rKGludCBob29raWQsIGludCBvZmZlcnN0YXRlKTsKKworLy8gdHJpZ2dlciBhIGhvb2sKK3Byb3RlY3RlZCBtaXhlZCBIb29rRmxvdyhpbnQgaG9va2lkLCBtaXhlZCBob29rZGF0YSk7CisKKyNlbmRpZiAvLyBfX0hPT0tfUFJPVklERVJfUFJPVE8KKyNlbmRpZiAvLyBORUVEX1BST1RPVFlQRVMKZGlmZiAtLWdpdCBhL3N5cy9pZG4uaCBiL3N5cy9pZG4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODgyM2I1Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2lkbi5oCkBAIC0wLDAgKzEsMjYgQEAKKyNpZm5kZWYgTFBDX0lETl9IXworI2RlZmluZSBMUENfSUROX0hfIDEKKworLyogLS0tIElETkEgQ29uc3RhbnRzIC0tLQorICovCisKKy8qIGlkbmFfc3RyaW5ncHJlcCgpIHByb2ZpbGVzLiAqLworCisjZGVmaW5lIFNUUklOR1BSRVBfTkFNRVBSRVAgMQorI2RlZmluZSBTVFJJTkdQUkVQX1NBU0xQUkVQIDIKKyNkZWZpbmUgU1RSSU5HUFJFUF9QTEFJTiAzCisjZGVmaW5lIFNUUklOR1BSRVBfVFJBQ0UgNAorI2RlZmluZSBTVFJJTkdQUkVQX0tFUkJFUk9TNSA1CisjZGVmaW5lIFNUUklOR1BSRVBfWE1QUF9OT0RFUFJFUCA2CisjZGVmaW5lIFNUUklOR1BSRVBfWE1QUF9SRVNPVVJDRVBSRVAgNyAKKyNkZWZpbmUgU1RSSU5HUFJFUF9JU0NTSSA4CisKKy8qIGlkbmFfc3RyaW5ncHJlcCgpIGZsYWdzICovCisKKyNkZWZpbmUgU1RSSU5HUFJFUF9OT19ORktDX0ZMQUcgICAgICAgICgxPDwwKQorI2RlZmluZSBTVFJJTkdQUkVQX05PX0JJRElfRkxBRyAgICAgICAgKDE8PDEpCisjZGVmaW5lIFNUUklOR1BSRVBfTk9fVU5BU1NJR05FRF9GTEFHICAoMTw8MikKKworI2RlZmluZSBTVFJJTkdQUkVQX0ZMQUdfTUFYICAoMTw8MikKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvaW5jbHVkZV9saXN0LmggYi9zeXMvaW5jbHVkZV9saXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQ4NmYyNAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9pbmNsdWRlX2xpc3QuaApAQCAtMCwwICsxLDkgQEAKKyNpZm5kZWYgTFBDX0lOQ0xVREVfTElTVF9ICisjZGVmaW5lIExQQ19JTkNMVURFX0xJU1RfSAorCisvKiBSZXR1cm4gdmFsdWUgZmxhZyB0eXBlcyBmb3IgaW5jbHVkZV9saXN0KCkgKi8KKworI2RlZmluZSBJTkNMSVNUX0ZMQVQgICAgICAgICAweDAwCisjZGVmaW5lIElOQ0xJU1RfVFJFRSAgICAgICAgIDB4MDEKKworI2VuZGlmIC8qIExQQ19JTkNMVURFX0xJU1RfSCAqLwpkaWZmIC0tZ2l0IGEvc3lzL2luaGVyaXRfbGlzdC5oIGIvc3lzL2luaGVyaXRfbGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyNmIxZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvaW5oZXJpdF9saXN0LmgKQEAgLTAsMCArMSwxMCBAQAorI2lmbmRlZiBMUENfSU5IRVJJVF9MSVNUX0gKKyNkZWZpbmUgTFBDX0lOSEVSSVRfTElTVF9ICisKKy8qIFJldHVybiB2YWx1ZSBmbGFnIHR5cGVzIGZvciBpbmhlcml0X2xpc3QoKSAqLworCisjZGVmaW5lIElOSExJU1RfRkxBVCAgICAgICAgIDB4MDAKKyNkZWZpbmUgSU5ITElTVF9UUkVFICAgICAgICAgMHgwMQorI2RlZmluZSBJTkhMSVNUX1RBR19WSVJUVUFMICAweDAyCisKKyNlbmRpZiAvKiBMUENfSU5IRVJJVF9MSVNUX0ggKi8KZGlmZiAtLWdpdCBhL3N5cy9pbnBjLmggYi9zeXMvaW5wYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmZmNlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvaW5wYy5oCkBAIC0wLDAgKzEsMTUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBpbnBjLmggLS0gSGVhZGVyZmlsZSBmdWVyIGludGVsbGlnZW50ZSBOUENzCisvLworLy8gJElkOiBpbnBjLmgsdiAzLjQgMjAwMy8wOC8wNiAxOTowNjoxMSBWYW5pb24gRXhwICQKKworI2lmbmRlZiBfX0lOUENfSF9fCisjZGVmaW5lIF9fSU5QQ19IX18KKworI2luY2x1ZGUgIi9zeXMvaW5wYy9zZWxlY3QuaCIKKyNpbmNsdWRlICIvc3lzL2lucGMvZXZhbC5oIgorI2luY2x1ZGUgIi9zeXMvaW5wYy93YWxraW5nLmgiCisjaW5jbHVkZSAiL3N5cy9pbnBjL2Jvb3ppbmcuaCIKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvaW5wYy9ib296aW5nLmggYi9zeXMvaW5wYy9ib296aW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ5MDllYgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9pbnBjL2Jvb3ppbmcuaApAQCAtMCwwICsxLDIyIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gaW5wYy9ib296aW5nLmggLS0gSW50ZWxsaWdlbnQgU2F1ZmVuCisvLworLy8gJElkOiBib296aW5nLmgsdiAxLjIgMTk5Ny8wMi8xMiAxMzoxNzoxNCBXYXJnb24gRXhwICQKKworI2lmbmRlZiBfX0lOUENfQk9PWklOR19IX18KKyNkZWZpbmUgX19JTlBDX0JPT1pJTkdfSF9fCisKKyNkZWZpbmUgUF9JX0hBVEVfQUxDT0hPTCAiaV9oYXRlX2FsY29ob2wiCisKKyNlbmRpZgorCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9fSU5QQ19CT09aSU5HX1BST1RPX18KKyNkZWZpbmUgX19JTlBDX0JPT1pJTkdfUFJPVE9fXworCitpbnQgRHJpbmsoKTsKK3ZvaWQgRHJpbmtMb29wKCk7CisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvaW5wYy9ldmFsLmggYi9zeXMvaW5wYy9ldmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGExMGE0MgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9pbnBjL2V2YWwuaApAQCAtMCwwICsxLDEzIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gaW5wYy9ldmFsLmggLS0gRGVmaW5pdGlvbmVuIHp1bSBFaW5zY2hhZXR6ZW4KKy8vCisvLyAkSWQ6IGV2YWwuaCx2IDMuMSAxOTk3LzAyLzEyIDEzOjE3OjE0IFdhcmdvbiBFeHAgJAorCisjaWZuZGVmIF9fSU5QQ19FVkFMX0hfXworI2RlZmluZSBfX0lOUENfRVZBTF9IX18KKworI2RlZmluZSBQX0VWQUxfT0ZGU0VUUyAiaW5wY19ldmFsX29mZnNldHMiCisjZGVmaW5lIFBfRVZBTF9GQUNUT1JTICJpbnBjX2V2YWxfZmFjdG9ycyIKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvaW5wYy9zZWxlY3QuaCBiL3N5cy9pbnBjL3NlbGVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMmRjZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvaW5wYy9zZWxlY3QuaApAQCAtMCwwICsxLDQwIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gaW5wYy9zZWxlY3QuaCAtLSBEZWZpbml0aW9uZW4genVyIE9iamVrdGF1c3dhaGwKKy8vCisvLyAkSWQ6IHNlbGVjdC5oLHYgMy4zIDIwMDMvMDgvMDYgMTg6NDA6MDUgVmFuaW9uIEV4cCAkCisKKyNpZm5kZWYgX19JTlBDX1NFTEVDVF9IX18KKyNkZWZpbmUgX19JTlBDX1NFTEVDVF9IX18KKworI2RlZmluZSBPVF9XRUFQT04gIndlYXBvbiIKKyNkZWZpbmUgT1RfQ09NQkFUX09CSkVDVCAiY29tYmF0X29iamVjdCIKKyNkZWZpbmUgT1RfTUlTQyAibWlzY19vYmplY3RzIgorI2RlZmluZSBJTlBDX0JFU1RfV0VBUE9OX0lEICJpbnBjX2Jlc3Rfd2VhcG9uIgorI2RlZmluZSBJTlBDX0JFU1RfU0hJRUxEX0lEICJpbnBjX2Jlc3Rfc2hpZWxkIgorCisvLyBpZiBucGMgZG9lcyBub3QgbGlrZSB3ZWFwb25zLCBpLmUuIEthcmF0ZW9yYworI2RlZmluZSBJTlBDX0RPTlRfV0lFTERfV0VBUE9OUyAiaW5wY19kb250X3dpZWxkX3dlYXBvbnMiCisKKyNlbmRpZgorCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9fSU5QQ19TRUxFQ1RfUFJPVE9fXworI2RlZmluZSBfX0lOUENfU0VMRUNUX1BST1RPX18KKworaW50IGV2YWxfd2Vwb24ob2JqZWN0IG9iKTsKK2ludCBldmFsX2FybW91cihvYmplY3Qgb2IpOworaW50IGV2YWxfY29tYmF0X29iamVjdChvYmplY3Qgb2IsIG1hcHBpbmcgdmFscywgb2JqZWN0IGVuZW15KTsKKworb2JqZWN0IGZpbmRfYmVzdF93ZWFwb24obWl4ZWQgZnJvbSk7CitvYmplY3QgZmluZF9iZXN0X2FybW91cihtaXhlZCBmcm9tLCBtaXhlZCB0eXApOworb2JqZWN0ICpmaW5kX2Jlc3RfYXJtb3VycyhtaXhlZCBmcm9tKTsKK3ZhcmFyZ3Mgc3RyaW5nIGZpbmRfYmVzdF9jb21iYXRfY29tbWFuZChtaXhlZCBmcm9tLCBvYmplY3QgZW5lbXksIG1hcHBpbmcgcHJlZik7CisKK3ZhcmFyZ3MgaW50IHdpZWxkX2Jlc3Rfd2VhcG9uKG1peGVkIGZyb20pOwordmFyYXJncyBpbnQgd2Vhcl9iZXN0X2FybW91cnMobWl4ZWQgZnJvbSk7Cit2YXJhcmdzIGludCB1c2VfYmVzdF9jb21iYXRfY29tbWFuZChtaXhlZCBlbmVteSwgbWl4ZWQgZnJvbSwgbWFwcGluZyBwcmVmKTsKKworCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL2lucGMvd2Fsa2luZy5oIGIvc3lzL2lucGMvd2Fsa2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMTQzY2YKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvaW5wYy93YWxraW5nLmgKQEAgLTAsMCArMSw0MyBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHdhbGtpbmcuaCAtLSBEZWZpbml0aW9uZW4gdW5kIFByb3BlcnRpZXMgZnVlciBsYXVmZW5kZSBJTlBDcworLy8KKy8vICRJZDogd2Fsa2luZy5oLHYgMy4xIDE5OTcvMDIvMTIgMTM6MTc6MTQgV2FyZ29uIEV4cCAkCisKKyNpZm5kZWYgX19JTlBDX1dBTEtJTkdfSF9fCisjZGVmaW5lIF9fSU5QQ19XQUxLSU5HX0hfXworCisvLyBQcm9wZXJ0aWVzIGFuZCB0eXBlcworI2RlZmluZSBQX0lOUENfTEFTVF9QTEFZRVJfQ09OVEFDVCAiaW5wY19sYXN0X3BsYXllcl9jb250YWN0IgorI2RlZmluZSBQX0lOUENfTEFTVF9FTlZJUk9OTUVOVCAiaW5wY19sYXN0X2Vudmlyb25tZW50IgorI2RlZmluZSBQX0lOUENfV0FMS19NT0RFICJpbnBjX3dhbGtfbW9kZSIKKyNkZWZpbmUgUF9JTlBDX1dBTEtfREVMQVlTICJpbnBjX3dhbGtfZGVsYXkiCisjZGVmaW5lIFBfSU5QQ19XQUxLX0ZMQUdTICJpbnBjX3dhbGtfZmxhZ3MiCisjZGVmaW5lIFBfSU5QQ19XQUxLX0FSRUEgImlucGNfd2Fsa19hcmVhIgorI2RlZmluZSBQX0lOUENfV0FMS19ST1VURSAiaW5wY193YWxrX3JvdXRlIgorI2RlZmluZSBQX0lOUENfSE9NRSAiaW5wY19ob21lIgorCisjZGVmaW5lIFdGX01BWV9MT0FEIDB4MDEKKyNkZWZpbmUgV0ZfTUFZX0ZPTExPVyAweDAyCisjZGVmaW5lIFdGX01BWV9VU0VfU1BFQ0lBTCAweDA0CisjZGVmaW5lIFdGX01BWV9XQUxLX0JBQ0sgMHgwOAorCisjZGVmaW5lIFdNX1NUT1AgMAorI2RlZmluZSBXTV9SQU5ET00gMQorI2RlZmluZSBXTV9ST1VURSAyCisjZGVmaW5lIFdNX1dBTEtUTyAzCisjZGVmaW5lIFdNX0ZPTExPVyA0CisjZGVmaW5lIFdNX0ZMRUUgNQorCisjZW5kaWYgLy8gX19JTlBDX1dBTEtJTkdfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKyNpZm5kZWYgX19JTlBDX1dBTEtJTkdfSF9QUk9UT1RZUEVTX18KKyNkZWZpbmUgX19JTlBDX1dBTEtJTkdfSF9QUk9UT1RZUEVTX18KKworLy8gUHJvdG90eXBlbgoraW50IG1heV9lbnRlcl9yb29tKG1peGVkIHJvb20pOworCisjZW5kaWYgLy8gX19JTlBDX1dBTEtJTkdfSF9QUk9UT1RZUEVTX18KKyNlbmRpZiAvLyBORUVEX1BST1RPVFlQRVMKKwpkaWZmIC0tZ2l0IGEvc3lzL2lucHV0X3RvLmggYi9zeXMvaW5wdXRfdG8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2YwOTRmCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2lucHV0X3RvLmgKQEAgLTAsMCArMSwxNyBAQAorI2lmbmRlZiBMUENfSU5QVVRfVE9fSF8KKyNkZWZpbmUgTFBDX0lOUFVUX1RPX0hfCisKKy8qIE1vZGUgdmFsdWVzIHJlY29nbml6ZWQgYnkgdGhlIGVmdW4gaW5wdXRfdG8oKSAqLworCisjZGVmaW5lIElOUFVUX05PRUNITyAgICAgICAgIDEgIC8qIERvbid0IGVjaG8gdGhlIG5leHQgbGluZSB0eXBlZCAqLworI2RlZmluZSBJTlBVVF9DSEFSTU9ERSAgICAgICAyICAvKiBTd2l0Y2ggaW50by9vdXQgb2YgY2hhcm1vZGUgKi8KKyNkZWZpbmUgSU5QVVRfUFJPTVBUICAgICAgICAgNCAgLyogVXNlIGEgY3VzdG9tIHByb21wdCAqLworI2RlZmluZSBJTlBVVF9OT19URUxORVQgICAgICA4ICAvKiBTd2l0Y2ggaW50by9vdXQgb2YgY2hhcm1vZGUgb24gdGhlIGRyaXZlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaWRlIG9ubHkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBJTlBVVF9BUFBFTkQgICAgICAgIDE2ICAvKiBBcHBlbmQgdGhlIGlucHV0X3RvIHRvIHRoZSBsaXN0IG9mIGFscmVhZHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcGVuZGluZyBpbnB1dF90bydzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgSU5QVVRfSUdOT1JFX0JBTkcgIDEyOCAgLyogRGlzYWxsb3cgdGhlICchJyBlc2NhcGUgKi8KKworI2VuZGlmIC8qIExQQ19JTlBVVF9UT19IXyAqLwpkaWZmIC0tZ2l0IGEvc3lzL2ludGVyYWN0aXZlX2luZm8uaCBiL3N5cy9pbnRlcmFjdGl2ZV9pbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIwYWM5MgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9pbnRlcmFjdGl2ZV9pbmZvLmgKQEAgLTAsMCArMSwyOSBAQAorI2lmbmRlZiBMUENfSU5URVJBQ1RJVkVfSU5GT19IXworI2RlZmluZSBMUENfSU5URVJBQ1RJVkVfSU5GT19IXworCisvKiBEZWZpbml0aW9uIG9mIGFyZ3VtZW50IHZhbHVlcyBmb3IgaW50ZXJhY3RpdmVfaW5mbygpCisgKi8KKworI2luY2x1ZGUgImNvbmZpZ3VyYXRpb24uaCIKKworLyogQ29ubmVjdGlvbiBpbmZvcm1hdGlvbiAqLworI2RlZmluZSBJSV9JUF9OQU1FICAgICAgICAgICAgICAgICAgICAgIC0xCisjZGVmaW5lIElJX0lQX05VTUJFUiAgICAgICAgICAgICAgICAgICAgLTIKKyNkZWZpbmUgSUlfSVBfUE9SVCAgICAgICAgICAgICAgICAgICAgICAtMworI2RlZmluZSBJSV9JUF9BRERSRVNTICAgICAgICAgICAgICAgICAgIC00CisjZGVmaW5lIElJX01VRF9QT1JUICAgICAgICAgICAgICAgICAgICAgLTUKKworLyogVGVsbmV0IHJlbGF0ZWQgaW5mb3JtYXRpb24gKi8KKyNkZWZpbmUgSUlfTUNDUF9TVEFUUyAgICAgICAgICAgICAgICAgICAtMTAKKworLyogSW5wdXQgaGFuZGxpbmcgKi8KKyNkZWZpbmUgSUlfSU5QVVRfUEVORElORyAgICAgICAgICAgICAgICAtMjAKKyNkZWZpbmUgSUlfRURJVElORyAgICAgICAgICAgICAgICAgICAgICAtMjEKKyNkZWZpbmUgSUlfSURMRSAgICAgICAgICAgICAgICAgICAgICAgICAtMjIKKworLyogT3V0cHV0IGhhbmRsaW5nICovCisjZGVmaW5lIElJX1NOT09QX05FWFQgICAgICAgICAgICAgICAgICAgLTMwCisjZGVmaW5lIElJX1NOT09QX1BSRVYgICAgICAgICAgICAgICAgICAgLTMxCisjZGVmaW5lIElJX1NOT09QX0FMTCAgICAgICAgICAgICAgICAgICAgLTMyCisKKyNlbmRpZiAvKiBMUENfSU5URVJBQ1RJVkVfSU5GT19IXyAqLwpkaWZmIC0tZ2l0IGEvc3lzL2l0ZW1zL2Zpc2hpbmcvYXF1YXJpdW0uaCBiL3N5cy9pdGVtcy9maXNoaW5nL2FxdWFyaXVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFjNzAwZAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9pdGVtcy9maXNoaW5nL2FxdWFyaXVtLmgKQEAgLTAsMCArMSwxNSBAQAorI2lmbmRlZiBfQVFVQVJJVU1fCisjZGVmaW5lIF9BUVVBUklVTV8KKworI2RlZmluZSBTVERGSVNITElTVCAoWyBcCisgIFdfQkVBQ0g6ICAoeyJzY2hvbGxlIiwiZmx1bmRlciIsInJvY2hlbiIsInN6dW5nZSIsImtoYWkifSksXAorICBXX0hBUkJPUjogKHsicm9jaGVuIiwiZG9yc2NoIiwic3p1bmdlIiwiaGVyaW5nIiwia2hhaSJ9KSxcCisgIFdfT0NFQU46ICAoeyJ0aHVuIiwiaGFpIiwia2phdSIsInNjaHdlcnQiLCJzZWVoYXNlIiwic2VldGV1ZmVsIiwgXAorICAgICAgICAgICAgICAic2Vld29sZiJ9KSxcCisgIFdfUklWRVI6ICAoeyJwaXJhbmhhIiwibGFjaHMiLCJmb3JlbGxlIiwiYnNhaWIifSksIFwKKyAgV19QT09MOiAgICh7InN0aWNobGluZyIsImdmaXNjaCIsInNjaGxlaSIsImthcnBmZW4iLCJnb3JmZSJ9KSwgXAorICBXX0xBS0U6ICAgKHsic3NhaWIiLCJiYXJzY2giLCJoZWNodCIsImthcnBmZW4ifSksIFwKKyAgV19ST0NLOiAgICh7ImxhY2hzIiwiZm9yZWxsZSIsImJzYWliIn0pLCBcCisgIFdfU1RSRUFNOiAoeyJzdGljaGxpbmciLCJiZm9yZWxsZSIsIm5ldW4iLCJic2FpYiJ9KSBdKSBcCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL2l0ZW1zL2Zpc2hpbmcvZmlzaGluZy5oIGIvc3lzL2l0ZW1zL2Zpc2hpbmcvZmlzaGluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4OTcwZmMKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvaXRlbXMvZmlzaGluZy9maXNoaW5nLmgKQEAgLTAsMCArMSw3MiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGZpc2hpbmcuaCAtLSBEZWZpbml0aW9uZW4gZnVlciBhbGxlcywgd2FzIHNpY2ggdW1zIEFuZ2VsbiBkcmVodAorLy8gICAgICAgICAgICAgIEZyYWdlbiwgVm9yc2NobGFlZ2UgZXRjLiBhbiBBcmF0aG9ybgorLy8KKy8vICRJZDogZmlzaGluZy5oLHYgMy4yIDIwMDIvMTIvMTcgMTA6MDE6NDMgUmlrdXMgRXhwICQKKworI2lmbmRlZiBfX0ZJU0hJTkdfSF9fCisjZGVmaW5lIF9fRklTSElOR19IX18KKworLy8gU3RhbmRhcmRvYmpla3RlLy1wZmFkZQorI2RlZmluZSBBTkdFTEJBU0UoeCkgKCIvc3RkL2l0ZW1zL2Zpc2hpbmcvIit4KQorI2RlZmluZSBTVERfQU5HRUwgICAgQU5HRUxCQVNFKCJhbmdlbCIpCisjZGVmaW5lIFNURF9GSVNDSCAgICBBTkdFTEJBU0UoImZpc2giKQorI2RlZmluZSBTVERfSEFLRU4gICAgQU5HRUxCQVNFKCJoYWtlbiIpCisjZGVmaW5lIFNURF9LT0VERVIgICBBTkdFTEJBU0UoImtvZWRlciIpCisKKyNkZWZpbmUgQU5HRUxPQkooeCkgICgiL2l0ZW1zL2Zpc2hpbmcvIit4KQorCisvLyAqKioqKioqKioqKioqKioqKioKKy8vICogR2V3YWVzc2VydHlwZW4gKgorLy8gKioqKioqKioqKioqKioqKioqCisjZGVmaW5lIFBfV0FURVIgICJ3YXRlciIKKworLy8gR2V3YWVzc2VydHlwZW4KKy8vIFNhbHp3YXNzZXIKKyNkZWZpbmUgV19CRUFDSCAgICAgMSAgICAvLyBTdHJhbmQKKyNkZWZpbmUgV19IQVJCT1IgICAgMiAgICAvLyBIYWZlbgorI2RlZmluZSBXX09DRUFOICAgICA0ICAgIC8vIE96ZWFuCisvLyBTdWVzc3dhc3NlcgorI2RlZmluZSBXX1JJVkVSICAgICA4ICAgIC8vIEZsdXNzCisjZGVmaW5lIFdfUE9PTCAgICAgMTYgICAgLy8gVGVpY2gKKyNkZWZpbmUgV19MQUtFICAgICAzMiAgICAvLyBTZWUKKyNkZWZpbmUgV19ST0NLICAgICA2NCAgICAvLyBCZXJnYmFjaAorI2RlZmluZSBXX1NUUkVBTSAgIDI1NiAgIC8vIEJhY2gKKy8vIFNvbnN0aWdlCisjZGVmaW5lIFdfVVNFUiAgICAgMTI4ICAgLy8gaGllciBrYW5uIG1hbiBlaW4gZWlnZW5lcyBBcXVhcml1bSBhbmhhZW5nZW4hCisjZGVmaW5lIFdfREVBRCAgICAgNTEyICAgLy8gTGVibG9zZXMgV2Fzc2VyL2VudGhhZWx0IGtlaW5lIEZpc2NoZS9tYW4ga2FubgorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFiZXIgZGllIFN0ZGZsYXNjaGUgZnVlbGxlbi4KKyNkZWZpbmUgV19PVEhFUiAgIDEwMjQgICAvLyBGbGFzY2hlIGVudGhhZWx0IEZsdWVzc2lna2VpdCE9V2Fzc2VyCisKKy8vIHZvcmRlZmluaWVydGUgS29tYmluYXRpb25lbiBmdWVyIEFuZ2VsbjoKKyNkZWZpbmUgV19TSE9SVCAoV19IQVJCT1J8V19SSVZFUnxXX1BPT0x8V19MQUtFfFdfUk9DS3xXX1VTRVJ8V19PQ0VBTnxXX1NUUkVBTSkKKyNkZWZpbmUgV19MT05HICAoV19CRUFDSHxXX1VTRVIpCisjZGVmaW5lIFdfU0FMVCAgKFdfSEFSQk9SfFdfT0NFQU58V19CRUFDSCkgICAgICAgICAgICAgICAvLyBTYWx6d2Fzc2VyCisjZGVmaW5lIFdfU1dFRVQgKFdfUklWRVJ8V19QT09MfFdfTEFLRXxXX1JPQ0t8V19TVFJFQU0pICAvLyBTdWVzc3dhc3NlcgorI2RlZmluZSBXX1VOSVZFUlNBTCAoV19TSE9SVHxXX0xPTkcpCisKKy8vICoqKioqKioqKioKKy8vICogRmlzY2hlICoKKy8vICoqKioqKioqKioKKyNkZWZpbmUgUF9GSVNIICAgICAiZmlzaCIKKyNkZWZpbmUgUF9GSVNIX0FHRSAiZmlzaF9hZ2UiCisKKy8vIEZsYWdzIGZ1ZXIgRmlzY2hlCisjZGVmaW5lIEZfTk9ST1RURU4gIDEgICAvLyBGaXNjaCBmYXVsdCBuaWNodC4KKyNkZWZpbmUgRl9OT1RIVU5HUlkgMiAgIC8vIGlzc3QgS29lZGVyIG5pY2h0IGF1ZiwgZmFsbHMgenUgc2Nod2VyIGZ1ZXIgQW5nZWwKKyNkZWZpbmUgRl9SRVBMQUNFICAgNCAgIC8vIFNvbGwgc2ljaCBiZWltIEVudGZlcm5lbiB2b24gQW5nZWwgdmVyd2FuZGVsbi4KKyNkZWZpbmUgRl9OT0hFQUwgICAgOCAgIC8vIEZpc2NoIGhlaWx0IG5pY2h0IGJlaSBWZXJ6ZWhyCisKKy8vIFBmYWQgenVtICJBcXVhcml1bSIsIGRvcnQgZmluZGVuIHNpY2ggZGllIFN0YW5kYXJkZmlzY2hlLiBadW9yZG51bmcKKy8vIHp1IGRlbiBHZXdhZXNzZXJ0eXBlbiBzaWVoZSAvc3lzL2l0ZW1zL2Zpc2hpbmcvYXF1YXJpdW0uaAorI2RlZmluZSBGSVNIKHgpIEFOR0VMT0JKKCJhcXVhcml1bS8iK3gpCisKKy8vIElEcyBmdWVyIEFuZ2VsLEhha2VuLFd1cm0sRmlzY2gKKyNkZWZpbmUgQU5HRUxfSUQgIlxuZl9hbmdlbCIKKyNkZWZpbmUgSEFLRU5fSUQgIlxuZl9rb2VkZXIiCisjZGVmaW5lIFdVUk1fSUQgICJcbmZfd29ybSIKKyNkZWZpbmUgRklTQ0hfSUQgIlxuZl9maXNoIgorCisjZW5kaWYgLy8gX19GSVNISU5HX0hfXworCmRpZmYgLS1naXQgYS9zeXMvaXRlbXMvZmxhc2NoZS5oIGIvc3lzL2l0ZW1zL2ZsYXNjaGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTkwMWFiCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2l0ZW1zL2ZsYXNjaGUuaApAQCAtMCwwICsxLDIzIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gZmxhc2NoZS5oIC0tIERlZmluaXRpb25lbiBmdWVyIGVpbmUgU3RhbmRhcmRmbGFzY2hlCisvLworLy8gJElkOiBmaXNoaW5nLmgsdiAzLjIgMjAwMi8xMi8xNyAxMDowMTo0MyBSaWt1cyBFeHAgJAorCisjaWZuZGVmIF9fRkxBU0NIRV9IX18KKyNkZWZpbmUgX19GTEFTQ0hFX0hfXworCisvLyAqKioqKioqKioqKioqCisvLyAqIEJlaGFlbHRlciAqCisvLyAqKioqKioqKioqKioqCisvLyBadXIgRXJrbGFlcnVuZyBzaWVoZSBhbSBiZXN0ZW4gL2QvZWJlbmUvZnJhZ2dsZS90eHQvZmxhc2NoZS50eHQKKy8vIEZhc3N1bmdzdmVybW9lZ2VuIGRlcyBCZWhhZWx0ZXJzIGluIG1sCisjZGVmaW5lIFBfTElRVUlEICAgICAid19tYXhfd2Fzc2VyZnVlbGxtZW5nZSIKKworLy8gWnVzYXR6IHp1IFBfTE9ORyBmdWVyIGxlZXJlbiBadXN0YW5kIGRlcyBTdGRoYWtlbnMKKyNkZWZpbmUgUF9MT05HX0VNUFRZICJ3X2xvbmdkZXNjX2VtcHR5IgorCisvLyBadXNhdHogenUgUF9MT05HIGZ1ZXIgZ2VmdWVsbHRlbiBadXN0YW5kIGRlciBTdGRmbGFzY2hlCisjZGVmaW5lIFBfTE9OR19GVUxMICAid19sb25nZGVzY19mdWxsIgorCisjZW5kaWYgLy8gX19GTEFTQ0hFX0hfXwpkaWZmIC0tZ2l0IGEvc3lzL2l0ZW1zL2tyYWV1dGVyL2tyYWV1dGVyLmggYi9zeXMvaXRlbXMva3JhZXV0ZXIva3JhZXV0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTY2MDZmCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2l0ZW1zL2tyYWV1dGVyL2tyYWV1dGVyLmgKQEAgLTAsMCArMSw0MCBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGtyYWV1dGVyLmggLS0gRGVmaW5pdGlvbiBmdWVyIEtyYWV1dGVyIAorLy8KKy8vICRJZDogZmlzaGluZy5oLHYgMy4yIDIwMDIvMTIvMTcgMTA6MDE6NDMgUmlrdXMgRXhwICQKKworI2lmbmRlZiBfX0tSQUVVVEVSX0hfXworI2RlZmluZSBfX0tSQUVVVEVSX0hfXworCisjZGVmaW5lIEtSQUVVVEVSTElTVEUgICAgICAiL3N5cy9pdGVtcy9rcmFldXRlci9rcmFldXRlcmxpc3RlLmgiCisKKyNkZWZpbmUgUExBTlRESVIgICAgICAgICAgICIvaXRlbXMva3JhZXV0ZXIvIgorCisjZGVmaW5lIFNFQ1VSRSh4KSAoIi9zZWN1cmUvIit4KQorI2RlZmluZSBLUkFFVVRFUlZDU0FWRUZJTEUgU0VDVVJFKCJBUkNIL2tyYWV1dGVyVkMiKQorI2RlZmluZSBQTEFOVE1BU1RFUiAgICAgICAgKFNFQ1VSRSgia3JhdXRtYXN0ZXIiKSkKKyNkZWZpbmUgS1JBRVVURVJWQyAgICAgICAgIFBMQU5URElSInZpcnR1YWxfY29tcGlsZXIiCisKKyNkZWZpbmUgU1REUExBTlQgICAgICAgICAgICIvc3RkL2l0ZW1zL2tyYWV1dGVyL2tyYXV0IgorI2RlZmluZSBQTEFOVElURU0gICAgICAgICAgUExBTlRESVIia3JhdXQiCisjZGVmaW5lIFNURFRSQU5LICAgICAgICAgICAiL3N0ZC9pdGVtcy9rcmFldXRlci90cmFuayIKKyNkZWZpbmUgVFJBTktJVEVNICAgICAgICAgIFBMQU5URElSInRyYW5rIgorCisjZGVmaW5lIEtFU1NFTElEICAgICAgICAgICAiX2xpYlxua3JhZXV0ZXJrZXNzZWwiCisKKyNkZWZpbmUgSU5HUkVESUVOVF9JRCAgICAgICAgICAgMAorI2RlZmluZSBJTkdSRURJRU5UX0RFTU9OICAgICAgICAxCisjZGVmaW5lIElOR1JFRElFTlRfR0VOREVSICAgICAgIDIKKyNkZWZpbmUgSU5HUkVESUVOVF9OQU1FICAgICAgICAgMworI2RlZmluZSBJTkdSRURJRU5UX0FESiAgICAgICAgICA0CisjZGVmaW5lIElOR1JFRElFTlRfTE9ORyAgICAgICAgIDUKKyNkZWZpbmUgSU5HUkVESUVOVF9ST09NREVUQUlMICAgNgorCisjZGVmaW5lIFBMQU5UX1JPT01ERVRBSUwgICAiX2xpYl9wX3BsYW50cm9vbWRldGFpbCIKKworI2RlZmluZSBJU19QTEFOVCh4KSAobWVtYmVyKGluaGVyaXRfbGlzdCh4KSwgXAorICAgICAgICAgICAgICAgICAgICAgIi9zdGQvaXRlbXMva3JhZXV0ZXIva3JhdXQuYyIpPj0wKQorCisjZW5kaWYgLy8gX19LUkFFVVRFUl9IX18KKwpkaWZmIC0tZ2l0IGEvc3lzL2l0ZW1zL2tyYWV1dGVyL2tyYWV1dGVybGlzdGUuaCBiL3N5cy9pdGVtcy9rcmFldXRlci9rcmFldXRlcmxpc3RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU5ZDUzZgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9pdGVtcy9rcmFldXRlci9rcmFldXRlcmxpc3RlLmgKQEAgLTAsMCArMSwyNTYgQEAKKy8vIEF1dG9tYXRpc2NoIGdlbmVyaWVydGVzIEZpbGUsIG5pY2h0IHZvbiBIYW5kIGVkaXRpZXJlbiEKKy8vIEVyemV1Z2VuZGVzIEZpbGU6IC9zZWN1cmUva3JhdXRtYXN0ZXIKKworI2RlZmluZSBQTEFOVENPVU5UIDI0OQorCisjZGVmaW5lIFBMQU5UKHgpICIvaXRlbXMva3JhZXV0ZXIvIit4CisKKyNkZWZpbmUgWllQUkVTU0VOV09MRlNNSUxDSCAgICAgICAgICAgIFBMQU5UKCJ6eXByZXNzZW53b2xmc21pbGNoIikKKyNkZWZpbmUgWldPRUxGRklOR0VSS1JBVVQgICAgICAgICAgICAgIFBMQU5UKCJ6d29lbGZmaW5nZXJrcmF1dCIpCisjZGVmaW5lIFpXSVJCRUxXVVJaICAgICAgICAgICAgICAgICAgICBQTEFOVCgiendpcmJlbHd1cnoiKQorI2RlZmluZSBaV0VSR1dVUlogICAgICAgICAgICAgICAgICAgICAgUExBTlQoInp3ZXJnd3VyeiIpCisjZGVmaW5lIFpXRVJHRU5IVVQgICAgICAgICAgICAgICAgICAgICBQTEFOVCgiendlcmdlbmh1dCIpCisjZGVmaW5lIFpXQUNLRUxLUkFVVCAgICAgICAgICAgICAgICAgICBQTEFOVCgiendhY2tlbGtyYXV0IikKKyNkZWZpbmUgWk9PS1pXSUVCRUwgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJ6b29rendpZWJlbCIpCisjZGVmaW5lIFpJQ0taQUNLX0tMRUUgICAgICAgICAgICAgICAgICBQTEFOVCgiemlja3phY2tfa2xlZSIpCisjZGVmaW5lIFpFU1NUUkFaV0lFQkVMICAgICAgICAgICAgICAgICBQTEFOVCgiemVzc3RyYXp3aWViZWwiKQorI2RlZmluZSBaQVBQRVJMSUxJRSAgICAgICAgICAgICAgICAgICAgUExBTlQoInphcHBlcmxpbGllIikKKyNkZWZpbmUgV1VSWkVMU0lMSUUgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJ3dXJ6ZWxzaWxpZSIpCisjZGVmaW5lIFdVUk1LUkFVVCAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgid3VybWtyYXV0IikKKyNkZWZpbmUgV1VOREtMRUUgICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJ3dW5ka2xlZSIpCisjZGVmaW5lIFdVRVNURU5ST1NFICAgICAgICAgICAgICAgICAgICBQTEFOVCgid3Vlc3RlbnJvc2UiKQorI2RlZmluZSBXVUVTVEVORU5aSUFOICAgICAgICAgICAgICAgICAgUExBTlQoInd1ZXN0ZW5lbnppYW4iKQorI2RlZmluZSBXVUVSR0VSS1JBVVQgICAgICAgICAgICAgICAgICAgUExBTlQoInd1ZXJnZXJrcmF1dCIpCisjZGVmaW5lIFdPTFBJVFJPRVNURVIgICAgICAgICAgICAgICAgICBQTEFOVCgid29scGl0cm9lc3RlciIpCisjZGVmaW5lIFdJTkRXVVJaICAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgid2luZHd1cnoiKQorI2RlZmluZSBXSU5ETkVTU0VMICAgICAgICAgICAgICAgICAgICAgUExBTlQoIndpbmRuZXNzZWwiKQorI2RlZmluZSBXSUxIRUxNU0JVUkdFUl9TSUVCRU5TVEVSTiAgICAgUExBTlQoIndpbGhlbG1zYnVyZ2VyX3NpZWJlbnN0ZXJuIikKKyNkZWZpbmUgV0lFU0VOU0NIQVVNS1JBVVQgICAgICAgICAgICAgIFBMQU5UKCJ3aWVzZW5zY2hhdW1rcmF1dCIpCisjZGVmaW5lIFdJRVNFTlJJU1BFICAgICAgICAgICAgICAgICAgICBQTEFOVCgid2llc2VucmlzcGUiKQorI2RlZmluZSBXSUVTRU5SRVRUSUNIICAgICAgICAgICAgICAgICAgUExBTlQoIndpZXNlbnJldHRpY2giKQorI2RlZmluZSBXSUVTRU5NRUxERSAgICAgICAgICAgICAgICAgICAgUExBTlQoIndpZXNlbm1lbGRlIikKKyNkZWZpbmUgV0lFU0VOTElDSFRORUxLRSAgICAgICAgICAgICAgIFBMQU5UKCJ3aWVzZW5saWNodG5lbGtlIikKKyNkZWZpbmUgV0lFU0VOS1VDS1VDS1NCTFVNRSAgICAgICAgICAgIFBMQU5UKCJ3aWVzZW5rdWNrdWNrc2JsdW1lIikKKyNkZWZpbmUgV0lFU0VOS0VSQkVMICAgICAgICAgICAgICAgICAgIFBMQU5UKCJ3aWVzZW5rZXJiZWwiKQorI2RlZmluZSBXSUVTRU5HTE9DS0VOQkxVTUUgICAgICAgICAgICAgUExBTlQoIndpZXNlbmdsb2NrZW5ibHVtZSIpCisjZGVmaW5lIFdJRVNFTkJVVFRFUkJMVU1FICAgICAgICAgICAgICBQTEFOVCgid2llc2VuYnV0dGVyYmx1bWUiKQorI2RlZmluZSBXRVJXT0xGU01JTENIX0dSVUVOICAgICAgICAgICAgUExBTlQoIndlcndvbGZzbWlsY2hfZ3J1ZW4iKQorI2RlZmluZSBXRUlTU1dVUlpfVklFTEJMVUVUSUcgICAgICAgICAgUExBTlQoIndlaXNzd3Vyel92aWVsYmx1ZXRpZyIpCisjZGVmaW5lIFdFSVNTV1VSWl9RVUlSTEJMQUVUVFJJRyAgICAgICBQTEFOVCgid2Vpc3N3dXJ6X3F1aXJsYmxhZXR0cmlnIikKKyNkZWZpbmUgV0VJU1NXVVJaX0dFTUVJTiAgICAgICAgICAgICAgIFBMQU5UKCJ3ZWlzc3d1cnpfZ2VtZWluIikKKyNkZWZpbmUgV0VJU1NLTEVFICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJ3ZWlzc2tsZWUiKQorI2RlZmluZSBXRUlERU5LTEVFICAgICAgICAgICAgICAgICAgICAgUExBTlQoIndlaWRlbmtsZWUiKQorI2RlZmluZSBXQVNTRVJXVVJaICAgICAgICAgICAgICAgICAgICAgUExBTlQoIndhc3Nlcnd1cnoiKQorI2RlZmluZSBXQVNTRVJSRVRUSUNIICAgICAgICAgICAgICAgICAgUExBTlQoIndhc3NlcnJldHRpY2giKQorI2RlZmluZSBXQVNTRVJLTEVFICAgICAgICAgICAgICAgICAgICAgUExBTlQoIndhc3NlcmtsZWUiKQorI2RlZmluZSBXQVNTRVJfSEFITkVORlVTU19XRUlTUyAgICAgICAgUExBTlQoIndhc3Nlcl9oYWhuZW5mdXNzX3dlaXNzIikKKyNkZWZpbmUgV0FSWkVOV09MRlNNSUxDSCAgICAgICAgICAgICAgIFBMQU5UKCJ3YXJ6ZW53b2xmc21pbGNoIikKKyNkZWZpbmUgV0FMRFNDSEFUVEVOUkFVVEVOV0lDS0UgICAgICAgIFBMQU5UKCJ3YWxkc2NoYXR0ZW5yYXV0ZW53aWNrZSIpCisjZGVmaW5lIFdBTERSRVRUSUNIICAgICAgICAgICAgICAgICAgICBQTEFOVCgid2FsZHJldHRpY2giKQorI2RlZmluZSBXQUxEUkVCRV9XRUlTUyAgICAgICAgICAgICAgICAgUExBTlQoIndhbGRyZWJlX3dlaXNzIikKKyNkZWZpbmUgV0FMRFJFQkVfU0NIV0FSWiAgICAgICAgICAgICAgIFBMQU5UKCJ3YWxkcmViZV9zY2h3YXJ6IikKKyNkZWZpbmUgV0FMRFJFQkVfUk9UICAgICAgICAgICAgICAgICAgIFBMQU5UKCJ3YWxkcmViZV9yb3QiKQorI2RlZmluZSBXQUxEUkVCRV9HRU1FSU4gICAgICAgICAgICAgICAgUExBTlQoIndhbGRyZWJlX2dlbWVpbiIpCisjZGVmaW5lIFdBTERNT09TX0xBTkdMRUJJRyAgICAgICAgICAgICBQTEFOVCgid2FsZG1vb3NfbGFuZ2xlYmlnIikKKyNkZWZpbmUgV0FMRE1PT1MgICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJ3YWxkbW9vcyIpCisjZGVmaW5lIFdBTERMSUNIVE5FTEtFICAgICAgICAgICAgICAgICBQTEFOVCgid2FsZGxpY2h0bmVsa2UiKQorI2RlZmluZSBXQUxERU5aSUFOICAgICAgICAgICAgICAgICAgICAgUExBTlQoIndhbGRlbnppYW4iKQorI2RlZmluZSBWT0dFTEhBTkYgICAgICAgICAgICAgICAgICAgICAgUExBTlQoInZvZ2VsaGFuZiIpCisjZGVmaW5lIFZBSU5FUlBJTFogICAgICAgICAgICAgICAgICAgICBQTEFOVCgidmFpbmVycGlseiIpCisjZGVmaW5lIFRZUE9OSUEgICAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgidHlwb25pYSIpCisjZGVmaW5lIFRST1BFTkVOWklBTiAgICAgICAgICAgICAgICAgICBQTEFOVCgidHJvcGVuZW56aWFuIikKKyNkZWZpbmUgVFJPTExUUk9FU1RFUiAgICAgICAgICAgICAgICAgIFBMQU5UKCJ0cm9sbHRyb2VzdGVyIikKKyNkZWZpbmUgVFJPTExTQ0hNQVJPVFpFUiAgICAgICAgICAgICAgIFBMQU5UKCJ0cm9sbHNjaG1hcm90emVyIikKKyNkZWZpbmUgVFJBRVVNRVJTQ0hMSU5HRSAgICAgICAgICAgICAgIFBMQU5UKCJ0cmFldW1lcnNjaGxpbmdlIikKKyNkZWZpbmUgVE9SRk1PT1JSQVVURU5XSUNLRV9HTEFUVCAgICAgIFBMQU5UKCJ0b3JmbW9vcnJhdXRlbndpY2tlX2dsYXR0IikKKyNkZWZpbmUgVE9SRk1PT1JSQVVURU5XSUNLRV9HRVpBSE5UICAgIFBMQU5UKCJ0b3JmbW9vcnJhdXRlbndpY2tlX2dlemFobnQiKQorI2RlZmluZSBUT1JGTU9PUlJBVVRFTldJQ0tFX0dFRlJBTlNUICAgUExBTlQoInRvcmZtb29ycmF1dGVud2lja2VfZ2VmcmFuc3QiKQorI2RlZmluZSBURVVGRUxTS1JBTExFX1NDSFdBUlogICAgICAgICAgUExBTlQoInRldWZlbHNrcmFsbGVfc2Nod2FyeiIpCisjZGVmaW5lIFRFVUZFTFNLUkFMTEVfUk9UICAgICAgICAgICAgICBQTEFOVCgidGV1ZmVsc2tyYWxsZV9yb3QiKQorI2RlZmluZSBURVVGRUxTS1JBTExFX1JJU1BJRyAgICAgICAgICAgUExBTlQoInRldWZlbHNrcmFsbGVfcmlzcGlnIikKKyNkZWZpbmUgVEVVRkVMU0tSQUxMRV9LT1BGSUcgICAgICAgICAgIFBMQU5UKCJ0ZXVmZWxza3JhbGxlX2tvcGZpZyIpCisjZGVmaW5lIFRFVUZFTFNLUkFMTEVfRFJFSUtBTlRJRyAgICAgICBQTEFOVCgidGV1ZmVsc2tyYWxsZV9kcmVpa2FudGlnIikKKyNkZWZpbmUgVEVVRkVMU0tSQUxMRV9CVVNDSElHICAgICAgICAgIFBMQU5UKCJ0ZXVmZWxza3JhbGxlX2J1c2NoaWciKQorI2RlZmluZSBURVVGRUxTS1JBTExFX0FFSFJJRyAgICAgICAgICAgUExBTlQoInRldWZlbHNrcmFsbGVfYWVocmlnIikKKyNkZWZpbmUgVEVVRkVMU0FCQklTU19HRU1FSU4gICAgICAgICAgIFBMQU5UKCJ0ZXVmZWxzYWJiaXNzX2dlbWVpbiIpCisjZGVmaW5lIFNVTVBGUkVUVElDSCAgICAgICAgICAgICAgICAgICBQTEFOVCgic3VtcGZyZXR0aWNoIikKKyNkZWZpbmUgU1VNUEZSRUJFX1NDSFdBUlogICAgICAgICAgICAgIFBMQU5UKCJzdW1wZnJlYmVfc2Nod2FyeiIpCisjZGVmaW5lIFNVTVBGUkFVVEVOV0lDS0UgICAgICAgICAgICAgICBQTEFOVCgic3VtcGZyYXV0ZW53aWNrZSIpCisjZGVmaW5lIFNVTVBGTElDSFRORUxLRSAgICAgICAgICAgICAgICBQTEFOVCgic3VtcGZsaWNodG5lbGtlIikKKyNkZWZpbmUgU1VFU1NLTEVFICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJzdWVzc2tsZWUiKQorI2RlZmluZSBTVFVQU0tSQVVUICAgICAgICAgICAgICAgICAgICAgUExBTlQoInN0dXBza3JhdXQiKQorI2RlZmluZSBTVEVSTk1JRVJFICAgICAgICAgICAgICAgICAgICAgUExBTlQoInN0ZXJubWllcmUiKQorI2RlZmluZSBTVEVSTkVORkxFQ0hURSAgICAgICAgICAgICAgICAgUExBTlQoInN0ZXJuZW5mbGVjaHRlIikKKyNkZWZpbmUgU1RFSU5CRUlTU0VSS05PTExFICAgICAgICAgICAgIFBMQU5UKCJzdGVpbmJlaXNzZXJrbm9sbGUiKQorI2RlZmluZSBTUElUWldFR0VSSUNIICAgICAgICAgICAgICAgICAgUExBTlQoInNwaXR6d2VnZXJpY2giKQorI2RlZmluZSBTT05ORU5XRU5EV09MRlNNSUxDSCAgICAgICAgICAgUExBTlQoInNvbm5lbndlbmR3b2xmc21pbGNoIikKKyNkZWZpbmUgU09OTkVOUElMWiAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJzb25uZW5waWx6IikKKyNkZWZpbmUgU09NTUVSRklORExJTkcgICAgICAgICAgICAgICAgIFBMQU5UKCJzb21tZXJmaW5kbGluZyIpCisjZGVmaW5lIFNJQ0hFTE5FTEtFICAgICAgICAgICAgICAgICAgICBQTEFOVCgic2ljaGVsbmVsa2UiKQorI2RlZmluZSBTQ0hXQVJaV1VSWl9XSUxEICAgICAgICAgICAgICAgUExBTlQoInNjaHdhcnp3dXJ6X3dpbGQiKQorI2RlZmluZSBTQ0hXQVJaV1VSWl9LUklFQ0hFTkQgICAgICAgICAgUExBTlQoInNjaHdhcnp3dXJ6X2tyaWVjaGVuZCIpCisjZGVmaW5lIFNDSFdBUlpXVVJaX0dFWkFDS1QgICAgICAgICAgICBQTEFOVCgic2Nod2Fyend1cnpfZ2V6YWNrdCIpCisjZGVmaW5lIFNDSFdBUlpXVVJaX0dFTUVJTiAgICAgICAgICAgICBQTEFOVCgic2Nod2Fyend1cnpfZ2VtZWluIikKKyNkZWZpbmUgU0NIV0FSWlNDSEFUVEVOTU9PUyAgICAgICAgICAgIFBMQU5UKCJzY2h3YXJ6c2NoYXR0ZW5tb29zIikKKyNkZWZpbmUgU0NIV0FMQkVOV1VSWl9FTlpJQU4gICAgICAgICAgIFBMQU5UKCJzY2h3YWxiZW53dXJ6X2VuemlhbiIpCisjZGVmaW5lIFNDSFVFVFRFTEtSQVVUICAgICAgICAgICAgICAgICBQTEFOVCgic2NodWV0dGVsa3JhdXQiKQorI2RlZmluZSBTQ0hJTEZSQVVURU5XSUNLRSAgICAgICAgICAgICAgUExBTlQoInNjaGlsZnJhdXRlbndpY2tlIikKKyNkZWZpbmUgU0NIQVRURU5LUkFVVCAgICAgICAgICAgICAgICAgIFBMQU5UKCJzY2hhdHRlbmtyYXV0IikKKyNkZWZpbmUgU0NIQU5ES1JBVVQgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJzY2hhbmRrcmF1dCIpCisjZGVmaW5lIFNBVUVSS0xFRSAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgic2F1ZXJrbGVlIikKKyNkZWZpbmUgUklFU0VOT1JLU0NIT1JGTElOR19MSUxBX0dFUFVOS1RFVCBQTEFOVCgicmllc2Vub3Jrc2Nob3JmbGluZ19saWxhX2dlcHVua3RldCIpCisjZGVmaW5lIFJFR0VOV1VSWiAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgicmVnZW53dXJ6IikKKyNkZWZpbmUgUkFVVEVOV0lDS0VfRkVVUklHICAgICAgICAgICAgIFBMQU5UKCJyYXV0ZW53aWNrZV9mZXVyaWciKQorI2RlZmluZSBSQVVDSEtSRVNTRSAgICAgICAgICAgICAgICAgICAgUExBTlQoInJhdWNoa3Jlc3NlIikKKyNkZWZpbmUgUkFUU0hFUlJFTktSRVNTRSAgICAgICAgICAgICAgIFBMQU5UKCJyYXRzaGVycmVua3Jlc3NlIikKKyNkZWZpbmUgUkFTQ0hFTEtSQVVUICAgICAgICAgICAgICAgICAgIFBMQU5UKCJyYXNjaGVsa3JhdXQiKQorI2RlZmluZSBQT1RURVJSQVVURU5XSUNLRV9HTEFUVCAgICAgICAgUExBTlQoInBvdHRlcnJhdXRlbndpY2tlX2dsYXR0IikKKyNkZWZpbmUgUE9UVEVSUkFVVEVOV0lDS0VfR0VGUkFOU1QgICAgIFBMQU5UKCJwb3R0ZXJyYXV0ZW53aWNrZV9nZWZyYW5zdCIpCisjZGVmaW5lIFBPTEFSV09MRlNNSUxDSCAgICAgICAgICAgICAgICBQTEFOVCgicG9sYXJ3b2xmc21pbGNoIikKKyNkZWZpbmUgUE9MQVJCSVJLRU5HRVNFTExFICAgICAgICAgICAgIFBMQU5UKCJwb2xhcmJpcmtlbmdlc2VsbGUiKQorI2RlZmluZSBPUkFOR1VUQU5IQU5GICAgICAgICAgICAgICAgICAgUExBTlQoIm9yYW5ndXRhbmhhbmYiKQorI2RlZmluZSBORUJFTFJBVVRFTldJQ0tFX0dMQVRUICAgICAgICAgUExBTlQoIm5lYmVscmF1dGVud2lja2VfZ2xhdHQiKQorI2RlZmluZSBORUJFTFJBVVRFTldJQ0tFX0dFWkFITlQgICAgICAgUExBTlQoIm5lYmVscmF1dGVud2lja2VfZ2V6YWhudCIpCisjZGVmaW5lIE5FQkVMUkFVVEVOV0lDS0VfR0VGUkFOU1QgICAgICBQTEFOVCgibmViZWxyYXV0ZW53aWNrZV9nZWZyYW5zdCIpCisjZGVmaW5lIE5FQkVMTU9PU19UUlVFR0VSSVNDSCAgICAgICAgICBQTEFOVCgibmViZWxtb29zX3RydWVnZXJpc2NoIikKKyNkZWZpbmUgTkVBTkRFUlRBTEVSX0tOT0NIRU5NT09TICAgICAgIFBMQU5UKCJuZWFuZGVydGFsZXJfa25vY2hlbm1vb3MiKQorI2RlZmluZSBOQUNIVFNDSEFUVEVOX1NDSFdBUlogICAgICAgICAgUExBTlQoIm5hY2h0c2NoYXR0ZW5fc2Nod2FyeiIpCisjZGVmaW5lIE1PVUxPS0lORVJfU0lFQkVOU1RFUk4gICAgICAgICBQTEFOVCgibW91bG9raW5lcl9zaWViZW5zdGVybiIpCisjZGVmaW5lIE1PUk9ORVJfU0lFQkVOU1RFUk4gICAgICAgICAgICBQTEFOVCgibW9yb25lcl9zaWViZW5zdGVybiIpCisjZGVmaW5lIE1PT1JSRVRUSUNIICAgICAgICAgICAgICAgICAgICBQTEFOVCgibW9vcnJldHRpY2giKQorI2RlZmluZSBNSVJJTFNaV0lFQkVMICAgICAgICAgICAgICAgICAgUExBTlQoIm1pcmlsc3p3aWViZWwiKQorI2RlZmluZSBNRUVSUkVUVElDSCAgICAgICAgICAgICAgICAgICAgUExBTlQoIm1lZXJyZXR0aWNoIikKKyNkZWZpbmUgTUFMVEVLUkVTU0UgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJtYWx0ZWtyZXNzZSIpCisjZGVmaW5lIE1BRVVTRUhBTkYgICAgICAgICAgICAgICAgICAgICBQTEFOVCgibWFldXNlaGFuZiIpCisjZGVmaW5lIExVTkdFTl9FTlpJQU5fRFVOS0VMQkxBVSAgICAgICBQTEFOVCgibHVuZ2VuX2Vuemlhbl9kdW5rZWxibGF1IikKKyNkZWZpbmUgTE9FV0VOSEFORiAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJsb2V3ZW5oYW5mIikKKyNkZWZpbmUgTElDSFRORUxLRV9ST1QgICAgICAgICAgICAgICAgIFBMQU5UKCJsaWNodG5lbGtlX3JvdCIpCisjZGVmaW5lIExFSU1LUkFVVF9XRUlTUyAgICAgICAgICAgICAgICBQTEFOVCgibGVpbWtyYXV0X3dlaXNzIikKKyNkZWZpbmUgTEVJTUtSQVVUX1JPVCAgICAgICAgICAgICAgICAgIFBMQU5UKCJsZWlta3JhdXRfcm90IikKKyNkZWZpbmUgTEVJTUtSQVVUX05JQ0tFTkQgICAgICAgICAgICAgIFBMQU5UKCJsZWlta3JhdXRfbmlja2VuZCIpCisjZGVmaW5lIExFSU1LUkFVVF9LTEVCUklHICAgICAgICAgICAgICBQTEFOVCgibGVpbWtyYXV0X2tsZWJyaWciKQorI2RlZmluZSBMRUlNS1JBVVRfQVVGR0VCTEFTRU4gICAgICAgICAgUExBTlQoImxlaW1rcmF1dF9hdWZnZWJsYXNlbiIpCisjZGVmaW5lIExFQkVSTU9PUyAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgibGViZXJtb29zIikKKyNkZWZpbmUgTEFVQ0hLUkVTU0UgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJsYXVjaGtyZXNzZSIpCisjZGVmaW5lIExBVUJNT09TICAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgibGF1Ym1vb3MiKQorI2RlZmluZSBMQU5HRklOR0VSS1JBVVRfQVVGUkVDSFQgICAgICAgUExBTlQoImxhbmdmaW5nZXJrcmF1dF9hdWZyZWNodCIpCisjZGVmaW5lIEtVQ0tVQ0tTTElDSFRORUxLRSAgICAgICAgICAgICBQTEFOVCgia3Vja3Vja3NsaWNodG5lbGtlIikKKyNkZWZpbmUgS1JPTkVOWldJRUJFTCAgICAgICAgICAgICAgICAgIFBMQU5UKCJrcm9uZW56d2llYmVsIikKKyNkZWZpbmUgS1JJRVNFTFpXSUVCRUwgICAgICAgICAgICAgICAgIFBMQU5UKCJrcmllc2VsendpZWJlbCIpCisjZGVmaW5lIEtPQk9MRFNXVVJaX0dFVFVFUEZFTFQgICAgICAgICBQTEFOVCgia29ib2xkc3d1cnpfZ2V0dWVwZmVsdCIpCisjZGVmaW5lIEtOVVJSUElMWiAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgia251cnJwaWx6IikKKyNkZWZpbmUgS0xFSU5CVUdFUklDSCAgICAgICAgICAgICAgICAgIFBMQU5UKCJrbGVpbmJ1Z2VyaWNoIikKKyNkZWZpbmUgS0xFRUZBUk4gICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJrbGVlZmFybiIpCisjZGVmaW5lIEtMRUVfV0VJU1MgICAgICAgICAgICAgICAgICAgICBQTEFOVCgia2xlZV93ZWlzcyIpCisjZGVmaW5lIEtMRUVfVFJPUEZJRyAgICAgICAgICAgICAgICAgICBQTEFOVCgia2xlZV90cm9wZmlnIikKKyNkZWZpbmUgS0xFRV9ST1QgICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJrbGVlX3JvdCIpCisjZGVmaW5lIEtMRUVfUEVSU0lTQ0ggICAgICAgICAgICAgICAgICBQTEFOVCgia2xlZV9wZXJzaXNjaCIpCisjZGVmaW5lIEtMRUVfS1JJRUNIRU5EICAgICAgICAgICAgICAgICBQTEFOVCgia2xlZV9rcmllY2hlbmQiKQorI2RlZmluZSBLTEVFX0tPUEZJRyAgICAgICAgICAgICAgICAgICAgUExBTlQoImtsZWVfa29wZmlnIikKKyNkZWZpbmUgS0xFRV9ET0xESUcgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJrbGVlX2RvbGRpZyIpCisjZGVmaW5lIEtJQ0hFUlBJTFogICAgICAgICAgICAgICAgICAgICBQTEFOVCgia2ljaGVycGlseiIpCisjZGVmaW5lIEtJQ0hFUktSRVNTRSAgICAgICAgICAgICAgICAgICBQTEFOVCgia2ljaGVya3Jlc3NlIikKKyNkZWZpbmUgS0FUWkVOV1VSWiAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJrYXR6ZW53dXJ6IikKKyNkZWZpbmUgS0FUWkVOSEFORiAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJrYXR6ZW5oYW5mIikKKyNkZWZpbmUgSk9GU1dVUlogICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJqb2Zzd3VyeiIpCisjZGVmaW5lIElOS0FSTkFUS0xFRSAgICAgICAgICAgICAgICAgICBQTEFOVCgiaW5rYXJuYXRrbGVlIikKKyNkZWZpbmUgSFlEUkFaQUhOICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJoeWRyYXphaG4iKQorI2RlZmluZSBIWURSQUJBTFNBTUtSQVVUX0dST1NTICAgICAgICAgUExBTlQoImh5ZHJhYmFsc2Fta3JhdXRfZ3Jvc3MiKQorI2RlZmluZSBIVU5HRVJLUkFVVCAgICAgICAgICAgICAgICAgICAgUExBTlQoImh1bmdlcmtyYXV0IikKKyNkZWZpbmUgSFVOREVIQU5GICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJodW5kZWhhbmYiKQorI2RlZmluZSBIVU1OSVpXSUVCRUwgICAgICAgICAgICAgICAgICAgUExBTlQoImh1bW5pendpZWJlbCIpCisjZGVmaW5lIEhVRVBGRVJMSVNMICAgICAgICAgICAgICAgICAgICBQTEFOVCgiaHVlcGZlcmxpc2wiKQorI2RlZmluZSBIT05JR0tMRUUgICAgICAgICAgICAgICAgICAgICAgUExBTlQoImhvbmlna2xlZSIpCisjZGVmaW5lIEhFWEVOVFJBVU1fUVVJRVRTQ0hHUlVFTiAgICAgICBQTEFOVCgiaGV4ZW50cmF1bV9xdWlldHNjaGdydWVuIikKKyNkZWZpbmUgSEVYRU5LUkFVVF9XSUxEICAgICAgICAgICAgICAgIFBMQU5UKCJoZXhlbmtyYXV0X3dpbGQiKQorI2RlZmluZSBIRVhFTktSQVVUX1ZFUkJSQU5OVCAgICAgICAgICAgUExBTlQoImhleGVua3JhdXRfdmVyYnJhbm50IikKKyNkZWZpbmUgSEVYRU5LUkFVVF9LUkVVWkJMQUVUVFJJRyAgICAgIFBMQU5UKCJoZXhlbmtyYXV0X2tyZXV6YmxhZXR0cmlnIikKKyNkZWZpbmUgSEVYRU5LUkFVVF9LTEVJTiAgICAgICAgICAgICAgIFBMQU5UKCJoZXhlbmtyYXV0X2tsZWluIikKKyNkZWZpbmUgSEVYRU5LUkFVVF9HUk9TUyAgICAgICAgICAgICAgIFBMQU5UKCJoZXhlbmtyYXV0X2dyb3NzIikKKyNkZWZpbmUgSEVYRU5LUkFVVF9HRU1FSU4gICAgICAgICAgICAgIFBMQU5UKCJoZXhlbmtyYXV0X2dlbWVpbiIpCisjZGVmaW5lIEhFWEVOS1JBVVRfQlJBVU4gICAgICAgICAgICAgICBQTEFOVCgiaGV4ZW5rcmF1dF9icmF1biIpCisjZGVmaW5lIEhFWEVOS1JBVVRfMTNfRklOR1JJRyAgICAgICAgICBQTEFOVCgiaGV4ZW5rcmF1dF8xM19maW5ncmlnIikKKyNkZWZpbmUgSEFTRU5LTEVFICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJoYXNlbmtsZWUiKQorI2RlZmluZSBIQU5HUkFVVEVOV0lDS0VfV0VJU1NfR0VQVU5LVEVUIFBMQU5UKCJoYW5ncmF1dGVud2lja2Vfd2Vpc3NfZ2VwdW5rdGV0IikKKyNkZWZpbmUgSEFOR1JBVVRFTldJQ0tFICAgICAgICAgICAgICAgIFBMQU5UKCJoYW5ncmF1dGVud2lja2UiKQorI2RlZmluZSBIQU1NRVJLUkFVVCAgICAgICAgICAgICAgICAgICAgUExBTlQoImhhbW1lcmtyYXV0IikKKyNkZWZpbmUgSEFMVEVLUkVTU0UgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJoYWx0ZWtyZXNzZSIpCisjZGVmaW5lIEhBSE5FTkZVU1NfV09MTElHICAgICAgICAgICAgICBQTEFOVCgiaGFobmVuZnVzc193b2xsaWciKQorI2RlZmluZSBIQUhORU5GVVNTX1NQUkVJWkVORCAgICAgICAgICAgUExBTlQoImhhaG5lbmZ1c3Nfc3ByZWl6ZW5kIikKKyNkZWZpbmUgSEFITkVORlVTU19TQ0hBUkYgICAgICAgICAgICAgIFBMQU5UKCJoYWhuZW5mdXNzX3NjaGFyZiIpCisjZGVmaW5lIEhBSE5FTkZVU1NfS1JJRUNIRU5EICAgICAgICAgICBQTEFOVCgiaGFobmVuZnVzc19rcmllY2hlbmQiKQorI2RlZmluZSBIQUhORU5GVVNTX0tOT0xMSUcgICAgICAgICAgICAgUExBTlQoImhhaG5lbmZ1c3Nfa25vbGxpZyIpCisjZGVmaW5lIEhBSE5FTkZVU1NfR0VMQiAgICAgICAgICAgICAgICBQTEFOVCgiaGFobmVuZnVzc19nZWxiIikKKyNkZWZpbmUgSEFITkVORlVTU19HQUNLRVJORCAgICAgICAgICAgIFBMQU5UKCJoYWhuZW5mdXNzX2dhY2tlcm5kIikKKyNkZWZpbmUgSEFITkVORlVTU19GTFVURU5EICAgICAgICAgICAgIFBMQU5UKCJoYWhuZW5mdXNzX2ZsdXRlbmQiKQorI2RlZmluZSBIQUhORU5GVVNTX0VJU0VOSFVUQkxBRVRUUklHICAgUExBTlQoImhhaG5lbmZ1c3NfZWlzZW5odXRibGFldHRyaWciKQorI2RlZmluZSBIQUhORU5GVVNTX0VGRVVCTEFFVFRSSUcgICAgICAgUExBTlQoImhhaG5lbmZ1c3NfZWZldWJsYWV0dHJpZyIpCisjZGVmaW5lIEhBSE5FTkZVU1NfQlJFTk5FTkQgICAgICAgICAgICBQTEFOVCgiaGFobmVuZnVzc19icmVubmVuZCIpCisjZGVmaW5lIEdPTERIQUhORU5GVVNTICAgICAgICAgICAgICAgICBQTEFOVCgiZ29sZGhhaG5lbmZ1c3MiKQorI2RlZmluZSBHTE9DS0VOQkxVTUUgICAgICAgICAgICAgICAgICAgUExBTlQoImdsb2NrZW5ibHVtZSIpCisjZGVmaW5lIEdMRVRTQ0hFUl9IQUhORU5GVVNTX1JPVCAgICAgICBQTEFOVCgiZ2xldHNjaGVyX2hhaG5lbmZ1c3Nfcm90IikKKyNkZWZpbmUgR0lQRkVMUkFVVEVOV0lDS0VfV0lMRCAgICAgICAgIFBMQU5UKCJnaXBmZWxyYXV0ZW53aWNrZV93aWxkIikKKyNkZWZpbmUgR0VTRUxMRU5LUkVTU0UgICAgICAgICAgICAgICAgIFBMQU5UKCJnZXNlbGxlbmtyZXNzZSIpCisjZGVmaW5lIEdFQklSR1NSRVRUSUNIICAgICAgICAgICAgICAgICBQTEFOVCgiZ2ViaXJnc3JldHRpY2giKQorI2RlZmluZSBHRUJJUkdTRU5aSUFOICAgICAgICAgICAgICAgICAgUExBTlQoImdlYmlyZ3NlbnppYW4iKQorI2RlZmluZSBHQUVOU0VGSU5HRVJLUkFVVCAgICAgICAgICAgICAgUExBTlQoImdhZW5zZWZpbmdlcmtyYXV0IikKKyNkZWZpbmUgR0FFTlNFQkxVRU1DSEVOICAgICAgICAgICAgICAgIFBMQU5UKCJnYWVuc2VibHVlbWNoZW4iKQorI2RlZmluZSBGVVRURVJLUkVTU0UgICAgICAgICAgICAgICAgICAgUExBTlQoImZ1dHRlcmtyZXNzZSIpCisjZGVmaW5lIEZSVUVITElOR1NGSU5HRVJLUkFVVCAgICAgICAgICBQTEFOVCgiZnJ1ZWhsaW5nc2ZpbmdlcmtyYXV0IikKKyNkZWZpbmUgRlJVRUhMSU5HU19FTlpJQU5fUE9MU1RFUldVRUNIU0lHIFBMQU5UKCJmcnVlaGxpbmdzX2Vuemlhbl9wb2xzdGVyd3VlY2hzaWciKQorI2RlZmluZSBGUlVFSExJTkdTX0VOWklBTl9ISU1NRUxCTEFVICAgUExBTlQoImZydWVobGluZ3NfZW56aWFuX2hpbW1lbGJsYXUiKQorI2RlZmluZSBGUlVFSExJTkdTX0VOWklBTl9GVUVORlpJUEZMSUcgUExBTlQoImZydWVobGluZ3NfZW56aWFuX2Z1ZW5memlwZmxpZyIpCisjZGVmaW5lIEZSVUVITElOR1NfRU5aSUFOICAgICAgICAgICAgICBQTEFOVCgiZnJ1ZWhsaW5nc19lbnppYW4iKQorI2RlZmluZSBGUk9TVFJFQkVfUk9UICAgICAgICAgICAgICAgICAgUExBTlQoImZyb3N0cmViZV9yb3QiKQorI2RlZmluZSBGUk9TVEVOWklBTiAgICAgICAgICAgICAgICAgICAgUExBTlQoImZyb3N0ZW56aWFuIikKKyNkZWZpbmUgRlJBTlNFTkVOWklBTiAgICAgICAgICAgICAgICAgIFBMQU5UKCJmcmFuc2VuZW56aWFuIikKKyNkZWZpbmUgRklOU1RFUk1PT1MgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJmaW5zdGVybW9vcyIpCisjZGVmaW5lIEZJTkdFUktSQVVUX0tSSUVDSEVORCAgICAgICAgICBQTEFOVCgiZmluZ2Vya3JhdXRfa3JpZWNoZW5kIikKKyNkZWZpbmUgRklOR0VSS1JBVVRfR1JPU1NCTFVFVElHICAgICAgIFBMQU5UKCJmaW5nZXJrcmF1dF9ncm9zc2JsdWV0aWciKQorI2RlZmluZSBGSU5HRVJLUkFVVF9BVUZSRUNIVCAgICAgICAgICAgUExBTlQoImZpbmdlcmtyYXV0X2F1ZnJlY2h0IikKKyNkZWZpbmUgRkVVRVJUVUxQRSAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJmZXVlcnR1bHBlIikKKyNkZWZpbmUgRkVVRVJFTlpJQU4gICAgICAgICAgICAgICAgICAgIFBMQU5UKCJmZXVlcmVuemlhbiIpCisjZGVmaW5lIEZFTERLTEVFICAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgiZmVsZGtsZWUiKQorI2RlZmluZSBGRUxEX0VOWklBTl9CTEFVVklPTEVUVCAgICAgICAgUExBTlQoImZlbGRfZW56aWFuX2JsYXV2aW9sZXR0IikKKyNkZWZpbmUgRVJEQkVFUkZJTkdFUktSQVVUICAgICAgICAgICAgIFBMQU5UKCJlcmRiZWVyZmluZ2Vya3JhdXQiKQorI2RlZmluZSBFTlpJQU5fU1RFTkdFTExPUyAgICAgICAgICAgICAgUExBTlQoImVuemlhbl9zdGVuZ2VsbG9zIikKKyNkZWZpbmUgRU5aSUFOX0dFTEIgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJlbnppYW5fZ2VsYiIpCisjZGVmaW5lIEVMRkVOT0hSV1VSWiAgICAgICAgICAgICAgICAgICBQTEFOVCgiZWxmZW5vaHJ3dXJ6IikKKyNkZWZpbmUgRUxFRkFOVEVOSEFORiAgICAgICAgICAgICAgICAgIFBMQU5UKCJlbGVmYW50ZW5oYW5mIikKKyNkZWZpbmUgRUlTWldJRUJFTCAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJlaXN6d2llYmVsIikKKyNkZWZpbmUgRUlTWkFITiAgICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJlaXN6YWhuIikKKyNkZWZpbmUgRUlTV1VSWiAgICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJlaXN3dXJ6IikKKyNkZWZpbmUgRUlTU1RFUk4gICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJlaXNzdGVybiIpCisjZGVmaW5lIEVJU05FU1NFTCAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgiZWlzbmVzc2VsIikKKyNkZWZpbmUgRUlTS1JBVVQgICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJlaXNrcmF1dCIpCisjZGVmaW5lIEVJU0VOWldJRUJFTCAgICAgICAgICAgICAgICAgICBQTEFOVCgiZWlzZW56d2llYmVsIikKKyNkZWZpbmUgRUlTRE9STiAgICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJlaXNkb3JuIikKKyNkZWZpbmUgRUlTRElTVEVMICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJlaXNkaXN0ZWwiKQorI2RlZmluZSBEVU5LRUxQSUxaICAgICAgICAgICAgICAgICAgICAgUExBTlQoImR1bmtlbHBpbHoiKQorI2RlZmluZSBEVU5LRUxNT09TICAgICAgICAgICAgICAgICAgICAgUExBTlQoImR1bmtlbG1vb3MiKQorI2RlZmluZSBEVUVTVEVSWldJRUJFTF9GSU5TVEVSICAgICAgICAgUExBTlQoImR1ZXN0ZXJ6d2llYmVsX2ZpbnN0ZXIiKQorI2RlZmluZSBEUkVJRklOR0VSS1JBVVRfR1JPU1NCTFVFVElHICAgUExBTlQoImRyZWlmaW5nZXJrcmF1dF9ncm9zc2JsdWV0aWciKQorI2RlZmluZSBEUkVJRklOR0VSS1JBVVRfR0VNRUlOICAgICAgICAgUExBTlQoImRyZWlmaW5nZXJrcmF1dF9nZW1laW4iKQorI2RlZmluZSBEUkFDSEVOWklOTkVORE9STl9HRVNDSEVDS1QgICAgUExBTlQoImRyYWNoZW56aW5uZW5kb3JuX2dlc2NoZWNrdCIpCisjZGVmaW5lIERSQUNIRU5IT1JURVJfU0lFQkVOU1RFUk4gICAgICBQTEFOVCgiZHJhY2hlbmhvcnRlcl9zaWViZW5zdGVybiIpCisjZGVmaW5lIERSQUNIRU5IQU5GICAgICAgICAgICAgICAgICAgICBQTEFOVCgiZHJhY2hlbmhhbmYiKQorI2RlZmluZSBCVVNDSFJFQkVfTklFREVSICAgICAgICAgICAgICAgUExBTlQoImJ1c2NocmViZV9uaWVkZXIiKQorI2RlZmluZSBCVVNDSFJFQkVfR1JPU1MgICAgICAgICAgICAgICAgUExBTlQoImJ1c2NocmViZV9ncm9zcyIpCisjZGVmaW5lIEJSVU5ORU5LUkVTU0UgICAgICAgICAgICAgICAgICBQTEFOVCgiYnJ1bm5lbmtyZXNzZSIpCisjZGVmaW5lIEJSRUlUV0VHRVJJQ0ggICAgICAgICAgICAgICAgICBQTEFOVCgiYnJlaXR3ZWdlcmljaCIpCisjZGVmaW5lIEJPQ0tTSE9STktMRUUgICAgICAgICAgICAgICAgICBQTEFOVCgiYm9ja3Nob3Jua2xlZSIpCisjZGVmaW5lIEJMVVRORUxLRSAgICAgICAgICAgICAgICAgICAgICBQTEFOVCgiYmx1dG5lbGtlIikKKyNkZWZpbmUgQklUVEVSS0xFRSAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJiaXR0ZXJrbGVlIikKKyNkZWZpbmUgQkVSR1JFVFRJQ0ggICAgICAgICAgICAgICAgICAgIFBMQU5UKCJiZXJncmV0dGljaCIpCisjZGVmaW5lIEJFUkdSQVVURU5XSUNLRV9HRVpBSE5UICAgICAgICBQTEFOVCgiYmVyZ3JhdXRlbndpY2tlX2dlemFobnQiKQorI2RlZmluZSBCRVJHUkFVVEVOV0lDS0VfR0VNRUlOICAgICAgICAgUExBTlQoImJlcmdyYXV0ZW53aWNrZV9nZW1laW4iKQorI2RlZmluZSBCRVJHTU9PUyAgICAgICAgICAgICAgICAgICAgICAgUExBTlQoImJlcmdtb29zIikKKyNkZWZpbmUgQkVSR0tMRUUgICAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJiZXJna2xlZSIpCisjZGVmaW5lIEJBRVJMQVBQTU9PUyAgICAgICAgICAgICAgICAgICBQTEFOVCgiYmFlcmxhcHBtb29zIikKKyNkZWZpbmUgQkFFUkVOS0xBVSAgICAgICAgICAgICAgICAgICAgIFBMQU5UKCJiYWVyZW5rbGF1IikKKyNkZWZpbmUgQVVHRU5UUk9TVF9HRU1FSU4gICAgICAgICAgICAgIFBMQU5UKCJhdWdlbnRyb3N0X2dlbWVpbiIpCisjZGVmaW5lIEFSS1pXSUVCRUwgICAgICAgICAgICAgICAgICAgICBQTEFOVCgiYXJrendpZWJlbCIpCisjZGVmaW5lIEFSQVRIT1JOU0lMSUtVTV9XRUlTICAgICAgICAgICBQTEFOVCgiYXJhdGhvcm5zaWxpa3VtX3dlaXMiKQorI2RlZmluZSBBQ0tFUkxJQ0hUTkVMS0UgICAgICAgICAgICAgICAgUExBTlQoImFja2VybGljaHRuZWxrZSIpCisjZGVmaW5lIEFDS0VSS0xFRV9HRUxCICAgICAgICAgICAgICAgICBQTEFOVCgiYWNrZXJrbGVlX2dlbGIiKQorI2RlZmluZSBBQ0tFUl9SRVRUSUNIICAgICAgICAgICAgICAgICAgUExBTlQoImFja2VyX3JldHRpY2giKQpkaWZmIC0tZ2l0IGEvc3lzL2l0ZW1zL2tyYWV1dGVyL3RyYW5rYXR0cmlidXRlLmggYi9zeXMvaXRlbXMva3JhZXV0ZXIvdHJhbmthdHRyaWJ1dGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODQzNDdjCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2l0ZW1zL2tyYWV1dGVyL3RyYW5rYXR0cmlidXRlLmgKQEAgLTAsMCArMSw1OSBAQAorI2lmbmRlZiBfX0tSQUVVVEVSX1RSQU5LQVRUUklCVVRFX0hfXworI2RlZmluZSBfX0tSQUVVVEVSX1RSQU5LQVRUUklCVVRFX0hfXworCisjZGVmaW5lIFRfQ0FSUlkgICAgICAgICAgICAgICAgICJhdHRyX3RyYWdlbiIKKyNkZWZpbmUgVF9EQU1BR0VfQU5JTUFMUyAgICAgICAgImF0dHJfZGFtX2FuaW1hbHMiCisjZGVmaW5lIFRfREFNQUdFX01BR0lDICAgICAgICAgICJhdHRyX2RhbV9tYWdpY2FsIgorI2RlZmluZSBUX0RBTUFHRV9VTkRFQUQgICAgICAgICAiYXR0cl9kYW1fdW5kZWFkIgorI2RlZmluZSBUX1BST1RFQ1RJT05fQU5JTUFMUyAgICAiYXR0cl9wcm90X2FuaW1hbHMiCisjZGVmaW5lIFRfUFJPVEVDVElPTl9NQUdJQyAgICAgICJhdHRyX3Byb3RfbWFnaWNhbCIKKyNkZWZpbmUgVF9QUk9URUNUSU9OX1VOREVBRCAgICAgImF0dHJfcHJvdF91bmRlYWQiCisjZGVmaW5lIFRfRlJPRyAgICAgICAgICAgICAgICAgICJhdHRyX2RlZnJvZyIKKyNkZWZpbmUgVF9GTEVFX1RQT1JUICAgICAgICAgICAgImF0dHJfZmxlZV90cG9ydCIKKyNkZWZpbmUgVF9IRUFMX0xQICAgICAgICAgICAgICAgImF0dHJfaGVhbF9scCIKKyNkZWZpbmUgVF9IRUFMX1NQICAgICAgICAgICAgICAgImF0dHJfaGVhbF9zcCIKKyNkZWZpbmUgVF9IRUFMX1BPSVNPTiAgICAgICAgICAgImF0dHJfaGVhbF9wb2lzb24iCisjZGVmaW5lIFRfSEVBTF9ESVNFQVNFICAgICAgICAgICJhdHRyX2hlYWxfZGlzZWFzZSIKKyNkZWZpbmUgVF9DSEFOR0VfRElNRU5TSU9OICAgICAgImF0dHJfY2hhbmdlX2RpbWVuc2lvbiIKKyNkZWZpbmUgVF9TQV9TUEVFRCAgICAgICAgICAgICAgImF0dHJfY2hhbmdlX3NhX3NwZWVkIgorI2RlZmluZSBUX1NBX0RVUkFUSU9OICAgICAgICAgICAiYXR0cl9jaGFuZ2Vfc2FfZHVyYXRpb24iCisjZGVmaW5lIFRfU0FfU1BFTExfUEVORVRSQVRJT04gICJhdHRyX2NoYW5nZV9zYV9zcGVsbF9wZW5ldHJhdGlvbiIKKyNkZWZpbmUgVF9FRkZFQ1RfRFVSQVRJT04gICAgICAgImF0dHJfZWZmZWN0X2R1cmF0aW9uIgorI2RlZmluZSBUX1NVUFBPUlRFUiAgICAgICAgICAgICAiYXR0cl9zdXBwb3J0ZXIiCisjZGVmaW5lIFRfQkxPQ0tJTkcgICAgICAgICAgICAgICJhdHRyX2Jsb2NraW5nIgorI2RlZmluZSBUX0FCVU5EQU5DRSAgICAgICAgICAgICAiYXR0cl9hYnVuZGFuY2UiCisjZGVmaW5lIFRfRVhQSVJFICAgICAgICAgICAgICAgICJiZXN0X2JlZm9yZSIKKworI2RlZmluZSBUX0tSQVVUX0VGRkVDVFMgKHsgXAorICAgIFRfQ0FSUlksIFRfREFNQUdFX0FOSU1BTFMsIFRfREFNQUdFX01BR0lDLCBcCisgICAgVF9EQU1BR0VfVU5ERUFELCBUX1BST1RFQ1RJT05fQU5JTUFMUywgVF9QUk9URUNUSU9OX01BR0lDLCBcCisgICAgVF9QUk9URUNUSU9OX1VOREVBRCwgVF9GUk9HLCBUX0ZMRUVfVFBPUlQsIFRfSEVBTF9MUCwgVF9IRUFMX1NQLCBcCisgICAgVF9IRUFMX1BPSVNPTiwgVF9IRUFMX0RJU0VBU0UsIFRfQ0hBTkdFX0RJTUVOU0lPTiwgXAorICAgIFRfU0FfU1BFRUQsIFRfU0FfRFVSQVRJT04sIFRfU0FfU1BFTExfUEVORVRSQVRJT04sIH0pCisKKyNkZWZpbmUgVF9LUkFVVF9NQVAgXAorICAoWyJjYXIiOiBUX0NBUlJZLCBcCisgICAgImRhIjogIFRfREFNQUdFX0FOSU1BTFMsIFwKKyAgICAiZG0iOiAgVF9EQU1BR0VfTUFHSUMsIFwKKyAgICAiZHUiOiAgVF9EQU1BR0VfVU5ERUFELCBcCisgICAgImRuIjogIFRfRUZGRUNUX0RVUkFUSU9OLCBcCisgICAgImZsdCI6IFRfRkxFRV9UUE9SVCwgXAorICAgICJmcm8iOiBUX0ZST0csIFwKKyAgICAiaEkiOiAgVF9IRUFMX0RJU0VBU0UsIFwKKyAgICAiaFAiOiAgVF9IRUFMX1BPSVNPTiwgXAorICAgICJoSyI6ICBUX0hFQUxfU1AsIFwKKyAgICAiaEwiOiAgVF9IRUFMX0xQLCBcCisgICAgInBhIjogIFRfUFJPVEVDVElPTl9BTklNQUxTLCBcCisgICAgInBtIjogIFRfUFJPVEVDVElPTl9NQUdJQywgXAorICAgICJwdSI6ICBUX1BST1RFQ1RJT05fVU5ERUFELCBcCisgICAgInNzIjogIFRfU0FfU1BFRUQsIFwKKyAgICAic3AiOiAgVF9TQV9TUEVMTF9QRU5FVFJBVElPTiwgXAorICAgICJzZCI6ICBUX1NBX0RVUkFUSU9OIF0pCisKKy8vIG5lZ2F0aXZlIEVmZmVrdGUgbXVlc3NzZW4gYWJzLiBncm9lc3NlciBhbHMgZGllcyBzZWluLCBkYW1pdCBzaWUgYmVpIGRlciBXaXJrdW5nCisvLyBiZXJ1ZWNrc2ljaHRpZ3Qgd2VyZGVuLgorI2RlZmluZSBUX01JTklNVU1fVEhSRVNIT0xECTE1MAorLy8gRGllcyBpc3QgZGVyIG1heC4gRWZmZWt0LiBBbGxlcywgd2FzIGhpZXJ1ZWJlciBnZWJ0LCB3aXJkIGdlZGVja2VsdC4KKyNkZWZpbmUgVF9NQVhJTVVNX1RIUkVTSE9MRAkyMDAwCisKKyNlbmRpZiAvLyBfX0tSQUVVVEVSX1RSQU5LQVRUUklCVVRFX0hfXwpkaWZmIC0tZ2l0IGEvc3lzL2xhbmd1YWdlLmggYi9zeXMvbGFuZ3VhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWQ2YTQxCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2xhbmd1YWdlLmgKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgPHRoaW5nL2xhbmd1YWdlLmg+CmRpZmYgLS1naXQgYS9zeXMvbGlnaHRzb3VyY2UuaCBiL3N5cy9saWdodHNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMDkyOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbGlnaHRzb3VyY2UuaApAQCAtMCwwICsxLDE1IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gbGlnaHRzb3VyY2UuaCAtLSBsaWdodHNvdXJjZXMgaGVhZGVyIGZpbGUKKy8vCisvLyAkSWQ6IGxpZ2h0c291cmNlLmgsdiAxLjEgMjAwMC8wMi8wOSAxNTo1Mjo0OCBQYWRyZWljIEV4cCAkCisgCisjaWZuZGVmIF9fTElHSFRTT1VSQ0VfSF9fCisjZGVmaW5lIF9fTElHSFRTT1VSQ0VfSF9fCisKKyNkZWZpbmUgUF9GVUVMICAgICAgICAgImZ1ZWwiICAgICAgICAvLyBCcmVubnplaXQgaW4gU2VrdW5kZW4KKyNkZWZpbmUgUF9MSUdIVERFU0MgICAgImxpZ2h0ZGVzYyIgICAvLyBCZXNjaHJlaWJ1bmcgZGVzIExpY2h0cworI2RlZmluZSBQX0RPX0RFU1RSVUNUICAiZG9fZGVzdHJ1Y3QiIC8vIFNvbGwgc2ljaCBkaWUgTGljaHRxdWVsbGUgYXVmbG9lc2VuPworI2RlZmluZSBQX0xJR0hURUQgICAgICAibGlnaHRlZCIgICAgIC8vIEZsYWcgb2IgZGllIExpY2h0cXVlbGxlIGluIEJldHJpZWIgaXN0CisKKyNlbmRpZiAvLyBfX0xJR0hUU09VUkNFX0hfXwpkaWZmIC0tZ2l0IGEvc3lzL2xpdmluZy5oIGIvc3lzL2xpdmluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxZjUzODAKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbGl2aW5nLmgKQEAgLTAsMCArMSwzMSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGxpdmluZy5oIC0tIEhlYWRlciBmdWVyIExlYmV3ZXNlbgorLy8KKy8vICRJZDogbGl2aW5nLmggNjUxMyAyMDA3LTEwLTA2IDE1OjU1OjI3WiBaZXNzdHJhICQKKworI2luY2x1ZGUgIi9zeXMvbGl2aW5nL2xpZmUuaCIKKyNpbmNsdWRlICIvc3lzL2xpdmluZy9hdHRyaWJ1dGVzLmgiCisjaW5jbHVkZSAiL3N5cy9saXZpbmcvcHV0X2FuZF9nZXQuaCIKKyNpbmNsdWRlICIvc3lzL2xpdmluZy9jb21iYXQuaCIKKyNpbmNsdWRlICIvc3lzL2xpdmluZy90ZWFtLmgiCisjaW5jbHVkZSAiL3N5cy9saXZpbmcvc2tpbGxzLmgiCisvLyNpbmNsdWRlICIvc3lzL2xpdmluZy9tb3ZpbmcuaCIKKworI2lmbmRlZiBfX0xJVklOR19IX18KKyNkZWZpbmUgX19MSVZJTkdfSF9fCisKKyNkZWZpbmUgSU5URVJWQUxfQkVUV0VFTl9IRUFMSU5HCTEwCisjZGVmaW5lIFdFQVBPTl9DTEFTU19PRl9IQU5EUwkJKDMpCisjZGVmaW5lIEFSTU9VUl9DTEFTU19PRl9CQVJFCQkwCisjZGVmaW5lIEtJTExfTkVVVFJBTF9BTElHTk1FTlQJCTEwCisjZGVmaW5lIEFESl9BTElHTk1FTlQoYWwpCQkoKC1hbCAtIEtJTExfTkVVVFJBTF9BTElHTk1FTlQpLzQpCisjZGVmaW5lIE1BWF9MSVNUCQkJMjAKKyNkZWZpbmUgTkFNRV9PRl9HSE9TVAkJCSJzb21lIG1pc3QiCisKKy8qIEhhbmRzICovCisjZGVmaW5lIEhBTkRfU0hPUlQgMAorI2RlZmluZSBIQU5EX1dFQVBPTiAxCisjZGVmaW5lIEhBTkRfV0MgMgorCisjZW5kaWYgLy8gX19MSVZJTkdfSF9fCmRpZmYgLS1naXQgYS9zeXMvbGl2aW5nL2F0dHJpYnV0ZXMuaCBiL3N5cy9saXZpbmcvYXR0cmlidXRlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMjgyOTkKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbGl2aW5nL2F0dHJpYnV0ZXMuaApAQCAtMCwwICsxLDk2IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gbGl2aW5nL2F0dHJpYnV0ZXMuaCAtLSBsaXZpbmcgYXR0cmlidXRlcworLy8KKy8vICRJZDogYXR0cmlidXRlcy5oIDYyODIgMjAwNy0wNS0wOSAyMDo1NToxN1ogWmVzc3RyYSAkCisgCisjaWZuZGVmIF9fTElWSU5HX0FUVFJJQlVURVNfSF9fCisjZGVmaW5lIF9fTElWSU5HX0FUVFJJQlVURVNfSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX0FUVFJJQlVURVMgICAgICAgICAgICAgICJhdHRyaWJ1dGVzIgorI2RlZmluZSBQX0FUVFJJQlVURVNfT0ZGU0VUUyAgICAgICJhdHRyaWJ1dGVzX29mZnNldHMiCisjZGVmaW5lIFBfQVRUUklCVVRFU19NT0RJRklFUiAgICAgImF0dHJpYnV0ZXNfbW9kaWZpZXIiCisjZGVmaW5lIFBfWF9BVFRSX01PRCAgICAgICAgICAgICAgImV4dGVybl9hdHRyaWJ1dGVzX21vZGlmaWVyIgorI2RlZmluZSBQX1hfSEVBTFRIX01PRCAgICAgICAgICAgICJleHRlcm5faGVhbHRoX21vZGlmaWVyIgorI2RlZmluZSBQX01fQVRUUl9NT0QgICAgICAgICAgICAgICJtYWdpY19hdHRyaWJ1dGVzX21vZGlmaWVyIgorI2RlZmluZSBQX01fSEVBTFRIX01PRCAgICAgICAgICAgICJtYWdpY19oZWFsdGhfbW9kaWZpZXIiCisjZGVmaW5lIFBfQUJJTElUSUVTICAgICAgICAgICAgICAgImFiaWxpdGllcyIKKyNkZWZpbmUgUF9USU1FRF9BVFRSX01PRAkJICAidGltZWRfYXR0cl9tb2QiCisKKy8vIHNwZWNpYWwgZGVmaW5lcworCisvKiBzdGFuZGFyZCBhdHRyaWJ1dGVzICovCisjZGVmaW5lIEFfU1RSICJzdHIiCisjZGVmaW5lIEFfSU5UICJpbnQiCisjZGVmaW5lIEFfREVYICJkZXgiCisjZGVmaW5lIEFfQ09OICJjb24iCisKKy8qIGVycm9yY29kZXMgZm9yIFBfVElNRURfQVRUUl9NT0QgKi8KKyNkZWZpbmUgVEFUVFJfT0sJCQkJMAorI2RlZmluZSBUQVRUUl9OT19TVUNIX01PRElGSUVSCTEKKyNkZWZpbmUgVEFUVFJfSU5WQUxJRF9BUkdTICAJMgorCisvKiBpbmRpY2VzIHVzZWQgZm9yIFBfVElNRURfQVRUUl9NT0QgKi8KKyNkZWZpbmUgVEFUVFJfT1VUREFURQkJMAorI2RlZmluZSBUQVRUUl9ERVBFTkRFTlRTCTEKKyNkZWZpbmUgVEFUVFJfRU5UUklFUwkJMgkKKyNkZWZpbmUgVEFUVFJfTU9EIAkJMAorI2RlZmluZSBUQVRUUl9PVVREQVRFRCAJCTEKKyNkZWZpbmUgVEFUVFJfREVQRU5ERU5UIAkyCisjZGVmaW5lIFRBVFRSX05PVElGWSAJCTMKKworLyogbWF4aW11bSBvZiBjdW11bGF0aXZlIGF0dHJpYnV0ZSBtb2RpZmllcnMgKi8KKyNkZWZpbmUgQ1VNVUxBVElWRV9BVFRSX0xJTUlUCTQKKworI2VuZGlmIC8vIF9fTElWSU5HX0FUVFJJQlVURVNfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0xJVklOR19BVFRSSUJVVEVTX0hfUFJPVE9fXworI2RlZmluZSBfX0xJVklOR19BVFRSSUJVVEVTX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCisKK25vbWFzayBwdWJsaWMgaW50IFNldFRpbWVkQXR0ck1vZGlmaWVyKHN0cmluZyBrZXksIG1hcHBpbmcgbW9kaWZpZXIsIGludCBvdXRkYXRlZCwgb2JqZWN0IGRlcGVuZGVudCwgbWl4ZWQgbm90aWZ5KTsgIAorbm9tYXNrIHB1YmxpYyBtYXBwaW5nIFF1ZXJ5VGltZWRBdHRyTW9kaWZpZXIoc3RyaW5nIGtleSk7Citub21hc2sgcHVibGljIGludCBEZWxldGVUaW1lZEF0dHJNb2RpZmllcihzdHJpbmcga2V5KTsKKworcHVibGljIGludCBTZXRBdHRyKHN0cmluZyBhdHRyLCBpbnQgdmFsKTsKK25vbWFzayBwdWJsaWMgdm9pZCByZWdpc3Rlcl9tb2RpZmllcihvYmplY3QgbW9kaWZpZXIpOworbm9tYXNrIHB1YmxpYyB2b2lkIGRlcmVnaXN0ZXJfbW9kaWZpZXIob2JqZWN0IG1vZGlmaWVyKTsKKworcHVibGljIGludCBTZXRBdHRyaWJ1dGUoc3RyaW5nIGF0dHIsIGludCB2YWwpOworcHVibGljIGludCBTZXRSZWFsQXR0cmlidXRlKHN0cmluZyBhdHRyLCBpbnQgdmFsKTsKK3B1YmxpYyBpbnQgUXVlcnlBdHRyaWJ1dGUoc3RyaW5nIGF0dHIpOworcHVibGljIGludCBRdWVyeVJlYWxBdHRyaWJ1dGUoc3RyaW5nIGF0dHIpOworcHVibGljIGludCBRdWVyeUF0dHJpYnV0ZU9mZnNldChzdHJpbmcgYXR0cik7CisKK3B1YmxpYyB2b2lkIFVwZGF0ZUF0dHJpYnV0ZXMoKTsKKworcHVibGljIHN0YXR1cyBUZXN0TGltaXRWaW9sYXRpb24obWFwcGluZyBjaGVjayk7CisKKy8vIFNldC0gdW5kIFF1ZXJ5LU1ldGhvZGVuCitzdGF0aWMgbWFwcGluZyBfc2V0X2F0dHJpYnV0ZXMobWFwcGluZyBhcnIpOworc3RhdGljIG1hcHBpbmcgX3F1ZXJ5X2F0dHJpYnV0ZXMoKTsKK3N0YXRpYyBtYXBwaW5nIF9zZXRfYXR0cmlidXRlc19vZmZzZXRzKG1hcHBpbmcgYXJyKTsKK3N0YXRpYyBtYXBwaW5nIF9xdWVyeV9hdHRyaWJ1dGVzX29mZnNldHMoKTsKK3N0YXRpYyBtaXhlZCAgIF9zZXRfYXR0cmlidXRlc19tb2RpZmllcihtaXhlZCBhcnIpOworc3RhdGljIG1hcHBpbmcgX3F1ZXJ5X2F0dHJpYnV0ZXNfbW9kaWZpZXIoKTsKK3N0YXRpYyBtaXhlZCBfcXVlcnlfdGltZWRfYXR0cl9tb2QoKTsKKworLy8gaW50ZXJuYWwKK25vbWFzayBwcm90ZWN0ZWQgdm9pZCBhdHRyaWJ1dGVfaGIoKTsKK3Byb3RlY3RlZCB2b2lkIGFkZF9vZmZzZXRzKG1hcHBpbmcgYXJyKTsKK3Byb3RlY3RlZCBub21hc2sgdm9pZCBjYWxjdWxhdGVfdmFsaWRfbW9kaWZpZXJzKCk7Citwcm90ZWN0ZWQgbm9tYXNrIHZvaWQgbm90aWZ5SW52YWxpZE1vZGlmaWVycygpOworcHJvdGVjdGVkIGludCBfZmlsdGVyYXR0cl9zdHIoaW50IHZhbCk7Citwcm90ZWN0ZWQgaW50IF9maWx0ZXJhdHRyX2RleChpbnQgdmFsKTsKK3Byb3RlY3RlZCBpbnQgX2ZpbHRlcmF0dHJfaW50KGludCB2YWwpOworcHJvdGVjdGVkIGludCBfZmlsdGVyYXR0cl9jb24oaW50IHZhbCk7Citub21hc2sgcHJvdGVjdGVkIHZvaWQgbm90aWZ5RXhwaXJlZE1vZGlmaWVycyhtYXBwaW5nIG5vdHMpOworCisjZW5kaWYgLy8gX19MSVZJTkdfQVRUUklCVVRFU19IX1BST1RPX18KKworI2VuZGlmIC8vIE5FRURfUFJPVE9ZUEVTCmRpZmYgLS1naXQgYS9zeXMvbGl2aW5nL2Nsb3RoaW5nLmggYi9zeXMvbGl2aW5nL2Nsb3RoaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg3NWM2MQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9saXZpbmcvY2xvdGhpbmcuaApAQCAtMCwwICsxLDEyIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gbGl2aW5nL2Nsb3RoaW5nLmggLS0gS29uc3RhbnRlbiB1bmQgUGZhZGUgcnVuZCB1bSBCZWtsZWlkdW5nIHZvbiBMZWJld2VzZW4KKy8vCisvLyAkSWQ6IG1vbmV5aGFuZGxlci5oLHYgMy4xIDE5OTcvMDIvMTIgMTM6Mjk6MDkgV2FyZ29uIEV4cCAlCisKKyNpZm5kZWYgX19MSVZJTkdfQ0xPVEhJTkdfSF9fCisjZGVmaW5lIF9fTElWSU5HX0NMT1RISU5HX0hfXworCisjZGVmaW5lIFBfQ0xPVEhJTkcgICAgICAgICAgICAgICAgInN0ZDpjbG90aGluZyIKKworI2VuZGlmIC8vIF9fTElWSU5HX0NMT1RISU5HX0hfXwpkaWZmIC0tZ2l0IGEvc3lzL2xpdmluZy9jb21iYXQuaCBiL3N5cy9saXZpbmcvY29tYmF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI4ZjQ0NgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9saXZpbmcvY29tYmF0LmgKQEAgLTAsMCArMSwxNjYgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBsaXZpbmcvY29tYmF0LmggLS0gY29tYmF0IGhlYWRlcgorLy8KKy8vICRJZDogY29tYmF0LmggOTAwOCAyMDE1LTAxLTA2IDE3OjIwOjE3WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX0xJVklOR19DT01CQVRfSF9fCisjZGVmaW5lIF9fTElWSU5HX0NPTUJBVF9IX18KKworLy8gcHJvcGVydGllcworI2RlZmluZSBQX0RJU0FCTEVfQVRUQUNLICAgICAgICAgICJkaXNhYmxlX2F0dGFjayIKKyNkZWZpbmUgUF9ORVhUX0RJU0FCTEVfQVRUQUNLICAgICAibmV4dF9kaXNhYmxlX2F0dGFjayIKKworI2RlZmluZSBQX0NPUlBTRSAgICAgICAgICAgICAgICAgICJjb3Jwc2UiCisjZGVmaW5lIFBfTk9DT1JQU0UgICAgICAgICAgICAgICAgIm5vY29ycHNlIgorCisvLyBiaXR0ZSBQX0FSTU9VUlMgYXVjaCBpbiAvc2VjdXJlL21hc3Rlci5oIGFlbmRlcm4sIGZhbGxzIGRhcyBtYWwgZ2VhZW5kZXJ0CisvLyB3aXJkLgorI2RlZmluZSBQX0FSTU9VUlMgICAgICAgICAgICAgICAgICJhcm1vdXJzIgorI2RlZmluZSBQX0JPRFkgICAgICAgICAgICAgICAgICAgICJib2R5IgorCisjZGVmaW5lIFBfUkVTSVNUQU5DRV9TVFJFTkdUSFMgICAgInJlc2lzdGFuY2Vfc3RyZW5ndGhzIgorI2RlZmluZSBQX1JFU0lTVEFOQ0VfTU9ESUZJRVIgICAgICJyc3RyOm1vZCIKKyNkZWZpbmUgUF9SRVNJU1RBTkNFICAgICAgICAgICAgICAicmVzaXN0YW5jZSIKKyNkZWZpbmUgUF9WVUxORVJBQklMSVRZICAgICAgICAgICAidnVsbmVyYWJpbGl0eSIKKyNkZWZpbmUgUF9UT1RBTF9BQyAJICAgICAgICAgICJ0b3RhbF9hYyIKKyNkZWZpbmUgUF9UT1RBTF9XQyAgICAgICAgICAgICAgICAidG90YWxfd2MiCisKKyNkZWZpbmUgUF9IQU5EUyAgICAgICAgICAgICAgICAgICAiaGFuZHMiCisjZGVmaW5lIFBfTUFYX0hBTkRTICAgICAgICAgICAgICAgIm1heF9oYW5kcyIKKyNkZWZpbmUgUF9VU0VEX0hBTkRTICAgICAgICAgICAgICAidXNlZF9oYW5kcyIKKyNkZWZpbmUgUF9GUkVFX0hBTkRTICAgICAgICAgICAgICAiZnJlZV9oYW5kcyIKKyNkZWZpbmUgUF9IQU5EU19VU0VEX0JZICAgICAgICAgICAiaGFuZHNfdXNlZF9ieSIKKworI2RlZmluZSBQX0FUVEFDS19CVVNZCSAgICAgICAgICAiYXR0YWNrX2J1c3kiCisjZGVmaW5lIFBfTk9fQVRUQUNLICAgICAgICAgICAgICAgIm5vX2F0dGFjayIKKworI2RlZmluZSBQX1BSRUZFUkVEX0VORU1ZICAgICAgICAgICJwcmVmX2VuZW15IgorI2RlZmluZSBQX1NIT1dfQVRUQUNLX01TRyAgICAgICAgICJzaG93X2F0dGFja19tc2ciCisKKyNkZWZpbmUgUF9MQVNUX0RBTUFHRSAgICAgICAgICAgICAibGFzdF9kYW1hZ2UiCisjZGVmaW5lIFBfTEFTVF9EQU1UWVBFUyAgICAgICAgICAgImxhc3RfZGFtdHlwZXMiCisjZGVmaW5lIFBfTEFTVF9EQU1USU1FICAgICAgICAgICAgImxhc3RfZGFtdGltZSIKKworI2RlZmluZSBQX0RFQVRIX1NQT05TT1JFRF9CWSAgICAgICJyZXNwb25zaWJsZV93aXphcmRfZm9yX2RlYXRoIgorI2RlZmluZSBQX0tJTExFUiAgICAgICAgICAgICAgICAgICJraWxsZXIiCisjZGVmaW5lIFBfTVVSREVSX01TRyAgICAgICAgICAgICAgIm11cmRlcl9tc2ciCisjZGVmaW5lIFBfRk9SQ0VfTVVSREVSX01TRyAgICAgICAgImZvcmNlX211cmRlcl9tc2ciCisjZGVmaW5lIFBfRU5FTVlfREVBVEhfU0VRVUVOQ0UgICAgImVuZW15X2RlYXRoX3NlcXVlbmNlIgorI2RlZmluZSBQX05FWFRfREVBVEhfU0VRVUVOQ0UgICAgICJwX2xpYl9uZXh0X2RlYXRoX3NlcXVlbmNlIgorI2RlZmluZSBQX0RFQVRIX01TRyAgICAgICAgICAgICAgICJkZWF0aF9tc2ciCisKKyNkZWZpbmUgUF9IVU5UVElNRSAgICAgICAgICAgICAgICAicF9saWJfaHVudHRpbWUiCisKKy8vIEJlZnJpZWRlOiBHaWxkZW56YWVobGVyCisjZGVmaW5lIFBfUEVBQ0VfSElTVE9SWSAgICAgICAgICAgIl9wZWFjZV9oaXN0b3J5IgorCisjZGVmaW5lIERJU0FCTEVfVE9PX0VBUkxZIAkgIC0xMDAxMTEKKworI2RlZmluZSBFTkVNWV9IVU5UVElNRQkJMAorCisvLyBIZWxmZXItTlBDCisvLyBhKSBOUEM6IHdlbGNoZW0gU3BpZWxlciBpc3QgZGllc2VyIE5QQyB6dWdlb3JkbmV0LCBkLmguIGZ1ZXIgd2VuIGthZW1wZnQKKy8vICAgICAgICAgZXI/IEFycmF5OiAoeyBzcGllbGVyb2JqZWN0LCBmbGFncyB9KQorLy8gYikgU3BpZWxlcjogd2VsY2hlIE5QQyBzaW5kIGRpZXNlbSBTcGllbGVyIHp1Z2VvcmRuZXQuIE1hcHBpbmcgbWl0IE9iamVrdGVuCisvLyAgICAgICAgICAgICB1bmQgRmxhZ3MuCisjZGVmaW5lIFBfSEVMUEVSX05QQyAgICAgICAgICAgICAgInN0ZDpoZWxwZXJfbnBjIgorLy8gRmxhZ3M6CisvLyAyIEtsYXNzZW4gdm9uIEhlbGZlcm4gbW9tZW50YW46IEdpbGRlbi1OUEMgdW5kIHNvbnN0aWdlLgorI2RlZmluZSBHVUlMRF9IRUxQRVIgICAgIDB4MQorI2RlZmluZSBNSVNDX0hFTFBFUiAgICAgIDB4MgorLy8gV2VubiBnZXNldHp0LCBpc3QgZGVyIEhlbGZlciBleGtsdXNpdiB1bmQgbGFlc3N0IGtlaW5lbiBhbmRlcmVuIGluIGRlcgorLy8gZGVyc2VsYmVuIEtsYXNzZSB6dS4KKyNkZWZpbmUgRVhDTFVTSVZFX0hFTFBFUiAweDQwMDAwMDAwCisvLyBXZW5uIGdlc2V0enQsIGlzdCBkZXIgSGVsZmVyICdha3RpdicsIGQuaC4gbmljaHQgbnVyIFNjaGxhZ2ZhZW5nZXIKKyNkZWZpbmUgQUNUSVZFX0hFTFBFUiAgICAweDIwMDAwMDAwCisKKy8vIGluZGl2aWR1ZWxsZSBTY2hhZGVuc21lbGR1bmdlbiBlaW5lcyBMZWJld2VzZW5zCisjZGVmaW5lIFBfREFNQUdFX01TRyAgICAgInN0ZF9wX2RhbV9tc2ciCisKKyNlbmRpZiAvLyBfX0xJVklOR19DT01CQVRfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0xJVklOR19DT01CQVRfSF9QUk9UT19fCisjZGVmaW5lIF9fTElWSU5HX0NPTUJBVF9IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworcHVibGljIGludCBLaWxsKG9iamVjdCBvYik7CitwdWJsaWMgdm9pZCBBdHRhY2syKG9iamVjdCBlbmVteSk7CitwdWJsaWMgdm9pZCBBdHRhY2sob2JqZWN0IGVuZW15KTsKK3B1YmxpYyB2b2lkIEFkZERlZmVuZGVyKG9iamVjdCBmcmllbmQpOworcHVibGljIHZvaWQgUmVtb3ZlRGVmZW5kZXIob2JqZWN0IGZyaWVuZCk7CitwdWJsaWMgdm9pZCBJbmZvcm1EZWZlbmQob2JqZWN0IGVuZW15KTsKK3B1YmxpYyBtaXhlZCBEZWZlbmRPdGhlcihpbnQgZGFtLCBzdHJpbmd8c3RyaW5nKiBkYW1fdHlwZSwgaW50fG1hcHBpbmcgc3BlbGwsIG9iamVjdCBlbmVteSk7CitwdWJsaWMgaW50IERlZmVuZChpbnQgZGFtLCBzdHJpbmd8c3RyaW5nKiBkYW1fdHlwZSwgaW50fG1hcHBpbmcgc3BlbGwsIG9iamVjdCBlbmVteSk7CitwdWJsaWMgdm9pZCBDaGVja1dpbXB5QW5kRmxlZSgpOworcHVibGljIHZhcmFyZ3Mgdm9pZCBGbGVlKG9iamVjdCBvbGRlbnYsIGludCBmb3JjZSk7CisKK3B1YmxpYyB2YXJhcmdzIGludCBTdG9wSHVudEZvcihvYmplY3QgYXJnLCBpbnQgc2lsZW50KTsKK3B1YmxpYyB2YXJhcmdzIG1hcHBpbmcgU3RvcEh1bnRpbmdNb2RlKGludCBzaWxlbnQpOworCitwdWJsaWMgdm9pZCBVcGRhdGVSZXNpc3RhbmNlU3RyZW5ndGhzKCk7CitwdWJsaWMgdmFyYXJncyBpbnQgQWRkUmVzaXN0YW5jZU1vZGlmaWVyKG1hcHBpbmcgbW9kLCBzdHJpbmcgYWRkKTsKK3B1YmxpYyB2YXJhcmdzIHZvaWQgUmVtb3ZlUmVzaXN0YW5jZU1vZGlmaWVyKHN0cmluZyBhZGQpOworcHVibGljIGZsb2F0IENoZWNrUmVzaXN0YW5jZShzdHJpbmcqIGRhbV90eXBlKTsKKworcHVibGljIGludCBJbnNlcnRTaW5nbGVFbmVteShvYmplY3Qgb2IpOworcHVibGljIGludCBJbnNlcnRFbmVteShvYmplY3Qgb2IpOworcHVibGljIGludCBJc0VuZW15KG9iamVjdCB3ZXIpOworcHVibGljIG9iamVjdCAqUHJlc2VudEVuZW1pZXMoKTsKK3B1YmxpYyBvYmplY3QgUXVlcnlQcmVmZXJlZEVuZW15KCk7CitwdWJsaWMgdmFyYXJncyBvYmplY3QgU2VsZWN0RW5lbXkob2JqZWN0ICpoZXJlKTsKK3B1YmxpYyA8b2JqZWN0KnxpbnQqPiogUXVlcnlFbmVtaWVzKCk7CitwdWJsaWMgbWFwcGluZyBHZXRFbmVtaWVzKCk7CisjaWYgX19WRVJTSU9OX01BSk9SX18+PTMgJiYgX19WRVJTSU9OX01JTk9SX18+PTUgJiYgKF9fVkVSU0lPTl9NSUNST19fPjAgfHwgKF9fVkVSU0lPTl9NSUNST19fPT0wICYmIF9fVkVSU0lPTl9QQVRDSF9fPj0yKSkKK3B1YmxpYyBtYXBwaW5nIFNldEVuZW1pZXMoPG9iamVjdCp8aW50Kj4qIG15ZW5lbWllcyk7CisjZWxzZQorcHVibGljIG1hcHBpbmcgU2V0RW5lbWllcyhtaXhlZCAqbXllbmVtaWVzKTsKKyNlbmRpZgorcHVibGljIG1peGVkIEVuZW15UHJlc2VudCgpOworcHVibGljIG1peGVkIEluRmlnaHQoKTsKK3B1YmxpYyBpbnQgQ2hlY2tFbmVteShvYmplY3Qgb2IpOworCitwdWJsaWMgaW50IFNwZWxsRGVmZW5kKG9iamVjdCBjYXN0ZXIsIG1hcHBpbmcgc2luZm8pOworCitwdWJsaWMgb2JqZWN0fG9iamVjdCogUXVlcnlBcm1vdXJCeVR5cGUoc3RyaW5nIHR5cGUpOworCitwdWJsaWMgdmFyYXJncyBpbnQgVXNlSGFuZHMob2JqZWN0IG9iLCBpbnQgbnVtKTsKK3B1YmxpYyB2YXJhcmdzIGludCBGcmVlSGFuZHMob2JqZWN0IG9iKTsKKworcHVibGljIHZvaWQgSW5pdEF0dGFjaygpOworcHVibGljIHZvaWQgRXhpdEF0dGFjaygpOworCitwdWJsaWMgaW50IFBhY2lmeShvYmplY3QgY2FzdGVyKTsKKworcHVibGljIHZhcmFyZ3MgaW50IFN0b3BIdW50SUQoc3RyaW5nIHN0ciwgaW50IHNpbGVudCk7CitwdWJsaWMgdm9pZCBTdG9wSHVudFRleHQob2JqZWN0IGFyZyk7CitwdWJsaWMgdmFyYXJncyB2b2lkIEV4ZWN1dGVNaXNzaW5nQXR0YWNrcyhvYmplY3QgKnJlbW92ZV9hdHRhY2tlcnMpOworCisvLyBRdWVyeS0gdW5kIFNldC1NZXRob2Rlbgorc3RhdGljIGludCAgICAgX3F1ZXJ5X2F0dGFja19idXN5KCk7CitzdGF0aWMgaW50ICAgICBfcXVlcnlfZnJlZV9oYW5kcygpOworc3RhdGljIG1peGVkICAgX3F1ZXJ5X2hhbmRzKCk7CitzdGF0aWMgbWl4ZWQgICpfcXVlcnlfaGFuZHNfdXNlZF9ieSgpOworc3RhdGljIG1hcHBpbmcgX3F1ZXJ5X3Jlc2lzdGFuY2Vfc3RyZW5ndGhzKCk7CitzdGF0aWMgaW50ICAgICBfcXVlcnlfdG90YWxfYWMoKTsKK3N0YXRpYyBpbnQgICAgIF9xdWVyeV90b3RhbF93YygpOworc3RhdGljIGludCAgICAgX3F1ZXJ5X3VzZWRfaGFuZHMoKTsKK3N0YXRpYyBpbnQgICAgIF9zZXRfYXR0YWNrX2J1c3kobWl4ZWQgdmFsKTsKK3N0YXRpYyBpbnQgICAgIF9zZXRfZGlzYWJsZV9hdHRhY2soaW50IHZhbCk7CitzdGF0aWMgbWl4ZWQgICBfc2V0X2hhbmRzKG1peGVkIGgpOworc3RhdGljIG1peGVkICAgX3NldF9yZXNpc3RhbmNlKG1peGVkIGFyZyk7CitzdGF0aWMgaW50ICAgICBfc2V0X3VzZWRfaGFuZHMoaW50IG5ld19udW0pOworc3RhdGljIG1peGVkICAgX3NldF92dWxuZXJhYmlsaXR5KG1peGVkIGFyZyk7CitzdGF0aWMgaW50ICAgICBfc2V0X3dpbXB5KGludCBpKTsKKworLy8gSW50ZXJuYWwKK3Byb3RlY3RlZCB2b2lkIFNraWxsUmVzVHJhbnNmZXIobWFwcGluZyBmcm9tX00sIG1hcHBpbmcgdG9fTSk7Citwcm90ZWN0ZWQgdm9pZCBJbnRlcm5hbE1vZGlmeUF0dGFjayhtYXBwaW5nIGFpbmZvKTsKK3Byb3RlY3RlZCB2b2lkIEludGVybmFsTW9kaWZ5RGVmZW5kKGludCBkYW0sIHN0cmluZyogZHQsIG1hcHBpbmcgc3BlbGwsIG9iamVjdCBlbmVteSk7Citwcm90ZWN0ZWQgc3RyaW5nIG1lc3Moc3RyaW5nIG1zZyxvYmplY3QgbWUsb2JqZWN0IGVuZW15KTsKKyAKKyNlbmRpZiAvLyBfX0xJVklOR19DT01CQVRfSF9QUk9UT19fCisKKyNlbmRpZgkvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL2xpdmluZy9jb21tLmggYi9zeXMvbGl2aW5nL2NvbW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTUwNjIyCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2xpdmluZy9jb21tLmgKQEAgLTAsMCArMSwxMDEgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBsaXZpbmcvY29tbS5oIC0tIGNvbW11bmljYXRpb24gbW9kdWxlIHByb3BlcnRpZXMgZm9yIExpdmluZ3MKKy8vCisvLyAkSWQ6IGNvbW0uaCx2IDMuMyAyMDAwLzAyLzA5IDE1OjU2OjI1IFBhZHJlaWMgRXhwICQKKworI2lmbmRlZiBfX0xJVklOR19DT01NX0hfXworI2RlZmluZSBfX0xJVklOR19DT01NX0hfXworCisjaW5jbHVkZSA8YnJlYWtfc3RyaW5nLmg+CisKKy8vIEZsYWdzIGZ1ZXIgUmVjZWl2ZU1zZygpLgorLy8gVGhlIEJTLUZsYWdzIE1VU1QgYWx3YXlzIGJlIGVxdWFsIHRvIHRoZSBvbmUgZGVmaW5lZCBmb3IgYnJlYWtfc3RyaW5nIQorI2RlZmluZSBNU0dfQlNfTEVBVkVfTEZTICAgIEJTX0xFQVZFX01ZX0xGUyAgICAvLzEKKyNkZWZpbmUgTVNHX0JTX1NJTkdMRV9TUEFDRSBCU19TSU5HTEVfU1BBQ0UgICAgLy8yCisjZGVmaW5lIE1TR19CU19CTE9DSyAgICAgICAgQlNfQkxPQ0sgICAgICAgICAgIC8vNAorI2RlZmluZSBNU0dfQlNfTk9fUEFSSU5ERU5UIEJTX05PX1BBUklOREVOVCAgICAvLzgKKyNkZWZpbmUgTVNHX0JTX0lOREVOVF9PTkNFICBCU19JTkRFTlRfT05DRSAgICAgLy8xNgorI2RlZmluZSBNU0dfQlNfUFJFUF9JTkRFTlQgIEJTX1BSRVBFTkRfSU5ERU5UICAvLzMyCisvLyBGbGFncyA8IDEwMjQgKDJeMTApIHJlc2VydmllcnQgZnVlciBCUworI2RlZmluZSBNU0dfRE9OVF9CVUZGRVIgIDEwMjQKKyNkZWZpbmUgTVNHX0RPTlRfU1RPUkUgICAyMDQ4CisjZGVmaW5lIE1TR19ET05UX1dSQVAgICAgNDA5NgorI2RlZmluZSBNU0dfRE9OVF9JR05PUkUgIDgxOTIKKy8vIEZsYWdzIDwgMTA0ODU3NiAoMl4yMCkgcmVzZXJ2aWVydCBmdWVyIEZsYWdzCisjZGVmaW5lIE1TR19BTExfQlNfRkxBR1MgKEJTX0xFQVZFX01ZX0xGUyB8IEJTX1NJTkdMRV9TUEFDRSB8IEJTX0JMT0NLXAorICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJTX05PX1BBUklOREVOVCB8IEJTX0lOREVOVF9PTkNFXAorICAgICAgICAgICAgICAgICAgICAgICAgICB8QlNfUFJFUEVORF9JTkRFTlQpCisjZGVmaW5lIE1TR19BTExfRkxBR1MgKE1TR19ET05UX0JVRkZFUiB8IE1TR19ET05UX1NUT1JFIHwgTVNHX0RPTlRfV1JBUFwKKyAgICAgICAgICAgICAgICAgICAgICB8IE1TR19ET05UX0lHTk9SRSB8IE1TR19BTExfQlNfRkxBR1MpCisKKy8vIE5hY2hyaWNodGVudHlwZW4sIFdlcnRlIGFiIDJeMjAKKyNkZWZpbmUgTVRfVU5LTk9XTiAgICAwCisjZGVmaW5lIE1UX0xPT0sgICAgICAgMTA0ODU3NgorI2RlZmluZSBNVF9MSVNURU4gICAgIDIwOTcxNTIKKyNkZWZpbmUgTVRfRkVFTCAgICAgICA0MTk0MzA0CisjZGVmaW5lIE1UX1RBU1RFICAgICAgODM4ODYwOAorI2RlZmluZSBNVF9TTUVMTCAgICAgIDE2Nzc3MjE2CisjZGVmaW5lIE1UX01BR0lDICAgICAgMzM1NTQ0MzIKKyNkZWZpbmUgTVRfTk9USUZJQ0FUSU9OIDY3MTA4ODY0CisjZGVmaW5lIE1UX0NPTU0gICAgICAgMTM0MjE3NzI4CisjZGVmaW5lIE1UX0ZBUiAgICAgICAgMjY4NDM1NDU2CisjZGVmaW5lIE1UX0RFQlVHICAgICAgNTM2ODcwOTEyCisjZGVmaW5lIE1UX05FV1MgICAgICAgMTA3Mzc0MTgyNAorCisvLyBBa3Rpb25lbgorLy8gQmVpIE1BX1VOS05PV04gd2lyZCBkaWUgQWt0aW9uIGF1cyBxdWVyeV92ZXJiKCkgZ2VyYXRlbi4gV2VubiBkYXMgbmljaHQKKy8vIGV4aXN0aWVydCwgYmxlaWJ0IGRpZSBBa3Rpb24gTUFfVU5LTk9XTi4KKyNkZWZpbmUgTUFfVU5LTk9XTiAgICAwCisjZGVmaW5lIE1BX1BVVCAgICAgICAgIndpcmYiCisjZGVmaW5lIE1BX1RBS0UgICAgICAgIm5pbW0iCisjZGVmaW5lIE1BX01PVkVfSU4gICAgIm1vdmVfaW4iCisjZGVmaW5lIE1BX01PVkVfT1VUICAgIm1vdmVfb3V0IgorI2RlZmluZSBNQV9NT1ZFICAgICAgICJtb3ZlIgorI2RlZmluZSBNQV9GSUdIVCAgICAgICJ0b2V0ZSIKKyNkZWZpbmUgTUFfV0lFTEQgICAgICAienVlY2tlIgorI2RlZmluZSBNQV9VTldJRUxEICAgICJzdGVja2UiCisjZGVmaW5lIE1BX1dFQVIgICAgICAgInRyYWdlIgorI2RlZmluZSBNQV9VTldFQVIgICAgICJ6aWVoZSIKKyNkZWZpbmUgTUFfRUFUICAgICAgICAiaXNzIgorI2RlZmluZSBNQV9EUklOSyAgICAgICJ0cmlua2UiCisjZGVmaW5lIE1BX1NQRUxMICAgICAgInphdWJlcmUiCisjZGVmaW5lIE1BX0xPT0sgICAgICAgInVudGVyc3VjaGUiCisjZGVmaW5lIE1BX0xJU1RFTiAgICAgImxhdXNjaGUiCisjZGVmaW5lIE1BX0ZFRUwgICAgICAgInRhc3RlIgorI2RlZmluZSBNQV9TTUVMTCAgICAgICJyaWVjaGUiCisjZGVmaW5lIE1BX1NFTlNFICAgICAgImVyc3B1ZXJlbiIKKyNkZWZpbmUgTUFfUkVBRCAgICAgICAibGllcyIKKyNkZWZpbmUgTUFfVVNFICAgICAgICAiYmVudXR6ZSIKKyNkZWZpbmUgTUFfU0FZICAgICAgICAic2FnZSIKKyNkZWZpbmUgTUFfUkVNT1ZFICAgICAicmVtb3ZlIgorI2RlZmluZSBNQV9DSEFOTkVMICAgICJlYmVuZW4iCisjZGVmaW5lIE1BX0VNT1RFICAgICAgImVtb3RlIgorI2RlZmluZSBNQV9TSE9VVCAgICAgICJydWZlIgorI2RlZmluZSBNQV9TSE9VVF9TRUZVTiAic2hvdXQiCisjZGVmaW5lIE1BX1RFTEwgICAgICAgInRlaWxlbWl0IgorCisvLyBSdWVja2dhYmV3ZXJ0ZSB2b24gUmVjZWl2ZU1zZygpCisjZGVmaW5lIE1TR19ERUxJVkVSRUQgICAgMQorI2RlZmluZSBNU0dfQlVGRkVSRUQgICAgIDIKKyNkZWZpbmUgTVNHX0ZBSUxFRCAgICAgIC0xCisjZGVmaW5lIE1TR19JR05PUkVEICAgICAtMgorI2RlZmluZSBNU0dfVkVSQl9JR04gICAgLTMKKyNkZWZpbmUgTVNHX01VRF9JR04gICAgIC00CisjZGVmaW5lIE1TR19TRU5TRV9CTE9DSyAtNQorI2RlZmluZSBNU0dfQlVGRkVSX0ZVTEwgLTYKKworI2VuZGlmIC8vIF9fTElWSU5HX0NPTU1fSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0xJVklOR19DT01NX0hfUFJPVE9fXworI2RlZmluZSBfX0xJVklOR19DT01NX0hfUFJPVE9fXworCitwdWJsaWMgdmFyYXJncyBpbnQgUmVjZWl2ZU1zZyhzdHJpbmcgbXNnLCBpbnQgbXNnX3R5cGUsIHN0cmluZyBtc2dfYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIG1zZ19wcmVmaXgsIG9iamVjdCBvcmlnaW4pOworCisjZW5kaWYgLy8gX19MSVZJTkdfQ09NTV9IX1BST1RPX18KKworI2VuZGlmIC8vIE5FRURfUFJPVE9ZUEVTCisKZGlmZiAtLWdpdCBhL3N5cy9saXZpbmcvZGVzY3JpcHRpb24uaCBiL3N5cy9saXZpbmcvZGVzY3JpcHRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzA3ZmJmCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2xpdmluZy9kZXNjcmlwdGlvbi5oCkBAIC0wLDAgKzEsNDggQEAKKyNpZm5kZWYgX19MSVZJTkdfREVTQ1JJUFRJT05fSF9fCisjZGVmaW5lIF9fTElWSU5HX0RFU0NSSVBUSU9OX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNkZWZpbmUgUF9HVUlMRCAgICAgICAgICAgICAgICAgICAiZ3VpbGQiCisjZGVmaW5lIFBfVklTSUJMRV9HVUlMRCAgICAgICAgICAgInZpc2libGVfZ3VpbGQiCisKKyNkZWZpbmUgUF9FWFRSQV9MT09LICAgICAgICAgICAgICAiZXh0cmFsb29rIgorI2RlZmluZSBQX0lOVEVSTkFMX0VYVFJBX0xPT0sgICAgICJpbnRlcm5hbF9leHRyYWxvb2siCisKKyNkZWZpbmUgUF9QTEFZRVJfTElHSFQgICAgICAgICAgICAicGxheWVyX2xpZ2h0IgorI2RlZmluZSBQX0xJR0hUX01PRElGSUVSICAgICAgICAgICJsaWdodF9tb2RpZmllciIKKworI2RlZmluZSBQX0xFVkVMICAgICAgICAgICAgICAgICAgICJsZXZlbCIKKworI2RlZmluZSBQX1JBQ0UgICAgICAgICAgICAgICAgICAgICJyYWNlIgorI2RlZmluZSBQX1JFQUxfUkFDRSAgICAgICAgICAgICAgICJyZWFsX3JhY2UiCisKKy8vIGJpdHRlIGF1Y2ggaW4gL3NlY3VyZS9tYXN0ZXIuaCBhZW5kZXJuLCBmYWxscyBkYXMgbWFsIGdlYWVuZGVydCB3aXJkLgorI2RlZmluZSBQX1dFQVBPTiAgICAgICAgICAgICAgICAgICJ3ZWFwb24iCisKKyNkZWZpbmUgUF9QQVJBICAgICAgICAgICAgICAgICAgICAicGFyYSIKKyNkZWZpbmUgUF9TSVpFICAgICAgICAgICAgICAgICAgICAic2l6ZSIKKworI2RlZmluZSBQX0RJRV9NU0cgICAgICAgICAgICAgICAgICJkaWVfbXNnIgorCisjZGVmaW5lIFBfV0lNUFkgICAgICAgICAgICAgICAgICAgIndpbXB5IgorI2RlZmluZSBQX1dJTVBZX0RJUkVDVElPTiAgICAgICAgICJ3aW1weV9kaXIiCisKKyNkZWZpbmUgUF9BVkFUQVJfVVJJICAgICAgICAgICAgICAicF9saWJfYXZhdGFydXJpIgorCisjZW5kaWYgLy8gX19MSVZJTkdfREVTQ1JJUFRJT05fSF9fCisKKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fTElWSU5HX0RFU0NSSVBUSU9OX0hfUFJPVE9fXworI2RlZmluZSBfX0xJVklOR19ERVNDUklQVElPTl9IX1BST1RPX18KKwordmFyYXJncyBpbnQgICAgICAgICBDYW5ub3RTZWUoaW50IHNpbGVudCk7CitwdWJsaWMgdmFyYXJncyBpbnQgIEFkZEV4dHJhTG9vayhzdHJpbmcgbG9vaywgaW50IGR1cmF0aW9uLCBzdHJpbmcga2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBsb29rZW5kZSwgb2JqZWN0IG9iKTsKK3B1YmxpYyBpbnQgICAgICAgICAgUmVtb3ZlRXh0cmFMb29rKHN0cmluZyBrZXkpOworCisjZW5kaWYgLy8gX19MSVZJTkdfREVTQ1JJUFRJT05fSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL2xpdmluZy9oZWxwZXJzLmggYi9zeXMvbGl2aW5nL2hlbHBlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTM3OTNhCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2xpdmluZy9oZWxwZXJzLmgKQEAgLTAsMCArMSw0MiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGxpdmluZy9oZWxwZXJzLmggLS0gS29uc3RhbnRlbiB1bmQgTWV0aG9kZW4gZnVlciBIaWxmc29iamVrdGUKKy8vCisvLyAkSWQ6IG1vbmV5aGFuZGxlci5oLHYgMy4xIDE5OTcvMDIvMTIgMTM6Mjk6MDkgV2FyZ29uIEV4cCAlCisKKyNpZm5kZWYgX19MSVZJTkdfSEVMUEVSU19IX18KKyNkZWZpbmUgX19MSVZJTkdfSEVMUEVSU19IX18KKworLy8gUHJvcGVydGllcworCisjZGVmaW5lIFBfSEVMUEVSX09CSkVDVFMgICAgImxpYl9wX2hlbHBlcl9vYmplY3RzIgorCisjZGVmaW5lIFBfQVFVQVRJQ19IRUxQRVJTICAgImxpYl9wX2FxdWF0aWNfaGVscGVycyIKKyNkZWZpbmUgUF9BRVJJQUxfSEVMUEVSUyAgICAibGliX3BfYWVyaWFsX2hlbHBlcnMiCisKKy8vIERlZmluZXMgZnVlciBIZWxmZXJvYmpla3QtVHlwZW4gdW5kIFJ1ZWNrZ2FiZXdlcnRlCisKKyNkZWZpbmUgSEVMUEVSX1RZUEVfQVFVQVRJQyAxCisjZGVmaW5lIEhFTFBFUl9UWVBFX0FFUklBTCAgMgorCisjZGVmaW5lIEhFTFBFUl9OT19DQUxMQkFDS19PQkpFQ1QgICAgLTEKKyNkZWZpbmUgSEVMUEVSX0FMUkVBRFlfTElTVEVEICAgICAgICAtMgorI2RlZmluZSBIRUxQRVJfTk9USElOR19UT19VTlJFR0lTVEVSIC0zCisjZGVmaW5lIEhFTFBFUl9TVUNDRVNTICAgICAgICAgICAgICAgIDEKKworI2VuZGlmIC8vIF9fTElWSU5HX0hFTFBFUlNfSF9fCisKKy8vIFByb3RvdHlwZXMKKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fTElWSU5HX0hFTFBFUlNfSF9QUk9UT19fCisjZGVmaW5lIF9fTElWSU5HX0hFTFBFUlNfSF9QUk9UT19fCisKK2ludCBSZWdpc3RlckhlbHBlck9iamVjdChvYmplY3QgaGVscGVyLCBpbnQgdHlwZSwgbWl4ZWQgY2FsbGJhY2spOworaW50IFVucmVnaXN0ZXJIZWxwZXJPYmplY3Qob2JqZWN0IGhlbHBlciwgaW50IHR5cGUpOworCisjZW5kaWYgLy8gX19MSVZJTkdfSEVMUEVSU19IX1BST1RPX18KKworI2VuZGlmIC8vIE5FRURfUFJPVE9ZUEVTCisKZGlmZiAtLWdpdCBhL3N5cy9saXZpbmcvbGlmZS5oIGIvc3lzL2xpdmluZy9saWZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODFiYTNkZAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9saXZpbmcvbGlmZS5oCkBAIC0wLDAgKzEsMTI1IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gbGl2aW5nL2xpZmUuaCAtLSBsaXZpbmcgbGlmZSBoZWFkZXIKKy8vCisvLyAkSWQ6IGxpZmUuaCA5MDQ4IDIwMTUtMDEtMTEgMTg6MjE6MzJaIFplc3N0cmEgJAorCisjaWZuZGVmIF9fTElWSU5HX0xJRkVfSF9fCisjZGVmaW5lIF9fTElWSU5HX0xJRkVfSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX0FHRSAgICAgICAgICAgICAgICAgICAgICJhZ2UiCisjZGVmaW5lIFBfQUxJR04gICAgICAgICAgICAgICAgICAgImFsaWduIgorCisjZGVmaW5lIFBfREVBRFMgICAgICAgICAgICAgICAgICAgImRlYWRzIgorI2RlZmluZSBQX0dIT1NUICAgICAgICAgICAgICAgICAgICJnaG9zdCIKKyNkZWZpbmUgUF9GUk9HICAgICAgICAgICAgICAgICAgICAiZnJvZyIKKworI2RlZmluZSBQX0ZPT0QgICAgICAgICAgICAgICAgICAgICJmb29kIgorI2RlZmluZSBQX01BWF9GT09EICAgICAgICAgICAgICAgICJtYXhfZm9vZCIKKyNkZWZpbmUgUF9EUklOSyAgICAgICAgICAgICAgICAgICAiZHJpbmsiCisjZGVmaW5lIFBfTUFYX0RSSU5LICAgICAgICAgICAgICAgIm1heF9kcmluayIKKyNkZWZpbmUgUF9BTENPSE9MICAgICAgICAgICAgICAgICAiYWxjb2hvbCIKKyNkZWZpbmUgUF9NQVhfQUxDT0hPTCAgICAgICAgICAgICAibWF4X2FsY29ob2wiCisKKyNkZWZpbmUgUF9IUCAgICAgICAgICAgICAgICAgICAgICAiaHAiCisjZGVmaW5lIFBfTUFYX0hQICAgICAgICAgICAgICAgICAgIm1heF9ocCIKKyNkZWZpbmUgUF9TUCAgICAgICAgICAgICAgICAgICAgICAic3AiCisjZGVmaW5lIFBfTUFYX1NQICAgICAgICAgICAgICAgICAgIm1heF9zcCIKKyNkZWZpbmUgUF9YUCAgICAgICAgICAgICAgICAgICAgICAieHAiCisjZGVmaW5lIFBfTk9fWFAgICAgICAgICAgICAgICAgICAgIm5vX3hwIgorI2RlZmluZSBQX0xBU1RfWFAgICAgICAgICAgICAgICAgICJsYXN0X3hwIgorCisjZGVmaW5lIFBfRk9PRF9ERUxBWSAgICAgICAgICAgICAgImZvb2RfZGVsYXkiCisjZGVmaW5lIFBfRFJJTktfREVMQVkgICAgICAgICAgICAgImRyaW5rX2RlbGF5IgorI2RlZmluZSBQX0FMQ09IT0xfREVMQVkgICAgICAgICAgICJhbGNvaG9sX2RlbGF5IgorI2RlZmluZSBQX0hQX0RFTEFZICAgICAgICAgICAgICAgICJocF9kZWxheSIKKyNkZWZpbmUgUF9TUF9ERUxBWSAgICAgICAgICAgICAgICAic3BfZGVsYXkiCisjZGVmaW5lIFBfUE9JU09OX0RFTEFZICAgICAgICAgICAgInBvaXNvbl9kZWxheSIKKworI2RlZmluZSBQX1BPSVNPTiAgICAgICAgICAgICAgICAgICJwb2lzb24iCisjZGVmaW5lIFBfTUFYX1BPSVNPTiAgICAgICAgICAgICAgIm1heF9wb2lzb24iCisKKyNkZWZpbmUgUF9OT19SRUdFTkVSQVRJT04gICAgICAgICAibm9fcmVnZW5lcmF0aW9uIgorCisjZGVmaW5lIFBfRU5FTVlfREFNQUdFICAgICAgICAgICAgImVuZW15X2RhbWFnZSIKKyNkZWZpbmUgUF9USU1JTkdfTUFQICAgICAgICAgICAgICAidGltaW5nX21hcCIKKyNkZWZpbmUgUF9MQVNUX0RFQVRIX1RJTUUgICAgICAgICAibGFzdF9kZWF0aF90aW1lIgorI2RlZmluZSBQX0xBU1RfREVBVEhfUFJPUFMgICAgICAgICJsYXN0X2RlYXRoX3Byb3BzIgorI2RlZmluZSBQX0NPUlBTRV9ERUNBWV9USU1FICAgICAgICJjb3Jwc2VfZGVjYXkiCisKKy8vIC0tLS0tIERlZmluaXRpb25lbiBmdWVyIEJlZWluZmx1c3N1bmcgZGVyIEdlc3VuZGhlaXQgZHVyY2ggY29uc3VtZSAtLS0tLQorCisvLyBIX0VGRkVDVFMgLSBadSBhZW5kZXJuZGUgUHJvcGVydGllcyBmdWVyIGRlbiBFZmZla3QKKyNkZWZpbmUgSF9FRkZFQ1RTICJlZmZlY3RzIgorLy8gSF9DT05ESVRJT05TIC0gWnUgcHJ1ZWZlbmRlIFByb3BlcnRpZXMgZvxyIGRlbiBFZmZla3QgKFNhZXR0aWd1bmcsIC4uLikKKyNkZWZpbmUgSF9DT05ESVRJT05TICJjb25kaXRpb25zIgorLy8gSF9ESVNUUklCVVRJT04gLSBXaWUgZGllIEFlbmRlcnVuZyBhbiBIUC9TUCBhdXN0ZWlsZW4sIHNvZm9ydCwgemVpdGxpY2gKKy8vIHZlcnNldHp0LCAuLi4KKyNkZWZpbmUgSF9ESVNUUklCVVRJT04gImRpc3RyaWJ1dGlvbiIKKy8vIEhfSU5HUkVESUVOVFMgLSBCZXN0YW5kdGVpbGUsIGRpZSBkaWUgQWVuZGVydW5nIHZlcnVyc2FjaGVuCisjZGVmaW5lIEhfSU5HUkVESUVOVFMgImluZ3JlZGllbnRzIgorCisvLyBWZXJ0ZWlsdW5nZW4sCisvLyAwICAgIFNvZm9ydHdpcmt1bmcKKy8vIDEtNTAgZ2xlaWNodmVydGVpbHRlIFB1ZmZlcnVuZyBtaXQgYW5nZWdlYmVuZXIgUmF0ZSBmdWVyIFNQL0hQCisvLyA+PSA1MSBzcGV6aWVsbGUgVmVydGVpbHVuZ2VuIChUT0RPKQorI2RlZmluZSBIRF9JTlNUQU5UICAgICAgMAorI2RlZmluZSBIRF9TVEFOREFSRCAgICAgNQorCisjZGVmaW5lIEhfQUxMT1dFRF9DT05ESVRJT05TICh7UF9GT09ELCBQX0RSSU5LLCBQX0FMQ09IT0x9KQorI2RlZmluZSBIX0FMTE9XRURfRUZGRUNUUyAgICAoe1BfU1AsIFBfSFAsIFBfUE9JU09OfSkKKworI2RlZmluZSBIQ19NQVhfRk9PRF9SRUFDSEVEICAgICAgICAxCisjZGVmaW5lIEhDX01BWF9EUklOS19SRUFDSEVEICAgICAgIDIKKyNkZWZpbmUgSENfTUFYX0FMQ09IT0xfUkVBQ0hFRCAgICAgNAorI2RlZmluZSBIQ19IT09LX0NBTkNFTExBVElPTiAgICAgICA4CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2VuZGlmIC8vIF9fTElWSU5HX0xJRkVfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0xJVklOR19MSUZFX0hfUFJPVE9fXworI2RlZmluZSBfX0xJVklOR19MSUZFX0hfUFJPVE9fXyAgICAgICAgIAorCisvLyBwcm90b3R5cGVzCisKKy8vIC0tLS0tIHplbnRyYWxlIEZ1bmt0aW9uLCB1bSBkaWUgR2VzdW5kaGVpdCBkZXMgTGViZXdlc2VucyB6dSBiZWVpbmZsdXNzZW4gLS0tLS0KK3B1YmxpYyB2YXJhcmdzIGludCBjb25zdW1lKG1hcHBpbmcgY2luZm8sIGludCB0ZXN0b25seSk7CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3B1YmxpYyBpbnQgZG9fZGFtYWdlKGludCBkYW0sIG9iamVjdCBlbmVteSk7CitwdWJsaWMgaW50IHJlZHVjZV9oaXRfcG9pbnRzKGludCBkYW0pOworcHVibGljIGludCByZXN0b3JlX2hpdF9wb2ludHMoaW50IGhlYWwpOworCitwdWJsaWMgaW50IHJlZHVjZV9oaXRfcG9pbnQoaW50IGRhbSk7ICAvL051ciBhbHMgVWViZXJnYW5zbG9lc3VuZyAoUmlrdXMpCisKK3B1YmxpYyB2b2lkIHJlc3RvcmVfc3BlbGxfcG9pbnRzKGludCBoKTsKK3B1YmxpYyB2b2lkIHJlZHVjZV9zcGVsbF9wb2ludHMoaW50IGgpOworCitwdWJsaWMgdm9pZCBoZWFsX3NlbGYoaW50IGgpOworCitwdWJsaWMgdmFyYXJncyB2b2lkIGRpZSggaW50IHBvaXNvbmRlYXRoLCBpbnQgZXh0ZXJuICk7CisKK3B1YmxpYyB2YXJhcmdzIHZvaWQgdHJhbnNmZXJfYWxsX3RvKCBzdHJpbmd8b2JqZWN0IGRlc3QsIGludCBjaGVjayApOworCitwdWJsaWMgdmFyYXJncyBpbnQgZHJpbmtfYWxjb2hvbChpbnQgc3RyZW5ndGgsIGludCB0ZXN0b25seSwgc3RyaW5nIG15dGV4dCk7CitwdWJsaWMgdmFyYXJncyBpbnQgZHJpbmtfc29mdChpbnQgc3RyZW5ndGgsIGludCB0ZXN0b25seSwgc3RyaW5nIG15dGV4dCk7CitwdWJsaWMgdmFyYXJncyBpbnQgZWF0X2Zvb2QoaW50IHN0cmVuZ3RoLCBpbnQgdGVzdG9ubHksIHN0cmluZyBteXRleHQpOworCitwdWJsaWMgaW50IGJ1ZmZlcl9ocChpbnQgdmFsLGludCByYXRlKTsKK3B1YmxpYyBpbnQgYnVmZmVyX3NwKGludCB2YWwsaW50IHJhdGUpOworCitwdWJsaWMgdm9pZCBzaG93X2FnZSgpOworCitwdWJsaWMgaW50IEFkZEV4cChpbnQgZSk7CisKKy8vIGludGVybmFsCitwcm90ZWN0ZWQgdm9pZCBSZXNldEVuZW15RGFtYWdlKCk7CisKKyNlbmRpZiAvLyBfX0xJVklOR19MSUZFX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy9saXZpbmcvbW92aW5nLmggYi9zeXMvbGl2aW5nL21vdmluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MTQ0NjYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbGl2aW5nL21vdmluZy5oCkBAIC0wLDAgKzEsNDAgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBsaXZpbmcvbW92aW5nLmggLS0gUHJvcHMvUHJvdG90eXBlbiBmdWVyIGxpdmluZy9tb3ZpbmcuYworLy8KKy8vICRJZDogbW92aW5nLmggODg5MiAyMDE0LTA4LTA0IDE5OjQ4OjI4WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX0xJVklOR19NT1ZJTkdfSF9fCisjZGVmaW5lIF9fTElWSU5HX01PVklOR19IX18KKworI2RlZmluZSBQX1BVUlNVRVJTICAgICAgICJwdXJzdWVycyIKKworI2VuZGlmIC8vIF9fTElWSU5HX01PVklOR19IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fTElWSU5HX01PVklOR19IX1BST1RPX18KKyNkZWZpbmUgX19MSVZJTkdfTU9WSU5HX0hfUFJPVE9fXworCitwdWJsaWMgdm9pZCBBZGRQdXJzdWVyKG9iamVjdCBvYik7CitwdWJsaWMgdm9pZCBSZW1vdmVQdXJzdWVyKG9iamVjdCBvYik7CisKK3B1YmxpYyB2b2lkIFRha2VGb2xsb3dlcnMoKTsKKworI2lmZGVmIF9fVEhJTkdfTU9WSU5HX0hfUFJPVE9fXworLy8gZGFzIGRhcmYgbmljaHQgcGFzc2llcmVuLCB3ZWlsIG1vdmUgaW4gdGhpbmcgYW5kZXJzIGlzdCBhbHMgaGllci4gKnNldWZ6KgoraW5jb25zaXN0ZW50X21vdmVfcHJvdG95cF9lcnJvcgorI2VuZGlmCitwdWJsaWMgdmFyYXJncyBpbnQgbW92ZSggb2JqZWN0fHN0cmluZyBkZXN0LCBpbnQgbWV0aG9kcywgc3RyaW5nIGRpcmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgdGV4dG91dCwgc3RyaW5nIHRleHRpbiApOworcHVibGljIHZhcmFyZ3MgaW50IHJlbW92ZShpbnQgc2lsZW50KTsKKworLy8gaW50ZXJuYWwKK3B1YmxpYyB2b2lkIF9TZXRQdXJzdWVkKG9iamVjdCBvYik7CitwdWJsaWMgdm9pZCBfUmVtb3ZlUHVyc3VlZChvYmplY3Qgb2IpOworCisKKyNlbmRpZiAvLyBfX0xJVklOR19NT1ZJTkdfSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPVFlQRVMKKwpkaWZmIC0tZ2l0IGEvc3lzL2xpdmluZy9wdXRfYW5kX2dldC5oIGIvc3lzL2xpdmluZy9wdXRfYW5kX2dldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMmFkMjMKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbGl2aW5nL3B1dF9hbmRfZ2V0LmgKQEAgLTAsMCArMSwzNyBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIGxpdmluZy9wdXRfYW5kX2dldC5oIC0tIGxpdmluZyBwdXQgYW5kIGdldCBoZWFkZXIKKy8vCisvLyAkSWQ6IHB1dF9hbmRfZ2V0LmggNjkzMCAyMDA4LTA4LTA5IDA5OjIwOjE2WiBaZXNzdHJhICQKKyAKKyNpZm5kZWYgX19MSVZJTkdfUFVUX0FORF9HRVRfSF9fCisjZGVmaW5lIF9fTElWSU5HX1BVVF9BTkRfR0VUX0hfXworCisvLyBwcm9wZXJ0aWVzCisjZGVmaW5lIFBfRFJPUF9NU0cgICAgICAgICJkcm9wX21lc3NhZ2UiIAorI2RlZmluZSBQX1BVVF9NU0cgICAgICAgICAicHV0X21lc3NhZ2UiCisjZGVmaW5lIFBfUElDS19NU0cgICAgICAgICJwaWNrX21lc3NhZ2UiCisjZGVmaW5lIFBfR0lWRV9NU0cgICAgICAgICJnaXZlX21lc3NhZ2UiCisjZGVmaW5lIFBfU0hPV19NU0cgICAgICAgICJzaG93X21lc3NhZ2UiCisKKy8vIElmIHlvdSBkb24ndCB3YW50IHB1dF9hbmRfZ2V0IHNlbmQgYSBtZXNzYWdlLCBzZXQgdGhlIHByb3BlcnR5IHRvCisjZGVmaW5lIE5PX1BOR19NU0cgICAgICAgLTEKKworLy8gRm9yIHVzZXIgZGVmaW5lZCBkcm9wIG1lc3NhZ2VzIGxvb2sgZm9yIG1hbiBQX0RST1BfTVNHCisKKyNlbmRpZiAvLyBfX0xJVklOR19QVVRfQU5EX0dFVF9IX18KKworLy8gcHJvdG90eXBlcworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fTElWSU5HX1BVVF9BTkRfR0VUX0hfUFJPVE9fXworI2RlZmluZSBfX0xJVklOR19QVVRfQU5EX0dFVF9IX1BST1RPX18KKworb2JqZWN0ICpmaW5kX29icyhzdHJpbmcgc3RyLCBpbnQgbWV0aCk7CisKK3ZvaWQgYWRkX3B1dF9hbmRfZ2V0X2NvbW1hbmRzKCk7CisKKyNlbmRpZiAvLyBfX0xJVklOR19QVVRfQU5EX0dFVF9IX1BST1RPX18KKworI2VuZGlmCS8vIE5FRURfUFJPVE9ZUEVTCisKZGlmZiAtLWdpdCBhL3N5cy9saXZpbmcvc2tpbGxfYXR0cmlidXRlcy5oIGIvc3lzL2xpdmluZy9za2lsbF9hdHRyaWJ1dGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTM5Y2ExNQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9saXZpbmcvc2tpbGxfYXR0cmlidXRlcy5oCkBAIC0wLDAgKzEsMTAwIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gRmlsZU5hbWUuYyAtLSBCZXNjaHJlaWJ1bmcKKy8vCisvLyAkSWQkCisKKyNpZm5kZWYgX19TS0lMTF9BVFRSSUJVVEVTX0hfXworI2RlZmluZSBfX1NLSUxMX0FUVFJJQlVURVNfSF9fCisKKy8vID09PT09IFByb3BlcnRpZXMgZnVlciBTa2lsbC1BdHRyaWJ1dGU6ID09PT09CisKKyNkZWZpbmUgUF9TS0lMTF9BVFRSSUJVVEVTICAgICAgICAgICJza2lsbF9hdHRyIgorI2RlZmluZSBQX1NLSUxMX0FUVFJJQlVURV9PRkZTRVRTICAgInNraWxsX2F0dHJfb2Zmc2V0cyIKKworLy8gPT09PT0gU2tpbGwgQXR0cmlidXRlOiA9PT09PSAgCisvLyBBbGxnZW1laW5lIFF1YWxpdGFldAorI2RlZmluZSBTQV9RVUFMSVRZICAgICAgICAgICAgICAgICAgInNhX3F1YWwiCisgIAorLy8gU2NoYWRlbgorI2RlZmluZSBTQV9EQU1BR0UgICAgICAgICAgICAgICAgICAgInNhX2RhbSIKKyAgCisvLyBHZXNjaHdpbmRpZ2tlaXQKKyNkZWZpbmUgU0FfU1BFRUQgICAgICAgICAgICAgICAgICAgICJzYV9zcGVlZCIKKworLy8gRGF1ZXIKKyNkZWZpbmUgU0FfRFVSQVRJT04gICAgICAgICAgICAgICAgICJzYV9kdXIiCisKKy8vIEF1c2RlaG51bmcKKyNkZWZpbmUgU0FfRVhURU5TSU9OICAgICAgICAgICAgICAgICJzYV9leHQiCisKKy8vIFJlaWNod2VpdGUKKyNkZWZpbmUgU0FfUkFOR0UgICAgICAgICAgICAgICAgICAgICJzYV9yYW5nZSIKKworLy8gSmUgaG9laGVyLCBkZXN0byBncm9lc3NlciBkaWUgQ2hhbmNlLCBkYXNzIG5lbiB2b20gTGViZXdlc2VuIGdlY2FzdGV0ZXIKKy8vIFNwZWxsIGR1cmNoIGRhcyBnZWduZXJpc2NoZSBQX05PTUFHSUMgZHVyY2hzY2hsYWVndC4KKy8vIChTQV9FTkVNWV9TQVZFIG9ic29sZXQhKQorI2RlZmluZSBTQV9FTkVNWV9TQVZFICAgICAgICAgICAgICAgInNhX3NhdmUiCisjZGVmaW5lIFNBX1NQRUxMX1BFTkVUUkFUSU9OICAgICAgICAic2Ffc2F2ZSIKKworLy8gd2VsY2hlIFNraWxsLUF0dHJpYnV0ZSBnaWJ0IGVzPworI2RlZmluZSBWQUxJRF9TS0lMTF9BVFRSSUJVVEVTICh7IFNBX1FVQUxJVFksIFNBX0RBTUFHRSwgU0FfU1BFRUQsXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNBX0RVUkFUSU9OLCBTQV9FWFRFTlNJT04sIFNBX1JBTkdFLFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQV9FTkVNWV9TQVZFIH0pCisKKy8vIEluZGl6ZXMgZnVlciBkaWUgVmVyd2FsdHVuZyBkZXIgU2tpbGwtQXR0cmlidXRlCisjZGVmaW5lIFNBTV9DQUNIRSAgICAgICAgICAgICAgMAorI2RlZmluZSBTQU1fU1RBVElDICAgICAgICAgICAgIDEKKyNkZWZpbmUgU0FNX0RZTkFNSUMgICAgICAgICAgICAyCisKKyNkZWZpbmUgU0FNX1NVTSAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNBTV9DQUNIRV9USU1FT1VUICAgICAgMQorI2RlZmluZSBTQU1fQ09VTlQgICAgICAgICAgICAgIDIKKworI2RlZmluZSBTQU1fRFVSQVRJT04gICAgICAgICAgIDAKKyNkZWZpbmUgU0FNX1ZBTFVFICAgICAgICAgICAgICAxCisKKworLy8gZWluaWdlIEtvbnN0YW50ZW4KKyNkZWZpbmUgU0FNX01BWF9NT0RTICAgICAgICAgICA1CisjZGVmaW5lIFNBTV9NQVhfQ0FDSEVfVElNRU9VVCAgNjAKKworLy8gcnVlY2tnYWJld2VydGUgZGVyIFZlcndhbHR1bmdzZnVua3Rpb25lbjoKKyNkZWZpbmUgU0FfTU9EX09LICAgICAgICAgICAgICAxCisjZGVmaW5lIFNBX01PRF9SRU1PVkVEICAgICAgICAgMQorI2RlZmluZSBTQV9UT09fTUFOWV9NT0RTICAgICAgIC0xCisjZGVmaW5lIFNBX01PRF9UT09fU01BTEwgICAgICAgLTIKKyNkZWZpbmUgU0FfTU9EX1RPT19CSUcgICAgICAgICAtMworI2RlZmluZSBTQV9NT0RfSU5WQUxJRF9BVFRSICAgIC00CisjZGVmaW5lIFNBX01PRF9JTlZBTElEX09CSkVDVCAgLTUKKyNkZWZpbmUgU0FfTU9EX05PVF9GT1VORCAgICAgICAtNgorI2RlZmluZSBTQV9NT0RfSU5WQUxJRF9WQUxVRSAgIC03CisKKy8vIFN0YXRpc3Rpaz8KKyNkZWZpbmUgU0FTVEFURCAiL3AvZGFlbW9uL3Nhc3RhdGQiCisKKyNlbmRpZiAvLyBfX1NLSUxMX0FUVFJJQlVURVNfSF9fCisKKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fU0tJTExfQVRUUklCVVRFU19IX1BST1RPX18KKyNkZWZpbmUgX19TS0lMTF9BVFRSSUJVVEVTX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCisKK3B1YmxpYyBpbnQgICAgTW9kaWZ5U2tpbGxBdHRyaWJ1dGUoc3RyaW5nIGF0cm5hbWUsIG1peGVkIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1cmF0aW9uKTsKK3B1YmxpYyBpbnQgICAgUmVtb3ZlU2tpbGxBdHRyaWJ1dGVNb2RpZmllcihvYmplY3QgY2FzdGVyLCBzdHJpbmcgYXR0cm5hbWUpOworcHVibGljIGludCAgICBRdWVyeVNraWxsQXR0cmlidXRlKHN0cmluZyBhdHRyKTsKK3B1YmxpYyB2YXJhcmdzIG1hcHBpbmcgUXVlcnlTa2lsbEF0dHJpYnV0ZU1vZGlmaWVyKG9iamVjdCBjYXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgKmF0dHIpOworCisvLyBLb21wYXRpYmlsaXRhZXRzZnVua3Rpb24gbWl0IGFsdGVtIEludGVyZmFjZS4KK3B1YmxpYyBpbnQgICAgTW9kaWZ5U2tpbGxBdHRyaWJ1dGVPbGQob2JqZWN0IGNhc3Rlciwgc3RyaW5nIGF0cm5hbWUsIGludCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1cmF0aW9uLCBtaXhlZCBmdW4pOworCisjZW5kaWYgLy8gX19TS0lMTF9BVFRSSUJVVEVTX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1lQRVMKKwpkaWZmIC0tZ2l0IGEvc3lzL2xpdmluZy9za2lsbHMuaCBiL3N5cy9saXZpbmcvc2tpbGxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWYyNTcyYwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9saXZpbmcvc2tpbGxzLmgKQEAgLTAsMCArMSwzMyBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHNraWxscy5oIC0tIERlZmluZXMgYW5kIHByb3RvdHlwZXMgZm9yIC9zdGQvbGl2aW5nL3NraWxscy5jCisvLworLy8gJElkOiBza2lsbHMuaCA4Njk0IDIwMTQtMDItMjAgMjM6MDY6NTBaIFplc3N0cmEgJAorCisjaWZuZGVmIF9MSVZJTkdfU0tJTExTX0hfCisjZGVmaW5lIF9MSVZJTkdfU0tJTExTX0hfCisKKyNlbmRpZiAvLyBfTElWSU5HX1NLSUxMU19IXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9MSVZJTkdfU0tJTExTX0hfUFJPVE9fCisjZGVmaW5lIF9MSVZJTkdfU0tJTExTX0hfUFJPVE9fCitwdWJsaWMgICAgdmFyYXJncyBpbnQgICAgIFVzZVNwZWxsKHN0cmluZyBzdHIsIHN0cmluZyBzcGVsbCk7CisKK3B1YmxpYyAgICB2YXJhcmdzIG1hcHBpbmcgUXVlcnlTa2lsbChzdHJpbmcgc25hbWUsIHN0cmluZyBnaWxkZSk7CitwdWJsaWMgICAgdmFyYXJncyBpbnQgICAgIFF1ZXJ5U2tpbGxBYmlsaXR5KG1peGVkIHNuYW1lLCBtaXhlZCBhcmdsKTsKKworcHJvdGVjdGVkIHZhcmFyZ3MgbWl4ZWQgICBMaW1pdEFiaWxpdHkobWl4ZWQgc2luZm8sIGludCBkaWZmKTsKK3B1YmxpYyAgICB2YXJhcmdzIG1peGVkICAgVXNlU2tpbGwoc3RyaW5nIHNraWxsLCBtYXBwaW5nIGFyZ3MpOworCitwdWJsaWMgICAgdmFyYXJncyB2b2lkICAgIExlYXJuU2tpbGwoc3RyaW5nIHNuYW1lLCBpbnQgYWRkLCBpbnQgZGlmZik7CitwdWJsaWMgICAgdmFyYXJncyB2b2lkICAgIE1vZGlmeVNraWxsKHN0cmluZyBzbmFtZSwgbWl4ZWQgdmFsLCBpbnQgZGlmZiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBnaWxkZSk7CitwdWJsaWMgICAgdmFyYXJncyBpbnQgICAgIFNldFNwZWxsRmF0aWd1ZShpbnQgZHVyYXRpb24sIHN0cmluZyBrZXkpOworcHVibGljICAgIHZhcmFyZ3MgaW50ICAgICBDaGVja1NwZWxsRmF0aWd1ZShzdHJpbmcga2V5KTsKK3B1YmxpYyAgICAgICAgICAgIHZvaWQgICAgRGVsZXRlU3BlbGxGYXRpZ3VlKHN0cmluZyBrZXkpOworCisjZW5kaWYgLy8gX0xJVklOR19TS0lMTFNfSF9QUk9UT18KKworI2VuZGlmIC8vIE5FRURfUFJPVE9UWVBFUworCmRpZmYgLS1naXQgYS9zeXMvbGl2aW5nL3RlYW0uaCBiL3N5cy9saXZpbmcvdGVhbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MmUwYzMKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbGl2aW5nL3RlYW0uaApAQCAtMCwwICsxLDUwIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gbGl2aW5nL3RlYW0uaCAtLSB0ZWFtIGhlYWRlcgorLy8KKy8vICRJZDogdGVhbS5oIDg0NDkgMjAxMy0wMy0wNCAyMTowNjozOFogWmVzc3RyYSAkCisKKyNpZm5kZWYgX19MSVZJTkdfVEVBTV9IX18KKyNkZWZpbmUgX19MSVZJTkdfVEVBTV9IX18KKworI2RlZmluZSBQX1RFQU0gICAgICAgICAgICAgICAgICAgICJ0ZWFtIgorI2RlZmluZSBQX1RFQU1fTkVXTUVNQkVSICAgICAgICAgICJwb3RlbnRpYWxfdGVhbV9tZW1iZXIiCisjZGVmaW5lIFBfVEVBTV9BVFRBQ0tfQ01EICAgICAgICAgInRlYW1fYXR0YWNrX2NtZCIKKyNkZWZpbmUgUF9URUFNX0FVVE9GT0xMT1cgICAgICAgICAidGVhbV9hdXRvZm9sbG93IgorI2RlZmluZSBQX1RFQU1fV0FOVEVEX1JPVyAgICAgICAgICJ0ZWFtX3dhbnRlZF9yb3ciCisjZGVmaW5lIFBfVEVBTV9XSU1QWV9ST1cgICAgICAgICAgInRlYW1fd2ltcHlfcm93IgorI2RlZmluZSBQX1RFQU1fTEVBREVSICAgICAgICAgICAgICJ0ZWFtX2xlYWRlciIKKyNkZWZpbmUgUF9URUFNX0FTU09DX01FTUJFUlMgICAgICAidGVhbV9hc3NvY19tZW1iZXJzIgorI2RlZmluZSBQX1RFQU1fQ09MT1JTICAgICAgICAgICAgICJ0ZWFtX2NvbG9ycyIKKworI2RlZmluZSBURUFNX09CSkVDVCAiL29iai90ZWFtIgorI2RlZmluZSBURUFNX01BU1RFUiAiL3AvZGFlbW9uL3RlYW1tYXN0ZXIiCisjZGVmaW5lIEVNUFRZX1RFQU1BUlJBWSAoeyh7fSksKHt9KSwoe30pLCh7fSksKHt9KX0pCisjZGVmaW5lIE1BWF9URUFNUk9XUyA1CisjZGVmaW5lIE1BWF9URUFNX1JPV0xFTiA2CisjZGVmaW5lIE1BWF9URUFNX01FTUJFUlMgMTIKKworI2VuZGlmIC8vIF9fTElWSU5HX1RFQU1fSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKyNpZm5kZWYgX19MSVZJTkdfVEVBTV9IX1BST1RPX18KKyNkZWZpbmUgX19MSVZJTkdfVEVBTV9IX1BST1RPX18KKworc3RyaW5nIFRlYW1QcmVmaXgoKTsKK29iamVjdCBJc1RlYW1MZWFkZXIoKTsKK29iamVjdCBJc1RlYW1Nb3ZlKCk7CitvYmplY3QgKlRlYW1NZW1iZXJzKCk7Cit2YXJhcmdzIGludCBQcmVzZW50UG9zaXRpb24obWl4ZWQgcG1hcCk7Cit2YXJhcmdzIG1hcHBpbmcgUHJlc2VudFRlYW1Qb3NpdGlvbnMobWl4ZWQgcHJlc19yb3dzKTsKK21peGVkICpQcmVzZW50VGVhbVJvd3MoKTsKK3ZhcmFyZ3MgbWl4ZWQgKlByZXNlbnRFbmVteVJvd3Mob2JqZWN0ICpoZXJlKTsKK3ZhcmFyZ3Mgb2JqZWN0IFNlbGVjdE5lYXJFbmVteShvYmplY3QgKmhlcmUsIGludCBmb3JjZWZyb20pOwordmFyYXJncyBvYmplY3QgU2VsZWN0RmFyRW5lbXkob2JqZWN0ICpoZXJlLCBpbnQgbWluLCBpbnQgbWF4LCBpbnQgZm9yY2Vmcm9tKTsKK3ZhcmFyZ3Mgdm9pZCBJbnNlcnRFbmVteVRlYW0obWl4ZWQgZW5zLCBpbnQgcmVrKTsKK2ludCBBc3NvY01lbWJlcihvYmplY3QgbnBjKTsKK2ludCBEZUFzc29jTWVtYmVyKG9iamVjdCBucGMpOworaW50IFRlYW1GbGVlKCk7Cit2YXJhcmdzIHZvaWQgSW5mb3JtUm93Q2hhbmdlKGludCBmcm9tLCBpbnQgdG8sIG9iamVjdCBjYXN0ZXIpOworIAorI2VuZGlmIC8vIF9fTElWSU5HX1RFQU1fSF9QUk9UT19fCisjZW5kaWYgLy8gLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy9sb2dnaW5nLmggYi9zeXMvbG9nZ2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZDRhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbG9nZ2luZy5oCkBAIC0wLDAgKzEsMzEgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBsb2dnaW5nLmgKKy8vCisvLyAkSWQ6IGxvZ2dpbmcuaCA3MTE2IDIwMDktMDItMDYgMjE6NDk6NDJaIFplc3N0cmEgJAorCisjaWZuZGVmIF9fTE9HR0lOR19IX18KKyNkZWZpbmUgX19MT0dHSU5HX0hfXworCisjZGVmaW5lIFNZU0xPR1BBVEggICAgInN5c2xvZy8iCisjZGVmaW5lIFNZU0xPRyh4KSAgICAgKFNZU0xPR1BBVEgreCkKKworI2RlZmluZSBTSEVMTExPR1BBVEggIFNZU0xPRygic2hlbGwvIikKKyNkZWZpbmUgU0hFTExMT0coeCkgICAoU0hFTExMT0dQQVRIK3gpCisKKyNkZWZpbmUgREFFTU9OTE9HUEFUSCBTWVNMT0coImRhZW1vbi8iKQorI2RlZmluZSBEQUVNT05MT0coeCkgIChEQUVNT05MT0dQQVRIK3gpCisKKyNkZWZpbmUgSU5URVJNVURMT0dQQVRIIFNZU0xPRygiaW50ZXJtdWQvIikKKyNkZWZpbmUgSU5URVJNVURMT0coeCkgKElOVEVSTVVETE9HUEFUSCt4KQorCisjZGVmaW5lIEdVSUxETE9HUEFUSCAgImdpbGRlbi8iCisjZGVmaW5lIEdVSUxETE9HKHgpICAgKEdVSUxETE9HUEFUSCt4KQorCisjZGVmaW5lIFJFUEZJTEVQQVRIICAgInJlcG9ydC8iCisjZGVmaW5lIFJFUEZJTEUoeCkgICAgKFJFUEZJTEVQQVRIK3gpCisKKyNkZWZpbmUgRVJST1JMT0dQQVRIICAiZXJyb3IvIgorI2RlZmluZSBFUlJPUkxPRyh4KSAgIChFUlJPUkxPR1BBVEgreCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvbHBjdHlwZXMuaCBiL3N5cy9scGN0eXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxODdkNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbHBjdHlwZXMuaApAQCAtMCwwICsxLDY0IEBACisjaWZuZGVmIExQQ19MUENUWVBFU19ICisjZGVmaW5lIExQQ19MUENUWVBFU19ICisKKy8qIGNvbXBpbGUgdGltZSB0eXBlcywgZnJvbSBmdW5jdGlvbmxpc3QoKSAqLworCisjZGVmaW5lIFRZUEVfVU5LTk9XTiAgICAwICAgICAgIC8qIFRoaXMgdHlwZSBtdXN0IGJlIGNhc3RlZCAqLworI2RlZmluZSBUWVBFX05VTUJFUiAgICAgMQorI2RlZmluZSBUWVBFX1NUUklORyAgICAgMgorI2RlZmluZSBUWVBFX1ZPSUQgICAgICAgMworI2RlZmluZSBUWVBFX09CSkVDVCAgICAgNAorI2RlZmluZSBUWVBFX01BUFBJTkcgICAgNQorI2RlZmluZSBUWVBFX0ZMT0FUICAgICAgNgorI2RlZmluZSBUWVBFX0FOWSAgICAgICAgNyAgICAgICAvKiBXaWxsIG1hdGNoIGFueSB0eXBlICovCisjZGVmaW5lIFRZUEVfQ0xPU1VSRSAgICA4CisjZGVmaW5lIFRZUEVfU1lNQk9MICAgICA5CisjZGVmaW5lIFRZUEVfUVVPVEVEX0FSUkFZIDEwCisjZGVmaW5lIFRZUEVfU1RSVUNUICAgICAxMQorCisjZGVmaW5lIFRZUEVfTU9EX1BPSU5URVIgICAgICAgIDB4MDA0MCAgLyogUG9pbnRlciB0byBhIGJhc2ljIHR5cGUgICAgICAgICovCisKKy8qIHJ1bnRpbWUgdHlwZXMsIGZyb20gdHlwZW9mKCkgKi8KKworI2RlZmluZSBUX0lOVkFMSUQgICAgICAgMHgwCisjZGVmaW5lIFRfTFZBTFVFICAgICAgICAweDEKKyNkZWZpbmUgVF9OVU1CRVIgICAgICAgIDB4MgorI2RlZmluZSBUX1NUUklORyAgICAgICAgMHgzCisjZGVmaW5lIFRfUE9JTlRFUiAgICAgICAweDQKKyNkZWZpbmUgVF9PQkpFQ1QgICAgICAgIDB4NQorI2RlZmluZSBUX01BUFBJTkcgICAgICAgMHg2CisjZGVmaW5lIFRfRkxPQVQgICAgICAgICAweDcKKyNkZWZpbmUgVF9DTE9TVVJFICAgICAgIDB4OAorI2RlZmluZSBUX1NZTUJPTCAgICAgICAgMHg5CisjZGVmaW5lIFRfUVVPVEVEX0FSUkFZICAweGEKKyNkZWZpbmUgVF9TVFJVQ1QgICAgICAgIDB4YgorCisvKiBDbG9zdXJlIHR5cGVzLCBzdG9yZWQgYXMgc2Vjb25kYXJ5IHR5cGUgaW5mbyAqLworCisjaWZuZGVmIF9fRFJJVkVSX1NPVVJDRV9fCisKKyNkZWZpbmUgQ0xPU1VSRV9MRlVOICAgICAgICAgICAgMCAgLyogbGZ1biBpbiBhbiBvYmplY3QgKi8KKyAgLyogQ29kZSAxOiBjdXJyZW50bHkgdW51c2VkLCB1c2VkIHRvIGJlIENMT1NVUkVfQUxJRU5fTEZVTiAqLworI2RlZmluZSBDTE9TVVJFX0lERU5USUZJRVIgICAgICAyICAvKiB2YXJpYWJsZSBpbiB0aGlzIG9iamVjdCAqLworI2RlZmluZSBDTE9TVVJFX1BSRUxJTUlOQVJZICAgICAzCisgICAgLyogRWZ1biBjbG9zdXJlIHVzZWQgaW4gYSBzdGF0aWMgaW5pdGlhbGl6YXRpb24gKi8KKyNkZWZpbmUgQ0xPU1VSRV9CT1VORF9MQU1CREEgICAgNCAgLyogQm91bmQgdW5ib3VuZC1sYW1iZGEgY2xvc3VyZSAqLworI2RlZmluZSBDTE9TVVJFX0xBTUJEQSAgICAgICAgICA1ICAvKiBub3JtYWwgbGFtYmRhIGNsb3N1cmUgKi8KKyNkZWZpbmUgQ0xPU1VSRV9VTkJPVU5EX0xBTUJEQSAgNiAgLyogdW5ib3VuZCBsYW1iZGEgY2xvc3VyZS4gKi8KKworI2RlZmluZSBDTE9TVVJFX09QRVJBVE9SICAgICAgICAoMHhlODAwKQorI2RlZmluZSBDTE9TVVJFX0VGVU4gICAgICAgICAgICAoMHhmMDAwKQorI2RlZmluZSBDTE9TVVJFX1NJTVVMX0VGVU4gICAgICAoMHhmODAwKQorCisjZGVmaW5lIENMT1NVUkVfSVNfTEZVTih4KQkJKCgoeCkmfjEpID09IDApCisjZGVmaW5lIENMT1NVUkVfSVNfSURFTlRJRklFUih4KQkoKHgpID09IENMT1NVUkVfSURFTlRJRklFUikKKyNkZWZpbmUgQ0xPU1VSRV9JU19CT1VORF9MQU1CREEoeCkJKCh4KSA9PSBDTE9TVVJFX0JPVU5EX0xBTUJEQSkKKyNkZWZpbmUgQ0xPU1VSRV9JU19MQU1CREEoeCkJCSgoeCkgPT0gQ0xPU1VSRV9MQU1CREEpCisjZGVmaW5lIENMT1NVUkVfSVNfVU5CT1VORF9MQU1CREEoeCkJKCh4KSA9PSBDTE9TVVJFX1VOQk9VTkRfTEFNQkRBKQorI2RlZmluZSBDTE9TVVJFX0lTX1NJTVVMX0VGVU4oeCkgKCgoeCkgJiAweGY4MDApID09IENMT1NVUkVfU0lNVUxfRUZVTikKKyNkZWZpbmUgQ0xPU1VSRV9JU19FRlVOKHgpCSAoKCh4KSAmIDB4ZjgwMCkgPT0gQ0xPU1VSRV9FRlVOKQorI2RlZmluZSBDTE9TVVJFX0lTX09QRVJBVE9SKHgpCSAoKCh4KSAmIDB4ZjgwMCkgPT0gQ0xPU1VSRV9PUEVSQVRPUikKKworI2VuZGlmIC8qIF9fRFJJVkVSX1NPVVJDRV9fICovCisKKyNlbmRpZiAvKiBMUENfTFBDVFlQRVNfSCAqLwpkaWZmIC0tZ2l0IGEvc3lzL21hZ2llci5oIGIvc3lzL21hZ2llci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzY2Q5OGYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbWFnaWVyLmgKQEAgLTAsMCArMSwyMjUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBtYWdpZXIuaCAtLSBNYWdpZXJlcndlaXRlcnVuZyBkZXIgU2hlbGwKKy8vCisvLyAkSWQ6IG1hZ2llci5oIDk1NTMgMjAxNi0wNS0wMyAyMDoyMjo0N1ogWmVzc3RyYSAkCisKKyNpZm5kZWYgX01BR0lFUl9IXworI2RlZmluZSBfTUFHSUVSX0hfCisKKyNkZWZpbmUgU0hFTExERUJVR0dFUiAiemVzc3RyYSIKKworI2RlZmluZSBNQVhfQVJSQVlfU0laRSAgIDMwMDAgLy8gTVVTUyBFSUdFTlRMSUNIIE5BQ0ggL3N5cy9jb25maWcuaCBvZGVyIHNvCisKKyNkZWZpbmUgRVJST1IobXNnLCBhcmcsIHJlcykgICAocHJpbnRmKG1zZywgYXJnKSxyZXMpCisKKyNkZWZpbmUgTk9fUkVBRCAgICAgICAgICIlczogS2VpbmUgTGVzZXJlY2h0ZSFcbiIKKyNkZWZpbmUgTk9fV1JJVEUgICAgICAgICIlczogS2VpbmUgU2NocmVpYnJlY2h0ZSFcbiIKKyNkZWZpbmUgRE9FU05UX0VYSVNUICAgICIlczogRGF0ZWkgZXhpc3RpZXJ0IG5pY2h0IVxuIgorI2RlZmluZSBBTFJFQURZX0VYSVNUUyAgIiVzOiBEYXRlaSBleGlzdGllcnQgc2Nob24uXG4iCisjZGVmaW5lIE5PX0RJUlMgICAgICAgICAgIiVzIGlzdCBlaW4gVmVyemVpY2huaXMuXG4iCisjZGVmaW5lIFNBTUVfRklMRSAgICAgICAgIiVzOiBHbGVpY2hlcyBRdWVsbC0gdW5kIFppZWxmaWxlOiB1ZWJlcmdhbmdlbi5cbiIKKyNkZWZpbmUgTk9fQ1JFQVRFX0RJUiAgICIlczogVmVyemVpY2huaXMga29ubnRlIG5pY2h0IGVyc3RlbGx0IHdlcmRlbi5cbiIKKyNkZWZpbmUgREVTVF9JU19ESVIgICAgICIlczogWmllbGRhdGVpIGlzdCBlaW4gVmVyemVpY2huaXMuXG4iCisjZGVmaW5lIERFU1RfTk9fREVMRVRFICAiJXM6IFppZWxkYXRlaSBrb25udGUgbmljaHQgZ2Vsb2VzY2h0IHdlcmRlbi5cbiIKKyNkZWZpbmUgTk9fTU9WRSAgICAgICAgICIlczogRGF0ZWkga29ubnRlIG5pY2h0IHZlcnNjaG9iZW4gd2VyZGVuLlxuIgorI2RlZmluZSBOT19DT1BZICAgICAgICAgIiVzOiBEYXRlaSBrb25udGUgbmljaHQga29waWVydCB3ZXJkZW4uXG4iCisjZGVmaW5lIEZJTEVfQ09QSUVEICAgICAiJXM6IGtvcGllcnQuXG4iCisjZGVmaW5lIERJUl9DUkVBVEVEICAgICAiJXM6IFZlcnplaWNobmlzIGVyemV1Z3QuXG4iCisjZGVmaW5lIEZJTEVfTU9WRUQgICAgICAiJXM6IHZlcnNjaG9iZW4uXG4iCisjZGVmaW5lIEZJTEVfREVMRVRFRCAgICAiJXMgd3VyZGUgZ2Vsb2VzY2h0LlxuIgorI2RlZmluZSBOT19ERUxFVEUgICAgICAgIiVzIGtvbm50ZSBuaWNodCBnZWxvZXNjaHQgd2VyZGVuLlxuIgorCisjZGVmaW5lIE1BWV9SRUFEKHgpICAgY2FsbF9vdGhlcihfX01BU1RFUl9PQkpFQ1RfXywidmFsaWRfcmVhZCIseCxnZXR1aWQodGhpc19vYmplY3QoKSkpCisjZGVmaW5lIE1BWV9XUklURSh4KSAgY2FsbF9vdGhlcihfX01BU1RFUl9PQkpFQ1RfXywidmFsaWRfd3JpdGUiLHgsZ2V0dWlkKHRoaXNfb2JqZWN0KCkpKQorI2RlZmluZSBNQVlfREVMRVRFKHgpIGNhbGxfb3RoZXIoX19NQVNURVJfT0JKRUNUX18sInJlbW92ZV9maWxlIix4LGdldHVpZCh0aGlzX29iamVjdCgpKSkKKworI2RlZmluZSBNQVhMRU4gIDUwMDAwCisKKyNkZWZpbmUgUF9WQVJJQUJMRVMgInZhcmlhYmxlcyIKKworI2RlZmluZSBNQU5fT1BUUyAgICJtcmkiCisjZGVmaW5lIE1BTl9NICAgICAgICAgICAgMSAgICAgICAgICAgLy8gTWF0Y2hlbiBkZXMgQmVncmlmZnMKKyNkZWZpbmUgTUFOX1IgICAgICAgICAgICAyICAgICAgICAgICAvLyBSZWdleHAtTWF0Y2hlbgorI2RlZmluZSBNQU5fSSAgICAgICAgICAgIDQgICAgICAgICAgIC8vIEludGVyYWt0aXZlIEhpbGZlIChkZWFrdGl2aWVydCkKKworI2RlZmluZSBNS0RJUl9PUFRTICJ2cnAiCisjZGVmaW5lIE1LRElSX1YgICAgICAgICAgMSAgICAgICAgICAgLy8gVmVyYm9zZTogQXVzZ2ViZW4sIHdhcyBnZW1hY2h0IHdpcmQKKyNkZWZpbmUgTUtESVJfUiAgICAgICAgICAyICAgICAgICAgICAvLyBSZWt1cnNpdiBhbGxlIGhvZWhlcmVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVmVyemVpY2huaXNzZSBlcnN0ZWxsZW4KKyNkZWZpbmUgTUtESVJfUCAgICAgICAgICAyICAgICAgICAgICAvLyBkYXMgZ2xlaWNoZSB3aWUgTUtESVJfUgorCisjZGVmaW5lIFJNRElSX09QVFMgInYiCisjZGVmaW5lIFJNRElSX1YgICAgICAgICAgMSAgICAgICAgICAgLy8gVmVyYm9zZTogQXVzZ2ViZW4sIHdhcyBnZW1hY2h0IHdpcmQKKworI2RlZmluZSBSTV9PUFRTICAgInZybWkiCisjZGVmaW5lIFJNX1YgICAgICAgICAgICAxICAgICAgICAgICAgLy8gVmVyYm9zZTogQXVzZ2ViZW4sIHdhcyBnZW1hY2h0IHdpcmQKKyNkZWZpbmUgUk1fUiAgICAgICAgICAgIDIgICAgICAgICAgICAvLyBWZXJ6ZWljaG5pc3NlIHJla3Vyc2l2IGxvZXNjaGVuCisjZGVmaW5lIFJNX00gICAgICAgICAgICA0ICAgICAgICAgICAgLy8gRGF0ZWlNQVNLRSBiZWFjaHRlbgorI2RlZmluZSBSTV9JICAgICAgICAgICAgOCAgICAgICAgICAgIC8vIEludGVyYWt0aXYgbG9lc2NoZW4gKGltbWVyIGZyYWdlbikKKworI2RlZmluZSBVUERfT1BUUyAgImFmaWxybWJ2Y2Roc0MiCisjZGVmaW5lIFVQRF9BICAgICAgICAgICAgMSAgICAgICAgICAgLy8gQWxsZSBJbnN0YW56ZW4gYmVhcmJlaXRlbgorI2RlZmluZSBVUERfRiAgICAgICAgICAgIDIgICAgICAgICAgIC8vIEFsbGUgSW5zdGFuemVuIGZpbmRlbiB1bmQgYW56ZWlnZW4KKyNkZWZpbmUgVVBEX0kgICAgICAgICAgICA0ICAgICAgICAgICAvLyBHZWVyYnRlIEtsYXNzZW4gYWt0dWFsaXNpZXJlbgorI2RlZmluZSBVUERfTCAgICAgICAgICAgIDggICAgICAgICAgIC8vIHplcnN0b2VyZW4gdW5kIG5ldSBsYWRlbgorI2RlZmluZSBVUERfUiAgICAgICAgICAgMTYgICAgICAgICAgIC8vIG5ldSBsYWRlbiwgZmFsbHMgemVyc3RvZXJ0CisjZGVmaW5lIFVQRF9NICAgICAgICAgICAzMiAgICAgICAgICAgLy8gYWxsZSBnZWVyYnRlbiBLbGFzc2VuIGF1ZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFrdHVhbGl0YWV0IFRlc3RlbiB1bmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnZ2YuIGFrdHVhbGlzaWVyZW4KKyNkZWZpbmUgVVBEX0IgICAgICAgICAgIDY0ICAgICAgICAgICAvLyBCYWNrdHJhY2UgYmVpIEZlaGxlcm4KKyNkZWZpbmUgVVBEX1YgICAgICAgICAgMTI4ICAgICAgICAgICAvLyBFcmJzY2hhZnRzbGlzdGVuIG1pdCBhdXNnZWJlbgorI2RlZmluZSBVUERfQyAgICAgICAgICAyNTYgICAgICAgICAgIC8vIFByb3BlcnRpZXMgZXJoYWx0ZW4KKyNkZWZpbmUgVVBEX0QgICAgICAgICAgNTEyICAgICAgICAgICAvLyBPYmpla3RpbmhhbHQga29tcGxldHQgZGVzdHJ1Y3RlbgorI2RlZmluZSBVUERfSCAgICAgICAgIDEwMjQgICAgICAgICAgIC8vIEhhcmQtRGVzdHJ1Y3QgKGtlaW4gcmVtb3ZlKCkpCisjZGVmaW5lIFVQRF9TICAgICAgICAgMjA0OCAgICAgICAgICAgLy8gU2lsZW50CisjZGVmaW5lIFVQRF9DT05GICAgICAgNDA5NiAgICAgICAgICAgLy8gQ29uZmlndXJlKCkgZXJ6d2luZ2VuIChkLmguIGtlaW4gVXBkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlbm4gQ29uZmlndXJlKCkgbmljaHQgZGVmaW5pZXJ0IGlzdCkKKyNkZWZpbmUgVVBEX0xPQUQgICAgICA4MTkyICAgICAgICAgICAvLyBsYWRlbiwgZmFsbHMgbmljaHQgZ2VsYWRlbiAobnVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJuIGZ1ZXIgJ2xvYWQpCisKKyNkZWZpbmUgQ1BfT1BUUyAgICAgICAgICJ2cmZtaSIKKyNkZWZpbmUgQ1BfViAgICAgICAgICAgIDEgICAgICAgICAgICAvLyBWZXJib3NlOiBBdXNnZWJlbiwgd2FzIGdlbWFjaHQgd2lyZAorI2RlZmluZSBDUF9SICAgICAgICAgICAgMiAgICAgICAgICAgIC8vIFJla3Vyc2l2IGtvcGllcmVuCisjZGVmaW5lIENQX0YgICAgICAgICAgICA0ICAgICAgICAgICAgLy8gRm9yY2UgKG5pZSBmcmFnZW4pCisjZGVmaW5lIENQX00gICAgICAgICAgICA4ICAgICAgICAgICAgLy8gRGF0ZWlNQVNLRSBiZWFjaHRlbgorI2RlZmluZSBDUF9JICAgICAgICAgICAxNiAgICAgICAgICAgIC8vIEludGVyYWt0aXYga29waWVyZW4gKGltbWVyIGZyYWdlbikKKworI2RlZmluZSBNVl9PUFRTICAgICAgICAgInZyZm1pIgorI2RlZmluZSBNVl9WICAgICAgICAgICAgMSAgICAgICAgICAgIC8vIFZlcmJvc2U6IEF1c2dlYmVuLCB3YXMgZ2VtYWNodCB3aXJkCisjZGVmaW5lIE1WX1IgICAgICAgICAgICAyICAgICAgICAgICAgLy8gSW1tZXIgYXVjaCBEYXRlaWVuIGltIERpciBtb3ZlbgorI2RlZmluZSBNVl9GICAgICAgICAgICAgNCAgICAgICAgICAgIC8vIEZvcmNlIChuaWUgZnJhZ2VuKQorI2RlZmluZSBNVl9NICAgICAgICAgICAgOCAgICAgICAgICAgIC8vIERhdGVpTUFTS0UgYmVhY2h0ZW4KKyNkZWZpbmUgTVZfSSAgICAgICAgICAgMTYgICAgICAgICAgICAvLyBJbnRlcmFrdGl2IGJld2VnZW4gKGltbWVyIGZyYWdlbikKKworI2RlZmluZSBDRF9PUFRTICAgICAgICAgImxzIgorI2RlZmluZSBDRF9MICAgICAgICAgICAgMSAgICAgICAgICAgIC8vIC5yZWFkbWUgYXVzZ2ViZW4KKyNkZWZpbmUgQ0RfUyAgICAgICAgICAgIDIgICAgICAgICAgICAvLyAucmVhZG1lIHVudGVyZHJ1ZWNrZW4KKyNkZWZpbmUgQ0RfQiAgICAgICAgICAgIDQgICAgICAgICAgICAvLyBadXJ1ZWNrIHp1bSBsZXR6dGVuIFZlcnplaWNobmlzCisKKyNkZWZpbmUgTFNfT1BUUyAgICAgICAgICJhbHJ0c3VnIgorI2RlZmluZSBMU19BICAgICAgICAgICAgMSAgICAgICAgICAgIC8vIEFMTEUgRmlsZXMgYW56ZWlnZW4KKyNkZWZpbmUgTFNfTCAgICAgICAgICAgIDIgICAgICAgICAgICAvLyBMYW5nZSBBdXNnYWJlCisjZGVmaW5lIExTX1IgICAgICAgICAgICA0ICAgICAgICAgICAgLy8gUnVlY2t3YWVydHMgYXVzZ2ViZW4KKyNkZWZpbmUgTFNfVCAgICAgICAgICAgIDggICAgICAgICAgICAvLyBOYWNoIFplaXQgb3JkbmVuCisjZGVmaW5lIExTX1MgICAgICAgICAgICAxNiAgICAgICAgICAgLy8gTmFjaCBHcvbfZSBvcmRuZW4KKyNkZWZpbmUgTFNfVSAgICAgICAgICAgIDMyICAgICAgICAgICAvLyBVSUQgYW56ZWlnZW4KKyNkZWZpbmUgTFNfRyAgICAgICAgICAgIDY0ICAgICAgICAgICAvLyBHcnVwcGUgYW56ZWlnZW4KKworI2RlZmluZSBDTE9ORV9PUFRTICAgICAgImYiCisjZGVmaW5lIENMT05FX0YgICAgICAgICAxICAgICAgICAgICAgLy8gQXVmIGplZGVuIEZhbGwgdmVyc3VjaGVuIHp1IGNsb25lbgorCisjZGVmaW5lIEdSRVBfT1BUUyAgICAgICAiY2hpbG52cm1mIgorI2RlZmluZSBHUkVQX0MgICAgICAgICAgMSAgICAgICAgICAgIC8vIE51ciBaYWhsIGRlciBaZWlsZW4gYXVzZ2ViZW4KKyNkZWZpbmUgR1JFUF9IICAgICAgICAgIDIgICAgICAgICAgICAvLyBEYXRlaW5hbWVuIG5pY2h0IG1pdCBhdXNnZWJlbgorI2RlZmluZSBHUkVQX0kgICAgICAgICAgNCAgICAgICAgICAgIC8vIEdyb3NzLS9LbGVpbnNjaHJlaWJ1bmcgaWdub3JpZXJlbgorI2RlZmluZSBHUkVQX0wgICAgICAgICAgOCAgICAgICAgICAgIC8vIERhdGVpbmFtZW4gaW1tZXIgbWl0IGF1c2dlYmVuCisjZGVmaW5lIEdSRVBfTiAgICAgICAgICAxNiAgICAgICAgICAgLy8gWmVpbGVubnVtbWVybiBtaXQgYXVzZ2ViZW4KKyNkZWZpbmUgR1JFUF9WICAgICAgICAgIDMyICAgICAgICAgICAvLyBOdXIgWmVpbGVuIG1hdGNoZW4sIGRpZSBOSUNIVCBwYXNzZW4KKyNkZWZpbmUgR1JFUF9SICAgICAgICAgIDY0ICAgICAgICAgICAvLyBSZWt1cnNpdiBzdWNoZW4KKyNkZWZpbmUgR1JFUF9NICAgICAgICAgIDEyOCAgICAgICAgICAvLyBEYXRlaW1hc2tlIGFuZ2VnZWJlbgorI2RlZmluZSBHUkVQX0YgICAgICAgICAgMjU2ICAgICAgICAgIC8vIEF1c2dhYmUgaW4gRGF0ZWkKKworI2RlZmluZSBBQ0NFU1NfT1BUUyAgICAgImFybGZnbSIKKyNkZWZpbmUgQUNDRVNTX0EgICAgICAgIDEgICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgaGluenVmdWVnZW4KKyNkZWZpbmUgQUNDRVNTX1IgICAgICAgIDIgICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgZW50ZmVybmVuCisjZGVmaW5lIEFDQ0VTU19MICAgICAgICA0ICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nZW4gYW56ZWlnZW4KKyNkZWZpbmUgQUNDRVNTX0YgICAgICAgIDggICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgZnVlciBEYXRlaWVuIGFuemVpZ2VuCisjZGVmaW5lIEFDQ0VTU19HICAgICAgICAxNiAgICAgICAgICAgLy8gRGFzIGdhbnplIGZ1ZXIgR3J1cHBlbgorI2RlZmluZSBBQ0NFU1NfTSAgICAgICAgMzIgICAgICAgICAgIC8vIERhcyBnYW56ZSBmdWVyIEdydXBwZW5sZWl0ZXIKKworLy8gRnVua3Rpb25pZXJ0IG51ciwgd2VubiBTTk9PUF9MID09IFNGX0xPQ0tFRCB1bmQgU05PT1BfRiA9PSBTRl9GT1JDRQorLy8gKERlZmluaXRpb25lbiBhdXMgL3N5cy9zbm9vcGluZy5oKQorI2RlZmluZSBTTk9PUF9PUFRTICAgICAgImxmIgorI2RlZmluZSBTTk9PUF9MICAgICAgICAgMSAgICAgICAgICAgIC8vIE5pZWRyaWdlciBNYWdpZXIga2FubiBzaWNoIG5pY2h0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF6d2lzY2hlbmtsaW5rZW4KKyNkZWZpbmUgU05PT1BfRiAgICAgICAgIDIgICAgICAgICAgICAvLyBTbm9vcGUgc25vb3BlbmRlbiBNYWdpZXIsIHdlbm4gZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hhcmFrdGVyIHNjaG9uIGdlc25vb3B0IHdpcmQKKworI2RlZmluZSBOT19DSEVDSyAgICAgICAgTV9HT3xNX1NJTEVOVHxNX05PX1NIT1d8TV9OT19BVFRBQ0t8TV9OT0NIRUNLCisKKyNkZWZpbmUgSU5WX1NBVkUgICAgICAgICIvcm9vbS92b2lkLmMiCisKKyNkZWZpbmUgVVNBR0Uoc3RyKSAgICAgIChfbm90aWZ5X2ZhaWwoYnJlYWtfc3RyaW5nKHNwcmludGYoIlN5bnRheDogJXNcbiIsIHN0ciksNzcpKSwgMCkKKworI2RlZmluZSBCQVNFTkFNRSAwCisjZGVmaW5lIEZJTEVTSVpFIDEKKyNkZWZpbmUgRklMRURBVEUgMgorI2RlZmluZSBGVUxMTkFNRSAzCisjZGVmaW5lIFBBVEhOQU1FIDQKKyNkZWZpbmUgREVTVE5BTUUgNQorI2RlZmluZSBTVUJESVJTSVpFIDYKKworI2RlZmluZSBSRVRfT0sgMQorI2RlZmluZSBSRVRfRkFJTCAwCisjZGVmaW5lIFJFVF9KVU1QIC0xCisjZGVmaW5lIFJFVF9ERUxFVEUgLTIKKworI2RlZmluZSBNT0RFX0xTQSAgIDAKKyNkZWZpbmUgTU9ERV9MU0IgICAxCisjZGVmaW5lIE1PREVfQ1AgICAgMgorI2RlZmluZSBNT0RFX01WICAgIDMKKyNkZWZpbmUgTU9ERV9STSAgICA0CisjZGVmaW5lIE1PREVfQ0QgICAgNQorI2RlZmluZSBNT0RFX0NBVCAgIDYKKyNkZWZpbmUgTU9ERV9HUkVQICA3CisjZGVmaW5lIE1PREVfRUQgICAgOAorI2RlZmluZSBNT0RFX1VQRCAgIDkKKyNkZWZpbmUgTU9ERV9NT1JFICAxMAorI2RlZmluZSBNT0RFX1JNRElSIDExCisjZGVmaW5lIE1PREVfQ0xPTkUgMTIKKworI2RlZmluZSBDT0xPUlMgKFsgIm5vbmUiOiBBTlNJX05PUk1BTCwgXAorICAgICAgICAgICAgICAgICAgImJvbGQiOiBBTlNJX0JPTEQsIFwKKyAgICAgICAgICAgICAgICAgICJibGluayI6IEFOU0lfQkxJTkssIFwKKyAgICAgICAgICAgICAgICAgICJpbnZlcnMiOiBBTlNJX0lOVkVSUywgXAorICAgICAgICAgICAgICAgICAgImJsYWNrIjogQU5TSV9CTEFDSywgXAorICAgICAgICAgICAgICAgICAgInJlZCI6IEFOU0lfUkVELCBcCisgICAgICAgICAgICAgICAgICAiZ3JlZW4iOiBBTlNJX0dSRUVOLCBcCisgICAgICAgICAgICAgICAgICAieWVsbG93IjogQU5TSV9ZRUxMT1csIFwKKyAgICAgICAgICAgICAgICAgICJibHVlIjogQU5TSV9CTFVFLCBcCisgICAgICAgICAgICAgICAgICAicHVycGxlIjogQU5TSV9QVVJQTEUsIFwKKyAgICAgICAgICAgICAgICAgICJjeWFuIjogQU5TSV9DWUFOLCBcCisgICAgICAgICAgICAgICAgICAid2hpdGUiOiBBTlNJX1dISVRFLCBcCisgICAgICAgICAgICAgICAgICAiYmJsYWNrIjogQU5TSV9CR19CTEFDSywgXAorICAgICAgICAgICAgICAgICAgImJyZWQiOiBBTlNJX0JHX1JFRCwgXAorICAgICAgICAgICAgICAgICAgImJncmVlbiI6IEFOU0lfQkdfR1JFRU4sIFwKKyAgICAgICAgICAgICAgICAgICJieWVsbG93IjogQU5TSV9CR19ZRUxMT1csIFwKKyAgICAgICAgICAgICAgICAgICJiYmx1ZSI6IEFOU0lfQkdfQkxVRSwgXAorICAgICAgICAgICAgICAgICAgImJwdXJwbGUiOiBBTlNJX0JHX1BVUlBMRSwgXAorICAgICAgICAgICAgICAgICAgImJjeWFuIjogQU5TSV9CR19DWUFOLCBcCisgICAgICAgICAgICAgICAgICAiYndoaXRlIjogQU5TSV9CR19XSElURSwgXAorICAgICAgICAgICAgICAgIF0pCisKKyNkZWZpbmUgVkFMSURfUkVBRF9DTCAgc3ltYm9sX2Z1bmN0aW9uKCJ2YWxpZF9yZWFkIixfX01BU1RFUl9PQkpFQ1RfXykKKyNkZWZpbmUgVkFMSURfV1JJVEVfQ0wgc3ltYm9sX2Z1bmN0aW9uKCJ2YWxpZF93cml0ZSIsX19NQVNURVJfT0JKRUNUX18pCisjZGVmaW5lIENSRUFUT1JfQ0wgIHN5bWJvbF9mdW5jdGlvbigiY3JlYXRvcl9maWxlIixfX01BU1RFUl9PQkpFQ1RfXykKKworI2RlZmluZSBESVIgImRpcmVjdG9yeSIKKyNkZWZpbmUgT0JKICJsb2FkZWQiCisjZGVmaW5lIFZDICAidmlydHVhbCIKKworI2lmZGVmIERFQlVHCisjdW5kZWYgREVCVUcKKyNlbmRpZgorI2RlZmluZSBERUJVRyh4KSBpZiAoZmluZF9wbGF5ZXIoU0hFTExERUJVR0dFUikpIFwKKyAgICAgICAgICAgICAgICAgICAgIHRlbGxfb2JqZWN0KGZpbmRfcGxheWVyKFNIRUxMREVCVUdHRVIpLHgrIlxuIikKKworI2VuZGlmIC8vIF9NQUdJRVJfSF8KKworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9NQUdJRVJfSF9QUk9UT1NfCisjZGVmaW5lIF9NQUdJRVJfSF9QUk9UT1NfCitzdGF0aWMgc3RyaW5nICpwYXJzZWFyZ3Moc3RyaW5nIGNtZGxpbmUsaW50IGZsYWdzLHN0cmluZyBvcHRzLGludCBidWlsZF9mbik7CitzdGF0aWMgdmFyYXJncyB2b2lkIGFzeW5jaHJvbihtaXhlZCogYXJyYXksIGNsb3N1cmUgY21kLCBtaXhlZCBkYXRhLCBtaXhlZCBmbGFncywgaW50IGMpOworc3RhdGljIHZhcmFyZ3MgbWl4ZWQgKmZpbGVfbGlzdChzdHJpbmcgKmZpbGVzLCBpbnQgbW9kZSwgaW50IHJlY3Vyc2l2ZSwgc3RyaW5nIGRlc3QsIHN0cmluZyBtYXNrKTsKK3N0YXRpYyBtaXhlZCB0b19maWxlbmFtZShzdHJpbmcgc3RyKTsKK3N0YXRpYyBpbnQgX3ZlcmZvbGdlKHN0cmluZyBzdHIpOworc3RhdGljIHN0cmluZyBnbG9iMnJlZ2V4cChzdHJpbmcgc3RyKTsKKwordmFyYXJncyBwdWJsaWMgdm9pZCBNb3JlKHN0cmluZyB0eHQsIGludCBmaWxlLG1peGVkIGN0cmwsIG1peGVkICpjdHJsYXJncywgaW50IGZsYWdzKTsKKyNlbmRpZiAvLyBfTUFHSUVSX0hfUFJPVE9TXworI2VuZGlmIC8vIE5FRURfUFJPVE9UWVBFUworCisKZGlmZiAtLWdpdCBhL3N5cy9tYWlsLmggYi9zeXMvbWFpbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkYjFjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbWFpbC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBtYWlsLmggLS0gRGVmaW5pdGlvbmVuIGZ1ZXIgZGllIFBvc3QKKy8vCisvLyAkSWQ6IG1haWwuaCx2IDMuNCAyMDAwLzAxLzIwIDE1OjEzOjI1IFRpYW1hayBFeHAgJAorCisjaWZuZGVmIF9NQUlMXworI2RlZmluZSBfTUFJTF8KKy8qCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogRGVmaW5pdGlvbnMgb2YgZmllbGRzIHVzZWQgaW4gbWFpbCBtZXNzYWdlcworICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKglBIG1lc3NhZ2UgaXMgcmVwcmVzZW50ZWQgYXMgYW4gYXJyYXkgd2l0aCB0aGUgZm9sbG93aW5nIGZpZWxkczoKKyAqLworI2RlZmluZSBNU0dfRlJPTSAwCisjZGVmaW5lIE1TR19TRU5ERVIgMQorI2RlZmluZSBNU0dfUkVDSVBJRU5UIDIKKyNkZWZpbmUgTVNHX0NDIDMKKyNkZWZpbmUgTVNHX0JDQyA0CisjZGVmaW5lIE1TR19TVUJKRUNUIDUKKyNkZWZpbmUgTVNHX0RBVEUgNgorI2RlZmluZSBNU0dfSUQgNworI2RlZmluZSBNU0dfQk9EWSA4CisKKyNkZWZpbmUgTk9fVVNFUl9BTElBU0VTICAgIDEKKyNkZWZpbmUgTk9fU1lTVEVNX0FMSUFTRVMgIDIKKyNkZWZpbmUgTk9fQ0FSQk9OX0NPUElFUyAgIDQKKworI2luY2x1ZGUgIi9tYWlsL3Bvc3QuaCIKKworLyoKKyAqCURlbGl2ZXJNYWlsKG1peGVkICptZXNzYWdlKQorICoJICBIYW5kIGEgbWFpbCBtZXNzYWdlIG92ZXIgdG8gdGhlIG1haWxlciBkZW1vbi4gVGhlIG1haWxlcgorICoJICBkZW1vbiBleHRyYWN0cyByZWNpcGllbnRzIGZyb20gdGhlIHJlY2lwaWVudCwgY2MgYW5kIGJjYworICoJICBmaWVsZHMgYW5kIHJlbW92ZXMgdGhlIGJjYyBpbmZvcm1hdGlvbi4gSXQgdGhlbiBkZXBvc2l0cworICoJICB0aGUgbWVzc2FnZSB0byB0aGUgbWFpbCBmaWxlcyBvZiBhbGwgcmVjaXBpZW50cy4gQSB2YWxpZAorICoJICBtZXNzYWdlIGlzIHNob3duIGFib3ZlLgorICoKKyAqCWludCBGaW5nZXJNYWlsKHN0cmluZyB1c2VyKQorICoJICBHaXZlcyB0aGUgbnVtYmVyIG9mIHVucmVhZCBtZXNzYWdlcyBhIHVzZXIgaGFzLgorICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5cy9tb25leS5oIGIvc3lzL21vbmV5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMwNDQ4MQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9tb25leS5oCkBAIC0wLDAgKzEsMzIgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBtb25leS5oIC0tIEtvbnN0YW50ZW4gdW5kIFBmYWRlIHJ1bmQgdW1zIEdlbGQKKy8vCisvLyAkSWQ6IG1vbmV5aGFuZGxlci5oLHYgMy4xIDE5OTcvMDIvMTIgMTM6Mjk6MDkgV2FyZ29uIEV4cCAkCisKKyNpZm5kZWYgX19MSUJfTU9ORVlfSF9fCisjZGVmaW5lIF9fTElCX01PTkVZX0hfXworCisjaW5jbHVkZSA8Y29udGFpbmVyL21vbmV5aGFuZGxlci5oPgorI2luY2x1ZGUgPGJhbmsuaD4KKworI2RlZmluZSBHRUxEICAgICAgICIvaXRlbXMvbW9uZXkiCisjZGVmaW5lIEJPRVJTRSAgICAgIi9pdGVtcy9ib2Vyc2UiCisjZGVmaW5lIFNFSEVSS0FSVEUgIi9pdGVtcy9zZWVyY2FyZCIKKworI2RlZmluZSBHRUxESUQgICAgICAgIlxuZ2VsZCIKKyNkZWZpbmUgQk9FUlNFSUQgICAgICJcbmdlbGRib2Vyc2UiCisjZGVmaW5lIFNFSEVSS0FSVEVJRCAiXG5nZWxka2FydGUiCisvLyBJZCBmdWVyIGVpbmUgQm9lcnNlIG1pdCBHZWxkIGRyaW4uLi4KKyNkZWZpbmUgR0VMREJPRVJTRV9NSVRfR0VMRCAiXG5nZWxkYm9lcnNlX21pdF9nZWxkIgorLy8gSUQgZnVlciBha3RpdmUgR2VsZGthcnRlCisjZGVmaW5lIFNFSEVSS0FSVEVJRF9BS1RJViAiXG5nZWxka2FydGVfYWt0aXYiCisKKyNlbmRpZgorCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9fTElCX01PTkVZX0hfUFJPVE9fXworI2RlZmluZSBfX0xJQl9NT05FWV9IX1BST1RPX18KKworI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5cy9tb3ZpbmcuaCBiL3N5cy9tb3ZpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjczYmNjCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL21vdmluZy5oCkBAIC0wLDAgKzEsODMgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBtb3ZpbmcuaCAtLSBNZXRob2RlbiB1bmQgUnVlY2tnYWJld2VydGUgZnVlci92b24gbW92ZSgpCisvLyAgICAgICAgICAgICBEaWVzZXIgSGVhZGVyIHNvbGx0ZSBJTU1FUiBiZW51dHp0IHdlcmRlbiwgd2VubiBlaW4gT2JqZWt0CisvLyAgICAgICAgICAgICBtb3ZlKCkgYmVudXR6dCEKKy8vCisvLyAkSWQ6IG1vdmluZy5oIDg4MDEgMjAxNC0wNS0wNCAyMTozMDo1OVogWmVzc3RyYSAkCisKKyNpZm5kZWYgX01PVklOR18KKyNkZWZpbmUgX01PVklOR18KKworLy8gbGVpZGVyIG5pY2h0IHZpYSA8PiBtb2VnbGljaCwgZGEgZGllc2VzIEZpbGUgYmVudXR6dCB3aXJkLCBiZXZvciBkZXIgTWFzdGVyCisvLyBkZW4gSW5jbHVkZS1EaXItSG9vayBnZXNldHp0IGhhdC4KKyNpbmNsdWRlICIvc3lzL2xpdmluZy9tb3ZpbmcuaCIKKyNpbmNsdWRlICIvc3lzL3BsYXllci9tb3ZpbmcuaCIKKworLyoKKyAqIG1vdmluZy5oCisgKgorICogSG93IG9iamVjdHMgYXJlIG1vdmluZyBhcm91bmQgYW5kIHJlYXNvbnMgd2h5IHRoZXkgY2FudCBkbyBpdC4KKyAqLworCisvKiBNZXRob2RzIHRvIG1vdmUgb2JqZWN0cyAqLworI2RlZmluZSBNX0dPICAgICAgMSAgLyogd2Ugd2FsayBhcm91bmQgKi8KKyNkZWZpbmUgTV9UUE9SVCAxMjggIC8qIFdlIHRlbGVwb3J0IHRvIGFub3RoZXIgcGxhY2UgKi8KKyNkZWZpbmUgTV9OT0NIRUNLIDIgIC8qIGp1c3QgcGxhaW4gbW92ZSBpdCB3aXRob3V0IGFueSBjaGVja3MgKi8KKyNkZWZpbmUgTV9HRVQgICAgIDQgIC8qIG9iaiBnZWh0IHZvbiBub25saXZpbmcgenUgbGl2aW5nICovCisjZGVmaW5lIE1fUFVUICAgICA4ICAvKiBvYmogZ2VodCB2b24gbGl2aW5nIHp1IG5vbmxpdmluZyAqLworI2RlZmluZSBNX0dJVkUgICAxNiAgLyogb2JqIGdlaHQgdm9uIGxpdmluZyB6dSBsaXZpbmcgKi8KKyNkZWZpbmUgTV9TSUxFTlQgMzIgIC8qIG9iaiBzb2xsIG9obmUgbWVsZHVuZyBhdXNnZXpvZ2VuIHdlcmRlbiAqLworI2RlZmluZSBNX05PX0FUVEFDSyA1MTIgLyogS2VpbiBCZWdydWVzc3VuZ3NzY2hsYWcgKi8KKyNkZWZpbmUgTV9OT19TSE9XIDI1NiAvKiBaZWlnZSBuaWNodCBkaWUgUm9vbS1EZXNjciBiZWltIGFua29tbWVuICovCisKKy8qIEhpZXIgZm9sZ3Qgbm9jaCB3YXMgZnVlciBkaWUgVW5pdCAqLworI2RlZmluZSBNX01PVkVfQUxMIDMyCisKKy8qIEVycm9ycyB3aGVuIG1vdmluZyB0aGluZ3MgKi8KKyNkZWZpbmUgTU9WRV9PSyAgICAgICAgICAgICAgICAgICAxIC8vIGdhciBrZWluIEZlaGxlci4gOy0pCisvKiBIZXksIEknbSBhIHBsYXllciBhbmQgY2FudCBiZSBzaW1wbHkgY2FycmllZCBhd2F5ICovCisjZGVmaW5lIE1FX1BMQVlFUiAJICAgICAgICAgLTEKKy8qIENhbnQgbW92ZSBpbnRvIGNvbnRhaW5lciBiZWNhdXNlIEknbSB0b28gaGVhdnkgKi8KKyNkZWZpbmUgTUVfVE9PX0hFQVZZICAgICAgICAgICAgIC0yCisjZGVmaW5lIE1FX0NBTlRfVFBPUlRfSU4gICAgICAgICAtMyAvKiBDYW50IHRlbGVwb3J0IHRoZXJlICEgKi8KKyNkZWZpbmUgTUVfQ0FOVF9UUE9SVF9PVVQgICAgICAgIC00IC8qIENhbnQgdGVsZXBvcnQgZnJvbSBoZXJlICEgKi8KKyNkZWZpbmUgTUVfQ0FOVF9CRV9EUk9QUEVEICAgICAgIC01IC8qIFlvdSBjYW50IGRyb3AgdGhlIGZlZWwuLi4gdGhpcyB0aGluZyAqLworI2RlZmluZSBNRV9DQU5UX0JFX1RBS0VOICAgICAgICAgLTYgLyogTm9wZSwgeW91IGNhbm5vdCB0YWtlIG1lICovCisjZGVmaW5lIE1FX0NBTlRfQkVfSU5TRVJURUQgICAgICAtNyAvKiBDb250YWluZXIgcHJldmVudHMgbWUgZnJvbSBpbnNlcnRpbmcgKi8KKyNkZWZpbmUgTUVfQ0FOVF9MRUFWRV9FTlYgICAgICAgIC04IC8qIENvbnRhaW5lciBwcmV2ZW50cyBtZSBmcm9tIGxlYXZpbmcgKi8KKy8qIENhbid0IG1vdmUgaW50byBjb250YWluZXIsIGl0cyBFbnYgd291bGQgZ2V0IHRvbyBoZWF2eSAqLworI2RlZmluZSBNRV9UT09fSEVBVllfRk9SX0VOViAgICAgLTkKKyNkZWZpbmUgVE9PX01BTllfT0JKRUNUUyAgICAgICAgIC0xMCAvKiB0b28gbWFueSBvYmplY3RzIGluIG5ldyBlbnZpcm9ubWVudCAqLworI2RlZmluZSBNRV9OT1RfQUxMT1dFRCAgICAgICAgICAgLTExIC8qIFNvcnJ5IC0gb2ZmIGxpbWl0cyBmb3IgcGxheWVycyAqLworLy8gT2JqZWN0IHdhcyBkZXN0cnVjdGVkIGR1cmluZyBtb3ZlL2luIGluaXQoKQorI2RlZmluZSBNRV9XQVNfREVTVFJVQ1RFRCAgICAgICAgLTEyCisvLyBvYmplY3QgaXRzZWxmIGRvZXMgbm90IHdhbnQgdG8gYmUgbW92ZWQgZm9yIHVuZGVmaW5lZCByZWFzb24KKyNkZWZpbmUgTUVfRE9OVF9XQU5UX1RPX0JFX01PVkVEIC0xMworCisvLyBjaGVjayBmb3IgdmFsaWQgbW92ZSBlcnJvciAtIG1haW5seSBmb3IgaW50ZXJuYWwgdXNlIQorI2RlZmluZSBBTExfTU9WRV9FUlJPUlMgKHtNRV9QTEFZRVIsTUVfVE9PX0hFQVZZLE1FX0NBTlRfVFBPUlRfSU4sXAorICAgICAgICAgICAgICAgICAgICAgICAgICBNRV9DQU5UX1RQT1JUX09VVCxNRV9DQU5UX0JFX0RST1BQRUQsXAorICAgICAgICAgICAgICAgICAgICAgICAgICBNRV9DQU5UX0JFX1RBS0VOLE1FX0NBTlRfQkVfSU5TRVJURUQsXAorICAgICAgICAgICAgICAgICAgICAgICAgICBNRV9DQU5UX0xFQVZFX0VOVixNRV9UT09fSEVBVllfRk9SX0VOVixcCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRPT19NQU5ZX09CSkVDVFMsTUVfTk9UX0FMTE9XRUQsXAorICAgICAgICAgICAgICAgICAgICAgICAgICBNRV9XQVNfREVTVFJVQ1RFRCxNRV9ET05UX1dBTlRfVE9fQkVfTU9WRUR9KQorI2RlZmluZSBWQUxJRF9NT1ZFX0VSUk9SKHgpIChtZW1iZXIoQUxMX01PVkVfRVJST1JTLHgpICE9IC0xKQorCisjZGVmaW5lIE5PX1RQT1JUIDEKKyNkZWZpbmUgTk9fVFBPUlRfSU4gMgorI2RlZmluZSBOT19UUE9SVF9PVVQgNAorCisvKiBBYmxlaG5yZWFrdGlvbmVuIHZvbiBOUENzICovCisjZGVmaW5lIFJFSkVDVF9MSUdIVF9NT0RJRklFUiAicmVqZWN0X2xpZ2h0X21vZGlmaWVyIgorI2RlZmluZSBSRUpFQ1RfRFJPUCAgICAgICAgICAgInJlamVjdF9kcm9wIgorI2RlZmluZSBSRUpFQ1RfR0lWRSAgICAgICAgICAgInJlamVjdF9naXZlIgorI2RlZmluZSBSRUpFQ1RfS0VFUCAgICAgICAgICAgInJlamVjdF9rZWVwIgorCisvKiBadWdyaWZmc21ldGhvZGVuIGZ1ZXIgZmluZF9vYnMgKi8KKworI2RlZmluZSBQVVRfR0VUX05PTkUgMHgwMAorI2RlZmluZSBQVVRfR0VUX1RBS0UgMHgwMQorI2RlZmluZSBQVVRfR0VUX0RST1AgMHgwMgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5cy9uZXdfc2tpbGxzLmggYi9zeXMvbmV3X3NraWxscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhZjVjYmMKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbmV3X3NraWxscy5oCkBAIC0wLDAgKzEsNDE1IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gbmV3X3NraWxscy5oIC0tIEFsbGUgbm9ldGlnZW4gRGVmaW50aW9uZW4gZnVlciBTa2lsbHMgKEZhZWhpZ2tlaXRlbiksCisvLyAgICAgICAgICAgICAgICAgU3BlbGxzIChaYXViZXJzcHJ1ZWNoZSkgdW5kIEdpbGRlbi4KKy8vCisvLyAkSWQ6IG5ld19za2lsbHMuaCA4NjEwIDIwMTQtMDEtMDYgMjA6NTk6MTNaIFplc3N0cmEgJAorCisjaWZuZGVmIF9ORVdfU0tJTExTX0hfCisjZGVmaW5lIF9ORVdfU0tJTExTX0hfCisKKyNpbmNsdWRlIDxjb21iYXQuaD4KKyNpbmNsdWRlIDxsaXZpbmcvc2tpbGxfYXR0cmlidXRlcy5oPgorCisvLyA9PT09PSBBa3R1ZWxsZSBWZXJzaW9uIGRlciBTa2lsbHMgPT09PQorI2RlZmluZSBDVVJSRU5UX1NLSUxMX1ZFUlNJT04gICAgICAgMgorCisvLyA9PT09PSBBbGxnZW1laW5lIERlZmluZXM6ID09PT09CisKKyNkZWZpbmUgREVGQVVMVF9HVUlMRCAgICAgICAgICAgICAgICJhYmVudGV1cmVyIgorI2RlZmluZSBHVUlMRF9ESVIgICAgICAgICAgICAgICAgICAgIi9naWxkZW4vIgorI2RlZmluZSBHVUlMRF9TQVZFRklMRSAgICAgICAgICAgICAgIi9ldGMvZ2lsZGVubWFzdGVyIgorI2RlZmluZSBHVUlMRE1BU1RFUiAgICAgICAgICAgICAgICAgIi9zZWN1cmUvZ2lsZGVubWFzdGVyIgorI2RlZmluZSBTUEVMTEJPT0tfRElSICAgICAgICAgICAgICAgIi9zcGVsbGJvb2tzLyIKKworI2RlZmluZSBNQVhfQUJJTElUWSAgICAgICAgICAgICAgICAgMTAwMDAKKyNkZWZpbmUgTUFYX1NLSUxMRUFSTiAgICAgICAgICAgICAgIDIwMAorCisvLyA9PT09PSBNb2VnbGljaGUgUmVzdWx0YXRlIGVpbmUgU3BlbGxzOiA9PT09PQorCisjZGVmaW5lIEVSRk9MRyAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIE1JU1NFUkZPTEcgICAgICAgICAgICAgICAgICAtMQorI2RlZmluZSBBQkdFV0VIUlQgICAgICAgICAgICAgICAgICAgMgorCisvLyA9PT09PSBQcm9wZXJ0aWVzIGRlcyBHaWxkZW4tTWFzdGVyczogPT09PT0KKworI2RlZmluZSBQX1ZBTElEX0dVSUxEUyAgICAgICAgICAgICAgInZhbGlkX2d1aWxkcyIKKworLy8gPT09PT0gUHJvcGVydGllcyBkZXIgR2lsZGU6ID09PT09PQorCisjZGVmaW5lIFBfR1VJTERfU0tJTExTICAgICAgICAgICAgICAiZ3VpbGRfc2tpbGxzIgorI2RlZmluZSBQX0dVSUxEX1JFU1RSSUNUSU9OUyAgICAgICAgImd1aWxkX3Jlc3QiCisvL2JpdHRlIGRpZXNlcyBEZWZpbmUgYXVjaCBpbiAvc2N1cmUvbWFzdGVyL3VzZXJpbmZvLmMgYWVuZGVybi4uLgorI2RlZmluZSBQX0dVSUxEX0RFRkFVTFRfU1BFTExCT09LICAgImd1aWxkX3NiIgorI2RlZmluZSBQX0dVSUxEX01BTEVfVElUTEVTICAgICAgICAgImd1aWxkX21hbGVfdGl0bGVzIgorI2RlZmluZSBQX0dVSUxEX0ZFTUFMRV9USVRMRVMgICAgICAgImd1aWxkX2ZlbWFsZV90aXRsZXMiCisjZGVmaW5lIFBfR1VJTERfTEVWRUxTICAgICAgICAgICAgICAiZ3VpbGRfbGV2ZWxzIgorI2RlZmluZSBQX0dVSUxEX1BSRVBBUkVCTE9DSyAgICAgICAgImd1aWxkX3ByZXBhcmVibG9jayIKKyNkZWZpbmUgUF9HVUlMRF9ERUFDVElWQVRFX1NLSUxMUyAgICJndWlsZF9kZWFjdGl2YXRlX3NraWxscyIKKworLy8gPT09PT0gUHJvcGVydGllcyBkZXMgU3BlbGxib29rczogPT09PT0KKworI2RlZmluZSBQX1NCX1NQRUxMUyAgICAgICAgICAgICAgICAgInNiX3NwZWxscyIKKworLy8gPT09PT0gUHJvcGVydGllcyBkZXIgR2lsZGUgVU5EIGRlcyBTcGVsbGJvb2tzOiA9PT09PQorI2RlZmluZSBQX0dMT0JBTF9TS0lMTFBST1BTICAgICAgICAgInNtX2dsb2JhbCIKKworLy8gPT09PT0gUHJvcGVydGllcyBkZXMgU3BpZWxlcnM6ID09PT09CisKKy8vICNkZWZpbmUgUF9HVUlMRCAgICAgICAgICAgICAgICAgICAgICJndWlsZCIKKyNkZWZpbmUgUF9ERUZBVUxUX0dVSUxEICAgICAgICAgICAgICJkZWZhdWx0X2d1aWxkIgorI2RlZmluZSBQX0RFRkVOREVSUyAgICAgICAgICAgICAgICAgImRlZmVuZGVycyIKKyNkZWZpbmUgUF9HVUlMRF9MRVZFTCAgICAgICAgICAgICAgICJndWlsZF9sZXZlbCIKKyNkZWZpbmUgUF9HVUlMRF9SQVRJTkcgICAgICAgICAgICAgICJndWlsZF9yYXRpbmciCisjZGVmaW5lIFBfR1VJTERfVElUTEUgICAgICAgICAgICAgICAiZ3VpbGRfdGl0bGUiCisjZGVmaW5lIFBfU1VCR1VJTERfVElUTEUgICAgICAgICAgICAic3ViZ3VpbGRfdGl0bGUiCisjZGVmaW5lIFBfVklTSUJMRV9TVUJHVUlMRF9USVRMRSAgICAidmlzaWJsZV9zdWJndWlsZF90aXRsZSIKKyNkZWZpbmUgUF9NQUdJQ19SRVNJU1RBTkNFX09GRlNFVCAgICJtYWdfcmVzX29mZnNldCIKKyNkZWZpbmUgUF9ORVdTS0lMTFMgICAgICAgICAgICAgICAgICJuZXdza2lsbHMiCisjZGVmaW5lIFBfTkVYVF9TUEVMTF9USU1FICAgICAgICAgICAibmV4dF9zcGVsbCIKKyNkZWZpbmUgUF9QUkVQQVJFRF9TUEVMTCAgICAgICAgICAgICJwcmVwYXJlZF9zcGVsbCIKKyNkZWZpbmUgUF9UTVBfQVRUQUNLX0hPT0sgICAgICAgICAgICJhdHRhY2tfaG9vayIKKyNkZWZpbmUgUF9UTVBfQVRUQUNLX01PRCAgICAgICAgICAgICJhdHRhY2tfbW9kIgorI2RlZmluZSBQX1RNUF9ERUZFTkRfSE9PSyAgICAgICAgICAgImRlZmVuZF9ob29rIgorI2RlZmluZSBQX1RNUF9ESUVfSE9PSyAgICAgICAgICAgICAgImRpZV9ob29rIgorI2RlZmluZSBQX1RNUF9NT1ZFX0hPT0sgICAgICAgICAgICAgIm1vdmVfaG9vayIKKyNkZWZpbmUgUF9XRUFQT05fVEVBQ0hFUiAgICAgICAgICAgICJ3ZWFwb25fdGVhY2hlciIKKyNkZWZpbmUgUF9TS0lMTFNWRVJTSU9OICAgICAgICAgICAgICJwX2xpYl9za2lsbHN2ZXJzaW9uIgorCisvLyA9PT09PSBTdGFuZGFyZC1Ta2lsbHM6ID09PT09CisKKyNkZWZpbmUgRklHSFQoeCkgICAgICAgICAgICAgICAgICAgICgiRmlnaHRfIit4KQorI2RlZmluZSBTSE9PVCh4KSAgICAgICAgICAgICAgICAgICAgKCJTaG9vdF8iK3gpCisjZGVmaW5lIFNLX0JPT1pFICAgICAgICAgICAgICAgICAgICAiQm9vemUiCisjZGVmaW5lIFNLX0NBUlJZICAgICAgICAgICAgICAgICAgICAiQ2FycnlTa2lsbCIKKyNkZWZpbmUgU0tfQ0FTVElORyAgICAgICAgICAgICAgICAgICJDYXN0IgorI2RlZmluZSBTS19ERUZFTkRfT1RIRVIgICAgICAgICAgICAgIkRlZmVuZE90aGVyIgorI2RlZmluZSBTS19GSUdIVCAgICAgICAgICAgICAgICAgICAgIkZpZ2h0IgorI2RlZmluZSBTS19JTkZPUk1fREVGRU5EICAgICAgICAgICAgIkluZm9ybURlZmVuZCIKKyNkZWZpbmUgU0tfTUFHSUNfQVRUQUNLICAgICAgICAgICAgICJNYWdpY0F0dGFjayIKKyNkZWZpbmUgU0tfTUFHSUNfREVGRU5TRSAgICAgICAgICAgICJNYWdpY0RlZmVuc2UiCisjZGVmaW5lIFNLX05JR0hUVklTSU9OICAgICAgICAgICAgICAiTmlnaHR2aXNpb24iCisjZGVmaW5lIFNLX1NIT09UICAgICAgICAgICAgICAgICAgICAiU2hvb3QiCisjZGVmaW5lIFNLX1NQRUxMX0RFRkVORCAgICAgICAgICAgICAiU3BlbGxEZWZlbmQiCisjZGVmaW5lIFNLX1NXT1JERklHSFRJTkcgICAgICAgICAgICBGSUdIVChXVF9TV09SRCkKKyNkZWZpbmUgU0tfVFdPSEFOREVEICAgICAgICAgICAgICAgICJCaWhhbmQiCisjZGVmaW5lIFNLX1dFQVBPTkxFU1MgICAgICAgICAgICAgICBGSUdIVChXVF9IQU5EUykKKworLy8gPT09PT0gU2tpbGwgSW5mb3M6ID09PT09CisKKyNkZWZpbmUgRkFDVE9SKHgpICAgICAgICAgICAgICAgICAgICgiZmFjXyIreCkKKyNkZWZpbmUgT0ZGU0VUKHgpICAgICAgICAgICAgICAgICAgICgib2ZmXyIreCkKKworI2RlZmluZSBTSV9TS0lMTEZVTkMgICAgICAgICAgICAgICAgInNpX2Z1bmMiCisgIC8vIEZ1bmt0aW9uLCBkaWUgYXVmZ2VydWZlbiB3aXJkCisKKyNkZWZpbmUgU0lfQ0xPU1VSRSAgICAgICAgICAgICAgICAgICJzaV9jbG9zdXJlIgorICAvLyBOdXIgZnVlciBkZW4gaW50ZXJuZW4gR2VicmF1Y2gKKyAgLy8gKEdlc2Nod2luZGlna2VpdHNvcHRpbWllcnVuZykKKworI2RlZmluZSBTSV9TUEVMTEJPT0sgICAgICAgICAgICAgICAgInNpX3NwZWxsYm9vayIKKyAgLy8gU3BlbGxib29rLCBpbiBkZW0gZGVyIFNwZWxsCisgIC8vIHN0ZWh0CisKKyNkZWZpbmUgU0lfU1BFTExDT1NUICAgICAgICAgICAgICAgICJzaV9jb3N0IgorICAvLyBLb3N0ZW4gZGVzIFNwZWxscworCisjZGVmaW5lIFNJX1RJTUVfTVNHICAgICAgICAgICAgICAgICAidGltZV9tc2ciCisgIC8vIERpZSBNZWxkdW5nIHdpcmQgYW5zdGVsbGUgdm9uCisgIC8vICJEdSBiaXN0IG5vY2ggenUgZXJzY2hvZXBmdAorICAvLyAgdm9uIERlaW5lbSBsZXR6dGVuIFNwcnVjaC4iCisgIC8vIGF1c2dlZ2ViZW4uCisKKyNkZWZpbmUgU0lfU1BfTE9XX01TRyAgICAgICAgICAgICAgICJzcF9sb3dfbXNnIgorICAvLyBEaWUgTWVsZHVuZyB3aXJkIGFuc3RlbGxlIHZvbgorICAvLyAiRHUgaGFzdCB6dSB3ZW5pZyBaYXViZXJwdW5rdGUKKyAgLy8gIGZ1ZXIgZGllc2VuIFNwcnVjaC4iCisgIC8vIGF1c2dlZ2ViZW4uCisKKyNkZWZpbmUgU0lfUFJFUEFSRV9NU0cgICAgICAgICAgICAgICJzaV9wcmVwYXJlX21zZyIKKyNkZWZpbmUgU0lfUFJFUEFSRV9BQk9SVF9NU0cgICAgICAgICJzaV9wcmVwYXJlX2Fib3J0X21zZyIKKyNkZWZpbmUgU0lfUFJFUEFSRV9CVVNZX01TRyAgICAgICAgICJzaV9wcmVwYXJlX2J1c3lfbXNnIgorICAvLyBNZWxkdW5nZW4gZnVlciBTcHJ1Y2gtCisgIC8vIHZvcmJlcmVpdHVuZywgQWJicnVjaCB1bmQKKyAgLy8gc2Nob24gYmVzY2hhZWZ0aWd0CisKKyNkZWZpbmUgU0lfTk9NQUdJQyAgICAgICAgICAgICAgICAgICJzaV9ub21hZ2ljIgorICAvLyBQcm96ZW50d2VydCwgbWl0IGRlbSBQX05PTUFHSUMKKyAgLy8gdW1nYW5nZW4gd2VyZGVuIGthbm4KKworI2RlZmluZSBTSV9OT01BR0lDX01TRyAgICAgICAgICAgICAgInNpX25vbWFnaWNfbXNnIgorICAvLyBNZWxkdW5nLCBkaWUgQW5zdGVsbGUgdm9uCisgIC8vICJEZWluIFphdWJlcnNwcnVjaCB2ZXJwdWZmdAorICAvLyAgaW0gTmljaHRzIiBhdXNnZWdlYmVuIHdlcmRlbgorICAvLyBzb2xsLgorCisjZGVmaW5lIFNJX1NQRUxMRkFUSUdVRSAgICAgICAgICAgICAic2lfZmF0aWd1ZSIKKyAgLy8gRXJzY2hvZXBmdW5nIC0gWmVpdCwgaW4gZGVyCisgIC8vIGtlaW5lIHdlaXRlcmVuIFNwZWxscworICAvLyBhdWZnZXJ1ZmVuIHdlcmRlbiBrb2VubmVuCisjZGVmaW5lIFNJX1hfU1BFTExGQVRJR1VFICAgICAgICAgICAic3RkOnNpOnhmYXRpZ3VlIgorCisjZGVmaW5lIFNJX1NLSUxMTEVBUk4gICAgICAgICAgICAgICAic2lfbGVhcm4iCisgIC8vIExlcm5nZXNjaHdpbmRpZ2tlaXQgaW4gMC4wMSUKKyAgLy8gcHJvIEFfSU5ULzIKKworI2RlZmluZSBTSV9MRUFSTl9BVFRSSUJVVEUgICAgICAgICAgInNpX2xlYXJuX2F0dHJpYnV0ZSIKKyAgLy8gV2VubiBtYW4gbmljaHQgd2lsbCwgZGFzcyBtYW4gaW4gQWJoYWVuZ2lna2VpdCB2b24KKyAgLy8gSU5UIGxlcm50CisKKyNkZWZpbmUgU0lfTk9fTEVBUk4gICAgICAgICAgICAgICAgICJzaV9ub19sZWFybiIKKyAgLy8gV2VubiBtYW4gKHRlbXBvcmFlciEpIG5pY2h0IHdpbGwsIGRhc3MgZGllc2VyIFNraWxsIGdlbGVybnQgd2lyZC4KKyAgLy8gTXVzcyB2b24gZGVuIFNwZWxsYm9va3MgYmVhY2h0ZXQgd2VyZGVuLgorICAvLyBTb2xsdGUgbmllbWFscyBpbSBTcGllbGVyIGFiZ2VzcGVpY2hlcnQgd2VyZGVuLiBPZGVyIHBlcm1hbmVudCBpbgorICAvLyBHaWxkZS9TcGVsbGJvb2sgZ2VzZXR6dCBzZWluLiBTb25kZXJuIGltIExhdWZlIGVpbmVzciBOdXR6dW5nIGluIGRlciBqZXcuCisgIC8vIEtvcGllIHZvbiBzaW5mbyBnZXNldHp0IHdlcmRlbiwgZGllIGdlcmFkZSBnZW51dHp0IHdpcmQuCisKKyNkZWZpbmUgU0lfU0tJTExBQklMSVRZICAgICAgICAgICAgICJzaV9hYmlsIgorICAvLyBGYWVoaWdrZWl0LCBkaWVzZW4gU3BydWNoIHp1CisgIC8vIGJlbnV0emVuCisKKyNkZWZpbmUgU0lfU0tJTExBUkcgICAgICAgICAgICAgICAgICJzaV9hcmciCisgIC8vIEFyZ3VtZW50ZSwgZGllIHVlYmVyZ2ViZW4KKyAgLy8gd3VyZGVuCisKKyNkZWZpbmUgU0lfU0tJTExSRVNUUl9VU0UgICAgICAgICAgICJzaV9yZXN0cl91IgorICAvLyBCZXNjaHJhZW5rdW5nZW4gYmVpbSBHZWJyYXVjaAorCisjZGVmaW5lIFNJX1NLSUxMUkVTVFJfTEVBUk4gICAgICAgICAic2lfcmVzdHJfbCIKKyAgLy8gQmVzY2hyYWVua3VuZ2VuIGJlaW0gTGVybmVuCisKKyNkZWZpbmUgU0lfU0tJTExJTkZPICAgICAgICAgICAgICAgICJzaV9pbmZvIgorICAvLyBLdXJ6ZXIgSW5mb3JtYXRpb25zdGV4dAorCisjZGVmaW5lIFNJX1NLSUxMSU5GT19MT05HICAgICAgICAgICAic2lfaW5mb19sIgorICAvLyBMYW5nZXIgSW5mb3JtYXRpb25zdGV4dAorCisjZGVmaW5lIFNJX1NLSUxMREFNQUdFICAgICAgICAgICAgICAic2lfZGFtYWdlIgorICAvLyBTY2hhZGVuCisKKyNkZWZpbmUgU0lfU0tJTExEQU1BR0VfQllfUk9XICAgICAgICJzaV9kYW1hZ2VfYnlfcm93IgorICAvLyBTY2hhZGVuIGR1cmNoIFRlYW1yZWloZW4KKworI2RlZmluZSBTSV9TS0lMTERBTUFHRV9UWVBFICAgICAgICAgInNpX2RhbXR5cCIKKyAgLy8gQXJ0IGRlcyBTY2hhZGVucworCisjZGVmaW5lIFNJX1NLSUxMREFNQUdFX01TRyAgICAgICAgICAic2lfZGFtbXNnIgorICAvLyBNZWxkdW5nIGRpZSBhbnN0ZWxsZSBlaW5lcgorICAvLyBXYWZmZSBrb21tZW4gc29sbAorCisjZGVmaW5lIFNJX1NLSUxMREFNQUdFX01TRzIgICAgICAgICAic2lfZGFtbXNnMiIKKyAgLy8gZGl0byBmdWVyIGRlbiBUZXh0IGZ1ZXIKKyAgLy8gYW5kZXJlIGltIFJhdW0KKworI2RlZmluZSBTSV9TUEVMTCAgICAgICAgICAgICAgICAgICAgInNpX3NwZWxsIgorICAvLyBTcGVsbCwgbWl0IGRlbSBhbmdlZ3JpZmZlbgorICAvLyB3dXJkZQorCisjZGVmaW5lIFNJX0NPTExBVEVSQUxfREFNQUdFICAgICAgICAic2lfY29sbGF0ZXJhbF9kYW1hZ2UiCisgIC8vIFNjaGFkZW5zYW50ZWlsIGJlaSBGbGFlY2hlbi0KKyAgLy8gc3BlbGxzLCBkZW4gRnJldW5kZSBhYmJla29tbWVuLAorICAvLyBpbiBQcm96ZW50CisKKyNkZWZpbmUgU0lfTlVNQkVSX0VORU1JRVMgICAgICAgICAgICJzaV9udW1fZW5lbWllcyIKKyAgLy8gQW56YWhsIEZlaW5kZSBiZWkKKyAgLy8gRmxhZWNoZW5zcHJ1Y2gKKworI2RlZmluZSBTSV9OVU1CRVJfRlJJRU5EUyAgICAgICAgICAgInNpX251bV9mcmllbmRzIgorICAvLyBBbnphaGwgRnJldW5kZSBiZWkKKyAgLy8gRmxhZWNoZW5zcHJ1Y2gKKworI2RlZmluZSBTSV9ESVNUQU5DRSAgICAgICAgICAgICAgICAgInNpX2Rpc3RhbmNlIgorICAvLyBFbnRmZXJudW5nCisKKyNkZWZpbmUgU0lfV0lEVEggICAgICAgICAgICAgICAgICAgICJzaV93aWR0aCIKKyAgLy8gQnJlaXRlIGRlcyBGbGFlY2hlbmFuZ3JpZmZzCisKKyNkZWZpbmUgU0lfREVQVEggICAgICAgICAgICAgICAgICAgICJzaV9kZXB0aCIKKyAgLy8gVGllZmUgZGVzIEZsYWVjaGVuYW5ncmlmZnMKKworI2RlZmluZSBTSV9JTkhFUklUICAgICAgICAgICAgICAgICAgInNpX2luaGVyaXQiCisgIC8vIFNraWxsLCB2b24gZGVtIGV0d2FzCisgIC8vIHVlYmVybm9tbWVuIHdlcmRlbiBzb2xsCisKKyNkZWZpbmUgU0lfRElGRklDVUxUWSAgICAgICAgICAgICAgICJzaV9kaWZmaWN1bHR5IgorICAvLyBXZXJ0LCBkZXIgZGllIE9iZXJncmVuemUgZGVyCisgIC8vIEZhZWhpZ2tlaXQgYWJncmVuenQKKworI2RlZmluZSBTSV9MQVNUTElHSFQgICAgICAgICAgICAgICAgInNpX2xhc3RsaWdodCIKKyAgLy8gRnVlciBOYWNodHNpY2h0OiBXYW5uIGhhdAorICAvLyBkZXIgU3BpZWxlciB6dW0gbGV0enRlbiBtYWwKKyAgLy8gTGljaHQgZ2VzZWhlbi4KKworI2RlZmluZSBTSV9TS0lMTEhFQUwgICAgICAgICAgICAgICAgInNpX2hlYWwiCisgIC8vIEhlaWx1bmcKKworI2RlZmluZSBTSV9VU1IgICAgICAgICAgICAgICAgICAgICAgInNpX3VzciIKKyAgLy8gc2VsYnN0IGRlZmluaWVydGUgSW5mb3MKKworI2RlZmluZSBTSV9URVNURkxBRyAgICAgICAgICAgICAgICAgInNpX3Rlc3RmbGFnIgorICAvLyBUZXN0ZmxhZworCisjZGVmaW5lIFNJX0dVSUxEICAgICAgICAgICAgICAgICAgICAic2lfZ3VpbGQiCisgIC8vIEdpbGRlLCBmYWxscyBBdXN3YWhsIGF1cworICAvLyBtZWhyZXJlbiBtb2VnbGljaAorCisjZGVmaW5lIFNJX0VORU1ZICAgICAgICAgICAgICAgICAgICAic2lfZW5lbXkiCisgIC8vIEZlaW5kIGJlaSBLYW1wZnNwcnVlY2hlbgorCisjZGVmaW5lIFNJX0ZSSUVORCAgICAgICAgICAgICAgICAgICAic2lfZnJpZW5kIgorICAvLyBEZXIgenUgdmVydGVpZGlnZW5kZSBGcmV1bmQKKyAgLy8gYmVpIERlZmVuZE90aGVyIHVuZAorICAvLyBJbmZvcm1EZWZlbmQKKworI2RlZmluZSBTSV9NQUdJQ19UWVBFICAgICAgICAgICAgICAgInNpX21hZ2ljX3R5cGUiCisgIC8vIFZvbiB3YXMgZnVlciBlaW5lciBBcnQgaXN0CisgIC8vIGRpZSBNYWdpZSAocy51LikKKworI2RlZmluZSBTSV9QUkVQQVJFX1RJTUUgICAgICAgICAgICAgInNpX3ByZXBhcmVfdGltZSIKKyAgLy8gWmVpdCBkaWUgenVyIFZvcmJlcmVpdHVuZworICAvLyBiZW5vZXRpZ3Qgd2lyZC4KKworI2RlZmluZSBTSV9BVFRBQ0tfQlVTWV9NU0cgICAgICAgICAgInNpX2F0dGFja19idXN5X21zZyIKKyAgLy8gTWVsZHVuZywgd2VubiBkZXIgU3BpZWxlciB6dQorICAvLyBiZXNjaGFlZnRpZ3QgaXN0CisKKyNkZWZpbmUgU0lfTk9fQVRUQUNLX0JVU1kgICAgICAgICAgICJzaV9ub19hdHRhY2tfYnVzeSIKKyAgLy8gV2VubiBkZXIgU3BlbGwgbmljaHQgYWxzCisgIC8vIFRhZXRpZ2tlaXQgemFlaGxlbi9nZXphZWhsdAorICAvLyB3ZXJkZW4gc29sbCwga2FubiBtYW4gaGllcgorICAvLyBOT19BVFRBQ0tfQlVTWVtfU0VUfF9RVUVSWV0KKyAgLy8gKHMudS4pIHNldHplbgorCisjZGVmaW5lIFNJX0FUVEFDS19CVVNZX0FNT1VOVCAgICAgICAic2lfYXR0YWNrX2J1c3lfYW1vdW50IgorICAvLyBEZXIgU3BlbGwgaGF0IGVpbiBnZXdpc3NlcworICAvLyBBdHRhY2tCdXN5LCBhYmVyIGRhcyB3ZWljaHQKKyAgLy8gdm9tIFN0YW5kYXJkd2VydCAxIGFiLiBEZXIKKyAgLy8gV2VydCBrYW5uIGhpZXIgZ2VzZXR6dAorICAvLyB3ZXJkZW4uCisKKyNkZWZpbmUgU0lfTEFTVF9VU0UgICAgICAgICAgICAgICAgICJzaV9sYXN0X3VzZSIKKyAgLy8gTGV0enRlIGJlbnV0enVuZyBlaW5lcworICAvLyBTa2lsbHMgKGZ1ZXIgUmFzc2Vuc2tpbGxzKQorCisjZGVmaW5lIFNJX0xFQVJOX1BST0IgICAgICAgICAgICAgICAic2lfbGVhcm5fcHJvYiIKKyAgLy8gTGVybndhaHJzY2hlaW5saWNoa2VpdAorICAvLyAoZnVlciBSYXNzZW5za2lsbHMpCisKKyNkZWZpbmUgU0lfU0tJTExEVVJBVElPTiAgICAgICAgICAgICJzaV9kdXJhdGlvbiIKKyAgLy8gV2llIHNvbGwgd2lyZCBkZXIgU2tpbGwgYW5oYWx0ZW4/CisgIC8vIChmdWVyIFNwZWxscyBtaXQgZWluZXIgRGF1ZXIpCisKKy8vID09PT09IFBhcmFtZXRlciBmdWVyIFNwZWxsLU1hcHBpbmc6ID09PT09CisKKyNkZWZpbmUgU1BfTkFNRSAgICAgICAgICAgICAgICAgICAgICJzcF9uYW1lIgorICAvLyBOYW1lIGRlcyBTcGVsbHMKKworI2RlZmluZSBTUF9TSE9XX0RBTUFHRSAgICAgICAgICAgICAgInNwX3Nob3dkYW1hZ2UiCisgIC8vIFRyZWZmZXJtZWxkdW5nIHNvbGwgZ2V6ZWlndAorICAvLyB3ZXJkZW4uCisKKyNkZWZpbmUgU1BfUkVEVUNFX0FSTU9VUiAgICAgICAgICAgICJzcF9yZWR1Y2VfYWMiCisgIC8vIEFDIHNvbGwgVHlwYWJoYWVuZ2lnCisgIC8vIHJlZHV6aWVydCB3ZXJkZW4uCisKKyNkZWZpbmUgU1BfUEhZU0lDQUxfQVRUQUNLICAgICAgICAgICJzcF9waHlzaWNhbCIKKyAgLy8gS29lcnBlcmxpY2hlciBBbmdyaWZmCisKKyNkZWZpbmUgU1BfUkVDVVJTSVZFICAgICAgICAgICAgICAgICJzcF9yZWN1cnNpdmUiCisgIC8vIFJla3Vyc2lvbmVuCisKKyNkZWZpbmUgU1BfTk9fRU5FTVkgICAgICAgICAgICAgICAgICJub19lbmVteSIKKyAgLy8gSXN0IGtlaW4gcmljaHRpZ2VyIEFuZ3JpZmYKKworI2RlZmluZSBTUF9OT19BQ1RJVkVfREVGRU5TRSAgICAgICAgInNwX25vX2FjdGl2ZV9kZWZlbnNlIgorICAvLyBFcyBpc3Qga2VpbmUgYWt0aXZlIEFid2VociBlcnd1ZW5zY2h0CisKKyNkZWZpbmUgU1BfR0xPQkFMX0FUVEFDSyAgICAgICAgICAgICJzcF9nbG9iYWxfYXR0YWNrIgorICAvLyBJc3QgRmxhZWNoZW5hbmdyaWZmCisKKy8vID09PT09IFNraWxsIFJlc3RyaWN0aW9uczogPT09PT0KKworI2RlZmluZSBTUl9GVU4gICAgICAgICAgICAgICAgICAgICAgInJlc3RyX2Z1biIKKyAgLy8gRnVua3Rpb24sIGRpZSB3ZWl0ZXJlCisgIC8vIEVpbnNjaHJhZW5rdW5nZW4gcHJ1ZWZ0CisKKyNkZWZpbmUgU1JfRVhDTFVERV9SQUNFICAgICAgICAgICAgICJyZXN0cl9yYWNlX2V4IgorICAvLyBBdXNnZXNjaGxvc3NlbmUgUmFzc2VuCisKKyNkZWZpbmUgU1JfSU5DTFVERV9SQUNFICAgICAgICAgICAgICJyZXN0cl9yYWNlX2luIgorICAvLyBFaW5nZXNjaGxvc3NlbmUgUmFzc2VuCisKKyNkZWZpbmUgU1JfRVhDTFVERV9HVUlMRCAgICAgICAgICAgICJyZXN0cl9ndWlsZF9leCIKKyAgLy8gQXVzZ2VzY2hsb3NzZW5lIEdpbGRlbgorCisjZGVmaW5lIFNSX0lOQ0xVREVfR1VJTEQgICAgICAgICAgICAicmVzdHJfZ3VpbGRfaW4iCisgIC8vIEVpbmdlc2NobG9zc2VuZSBHaWxkZW4KKworI2RlZmluZSBTUl9HT09EICAgICAgICAgICAgICAgICAgICAgInJlc3RyX2dvb2QiCisgIC8vIEFsaWduIDwKKworI2RlZmluZSBTUl9CQUQgICAgICAgICAgICAgICAgICAgICAgInJlc3RyX2JhZCIKKyAgLy8gQWxpZ24gPgorCisjZGVmaW5lIFNSX0ZSRUVfSEFORFMgICAgICAgICAgICAgICAicmVzdHJfaGFuZHMiCisgIC8vIEJlbm9ldGlndGUgZnJlaWUgSGFlbmRlCisKKyNkZWZpbmUgU1JfU0VFUiAgICAgICAgICAgICAgICAgICAgICJyZXN0cl9zZWVyIgorICAvLyBNdXNzIFNlaGVyIHNlaW4KKworI2RlZmluZSBTUl9NSU5fU0laRSAgICAgICAgICAgICAgICAgIm1pbl9zaXplIgorICAvLyBNaW5kZXN0Z3JvZXNzZQorCisjZGVmaW5lIFNSX01BWF9TSVpFICAgICAgICAgICAgICAgICAibWF4X3NpemUiCisgIC8vIE1heGltYWxncm9lc3NlCisKKyNkZWZpbmUgU1JfUFJPUCAgICAgICAgICAgICAgICAgICAgICJyZXN0cl9wcm9wZXJ0aWVzIgorICAvLyBXZXJ0ZSBiZWxpZWJpZ2VyIFByb3BlcnRpZXMKKworI2RlZmluZSBTUl9RVUVTVCAgICAgICAgICAgICAgICAgICAgInJlc3RyX3F1ZXN0cyIKKyAgLy8gUXVlc3QgYmVzdGFuZGVuCisKKyNkZWZpbmUgU1JfTUlOSVFVRVNUICAgICAgICAgICAgICAgICJyZXN0cl9taW5pcXVlc3RzIgorICAvLyBNaW5pcXVlc3QgZ2Vsb2VzdAorCisvLyA9PT09PSBTa2lsbCBNb2RpZmllcjogPT09PT0KKworI2RlZmluZSBTTV9SQUNFICAgICAgICAgICAgICAgICAgICAgIm1vZGlmeV9yYWNlIgorICAvLyBSYXNzZW5zcGV6aWZpc2NoZQorICAvLyBCZXNvbmRlcmhlaXRlbgorCisvLyA9PT09PSBGdWVyIGRhcyBBdHRhY2stQnVzeS1IYW5kbGluZzogPT09PT0KKworI2RlZmluZSBOT19BVFRBQ0tfQlVTWV9TRVQgICAgICAgICAgMHgwMDEKKyNkZWZpbmUgTk9fQVRUQUNLX0JVU1lfUVVFUlkgICAgICAgIDB4MDAyCisjZGVmaW5lIE5PX0FUVEFDS19CVVNZICAgICAgICAgICAgICAweDAwMworCisvLyA9PT09PSBNYWdpZS1BcnRlbjogPT09PT0KKworI2RlZmluZSBNVF9BTkdSSUZGICAgICAgICAgICAgICAgICAgIm10X2FuZ3JpZmYiCisjZGVmaW5lIE1UX0JFSEVSUlNDSFVORyAgICAgICAgICAgICAibXRfYmVoZXJyc2NodW5nIgorI2RlZmluZSBNVF9CRVNDSFdPRVJVTkcgICAgICAgICAgICAgIm10X2Jlc2Nod29lcnVuZyIKKyNkZWZpbmUgTVRfQkVXRUdVTkcgICAgICAgICAgICAgICAgICJtdF9iZXdlZ3VuZyIKKyNkZWZpbmUgTVRfQ1JFQVRJT04gICAgICAgICAgICAgICAgICJtdF9jcmVhdGlvbiIKKyNkZWZpbmUgTVRfSEVJTFVORyAgICAgICAgICAgICAgICAgICJtdF9oZWlsdW5nIgorI2RlZmluZSBNVF9IRUxMU0lDSFQgICAgICAgICAgICAgICAgIm10X2hlbGxzaWNodCIKKyNkZWZpbmUgTVRfSUxMVVNJT04gICAgICAgICAgICAgICAgICJtdF9pbGx1c2lvbiIKKyNkZWZpbmUgTVRfUFNZQ0hPICAgICAgICAgICAgICAgICAgICJtdF9wc3ljaG8iCisjZGVmaW5lIE1UX1NBS1JBTCAgICAgICAgICAgICAgICAgICAibXRfc2FrcmFsIgorI2RlZmluZSBNVF9TQ0hVVFogICAgICAgICAgICAgICAgICAgIm10X3NjaHV0eiIKKyNkZWZpbmUgTVRfVkVSV0FORExVTkcgICAgICAgICAgICAgICJtdF92ZXJ3YW5kbHVuZyIKKworI2RlZmluZSBNVF9NSVNDICAgICAgICAgICAgICAgICAgICAgIm10X21pc2MiCisKKy8vID09PT09IERlZmluZXMgZnVlciBGaW5kR3JvdXAoKSA9PT09PQorCisjZGVmaW5lIEZHX0VORU1JRVMgICAgICAgICAgICAgICAgICAtMQorI2RlZmluZSBGR19GUklFTkRTICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBGR19BTEwgICAgICAgICAgICAgICAgICAgICAgMAorCisvLyA9PT09PT09PSBPQlNPTEVURSBQcm9wZXJ0aWVzIC8gRGVmaW5lcyA9PT09PT09PT09PT09CisvLyBQcm9wIHdpcmQgbmljaHQgbWVociBnZW51dHp0LCBpc3QgYWJlciBub2NoIGZ1ZXIgL3N0ZC9wbGF5ZXIvYmFzZS5jIG5vZXRpZywKKy8vIHVtIGRlbiBTQVZFLVN0YXR1cyBpbiBkZW4gU3BpZWxlci1Qcm9wcyB6dSBsb2VzY2hlbi4KKyNkZWZpbmUgUF9HVUlMRF9QUkVWRU5UU19SQUNFU0tJTEwgICJndWlsZF9wcmV2ZW50c19yYWNlc2tpbGwiCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL25ld3MuaCBiL3N5cy9uZXdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgwODVhMQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9uZXdzLmgKQEAgLTAsMCArMSwzNiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIG5ld3MuaCAtLSBEZWZpbml0aW9uZW4gZnVlciBkaWUgWmVpdHVuZworLy8KKy8vICRJZDogbmV3cy5oIDg4MDkgMjAxNC0wNS0wOCAxOTo1Mjo0OFogWmVzc3RyYSAkCisKKyNkZWZpbmUgR19OQU1FIDAKKyNkZWZpbmUgR19PV05FUiAxCisjZGVmaW5lIEdfU0FWRUZJTEUgMgorI2RlZmluZSBHX0VYUElSRSAzCisjZGVmaW5lIEdfREVMRVRFUlMgNCAKKyNkZWZpbmUgR19XUklURVJTIDUKKyNkZWZpbmUgR19SRUFERVJTIDYKKyNkZWZpbmUgR19ETEVWRUwgNworI2RlZmluZSBHX1dMRVZFTCA4CisjZGVmaW5lIEdfUkxFVkVMIDkKKyNkZWZpbmUgR19NQVhfTVNHIDEwCisjaWZkZWYgVEVTVElORworI2RlZmluZSBHX01BWF9OVU0gMTEKKyNkZWZpbmUgR19NRVNTQUdFUyAxMgorI2Vsc2UKKyNkZWZpbmUgR19NRVNTQUdFUyAxMQorI2VuZGlmCisKKyNkZWZpbmUgTV9CT0FSRCAwCisjZGVmaW5lIE1fV1JJVEVSIDEKKyNkZWZpbmUgTV9JRCAyCisjZGVmaW5lIE1fVElNRSAzCisjZGVmaW5lIE1fVElUTEUgNAorI2RlZmluZSBNX01FU1NBR0UgNQorCitzdGF0aWMgc3RyaW5nIHVzZXJfZXVpZCgpOworc3RhdGljIHZvaWQgc2F2ZV9ncm91cF9saXN0KCk7CitzdGF0aWMgdm9pZCBzYXZlX2dyb3VwKHN0cmluZyBncnAsbWl4ZWQgZ3JvdXApOworc3RhdGljIG1peGVkIGxvYWRfZ3JvdXAoc3RyaW5nIG5hbWUpOworICAgICAgICAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3lzL25vdGlmeV9mYWlsLmggYi9zeXMvbm90aWZ5X2ZhaWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2QxNzg2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL25vdGlmeV9mYWlsLmgKQEAgLTAsMCArMSwyMCBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIG5vdGlmeV9mYWlsaCAtLSBzeW0uIEtvbnN0YW50ZW4gZnVlciBub3RpZnlfZmFpbCgpCisvLworLy8gJElkOiBkZWZpbmVzLmggNjQxNSAyMDA3LTA4LTEwIDE5OjI0OjA0WiBaZXNzdHJhICQKKworI2lmbmRlZiBfTk9USUZZX0ZBSUxfSF8KKyNkZWZpbmUgX05PVElGWV9GQUlMX0hfCisKKy8vIFByaW9yaXRhZXRlbiAvICdOaWNlIGxldmVscycgdm9uIG5vdGlmeV9mYWlsKClzOgorLy8gV2llICduaWNlJyBiaW4gaWNoPyBKZSBncm9lc3NlcmUgWmFobC9Qcmlvcml05HQsIGRlc3RvIHdlbmlnIGxpZWIuIDstKQorI2RlZmluZSBORl9OTF9OT05FICAgLTEgICAvL21heCAnbmljZW5lc3MnLCB3aXJkIHZvbiBhbGxlbSB1ZWJlcnNjaHJpZWJlbgorI2RlZmluZSBORl9OTF9PV04gICAgMTAwICAvL2VpZ2VuZXMgT2JqZWt0IChzb3VsIHZlcmJlbikgdWViZXJzY2hyZWliZW4ga2F1bSB3YXMKKyNkZWZpbmUgTkZfTkxfVEhJTkcgIDEwMDAwMAorI2RlZmluZSBORl9OTF9ST09NICAgMTAwMDAwMCAvLyBSYWV1bWUgdWViZXJzY2hyZWliZW4gc29uc3RpZ2VuIEtyYW1zCisjZGVmaW5lIE5GX05MX0xJVklORyAxMDAwMDAwMCAvLyBMZWJld2VzZW4gdWViZXJzY2hyZWliZW4gYXVjaCBSYWV1bWUKKyNkZWZpbmUgTkZfTkxfTUFYICAgIF9fSU5UX01BWF9fIC8vaG9lY2hzdGUgUHJpb3JpdGFldCwgdWViZXJzY2hyZWlidCBhbGxlcworCisjZW5kaWYgLyogX05PVElGWV9GQUlMX0hfICovCisKZGlmZiAtLWdpdCBhL3N5cy9ucGMuaCBiL3N5cy9ucGMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTY1OTMwCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL25wYy5oCkBAIC0wLDAgKzEsNjAgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBucGMuaCAtLSBEZWZpbml0b25lbiBmdWVyIE5QQ3MKKy8vCisvLyAkSWQ6IG5wYy5oIDY3MDkgMjAwOC0wMi0wMiAyMjoxNDowOFogWmVzc3RyYSAkCisKKyNpZm5kZWYgX05QQ19IXworI2RlZmluZSBfTlBDX0hfCisKKyNkZWZpbmUgREVGQVVMVF9JTkZPICJcbmRlZmF1bHQgaW5mbyIKKyNkZWZpbmUgREVGQVVMVF9OT0lORk8gIlxuZGVmYXVsdCBub2luZm8iCisjZGVmaW5lIFBfUFJFX0lORk8gICAgICAgICAgICJucGNfcHJlX2luZm8iCisjZGVmaW5lIFBfTlBDX0lORk8gICAgICAgICAgICJucGNfaW5mbyIKKworI2RlZmluZSBQX05QQyAgICAgICAgICAgICAgICAiaXNfbnBjIgorCisjZGVmaW5lIFBfSEIgICAgICAgICAgICAgICAgICJoYiIKKyNkZWZpbmUgUF9JTkZPICAgICAgICAgICAgICAgImluZm8iCisKKyNkZWZpbmUgUF9BR0dSRVNTSVZFICAgICAgICAgImFnZ3Jlc3NpdmUiCisKKyNkZWZpbmUgUF9TUEVMTFMgICAgICAgICAgICAgInNwZWxscyIKKyNkZWZpbmUgUF9TUEVMTFJBVEUgICAgICAgICAgInNwZWxscmF0ZSIKKworI2RlZmluZSBQX0NIQVRTICAgICAgICAgICAgICAiY2hhdHMiCisjZGVmaW5lIFBfQ0hBVF9DSEFOQ0UgICAgICAgICJjaGF0X2NoYW5jZSIKKyNkZWZpbmUgUF9BQ0hBVFMgICAgICAgICAgICAgImFjaGF0cyIKKyNkZWZpbmUgUF9BQ0hBVF9DSEFOQ0UgICAgICAgImFjaGF0X2NoYW5jZSIKKworI2RlZmluZSBQX1JFSkVDVCAgICAgICAgICAgICAicmVqZWN0IgorCisjZGVmaW5lIFBfREVGQVVMVF9JTkZPICAgICAgICJkZWZhdWx0X2luZm8iIC8vIFN0YW5kYXJkYW50d29ydCBmdWVyIEZyYWdlbgorI2RlZmluZSBQX0xPR19JTkZPICAgICAgICAgICAibG9nX2luZm8iCisKKyNkZWZpbmUgQ0xPTkVfTkVXICAgMHgxMDAwMDAwMCAgLyogVkVSQUxURVQhICovCisjZGVmaW5lIENMT05FX1dFQVIgIDB4MjAwMDAwMDAgIC8qIGFuemllaGVuICovCisjZGVmaW5lIENMT05FX1dJRUxEIDB4NDAwMDAwMDAgIC8qIHp1ZWNrZW4gKi8KKyNkZWZpbmUgQ0xPTkVfTk9fQ0hFQ0sgMHgwODAwMDAwMCAgLyogenVlY2tlbiBvZGVyIGFuemllaGVuIG9obmUgY2hlY2tzICovCisKKyNkZWZpbmUgTlBDX05FRURTX0lURU1fSU5JVCAibnBjOm5lZWQgaXRlbSBpbml0IgorCisjZW5kaWYKKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworI2lmbmRlZiBfTlBDX0hfUFJPVE9UWVBFU18KKyNkZWZpbmUgX05QQ19IX1BST1RPVFlQRVNfCisvLyBhdXMgbnBjL2luZm8uYworcHVibGljIHZhcmFyZ3Mgdm9pZCAgICBBZGRJbmZvKG1peGVkIGtleSwgbWl4ZWQgaW5mbywgc3RyaW5nIGluZGVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWl4ZWQgc2lsZW50LCBtaXhlZCBjYXNlYmFzZWQpOworcHVibGljIHZhcmFyZ3Mgdm9pZCAgICBBZGRTcGVjaWFsSW5mbyhtaXhlZCBrZXlzLCBzdHJpbmcgZnVuY3Rpb25uYW1lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGluZGVudCwgbWl4ZWQgc2lsZW50LCBtaXhlZCBjYXNlYmFzZWQgKTsKK3B1YmxpYyBpbnQgICAgICAgICAgICAgZnJhZ2Uoc3RyaW5nIHN0cik7CitwdWJsaWMgaW50ICAgICAgICAgICAgIGRvX2ZyYWdlKHN0cmluZyB0ZXh0KTsKK3B1YmxpYyB2b2lkICAgICAgICAgICAgUmVtb3ZlSW5mbyggc3RyaW5nIGtleSApOworcHVibGljIHZhcmFyZ3MgbWl4ZWQgICBHZXRJbmZvKHN0cmluZyBzdHIpOworLy8gYXVzIG5wYy9pdGVtcy5jCitwdWJsaWMgdmFyYXJncyBvYmplY3QgIEFkZEl0ZW0obWl4ZWQgZmlsZW5hbWUsIGludCByZWZyZXNoLCBtaXhlZCBwcm9wcyk7CisjZW5kaWYgLy8gX05QQ19IX1BST1RPVFlQRVNfCisjZW5kaWYgLy8gTkVFRF9QUk9UT1RZUEVTCisKZGlmZiAtLWdpdCBhL3N5cy9vYmplY3RfaW5mby5oIGIvc3lzL29iamVjdF9pbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU3ODc0NwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9vYmplY3RfaW5mby5oCkBAIC0wLDAgKzEsNzAgQEAKKyNpZm5kZWYgTFBDX09CSkVDVF9JTkZPX0hfCisjZGVmaW5lIExQQ19PQkpFQ1RfSU5GT19IXworCisvKiBEZWZpbml0aW9uIG9mIGFyZ3VtZW50IHZhbHVlcyBmb3Igb2JqZWN0X2luZm8oKQorICovCisKKyNpbmNsdWRlICJjb25maWd1cmF0aW9uLmgiCisKKy8qIE9iamVjdCBmbGFncyAqLworI2RlZmluZSBPSV9PTkNFX0lOVEVSQUNUSVZFICAgICAgICAgICAgIC0xCisjZGVmaW5lIE9JX1JFU0VUX1NUQVRFICAgICAgICAgICAgICAgICAgLTIKKyNkZWZpbmUgT0lfV0lMTF9DTEVBTl9VUCAgICAgICAgICAgICAgICAtMworI2RlZmluZSBPSV9MQU1CREFfUkVGRVJFTkNFRCAgICAgICAgICAgIC00CisjZGVmaW5lIE9JX1JFUExBQ0VEICAgICAgICAgICAgICAgICAgICAgLTUKKworLyogUHJvZ3JhbSBmbGFncyAqLworI2RlZmluZSBPSV9OT19JTkhFUklUICAgICAgICAgICAgICAgICAgIC0xMAorI2RlZmluZSBPSV9OT19DTE9ORSAgICAgICAgICAgICAgICAgICAgIC0xMQorI2RlZmluZSBPSV9OT19TSEFET1cgICAgICAgICAgICAgICAgICAgIC0xMgorI2RlZmluZSBPSV9TSEFSRV9WQVJJQUJMRVMgICAgICAgICAgICAgIC0xMworCisvKiBTd2FwcGluZyAqLworI2RlZmluZSBPSV9TV0FQUEVEICAgICAgICAgICAgICAgICAgICAgIC0yMAorI2RlZmluZSBPSV9QUk9HX1NXQVBQRUQgICAgICAgICAgICAgICAgIC0yMQorI2RlZmluZSBPSV9WQVJfU1dBUFBFRCAgICAgICAgICAgICAgICAgIC0yMgorI2RlZmluZSBPSV9TV0FQX05VTSAgICAgICAgICAgICAgICAgICAgIC0yMworCisvKiBUaW1pbmcgKi8KKyNkZWZpbmUgT0lfTkVYVF9SRVNFVF9USU1FICAgICAgICAgICAgICAtMzAKKyNkZWZpbmUgT0lfTkVYVF9DTEVBTlVQX1RJTUUgICAgICAgICAgICAtMzEKKyNkZWZpbmUgT0lfTEFTVF9SRUZfVElNRSAgICAgICAgICAgICAgICAtMzIKKworLyogT2JqZWN0IGxpc3QgKi8KKyNkZWZpbmUgT0lfT0JKRUNUX05FWFQgICAgICAgICAgICAgICAgICAtNDAKKyNkZWZpbmUgT0lfT0JKRUNUX1BSRVYgICAgICAgICAgICAgICAgICAtNDEKKyNkZWZpbmUgT0lfT0JKRUNUX1BPUyAgICAgICAgICAgICAgICAgICAtNDIKKworLyogU2hhZG93cyAqLworI2RlZmluZSBPSV9TSEFET1dfTkVYVCAgICAgICAgICAgICAgICAgIC01MAorI2RlZmluZSBPSV9TSEFET1dfUFJFViAgICAgICAgICAgICAgICAgIC01MQorI2RlZmluZSBPSV9TSEFET1dfQUxMICAgICAgICAgICAgICAgICAgIC01MgorCisvKiBTdGF0aXN0aWNzIGFib3V0IHRoZSBvYmplY3QgKi8KKyNkZWZpbmUgT0lfT0JKRUNUX1JFRlMgICAgICAgICAgICAgICAgICAtNjAKKyNkZWZpbmUgT0lfVElDS1MgICAgICAgICAgICAgICAgICAgICAgICAtNjEKKyNkZWZpbmUgT0lfR0lHQVRJQ0tTICAgICAgICAgICAgICAgICAgICAtNjIKKyNkZWZpbmUgT0lfREFUQV9TSVpFICAgICAgICAgICAgICAgICAgICAtNjMKKyNkZWZpbmUgT0lfREFUQV9TSVpFX1RPVEFMICAgICAgICAgICAgICAtNjQKKworLyogU3RhdGlzdGljcyBhYm91dCB0aGUgcHJvZ3JhbSAqLworI2RlZmluZSBPSV9QUk9HX1JFRlMgICAgICAgICAgICAgICAgICAgIC03MAorCisjZGVmaW5lIE9JX05VTV9GVU5DVElPTlMgICAgICAgICAgICAgICAgLTcxCisjZGVmaW5lIE9JX05VTV9WQVJJQUJMRVMgICAgICAgICAgICAgICAgLTcyCisjZGVmaW5lIE9JX05VTV9TVFJJTkdTICAgICAgICAgICAgICAgICAgLTczCisjZGVmaW5lIE9JX05VTV9JTkhFUklURUQgICAgICAgICAgICAgICAgLTc0CisjZGVmaW5lIE9JX05VTV9JTkNMVURFRCAgICAgICAgICAgICAgICAgLTc1CisKKyNkZWZpbmUgT0lfU0laRV9GVU5DVElPTlMgICAgICAgICAgICAgICAtNzYKKyNkZWZpbmUgT0lfU0laRV9WQVJJQUJMRVMgICAgICAgICAgICAgICAtNzcKKyNkZWZpbmUgT0lfU0laRV9TVFJJTkdTICAgICAgICAgICAgICAgICAtNzgKKyNkZWZpbmUgT0lfU0laRV9TVFJJTkdTX0RBVEEgICAgICAgICAgICAtNzkKKyNkZWZpbmUgT0lfU0laRV9TVFJJTkdTX0RBVEFfVE9UQUwgICAgICAtODAKKyNkZWZpbmUgT0lfU0laRV9JTkhFUklURUQgICAgICAgICAgICAgICAtODEKKyNkZWZpbmUgT0lfU0laRV9JTkNMVURFRCAgICAgICAgICAgICAgICAtODIKKworI2RlZmluZSBPSV9QUk9HX1NJWkUgICAgICAgICAgICAgICAgICAgIC04MworI2RlZmluZSBPSV9QUk9HX1NJWkVfVE9UQUwgICAgICAgICAgICAgIC04NAorCisjZW5kaWYgLyogTFBDX09CSkVDVF9JTkZPX0hfICovCmRpZmYgLS1naXQgYS9zeXMvb2JqZWN0aW5mby5oIGIvc3lzL29iamVjdGluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTJjMzNiCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL29iamVjdGluZm8uaApAQCAtMCwwICsxLDgyIEBACisjaWZuZGVmIExQQ19PQkpFQ1RJTkZPX0hfCisjZGVmaW5lIExQQ19PQkpFQ1RJTkZPX0hfCisKKy8qIERlZmluaXRpb24gb2YgYXJndW1lbnQgdmFsdWVzIGZvciBvYmplY3RfaW5mbygpIGFuZAorICogb2YgdGhlIGluZGljZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzdWx0IGFycmF5cy4KKyAqLworCisvKiBQb3NzaWJsZSB0eXBlcyBvZiBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQgZnJvbSBvYmplY3RfaW5mbygpCisgKi8KKyNkZWZpbmUgT0lORk9fQkFTSUMgICAgIDAKKyNkZWZpbmUgT0lORk9fUE9TSVRJT04gIDEKKyNkZWZpbmUgT0lORk9fTUVNT1JZICAgIDIKKworCisvKiBJbmRpY2VzIGluIHRoZSBhcnJheSByZXN1bHRpbmcgZnJvbSBPSU5GT19CQVNJQworICovCisKKyNkZWZpbmUgT0lCX0hFQVJUX0JFQVQgICAgICAgICAgMAorI2RlZmluZSBPSUJfSVNfV0laQVJEICAgICAgICAgICAxCisjZGVmaW5lIE9JQl9FTkFCTEVfQ09NTUFORFMgICAgIDIKKyNkZWZpbmUgT0lCX0NMT05FICAgICAgICAgICAgICAgMworI2RlZmluZSBPSUJfREVTVFJVQ1RFRCAgICAgICAgICA0CisjZGVmaW5lIE9JQl9TV0FQUEVEICAgICAgICAgICAgIDUKKyNkZWZpbmUgT0lCX09OQ0VfSU5URVJBQ1RJVkUgICAgNgorI2RlZmluZSBPSUJfUkVTRVRfU1RBVEUgICAgICAgICA3CisjZGVmaW5lIE9JQl9XSUxMX0NMRUFOX1VQICAgICAgIDgKKyNkZWZpbmUgT0lCX0xBTUJEQV9SRUZFUkVOQ0VEICAgOQorI2RlZmluZSBPSUJfU0hBRE9XICAgICAgICAgICAgIDEwCisjZGVmaW5lIE9JQl9SRVBMQUNFRCAgICAgICAgICAgMTEKKyNkZWZpbmUgT0lCX05FWFRfUkVTRVQgICAgICAgICAxMgorI2RlZmluZSBPSUJfVElNRV9PRl9SRUYgICAgICAgIDEzCisjZGVmaW5lIE9JQl9SRUYgICAgICAgICAgICAgICAgMTQKKyNkZWZpbmUgT0lCX0dJR0FUSUNLUyAgICAgICAgICAxNQorI2RlZmluZSBPSUJfVElDS1MgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE9JQl9TV0FQX05VTSAgICAgICAgICAgMTcKKyNkZWZpbmUgT0lCX1BST0dfU1dBUFBFRCAgICAgICAxOAorI2RlZmluZSBPSUJfVkFSX1NXQVBQRUQgICAgICAgIDE5CisjZGVmaW5lIE9JQl9OQU1FICAgICAgICAgICAgICAgMjAKKyNkZWZpbmUgT0lCX0xPQURfTkFNRSAgICAgICAgICAyMQorI2RlZmluZSBPSUJfTkVYVF9BTEwgICAgICAgICAgIDIyCisjZGVmaW5lIE9JQl9QUkVWX0FMTCAgICAgICAgICAgMjMKKyNkZWZpbmUgT0lCX05FWFRfQ0xFQU5VUCAgICAgICAyNAorCisjZGVmaW5lIE9JQl9NQVggMjUgIC8qIE51bWJlciBvZiBPSUJfIHJlc3VsdCBlbGVtZW50cyAqLworCisKKy8qIEluZGljZXMgaW4gdGhlIGFycmF5IHJlc3VsdGluZyBmcm9tIE9JTkZPX1BPU0lUSU9OCisgKi8KKyNkZWZpbmUgT0lQX05FWFQgIDAKKyNkZWZpbmUgT0lQX1BSRVYgIDEKKyNkZWZpbmUgT0lQX1BPUyAgIDIKKworI2RlZmluZSBPSVBfTUFYIDMgIC8qIE51bWJlciBvZiBPSVBfIHJlc3VsdCBlbGVtZW50cyAqLworCisKKy8qIEluZGljZXMgaW4gdGhlIGFycmF5IHJlc3VsdGluZyBmcm9tIE9JTkZPX01FTU9SWQorICovCisjZGVmaW5lIE9JTV9SRUYgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE9JTV9OQU1FICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIE9JTV9QUk9HX1NJWkUgICAgICAgICAgICAyCisjZGVmaW5lIE9JTV9OVU1fRlVOQ1RJT05TICAgICAgICAzCisjZGVmaW5lIE9JTV9TSVpFX0ZVTkNUSU9OUyAgICAgICA0CisjZGVmaW5lIE9JTV9OVU1fVkFSSUFCTEVTICAgICAgICA1CisjZGVmaW5lIE9JTV9TSVpFX1ZBUklBQkxFUyAgICAgICA2CisjZGVmaW5lIE9JTV9OVU1fU1RSSU5HUyAgICAgICAgICA3CisjZGVmaW5lIE9JTV9TSVpFX1NUUklOR1MgICAgICAgICA4CisjZGVmaW5lIE9JTV9TSVpFX1NUUklOR1NfREFUQSAgICA5CisjZGVmaW5lIE9JTV9TSVpFX1NUUklOR1NfVE9UQUwgIDEwCisjZGVmaW5lIE9JTV9OVU1fSU5IRVJJVEVEICAgICAgIDExCisjZGVmaW5lIE9JTV9TSVpFX0lOSEVSSVRFRCAgICAgIDEyCisjZGVmaW5lIE9JTV9UT1RBTF9TSVpFICAgICAgICAgIDEzCisjZGVmaW5lIE9JTV9EQVRBX1NJWkUgICAgICAgICAgIDE0CisjZGVmaW5lIE9JTV9UT1RBTF9EQVRBX1NJWkUgICAgIDE1CisjZGVmaW5lIE9JTV9OT19JTkhFUklUICAgICAgICAgIDE2CisjZGVmaW5lIE9JTV9OT19DTE9ORSAgICAgICAgICAgIDE3CisjZGVmaW5lIE9JTV9OT19TSEFET1cgICAgICAgICAgIDE4CisjZGVmaW5lIE9JTV9OVU1fSU5DTFVERVMgICAgICAgIDE5CisjZGVmaW5lIE9JTV9TSEFSRV9WQVJJQUJMRVMgICAgIDIwCisKKyNkZWZpbmUgT0lNX01BWCAyMSAgLyogTnVtYmVyIG9mIE9JTV8gcmVzdWx0IGVsZW1lbnRzICovCisKKyNlbmRpZiAvKiBMUENfT0JKRUNUSU5GT19IXyAqLwpkaWZmIC0tZ2l0IGEvc3lzL29sZHByb3BzIGIvc3lzL29sZHByb3BzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkMjAyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvb2xkcHJvcHMKQEAgLTAsMCArMSw0IEBACisKKy8vIHdlcmRlbiBhbGxlIGJlaWRlIGluIGtlaW5lbSAuYyBGaWxlIGJlbnV0enQuLi4KK1BfTUFYX1dDCitQX0NPTlRFTlQKZGlmZiAtLWdpdCBhL3N5cy9wYWdlci5oIGIvc3lzL3BhZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVmNjUyYQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wYWdlci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBwYWdlci5oIC0tIGdlbmVyaWMgcGFnZXIgaGVhZGVyCisvLworLy8gJElkOiBwYWdlci5oIDYxNDIgMjAwNy0wMS0zMSAyMDozNDozOVogWmVzc3RyYSAkCisKKyNpZm5kZWYgX19QQUdFUl9IX18KKyNkZWZpbmUgX19QQUdFUl9IX18KKworLy8gc2VsZWN0IGxhbmd1YWdlCisjZGVmaW5lIEdFUk1BTgorLy8jZGVmaW5lIEVOR0xJU0gKKworLy8gc2VsZWN0IG9wdGltaXphdGlvbgorI2RlZmluZSBPX1NQRUVECQkJLy8gc3BlZWQgb3B0aW1pemF0aW9uCisjZGVmaW5lIE9fU1BFRURfVVAJCS8vIGFkZGl0aW9uYWwgc3BlZWQgdXAgCisJCQkJLy8gKHdvcmtzIG9ubHkgd2l0aCBPX1NQRUVEKQorI2RlZmluZSBNQVhfTElORV9SRUFECTYyNQkvLyBtYXguIGxpbmVzIHRvIGJlIHJlYWQgYnkKKwkJCQkvLyByZWFkX2ZpbGUoKSA1MGsvODBjCisKKy8vIHRoZSBwYWdlciBpbmZvIHN0cnVjdHVyZQorI2RlZmluZSBURVhUICAgIDAJCS8vIHRoZSBmaWxlbmFtZSBvciBzdHJpbmcKKyNkZWZpbmUgRklMRSAgICAxCQkvLyAxID09IGZpbGUsIDAgPSBzdHJpbmcKKyNkZWZpbmUgQ1VSTCAgICAyCQkvLyBjdXJyZW50IGxpbmUKKyNkZWZpbmUgTUFYTCAgICAzCQkvLyBsYXN0IGxpbmUKKyNkZWZpbmUgUEFHRSAgICA0CQkvLyBwYWdlIGxlbmd0aAorI2RlZmluZSBSRUdYCTUJCS8vIGxhc3QgcmVndWxhciBleHByZXNzaW9uCisjZGVmaW5lIENUUkwJNgkJLy8gZnVuY3Rpb24gdG8gZ2l2ZSBjb250cm9sCisjZGVmaW5lIENBUkcJNwkJLy8gYXJyYXkgb2YgYXJncyB0byBDVFJMCisjZGVmaW5lIEZMQUcJOAkJLy8gc3BlY2lhbCBmbGFncworIyBkZWZpbmUgRV9QUk9NUFQgMSAgICAgICAgICAgICAvLyAgIHByb21wdCBhdCBlbmQgb2YgZmlsZQorIyBkZWZpbmUgRV9DQVQgICAgMiAgICAgICAgICAgICAvLyAgIGRvIG5vdCBwcm9tcHQgZm9yIG1vcmUKKyMgZGVmaW5lIEVfQUJTICAgIDQgICAgICAgICAgICAgLy8gICBzaG93IGxpbmUgbnVtYmVycyBhdCBwcm9tcHQKKyNpZmRlZiBPX1NQRUVECisjIGRlZmluZSBKVU5LCQk5CS8vIGp1bmsgaW5kZXgKKyMgZGVmaW5lIEpVTktTSVpFCTEwCS8vIHNpemUgb2Ygc3RyaW5nIGp1bmtzCisjZW5kaWYKKworI2lmZGVmIEdFUk1BTgorIyBkZWZpbmUgTVNHX1BST01QVAkiLS1tZWhyLS0iCisjIGRlZmluZSBNU0dfVE9QCSJBTkZBTkcgIgorIyBkZWZpbmUgTVNHX0JPVFRPTQkiRU5ERSAiCisjIGRlZmluZSBNU0dfT09QUwkiT2hoLCBkYSBsaWVmIGV0d2FzIHNjaGllZiEiCisjZWxzZQorIyBkZWZpbmUgTVNHX1BST01QVAkiLS1tb3JlLS0iCisjIGRlZmluZSBNU0dfVE9QCSJUT1AgIgorIyBkZWZpbmUgTVNHX0JPVFRPTQkiQk9UVE9NICIKKyMgZGVmaW5lIE1TR19PT1BTCSJPb3BzLCBzb21ldGhpbmcgd2VudCB3cm9uZyEiCisjZW5kaWYKKworI2luY2x1ZGUgPHBsYXllci9iYXNlLmg+CisKKyNkZWZpbmUgUEFHRUxFTkdUSAkodGhpc19pbnRlcmFjdGl2ZSgpID8gXAorCQkJICAgdGhpc19pbnRlcmFjdGl2ZSgpLT5RdWVyeVByb3AoUF9TQ1JFRU5TSVpFKSA6IFwKKwkJCSAgIChpbnRlcmFjdGl2ZSh0aGlzX3BsYXllcigpKSA/IFwKKwkJCSAgICAgdGhpc19wbGF5ZXIoKS0+UXVlcnlQcm9wKFBfU0NSRUVOU0laRSkgOiAyMCkpCisKKy8vIG9sZF9leHBsb2RlKCkgbXVzdCBjcmVhdGUgYW4gYXJyYXkgdGhhdCBpbXBsb2RlKCkncyB0byB0aGUgc2FtZSBzdHJpbmcKKyNkZWZpbmUgRXhwbG9kZShzLHgpCShleHBsb2RlKHMseCkpCisKKyNlbmRpZiAvLyBfX1BBR0VSX0hfXworCisKZGlmZiAtLWdpdCBhL3N5cy9wYXRoZC5oIGIvc3lzL3BhdGhkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc1ZmNlYgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wYXRoZC5oCkBAIC0wLDAgKzEsMTMgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBwYXRoZC5oIC0gc3ltLiBLb25zdGFudGVuIGZ1ZXIgZGVuIFBBVEhECisvLworLy8gJElkOiBwYXRoZC5oIDY0MTUgMjAwNy0wOC0xMCAxOToyNDowNFogWmVzc3RyYSAkCisKKyNpZm5kZWYgX1BBVEhEX0hfCisjZGVmaW5lIF9QQVRIRF9IXworCisjZGVmaW5lIFBBVEhEICIvcC9kYWVtb24vcGF0aGQiCisKKyNlbmRpZiAvKiBfUEFUSERfSF8gKi8KKwpkaWZmIC0tZ2l0IGEvc3lzL3Bnc3FsLmggYi9zeXMvcGdzcWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTdjZGY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3Bnc3FsLmgKQEAgLTAsMCArMSwyMyBAQAorI2lmbmRlZiBfUEdTUUxfSAorI2RlZmluZSBfUEdTUUxfSAorCisvKiBEZWZpbml0aW9ucyBmb3IgdGhlIFBvc3RncmVTUUwgZWZ1bnMgKi8KKworI2RlZmluZSBQR1JFU19FTVBUWV9RVUVSWSAgICAwICAvKiBVbmltcGxlbWVudGVkICovCisjZGVmaW5lIFBHUkVTX0NPTU1BTkRfT0sgICAgIDEKKyNkZWZpbmUgUEdSRVNfVFVQTEVTX09LICAgICAgMgorI2RlZmluZSBQR1JFU19DT1BZX09VVCAgICAgICAzICAvKiBVbmltcGxlbWVudGVkICovCisjZGVmaW5lIFBHUkVTX0NPUFlfSU4gICAgICAgIDQgIC8qIFVuaW1wbGVtZW50ZWQgKi8KKyNkZWZpbmUgUEdSRVNfQkFEX1JFU1BPTlNFICAgNQorI2RlZmluZSBQR1JFU19OT05GQVRBTF9FUlJPUiA2CisjZGVmaW5lIFBHUkVTX0ZBVEFMX0VSUk9SICAgIDcKKyNkZWZpbmUgUEdSRVNfTk9USUNFICAgICAgICA5OQorCisjZGVmaW5lIFBHQ09OTl9TVUNDRVNTIDEwMAorI2RlZmluZSBQR0NPTk5fRkFJTEVEICAxMDEKKyNkZWZpbmUgUEdDT05OX0FCT1JURUQgMTAyCisKKyNkZWZpbmUgUEdfUkVTVUxUX0FSUkFZIDAKKyNkZWZpbmUgUEdfUkVTVUxUX01BUCAgIDEKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyLmggYi9zeXMvcGxheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRiNDBkMQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIuaApAQCAtMCwwICsxLDU4IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyLmggLS0gcGxheWVyIG9iamVjdCBkZWZpbmVzCisvLworLy8gJElkOiBwbGF5ZXIuaCA3Mzg2IDIwMTAtMDEtMjIgMTQ6NTk6MDVaIFplc3N0cmEgJAorCisjaWZuZGVmIF9QTEFZRVJfSF8KKyNkZWZpbmUgX1BMQVlFUl9IXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjdW5kZWYgTkVFRF9QUk9UT1RZUEVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgb25seSB0aGUgcHJvcGVydGllcyBoZXJlISEKKyNkZWZpbmUgUExBWUVSX1RNUF9ORUVEX1BST1RPVFlQRVMKKyNlbmRpZgorCisjaW5jbHVkZSAiL3N5cy9wbGF5ZXIvYmFzZS5oIgorI2luY2x1ZGUgIi9zeXMvcGxheWVyL2Rlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiL3N5cy9wbGF5ZXIvbW92aW5nLmgiCisjaW5jbHVkZSAiL3N5cy9wbGF5ZXIvZmlsZXN5cy5oIgorI2luY2x1ZGUgIi9zeXMvcGxheWVyL3BvdGlvbi5oIgorI2luY2x1ZGUgIi9zeXMvcGxheWVyL3F1ZXN0LmgiCisjaW5jbHVkZSAiL3N5cy9wbGF5ZXIvc2tpbGxzLmgiCisjaW5jbHVkZSAiL3N5cy9wbGF5ZXIvdmlld2NtZC5oIgorI2luY2x1ZGUgIi9zeXMvcGxheWVyL2NvbW0uaCIKKyNpbmNsdWRlICIvc3lzL3BsYXllci9mYW8uaCIKKyNpbmNsdWRlIDxwbGF5ZXIvdXNlcl9maWx0ZXIuaD4KKyNpbmNsdWRlIDxkYWVtb24uaD4KKworI2lmZGVmIFBMQVlFUl9UTVBfTkVFRF9QUk9UT1RZUEVTCisjdW5kZWYgUExBWUVSX1RNUF9ORUVEX1BST1RPVFlQRVMKKyNkZWZpbmUgTkVFRF9QUk9UT1RZUEVTCisjZW5kaWYKKworI2RlZmluZSBQX0xBU1RfQ09NTUFORF9FTlYgICAgICAibGFzdF9jb21tYW5kX2VudiIKKyNkZWZpbmUgUF9ISVNUTUlOICAgICAgICAgICAgICAgImhpc3RtaW4iCisjZGVmaW5lIFBfU0hPV19BTElBU19QUk9DRVNTSU5HICJzaG93X2FsaWFzX3Byb2Nlc3NpbmciCisjZGVmaW5lIFBfREVGQVVMVF9OT1RJRllfRkFJTCAgICJkZWZhdWx0X25vdGlmeV9mYWlsIgorI2RlZmluZSBQX05FVERFQURfSU5GTyAgICAgICAgICAibmV0ZGVhZF9pbmZvIgorI2RlZmluZSBQX05FVERFQURfRU5WICAgICAgICAgICAibmV0ZGVhZF9lbnYiCisjZGVmaW5lIFBfSVBfTkFNRSAgICAgICAgICAgICAgICJpcF9uYW1lIgorI2RlZmluZSBQX0xBU1RfS0lMTEVSICAgICAgICAgICAibGFzdF9raWxsZXIiCisjZGVmaW5lIFBfQUNUVUFMX05PVElGWV9GQUlMICAgICJhY3R1YWxfbm90aWZ5X2ZhaWwiCisjZGVmaW5lIFBfTEVQICAgICAgICAgICAgICAgICAgICJsZXAiCisjZGVmaW5lIFBfTkVXQklFX0dVSURFICAgICAgICAgICJuZXdiaWVfZ3VpZGUiCisKKyNkZWZpbmUgRGVjbGFyZUF1dG9sb2FkKG5hbWUscGFyYW0pIFwKKyAgbWxmcF9jcmVhdGUoKHtQX0FVVE9MT0FELG5hbWV9KSxwYXJhbSkKKworI2RlZmluZSBVbmRlY2xhcmVBdXRvbG9hZChuYW1lKSBcCisgIG1sZnBfcmVtb3ZlKCh7UF9BVVRPTE9BRH0pLG5hbWUpCisKKyNkZWZpbmUgUXVlcnlBdXRvbG9hZChuYW1lKSBcCisgIG1sZnBfcXVlcnkoKHtQX0FVVE9MT0FELG5hbWV9KSkKKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUwordmFyYXJncyBzdHJpbmcgX3VucGFyc2VkX2FyZ3MoaW50IGxldmVsKTsKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvYmFzZS5oIGIvc3lzL3BsYXllci9iYXNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YyOGNiNAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvYmFzZS5oCkBAIC0wLDAgKzEsMTI0IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyL2Jhc2UuaCAtLSBwbGF5ZXIgYmFzZSBoZWFkZXIKKy8vCisvLyAkSWQ6IGJhc2UuaCA4NDg3IDIwMTMtMDUtMjEgMTk6MTU6NTJaIFplc3N0cmEgJAorCisjaWZuZGVmIF9fUExBWUVSX0JBU0VfSF9fCisjZGVmaW5lIF9fUExBWUVSX0JBU0VfSF9fCisKKy8vIGRhIGRpZXNlcyBGaWxlIHZvbSBNYXN0ZXIgaW5rbHVkaWVydCB3aXJkIHVuZCBkYW5uIGRpZSBTdGFuZGFyZC1JbmNsdWRlLQorLy8gdmVyemVpY2huaXNzZSBub2NoIG5pY2h0IGdlc2V0enQgc2luZCwgZGFyZiBkaWVzZXMgRmlsZSBhdWNoIG51ciBkaWUgYWJzLgorLy8gTmFtZW4gdmVyd2VuZGVuLiAqc2V1ZnoqCisjaW5jbHVkZSAiL3N5cy9wbGF5ZXIvY2FuLmgiCisjaW5jbHVkZSAiL3N5cy9wbGF5ZXIvdGVsbmV0bmVnLmgiCisKKyNkZWZpbmUgSEFVU1ZFUldBTFRFUiAgICIvZC9zZWhlci9oYWV1c2VyL2hhdXN2ZXJ3YWx0ZXIiCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX0tJTExTICAgICAgICAgICAgICAicGxheWVya2lsbHMiCisKKyNkZWZpbmUgUF9aQVBfTVNHICAgICAgICAgICAgInphcF9tc2ciCisjZGVmaW5lIFBfQVdBWSAgICAgICAgICAgICAgICJhd2F5IgorI2RlZmluZSBQX05PX1RPUExJU1QgICAgICAgICAibm9fdG9wbGlzdCIKKyNkZWZpbmUgUF9DQUxMRURfRlJPTV9JUCAgICAgImNhbGxlZF9mcm9tX2lwIgorI2RlZmluZSBQX01BUlJJRUQgICAgICAgICAgICAibWFycmllZCIKKyNkZWZpbmUgUF9TSUJMSU5HUyAgICAgICAgICAgInNpYmxpbmdzIgorI2RlZmluZSBQX1JBQ0VfREVTQ1JJUFRJT04gICAicmFjZWRlc2NyIgorI2RlZmluZSBQX1JBQ0VTVFJJTkcgICAgICAgICAicmFjZXN0cmluZyIKKworI2RlZmluZSBQX1dBSVRGT1IgICAgICAgICAgICAid2FpdGZvciIKKyNkZWZpbmUgUF9XQUlURk9SX1JFQVNPTiAgICAgIndhaXRmb3JfcmVhc29uIgorI2RlZmluZSBQX1dBSVRGT1JfRkxBR1MgICAgICAid2FpdGZvcl9mbGFncyIKKyNkZWZpbmUgUF9WSVNVQUxCRUxMICAgICAgICAgInZpc3VhbGJlbGwiCisjZGVmaW5lIFBfTE9DQUxDTURTICAgICAgICAgICJsb2NhbGNtZHMiCisjZGVmaW5lIFBfQ0xPQ0tNU0cgICAgICAgICAgICJjbG9ja21zZyIKKyNkZWZpbmUgUF9USU1FWk9ORSAgICAgICAgICAgInRpbWV6b25lIgorI2RlZmluZSBQX1NIT1dFTUFJTCAgICAgICAgICAic2hvd2VtYWlsIgorCisjZGVmaW5lIFBfTEFTVF9MT0dJTiAgICAgICAgICJsYXN0X2xvZ2luIgorI2RlZmluZSBQX0xBU1RfTE9HT1VUICAgICAgICAibGFzdF9sb2dvdXQiCisjZGVmaW5lIFBfREFJTFlfUExBWVRJTUUgICAgICJkYWlseV9wbGF5dGltZSIKKyNkZWZpbmUgUF9JR05PUkUgICAgICAgICAgICAgImlnbm9yZSIKKyNkZWZpbmUgUF9TSE9XX0VYSVRTICAgICAgICAgInNob3dfZXhpdHMiCisjZGVmaW5lIFBfV0FOVFNfVE9fTEVBUk4gICAgICJ3YW50c190b19sZWFybiIKKyNkZWZpbmUgUF9BVVRPTE9BRE9CSiAgICAgICAgImF1dG9sb2Fkb2JqIgorI2RlZmluZSBQX0FVVE9MT0FEICAgICAgICAgICAiYXV0b2xvYWQiCisjZGVmaW5lIFBfTUFJTEFERFIgICAgICAgICAgICJtYWlsYWRkciIKKyNkZWZpbmUgUF9IT01FUEFHRSAgICAgICAgICAgImhvbWVwYWdlIgorI2RlZmluZSBQX0lDUSAgICAgICAgICAgICAgICAiaWNxIgorI2RlZmluZSBQX01FU1NFTkdFUiAgICAgICAgICAibWVzc2VuZ2VyIgorI2RlZmluZSBQX0xPQ0FUSU9OICAgICAgICAgICAibG9jYXRpb24iCisKKyNkZWZpbmUgUF9GT0xMT1dfU0lMRU5UICAgICAgImZvbGxvd19zaWxlbnQiCisKKyNpZm5kZWYgUF9JTlZJUworI2RlZmluZSBQX0lOVklTICAgICAgICAgICAgICAiaW52aXMiCisjZW5kaWYKKworI2RlZmluZSBQX1NFQ09ORCAgICAgICAgICAgICAic2Vjb25kIgorI2RlZmluZSBQX1NFQ09ORF9NQVJLICAgICAgICAic2Vjb25kX21hcmsiCisjZGVmaW5lIFBfU0VDT05EX0xJU1QgICAgICAgICJzZWNvbmRfbGlzdCIKKyNkZWZpbmUgUF9NVURfTkVXQklFICAgICAgICAgIl9saWJfbXVkX25ld2JpZSIgIC8vIG5vdCBwbGF5ZWQgYSBtdWQgYmVmb3JlPworCisjZGVmaW5lIFBfVEVTVFBMQVlFUiAgICAgICAgICJ0ZXN0cGxheWVyIgorI2RlZmluZSBQX0FMTE9XRURfU0hBRE9XICAgICAiYWxsb3dlZF9zaGFkb3ciCisKKyNkZWZpbmUgUF9TVEFSVF9IT01FICAgICAgICAgInN0YXJ0X2hvbWUiCisjZGVmaW5lIFBfUFJBWV9ST09NICAgICAgICAgICJfbGliX3BfcHJheXJvb20iCisKKyNkZWZpbmUgUF9TSEVMTF9WRVJTSU9OICAgICAgInNoZWxsX3ZlcnNpb24iCisKKyNkZWZpbmUgUF9DTVNHICAgICAgICAgICAgICAgImNsb25lbXNnIgorI2RlZmluZSBQX0RNU0cgICAgICAgICAgICAgICAiZGVzdG1zZyIKKyNkZWZpbmUgUF9DTE9ORV9NU0cgICAgICAgICAgImNsb25lX21zZyIKKyNkZWZpbmUgUF9ERVNUUlVDVF9NU0cgICAgICAgImRlc3RydWN0X21zZyIKKworI2RlZmluZSBQX0NBUlJJRURfVkFMVUUgICAgICAiY2FycmllZCIKKworI2RlZmluZSBQX1BST01QVCAgICAgICAgICAgICAicHJvbXB0IgorCisjZGVmaW5lIFBfU0NSRUVOU0laRSAgICAgICAgICJzY3JlZW5zaXplIgorI2RlZmluZSBQX01PUkVfRkxBR1MgICAgICAgICAibW9yZV9mbGFncyIKKworI2RlZmluZSBQX05PX0FTQ0lJX0FSVCAgICAgICAibm9fYXNjaWlfYXJ0IgorCisjZGVmaW5lIFBfTEFTVF9RVUlUICAgICAgICAgICJsYXN0X3F1aXQiCisKKyNkZWZpbmUgUF9SRUFEX05FV1MgICAgICAgICAgInJlYWRfbmV3cyIKKworI2RlZmluZSBQX05FRURFRF9RUCAgICAgICAgICAibmVlZGVkX3FwIgorCisvL1RPRE86IFJlbW92ZSAtIFByb3BlcnR5IGlzIG5vdCBuZWVkZWQgYW55IG1vcmUuCisjZGVmaW5lIFBfVEVMTkVUX0tFRVBfQUxJVkUgICJzZW5kX3RlbG5ldF9rZWVwX2FsaXZlIgorCisjZW5kaWYgLy8gX19QTEFZRVJfQkFTRV9IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fUExBWUVSX0JBU0VfSF9QUk9UT19fCisjZGVmaW5lIF9fUExBWUVSX0JBU0VfSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKKwordm9pZCBzbWFydF9sb2coc3RyaW5nIG15bmFtZSwgc3RyaW5nIHN0cik7CitpbnQgUXVlcnlHdWVzdCgpOworaW50IGludmlzKHN0cmluZyBpbmZvcm0pOworaW50IHZpcyhzdHJpbmcgaW5mb3JtKTsKKwordmFyYXJncyBzdGF0aWMgdm9pZCBzdG9wX2hlYXJ0X2JlYXRzKG1peGVkIG9icyk7CitzdGF0aWMgdm9pZCByZXN0YXJ0X2hlYXJ0X2JlYXRzKCk7CisKK25vbWFzayBpbnQgcXVlcnlfaGNfcGxheSgpOwordmFyYXJncyBub21hc2sgdm9pZCBzZXRfaGNfcGxheShzdHJpbmcgc3RyLCBpbnQgdmFsKTsKK3N0cmluZyBTZXREZWZhdWx0SG9tZShzdHJpbmcgc3RyKTsKK3Byb3RlY3RlZCBzdHJpbmcgU2V0RGVmYXVsdFByYXlSb29tKHN0cmluZyBzdHIpOworCit2b2lkIHNhdmVfbWUobWl4ZWQgdmFsdWVfaXRlbXMpOworbm9tYXNrIG1peGVkIHF1ZXJ5X3JlYWxfbmFtZSgpOworcHJvdGVjdGVkIHZvaWQgY2FsbF9ub3RpZnlfcGxheWVyX2NoYW5nZShpbnQgcmVpbik7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9CQVNFX0hfUFJPVE9fXworCisjZW5kaWYvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9jYW4uaCBiL3N5cy9wbGF5ZXIvY2FuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGNjZTY5MwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvY2FuLmgKQEAgLTAsMCArMSwzNCBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9jYW4uaCAtLSB2YXJpb3VzIGFiaXRsaXRpZXMKKy8vCisvLyAkSWQ6IGNhbi5oIDc5MjQgMjAxMS0wOS0yNiAxMDowMjoyNlogWmVzc3RyYSAkCisKKyNpZm5kZWYgX19DQU5fSF9fCisjZGVmaW5lIF9fQ0FOX0hfXworCisvLyBwcm9wZXJ0aWVzCisjZGVmaW5lIFBfQ0FOX0ZMQUdTICAgICAgICAgICJjYW5fZmxhZ3MiCisKKy8vIGJpdG1hc2tzCisjZGVmaW5lIENBTl9FTU9URSAgMHgwMQorI2RlZmluZSBDQU5fRUNITyAgIDB4MDIKKyNkZWZpbmUgQ0FOX1JFTU9URSAweDA0CisjZGVmaW5lIENBTl9QUkVTQVkgMHgwOAorI2RlZmluZSBDQU5fUkVQT1JUX1NQICAgICAweDEwICAgICAvLyBTdGF0dXN1cGRhdGVzIGZ1ZXIgS1AKKyNkZWZpbmUgQ0FOX1JFUE9SVF9QT0lTT04gMHgyMCAgICAgLy8gU3RhdHVzdXBkYXRlcyBmdWVyIEdpZnQKKyNkZWZpbmUgQ0FOX1JFUE9SVF9XSU1QWSAgMHg0MCAgICAgLy8gU3RhdHVzdXBkYXRlcyBmdWVyIFZvcnNpY2h0CisjZGVmaW5lIENBTl9SRVBPUlRfV0lNUFlfRElSIDB4ODAgIC8vIFN0YXR1c3VwZGF0ZXMgZnVlciBWb3JzaWNodHJpY2h0dW5nCisKKyNlbmRpZiAvLyBfX0NBTl9IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fQ0FOX0hfUFJPVE9fXworI2RlZmluZSBfX0NBTl9IX1BST1RPX18KKworLy8gbm8gcHJvdG90eXBlcworCisjZW5kaWYgLy8gX19DQU5fSF9QUk9UT19fCisKKyNlbmRpZgkvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9jb21iYXQuaCBiL3N5cy9wbGF5ZXIvY29tYmF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFhYjJmYQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvY29tYmF0LmgKQEAgLTAsMCArMSwxNiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9jb21iYXQuaCAtLSBwcm90b3R5cGVzIGZvciBwbGF5ZXIgc3BlY2lmaWMgaXNzdWVzIG9mIGNvbWJhdAorLy8KKy8vICRJZDogY29tbS5oLHYgMy4zIDIwMDAvMDIvMDkgMTU6NTY6MjUgUGFkcmVpYyBFeHAgJAorCisjaWZuZGVmIF9fUExBWUVSX0NPTUJBVF9IX18KKyNkZWZpbmUgX19QTEFZRVJfQ09NQkFUX0hfXworCitwdWJsaWMgaW50IFF1ZXJ5UGxBdHRhY2tlZChvYmplY3QgcGwpOworCitwdWJsaWMgaW50IFJlZ2lzdGVySGVscGVyTlBDKG9iamVjdCBucGMsIGludCBmbGFncyk7CitwdWJsaWMgaW50IFVucmVnaXN0ZXJIZWxwZXJOUEMob2JqZWN0IG5wYyk7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9DT01CQVRfSF9fCisKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvY29tbS5oIGIvc3lzL3BsYXllci9jb21tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAzYjMxOQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvY29tbS5oCkBAIC0wLDAgKzEsODUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBwbGF5ZXIvY29tbS5oIC0tIGNvbW11bmljYXRpb24gbW9kdWxlIHByb3BlcnRpZXMKKy8vCisvLyAkSWQ6IGNvbW0uaCx2IDMuMyAyMDAwLzAyLzA5IDE1OjU2OjI1IFBhZHJlaWMgRXhwICQKKworI2lmbmRlZiBfX1BMQVlFUl9DT01NX0hfXworI2RlZmluZSBfX1BMQVlFUl9DT01NX0hfXworCisvLyBsaXZpbmcvY29tbS5oIGJyYXVjaGVuIHdpciBhdWNoLgorI2luY2x1ZGUgPGxpdmluZy9jb21tLmg+CisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX0lOVEVSTVVEICAgICAgICAgICAiaW50ZXJtdWQiIC8vIERvZXMgc2hlIGxpc3RlbiB0byBpdCA/CisjZGVmaW5lIFBfQlVGRkVSICAgICAgICAgICAgICJidWZmZXIiICAgLy8gaWdub3JlLSwgdGVsbC1idWZmZXIKKyNkZWZpbmUgUF9ERUFGICAgICAgICAgICAgICAgImRlYWYiICAgICAvLyBUYXViaGVpdAorI2RlZmluZSBQX1BFUk1fU1RSSU5HICAgICAgICAicGVybV9zdHJpbmciIC8vIEZ1ZXIgU3ByYWNoZmx1ZWNoZQorI2RlZmluZSBQX01FU1NBR0VfQkVFUCAgICAgICAibWVzc2FnZV9iZWVwIiAvLyB3ZW5uIGdlc2V0enQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuemFobCBkZXIgU2VrdW5kZW4gZGF6d2lzY2hlbgorI2RlZmluZSBQX01FU1NBR0VfUFJFUEVORCAgIm1lc3NhZ2VfcHJlcGVuZCIKKy8vIFdpbGwgZGVyIE1hZ2llciBNVF9ERUJVRyBzZWhlbj8KKyNkZWZpbmUgUF9XSVpfREVCVUcgICAgICAgICAgInN0ZF9wX3dpemRlYnVnIgorCisjZGVmaW5lIE1FU1NBR0VfQkVFUCAiXDAwNyIKKworLy8gZGVmaW5pdGlvbnMgZm9yIE1lc3NhZ2UoKQorCisjZGVmaW5lIE1TR0ZMQUdfQ0hBTk5FTCAweDAwMDEJLy8gbWVzc2FnZXMgZnJvbSBjaGFubmVsZC5jCisjZGVmaW5lIE1TR0ZMQUdfQ0hJU1QJMHgwMDAyCisjZGVmaW5lIE1TR0ZMQUdfU09VTAkweDAwMDQJLy8gbWVzc2FnZXMgZnJvbSBzb3VsLmMKKyNkZWZpbmUgTVNHRkxBR19SRU1PVEUJMHgwMDA4CS8vIHJlbW90ZSBlbW90ZXMKKyNkZWZpbmUgTVNHRkxBR19TSE9VVAkweDAwMTAJLy8gY29tbXVuaWNhdGlvbiBjb21tYW5kcworI2RlZmluZSBNU0dGTEFHX1RFTEwJMHgwMDIwCisjZGVmaW5lIE1TR0ZMQUdfU0FZCTB4MDA0MAorI2RlZmluZSBNU0dGTEFHX1dISVNQRVIgMHgwMDgwCisjZGVmaW5lIE1TR0ZMQUdfTUVDSE8JMHgwMTAwCisjZGVmaW5lIE1TR0ZMQUdfUlRFTEwJMHgwMjAwCS8vIHRlbGwgZnJvbSBvdGhlciBtdWQKKworI2RlZmluZSBNQVhfU0FWRURfTUVTU0FHRVMgIDUwCisjZGVmaW5lIE1BWF9TQVZFRF9DSEFUUyAgICAgMjAKKworLy8gV2FzIGdlaHQgaW4gZGVuIEtvYm9sZD8KKyNkZWZpbmUgTVNHRkxBR19DQUNIRQkoTVNHRkxBR19URUxMIHwgTVNHRkxBR19SRU1PVEUgfCBNU0dGTEFHX1dISVNQRVIgfCBNU0dGTEFHX1JURUxMKQorCisjZGVmaW5lIE1TR0ZMQUdfREVBRkNISyAoTVNHRkxBR19TSE9VVCB8IE1TR0ZMQUdfVEVMTCB8IE1TR0ZMQUdfU0FZIHwgTVNHRkxBR19XSElTUEVSIHwgTVNHRkxBR19DSEFOTkVMIHwgTVNHRkxBR19SVEVMTCkKKworLy8gUnVlY2tnYWJld2VydGUgdm9uIE1lc3NhZ2UoKQorI2RlZmluZSBNRVNTQUdFX09LCSAgICAgMQkvLyBhbGxlcyBrbGFyCisjZGVmaW5lIE1FU1NBR0VfQ0FDSEUJICAgICAwCS8vIE1lbGR1bmcgc3RlaHQgaW0gS29ib2xkCisjZGVmaW5lIE1FU1NBR0VfSUdOT1JFX1lPVSAgLTEJLy8gTWVsZHVuZy9TZW5kZXIgd2lyZCBpZ25vcmllcnQKKyNkZWZpbmUgTUVTU0FHRV9JR05PUkVfVkVSQiAtMgorI2RlZmluZSBNRVNTQUdFX0lHTk9SRV9NVUQgIC0zCisjZGVmaW5lIE1FU1NBR0VfREVBRgkgICAgLTQJLy8gRW1wZmFlbmdlciBob2VydCBuaWNodCB6dQorI2RlZmluZSBNRVNTQUdFX0NBQ0hFX0ZVTEwgIC01CS8vIEtvYm9sZCBrYW5uIG5pY2h0cyBtZWhyIG1lcmtlbgorCisvLyBGbGFncyBmdWVyIFN0YXR1c3JlcG9ydHMKKyNkZWZpbmUgRE9fUkVQT1JUX0hQICAgICAgICAgMHgxCisjZGVmaW5lIERPX1JFUE9SVF9TUCAgICAgICAgIDB4MgorI2RlZmluZSBET19SRVBPUlRfUE9JU09OICAgICAweDQKKyNkZWZpbmUgRE9fUkVQT1JUX1dJTVBZICAgICAgMHg4CisjZGVmaW5lIERPX1JFUE9SVF9XSU1QWV9ESVIgIDB4MTAKKworI2VuZGlmIC8vIF9fUExBWUVSX0NPTU1fSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9DT01NX0hfUFJPVE9fXworI2RlZmluZSBfX1BMQVlFUl9DT01NX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCisKK3Byb3RlY3RlZCB2YXJhcmdzIGludCBfcmVjdihvYmplY3Qgb2IsIHN0cmluZyBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFnLCBzdHJpbmcgaW5kZW50KTsKKwordmFyYXJncyBpbnQgTWVzc2FnZShzdHJpbmcgbXNnLCBpbnQgZmxhZywgc3RyaW5nIGluZGVudCwKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGNuYW1lLCBtaXhlZCBzZW5kZXIpOworCitwcm90ZWN0ZWQgdm9pZCBzdGF0dXNfcmVwb3J0KGludCB0eXBlLCBtaXhlZCB2YWwpOworcHJvdGVjdGVkIHZvaWQgX25vdGlmeShzdHJpbmcgbXNnLCBzdHJpbmcgYWN0aW9uKTsKKworI2VuZGlmIC8vIF9fUExBWUVSX0NPTU1fSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPWVBFUworCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyL2NvbW1hbmQuaCBiL3N5cy9wbGF5ZXIvY29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNDFiNTYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcGxheWVyL2NvbW1hbmQuaApAQCAtMCwwICsxLDM5IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyL2NvbW1hbmQuaCAtIENvbW1hbmRzICYgQ28KKy8vCisvLyAkSWQ6IGF0dHJpYnV0ZXMuaCA2MjgyIDIwMDctMDUtMDkgMjA6NTU6MTdaIFplc3N0cmEgJAorIAorI2lmbmRlZiBfX1BMQVlFUl9DT01NQU5EX0hfXworI2RlZmluZSBfX1BMQVlFUl9DT01NQU5EX0hfXworCisvLyBwcm9wZXJ0aWVzCisjZGVmaW5lIFBfRElTQUJMRV9DT01NQU5EUyAicF9saWJfZGlzYWJsZWNvbW1hbmRzIgorCisvLyBJbmRpemVzIGZ1ZXJzIEFycmF5IHZvbiBjb21tYW5kYmxvY2sKKyNkZWZpbmUgQl9PQkpFQ1QgIDAKKyNkZWZpbmUgQl9USU1FICAgIDEKKyNkZWZpbmUgQl9WQUxVRSAgIDIKKyNkZWZpbmUgQl9FWENFUFRJT05TIDMKKworI2VuZGlmIC8vIF9fUExBWUVSX0NPTU1BTkRfSF9fCisKKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fUExBWUVSX0NPTU1BTkRfSF9QUk9UT19fCisjZGVmaW5lIF9fUExBWUVSX0NPTU1BTkRfSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKK21peGVkIG1vZGlmeV9jb21tYW5kKHN0cmluZyBzdHIpOworaW50IGNvbW1hbmRfbWUoc3RyaW5nIGNtZCk7Cit2YXJhcmdzIHN0cmluZyBfdW5wYXJzZWRfYXJncyhpbnQgbGV2ZWwpOworCisvLyBTZXQtIHVuZCBRdWVyeS1NZXRob2Rlbgorc3RhdGljIG1peGVkIF9zZXRfcF9saWJfZGlzYWJsZWNvbW1hbmRzKG1peGVkIGRhdGEpOworc3RhdGljIG1peGVkIF9xdWVyeV9wX2xpYl9kaXNhYmxlY29tbWFuZHMoKTsKKworI2VuZGlmIC8vIF9fUExBWUVSX0FUVFJJQlVURVNfSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPWVBFUworCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyL2Rlc2NyaXB0aW9uLmggYi9zeXMvcGxheWVyL2Rlc2NyaXB0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc4ZTE2OQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvZGVzY3JpcHRpb24uaApAQCAtMCwwICsxLDM0IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyL2Rlc2NyaXB0aW9uLmggLS0gcGxheWVyIGRlc2NyaXB0aW9uIGhlYWRlcgorLy8KKy8vICRJZDogZGVzY3JpcHRpb24uaCx2IDMuNiAyMDAwLzAyLzA5IDE1OjU2OjI1IFBhZHJlaWMgRXhwICQKKworI2luY2x1ZGUgPGxpdmluZy9kZXNjcmlwdGlvbi5oPgorIAorI2lmbmRlZiBfX1BMQVlFUl9ERVNDUklQVElPTl9IX18KKyNkZWZpbmUgX19QTEFZRVJfREVTQ1JJUFRJT05fSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX1BSRVNBWSAgICAgICAgICAgICAicHJlc2F5IgorI2RlZmluZSBQX1RJVExFICAgICAgICAgICAgICAidGl0bGUiCisjZGVmaW5lIFBfQVZFUkFHRV9TSVpFICAgICAgICJhdmVyYWdlX3NpemUiCisjZGVmaW5lIFBfQVZFUkFHRV9XRUlHSFQgICAgICJhdmVyYWdlX3dlaWdodCIKKyNkZWZpbmUgUF9SRUZFUkVOQ0VfT0JKRUNUICAgInJlZmVyZW5jZV9vYmplY3QiCisKKyNkZWZpbmUgUF9ERVNDUklQVElPTiAgICAgICAgImRlc2NyaXB0aW9uIgorCisjZW5kaWYgLy8gX19QTEFZRVJfREVTQ1JJUFRJT05fSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9ERVNDUklQVElPTl9IX1BST1RPX18KKyNkZWZpbmUgX19QTEFZRVJfREVTQ1JJUFRJT05fSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKKy8vIG5vIHByb3RvdHlwZXMKKworI2VuZGlmIC8vIF9fUExBWUVSX0RFU0NSSVBUSU9OX0hfUFJPVE9fXworCisjZW5kaWYJLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvZmFvLmggYi9zeXMvcGxheWVyL2Zhby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMDE2YTQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcGxheWVyL2Zhby5oCkBAIC0wLDAgKzEsNDcgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisKKyNpZm5kZWYgX19QTEFZRVJfRkFPX0hfXworI2RlZmluZSBfX1BMQVlFUl9GQU9fSF9fCisKKyNkZWZpbmUgRkFPX01BU1RFUiAgICAgICIvZC9lYmVuZS9taXJpbC9mcmF0ZXJuaXRhcy9zZWN1cmUvZmFvbWFzdGVyIiAvLyBkaWUgemVudHJhbGUgc3RlbGxlIGRlcyBmYW8KKworLy8gZGllIExpc3RlIGRlciB2ZXJm/GdiYXJlbiBQb3J0YWxlIGZ1ZXIgZGFzIGVyc3RlIHBvcnRhbGdlc2NoZW5rCisjZGVmaW5lIEZBT19QT1JUQUxTMV9MSVNUICh7MiwzLDQsNSw2LDcsOCw5LDEwLDEzLDE0LDE1LDE2LDE5LDIwLDIxLDI1LDI5LDMzfSkKKy8vIGRpZSBMaXN0ZSBkZXIgdmVyZvxnYmFyZW4gUG9ydGFsZSBmdWVyIGRhcyB6d2VpdGUgcG9ydGFsZ2VzY2hlbmsKKyNkZWZpbmUgRkFPX1BPUlRBTFMyX0xJU1QgRkFPX1BPUlRBTFMxX0xJU1QrKHsxLDExLDEyLDE3LDE4LDI0LDI2LDI3LDI4LDMxLDM0LDM2LDM3LDM4fSkKKy8vIGRpZSBhbnphaGwgZGVyIHp1IHdhZWhsZW5kZW4gcG9ydGFsZSBmdWVyIGRhcyBlcnN0ZSBwb3J0YWxnZXNjaGVuaworI2RlZmluZSBGQU9fUE9SVEFMUzFfTlVNICA1CisvLyBkaWUgYW56YWhsIGRlciB6dSB3YWVobGVuZGVuIHBvcnRhbGUgZnVlciBkYXMgendlaXRlIHBvcnRhbGdlc2NoZW5rCisjZGVmaW5lIEZBT19QT1JUQUxTMl9OVU0gIDUKKworLy8gcHJvcGVydGllcworI2RlZmluZSBQX0ZBTyAgICAgICAgICAgImZyYXRlcm5pdGFzZG9ub2FyY2htYWdvcnVtIiAgLy8gZW50aGFlbHQgZGllIGRvbmkKKyNkZWZpbmUgUF9GQU9fUE9SVEFMUyAgIFBfRkFPKyJQT1JUQUxTIiAvLyBlbnRoYWVsdCBkaWUgZGVtIHNwaWVsZXIgdWViZXJnZWJlbmVuIHBvcnRhbGUKKworLy8gYml0bWFza3MKKyNkZWZpbmUgRkFPX1RJVExFICAgMHgwMQorI2RlZmluZSBGQU9fUE9SVEFMUzEgICAgMHgwMgorI2RlZmluZSBGQU9fUE9SVEFMUzIgIDB4MDQKKyNkZWZpbmUgRkFPX1NFRVJfUE9SVEFMIDB4MDgKKyNkZWZpbmUgRkFPX01FTUJFUiAweDEwCisKKy8vIGhpbGZyZWljaGUgbWFrcm9zCisjZGVmaW5lIEZBT19IQVNfVElUTEVfR0lGVCh4KSAgICh4IT0wICYmIHF1ZXJ5X29uY2VfaW50ZXJhY3RpdmUoeCkgXAorICAgICYmICgoaW50KXgtPlF1ZXJ5UHJvcChQX0ZBTykmRkFPX1RJVExFKSE9MCkKKyNkZWZpbmUgRkFPX0hBU19QT1JUQUxTMV9HSUZUKHgpICAoeCE9MCAmJiBxdWVyeV9vbmNlX2ludGVyYWN0aXZlKHgpIFwKKyAgICAmJiAoKGludCl4LT5RdWVyeVByb3AoUF9GQU8pJkZBT19QT1JUQUxTMSkhPTApCisjZGVmaW5lIEZBT19IQVNfUE9SVEFMUzJfR0lGVCh4KSAgKHghPTAgJiYgcXVlcnlfb25jZV9pbnRlcmFjdGl2ZSh4KSBcCisgICAgJiYgKChpbnQpeC0+UXVlcnlQcm9wKFBfRkFPKSZGQU9fUE9SVEFMUzIpIT0wKQorI2RlZmluZSBGQU9fSEFTX1BPUlRBTFNfR0lGVCh4KSAgIChGQU9fSEFTX1BPUlRBTFMxX0dJRlQoeCkgfHwgRkFPX0hBU19QT1JUQUxTMl9HSUZUKHgpKQorI2RlZmluZSBGQU9fTUFZX1VTRV9QT1JUQUwoeCxwKSAgIChpbnRwKHApICYmICgoRkFPX0hBU19QT1JUQUxTMV9HSUZUKHgpICYmIFwKKyAgICAgICAgbWVtYmVyKEZBT19QT1JUQUxTMV9MSVNULHApIT0tMSApfHwoRkFPX0hBU19QT1JUQUxTMl9HSUZUKHgpICYmIFwKKyAgICAgICAgbWVtYmVyKEZBT19QT1JUQUxTMl9MSVNULHApIT0tMSkgKSAmJiBcCisgICAgKHBvaW50ZXJwKChpbnQqKXgtPlF1ZXJ5UHJvcChQX0ZBT19QT1JUQUxTKSkgXAorICAgICAmJiBtZW1iZXIoKGludCopeC0+UXVlcnlQcm9wKFBfRkFPX1BPUlRBTFMpLHApIT0tMSkgKQorI2RlZmluZSBGQU9fSEFTX1NFRVJfUE9SVEFMX0dJRlQoeCkgICAgICh4IT0wICYmIHF1ZXJ5X29uY2VfaW50ZXJhY3RpdmUoeCkgXAorICAgICYmICgoaW50KXgtPlF1ZXJ5UHJvcChQX0ZBTykmRkFPX1NFRVJfUE9SVEFMKSE9MCkKKyNkZWZpbmUgRkFPX0lTX01FTUJFUih4KSAoeCE9MCAmJiBxdWVyeV9vbmNlX2ludGVyYWN0aXZlKHgpIFwKKyAgICAmJiAoKGludCl4LT5RdWVyeVByb3AoUF9GQU8pJkZBT19NRU1CRVIpIT0wKQorI2VuZGlmIC8vIF9fUExBWUVSX0ZBT19IX18KKwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9maWxlc3lzLmggYi9zeXMvcGxheWVyL2ZpbGVzeXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmZjYWRiCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3BsYXllci9maWxlc3lzLmgKQEAgLTAsMCArMSwyNSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9maWxlc3lzLmggLS0gZmlsZSBzeXN0ZW0gc2VydmljZXMKKy8vCisvLyAkSWQ6IGZpbGVzeXMuaCx2IDMuMSAxOTk3LzAyLzEyIDEzOjI5OjA5IFdhcmdvbiBFeHAgJAorIAorI2lmbmRlZiBfX1BMQVlFUl9GSUxFU1lTX0hfXworI2RlZmluZSBfX1BMQVlFUl9GSUxFU1lTX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9GSUxFU1lTX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19QTEFZRVJfRklMRVNZU19IX1BST1RPX18KKyNkZWZpbmUgX19QTEFZRVJfRklMRVNZU19IX1BST1RPX18gICAgICAKKworLy8gcHJvdG90eXBlcworCit2YXJhcmdzIHN0cmluZyBmaW5kX2ZpbGUoc3RyaW5nIHN0ciwgc3RyaW5nIHN1ZmZpeCk7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9GSUxFU1lTX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvZ21jcC5oIGIvc3lzL3BsYXllci9nbWNwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVlMzdjZQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvZ21jcC5oCkBAIC0wLDAgKzEsMjYgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBwbGF5ZXIvZ21jcC5oIC0tIFN0dWZmIGZvciBHTUNQIGhhbmRsaW5nCisvLworLy8gJElkJAorCisjaWZuZGVmIF9fR01DUF9IX18KKyNkZWZpbmUgX19HTUNQX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNlbmRpZiAvLyBfX0dNQ1BfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0dNQ1BfSF9QUk9UT19fCisjZGVmaW5lIF9fR01DUF9IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworLypwcm90ZWN0ZWQqLyBpbnQgR01DUF9DaGFyKG1hcHBpbmcgZGF0YSk7CisvKnByb3RlY3RlZCovIGludCBHTUNQX0NoYW5uZWwoc3RyaW5nIG1zZywgc3RyaW5nIGNoYW5uZWwsIHN0cmluZyBzZW5kZXIpOworCisjZW5kaWYgLy8gX19HTUNQX0hfUFJPVE9fXworCisjZW5kaWYgIC8vIE5FRURfUFJPVE9ZUEVTCisKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvbGlmZS5oIGIvc3lzL3BsYXllci9saWZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNhOTg3NwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvbGlmZS5oCkBAIC0wLDAgKzEsMjUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBwbGF5ZXIvbGlmZS5oIC0tIHBsYXllciBsaWZlICBoZWFkZXIKKy8vCisvLyAkSWQ6IGRlc2NyaXB0aW9uLmgsdiAzLjYgMjAwMC8wMi8wOSAxNTo1NjoyNSBQYWRyZWljIEV4cCAkCisgCisjaWZuZGVmIF9fUExBWUVSX0xJRkVfSF9fCisjZGVmaW5lIF9fUExBWUVSX0xJRkVfSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2VuZGlmIC8vIF9fUExBWUVSX0xJRkVfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9MSUZFX0hfUFJPVE9fXworI2RlZmluZSBfX1BMQVlFUl9MSUZFX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCitwdWJsaWMgICAgdm9pZCAgICBmb3JjZV9zYXZlKCk7Citwcm90ZWN0ZWQgaW50ICAgICBkZWF0aF9zdWZmZXJpbmcoKTsKKworI2VuZGlmIC8vIF9fUExBWUVSX0xJRkVfSF9QUk9UT19fCisKKyNlbmRpZgkvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9tb25leWhhbmRsZXIuaCBiL3N5cy9wbGF5ZXIvbW9uZXloYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk0MmI2MgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvbW9uZXloYW5kbGVyLmgKQEAgLTAsMCArMSwxMiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9tb25leWhhbmRsZXIuaCAtLSBXcmFwcGVyIGZ1ZXIgL3N5cy9jb250YWluZXIvbW9uZXloYW5kbGVyLmgKKy8vIEV4aXN0aWVydCBhdXMgR3J1ZW5kZW4gZGVyIEFid2FlcnRza29tcGF0aWJpbGl0YWV0LgorLy8KKy8vICRJZDogbW9uZXloYW5kbGVyLmggODM5NiAyMDEzLTAyLTE4IDIxOjU2OjM3WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX1BMQVlFUl9NT05FWUhBTkRMRVJfSF9fCisjZGVmaW5lIF9fUExBWUVSX01PTkVZSEFORExFUl9IX18KKyNpbmNsdWRlIDxjb250YWluZXIvbW9uZXloYW5kbGVyLmg+CisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9tb3ZpbmcuaCBiL3N5cy9wbGF5ZXIvbW92aW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQyYWI1OQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvbW92aW5nLmgKQEAgLTAsMCArMSwyOSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9tb3ZpbmcuaCAtLSBwbGF5ZXIgbW92aW5nIGhlYWRlcgorLy8KKy8vICRJZDogbW92aW5nLmgsdiAzLjIgMjAwMC8wMi8wOSAxNTo1NjoyNSBQYWRyZWljIEV4cCAkCisgCisjaWZuZGVmIF9fUExBWUVSX01PVklOR19IX18KKyNkZWZpbmUgX19QTEFZRVJfTU9WSU5HX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNkZWZpbmUgUF9NU0dJTiAgICAgICAgICAgICAgIm1zZ2luIgorI2RlZmluZSBQX01TR09VVCAgICAgICAgICAgICAibXNnb3V0IgorI2RlZmluZSBQX01NU0dJTiAgICAgICAgICAgICAibW1zZ2luIgorI2RlZmluZSBQX01NU0dPVVQgICAgICAgICAgICAibW1zZ291dCIKKworI2VuZGlmIC8vIF9fUExBWUVSX01PVklOR19IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fUExBWUVSX01PVklOR19IX1BST1RPX18gICAKKyNkZWZpbmUgX19QTEFZRVJfTU9WSU5HX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCisvLyBubyBwcm90b3R5cGVzCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9NT1ZJTkdfSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9wa2xvZy5oIGIvc3lzL3BsYXllci9wa2xvZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmNWFjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcGxheWVyL3BrbG9nLmgKQEAgLTAsMCArMSwxNSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9wa2xvZy5oIC0tIG1vZHVsZSBmb3IgbG9nZ2luZyBwbGF5ZXIgdnMgcGxheWVyIGF0dGFja3MKKy8vCisvLyAkSWQ6IGNvbW0uaCx2IDMuMyAyMDAwLzAyLzA5IDE1OjU2OjI1IFBhZHJlaWMgRXhwICQKKworI2lmbmRlZiBfX1BMQVlFUl9QS0xPR19IX18KKyNkZWZpbmUgX19QTEFZRVJfUEtMT0dfSF9fCisKK25vbWFzayBpbnQgQ2hlY2tBcmVuYUZpZ2h0KG9iamVjdCB2aWN0aW0pOworbm9tYXNrIHByb3RlY3RlZCBpbnQgQ2hlY2tQbGF5ZXJBdHRhY2sob2JqZWN0IGF0dGFja2VyLCBvYmplY3QgdmljdGltLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBhbmdyaWZmc21zZyk7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9QS0xPR19IX18KKwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9wb3Rpb24uaCBiL3N5cy9wbGF5ZXIvcG90aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhiODFiMQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvcG90aW9uLmgKQEAgLTAsMCArMSwzNCBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9wb3Rpb24uaCAtLSBwb3Rpb24gc2VydmljZXMKKy8vCisvLyAkSWQ6IHBvdGlvbi5oIDkxMTcgMjAxNS0wMS0yNSAxMToyNToxNFogWmVzc3RyYSAkCisKKyNpZm5kZWYgX19QTEFZRVJfUE9USU9OX0hfXworI2RlZmluZSBfX1BMQVlFUl9QT1RJT05fSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX1BPVElPTlJPT01TICAgICAgICAgInBvdGlvbnJvb21zIgorI2RlZmluZSBQX0tOT1dOX1BPVElPTlJPT01TICAgImtub3duX3BvdGlvbnJvb21zIgorI2RlZmluZSBQX1RSQU5LX0ZJTkRFTiAgICAgICAgInRyYW5rX2ZpbmRlbiIKKworLy8gdmVyYWx0ZXRlIFByb3BzLCBsYW5nIHVuYmVudXR6dC4KKyNkZWZpbmUgUF9WSVNJVEVEX1BPVElPTlJPT01TICJ2aXNpdGVkX3BvdGlvbnJvb21zIgorI2RlZmluZSBQX0JPTlVTX1BPVElPTlMgICAgICAgImJvbnVzX3BvdGlvbnMiCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9QT1RJT05fSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9QT1RJT05fSF9QUk9UT19fCisjZGVmaW5lIF9fUExBWUVSX1BPVElPTl9IX1BST1RPX18gCisKKy8vIHByb3RvdHlwZXMKKwordmFyYXJncyBpbnQgRmluZFBvdGlvbihzdHJpbmcgcyk7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9QT1RJT05fSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPWVBFUworCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyL3F1ZXN0LmggYi9zeXMvcGxheWVyL3F1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg3MGZjNwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvcXVlc3QuaApAQCAtMCwwICsxLDI5IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyL3F1ZXN0cy5oIC0tIHBsYXllciBxdWVzdCBoYW5kbGluZworLy8KKy8vICRJZDogcXVlc3QuaCx2IDMuMiAyMDAwLzAyLzA5IDE1OjU2OjI1IFBhZHJlaWMgRXhwICQKKyAKKyNpZm5kZWYgX19QTEFZRVJfUVVFU1RTX0hfXworI2RlZmluZSBfX1BMQVlFUl9RVUVTVFNfSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX1FVRVNUUyAgICAgICAgICAgICAicXVlc3RzIgorI2RlZmluZSBQX1FQICAgICAgICAgICAgICAgICAicXVlc3Rwb2ludHMiCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9RVUVTVFNfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9RVUVTVFNfSF9QUk9UT19fCisjZGVmaW5lIF9fUExBWUVSX1FVRVNUU19IX1BST1RPX18gCisKKy8vIHByb3RvdHlwZXMKKwordmFyYXJncyBpbnQgR2l2ZVF1ZXN0KHN0cmluZyBxdWVzdG5hbWUsIHN0cmluZyBtZXNzYWdlKTsKK2ludCBRdWVyeVF1ZXN0KHN0cmluZyBxdWVzdG5hbWUpOworCisjZW5kaWYgLy8gX19QTEFZRVJfUVVFU1RTX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvc2tpbGxzLmggYi9zeXMvcGxheWVyL3NraWxscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4NDNjYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcGxheWVyL3NraWxscy5oCkBAIC0wLDAgKzEsMjUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBza2lsbHMuaCAtLSBQcm90b3R5cGVuIGZ1ZXIgU2tpbGxmdW5rdGlvbiBhdXMgU3BpZWxlcm4uCisvLworLy8gJElkOiBza2lsbHMuaCA2NTU5IDIwMDctMTAtMjAgMTM6MDA6MjBaIFplc3N0cmEgJAorCisjaWZuZGVmIF9fUExBWUVSX1NLSUxMU19IX18KKyNkZWZpbmUgX19QTEFZRVJfU0tJTExTX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9TS0lMTFNfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9TS0lMTFNfSF9QUk9UT19fCisjZGVmaW5lIF9fUExBWUVSX1NLSUxMU19IX1BST1RPX18KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLy8gcHJvdG90eXBlcworcHJvdGVjdGVkIHZvaWQgIHNldF93ZWFwb25fc2tpbGxzKCk7Citwcm90ZWN0ZWQgdm9pZCAgRml4U2tpbGxzKCk7Citwcm90ZWN0ZWQgdm9pZCAgSW5pdFNraWxscygpOworCisjZW5kaWYgLy8gX19QTEFZRVJfU0tJTExTX0hfUFJPVE9fXworI2VuZGlmIC8vIE5FRURfUFJPVE9ZUEVTCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyL3RlbG5ldG5lZy5oIGIvc3lzL3BsYXllci90ZWxuZXRuZWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTVlZDkwCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3BsYXllci90ZWxuZXRuZWcuaApAQCAtMCwwICsxLDE5IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gdGVsbmV0bmVnLmggLS0gRGVmaW5pdGlvbmVuIHVuZCBQcm90b3R5cGVzIGZ1ZXIgVGVsbmV0LU5lZ290aWF0aW9ucworLy8KKy8vICRJZDogdGVsbmV0bmVnLmggODM0OCAyMDEzLTAyLTAzIDIyOjE0OjM5WiBaZXNzdHJhICQKKworI2luY2x1ZGUgIi9zZWN1cmUvdGVsbmV0bmVnLmgiCisKKyNpZm5kZWYgX1RFTE5FVE5FR19IXworI2RlZmluZSBfVEVMTkVUTkVHX0hfCisKKyNlbmRpZgorCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9URUxORVRORUdfSF9QUk9UT1NfCisjZGVmaW5lIF9URUxORVRORUdfSF9QUk9UT1NfCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyL3VzZXJfZmlsdGVyLmggYi9zeXMvcGxheWVyL3VzZXJfZmlsdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTllODAzNgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvdXNlcl9maWx0ZXIuaApAQCAtMCwwICsxLDI3IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyL3VzZXJfZmlsdGVyLmggLS0gdXNlcl9maWx0ZXJtb2R1bGUgcHJvdG90eXBlcy9wcm9wZXJ0aWVzCisvLworLy8gJElkOiBjb21tLmgsdiAzLjMgMjAwMC8wMi8wOSAxNTo1NjoyNSBQYWRyZWljIEV4cCAkCisKKyNpZm5kZWYgX19QTEFZRVJfVVNFUl9GSUxURVJfSF9fCisjZGVmaW5lIF9fUExBWUVSX1VTRVJfRklMVEVSX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9VU0VSX0ZJTFRFUl9IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fUExBWUVSX1VTRVJfRklMVEVSX0hfUFJPVE9fXworI2RlZmluZSBfX1BMQVlFUl9VU0VSX0ZJTFRFUl9IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworCitwcm90ZWN0ZWQgaW50IGlzX2FjdGl2ZV9ndWlkZShvYmplY3Qgb2IpOworb2JqZWN0ICpmaWx0ZXJfdXNlcnMoc3RyaW5nIHN0cik7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9VU0VSX0ZJTFRFUl9IX1BST1RPX18KKworI2VuZGlmIC8vIE5FRURfUFJPVE9ZUEVTCisKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvdXRpbC5oIGIvc3lzL3BsYXllci91dGlsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTM3ZGM1ZgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvdXRpbC5oCkBAIC0wLDAgKzEsMjUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBzeXMvcGxheWVyL3V0aWwuaCAtLSBIZWFkZXJmaWxlIGZ1ZXIgL3N0ZC9wbGF5ZXIvdXRpbC5jCisvLworLy8gJElkOiB1dGlsLmgsdiAxLjEgMjAwNC8wNC8wOSAyMTowMjo0MSBWYW5pb24gRXhwICQKKworI2lmbmRlZiBfX1RISU5HX1VUSUxfSF9fCisjZGVmaW5lIF9fVEhJTkdfVVRJTF9IX18KKworI2VuZGlmIC8vIF9fVEhJTkdfVVRJTF9IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fVEhJTkdfVVRJTF9IX1BST1RPX18KKyNkZWZpbmUgX19USElOR19VVElMX0hfUFJPVE9fXworCitwdWJsaWMgdm9pZCBTaG93UHJvcExpc3Qoc3RyaW5nICpwcm9wcyk7CitzdGF0aWMgdm9pZCBQcmV0dHlEdW1wKG1peGVkIHgpOworc3RhdGljIHZvaWQgRHVtcEFycmF5KG1peGVkICp4KTsKK3N0YXRpYyB2b2lkIER1bXBNYXBwaW5nKG1hcHBpbmcgeCk7CitzdGF0aWMgdm9pZCBEdW1wS2V5VmFsUGFpcihtYXBwaW5nIHgsIG1peGVkIGtleSwgaW50IHNpemUpOworCisjZW5kaWYgLy8gX19USElOR19VVElMX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1RZUEVTClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci92aWV3Y21kLmggYi9zeXMvcGxheWVyL3ZpZXdjbWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODJjY2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3BsYXllci92aWV3Y21kLmgKQEAgLTAsMCArMSwyNyBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci92aWV3Y21kLmggLS0gdmlldyBjb21tYW5kIGhhbmRsaW5nCisvLworLy8gJElkOiB2aWV3Y21kLmggNjQwOCAyMDA3LTA4LTA3IDIzOjAyOjE4WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX1BMQVlFUl9WSUVXQ01EX0hfXworI2RlZmluZSBfX1BMQVlFUl9WSUVXQ01EX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNkZWZpbmUgUF9CTElORCAgICAgICAgICAgICAgImJsaW5kIgorI2RlZmluZSBQX0JSSUVGICAgICAgICAgICAgICAiYnJpZWYiCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9WSUVXQ01EX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19QTEFZRVJfVklFV0NNRF9IX1BST1RPX18gICAgIAorI2RlZmluZSBfX1BMQVlFUl9WSUVXQ01EX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCit2YXJhcmdzIHN0cmluZyBlbnZfZGVzY3IoaW50IGFsbG93X3Nob3J0LGludCBmbGFncywgaW50IGZvcmNlX3Nob3J0ICk7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9WSUVXQ01EX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy9wcm9wZXJ0aWVzLmggYi9zeXMvcHJvcGVydGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4YmVjMzkKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcHJvcGVydGllcy5oCkBAIC0wLDAgKzEsNTAgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBwcm9wZXJ0aWVzLmggLS0gcHJvcGVydGllcyBoZWFkZXIgZmlsZQorLy8KKy8vICRJZDogcHJvcGVydGllcy5oIDcxNjkgMjAwOS0wMy0wOCAxODowOTo1M1ogWmVzc3RyYSAkCisgCisjaWZuZGVmIF9fUFJPUEVSVElFU19IX18KKyNkZWZpbmUgX19QUk9QRVJUSUVTX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjdW5kZWYgTkVFRF9QUk9UT1RZUEVTCQkvLyB3ZSBuZWVkIG9ubHkgdGhlIHByb3BlcnRpZXMgaGVyZSEhCisjZGVmaW5lIFRNUF9ORUVEX1BST1RPVFlQRVMKKyNlbmRpZgorCisjaW5jbHVkZSA8c25vb3BpbmcuaD4KKyNpbmNsdWRlIDx0aGluZy5oPgorI2luY2x1ZGUgPGNsb3RoaW5nLmg+CisjaW5jbHVkZSA8YXJtb3VyLmg+CisjaW5jbHVkZSA8Y29udGFpbmVyLmg+CisjaW5jbHVkZSA8bGl2aW5nLmg+CisjaW5jbHVkZSA8bnBjLmg+CisjaW5jbHVkZSA8cGxheWVyLmg+CisjaW5jbHVkZSA8cm9vbXMuaD4KKyNpbmNsdWRlIDxzaGVsbHMuaD4KKyNpbmNsdWRlIDx3ZWFwb24uaD4KKyNpbmNsdWRlIDx0cmFuc3BvcnQuaD4KKyNpbmNsdWRlIDxsaWdodHNvdXJjZS5oPgorI2luY2x1ZGUgPHF1ZXN0X2l0ZW1zLmg+CisjaW5jbHVkZSA8bW92aW5nLmg+CisKKyNpZmRlZiBUTVBfTkVFRF9QUk9UT1RZUEVTCisjdW5kZWYgVE1QX05FRURfUFJPVE9UWVBFUworI2RlZmluZSBORUVEX1BST1RPVFlQRVMKKyNlbmRpZgorCisjZGVmaW5lIFBfT1JJR19OQU1FICAgICAgIm9yaWdpbmFsX25hbWUiCisjZGVmaW5lIFBfT1JJR19GSUxFX05BTUUgIm9yaWdpbmFsX2ZpbGVfbmFtZSIKKworI2RlZmluZSBQX0NBUF9OQU1FICJjYXBfbmFtZSIKKyNkZWZpbmUgUF9FQVJNVUZGUyAiZWFybXVmZnMiCisjZGVmaW5lIFBfVkFMVUVfUEVSX1VOSVQgInZhbHVlX3Blcl91bml0IgorI2RlZmluZSBQX1dFSUdIVF9QRVJfVU5JVCAid2VpZ2h0X3Blcl91bml0IgorI2RlZmluZSBQX0ZXX1VOREVSU1RBTkQgImZ3X3VuZGVyc3RhbmQiIC8qIGthbm4gZGllIHNwcmFjaGUgYXVzIGZlcm53ZXN0ICovCisjZGVmaW5lIFBfVFJBWSAidHJheSIgLyogbWFuIGthbm4gd2FzIGF1ZiB1bnMgZHJhdWZsZWdlbiAqLworI2RlZmluZSBQX0FNT1VOVCAiYW1vdW50IgorI2RlZmluZSBQX0hQX0hPT0tTICJocF9ob29rcyIKKworI2RlZmluZSBQX0lORk9STU1FICJpbmZvcm1tZSIKKworI2VuZGlmIC8vIF9fUFJPUEVSVElFU19IX18KZGlmZiAtLWdpdCBhL3N5cy9wdWIuaCBiL3N5cy9wdWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWZlOWRiCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3B1Yi5oCkBAIC0wLDAgKzEsODAgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBwdWIuaCAtLSBIZWFkZXJmaWxlIGZvciBwdWJzIGFuZCBwdWJtYXN0ZXIKKy8vCisvLyAkSWQ6IHB1Yi5oIDQ0OTQgMjAwNi0wOS0yMyAxMDoxNDozNlogcm9vdCAkCisKKyNpZm5kZWYgX1BVQl9IXworI2RlZmluZSBfUFVCX0hfCisKKy8qIERlciBQdWJtYXN0ZXIgKi8KKyNkZWZpbmUgUFVCTUFTVEVSICIvc2VjdXJlL3B1Ym1hc3RlciIKKworLyogV2VydGUgZnVlciBkaWUgS25laXBlbmZvcm1lbDoKKworICBBbGMqQWxjZGVsYXkrRHJpbmsqRHJpbmtkZWxheStGb29kKkZvb2RkZWxheSAgICAgICAgIFZhbHVlCisoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICArICAtLS0tLS0tLS0tLS0tCisgICAgICAgICAgQWxjZGVsYXkrRHJpbmtkZWxheStGb29kZGVsYXkgICAgICAgICAgICBWQUxVRURJVitSYXRlCisKKyAgICAgICAgIFJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWxheQorICAgZXhwKC0tLS0tLS0tKSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cCgtLS0tLS0tLSkKKyAgICAgICBSQVRFRElWMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0FJVERJVjEKKy0gIC0tLS0tLS0tLS0tLS0gKSAqIEZhY3RvciAqICggV0FJVE9GRlMgKyAtLS0tLS0tLS0tLS0tLS0gKQorICAgICBSQVRFRElWMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdBSVRESVYyCisKKyovCisKKyNkZWZpbmUgUFVCX1NPQUtNVUxUIDE4LjAKKyNkZWZpbmUgUFVCX1ZBTFVFRElWIDEwLjAKKyNkZWZpbmUgUFVCX1JBVEVESVYxICAzLjUKKyNkZWZpbmUgUFVCX1JBVEVESVYyICAyLjUKKyNkZWZpbmUgUFVCX1dBSVRPRkZTICAwLjkKKyNkZWZpbmUgUFVCX1dBSVRESVYxIDEwLjAKKyNkZWZpbmUgUFVCX1dBSVRESVYyICA3LjUKKyNkZWZpbmUgUFVCX01BWERFTEFZIDE1LjAKKworLyogUHJvcGVydGllcyAqLworCisvLyBOUENzIHRhbmtlbiBoaWVyIGF1ZiBkaWUgInNjaG5lbGxlIiBBcnQKKyNkZWZpbmUgUF9OUENfRkFTVEhFQUwgICAgIm5wY19mYXN0aGVhbCIKKworLy8gS2VpbmUgU3RhbmRhcmQtR2V0cmFlbmtlCisjZGVmaW5lIFBfTk9fU1REX0RSSU5LICAgICJub19zdGRfZHJpbmsiCisKKy8vIE1lbGR1bmcsIHdlbm4gZXR3YXMgbmljaHQgbWVociB2b3JoYW5kZW4gaXN0CisjZGVmaW5lIFBfUFVCX1VOQVZBSUxBQkxFICJwdWJfdW5hdmFpbGFibGUiCisKKy8vIE1lbGR1bmcsIHdlbm4gZXR3YXMgbmljaHQgaW0gTWVudWUgc3RlaHQKKyNkZWZpbmUgUF9QVUJfTk9UX09OX01FTlUgInB1Yl9ub3Rfb25fbWVudSIKKworLy8gTWVsZHVuZywgd2VubiBTcGllbGVyIG5pY2h0IGdlbnVnIEdlbGQgaGF0CisjZGVmaW5lIFBfUFVCX05PX01PTkVZICAgICJwdWJfbm9fbW9uZXkiCisKKy8vIE1lbGR1bmcsIHdlbm4gZGVyIEJhcmtlZXBlciBuaWNodCBhbndlc2VuZCBpc3QKKyNkZWZpbmUgUF9QVUJfTk9fS0VFUEVSICAgInB1Yl9ub19rZWVwZXIiCisKKy8qIFNvbnN0aWdlIERlZmluZXMgKi8KKworLy8gSW5kaWNlcyBmdWVyIGRhcyBNZW51ZS1NYXBwaW5nCisjZGVmaW5lIFBNX1RFWFQgICAgICAwCisjZGVmaW5lIFBNX0lORk8gICAgICAxCisjZGVmaW5lIFBNX1JBVEUgICAgICAyCisjZGVmaW5lIFBNX1NFUlZFX01TRyAzCisjZGVmaW5lIFBNX1JFRlJFU0ggICA0CisjZGVmaW5lIFBNX0RFTEFZICAgICA1CisjZGVmaW5lIFBNX0RFTEFZX01TRyA2CisjZGVmaW5lIFBNX0lEUyAgICAgICA3CisKKy8vIEtleXMgZnVlciBkZW4gUmVmcmVzaC1QYXJhbWV0ZXIKKyNkZWZpbmUgUFJfQUxMICAgICAgICJBbGwiCisjZGVmaW5lIFBSX1VTRVIgICAgICAiVXNlciIKKworLy8gRGVmYXVsdC1EZWZpbmVzIGZ1ZXIgZGVuIEF2YWlsYWJpbGl0eS1DaGVjaworI2RlZmluZSBQUl9ERUZBVUxUICAgIkRFRiIKKyNkZWZpbmUgUFJfTk9ORSAgICAgICJOL0EiCisKKy8vIEluZGljZXMgZnVlciBkZW4gUmVmcmVzaC1QYXJhbWV0ZXIKKyNkZWZpbmUgUFJWX0FNT1VOVCAgIDAKKyNkZWZpbmUgUFJWX1JFRlJFU0ggIDEKKworI2VuZGlmIC8vIF9QVUJfSF8KZGlmZiAtLWdpdCBhL3N5cy9xdWVzdF9pdGVtcy5oIGIvc3lzL3F1ZXN0X2l0ZW1zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkOTZjZgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9xdWVzdF9pdGVtcy5oCkBAIC0wLDAgKzEsMTggQEAKKy8qCisgKiBRVUVTVF9JVEVNUy5IIC0tIGlkZW50aWZpZXMgcXVlc3QgaXRlbXMKKyAqCisgKiAkTG9nOiBxdWVzdF9pdGVtcy5oLHYgJAorICogUmV2aXNpb24gMS4xICAyMDAzLzEyLzMwIDEyOjQxOjE0ICBWYW5pb24KKyAqIEluaXRpYWwgcmV2aXNpb24KKyAqCisgKiBSZXZpc2lvbiAxLjAgIDE5OTcvMDEvMjAgMTU6MzM6NDcgIG11ZAorICogSW5pdGlhbCByZXZpc2lvbgorICoKKyAqLworCisjaWZuZGVmIF9fX1FVRVNUX0lURU1TX0hfXworI2RlZmluZSBfX19RVUVTVF9JVEVNU19IX18KKworI2RlZmluZSBQX1FVRVNUX0lURU0JInF1ZXN0X2l0ZW0iCisKKyNlbmRpZiAvLyBfX1FVRVNUX0lURU1TX0hfXwpkaWZmIC0tZ2l0IGEvc3lzL3JhbmdlZF93ZWFwb24uaCBiL3N5cy9yYW5nZWRfd2VhcG9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBiY2Q5YgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9yYW5nZWRfd2VhcG9uLmgKQEAgLTAsMCArMSwyNiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHJhbmdlZF93ZWFwb24uaCAtLSBIZWFkZXJmaWxlIGZ1ZXIgRmVybmthbXBmd2FmZmVuCisvLworLy8gJElkOiByYW5nZWRfd2VhcG9uLmggOTAxNiAyMDE1LTAxLTEwIDE4OjI5OjI2WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX1JBTkdFRF9XRUFQT05fSF9fCisjZGVmaW5lIF9fUkFOR0VEX1dFQVBPTl9IX18KKworLy8gUHJvcGVydGllcworCisjZW5kaWYgLy8gX19SQU5HRURfV0VBUE9OX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19SQU5HRURfV0VBUE9OX0hfUFJPVE9fXworI2RlZmluZSBfX1JBTkdFRF9XRUFQT05fSF9QUk9UT19fCisKKy8vIFByb3RvdHlwZXMKK3N0YXRpYyBpbnQgc2hvb3RfZGFtKG1hcHBpbmcgc2hvb3QpOworc3RhdGljIHN0cmluZyBGaW5kUmFuZ2VkVGFyZ2V0KHN0cmluZyBzdHIsIG1hcHBpbmcgc2hvb3QpOworc3RhdGljIGludCBjbWRfc2hvb3Qoc3RyaW5nIHN0cik7CisKKyNlbmRpZiAvLyBfX1JBTkdFRF9XRUFQT05fSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPVFlQRVMKZGlmZiAtLWdpdCBhL3N5cy9yZWdleHAuaCBiL3N5cy9yZWdleHAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzBmMTBjCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3JlZ2V4cC5oCkBAIC0wLDAgKzEsNDIgQEAKKyNpZm5kZWYgTFBDX1JFR0VYUF9IXworI2RlZmluZSBMUENfUkVHRVhQX0hfIDEKKworLyogRGVmaW5pdGlvbnMgb2YgcmVnZXhwIG9wdGlvbiB2YWx1ZXMgKi8KKworLyogTm90IHJlYWxseSBhbiBSRSBvcHRpb24sIGJ1dCB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggc29tZSBSRSBmdW5jdGlvbnM6ICovCisKKyNkZWZpbmUgUkVfR0xPQkFMICAgICAgICAgIDB4MDAwMSAgLyogQXBwbHkgUkUgZ2xvYmFsbHkgKGlmIHBvc3NpYmxlKSAqLworCisvKiBPcHRpb25zIHN1cHBvcnRlZCBieSB0aGUgb2xkIHJlZ2V4cCBwYWNrYWdlOiAqLworCisjZGVmaW5lIFJFX0VYQ09NUEFUSUJMRSAgICAweDAwMDIgIC8qIFJFIGlzIGNvbXBhdGlibGUgd2l0aCBleCAqLworCisvKiBPcHRpb25zIHN1cHBvcnRlZCBieSB0aGUgUENSRSByZWdleHAgcGFja2FnZTogKi8KKworI2RlZmluZSBSRV9DQVNFTEVTUyAgICAgICAgMHgwMDA0CisjZGVmaW5lIFJFX01VTFRJTElORSAgICAgICAweDAwMDgKKyNkZWZpbmUgUkVfRE9UQUxMICAgICAgICAgIDB4MDAxMAorI2RlZmluZSBSRV9FWFRFTkRFRCAgICAgICAgMHgwMDIwCisjZGVmaW5lIFJFX0FOQ0hPUkVEICAgICAgICAweDAwNDAKKyNkZWZpbmUgUkVfRE9MTEFSX0VORE9OTFkgIDB4MDA4MAorI2RlZmluZSBSRV9OT1RCT0wgICAgICAgICAgMHgwMTAwCisjZGVmaW5lIFJFX05PVEVPTCAgICAgICAgICAweDAyMDAKKyNkZWZpbmUgUkVfVU5HUkVFRFkgICAgICAgIDB4MDQwMAorI2RlZmluZSBSRV9OT1RFTVBUWSAgICAgICAgMHgwODAwCisKKy8qIE9wdGlvbnMgc3BlY2lmaWMgZm9yIHJlZ21hdGNoKCk6ICovCisKKyNkZWZpbmUgUkVfTUFUQ0hfU1VCUyAgICAgIDB4MTAwMCAgLyogUmV0dXJuIG1hdGNoZWQgc3ViZXhwcmVzc2lvbnMgKi8KKworLyogT3B0aW9ucyBzcGVjaWZpYyBmb3IgcmVnZXhwbG9kZSgpOiAqLworCisjZGVmaW5lIFJFX09NSVRfREVMSU0gICAgICAweDEwMDAgIC8qIE9taXQgdGhlIGRlbGltaXRlcnMgKi8KKworLyogUmVnZXhwIHBhY2thZ2Ugc2VsZWN0aW9uIG9wdGlvbnM6ICovCisKKyNkZWZpbmUgUkVfVFJBRElUSU9OQUwgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUgUkVfUENSRSAgICAgICAgICAgIDB4MDIwMDAwMDAKKworI2RlZmluZSBSRV9QQUNLQUdFX01BU0sgICAgKFJFX1RSQURJVElPTkFMIHwgUkVfUENSRSkKKworI2VuZGlmIC8qIExQQ19SRUdFWFBfSF8gKi8KZGlmZiAtLWdpdCBhL3N5cy9yZXB1dGF0aW9uLmggYi9zeXMvcmVwdXRhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NmIyZDgKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcmVwdXRhdGlvbi5oCkBAIC0wLDAgKzEsMzIgQEAKKyNpZm5kZWYgX1JFUFVUQVRJT05fSF8KKyNkZWZpbmUgX1JFUFVUQVRJT05fSF8KKworI2RlZmluZSBSRVBNQVNURVIgICAgICAgICIvc2VjdXJlL3JlcG1hc3RlciIKKyNkZWZpbmUgUkVQX1NBVkVGSUxFICAgICAiL3NlY3VyZS9BUkNIL3JlcG1hc3RlciIKKworLy8gR3Jlbnp3ZXJ0ZQorI2RlZmluZSBSRVBfTUFYSU1VTSAgICAgIDEwMDAwCisjZGVmaW5lIFJFUF9NSU5JTVVNICAgICAtMTAwMDAKKworLy8gWndpc2NoZW5zdHVmZW4KKyNkZWZpbmUgUkVQX1RSVVNURUQgICAgICA3NTAwCisjZGVmaW5lIFJFUF9MSUtFRCAgICAgICAgNTAwMAorI2RlZmluZSBSRVBfRkFNSUxJQVIgICAgIDI1MDAKKyNkZWZpbmUgUkVQX05FVVRSQUwgICAgICAwCisjZGVmaW5lIFJFUF9VTkZBTUlMSUFSICAtMjUwMAorI2RlZmluZSBSRVBfRElTTElLRUQgICAgLTUwMDAKKyNkZWZpbmUgUkVQX0RJU1RSVVNURUQgIC03NTAwCisKKy8vIFJldHVybmNvZGVzCisjZGVmaW5lIFJFUF9SRVRfV1JPTkdBUkdTICAtMSAvLyBGYWxzY2hlIEFyZ3VtZW50ZSBmdWVyIENoYW5nZVJlcCgpCisjZGVmaW5lIFJFUF9SRVRfSU5WQUxJRFVJRCAtMiAvLyBVbnp1bGFlc3NpZ2UgVUlECisjZGVmaW5lIFJFUF9SRVRfQUxSRUFEWU1BWCAtMyAvLyBSZXB1dGF0aW9uIGJlcmVpdHMgTWF4IC8gTWluCisjZGVmaW5lIFJFUF9SRVRfSU5BQ1RJVkUgICAtNCAvLyBSZXB1dGF0aW9uIGF1ZiBpbmFrdGl2IGdlc2V0enQKKyNkZWZpbmUgUkVQX1JFVF9JTlZBTElEUkVQIC01IC8vIFJlcHV0YXRpb24gbmljaHQgdm9yaGFuZGVuCisjZGVmaW5lIFJFUF9SRVRfU1VDQ0VTUyAgICAgMSAvLyBSZXB1dGF0aW9uIHd1cmRlIHZlcmFlbmRlcnQKKyNkZWZpbmUgUkVQX1JFVF9TVUNDRVNTQ1VUICAyIC8vIFJlcHV0YXRpb24gd3VyZGUgYXVmIE1pbiAvIE1heCB2ZXJhZW5kZXJ0CisKKy8vIEZsYWdzIGZ1ZXIgZGllIEVpbnRyYWVnZSBpbSBNYXN0ZXIKKyNkZWZpbmUgUkVQX0ZMQUdfQUNUSVZFICAgICAxCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL3Jvb20vZGVzY3JpcHRpb24uaCBiL3N5cy9yb29tL2Rlc2NyaXB0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU3MTM0MQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9yb29tL2Rlc2NyaXB0aW9uLmgKQEAgLTAsMCArMSw1MSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHJvb20vZGVzY3JpcHRpb24uaCAtLSBzdGFuZGFyZCByb29tIGhlYWRlcgorLy8KKy8vICRJZDogZGVzY3JpcHRpb24uaCA5MTkwIDIwMTUtMDQtMDIgMTQ6Mjk6MzZaIEFyYXRob3JuICQKKyAKKyNpZm5kZWYgX19ST09NX0RFU0NSSVBUSU9OX0hfXworI2RlZmluZSBfX1JPT01fREVTQ1JJUFRJT05fSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX0lOVF9TSE9SVCAgICAgICAgICAiaW50X3Nob3J0IgorI2RlZmluZSBQX0lOVF9MT05HICAgICAgICAgICAiaW50X2xvbmciCisKKyNkZWZpbmUgUF9ST09NX01TRyAgICAgICAgICAgInJvb21fbXNnIgorI2RlZmluZSBQX0ZVTkNfTVNHICAgICAgICAgICAiZnVuY19tc2ciCisjZGVmaW5lIFBfTVNHX1BST0IgICAgICAgICAgICJtc2dfcHJvYiIKKworI2RlZmluZSBQX0hBVVNfRVJMQVVCVCAgICAgICAiaGF1c19lcmxhdWJ0IgorCisjZGVmaW5lIFBfTk9fVFBPUlQgICAgICAgICAgICJ0cG9ydCIKKyNkZWZpbmUgUF9UUE9SVF9DT1NUX0lOICAgICAgInRwb3J0X2Nvc3RfaW4iCisjZGVmaW5lIFBfVFBPUlRfQ09TVF9PVVQgICAgICJ0cG9ydF9jb3N0X291dCIKKyNkZWZpbmUgUF9JTkRPT1JTICAgICAgICAgICAgImluZG9vcnMiCisKKyNkZWZpbmUgUF9ORVZFUl9DTEVBTiAgICAgICAgIiBuZXZlciBjbGVhbiAiCisjZGVmaW5lIFBfUk9PTV9UWVBFICAgICAgICAgICJyb29tX3R5cGUiCisjZGVmaW5lIFBfTk9fUExBWUVSUyAgICAgICAgICJub19wbGF5ZXJzIgorCisjZGVmaW5lIFBfTk9fUEFSQV9UUkFOUyAgICAgICJub19wYXJhX3RyYW5zIgorI2RlZmluZSBQX0tFRVBFUiAgICAgICAgICAgICAic2hvcF9rZWVwZXIiICAgIC8vIEVpZ2VudHVlbWVyIHZvbiBQdWIgb2RlciBTaG9wCisjZGVmaW5lIFBfQlVZX09OTFlfUExBTlRTICAgICJsaWJfcF9idXlfb25seV9wbGFudHMiCisjZGVmaW5lIFBfT1JBS0VMICAgICAgICAgICAgICJvcmFrZWwiCisKKyNkZWZpbmUgUF9MSUdIVF9BQlNPUlBUSU9OICAgImxpZ2h0X2Fic29ycHRpb24iIC8vIExpY2h0IGRhcyBkZXIgUmF1bSBzY2hsdWNrdAorCisjZGVmaW5lIFBfRE9NQUlOICAgICAgICAgICAgICJsaWJfcF9kb21haW4iICAgLy8gRG9tYWluLCBpbiBkZXIgZGVyIFJhdW0gaXN0LgorCisjZW5kaWYgLy8gX19ST09NX0RFU0NSSVBUSU9OX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19ST09NX0RFU0NSSVBUSU9OX0hfUFJPVE9fXworI2RlZmluZSBfX1JPT01fREVTQ1JJUFRJT05fSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKKy8vIG5vIHByb3RvdHlwZXMKKworI2VuZGlmIC8vIF9fUk9PTV9ERVNDUklQVElPTl9IX1BST1RPX18KKworI2VuZGlmCS8vIE5FRURfUFJPVE9ZUEVTCmRpZmYgLS1naXQgYS9zeXMvcm9vbS9leGl0cy5oIGIvc3lzL3Jvb20vZXhpdHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2YwODk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3Jvb20vZXhpdHMuaApAQCAtMCwwICsxLDQyIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcm9vbS9leGl0cy5oIC0tIGV4aXQgc3BlY2lmaWMgZGVmaW5lcworLy8KKy8vICRJZDogZXhpdHMuaCA5NDc3IDIwMTYtMDItMTkgMjE6MTc6NTFaIFplc3N0cmEgJAorCisjaWZuZGVmIF9fUk9PTV9FWElUU19IX18KKyNkZWZpbmUgX19ST09NX0VYSVRTX0hfXworCisvLyBQcm9wZXJ0aWVzCisKKyNkZWZpbmUgUF9FWElUUyAgICAgICAgICAgICAgImV4aXRzIgorI2RlZmluZSBQX1NQRUNJQUxfRVhJVFMgICAgICAic3BlY2lhbF9leGl0cyIKKyNkZWZpbmUgUF9ISURFX0VYSVRTICAgICAgICAgImhpZGVfZXhpdHMiCisKKyNkZWZpbmUgUF9CTE9DS19NU0cgICAgICAgICAgImJsb2NrX21zZyIKKworI2VuZGlmIC8vIF9fUk9PTV9FWElUU19IX18KKworLy8gUHJvdG90eXBlcworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fUk9PTV9FWElUU19IX1BST1RPX18KKyNkZWZpbmUgX19ST09NX0VYSVRTX0hfUFJPVE9fXworCitzdGF0aWMgbWFwcGluZyBfc2V0X2V4aXRzKG1hcHBpbmcgbWFwX2xkZmllZCkgOworc3RhdGljIG1hcHBpbmcgX3F1ZXJ5X2V4aXRzKCk7CitzdGF0aWMgaW50IF9zZXRfc3BlY2lhbF9leGl0cyhtYXBwaW5nIG1hcF9sZGZpZWQpOworc3RhdGljIG1hcHBpbmcgX3F1ZXJ5X3NwZWNpYWxfZXhpdHMoKTsKK3N0YXRpYyBzdHJpbmcgX01ha2VQYXRoKHN0cmluZyBzdHIpOwordm9pZCBBZGRFeGl0KHN0cmluZ3xzdHJpbmcqIGNtZCwgY2xvc3VyZXxzdHJpbmcgZGVzdCk7Citwcm90ZWN0ZWQgdm9pZCBfQWRkRXhpdChzdHJpbmd8c3RyaW5nKiBjbWQsIHN0cmluZ3xjbG9zdXJlIHJvb20sCisgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgbWVzc2FnZSk7Cit2b2lkIFJlbW92ZUV4aXQoc3RyaW5nfHN0cmluZyogY21kKTsKK3ZvaWQgQWRkU3BlY2lhbEV4aXQoc3RyaW5nfHN0cmluZyogY21kLCBzdHJpbmd8Y2xvc3VyZSBmdW5jdGlvbm5hbWUpOwordm9pZCBSZW1vdmVTcGVjaWFsRXhpdChzdHJpbmd8c3RyaW5nKiBjbWQpOwordmFyYXJncyBzdHJpbmcgR2V0RXhpdHMoIG9iamVjdCB2aWV3ZXIgKTsKK2ludCBfbm9ybWFsZnVuY3Rpb24oKTsKKworI2VuZGlmIC8vIF9fUk9PTV9FWElUU19IX1BST1RPX18KKworI2VuZGlmIC8vIE5FRURfUFJPVE9UWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3Jvb21zLmggYi9zeXMvcm9vbXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTUxMDM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3Jvb21zLmgKQEAgLTAsMCArMSw2MyBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHJvb21zLmggLS0gc3RhbmRhcmQgcm9vbSBoZWFkZXIKKy8vCisvLyAkSWQ6IHJvb21zLmggODQyNSAyMDEzLTAyLTIzIDE4OjQ5OjA5WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX1JPT01fSF9fCisjZGVmaW5lIF9fUk9PTV9IX18KKworI2luY2x1ZGUgPHJvb20vZGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxyb29tL2V4aXRzLmg+CisjaW5jbHVkZSA8ZG9vcnJvb20uaD4KKworLy8gcHJvcGVydGllcworLy8gRmxhZ3MgZnVlciBFaW5zY2hyYWVua3VuZyBkZXIgRGF0ZW4gZnVlciBNYXBwaW5nendlY2tlIGFuIGRlbiBDbGllbnQKKyNkZWZpbmUgUF9NQVBfUkVTVFJJQ1RJT05TICAibGliX3BfbWFwX3Jlc3RyaWN0aW9ucyIKKworLy8gcmFpc2UgZXJyb3IgbWVzc2FnZQorI2RlZmluZSBBZGREb29yKGEsYixjLGQsZSxmKSByYWlzZV9lcnJvcigiVXNlIE5ld0Rvb3IgaW5zdGVhZCBvZiBBZGREb29yIVxuIikKKyNkZWZpbmUgQWRkRG9vcjIoYSxiLGMsZCxlLGYsZykgcmFpc2VfZXJyb3IoIlVzZSBOZXdEb29yIGluc3RlYWQgb2YgQWRkRG9vcjIhXG4iKQorI2RlZmluZSBBZGRSb29tQ21kKGEsYikgcmFpc2VfZXJyb3IoIlVzZSBBZGRDbWQgaW5zdGVhZCBvZiBBZGRSb29tQ21kIVxuIikKKyNkZWZpbmUgUmVtb3ZlUm9vbUNtZChhLGIpIHJhaXNlX2Vycm9yKCJVc2UgUmVtb3ZlQ21kIGluc3RlYWQgb2YgUmVtb3ZlUm9vbUNtZCFcbiIpCisvLyBkZWZpbmVzCisKKy8qIGVudHJpZXMgaW4gaXRlbSBhcnJheSAqLworI2RlZmluZSBSSVRFTV9PQkpFQ1QgIDAKKyNkZWZpbmUgUklURU1fRklMRSAgICAxCisjZGVmaW5lIFJJVEVNX1JFRlJFU0ggMgorI2RlZmluZSBSSVRFTV9QUk9QUyAgIDMKKworLyogcmVmcmVzaCBmb3IgZXh0cmEgaXRlbXMgKi8KKyNkZWZpbmUgUkVGUkVTSF9OT05FICAgICAgMAorI2RlZmluZSBSRUZSRVNIX0RFU1RSVUNUICAxCisjZGVmaW5lIFJFRlJFU0hfUkVNT1ZFICAgIDIKKyNkZWZpbmUgUkVGUkVTSF9BTFdBWVMgICAgMworI2RlZmluZSBSRUZSRVNIX01PVkVfSE9NRSA0CisKKy8qIHZhbHVlcyBmb3IgdGVsZXBvcnQgZm9yYmlkIHByb3BlcnR5ICovCisjZGVmaW5lIFRQT1JUX0lOICAgMQorI2RlZmluZSBUUE9SVF9PVVQgIDIKKyNkZWZpbmUgVFBPUlRfQk9USCAoVFBPUlRfSU4gfCBUUE9SVF9PVVQpCisKKy8qIHZhbHVlcyBmb3IgZGlmZmVyZW50IHJvb210eXBlcyAqLworI2RlZmluZSBSVF9TSE9QICAgIDEKKyNkZWZpbmUgUlRfUFVCICAgICAyCisKKy8vIFdlcnRlIGZ1ZXIgUF9NQVBfUkVTVFJJQ1RJT05TCisjZGVmaW5lIE1SX05PVUlEICAweDEKKyNkZWZpbmUgTVJfTk9JTkZPIDB4MgorCisjZW5kaWYgLy8gX19ST09NX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19ST09NX0hfUFJPVE9fXworI2RlZmluZSBfX1JPT01fSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKKy8vIG5vIHByb3RvdHlwZXMKKworI2VuZGlmIC8vIF9fUk9PTV9IX1BST1RPX18KKworI2VuZGlmCS8vIE5FRURfUFJPVE9ZUEVTCmRpZmYgLS1naXQgYS9zeXMvcm91dGluZ2QuaCBiL3N5cy9yb3V0aW5nZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3MzA2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcm91dGluZ2QuaApAQCAtMCwwICsxLDE1IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcm91dGluZ2QuaCAtLSBEZWZpbml0aW9uZW4gZnVlciBkZW4gUm91dGluZ0RhZW1vbgorLy8KKy8vICRJZDogcm91dGluZ2QuaCx2IDMuMSAxOTk3LzAyLzEyIDEzOjA0OjU5IFdhcmdvbiBFeHAgJAorCisjaWZuZGVmIF9ST1VUSU5HRF9IXworI2RlZmluZSBfUk9VVElOR0RfSF8KKworI2RlZmluZSBST1VURVIgIi9wL2RhZW1vbi9yb3V0aW5nZCIKKworI2RlZmluZSBUQVJHRVRfUFVCICIjI3B1YiIKKyNkZWZpbmUgVEFSR0VUX1NIT1AgIiMjc2hvcCIKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvcnRsaW1pdHMuaCBiL3N5cy9ydGxpbWl0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMzZhYTIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcnRsaW1pdHMuaApAQCAtMCwwICsxLDM5IEBACisjaWZuZGVmIExQQ19SVExJTUlUU19IXworI2RlZmluZSBMUENfUlRMSU1JVFNfSF8KKworLyogUnVudGltZSBsaW1pdCBpbmRleC90YWcgdmFsdWVzICovCisKKyNkZWZpbmUgTElNSVRfRVZBTCAgICAgICAgICAgKDApCisjZGVmaW5lIExJTUlUX0FSUkFZICAgICAgICAgICgxKQorI2RlZmluZSBMSU1JVF9NQVBQSU5HICAgICAgICAoMikKKyNkZWZpbmUgTElNSVRfTUFQUElOR19LRVlTICAgTElNSVRfTUFQUElORworI2RlZmluZSBMSU1JVF9NQVBQSU5HX1NJWkUgICAoMykKKyNkZWZpbmUgTElNSVRfQllURSAgICAgICAgICAgKDQpCisjZGVmaW5lIExJTUlUX0ZJTEUgICAgICAgICAgICg1KQorI2RlZmluZSBMSU1JVF9DQUxMT1VUUyAgICAgICAoNikKKyNkZWZpbmUgTElNSVRfQ09TVCAgICAgICAgICAgKDcpCisjZGVmaW5lIExJTUlUX01FTU9SWSAgICAgICAgICg4KQorCisjZGVmaW5lIExJTUlUX01BWCAgICAgICg5KSAgLyogTnVtYmVyIG9mIHJlY29nbml6ZWQgbGltaXRzICovCisKKy8qIFNwZWNpYWwgbGltaXQgdmFsdWVzICovCisKKyNkZWZpbmUgTElNSVRfVU5MSU1JVEVEICAgIDAgICAvKiBObyBsaW1pdCAqLworI2RlZmluZSBMSU1JVF9LRUVQICAgICAgICgtMSkgIC8qIEtlZXAgdGhlIG9sZCBsaW1pdCBzZXR0aW5nICovCisjZGVmaW5lIExJTUlUX0RFRkFVTFQgICAgKC0yKSAgLyogVXNlIHRoZSBkZWZhdWx0IHNldHRpbmcgKi8KKworLyogbWVtb3J5IGxpbWl0cyAqLworI2RlZmluZSBNQUxMT0NfU09GVF9MSU1JVCAgICAxCisjZGVmaW5lIE1BTExPQ19IQVJEX0xJTUlUICAgIDIKKworLyogbG93IG1lbW9yeSBjb25kaXRpb25zICovCisjZGVmaW5lIE5PX01BTExPQ19MSU1JVF9FWENFRURFRCAgICAgMAorI2RlZmluZSBTT0ZUX01BTExPQ19MSU1JVF9FWENFRURFRCAgIE1BTExPQ19TT0ZUX0xJTUlUCisjZGVmaW5lIEhBUkRfTUFMTE9DX0xJTUlUX0VYQ0VFREVEICAgTUFMTE9DX0hBUkRfTElNSVQKKworLyogRmxhZ3MgZm9yIGF2YWlsYWJsZSByZXNlcnZlcyAqLworI2RlZmluZSBVU0VSX1JFU0VSVkVfQVZBSUxBQkxFICAgICAweDEKKyNkZWZpbmUgTUFTVEVSX1JFU0VSVkVfQVZBSUxBQkxFICAgMHgyCisjZGVmaW5lIFNZU1RFTV9SRVNFUlZFX0FWQUlMQUJMRSAgIDB4NAorCisjZW5kaWYgLyogTFBDX1JUTElNSVRTX0hfICovCmRpZmYgLS1naXQgYS9zeXMvc2VpbC5oIGIvc3lzL3NlaWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDU5ODMwCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3NlaWwuaApAQCAtMCwwICsxLDggQEAKKyNkZWZpbmUgUF9USUVEICJ0aWVkIgkJLy8gd2lyZCBpbSBnZWJ1bmRlbm4gb2JqZWN0IGdlc2V0enQgdW5kIGJlaGluYWx0ZXQgZWluIG1hcHBpbmcKKyNkZWZpbmUgUF9USUVfVVNFUiAidGllX3VzZXIiCS8vIGhpZXIgc3RlaHQgZGVyIHVzZXIgZHJpbiwgZGVyIGRpZSBsZXR6dGUgCisJCQkJLy8gYWt0aW9uIG1pdCBkZW0gc2VpbCBnZW1hY2h0IGhhdAorCQkJCS8vIFByb3Aga2FubiBpbiB0aWUoKSBhdXNnZWxlc2VuIHdlcmRlbi4KKyNkZWZpbmUgUF9USUVfVkVSQiAidGllX3ZlcmIiCS8vIHdpcmQgZnVlciBhdXRvbWF0aXNjaGVzIGJpbmRlbi9sb2VzZW4gYmVub2V0aWd0LgorI2RlZmluZSBQX1RJRV9NRVNTQUdFICJ0aWVfbWVzc2FnZSIgLy8gQXVzZ2FiZSBiZWltIGZlc3RiaW5kZW4gZGVzIHNlaWxlcyBhdXMgZWluZW0gb2JqZWN0L3JhdW0gaGVyYXVzCisjZGVmaW5lIFBfVU5USUVfTUVTU0FHRSAidW50aWVfbWVzc2FnZSIgLy8gTVNHIHp1bSBsb2VzZW4gZGVzIFNlaWxlcworI2RlZmluZSBQX1RJRV9BVVRPCSJ0aWVfYXV0byIgCmRpZmYgLS1naXQgYS9zeXMvc2Vuc2l0aXZlLmggYi9zeXMvc2Vuc2l0aXZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM1MWRjNgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9zZW5zaXRpdmUuaApAQCAtMCwwICsxLDQ0IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gc2Vuc2l0aXZlLmggLS0gRGVmaW5pdGlvbmVuIGZ1ZXIgc2Vuc2l0aXZlIE9iamVrdGUuCisvLyAgICAgICAgICAgICAgICBTaWVoZSBhdWNoIC9zdGQvY29udGFpbmVyL2ludmVudG9yeS5jIHVuZAorLy8gICAgICAgICAgICAgICAgL3N0ZC9saXZpbmcvaW52ZW50b3J5LmMKKy8vCisvLyAkSWQ6IHNlbnNpdGl2ZS5oLHYgMy4xIDE5OTcvMDIvMTIgMTM6MDQ6NTkgV2FyZ29uIEV4cCAkCisKKyNpZm5kZWYgX19TRU5TSVRJVkVfSF9fCisjZGVmaW5lIF9fU0VOU0lUSVZFX0hfXworCisjZGVmaW5lIFBfU0VOU0lUSVZFX0lOVkVOVE9SWSAic2Vuc2l0aXZlX2ludiIKKyNkZWZpbmUgUF9TRU5TSVRJVkVfSU5WRU5UT1JZX1RSSUdHRVIgInNlbnNpdGl2ZV9pbnZfdHJpZ2dlciIKKyNkZWZpbmUgUF9TRU5TSVRJVkVfQVRUQUNLICJzZW5zaXRpdmVfYXR0YWNrIgorCisjZGVmaW5lIFNFTlNJVElWRV9JTlZFTlRPUlkgImludiIKKyNkZWZpbmUgU0VOU0lUSVZFX0lOVkVOVE9SWV9UUklHR0VSICJpbnZfdHJpZ2dlciIKKyNkZWZpbmUgU0VOU0lUSVZFX0FUVEFDSyAiYXR0YWNrIgorCisjZGVmaW5lIFNFTlNfT0JKRUNUIDAKKyNkZWZpbmUgU0VOU19DTE9TVVJFIDEKKyNkZWZpbmUgU0VOU19LRVkgMgorI2RlZmluZSBTRU5TX1RIUkVTSE9MRCAzCisjZGVmaW5lIFNFTlNfT1BUIDQKKworI2RlZmluZSBTRU5TX1BST1BfUFJFRklYICJzZW5zaXRpdmVfIgorI2RlZmluZSBTRU5TX0lOU0VSVF9QUkVGSVggImluc2VydF9zZW5zaXRpdmVfIgorI2RlZmluZSBTRU5TX1RSSUdHRVJfUFJFRklYICJ0cmlnZ2VyX3NlbnNpdGl2ZV8iCisKKyNlbmRpZgorCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9fU0VOU0lUSVZFX0hfUFJPVE9fXworI2RlZmluZSBfX1NFTlNJVElWRV9IX1BST1RPX18KKwordm9pZCBSZW1vdmVTZW5zaXRpdmVPYmplY3RGcm9tTGlzdChvYmplY3Qgb2IsIHN0cmluZyBsaXN0KTsKK3ZvaWQgUmVtb3ZlU2Vuc2l0aXZlT2JqZWN0KG9iamVjdCBvYik7Cit2YXJhcmdzIHZvaWQgSW5zZXJ0U2Vuc2l0aXZlT2JqZWN0VG9MaXN0KG9iamVjdCBvYiwgc3RyaW5nIGxpc3QsIHN0cmluZyBrZXksCisJCQkJCSBpbnQgdGhyZXNob2xkLCBtaXhlZCAqb3B0KTsKK3ZvaWQgSW5zZXJ0U2Vuc2l0aXZlT2JqZWN0KG9iamVjdCBvYiwgbWl4ZWQgYXJnKTsKK3ZvaWQgQ2hlY2tTZW5zaXRpdmVBdHRhY2soaW50IGRhbSwgbWl4ZWQgZGFtX3R5cGUsIG1peGVkIHNwZWxsLCBvYmplY3QgZW5lbXkpOworCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL3NlbnQuaCBiL3N5cy9zZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc5YmVmMgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9zZW50LmgKQEAgLTAsMCArMSwxMCBAQAorI2lmbmRlZiBMUENfU0VOVF9IXworI2RlZmluZSBMUENfU0VOVF9IXworCisjZGVmaW5lIFNFTlRfUExBSU4JMAorI2RlZmluZSBTRU5UX1NIT1JUX1ZFUkIJMQorI2RlZmluZSBTRU5UX05PX1NQQUNFCTIKKyNkZWZpbmUgU0VOVF9OT19WRVJCCTMKKyNkZWZpbmUgU0VOVF9NQVJLRVIJNAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5cy9zaGVsbHMuaCBiL3N5cy9zaGVsbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzkyY2NhCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3NoZWxscy5oCkBAIC0wLDAgKzEsMjcgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBzaGVsbHMuaCAtLSBzaGVsbCBoZWFkZXIKKy8vCisvLyAkSWQ6IHNoZWxscy5oIDk1NTUgMjAxNi0wNS0wMyAyMDo0Mjo0NlogWmVzc3RyYSAkCisKKyNpZm5kZWYgX19TSEVMTFNfSF9fCisjZGVmaW5lIF9fU0hFTExTX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNkZWZpbmUgUF9DVVJSRU5URElSICJjdXJyZW50ZGlyIgorI2RlZmluZSBQX0xBU1RESVIgInBfbGliX2xhc3RkaXIiCisKKyNlbmRpZiAvLyBfX1NIRUxMU19IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fU0hFTExTX0hfUFJPVE9fXworI2RlZmluZSBfX1NIRUxMU19IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworLy8gbm8gcHJvdG90eXBlcworCisjZW5kaWYgLy8gX19TSEVMTFNfSF9QUk9UT19fCisKKyNlbmRpZgkvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3NpZ25hbHMuaCBiL3N5cy9zaWduYWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU0NDEyZQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9zaWduYWxzLmgKQEAgLTAsMCArMSwyMyBAQAorI2lmbmRlZiBMUENfU0lHTkFMU19IXworI2RlZmluZSBMUENfU0lHTkFMU19IXyAxCisKKy8vIE91ciBkZWZpbmVzIGZvciBzb21lIFBPU0lYIHNpZ25hbHMgdGhlIGRyaXZlciBkZWZlcnMgdG8gdGhlIG11ZGxpYi4KKy8vIFRoaXMgYWJzdHJhY3Rpb24gaXMgaW50ZW50aW9uYWwuCisjZGVmaW5lIExQQ19TSUdIVVAgICAgMQorI2RlZmluZSBMUENfU0lHSU5UICAgIDIKKyNkZWZpbmUgTFBDX1NJR1RFUk0gICAxNQorI2RlZmluZSBMUENfU0lHVVNSMSAgIDE2CisjZGVmaW5lIExQQ19TSUdVU1IyICAgMTcKKworLy8gX19TVERfXyBpcyBkZWZpbmVkIGR1cmluZyB0aGUgZHJpdmVyIGNvbXBpbGF0aW9uICh0aGUgZHJpdmVyIGluY2x1ZGVzIHRoaXMKKy8vIGZpbGUgYXMgd2VsbCkgYnV0IG5vdCBpbiBMUEMgcHJvZ3JhbXMuIEluIExQQyB3ZSBtYXkgc2FmZWx5IGRlZmluZSB0aGUKKy8vIHNpZ25hbHMgbmFtZSB3aXRob3V0IHRoZSBMUENfIHByZWZpeC4KKyNpZiAhZGVmaW5lZChfX1NURENfXykKKyNkZWZpbmUgU0lHSFVQICAgICAgIExQQ19TSUdIVVAKKyNkZWZpbmUgU0lHSU5UICAgICAgIExQQ19TSUdJTlQKKyNkZWZpbmUgU0lHVEVSTSAgICAgIExQQ19TSUdURVJNCisjZGVmaW5lIFNJR1VTUjEgICAgICBMUENfU0lHVVNSMQorI2RlZmluZSBTSUdVU1IyICAgICAgTFBDX1NJR1VTUjIKKyNlbmRpZiAvLyBfX1NURF9fCisKKyNlbmRpZiAvKiBMUENfU0lHTkFMU19IXyAqLwpkaWZmIC0tZ2l0IGEvc3lzL3Nub29waW5nLmggYi9zeXMvc25vb3BpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWVkY2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3Nub29waW5nLmgKQEAgLTAsMCArMSwxNSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHNub29waW5nLmggLS0gRGVmaW5pdGlvbmVuIHJ1bmQgdW1zIFNub29wZW4KKy8vCisvLyAkSWQ6IHNub29waW5nLmgsdiAzLjEgMTk5Ny8wMi8xMiAxMzowNDo1OSBXYXJnb24gRXhwICQKKworI2lmbmRlZiBfU05PT1BJTkdfSF8KKyNkZWZpbmUgX1NOT09QSU5HX0hfCisKKyNkZWZpbmUgU0ZfTE9DS0VEICAgICAgICAxCisjZGVmaW5lIFNGX0ZPUkNFICAgICAgICAgMgorCisjZGVmaW5lIFBfU05PT1BGTEFHUyAgICAgInNub29wZmxhZ3MiCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL3NwZWxsYm9vay5oIGIvc3lzL3NwZWxsYm9vay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NjMwMWUKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvc3BlbGxib29rLmgKQEAgLTAsMCArMSw1NiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHNwZWxsYm9vay5oIC0tIEZ1bmt0aW9ucy1Qcm90b3R5cGVuIGZ1ZXIgZGFzIC9zdGQvc3BlbGxib29rLmgKKy8vCisvLyAkSWQ6IHNwZWxsYm9vay5oIDg4MjIgMjAxNC0wNS0xNyAwOTo0OTo0OVogWmVzc3RyYSAkCisKKyNpZm5kZWYgX19TUEVMTEJPT0tfSF9fCisjZGVmaW5lIF9fU1BFTExCT09LX0hfXworCisvLyBubyBkZWZpbmVzCisKKyNlbmRpZiAvLyBfX1NQRUxMQk9PS19IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fU1BFTExCT09LX0hfUFJPVE9fXworI2RlZmluZSBfX1NQRUxMQk9PS19IX1BST1RPX18KKwordmFyYXJncyBpbnQgICAgICBBZGRTcGVsbChzdHJpbmcgdmVyYiwgaW50IGtvc3RlbiwgbWl4ZWQgc2tpKTsKKyAgICAgICAgaW50ICAgICAgQ2FuVHJ5U3BlbGwob2JqZWN0IGNhc3RlciwgbWFwcGluZyBzaW5mbyk7CisgICAgICAgIGludCAgICAgIFNwZWxsU3VjY2VzcyhvYmplY3QgY2FzdGVyLCBtYXBwaW5nIHNpbmZvKTsKKyAgICAgICAgaW50ICAgICAgVHJ5QXR0YWNrU3BlbGwob2JqZWN0IHZpY3RpbSwgaW50IGRhbWFnZSwgbWl4ZWQgZHR5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXhlZCBpc19zcGVsbCwgb2JqZWN0IGNhc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZyBzaW5mbyk7Cit2YXJhcmdzIGludCAgICAgIFRyeURlZmF1bHRBdHRhY2tTcGVsbChvYmplY3QgdmljdGltLCBvYmplY3QgY2FzdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZyBzaW5mbywgbWl4ZWQgc3RyKTsKK3ZhcmFyZ3MgaW50ICAgICAgVHJ5R2xvYmFsQXR0YWNrU3BlbGwob2JqZWN0IGNhc3RlciwgbWFwcGluZyBzaW5mbywgaW50IHN1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRhbWFnZSwgbWl4ZWQgZHQsIG1peGVkIGlzX3NwZWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGlzdCwgaW50IGRlcHRoLCBpbnQgd2lkdGgpOwordmFyYXJncyBpbnQgICAgICBVc2VTcGVsbChvYmplY3QgY2FzdGVyLCBzdHJpbmcgc3BlbGwsIG1hcHBpbmcgc2luZm8pOworICAgICAgICBtYXBwaW5nICBRdWVyeVNwZWxsKHN0cmluZyBzcGVsbCk7Cit2YXJhcmdzIG1peGVkICAgIEZpbmREaXN0YW50R3JvdXBzKG9iamVjdCBwbCwgaW50IGRpc3QsIGludCBkeSwgaW50IGR4KTsKK3ZhcmFyZ3Mgb2JqZWN0ICAgRmluZERpc3RhbnRFbmVteVZpY3RpbShzdHJpbmcgd2VuLCBvYmplY3QgcGwsIHN0cmluZyBtc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRpc3QsIGludCBkeSk7Cit2YXJhcmdzIG9iamVjdCAgKkZpbmREaXN0YW50R3JvdXAob2JqZWN0IHBsLCBpbnQgd2hvLCBpbnQgZGlzdCwgaW50IGR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkeCk7Cit2YXJhcmdzIG9iamVjdCAgIEZpbmRFbmVteVZpY3RpbShzdHJpbmcgd2VuLCBvYmplY3QgcGwsIHN0cmluZyBtc2cpOwordmFyYXJncyBvYmplY3QgICBGaW5kRmFyRW5lbXlWaWN0aW0oc3RyaW5nIHdlbiwgb2JqZWN0IHBsLCBzdHJpbmcgbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbiwgaW50IG1heCk7CisgICAgICAgIG9iamVjdCAgKkZpbmRHcm91cChvYmplY3QgcGwsIGludCB3aG8pOworICAgICAgICBvYmplY3QgICpGaW5kR3JvdXBOKG9iamVjdCBwbCwgaW50IHdobywgaW50IG4pOworICAgICAgICBvYmplY3QgICpGaW5kR3JvdXBQKG9iamVjdCBwbCwgaW50IHdobywgaW50IHByKTsKK3ZhcmFyZ3Mgb2JqZWN0ICAgRmluZExpdmluZ1ZpY3RpbShzdHJpbmcgd2VuLCBvYmplY3QgcGwsIHN0cmluZyBtc2cpOwordmFyYXJncyBvYmplY3QgICBGaW5kTmVhckVuZW15VmljdGltKHN0cmluZyB3ZW4sIG9iamVjdCBwbCwgc3RyaW5nIG1zZyk7CitzdGF0aWMKK3ZhcmFyZ3Mgb2JqZWN0ICAgZmluZF92aWN0aW0oc3RyaW5nIHdlbiwgb2JqZWN0IHBsKTsKK3ZhcmFyZ3Mgb2JqZWN0ICAgRmluZFZpY3RpbShzdHJpbmcgd2VuLCBvYmplY3QgcGwsIHN0cmluZyBtc2cpOworICAgICAgICBzdHJpbmcgICBTZWxlY3RTcGVsbChzdHJpbmcgc3BlbGwsIG1hcHBpbmcgc2luZm8pOworICAgICAgICB2b2lkICAgICBFcmZvbGcob2JqZWN0IGNhc3Rlciwgc3RyaW5nIHNwZWxsLCBtYXBwaW5nIHNpbmZvKTsKKyAgICAgICAgdm9pZCAgICAgTGVhcm4ob2JqZWN0IGNhc3Rlciwgc3RyaW5nIHNwZWxsLCBtYXBwaW5nIHNpbmZvKTsKKyAgICAgICAgdm9pZCAgICAgTWlzc2VyZm9sZyhvYmplY3QgY2FzdGVyLCBzdHJpbmcgc3BlbGwsIG1hcHBpbmcgc2luZm8pOwordmFyYXJncyB2b2lkICAgICBwcmVwYXJlX3NwZWxsKG9iamVjdCBjYXN0ZXIsIHN0cmluZyBzcGVsbCwgbWFwcGluZyBzaW5mbyk7CisKKyNlbmRpZiAvLyBfX1NQRUxMQk9PS19IX1BST1RPX18KKworI2VuZGlmIC8vIC8vIE5FRURfUFJPVE9ZUEVTCmRpZmYgLS1naXQgYS9zeXMvc3RyaW5ncy5oIGIvc3lzL3N0cmluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzhhZTFlCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3N0cmluZ3MuaApAQCAtMCwwICsxLDEwIEBACisjaWZuZGVmIExQQ19TVFJJTkdTX0hfCisjZGVmaW5lIExQQ19TVFJJTkdTX0hfIDEKKworLyogJ3doZXJlJyBhcmd1bWVudCB2YWx1ZXMgZm9yIHRyaW0oKSAqLworCisjZGVmaW5lIFRSSU1fTEVGVCAgMHgwMQorI2RlZmluZSBUUklNX1JJR0hUIDB4MDIKKyNkZWZpbmUgVFJJTV9CT1RIICAoVFJJTV9MRUZUfFRSSU1fUklHSFQpCisKKyNlbmRpZiAvKiBMUENfU1RSSU5HU19IXyAqLwpkaWZmIC0tZ2l0IGEvc3lzL3N0cnVjdF9pbmZvLmggYi9zeXMvc3RydWN0X2luZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGUwMGU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3N0cnVjdF9pbmZvLmgKQEAgLTAsMCArMSwzOCBAQAorI2lmbmRlZiBMUENfU1RSVUNUSU5GT19IXworI2RlZmluZSBMUENfU1RSVUNUSU5GT19IXworCisjaWZuZGVmIF9fRFJJVkVSX1NPVVJDRV9fCisjaW5jbHVkZSAibHBjdHlwZXMuaCIKKyNlbmRpZgorCisvKiBEZWZpbml0aW9uIG9mIGFyZ3VtZW50IHZhbHVlcyBmb3Igc3RydWN0X2luZm8oKSBhbmQKKyAqIG9mIHRoZSBpbmRpY2VzIGluIHRoZSBjb3JyZXNwb25kaW5nIHJlc3VsdCBhcnJheXMuCisgKi8KKworLyogUG9zc2libGUgdHlwZXMgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkIGZyb20gc3RydWN0X2luZm8oKQorICovCisjZGVmaW5lIFNJTkZPX0ZMQVQgICAgMAorI2RlZmluZSBTSU5GT19ORVNURUQgIDEKKworCisvKiBJbmRpY2VzIGluIHRoZSByZXN1bHQgYXJyYXkKKyAqLworCisjZGVmaW5lIFNJX05BTUUgICAgICAgICAwCisjZGVmaW5lIFNJX1BST0dfTkFNRSAgICAxCisjZGVmaW5lIFNJX1BST0dfSUQgICAgICAyCisjZGVmaW5lIFNJX0JBU0UgICAgICAgICAzCisjZGVmaW5lIFNJX01FTUJFUiAgICAgICA0CisKKyNkZWZpbmUgU0lfTUFYIDUgIC8qIE1pbiBOdW1iZXIgb2YgU0lfIHJlc3VsdCBlbGVtZW50cyAqLworCisvKiBJbmRpY2VzIGluIHRoZSBTSV9NRU1CRVIgYXJyYXlzCisgKi8KKworI2RlZmluZSBTSU1fTkFNRSAgIDAKKyNkZWZpbmUgU0lNX1RZUEUgICAxCisjZGVmaW5lIFNJTV9FWFRSQSAgMgorCisjZGVmaW5lIFNJTV9NQVggMyAvKiBOdW1iZXIgb2YgU0lNXyBlbGVtZW50cyAqLworCisjZW5kaWYgLyogTFBDX1NUUlVDVElORk9fSF8gKi8KZGlmZiAtLWdpdCBhL3N5cy9zeXNfZGVidWcuaCBiL3N5cy9zeXNfZGVidWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjgyNzY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3N5c19kZWJ1Zy5oCkBAIC0wLDAgKzEsMjQgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBzeXNfZGVidWcuaCAtLSBEZWZpbml0aW9uZW4gZnVlciBEZWJ1Z3p3ZWNrZQorLy8KKy8vICRJZDogc3lzX2RlYnVnLmggNjA4MSAyMDA2LTEwLTIzIDE0OjEyOjM0WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX1NZU19ERUJVR19IX18KKyNkZWZpbmUgX19TWVNfREVCVUdfSF9fCisKKyNkZWZpbmUgREVCVUcoeCkgcHJpbnRmKCJERUJVRzogT0JKKC8lTykgJU9cbiIsIHRoaXNfb2JqZWN0KCksICh4KSkKKworI2RlZmluZSBEQkdfT04oYykgKHRyYWNlcHJlZml4KG9iamVjdF9uYW1lKHRoaXNfb2JqZWN0KCkpWzEuLl0pLCB0cmFjZShjP2M6MjM5KSkKKyNkZWZpbmUgREJHX09GRigpICh0cmFjZXByZWZpeCgiIiksIHRyYWNlKDApKQorCisjZGVmaW5lIExGVU4gICAgMSAgIC8vIGRlYnVnIGxmdW5jIGNhbGxzCisjZGVmaW5lIENBTEwgICAgMiAgIC8vIGRlYnVnIGNhbGxfb3RoZXIgY2FsbHMKKyNkZWZpbmUgUkVUICAgICA0ICAgLy8gZGVidWcgcmV0dXJuIHZhbHVlcworI2RlZmluZSBBUkdTICAgIDggICAvLyBzaG93IGFyZ3VtZW50cyB3aGVuIGNhbGxpbmcgYSBmdW5jdGlvbgorI2RlZmluZSBTVEFDSyAgIDE2ICAvLyBzaG93IGFsbCBzdGFjayBtYWNoaW5lIGNvZGUgKERPTidUIFVTRSEpCisjZGVmaW5lIEhCICAgICAgMzIgIC8vIHNob3cgY2FsbHMgdG8gaGVhcnRfYmVhdCgpCisjZGVmaW5lIEFQUExZICAgNjQgIC8vIGRlYnVnIGNhbGxzIHRvIGFwcGx5CisjZGVmaW5lIE5BTUUgICAgMTI4IC8vIHNob3cgbmFtZSBvZiBmaWxlIHdoZW4gZGVidWdnaW5nIChkb24ndCB1c2UpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL3RlbG5ldC5oIGIvc3lzL3RlbG5ldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0YTJiMTQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvdGVsbmV0LmgKQEAgLTAsMCArMSwyNjEgQEAKKyNpZm5kZWYgVEVMTkVUX0hfXworI2RlZmluZSBURUxORVRfSF9fIDEKKworLyoKKyAqIENvcHlyaWdodCAoYykgMTk4MyBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMgYXJlIHBlcm1pdHRlZAorICogcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwYXJhZ3JhcGggYXJlCisgKiBkdXBsaWNhdGVkIGluIGFsbCBzdWNoIGZvcm1zIGFuZCB0aGF0IGFueSBkb2N1bWVudGF0aW9uLAorICogYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzLCBhbmQgb3RoZXIgbWF0ZXJpYWxzIHJlbGF0ZWQgdG8gc3VjaAorICogZGlzdHJpYnV0aW9uIGFuZCB1c2UgYWNrbm93bGVkZ2UgdGhhdCB0aGUgc29mdHdhcmUgd2FzIGRldmVsb3BlZAorICogYnkgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgQmVya2VsZXkuICBUaGUgbmFtZSBvZiB0aGUKKyAqIFVuaXZlcnNpdHkgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgV0lUSE9VVCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRJQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKyAqCisgKiAgICAgICAgQCgjKXRlbG5ldC5oICAgICAgICA1LjcgKEJlcmtlbGV5KSAxMS8xNC84OQorICovCisKKy8qCisgKiBEZWZpbml0aW9ucyBmb3IgdGhlIFRFTE5FVCBwcm90b2NvbC4KKyAqLworI2RlZmluZSAgSUFDICAgICAyNTUgICAgICAvKiBpbnRlcnByZXQgYXMgY29tbWFuZDogKi8KKyNkZWZpbmUgIERPTlQgICAgMjU0ICAgICAgLyogeW91IGFyZSBub3QgdG8gdXNlIG9wdGlvbiAqLworI2RlZmluZSAgRE8gICAgICAyNTMgICAgICAvKiBwbGVhc2UsIHlvdSB1c2Ugb3B0aW9uICovCisjZGVmaW5lICBXT05UICAgIDI1MiAgICAgIC8qIEkgd29uJ3QgdXNlIG9wdGlvbiAqLworI2RlZmluZSAgV0lMTCAgICAyNTEgICAgICAvKiBJIHdpbGwgdXNlIG9wdGlvbiAqLworI2RlZmluZSAgU0IgICAgICAyNTAgICAgICAvKiBpbnRlcnByZXQgYXMgc3VibmVnb3RpYXRpb24gKi8KKyNkZWZpbmUgIEdBICAgICAgMjQ5ICAgICAgLyogeW91IG1heSByZXZlcnNlIHRoZSBsaW5lICovCisjZGVmaW5lICBFTCAgICAgIDI0OCAgICAgIC8qIGVyYXNlIHRoZSBjdXJyZW50IGxpbmUgKi8KKyNkZWZpbmUgIEVDICAgICAgMjQ3ICAgICAgLyogZXJhc2UgdGhlIGN1cnJlbnQgY2hhcmFjdGVyICovCisjZGVmaW5lICBBWVQgICAgIDI0NiAgICAgIC8qIGFyZSB5b3UgdGhlcmUgKi8KKyNkZWZpbmUgIEFPICAgICAgMjQ1ICAgICAgLyogYWJvcnQgb3V0cHV0LS1idXQgbGV0IHByb2cgZmluaXNoICovCisjZGVmaW5lICBJUCAgICAgIDI0NCAgICAgIC8qIGludGVycnVwdCBwcm9jZXNzLS1wZXJtYW5lbnRseSAqLworI2RlZmluZSAgQlJFQUsgICAyNDMgICAgICAvKiBicmVhayAqLworI2RlZmluZSAgRE0gICAgICAyNDIgICAgICAvKiBkYXRhIG1hcmstLWZvciBjb25uZWN0LiBjbGVhbmluZyAqLworI2RlZmluZSAgTk9QICAgICAyNDEgICAgICAvKiBub3AgKi8KKyNkZWZpbmUgIFNFICAgICAgMjQwICAgICAgLyogZW5kIHN1YiBuZWdvdGlhdGlvbiAqLworI2RlZmluZSAgRU9SICAgICAyMzkgICAgICAvKiBlbmQgb2YgcmVjb3JkICh0cmFuc3BhcmVudCBtb2RlKSAqLworI2RlZmluZSAgQUJPUlQgICAyMzggICAgICAvKiBBYm9ydCBwcm9jZXNzICovCisjZGVmaW5lICBTVVNQICAgIDIzNyAgICAgIC8qIFN1c3BlbmQgcHJvY2VzcyAqLworI2RlZmluZSAgeEVPRiAgICAyMzYgICAgICAvKiBFbmQgb2YgZmlsZTogRU9GIGlzIGFscmVhZHkgdXNlZC4uLiAqLworCisjZGVmaW5lICBTWU5DSCAgIDI0MiAgICAgIC8qIGZvciB0ZWxmdW5jIGNhbGxzICovCisKKyNpZmRlZiBfX0RSSVZFUl9TT1VSQ0VfXworCisjaWZkZWYgVEVMQ01EUworY2hhciAqdGVsY21kc1tdID0geworICAgICAgICAiRU9GIiwgIlNVU1AiLCAiQUJPUlQiLCAiRU9SIiwKKyAgICAgICAgIlNFIiwgIk5PUCIsICJETUFSSyIsICJCUksiLCAiSVAiLCAiQU8iLCAiQVlUIiwgIkVDIiwKKyAgICAgICAgIkVMIiwgIkdBIiwgIlNCIiwgIldJTEwiLCAiV09OVCIsICJETyIsICJET05UIiwgIklBQyIsCit9OworI2RlZmluZSAgVEVMQ01EX0ZJUlNUICAgeEVPRgorI2RlZmluZSAgVEVMQ01EX0xBU1QgICAgSUFDCisjZGVmaW5lICBURUxDTURfT0soeCkgICAoKHgpIDw9IFRFTENNRF9MQVNUICYmICh4KSA+PSBURUxDTURfRklSU1QpCisjZGVmaW5lICBURUxDTUQoeCkgICAgICB0ZWxjbWRzWyh4KS1URUxDTURfRklSU1RdCisjZW5kaWYKKworI2VuZGlmIC8qIF9fRFJJVkVSX1NPVVJDRV9fICovCisKKy8qIHRlbG5ldCBvcHRpb25zICovCisjZGVmaW5lICBURUxPUFRfQklOQVJZICAgICAgICAgMCAgICAgICAgLyogOC1iaXQgZGF0YSBwYXRoICovCisjZGVmaW5lICBURUxPUFRfRUNITyAgICAgICAgICAgMSAgICAgICAgLyogZWNobyAqLworI2RlZmluZSAgVEVMT1BUX1JDUCAgICAgICAgICAgIDIgICAgICAgIC8qIHByZXBhcmUgdG8gcmVjb25uZWN0ICovCisjZGVmaW5lICBURUxPUFRfU0dBICAgICAgICAgICAgMyAgICAgICAgLyogc3VwcHJlc3MgZ28gYWhlYWQgKi8KKyNkZWZpbmUgIFRFTE9QVF9OQU1TICAgICAgICAgICA0ICAgICAgICAvKiBhcHByb3hpbWF0ZSBtZXNzYWdlIHNpemUgKi8KKyNkZWZpbmUgIFRFTE9QVF9TVEFUVVMgICAgICAgICA1ICAgICAgICAvKiBnaXZlIHN0YXR1cyAqLworI2RlZmluZSAgVEVMT1BUX1RNICAgICAgICAgICAgIDYgICAgICAgIC8qIHRpbWluZyBtYXJrICovCisjZGVmaW5lICBURUxPUFRfUkNURSAgICAgICAgICAgNyAgICAgICAgLyogcmVtb3RlIGNvbnRyb2xsZWQgdHJhbnNtaXNzaW9uIGFuZCBlY2hvICovCisjZGVmaW5lICBURUxPUFRfTkFPTCAgICAgICAgICAgOCAgICAgICAgLyogbmVnb3RpYXRlIGFib3V0IG91dHB1dCBsaW5lIHdpZHRoICovCisjZGVmaW5lICBURUxPUFRfTkFPUCAgICAgICAgICAgOSAgICAgICAgLyogbmVnb3RpYXRlIGFib3V0IG91dHB1dCBwYWdlIHNpemUgKi8KKyNkZWZpbmUgIFRFTE9QVF9OQU9DUkQgICAgICAgIDEwICAgICAgICAvKiBuZWdvdGlhdGUgYWJvdXQgQ1IgZGlzcG9zaXRpb24gKi8KKyNkZWZpbmUgIFRFTE9QVF9OQU9IVFMgICAgICAgIDExICAgICAgICAvKiBuZWdvdGlhdGUgYWJvdXQgaG9yaXpvbnRhbCB0YWJzdG9wcyAqLworI2RlZmluZSAgVEVMT1BUX05BT0hURCAgICAgICAgMTIgICAgICAgIC8qIG5lZ290aWF0ZSBhYm91dCBob3Jpem9udGFsIHRhYiBkaXNwb3NpdGlvbiAqLworI2RlZmluZSAgVEVMT1BUX05BT0ZGRCAgICAgICAgMTMgICAgICAgIC8qIG5lZ290aWF0ZSBhYm91dCBmb3JtZmVlZCBkaXNwb3NpdGlvbiAqLworI2RlZmluZSAgVEVMT1BUX05BT1ZUUyAgICAgICAgMTQgICAgICAgIC8qIG5lZ290aWF0ZSBhYm91dCB2ZXJ0aWNhbCB0YWIgc3RvcHMgKi8KKyNkZWZpbmUgIFRFTE9QVF9OQU9WVEQgICAgICAgIDE1ICAgICAgICAvKiBuZWdvdGlhdGUgYWJvdXQgdmVydGljYWwgdGFiIGRpc3Bvc2l0aW9uICovCisjZGVmaW5lICBURUxPUFRfTkFPTEZEICAgICAgICAxNiAgICAgICAgLyogbmVnb3RpYXRlIGFib3V0IG91dHB1dCBMRiBkaXNwb3NpdGlvbiAqLworI2RlZmluZSAgVEVMT1BUX1hBU0NJSSAgICAgICAgMTcgICAgICAgIC8qIGV4dGVuZGVkIGFzY2ljIGNoYXJhY3RlciBzZXQgKi8KKyNkZWZpbmUgIFRFTE9QVF9MT0dPVVQgICAgICAgIDE4ICAgICAgICAvKiBmb3JjZSBsb2dvdXQgKi8KKyNkZWZpbmUgIFRFTE9QVF9CTSAgICAgICAgICAgIDE5ICAgICAgICAvKiBieXRlIG1hY3JvICovCisjZGVmaW5lICBURUxPUFRfREVUICAgICAgICAgICAyMCAgICAgICAgLyogZGF0YSBlbnRyeSB0ZXJtaW5hbCAqLworI2RlZmluZSAgVEVMT1BUX1NVUERVUCAgICAgICAgMjEgICAgICAgIC8qIHN1cGR1cCBwcm90b2NvbCAqLworI2RlZmluZSAgVEVMT1BUX1NVUERVUE9VVFBVVCAgMjIgICAgICAgIC8qIHN1cGR1cCBvdXRwdXQgKi8KKyNkZWZpbmUgIFRFTE9QVF9TTkRMT0MgICAgICAgIDIzICAgICAgICAvKiBzZW5kIGxvY2F0aW9uICovCisjZGVmaW5lICBURUxPUFRfVFRZUEUgICAgICAgICAyNCAgICAgICAgLyogdGVybWluYWwgdHlwZSAqLworI2RlZmluZSAgVEVMT1BUX0VPUiAgICAgICAgICAgMjUgICAgICAgIC8qIGVuZCBvciByZWNvcmQgKi8KKyNkZWZpbmUgIFRFTE9QVF9UVUlEICAgICAgICAgIDI2ICAgICAgICAvKiBUQUNBQ1MgdXNlciBpZGVudGlmaWNhdGlvbiAqLworI2RlZmluZSAgVEVMT1BUX09VVE1SSyAgICAgICAgMjcgICAgICAgIC8qIG91dHB1dCBtYXJraW5nICovCisjZGVmaW5lICBURUxPUFRfVFRZTE9DICAgICAgICAyOCAgICAgICAgLyogdGVybWluYWwgbG9jYXRpb24gbnVtYmVyICovCisjZGVmaW5lICBURUxPUFRfMzI3MFJFR0lNRSAgICAyOSAgICAgICAgLyogMzI3MCByZWdpbWUgKi8KKyNkZWZpbmUgIFRFTE9QVF9YM1BBRCAgICAgICAgIDMwICAgICAgICAvKiBYLjMgUEFEICovCisjZGVmaW5lICBURUxPUFRfTkFXUyAgICAgICAgICAzMSAgICAgICAgLyogd2luZG93IHNpemUgKi8KKyNkZWZpbmUgIFRFTE9QVF9UU1BFRUQgICAgICAgIDMyICAgICAgICAvKiB0ZXJtaW5hbCBzcGVlZCAqLworI2RlZmluZSAgVEVMT1BUX0xGTE9XICAgICAgICAgMzMgICAgICAgIC8qIHJlbW90ZSBmbG93IGNvbnRyb2wgKi8KKyNkZWZpbmUgIFRFTE9QVF9MSU5FTU9ERSAgICAgIDM0ICAgICAgICAvKiBMaW5lbW9kZSBvcHRpb24gKi8KKyNkZWZpbmUgIFRFTE9QVF9YRElTUExPQyAgICAgIDM1ICAgICAgICAvKiBYIERpc3BsYXkgTG9jYXRpb24gKi8KKyNkZWZpbmUgIFRFTE9QVF9FTlZJUk9OCSAgICAgIDM2ICAgICAgICAvKiBFbnZpcm9ubWVudCBvcHQgZm9yIFBvcnQgSUQgKi8KKyNkZWZpbmUgIFRFTE9QVF9BVVRIRU5USUNBVElPTiAzNyAgICAgICAvKiBhdXRoZW50aWNhdGlvbiAqLworI2RlZmluZSAgVEVMT1BUX0VOQ1JZUFQgICAgICAgMzggICAgICAgIC8qIGF1dGhlbnRpY2F0aW9uICovCisjZGVmaW5lICBURUxPUFRfTkVXRU5WICAgICAgICAzOSAgICAgICAgLyogRW52aXJvbm1lbnQgb3B0IGZvciBQb3J0IElEICovCisjZGVmaW5lICBURUxPUFRfU1RBUlRUTFMgICAgICA0NiAgICAgICAgLyogVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5ICovCisjZGVmaW5lICBURUxPUFRfS0VSTUlUICAgICAgICA0NyAgICAgICAgLyogVGVsbmV0IEtFUk1JVCAqLworI2RlZmluZSAgVEVMT1BUX1NFTkRfVVJMICAgICAgNDggICAgICAgIC8qIFNlbmQgVVJMICovCisjZGVmaW5lICBURUxPUFRfRVhPUEwgICAgICAgIDI1NSAgICAgICAgLyogZXh0ZW5kZWQtb3B0aW9ucy1saXN0ICovCisKKy8qIElub2ZmaWNpYWwsIG11ZCBzcGVjaWZpYyB0ZWxuZXQgb3B0aW9ucyAqLworI2RlZmluZSAgVEVMT1BUX01TU1AgICAgICAgICAgNzAgICAgICAgIC8qIE11ZCBTZXJ2ZXIgU3RhdHVzIFByb3RvY29sICovCisjZGVmaW5lICBURUxPUFRfQ09NUFJFU1MgICAgICA4NSAgICAgICAgLyogTXVkIENvbXByZXNzaW9uIFByb3RvY29sLCB2LjEgKi8KKyNkZWZpbmUgIFRFTE9QVF9DT01QUkVTUzIgICAgIDg2ICAgICAgICAvKiBNdWQgQ29tcHJlc3Npb24gUHJvdG9jb2wsIHYuMiAqLworI2RlZmluZSAgVEVMT1BUX01TUCAgICAgICAgICAgOTAgICAgICAgIC8qIE11ZCBTb3VuZCBQcm90b2NvbCAqLworI2RlZmluZSAgVEVMT1BUX01YUCAgICAgICAgICAgOTEgICAgICAgIC8qIE11ZCBFeHRlbnNpb24gUHJvdG9jb2wgKi8KKyNkZWZpbmUgIFRFTE9QVF9aTVAgICAgICAgICAgIDkzICAgICAgICAvKiBaZW5pdGggTXVkIFByb3RvY29sICovCisjZGVmaW5lICBURUxPUFRfTVVTSENMSUVOVCAgIDEwMiAgICAgICAgLyogTXVzaGNsaWVudC9BYXJkd29sZiBQcm90b2NvbCAqLworI2RlZmluZSAgVEVMT1BUX0FUQ1AgICAgICAgICAyMDAgICAgICAgIC8qIEFjaGFlYSBUZWxuZXQgQ2xpZW50IFByb3RvY29sICovCisjZGVmaW5lICBURUxPUFRfR01DUCAgICAgICAgIDIwMSAgICAgICAgLyogR2VuZXJhbCBNdWQgQ29tbXVuaWNhdGlvbiBQcm90b2NvbCovCisKKyNkZWZpbmUgIE5URUxPUFRTICAgICAgICAgICAgMjU2ICAgICAgICAvKiB3YXM6ICgxK1RFTE9QVF9ORVdFTlYpICovCisKKyNpZmRlZiBfX0RSSVZFUl9TT1VSQ0VfXworCisjaWZkZWYgVEVMT1BUUworY2hhciAqdGVsb3B0c1tOVEVMT1BUU10KKyA9IHsgIkJJTkFSWSIsICJFQ0hPIiwgIlJDUCIsICJTVVBQUkVTUyBHTyBBSEVBRCIKKyAgICwgIk5BTUUiLCAiU1RBVFVTIiwgIlRJTUlORyBNQVJLIiwgIlJDVEUiCisgICAsICJOQU9MIiwgIk5BT1AiLCAiTkFPQ1JEIiwgIk5BT0hUUyIKKyAgICwgIk5BT0hURCIsICJOQU9GRkQiLCAiTkFPVlRTIiwgIk5BT1ZURCIKKyAgICwgIk5BT0xGRCIsICJFWFRFTkQgQVNDSUkiLCAiTE9HT1VUIiwgIkJZVEUgTUFDUk8iCisgICAsICJEQVRBIEVOVFJZIFRFUk1JTkFMIiwgIlNVUERVUCIsICJTVVBEVVAgT1VUUFVUIiwgIlNFTkQgTE9DQVRJT04iCisgICAsICJURVJNSU5BTCBUWVBFIiwgIkVORCBPRiBSRUNPUkQiLCAiVEFDQUNTIFVJRCIsICJPVVRQVVQgTUFSS0lORyIKKyAgICwgIlRUWUxPQyIsICIzMjcwIFJFR0lNRSIsICJYLjMgUEFEIiwgIk5BV1MiCisgICAsICJUU1BFRUQiLCAiTEZMT1ciLCAiTElORU1PREUiLCAiWERJU1BMT0MiCisgICAsICJFTlZJUk9OIiwgIkFVVEgiLCAiRU5DUllQVCIsICJORVdFTlYiCisgICAsICJURUxPUFQgNDAiLCAiVEVMT1BUIDQxIiwgIlRFTE9QVCA0MiIsICJURUxPUFQgNDMiCisgICAsICJURUxPUFQgNDQiLCAiVEVMT1BUIDQ1IiwgIlNUQVJUVExTIiwgIktFUk1JVCIKKyAgICwgIlNFTkRfVVJMIiwgIlRFTE9QVCA0OSIsICJURUxPUFQgNTAiLCAiVEVMT1BUIDUxIgorICAgLCAiVEVMT1BUIDUyIiwgIlRFTE9QVCA1MyIsICJURUxPUFQgNTQiLCAiVEVMT1BUIDU1IgorICAgLCAiVEVMT1BUIDU2IiwgIlRFTE9QVCA1NyIsICJURUxPUFQgNTgiLCAiVEVMT1BUIDU5IgorICAgLCAiVEVMT1BUIDYwIiwgIlRFTE9QVCA2MSIsICJURUxPUFQgNjIiLCAiVEVMT1BUIDYzIgorICAgLCAiVEVMT1BUIDY0IiwgIlRFTE9QVCA2NSIsICJURUxPUFQgNjYiLCAiVEVMT1BUIDY3IgorICAgLCAiVEVMT1BUIDY4IiwgIlRFTE9QVCA2OSIsICJNU1NQIiwgIlRFTE9QVCA3MSIKKyAgICwgIlRFTE9QVCA3MiIsICJURUxPUFQgNzMiLCAiVEVMT1BUIDc0IiwgIlRFTE9QVCA3NSIKKyAgICwgIlRFTE9QVCA3NiIsICJURUxPUFQgNzciLCAiVEVMT1BUIDc4IiwgIlRFTE9QVCA3OSIKKyAgICwgIlRFTE9QVCA4MCIsICJURUxPUFQgODEiLCAiVEVMT1BUIDgyIiwgIlRFTE9QVCA4MyIKKyAgICwgIlRFTE9QVCA4NCIsICJNVUQgQ09NUFJFU1MiLCAiTVVEIENPTVBSRVNTMiIsICJURUxPUFQgODciCisgICAsICJURUxPUFQgODgiLCAiVEVMT1BUIDg5IiwgIk1VRCBTT1VORCIsICJNVUQgRVhURU5TSU9OIgorICAgLCAiVEVMT1BUIDkyIiwgIlpNUCIsICJURUxPUFQgOTQiLCAiVEVMT1BUIDk1IgorICAgLCAiVEVMT1BUIDk2IiwgIlRFTE9QVCA5NyIsICJURUxPUFQgOTgiLCAiVEVMT1BUIDk5IgorICAgLCAiVEVMT1BUIDEwMCIsICJURUxPUFQgMTAxIiwgIk1VU0hDTElFTlQiLCAiVEVMT1BUIDEwMyIKKyAgICwgIlRFTE9QVCAxMDQiLCAiVEVMT1BUIDEwNSIsICJURUxPUFQgMTA2IiwgIlRFTE9QVCAxMDciCisgICAsICJURUxPUFQgMTA4IiwgIlRFTE9QVCAxMDkiLCAiVEVMT1BUIDExMCIsICJURUxPUFQgMTExIgorICAgLCAiVEVMT1BUIDExMiIsICJURUxPUFQgMTEzIiwgIlRFTE9QVCAxMTQiLCAiVEVMT1BUIDExNSIKKyAgICwgIlRFTE9QVCAxMTYiLCAiVEVMT1BUIDExNyIsICJURUxPUFQgMTE4IiwgIlRFTE9QVCAxMTkiCisgICAsICJURUxPUFQgMTIwIiwgIlRFTE9QVCAxMjEiLCAiVEVMT1BUIDEyMiIsICJURUxPUFQgMTIzIgorICAgLCAiVEVMT1BUIDEyNCIsICJURUxPUFQgMTI1IiwgIlRFTE9QVCAxMjYiLCAiVEVMT1BUIDEyNyIKKyAgICwgIlRFTE9QVCAxMjgiLCAiVEVMT1BUIDEyOSIsICJURUxPUFQgMTMwIiwgIlRFTE9QVCAxMzEiCisgICAsICJURUxPUFQgMTMyIiwgIlRFTE9QVCAxMzMiLCAiVEVMT1BUIDEzNCIsICJURUxPUFQgMTM1IgorICAgLCAiVEVMT1BUIDEzNiIsICJURUxPUFQgMTM3IiwgIlRFTE9QVCAxMzgiLCAiVEVMT1BUIDEzOSIKKyAgICwgIlRFTE9QVCAxNDAiLCAiVEVMT1BUIDE0MSIsICJURUxPUFQgMTQyIiwgIlRFTE9QVCAxNDMiCisgICAsICJURUxPUFQgMTQ0IiwgIlRFTE9QVCAxNDUiLCAiVEVMT1BUIDE0NiIsICJURUxPUFQgMTQ3IgorICAgLCAiVEVMT1BUIDE0OCIsICJURUxPUFQgMTQ5IiwgIlRFTE9QVCAxNTAiLCAiVEVMT1BUIDE1MSIKKyAgICwgIlRFTE9QVCAxNTIiLCAiVEVMT1BUIDE1MyIsICJURUxPUFQgMTU0IiwgIlRFTE9QVCAxNTUiCisgICAsICJURUxPUFQgMTU2IiwgIlRFTE9QVCAxNTciLCAiVEVMT1BUIDE1OCIsICJURUxPUFQgMTU5IgorICAgLCAiVEVMT1BUIDE2MCIsICJURUxPUFQgMTYxIiwgIlRFTE9QVCAxNjIiLCAiVEVMT1BUIDE2MyIKKyAgICwgIlRFTE9QVCAxNjQiLCAiVEVMT1BUIDE2NSIsICJURUxPUFQgMTY2IiwgIlRFTE9QVCAxNjciCisgICAsICJURUxPUFQgMTY4IiwgIlRFTE9QVCAxNjkiLCAiVEVMT1BUIDE3MCIsICJURUxPUFQgMTcxIgorICAgLCAiVEVMT1BUIDE3MiIsICJURUxPUFQgMTczIiwgIlRFTE9QVCAxNzQiLCAiVEVMT1BUIDE3NSIKKyAgICwgIlRFTE9QVCAxNzYiLCAiVEVMT1BUIDE3NyIsICJURUxPUFQgMTc4IiwgIlRFTE9QVCAxNzkiCisgICAsICJURUxPUFQgMTgwIiwgIlRFTE9QVCAxODEiLCAiVEVMT1BUIDE4MiIsICJURUxPUFQgMTgzIgorICAgLCAiVEVMT1BUIDE4NCIsICJURUxPUFQgMTg1IiwgIlRFTE9QVCAxODYiLCAiVEVMT1BUIDE4NyIKKyAgICwgIlRFTE9QVCAxODgiLCAiVEVMT1BUIDE4OSIsICJURUxPUFQgMTkwIiwgIlRFTE9QVCAxOTEiCisgICAsICJURUxPUFQgMTkyIiwgIlRFTE9QVCAxOTMiLCAiVEVMT1BUIDE5NCIsICJURUxPUFQgMTk1IgorICAgLCAiVEVMT1BUIDE5NiIsICJURUxPUFQgMTk3IiwgIlRFTE9QVCAxOTgiLCAiVEVMT1BUIDE5OSIKKyAgICwgIkFUQ1AiLCAiVEVMT1BUIDIwMSIsICJURUxPUFQgMjAyIiwgIlRFTE9QVCAyMDMiCisgICAsICJURUxPUFQgMjA0IiwgIlRFTE9QVCAyMDUiLCAiVEVMT1BUIDIwNiIsICJURUxPUFQgMjA3IgorICAgLCAiVEVMT1BUIDIwOCIsICJURUxPUFQgMjA5IiwgIlRFTE9QVCAyMTAiLCAiVEVMT1BUIDIxMSIKKyAgICwgIlRFTE9QVCAyMTIiLCAiVEVMT1BUIDIxMyIsICJURUxPUFQgMjE0IiwgIlRFTE9QVCAyMTUiCisgICAsICJURUxPUFQgMjE2IiwgIlRFTE9QVCAyMTciLCAiVEVMT1BUIDIxOCIsICJURUxPUFQgMjE5IgorICAgLCAiVEVMT1BUIDIyMCIsICJURUxPUFQgMjIxIiwgIlRFTE9QVCAyMjIiLCAiVEVMT1BUIDIyMyIKKyAgICwgIlRFTE9QVCAyMjQiLCAiVEVMT1BUIDIyNSIsICJURUxPUFQgMjI2IiwgIlRFTE9QVCAyMjciCisgICAsICJURUxPUFQgMjI4IiwgIlRFTE9QVCAyMjkiLCAiVEVMT1BUIDIzMCIsICJURUxPUFQgMjMxIgorICAgLCAiVEVMT1BUIDIzMiIsICJURUxPUFQgMjMzIiwgIlRFTE9QVCAyMzQiLCAiVEVMT1BUIDIzNSIKKyAgICwgIlRFTE9QVCAyMzYiLCAiVEVMT1BUIDIzNyIsICJURUxPUFQgMjM4IiwgIlRFTE9QVCAyMzkiCisgICAsICJURUxPUFQgMjQwIiwgIlRFTE9QVCAyNDEiLCAiVEVMT1BUIDI0MiIsICJURUxPUFQgMjQzIgorICAgLCAiVEVMT1BUIDI0NCIsICJURUxPUFQgMjQ1IiwgIlRFTE9QVCAyNDYiLCAiVEVMT1BUIDI0NyIKKyAgICwgIlRFTE9QVCAyNDgiLCAiVEVMT1BUIDI0OSIsICJURUxPUFQgMjUwIiwgIlRFTE9QVCAyNTEiCisgICAsICJURUxPUFQgMjUyIiwgIlRFTE9QVCAyNTMiLCAiVEVMT1BUIDI1NCIsICJFWE9QTCIKK307CisjZW5kaWYKKworI2VuZGlmIC8qIF9fRFJJVkVSX1NPVVJDRV9fICovCisKKy8qIHN1Yi1vcHRpb24gcXVhbGlmaWVycyAqLworI2RlZmluZSAgVEVMUVVBTF9JUyAgICAgMCAgICAgICAgLyogb3B0aW9uIGlzLi4uICovCisjZGVmaW5lICBURUxRVUFMX1NFTkQgICAxICAgICAgICAvKiBzZW5kIG9wdGlvbiAqLworCisvKgorICogTElORU1PREUgc3Vib3B0aW9ucworICovCisKKyNkZWZpbmUgIExNX01PREUgICAgICAgICAgICAxCisjZGVmaW5lICBMTV9GT1JXQVJETUFTSyAgICAgMgorI2RlZmluZSAgTE1fU0xDICAgICAgICAgICAgIDMKKworI2RlZmluZSAgTU9ERV9FRElUICAgICAgIDB4MDEKKyNkZWZpbmUgIE1PREVfVFJBUFNJRyAgICAweDAyCisjZGVmaW5lICBNT0RFX0FDSyAgICAgICAgMHgwNAorCisjZGVmaW5lICBNT0RFX01BU0sgICAgICAgKE1PREVfRURJVHxNT0RFX1RSQVBTSUd8TU9ERV9BQ0spCisKKy8qIE5vdCBwYXJ0IG9mIHByb3RvY29sLCBidXQgbmVlZGVkIHRvIHNpbXBsaWZ5IHRoaW5ncy4uLiAqLworI2RlZmluZSAgTU9ERV9GTE9XICAgICAgIDB4MDEwMAorI2RlZmluZSAgTU9ERV9FQ0hPICAgICAgIDB4MDIwMAorI2RlZmluZSAgTU9ERV9JTkJJTiAgICAgIDB4MDQwMAorI2RlZmluZSAgTU9ERV9PVVRCSU4gICAgIDB4MDgwMAorI2RlZmluZSAgTU9ERV9GT1JDRSAgICAgIDB4MTAwMAorCisjZGVmaW5lICBTTENfU1lOQ0ggICAxCisjZGVmaW5lICBTTENfQlJLICAgICAyCisjZGVmaW5lICBTTENfSVAgICAgICAzCisjZGVmaW5lICBTTENfQU8gICAgICA0CisjZGVmaW5lICBTTENfQVlUICAgICA1CisjZGVmaW5lICBTTENfRU9SICAgICA2CisjZGVmaW5lICBTTENfQUJPUlQgICA3CisjZGVmaW5lICBTTENfRU9GICAgICA4CisjZGVmaW5lICBTTENfU1VTUCAgICA5CisjZGVmaW5lICBTTENfRUMgICAgIDEwCisjZGVmaW5lICBTTENfRUwgICAgIDExCisjZGVmaW5lICBTTENfRVcgICAgIDEyCisjZGVmaW5lICBTTENfUlAgICAgIDEzCisjZGVmaW5lICBTTENfTE5FWFQgIDE0CisjZGVmaW5lICBTTENfWE9OICAgIDE1CisjZGVmaW5lICBTTENfWE9GRiAgIDE2CisjZGVmaW5lICBTTENfRk9SVzEgIDE3CisjZGVmaW5lICBTTENfRk9SVzIgIDE4CisKKyNkZWZpbmUgIE5TTEMgICAgICAgMTgKKworI2RlZmluZSAgU0xDX05BTUVTICAiMCIsICJTWU5DSCIsICJCUksiLCAiSVAiLCAiQU8iLCAiQVlUIiwgIkVPUiIsIFwKKyAgICAgICAgICAgICAgICAgICAgIkFCT1JUIiwgIkVPRiIsICJTVVNQIiwgIkVDIiwgIkVMIiwgIkVXIiwgIlJQIiwgXAorICAgICAgICAgICAgICAgICAgICAiTE5FWFQiLCAiWE9OIiwgIlhPRkYiLCAiRk9SVzEiLCAiRk9SVzIiCisKKyNkZWZpbmUgIFNMQ19OT1NVUFBPUlQgICAgIDAKKyNkZWZpbmUgIFNMQ19DQU5UQ0hBTkdFICAgIDEKKyNkZWZpbmUgIFNMQ19WQVJJQUJMRSAgICAgIDIKKyNkZWZpbmUgIFNMQ19ERUZBVUxUICAgICAgIDMKKyNkZWZpbmUgIFNMQ19MRVZFTEJJVFMgICAgMHgwMworCisjZGVmaW5lICBTTENfRlVOQyAgICAgICAgICAwCisjZGVmaW5lICBTTENfRkxBR1MgICAgICAgICAxCisjZGVmaW5lICBTTENfVkFMVUUgICAgICAgICAyCisKKyNkZWZpbmUgIFNMQ19BQ0sgICAgICAgICAgMHg4MAorI2RlZmluZSAgU0xDX0ZMVVNISU4gICAgICAweDQwCisjZGVmaW5lICBTTENfRkxVU0hPVVQgICAgIDB4MjAKKworI2VuZGlmICAvKiBURUxORVRfSF9fICovCmRpZmYgLS1naXQgYS9zeXMvdGVtcC9zdGRfaGVhZGVycy5oIGIvc3lzL3RlbXAvc3RkX2hlYWRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTYwODBlCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3RlbXAvc3RkX2hlYWRlcnMuaApAQCAtMCwwICsxLDE1IEBACisjaWZuZGVmIF9TVERfSEVBREVSU18KKyNkZWZpbmUgX1NURF9IRUFERVJTXworCisvL0xBTkdVQUdFCit2b2lkIFNldEFydGljbGUoIGludCBmbCApOworc3RhdGljIGludCBRdWVyeUFGbGFnKCk7CitwdWJsaWMgdmFyYXJncyBzdHJpbmcgUXVlcnlBcnRpY2xlKCBpbnQgY2FzdXMsIGludCBkZW0sIGludCBmb3JjZSApOworcHVibGljIHZhcmFyZ3MgaW50IFN1Z2dlc3RBcnRpY2xlKCBzdHJpbmcgbXluYW1lICk7CitwdWJsaWMgdmFyYXJncyBzdHJpbmcgUXVlcnlQb3NzUHJvbm91biggaW50IHdoYXQsIGludCBjYXN1cywgaW50IG51bWJlciApOworcHVibGljIHN0cmluZyBRdWVyeVByb25vdW4oIGludCBjYXN1cyApOworcHVibGljIHZhcmFyZ3Mgc3RyaW5nIFF1ZXJ5RHUoaW50IGNhc3VzLGludCBnZW5kZXIsaW50IHphaGwpOworcHVibGljIHN0cmluZyBRdWVyeUdlbmRlclN0cmluZygpOworcHVibGljIHZhcmFyZ3Mgc3RyaW5nIERlY2xBZGooIHN0cmluZyBhZGosIGludCBjYXN1cywgaW50IGRlbW9uICk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL3RlbXAvdXRpbC5oIGIvc3lzL3RlbXAvdXRpbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzZmQyM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvdGVtcC91dGlsLmgKQEAgLTAsMCArMSwyNSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHN5cy90aGluZy91dGlsLmggLS0gSGVhZGVyZmlsZSBmdWVyIC9zdGQvdGhpbmcvdXRpbC5jCisvLworLy8gJElkOiB1dGlsLmgsdiAxLjEgMjAwMC8wOC8xNSAxMjowNzozMCBQYXJhY2Vsc3VzIEV4cCAkCisKKyNpZm5kZWYgX19USElOR19VVElMX0hfXworI2RlZmluZSBfX1RISU5HX1VUSUxfSF9fCisKKyNlbmRpZiAvLyBfX1RISU5HX1VUSUxfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1RISU5HX1VUSUxfSF9QUk9UT19fCisjZGVmaW5lIF9fVEhJTkdfVVRJTF9IX1BST1RPX18KKworcHVibGljIHZvaWQgU2hvd1Byb3BMaXN0KHN0cmluZyAqcHJvcHMpOworc3RhdGljIHZvaWQgUHJldHR5RHVtcChtaXhlZCB4KTsKK3N0YXRpYyB2b2lkIER1bXBBcnJheShtaXhlZCAqeCk7CitzdGF0aWMgdm9pZCBEdW1wTWFwcGluZyhtYXBwaW5nIHgpOworc3RhdGljIHZvaWQgRHVtcEtleVZhbFBhaXIobWFwcGluZyB4LCBtaXhlZCBrZXksIGludCBzaXplKTsKKworI2VuZGlmIC8vIF9fVEhJTkdfVVRJTF9IX1BST1RPX18KKworI2VuZGlmIC8vIE5FRURfUFJPVE9UWVBFUwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N5cy90ZXJtaW5hbC5oIGIvc3lzL3Rlcm1pbmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTAzYWY2ZAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy90ZXJtaW5hbC5oCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N5cy90aGluZy5oIGIvc3lzL3RoaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ3ODAxNAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy90aGluZy5oCkBAIC0wLDAgKzEsMTkgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyB0aGluZy5oIC0tIHN0YW5kYXJkIHRoaW5nIGRlZmluaXRpb25zCisvLworLy8gJElkOiB0aGluZy5oLHYgMy41IDIwMDQvMDUvMjAgMTk6MDA6MTIgVmFuaW9uIEV4cCAkCisKKyNpZm5kZWYgX19USElOR19IX18KKyNkZWZpbmUgX19USElOR19IX18KKworI2luY2x1ZGUgIi9zeXMvdGhpbmcvY29tbWFuZHMuaCIKKyNpbmNsdWRlICIvc3lzL3RoaW5nL2Rlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiL3N5cy90aGluZy9sYW5ndWFnZS5oIgorI2luY2x1ZGUgIi9zeXMvdGhpbmcvcHJvcGVydGllcy5oIgorI2luY2x1ZGUgIi9zeXMvdGhpbmcvbW92aW5nLmgiCisjaW5jbHVkZSAiL3N5cy90aGluZy9yZXN0cmljdGlvbnMuaCIKKyNpbmNsdWRlICIvc3lzL3RoaW5nL21hdGVyaWFsLmgiCisjaW5jbHVkZSAiL3N5cy90aGluZy9saWdodHR5cGVzLmgiCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzL3RoaW5nL2NvbW1hbmRzLmggYi9zeXMvdGhpbmcvY29tbWFuZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmI4NzZkCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3RoaW5nL2NvbW1hbmRzLmgKQEAgLTAsMCArMSw0MSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHRoaW5nL2NvbW1hbmRzLmggLS0gY29tbWFuZCBoYW5kbGluZyBoZWFkZXIKKy8vCisvLyAkSWQ6IGNvbW1hbmRzLmggODcwNyAyMDE0LTAyLTIzIDIyOjM4OjM0WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX1RISU5HX0NPTU1BTkRTX0hfXworI2RlZmluZSBfX1RISU5HX0NPTU1BTkRTX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNkZWZpbmUgUF9DT01NQU5EUyAgICAgICAgICAgImNvbW1hbmRzIgorCisjZW5kaWYgLy8gX19USElOR19DT01NQU5EU19IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fVEhJTkdfQ09NTUFORFNfSF9QUk9UT19fCisjZGVmaW5lIF9fVEhJTkdfQ09NTUFORFNfSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKKworLy8gYWRkIGNvbW1hbmRzIHRvIHRoZSBjb21tYW5kIGxpc3Qgb2YgdGhlIG9iamVjdAordmFyYXJncyB2b2lkIEFkZENtZChtaXhlZCBjbWQsIG1peGVkIGZ1bmMsIG1peGVkIGZsYWcsIG1peGVkIGNtZGlkKTsKKworLy8gcmVtb3ZlIGEgY29tbWFuZAordmFyYXJncyBpbnQgUmVtb3ZlQ21kKG1peGVkIGNtZCwgaW50IGRlbF9ub3J1bGUsIG1peGVkIG9ubHlpZCk7CisvLyBTZXQtIHVuZCBRdWVyeS1NZXRob2Rlbgorc3RhdGljIG1hcHBpbmcgX3NldF9jb21tYW5kcyhtYXBwaW5nIGNvbW1hbmRzKTsKK3N0YXRpYyBtYXBwaW5nIF9xdWVyeV9jb21tYW5kcygpOworCisKKy8vIGludGVybmFsCitzdGF0aWMgaW50IF9leGVjdXRlKG1peGVkIGZ1biwgc3RyaW5nIHN0ciwgbWl4ZWQgKnBhcnNlZCk7CitzdGF0aWMgaW50IF9wcm9jZXNzX2NvbW1hbmQoc3RyaW5nIHN0ciwgc3RyaW5nICpub3BhcnNlc3RyLG1peGVkIGZ1biwgbWl4ZWQgZmxhZywgbWl4ZWQgcnVsZSk7CisKK3B1YmxpYyBpbnQgX2NsKHN0cmluZyBzdHIpOworCisjZW5kaWYgLy8gX19USElOR19DT01NQU5EU19IX1BST1RPX18KKworI2VuZGlmCS8vIE5FRURfUFJPVE9ZUEVTCmRpZmYgLS1naXQgYS9zeXMvdGhpbmcvZGVzY3JpcHRpb24uaCBiL3N5cy90aGluZy9kZXNjcmlwdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyOWY0NDUKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvdGhpbmcvZGVzY3JpcHRpb24uaApAQCAtMCwwICsxLDEyOCBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHRoaW5nL2Rlc2NyaXB0aW9uLmggLS0gaGVhZGVyCisvLworLy8gJElkOiBkZXNjcmlwdGlvbi5oIDkyMDggMjAxNS0wNS0xMCAyMDo1NDowNlogWmVzc3RyYSAkCisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gdGhpbmcvZGVzY3JpcHRpb24uaCAtLSBoZWFkZXIKKy8vCisvLyAkSWQ6IGRlc2NyaXB0aW9uLmggOTIwOCAyMDE1LTA1LTEwIDIwOjU0OjA2WiBaZXNzdHJhICQKKyAKKyNpZm5kZWYgX19USElOR19ERVNDUklQVElPTl9IX18KKyNkZWZpbmUgX19USElOR19ERVNDUklQVElPTl9IX18KKworLy8gcHJvcGVydGllcworI2RlZmluZSBQX05BTUUgICAgICAgICAgICAgICAibmFtZSIgICAgICAgLy8gbmFtZSBvZiB0aGUgb2JqZWN0CisjZGVmaW5lIFBfTkFNRV9BREogICAgICAgICAgICJuYW1lX2FkaiIgICAvLyBhZGplY3RpdmUgb2YgdGhlIG5hbWUKKyNkZWZpbmUgUF9TSE9SVCAgICAgICAgICAgICAgInNob3J0IiAgICAgIC8vIHNob3J0IGRlc2NpcHRpb24gb2YgdGhlIG9iamVjdAorI2RlZmluZSBQX0xPTkcgICAgICAgICAgICAgICAibG9uZyIgICAgICAgLy8gbG9uZyBkZXNjcmlwdGlvbiBvZiB0aGUgb2JqZWN0CisjZGVmaW5lIFBfSURTICAgICAgICAgICAgICAgICJpZHMiICAgICAgICAvLyBpZGVudGlmaWVyIG9mIHRoZSBvYmplY3QKKyNkZWZpbmUgUF9BREpFQ1RJVkVTICAgICAgICAgImFkamVjdGl2ZXMiIC8vIGFkamVjdGl2ZXMgb2YgdGhlIG9iamVjdAorI2RlZmluZSBQX1NIT1dfSU5WICAgICAgICAgICAic2hvd19pbnYiICAgLy8gU2hvdyBpbiBpbnZlbnRvcnkgb2YgcGxheWVyCisjZGVmaW5lIFBfQ0xBU1MgICAgICAgICAgICAgICJjbGFzcyIgICAgICAvLyBjbGFzcywgbGlrZSB1bmRlYWQgb3IgZXhwbG9zaXZlCisKKyNkZWZpbmUgUF9LSUxMX01TRyAgICAgICAgICAgImtpbGxfbXNnIgorI2RlZmluZSBQX0tJTExfTkFNRSAgICAgICAgICAia2lsbF9uYW1lIgorCisjZGVmaW5lIFBfSEVBTCAgICAgICAgICAgICAgICJoZWFsIgorI2RlZmluZSBQX0NPTUJBVENNRFMgICAgICAgICAiY29tYmF0Y21kcyIKKworI2RlZmluZSBQX1ZBTFVFICAgICAgICAgICAgICAidmFsdWUiCisjZGVmaW5lIFBfTk9CVVkgICAgICAgICAgICAgICJub2J1eSIKKyNkZWZpbmUgUF9OT1NFTEwgICAgICAgICAgICAgIm5vc2VsbCIKKyNkZWZpbmUgUF9NQUdJQyAgICAgICAgICAgICAgIm1hZ2ljIgorI2RlZmluZSBQX05PTUFHSUMgICAgICAgICAgICAibm9tYWdpYyIKKworI2RlZmluZSBQX0xPR19GSUxFICAgICAgICAgICAibG9nX2ZpbGUiICAgLy8gYnVncyBpbiBhbmRlcmVzIHJlcGZpbGUgdW1sZWl0ZW4KKworI2RlZmluZSBQX0xJR0hUICAgICAgICAgICAgICAibGlnaHQiCisjZGVmaW5lIFBfVE9UQUxfTElHSFQgICAgICAgICJ0b3RhbF9saWdodCIKKworI2RlZmluZSBQX0NVUlNFRCAgICAgICAgICAgICAiY3Vyc2VkIgorI2RlZmluZSBQX0tFRVBfT05fU0VMTCAgICAgICAia2VlcF9vbl9zZWxsIgorCisjZGVmaW5lIFBfQ0xPTkVSICAgICAgICAgICAgICJjbG9uZXIiCisjZGVmaW5lIFBfQ0xPTkVfVElNRSAgICAgICAgICJjbG9uZV90aW1lIgorCisvKiByZWFkX21zZyBpc3QgYXVjaCBmdWVyIG5pY2h0IGZlcm53ZXN0LWt1bmRpZ2UgbGVzYmFyICovCisjZGVmaW5lIFBfUkVBRF9NU0cgICAgICAgICAgICJyZWFkX21zZyIKKyNkZWZpbmUgUF9GV19BTFdBWVNfUkVBREFCTEUgImZ3X2Fsd2F5c19yZWFkYWJsZSIKKyNkZWZpbmUgUF9ERVRBSUxTICAgICAgICAgICAgImRldGFpbHMiCisjZGVmaW5lIFBfU1BFQ0lBTF9ERVRBSUxTICAgICJzcGVjaWFsX2RldGFpbHMiCisjZGVmaW5lIFBfUkVBRF9ERVRBSUxTICAgICAgICJyZWFkX2RldGFpbHMiCisjZGVmaW5lIFBfU01FTExTICAgICAgICAgICAgICJzbWVsbF9kZXRhaWxzIgorI2RlZmluZSBQX1NPVU5EUyAgICAgICAgICAgICAic291bmRfZGV0YWlscyIKKyNkZWZpbmUgUF9UT1VDSF9ERVRBSUxTICAgICAgInBfbGliX3RvdWNoX2RldGFpbHMiCisjaWZuZGVmIFBfSU5WSVMKKyNkZWZpbmUgUF9JTlZJUyAgICAgICAgICAgICAgImludmlzIgorI2VuZGlmCisKKyNkZWZpbmUgU0VOU0VfREVGQVVMVCAiXG5kZWZhdWx0IgorI2RlZmluZSBTRU5TRV9WSUVXICAwCisjZGVmaW5lIFNFTlNFX1NNRUxMIDEKKyNkZWZpbmUgU0VOU0VfU09VTkQgMgorI2RlZmluZSBTRU5TRV9UT1VDSCAzCisjZGVmaW5lIFNFTlNFX1JFQUQgIDQKKworI2VuZGlmIC8vIF9fVEhJTkdfREVTQ1JJUFRJT05fSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1RISU5HX0RFU0NSSVBUSU9OX0hfUFJPVE9fXworI2RlZmluZSBfX1RISU5HX0RFU0NSSVBUSU9OX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCisvLyBjaGVjayBpZiB0aGUgb2JqZWN0cyBjYW4gYnkgaWRlbnRpZmllZCBieSBzdHIKK3ZhcmFyZ3MgaW50IGlkKHN0cmluZyBzdHIsIGludCBsdmwpOworCisvLyBjaGVjayBJRHMgdnMuIHN0cmluZyoKK2ludCBtYXRjaF9pZHMoc3RyaW5nICpsaXN0KTsKKworLy8gYWRkIGFuIGlkIHRvIHRoZSBjdXJyZW50IG9iamVjdAordm9pZCBBZGRJZChzdHJpbmd8c3RyaW5nKiBzdHIpOworCisvLyByZW1vdmUgYW4gaWQgZnJvbSB0aGUgb2JqZWN0Cit2b2lkIFJlbW92ZUlkKHN0cmluZ3xzdHJpbmcqIHN0cik7CisKKy8vIGFkZCBhbiBhZGplY3RpdmUgdG8gZGVzY3JpYmUgdGhlIG9iamVjdAordm9pZCBBZGRBZGplY3RpdmUoc3RyaW5nfHN0cmluZyogc3RyKTsKKworLy8gcmVtb3ZlIGFuIGFkamVjdGl2ZSBmcm9tIHRoZSBvYmplY3QKK3ZvaWQgUmVtb3ZlQWRqZWN0aXZlKHN0cmluZ3xzdHJpbmcqIHN0cik7CisKKy8vIGdldCB0aGUgbmFtZSB3aXRoIGNhc3VzIGFuZCBkZW1vbnN0cmF0aXZlCit2YXJhcmdzIHN0cmluZyBuYW1lKGludCBjYXN1cywgaW50IGRlbW9uKTsKK3ZhcmFyZ3Mgc3RyaW5nIE5hbWUoaW50IGNhc3VzLCBpbnQgZGVtb24pOworCisvLyBjaGVjayBpZiBvYmplY3QgaXMgbWVtYmVyIG9mIGEgY2xhc3MKK2ludCBpc19jbGFzc19tZW1iZXIoc3RyaW5nfHN0cmluZyogc3RyKTsKKworLy8gYWRkIG9iamVjdCB0byBhIGNsYXNzCit2b2lkIEFkZFRvQ2xhc3Moc3RyaW5nIHN0cik7CisKKy8vIGFkZCBhIGRldGFpbCB0byBvYmplY3QKK3B1YmxpYyB2b2lkIEFkZERldGFpbCggc3RyaW5nfHN0cmluZyoga2V5cywgc3RyaW5nfHN0cmluZyp8bWFwcGluZ3xjbG9zdXJlIGRlc2NyICk7CitwdWJsaWMgdm9pZCBBZGRSZWFkRGV0YWlsKCBzdHJpbmd8c3RyaW5nKiBrZXlzLCBzdHJpbmd8c3RyaW5nKnxtYXBwaW5nfGNsb3N1cmUgZGVzY3IgKTsKK3B1YmxpYyB2b2lkIEFkZFNtZWxscyggc3RyaW5nfHN0cmluZyoga2V5cywgc3RyaW5nfHN0cmluZyp8bWFwcGluZ3xjbG9zdXJlIGRlc2NyICk7CitwdWJsaWMgdm9pZCBBZGRTb3VuZHMoIHN0cmluZ3xzdHJpbmcqIGtleXMsIHN0cmluZ3xzdHJpbmcqfG1hcHBpbmd8Y2xvc3VyZSBkZXNjciApOworcHVibGljIHZvaWQgQWRkVG91Y2hEZXRhaWwoIHN0cmluZ3xzdHJpbmcqIGtleXMsIHN0cmluZ3xzdHJpbmcqfG1hcHBpbmd8Y2xvc3VyZSBkZXNjciApOworCisvLyByZW1vdmUgYSBkZXRhaWwgZnJvbSBvYmplY3QKK3B1YmxpYyB2YXJhcmdzIHZvaWQgUmVtb3ZlRGV0YWlsKCBzdHJpbmd8c3RyaW5nKiBrZXlzICk7CitwdWJsaWMgdmFyYXJncyB2b2lkIFJlbW92ZVNtZWxscyggc3RyaW5nfHN0cmluZyoga2V5cyApOworcHVibGljIHZhcmFyZ3Mgdm9pZCBSZW1vdmVTb3VuZHMoIHN0cmluZ3xzdHJpbmcqIGtleXMgKTsKK3B1YmxpYyB2YXJhcmdzIHZvaWQgUmVtb3ZlUmVhZERldGFpbCggc3RyaW5nfHN0cmluZyoga2V5cyApOworcHVibGljIHZhcmFyZ3Mgdm9pZCBSZW1vdmVUb3VjaERldGFpbCggc3RyaW5nfHN0cmluZyoga2V5cyApOworCisvLyBhZGQgYSBzcGVjaWFsIGRldGFpbCB0byBvYmplY3QKK3ZvaWQgQWRkU3BlY2lhbERldGFpbChzdHJpbmd8c3RyaW5nKiBrZXlzLCBzdHJpbmcgZnVuY3Rpb25uYW1lICk7CisKKy8vIHJlbW92ZSBhIHNwZWNpYWwgZGV0YWlsIHRvIG9iamVjdAordm9pZCBSZW1vdmVTcGVjaWFsRGV0YWlsKCBzdHJpbmd8c3RyaW5nKiBrZXlzICk7CisKK3N0YXRpYyB2b2lkIEdpdmVFUChpbnQgdHlwZSwgc3RyaW5nIGtleSk7CisKKyNlbmRpZiAvLyBfX1RISU5HX0RFU0NSSVBUSU9OX0hfUFJPVE9fXworCisjZW5kaWYJLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy90aGluZy9sYW5ndWFnZS5oIGIvc3lzL3RoaW5nL2xhbmd1YWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFhZmQ4NgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy90aGluZy9sYW5ndWFnZS5oCkBAIC0wLDAgKzEsNzkgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyB0aGluZy9sYW5ndWFnZS5oIC0tIGxhbmd1YWdlIGhhbmRsaW5nCisvLworLy8gJElkOiBsYW5ndWFnZS5oIDYzMzAgMjAwNy0wNS0yNiAxNzo1MzoyMVogWmVzc3RyYSAkCisgCisjaWZuZGVmIF9fVEhJTkdfTEFOR1VBR0VfSF9fCisjZGVmaW5lIF9fVEhJTkdfTEFOR1VBR0VfSF9fCisKKy8vIHByb3BlcnRpZXMKKyNkZWZpbmUgUF9BUlRJQ0xFICAgICAgICAgICAgImFydGljbGUiCisjZGVmaW5lIFBfR0VOREVSICAgICAgICAgICAgICJnZW5kZXIiCisjZGVmaW5lIFBfUExVUkFMICAgICAgICAgICAgICJwbHVyYWwiCisKKy8vIHNwZWNpYWwgZGVmaW5lcworCisjZGVmaW5lIFdFUiAJMAorI2RlZmluZSBXRVNTRU4gCTEKKyNkZWZpbmUgV0VNIAkyCisjZGVmaW5lIFdFTiAJMworI2RlZmluZSBSQVcgICAgIDk5ICAgLy8gbmFtZSB3aXRob3V0IGFydGljbGUKKworI2RlZmluZSBORVVURVIgCQkwCisjZGVmaW5lIE1BTEUgCQkxCisjZGVmaW5lIEZFTUFMRSAJCTIKKworI2RlZmluZSBTSU5HVUxBUiAJMAorI2RlZmluZSBQTFVSQUwgCQkxCisKKyNlbmRpZiAvLyBfX1RISU5HX0xBTkdVQUdFX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19USElOR19MQU5HVUFHRV9IX1BST1RPX18KKyNkZWZpbmUgX19USElOR19MQU5HVUFHRV9IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworCisvLyBBcnRpa2VsIGltIHBhc3NlbmRlbiBGYWxsIHNvd2llIGRlbW9uc3QuIGJ6dyB1bmRlbW9uc3QuIHp1cnVlY2stCisvLyBnZWJlbi4gZm9yY2UgdWViZXJzY2hyZWlidCBkYXMgU2V0QXJ0aWNsZS1GbGFnLgorcHVibGljIHZhcmFyZ3Mgc3RyaW5nIFF1ZXJ5QXJ0aWNsZShpbnQgY2FzdXMsIGludCBkZW0sIGludCBmb3JjZSk7CisKKy8vIEVtcGZlaGxlIGVpbmVuIEFydGlrZWwgZnVlciBkYXMgT2JqZWt0LCBnZXRlc3RldCB3aXJkLCBvYiBhdXNzZXIKKy8vIGRpZXNlbSBPYmpla3Qgc2ljaCBlaW4gYW5kZXJlcyBPYmpla3QgbWl0IGRlciBpZCBpbSBzZWxiZW4KKy8vIFJhdW0gYmVmaW5kZXQuCitwdWJsaWMgdmFyYXJncyBpbnQgU3VnZ2VzdEFydGljbGUoc3RyaW5nIGlkKTsKKworLy8gR2liIGVpbiBQcm9ub21lbiB6dXJ1ZWNrLCB3ZWxjaGVzIGF1c2RydWVja3QsIGRhcyBlaW4gT2JqZWt0IGRpZXNlbQorLy8gT2JqZWt0IGdlaG9lcnQuIERhYmVpIGlzdCB3aGF0IGRhcyBHZXNjaGxlY2h0IGRlcyBPYmpla3Rlcy4KK3B1YmxpYyB2YXJhcmdzIHN0cmluZyBRdWVyeVBvc3NQcm9ub3VuKG1peGVkIHdoYXQsIGludCBjYXN1cywgaW50IG51bWJlcik7CisKKy8vIEVyL1NpZS9FcyB1LmFlLiB6dXJ1ZWNrZ2ViZW4uCitwdWJsaWMgdmFyYXJncyBzdHJpbmcgUXVlcnlQcm9ub3VuKGludCBjYXN1cyk7CisKKy8vIER1IGltIHBhc3NlbmRlbiBGYWxsIHp1cnVlY2tnZWJlbi4KK3B1YmxpYyB2YXJhcmdzIHN0cmluZyBRdWVyeUR1KGludCBjYXN1cyxpbnQgZ2VuZGVyLCBpbnQgemFobCk7CisKKy8vIEdlc2NobGVjaHQgaW4gV29ydGVuIHp1cnVlY2tnZWJlbiAobWFlbm5saWNoLCB3ZWlibGljaCwgc2FlY2hsaWNoKQorcHVibGljIHN0cmluZyBRdWVyeUdlbmRlclN0cmluZygpOworCisvLyBEZWtsaW5hdGlvbiBlaW5lcyBBZGpla3RpdnMKK3B1YmxpYyB2YXJhcmdzIHN0cmluZyBEZWNsQWRqKG1peGVkIGFkaiwgaW50IGNhc3VzLCBpbnQgZGVtb24pOworCisvLyBRdWVyeS0gdW5kIFNldC1NZXRob2Rlbgorc3RhdGljIGludCBfc2V0X2FydGljbGUoaW50IGZsKTsKK3N0YXRpYyBpbnQgX3F1ZXJ5X2FydGljbGUoKTsKK3N0YXRpYyBpbnQgX3NldF9nZW5kZXIoaW50IGkpOworCisvLyBJbnRlcm5hCitzdGF0aWMgaW50IFF1ZXJ5QUZsYWcoKTsKKworI2VuZGlmIC8vIF9fVEhJTkdfTEFOR1VBR0VfSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPWVBFUworCisKKworCisKZGlmZiAtLWdpdCBhL3N5cy90aGluZy9saWdodHR5cGVzLmggYi9zeXMvdGhpbmcvbGlnaHR0eXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZTk1ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvdGhpbmcvbGlnaHR0eXBlcy5oCkBAIC0wLDAgKzEsODMgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBsaWdodHR5cGVzLmggLS0gV2VsY2hlIFR5cGVuIHZvbiBMaWNodCBnaWJ0IGVzIGltIE1vcmdlbkdyYXVlbj8gCisvLworLy8gJElkOiBsaWdodHR5cGVzLmgsdiAxLjIgMjAwNC8wNi8xMiAxNDowMDo0OCBWYW5pb24gRXhwICQKKyAKKyNpZm5kZWYgX19USElOR19MSUdIVFRZUEVTX0hfXworI2RlZmluZSBfX1RISU5HX0xJR0hUVFlQRVNfSF9fCisKKyNkZWZpbmUgUF9MSUdIVF9UWVBFICAgImxpZ2h0X3R5cGUiICAvLyBXZWxjaGVzIExpY2h0IGhlcnJzY2h0IGhpZXIgdm9yPworCisvLyBNb2RlLVBhcmFtZXRlciBmdWVyIENoZWNrTGlnaHRUeXBlCisjZGVmaW5lIExUX0NIRUNLX0FOWSAgICAgMCAKKyNkZWZpbmUgTFRfQ0hFQ0tfQUxMICAgICAxCisjZGVmaW5lIExUX0NIRUNLX01BVENIICAgMgorI2RlZmluZSBMVF9DSEVDS19OT05FICAgIDMKKworLy8gQmFzaXNsaWNodHR5cGVuCisjZGVmaW5lIExUX01JU0MgICAgICAgICAgMCAgLy8gVW5iZXN0aW1tdAorCisvLyBOYXR1ZXJsaWNoZSBMaWNodHF1ZWxsZW4gKFRhZykKKyNkZWZpbmUgTFRfU1VOICAgICAgICAgICAxICAvLyBTb25uZW5zY2hlaW4KKyNkZWZpbmUgTFRfRElGRlVTRSAgICAgICAyICAvLyBJbmRpcmVrdGVzIFRhZ2VzbGljaHQKKworLy8gTmF0dWVybGljaGUgTGljaHRxdWVsbGVuIChOYWNodCkKKyNkZWZpbmUgTFRfTU9PTiAgICAgICAgICA0ICAvLyBNb25kbGljaHQKKyNkZWZpbmUgTFRfU1RBUlMgICAgICAgICA4ICAvLyBTdGVybmVubGljaHQKKworLy8gRHJlaSBiZXNvbmRlcnMgb2Z0IHZvcmtvbW1lbmRlIFR5cGVuIG9mZmVuZW4gTGljaHRzCisjZGVmaW5lIExUX0NBTkRMRSAgICAgICAxNiAgLy8gS2VyemVubGljaHQKKyNkZWZpbmUgTFRfVE9SQ0ggICAgICAgIDMyICAvLyBGYWNrZWxzY2hlaW4KKyNkZWZpbmUgTFRfT1BFTl9GSVJFICAgIDY0ICAvLyBMYWdlcmZldWVyIGV0Yy4KKworLy8gTWFnaXNjaGUgZXJ6ZXVndGVzIExldWNodGVuLCB3aXJkIG5pY2h0IG5hZWhlciBkZWZpbmllcnQuCisjZGVmaW5lIExUX01BR0lDICAgICAgIDEyOCAgLy8gTWFnaXNjaGUgTGljaHRxdWVsbGUKKworLy8gQWxsZXMgd2FzIHNvIGdsdWVoZW4ga2FubjogVm9uIEdsdWVoYmlybmUgYmlzIHp1IFBob3NwaG9yCisjZGVmaW5lIExUX0dMT1dJTkcgICAgIDI1NiAgLy8gU2VsYnN0bGV1Y2h0ZW5kZSBMaWNodHF1ZWxsZW4KKworLy8gRWluIFJhdW0ga2FubiBhdWNoIGV4cGxpeml0IGF1ZiBEdW5rZWwgZ2VzZXR6dCB3ZXJkZW4uCisvLyBFaW5lIE1pc2NodW5nIG1pdCBhbmRlcmVuIFR5cGVuIHNjaGVpbnQgYWJlciB3ZW5pZyBzaW5udm9sbC4KKyNkZWZpbmUgTFRfREFSS05FU1MgICAgNTEyICAvLyBEdW5rZWxoZWl0CisKKy8vIEdlbWlzY2h0ZSBUeXBlbiwgc2llIGRpZW5lbiBkYXp1LCBrb21mb3J0YWJlbCBBYmZyYWdlbiBhdWYgTGljaHR0eXBlbiAKKy8vIHp1IGltcGxlbWVudGllcmVuLiBCZWltIHNldHplbiBzb2xsdGUgaW1tZXIgYmVzc2VyIGF1ZiBkaWUgZ2VuYXVlcmVuIAorLy8gTGljaHR0eXBlbiB6dXJ1ZWNrZ2VncmlmZmVuIHdlcmRlbi4KKworLy8gVGFnZXNsaWNodCBpbSBhbGxnZW1laW5lbgorI2RlZmluZSBMVF9EQVlMSUdIVCAgICAoTFRfU1VOfExUX0RJRkZVU0UpCisKKy8vIERhIGVzIHZlcnNjaGllZGVuZSBUeXBlbiBvZmZlbmVuIEZldWVycyBnaWJ0LCB3aXJkIGhpZXIKKy8vIG5vY2ggZWluIEFiZnJhZ2V0eXAgZGVmaW5pZXJ0LgorI2RlZmluZSBMVF9GSVJFICAgICAgICAoTFRfQ0FORExFfExUX1RPUkNIfExUX09QRU5fRklSRSkKKworLy8gTmF0dWVybGljaGVzIExpY2h0CisjZGVmaW5lIExUX05BVFVSQUwgICAgIChMVF9EQVlMSUdIVHxMVF9TVEFSU3xMVF9NT09OKQorCisvLyBLdWVuc3RsaWNoZXMgTGljaHQKKyNkZWZpbmUgTFRfQVJUSUZJQ0lBTCAgIChMVF9NQUdJQ3xMVF9GSVJFfExUX0dMT1dJTkcpCisKKyNlbmRpZiAvLyBfVEhJTkdfTElHSFRUWVBFU19IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fVEhJTkdfTElHSFRUWVBFU19IX1BST1RPX18KKyNkZWZpbmUgX19USElOR19MSUdIVFRZUEVTX0hfUFJPVE9fXworCisvLyBEaWVzZSBEb2t1IHdpcmQgbm9jaCBlbnRmZXJudCwgd2VubiBkaWUgTWFucGFnZSBlcnN0ZWxsdCB3b3JkZW4gaXN0LgorLy8gCisvLyBFaW5lIEZ1bmt0aW9uLCBtaXQgZGVyIGRhcyBBYmZhZ2VuIGVpbmVzIG9kZXIgbWVocmVyZXIgTGljaHR0eXBlbiAKKy8vIG1vZWdsaWNoIGlzdCwgaXN0IGltIHN0ZC90aGluZy9kZXNjcmlwdGlvbiBkZWZpbmllcnQuIEJlaXNwaWVsOiAKKy8vIAorLy8gdGhpbmctPkNoZWNrTGlnaHRUeXBlKExUX0RBWUxJR0hUKSAKKy8vICAgICAgIGdpYnQgdHJ1ZSB3ZW5uIGVpbiBUYWdlc2xpY2h0dHlwIGdlc2V0enQgaXN0LgorLy8KKy8vIHRoaW5nLT5DaGVja0xpZ2h0VHlwZShMVF9TVU58TFRfTU9PTikgCisvLyAgICAgICBnaWJ0IHRydWUsIHdlbm4gZWluZXIgZGVyIGJlaWRlbiBIaW1tZWxza29lcnBlciBsZXVjaHRldC4KKwordmFyYXJncyBpbnQgQ2hlY2tMaWdodFR5cGUoaW50IGxpZ2h0dHlwZSwgaW50IG1vZGUpOworCisjZW5kaWYgLy8gX19USElOR19MSUdIVFRZUEVTX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1RZUEVTCmRpZmYgLS1naXQgYS9zeXMvdGhpbmcvbWF0ZXJpYWwuaCBiL3N5cy90aGluZy9tYXRlcmlhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNzk2OWEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvdGhpbmcvbWF0ZXJpYWwuaApAQCAtMCwwICsxLDMyIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gdGhpbmcvbWF0ZXJpYWwuaCAtLSBtYXRlcmlhbCBoYW5kbGluZyBoZWFkZXIKKy8vCisvLyAkSWQ6IG1hdGVyaWFsLmggNjkzMCAyMDA4LTA4LTA5IDA5OjIwOjE2WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX1RISU5HX01BVEVSSUFMX0hfXworI2RlZmluZSBfX1RISU5HX01BVEVSSUFMX0hfXworCisjZGVmaW5lIFBfTUFURVJJQUwgICAgICAgICAgICAgICJtYXRlcmlhbCIKKyNkZWZpbmUgTUFURVJJQUxEQiAgICAgICAgICAgICAgIi9zZWN1cmUvbWF0ZXJpYWxkYiIKKyNkZWZpbmUgUF9NQVRFUklBTF9LTk9XTEVER0UgICAgIm1hdGVyaWFsX2tub3dsZWRnZSIKKyNkZWZpbmUgTUFURVJJQUxfU1lNTUVUUklDX1JFQ09HTklaQUJJTElUWSAibWF0X3N5bV9yZWNvYyIKKworLy8gTWF0ZXJpYWxpZW4gbmljaHQgYmVpbSBMYWRlbiBkdXJjaCBNYXREQiBpbmNsdWRlbgorLy8gVE9ETzogYmVzc2VyIHJlY29jLXByb3BlcnR5ZGVmaW5pdGlvbmVuIHdvYW5kZXJzIHJlaW4gdW5kIE1hdGVyaWFsaWVuIGhpZXIKKy8vIGltbWVyIGluY2x1ZGVuCisjaWZuZGVmIF9TS0lQX01BVEVSSUFMU18KKyNpbmNsdWRlIDxtYXRlcmlhbHMuaD4KKyNlbmRpZgorCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9fVEhJTkdfTUFURVJJQUxfSF9QUk9UT19fCisjZGVmaW5lIF9fVEhJTkdfTUFURVJJQUxfSF9QUk9UT19fCisKK2ludCBRdWVyeU1hdGVyaWFsKHN0cmluZyBtYXQpOworaW50IFF1ZXJ5TWF0ZXJpYWxHcm91cChzdHJpbmcgbWF0Z3JvdXApOworc3RyaW5nIE1hdGVyaWFsTGlzdChpbnQgY2FzdXMsIG1peGVkIGlkaW5mKTsKKworI2VuZGlmIC8vIF9fVEhJTkdfTUFURVJJQUxfSF9QUk9UT19fCisjZW5kaWYgLy8gTkVFRF9QUk9UT1RZUEVTCisjZW5kaWYgLy8gX19USElOR19NQVRFUklBTF9IX18KZGlmZiAtLWdpdCBhL3N5cy90aGluZy9tb3ZpbmcuaCBiL3N5cy90aGluZy9tb3ZpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NmUxNGE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3RoaW5nL21vdmluZy5oCkBAIC0wLDAgKzEsNDMgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyB0aGluZy9tb3ZpbmcuaCAtLSBvYmplY3QgbW92aW5nCisvLworLy8gJElkOiBtb3ZpbmcuaCA4ODkyIDIwMTQtMDgtMDQgMTk6NDg6MjhaIFplc3N0cmEgJAorIAorI2lmbmRlZiBfX1RISU5HX01PVklOR19IX18KKyNkZWZpbmUgX19USElOR19NT1ZJTkdfSF9fCisKKy8vIHByb3BlcnRpZXMKKyNkZWZpbmUgUF9ORVZFUkRST1AgICAgICAgICAgICJuZXZlcmRyb3AiCisjZGVmaW5lIFBfTk9EUk9QICAgICAgICAgICAgICAibm9kcm9wIiAgICAvLyBjYW4ndCBiZSBkcm9wcGVkCisjZGVmaW5lIFBfTk9HRVQgICAgICAgICAgICAgICAibm9nZXQiICAgICAvLyBjYW4ndCBiZSB0YWtlbgorCisjZGVmaW5lIFBfTk9JTlNFUlRfTVNHICAgICAgICAibm9pbnNlcnRfbXNnIiAgICAgIC8vIEZlaGxlcm1lbGR1bmcgYmVpIE1FX0NBTlRfQkVfSU5TRVJURUQKKyNkZWZpbmUgUF9OT0xFQVZFX01TRyAgICAgICAgICJub2xlYXZlX21zZyIgICAgICAgLy8gRmVobGVybWVsZHVuZyBiZWkgTUVfQ0FOVF9MRUFWRV9FTlYKKyNkZWZpbmUgUF9FTlZfVE9PX0hFQVZZX01TRyAgICJlbnZfdG9vX2hlYXZ5X21zZyIgLy8gRmVobGVybWVsZHVuZyBiZWkgTUVfVE9PX0hFQVZZX0ZPUl9FTlYKKyNkZWZpbmUgUF9UT09fTUFOWV9NU0cgICAgICAgICJ0b29fbWFueV9tc2ciICAgICAgLy8gRmVobGVybWVsZHVuZyBiZWkgTUVfVE9PX01BTllfT0JKRUNUUworI2RlZmluZSBQX1RPT19IRUFWWV9NU0cgICAgICAgInRvb19oZWF2eV9tc2ciICAgICAvLyBGZWhsZXJtZWxkdW5nIGJlaSBNRV9UT09fSEVBVlkKKworI2RlZmluZSBQX0xBU1RfTU9WRSAgICAgICAgICAgImxhc3RfbW92ZSIKKyNkZWZpbmUgUF9MQVNUX0NPTlRFTlRfQ0hBTkdFICJsYXN0X2NvbnRlbnRfY2hhbmdlIgorCisjZGVmaW5lIFBfU0VOU0lUSVZFICAgICAic2Vuc2l0aXZlIiAvLyBzaG91bGQgYmUgcmVnaXN0ZXJlZCBhcyBzZW5zaXRpdmUgb2JqZWN0CisKKworI2VuZGlmIC8vIF9fVEhJTkdfTU9WSU5HX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19USElOR19NT1ZJTkdfSF9QUk9UT19fCisjZGVmaW5lIF9fVEhJTkdfTU9WSU5HX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCisvLyBtb3ZlIHRoZSBvYmplY3QgZnJvbSBjdXJyZW50IHBvc2l0aW9uIHRvIGRlc3QgdXNpbmcgdGhlIG1ldGhvZAorcHVibGljIHZhcmFyZ3MgaW50IG1vdmUob2JqZWN0fHN0cmluZyBkZXN0LCBpbnQgbWV0aG9kKTsKKworLy8gcmVtb3ZlIHRoZSBvYmplY3QgcmV0dXJuIDEgZm9yIHN1Y2Nlc3NmdWwgZGVzdHJ1Y3Rpb24KK3B1YmxpYyB2YXJhcmdzIGludCByZW1vdmUoaW50IHNpbGVudCk7CisKKyNlbmRpZiAvLyBfX1RISU5HX01PVklOR19IX1BST1RPX18KKworI2VuZGlmIC8vICAvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3RoaW5nL3Byb3BlcnRpZXMuaCBiL3N5cy90aGluZy9wcm9wZXJ0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE1OTUyMgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy90aGluZy9wcm9wZXJ0aWVzLmgKQEAgLTAsMCArMSw2MyBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHRoaW5nL3Byb3BlcnRpZXMuaCAtLSBjb250YWlucyBwcm9wZXJ0eSBkZWZpbml0aW9ucyBhbmQgcHJvdG90eXBlcworLy8KKy8vICRJZDogcHJvcGVydGllcy5oLHYgMy41IDIwMDMvMDgvMDcgMTU6MDk6MzMgUmlrdXMgRXhwICQKKworI2lmbmRlZiBfX1RISU5HX1BST1BFUlRJRVNfSF9fCisjZGVmaW5lIF9fVEhJTkdfUFJPUEVSVElFU19IX18KKworLy8gc3BlY2lhbCBkZWZpbmVzCisKKyNkZWZpbmUgRl9WQUxVRSAgICAgICAgIDAKKyNkZWZpbmUgRl9NT0RFICAgICAgICAgIDEKKyNkZWZpbmUgRl9TRVRfTUVUSE9EICAgIDIKKyNkZWZpbmUgRl9RVUVSWV9NRVRIT0QgIDMKKyNkZWZpbmUgRl9NT0RFX0FTICAgICAgIDQKKyNkZWZpbmUgRl9NT0RFX0FEICAgICAgIDUKKworI2RlZmluZSBTQVZFICAgICAgICAgICAgNjQKKyNkZWZpbmUgUFJPVEVDVEVEICAgICAgIDEyOCAgLy8gb25seSB0aGlzX29iamVjdCgpIGNhbiBjaGFuZ2UgdGhlIHZhbHVlcworI2RlZmluZSBTRUNVUkVEICAgICAgICAgMjU2ICAvLyBsaWtlIFBST1RFQ1RFRCwgYnV0IG5ldmVyIHJlc2V0YWJsZQorI2RlZmluZSBOT1NFVE1FVEhPRCAgICAgNTEyICAvLyBLZWluZSBTZXQtTWV0aG9kZSA9PiBOaWNodCBtb2ZpZml6aWVyYmFyCisjZGVmaW5lIFNFVE1OT1RGT1VORAkxMDI0IC8vIEtlaW5lIFNldC1NZXRob2RlIGdlZnVuZGVuCisjZGVmaW5lIFFVRVJZTU5PVEZPVU5ECTIwNDggLy8gS2VpbmUgUXVlcnktTWV0aG9kZSBnZWZ1bmRlbgorI2RlZmluZSBRVUVSWUNBQ0hFRAk0MDk2CisjZGVmaW5lIFNFVENBQ0hFRAk4MTkyCisKKyNlbmRpZiAvLyBfX1RISU5HX1BST1BFUlRJRVNfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1RISU5HX1BST1BFUlRJRVNfSF9QUk9UT19fCisjZGVmaW5lIF9fVEhJTkdfUFJPUEVSVElFU19IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworCisvLyAoRSlVSUQtTWV0aG9kcworLy9zdGF0aWMgbWl4ZWQgX3F1ZXJ5X3VpZCgpOworLy9zdGF0aWMgbWl4ZWQgX3F1ZXJ5X2V1aWQoKTsKKworLy8gUHJvcGVydHktSW5pdGlhbGlzYXRpb24KK3Byb3RlY3RlZCB2b2lkIEluaXRpYWxpemVQcm9wZXJ0aWVzKCk7CisKKy8vIGRpcmVjdCBwcm9wZXJ0eSBhY2Nlc3MKK3B1YmxpYyB2YXJhcmdzIG1peGVkIFNldChzdHJpbmcgbmFtZSwgbWl4ZWQgVmFsdWUsIGludCBUeXBlLCBpbnQgZXh0ZXJuKTsKK3B1YmxpYyB2YXJhcmdzIG1peGVkIFF1ZXJ5KHN0cmluZyBuYW1lLCBpbnQgVHlwZSk7CisKKy8vIGZpbHRlcmVkIHByb3BlcnR5IGFjY2VzcworcHVibGljIG1peGVkIFNldFByb3Aoc3RyaW5nIG5hbWUsIG1peGVkIFZhbHVlKTsKK3B1YmxpYyBtaXhlZCBRdWVyeVByb3Aoc3RyaW5nIG5hbWUpOworCisvLyBnbG9iYWwgcHJvcGVydHkgaGFuZGxpbmcKK3B1YmxpYyB2b2lkIFNldFByb3BlcnRpZXMobWFwcGluZyBwcm9wcyk7CitwdWJsaWMgbWFwcGluZyBRdWVyeVByb3BlcnRpZXMoKTsKKworLy8gbWlzYy9pbnRlcm5hCitwdWJsaWMgbWl4ZWQgKl9fcXVlcnlfcHJvcGVydGllcygpOworcHVibGljIHZvaWQgX3NldF9zYXZlX2RhdGEobWl4ZWQgZGF0YSk7CitwdWJsaWMgbWl4ZWQgX2dldF9zYXZlX2RhdGEoKTsKKworI2VuZGlmIC8vIF9fVEhJTkdfUFJPUEVSVElFU19IX1BST1RPX18KKworI2VuZGlmIC8vIE5FRURfUFJPVE9UWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3RoaW5nL3Jlc3RyaWN0aW9ucy5oIGIvc3lzL3RoaW5nL3Jlc3RyaWN0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMTQ0MDEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvdGhpbmcvcmVzdHJpY3Rpb25zLmgKQEAgLTAsMCArMSwyNyBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHRoaW5nL3Jlc3RyaWN0aW9ucy5oIC0tIHJlc3RyaWN0aW9ucyBvZiB0aGUgb2JqZWN0ICh3ZWlnaHQpCisvLworLy8gJElkOiByZXN0cmljdGlvbnMuaCx2IDMuMyAyMDAwLzA4LzE1IDEyOjI5OjIwIFBhcmFjZWxzdXMgRXhwICQKKyAKKyNpZm5kZWYgX19USElOR19SRVNUUklDVElPTlNfSF9fCisjZGVmaW5lIF9fVEhJTkdfUkVTVFJJQ1RJT05TX0hfXworCisvLyBwcm9wZXJ0aWVzCisjZGVmaW5lIFBfV0VJR0hUICAgICAgICAgICAgICJ3ZWlnaHQiICAgICAgIC8vIHdlaWdodCBvZiBhbiBvYmplY3QKKyNkZWZpbmUgUF9UT1RBTF9XRUlHSFQgICAgICAgInRvdGFsX3dlaWdodCIgLy8gd2VpZ2h0IHdpdGggYWxsIG9iamVjdHMgaW5zaWRlCisKKyNlbmRpZiAvLyBfX1RISU5HX1JFU1RSSUNUSU9OU19IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fVEhJTkdfUkVTVFJJQ1RJT05TX0hfUFJPVE9fXworI2RlZmluZSBfX1RISU5HX1JFU1RSSUNUSU9OU19IX1BST1RPX18KKworc3RhdGljIHZvaWQgX3NldF93ZWlnaHQoaW50IHdlaWdodCk7CitzdGF0aWMgbWFwcGluZyBfc2V0X2V4dGVybl9hdHRyaWJ1dGVzX21vZGlmaWVyKG1hcHBpbmcgeG1vZCk7CitzdGF0aWMgbWFwcGluZyBfc2V0X2V4dGVybl9oZWFsdGhfbW9kaWZpZXIobWFwcGluZyB4bW9kKTsKKworI2VuZGlmIC8vIF9fVEhJTkdfUkVTVFJJQ1RJT05TX0hfUFJPVE9fXworCisjZW5kaWYJLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy90aGluZy9zb2NrZXRzLmggYi9zeXMvdGhpbmcvc29ja2V0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1YTljYmIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvdGhpbmcvc29ja2V0cy5oCkBAIC0wLDAgKzEsNzkgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8qKiBAZmlsZQorICBLb25zdGFudGVuLCBQcm90b3R5cGVuIHVuZCBQcm9wZXJ0aWVzIGZ1ZXIgc29ja2VsYmFyZSBJdGVtcy4KKyogTGFuZ2Jlc2NocmVpYnVuZy4uLgorKiBAYXV0aG9yIFplc3N0cmEgKyBBcmF0aG9ybgorKiBAZGF0ZSB4eC4wNS4yMDA4CisqIEB2ZXJzaW9uICRJZCQKKyovCisKKy8qIENoYW5nZWxvZzoKKyovCisKKyNpZm5kZWYgX1NPQ0tFVFNfSF8KKyNkZWZpbmUgX1NPQ0tFVFNfSF8KKworLyoqIFNwZWljaGVydCBkaWUgU29ja2VsIHVuZCBkZXJlbiBJbmhhbHQsIGRpZSBlaW4gSXRlbSBoYXQuCisgIChbIFRZUDE6ICh7SVRFTTEsIElURU0yfSksCisgICAgIFRZUDI6ICh7LTF9KSBdKSBcbgorICAgICBJVEVNMSA9IChbIFBfU09DS0VUX1BST1BTLCAKKyAgICAgICAgICAgICAgICBCTFVFX05BTUU6IGxvYWRfbmFtZSgpLAorICAgICAgICAgICAgICAgIERFU0NSSVBUSU9OOiBuYW1lKFdFUikgXSkKKyAgQGludGVybmFsCisgKi8KKyNkZWZpbmUgUF9TT0NLRVRTICAgICAgIl9zb2NrZXRzIgorCisvKiogU3BlaWNoZXJ0IGVpbiBNYXBwaW5nIHZvbiBQcm9wLU1vZGlmaWthdG9yZW4uCisgIERpZSBpbiBkaWVzZW0gTWFwcGluZyBlbnRoYWx0ZW5lbiBQcm9wcyB3ZXJkZW4gYmVpbSBFaW5zZXR6ZW4gaW0gSXRlbSBtaXQKKyAgZGVtIFNvY2tlbCB1bSBkZW4gYW5nZWdlYmVuZW4gV2VydCBtb2RpZml6aWVydC4KKyAgKi8KKyNkZWZpbmUgUF9TT0NLRVRfUFJPUFMgIl9zb2NrZXRfcHJvcHMiCisKKy8qKiBTb2NrZWx0eXAsIGluIGRlbiBkYXMgSXRlbSBlaW5nZXNldHp0IHdlcmRlbiBrYW5uLgorICBBbGxlIGFuZGVyZW4gU29ja2VsIHNpbmQgaW5rb21wYXRpYmVsLgorICAqLworI2RlZmluZSBQX1NPQ0tFVF9UWVBFICAiX3NvY2tldF90eXBlIgorCisvKiogRWluc2NocmFlbmt1bmdlbiwgZGVuZW4gZGVyIGdlc29ja2VsdGUgR2VnZW5zdGFuZCBuYWNoIGRlbSBFaW5zZXR6ZW4KKyAgICB6dXNhZXR6bGljaCB1bnRlcmxpZWd0LiAKKyAgICBXaXJkIFBfUkVTVFJJQ1RJT05TIGhpbnp1Z2VmdWVndC4gTWFwcGluZyBhIGxhIFBfUkVTVFJJQ1RJT05TLgorICovCisjZGVmaW5lIFBfU09DS0VUX1JFU1RSX1VTRSAgICAiX3NvY2tldF9yZXN0cl91c2UiCisKKy8qKiBFaW5zY2hyYWVua3VuZ2VuLCBkZW5lbiBkYXMgTGViZXdlc2VuIHVudGVybGllZ3QsIHdlbGNoZXMgZGFzIEl0ZW0gaW4gCisgIGRlbiBTb2NrZWwgZWluYmF1ZW4gc29sbC93aWxsLgorICBNYXBwaW5nIGEgbGEgUF9SRVNUUklDVElPTlMuCisgICovCisjZGVmaW5lIFBfU09DS0VUX1JFU1RSX01PVU5UICAiX3NvY2tldF9yZXN0cl9tb3VudCIKKworLy8gU29ja2VsdHlwZW4KKy8vIFRPRE86IGd1ZWx0aWdlIFNvY2tlbHR5cGVuIGRlZmluaWVyZW4gZmVzdGxlZ2VuLCB3ZWxjaGUgUHJvcHMgc2llIGFlbmRlcm4KKy8vIGR1ZXJmZW4uCisjZGVmaW5lIFZBTElEX1NPQ0tFVF9UWVBFUyAoe30pCisKKy8vIFJ1ZWNrZ2FiZXdlcnRlCisjZGVmaW5lIFNPQ0tFVF9PSyAgICAgICAgICAgICAgICAxCisjZGVmaW5lIFNPQ0tFVF9OT19PQkpFQ1QgICAgICAgIC0xCisjZGVmaW5lIFNPQ0tFVF9OT19EQVRBICAgICAgICAgIC0yCisjZGVmaW5lIFNPQ0tFVF9JTlZBTElEX1RZUEUgICAgIC0zCisjZGVmaW5lIFNPQ0tFVF9OT19TT0NLRVRTICAgICAgIC00CisjZGVmaW5lIFNPQ0tFVF9OT05FX0FWQUlMQUJMRSAgIC01CisjZGVmaW5lIFNPQ0tFVF9OT19FWFBFUlRJU0UgICAgIC02CisjZGVmaW5lIFNPQ0tFVF9JVEVNX0lOVVNFICAgICAgIC03CisKKy8vIHN5bS4gS29uc3RhbnRlIGZ1ZXIgZnJlaWVuIFNvY2tlbAorI2RlZmluZSBTT0NLRVRfRlJFRSAgICAgICAgICAgICAtMQorCisjZW5kaWYgLy8gX1NPQ0tFVFNfSF8KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworI2lmbmRlZiBfU09DS0VUU19IX1BST1RPVFlQRVNfCisjZGVmaW5lIF9TT0NLRVRTX0hfUFJPVE9UWVBFU18KKy8vIHB1YmxpYyBJbnRlcmZhY2UgCitwdWJsaWMgaW50ICAgTW91bnRTb2NrZXRJdGVtKG9iamVjdCBpdGVtKTsKK3B1YmxpYyBpbnQgICBUZXN0U29ja2V0SXRlbShvYmplY3QgaXRlbSk7CitwdWJsaWMgbWl4ZWQgR2V0U29ja2V0SW5mbygpOworCisjZW5kaWYgLy8gX1NPQ0tFVFNfSF9QUk9UT1RZUEVTXworI2VuZGlmIC8vIE5FRURfUFJPVE9UWVBFUworCmRpZmYgLS1naXQgYS9zeXMvdGhpbmcvdXRpbC5oIGIvc3lzL3RoaW5nL3V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTNmNDk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3RoaW5nL3V0aWwuaApAQCAtMCwwICsxLDI1IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gc3lzL3RoaW5nL3V0aWwuaCAtLSBIZWFkZXJmaWxlIGZ1ZXIgL3N0ZC90aGluZy91dGlsLmMKKy8vCisvLyAkSWQ6IHV0aWwuaCA0NzA3IDIwMDYtMDktMjMgMTA6MTg6MTVaIHJvb3QgJAorCisjaWZuZGVmIF9fVEhJTkdfVVRJTF9IX18KKyNkZWZpbmUgX19USElOR19VVElMX0hfXworCisjZW5kaWYgLy8gX19USElOR19VVElMX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19USElOR19VVElMX0hfUFJPVE9fXworI2RlZmluZSBfX1RISU5HX1VUSUxfSF9QUk9UT19fCisKK3B1YmxpYyB2b2lkIFNob3dQcm9wTGlzdChzdHJpbmcgKnByb3BzKTsKK3N0YXRpYyB2b2lkIFByZXR0eUR1bXAobWl4ZWQgeCk7CitzdGF0aWMgdm9pZCBEdW1wQXJyYXkobWl4ZWQgKngpOworc3RhdGljIHZvaWQgRHVtcE1hcHBpbmcobWFwcGluZyB4KTsKK3N0YXRpYyB2b2lkIER1bXBLZXlWYWxQYWlyKG1hcHBpbmcgeCwgbWl4ZWQga2V5LCBpbnQgc2l6ZSk7CisKKyNlbmRpZiAvLyBfX1RISU5HX1VUSUxfSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPVFlQRVMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zeXMvdGltZS5oIGIvc3lzL3RpbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmVhNjU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3RpbWUuaApAQCAtMCwwICsxLDE4IEBACisjaWZuZGVmIExQQ19USU1FX0hfCisjZGVmaW5lIExQQ19USU1FX0hfIDEKKworLyogSW5kaWNlcyBpbnRvIHRoZSBhcnJheSByZXR1cm5lZCBmcm9tIGdtdGltZSgpIGFuZCBsb2NhbHRpbWUoKS4gKi8KKworI2RlZmluZSBUTV9TRUMgICAgMCAgLyogU2Vjb25kcyAoMC4uNTkpICovCisjZGVmaW5lIFRNX01JTiAgICAxICAvKiBNaW51dGVzICgwLi41OSkgKi8KKyNkZWZpbmUgVE1fSE9VUiAgIDIgIC8qIEhvdXJzICgwLi4yMykgKi8KKyNkZWZpbmUgVE1fTURBWSAgIDMgIC8qIERheSBvZiB0aGUgbW9udGggKDEuLjMxKSAqLworI2RlZmluZSBUTV9NT04gICAgNCAgLyogTW9udGggb2YgdGhlIHllYXIgKDAuLjExKSAqLworI2RlZmluZSBUTV9ZRUFSICAgNSAgLyogWWVhciAoZS5nLiAgMjAwMSkgKi8KKyNkZWZpbmUgVE1fV0RBWSAgIDYgIC8qIERheSBvZiB0aGUgd2VlayAoU3VuZGF5ID0gMCkgKi8KKyNkZWZpbmUgVE1fWURBWSAgIDcgIC8qIERheSBvZiB0aGUgeWVhciAoMC4uMzY1KSAqLworI2RlZmluZSBUTV9JU0RTVCAgOCAgLyogVFJVRTogRGF5bGlnaHQgc2F2aW5nIHRpbWUgKi8KKworI2RlZmluZSBUTV9NQVggOSAgLyogTnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGFycmF5ICovCisKKyNlbmRpZiAvKiBMUENfVElNRV9IXyAqLwpkaWZmIC0tZ2l0IGEvc3lzL3Rscy5oIGIvc3lzL3Rscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5YjUwZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvdGxzLmgKQEAgLTAsMCArMSw4NiBAQAorI2lmbmRlZiBMUENfVExTX0gKKyNkZWZpbmUgTFBDX1RMU19ICisKKy8qIEZpZWxkIGluZGljZXMgZm9yIHRoZSByZXN1bHQgb2YgdGxzX3F1ZXJ5X2Nvbm5lY3Rpb25faW5mbygpICovCisKKyNkZWZpbmUgVExTX0NJUEhFUiAgMAorI2RlZmluZSBUTFNfQ09NUCAgICAxCisjZGVmaW5lIFRMU19LWCAgICAgIDIKKyNkZWZpbmUgVExTX01BQyAgICAgMworI2RlZmluZSBUTFNfUFJPVCAgICA0CisKKyNkZWZpbmUgVExTX0lORk9fTUFYIDUgIC8qIFRvdGFsIG51bWJlciBvZiByZXN1bHQgZmllbGRzICovCisKKy8qIEludGVycHJldGF0aW9uIG9mIHRoZSBjaXBoZXIgaW5mb3JtYXRpb24gKi8KKworI2RlZmluZSBUTFNfQ0lQSEVSX1RBQkxFICh7IFwKKyJUTFNfQ0lQSEVSX05PTkUiLCBcCisiVExTX0NJUEhFUl9OVUxMIiwgXAorIlRMU19DSVBIRVJfQVJDRk9VUl8xMjgiLCBcCisiVExTX0NJUEhFUl8zREVTX0NCQyIsIFwKKyJUTFNfQ0lQSEVSX1JJSk5EQUVMXzEyOF9DQkMiLCBcCisiVExTX0NJUEhFUl9SSUpOREFFTF8yNTZfQ0JDIiwgXAorIlRMU19DSVBIRVJfQVJDRk9VUl80MCIgXAorfSkKKworI2RlZmluZSBUTFNfQ0lQSEVSX05BTUUoeCkgVExTX0NJUEhFUl9UQUJMRVsoeCldCisKKy8qIEludGVycHJldGF0aW9uIG9mIHRoZSBrZXktZXhjaGFuZ2UgaW5mb3JtYXRpb24gKi8KKworI2RlZmluZSBUTFNfS1hfVEFCTEUgKHsgXAorIlRMU19LWF9OT05FIiwgXAorIlRMU19LWF9SU0EiLCBcCisiVExTX0tYX0RIRV9EU1MiLCBcCisiVExTX0tYX0RIRV9SU0EiLCBcCisiVExTX0tYX0FOT05fREgiLCBcCisiVExTX0tYX1NSUCIsIFwKKyJUTFNfS1hfUlNBX0VYUE9SVCIsIFwKKyJUTFNfS1hfU1JQX1JTQSIsIFwKKyJUTFNfS1hfU1JQX0RTUyIgXAorfSkKKworI2RlZmluZSBUTFNfS1hfTkFNRSh4KSBUTFNfS1hfVEFCTEVbKHgpXQorCisvKiBJbnRlcnByZXRhdGlvbiBvZiB0aGUgTUFDIGluZm9ybWF0aW9uICovCisKKyNkZWZpbmUgVExTX01BQ19UQUJMRSAoeyBcCisiVExTX01BQ19OT05FIiwgXAorIlRMU19NQUNfTlVMTCIsIFwKKyJUTFNfTUFDX01ENSIsIFwKKyJUTFNfTUFDX1NIQSIgXAorfSkKKworI2RlZmluZSBUTFNfTUFDX05BTUUoeCkgVExTX01BQ19UQUJMRVsoeCldCisKKy8qIEludGVycHJldGF0aW9uIG9mIHRoZSBjb21wcmVzc2lvbiBpbmZvcm1hdGlvbiAqLworCisjZGVmaW5lIFRMU19DT01QX1RBQkxFICh7IFwKKyJUTFNfQ09NUF9OT05FIiwgXAorIlRMU19DT01QX05VTEwiLCBcCisiVExTX0NPTVBfWkxJQiIsIFwKKyJUTFNfQ09NUF9MWk8iIFwKK30pCisKKyNkZWZpbmUgVExTX0NPTVBfTkFNRSh4KSBUTFNfQ09NUF9UQUJMRVsoeCldCisKKy8qIEludGVycHJldGF0aW9uIG9mIHRoZSBwcm90b2NvbCBpbmZvcm1hdGlvbiAqLworCisjZGVmaW5lIFRMU19QUk9UX1RBQkxFICh7IFwKKyJUTFNfUFJPVF9OT05FIiwgXAorIlRMU19QUk9UX1NTTDMiLCBcCisiVExTX1BST1RfVExTMSIgXAorfSkKKworI2RlZmluZSBUTFNfUFJPVF9OQU1FKHgpIFRMU19QUk9UX1RBQkxFWyh4KV0KKworLyogUmVjb2duaXplZCBoYXNoKCkgYWxnb3JpdGhtcyAobm90IGFsbCBtYXkgYmUgc3VwcG9ydGVkIGF0IHJ1bnRpbWUpICovCisKKyNkZWZpbmUgVExTX0hBU0hfU0hBMSAgICAgICgxKQorI2RlZmluZSBUTFNfSEFTSF9TSEEyMjQgICAgKDIpCisjZGVmaW5lIFRMU19IQVNIX1NIQTI1NiAgICAoMykKKyNkZWZpbmUgVExTX0hBU0hfU0hBMzg0ICAgICg0KQorI2RlZmluZSBUTFNfSEFTSF9TSEE1MTIgICAgKDUpCisjZGVmaW5lIFRMU19IQVNIX01ENSAgICAgICAoNikKKyNkZWZpbmUgVExTX0hBU0hfUklQRU1EMTYwICg3KQorCisjZW5kaWYgLyogTFBDX1RMU19IICovCmRpZmYgLS1naXQgYS9zeXMvdHJhY2UuaCBiL3N5cy90cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMWM0NzMKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvdHJhY2UuaApAQCAtMCwwICsxLDE4IEBACisjaWZuZGVmIExQQ19UUkFDRV9IXworI2RlZmluZSBMUENfVFJBQ0VfSF8KKworLyogQXJndW1lbnQgdmFsdWVzIGZvciB0aGUgdHJhY2UoKSBlZnVuLgorICovCisKKyNkZWZpbmUgVFJBQ0VfTk9USElORyAgICAgICAwICAvKiBTdG9wIHRyYWNpbmcgKi8KKworI2RlZmluZSBUUkFDRV9DQUxMICAgICAgICAgIDEgIC8qIFRyYWNlIGFsbCBsZnVuIGNhbGxzICovCisjZGVmaW5lIFRSQUNFX0NBTExfT1RIRVIgICAgMiAgLyogVHJhY2UgaW50ZXItb2JqZWN0IGNhbGxzICovCisjZGVmaW5lIFRSQUNFX1JFVFVSTiAgICAgICAgNCAgLyogVHJhY2UgZnVuY3Rpb24gcmV0dXJucyAqLworI2RlZmluZSBUUkFDRV9BUkdTICAgICAgICAgIDggIC8qIFByaW50IGZ1bmN0aW9uIGFyZ3VtZW50cyBhbmQgcmVzdWx0cyAqLworI2RlZmluZSBUUkFDRV9FWEVDICAgICAgICAgMTYgIC8qIFRyYWNlIGFsbCBleGVjdXRlZCBpbnN0cnVjdGlvbnMgKi8KKyNkZWZpbmUgVFJBQ0VfSEVBUlRfQkVBVCAgIDMyICAvKiBUcmFjZSBoZWFydGJlYXQgY29kZSAqLworI2RlZmluZSBUUkFDRV9BUFBMWSAgICAgICAgNjQgIC8qIFRyYWNlIChpbnRlcm5hbCkgYXBwbGllcyAqLworI2RlZmluZSBUUkFDRV9PQkpOQU1FICAgICAxMjggIC8qIFByaW50IHRoZSBvYmplY3QgbmFtZXMgKi8KKworI2VuZGlmIC8qIExQQ19UUkFDRV9IXyAqLwpkaWZmIC0tZ2l0IGEvc3lzL3RyYW5zcG9ydC5oIGIvc3lzL3RyYW5zcG9ydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5YWM3MzUKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvdHJhbnNwb3J0LmgKQEAgLTAsMCArMSwyOSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHRyYW5zcG9ydC5oIC0tIERlZmluaXRpb25lbiBmdWVyIFNjaGlmZmUgdW5kIGFuZGVyZSBUcmFuc3BvcnRlcgorLy8KKy8vICRJZDogdHJhbnNwb3J0LmgsdiAzLjMgMjAwMi8wMi8wOSAxMTo1Njo1OSBUaWxseSBFeHAgJAorCisjaWZuZGVmIF9UUkFOU1BPUlRfSF8KKyNkZWZpbmUgX1RSQU5TUE9SVF9IXworCisjZGVmaW5lIFBfRU5URVJNU0cgICAgICAgICAgICJlbnRlcm1zZyIKKyNkZWZpbmUgUF9MRUFWRU1TRyAgICAgICAgICAgImxlYXZlbXNnIgorI2RlZmluZSBQX0xFQVZFRkFJTCAgICAgICAgICAibGVhdmVmYWlsIgorI2RlZmluZSBQX0VOVEVSRkFJTCAgICAgICAgICAiZW50ZXJmYWlsIgorI2RlZmluZSBQX0FSUklWRU1TRyAgICAgICAgICAiYXJyaXZlbXNnIgorI2RlZmluZSBQX0RFUEFSVE1TRyAgICAgICAgICAiZGVwYXJ0bXNnIgorI2RlZmluZSBQX0VOVEVSQ01EUyAgICAgICAgICAiZW50ZXJjbWRzIgorI2RlZmluZSBQX0xFQVZFQ01EUyAgICAgICAgICAibGVhdmVjbWRzIgorI2RlZmluZSBQX01BWF9QQVNTRU5HRVJTICAgICAibWF4cGFzcyIKKworI2RlZmluZSBQX1RSQVZFTF9JTkZPICAgICAgICAidHJhdmVsX2luZm8iCisjZGVmaW5lIFBfTk9fVFJBVkVMSU5HICAgICAgICJub190cmF2ZWxpbmciCisjZGVmaW5lIFBfVFJBVkVMX0NNRFMgICAgICAgICJ0cmF2ZWxfY21kcyIKKyNkZWZpbmUgUF9IQVJCT1VSICAgICAgICAgICAgImhhcmJvdXJfbmFtZSIKKworI2RlZmluZSBIUF9NU0cgICJocE1zZyIKKyNkZWZpbmUgSFBfUk9PTSAiaHBSb29tIgorI2RlZmluZSBIUF9GVU4gICJocEZ1biIKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvdWRwLmggYi9zeXMvdWRwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJmNzRjMAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy91ZHAuaApAQCAtMCwwICsxLDk4IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gdWRwLmggLS0gRGVmaW5pdGlvbmVuIGZ1ZXJzIHVkcAorLy8KKy8vICRJZDogdWRwLmggOTUwMyAyMDE2LTAyLTIzIDE4OjI3OjQ1WiBaZXNzdHJhICQKKworI2lmbmRlZiBfVURQX0gKKyNkZWZpbmUgX1VEUF9ICisKKy8qIC0tLSBVc2VyIENvbmZpZ3VyYXRpb24uIC0tLSAqLworCisjaW5jbHVkZSAiL3NlY3VyZS9jb25maWcuaCIKKyNpbmNsdWRlIDxkcml2ZXJfaW5mby5oPgorCisjZGVmaW5lIElORVRECQkiL3NlY3VyZS9pbmV0ZCIKKyNkZWZpbmUgVURQX0NNRF9ESVIJIi9zZWN1cmUvdWRwLyIKKworI2lmICFkZWZpbmVkKF9fVEVTVE1VRF9fKSAmJiBNVUROQU1FPT0iTW9yZ2VuR3JhdWVuIgorIyAgZGVmaW5lIEhPU1RfRklMRQkiL2V0Yy9JTkVURF9IT1NUUyIKKyNlbHNlCisjICBkZWZpbmUgSE9TVF9GSUxFICIvZXRjL0lORVREX0hPU1RTLlRFU1RNVUQiCisjZW5kaWYKKworI2RlZmluZSBJTkVURF9MT0dfRklMRQkiSU5FVEQiCisKKyNkZWZpbmUgUkVQTFlfVElNRV9PVVQJMTIKKyNkZWZpbmUgUkVUUklFUwkJMgorCisvKiAjZGVmaW5lIExPQ0FMX05BTUUJU0VDVVJJVFktPmdldF9tdWRfbmFtZSgpCS8vIENEICovCisjaWYgKF9fSE9TVF9OQU1FX189PU1VREhPU1QpCisjZGVmaW5lIExPQ0FMX05BTUUgIE1VRE5BTUUKKyNlbHNlCisjZGVmaW5lIExPQ0FMX05BTUUgICJNRy1UZXN0LSIrX19IT1NUX05BTUVfXworI2VuZGlmCisKKy8qICNkZWZpbmUgTE9DQUxfVURQX1BPUlQJU0VDVVJJVFktPmRvX2RlYnVnKCJ1ZHBfcG9ydCIpOyAgLy8gQ0QgKi8KKyNkZWZpbmUgTE9DQUxfVURQX1BPUlQJZHJpdmVyX2luZm8oRElfVURQX1BPUlQpCisKKy8qIElmIHlvdSBhcmUgcnVubmluZyBhbm90aGVyIGludGVybXVkIHN5c3RlbSBjb25jdXJyZW50bHkgYW5kIHRoZXJlIGlzIGEKKyAqIGNsYXNoIHdpdGggdGhlIHVkcC5oIGZpbGVuYW1lLCByZW5hbWUgdGhlIG9sZCB1ZHAuaCBmaWxlIGFzIGFwcHJvcHJpYXRlCisgKiBhbmQgaW5jbHVkZSB0aGlzIGxpbmUuICovCisvKiAjaW5jbHVkZSA8Y2R1ZHAuaD4JLy8gQ0QgKi8KKworLyogSW5jbHVkZSB0aGVzZSBkZWZpbml0aW9ucyBmb3IgQ0QgbXVkcy4gKi8KKy8qICNkZWZpbmUgQ0RMSUIgKi8KKy8qICNkZWZpbmUgQ0RfVURQCQkiL2QvU3RhbmRhcmQvb2JqL3VkcCIgKi8KKworLyogLS0tIEVuZCBvZiBjb25maWcuIC0tLSAqLworCisjZGVmaW5lIElORVREX0RJQUdOT1NUSUNTCisKKyNkZWZpbmUgSU5FVERfVkVSU0lPTgkiMC43YSIKKworLyogLS0tIFN0YW5kYXJkIGhlYWRlciBtYWNyb3MuIC0tLSAqLworCisjZGVmaW5lIFJFQ0lQSUVOVAkiUkNQTlQiCisjZGVmaW5lIFJFUVVFU1QJCSJSRVEiCisjZGVmaW5lIFNFTkRFUgkJIlNORCIKKy8qIFRoZSBEQVRBIGZpZWxkIHNob3VsZCBiZSB1c2VkIHRvIHN0b3JlIHRoZSBtYWluIGJvZHkgb2YgYW55IHBhY2tldC4gKi8KKyNkZWZpbmUgREFUQQkJIkRBVEEiCisKKy8qIFRoZXNlIGhlYWRlcnMgYXJlIHJlc2VydmVkIGZvciBzeXN0ZW0gdXNlIG9ubHkuICovCisjZGVmaW5lIEhPU1QJCSJIU1QiCisjZGVmaW5lIElECQkiSUQiCisjaWZuZGVmIE5BTUUKKyNkZWZpbmUgTkFNRQkJIk5BTUUiCisjZW5kaWYKKyNkZWZpbmUgUEFDS0VUCQkiUEtUIgorI2RlZmluZSBVRFBfUE9SVAkiVURQIgorI2RlZmluZSBTWVNURU0JCSJTWVMiCisKKy8qIFJlc2VydmVkIGhlYWRlcnMgZm9yIGRpYWdub3N0aWNzLiAqLworI2RlZmluZSBQQUNLRVRfTE9TUwkiUEtUX0xPU1MiCisjZGVmaW5lIFJFU1BPTlNFX1RJTUUJIlRJTUUiCisKKy8qIC0tLSBTdGFuZGFyZCBSRVFVRVNUIG1hY3Jvcy4gLS0tICovCisKKyNkZWZpbmUgUElORwkJInBpbmciCisjZGVmaW5lIFFVRVJZCQkicXVlcnkiCisjZGVmaW5lIFJFUExZCQkicmVwbHkiCisKKy8qIC0tLSBTdGFuZGFyZCBTWVNURU0gbWFjcm9zLiAtLS0gKi8KKworI2RlZmluZSBGQUlMRUQJCSJGIgorI2RlZmluZSBSRVBFQVQJCSJSIgorI2RlZmluZSBUSU1FX09VVAkiVE8iCisjZGVmaW5lIFVOQVZBSUxBQkxFCSJVIgorCisvKiAtLS0gSW5kZXggbWFjcm9zIGZvciBob3N0IGFycmF5cy4gLS0tICovCisKKyNkZWZpbmUgSE9TVF9OQU1FCTAKKyNkZWZpbmUgSE9TVF9JUAkJMQorI2RlZmluZSBIT1NUX1VEUF9QT1JUCTIKKyNkZWZpbmUgTE9DQUxfQ09NTUFORFMJMworI2RlZmluZSBIT1NUX0NPTU1BTkRTCTQKKyNkZWZpbmUgSE9TVF9TVEFUVVMJNQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5cy91ZHBfbGFuZ3VhZ2UuaCBiL3N5cy91ZHBfbGFuZ3VhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDAzMDIzCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3VkcF9sYW5ndWFnZS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8vIEtvbmZpZ3VyYXRpb25zZGF0ZWkgZnVlciBkaWUgU3ByYWNoYXVzZ2FiZSBkZXMgSU5FVEQKKworI2lmbmRlZiBfX1VEUF9MQU5HX0hfXworI2RlZmluZSBfX1VEUF9MQU5HX0hfXworCisvLyAqKioKKy8vICoqKiBpbmV0ZC5jCisvLyAqKioKKworI2RlZmluZSBJTkVURF9JTlZfQUNDRVNTX01TRyAiJXM6IElsbGVnYWxlciBadWdyaWZmIGF1ZiBkaWUgeC1GdW5rdGlvbi5cbiIKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24KKworLy8gKioqCisvLyAqKiogY2hhbm5lbC5jCisvLyAqKioKKworI2RlZmluZSBJTkVURF9JTlZfQ0hBTl9NU0cgIlxuJXM6ICVzQCVzIHZlcnN1Y2h0LCBhdWYgS2FuYWwgXCclc1wnIHp1IHNlbmRlbi5cbiIKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIHdobyBtdWQgICAgICAgICAgICAgICAgICBjaGFubmVsCisjZGVmaW5lIElORVREX05PX1NVQ0hfQ0hBTiAiW1Jvb3RAJXNdIEVzIGdpYnQgaGllciBrZWluZW4gSW50ZXJtdWQtS2FuYWwgJXMuXG4iCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWwKKyNkZWZpbmUgSU5FVERfQ0hBTl9MSVNURU4gICJbJXNAJXNdIEF1ZiBkZW0gS2FuYWwgYmVmaW5kZSVzIHNpY2g6ICVzXG4iCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWwgbXVkICAgICAgICAgICAgICAgIHBsdXJhbCAgICBuYW1lcworI2RlZmluZSBJTkVURF9DSEFOX05PX0xJU1QgXAorICAgICAgICAgICAgICAgICAgICAgICAgICJbJXNAJXNdIEVzIGJlZmluZGV0IHNpY2ggbmllbWFuZCBhdWYgZGllc2VtIEthbmFsLlxuIgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbCBtdWQKKyNkZWZpbmUgSU5FVERfQ0hBTl9OT19ISVNUICJbJXNAJXNdIEVzIGlzdCBrZWluZSBHZXNjaGljaHRlIHZlcmZ1ZWdiYXIuXG4iCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbCBtdWQKKyNkZWZpbmUgSU5FVERfQ0hBTl9ISVNUICAgICJbJXNAJXNdIEhpc3Rvcnk6XG4iCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbCBtdWQKKworLy8gKioqCisvLyAqKiogbG9jYXRlLmMKKy8vICoqKgorCisvLyAqKioKKy8vICoqKiBtYW4uYworLy8gKioqCisKKyNkZWZpbmUgSU5FVERfTUFOUEFHRV9GT1VORCAiW01hbkRAJXNdIEZvbGdlbmRlIFNlaXRlIHd1cmRlIGdlZnVuZGVuOiAlc1xuIgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlCisjZGVmaW5lIElORVREX05PX01BTlBBR0UgICAgIltNYW5EQCVzXSBLZWluZSBIaWxmZXNlaXRlIGdlZnVuZGVuIGZ1ZXIgJyVzJy5cbiIKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZQorI2RlZmluZSBJTkVURF9NQU5QQUdFUyAgICAgICJbTWFuREAlc10gRGllIGZvbGdlbmRlbiBTZWl0ZW4gcGFzc2VuOlxuIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlJy0nNzguNzhzXG4lcyUnLSc3OC43OHNcbiIKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWQgICIiIHBhZ2VsaXN0ICIiCisjZGVmaW5lIElORVREX01BTl9SRVFVRVNURUQgIiVzQCVzOiBBYmZyYWdlIGFiZ2VzY2hpY2t0LlxuIgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UgIG11ZAorCisvLyAqKioKKy8vICoqKiBuZXdob3N0LmMKKy8vICoqKgorCisKKy8vICoqKgorLy8gKioqIHF1ZXJ5LmMKKyNkZWZpbmUgSU5FVERfUVVFUllfUkVRVUVTVEVEICIlc0AlczogQWJmcmFnZSBhYmdlc2NoaWNrdC5cbiIKKy8vICoqKgorCisKKy8vICoqKgorLy8gKioqIHJlcGx5LmMKKy8vICoqKgorCisjZW5kaWYgLy8gX19VRFBfTEFOR19IX18KZGlmZiAtLWdpdCBhL3N5cy91ZHBfbWFpbC5oIGIvc3lzL3VkcF9tYWlsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU3NjIzMgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy91ZHBfbWFpbC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyB1ZHBfbWFpbC5oIC0tIFBvc3QgcGVyIHVkcAorLy8KKy8vICRJZDogdWRwX21haWwuaCx2IDMuMSAxOTk3LzAyLzEyIDEzOjA0OjU5IFdhcmdvbiBFeHAgJAorCisvKgorICogVkVSU0lPTiAxLjAKKyAqIEluY2x1ZGUgZmlsZSBmb3IgdGhlIFVEUCBNQUlMIHN5c3RlbSAoQXV0aG9yOiBBbHZpbkBTdXNoaSkKKyAqIFJlcXVpcmVzIElORVREIFYwLjYwIG9yIGhpZ2hlciAoSU5FVEQgQXV0aG9yOiBOb3N0cmFkYW11c0BaZWJlZGVlKQorICovCisKKy8qCisgKiBZb3VyIGxvY2FsIG1haWwgZGVsaXZlcnkgc3lzdGVtCisgKiBOZWVkcyB0byBoYXZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIDotCisgKiB2b2lkIGRlbGl2ZXJfbWFpbChzdHJpbmcgdG8sc3RyaW5nIGZyb20sc3RyaW5nIHN1YmpjdCxzdHJpbmcgbWFpbF9ib2R5KQorICogaW50IHF1ZXJ5X3JlY2lwaWVudF9vayhzdHJpbmcgbmFtZSkKKyAqLworI2RlZmluZSBMT0NBTF9NQUlMRVIJCQkiL3NlY3VyZS9tYWlsZXIiCisKKy8qCisgKiBUaGUgZGlyZWN0b3J5IGluIHdoaWNoIG1haWwgaXMga2VwdCBpZiB0aGUgaW5pdGlhbCBhdHRlbXB0IHRpbWVzIG91dAorICogVGhlIG1haWwgd2lsbCBiZSByZWNlbnQgZXZlcnkgVURQTV9SRVRSWV9TRU5EIG1pbnV0ZXMgdW50aWwKKyAqIFVEUE1fU0VORF9GQUlMIG1pbnV0ZXMgaGF2ZSBwYXNzZWQKKyAqIE5PVEU6IFVEUE1fU1BPT0xfRElSIG11c3QgZW5kIHdpdGggLyBhbmQgbXVzdCBiZSB3cml0YWJsZQorICovCisjZGVmaW5lIFVEUE1fU1BPT0xfRElSCQkJIm1haWwvc3Bvb2wvIgorCisvKiBUaGUgZm9sbG93aW5nIHR3byB0aW1lcyBhcmUgaW4gTUlOVVRFUyAqLworI2RlZmluZSBVRFBNX1JFVFJZX1NFTkQJCQkzMAorI2RlZmluZSBVRFBNX1NFTkRfRkFJTAkJCTE0NDAJIC8qIDI0IEhvdXJzICovCisKKy8qIFBMRUFTRSBETyBOT1QgQUxURVIgVEhFIEZPTExPV0lORyAqLworCisjZGVmaW5lIFVEUE1fV1JJVEVSCQkJInVkcG1fd3JpdGVyIgorI2RlZmluZSBVRFBNX1NVQkpFQ1QJCQkidWRwbV9zdWJqZWN0IgorI2RlZmluZSBVRFBNX1NUQVRVUwkJCSJ1ZHBtX3N0YXR1cyIKKyNkZWZpbmUgVURQTV9TUE9PTF9OQU1FCQkJInVkcG1fc3Bvb2xfbmFtZSIKKworI2RlZmluZSBVRFBNX1NUQVRVU19USU1FX09VVAkJMAorI2RlZmluZSBVRFBNX1NUQVRVU19ERUxJVkVSRURfT0sJMQorI2RlZmluZSBVRFBNX1NUQVRVU19VTktOT1dOX1BMQVlFUgkyCisjZGVmaW5lIFVEUE1fU1RBVFVTX0lOX1NQT09MCQkzCisKKy8qIHRoaW5ncyB0byBkbyB3aXRoIHRoZSBzcG9vbCBkaXJlY3RvcnkgKi8KKworI2RlZmluZSBVRFBNU19USU1FCQkJInVkcG1fc3Bvb2xfdGltZSIKKyNkZWZpbmUgVURQTVNfVE8JCQkidWRwbV9zcG9vbF90byIKKyNkZWZpbmUgVURQTVNfREVTVAkJCSJ1ZHBtX3Nwb29sX2Rlc3QiCisjZGVmaW5lIFVEUE1TX0ZST00JCQkidWRwbV9zcG9vbF9mcm9tIgorI2RlZmluZSBVRFBNU19TVUJKRUNUCQkJInVkcG1fc3Bvb2xfc3ViamVjdCIKKyNkZWZpbmUgVURQTVNfQk9EWQkJCSJ1ZHBtX3Nwb29sX2JvZHkiCmRpZmYgLS1naXQgYS9zeXMvdW5pdC5oIGIvc3lzL3VuaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2E4YTJjCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3VuaXQuaApAQCAtMCwwICsxLDg2IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gdW5pdC5oIC0tIERlZmluZXMgZnVlciBVbml0cworLy8KKy8vICRJZDogdW5pdC5oIDkwMTcgMjAxNS0wMS0xMCAxOToyMDoxNFogWmVzc3RyYSAkCisKKyNpZm5kZWYgX1VOSVRfSF8KKyNkZWZpbmUgX1VOSVRfSF8KKworI2RlZmluZSBQX1VOSVRfREVDQVlfSU5URVJWQUwgICAgICAidW5pdF9kZWNheV9pbnRlcnZhbCIKKyNkZWZpbmUgUF9VTklUX0RFQ0FZX1FVT1RBICAgICAgICAgInVuaXRfZGVjYXlfcXVvdGEiCisjZGVmaW5lIFBfVU5JVF9ERUNBWV9GTEFHUyAgICAgICAgICJ1bml0X2RlY2F5X2ZsYWdzIgorI2RlZmluZSBQX1VOSVRfREVDQVlfTUlOICAgICAgICAgICAidW5pdF9kZWNheV9taW4iCisKKy8vIEZsYWdzIGZ1ZXIgUF9VTklUX0RFQ0FZX0ZMQUdTIAorLy8gdmVyaGluZGVydCBkYXMgWmVyZmFsbGVuIGVpbnplbG5lciBVbml0LU9iamVrdGUuCisjZGVmaW5lIE5PX0RFQ0FZICAgICAgICAgICAgIDB4MQorLy8ga2VpbiBEZWNheSBiaXMgenVtIGVyc3RlbiBtb3ZlKCkgdm9uIGVpbmVtIEVudiBpbiBlaW4gRW52LiAoZC5oLiBkYXMgZXJzdGUKKy8vIG1vdmUoKSBpbiBlaW4gRW52IChDbG9uZW4gaW0gY3JlYXRlIHZvbSBOUEMpIGlzdCB1bmJlcnVlY2tzaWNodGlndC4pCisjZGVmaW5lIE5PX0RFQ0FZX1VOVElMX01PVkUgIDB4MgorLy8gdW5nZW5hdWVyZW4gWmVyZmFsbCBiZW51dHp0LCBkYWJlaSBhYmVyIGltbWVyIG1pbi4gZWluZSBFaW5oZWl0IHplcmZhbGxlbgorLy8gbGFzc2VuLgorI2RlZmluZSBJTkFDQ1VSQVRFX0RFQ0FZICAgICAweDQKKy8vIGtlaW4gcHJvemVudHVhbGVyIFplcmZhbGwsIHNvbmRlcm4gUF9VTklUX0RFQ0FZX1FVT1RBIGdpYnQgZWluZSBhYnMuIE1lbmdlCisvLyBhbiBFaW5oZWl0ZW4gYW4uCisjZGVmaW5lIEFCU09MVVRFX0RFQ0FZICAgICAgIDB4OAorCisjZGVmaW5lIFVfR1BVICAgInVfZ3B1IgorI2RlZmluZSBVX0NQVSAgICJ1X2NwdSIKKyNkZWZpbmUgVV9JRFMgICAidV9pZHMiCisjZGVmaW5lIFVfUkVRICAgInVfcmVxIgorCisjZGVmaW5lIElTX0VRVUFMKHgpIChvYmplY3RwKHgpICYmIChJc0VxdWFsKHgpICYmIHgtPklzRXF1YWwoTUUpKSkKKworI2VuZGlmIC8vIF9VTklUX0hfCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKyNpZm5kZWYgX1VOSVRfSF9QUk9UWVBFU18KKyNkZWZpbmUgX1VOSVRfSF9QUk9UWVBFU18KKy8vIHB1YmxpYyBmdW5jdGlvbnMKK3ZhcmFyZ3MgaW50ICAgIGlkKHN0cmluZyBzdHIsaW50IGx2bCk7CisgICAgICAgIGludCAgICBJc0VxdWFsKG9iamVjdCBvYik7CisgICAgICAgIGludCAgICBJc1VuaXQoKTsKK3ZhcmFyZ3MgaW50ICAgIG1vdmUob2JqZWN0fHN0cmluZyBkZXN0LCBpbnQgbWV0aG9kKTsKKyAgICAgICAgaW50ICAgICpRdWVyeUNvaW5zUGVyVW5pdHMoKTsKKyAgICAgICAgaW50ICAgICpRdWVyeUdyYW1zUGVyVW5pdHMoKTsKK3ZhcmFyZ3MgaW50IHJlbW92ZShpbnQgc2lsZW50KTsKK3ZhcmFyZ3Mgc3RyaW5nIGxvbmcoKTsKK3ZhcmFyZ3Mgc3RyaW5nfDxzdHJpbmc+KiBuYW1lKGludCBmYWxsLCBpbnQgZGVtbyk7Cit2YXJhcmdzIHN0cmluZyBRdWVyeVByb25vdW4oaW50IGNhc3VzKTsKKyAgICAgICAgc3RyaW5nIHNob3J0KCk7CisgICAgICAgIHZvaWQgICBBZGRBbW91bnQoaW50IGFtKTsKKyAgICAgICAgdm9pZCAgIEFkZFBsdXJhbElkKG1peGVkIHN0cik7CisgICAgICAgIHZvaWQgICBBZGRTaW5ndWxhcklkKG1peGVkIHN0cik7CisgICAgICAgIHZvaWQgICBSZW1vdmVQbHVyYWxJZChtaXhlZCBzdHIpOworICAgICAgICB2b2lkICAgUmVtb3ZlU2luZ3VsYXJJZChtaXhlZCBzdHIpOworICAgICAgICB2b2lkICAgcmVzZXQoKTsKKyAgICAgICAgdm9pZCAgIFNldENvaW5zUGVyVW5pdHMoaW50IGNvaW5zLGludCB1bml0cyk7CisgICAgICAgIHZvaWQgICBTZXRHcmFtc1BlclVuaXRzKGludCBncmFtcyxpbnQgdW5pdHMpOworcHVibGljICBpbnQgICAgRG9EZWNheShpbnQgc2lsZW50KTsKKworLy8gaW50ZXJuYWwgZnVuY3Rpb25zCitzdGF0aWMgICAgdm9pZCAgICBjaGVja19sZWF2ZSgpOworcHJvdGVjdGVkIHZvaWQgICAgRG9EZWNheU1lc3NhZ2UoaW50IG9sZGFtb3VudCwgaW50IHplcmZhbGwpOworCisvLyBRdWVyeS0gdW5kIFNldC1NZXRob2Rlbgorc3RhdGljICBpbnQgICAgX3F1ZXJ5X3BsdXJhbCgpOworc3RhdGljICBpbnQgICAgX3F1ZXJ5X3RvdGFsX3dlaWdodCgpOworc3RhdGljICBpbnQgICAgX3F1ZXJ5X3VfcmVxKCk7CitzdGF0aWMgIGludCAgICBfcXVlcnlfdmFsdWUoKTsKK3N0YXRpYyAgaW50ICAgIF9xdWVyeV93ZWlnaHQoKTsKK3N0YXRpYyAgc3RyaW5nfHN0cmluZyogX3F1ZXJ5X25hbWUoKTsKK3N0YXRpYyAgaW50ICAgIF9zZXRfYW1vdW50KGludCBhbSk7CitzdGF0aWMgIHN0cmluZ3xzdHJpbmcqIF9zZXRfbmFtZShtaXhlZCBuYW1lcyk7CitzdGF0aWMgIGludCAgICBfc2V0X3dlaWdodChpbnQgbnVtKTsKK3N0YXRpYyAgaW50ICAgIF9zZXRfdmFsdWUoaW50IG51bSk7CitzdGF0aWMgIGludCAgICBfcXVlcnlfdW5pdF9kZWNheV9pbnRlcnZhbCgpOworc3RhdGljICBpbnQgICAgX3NldF91bml0X2RlY2F5X2ludGVydmFsKGludCB6ZWl0KTsKK3N0YXRpYyAgaW50ICAgIF9xdWVyeV91bml0X2RlY2F5X3F1b3RhKCk7CitzdGF0aWMgIGludCAgICBfc2V0X3VuaXRfZGVjYXlfcXVvdGEoaW50IHF1b3RhKTsKK3N0YXRpYyAgaW50ICAgIF9xdWVyeV91bml0X2RlY2F5X21pbigpOworc3RhdGljICBpbnQgICAgX3F1ZXJ5X3VuaXRfZGVjYXlfZmxhZ3MoKTsKKworI2VuZGlmIC8vIF9VTklUX0hfUFJPVFlQRVNfCisjZW5kaWYgLy8gTkVFRF9QUk9UT1RZUEVTCisKZGlmZiAtLWdpdCBhL3N5cy91c2VyaW5mby5oIGIvc3lzL3VzZXJpbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU1NDhiZQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy91c2VyaW5mby5oCkBAIC0wLDAgKzEsNTMgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyB1c2VyaW5mby5oIC0tIERhdGVuIGltIFNwaWVsZXItQ2FjaGUgKHNpZWhlIC9zZWN1cmUvbWFzdGVyL3VzZXJpbmZvLmMpCisvLworLy8gJElkOiB1c2VyaW5mby5oIDYyMDcgMjAwNy0wMi0xOCAyMzozMjozNVogWmVzc3RyYSAkCisKKyNpZm5kZWYgX1VTRVJJTkZPXworI2RlZmluZSBfVVNFUklORk9fCisKKy8qCisgKiB1c2VyaW5mbzogd2hhdCBlYWNoIGZpZWxkIG9mIC9zZWN1cmUvUEFTU1dEIGlzCisgKi8KKworLyogcGFzc3dvcmQgKGVuY3J5cHRlZCkgKi8KKyNkZWZpbmUgVVNFUl9QQVNTV09SRCAwCisKKy8qIHdpemFyZCBsZXZlbCAob3IgcHJvZ3JhbW1pbmcgbGV2ZWwpICgwIGZvciBzaW1wbGUgdXNlcnMpICovCisjZGVmaW5lIFVTRVJfTEVWRUwgMQorCisvKiBkb21haW4gKGlmIGFueSkgbWFzdGVyID09ICpkb21haW5uYW1lICovCisjZGVmaW5lIFVTRVJfRE9NQUlOIDIKKworLyogcGxheWVyIG9iamVjdCB0byBiZSBsb2FkZWQgYnkgL3NlY3VyZS9sb2dpbiAqLworI2RlZmluZSBVU0VSX09CSkVDVCAzCisKKy8qIHRpbWUgb2YgZmlyc3QgbG9naW4gKi8KKyNkZWZpbmUgVVNFUl9DUkVBVElPTl9EQVRFIDQKKworLyogVGltZSB1c2VyaW5mbyBoYXMgYmVlbiB0b3VjaGVkIGxhc3QgKi8KKyNkZWZpbmUgVVNFUl9UT1VDSCA1CisKKy8qIGV4cGxvcmF0aW9uIHBvaW50cyBvZiBwbGF5ZXIgKi8KKyNkZWZpbmUgVVNFUl9FUCA2CisKKy8qIG5wY3Mga2lsbGVkIGJ5IHBsYXllciAqLworI2RlZmluZSBVU0VSX0VLIDcKKworLyogbWluaXF1ZXN0cyBzb2x2ZWQgYnkgcGxheWVyICovCisjZGVmaW5lIFVTRVJfTVEgOAorCisvKiBndWlsZHMgKGlmIGFueSkgbWFzdGVyID09ICpndWlsZG5hbWUgKi8KKyNkZWZpbmUgVVNFUl9HVUlMRCA5IAorCisvKiB0aXBzIGZvciBla3MgZ2l2ZW4gdG8gcGxheWVyICovCisjZGVmaW5lIFVTRVJfRUtUSVBTIDEwCisKKy8qIHRpcHMgZm9yIGZwcyBnaXZlbiB0byBwbGF5ZXIgKi8KKyNkZWZpbmUgVVNFUl9GUFRJUFMgMTEKKworLyogVUlEcyBmdWVyIGRlbiBlaW4gTWFnaWVyIHUuVS4gZXhwbGl6aXQgdmVyYW50d29ydGxpY2ggaXN0ICovCisjZGVmaW5lIFVTRVJfVUlEU19UT19UQUtFX0NBUkUgMTIKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvdXRpbC5oIGIvc3lzL3V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTlmMDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3V0aWwuaApAQCAtMCwwICsxLDE1IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gdXRpbC5oIC0tIEhlYWRlciBmdWVyIC9zdGQvdXRpbC8qLmMKKy8vCisvLyAkSWQ6IHV0aWwuaCA2NDA0IDIwMDctMDgtMDYgMjA6MzE6MjJaIFplc3N0cmEgJAorCisjaWZuZGVmIF9VVElMX0gKKyNkZWZpbmUgX1VUSUxfSAorCit2YXJhcmdzIHB1YmxpYyB2b2lkIE1vcmUoc3RyaW5nIHR4dCwgaW50IGZpbGUsIG1peGVkIGN0cmwsIAorICAgICAgICAgICAgICAgICAgICAgICAgIG1peGVkIGN0cmxhcmdzLCBpbnQgZmxhZ3MpOworCisKKyNlbmRpZiAvLyBfVVRJTF9ICisKZGlmZiAtLWdpdCBhL3N5cy91dGlsL3JpbmdidWZmZXIuaCBiL3N5cy91dGlsL3JpbmdidWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTBkMDA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3V0aWwvcmluZ2J1ZmZlci5oCkBAIC0wLDAgKzEsMjggQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyByaW5nYnVmZmVyLmggLS0gSGVhZGVyIGZ1ZXIgL3N0ZC91dGlsL3JpbmdidWZmZXIuYworLy8KKy8vICRJZDogdXRpbC5oIDY0MDQgMjAwNy0wOC0wNiAyMDozMToyMlogWmVzc3RyYSAkCisKKyNpZm5kZWYgX1JJTkdCVUZGRVJfSAorI2RlZmluZSBfUklOR0JVRkZFUl9ICisKKyNkZWZpbmUgTU9ERV9GSUZPIDEKKyNkZWZpbmUgTU9ERV9MSUZPIDIKKworI2VuZGlmIC8vIF9SSU5HQlVGRkVSX0gKKworI2lmbmRlZiBfUklOR0JVRkZFUl9IX0lNUExFTUVOVEFUSU9OCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNkZWZpbmUgX1JJTkdCVUZGRVJfSF9JTVBMRU1FTlRBVElPTgorCitwcm90ZWN0ZWQgc3RydWN0IHN0ZF9yaW5nYnVmZmVyIENyZWF0ZVJpbmdCdWZmZXIoaW50IHNpemUsIGludCBuZXdtb2RlKTsKK3Byb3RlY3RlZCB2b2lkIFJpbmdCdWZmZXJQdXQoc3RydWN0IHN0ZF9yaW5nYnVmZmVyIGJ1ZmZlciwgbWl4ZWQgdmFsKTsKK3Byb3RlY3RlZCBtaXhlZCBSaW5nQnVmZmVyR2V0KHN0cnVjdCBzdGRfcmluZ2J1ZmZlciBidWZmZXIpOworcHJvdGVjdGVkIHN0cnVjdCBzdGRfcmluZ2J1ZmZlciBSZXNpemVSaW5nQnVmZmVyKHN0cnVjdCBzdGRfcmluZ2J1ZmZlciBidWYsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplKTsKKworI2VuZGlmIC8vIE5FRURfUFJPVE9UWVBFUworI2VuZGlmIC8vIF9SSU5HQlVGRkVSX0hfSU1QTEVNRU5UQVRJT04KKwpkaWZmIC0tZ2l0IGEvc3lzL3ZfY29tcGlsZXIuaCBiL3N5cy92X2NvbXBpbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE2ZTliOQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy92X2NvbXBpbGVyLmgKQEAgLTAsMCArMSwzNCBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHZfY29tcGlsZXIuaCAtLSBhIGdlbmVyYWwgdmlydHVhbCBjb21waWxlciBvYmplY3QKKy8vCisvLyAkSWQ6IHZfY29tcGlsZXIuaCA2MDgxIDIwMDYtMTAtMjMgMTQ6MTI6MzRaIFplc3N0cmEgJAorCisjaWZuZGVmIF9fVl9DT01QSUxFUl9IX18KKyNkZWZpbmUgX19WX0NPTVBJTEVSX0hfXworCisjZGVmaW5lIFBfU1REX09CSkVDVCAgICAgICAgICJzdGRfb2JqZWN0IgorI2RlZmluZSBQX0NPTVBJTEVSX1BBVEggICAgICAiY29tcGlsZXJfcGF0aCIKKworI2VuZGlmIC8vIF9fVl9DT01QSUxFUl9IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fVl9DT01QSUxFUl9IX1BST1RPX18KKyNkZWZpbmUgX19WX0NPTVBJTEVSX0hfUFJPVE9fXworCisvLyB0byB2YWxpZGF0ZSBpZiB0aGUgZmlsZSBuYW1lIGlzIGluIG91ciByYW5nZQorc3RyaW5nIFZhbGlkYXRlKHN0cmluZyBmaWxlKTsKKworLy8gc2V0cyBjb3N0dW1pemF0aW9uIGRhdGEgaW4gdGhlIGNsb25lZCBvYmplY3QKK21peGVkIEN1c3RvbWl6ZU9iamVjdCgpOworCisvLyB0aGlzIGZ1bmN0aW9ucyBpcyBjYWxsZWQgd2hlbiBhIGZpbGUgaXMgbm90IGZvdW5kIGFuZCBtYXkgYmUgdmlydHVhbAorbWl4ZWQgY29tcGlsZV9vYmplY3Qoc3RyaW5nIGZpbGUpOworCisvLyB0byBnZXQgYWxsIHlldCBjbG9uZWQgKGFuZCBub3QgY2xlYW5lZCB1cCkgb2JqZWN0cworbWl4ZWQgUXVlcnlPYmplY3RzKCk7CisKKyNlbmRpZiAvLyBfX1ZfQ09NUElMRVJfSF9QUk9UT19fCisKKyNlbmRpZiAvL05FRURfUFJPVE9UWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3dlYXBvbi5oIGIvc3lzL3dlYXBvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5ZWIzYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvd2VhcG9uLmgKQEAgLTAsMCArMSw3NyBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHdlYXBvbi5oIC0tIFByb3BlcnRpZXMgZnVlciBXYWZmZW4gKFNjaGRlbnN0eXBlbiBzaWVoZSA8Y29tYmF0Lmg+KQorLy8KKy8vICRJZDogd2VhcG9uLmgsdiAzLjggMjAwMi8wOS8yMCAwNzoxNDoxMSBUaWxseSBFeHAgJAorIAorI2luY2x1ZGUgIi9zeXMvd2VhcG9uL2Rlc2NyaXB0aW9uLmgiCisKKyNpZm5kZWYgX19XRUFQT05fSF9fCisjZGVmaW5lIF9fV0VBUE9OX0hfXworCisjaW5jbHVkZSA8Y29tYmF0Lmg+CisKKy8qIC0tLS0tLS0tLS0gUHJvcGVydGllcyAtLS0tLS0tLS0tICovCisKKyNpZm5kZWYgUF9OUl9IQU5EUworI2RlZmluZSBQX05SX0hBTkRTICAgICAgIm5yX2hhbmRzIiAgICAgLy8gYmVub2V0aWd0ZSBIYWVuZGUgenVtIHp1ZWNrZW4KKyNlbmRpZgorCisjZGVmaW5lIFBfV0MgICAgICAgICAgICAid2MiICAgICAgICAgICAvLyBXYWZmZW5rbGFzc2UgKHdlYXBvbiBjbGFzcykKKyNkZWZpbmUgUF9NQVhfV0MgICAgICAgICJtYXhfd2MiICAgICAgIC8vIG9ic29sZXQsIG5pY2h0IG1laHIgaW4gQmVudXR6dW5nCisjZGVmaW5lIFBfV0VBUE9OX1RZUEUgICAid2VhcG9uX3R5cGUiICAvLyBXYWZmZW50eXAgKFNjaHdlcnQsIEtldWxlIHVzdy4pCisjZGVmaW5lIFBfREFNX1RZUEUgICAgICAiZGFtX3R5cGUiICAgICAvLyBTY2hhZGVuc2FydCBkZXIgV2FmZmUKKyNkZWZpbmUgUF9XSUVMREVEICAgICAgICJ3aWVsZGVkIiAgICAgIC8vIE9iamVrdCBtaXQgZGVtIFRyYWVnZXIgZGVyIFdhZmZlCisKKyNkZWZpbmUgUF9ISVRfRlVOQyAgICAgICJoaXRfZnVuYyIgICAgIC8vIE9iamVrdCBkYXMgZWluZSBIaXRGdW5jIGRlZmluaWVydAorI2RlZmluZSBQX1dJRUxEX0ZVTkMgICAgIndpZWxkX2Z1bmMiICAgLy8gT2JqZWt0IGRhcyBlaW5lIFdpZWxkRnVuYyBkZWZpbmllcnQKKyNkZWZpbmUgUF9VTldJRUxEX0ZVTkMgICJ1bndpZWxkX2Z1bmMiIC8vIE9iamVrdCBkYXMgZWluZSBVbndpZWxkRnVuYyBkZWZpbmllcnQKKworI2RlZmluZSBQX1dJRUxEX01TRyAgICAgIndpZWxkX21zZyIgICAgLy8gTWVsZHVuZ2VuIGJlaW0gWnVlY2tlbgorI2RlZmluZSBQX1VOV0lFTERfTVNHICAgInVud2llbGRfbXNnIiAgLy8gTWVsZHVuZ2VuIGJlaW0gV2Vnc3RlY2tlbgorCisvLyBXYW5uIGRlciBTcGllbGVyIGRhcyBsZXR6dGUgTWFsIGVpbmUgV2FmZmUgd2VnZ2VzdGVja3QgaGF0CisjZGVmaW5lIFBfVU5XSUVMRF9USU1FICAidW53aWVsZF90aW1lIgorCisvLyBNaXQgd2FzIGZ1ZXIgVGVjaG5pa2VuIGthbm4gZGllIFdhZmZlIGVpbmdlc2V0enQgd2VyZGVuPworI2RlZmluZSBQX1RFQ0hOSVFVRSAgICAgICAidGVjaG5pcXVlIgorCisvLyBJc3QgZGllIFdhZmZlIGJhbGFuY2llcnQgb2RlciBuaWNodD8KKyNkZWZpbmUgUF9CQUxBTkNFRF9XRUFQT04gImJhbGFuY2VkX3dlYXBvbiIKKworLyogLS0tLS0tLS0tLSBadWdlaG9lcmlnZSBEZWZpbmVzIC0tLS0tLS0tLS0gKi8KKworLy8gVGVjaG5pa2VuIGZ1ZXIgUF9URUNITklRVUUKKyNkZWZpbmUgVFFfVEhSQVNIICAgICAgICAgIlNjaGxhZ3RlY2huaWsiCisjZGVmaW5lIFRRX1RIUlVTVCAgICAgICAgICJTdG9zc3RlY2huaWsiCisjZGVmaW5lIFRRX1NUUk9LRSAgICAgICAgICJTdHJlaWNodGVjaG5payIKKyNkZWZpbmUgVFFfV0hJUCAgICAgICAgICAgIlBlaXRzY2h0ZWNobmlrIgorCisvLyBEZWZpbmVzIGZ1ZXIgYmFsYW5jaWVydC91bmJhbGFuY2llcnQKKyNkZWZpbmUgV1BfQkFMQU5DRUQgICAgICAgMQorI2RlZmluZSBXUF9VTkJBTEFOQ0VEICAgICAtMQorCisvKiAtLS0tLS0tLS0tIFBhcmllcndhZmZlbiAtLS0tLS0tLS0tLSAqLworCisjZGVmaW5lIFBfUEFSUlkgICAgICAgICAicGFycnkiICAgICAgICAvLyBkZWZpbmllcnQgZWluZSBQYXJpZXJ3YWZmZQorI2RlZmluZSBQX1BBUlJZX1dFQVBPTiAgInBhcnJ5X3dlYXBvbiIgLy8gV2VsY2hlIFBhcmllcndhZmZlIHdpcmQgYmVudXR6dD8KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGVmaW5lcyBmdWVyIFBhcmllcndhZmZlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjZGVmaW5lIFBBUlJZX05PVCAgMAorI2RlZmluZSBQQVJSWV9UT08gIDEKKyNkZWZpbmUgUEFSUllfT05MWSAyCisKKyNlbmRpZiAvLyBfX1dFQVBPTl9IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fV0VBUE9OX0hfUFJPVE9fXworI2RlZmluZSBfX1dFQVBPTl9IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworLy8gbm8gcHJvdG90eXBlcworCisjZW5kaWYgLy8gX19XRUFQT05fSF9QUk9UT19fCisKKyNlbmRpZgkvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3dlYXBvbi9kZXNjcmlwdGlvbi5oIGIvc3lzL3dlYXBvbi9kZXNjcmlwdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5OWU0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvd2VhcG9uL2Rlc2NyaXB0aW9uLmgKQEAgLTAsMCArMSwzNiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHdlYXBvbi9kZXNjcmlwdGlvbi5oIC0tIERlc2NyaXB0aW9uIGZvciBkYW1hZ2VkIFdlYXBvbnMKKy8vCisvLyAkSWQ6IGRlc2NyaXB0aW9uLmggNjA4MSAyMDA2LTEwLTIzIDE0OjEyOjM0WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX1dFQVBPTl9ERVNDUklQVElPTl9IX18KKyNkZWZpbmUgX19XRUFQT05fREVTQ1JJUFRJT05fSF9fCisKKy8vIHByb3BlcnRpZXMKKyNkZWZpbmUgUF9EQU1fREVTQyAgICAgICAgICAgImRhbV9kZXNjIgorCisvLyBEZWZhdWx0LU1lc3NhZ2VzCisjZGVmaW5lIERGTFRfREFNX0RFU0MgKHsiaXN0IGluIGVpbmVtIGhlcnZvcnJhZ2VuZGVuIFp1c3RhbmQiLFwKKyAgICAgICAgICAgICAgICAgICAgICAgICJpc3QgaW4gZWluZW0gc2VociBndXRlbiBadXN0YW5kIixcCisgICAgICAgICAgICAgICAgICAgICAgICAiaXN0IGluIGVpbmVtIGd1dGVuIFp1c3RhbmQiLFwKKyAgICAgICAgICAgICAgICAgICAgICAgICJzaWVodCBub2NoIGdhbnogYnJhdWNoYmFyIGF1cyIsXAorICAgICAgICAgICAgICAgICAgICAgICAgIndpcmt0IGV0d2FzIGFiZ2VudXR6dCIsXAorICAgICAgICAgICAgICAgICAgICAgICAgIndpcmt0IHN0YXJrIGFiZ2VudXR6dCIsXAorICAgICAgICAgICAgICAgICAgICAgICAgImlzdCBnZXJhZGUgbm9jaCB6dSBnZWJyYXVjaGVuIixcCisgICAgICAgICAgICAgICAgICAgICAgICAid2lyZCBiYWxkIHNjaHJvdHRyZWlmIHNlaW4iLFwKKyAgICAgICAgICAgICAgICAgICAgICAgICJpc3QgbnVyIG5vY2ggU2Nocm90dCIgfSkKKworI2VuZGlmIC8vIF9fV0VBUE9OX0RFU0NSSVBUSU9OX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19XRUFQT05fREVTQ1JJUFRJT05fSF9QUk9UT19fCisjZGVmaW5lIF9fV0VBUE9OX0RFU0NSSVBUSU9OX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCitzdHJpbmcgZGFtX2Rlc2NyKCk7CisKKyNlbmRpZiAvLyBfX1dFQVBPTl9ERVNDUklQVElPTl9IX1BST1RPX18KKworI2VuZGlmIC8vIC8vIE5FRURfUFJPVE9ZUEVTCmRpZmYgLS1naXQgYS9zeXMvd2VybGlzdGUuaCBiL3N5cy93ZXJsaXN0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkZjE4MTAKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvd2VybGlzdGUuaApAQCAtMCwwICsxLDExIEBACisjaWZuZGVmIF9fX1dFUl9MSVNURV9IX18KKyNkZWZpbmUgX19fV0VSX0xJU1RFX0hfXworCisjZGVmaW5lIFdIT19TSE9SVCAgICAgMHgwMQorI2RlZmluZSBXSE9fVkVSVElDQUwgIDB4MDIKKyNkZWZpbmUgV0hPX0FMUEhBICAgICAweDA0CisKKy8vIEF1cyBTcGllbGVyc2ljaHQgZGFyc3RlbGxlbiwgYXVjaCB3ZW5uIGRlciBBdWZydWZlbmRlIE1hZ2llciBpc3QKKyNkZWZpbmUgV0hPX1BMQVlFUl9WSUVXICAgMHgwOAorCisjZW5kaWYgLy8gX19XRVJfTElTVEVfSF9fCmRpZmYgLS1naXQgYS9zeXMvd2l6bGlzdC5oIGIvc3lzL3dpemxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjliYWM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3dpemxpc3QuaApAQCAtMCwwICsxLDIyIEBACisjaWZuZGVmIExQQ19XSVpMSVNUX0hfCisjZGVmaW5lIExQQ19XSVpMSVNUX0hfIDEKKworLyogSW5kaWNlcyByZXR1cm5lZCBieSB3aXpsaXN0X2luZm8oKQorICovCisKKyNkZWZpbmUgV0xfTkFNRSAgICAgICAgICAgMCAgLyogV2l6YXJkIG5hbWUgKi8KKyNkZWZpbmUgV0xfQ09NTUFORFMgICAgICAgMSAgLyogTnVtYmVyIG9mIGNvbW1hbmRzIGV4ZWN1dGVkICovCisjZGVmaW5lIFdMX0NPU1QgICAgICAgICAgIDIgIC8qIFdlaWdodGVkIGV2YWxjb3N0IHNwZW50IG9uIHRoaXMgd2l6YXJkICovCisjZGVmaW5lIFdMX0dJR0FDT1NUICAgICAgIDMgIC8qIFdlaWdodGVkIGdpZ2EtZXZhbGNvc3Qgc3BlbnQgb24gdGhpcyB3aXphcmQgKi8KKyNkZWZpbmUgV0xfVE9UQUxfQ09TVCAgICAgNCAgLyogVG90YWwgZXZhbGNvc3Qgc3BlbnQgb24gdGhpcyB3aXphcmQgKi8KKyNkZWZpbmUgV0xfVE9UQUxfR0lHQUNPU1QgNSAgLyogVG90YWwgZ2lnYS1ldmFsY29zdCBzcGVudCBvbiB0aGlzIHdpemFyZCAqLworI2RlZmluZSBXTF9IRUFSVF9CRUFUUyAgICA2ICAvKiBIZWFydGJlYXRzIHNwZW50IG9uIHRoaXMgd2l6YXJkICovCisjZGVmaW5lIFdMX0NBTExfT1VUICAgICAgIDcgIC8qIHVuaW1wbGVtZW50ZWQgKi8KKyNkZWZpbmUgV0xfQVJSQVlfVE9UQUwgICAgOCAgLyogQXJyYXlzIGFjY291bnRlZCBmb3IgKi8KKyNkZWZpbmUgV0xfTUFQUElOR19UT1RBTCAgOSAgLyogTWFwcGluZ3MgYWNjb3VudGVkIGZvciAqLworI2RlZmluZSBXTF9TVFJVQ1RfVE9UQUwgIDEwICAvKiBTdHJ1Y3QgZWxlbWVudHMgYWNjb3VudGVkIGZvciAqLworI2RlZmluZSBXTF9FWFRSQSAgICAgICAgIDExICAvKiBFeHRyYSBXaXppbmZvLCBpZiBzZXQgKi8KKworI2RlZmluZSBXTF9TSVpFICAxMiAgLyogTnVtYmVyIG9mIGVudHJpZXMgKi8KKworI2VuZGlmIC8qIExQQ19XSVpMSVNUX0hfICovCmRpZmYgLS1naXQgYS9zeXMvd3d3LmggYi9zeXMvd3d3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTgzYTY1OQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy93d3cuaApAQCAtMCwwICsxLDkwIEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gd3d3LmggLS0gV29ybGQgV2lkZSBXZWIgU2VydmljZXMKKy8vCisvLyAkSWQ6IHd3dy5oIDc3MjQgMjAxMS0wMS0wNSAyMjozMjoyNlogWmVzc3RyYSAkCisKKy8vIGhvdyBkbyB5b3Ugc3BlbGwgeW91ciBtdWQgbmFtZQorI2lmbmRlZiBNVUROQU1FCisjIGRlZmluZSBNVUROQU1FICAgICAgICAiTW9yZ2VuR3JhdWVuIgorI2VuZGlmCisKKy8vIFBhdGhuYW1lcyB0byBkaWZmZXJlbnQgc2VydmljZXMKKy8vIElORVREIC0tIHRoZSBpbmV0IGRhZW1vbgorI2lmbmRlZiBJTkVURAorIyBkZWZpbmUgSU5FVEQgICAgICAgICAgIi9zZWN1cmUvaW5ldGQiCisjZW5kaWYKKworI2RlZmluZSBGSU5HRVIobikgICAgICAgICAgICAgICAiL3AvZGFlbW9uL2ZpbmdlciItPmZpbmdlcl9zaW5nbGUobikKKyNkZWZpbmUgV0hPICAgICAgICAgICAgICIvb2JqL3dlcmxpc3RlIi0+UXVlcnlXaG9MaXN0ZSgwLDAsMSkKKworLy8gVURQUEFUSCAtLSB3aGVyZXRoZSB1ZHAgcHJvZ3JhbXMgYXJlCisjZGVmaW5lIFVEUFBBVEggICAgICAgICAiL3NlY3VyZS91ZHAiCisKKy8vIHRoZSBXV1cgcmVxdWVzdCBzY2hlZHVsZXIKKyNkZWZpbmUgV1dXICAgICAgICAgICAgIChVRFBQQVRIKyIvd3d3IikKKyNkZWZpbmUgVElNRU9VVCAgICAgICAgIDUKKworLy8gd2hlciB0byBsb2cgYWxsIFdXVyBVRFAgUmVxdWVzdHMKKyNkZWZpbmUgV1dXTE9HICIvV1dXIiAgICAgICAgICAgICAgICAgICAvLyB1c2VkIGluIGxvZ19maWxlKCkKKworLy8gZGVmaW5lIE1VREhPU1QsIFdXVyBTRVJWRVIgYWRkcmVzcyBhbmQgdGhlIElDT04gVVJMCisjaWZuZGVmIE1VREhPU1QKKyMgZGVmaW5lIE1VREhPU1QgICAgICAgICAgICAgICAgIk1HLk11ZC5ERSIKKyNlbHNlCisjIHVuZGVmIE1VREhPU1QKKyMgZGVmaW5lIE1VREhPU1QgICAgICAgICAgICJNRy5NdWQuREUiCisjZW5kaWYKKyNkZWZpbmUgTVVEVVNFUiAgICAgICAgICJtdWQiCisjZGVmaW5lIFNFUlZFUiAgICAgICAgICAibWcubXVkLmRlIgorI2RlZmluZSBJQ09OUyAgICAgICAgICAgIi9pY29ucyIKKyNkZWZpbmUgTVVEV1dXICAgICAgICAgICIvY2dpLWJpbi9tdWR3d3ciCisKKy8vIGRlZmluZSB0aGUgYWRkcmVzcyBvZiB0aGUgTVVEIEhvc3QKKyNkZWZpbmUgSE9NRVBBR0UgICAgICAgICJodHRwOi8vIitTRVJWRVIrIi8iCisjZGVmaW5lIE1VRE1BSUwgICAgICAgICAibWFpbHRvOiIrTVVEVVNFUisiQCIrTVVESE9TVAorCisvLyBSZXF1ZXN0IFN5bnRheCB0b2tlbnMKKyNkZWZpbmUgUkVRICAgICAiUkVRIiAgICAgICAgICAgLy8gVFlQRSBvZiBSRVF1ZXN0CisKKy8vIFRoZSBXV1cgTmV3c3JlYWRlcgorIyBkZWZpbmUgUl9ORVdTICAgICAibmV3cyIgICAgICAgICAgICAgIC8vIC0gd2Ugd291bGQgbGlrZSB0byByZWFkIG5ld3MKKyMgIGRlZmluZSBHUk9VUCAgICAgICAiR1JPVVAiICAgLy8gICAqIHdoaWNoIG5ld3Nncm91cAorIyAgZGVmaW5lIEFSVElDTEUgICAgICJBUlRJQ0xFIiAvLyAgICogd2hpY2ggYXJ0aWNsZQorCisvLyBUaGUgV1dXIE1VRCBXYWxrZXIKKyMgZGVmaW5lIFJfV0FMSyAgICAgIndhbGsiICAgICAgICAgICAgICAvLyAtIG9yIG1heWJlIHdhbGsgYXJvdW5kIGEgYml0CisjICBkZWZpbmUgUk9PTSAgICAgICAgIlJPT00iICAgIC8vICAgKiBST09NIHRvIGVudGVyCisjICBkZWZpbmUgREVUQUlMICAgICAgIkRFVEFJTCIgIC8vICAgKiBERVRBSUwgdG8gZXhhbWluZQorCisvLyBUaGUgV1dXIEZpbmdlciBSZXF1ZXN0CisjIGRlZmluZSBSX0ZJTkdFUiAgICJmaW5nZXIiICAgIC8vIC0gZmluZ2VyIHNvbWVvbmUKKyMgIGRlZmluZSBVU0VSICAgICAgICAiVVNFUiIgICAgLy8gICAqIFVTRVIgdG8gcmV0cmlldmUgaW5mbyBmcm9tCisKKy8vIFRoZSBXV1cgV2hvbGlzdCBSZXF1ZXN0CisjIGRlZmluZSBSX1dITyAgICAgICJ3aG8iICAgICAgICAgICAgICAgLy8gLSBnZXQgdGhlIHdob2xpc3QKKworLy8gVGhlIFdXVyBJbnRlcm11ZCBHYXRld2F5CisjIGRlZmluZSBSX0lOVEVSTVVEICJpbnRlcm11ZCIgIC8vIC0gaW50ZXJtdWQgY29tbXVuaWNhdGlvbiByZXF1ZXN0CisjICBkZWZpbmUgSU1VRCAgICAgICAgIklNVUQiICAgIC8vICAgKiBUaGUgTVVEIHRvIHJlcXVlc3QgaW5mbyBmcm9tCisjICBkZWZpbmUgVFlQRSAgICAgICAgIlRZUEUiICAgIC8vICAgKiBUaGUgVFlQRSBvZiBSZXF1ZXN0CisjICBkZWZpbmUgSURBVEEgICAgICAgIkRBVEEiICAgIC8vICAgKiBleHRyYSBEQVRBIHRvIGFpZCByZXF1ZXN0CisjICBkZWZpbmUgUEFHRSAgICAgICAgIlBBR0UiICAgIC8vICAgKiBBbHBoYWJldGljYWwgcGFnZXMgb2YgbXVkcworCisjZGVmaW5lIEJBQ0sgICAgIkJBQ0siICAgICAgICAgIC8vIFBBR0UgdG8gZ28gQkFDSyB0bworCisjaWZuZGVmIE1VRE5BTUUKKyMgZGVmaW5lIE1VRE5BTUUgIlRlc3RNVUQiCisjZW5kaWYgLyogTVVETkFNRSAqLworCisvLyBQcm9wZXJ0eSBzcGVjaWZpYyBkZWZpbmVzCisjZGVmaW5lIFBfV1dXSU5GTyAgICAgICJ3d3dpbmZvIgorCisvLyBUaGUgZXJyb3IgbWVzc2FnZSB0byB2aWV3IGluIGFueSBjYXNlCisjZGVmaW5lIEVSUk9SKHN0cikgICAgICAiPEgxPkVpbiBGZWhsZXIgaXN0IGF1ZmdldHJldGVuITwvSDE+PEhSPiIrc3RyCisKKy8vIGRlYnVnZ2luZyAoY2hhbmdlIG5hbWUgdG8geW91ciBvd24hKQorI2RlZmluZSBETkFNRSAgICJoYXRlIgorI2RlZmluZSBERUJVRyhzdHIpIGlmKGZpbmRfcGxheWVyKEROQU1FKSkgXAorICAgICAgICAgICAgICAgICAgICAgdGVsbF9vYmplY3QoZmluZF9wbGF5ZXIoRE5BTUUpLCBzcHJpbnRmKCIlT1xuIiwgc3RyKSkKKy8vI3VuZGVmIERFQlVHCmRpZmYgLS1naXQgYS9zeXMveG1sLmggYi9zeXMveG1sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYzMDYzOAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy94bWwuaApAQCAtMCwwICsxLDEwIEBACisjaWZuZGVmIFhNTF9IX18KKyNkZWZpbmUgWE1MX0hfXyAxCisKKyNkZWZpbmUgWE1MX1RBR19OQU1FICAgICAgICAgICAgICAgICAgICAwIC8qIE5hbWUgb2YgdGhlIGN1cnJlbnQgdGFnICovCisjZGVmaW5lIFhNTF9UQUdfQVRUUklCVVRFUyAgICAgICAgICAgICAgMSAvKiBBdHR0cmlidXRlcyBvZiB0aGUgY3VycmVudCB0YWcgKi8KKyNkZWZpbmUgWE1MX1RBR19DT05URU5UUyAgICAgICAgICAgICAgICAyIC8qIENvbnRlbnRzIG9mIHRoZSBjdXJyZW50IHRhZyAqLworCisjZGVmaW5lIFhNTF9UQUdfU0laRSAgICAgICAgICAgICAgICAgICAgMworCisjZW5kaWYK