ZGlmZiAtLWdpdCBhL3QvZGF0YS9kb1ZpcnRCbXMudy5hbGwuMjAyNC1JIGIvdC9kYXRhL2RvVmlydEJtcy53LmFsbC4yMDI0LUkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMxOGQyNQotLS0gL2Rldi9udWxsCisrKyBiL3QvZGF0YS9kb1ZpcnRCbXMudy5hbGwuMjAyNC1JCkBAIC0wLDAgKzEsNDg3IEBACisjIS91c3IvYmluL2Jhc2gKKyMgU2NyaXB0IGZvciBidWlsZGluZyB0aGUgdmlydHVhbCBDb3JwdXMgQml0bWFwcyBvZiBDMi1EYXRhYmFzZSBXMgorIyAkMSA6IERhdGFiYXNlIE5hbWUgYXMgcmVnaXN0ZXJlZCBpbiBTZXJ2ZXIuCisjICQyIDogUGF0aCBvZiBDMi1TZXJ2ZXIKKyMgJDMgOiBDb3JwdXMgRGVmaW5pdGlvbiBmaWxlIChvdXRwdXQpCisjIDIxLjAxLjAyL0ZCCisjIDIwLjA5LjAyL0ZCIGlrbzkwIGlrbzkxCisjIDE1LjEwLjAyL0ZCIGZyb2gxL2Zyb2gyIGVudGZlcm50CisjIDA5LjA0LjAzL0ZCIHBhcmFtZXRlciAkMworIyAxNC4wNC4wMy9GQiBXLUFMTC1CSUcKKyMgMjUuMDMuMDQvRkIgVzIKKyMgMTQuMTEuMDUvRkIgVzMKKyMgMDguMDYuMDYvRkIgZGVyZWtvIGFscyBlaWdlbnN0YWVuZGlnZXMgS29ycHVzIHVuZCBEZWZpbnRpb25lIGVudGZlcm50LgorIyBVbWxhdXRlIPbW5MT83N8KKyMKKyMgRGVSZUtvIDIwMjQtSSAtIDIyLjAyLjIzL0ZCCisjIElNUE9SVEFOVDoKKyMgV2hoZW4gZWRpdGluZyB0aGlzIGZpbGUsIGFsd2F5cyBjaGVjayBmb3IgdGhlIGxhc3QgMiB5ZWFyczogMjAyMiBhbmQgMjAyMyB3aGlsZSBpbiAyMDI0LgorCisjIyMgQW5tLiB6dSBkZW4gLmRlZi1EYXRlaWVuOgorIyMjIGRpZXNlIE1ldGhvZGUgbmljaHQgbWVociB2ZXJ3ZW5kZW4gKGJ6dy4gbmljaHQgbWVociBhdWYgLmRlZi1EYXRlaWVuIHZlcnppY2h0ZW4pLCB3ZWlsCisjIyMgRXJpYyBmdWVyIGRpZSBHZW5lcmllcnVuZyBkZXIgQ0lJLUhUTUwtU2VpdGVuIEluZm9ybWF0aW9uZW4gYXVzIGRlbiAuZGVmIERhdGVpZW4gaG9sdAorCitpZiBbICIkMSIgPSAiIiBdCit0aGVuCisJZWNobyAiRXJyb3I6IG1pc3NpbmcgcmVnaXN0ZXJlZCBEYXRhYmFzZSBOYW1lISIKKwlyZXR1cm4gMQorZmkKKworaWYgWyAiJDIiID0gIiIgXQordGhlbgorCWVjaG8gIkVycm9yOiBtaXNzaW5nIEMyLVNlcnZlciBQYXRoISIKKwlyZXR1cm4gMQorZmkKKworaWYgWyAiJDMiID0gIiIgXQordGhlbgorCWVjaG8gIkVycm9yOiBtaXNzaW5nIENvcnB1cyBEZWZpbml0aW9uIGZpbGUhIgorCXJldHVybiAxCitmaQorCitpZiBbICIkNSIgPSAiIiBdCit0aGVuCisJZWNobyAiRXJyb3I6IFZhcmlhYmxlIERCSE9NRSBtdXN0IGJlIHNwZWNpZmllZCEiCisJcmV0dXJuIDEKK2ZpCisKK0RCTj0iLW46JDEiCitTVj0tcHM6JDIKK0NERmlsZT0kMworU0w9LXMxCitCSU49JDQKK0RCSE9NRT0kNQorCitfVEhJU19ZRUFSPTIwMjMKKworZWNobyAiJDA6IEF1c2bDvGhydW5nIGJlZ2lubnQuLi4iCisKKyMgVE9ETzogLiBncmFwaC4gVWViZXJzaWNodCwgd2VsY2hlIHZpcnQuIEtvcnBvcmEgd28gaW5rbHVkaWVydCBzaW5kIChrYW5uIGljaCBzbyBldHdhcyBldnRsLgorIyAgcGVyIFNrcmlwdCBhbHMgSFRNTC1TZWl0ZSBnZW5lcmllcmVuPyk6IHouQi4gbG96IGVudGhhZWx0IGRpdiB1LiBsaXQgZW50YWVsdCB3aWVkZXJ1bQorIyAgbG96OiBsaXQgPC0gbG96IDwtIGRpdiAobWl0IEVyaWMgc3ByZWNoZW46IGljaCBoYWJlIGxpbmtzIHN0ZWhlbmRlIFZlcnNjaGFjaHRlbHVuZworIyAgaW4gTElTVC9saXN0LncgaW1wbGVtZW50aWVydCwgc29uc3QgdmVybGllcmUgaWNoIGRpZSBVZWJlcnNpY2h0LiBPYiBkYXMgc2VpbmUgV2Vic2VpdGVuLQorIyAgR2VuZXJpZXJ1bmcgc3RvZXJ0LCB3ZWlzcyBpY2ggYWxsZXJkaW5ncyBuaWNodAorCisjIAorIyBpbmNsdWRlIGZ1bmN0aW9ucyBsaWtlIGJ1aWxkX2JpZ19kZWYoKQorIworLiAvaG9tZS9jMmFkbWluL2MyL2l4L2NmZy9ibXMvU0NSSVBUL2Z1bmN0aW9ucworCitlY2hvICIkMDogZnVuY3Rpb25zIGxvYWRlZC4iCisKKyMjIyBEaWUgR2VzYW10LUtvcnBvcmEgKF9CbHVlXyk6CisjIDIwMjQtSTogVy1nZXNhbXQ6IGtlaW5lIG5ldWVuIEtvcnB1cy1EYXRlaWVuIC0gMTYuMDIuMjMvRkIKKworZWNobyAtZSAiVy1nZXNhbXQgLSBhbGxlIEtvcnBvcmEgZGVzIEFyY2hpdnMgVyAobWl0IE5ldWFrcXVpc2l0aW9uZW4pIF9CX19CbHVlX1x0TE9BRCgnYmloIGJpbyBiaW8tcHViIGwgYnZ6IGJyeiBiemsgYiBjdCBjeiBkY2sgZGl2IGRpdi1wdWIgZGtnIGRwYSBwIGVyayBmbHQgZmF6IGZvYyBmcnIgZnNwIGZzcC1wdWIgZ29lIGdyMSBncmkgaGF6IGhiayBoZXMgaG1wIGlrbyBpeCBraWMga2psIGtseiBrc3AgbGVzIGxpbSBsbWQgbHRiIG1rMSBtazIgbWxkIG0gbmV1IG5ldyBuZyBua3Ugbmt6IG5vbiBudW4gbnV6IG56ZiBuenMgbnp6IG9vbiBwcCBwcmYgcmVpIHJocCByaHogc2JsIHNibiBhIHNpZCBzb3ogcyBzcGsgc29sIHN0ZSBzdGcgdSB0YXMgdCB0aG0gdHR6IHZhbiB2ZGkgd2FtIHdrYiB3a2Qgd2t2IHd4eDExIHd3byB6Y2EgemN3IHogemdlIGUgendpJykiID4+JENERmlsZQorIAorZWNobyAtZSAiTi1nZXNhbXQgLSBhbGxlIE5ldWFrcXVpc2l0aW9uZW4gdm9uIERlUmVLby0yMDI0LUkgX0JfX0JsdWVfXHRMT0FEKCdiaWggYmlvIGJpby1wdWIgbCBidnogYnJ6IGJ6ayBiIGN0IGN6IGRjayBkaXYgZGl2LXB1YiBka2cgZHBhIHAgZXJrIGZsdCBmYXogZm9jIGZyciBmc3AgZnNwLXB1YiBnb2UgZ3IxIGdyaSBoYXogaGJrIGhlcyBobXAgaWtvIGl4IGtpYyBramwga2x6IGtzcCBsZXMgbGltIGxtZCBsdGIgbWsxIG1rMiBtbGQgbSBuZXUgbmV3IG5nIG5rdSBua3ogbm9uIG51biBudXogbnpmIG56cyBuenogb29uIHBwIHByZiByZWkgcmhwIHJoeiBzYmwgc2JuIGEgc2lkIHNveiBzIHNwayBzb2wgc3RlIHN0ZyB1IHRhcyB0IHRobSB0dHogdmFuIHZkaSB3YW0gd2tiIHdrZCB3a3Ygd3h4MTEgd3dvIHpjYSB6Y3cgeiB6Z2UgZSB6d2kgLWNvcnAtdy1nZXNhbXQuMjAyMy1pLjE2LjAzLjIzJykiID4+JENERmlsZQorCitlY2hvIC1lICJXLW9obmVXaWtpcGVkaWEtZ2VzYW10IC0gYWxsZSBLb3Jwb3JhIGRlcyBBcmNoaXZzIFcgKG1pdCBOZXVha3F1aXNpdGlvbmVuLCBvaG5lIFdpa2lwZWRpYSkgX0JsdWVfXHRMT0FEKCdiaWggYmlvIGJpby1wdWIgbCBidnogYnJ6IGJ6ayBiIGN0IGN6IGRjayBkaXYgZGl2LXB1YiBka2cgZHBhIHAgZXJrIGZsdCBmYXogZm9jIGZyciBmc3AgZnNwLXB1YiBnb2UgZ3IxIGdyaSBoYXogaGJrIGhlcyBobXAgaWtvIGl4IGtpYyBramwga2x6IGtzcCBsZXMgbGltIGxtZCBsdGIgbWsxIG1rMiBtbGQgbSBuZXUgbmV3IG5nIG5rdSBua3ogbm9uIG51biBudXogbnpmIG56cyBuenogb29uIHBwIHByZiByZWkgcmhwIHJoeiBzYmwgc2JuIGEgc2lkIHNveiBzIHNwayBzb2wgc3RlIHN0ZyB1IHRhcyB0IHRobSB0dHogdmFuIHZkaSB3YW0gd2tiIHdrZCB3a3Ygd3dvIHpjYSB6Y3cgeiB6Z2UgZSB6d2knKSIgPj4kQ0RGaWxlCisgCisjICAgTmV1YWtxdWlzaXRpb25lbiAyMDI0LUk6CisjCisjIC0gKi5kZWYgKyBCaXRtYXBzIGVyemV1Z3QgbWl0IC9DMi9JWDIvUkVTL0JNUy9ORVVBS1FVSS9kb05ldWFrcXVpLgorIyAtIERhdGVpZW4gYXV0b21hdGlzY2ggYXVzIGRlbSBWZXJnbGVpY2ggdm9uIHctYWxsIHVuZCB3LW5ldSBlcnpldWd0LgorIyAtIERhdGVpZW4gYXV0b20uIGluIC9ibS8ga29waWVydCB1bmQgRWludHJhZyBjZGVmLm5ldWFrcXVpLnR4dCBlcnpldWd0LCBkZXIKKyMgICBoaWVyIHJlaW5rb3BpZXJ0IHd1cmRlLgorIyBQLlMuIGxldHp0ZW5kbGljaCBpbiBkaWUgYmVzdGVoZW5kZW4gU2tyaXB0ZSBpbnRlZ3JpZXJ0LgorIyAyNi4wMy4yMS9GQgorCisjZWNobyAiJDA6IGNhbGxpbmcgJEJJTi9jMnRlc3QgJFNMICREQk4gJFNWIC1hZDJiOm86TmFtZV9laW5lc19WQyIKKworIyMjIERpZXNlIEtvcnBvcmEgc2luZCBlaW5nZWZyb3JlbgorIyMjIHNpZWhlIHg0NjAwbTI6L2V4cG9ydC9ob21lMS9DMl9ob21lMi9DMi9yZXMvYzIvYm0vUkVBRE1FLnV3diAhISEKKyMgICBkYSBkZXIgQXVmYmF1IGRlciBLb3JwdXMtQml0bWFwIGxhbmdlIGRhdWVydCwgd2lyZCBjMnRlc3QgaW0gSGludGVyZ3J1bmQgZ2VzdGFydGV0LgorIyAgIGxhc3QgRGVSZUtvLXJlbGVhc2UgaXMgYWNjZXNzaWJsZSB0byBldmVyeWJvZHkuCisKK2VjaG8gLWUgIlctZ2VzYW10LTIwMjMtSSAtIFctZ2VzYW10IHZvbiBSZWxlYXNlIERlUmVLby0yMDIzLUkgX0JsdWVfXHRMT0FEKCdjb3JwLXctZ2VzYW10LjIwMjMtaS4xNi4wMy4yMycpIiA+PiAkQ0RGaWxlCisKK2VjaG8gLWUgIlctZ2VzYW10LTIwMjItSSAtIFctZ2VzYW10IHZvbiBSZWxlYXNlIERlUmVLby0yMDIyLUkgX0JsdWVfXHRMT0FEKCdjb3JwLXctZ2VzYW10LjIwMjItaS4yMS4wNi4yMicpIiA+PiAkQ0RGaWxlCisKK2VjaG8gLWUgIlctZ2VzYW10LTIwMjEtSSAtIFctZ2VzYW10IHZvbiBSZWxlYXNlIERlUmVLby0yMDIxLUkgX0JsdWVfXHRMT0FEKCdjb3JwLXctZ2VzYW10LjIwMjEtaS4xMS4wOC4yMScpIiA+PiAkQ0RGaWxlCisKK2VjaG8gLWUgIlctZ2VzYW10LTIwMjAtSSAtIFctZ2VzYW10IHZvbiBSZWxlYXNlIERlUmVLby0yMDIwLUkgX0JsdWVfXHRMT0FEKCdjb3JwLXctZ2VzYW10LjIwMjAtaS4xNS4wNS4yMCcpXHRHX1VXViIgPj4gJENERmlsZQorCitlY2hvIC1lICJXLWdlc2FtdC0yMDE4LUlJIC0gVy1nZXNhbXQgdm9uIFJlbGVhc2UgRGVSZUtvLTIwMTgtSUkgX0JsdWVfXHRMT0FEKCdjb3JwLXctZ2VzYW10LjIwMTgtaWkuMDUuMTIuMTgnKVx0R19VV1YiID4+ICRDREZpbGUKKworZWNobyAtZSAiVy1nZXNhbXQtMjAxNy1JIC0gVy1nZXNhbXQgdm9uIFJlbGVhc2UgRGVSZUtvLTIwMTctSSBfQmx1ZV9cdExPQUQoJ2NvcnAtdy1nZXNhbXQuMjAxNy1pLjE3LjEwLjE3JylcdEdfVVdWIiA+PiAkQ0RGaWxlCisKK2ZvciBjIGluIGNvcnAtdy1nZXNhbXQuMjAyMy1pLjE2LjAzLjIzICBjb3JwLXctZ2VzYW10LjIwMjItaS4yMS4wNi4yMiBcCisJCQljb3JwLXctZ2VzYW10LjIwMjEtaS4xMS4wOC4yMSAgY29ycC13LWdlc2FtdC4yMDIwLWkuMTUuMDUuMjAgXAorCQkJY29ycC13LWdlc2FtdC4yMDE4LWlpLjA1LjEyLjE4IGNvcnAtdy1nZXNhbXQuMjAxNy1pLjE3LjEwLjE3CitkbworCWJ1aWxkX2JpZ19kZWYgJGMgJgorZG9uZQorCisjIyMgR2Viw7xuZGVsdGUsYWxsZ2VtZWluZSBLb3Jwb3JhIChfTWFyb29uXyk6CisKKyMgZ3JpICsga2psIGFkZGVkIHRvIGxpdCAtIDA2LjA1LjIyL0ZCCitlY2hvIC1lICIiCitlY2hvIC1lICJsaXQgLSBCZWxsZXRyaXN0aWsvVHJpdmlhbGxpdGVyYXR1ciBfTWFyb29uXyBcdExPQUQoJ2JpaCBiaW8gYmlvLXB1YiBkaXYgZGl2LXB1YiBncjEgZ3JpIGhlcyBramwgbGVzIHdhbSB0aG0tbGl0IG1pc2MtbGl0JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAiJFNWIiAtYWQyYjpvOnRobS1saXQKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgIiRTViIgLWFkMmI6bzptaXNjLWxpdAorCisjZWNobyAtZSAib3prIC0g1nN0ZXJyZWljaGlzY2hlcyBaZWl0dW5nc2tvcnB1cywgMTk5MSAtICRfVEhJU19ZRUFSIF9NYXJvb25fXHRMT0FEKCdidnogcCBwcmYgZmx0IGtseiBuZXcgbmt6IG5vbiBvb24gc2JuIHR0eiB2YW4nKSIgPj4kQ0RGaWxlCisKK2VjaG8gLWUgIm5kUiAtIEtvcnBvcmEgbWl0IPxiZXJ3aWVnZW5kIG5ldWVyIFJlY2h0c2NocmVpYnVuZyBfTWFyb29uX1x0TE9BRCgnbmRyLWFsbCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bmRyLWFsbAorCisjIGzkbmRlcnNwZXppZmlzY2hlIEtvcnBvcmEKKworZWNobyAtZSAiQS1Lb3Jwb3JhIC0gS29ycG9yYSBhdXMg1nN0ZXJyZWljaCBfTWFyb29uX1x0TE9BRCgnY29ycC1hJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpjb3JwLWEKKworZWNobyAtZSAiQ0gtS29ycG9yYSAtIGRldXRzY2hzcHJhY2hpZ2UgS29ycG9yYSBhdXMgZGVyIFNjaHdlaXogX01hcm9vbl9cdExPQUQoJ2NvcnAtY2gnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmNvcnAtY2gKKworZWNobyAtZSAiRC1Lb3Jwb3JhIC0gS29ycG9yYSBhdXMgRGV1dHNjaGxhbmQgX01hcm9vbl9cdExPQUQoJ2NvcnAtZCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86Y29ycC1kCisKK2VjaG8gLWUgIkwtS29ycG9yYSAtIGRldXRzY2hzcHJhY2hpZ2UgS29ycG9yYSBhdXMgTHV4ZW1idXJnIF9NYXJvb25fXHRMT0FEKCdjb3JwLWwnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmNvcnAtbAorCisjIyMgUHJvamVrdGtvcnBvcmEgKF9HcmVlbl8pOgorCisjIyMgVE9ETzogc2llaGUgTWFpbCB2b20gMjMuMDIuMTYgKE1haWwvY29udmVydGVkX2Zyb21fVEhCL0NPU01BU0lJLnNiZC9JbmRleGllcnVuZy5zYmQvTmV3c2xldHRlcikKKyMgQW5zcHJlY2hzcGFydG5lciBmdWVyIGRpZSBadXNhbW1lbnNldHp1bmcgdm9uIGRmd2I6IEhlcmJlcnQgU2NobWlkdCwgSURTCisKK2VjaG8gLWUgIiIKK2VjaG8gLWUgImRmd2IgLSB2aXJ0LiBLb3JwdXMgZGVzIERldXRzY2hlbiBGcmVtZHf2cnRlcmJ1Y2hlcyBfR3JlZW5fXHRMT0FEKCdkZndiMzMgZGZ3Yi1mcmFnIGJpbyBiaW8tcHViIGRmd2ItcCBmYXogZnNwIGZzcC1wdWIgaG1wIGRmd2Itc3BpZWdlbCBhIHNwayB2ZGknKSIgPj4gJENERmlsZQorCitmb3IgbmFtZSBpbiBkZndiMzMgZGZ3Yi1mcmFnIGRmd2ItcCBkZndiLXNwaWVnZWwKK2RvCisJJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzokbmFtZQorZG9uZQorCisjIHctZnJlaToKKyMgVmlydHVlbGxlcyBLb3JwdXMgZsO8ciBkaWUgV2ViU2VydmljZXMuCisjIEhpZXIgYXVmYmF1ZW4sIGFiZXIgbmljaHQgaW4gZGllIExpc3RlbiBjZGVmLmFsbHxwdWIudHh0IGF1Zm5laG1lbi4KKyMgMTYuMDQuMjEvRkIKKworJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp3LWZyZWkKKworIyMjIFRPRE86IHNpZWhlIC9ob21lL2MyYWRtaW4vaXgvaXgvY2ZnL2Jtcy9jcmVhdGVfbmRyLnBsCisjIyMgTk9URSAxOiAiY2F0IC9leHBvcnQvaG9tZTMvQzIvZGIvb2ZmL3cvYXV4ZGIvYXV4LWRuYW1lcy5kYXR8Li4vY3JlYXRlX25kci5wbCA+IG5kci5kZWYiCisjIyMJCSAgenVyIEdlbmVyaWVydW5nIHZvbiAnREVGL25kci5kZWYnIGF1c2Z1ZWhyZW4hCisjIyMgTk9URSAyOiBnZW5lcmllcnRlIERhdGVpIHZvbiBIYW5kIHBydWVmZW4gKHZpIC1kIG5kci5kZWYgREVGL25kci5kZWYpCisjICAgICAgICAgICBEZVJlS28tMjAyMS1JOgorIyAgIE1PVEUgMzogbmRyLWFsbC5kZWYgdW5kIG5kci1wdWIuZGVmIHNpbmQgamV0enQgdm9yZGVmaW5pZXJ0LCBwYXNzZW4gc2ljaCBhbgorIyAgICAgICAgICAgZGllIGxldHp0ZSBBa3R1YWxpc2llcnVuZyBhdXRvbWF0aXNjaCBhbiB1bmQgZXJzZXR6ZW4gZGllIEdlbmVyaWVydW5nCisjICAgICAgICAgICB2b24gbmRyLXB1Yi5kZWYgdW5kIG5kci1ucHViLmRlZi4KKyMgICAgICAgICAgIGNkZWYuYWxsLnR4dCAtPiBuZHItYWxsLmRlZiAvIGNkZWYucHViLnR4dCAtPiBuZHIucHViLmRlZi4KKworCisjIyMKK2VjaG8gLWUgInJzcmF0IC0gUmVjaHRzY2hyZWlicmF0LUtlcm5rb3JwdXMgaW4gVyBfR3JlZW5fXHRMT0FEKCdjb3JwLXctcnNyYXQnKVx0R19SZWNodHNjaHJlaWJyYXQiID4+ICRDREZpbGUKK2J1aWxkX2JpZ19kZWYgY29ycC13LXJzcmF0ICYKKyMjIworZWNobyAtZSAidmFzLW45MSAtIFByb2pla3Rrb3JwdXMgVkFTIE45MSwgU3RhbmQgSnVsaSAyMDEzIChrb3JyLiAyMDE3KSBfR3JlZW5fXHRMT0FEKCdjb3JwLXctdmFzLW45MS1rb3IxNycpXHRHX1ZBUyIgPj4gJENERmlsZQorYnVpbGRfYmlnX2RlZiBjb3JwLXctdmFzLW45MS1rb3IxNyAmCisjIyMKKworZWNobyAtZSAiYmloIC0gSGVyYXVzZ2ViZXJ0ZXh0ZSB6dW0gS29ycHVzIGJpb1x0TE9BRCgnYmloJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpiaWgKKyAKK2VjaG8gLWUgImJpbyAtIEJpb2dyYWZpc2NoZSBMaXRlcmF0dXJcdExPQUQoJ2JpbyBiaW8tcHViJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpiaW8KKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86YmlvLXB1YgorCitlY2hvIC1lICJkaXYgLSBCZWxsZXRyaXN0aWsgZGVzIDIwLiB1bmQgMjEuIEphaHJodW5kZXJ0czogRGl2ZXJzZSBTY2hyaWZ0c3RlbGxlclx0TE9BRCgnZGl2IGRpdi1wdWInKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmRpdgorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpkaXYtcHViCisKK2VjaG8gLWUgImJtcCAtIEJlcmxpbmVyIE1vcmdlbnBvc3QsIDE5OTcgLSAkX1RISVNfWUVBUlx0TE9BRCgnbCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bAorCitlY2hvIC1lICJicnogLSBCcmF1bnNjaHdlaWdlciBaZWl0dW5nLCBTZXB0ZW1iZXIgMjAwNSAtIEp1bmkgMjAxM1x0TE9BRCgnYnJ6JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpicnoKKworIyMjIDI3LjA2LjE3OiBidnogd2FzIE5PVCB1cGRhdGVkIHNpbmNlIERlUmVLby0yMDE1LUlJCisjI2VjaG8gLWUgImJ2eiAtIEJ1cmdlbmzkbmRpc2NoZSBWb2xrc3plaXR1bmcsIEphbnVhciAyMDA3IC0gJF9CVlogJF9USElTX1lFQVJcdExPQUQoJ2J2eicpIiA+PiRDREZpbGUKKyNlY2hvIC1lICJidnogLSBCdXJnZW5s5G5kaXNjaGUgVm9sa3N6ZWl0dW5nLCAyMDA3IC0gJF9USElTX1lFQVJcdExPQUQoJ2J2eicpIiA+PiRDREZpbGUKK2VjaG8gLWUgImJ2eiAtIEJ1cmdlbmzkbmRpc2NoZSBWb2xrc3plaXR1bmcsIDIwMDcgLSAyMDE1XHRMT0FEKCdidnonKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmJ2egorCitlY2hvIC1lICJiemsgLSBCb25uZXIgWmVpdHVuZ3Nrb3JwdXNcdExPQUQoJ2J6aycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86YnprCisKK2VjaG8gLWUgImJ6dCAtIEJlcmxpbmVyIFplaXR1bmcsIDE5OTcgLSAkX1RISVNfWUVBUlx0TE9BRCgnYicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86YgorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpiLXB1YgorCitlY2hvIC1lICJjJ3QgLSBNYWdhemluIGb8ciBDb21wdXRlcnRlY2huaWssIDIwMTcgLSAkX1RISVNfWUVBUlx0TE9BRCgnY3QnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmN0CisKK2VjaG8gLWUgImN6IC0gQ29tcHV0ZXIgWmVpdHVuZywgSmFudWFyIDE5OTMgLSBEZXplbWJlciAxOTk4XHRMT0FEKCdjeicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86Y3oKKworZWNobyAtZSAiZGNrIC0gRG9ydG11bmRlciBDaGF0a29ycHVzIDIuMlx0TE9BRCgnZGNrJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpkY2sKKworZWNobyAtZSAiZGtnIC0gRmFjaHNwcmFjaGVuLUtvcnB1cyAyOiBHZW50ZWNobm9sb2dpZVx0TE9BRCgnZGtnJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpka2cKKworIyNlY2hvIC1lICJkcGEgLSBNZWxkdW5nZW4gZGVyIERldXRzY2hlbiBQcmVzc2UtQWdlbnR1ciwgSmFudWFyIDIwMDYgLSBEZXplbWJlciAyMDA5LCBBcHJpbCAyMDEwIC0gJF9EUEEgJF9USElTX1lFQVJcdExPQUQoJ2RwYScpIiA+PiRDREZpbGUKK2VjaG8gLWUgImRwYSAtIE1lbGR1bmdlbiBkZXIgRGV1dHNjaGVuIFByZXNzZS1BZ2VudHVyLCAyMDA2IC0gJF9USElTX1lFQVJcdExPQUQoJ2RwYScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86ZHBhCisKKyMjZWNobyAtZSAiZHByIC0gRGllIFByZXNzZSwgU2VwdGVtYmVyIDE5OTEgLSBEZXplbWJlciAyMDAwXHRMT0FEKCdwJykiID4+JENERmlsZQorZWNobyAtZSAiZHByIC0gRGllIFByZXNzZSwgMTk5MSAtICRfVEhJU19ZRUFSXHRMT0FEKCdwJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpwCisKK2VjaG8gLWUgImVyayAtIEFtIEVya2VyXHRMT0FEKCdlcmsnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmVyaworCitlY2hvIC1lICJmbHQgLSBGYWx0ZXIsIDIwMDAgLSAkX1RISVNfWUVBUlx0TE9BRCgnZmx0JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpmbHQKKworZWNobyAtZSAiZmF6IC0gRnJhbmtmdXJ0ZXIgQWxsZ2VtZWluZSwgMTk5MywgMTk5NSB1bmQgMTk5NyAtIDIwMDUgKHVuZ2VyYWRlIEphaHJn5G5nZSB1bmQgTW9uYXRlKVx0TE9BRCgnZmF6JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpmYXoKKworIyNlY2hvIC1lICJmb2MgLSBGT0NVUywgSmFudWFyIDIwMDAgLSAkX0ZPQyAkX1RISVNfWUVBUlx0TE9BRCgnZm9jJykiID4+JENERmlsZQorZWNobyAtZSAiZm9jIC0gRk9DVVMsIDIwMDAgLSAkX1RISVNfWUVBUlx0TE9BRCgnZm9jJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpmb2MKKworZWNobyAtZSAiZnJyIC0gRnJhbmtmdXJ0ZXIgUnVuZHNjaGF1LCBKYW51YXIgMTk5NyAtIERlemVtYmVyIDE5OTlcdExPQUQoJ2ZycicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86ZnJyCisKK2VjaG8gLWUgImZzcCAtIEZhY2hzcHJhY2hlbi1Lb3JwdXMgMVx0TE9BRCgnZnNwIGZzcC1wdWInKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmZzcAorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpmc3AtcHViCisKK2VjaG8gLWUgImdvZSAtIEdvZXRoZXMgV2Vya2VcdExPQUQoJ2dvZScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86Z29lCisKK2VjaG8gLWUgImdyMSAtIEdyYW1tYXRpay1Lb3JwdXNcdExPQUQoJ2dyMScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86Z3IxCisKK2VjaG8gLWUgImdyaSAtIEJy/GRlciBHcmltbTogU2FnZW4sIEtpbmRlci0gdW5kIEhhdXNt5HJjaGVuLCBLaW5kZXJsZWdlbmRlblx0TE9BRCgnZ3JpJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpncmkKKworIyNlY2hvIC1lICJoYXogLSBIYW5ub3ZlcnNjaGUgQWxsZ2VtZWluZSwgQXVndXN0IDIwMDcgLSAkX0hBWiAkX1RISVNfWUVBUlx0TE9BRCgnaGF6JykiID4+JENERmlsZQorZWNobyAtZSAiaGF6IC0gSGFubm92ZXJzY2hlIEFsbGdlbWVpbmUsIDIwMDcgLSAkX1RISVNfWUVBUlx0TE9BRCgnaGF6JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpoYXoKKworZWNobyAtZSAiaGJrIC0gSGFuZGJ1Y2gtS29ycG9yYSwgMTk4NSAtIDE5ODhcdExPQUQoJ2hiaycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86aGJrCisKK2VjaG8gLWUgImhlcyAtIEJlbGxldHJpc3RpayBkZXMgMjAuIEphaHJodW5kZXJ0czogU3RlZmFuIEhleW1cdExPQUQoJ2hlcycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86aGVzCisKKyMjZWNobyAtZSAiaG1wIC0gSGFtYnVyZ2VyIE1vcmdlbnBvc3QsIEFwcmlsIDIwMDUgLSAkX0hNUCAkX1RISVNfWUVBUlx0TE9BRCgnaG1wJykiID4+JENERmlsZQorZWNobyAtZSAiaG1wIC0gSGFtYnVyZ2VyIE1vcmdlbnBvc3QsIDIwMDUgLSAkX1RISVNfWUVBUlx0TE9BRCgnaG1wJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpobXAKKworZWNobyAtZSAiaWtvIC0gSW50ZXJ2aWV3a29ycHVzXHRMT0FEKCdpa28nKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmlrbworCitlY2hvIC1lICJpeCAtIE1hZ2F6aW4gZvxyIHByb2Zlc3Npb25lbGxlIEluZm9ybWF0aW9uc3RlY2huaWssIDIwMTcgLSAkX1RISVNfWUVBUlx0TE9BRCgnaXgnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOml4CisKK2VjaG8gLWUgImtpYyAtIEZ132JhbGwtTGl2ZXRpY2tlciwga2lja2VyLmRlLCAyMDA2IC0gMjAxNlx0TE9BRCgna2ljJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpraWMKKworZWNobyAtZSAia2psIC0gS2luZGVyLSB1bmQgSnVnZW5kbGl0ZXJhdHVyXHRMT0FEKCdramwnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmtqbAorCitlY2hvIC1lICJrbHogLSBLbGVpbmUgWmVpdHVuZywgQXVndXN0IDE5OTYgLSBEZXplbWJlciAyMDAwXHRMT0FEKCdrbHonKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmtsegorCitlY2hvIC1lICJrc3AgLSBGdd9iYWxsLVNwaWVsYmVyaWNodGUsIGtpY2tlci5kZSwgMjAwNiAtIDIwMTZcdExPQUQoJ2tzcCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86a3NwCisKK2VjaG8gLWUgImxlcyAtIEJlbGxldHJpc3RpayBkZXMgMjAuIEphaHJodW5kZXJ0czogU2llZ2ZyaWVkIExlbnpcdExPQUQoJ2xlcycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bGVzCisKK2VjaG8gLWUgImxpbSAtIExJTUFTLUtvcnB1c1x0TE9BRCgnbGltJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpsaW0KKworZWNobyAtZSAibG1kIC0gTGUgTW9uZGUgZGlwbG9tYXRpcXVlLCAyMDE3IC0gJF9USElTX1lFQVJcdExPQUQoJ2xtZCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bG1kCisKK2VjaG8gLWUgImxveiAtIEJlbGxldHJpc3RpayBkZXMgMjAuIHVuZCAyMS4gSmFocmh1bmRlcnRzXHRMT0FEKCdkaXYgZGl2LXB1YiBoZXMgbGVzIHdhbScpIiA+PiRDREZpbGUKKworIyNlY2hvIC1lICJsdGIgLSBMdXhlbWJ1cmdlciBUYWdlYmxhdHQsIEphbnVhciAyMDA4IC0gJF9MVEIgJF9USElTX1lFQVJcdExPQUQoJ2x0YicpIiA+PiRDREZpbGUKK2VjaG8gLWUgImx0YiAtIEx1eGVtYnVyZ2VyIFRhZ2VibGF0dCwgMjAwOCAtICRfVEhJU19ZRUFSXHRMT0FEKCdsdGInKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmx0YgorCitlY2hvIC1lICJtayAtIE1hbm5oZWltZXIgS29ycG9yYSAxKzJcdExPQUQoJ21rMSBtazInKSIgPj4kQ0RGaWxlCisKK2VjaG8gLWUgIm1rMSAtIE1hbm5oZWltZXIgS29ycHVzIDFcdExPQUQoJ21rMScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bWsxCisKK2VjaG8gLWUgIm1rMiAtIE1hbm5oZWltZXIgS29ycHVzIDJcdExPQUQoJ21rMicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bWsyCisKK2VjaG8gLWUgIm1sZCAtIEtvcnB1cyBNYWdhemluIEx1ZnRoYW5zYSBCb3JkYnVjaC9kZXV0c2NoXHRMT0FEKCdtbGQnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm1sZAorCisjI2VjaG8gLWUgIm1tIC0gTWFubmhlaW1lciBNb3JnZW4sIEphbnVhciAxOTk1IC0gJF9NTSAkX1RISVNfWUVBUiAoZGllIEphaHJn5G5nZSAxOTk1LCAxOTk3IHVuZCAyMDAwIHNpbmQgdW52b2xsc3TkbmRpZylcdExPQUQoJ20nKSIgPj4kQ0RGaWxlCitlY2hvIC1lICJtbSAtIE1hbm5oZWltZXIgTW9yZ2VuLCAxOTk1IC0gJF9USElTX1lFQVIgKGRpZSBKYWhyZ+RuZ2UgMTk5NSwgMTk5NyB1bmQgMjAwMCBzaW5kIHVudm9sbHN05G5kaWcpXHRMT0FEKCdtJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzptCisKK2VjaG8gLWUgIm5ldSAtIE5ldWxhbmQ6IERhcyBXaXJ0c2NoYWZ0c21hZ2F6aW4gZGVyIFJlZ2lvbmVuLCBPa3QuIDIwMDc7IE1yei4sSnVsLixEZXouIDIwMDg7IEF1Zy4gMjAwOVx0TE9BRCgnbmV1JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpuZXUKKworIyNlY2hvIC1lICJuZXdzIC0gTkVXUywgSmFudWFyIDIwMDIgLSAkX05FV1MgJF9USElTX1lFQVJcdExPQUQoJ25ldycpIiA+PiRDREZpbGUKK2VjaG8gLWUgIm5ld3MgLSBORVdTLCAyMDAyIC0gJF9USElTX1lFQVJcdExPQUQoJ25ldycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bmV3CisKKyMjIyAwMS4wNy4yMDE3OgorIyMjIHVzZSB0aGUgYmVsb3cgc2NyaXB0cyBmb3IgZ2VuZXJhdGluZyB0aGUgYXBwcm9wLiBuZXcgbmctZW50cmllcyBpbiAnREVGL25ldy1ucHViLmRlZic6CisjIyMgdW5zZXQgTElTVAorIyMjIHdoaWxlIHJlYWQ7IGRvIGlmIFsgLXogIiRMSVNUIiBdO3RoZW4gTElTVD0iJFJFUExZIjtlbHNlIExJU1Q9IiR7TElTVH1cbiR7UkVQTFl9IjtmaTsgZG9uZSA8IDwoZm9yIGkgaW4gYGxzIC0xIC9wb29sMy9EZVJlS28vRGVSZUtvLTIwMTctSS9JNS9uZyouaTUueG1sLmJ6MmA7ZG8gYnpjYXQgJGl8cGVybCAtbmUgJ2Nob21wO2lmKHMvXlxzKjxkLnRpdGxlPiguKylbMC05XXs0fTxcL2QudGl0bGU+JC8kMS8pe3ByaW50ICIgJF9cbiI7bGFzdH07cHJpbnQgaWYgcy9eXHMqPGtvcnB1c1NpZ2xlPihbXjxdKyk8XC9rb3JwdXNTaWdsZT4kLyQxLyc7ZG9uZSkKKyMjIyBleHBvcnQgTElTVAorIyMjIHdoaWxlIHJlYWQ7IGRvIGV4cG9ydCBSRVBMWTsgcGVybCAtZSAnJEVOVntSRVBMWX09fi9eKFteXC9dKykuKz8oWzAtOV0rKSQvOyRrcz0kMTskeWVhcj0kMjskRU5We0xJU1R9PX4vJGtzIChbXlxcXG5dKykvO3ByaW50ICI8ZG9jPiRFTlZ7UkVQTFl9ICR7MX0yMCR5ZWFyPC9kb2M+XG4iJzsgZG9uZSA8IDwoZm9yIGkgaW4gYGNhdCAvcG9vbDMvaG9tZTYvRElGRi9kaWZmX2NzLkRlUmVLby0yMDE3LUlfeHMvREEvbmcqLmRhYDtkbyBlY2hvICRpO2RvbmUpID4+IERFRi9uZXctcHViLmRlZgorIyMjIE5PVEU6IHRoZSBhYm92ZSB3aGlsZS1sb29wIG9ubHkgcmVmZXJzIHRvIF9hZGRlZF8gZG9jdW1lbnRzICguLi4vREEvLi4uKSBhbmQgX25vdF8gY29tcGxldGVseSBuZXcgb25lcyAoaW4gdGhpcyBjYXNlIGxpa2UgJ25nYWx0JykKKyMjIworZWNobyAtZSAibmcgLSAnZGUuKictVXNlbmV0LU5ld3NncnVwcGVuLCAyMDEzIC0gMjAxNlx0TE9BRCgnbmcnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm5nCisKK2VjaG8gLWUgIm5rdSAtIE5vcmRrdXJpZXIsIDIwMDAgLSAkX1RISVNfWUVBUlx0TE9BRCgnbmt1JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpua3UKKworZWNobyAtZSAibmt6IC0gTmV1ZSBLcm9uZW4tWmVpdHVuZywgSmFudWFyIDE5OTQgLSBNYWkgMjAwMFx0TE9BRCgnbmt6JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpua3oKKworZWNobyAtZSAibm9uIC0gTmllZGVy9nN0ZXJyZWljaGlzY2hlIE5hY2hyaWNodGVuLCAyMDA3IC0gJF9USElTX1lFQVJcdExPQUQoJ25vbicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bm9uCisKK2VjaG8gLWUgIm51biAtIE78cm5iZXJnZXIgTmFjaHJpY2h0ZW4sIDE5OTAgLSAkX1RISVNfWUVBUlx0TE9BRCgnbnVuJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpudW4KKworZWNobyAtZSAibnV6IC0gTvxybmJlcmdlciBaZWl0dW5nLCAyMDAyIC0gJF9USElTX1lFQVJcdExPQUQoJ251eicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bnV6CisKK2VjaG8gLWUgIm56ZiAtIE5aWiBGb2xpbywgMTk5NCAtICRfVEhJU19ZRUFSXHRMT0FEKCduemYnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm56ZgorCitlY2hvIC1lICJuenMgLSBOWlogYW0gU29ubnRhZywgMjAwMiAtICRfVEhJU19ZRUFSXHRMT0FEKCduenMnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm56cworCitlY2hvIC1lICJuenogLSBOZXVlIFr8cmNoZXIgWmVpdHVuZywgMjAwMCAtICRfVEhJU19ZRUFSXHRMT0FEKCduenonKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm56egorCitlY2hvIC1lICJvb24gLSBPYmVy9nN0ZXJyZWljaGlzY2hlIE5hY2hyaWNodGVuLCAxOTk2IC0gMTk5N1x0TE9BRCgnb29uJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpvb24KKworIyBBbnNwcmVjaHBhcnRuZXI6IEhhcmFsZCBMdWVuZ2VuCitlY2hvIC1lICJwcCAtIFBsZW5hcnByb3Rva29sbGVcdExPQUQoJ3BwJykiID4+ICRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgIiRTViIgLWFkMmI6bzpwcAorCitlY2hvIC1lICJwcmYgLSBwcm9maWwsIDIwMDAgLSAkX1RISVNfWUVBUlx0TE9BRCgncHJmJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAiJFNWIiAtYWQyYjpvOnByZgorCitlY2hvIC1lICJyZWkgLSBSZWRlbiB1bmQgSW50ZXJ2aWV3cywgSmFudWFyIDIwMDIgLSBEZXplbWJlciAyMDA2XHRMT0FEKCdyZWknKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnJlaQorCitlY2hvIC1lICJyaHAgLSBEaWUgUmhlaW5wZmFseiwgMjAwNyAtICRfVEhJU19ZRUFSXHRMT0FEKCdyaHAnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnJocAorCitlY2hvIC1lICJyaHogLSBSaGVpbi1aZWl0dW5nLCAxOTk2IC0gJF9USElTX1lFQVJcdExPQUQoJ3JoeicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86cmh6CisKK2VjaG8gLWUgInNibCAtIFNvbm50YWdzYmxpY2ssIEZlYi4gMjAwMTsgMjAwNSAtICRfVEhJU19ZRUFSXHRMT0FEKCdzYmwnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnNibAorCitlY2hvIC1lICJzYm4gLSBTYWx6YnVyZ2VyIE5hY2hyaWNodGVuLCBKdW5pIDE5OTEgLSBEZXplbWJlciAyMDAwXHRMT0FEKCdzYm4nKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnNibgorCitlY2hvIC1lICJzZ3QgLSBTdC4gR2FsbGVyIFRhZ2JsYXR0LCAxOTk3IC0gMjAwMSwgMjAwNyAtICRfVEhJU19ZRUFSXHRMT0FEKCdhJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzphCisKK2VjaG8gLWUgInNpZCAtIEZ132JhbGwtTGl2ZXRpY2tlciwgU3BvcnQtSW5mb3JtYXRpb25zLURpZW5zdCwgMjAxMCAtIDIwMTZcdExPQUQoJ3NpZCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86c2lkCisKK2VjaG8gLWUgInNveiAtIERpZSBT/GRvc3RzY2h3ZWl6LCAyMDA1IC0gMjAxOFx0TE9BRCgnc296JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpzb3oKKworZWNobyAtZSAic3BpZWdlbCAtIERlciBTcGllZ2VsLCAxOTQ3IC0gJF9USElTX1lFQVJcdExPQUQoJ3MnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnMKKworZWNobyAtZSAic3BvbiAtIFNwaWVnZWwtT25saW5lLCAxOTk5IC0gJF9USElTX1lFQVJcdExPQUQoJ3NvbCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86c29sCisKK2VjaG8gLWUgInNwayAtIHNwZWt0cnVtZGlyZWt0LCBKYW51YXIgMTk5NyAtIEF1Z3VzdCAyMDEyXHRMT0FEKCdzcGsnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnNwaworCitlY2hvIC1lICJzdGUgLSBTdGVybiwgMTk5NiAtICRfVEhJU19ZRUFSXHRMT0FEKCdzdGUnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnN0ZQorCitlY2hvIC1lICJzdGcgLSBTdGVybiBHZXN1bmQgbGViZW4sIDIwMTggLSAkX1RISVNfWUVBUlx0TE9BRCgnc3RnJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpzdGcKKworZWNobyAtZSAic3ogLSBT/GRkZXV0c2NoZSBaZWl0dW5nLCAxOTkyIC0gJF9USElTX1lFQVJcdExPQUQoJ3UnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnUKKworZWNobyAtZSAidGFzIC0gU29ubnRhZ3NaZWl0dW5nIChUYWdlcy1BbnplaWdlciksIDIwMDAgLSAkX1RISVNfWUVBUlx0TE9BRCgndGFzJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp0YXMKKworZWNobyAtZSAidGF6IC0gZGllIHRhZ2VzemVpdHVuZywgMTk4NiAtICRfVEhJU19ZRUFSXHRMT0FEKCd0JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp0CiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnQtcHViCisKK2VjaG8gLWUgInRobSAtIFRob21hcy1NYW5uLUtvcnB1c1x0TE9BRCgndGhtJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp0aG0KKworZWNobyAtZSAidHR6IC0gVGlyb2xlciBUYWdlc3plaXR1bmcsIEphbnVhciAxOTk2IC0gRGV6ZW1iZXIgMjAwMFx0TE9BRCgndHR6JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp0dHoKKworZWNobyAtZSAidmFuIC0gVm9yYXJsYmVyZ2VyIE5hY2hyaWNodGVuLCBKYW51YXIgMTk5NyAtIERlemVtYmVyIDIwMDBcdExPQUQoJ3ZhbicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86dmFuCisKK2VjaG8gLWUgInZkaSAtIFZESSBuYWNocmljaHRlbiwgMjAwNiAtICRfVEhJU19ZRUFSXHRMT0FEKCd2ZGknKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnZkaQorCitlY2hvIC1lICJ3YW0gLSBCZWxsZXRyaXN0aWsgZGVzIDIwLiBKYWhyaHVuZGVydHM6IE1hcnRpbiBXYWxzZXJcdExPQUQoJ3dhbScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86d2FtCisKK2VjaG8gLWUgIndrYiAtIFdlbmRla29ycHVzL1dlc3RcdExPQUQoJ3drYicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86d2tiCisKK2VjaG8gLWUgIndrZCAtIFdlbmRla29ycHVzL09zdFx0TE9BRCgnd2tkJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp3a2QKKworZWNobyAtZSAid2sgLSBXZW5kZWtvcnBvcmEgV2VzdCtPc3RcdExPQUQoJ3drYiB3a2QnKSIgPj4kQ0RGaWxlCisKK2VjaG8gLWUgIndrdiAtIFdlbmRla29ycHVzL1ZlcmVpbmlndW5nXHRMT0FEKCd3a3YnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOndrdgorCitlY2hvIC1lICJ3cGQxMSAtIFdpa2lwZWRpYSBBcnRpa2VsIChTdGFuZDogMjkuMTAuMjAxMSlcdExPQUQoJ3dwZDExJykiID4+ICRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86d3BkMTEKKworZWNobyAtZSAid2RkMTEgLSBXaWtpcGVkaWEgRGlza3Vzc2lvbmVuIChTdGFuZDogMjkuMTAuMjAxMSlcdExPQUQoJ3dkZDExJykiID4+ICRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86d2RkMTEKKworZWNobyAtZSAid3h4MTEgLSBXaWtpcGVkaWEgQXJ0aWtlbCB1bmQgRGlza3Vzc2lvbmVuIChTdGFuZDogMjkuMTAuMjAxMSlcdExPQUQoJ3d4eDExJykiID4+ICRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86d3h4MTEKKworZWNobyAtZSAid3dvIC0gV2VsdHdvY2hlLCAyMDA1IC0gJF9USElTX1lFQVJcdExPQUQoJ3d3bycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86d3dvCisKK2VjaG8gLWUgInpjYSAtIFplaXQgQ2FtcHVzLCAyMDA5IC0gJF9USElTX1lFQVJcdExPQUQoJ3pjYScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86emNhCisKK2VjaG8gLWUgInpjdyAtIFpFSVQgQ2hyaXN0IHVuZCBXZWx0LCAyMDE1IC0gJF9USElTX1lFQVJcdExPQUQoJ3pjdycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86emN3CisKK2VjaG8gLWUgInplaXQgLSBEaWUgWmVpdCwgMTk1MyAtICRfVEhJU19ZRUFSXHRMT0FEKCd6JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp6CisKK2VjaG8gLWUgInpnZSAtIFplaXQgR2VzY2hpY2h0ZSwgMjAxMCAtICRfVEhJU19ZRUFSXHRMT0FEKCd6Z2UnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnpnZQorCitlY2hvIC1lICJ6dGEgLSBUYWdlcy1BbnplaWdlciwgMTk5NiAtICRfVEhJU19ZRUFSXHRMT0FEKCdlJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzplCisKK2VjaG8gLWUgInp3aSAtIFplaXQgV2lzc2VuICh1bnZvbGxzdC4pLCAyMDA5IC0gMjAxNSwgMjAxNyAtICRfVEhJU19ZRUFSXHRMT0FEKCd6d2knKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnp3aQorCisjCisjIGltcG9ydGFudCBmb3IgdGhlIG5leHQgc2NyaXB0czogCisjIHdhaXQgdGlsbCBhbGwgYnVpbGRfYmlnX2RlZigpIGNhbGxzIGhhdmUgcmV0dXJuZWQ6CisjIDAxLjA0LjIxL0ZCCisKK2VjaG8gIiQwOiB3YWl0IGZvciBhbGwgYnVpbGRfYmlnX2RlZigpLi4uIgord2FpdAorZWNobyAiJDA6IHdhaXQ6IGRvbmUuIgpkaWZmIC0tZ2l0IGEvdC9zY3JpcHQydmMudCBiL3Qvc2NyaXB0MnZjLnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ0MzUyOAotLS0gL2Rldi9udWxsCisrKyBiL3Qvc2NyaXB0MnZjLnQKQEAgLTAsMCArMSw5MyBAQAorIyEvdXNyL2Jpbi9lbnYgcGVybAordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBUZXN0OjpNb3JlOwordXNlIEtvckFQOjpTY3JpcHRMb2FkOwordXNlIE1vam86OkpTT04gcXcnZGVjb2RlX2pzb24gZW5jb2RlX2pzb24nOwordXNlIE1vam86OkZpbGUgcXcncGF0aCc7Cit1c2UgRmlsZTo6VGVtcCBxdy90ZW1wZGlyLzsKK3VzZSBGaWxlOjpCYXNlbmFtZTsKK3VzZSBGaWxlOjpTcGVjOjpGdW5jdGlvbnM7CisKK215ICRyZiA9IFwmS29yQVA6OlNjcmlwdExvYWQ6Ol9wYXJzZV9sb2FkOworCitteSAoJG5hbWUsICRkZXNjLCBAZGVmKSA9ICRyZi0+KHEhZWNobyAtZSAiVy1nZXNhbXQtMjAyMi1JIC0gVy1nZXNhbXQgdm9uIFJlbGVhc2UgRGVSZUtvLTIwMjItSSBfQmx1ZV9cdExPQUQoJ2NvcnAtdy1nZXNhbXQuMjAyMi1pLjIxLjA2LjIyJykiID4+ICRDREZpbGUgICAhKTsKKworaXMoJG5hbWUsICdXLWdlc2FtdC0yMDIyLUknKTsKK2lzKCRkZXNjLCAnVy1nZXNhbXQgdm9uIFJlbGVhc2UgRGVSZUtvLTIwMjItSScpOworaXMoJGRlZlswXSwgJ2NvcnAtdy1nZXNhbXQuMjAyMi1pLjIxLjA2LjIyJyk7CisKKygkbmFtZSwgJGRlc2MsIEBkZWYpID0gJHJmLT4ocSEgZWNobyAtZSAiVy1nZXNhbXQtMjAxNy1JIC0gVy1nZXNhbXQgdm9uIFJlbGVhc2UgRGVSZUtvLTIwMTctSSBfQmx1ZV9cdExPQUQoJ2NvcnAtdy1nZXNhbXQuMjAxNy1pLjE3LjEwLjE3JylcdEdfVVdWIiA+PiAkQ0RGaWxlICAgISk7CisKK2lzKCRuYW1lLCAnVy1nZXNhbXQtMjAxNy1JJyk7CitpcygkZGVzYywgJ1ctZ2VzYW10IHZvbiBSZWxlYXNlIERlUmVLby0yMDE3LUknKTsKK2lzKCRkZWZbMF0sICdjb3JwLXctZ2VzYW10LjIwMTctaS4xNy4xMC4xNycpOworCisoJG5hbWUsICRkZXNjLCBAZGVmKSA9ICRyZi0+KHEhIGVjaG8gLWUgImxpdCAtIEJlbGxldHJpc3Rpay9Ucml2aWFsbGl0ZXJhdHVyIF9NYXJvb25fIFx0TE9BRCgnYmloIGJpbyBiaW8tcHViIGRpdiBkaXYtcHViIGdyMSBncmkgaGVzIGtqbCBsZXMgd2FtIHRobS1saXQgbWlzYy1saXQnKSIgPj4kQ0RGaWxlICAgICAhKTsKKworaXMoJG5hbWUsICdsaXQnKTsKK2lzKCRkZXNjLCAnQmVsbGV0cmlzdGlrL1RyaXZpYWxsaXRlcmF0dXInKTsKK2lzKCRkZWZbMF0sICdiaWgnKTsKK2lzKCRkZWZbLTFdLCAnbWlzYy1saXQnKTsKKworKCRuYW1lLCAkZGVzYywgQGRlZikgPSAkcmYtPihxIWVjaG8gLWUgIlcyLcO2ZmZlbnRsaWNoIC0gYWxsZSDDtmZmZW50bGljaGVuIEtvcnBvcmEgZGVzIEFyY2hpdnMgVzIgKG1pdCBOZXVha3F1aXNpdGlvbmVuKSBfQl9fQkxVRV9cdExPQUQoJ2FhbiBhYXogYWJvIGFseiBhcnQgYXptIGJheiBiZHogYmVlIGJleiBia3UgYmxhIGJsaSBib3ogYnJnIGJybSBicnUgYnJ3IGJ1biBidXAgYndhIGJzeiBiemUgY2hrIGNvdSBjdGIgZGFrIGRheiBkZWMgZGtpIGRubiBkb2wgZHByIGRvZyBlZGYgZWZ0IGVsZiBlbHQgZXR0IGV1dCBldXcgZmlzIGZtdCBmbnAgZm9tIGZyYSBmcnQgZ2FsIGdheiBnZSBnZW8gZ2VzIGdpbmdrbyBnbmcgZ29iIGdzcCBndGEgZ3RiIGhhYiBoYXUgaGZ6IGhoeiBoa3IgaHJ6IGhzdCBodGIgaHpzIGh6dyBoenogaXggayBrYXoga3NhIGt1ciBrdHogbGFoIGxhbiBsYXogbG1kIGxydSBtc3AgbmRvIG5lbyBub3ogbnd0IG9zeiBwYXogcGggcG1tIHNjdyBzdGIgc3RnIHR2ZCB2YncgdnpzIHcgd2FzIHdlbyBkaXYnKSIgPj4kQ0RGaWxlICAhKTsKKworaXMoJG5hbWUsICdXMi3DtmZmZW50bGljaCcpOworaXMoJGRlc2MsICdhbGxlIMO2ZmZlbnRsaWNoZW4gS29ycG9yYSBkZXMgQXJjaGl2cyBXMiAobWl0IE5ldWFrcXVpc2l0aW9uZW4pJyk7CitpcygkZGVmWzBdLCAnYWFuJyk7CitpcygkZGVmWy0xXSwgJ2RpdicpOworCisoJG5hbWUsICRkZXNjLCBAZGVmKSA9ICRyZi0+KHEhZGl2IC0gQmVsbGV0cmlzdGlrIGRlcyAyMC4gdW5kIDIxLiBKYWhyaHVuZGVydHM6IERpdmVyc2UgU2NocmlmdHN0ZWxsZXIgTE9BRCgnZGl2IGRpdi1wdWInKSEpOworCitpcygkbmFtZSwgJ2RpdicpOworaXMoJGRlc2MsICdCZWxsZXRyaXN0aWsgZGVzIDIwLiB1bmQgMjEuIEphaHJodW5kZXJ0czogRGl2ZXJzZSBTY2hyaWZ0c3RlbGxlcicpOworaXMoJGRlZlswXSwgJ2RpdicpOworaXMoJGRlZlstMV0sICdkaXYtcHViJyk7CisKKworKCRuYW1lLCAkZGVzYywgQGRlZikgPSAkcmYtPihxIWVjaG8gLWUgIk4tZ2VzYW10IC0gYWxsZSBOZXVha3F1aXNpdGlvbmVuIHZvbiBEZVJlS28tMjAyNC1JIF9CX19CbHVlX1x0TE9BRCgnYmloIGJpbyBiaW8tcHViIGwgYnZ6IGJyeiBiemsgYiBjdCBjeiBkY2sgZGl2IGRpdi1wdWIgZGtnIGRwYSBwIGVyayBmbHQgZmF6IGZvYyBmcnIgZnNwIGZzcC1wdWIgZ29lIGdyMSBncmkgaGF6IGhiayBoZXMgaG1wIGlrbyBpeCBraWMga2psIGtseiBrc3AgbGVzIGxpbSBsbWQgbHRiIG1rMSBtazIgbWxkIG0gbmV1IG5ldyBuZyBua3Ugbmt6IG5vbiBudW4gbnV6IG56ZiBuenMgbnp6IG9vbiBwcCBwcmYgcmVpIHJocCByaHogc2JsIHNibiBhIHNpZCBzb3ogcyBzcGsgc29sIHN0ZSBzdGcgdSB0YXMgdCB0aG0gdHR6IHZhbiB2ZGkgd2FtIHdrYiB3a2Qgd2t2IHd4eDExIHd3byB6Y2EgemN3IHogemdlIGUgendpIC1jb3JwLXctZ2VzYW10LjIwMjMtaS4xNi4wMy4yMycpIiA+PiRDREZpbGUhKTsKKworaXMoJG5hbWUsICdOLWdlc2FtdCcpOworaXMoJGRlc2MsICdhbGxlIE5ldWFrcXVpc2l0aW9uZW4gdm9uIERlUmVLby0yMDI0LUknKTsKK2lzKCRkZWZbMF0sICdiaWgnKTsKK2lzKCRkZWZbLTFdLCAnLWNvcnAtdy1nZXNhbXQuMjAyMy1pLjE2LjAzLjIzJyk7CisKKworIyBMb2FkIHNjcmlwdCBmaWxlCitteSAkc2NyaXB0X2ZpbGUgPSBjYXRmaWxlKGRpcm5hbWUoX19GSUxFX18pLCAnZGF0YScsICdkb1ZpcnRCbXMudy5hbGwuMjAyNC1JJyk7CitteSAkb3V0cHV0ID0gdGVtcGRpciggQ0xFQU5VUCA9PiAxICk7CisKK215ICRsb2FkID0gS29yQVA6OlNjcmlwdExvYWQtPm5ldygKKyAgZmlsZSA9PiAkc2NyaXB0X2ZpbGUsCisgIG91dHB1dCA9PiAkb3V0cHV0CispOworCiskbG9hZC0+cGFyc2U7CisKK29rKC1lIGNhdGZpbGUoJG91dHB1dCwgJ3drZC5qc29ubGQnKSk7CitvaygtZSBjYXRmaWxlKCRvdXRwdXQsICd0YXouanNvbmxkJykpOworb2soLWUgY2F0ZmlsZSgkb3V0cHV0LCAnc3RnLmpzb25sZCcpKTsKK29rKC1lIGNhdGZpbGUoJG91dHB1dCwgJ3p3aS5qc29ubGQnKSk7CisKK215ICRmID0gTW9qbzo6RmlsZS0+bmV3KGNhdGZpbGUoJG91dHB1dCwgJ2xpdC5qc29ubGQnKSk7CisKK215ICRjb2xsID0gZGVjb2RlX2pzb24oJGYtPnNsdXJwKTsKKworaXMoJGNvbGwtPntjb2xsZWN0aW9ufS0+e29wZXJhdGlvbn0sJ29wZXJhdGlvbjpvcicpOworaXMoJGNvbGwtPntjb2xsZWN0aW9ufS0+e29wZXJhbmRzfS0+WzBdLT57J3JlZid9LCdiaWgnKTsKK2lzKCRjb2xsLT57Y29sbGVjdGlvbn0tPntvcGVyYW5kc30tPlstMV0tPnsncmVmJ30sJ21pc2MtbGl0Jyk7CisKKworJGYgPSBNb2pvOjpGaWxlLT5uZXcoY2F0ZmlsZSgkb3V0cHV0LCAnTi1nZXNhbXQuanNvbmxkJykpOworCiskY29sbCA9IGRlY29kZV9qc29uKCRmLT5zbHVycCk7CisKK2lzKCRjb2xsLT57Y29sbGVjdGlvbn0tPntvcGVyYXRpb259LCdvcGVyYXRpb246YW5kJyk7CitpcygkY29sbC0+e2NvbGxlY3Rpb259LT57b3BlcmFuZHN9LT5bMF0tPntvcGVyYW5kc30tPlswXS0+eydyZWYnfSwnYmloJyk7CitpcygkY29sbC0+e2NvbGxlY3Rpb259LT57b3BlcmFuZHN9LT5bLTFdLT57J3JlZid9LCAnY29ycC13LWdlc2FtdC4yMDIzLWkuMTYuMDMuMjMnKTsKK2lzKCRjb2xsLT57Y29sbGVjdGlvbn0tPntvcGVyYW5kc30tPlstMV0tPnsnbWF0Y2gnfSwgJ21hdGNoOm5lJyk7CisKKworCisKK2RvbmVfdGVzdGluZzsK