LyoKICogTm90ZXBhZCAoRGFuaXNoIHJlc291cmNlcykKICoKICogQ29weXJpZ2h0IDE5OTggSGVucmlrIE9sc2VuIDxoZW5yaWtAaWFlc3RlLmRrPgogKi8KCiNkZWZpbmUgTEFOR1VBR0VfSUQgICAgICAgICAgICAgICAgICBEYQojZGVmaW5lIExBTkdVQUdFX05VTUJFUiAgICAgICAgICAgICAgNgojZGVmaW5lIExBTkdVQUdFX01FTlVfSVRFTSAgICAgICAgICAgIiZEYW5zayIKCi8qIE1lbnUgKi8KCiNkZWZpbmUgTUVOVV9GSUxFICAgICAgICAgICAgICAgICAgICAiJkZpbGVmIgojZGVmaW5lIE1FTlVfRklMRV9ORVcgICAgICAgICAgICAgICAgIiZOeS4uLiIKI2RlZmluZSBNRU5VX0ZJTEVfT1BFTiAgICAgICAgICAgICAgICLFJmJuXHRFbnRlciIKI2RlZmluZSBNRU5VX0ZJTEVfU0FWRSAgICAgICAgICAgICAgICImR2VtIgojZGVmaW5lIE1FTlVfRklMRV9TQVZFQVMgICAgICAgICAgICAgIkdlbSBzbyZtLi4uIgojZGVmaW5lIE1FTlVfRklMRV9QUklOVCAgICAgICAgICAgICAgIiZVZHNrcml2IgojZGVmaW5lIE1FTlVfRklMRV9QQUdFU0VUVVAgICAgICAgICAgIlNpZGUmb3Bz5nRuaW5nLi4uIgojZGVmaW5lIE1FTlVfRklMRV9QUklOVFNFVFVQICAgICAgICAgIiZJbmRzdGlsIHByaW50ZXIuLi4iCiNkZWZpbmUgTUVOVV9GSUxFX0VYSVQgICAgICAgICAgICAgICAiJkFmc2x1dCIKCiNkZWZpbmUgTUVOVV9FRElUICAgICAgICAgICAgICAgICAgICAiJlJlZGlnZXIiCiNkZWZpbmUgTUVOVV9FRElUX1VORE8gICAgICAgICAgICAgICAiJkZvcnRyeWRcdEN0cmwrWiIKI2RlZmluZSBNRU5VX0VESVRfQ1VUICAgICAgICAgICAgICAgICImS2xpcFx0Q3RybCtYIgojZGVmaW5lIE1FTlVfRURJVF9DT1BZICAgICAgICAgICAgICAgIksmb3BpZXJcdEN0cmwrQyIKI2RlZmluZSBNRU5VX0VESVRfUEFTVEUgICAgICAgICAgICAgICJT5nQgJmluZFx0Q3RybCtWIgojZGVmaW5lIE1FTlVfRURJVF9ERUxFVEUgICAgICAgICAgICAgIiZTbGV0XHREZWwiCiNkZWZpbmUgTUVOVV9FRElUX1NFTEVDVEFMTCAgICAgICAgICAiTWFya2VyICZhbHQiCiNkZWZpbmUgTUVOVV9FRElUX1RJTUVEQVRFICAgICAgICAgICAiJkRhdG8vdGlkXHRGNSIKI2RlZmluZSBNRU5VX0VESVRfV1JBUCAgICAgICAgICAgICAgICJBdXRvbWF0aXNrICZsaW5qZXNraWZ0IgoKI2RlZmluZSBNRU5VX1NFQVJDSCAgICAgICAgICAgICAgICAgICImU/hnIgojZGVmaW5lIE1FTlVfU0VBUkNIX1NFQVJDSCAgICAgICAgICAgIiZT+GcuLi4iCiNkZWZpbmUgTUVOVV9TRUFSQ0hfTkVYVCAgICAgICAgICAgICAiJkZpbmQgbuZzdGVcdEYzIgoKI2RlZmluZSBNRU5VX0xBTkdVQUdFICAgICAgICAgICAgICAgICJTJnByb2ciCgojZGVmaW5lIE1FTlVfSEVMUCAgICAgICAgICAgICAgICAgICAgIiZIauZscCIKI2RlZmluZSBNRU5VX0hFTFBfQ09OVEVOVFMgICAgICAgICAgICImSW5kaG9sZCIKI2RlZmluZSBNRU5VX0hFTFBfU0VBUkNIICAgICAgICAgICAgICImU/hnIGVmdGVyIGhq5mxwIG9tLi4uIgojZGVmaW5lIE1FTlVfSEVMUF9IRUxQX09OX0hFTFAgICAgICAgIiZCcnVnIGFmIEhq5mxwIgoKI2RlZmluZSBNRU5VX0lORk8gICAgICAgICAgICAgICAgICAgICImT20gTm90ZXNibG9rLi4uIgojZGVmaW5lIE1FTlVfSU5GT19MSUNFTlNFICAgICAgICAgICAgIiZMaWNlbnMiCiNkZWZpbmUgTUVOVV9JTkZPX05PX1dBUlJBTlRZICAgICAgICAiJk5PIFdBUlJBTlRZIgojZGVmaW5lIE1FTlVfSU5GT19BQk9VVF9XSU5FICAgICAgICAgIiZPbSBXSU5FIgoKLyogRGlhbG9ncyAqLwojZGVmaW5lIERJQUxPR19PSyAgICAgICAgICAgICAgICAgICAgIk9LIgojZGVmaW5lIERJQUxPR19DQU5DRUwgICAgICAgICAgICAgICAgIkFubnVsbGVyIgojZGVmaW5lIERJQUxPR19CUk9XU0UgICAgICAgICAgICAgICAgIiZHZW5uZW1zZS4uLiIKI2RlZmluZSBESUFMT0dfSEVMUCAgICAgICAgICAgICAgICAgICImSGrmbHAiCgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfQ0FQVElPTiAgICAgIlNpZGVvcHPmdG5pbmciCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9IRUFEICAgICAgICAiJlNpZGVob3ZlZDoiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9UQUlMICAgICAgICAiU2lkZSZmb2Q6IgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfTUFSR0lOICAgICAgIk1hcmdlbmVyOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX0xFRlQgICAgICAgICImVmVuc3RyZToiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9SSUdIVCAgICAgICAiJkj4anJlOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX1RPUCAgICAgICAgICImVG9wOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX0JPVFRPTSAgICAgICImQnVuZDoiCgoKLyogU3RyaW5ncyAqLwojZGVmaW5lIFNUUklOR19OT1RFUEFEICAgICAgICAgICAgICAgIk5vdGVzYmxvayIKI2RlZmluZSBTVFJJTkdfRVJST1IgICAgICAgICAgICAgICAgICJGRUpMIgojZGVmaW5lIFNUUklOR19XQVJOSU5HICAgICAgICAgICAgICAgIkFEVkFSU0VMIgojZGVmaW5lIFNUUklOR19JTkZPICAgICAgICAgICAgICAgICAgIkluZm9ybWF0aW9uIgoKI2RlZmluZSBTVFJJTkdfVU5USVRMRUQgICAgICAgICAgICAgICIoaWtrZS1uYXZuZ2l2ZXQpIgoKI2RlZmluZSBTVFJJTkdfQUxMX0ZJTEVTICAgICAgICAgICAgICJBbGxlIGZpbGVyICgqLiopIgojZGVmaW5lIFNUUklOR19URVhUX0ZJTEVTX1RYVCAgICAgICAgIlRla3N0IGZpbGVyICgqLnR4dCkiCgojZGVmaW5lIFNUUklOR19UT09MQVJHRSAgICAgICAgICJGaWxlbiAnJXMnIGVyIGZvciBzdG9yIHRpbCBOb3Rlc2Jsb2suIFwKXG5CcnVnIGVuIGFuZGVuIGVkaXRvciB0aWwgYXQgcmVkaWdlcmUgZmlsZW4uIgoKI2RlZmluZSBTVFJJTkdfTk9URVhUICAgICAgICAgICAiRHUgaGFyIGlra2Ugc2tyZXZldCBub2dldCB0ZWtzdC4gXApcblNrcml2IG5vZ2V0IHRla3N0LCBvZyBwcvh2IHPlIGlnZW4iCgojZGVmaW5lIFNUUklOR19OT1RGT1VORCAgICAgICAgICJLYW4gaWtrZSBmaW5kZSAnJXMnLiIKCiNkZWZpbmUgU1RSSU5HX09VVF9PRl9NRU1PUlkgICAgIkRlciBlciBpa2tlIG5vayBodWtvbW1lbHNlIHRpbCBhdCB1ZGb4cmUgXApkZW5uZSBvcGVyYXRpb24uIFxuQWZzbHV0IGV0IGVsbGVyIGZsZXJlIGFrdGl2ZSBwcm9ncmFtbWVyIGZvciBhdCBmcmln+HJlIFwKaHVrb21tZWxzZSwgb2cgcHL4diBz5SBpZ2VuLiIKCiNpbmNsdWRlICJub3RlcGFkLnJjIgoKCgo=