LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAxOTk2IFVscmljaCBTY2htaWQKICogRnJlbmNoIEZyLnJjIGJ5IFBhYmxvIFNhcmF0eGFnYSA8c3J0eGdAbGludXguY2hhbmFlLnN0YmVuLmJlPgogKi8KCiNkZWZpbmUgTEFOR1VBR0VfSUQgICAgICAgICAgICAgICAgICBGcgojZGVmaW5lIExBTkdVQUdFX05VTUJFUiAgICAgICAgICAgICAgNAojZGVmaW5lIExBTkdVQUdFX01FTlVfSVRFTSAgICAgICAgICAgIiZGcmFu52FpcyIKCi8qIE1lbnUgKi8KCiNkZWZpbmUgTUVOVV9GSUxFICAgICAgICAgICAgICAgICAgICAiJkZpY2hpZXIiCiNkZWZpbmUgTUVOVV9GSUxFX05FVyAgICAgICAgICAgICAgICAiJk5vdXZlYXUuLi4iCiNkZWZpbmUgTUVOVV9GSUxFX09QRU4gICAgICAgICAgICAgICAiTyZ1dnJpclx0RW50cullIgojZGVmaW5lIE1FTlVfRklMRV9NT1ZFICAgICAgICAgICAgICAgIiZE6XBsYWNlci4uLlx0RjciCiNkZWZpbmUgTUVOVV9GSUxFX0NPUFkgICAgICAgICAgICAgICAiJkNvcGllci4uLlx0RjgiCiNkZWZpbmUgTUVOVV9GSUxFX0RFTEVURSAgICAgICAgICAgICAiJlN1cHByaW1lclx0U3VwcHIiCiNkZWZpbmUgTUVOVV9GSUxFX0FUVFJJQlVURVMgICAgICAgICAiJlByb3Byael06XMuLi5cdEFsdCtFbnRy6WUiCiNkZWZpbmUgTUVOVV9GSUxFX0VYRUNVVEUgICAgICAgICAgICAiRSZ46WN1dGVyLi4uIgojZGVmaW5lIE1FTlVfRklMRV9FWElUICAgICAgICAgICAgICAgIiZRdWl0dGVyIFdpbmRvd3MuLi4iCgojZGVmaW5lIE1FTlVfT1BUSU9OUyAgICAgICAgICAgICAgICAgIiZPcHRpb25zIgojZGVmaW5lIE1FTlVfT1BUSU9OU19BVVRPX0FSUkFOR0UgICAgIlLpb3JnJmFuaXNhdGlvbiBhdXRvbWF0aXF1ZSIKI2RlZmluZSBNRU5VX09QVElPTlNfTUlOX09OX1JVTiAgICAgICImUulkdWlyZSDgIGwndXRpbGlzYXRpb24iCiNkZWZpbmUgTUVOVV9PUFRJT05TX1NBVkVfU0VUVElOR1MgICAiJkVucmVnaXN0cmVyIGxhIGNvbmZpZ3VyYXRpb24gZW4gcXVpdHRhbnQiCgojZGVmaW5lIE1FTlVfV0lORE9XUyAgICAgICAgICAgICAgICAgIkYmZW7qdHJlIgojZGVmaW5lIE1FTlVfV0lORE9XU19PVkVSTEFQICAgICAgICAgIiZDYXNjYWRlXHRNYWorRjUiCiNkZWZpbmUgTUVOVV9XSU5ET1dTX1NJREVfQllfU0lERSAgICAiJk1vc2HvcXVlXHRNYWorRjQiCiNkZWZpbmUgTUVOVV9XSU5ET1dTX0FSUkFOR0UgICAgICAgICAiJlLpb3JnYW5pc2VyIGxlcyBpY/RuZXMiCgojZGVmaW5lIE1FTlVfTEFOR1VBR0UgICAgICAgICAgICAgICAgIiZMYW5ndWUiCgojZGVmaW5lIE1FTlVfSEVMUCAgICAgICAgICAgICAgICAgICAgIiY/IgojZGVmaW5lIE1FTlVfSEVMUF9DT05URU5UUyAgICAgICAgICAgIiZJbmRleCIKI2RlZmluZSBNRU5VX0hFTFBfU0VBUkNIICAgICAgICAgICAgICImUmVjaGVyY2hlciBsJ0FpZGUgc3VyLi4uIgojZGVmaW5lIE1FTlVfSEVMUF9IRUxQX09OX0hFTFAgICAgICAgIiZVdGlsaXNlciBsJ0FpZGUiCiNkZWZpbmUgTUVOVV9IRUxQX1RVVE9SSUFMICAgICAgICAgICAiRGlkYWN0aWNpZWwgJldpbmRvd3MiCgojZGVmaW5lIE1FTlVfSU5GTyAgICAgICAgICAgICAgICAgICAgIiZJbmZvLi4uIgojZGVmaW5lIE1FTlVfSU5GT19MSUNFTlNFICAgICAgICAgICAgIiZMaWNlbnNlIgojZGVmaW5lIE1FTlVfSU5GT19OT19XQVJSQU5UWSAgICAgICAgIiZOTyBXQVJSQU5UWSIKI2RlZmluZSBNRU5VX0lORk9fQUJPVVRfV0lORSAgICAgICAgICImQSBwcm9wb3MgZGUgV0lORSIKCi8qIERpYWxvZ3MgKi8KCiNkZWZpbmUgRElBTE9HX09LICAgICAgICAgICAgICAgICAgICAiT0siCiNkZWZpbmUgRElBTE9HX0NBTkNFTCAgICAgICAgICAgICAgICAiQW5udWxlciIKI2RlZmluZSBESUFMT0dfQlJPV1NFICAgICAgICAgICAgICAgICJQYSZyY291cmlyLi4uIgojZGVmaW5lIERJQUxPR19IRUxQICAgICAgICAgICAgICAgICAgIiZBaWRlIgoKI2RlZmluZSBESUFMT0dfTkVXX0NBUFRJT04gICAgICAgICAgICJOb3V2ZWF1IgojZGVmaW5lIERJQUxPR19ORVdfTkVXICAgICAgICAgICAgICAgIk5vdXZlYXUiCiNkZWZpbmUgRElBTE9HX05FV19HUk9VUCAgICAgICAgICAgICAiJkdyb3VwZSBkZSBwcm9ncmFtbWVzIgojZGVmaW5lIERJQUxPR19ORVdfUFJPR1JBTSAgICAgICAgICAgIiZQcm9ncmFtbWUiCgojZGVmaW5lIERJQUxPR19NT1ZFX0NBUFRJT04gICAgICAgICAgIkTpcGxhY2VyIHVuIHByb2dyYW1tZSIKI2RlZmluZSBESUFMT0dfTU9WRV9QUk9HUkFNICAgICAgICAgICJE6XBsYWNlciBsZSBwcm9ncmFtbWU6IgojZGVmaW5lIERJQUxPR19NT1ZFX0ZST01fR1JPVVAgICAgICAgIkEgcGFydGlyIGR1IGdyb3VwZToiCiNkZWZpbmUgRElBTE9HX01PVkVfVE9fR1JPVVAgICAgICAgICAiJlZlcnMgbGUgZ3JvdXBlOiIKCiNkZWZpbmUgRElBTE9HX0NPUFlfQ0FQVElPTiAgICAgICAgICAiQ29waWVyIHVuIHByb2dyYW1tZSIKI2RlZmluZSBESUFMT0dfQ09QWV9QUk9HUkFNICAgICAgICAgICJDb3BpZXIgbGUgcHJvZ3JhbW1lOiIKI2RlZmluZSBESUFMT0dfQ09QWV9GUk9NX0dST1VQICAgICAgIERJQUxPR19NT1ZFX0ZST01fR1JPVVAKI2RlZmluZSBESUFMT0dfQ09QWV9UT19HUk9VUCAgICAgICAgIERJQUxPR19NT1ZFX1RPX0dST1VQCgojZGVmaW5lIERJQUxPR19HUk9VUF9DQVBUSU9OICAgICAgICAgIlByb3Byael06XMgZGUgZ3JvdXBlIgojZGVmaW5lIERJQUxPR19HUk9VUF9ERVNDUklQVElPTiAgICAgIiZOb206IgojZGVmaW5lIERJQUxPR19HUk9VUF9GSUxFICAgICAgICAgICAgIiZGaWNoaWVyIGRlIGdyb3VwZToiCgojZGVmaW5lIERJQUxPR19QUk9HUkFNX0NBUFRJT04gICAgICAgIlByb3Byael06XMgZGUgcHJvZ3JhbW1lIgojZGVmaW5lIERJQUxPR19QUk9HUkFNX0RFU0NSSVBUSU9OICAgRElBTE9HX0dST1VQX0RFU0NSSVBUSU9OCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fQ09NTUFORF9MSU5FICAiJkxpZ25lIGRlIGNvbW1hbmRlOiIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9ESVJFQ1RPUlkgICAgICJS6XBlcnRvaXJlIGRlIHRyYSZ2YWlsOiIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9IT1RfS0VZICAgICAgICImVG91Y2hlIGRlIHJhY2NvdXJjaToiCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fU1lNQk9MICAgICAgICAiUulkdWlyZSDgIGwnJnV0aWxpc2F0aW9uIgojZGVmaW5lIERJQUxPR19QUk9HUkFNX09USEVSX1NZTUJPTCAgIiZDaGFuZ2VyIGQnaWP0bmUuLi4iCgojZGVmaW5lIERJQUxPR19TWU1CT0xfQ0FQVElPTiAgICAgICAgIkNoYW5nZXIgZCdpY/RuZSIKI2RlZmluZSBESUFMT0dfU1lNQk9MX0ZJTEUgICAgICAgICAgICImTm9tOiIKI2RlZmluZSBESUFMT0dfU1lNQk9MX0NVUlJFTlQgICAgICAgICJJY/RuZSBhJmN0dWVsbGU6IgoKI2RlZmluZSBESUFMT0dfRVhFQ1VURV9DQVBUSU9OICAgICAgICJFeOljdXRlciIKI2RlZmluZSBESUFMT0dfRVhFQ1VURV9DT01NQU5EX0xJTkUgIERJQUxPR19QUk9HUkFNX0NPTU1BTkRfTElORQojZGVmaW5lIERJQUxPR19FWEVDVVRFX1NZTUJPTCAgICAgICAgRElBTE9HX1BST0dSQU1fU1lNQk9MCgoKLyogU3RyaW5ncyAqLwoKI2RlZmluZSBTVFJJTkdfUFJPR1JBTV9NQU5BR0VSICAgICAgICAgICAgIkdlc3Rpb25haXJlIGRlIHByb2dyYW1tZXMiCiNkZWZpbmUgU1RSSU5HX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICJFUlJFVVIiCiNkZWZpbmUgU1RSSU5HX1dBUk5JTkcgICAgICAgICAgICAgICAgICAgICJXQVJOSU5HIgojZGVmaW5lIFNUUklOR19JTkZPICAgICAgICAgICAgICAgICAgICAgICAiSW5mb3JtYXRpb24iCiNkZWZpbmUgU1RSSU5HX0RFTEVURSAgICAgICAgICAgICAgICAgICAgICJTdXBwcmltZXIiCiNkZWZpbmUgU1RSSU5HX0RFTEVURV9HUk9VUF9zICAgICAgICAgICAgICJWb3VsZXotdm91cyBzdXBwcmltZXIgbGUgZ3JvdXBlICclcyc/IgojZGVmaW5lIFNUUklOR19ERUxFVEVfUFJPR1JBTV9zICAgICAgICAgICAiVm91bGV6LXZvdXMgc3VwcHJpbWVyIGxlIHByb2dyYW1tZSAnJXMnPyIKI2RlZmluZSBTVFJJTkdfTk9UX0lNUExFTUVOVEVEICAgICAgICAgICAgIk5vbiBpbXBsZW1lbnTpIgojZGVmaW5lIFNUUklOR19GSUxFX1JFQURfRVJST1JfcyAgICAgICAgICAiSW1wb3NzaWJsZSBkJ291dnJpciAnJXMnLiIKI2RlZmluZSBTVFJJTkdfRklMRV9XUklURV9FUlJPUl9zICAgICAgICAgIkltcG9zc2libGUgZCdlbnJlZ2lzdHJlciAnJXMnLiIKCiNkZWZpbmUgU1RSSU5HX0dSUEZJTEVfUkVBRF9FUlJPUl9zICAgICAgICJcCkltcG9zc2libGUgZCdvdXZyaXIgbGUgZ3JvdXBlICclcycuXG5cClZvdWxlei12b3VzIHF1ZSBsZSBHZXN0aW9ubmFpcmUgZGUgcHJvZ3JhbW1lcyBlc3NhaWVcblwKZGUgbCdvdXZyaXIgZGFucyBsZXMgcHJvY2hhaW5lcyBzZXNzaW9ucz8iCgojZGVmaW5lIFNUUklOR19PVVRfT0ZfTUVNT1JZICAgICAgICAgICAgICAiTeltb2lyZSBpbnN1ZmZpc2FudGUuIgojZGVmaW5lIFNUUklOR19XSU5IRUxQX0VSUk9SICAgICAgICAgICAgICAiSW1wb3NzaWJsZSBkJ2FmZmljaGVyIGwnQWlkZS4iCiNkZWZpbmUgU1RSSU5HX1VOS05PV05fRkVBVFVSRV9zICAgICAgICAgICJDYXJhY3RlcmlzdGlxdWUgaW5jb25udWUgZGFucyAlcyIKI2RlZmluZSBTVFJJTkdfRklMRV9OT1RfT1ZFUldSSVRURU5fcyAgICAgIkxlIGZpY2hpZXIgYCVzJyBleGlzdGUuIE5vbiDpY3Jhc+kuIgojZGVmaW5lIFNUUklOR19TQVZFX0dST1VQX0FTX3MgICAgICAgICAgICAiR3JvdXBlIHNhdXbpIHNvdXMgYCVzJyBwb3VyIOl2aXRlciBsJ+ljcmFzZW1lbnQgZHUgZmljaGllciBvcmlnaW5hbC4iCgojZGVmaW5lIFNUUklOR19OT19IT1RfS0VZICAgICAgICAgICAgICAgICAiQXVjdW4iCgojZGVmaW5lIFNUUklOR19BTExfRklMRVMgICAgICAgICAgICAgICAgICAiVG91dCBmaWNoaWVyICgqLiopIgojZGVmaW5lIFNUUklOR19QUk9HUkFNUyAgICAgICAgICAgICAgICAgICAiUHJvZ3JhbW1lcyIKI2RlZmluZSBTVFJJTkdfTElCUkFSSUVTX0RMTCAgICAgICAgICAgICAgIkJpYmxpb3Ro6HF1ZXMgKCouZGxsKSIKI2RlZmluZSBTVFJJTkdfU1lNQk9MX0ZJTEVTICAgICAgICAgICAgICAgIklj9G5lcyIKI2RlZmluZSBTVFJJTkdfU1lNQk9MU19JQ08gICAgICAgICAgICAgICAgIklj9G5lcyAoKi5pY28pIgoKI2luY2x1ZGUgIlh4LnJjIgo=