ZGlmZiAtLWdpdCBhL3N5cy9tYWdpZXIuaCBiL3N5cy9tYWdpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2NkOThmCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL21hZ2llci5oCkBAIC0wLDAgKzEsMjI1IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gbWFnaWVyLmggLS0gTWFnaWVyZXJ3ZWl0ZXJ1bmcgZGVyIFNoZWxsCisvLworLy8gJElkOiBtYWdpZXIuaCA5NTUzIDIwMTYtMDUtMDMgMjA6MjI6NDdaIFplc3N0cmEgJAorCisjaWZuZGVmIF9NQUdJRVJfSF8KKyNkZWZpbmUgX01BR0lFUl9IXworCisjZGVmaW5lIFNIRUxMREVCVUdHRVIgInplc3N0cmEiCisKKyNkZWZpbmUgTUFYX0FSUkFZX1NJWkUgICAzMDAwIC8vIE1VU1MgRUlHRU5UTElDSCBOQUNIIC9zeXMvY29uZmlnLmggb2RlciBzbworCisjZGVmaW5lIEVSUk9SKG1zZywgYXJnLCByZXMpICAgKHByaW50Zihtc2csIGFyZykscmVzKQorCisjZGVmaW5lIE5PX1JFQUQgICAgICAgICAiJXM6IEtlaW5lIExlc2VyZWNodGUhXG4iCisjZGVmaW5lIE5PX1dSSVRFICAgICAgICAiJXM6IEtlaW5lIFNjaHJlaWJyZWNodGUhXG4iCisjZGVmaW5lIERPRVNOVF9FWElTVCAgICAiJXM6IERhdGVpIGV4aXN0aWVydCBuaWNodCFcbiIKKyNkZWZpbmUgQUxSRUFEWV9FWElTVFMgICIlczogRGF0ZWkgZXhpc3RpZXJ0IHNjaG9uLlxuIgorI2RlZmluZSBOT19ESVJTICAgICAgICAgICIlcyBpc3QgZWluIFZlcnplaWNobmlzLlxuIgorI2RlZmluZSBTQU1FX0ZJTEUgICAgICAgICIlczogR2xlaWNoZXMgUXVlbGwtIHVuZCBaaWVsZmlsZTogdWViZXJnYW5nZW4uXG4iCisjZGVmaW5lIE5PX0NSRUFURV9ESVIgICAiJXM6IFZlcnplaWNobmlzIGtvbm50ZSBuaWNodCBlcnN0ZWxsdCB3ZXJkZW4uXG4iCisjZGVmaW5lIERFU1RfSVNfRElSICAgICAiJXM6IFppZWxkYXRlaSBpc3QgZWluIFZlcnplaWNobmlzLlxuIgorI2RlZmluZSBERVNUX05PX0RFTEVURSAgIiVzOiBaaWVsZGF0ZWkga29ubnRlIG5pY2h0IGdlbG9lc2NodCB3ZXJkZW4uXG4iCisjZGVmaW5lIE5PX01PVkUgICAgICAgICAiJXM6IERhdGVpIGtvbm50ZSBuaWNodCB2ZXJzY2hvYmVuIHdlcmRlbi5cbiIKKyNkZWZpbmUgTk9fQ09QWSAgICAgICAgICIlczogRGF0ZWkga29ubnRlIG5pY2h0IGtvcGllcnQgd2VyZGVuLlxuIgorI2RlZmluZSBGSUxFX0NPUElFRCAgICAgIiVzOiBrb3BpZXJ0LlxuIgorI2RlZmluZSBESVJfQ1JFQVRFRCAgICAgIiVzOiBWZXJ6ZWljaG5pcyBlcnpldWd0LlxuIgorI2RlZmluZSBGSUxFX01PVkVEICAgICAgIiVzOiB2ZXJzY2hvYmVuLlxuIgorI2RlZmluZSBGSUxFX0RFTEVURUQgICAgIiVzIHd1cmRlIGdlbG9lc2NodC5cbiIKKyNkZWZpbmUgTk9fREVMRVRFICAgICAgICIlcyBrb25udGUgbmljaHQgZ2Vsb2VzY2h0IHdlcmRlbi5cbiIKKworI2RlZmluZSBNQVlfUkVBRCh4KSAgIGNhbGxfb3RoZXIoX19NQVNURVJfT0JKRUNUX18sInZhbGlkX3JlYWQiLHgsZ2V0dWlkKHRoaXNfb2JqZWN0KCkpKQorI2RlZmluZSBNQVlfV1JJVEUoeCkgIGNhbGxfb3RoZXIoX19NQVNURVJfT0JKRUNUX18sInZhbGlkX3dyaXRlIix4LGdldHVpZCh0aGlzX29iamVjdCgpKSkKKyNkZWZpbmUgTUFZX0RFTEVURSh4KSBjYWxsX290aGVyKF9fTUFTVEVSX09CSkVDVF9fLCJyZW1vdmVfZmlsZSIseCxnZXR1aWQodGhpc19vYmplY3QoKSkpCisKKyNkZWZpbmUgTUFYTEVOICA1MDAwMAorCisjZGVmaW5lIFBfVkFSSUFCTEVTICJ2YXJpYWJsZXMiCisKKyNkZWZpbmUgTUFOX09QVFMgICAibXJpIgorI2RlZmluZSBNQU5fTSAgICAgICAgICAgIDEgICAgICAgICAgIC8vIE1hdGNoZW4gZGVzIEJlZ3JpZmZzCisjZGVmaW5lIE1BTl9SICAgICAgICAgICAgMiAgICAgICAgICAgLy8gUmVnZXhwLU1hdGNoZW4KKyNkZWZpbmUgTUFOX0kgICAgICAgICAgICA0ICAgICAgICAgICAvLyBJbnRlcmFrdGl2ZSBIaWxmZSAoZGVha3RpdmllcnQpCisKKyNkZWZpbmUgTUtESVJfT1BUUyAidnJwIgorI2RlZmluZSBNS0RJUl9WICAgICAgICAgIDEgICAgICAgICAgIC8vIFZlcmJvc2U6IEF1c2dlYmVuLCB3YXMgZ2VtYWNodCB3aXJkCisjZGVmaW5lIE1LRElSX1IgICAgICAgICAgMiAgICAgICAgICAgLy8gUmVrdXJzaXYgYWxsZSBob2VoZXJlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZlcnplaWNobmlzc2UgZXJzdGVsbGVuCisjZGVmaW5lIE1LRElSX1AgICAgICAgICAgMiAgICAgICAgICAgLy8gZGFzIGdsZWljaGUgd2llIE1LRElSX1IKKworI2RlZmluZSBSTURJUl9PUFRTICJ2IgorI2RlZmluZSBSTURJUl9WICAgICAgICAgIDEgICAgICAgICAgIC8vIFZlcmJvc2U6IEF1c2dlYmVuLCB3YXMgZ2VtYWNodCB3aXJkCisKKyNkZWZpbmUgUk1fT1BUUyAgICJ2cm1pIgorI2RlZmluZSBSTV9WICAgICAgICAgICAgMSAgICAgICAgICAgIC8vIFZlcmJvc2U6IEF1c2dlYmVuLCB3YXMgZ2VtYWNodCB3aXJkCisjZGVmaW5lIFJNX1IgICAgICAgICAgICAyICAgICAgICAgICAgLy8gVmVyemVpY2huaXNzZSByZWt1cnNpdiBsb2VzY2hlbgorI2RlZmluZSBSTV9NICAgICAgICAgICAgNCAgICAgICAgICAgIC8vIERhdGVpTUFTS0UgYmVhY2h0ZW4KKyNkZWZpbmUgUk1fSSAgICAgICAgICAgIDggICAgICAgICAgICAvLyBJbnRlcmFrdGl2IGxvZXNjaGVuIChpbW1lciBmcmFnZW4pCisKKyNkZWZpbmUgVVBEX09QVFMgICJhZmlscm1idmNkaHNDIgorI2RlZmluZSBVUERfQSAgICAgICAgICAgIDEgICAgICAgICAgIC8vIEFsbGUgSW5zdGFuemVuIGJlYXJiZWl0ZW4KKyNkZWZpbmUgVVBEX0YgICAgICAgICAgICAyICAgICAgICAgICAvLyBBbGxlIEluc3RhbnplbiBmaW5kZW4gdW5kIGFuemVpZ2VuCisjZGVmaW5lIFVQRF9JICAgICAgICAgICAgNCAgICAgICAgICAgLy8gR2VlcmJ0ZSBLbGFzc2VuIGFrdHVhbGlzaWVyZW4KKyNkZWZpbmUgVVBEX0wgICAgICAgICAgICA4ICAgICAgICAgICAvLyB6ZXJzdG9lcmVuIHVuZCBuZXUgbGFkZW4KKyNkZWZpbmUgVVBEX1IgICAgICAgICAgIDE2ICAgICAgICAgICAvLyBuZXUgbGFkZW4sIGZhbGxzIHplcnN0b2VydAorI2RlZmluZSBVUERfTSAgICAgICAgICAgMzIgICAgICAgICAgIC8vIGFsbGUgZ2VlcmJ0ZW4gS2xhc3NlbiBhdWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBha3R1YWxpdGFldCBUZXN0ZW4gdW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2dmLiBha3R1YWxpc2llcmVuCisjZGVmaW5lIFVQRF9CICAgICAgICAgICA2NCAgICAgICAgICAgLy8gQmFja3RyYWNlIGJlaSBGZWhsZXJuCisjZGVmaW5lIFVQRF9WICAgICAgICAgIDEyOCAgICAgICAgICAgLy8gRXJic2NoYWZ0c2xpc3RlbiBtaXQgYXVzZ2ViZW4KKyNkZWZpbmUgVVBEX0MgICAgICAgICAgMjU2ICAgICAgICAgICAvLyBQcm9wZXJ0aWVzIGVyaGFsdGVuCisjZGVmaW5lIFVQRF9EICAgICAgICAgIDUxMiAgICAgICAgICAgLy8gT2JqZWt0aW5oYWx0IGtvbXBsZXR0IGRlc3RydWN0ZW4KKyNkZWZpbmUgVVBEX0ggICAgICAgICAxMDI0ICAgICAgICAgICAvLyBIYXJkLURlc3RydWN0IChrZWluIHJlbW92ZSgpKQorI2RlZmluZSBVUERfUyAgICAgICAgIDIwNDggICAgICAgICAgIC8vIFNpbGVudAorI2RlZmluZSBVUERfQ09ORiAgICAgIDQwOTYgICAgICAgICAgIC8vIENvbmZpZ3VyZSgpIGVyendpbmdlbiAoZC5oLiBrZWluIFVwZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZW5uIENvbmZpZ3VyZSgpIG5pY2h0IGRlZmluaWVydCBpc3QpCisjZGVmaW5lIFVQRF9MT0FEICAgICAgODE5MiAgICAgICAgICAgLy8gbGFkZW4sIGZhbGxzIG5pY2h0IGdlbGFkZW4gKG51cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludGVybiBmdWVyICdsb2FkKQorCisjZGVmaW5lIENQX09QVFMgICAgICAgICAidnJmbWkiCisjZGVmaW5lIENQX1YgICAgICAgICAgICAxICAgICAgICAgICAgLy8gVmVyYm9zZTogQXVzZ2ViZW4sIHdhcyBnZW1hY2h0IHdpcmQKKyNkZWZpbmUgQ1BfUiAgICAgICAgICAgIDIgICAgICAgICAgICAvLyBSZWt1cnNpdiBrb3BpZXJlbgorI2RlZmluZSBDUF9GICAgICAgICAgICAgNCAgICAgICAgICAgIC8vIEZvcmNlIChuaWUgZnJhZ2VuKQorI2RlZmluZSBDUF9NICAgICAgICAgICAgOCAgICAgICAgICAgIC8vIERhdGVpTUFTS0UgYmVhY2h0ZW4KKyNkZWZpbmUgQ1BfSSAgICAgICAgICAgMTYgICAgICAgICAgICAvLyBJbnRlcmFrdGl2IGtvcGllcmVuIChpbW1lciBmcmFnZW4pCisKKyNkZWZpbmUgTVZfT1BUUyAgICAgICAgICJ2cmZtaSIKKyNkZWZpbmUgTVZfViAgICAgICAgICAgIDEgICAgICAgICAgICAvLyBWZXJib3NlOiBBdXNnZWJlbiwgd2FzIGdlbWFjaHQgd2lyZAorI2RlZmluZSBNVl9SICAgICAgICAgICAgMiAgICAgICAgICAgIC8vIEltbWVyIGF1Y2ggRGF0ZWllbiBpbSBEaXIgbW92ZW4KKyNkZWZpbmUgTVZfRiAgICAgICAgICAgIDQgICAgICAgICAgICAvLyBGb3JjZSAobmllIGZyYWdlbikKKyNkZWZpbmUgTVZfTSAgICAgICAgICAgIDggICAgICAgICAgICAvLyBEYXRlaU1BU0tFIGJlYWNodGVuCisjZGVmaW5lIE1WX0kgICAgICAgICAgIDE2ICAgICAgICAgICAgLy8gSW50ZXJha3RpdiBiZXdlZ2VuIChpbW1lciBmcmFnZW4pCisKKyNkZWZpbmUgQ0RfT1BUUyAgICAgICAgICJscyIKKyNkZWZpbmUgQ0RfTCAgICAgICAgICAgIDEgICAgICAgICAgICAvLyAucmVhZG1lIGF1c2dlYmVuCisjZGVmaW5lIENEX1MgICAgICAgICAgICAyICAgICAgICAgICAgLy8gLnJlYWRtZSB1bnRlcmRydWVja2VuCisjZGVmaW5lIENEX0IgICAgICAgICAgICA0ICAgICAgICAgICAgLy8gWnVydWVjayB6dW0gbGV0enRlbiBWZXJ6ZWljaG5pcworCisjZGVmaW5lIExTX09QVFMgICAgICAgICAiYWxydHN1ZyIKKyNkZWZpbmUgTFNfQSAgICAgICAgICAgIDEgICAgICAgICAgICAvLyBBTExFIEZpbGVzIGFuemVpZ2VuCisjZGVmaW5lIExTX0wgICAgICAgICAgICAyICAgICAgICAgICAgLy8gTGFuZ2UgQXVzZ2FiZQorI2RlZmluZSBMU19SICAgICAgICAgICAgNCAgICAgICAgICAgIC8vIFJ1ZWNrd2FlcnRzIGF1c2dlYmVuCisjZGVmaW5lIExTX1QgICAgICAgICAgICA4ICAgICAgICAgICAgLy8gTmFjaCBaZWl0IG9yZG5lbgorI2RlZmluZSBMU19TICAgICAgICAgICAgMTYgICAgICAgICAgIC8vIE5hY2ggR3L232Ugb3JkbmVuCisjZGVmaW5lIExTX1UgICAgICAgICAgICAzMiAgICAgICAgICAgLy8gVUlEIGFuemVpZ2VuCisjZGVmaW5lIExTX0cgICAgICAgICAgICA2NCAgICAgICAgICAgLy8gR3J1cHBlIGFuemVpZ2VuCisKKyNkZWZpbmUgQ0xPTkVfT1BUUyAgICAgICJmIgorI2RlZmluZSBDTE9ORV9GICAgICAgICAgMSAgICAgICAgICAgIC8vIEF1ZiBqZWRlbiBGYWxsIHZlcnN1Y2hlbiB6dSBjbG9uZW4KKworI2RlZmluZSBHUkVQX09QVFMgICAgICAgImNoaWxudnJtZiIKKyNkZWZpbmUgR1JFUF9DICAgICAgICAgIDEgICAgICAgICAgICAvLyBOdXIgWmFobCBkZXIgWmVpbGVuIGF1c2dlYmVuCisjZGVmaW5lIEdSRVBfSCAgICAgICAgICAyICAgICAgICAgICAgLy8gRGF0ZWluYW1lbiBuaWNodCBtaXQgYXVzZ2ViZW4KKyNkZWZpbmUgR1JFUF9JICAgICAgICAgIDQgICAgICAgICAgICAvLyBHcm9zcy0vS2xlaW5zY2hyZWlidW5nIGlnbm9yaWVyZW4KKyNkZWZpbmUgR1JFUF9MICAgICAgICAgIDggICAgICAgICAgICAvLyBEYXRlaW5hbWVuIGltbWVyIG1pdCBhdXNnZWJlbgorI2RlZmluZSBHUkVQX04gICAgICAgICAgMTYgICAgICAgICAgIC8vIFplaWxlbm51bW1lcm4gbWl0IGF1c2dlYmVuCisjZGVmaW5lIEdSRVBfViAgICAgICAgICAzMiAgICAgICAgICAgLy8gTnVyIFplaWxlbiBtYXRjaGVuLCBkaWUgTklDSFQgcGFzc2VuCisjZGVmaW5lIEdSRVBfUiAgICAgICAgICA2NCAgICAgICAgICAgLy8gUmVrdXJzaXYgc3VjaGVuCisjZGVmaW5lIEdSRVBfTSAgICAgICAgICAxMjggICAgICAgICAgLy8gRGF0ZWltYXNrZSBhbmdlZ2ViZW4KKyNkZWZpbmUgR1JFUF9GICAgICAgICAgIDI1NiAgICAgICAgICAvLyBBdXNnYWJlIGluIERhdGVpCisKKyNkZWZpbmUgQUNDRVNTX09QVFMgICAgICJhcmxmZ20iCisjZGVmaW5lIEFDQ0VTU19BICAgICAgICAxICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIGhpbnp1ZnVlZ2VuCisjZGVmaW5lIEFDQ0VTU19SICAgICAgICAyICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIGVudGZlcm5lbgorI2RlZmluZSBBQ0NFU1NfTCAgICAgICAgNCAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZ2VuIGFuemVpZ2VuCisjZGVmaW5lIEFDQ0VTU19GICAgICAgICA4ICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIGZ1ZXIgRGF0ZWllbiBhbnplaWdlbgorI2RlZmluZSBBQ0NFU1NfRyAgICAgICAgMTYgICAgICAgICAgIC8vIERhcyBnYW56ZSBmdWVyIEdydXBwZW4KKyNkZWZpbmUgQUNDRVNTX00gICAgICAgIDMyICAgICAgICAgICAvLyBEYXMgZ2FuemUgZnVlciBHcnVwcGVubGVpdGVyCisKKy8vIEZ1bmt0aW9uaWVydCBudXIsIHdlbm4gU05PT1BfTCA9PSBTRl9MT0NLRUQgdW5kIFNOT09QX0YgPT0gU0ZfRk9SQ0UKKy8vIChEZWZpbml0aW9uZW4gYXVzIC9zeXMvc25vb3BpbmcuaCkKKyNkZWZpbmUgU05PT1BfT1BUUyAgICAgICJsZiIKKyNkZWZpbmUgU05PT1BfTCAgICAgICAgIDEgICAgICAgICAgICAvLyBOaWVkcmlnZXIgTWFnaWVyIGthbm4gc2ljaCBuaWNodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRhendpc2NoZW5rbGlua2VuCisjZGVmaW5lIFNOT09QX0YgICAgICAgICAyICAgICAgICAgICAgLy8gU25vb3BlIHNub29wZW5kZW4gTWFnaWVyLCB3ZW5uIGRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoYXJha3RlciBzY2hvbiBnZXNub29wdCB3aXJkCisKKyNkZWZpbmUgTk9fQ0hFQ0sgICAgICAgIE1fR098TV9TSUxFTlR8TV9OT19TSE9XfE1fTk9fQVRUQUNLfE1fTk9DSEVDSworCisjZGVmaW5lIElOVl9TQVZFICAgICAgICAiL3Jvb20vdm9pZC5jIgorCisjZGVmaW5lIFVTQUdFKHN0cikgICAgICAoX25vdGlmeV9mYWlsKGJyZWFrX3N0cmluZyhzcHJpbnRmKCJTeW50YXg6ICVzXG4iLCBzdHIpLDc3KSksIDApCisKKyNkZWZpbmUgQkFTRU5BTUUgMAorI2RlZmluZSBGSUxFU0laRSAxCisjZGVmaW5lIEZJTEVEQVRFIDIKKyNkZWZpbmUgRlVMTE5BTUUgMworI2RlZmluZSBQQVRITkFNRSA0CisjZGVmaW5lIERFU1ROQU1FIDUKKyNkZWZpbmUgU1VCRElSU0laRSA2CisKKyNkZWZpbmUgUkVUX09LIDEKKyNkZWZpbmUgUkVUX0ZBSUwgMAorI2RlZmluZSBSRVRfSlVNUCAtMQorI2RlZmluZSBSRVRfREVMRVRFIC0yCisKKyNkZWZpbmUgTU9ERV9MU0EgICAwCisjZGVmaW5lIE1PREVfTFNCICAgMQorI2RlZmluZSBNT0RFX0NQICAgIDIKKyNkZWZpbmUgTU9ERV9NViAgICAzCisjZGVmaW5lIE1PREVfUk0gICAgNAorI2RlZmluZSBNT0RFX0NEICAgIDUKKyNkZWZpbmUgTU9ERV9DQVQgICA2CisjZGVmaW5lIE1PREVfR1JFUCAgNworI2RlZmluZSBNT0RFX0VEICAgIDgKKyNkZWZpbmUgTU9ERV9VUEQgICA5CisjZGVmaW5lIE1PREVfTU9SRSAgMTAKKyNkZWZpbmUgTU9ERV9STURJUiAxMQorI2RlZmluZSBNT0RFX0NMT05FIDEyCisKKyNkZWZpbmUgQ09MT1JTIChbICJub25lIjogQU5TSV9OT1JNQUwsIFwKKyAgICAgICAgICAgICAgICAgICJib2xkIjogQU5TSV9CT0xELCBcCisgICAgICAgICAgICAgICAgICAiYmxpbmsiOiBBTlNJX0JMSU5LLCBcCisgICAgICAgICAgICAgICAgICAiaW52ZXJzIjogQU5TSV9JTlZFUlMsIFwKKyAgICAgICAgICAgICAgICAgICJibGFjayI6IEFOU0lfQkxBQ0ssIFwKKyAgICAgICAgICAgICAgICAgICJyZWQiOiBBTlNJX1JFRCwgXAorICAgICAgICAgICAgICAgICAgImdyZWVuIjogQU5TSV9HUkVFTiwgXAorICAgICAgICAgICAgICAgICAgInllbGxvdyI6IEFOU0lfWUVMTE9XLCBcCisgICAgICAgICAgICAgICAgICAiYmx1ZSI6IEFOU0lfQkxVRSwgXAorICAgICAgICAgICAgICAgICAgInB1cnBsZSI6IEFOU0lfUFVSUExFLCBcCisgICAgICAgICAgICAgICAgICAiY3lhbiI6IEFOU0lfQ1lBTiwgXAorICAgICAgICAgICAgICAgICAgIndoaXRlIjogQU5TSV9XSElURSwgXAorICAgICAgICAgICAgICAgICAgImJibGFjayI6IEFOU0lfQkdfQkxBQ0ssIFwKKyAgICAgICAgICAgICAgICAgICJicmVkIjogQU5TSV9CR19SRUQsIFwKKyAgICAgICAgICAgICAgICAgICJiZ3JlZW4iOiBBTlNJX0JHX0dSRUVOLCBcCisgICAgICAgICAgICAgICAgICAiYnllbGxvdyI6IEFOU0lfQkdfWUVMTE9XLCBcCisgICAgICAgICAgICAgICAgICAiYmJsdWUiOiBBTlNJX0JHX0JMVUUsIFwKKyAgICAgICAgICAgICAgICAgICJicHVycGxlIjogQU5TSV9CR19QVVJQTEUsIFwKKyAgICAgICAgICAgICAgICAgICJiY3lhbiI6IEFOU0lfQkdfQ1lBTiwgXAorICAgICAgICAgICAgICAgICAgImJ3aGl0ZSI6IEFOU0lfQkdfV0hJVEUsIFwKKyAgICAgICAgICAgICAgICBdKQorCisjZGVmaW5lIFZBTElEX1JFQURfQ0wgIHN5bWJvbF9mdW5jdGlvbigidmFsaWRfcmVhZCIsX19NQVNURVJfT0JKRUNUX18pCisjZGVmaW5lIFZBTElEX1dSSVRFX0NMIHN5bWJvbF9mdW5jdGlvbigidmFsaWRfd3JpdGUiLF9fTUFTVEVSX09CSkVDVF9fKQorI2RlZmluZSBDUkVBVE9SX0NMICBzeW1ib2xfZnVuY3Rpb24oImNyZWF0b3JfZmlsZSIsX19NQVNURVJfT0JKRUNUX18pCisKKyNkZWZpbmUgRElSICJkaXJlY3RvcnkiCisjZGVmaW5lIE9CSiAibG9hZGVkIgorI2RlZmluZSBWQyAgInZpcnR1YWwiCisKKyNpZmRlZiBERUJVRworI3VuZGVmIERFQlVHCisjZW5kaWYKKyNkZWZpbmUgREVCVUcoeCkgaWYgKGZpbmRfcGxheWVyKFNIRUxMREVCVUdHRVIpKSBcCisgICAgICAgICAgICAgICAgICAgICB0ZWxsX29iamVjdChmaW5kX3BsYXllcihTSEVMTERFQlVHR0VSKSx4KyJcbiIpCisKKyNlbmRpZiAvLyBfTUFHSUVSX0hfCisKKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworI2lmbmRlZiBfTUFHSUVSX0hfUFJPVE9TXworI2RlZmluZSBfTUFHSUVSX0hfUFJPVE9TXworc3RhdGljIHN0cmluZyAqcGFyc2VhcmdzKHN0cmluZyBjbWRsaW5lLGludCBmbGFncyxzdHJpbmcgb3B0cyxpbnQgYnVpbGRfZm4pOworc3RhdGljIHZhcmFyZ3Mgdm9pZCBhc3luY2hyb24obWl4ZWQqIGFycmF5LCBjbG9zdXJlIGNtZCwgbWl4ZWQgZGF0YSwgbWl4ZWQgZmxhZ3MsIGludCBjKTsKK3N0YXRpYyB2YXJhcmdzIG1peGVkICpmaWxlX2xpc3Qoc3RyaW5nICpmaWxlcywgaW50IG1vZGUsIGludCByZWN1cnNpdmUsIHN0cmluZyBkZXN0LCBzdHJpbmcgbWFzayk7CitzdGF0aWMgbWl4ZWQgdG9fZmlsZW5hbWUoc3RyaW5nIHN0cik7CitzdGF0aWMgaW50IF92ZXJmb2xnZShzdHJpbmcgc3RyKTsKK3N0YXRpYyBzdHJpbmcgZ2xvYjJyZWdleHAoc3RyaW5nIHN0cik7CisKK3ZhcmFyZ3MgcHVibGljIHZvaWQgTW9yZShzdHJpbmcgdHh0LCBpbnQgZmlsZSxtaXhlZCBjdHJsLCBtaXhlZCAqY3RybGFyZ3MsIGludCBmbGFncyk7CisjZW5kaWYgLy8gX01BR0lFUl9IX1BST1RPU18KKyNlbmRpZiAvLyBORUVEX1BST1RPVFlQRVMKKworCg==