ZGlmZiAtLWdpdCBhL3NjcmlwdHMvY29uZmlndXJlLWNvbXB1dGUtbm9kZS1VQlVOVFUxNi4wLjQuc2ggYi9zY3JpcHRzL2NvbmZpZ3VyZS1jb21wdXRlLW5vZGUtVUJVTlRVMTYuMC40LnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlkODJjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL2NvbmZpZ3VyZS1jb21wdXRlLW5vZGUtVUJVTlRVMTYuMC40LnNoCkBAIC0wLDAgKzEsNTQzIEBACisjIS9iaW4vYmFzaAorCisjIworIyBDb3B5cmlnaHQgMjAxNSBUZWxlZsOzbmljYSBJbnZlc3RpZ2FjacOzbiB5IERlc2Fycm9sbG8sIFMuQS5VLgorIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBvcGVudmltCisjIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5CisjIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluCisjIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQKKyMgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlCisjIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorIworIyBGb3IgdGhvc2UgdXNhZ2VzIG5vdCBjb3ZlcmVkIGJ5IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgcGxlYXNlCisjIGNvbnRhY3Qgd2l0aDogbmZ2bGFic0B0aWQuZXMKKyMjCisKKyMgQXV0aG9yczogQW50b25pbyBMb3BleiwgUGFibG8gTW9udGVzLCBBbGZvbnNvIFRpZXJubworIyBKdW5lIDIwMTUKKworIyBQZXJzb25hbGl6ZSBSSEVMNy4xIG9uIGNvbXB1dGUgbm9kZXMKKyMgUHJlcGFyZWQgdG8gd29yayB3aXRoIHRoZSBmb2xsb3dpbmcgbmV0d29yayBjYXJkIGRyaXZlcnM6CisjIAl0ZzMsIGlnYiBkcml2ZXJzIGZvciBtYW5hZ2VtZW50IGludGVyZmFjZXMKKyMgCWl4Z2JlIChJbnRlbCBOaWFudGljKSBhbmQgaTQwZSAoSW50ZWwgRm9ydHZpbGxlKSBkcml2ZXJzIGZvciBkYXRhIHBsYW5lIGludGVyZmFjZXMKKworIyBUbyBkb3dubG9hZDoKKyMgd2dldCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbmZ2bGFicy9vcGVubWFuby9tYXN0ZXIvc2NyaXB0cy9jb25maWd1cmUtY29tcHV0ZS1ub2RlLVVCVU5UVTE0LjA0LnNoCisjIFRvIGV4ZWN1dGU6CisjIGNobW9kICt4IC4vY29uZmlndXJlLWNvbXB1dGUtbm9kZS1VQlVOVFUxNC4wNC5zaAorIyBzdWRvIC4vY29uZmlndXJlLWNvbXB1dGUtbm9kZS1SSEVMNy4xLnNoIDx1c2VyPiA8aWZhY2U+CisKKyMgQXNzdW1wdGlvbnM6CisjIEFsbCB2aXJ0dWFsaXphdGlvbiBvcHRpb25zIGFjdGl2YXRlZCBvbiBCSU9TICh2dC1kLCB2dC14LCBTUi1JT1YsIG5vIHBvd2VyIHNhdmluZ3MuLi4pCisjIFJIRUw3LjEgaW5zdGFsbGVkIHdpdGhvdXQgL2hvbWUgcGFydGl0aW9uIGFuZCB3aXRoIHRoZSBmb2xsb3dpbmcgcGFja2FnZXMgc2VsZWN0aW9uOgorIyBAYmFzZSwgQGNvcmUsIEBkZXZlbG9wbWVudCwgQG5ldHdvcmstZmlsZS1zeXN0ZW0tY2xpZW50LCBAdmlydHVhbGl6YXRpb24taHlwZXJ2aXNvciwgQHZpcnR1YWxpemF0aW9uLXBsYXRmb3JtLCBAdmlydHVhbGl6YXRpb24tdG9vbHMKKworCitmdW5jdGlvbiB1c2FnZSgpeworICAgIGVjaG8gLWUgIlVzYWdlOiBzdWRvICQwIFsteV0gPHVzZXItbmFtZT4gIFsgPGlmYWNlLW5hbWU+ICBbPGlwLWFkZHJlc3M+fGRoY3BdIF0iCisgICAgZWNobyAtZSAiICBDb25maWd1cmUgY29tcHV0ZSBob3N0IGZvciBWSU0gdXNhZ2UuICh2ZXJzaW9uIDAuNCkuIFBhcmFtczoiCisgICAgZWNobyAtZSAiICAgICAteSAgZG8gbm90IHByb21wdCBmb3IgY29uZmlybWF0aW9uLiBJZiBhIG5ldyB1c2VyIGlzIGNyZWF0ZWQsIHRoZSB1c2VyIG5hbWUgaXMgc2V0IGFzIHBhc3N3b3JkIgorICAgIGVjaG8gLWUgIiAgICAgPHVzZXItbmFtZT4gQ3JlYXRlIGlmIG5vdCBleGlzdCBhbmQgY29uZmlndXJlIHRoaXMgdXNlciBmb3Igb3BlbnZpbSB0byBjb25uZWN0IgorICAgIGVjaG8gLWUgIiAgICAgPGlmYWNlLW5hbWU+IGlmIHN1cGxpZWQgY3JlYXRlcyBicmlkZ2UgaW50ZXJmYWNlcyBvbiB0aGlzIGludGVyZmFjZSwgbmVlZGVkIGZvciBvcGVudmltIgorICAgIGVjaG8gLWUgIiAgICAgaXAgb3IgZGhjcCBpZiBzdXBsaWVkLCBjb25maWd1cmUgdGhlIGludGVyZmFjZSB3aXRoIHRoaXMgaXAgYWRkcmVzcyAoLzI0KSBvciAnZGhjcCcgIgorfQorCisKKyMxIENIRUNLIGlucHV0IHBhcmFtZXRlcnMKKyMxLjEgcm9vdCBwcml2aWxlZ2VzCitbICIkVVNFUiIgIT0gInJvb3QiIF0gJiYgZWNobyAiTmVlZGVkIHJvb3QgcHJpdmlsZWdlcyIgJiYgdXNhZ2UgJiYgZXhpdCAtMQorCisjMS4yIGlucHV0IHBhcmFtZXRlcnMKK0ZPUkNFPSIiCit3aGlsZSBnZXRvcHRzICJ5IiBvOyBkbworICAgIGNhc2UgIiR7b30iIGluCisgICAgICAgIHkpCisgICAgICAgICAgICBGT1JDRT0ieWVzIgorICAgICAgICAgICAgOzsKKyAgICAgICAgKikKKyAgICAgICAgICAgIHVzYWdlCisgICAgICAgICAgICBleGl0IC0xCisgICAgICAgICAgICA7OworICAgIGVzYWMKK2RvbmUKK3NoaWZ0ICQoKE9QVElORC0xKSkKKworCisKK2lmIFsgJCMgLWx0IDEgXQordGhlbgorICB1c2FnZQorICBleGl0CitmaQorCisKK3VzZXJfbmFtZT0kMQoraW50ZXJmYWNlPSQyCitpcF9pZmFjZT0kMworCitpZiBbIC1uICIkaW50ZXJmYWNlIiBdICYmICEgaWZjb25maWcgJGludGVyZmFjZSAmPiAvZGV2L251bGwKK3RoZW4KKyAgZWNobyAiRXJyb3I6IGludGVyZmFjZSAnJGludGVyZmFjZScgaXMgbm90IHByZXNlbnQgaW4gdGhlIHN5c3RlbSIKKyAgdXNhZ2UKKyAgZXhpdCAxCitmaQorCitlY2hvICcKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyMjIyAgICAgICBJTlNUQUxMIE5FRURFRCBQQUNLRVRTICAgICAgICAgICAgICAgICAgICAgICAgICAjIyMjIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMnCisKKyMgUmVxdWlyZWQgcGFja2FnZXMKK2FwdC1nZXQgLXkgdXBkYXRlCisjYXB0LWdldCAteSBpbnN0YWxsIGdydWItY29tbW9uIHNjcmVlbiB2aXJ0LW1hbmFnZXIgZXRodG9vbCBidWlsZC1lc3NlbnRpYWwgeDExLWNvbW1vbiB4MTEtdXRpbHMgeDExLWFwcHMgbGliZ3Vlc3Rmcy10b29scyBod2xvYyBsaWJndWVzdGZzLXRvb2xzIG51bWFjdGwgdmxhbiBuZnMtY29tbW9uIG5mcy1rZXJuZWwtc2VydmVyCithcHQtZ2V0IC15IGluc3RhbGwgZ3J1Yi1jb21tb24gc2NyZWVuIHZpcnQtbWFuYWdlciBldGh0b29sIGJ1aWxkLWVzc2VudGlhbCB4MTEtY29tbW9uIHgxMS11dGlscyBsaWJndWVzdGZzLXRvb2xzIGh3bG9jIGxpYmd1ZXN0ZnMtdG9vbHMgbnVtYWN0bCB2bGFuIG5mcy1jb21tb24gbmZzLWtlcm5lbC1zZXJ2ZXIKKworZWNobyAiUmVtb3ZlIHVubmVlZGVkIHBhY2thZ2VzLi4uLi4iCithcHQtZ2V0IC15IGF1dG9yZW1vdmUKKyMgU2VsaW51eCBtYW5hZ2VtZW50CisjeXVtIGluc3RhbGwgLXkgcG9saWN5Y29yZXV0aWxzLXB5dGhvbgorCisKKworZWNobyAnCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMjIyMgICAgICAgSU5TVEFMTCBVU0VSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMjIyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjJworCisjIEFkZCByZXF1aXJlZCBncm91cHMKK2dyb3VwYWRkIC1mIGFkbWluCitncm91cGFkZCAtZiBsaWJ2aXJ0ICAgI2ZvciBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcyBtYXkgYmUgbGlidmlydGQKKworIyBBZGRzIHVzZXIsIGRlZmF1bHQgcGFzc3dvcmQgc2FtZSBhcyBuYW1lCitpZiBncmVwIC1xICJeJHt1c2VyX25hbWV9OiIgL2V0Yy9wYXNzd2QKK3RoZW4KKyAgI3VzZXIgZXhpc3QsIGFkZCB0byBncm91cAorICBlY2hvICJhZGRpbmcgdXNlciAke3VzZXJfbmFtZX0gdG8gZ3JvdXBzIGxpYnZpcnQsYWRtaW4iCisgIHVzZXJtb2QgLWEgLUcgbGlidmlydCxhZG1pbiAtZyBhZG1pbiAkdXNlcl9uYW1lCitlbHNlCisgICNjcmVhdGUgdXNlciBpZiBpdCBkb2VzIG5vdCBleGlzdAorICBbIC16ICIkRk9SQ0UiIF0gJiYgcmVhZCAtcCAidXNlciAnJHt1c2VyX25hbWV9JyBkb2VzIG5vdCBleGlzdCwgY3JlYXRlIChZL24pIiBraworICBpZiAhIFsgLXogIiRrayIgLW8gIiRrayI9InkiIC1vICIka2siPSJZIiBdCisgIHRoZW4KKyAgICBleGl0CisgIGZpCisgIGVjaG8gImNyZWF0aW5nIGFuZCBjb25maWd1cmluZyB1c2VyIHt1c2VyX25hbWV9IgorICB1c2VyYWRkIC1tIC1HIGxpYnZpcnQsYWRtaW4gLWcgYWRtaW4gJHVzZXJfbmFtZQorICAjUGFzc3dvcmQKKyAgaWYgWyAteiAiJEZPUkNFIiBdCisgIHRoZW4KKyAgICAgZWNobyAiUHJvdmlkZSBhIHBhc3N3b3JkIGZvciAkdXNlcl9uYW1lIgorICAgICBwYXNzd2QgJHVzZXJfbmFtZQorICBlbHNlCisgICAgIGVjaG8gLWUgIiR1c2VyX25hbWVcbiR1c2VyX25hbWUiIHwgcGFzc3dkIC0tc3RkaW4gJHVzZXJfbmFtZQorICBmaQorZmkKKworIyMgQWxsb3cgYWRtaW4gdXNlcnMgdG8gYWNjZXNzIHdpdGhvdXQgcGFzc3dvcmQKKyNpZiAhIGdyZXAgLXEgIiNvcGVubWFubyIgL2V0Yy9zdWRvZXJzCisjdGhlbgorIyAgICBjYXQgPj4gL2hvbWUvJHt1c2VyX25hbWV9L3NjcmlwdF92aXN1ZG8uc2ggPDwgRU9MCisjIyEvYmluL2Jhc2gKKyNjYXQgXCQxIHwgYXdrICcoXCQwfiJyZXF1aXJldHR5Iil7cHJpbnQgIiMiXCQwfShcJDAhfiJyZXF1aXJldHR5Iil7cHJpbnQgXCQwfScgPiB0bXAKKyNjYXQgdG1wID4gXCQxCisjcm0gdG1wCisjZWNobyAiIiA+PiBcJDEKKyNlY2hvICIjb3Blbm1hbm8gYWxsb3cgdG8gZ3JvdXAgYWRtaW4gdG8gZ3JhbnQgcm9vdCBwcml2aWxlZ2VzIHdpdGhvdXQgcGFzc3dvcmQiID4+IFwkMQorI2VjaG8gIiVhZG1pbiBBTEw9KEFMTCkgTk9QQVNTV0Q6IEFMTCIgPj4gXCQxCisjRU9MCisjICAgIGNobW9kICt4IC9ob21lLyR7dXNlcl9uYW1lfS9zY3JpcHRfdmlzdWRvLnNoCisjICAgIGVjaG8gImFsbG93aW5nIGFkbWluIHVzZXIgdG8gZ2V0IHJvb3QgcHJpdmlsZWdlcyB3aXRodXQgcGFzc3dvcmQiCisjICAgIGV4cG9ydCBFRElUT1I9L2hvbWUvJHt1c2VyX25hbWV9L3NjcmlwdF92aXN1ZG8uc2ggJiYgc3VkbyAtRSB2aXN1ZG8KKyMgICAgcm0gLWYgL2hvbWUvJHt1c2VyX25hbWV9L3NjcmlwdF92aXN1ZG8uc2gKKyNmaQorCisKK2VjaG8gJworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIyMjICAgICAgIElOU1RBTEwgSFVHRVBBR0VTIElTT0xDUFVTIEdSVUIgICAgICAgICAgICAgICAgICMjIyMjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIycKKworIyBIdWdlIHBhZ2VzIDFHIGF1dG8gbW91bnQKK21rZGlyIC1wIC9tbnQvaHVnZQoraWYgISBncmVwIC1xICJIdWdlIHBhZ2VzIiAvZXRjL2ZzdGFiCit0aGVuCisgIGVjaG8gIiIgPj4gL2V0Yy9mc3RhYgorICBlY2hvICIjIEh1Z2UgcGFnZXMiID4+IC9ldGMvZnN0YWIKKyAgZWNobyAibm9kZXYgL21udC9odWdlIGh1Z2V0bGJmcyBwYWdlc2l6ZT0xR0IgMCAwIiA+PiAvZXRjL2ZzdGFiCisgIGVjaG8gIiIgPj4gL2V0Yy9mc3RhYgorZmkKKworIyBIdWdlIHBhZ2VzIHJlc2VydmF0aW9uIHNlcnZpY2UKK2lmICEgWyAtZiAvbGliL3N5c3RlbWQvc3lzdGVtL2h1Z2V0bGItZ2lnYW50aWMtcGFnZXMuc2VydmljZSBdCit0aGVuCisgIGVjaG8gImNvbmZpZ3VyaW5nIGh1Z2UgcGFnZXMgc2VydmljZSIKKyAgZWNobyAiW1VuaXRdCitEZXNjcmlwdGlvbj1IdWdlVExCIEdpZ2FudGljIFBhZ2VzIFJlc2VydmF0aW9uCitEZWZhdWx0RGVwZW5kZW5jaWVzPW5vCitCZWZvcmU9ZGV2LWh1Z2VwYWdlcy5tb3VudAorQ29uZGl0aW9uUGF0aEV4aXN0cz0vc3lzL2RldmljZXMvc3lzdGVtL25vZGUKK0NvbmRpdGlvbktlcm5lbENvbW1hbmRMaW5lPWh1Z2VwYWdlc3o9MUcKKworW1NlcnZpY2VdCitUeXBlPW9uZXNob3QKK1JlbWFpbkFmdGVyRXhpdD15ZXMKK0V4ZWNTdGFydD0vdXNyL2xpYi9zeXN0ZW1kL2h1Z2V0bGItcmVzZXJ2ZS1wYWdlcworCitbSW5zdGFsbF0KK1dhbnRlZEJ5PXN5c2luaXQudGFyZ2V0IiA+PiAvbGliL3N5c3RlbWQvc3lzdGVtL2h1Z2V0bGItZ2lnYW50aWMtcGFnZXMuc2VydmljZQorCisgICAgIyAgY2F0ID4gL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW0vaHVnZXRsYi1naWdhbnRpYy1wYWdlcy5zZXJ2aWNlIDw8IEVPTAorICAgICNbVW5pdF0KKyAgICAjRGVzY3JpcHRpb249SHVnZVRMQiBHaWdhbnRpYyBQYWdlcyBSZXNlcnZhdGlvbgorICAgICNEZWZhdWx0RGVwZW5kZW5jaWVzPW5vCisgICAgI0JlZm9yZT1kZXYtaHVnZXBhZ2VzLm1vdW50CisgICAgI0NvbmRpdGlvblBhdGhFeGlzdHM9L3N5cy9kZXZpY2VzL3N5c3RlbS9ub2RlCisgICAgI0NvbmRpdGlvbktlcm5lbENvbW1hbmRMaW5lPWh1Z2VwYWdlc3o9MUcKKyAgICMKKyAgICAjW1NlcnZpY2VdCisgICAgI1R5cGU9b25lc2hvdAorICAgICNSZW1haW5BZnRlckV4aXQ9eWVzCisgICAgI0V4ZWNTdGFydD0vdXNyL2xpYi9zeXN0ZW1kL2h1Z2V0bGItcmVzZXJ2ZS1wYWdlcworICAgICMKKyAgICAjW0luc3RhbGxdCisgICAgI1dhbnRlZEJ5PXN5c2luaXQudGFyZ2V0CisgICAgI0VPTAorZmkKKworCisjIEdldCBpc29sY3B1cworaXNvbGNwdXM9YGdhd2sgJ0JFR0lOe3ByZT0tMjt9CisgICgkMT09InByb2Nlc3NvciIpe3Bybz0kMzt9CisgICgkMT09ImNvcmUiICYmICQ0IT0wKXsKKyAgICAgaWYgKHByZSsxPT1wcm8pe2VuZHJhbmdlPSItIiBwcm99CisgICAgIGVsc2V7Y3B1cz1jcHVzIGVuZHJhbmdlIHNlcCBwcm87IHNlcD0iLCI7IGVuZHJhbmdlPSIiO307CisgICAgIHByZT1wcm87fQorICBFTkR7cHJpbnRmKCIlcyIsY3B1cyBlbmRyYW5nZSk7fScgL3Byb2MvY3B1aW5mb2AKKworCitlY2hvICJDUFVTOiAkaXNvbGNwdXMiCisKKyMgSHVnZSBwYWdlcyByZXNlcnZhdGlvbiBmaWxlOiByZXNlcnZpbmcgYWxsIG1lbW9yeSBhcGFydCBmcm9tIDRHQiBwZXIgTlVNQSBub2RlCisjIEdldCB0aGUgbnVtYmVyIG9mIGh1Z2VwYWdlczogYWxsIG1lbW9yeSBidXQgOEdCIHJlc2VydmVkIGZvciB0aGUgT1MKKyN0b3RhbG1lbT1gZG1pZGVjb2RlIC0tdHlwZSAxN3xncmVwIFNpemUgfGdyZXAgTUIgfGdhd2sgJ3tzdW1hKz0kMn0gRU5EIHtwcmludCBzdW1hLzEwMjR9J2AKKyNodWdlcGFnZXM9JCgoJHRvdGFsbWVtLTgpKQorCitpZiAhIFsgLWYgL3Vzci9saWIvc3lzdGVtZC9odWdldGxiLXJlc2VydmUtcGFnZXMgXQordGhlbgorICBjYXQgPiAvdXNyL2xpYi9zeXN0ZW1kL2h1Z2V0bGItcmVzZXJ2ZS1wYWdlcyA8PCBFT0wKKyMhL2Jpbi9iYXNoCitub2Rlc19wYXRoPS9zeXMvZGV2aWNlcy9zeXN0ZW0vbm9kZS8KK2lmIFsgISAtZCBcJG5vZGVzX3BhdGggXTsgdGhlbgorICAgICAgICBlY2hvICJFUlJPUjogXCRub2Rlc19wYXRoIGRvZXMgbm90IGV4aXN0IgorICAgICAgICBleGl0IDEKK2ZpCisKK3Jlc2VydmVfcGFnZXMoKQoreworICAgICAgICBlY2hvIFwkMSA+IFwkbm9kZXNfcGF0aC9cJDIvaHVnZXBhZ2VzL2h1Z2VwYWdlcy0xMDQ4NTc2a0IvbnJfaHVnZXBhZ2VzCit9CisKKyMgVGhpcyBleGFtcGxlIHJlc2VydmVzIGFsbCBhdmFpbGFibGUgbWVtb3J5IGFwYXJ0IGZyb20gNCBHQiBmb3IgbGludXgKKyMgdXNpbmcgMUdCIHNpemUuIFlvdSBjYW4gbW9kaWZ5IGl0IHRvIHlvdXIgbmVlZHMgb3IgY29tbWVudCB0aGUgbGluZXMKKyMgdG8gYXZvaWQgcmVzZXJ2ZSBtZW1vcnkgaW4gYSBudW1hIG5vZGUKK0VPTAorICBmb3IgZiBpbiAvc3lzL2RldmljZXMvc3lzdGVtL25vZGUvbm9kZT8vbWVtaW5mbworICBkbworICAgIG5vZGU9YGhlYWQgLW4xICRmIHwgZ2F3ayAnKCQ1PT0ia0IiKXtwcmludCAkMn0nYAorICAgIG1lbW9yeT1gaGVhZCAtbjEgJGYgfCBnYXdrICcoJDU9PSJrQiIpe3ByaW50ICQ0fSdgCisgICAgbWVtb3J5PSQoKG1lbW9yeSsxMDQ4NTc2LTEpKSAgICNtZW1vcnkgbXVzdCBiZSBjZWlsZWQKKyAgICBtZW1vcnk9JCgobWVtb3J5LzEwNDg1NzYpKSAgICNmcm9tIGBrQiB0byBHQgorICAgICNpZiBtZW1vcnkKKyAgICBbICRtZW1vcnkgLWd0IDQgXSAmJiBlY2hvICJyZXNlcnZlX3BhZ2VzICQoKG1lbW9yeS00KSkgbm9kZSRub2RlIiA+PiAvdXNyL2xpYi9zeXN0ZW1kL2h1Z2V0bGItcmVzZXJ2ZS1wYWdlcworICBkb25lCisKKyAgIyBSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kcyB0byBlbmFibGUgaHVnZSBwYWdlcyBlYXJseSBib290IHJlc2VydmF0aW9uOgorICBjaG1vZCAreCAvdXNyL2xpYi9zeXN0ZW1kL2h1Z2V0bGItcmVzZXJ2ZS1wYWdlcworICBzeXN0ZW1jdGwgZW5hYmxlIGh1Z2V0bGItZ2lnYW50aWMtcGFnZXMKK2ZpCisKKyMgUHJlcGFyZXMgdGhlIHRleHQgdG8gYWRkIGF0IHRoZSBlbmQgb2YgdGhlIGdydWIgbGluZSwgaW5jbHVkaW5nIGJsYWNrbGlzdGluZyBpeGdiZXZmIGRyaXZlciBpbiB0aGUgaG9zdAorbWVtdG90YWw9YGdyZXAgTWVtVG90YWwgL3Byb2MvbWVtaW5mbyB8IGF3ayAneyBwcmludCAkMiB9JyBgCitocGFnZXM9JCgoICgkbWVtdG90YWwvKDEwMjQqMTAyNCkpLTggKSkKKworbWVtdG90YWw9JCgobWVtdG90YWwrMTA0ODU3Ni0xKSkgICAjbWVtb3J5IG11c3QgYmUgY2VpbGVkCittZW10b3RhbD0kKChtZW10b3RhbC8xMDQ4NTc2KSkgICAjZnJvbSBga0IgdG8gR0JhCitocGFnZXM9JCgobWVtdG90YWwtOCkpCitbWyAkaHBhZ2VzIC1sdCAwIF1dICYmIGhwYWdlcz0wCisKKworZWNobyAiLS0tLS0tPiBtZW10b3RhbDogJG1lbXRvdGFsIgorCit0ZXh0b2tlcm5lbD0iIGludGVsX2lvbW11PW9uIGRlZmF1bHRfaHVnZXBhZ2Vzej0xRyBodWdlcGFnZXN6PTFHIGh1Z2VwYWdlcz0kaHBhZ2VzIGlzb2xjcHVzPSRpc29sY3B1cyBtb2Rwcm9iZS5ibGFja2xpc3Q9aXhnYmV2ZiBtb2Rwcm9iZS5ibGFja2xpc3Q9aTQwZXZmIgorCitlY2hvICJUZXh0IHRvIGtlcm5lbDogJHRleHRva2VybmVsIgorCisKKyMgQWRkIHRleHQgdG8gdGhlIGtlcm5lbCBsaW5lCitpZiAhIGdyZXAgLXEgIiBpbnRlbF9pb21tdT1vbiBkZWZhdWx0X2h1Z2VwYWdlc3o9MUcgaHVnZXBhZ2Vzej0xRyIgL2V0Yy9kZWZhdWx0L2dydWIKK3RoZW4KKyAgZWNobyAiPj4+Pj4+PiAgYWRkaW5nIGNtZGxpbmUgJHt0ZXh0b2tlcm5lbH0iCisgIHNlZCAtaSAiL15HUlVCX0NNRExJTkVfTElOVVhfREVGQVVMVD0vcy9cIlwkLyR7dGV4dG9rZXJuZWx9XCIvIiAvZXRjL2RlZmF1bHQvZ3J1YgorICBzZWQgLWkgIi9eR1JVQl9DTURMSU5FX0xJTlVYPS9zL1wiXCQvJHt0ZXh0b2tlcm5lbH1cIi8iIC9ldGMvZGVmYXVsdC9ncnViCisKKyAgdXBkYXRlLWdydWIKKyAgIyBCSU9TIGJhc2VkIHN5c3RlbXMKKyAgZ3J1Yi1ta2NvbmZpZyAtbyAvYm9vdC9lZmkvRUZJL3VidW50dS9ncnViLmNmZworICAjIFVFRkkgYmFzZWQgc3lzdGVtcworICBncnViLW1rY29uZmlnIC1vIC9ib290L2dydWIvZ3J1Yi5jZmcKK2ZpCisKK2VjaG8gJworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIyMjICAgICAgIE9USEVSIENPTkZJR1VSQVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIyMjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIycKKworIyBMaW5rcyB0aGUgT3Blbk1BTk8gcmVxdWlyZWQgZm9sZGVyIC9vcHQvVk5GL2ltYWdlcyB0byAvdmFyL2xpYi9saWJ2aXJ0L2ltYWdlcy4gVGhlIE9TIGluc3RhbGxhdGlvbgorIyBzaG91bGQgaGF2ZSBvbmx5IGEgLyBwYXJ0aXRpb24gd2l0aCBhbGwgcG9zc2libGUgc3BhY2UgYXZhaWxhYmxlCisKK2VjaG8gIiBsaW5rIC9vcHQvVk5GL2ltYWdlcyB0byAvdmFyL2xpYi9saWJ2aXJ0L2ltYWdlcyIKK2lmIFsgIiR1c2VyX25hbWUiICE9ICIiIF0KK3RoZW4KKyAgI21rZGlyIC1wIC9ob21lLyR7dXNlcl9uYW1lfS9WTkZfaW1hZ2VzCisgICNjaG93biAtUiAke3VzZXJfbmFtZX06YWRtaW4gL2hvbWUvJHt1c2VyX25hbWV9L1ZORl9pbWFnZXMKKyAgI2NobW9kIGdvK3ggJEhPTUUKKworICAjIFRoZSBvcmNoZXN0YXRvciBuZWVkcyB0byBsaW5rIHRoZSBpbWFnZXMgZm9sZGVyCisgIHJtIC1mIC9vcHQvVk5GL2ltYWdlcworICBta2RpciAtcCAvb3B0L1ZORi8KKyAgbG4gLXMgL3Zhci9saWIvbGlidmlydC9pbWFnZXMgL29wdC9WTkYvaW1hZ2VzCisgIGNob3duIC1SICR7dXNlcl9uYW1lfTphZG1pbiAvb3B0L1ZORgorICBjaG93biAtUiByb290OmFkbWluIC92YXIvbGliL2xpYnZpcnQvaW1hZ2VzCisgIGNobW9kIGcrcnd4IC92YXIvbGliL2xpYnZpcnQvaW1hZ2VzCisKKyAgIyBTZWxpbnV4IG1hbmFnZW1lbnQKKyAgI2VjaG8gImNvbmZpZ3VyZSAgU2VsaW51eCBtYW5hZ2VtZW50IgorICAjc2VtYW5hZ2UgZmNvbnRleHQgLWEgLXQgdmlydF9pbWFnZV90ICIvaG9tZS8ke3VzZXJfbmFtZX0vVk5GX2ltYWdlcygvLiopPyIKKyAgI2NhdCAvZXRjL3NlbGludXgvdGFyZ2V0ZWQvY29udGV4dHMvZmlsZXMvZmlsZV9jb250ZXh0cy5sb2NhbCB8Z3JlcCB2aXJ0X2ltYWdlCisgICNyZXN0b3JlY29uIC1SIC12IC9ob21lLyR7dXNlcl9uYW1lfS9WTkZfaW1hZ2VzCitlbHNlCisgIG1rZGlyIC1wIC9vcHQvVk5GL2ltYWdlcworICBjaG1vZCBvK3J4IC9vcHQvVk5GL2ltYWdlcworZmkKKworZWNobyAiY3JlYXRpbmcgbG9jYWwgaW5mb3JtYXRpb24gL29wdC9WTkYvaW1hZ2VzL2hvc3RpbmZvLnlhbWwiCitlY2hvICIjQnkgZGVmYXVsdCBvcGVudmltIGFzc3VtZXMgY29udHJvbCBwbGFuZSBpbnRlcmZhY2UgbmFtaW5nIGFzIGVtMSxlbTIsZW0zLGVtNCAiID4gL29wdC9WTkYvaW1hZ2VzL2hvc3RpbmZvLnlhbWwKK2VjaG8gIiNhbmQgYnJpZGdlIGlmYWNlcyBhcyB2aXJick1hbjEsIHZpcmJyTWFuMiwgLi4uIiA+PiAvb3B0L1ZORi9pbWFnZXMvaG9zdGluZm8ueWFtbAorZWNobyAiI2lmIGNvbXB1dGUgbm9kZSBjb250YWluIGEgZGlmZmVyZW50IG5hbWUgaXQgbXVzdCBiZSBpbmRpY2F0ZWQgaW4gdGhpcyBmaWxlIiA+PiAvb3B0L1ZORi9pbWFnZXMvaG9zdGluZm8ueWFtbAorZWNobyAiI3dpdGggdGhlIGZvcm1hdCBleHRhbmRhcmQtbmFtZTogY29tcHV0ZS1uYW1lIiA+PiAvb3B0L1ZORi9pbWFnZXMvaG9zdGluZm8ueWFtbAoraWYgWyAiJGludGVyZmFjZSIgIT0gIiIgLWEgIiRpbnRlcmZhY2UiICE9ICJlbTEiIF0KK3RoZW4KKyAgZWNobyAiaWZhY2VfbmFtZXM6IiAgPj4gL29wdC9WTkYvaW1hZ2VzL2hvc3RpbmZvLnlhbWwKKyAgZWNobyAiICBlbTE6ICR7aW50ZXJmYWNlfSIgPj4gL29wdC9WTkYvaW1hZ2VzL2hvc3RpbmZvLnlhbWwKK2ZpCitjaG1vZCBvK3IgL29wdC9WTkYvaW1hZ2VzL2hvc3RpbmZvLnlhbWwKKworIyBkZWFjdGl2YXRlIG1lbW9yeSBvdmVyY29tbWl0CisjZWNobyAiZGVhY3RpdmF0ZSBtZW1vcnkgb3ZlcmNvbW1pdCIKKyNzZXJ2aWNlIGtzbXR1bmVkIHN0b3AKKyNzZXJ2aWNlIGtzbSBzdG9wCisjY2hrY29uZmlnIGtzbXR1bmVkIG9mZgorI2Noa2NvbmZpZyBrc20gb2ZmCisKKworIyBMaWJ2aXJ0IG9wdGlvbnMgKHVuY29tbWVudCB0aGUgZm9sbG93aW5nKQorZWNobyAiY29uZmlndXJlIExpYnZpcnQgb3B0aW9ucyIKK3NlZCAtaSAncy8jdW5peF9zb2NrX2dyb3VwID0gImxpYnZpcnQiL3VuaXhfc29ja19ncm91cCA9ICJsaWJ2aXJ0Ii8nIC9ldGMvbGlidmlydC9saWJ2aXJ0ZC5jb25mCitzZWQgLWkgJ3MvI3VuaXhfc29ja19yd19wZXJtcyA9ICIwNzcwIi91bml4X3NvY2tfcndfcGVybXMgPSAiMDc3MCIvJyAvZXRjL2xpYnZpcnQvbGlidmlydGQuY29uZgorc2VkIC1pICdzLyN1bml4X3NvY2tfZGlyID0gIlwvdmFyXC9ydW5cL2xpYnZpcnQiL3VuaXhfc29ja19kaXIgPSAiXC92YXJcL3J1blwvbGlidmlydCIvJyAvZXRjL2xpYnZpcnQvbGlidmlydGQuY29uZgorc2VkIC1pICdzLyNhdXRoX3VuaXhfcncgPSAibm9uZSIvYXV0aF91bml4X3J3ID0gIm5vbmUiLycgL2V0Yy9saWJ2aXJ0L2xpYnZpcnRkLmNvbmYKKworCitlY2hvICcKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyMjIyAgICAgICBORVRXT1JLIENPTkZJR1VSQVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAjIyMjIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMnCisjIE5ldHdvcmsgY29uZmlnIChpZiB0aGUgc2Vjb25kIHBhcmFtZXRlciBpcyBuZXQpCitlY2hvICJJbnRlcmZhY2UgPT0+ICRpbnRlcmZhY2UiCitpZiBbIC1uICIkaW50ZXJmYWNlIiBdCit0aGVuCisKKworICAjIEZvciBtYW5hZ2VtZW50IGFuZCBkYXRhIGludGVyZmFjZXMKKyAgcm0gLWYgL2V0Yy91ZGV2L3J1bGVzLmQvcGNpX2NvbmZpZy5ydWxlcyAjIGl0IHdpbGwgYmUgY3JlYXRlZCB0byBkZWZpbmUgVkZzCisKKworICAjIFNldCBPTkJPT1Q9b24gYW5kIE1UVT05MDAwIG9uIHRoZSBpbnRlcmZhY2UgdXNlZCBmb3IgdGhlIGJyaWRnZXMKKyAgZWNobyAiY29uZmlndXJpbmcgaWZhY2UgJGludGVyZmFjZSIKKworI01UVSBmb3IgaW50ZXJmYWNlcyBhbmQgYnJpZGdlcworTVRVPTkwMDAKKworY3AgL2V0Yy9uZXR3b3JrL2ludGVyZmFjZXMgaW50ZXJmYWNlcy50bXAKKworCisgICNDcmVhdGUgaW5mcmFzdHJ1Y3R1cmUgYnJpZGdlLCBub3JtYWxseSB1c2VkIGZvciBjb25uZWN0aW5nIHRvIGNvbXB1dGUgbm9kZXMsIG9wZW5mbG93IGNvbnRyb2xsZXIsIC4uLgorCisKKyAgICAjQ3JlYXRlIFZMQU4gZm9yIGluZnJhc3RydWN0dXJlIGJyaWRnZQorCisgZWNobyAiCisjIyMjIyMjIyMgQ1VUTElORSAjIyMjIyMjIyMKKworYXV0byAke2ludGVyZmFjZX0KK2lmYWNlICR7aW50ZXJmYWNlfSBpbmV0IG1hbnVhbAorICAgIHBvc3QtdXAgaXAgbGluayBzZXQgZGV2ICR7aW50ZXJmYWNlfSBtdHUgJHtNVFV9CisKK2F1dG8gJHtpbnRlcmZhY2V9LjEwMDEKK2lmYWNlICR7aW50ZXJmYWNlfS4xMDAxIGluZXQgbWFudWFsCisgICAgdmxhbi1yYXctZGV2aWNlICR7aW50ZXJmYWNlfQorICAgIHBvc3QtdXAgaXAgbGluayBzZXQgbXR1ICRNVFUgZGV2ICR7aW50ZXJmYWNlfS4xMDAxCisiID4+IGludGVyZmFjZXMudG1wCisKKyMgZWNobyAiaWZjb25maWcgJHtpbnRlcmZhY2V9IG10dSAkTVRVCisjIGlmY29uZmlnICR7aW50ZXJmYWNlfSB1cAorIyIgPiBtdHUudG1wCisKKworICAjQ3JlYXRlIGJyaWRnZSBpbnRlcmZhY2VzCisgIGVjaG8gIkNyZWF0aW5nIGJyaWRnZSBpZmFjZXM6ICIKKyAgZm9yICgoaT0xO2k8PTIwO2krKykpCisgIGRvCisgICAgaTJkaWdpdHM9JGkKKyAgICBbICRpIC1sdCAxMCBdICYmIGkyZGlnaXRzPSIwJGkiCisgICAgZWNobyAiICAgIHZpcmJyTWFuJGkgIHZsYW4gMjAkaTJkaWdpdHMiCisKKyAgICBqPSRpCisKKyBlY2hvICIKK2F1dG8gJHtpbnRlcmZhY2V9LjIwJGkyZGlnaXRzCitpZmFjZSAke2ludGVyZmFjZX0uMjAkaTJkaWdpdHMgaW5ldCBtYW51YWwKKyAgICBwb3N0LXVwIGlwIGxpbmsgc2V0IG10dSAkTVRVIGRldiAke2ludGVyZmFjZX0uMjAkaTJkaWdpdHMKKworYXV0byB2aXJick1hbiRqCitpZmFjZSB2aXJick1hbiRqIGluZXQgbWFudWFsCisJYnJpZGdlX3BvcnRzICR7aW50ZXJmYWNlfS4yMCRpMmRpZ2l0cworCXBvc3QtdXAgaXAgbGluayBzZXQgZGV2IHZpcmJyTWFuJGogJiYgaXAgbGluayBzZXQgbXR1IDkwMDAgZGV2IHZpcmJyTWFuJGoKKyIgPj4gaW50ZXJmYWNlcy50bXAKKworIyBlY2hvICJpZmNvbmZpZyAke2ludGVyZmFjZX0uMjAkaTJkaWdpdHMgbXR1ICRNVFUKKyNpZmNvbmZpZyB2aXJick1hbiRqIG10dSAkTVRVCisjaWZjb25maWcgdmlyYnJNYW4kaiB1cAorIyIgPj4gbXR1LnRtcAorCisgIGRvbmUKKworIGVjaG8gIgorYXV0byBlbTIuMTAwMQoraWZhY2UgZW0yLjEwMDEgaW5ldCBtYW51YWwKKyAgICBwb3N0LXVwIGlwIGxpbmsgc2V0IGRldiBlbTIuMTAwMSBtdHUgOTAwMAorCithdXRvIHZpcmJySW5mCitpZmFjZSB2aXJickluZiBpbmV0IG1hbnVhbAorCWJyaWRnZV9wb3J0cyBlbTIuMTAwMQorCXBvc3QtdXAgaXAgbGluayBzZXQgZGV2IHZpcmJySW5mICYmIGlwIGxpbmsgc2V0IG10dSA5MDAwIGRldiB2aXJickluZgorIiA+PiBpbnRlcmZhY2VzLnRtcAorCisjIGVjaG8gImlmY29uZmlnIGVtMi4xMDAxIG10dSAkTVRVCisjaWZjb25maWcgdmlyYnJJbmYgbXR1ICRNVFUKKyNpZmNvbmZpZyB2aXJickluZiB1cAorIyIgPj4gbXR1LnRtcAorCitpZiAhIGdyZXAgLXEgIiMjIyMgQ1VUTElORSAjIyMjIiAvZXRjL25ldHdvcmsvaW50ZXJmYWNlcwordGhlbgorCWVjaG8gIj09PT09PSBDb3B5aW5nIGludGVyZmFjZXMudG1wIHRvIC9ldGMvbmV0d29yay9pbnRlcmZhY2VzIgorCWNwIGludGVyZmFjZXMudG1wIC9ldGMvbmV0d29yay9pbnRlcmZhY2VzCitmaQorCisKKyAgI3BvcGQKK2ZpCisKKworIyBBY3RpdmF0ZSA4IFZpcnR1YWwgRnVuY3Rpb25zIHBlciBQRiBvbiBOaWFudGljIGNhcmRzIChpeGdiZSBkcml2ZXIpCitpZiBbWyBgbHNtb2QgfCBjdXQgLWQiICIgLWYxIHwgZ3JlcCAiaXhnYmUiIHwgZ3JlcCAtdiB2ZmAgXV0KK3RoZW4KKwlpZiAhIGdyZXAgLXEgIml4Z2JlIiAvZXRjL21vZHByb2JlLmQvaXhnYmUuY29uZgorCXRoZW4KKwllY2hvICJvcHRpb25zIGl4Z2JlIG1heF92ZnM9OCIgPj4gL2V0Yy9tb2Rwcm9iZS5kL2l4Z2JlLmNvbmYKKwlmaQorCitmaQorCitlY2hvICIjIS9iaW4vYmFzaCIgPiAvZXRjL2FjdGl2YXRlLXZmcy5zaAorY2htb2QgK3ggL2V0Yy9hY3RpdmF0ZS12ZnMuc2gKK2ZvciBpZmFjZSBpbiBgaXAgLW8gbGluayBzaG93IHwgYXdrIC1GJzogJyAne3ByaW50ICQyfScgIHwgZ3JlcCAtdiAgLWUgIlwuIiAtZSAibG8iIC1lICJ2aXJiciIgLWUgInRhcCJgCitkbworIyAxMC80MCBHYnBzIGludGVyZmFjZXMKKyMgSW50ZWwgWDUyMCBjYXJkczogZHJpdmVyIGl4Z2JlCisjIEludGVsIFhMNzEwIEZvcnR2aWxsZSBjYXJkczogZHJpdmVyIGk0MGUKK2RyaXZlcj1gZXRodG9vbCAtaSAkaWZhY2V8IGF3ayAnKCQwfiJkcml2ZXIiKXtwcmludCAkMn0nYAoraWYgWyAiJGRyaXZlciIgPSAiaTQwZSIgLW8gIiRkcml2ZXIiID0gIml4Z2JlIiBdCit0aGVuCisgIGVjaG8gImNvbmZpZ3VyaW5nIGRhdGFwbGFuZSBpZmFjZSAkaWZhY2UiCisKKyAgIyBDcmVhdGUgOCBTUi1JT1YgcGVyIFBGIGJ5IHVkZXYgcnVsZXMgb25seSBmb3IgRm9ydHZpbGxlIGNhcmRzIChpNDBlIGRyaXZlcikKKyAgaWYgWyAiJGRyaXZlciIgPSAiaTQwZSIgXQorICB0aGVuCisgIHBjaT1gZXRodG9vbCAtaSAkaWZhY2UgfCBhd2sgJygkMH4iYnVzLWluZm8iKXtwcmludCAkMn0nYAorICAgZWNobyAiZWNobyA4ID4gL3N5cy9idXMvcGNpL2RldmljZXMvJHBjaS9zcmlvdl9udW12ZnMiID4+IC9ldGMvYWN0aXZhdGUtdmZzLnNoCisgIGZpCitmaQorZG9uZQorCisjIFNldCBkYXRhcGxhbmUgTVRVCisKKyNlY2hvICJzbGVlcCAxMCIgPj4gbXR1LnRtcAorCisjaW50ZXJmYWNlcz1gaWZjb25maWcgLWEgfCBncmVwIF5wIHwgY3V0IC1kICIgIiAtZiAxYAorI2ZvciBwaCBpbiAkaW50ZXJmYWNlcworI2RvCisjICAgICAgICBlY2hvICJpZmNvbmZpZyAkcGggbXR1ICRNVFUiID4+IG10dS50bXAKKyMgICAgICAgIGVjaG8gImlmY29uZmlnICRwaCB1cCIgPj4gbXR1LnRtcAorI2RvbmUKKworCisKKyNjcCBtdHUudG1wIC9ldGMvc2V0bXR1LnNoCisjY2htb2QgK3ggL2V0Yy9zZXRtdHUuc2gKKworIyBUbyBkZWZpbmUgOCBWRnMgcGVyIFBGIHdlIGRvIGl0IG9uIHJjLmxvY2FsLCBiZWNhdXNlIHRoZSBkcml2ZXIgbmVlZHMgdG8gYmUgdW5sb2FkZWQgYW5kIGxvYWRlZCBhZ2FpbgorI2lmICEgZ3JlcCAtcSAiTkZWIiAvZXRjL3JjLmxvY2FsCisjdGhlbgorICBlY2hvICIjIS9iaW4vc2ggLWUKKyIgPiAvZXRjL3JjLmxvY2FsCisgIGVjaG8gIiMgTkZWIiA+PiAvZXRjL3JjLmxvY2FsCisgIGVjaG8gIm1vZHByb2JlIC1yIGl4Z2JlIiA+PiAvZXRjL3JjLmxvY2FsCisgIGVjaG8gIm1vZHByb2JlIGl4Z2JlIG1heF92ZnM9OCIgPj4gL2V0Yy9yYy5sb2NhbAorICBlY2hvICIvZXRjL2FjdGl2YXRlLXZmcy5zaCIgPj4gL2V0Yy9yYy5sb2NhbAorICAjZWNobyAiL2V0Yy9zZXRtdHUuc2giID4+IC9ldGMvcmMubG9jYWwKKyAgZWNobyAiCitleGl0IDAiID4+IC9ldGMvcmMubG9jYWwKKyAgZWNobyAiIiA+PiAvZXRjL3JjLmxvY2FsCisKKyAgY2htb2QgK3ggL2V0Yy9yYy5sb2NhbAorICBjaG1vZCAreCAvZXRjL2FjdGl2YXRlLXZmcy5zaAorCisjZmkKKworY2htb2QgYStyd3ggL3Zhci9saWIvbGlidmlydC9pbWFnZXMKK21rZGlyIC91c3IvbGliZXhlYy8KK3B1c2hkIC91c3IvbGliZXhlYy8KK2xuIC1zIC91c3IvYmluL3FlbXUtc3lzdGVtLXg4Nl82NCBxZW11LWt2bQorcG9wZAorCisjRGVhY3RpdmF0aW5nIGFwcGFybW9yIHdoaWxlIGxvb2tpbmcgZm9yIGEgYmV0dGVyIHNvbHV0aW9uCisvZXRjL2luaXQuZC9hcHBhcm1vciBzdG9wCit1cGRhdGUtcmMuZCAtZiBhcHBhcm1vciByZW1vdmUKKworZWNobworZWNobyAiRG8gbm90IGZvcmdldCB0byBjcmVhdGUgYSBzaGFyZWQgKE5GUywgU2FtYmEsIC4uLikgd2hlcmUgb3JpZ2luYWwgdmlydHVhbCBtYWNoaW5lIGltYWdlcyBhcmUgYWxsb2NhdGVkIgorZWNobworZWNobyAiRG8gbm90IGZvcmdldCB0byBjb3B5IHRoZSBwdWJsaWMgc3NoIGtleSBpbnRvIC9ob21lLyR7dXNlcl9uYW1lfS8uc3NoL2F1dGhvcml6ZWRfa2V5cyBmb3IgYXV0aG9tYXRpYyBsb2dpbiBmcm9tIG9wZW52aW0gY29udHJvbGxlciIKK2VjaG8KKworZWNobyAiUmVib290IHRoZSBzeXN0ZW0gdG8gbWFrZSB0aGUgY2hhbmdlcyBlZmZlY3RpdmUiCisKZGlmZiAtLWdpdCBhL3NjcmlwdHMvaG9zdC1hZGQuc2ggYi9zY3JpcHRzL2hvc3QtYWRkLnNoCmluZGV4IGM1MmYzZmEuLjhhYTliZGUgMTAwNzU1Ci0tLSBhL3NjcmlwdHMvaG9zdC1hZGQuc2gKKysrIGIvc2NyaXB0cy9ob3N0LWFkZC5zaApAQCAtMSw3ICsxLDcgQEAKICMhL2Jpbi9iYXNoCiAKICMjCi0jIENvcHlyaWdodCAyMDE1IFRlbGVm825pY2EgSW52ZXN0aWdhY2nzbiB5IERlc2Fycm9sbG8sIFMuQS5VLgorIyBDb3B5cmlnaHQgMjAxNSBUZWxlZu+/vW5pY2EgSW52ZXN0aWdhY2nvv71uIHkgRGVzYXJyb2xsbywgUy5BLlUuCiAjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIG9wZW52aW0KICMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICMKQEAgLTEzNCw3ICsxMzQsNyBAQAogW1sgIiQjIiAtbHQgIjIiIF1dICYmIGVjaG8gIk1pc3NpbmcgcGFyYW1ldGVycyIgJiYgdXNhZ2UKIGxvYWRfdmZfZHJpdmVyIGl4Z2JlCiBsb2FkX3ZmX2RyaXZlciBpNDBlCi0KKy9ldGMvcmMubG9jYWwKIEhPU1RfTkFNRT1gY2F0IC9ldGMvaG9zdG5hbWVgCiBGRUFUVVJFUz1gZ3JlcCAiXmZsYWdzIiAgL3Byb2MvY3B1aW5mb2AKIEZFQVRVUkVTX0xJU1Q9IiIKQEAgLTI2NSw3ICsyNjUsNyBAQAogICAgIGV2YWwgJHVuZGVyc2NvcmVkX3BjaVsic3dpdGNoX3BvcnQiXT0kc3dpdGNoX3BvcnQKICAgZmkKIAotICAjQfFhZG8gZWwgcGNpIGRlIGNhZGEgdW5vIGRlIGxvcyBoaWpvcworICAjQe+/vWFkbyBlbCBwY2kgZGUgY2FkYSB1bm8gZGUgbG9zIGhpam9zCiAgIFNSSU9WX2NvdW50ZXI9MAogICBmb3IgY2hpbGQgaW4gYHhtbHBhdGhfYXJncyAiZGV2aWNlL2NhcGFiaWxpdHkvY2FwYWJpbGl0eS9hZGRyZXNzIiA8IHBhcmVudF94bWxgCiAgIGRvIAo=