LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAxOTk2IFVscmljaCBTY2htaWQKICoKICogUnVtYW50c2NoIExhZGluIChWYWxsYWRlcikgYWRkZWQgYnkgTWFyY2VsIEJhdXIgPG1iYXVyQGcyNi5ldGh6LmNoPgogKgogKi8KCiNkZWZpbmUgTEFOR1VBR0VfSUQgICAgICAgICAgICAgICAgICBWYQojZGVmaW5lIExBTkdVQUdFX05VTUJFUiAgICAgICAgICAgICAgQwojZGVmaW5lIExBTkdVQUdFX01FTlVfSVRFTSAgICAgICAgICAgIiZWYWxsYWRlciIKCi8qIE1lbnUgKi8KCiNkZWZpbmUgTUVOVV9GSUxFICAgICAgICAgICAgICAgICAgICAiJkRhdG90ZWNhIgojZGVmaW5lIE1FTlVfRklMRV9ORVcgICAgICAgICAgICAgICAgIiZOb3V2Li4uIgojZGVmaW5lIE1FTlVfRklMRV9PUEVOICAgICAgICAgICAgICAgIiZSaXZpclx0RW5kYXRheml1biIKI2RlZmluZSBNRU5VX0ZJTEVfTU9WRSAgICAgICAgICAgICAgICImU3Bvc3Rhci4uLlx0RjciCiNkZWZpbmUgTUVOVV9GSUxFX0NPUFkgICAgICAgICAgICAgICAiJkNvcGNoYXIuLi5cdEY4IgojZGVmaW5lIE1FTlVfRklMRV9ERUxFVEUgICAgICAgICAgICAgIlMmdPxkZXJcdERlbCIKI2RlZmluZSBNRU5VX0ZJTEVfQVRUUklCVVRFUyAgICAgICAgICImUGFydGljdWxhcml0YWRzLi4uXHRBbHQrRW5kYXRheml1biIKI2RlZmluZSBNRU5VX0ZJTEVfRVhFQ1VURSAgICAgICAgICAgICImRXNlZ25pci4uLiIKI2RlZmluZSBNRU5VX0ZJTEVfRVhJVCAgICAgICAgICAgICAgICImRmluaXIgV0lORS4uLiIKCiNkZWZpbmUgTUVOVV9PUFRJT05TICAgICAgICAgICAgICAgICAiJk9weml1bnMiCiNkZWZpbmUgTUVOVV9PUFRJT05TX0FVVE9fQVJSQU5HRSAgICAiT3JkaW5hciAmYXV0b21hdGljYW1haW5nIgojZGVmaW5lIE1FTlVfT1BUSU9OU19NSU5fT05fUlVOICAgICAgIiZTaW1ib2wgZGF2bydsIGN1bW1haW56YW1haW50IGRhbCBwcm9ncmFtIgojZGVmaW5lIE1FTlVfT1BUSU9OU19TQVZFX1NFVFRJTkdTICAgIkFyY3VuYXIgY29uemVweml1bnMgYSBsYSAmZmluaXNjaGluYSIKCiNkZWZpbmUgTUVOVV9XSU5ET1dTICAgICAgICAgICAgICAgICAiJkZhbmVzdHJhIgojZGVmaW5lIE1FTlVfV0lORE9XU19PVkVSTEFQICAgICAgICAgIiZjcnVzY2hvbmRcdFNoaWZ0K0Y1IgojZGVmaW5lIE1FTlVfV0lORE9XU19TSURFX0JZX1NJREUgICAgIvxuICZkYXNwZXIgbCdvdGVyXHRTaGlmdCtGNCIKI2RlZmluZSBNRU5VX1dJTkRPV1NfQVJSQU5HRSAgICAgICAgICImb3JkaW5hciBpbHMgc2ltYm9scyIKCiNkZWZpbmUgTUVOVV9MQU5HVUFHRSAgICAgICAgICAgICAgICAiJkxpbmd1biIKCiNkZWZpbmUgTUVOVV9IRUxQICAgICAgICAgICAgICAgICAgICAiJkFn/GQiCiNkZWZpbmUgTUVOVV9IRUxQX0NPTlRFTlRTICAgICAgICAgICAiJkN1bnRnbvwiCiNkZWZpbmUgTUVOVV9IRUxQX1NFQVJDSCAgICAgICAgICAgICAiJlRzY2hlcmNoYXIuLi4iCiNkZWZpbmUgTUVOVV9IRUxQX0hFTFBfT05fSEVMUCAgICAgICAiJkRvdXZyYXIgbCdhZ/xkIgojZGVmaW5lIE1FTlVfSEVMUF9UVVRPUklBTCAgICAgICAgICAgIiZQcm9ncmFtIGQnaW1wcmVuZGVyIgoKI2RlZmluZSBNRU5VX0lORk8gICAgICAgICAgICAgICAgICAgICJJbmYmb3JtYXppdW4uLi4iCiNkZWZpbmUgTUVOVV9JTkZPX0xJQ0VOU0UgICAgICAgICAgICAiJkxpY2V6YSIKI2RlZmluZSBNRU5VX0lORk9fTk9fV0FSUkFOVFkgICAgICAgICImSU5HVUVOQSBHQVJBTlpJQSIKI2RlZmluZSBNRU5VX0lORk9fQUJPVVRfV0lORSAgICAgICAgICImRGF2YXJ0IFdJTkUiCgovKiBEaWFsb2dzICovCgojZGVmaW5lIERJQUxPR19PSyAgICAgICAgICAgICAgICAgICAgIk9LIgojZGVmaW5lIERJQUxPR19DQU5DRUwgICAgICAgICAgICAgICAgIkZhciBnafYgcXVpbnQiCiNkZWZpbmUgRElBTE9HX0JST1dTRSAgICAgICAgICAgICAgICAiJlRzY2hlcmNoYXIgdHJhcy4uLiIKI2RlZmluZSBESUFMT0dfSEVMUCAgICAgICAgICAgICAgICAgICImQWf8ZCIKCiNkZWZpbmUgRElBTE9HX05FV19DQVBUSU9OICAgICAgICAgICAiTm91diBwcm9nZXQgZGEgcHJvZ3JhbSIKI2RlZmluZSBESUFMT0dfTkVXX05FVyAgICAgICAgICAgICAgICJOb3V2IgojZGVmaW5lIERJQUxPR19ORVdfR1JPVVAgICAgICAgICAgICAgIiZHcnVwcGEgZGEgcHJvZ3JhbXMiCiNkZWZpbmUgRElBTE9HX05FV19QUk9HUkFNICAgICAgICAgICAiJlByb2dyYW0iCgojZGVmaW5lIERJQUxPR19NT1ZFX0NBUFRJT04gICAgICAgICAgIlNwb3N0YXIgaWwgcHJvZ3JhbSIKI2RlZmluZSBESUFMT0dfTU9WRV9QUk9HUkFNICAgICAgICAgICJTcG9zdGFyIGlsIHByb2dyYW06IgojZGVmaW5lIERJQUxPR19NT1ZFX0ZST01fR1JPVVAgICAgICAgIiZEYSBsYSBncnVwcGE6IgojZGVmaW5lIERJQUxPR19NT1ZFX1RPX0dST1VQICAgICAgICAgIiZJbiBncnVwcGE6IgoKI2RlZmluZSBESUFMT0dfQ09QWV9DQVBUSU9OICAgICAgICAgICJDb3BjaGFyIGlsIHByb2dyYW0iCiNkZWZpbmUgRElBTE9HX0NPUFlfUFJPR1JBTSAgICAgICAgICAiQ29wY2hhciBpbCBwcm9ncmFtOiIKI2RlZmluZSBESUFMT0dfQ09QWV9GUk9NX0dST1VQICAgICAgIERJQUxPR19NT1ZFX0ZST01fR1JPVVAKI2RlZmluZSBESUFMT0dfQ09QWV9UT19HUk9VUCAgICAgICAgIERJQUxPR19NT1ZFX1RPX0dST1VQCgojZGVmaW5lIERJQUxPR19HUk9VUF9DQVBUSU9OICAgICAgICAgIlBhcnRpY3VsYXJpdGFkcyBkYSBsYXMgZ3J1cHBhcyIKI2RlZmluZSBESUFMT0dfR1JPVVBfREVTQ1JJUFRJT04gICAgICImRGVzY3JpcHppdW46IgojZGVmaW5lIERJQUxPR19HUk9VUF9GSUxFICAgICAgICAgICAgIkRhdG8mdGVjYToiCgojZGVmaW5lIERJQUxPR19QUk9HUkFNX0NBUFRJT04gICAgICAgIlBhcnRpY3VsYXJpdGFkcyBkYWwgcHJvZ3JhbSIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9ERVNDUklQVElPTiAgIERJQUxPR19HUk9VUF9ERVNDUklQVElPTgojZGVmaW5lIERJQUxPR19QUk9HUkFNX0NPTU1BTkRfTElORSAgIiZMaW5naWEgZGEgY3Vtb25kczoiCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fRElSRUNUT1JZICAgICAiJlJlZ2lzdGVyIGRhIGxhdnVvcnM6IgojZGVmaW5lIERJQUxPR19QUk9HUkFNX0hPVF9LRVkgICAgICAgIiZDdW1iaW5heml1bjoiCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fU1lNQk9MICAgICAgICAiU2NvIFNpJm1ib2wiCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fT1RIRVJfU1lNQk9MICAiT3RlciAmU2ltYm9sLi4uIgoKI2RlZmluZSBESUFMT0dfU1lNQk9MX0NBUFRJT04gICAgICAgICJUc2NoZXJuZXIgU2ltYm9sIgojZGVmaW5lIERJQUxPR19TWU1CT0xfRklMRSAgICAgICAgICAgIiZOb20gZGEgbGEgRGF0b3RlY2E6IgojZGVmaW5lIERJQUxPR19TWU1CT0xfQ1VSUkVOVCAgICAgICAgIlNpbWJvbCAmYWN0dWFsOiIKCiNkZWZpbmUgRElBTE9HX0VYRUNVVEVfQ0FQVElPTiAgICAgICAiRXNlZ3VpciBwcm9ncmFtIgojZGVmaW5lIERJQUxPR19FWEVDVVRFX0NPTU1BTkRfTElORSAgRElBTE9HX1BST0dSQU1fQ09NTUFORF9MSU5FCiNkZWZpbmUgRElBTE9HX0VYRUNVVEVfU1lNQk9MICAgICAgICBESUFMT0dfUFJPR1JBTV9TWU1CT0wKCi8qIFN0cmluZ3MgKi8KCiNkZWZpbmUgU1RSSU5HX1BST0dSQU1fTUFOQUdFUiAgICAgICAgICAgICJNYW5hZ2VyIGRhIHByb2dyYW1zIgojZGVmaW5lIFNUUklOR19FUlJPUiAgICAgICAgICAgICAgICAgICAgICAiU0JBR0wiCiNkZWZpbmUgU1RSSU5HX1dBUk5JTkcgICAgICAgICAgICAgICAgICAgICJBVFRFTlRJVU4iCiNkZWZpbmUgU1RSSU5HX0lORk8gICAgICAgICAgICAgICAgICAgICAgICJJbmZ1b3JtYXppdW4iCiNkZWZpbmUgU1RSSU5HX0RFTEVURSAgICAgICAgICAgICAgICAgICAgICJTdPxkZXIiCiNkZWZpbmUgU1RSSU5HX0RFTEVURV9HUk9VUF9zICAgICAgICAgICAgICJTdPxkZXIgbGEgZ3J1cHBhIGRhIHByb2dyYW1zIGAlcycgPyIKI2RlZmluZSBTVFJJTkdfREVMRVRFX1BST0dSQU1fcyAgICAgICAgICAgIlN0/GRlciBpbCBwcm9ncmFtIGAlcycgPyIKI2RlZmluZSBTVFJJTkdfTk9UX0lNUExFTUVOVEVEICAgICAgICAgICAgIk5hIGltcGxlbWVudGEiCiNkZWZpbmUgU1RSSU5HX0ZJTEVfUkVBRF9FUlJPUl9zICAgICAgICAgICJTYmFnbCBjdW4gbGVnZXIgYCVzJyIKI2RlZmluZSBTVFJJTkdfRklMRV9XUklURV9FUlJPUl9zICAgICAgICAgIlNiYWdsIGN1biBzY3JpdmVyIGAlcyciCgojZGVmaW5lIFNUUklOR19HUlBGSUxFX1JFQURfRVJST1JfcyAgICAgICAiXApMYSBkYXRvdGVjYSBkYSBncnVwcGFzIGRhIHByb2dyYW0gJyVzJyBudSBwbyBnbmlyIHJpdmlkYS5cblwKRXNhIGRhIHByb3VhciBpbmF2YW50IGRhIGNoYXJnaWFyIHF1aXN0YVxuIgoKI2RlZmluZSBTVFJJTkdfT1VUX09GX01FTU9SWSAgICAgICAgICAgICAgIk1hc3NhIHBhY2EgbWVtb3JpYSIKI2RlZmluZSBTVFJJTkdfV0lOSEVMUF9FUlJPUiAgICAgICAgICAgICAgIkluZ/xuIGFn/GQgYSBkaXNwb3Npeml1biIKI2RlZmluZSBTVFJJTkdfVU5LTk9XTl9GRUFUVVJFX3MgICAgICAgICAgIkZ1bmN6aXVuIGluY3VudHNjaGFpbnRhIGluICVzIgojZGVmaW5lIFNUUklOR19GSUxFX05PVF9PVkVSV1JJVFRFTl9zICAgICAiRGF0b3RlY2EgYCVzJyBleGlzdGEgZmluZ2ngLiBFbGxhIG51IHZlZ24uIgojZGVmaW5lIFNUUklOR19TQVZFX0dST1VQX0FTX3MgICAgICAgICAgICAiXApMYSBncnVwcGEgdmVnbiBzZ/xyYWRhIGN1bCBub20gJyVzJyBwZXIgZXZpdGFyIFwKY2hhIGxhIGRhdG90ZWNhIG9yaWdpbmFsYSB2ZWduYSBzdXJzY3JpdHRhLiIKCiNkZWZpbmUgU1RSSU5HX05PX0hPVF9LRVkgICAgICAgICAgICAgICAgICJJbmdp/G5hIgoKI2RlZmluZSBTVFJJTkdfQUxMX0ZJTEVTICAgICAgICAgICAgICAgICAgIlR1b3QgbGFzIGRhdG90ZWNhcyAoKi4qKSIKI2RlZmluZSBTVFJJTkdfUFJPR1JBTVMgICAgICAgICAgICAgICAgICAgIlByb2dyYW1zIgojZGVmaW5lIFNUUklOR19MSUJSQVJJRVNfRExMICAgICAgICAgICAgICAiQmlibGlvdGVjYXMgKCouZGxsKSIKI2RlZmluZSBTVFJJTkdfU1lNQk9MX0ZJTEVTICAgICAgICAgICAgICAgIkRhdG90ZWNhcyBkYSBzaW1ib2xzIgojZGVmaW5lIFNUUklOR19TWU1CT0xTX0lDTyAgICAgICAgICAgICAgICAiU2ltYm9scyAoKi5pY28pIgoKI2luY2x1ZGUgIlh4LnJjIgo=