LyoKICogIE5vdGVwYWQgKEVuZ2xpc2ggcmVzb3VyY2VzKQogKgogKiAgQ29weXJpZ2h0IDE5OTcsOTggTWFyY2VsIEJhdXIgPG1iYXVyQGcyNi5ldGh6LmNoPgogKiAgUHJvb2ZyZWFkIDE5OTggYnkgRGF2aWQgTGVlIExhbWJlcnQgPGxhbWJlcjQ1QGVnci5tc3UuZWR1PgogKi8KCiNkZWZpbmUgTEFOR1VBR0VfSUQgICAgICAgICAgICAgICAgICAgICBFcwojZGVmaW5lIExBTkdVQUdFX05VTUJFUiAgICAgICAgICAgICAgICAgZAojZGVmaW5lIExBTkdVQUdFX01FTlVfSVRFTSAgICAgICAgICAgICAgIkNhc3RlbGxhbm8iCgoKLyogTWVudSAqLwoKI2RlZmluZSBNRU5VX0ZJTEUgICAgICAgICAgICAgICAgICAgICAgICImQXJjaGl2byIKI2RlZmluZSBNRU5VX0ZJTEVfTkVXICAgICAgICAgICAgICAgICAgICImTnVldm8uLi4iCiNkZWZpbmUgTUVOVV9GSUxFX09QRU4gICAgICAgICAgICAgICAgICAiQSZicmlyIgojZGVmaW5lIE1FTlVfRklMRV9TQVZFICAgICAgICAgICAgICAgICAgIiZHdWFyZGFyIgojZGVmaW5lIE1FTlVfRklMRV9TQVZFQVMgICAgICAgICAgICAgICAgIkd1YXJkYXIgJmNvbW8uLi4iCiNkZWZpbmUgTUVOVV9GSUxFX1BSSU5UICAgICAgICAgICAgICAgICAiJkltcHJpbWlyIgojZGVmaW5lIE1FTlVfRklMRV9QQUdFU0VUVVAgICAgICAgICAgICAgIkFqdXN0ZSAmcOFnaW5hLi4uIgojZGVmaW5lIE1FTlVfRklMRV9QUklOVFNFVFVQICAgICAgICAgICAgIiZDb25maWd1cmFjafNuIGltcHJlc29yYS4uLiIKI2RlZmluZSBNRU5VX0ZJTEVfRVhJVCAgICAgICAgICAgICAgICAgICImU2FsaXIiCgojZGVmaW5lIE1FTlVfRURJVCAgICAgICAgICAgICAgICAgICAgICAgIiZFZGl0YXIiCiNkZWZpbmUgTUVOVV9FRElUX1VORE8gICAgICAgICAgICAgICAgICAiJlVuZG9cdEN0cmwrWiIKI2RlZmluZSBNRU5VX0VESVRfQ1VUICAgICAgICAgICAgICAgICAgICJDb3ImdGFyXHRDdHJsK1giCiNkZWZpbmUgTUVOVV9FRElUX0NPUFkgICAgICAgICAgICAgICAgICAiJkNvcGlhclx0Q3RybCtDIgojZGVmaW5lIE1FTlVfRURJVF9QQVNURSAgICAgICAgICAgICAgICAgIiZQZWdhclx0Q3RybCtWIgojZGVmaW5lIE1FTlVfRURJVF9ERUxFVEUgICAgICAgICAgICAgICAgIiZCb3JyYXJcdERlbCIKI2RlZmluZSBNRU5VX0VESVRfU0VMRUNUQUxMICAgICAgICAgICAgICJTZWxlY2Npb25hciB0Jm9kbyIKI2RlZmluZSBNRU5VX0VESVRfVElNRURBVEUgICAgICAgICAgICAgICImSG9yYS9GZWNoYVx0RjUiCiNkZWZpbmUgTUVOVV9FRElUX1dSQVAgICAgICAgICAgICAgICAgICAiJlZ1ZWx0YSBhIGxhIGxpbmVhIGF1dG9t4XRpY2EiCgojZGVmaW5lIE1FTlVfU0VBUkNIICAgICAgICAgICAgICAgICAgICAgIiZCdXNjYXIiCiNkZWZpbmUgTUVOVV9TRUFSQ0hfU0VBUkNIICAgICAgICAgICAgICAiQnVzY2FyLi4uIgojZGVmaW5lIE1FTlVfU0VBUkNIX05FWFQgICAgICAgICAgICAgICAgIkJ1c2NhciAmc2lxdWllbnRlXHRGMyIKCiNkZWZpbmUgTUVOVV9MQU5HVUFHRSAgICAgICAgICAgICAgICAgICAiJklkaW9tYSIKCiNkZWZpbmUgTUVOVV9IRUxQICAgICAgICAgICAgICAgICAgICAgICAiJkF5dWRhIgojZGVmaW5lIE1FTlVfSEVMUF9DT05URU5UUyAgICAgICAgICAgICAgIiZJbmRpY2UiCiNkZWZpbmUgTUVOVV9IRUxQX1NFQVJDSCAgICAgICAgICAgICAgICAiJkJ1c2Nhci4uLiIKI2RlZmluZSBNRU5VX0hFTFBfSEVMUF9PTl9IRUxQICAgICAgICAgICImQXl1ZGEgc29icmUgbGEgYXl1ZGEiCgojZGVmaW5lIE1FTlVfSU5GTyAgICAgICAgICAgICAgICAgICAgICAgIkluZiZvLi4uIgojZGVmaW5lIE1FTlVfSU5GT19MSUNFTlNFICAgICAgICAgICAgICAgIiZMaWNlbmNpYSIKI2RlZmluZSBNRU5VX0lORk9fTk9fV0FSUkFOVFkgICAgICAgICAgICJTSU4gJkdBUkFOVM1BIgojZGVmaW5lIE1FTlVfSU5GT19BQk9VVF9XSU5FICAgICAgICAgICAgIiZBY2VyY2EgZGUgV2luZSIKCgovKiBEaWFsb2dzICovCgojZGVmaW5lIERJQUxPR19PSyAgICAgICAgICAgICAgICAgICAgICAgIk9LIgojZGVmaW5lIERJQUxPR19DQU5DRUwgICAgICAgICAgICAgICAgICAgIkFudWxhciIKI2RlZmluZSBESUFMT0dfQlJPV1NFICAgICAgICAgICAgICAgICAgICImQnVzY2FyLi4uIgojZGVmaW5lIERJQUxPR19IRUxQICAgICAgICAgICAgICAgICAgICAgIiZBeXVkYSIKCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9DQVBUSU9OICAgICAgICAiJkFqdXN0ZSBkZSBw4WdpbmEiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9IRUFEICAgICAgICAgICAiJkNhYmVjZXJhOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX1RBSUwgICAgICAgICAgICImUGnpOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX01BUkdJTiAgICAgICAgICImTWFyZ2VuZXM6IgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfTEVGVCAgICAgICAgICAgIiZJenF1aWVyZGE6IgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfUklHSFQgICAgICAgICAgIiZEZXJlY2hhOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX1RPUCAgICAgICAgICAgICJBJnJyaWJhOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX0JPVFRPTSAgICAgICAgICJBYmEmam86IgoKCi8qIFN0cmluZ3MgKi8KCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9IRUFERVJWQUxVRSAgICAiJm4iICAgICAgICAvKiBGSVhNRSAqLwojZGVmaW5lIFNUUklOR19QQUdFU0VUVVBfRk9PVEVSVkFMVUUgICAgIlDhZ2luYSAmcyIgICAvKiBGSVhNRSAqLwojZGVmaW5lIFNUUklOR19QQUdFU0VUVVBfTEVGVFZBTFVFICAgICAgIjIwIG1tIiAgICAgLyogRklYTUUgKi8KI2RlZmluZSBTVFJJTkdfUEFHRVNFVFVQX1JJR0hUVkFMVUUgICAgICIyMCBtbSIgICAgIC8qIEZJWE1FICovCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9UT1BWQUxVRSAgICAgICAiMjUgbW0iICAgICAvKiBGSVhNRSAqLwojZGVmaW5lIFNUUklOR19QQUdFU0VUVVBfQk9UVE9NVkFMVUUgICAgIjI1IG1tIiAgICAgLyogRklYTUUgKi8KCiNkZWZpbmUgU1RSSU5HX05PVEVQQUQgICAgICAgICAgICAgICAgICAiQmxvYyBkZSBOb3RhcyIKI2RlZmluZSBTVFJJTkdfRVJST1IgICAgICAgICAgICAgICAgICAgICJFUlJPUiIKI2RlZmluZSBTVFJJTkdfV0FSTklORyAgICAgICAgICAgICAgICAgICJDVUlEQURPIgojZGVmaW5lIFNUUklOR19JTkZPICAgICAgICAgICAgICAgICAgICAgIkluZm9ybWFjafNuIgoKI2RlZmluZSBTVFJJTkdfVU5USVRMRUQgICAgICAgICAgICAgICAgICIoc2luIHTtdHVsbykiCgojZGVmaW5lIFNUUklOR19BTExfRklMRVMgICAgICAgICAgICAgICAgIlRvZG9zIGxvcyBhcmNoaXZvcyAoKi4qKSIKI2RlZmluZSBTVFJJTkdfVEVYVF9GSUxFU19UWFQgICAgICAgICAgICJBcmNodmlzbyBkZSB0ZXh0byAoKi50eHQpIgoKI2RlZmluZSBTVFJJTkdfVE9PTEFSR0UgICAgICAgICAiRWwgYXJjaGl2byAnJXMnIGVzIGRlbWFzaWFkbyBncmFuZGUgcGFyYSBlbCBibG9jIGRlIG5vdGFzLlxuIFwKVXNlIG90cm8gZWRpdG9yLiIKCiNkZWZpbmUgU1RSSU5HX05PVEVYVCAgICAgICAgICAgIlZkLiBubyBlc2NyaWJp8yBuYWRhLiBcClxuUG9yIGZhdm9yIGVzY3JpYmEgYWxnbyB5IHBydWViZSBkZSB2dWVsdGEiCgojZGVmaW5lIFNUUklOR19OT1RGT1VORCAgICAgICAgICJubyBzZSBlbmNvbnRy8yAnJXMnLiIKCiNkZWZpbmUgU1RSSU5HX09VVF9PRl9NRU1PUlkgICAgIk5vIGhheSBzdWZpY2llbnRlIG1lbW9yaWEgcGFyYSB0ZXJtaW5hciBcCmVzdGEgdGFyZWEuIFxuQ2llcnJlIHVuYSBvIG3hcyBhcGxpY2FjaW9uZXMgcGFyYSBhdW1lbnRhciBsYSBjYW50aWRhZCBcbmRlIFwKbWVtb3JpYSBsaWJyZS4iCgojaW5jbHVkZSAibm90ZXBhZC5yYyIK