LyoKICogIE5vdGVwYWQgKERhbmlzaCByZXNvdXJjZXMpCiAqCiAqICBDb3B5cmlnaHQgMTk5OCBIZW5yaWsgT2xzZW4gPGhlbnJpa0BpYWVzdGUuZGs+CiAqLwoKI2RlZmluZSBMQU5HVUFHRV9JRCAgICAgICAgICAgICAgICAgICAgIERhCiNkZWZpbmUgTEFOR1VBR0VfTlVNQkVSICAgICAgICAgICAgICAgICA2CiNkZWZpbmUgTEFOR1VBR0VfTUVOVV9JVEVNICAgICAgICAgICAgICAiJkRhbnNrIgoKLyogTWVudSAqLwoKI2RlZmluZSBNRU5VX0ZJTEUgICAgICAgICAgICAgICAgICAgICAgICImRmlsZWYiCiNkZWZpbmUgTUVOVV9GSUxFX05FVyAgICAgICAgICAgICAgICAgICAiJk55Li4uIgojZGVmaW5lIE1FTlVfRklMRV9PUEVOICAgICAgICAgICAgICAgICAgIsUmYm5cdEVudGVyIgojZGVmaW5lIE1FTlVfRklMRV9TQVZFICAgICAgICAgICAgICAgICAgIiZHZW0iCiNkZWZpbmUgTUVOVV9GSUxFX1NBVkVBUyAgICAgICAgICAgICAgICAiR2VtIHNvJm0uLi4iCiNkZWZpbmUgTUVOVV9GSUxFX1BSSU5UICAgICAgICAgICAgICAgICAiJlVkc2tyaXYiCiNkZWZpbmUgTUVOVV9GSUxFX1BBR0VTRVRVUCAgICAgICAgICAgICAiU2lkZSZvcHPmdG5pbmcuLi4iCiNkZWZpbmUgTUVOVV9GSUxFX1BSSU5UU0VUVVAgICAgICAgICAgICAiJkluZHN0aWwgcHJpbnRlci4uLiIKI2RlZmluZSBNRU5VX0ZJTEVfRVhJVCAgICAgICAgICAgICAgICAgICImQWZzbHV0IgoKI2RlZmluZSBNRU5VX0VESVQgICAgICAgICAgICAgICAgICAgICAgICImUmVkaWdlciIKI2RlZmluZSBNRU5VX0VESVRfVU5ETyAgICAgICAgICAgICAgICAgICImRm9ydHJ5ZFx0Q3RybCtaIgojZGVmaW5lIE1FTlVfRURJVF9DVVQgICAgICAgICAgICAgICAgICAgIiZLbGlwXHRDdHJsK1giCiNkZWZpbmUgTUVOVV9FRElUX0NPUFkgICAgICAgICAgICAgICAgICAiSyZvcGllclx0Q3RybCtDIgojZGVmaW5lIE1FTlVfRURJVF9QQVNURSAgICAgICAgICAgICAgICAgIlPmdCAmaW5kXHRDdHJsK1YiCiNkZWZpbmUgTUVOVV9FRElUX0RFTEVURSAgICAgICAgICAgICAgICAiJlNsZXRcdERlbCIKI2RlZmluZSBNRU5VX0VESVRfU0VMRUNUQUxMICAgICAgICAgICAgICJNYXJrZXIgJmFsdCIKI2RlZmluZSBNRU5VX0VESVRfVElNRURBVEUgICAgICAgICAgICAgICImRGF0by90aWRcdEY1IgojZGVmaW5lIE1FTlVfRURJVF9XUkFQICAgICAgICAgICAgICAgICAgIkF1dG9tYXRpc2sgJmxpbmplc2tpZnQiCgojZGVmaW5lIE1FTlVfU0VBUkNIICAgICAgICAgICAgICAgICAgICAgIiZT+GciCiNkZWZpbmUgTUVOVV9TRUFSQ0hfU0VBUkNIICAgICAgICAgICAgICAiJlP4Zy4uLiIKI2RlZmluZSBNRU5VX1NFQVJDSF9ORVhUICAgICAgICAgICAgICAgICImRmluZCBu5nN0ZVx0RjMiCgojZGVmaW5lIE1FTlVfTEFOR1VBR0UgICAgICAgICAgICAgICAgICAgIlMmcHJvZyIKCiNkZWZpbmUgTUVOVV9IRUxQICAgICAgICAgICAgICAgICAgICAgICAiJkhq5mxwIgojZGVmaW5lIE1FTlVfSEVMUF9DT05URU5UUyAgICAgICAgICAgICAgIiZJbmRob2xkIgojZGVmaW5lIE1FTlVfSEVMUF9TRUFSQ0ggICAgICAgICAgICAgICAgIiZT+GcgZWZ0ZXIgaGrmbHAgb20uLi4iCiNkZWZpbmUgTUVOVV9IRUxQX0hFTFBfT05fSEVMUCAgICAgICAgICAiJkJydWcgYWYgSGrmbHAiCgojZGVmaW5lIE1FTlVfSU5GTyAgICAgICAgICAgICAgICAgICAgICAgIiZPbSBOb3Rlc2Jsb2suLi4iCiNkZWZpbmUgTUVOVV9JTkZPX0xJQ0VOU0UgICAgICAgICAgICAgICAiJkxpY2VucyIKI2RlZmluZSBNRU5VX0lORk9fTk9fV0FSUkFOVFkgICAgICAgICAgICImTk8gV0FSUkFOVFkiCiNkZWZpbmUgTUVOVV9JTkZPX0FCT1VUX1dJTkUgICAgICAgICAgICAiJk9tIFdJTkUiCgoKLyogRGlhbG9ncyAqLwoKI2RlZmluZSBESUFMT0dfT0sgICAgICAgICAgICAgICAgICAgICAgICJPSyIKI2RlZmluZSBESUFMT0dfQ0FOQ0VMICAgICAgICAgICAgICAgICAgICJBbm51bGxlciIKI2RlZmluZSBESUFMT0dfQlJPV1NFICAgICAgICAgICAgICAgICAgICImR2VubmVtc2UuLi4iCiNkZWZpbmUgRElBTE9HX0hFTFAgICAgICAgICAgICAgICAgICAgICAiJkhq5mxwIgoKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX0NBUFRJT04gICAgICAgICJTaWRlb3Bz5nRuaW5nIgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfSEVBRCAgICAgICAgICAgIiZTaWRlaG92ZWQ6IgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfVEFJTCAgICAgICAgICAgIlNpZGUmZm9kOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX01BUkdJTiAgICAgICAgICJNYXJnZW5lcjoiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9MRUZUICAgICAgICAgICAiJlZlbnN0cmU6IgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfUklHSFQgICAgICAgICAgIiZI+GpyZToiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9UT1AgICAgICAgICAgICAiJlRvcDoiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9CT1RUT00gICAgICAgICAiJkJ1bmQ6IgoKCi8qIFN0cmluZ3MgKi8KCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9IRUFERVJWQUxVRSAgICAiJm4iICAgICAgICAvKiBGSVhNRSAqLwojZGVmaW5lIFNUUklOR19QQUdFU0VUVVBfRk9PVEVSVkFMVUUgICAgIlBhZ2UgJnMiICAgLyogRklYTUUgKi8KI2RlZmluZSBTVFJJTkdfUEFHRVNFVFVQX0xFRlRWQUxVRSAgICAgICIyMCBtbSIgICAgIC8qIEZJWE1FICovCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9SSUdIVFZBTFVFICAgICAiMjAgbW0iICAgICAvKiBGSVhNRSAqLwojZGVmaW5lIFNUUklOR19QQUdFU0VUVVBfVE9QVkFMVUUgICAgICAgIjI1IG1tIiAgICAgLyogRklYTUUgKi8KI2RlZmluZSBTVFJJTkdfUEFHRVNFVFVQX0JPVFRPTVZBTFVFICAgICIyNSBtbSIgICAgIC8qIEZJWE1FICovCgojZGVmaW5lIFNUUklOR19OT1RFUEFEICAgICAgICAgICAgICAgICAgIk5vdGVzYmxvayIKI2RlZmluZSBTVFJJTkdfRVJST1IgICAgICAgICAgICAgICAgICAgICJGRUpMIgojZGVmaW5lIFNUUklOR19XQVJOSU5HICAgICAgICAgICAgICAgICAgIkFEVkFSU0VMIgojZGVmaW5lIFNUUklOR19JTkZPICAgICAgICAgICAgICAgICAgICAgIkluZm9ybWF0aW9uIgoKI2RlZmluZSBTVFJJTkdfVU5USVRMRUQgICAgICAgICAgICAgICAgICIoaWtrZS1uYXZuZ2l2ZXQpIgoKI2RlZmluZSBTVFJJTkdfQUxMX0ZJTEVTICAgICAgICAgICAgICAgICJBbGxlIGZpbGVyICgqLiopIgojZGVmaW5lIFNUUklOR19URVhUX0ZJTEVTX1RYVCAgICAgICAgICAgIlRla3N0IGZpbGVyICgqLnR4dCkiCgojZGVmaW5lIFNUUklOR19UT09MQVJHRSAgICAgICAgICJGaWxlbiAnJXMnIGVyIGZvciBzdG9yIHRpbCBOb3Rlc2Jsb2suIFwKXG5CcnVnIGVuIGFuZGVuIGVkaXRvciB0aWwgYXQgcmVkaWdlcmUgZmlsZW4uIgoKI2RlZmluZSBTVFJJTkdfTk9URVhUICAgICAgICAgICAiRHUgaGFyIGlra2Ugc2tyZXZldCBub2dldCB0ZWtzdC4gXApcblNrcml2IG5vZ2V0IHRla3N0LCBvZyBwcvh2IHPlIGlnZW4iCgovKiBGSVhNRTogKi8KCiNkZWZpbmUgU1RSSU5HX05PVFNBVkVEICAgICAgICAgIkZpbGVuICclcydcbiBoYXMgYmVlbiBtb2RpZmllZC5cblxuIFwKV291bGQgeW91IGxpa2UgdG8gc2F2ZSB0aGUgY2hhbmdlcyA/IgoKI2RlZmluZSBTVFJJTkdfTk9URk9VTkQgICAgICAgICAiS2FuIGlra2UgZmluZGUgJyVzJy4iCgojZGVmaW5lIFNUUklOR19PVVRfT0ZfTUVNT1JZICAgICJEZXIgZXIgaWtrZSBub2sgaHVrb21tZWxzZSB0aWwgYXQgdWRm+HJlIFwKZGVubmUgb3BlcmF0aW9uLiBcbkFmc2x1dCBldCBlbGxlciBmbGVyZSBha3RpdmUgcHJvZ3JhbW1lciBmb3IgYXQgZnJpZ/hyZSBcCmh1a29tbWVsc2UsIG9nIHBy+HYgc+UgaWdlbi4iCgojaW5jbHVkZSAibm90ZXBhZC5yYyIK