ZGlmZiAtLWdpdCBhL2xpYi9Lb3JBUC9TY3JpcHRMb2FkLnBtIGIvbGliL0tvckFQL1NjcmlwdExvYWQucG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZhYThlZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9Lb3JBUC9TY3JpcHRMb2FkLnBtCkBAIC0wLDAgKzEsMTIwIEBACitwYWNrYWdlIEtvckFQOjpTY3JpcHRMb2FkOwordXNlIEtvckFQOjpWaXJ0dWFsQ29ycHVzOjpHcm91cDsKK3VzZSBLb3JBUDo6VmlydHVhbENvcnB1czo6T3I7Cit1c2UgS29yQVA6OlZpcnR1YWxDb3JwdXM6Okdyb3VwUmVmOwordXNlIEZpbGU6OlNwZWM6OkZ1bmN0aW9ucyBxdyFjYXRmaWxlITsKK3VzZSBNb2pvOjpVdGlsIHF3J2VuY29kZSc7Cit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCisKKyMgQ29uc3RydWN0b3IKK3N1YiBuZXcgeworICBteSAkY2xhc3MgPSBzaGlmdDsKKyAgbXkgJXNlbGYgPSBAXzsKKworICAkc2VsZntvdXRwdXR9IC8vPSAnLic7CisKKyAgbXkgJGZpbGUgPSAkc2VsZntmaWxlfTsKKworICBpZiAocmVmICRmaWxlICYmIHJlZiAkZmlsZSBlcSAnR0xPQicpIHsKKyAgICAkc2VsZntmaWxlfSA9ICcnOworICAgICRzZWxme2ZofSA9ICRmaWxlOworICAgIHJldHVybiBibGVzcyBcJXNlbGYsICRjbGFzczsKKyAgfTsKKworICAjIE9wZW4gZGVmIGZpbGUKKyAgaWYgKCFvcGVuKCRzZWxme2ZofSwgJzwnIC4gJGZpbGUpKSB7CisgICAgd2FybiAkZmlsZSAuICIgY2FuJ3QgYmUgb3BlbmVkIjsKKyAgICBleGl0KDApOworICB9OworCisgIHJldHVybiBibGVzcyBcJXNlbGYsICRjbGFzczsKK307CisKKworIyBQYXJzZSBzY3JpcHQgZmlsZQorc3ViIHBhcnNlIHsKKyAgbXkgJHNlbGYgPSBzaGlmdDsKKworICB3aGlsZSAoIWVvZigkc2VsZi0+e2ZofSkpIHsKKyAgICBteSAkbGluZSA9IHJlYWRsaW5lKCRzZWxmLT57Zmh9KTsKKworICAgIG5leHQgaWYgJGxpbmUgPX4gL15cIy87CisKKyAgICBpZiAoJGxpbmUgPX4gL0xPQUQvKSB7CisgICAgICBteSAoJG5hbWUsICRkZXNjLCBAdmNzKSA9IF9wYXJzZV9sb2FkKCRsaW5lKTsKKyAgICAgIHVubGVzcyAoJG5hbWUpIHsKKyAgICAgICAgd2FybgorICAgICAgfTsKKyAgICAgICRzZWxmLT5sb2FkX3RvX3ZjKCRuYW1lLCAkZGVzYywgQHZjcyk7CisgICAgfTsKKyAgfTsKKworICBjbG9zZSgkc2VsZi0+e2ZofSk7Cit9OworCitzdWIgbG9hZF90b192YyB7CisgIG15ICRzZWxmID0gc2hpZnQ7CisgIG15ICgkbmFtZSwgJGRlc2MsIEBsaXN0KSA9IEBfOworCisgIHByaW50ICJDb252ZXJ0ICciLCAkbmFtZSwgIicgZnJvbSBMT0FEKClcbiI7CisKKyAgbXkgJHZjID0gZnJvbV9sb2FkKCRuYW1lLCAkZGVzYywgQGxpc3QpOworCisgICMgT3V0cHV0CisgIG15ICRvdXQgPSBjYXRmaWxlKCRzZWxmLT57b3V0cHV0fSwgJG5hbWUgLiAnLmpzb25sZCcpOworICBpZiAob3BlbihteSAka29yYWwsICc+JyAuICRvdXQpKSB7CisgICAgYmlubW9kZSgka29yYWwpOworICAgIHByaW50ICRrb3JhbCBlbmNvZGUoJ3V0Zi04JywgJHZjLT50b19zdHJpbmcpOworICAgIGNsb3NlKCRrb3JhbCk7CisgICAgcmV0dXJuOworICB9OworCisgIHdhcm4gJ1VuYWJsZSB0byB3cml0ZSBmaWxlICcgLiAkb3V0OworfTsKKworc3ViIF9wYXJzZV9sb2FkIHsKKyAgbXkgJGxpbmUgPSBzaGlmdDsKKyAgY2hvbXAoJGxpbmUpOworICAkbGluZSA9fiBzL15ccyplY2hvXHMrLWVccysvLzsKKyAgJGxpbmUgPX4gcy9ccys+PlxzKlwkLiskLy87CisgICRsaW5lID1+IHMvXlxzKiIoLis/KSJccyokLyQxLzsKKyAgJGxpbmUgPX4gcy9cXHQvIC9nOworCisgICRsaW5lID1+IC9eKC4rPykgLSAoLis/KVtcc1x0XSsoPzooPzpfW15fXStfKStbXHNcdF0rKT9MT0FEXCgoW15cKV0rPylcKS4qJC87CisgIG15ICgkbmFtZSwgJGRlc2MsICRsaXN0KSA9ICgkMSwgJDIsICQzKTsKKyAgJGxpc3QgPX4gcy9eIiguKz8pIiQvJDEvOworICAkbGlzdCA9fiBzL14nKC4rPyknJC8kMS87CisgIHJldHVybiAkbmFtZSwgJGRlc2MsIHNwbGl0KC9ccysvLCRsaXN0KTsKK307CisKKworc3ViIGZyb21fbG9hZCB7CisgIG15ICgkbmFtZSwgJGRlc2MsIEB2Y3MpID0gQF87CisKKyAgbXkgQHZjX29ianMgPSAoKTsKKyAgZm9yZWFjaCAoQHZjcykgeworCisgICAgaWYgKGluZGV4KCRfLCctJykgPT0gMCkgeworICAgICAgbXkgJG1pbnVzID0gc3Vic3RyKCRfLDEpOworCisgICAgICBteSAkbmVnX3ZjID0gS29yQVA6OlZpcnR1YWxDb3JwdXM6Okdyb3VwUmVmLT5uZXcoJG1pbnVzKTsKKyAgICAgICRuZWdfdmMtPm1hdGNoKCduZScpOworCisgICAgICBteSAkYmFzZV92YyA9IEtvckFQOjpWaXJ0dWFsQ29ycHVzOjpPci0+bmV3KEB2Y19vYmpzKTsKKyAgICAgIChAdmNfb2JqcykgPSBLb3JBUDo6VmlydHVhbENvcnB1czo6QW5kLT5uZXcoJGJhc2VfdmMsICRuZWdfdmMpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgcHVzaCBAdmNfb2JqcywgS29yQVA6OlZpcnR1YWxDb3JwdXM6Okdyb3VwUmVmLT5uZXcoJF8pOworICAgIH07CisgIH07CisKKyAgaWYgKEB2Y19vYmpzID4gMSkgeworICAgIHJldHVybiBLb3JBUDo6VmlydHVhbENvcnB1czo6T3ItPm5ldyhAdmNfb2Jqcyk7CisgIH07CisgIHJldHVybiAkdmNfb2Jqc1swXTsKK307CisKKzE7CmRpZmYgLS1naXQgYS9saWIvS29yQVAvVmlydHVhbENvcnB1cy9Hcm91cFJlZi5wbSBiL2xpYi9Lb3JBUC9WaXJ0dWFsQ29ycHVzL0dyb3VwUmVmLnBtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYjk2YjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvS29yQVAvVmlydHVhbENvcnB1cy9Hcm91cFJlZi5wbQpAQCAtMCwwICsxLDcxIEBACitwYWNrYWdlIEtvckFQOjpWaXJ0dWFsQ29ycHVzOjpHcm91cFJlZjsKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgYmFzZSAnS29yQVA6OlZpcnR1YWxDb3JwdXMnOworCisjIFRPRE86CisjIE1heWJlIHJlcGxhY2VibGUgd2l0aCBEb2NWZWMKKworIyBDb25zdHJ1Y3Rvcgorc3ViIG5ldyB7CisgIG15ICRjbGFzcyA9IHNoaWZ0OworICBibGVzcyB7CisgICAgcmVmZXJlbmNlID0+IHNoaWZ0LAorICAgIG1hdGNoID0+ICdlcScsCisgIH0sICRjbGFzczsKK307CisKKworIyBDbG9uZSBkb2N1bWVudCBWQworc3ViIGNsb25lIHsKKyAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgYmxlc3MgeworICAgIHJlZmVyZW5jZSA9PiAgICRzZWxmLT57cmVmZXJlbmNlfSwKKyAgICBtYXRjaCA9PiAkc2VsZi0+e21hdGNofSwKKyAgfSwgX19QQUNLQUdFX187Cit9OworCisKKyMgUmV0dXJuIG9iamVjdCB0eXBlCitzdWIga29yYWxfdHlwZSB7CisgIHJldHVybiAnRG9jR3JvdXBSZWYnOworfTsKKworCisjIEdldCBvciBzZXQgbWF0Y2gKK3N1YiBtYXRjaCB7CisgIG15ICRzZWxmID0gc2hpZnQ7CisgIGlmIChAXykgeworICAgICRzZWxmLT57bWF0Y2h9ID0gc2hpZnQ7CisgICAgcmV0dXJuICRzZWxmOworICB9OworICByZXR1cm4gJHNlbGYtPnttYXRjaH07Cit9OworCisKKyMgR2V0IG9yIHNldCByZWZlcmVuY2UKK3N1YiByZWZlcmVuY2UgeworICBteSAkc2VsZiA9IHNoaWZ0OworICBpZiAoQF8pIHsKKyAgICAkc2VsZi0+e3JlZmVyZW5jZX0gPSBzaGlmdDsKKyAgICByZXR1cm4gJHNlbGY7CisgIH07CisgIHJldHVybiAkc2VsZi0+e3JlZmVyZW5jZX07Cit9OworCisKKyMgU3RyaW5naWZ5IGZyYWdtZW50CitzdWIgX3RvX2ZyYWdtZW50IHsKKyAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgbXkgJGpzb24gPSAneyc7CisgICRqc29uIC49ICciQHR5cGUiOiJrb3JhbDpkb2NHcm91cFJlZiIsJzsKKyAgJGpzb24gLj0gJyJyZWYiOiInIC4gJHNlbGYtPnJlZmVyZW5jZSAuICciJzsKKyAgJGpzb24gLj0gJywibWF0Y2giOiJtYXRjaDonIC4gJHNlbGYtPm1hdGNoIC4gJyInIGlmICRzZWxmLT5tYXRjaCBuZSAnZXEnOworCisgICMgU2V0IGF0IHRoZSBlbmQsIHdoZW4gYWxsIGNvbW1lbnRzIGFyZSBkb25lCisgICRqc29uIC49ICRzZWxmLT5fY29tbWVudHBhcmFtX3RvX3N0cmluZzsKKyAgcmV0dXJuICRqc29uIC4gJ30nOworfTsKKworCisxOwpkaWZmIC0tZ2l0IGEvc2NyaXB0L2Nvc21hc3ZjMmtvcmFscXVlcnkgYi9zY3JpcHQvY29zbWFzdmMya29yYWxxdWVyeQppbmRleCBlNjc0OTY0Li5lNzMxNjZlIDEwMDc1NQotLS0gYS9zY3JpcHQvY29zbWFzdmMya29yYWxxdWVyeQorKysgYi9zY3JpcHQvY29zbWFzdmMya29yYWxxdWVyeQpAQCAtMzMsOSArMzMsOSBAQAogKQogb3IgZGllKCJFcnJvciBpbiBjb21tYW5kIGxpbmUgYXJndW1lbnRzXG4iKTsKIAotaWYgKCEkY21kIHx8ICgkY21kIG5lICdkZWYnICYmICRjbWQgbmUgJ2xpc3QnKSkgeworaWYgKCEkY21kIHx8ICgkY21kIG5lICdkZWYnICYmICRjbWQgbmUgJ2xpc3QnICYmICRjbWQgbmUgJ3NjcmlwdCcpKSB7CiAgIHByaW50IDw8J0hFTFAnOwotQ29udmVydCBhIGxpc3Qgb2YgQzIgVkMgZGVmaW5pdGlvbnMgb3IgYSBzaW5nbGUgZGVmaW5pdGlvbiBpbnRvCitDb252ZXJ0IGEgbGlzdCBvZiBDMiBWQyBkZWZpbml0aW9ucywgYSBzaW5nbGUgZGVmaW5pdGlvbiBvciBhIHNjcmlwdCBmaWxlIGludG8KIEtvcmFsUXVlcnkgVkNzLgogCiAgICQgcGVybCBjb3NtYXN2YzJrb3JhbHF1ZXJ5IGRlZiBteV92Yy50eHQgfCBnemlwIC12YyA+IG15X3ZjLmpzb25sZC5negpAQCAtNTQsNiArNTQsMTIgQEAKICAgLS1vdXRwdXQ6IFRoZSBvdXRwdXQgZGlyZWN0b3J5CiAgIC0tY29weS1zcmM6IFRoZSBkaXJlY3RvcnkgZm9yIGRlZiBmaWxlcyB0byBjb3B5CiAKK0NvbW1hbmQ6IHNjcmlwdAorCisgIENvbnZlcnQgYSBzY3JpcHQgZmlsZSB3aXRoIExPQUQoKSBpbnN0cnVjdGlvbnMgdG8gS29yYWxRdWVyeSBWQ3MuCisKKyAgLS1vdXRwdXQ6IFRoZSBvdXRwdXQgZGlyZWN0b3J5CisKIEhFTFAKIGV4aXQgMTsKIH07CkBAIC02OSw2ICs3NSwxNiBAQAogICBleGl0KDApOwogfTsKIAorIyBQcm9jZXNzIGEgbGlzdAoraWYgKCRjbWQgZXEgJ3NjcmlwdCcpIHsKKyAgS29yQVA6OlNjcmlwdExvYWQtPm5ldygKKyAgICBmaWxlID0+ICgkaW5wdXQgfHwgJEFSR1ZbMF0pLAorICAgIG91dHB1dCA9PiAoJG91dHB1dCB8fCAnLicpCisgICktPnBhcnNlOworICBleGl0KDApOworfTsKKworCiAjIFBhcnNlIGEgc2luZ2xlIGRlZgogbXkgJGRlZl9wYXJzZXI7CiBpZiAoJEFSR1ZbMF0gZXEgJy0nKSB7CmRpZmYgLS1naXQgYS90L2RhdGEvZG9WaXJ0Qm1zLncuYWxsLjIwMjQtSSBiL3QvZGF0YS9kb1ZpcnRCbXMudy5hbGwuMjAyNC1JCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzMThkMjUKLS0tIC9kZXYvbnVsbAorKysgYi90L2RhdGEvZG9WaXJ0Qm1zLncuYWxsLjIwMjQtSQpAQCAtMCwwICsxLDQ4NyBAQAorIyEvdXNyL2Jpbi9iYXNoCisjIFNjcmlwdCBmb3IgYnVpbGRpbmcgdGhlIHZpcnR1YWwgQ29ycHVzIEJpdG1hcHMgb2YgQzItRGF0YWJhc2UgVzIKKyMgJDEgOiBEYXRhYmFzZSBOYW1lIGFzIHJlZ2lzdGVyZWQgaW4gU2VydmVyLgorIyAkMiA6IFBhdGggb2YgQzItU2VydmVyCisjICQzIDogQ29ycHVzIERlZmluaXRpb24gZmlsZSAob3V0cHV0KQorIyAyMS4wMS4wMi9GQgorIyAyMC4wOS4wMi9GQiBpa285MCBpa285MQorIyAxNS4xMC4wMi9GQiBmcm9oMS9mcm9oMiBlbnRmZXJudAorIyAwOS4wNC4wMy9GQiBwYXJhbWV0ZXIgJDMKKyMgMTQuMDQuMDMvRkIgVy1BTEwtQklHCisjIDI1LjAzLjA0L0ZCIFcyCisjIDE0LjExLjA1L0ZCIFczCisjIDA4LjA2LjA2L0ZCIGRlcmVrbyBhbHMgZWlnZW5zdGFlbmRpZ2VzIEtvcnB1cyB1bmQgRGVmaW50aW9uZSBlbnRmZXJudC4KKyMgVW1sYXV0ZSD21uTE/NzfCisjCisjIERlUmVLbyAyMDI0LUkgLSAyMi4wMi4yMy9GQgorIyBJTVBPUlRBTlQ6CisjIFdoaGVuIGVkaXRpbmcgdGhpcyBmaWxlLCBhbHdheXMgY2hlY2sgZm9yIHRoZSBsYXN0IDIgeWVhcnM6IDIwMjIgYW5kIDIwMjMgd2hpbGUgaW4gMjAyNC4KKworIyMjIEFubS4genUgZGVuIC5kZWYtRGF0ZWllbjoKKyMjIyBkaWVzZSBNZXRob2RlIG5pY2h0IG1laHIgdmVyd2VuZGVuIChiencuIG5pY2h0IG1laHIgYXVmIC5kZWYtRGF0ZWllbiB2ZXJ6aWNodGVuKSwgd2VpbAorIyMjIEVyaWMgZnVlciBkaWUgR2VuZXJpZXJ1bmcgZGVyIENJSS1IVE1MLVNlaXRlbiBJbmZvcm1hdGlvbmVuIGF1cyBkZW4gLmRlZiBEYXRlaWVuIGhvbHQKKworaWYgWyAiJDEiID0gIiIgXQordGhlbgorCWVjaG8gIkVycm9yOiBtaXNzaW5nIHJlZ2lzdGVyZWQgRGF0YWJhc2UgTmFtZSEiCisJcmV0dXJuIDEKK2ZpCisKK2lmIFsgIiQyIiA9ICIiIF0KK3RoZW4KKwllY2hvICJFcnJvcjogbWlzc2luZyBDMi1TZXJ2ZXIgUGF0aCEiCisJcmV0dXJuIDEKK2ZpCisKK2lmIFsgIiQzIiA9ICIiIF0KK3RoZW4KKwllY2hvICJFcnJvcjogbWlzc2luZyBDb3JwdXMgRGVmaW5pdGlvbiBmaWxlISIKKwlyZXR1cm4gMQorZmkKKworaWYgWyAiJDUiID0gIiIgXQordGhlbgorCWVjaG8gIkVycm9yOiBWYXJpYWJsZSBEQkhPTUUgbXVzdCBiZSBzcGVjaWZpZWQhIgorCXJldHVybiAxCitmaQorCitEQk49Ii1uOiQxIgorU1Y9LXBzOiQyCitDREZpbGU9JDMKK1NMPS1zMQorQklOPSQ0CitEQkhPTUU9JDUKKworX1RISVNfWUVBUj0yMDIzCisKK2VjaG8gIiQwOiBBdXNmw7xocnVuZyBiZWdpbm50Li4uIgorCisjIFRPRE86IC4gZ3JhcGguIFVlYmVyc2ljaHQsIHdlbGNoZSB2aXJ0LiBLb3Jwb3JhIHdvIGlua2x1ZGllcnQgc2luZCAoa2FubiBpY2ggc28gZXR3YXMgZXZ0bC4KKyMgIHBlciBTa3JpcHQgYWxzIEhUTUwtU2VpdGUgZ2VuZXJpZXJlbj8pOiB6LkIuIGxveiBlbnRoYWVsdCBkaXYgdS4gbGl0IGVudGFlbHQgd2llZGVydW0KKyMgIGxvejogbGl0IDwtIGxveiA8LSBkaXYgKG1pdCBFcmljIHNwcmVjaGVuOiBpY2ggaGFiZSBsaW5rcyBzdGVoZW5kZSBWZXJzY2hhY2h0ZWx1bmcKKyMgIGluIExJU1QvbGlzdC53IGltcGxlbWVudGllcnQsIHNvbnN0IHZlcmxpZXJlIGljaCBkaWUgVWViZXJzaWNodC4gT2IgZGFzIHNlaW5lIFdlYnNlaXRlbi0KKyMgIEdlbmVyaWVydW5nIHN0b2VydCwgd2Vpc3MgaWNoIGFsbGVyZGluZ3MgbmljaHQKKworIyAKKyMgaW5jbHVkZSBmdW5jdGlvbnMgbGlrZSBidWlsZF9iaWdfZGVmKCkKKyMKKy4gL2hvbWUvYzJhZG1pbi9jMi9peC9jZmcvYm1zL1NDUklQVC9mdW5jdGlvbnMKKworZWNobyAiJDA6IGZ1bmN0aW9ucyBsb2FkZWQuIgorCisjIyMgRGllIEdlc2FtdC1Lb3Jwb3JhIChfQmx1ZV8pOgorIyAyMDI0LUk6IFctZ2VzYW10OiBrZWluZSBuZXVlbiBLb3JwdXMtRGF0ZWllbiAtIDE2LjAyLjIzL0ZCCisKK2VjaG8gLWUgIlctZ2VzYW10IC0gYWxsZSBLb3Jwb3JhIGRlcyBBcmNoaXZzIFcgKG1pdCBOZXVha3F1aXNpdGlvbmVuKSBfQl9fQmx1ZV9cdExPQUQoJ2JpaCBiaW8gYmlvLXB1YiBsIGJ2eiBicnogYnprIGIgY3QgY3ogZGNrIGRpdiBkaXYtcHViIGRrZyBkcGEgcCBlcmsgZmx0IGZheiBmb2MgZnJyIGZzcCBmc3AtcHViIGdvZSBncjEgZ3JpIGhheiBoYmsgaGVzIGhtcCBpa28gaXgga2ljIGtqbCBrbHoga3NwIGxlcyBsaW0gbG1kIGx0YiBtazEgbWsyIG1sZCBtIG5ldSBuZXcgbmcgbmt1IG5reiBub24gbnVuIG51eiBuemYgbnpzIG56eiBvb24gcHAgcHJmIHJlaSByaHAgcmh6IHNibCBzYm4gYSBzaWQgc296IHMgc3BrIHNvbCBzdGUgc3RnIHUgdGFzIHQgdGhtIHR0eiB2YW4gdmRpIHdhbSB3a2Igd2tkIHdrdiB3eHgxMSB3d28gemNhIHpjdyB6IHpnZSBlIHp3aScpIiA+PiRDREZpbGUKKyAKK2VjaG8gLWUgIk4tZ2VzYW10IC0gYWxsZSBOZXVha3F1aXNpdGlvbmVuIHZvbiBEZVJlS28tMjAyNC1JIF9CX19CbHVlX1x0TE9BRCgnYmloIGJpbyBiaW8tcHViIGwgYnZ6IGJyeiBiemsgYiBjdCBjeiBkY2sgZGl2IGRpdi1wdWIgZGtnIGRwYSBwIGVyayBmbHQgZmF6IGZvYyBmcnIgZnNwIGZzcC1wdWIgZ29lIGdyMSBncmkgaGF6IGhiayBoZXMgaG1wIGlrbyBpeCBraWMga2psIGtseiBrc3AgbGVzIGxpbSBsbWQgbHRiIG1rMSBtazIgbWxkIG0gbmV1IG5ldyBuZyBua3Ugbmt6IG5vbiBudW4gbnV6IG56ZiBuenMgbnp6IG9vbiBwcCBwcmYgcmVpIHJocCByaHogc2JsIHNibiBhIHNpZCBzb3ogcyBzcGsgc29sIHN0ZSBzdGcgdSB0YXMgdCB0aG0gdHR6IHZhbiB2ZGkgd2FtIHdrYiB3a2Qgd2t2IHd4eDExIHd3byB6Y2EgemN3IHogemdlIGUgendpIC1jb3JwLXctZ2VzYW10LjIwMjMtaS4xNi4wMy4yMycpIiA+PiRDREZpbGUKKworZWNobyAtZSAiVy1vaG5lV2lraXBlZGlhLWdlc2FtdCAtIGFsbGUgS29ycG9yYSBkZXMgQXJjaGl2cyBXIChtaXQgTmV1YWtxdWlzaXRpb25lbiwgb2huZSBXaWtpcGVkaWEpIF9CbHVlX1x0TE9BRCgnYmloIGJpbyBiaW8tcHViIGwgYnZ6IGJyeiBiemsgYiBjdCBjeiBkY2sgZGl2IGRpdi1wdWIgZGtnIGRwYSBwIGVyayBmbHQgZmF6IGZvYyBmcnIgZnNwIGZzcC1wdWIgZ29lIGdyMSBncmkgaGF6IGhiayBoZXMgaG1wIGlrbyBpeCBraWMga2psIGtseiBrc3AgbGVzIGxpbSBsbWQgbHRiIG1rMSBtazIgbWxkIG0gbmV1IG5ldyBuZyBua3Ugbmt6IG5vbiBudW4gbnV6IG56ZiBuenMgbnp6IG9vbiBwcCBwcmYgcmVpIHJocCByaHogc2JsIHNibiBhIHNpZCBzb3ogcyBzcGsgc29sIHN0ZSBzdGcgdSB0YXMgdCB0aG0gdHR6IHZhbiB2ZGkgd2FtIHdrYiB3a2Qgd2t2IHd3byB6Y2EgemN3IHogemdlIGUgendpJykiID4+JENERmlsZQorIAorIyAgIE5ldWFrcXVpc2l0aW9uZW4gMjAyNC1JOgorIworIyAtICouZGVmICsgQml0bWFwcyBlcnpldWd0IG1pdCAvQzIvSVgyL1JFUy9CTVMvTkVVQUtRVUkvZG9OZXVha3F1aS4KKyMgLSBEYXRlaWVuIGF1dG9tYXRpc2NoIGF1cyBkZW0gVmVyZ2xlaWNoIHZvbiB3LWFsbCB1bmQgdy1uZXUgZXJ6ZXVndC4KKyMgLSBEYXRlaWVuIGF1dG9tLiBpbiAvYm0vIGtvcGllcnQgdW5kIEVpbnRyYWcgY2RlZi5uZXVha3F1aS50eHQgZXJ6ZXVndCwgZGVyCisjICAgaGllciByZWlua29waWVydCB3dXJkZS4KKyMgUC5TLiBsZXR6dGVuZGxpY2ggaW4gZGllIGJlc3RlaGVuZGVuIFNrcmlwdGUgaW50ZWdyaWVydC4KKyMgMjYuMDMuMjEvRkIKKworI2VjaG8gIiQwOiBjYWxsaW5nICRCSU4vYzJ0ZXN0ICRTTCAkREJOICRTViAtYWQyYjpvOk5hbWVfZWluZXNfVkMiCisKKyMjIyBEaWVzZSBLb3Jwb3JhIHNpbmQgZWluZ2Vmcm9yZW4KKyMjIyBzaWVoZSB4NDYwMG0yOi9leHBvcnQvaG9tZTEvQzJfaG9tZTIvQzIvcmVzL2MyL2JtL1JFQURNRS51d3YgISEhCisjICAgZGEgZGVyIEF1ZmJhdSBkZXIgS29ycHVzLUJpdG1hcCBsYW5nZSBkYXVlcnQsIHdpcmQgYzJ0ZXN0IGltIEhpbnRlcmdydW5kIGdlc3RhcnRldC4KKyMgICBsYXN0IERlUmVLby1yZWxlYXNlIGlzIGFjY2Vzc2libGUgdG8gZXZlcnlib2R5LgorCitlY2hvIC1lICJXLWdlc2FtdC0yMDIzLUkgLSBXLWdlc2FtdCB2b24gUmVsZWFzZSBEZVJlS28tMjAyMy1JIF9CbHVlX1x0TE9BRCgnY29ycC13LWdlc2FtdC4yMDIzLWkuMTYuMDMuMjMnKSIgPj4gJENERmlsZQorCitlY2hvIC1lICJXLWdlc2FtdC0yMDIyLUkgLSBXLWdlc2FtdCB2b24gUmVsZWFzZSBEZVJlS28tMjAyMi1JIF9CbHVlX1x0TE9BRCgnY29ycC13LWdlc2FtdC4yMDIyLWkuMjEuMDYuMjInKSIgPj4gJENERmlsZQorCitlY2hvIC1lICJXLWdlc2FtdC0yMDIxLUkgLSBXLWdlc2FtdCB2b24gUmVsZWFzZSBEZVJlS28tMjAyMS1JIF9CbHVlX1x0TE9BRCgnY29ycC13LWdlc2FtdC4yMDIxLWkuMTEuMDguMjEnKSIgPj4gJENERmlsZQorCitlY2hvIC1lICJXLWdlc2FtdC0yMDIwLUkgLSBXLWdlc2FtdCB2b24gUmVsZWFzZSBEZVJlS28tMjAyMC1JIF9CbHVlX1x0TE9BRCgnY29ycC13LWdlc2FtdC4yMDIwLWkuMTUuMDUuMjAnKVx0R19VV1YiID4+ICRDREZpbGUKKworZWNobyAtZSAiVy1nZXNhbXQtMjAxOC1JSSAtIFctZ2VzYW10IHZvbiBSZWxlYXNlIERlUmVLby0yMDE4LUlJIF9CbHVlX1x0TE9BRCgnY29ycC13LWdlc2FtdC4yMDE4LWlpLjA1LjEyLjE4JylcdEdfVVdWIiA+PiAkQ0RGaWxlCisKK2VjaG8gLWUgIlctZ2VzYW10LTIwMTctSSAtIFctZ2VzYW10IHZvbiBSZWxlYXNlIERlUmVLby0yMDE3LUkgX0JsdWVfXHRMT0FEKCdjb3JwLXctZ2VzYW10LjIwMTctaS4xNy4xMC4xNycpXHRHX1VXViIgPj4gJENERmlsZQorCitmb3IgYyBpbiBjb3JwLXctZ2VzYW10LjIwMjMtaS4xNi4wMy4yMyAgY29ycC13LWdlc2FtdC4yMDIyLWkuMjEuMDYuMjIgXAorCQkJY29ycC13LWdlc2FtdC4yMDIxLWkuMTEuMDguMjEgIGNvcnAtdy1nZXNhbXQuMjAyMC1pLjE1LjA1LjIwIFwKKwkJCWNvcnAtdy1nZXNhbXQuMjAxOC1paS4wNS4xMi4xOCBjb3JwLXctZ2VzYW10LjIwMTctaS4xNy4xMC4xNworZG8KKwlidWlsZF9iaWdfZGVmICRjICYKK2RvbmUKKworIyMjIEdlYsO8bmRlbHRlLGFsbGdlbWVpbmUgS29ycG9yYSAoX01hcm9vbl8pOgorCisjIGdyaSArIGtqbCBhZGRlZCB0byBsaXQgLSAwNi4wNS4yMi9GQgorZWNobyAtZSAiIgorZWNobyAtZSAibGl0IC0gQmVsbGV0cmlzdGlrL1RyaXZpYWxsaXRlcmF0dXIgX01hcm9vbl8gXHRMT0FEKCdiaWggYmlvIGJpby1wdWIgZGl2IGRpdi1wdWIgZ3IxIGdyaSBoZXMga2psIGxlcyB3YW0gdGhtLWxpdCBtaXNjLWxpdCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgIiRTViIgLWFkMmI6bzp0aG0tbGl0CiskQklOL2MydGVzdCAkU0wgIiREQk4iICIkU1YiIC1hZDJiOm86bWlzYy1saXQKKworI2VjaG8gLWUgIm96ayAtINZzdGVycmVpY2hpc2NoZXMgWmVpdHVuZ3Nrb3JwdXMsIDE5OTEgLSAkX1RISVNfWUVBUiBfTWFyb29uX1x0TE9BRCgnYnZ6IHAgcHJmIGZsdCBrbHogbmV3IG5reiBub24gb29uIHNibiB0dHogdmFuJykiID4+JENERmlsZQorCitlY2hvIC1lICJuZFIgLSBLb3Jwb3JhIG1pdCD8YmVyd2llZ2VuZCBuZXVlciBSZWNodHNjaHJlaWJ1bmcgX01hcm9vbl9cdExPQUQoJ25kci1hbGwnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm5kci1hbGwKKworIyBs5G5kZXJzcGV6aWZpc2NoZSBLb3Jwb3JhCisKK2VjaG8gLWUgIkEtS29ycG9yYSAtIEtvcnBvcmEgYXVzINZzdGVycmVpY2ggX01hcm9vbl9cdExPQUQoJ2NvcnAtYScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86Y29ycC1hCisKK2VjaG8gLWUgIkNILUtvcnBvcmEgLSBkZXV0c2Noc3ByYWNoaWdlIEtvcnBvcmEgYXVzIGRlciBTY2h3ZWl6IF9NYXJvb25fXHRMT0FEKCdjb3JwLWNoJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpjb3JwLWNoCisKK2VjaG8gLWUgIkQtS29ycG9yYSAtIEtvcnBvcmEgYXVzIERldXRzY2hsYW5kIF9NYXJvb25fXHRMT0FEKCdjb3JwLWQnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmNvcnAtZAorCitlY2hvIC1lICJMLUtvcnBvcmEgLSBkZXV0c2Noc3ByYWNoaWdlIEtvcnBvcmEgYXVzIEx1eGVtYnVyZyBfTWFyb29uX1x0TE9BRCgnY29ycC1sJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpjb3JwLWwKKworIyMjIFByb2pla3Rrb3Jwb3JhIChfR3JlZW5fKToKKworIyMjIFRPRE86IHNpZWhlIE1haWwgdm9tIDIzLjAyLjE2IChNYWlsL2NvbnZlcnRlZF9mcm9tX1RIQi9DT1NNQVNJSS5zYmQvSW5kZXhpZXJ1bmcuc2JkL05ld3NsZXR0ZXIpCisjIEFuc3ByZWNoc3BhcnRuZXIgZnVlciBkaWUgWnVzYW1tZW5zZXR6dW5nIHZvbiBkZndiOiBIZXJiZXJ0IFNjaG1pZHQsIElEUworCitlY2hvIC1lICIiCitlY2hvIC1lICJkZndiIC0gdmlydC4gS29ycHVzIGRlcyBEZXV0c2NoZW4gRnJlbWR39nJ0ZXJidWNoZXMgX0dyZWVuX1x0TE9BRCgnZGZ3YjMzIGRmd2ItZnJhZyBiaW8gYmlvLXB1YiBkZndiLXAgZmF6IGZzcCBmc3AtcHViIGhtcCBkZndiLXNwaWVnZWwgYSBzcGsgdmRpJykiID4+ICRDREZpbGUKKworZm9yIG5hbWUgaW4gZGZ3YjMzIGRmd2ItZnJhZyBkZndiLXAgZGZ3Yi1zcGllZ2VsCitkbworCSRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86JG5hbWUKK2RvbmUKKworIyB3LWZyZWk6CisjIFZpcnR1ZWxsZXMgS29ycHVzIGbDvHIgZGllIFdlYlNlcnZpY2VzLgorIyBIaWVyIGF1ZmJhdWVuLCBhYmVyIG5pY2h0IGluIGRpZSBMaXN0ZW4gY2RlZi5hbGx8cHViLnR4dCBhdWZuZWhtZW4uCisjIDE2LjA0LjIxL0ZCCisKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86dy1mcmVpCisKKyMjIyBUT0RPOiBzaWVoZSAvaG9tZS9jMmFkbWluL2l4L2l4L2NmZy9ibXMvY3JlYXRlX25kci5wbAorIyMjIE5PVEUgMTogImNhdCAvZXhwb3J0L2hvbWUzL0MyL2RiL29mZi93L2F1eGRiL2F1eC1kbmFtZXMuZGF0fC4uL2NyZWF0ZV9uZHIucGwgPiBuZHIuZGVmIgorIyMjCQkgIHp1ciBHZW5lcmllcnVuZyB2b24gJ0RFRi9uZHIuZGVmJyBhdXNmdWVocmVuIQorIyMjIE5PVEUgMjogZ2VuZXJpZXJ0ZSBEYXRlaSB2b24gSGFuZCBwcnVlZmVuICh2aSAtZCBuZHIuZGVmIERFRi9uZHIuZGVmKQorIyAgICAgICAgICAgRGVSZUtvLTIwMjEtSToKKyMgICBNT1RFIDM6IG5kci1hbGwuZGVmIHVuZCBuZHItcHViLmRlZiBzaW5kIGpldHp0IHZvcmRlZmluaWVydCwgcGFzc2VuIHNpY2ggYW4KKyMgICAgICAgICAgIGRpZSBsZXR6dGUgQWt0dWFsaXNpZXJ1bmcgYXV0b21hdGlzY2ggYW4gdW5kIGVyc2V0emVuIGRpZSBHZW5lcmllcnVuZworIyAgICAgICAgICAgdm9uIG5kci1wdWIuZGVmIHVuZCBuZHItbnB1Yi5kZWYuCisjICAgICAgICAgICBjZGVmLmFsbC50eHQgLT4gbmRyLWFsbC5kZWYgLyBjZGVmLnB1Yi50eHQgLT4gbmRyLnB1Yi5kZWYuCisKKworIyMjCitlY2hvIC1lICJyc3JhdCAtIFJlY2h0c2NocmVpYnJhdC1LZXJua29ycHVzIGluIFcgX0dyZWVuX1x0TE9BRCgnY29ycC13LXJzcmF0JylcdEdfUmVjaHRzY2hyZWlicmF0IiA+PiAkQ0RGaWxlCitidWlsZF9iaWdfZGVmIGNvcnAtdy1yc3JhdCAmCisjIyMKK2VjaG8gLWUgInZhcy1uOTEgLSBQcm9qZWt0a29ycHVzIFZBUyBOOTEsIFN0YW5kIEp1bGkgMjAxMyAoa29yci4gMjAxNykgX0dyZWVuX1x0TE9BRCgnY29ycC13LXZhcy1uOTEta29yMTcnKVx0R19WQVMiID4+ICRDREZpbGUKK2J1aWxkX2JpZ19kZWYgY29ycC13LXZhcy1uOTEta29yMTcgJgorIyMjCisKK2VjaG8gLWUgImJpaCAtIEhlcmF1c2dlYmVydGV4dGUgenVtIEtvcnB1cyBiaW9cdExPQUQoJ2JpaCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86YmloCisgCitlY2hvIC1lICJiaW8gLSBCaW9ncmFmaXNjaGUgTGl0ZXJhdHVyXHRMT0FEKCdiaW8gYmlvLXB1YicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86YmlvCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmJpby1wdWIKKworZWNobyAtZSAiZGl2IC0gQmVsbGV0cmlzdGlrIGRlcyAyMC4gdW5kIDIxLiBKYWhyaHVuZGVydHM6IERpdmVyc2UgU2NocmlmdHN0ZWxsZXJcdExPQUQoJ2RpdiBkaXYtcHViJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpkaXYKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86ZGl2LXB1YgorCitlY2hvIC1lICJibXAgLSBCZXJsaW5lciBNb3JnZW5wb3N0LCAxOTk3IC0gJF9USElTX1lFQVJcdExPQUQoJ2wnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmwKKworZWNobyAtZSAiYnJ6IC0gQnJhdW5zY2h3ZWlnZXIgWmVpdHVuZywgU2VwdGVtYmVyIDIwMDUgLSBKdW5pIDIwMTNcdExPQUQoJ2JyeicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86YnJ6CisKKyMjIyAyNy4wNi4xNzogYnZ6IHdhcyBOT1QgdXBkYXRlZCBzaW5jZSBEZVJlS28tMjAxNS1JSQorIyNlY2hvIC1lICJidnogLSBCdXJnZW5s5G5kaXNjaGUgVm9sa3N6ZWl0dW5nLCBKYW51YXIgMjAwNyAtICRfQlZaICRfVEhJU19ZRUFSXHRMT0FEKCdidnonKSIgPj4kQ0RGaWxlCisjZWNobyAtZSAiYnZ6IC0gQnVyZ2VubORuZGlzY2hlIFZvbGtzemVpdHVuZywgMjAwNyAtICRfVEhJU19ZRUFSXHRMT0FEKCdidnonKSIgPj4kQ0RGaWxlCitlY2hvIC1lICJidnogLSBCdXJnZW5s5G5kaXNjaGUgVm9sa3N6ZWl0dW5nLCAyMDA3IC0gMjAxNVx0TE9BRCgnYnZ6JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpidnoKKworZWNobyAtZSAiYnprIC0gQm9ubmVyIFplaXR1bmdza29ycHVzXHRMT0FEKCdiemsnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmJ6aworCitlY2hvIC1lICJienQgLSBCZXJsaW5lciBaZWl0dW5nLCAxOTk3IC0gJF9USElTX1lFQVJcdExPQUQoJ2InKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmIKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86Yi1wdWIKKworZWNobyAtZSAiYyd0IC0gTWFnYXppbiBm/HIgQ29tcHV0ZXJ0ZWNobmlrLCAyMDE3IC0gJF9USElTX1lFQVJcdExPQUQoJ2N0JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpjdAorCitlY2hvIC1lICJjeiAtIENvbXB1dGVyIFplaXR1bmcsIEphbnVhciAxOTkzIC0gRGV6ZW1iZXIgMTk5OFx0TE9BRCgnY3onKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmN6CisKK2VjaG8gLWUgImRjayAtIERvcnRtdW5kZXIgQ2hhdGtvcnB1cyAyLjJcdExPQUQoJ2RjaycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86ZGNrCisKK2VjaG8gLWUgImRrZyAtIEZhY2hzcHJhY2hlbi1Lb3JwdXMgMjogR2VudGVjaG5vbG9naWVcdExPQUQoJ2RrZycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86ZGtnCisKKyMjZWNobyAtZSAiZHBhIC0gTWVsZHVuZ2VuIGRlciBEZXV0c2NoZW4gUHJlc3NlLUFnZW50dXIsIEphbnVhciAyMDA2IC0gRGV6ZW1iZXIgMjAwOSwgQXByaWwgMjAxMCAtICRfRFBBICRfVEhJU19ZRUFSXHRMT0FEKCdkcGEnKSIgPj4kQ0RGaWxlCitlY2hvIC1lICJkcGEgLSBNZWxkdW5nZW4gZGVyIERldXRzY2hlbiBQcmVzc2UtQWdlbnR1ciwgMjAwNiAtICRfVEhJU19ZRUFSXHRMT0FEKCdkcGEnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmRwYQorCisjI2VjaG8gLWUgImRwciAtIERpZSBQcmVzc2UsIFNlcHRlbWJlciAxOTkxIC0gRGV6ZW1iZXIgMjAwMFx0TE9BRCgncCcpIiA+PiRDREZpbGUKK2VjaG8gLWUgImRwciAtIERpZSBQcmVzc2UsIDE5OTEgLSAkX1RISVNfWUVBUlx0TE9BRCgncCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86cAorCitlY2hvIC1lICJlcmsgLSBBbSBFcmtlclx0TE9BRCgnZXJrJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzplcmsKKworZWNobyAtZSAiZmx0IC0gRmFsdGVyLCAyMDAwIC0gJF9USElTX1lFQVJcdExPQUQoJ2ZsdCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86Zmx0CisKK2VjaG8gLWUgImZheiAtIEZyYW5rZnVydGVyIEFsbGdlbWVpbmUsIDE5OTMsIDE5OTUgdW5kIDE5OTcgLSAyMDA1ICh1bmdlcmFkZSBKYWhyZ+RuZ2UgdW5kIE1vbmF0ZSlcdExPQUQoJ2ZheicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86ZmF6CisKKyMjZWNobyAtZSAiZm9jIC0gRk9DVVMsIEphbnVhciAyMDAwIC0gJF9GT0MgJF9USElTX1lFQVJcdExPQUQoJ2ZvYycpIiA+PiRDREZpbGUKK2VjaG8gLWUgImZvYyAtIEZPQ1VTLCAyMDAwIC0gJF9USElTX1lFQVJcdExPQUQoJ2ZvYycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86Zm9jCisKK2VjaG8gLWUgImZyciAtIEZyYW5rZnVydGVyIFJ1bmRzY2hhdSwgSmFudWFyIDE5OTcgLSBEZXplbWJlciAxOTk5XHRMT0FEKCdmcnInKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmZycgorCitlY2hvIC1lICJmc3AgLSBGYWNoc3ByYWNoZW4tS29ycHVzIDFcdExPQUQoJ2ZzcCBmc3AtcHViJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpmc3AKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86ZnNwLXB1YgorCitlY2hvIC1lICJnb2UgLSBHb2V0aGVzIFdlcmtlXHRMT0FEKCdnb2UnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmdvZQorCitlY2hvIC1lICJncjEgLSBHcmFtbWF0aWstS29ycHVzXHRMT0FEKCdncjEnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmdyMQorCitlY2hvIC1lICJncmkgLSBCcvxkZXIgR3JpbW06IFNhZ2VuLCBLaW5kZXItIHVuZCBIYXVzbeRyY2hlbiwgS2luZGVybGVnZW5kZW5cdExPQUQoJ2dyaScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86Z3JpCisKKyMjZWNobyAtZSAiaGF6IC0gSGFubm92ZXJzY2hlIEFsbGdlbWVpbmUsIEF1Z3VzdCAyMDA3IC0gJF9IQVogJF9USElTX1lFQVJcdExPQUQoJ2hheicpIiA+PiRDREZpbGUKK2VjaG8gLWUgImhheiAtIEhhbm5vdmVyc2NoZSBBbGxnZW1laW5lLCAyMDA3IC0gJF9USElTX1lFQVJcdExPQUQoJ2hheicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86aGF6CisKK2VjaG8gLWUgImhiayAtIEhhbmRidWNoLUtvcnBvcmEsIDE5ODUgLSAxOTg4XHRMT0FEKCdoYmsnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmhiaworCitlY2hvIC1lICJoZXMgLSBCZWxsZXRyaXN0aWsgZGVzIDIwLiBKYWhyaHVuZGVydHM6IFN0ZWZhbiBIZXltXHRMT0FEKCdoZXMnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmhlcworCisjI2VjaG8gLWUgImhtcCAtIEhhbWJ1cmdlciBNb3JnZW5wb3N0LCBBcHJpbCAyMDA1IC0gJF9ITVAgJF9USElTX1lFQVJcdExPQUQoJ2htcCcpIiA+PiRDREZpbGUKK2VjaG8gLWUgImhtcCAtIEhhbWJ1cmdlciBNb3JnZW5wb3N0LCAyMDA1IC0gJF9USElTX1lFQVJcdExPQUQoJ2htcCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86aG1wCisKK2VjaG8gLWUgImlrbyAtIEludGVydmlld2tvcnB1c1x0TE9BRCgnaWtvJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzppa28KKworZWNobyAtZSAiaXggLSBNYWdhemluIGb8ciBwcm9mZXNzaW9uZWxsZSBJbmZvcm1hdGlvbnN0ZWNobmlrLCAyMDE3IC0gJF9USElTX1lFQVJcdExPQUQoJ2l4JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzppeAorCitlY2hvIC1lICJraWMgLSBGdd9iYWxsLUxpdmV0aWNrZXIsIGtpY2tlci5kZSwgMjAwNiAtIDIwMTZcdExPQUQoJ2tpYycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86a2ljCisKK2VjaG8gLWUgImtqbCAtIEtpbmRlci0gdW5kIEp1Z2VuZGxpdGVyYXR1clx0TE9BRCgna2psJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpramwKKworZWNobyAtZSAia2x6IC0gS2xlaW5lIFplaXR1bmcsIEF1Z3VzdCAxOTk2IC0gRGV6ZW1iZXIgMjAwMFx0TE9BRCgna2x6JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzprbHoKKworZWNobyAtZSAia3NwIC0gRnXfYmFsbC1TcGllbGJlcmljaHRlLCBraWNrZXIuZGUsIDIwMDYgLSAyMDE2XHRMT0FEKCdrc3AnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmtzcAorCitlY2hvIC1lICJsZXMgLSBCZWxsZXRyaXN0aWsgZGVzIDIwLiBKYWhyaHVuZGVydHM6IFNpZWdmcmllZCBMZW56XHRMT0FEKCdsZXMnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmxlcworCitlY2hvIC1lICJsaW0gLSBMSU1BUy1Lb3JwdXNcdExPQUQoJ2xpbScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bGltCisKK2VjaG8gLWUgImxtZCAtIExlIE1vbmRlIGRpcGxvbWF0aXF1ZSwgMjAxNyAtICRfVEhJU19ZRUFSXHRMT0FEKCdsbWQnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOmxtZAorCitlY2hvIC1lICJsb3ogLSBCZWxsZXRyaXN0aWsgZGVzIDIwLiB1bmQgMjEuIEphaHJodW5kZXJ0c1x0TE9BRCgnZGl2IGRpdi1wdWIgaGVzIGxlcyB3YW0nKSIgPj4kQ0RGaWxlCisKKyMjZWNobyAtZSAibHRiIC0gTHV4ZW1idXJnZXIgVGFnZWJsYXR0LCBKYW51YXIgMjAwOCAtICRfTFRCICRfVEhJU19ZRUFSXHRMT0FEKCdsdGInKSIgPj4kQ0RGaWxlCitlY2hvIC1lICJsdGIgLSBMdXhlbWJ1cmdlciBUYWdlYmxhdHQsIDIwMDggLSAkX1RISVNfWUVBUlx0TE9BRCgnbHRiJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpsdGIKKworZWNobyAtZSAibWsgLSBNYW5uaGVpbWVyIEtvcnBvcmEgMSsyXHRMT0FEKCdtazEgbWsyJykiID4+JENERmlsZQorCitlY2hvIC1lICJtazEgLSBNYW5uaGVpbWVyIEtvcnB1cyAxXHRMT0FEKCdtazEnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm1rMQorCitlY2hvIC1lICJtazIgLSBNYW5uaGVpbWVyIEtvcnB1cyAyXHRMT0FEKCdtazInKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm1rMgorCitlY2hvIC1lICJtbGQgLSBLb3JwdXMgTWFnYXppbiBMdWZ0aGFuc2EgQm9yZGJ1Y2gvZGV1dHNjaFx0TE9BRCgnbWxkJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzptbGQKKworIyNlY2hvIC1lICJtbSAtIE1hbm5oZWltZXIgTW9yZ2VuLCBKYW51YXIgMTk5NSAtICRfTU0gJF9USElTX1lFQVIgKGRpZSBKYWhyZ+RuZ2UgMTk5NSwgMTk5NyB1bmQgMjAwMCBzaW5kIHVudm9sbHN05G5kaWcpXHRMT0FEKCdtJykiID4+JENERmlsZQorZWNobyAtZSAibW0gLSBNYW5uaGVpbWVyIE1vcmdlbiwgMTk5NSAtICRfVEhJU19ZRUFSIChkaWUgSmFocmfkbmdlIDE5OTUsIDE5OTcgdW5kIDIwMDAgc2luZCB1bnZvbGxzdORuZGlnKVx0TE9BRCgnbScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bQorCitlY2hvIC1lICJuZXUgLSBOZXVsYW5kOiBEYXMgV2lydHNjaGFmdHNtYWdhemluIGRlciBSZWdpb25lbiwgT2t0LiAyMDA3OyBNcnouLEp1bC4sRGV6LiAyMDA4OyBBdWcuIDIwMDlcdExPQUQoJ25ldScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bmV1CisKKyMjZWNobyAtZSAibmV3cyAtIE5FV1MsIEphbnVhciAyMDAyIC0gJF9ORVdTICRfVEhJU19ZRUFSXHRMT0FEKCduZXcnKSIgPj4kQ0RGaWxlCitlY2hvIC1lICJuZXdzIC0gTkVXUywgMjAwMiAtICRfVEhJU19ZRUFSXHRMT0FEKCduZXcnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm5ldworCisjIyMgMDEuMDcuMjAxNzoKKyMjIyB1c2UgdGhlIGJlbG93IHNjcmlwdHMgZm9yIGdlbmVyYXRpbmcgdGhlIGFwcHJvcC4gbmV3IG5nLWVudHJpZXMgaW4gJ0RFRi9uZXctbnB1Yi5kZWYnOgorIyMjIHVuc2V0IExJU1QKKyMjIyB3aGlsZSByZWFkOyBkbyBpZiBbIC16ICIkTElTVCIgXTt0aGVuIExJU1Q9IiRSRVBMWSI7ZWxzZSBMSVNUPSIke0xJU1R9XG4ke1JFUExZfSI7Zmk7IGRvbmUgPCA8KGZvciBpIGluIGBscyAtMSAvcG9vbDMvRGVSZUtvL0RlUmVLby0yMDE3LUkvSTUvbmcqLmk1LnhtbC5iejJgO2RvIGJ6Y2F0ICRpfHBlcmwgLW5lICdjaG9tcDtpZihzL15ccyo8ZC50aXRsZT4oLispWzAtOV17NH08XC9kLnRpdGxlPiQvJDEvKXtwcmludCAiICRfXG4iO2xhc3R9O3ByaW50IGlmIHMvXlxzKjxrb3JwdXNTaWdsZT4oW148XSspPFwva29ycHVzU2lnbGU+JC8kMS8nO2RvbmUpCisjIyMgZXhwb3J0IExJU1QKKyMjIyB3aGlsZSByZWFkOyBkbyBleHBvcnQgUkVQTFk7IHBlcmwgLWUgJyRFTlZ7UkVQTFl9PX4vXihbXlwvXSspLis/KFswLTldKykkLzska3M9JDE7JHllYXI9JDI7JEVOVntMSVNUfT1+LyRrcyAoW15cXFxuXSspLztwcmludCAiPGRvYz4kRU5We1JFUExZfSAkezF9MjAkeWVhcjwvZG9jPlxuIic7IGRvbmUgPCA8KGZvciBpIGluIGBjYXQgL3Bvb2wzL2hvbWU2L0RJRkYvZGlmZl9jcy5EZVJlS28tMjAxNy1JX3hzL0RBL25nKi5kYWA7ZG8gZWNobyAkaTtkb25lKSA+PiBERUYvbmV3LXB1Yi5kZWYKKyMjIyBOT1RFOiB0aGUgYWJvdmUgd2hpbGUtbG9vcCBvbmx5IHJlZmVycyB0byBfYWRkZWRfIGRvY3VtZW50cyAoLi4uL0RBLy4uLikgYW5kIF9ub3RfIGNvbXBsZXRlbHkgbmV3IG9uZXMgKGluIHRoaXMgY2FzZSBsaWtlICduZ2FsdCcpCisjIyMKK2VjaG8gLWUgIm5nIC0gJ2RlLionLVVzZW5ldC1OZXdzZ3J1cHBlbiwgMjAxMyAtIDIwMTZcdExPQUQoJ25nJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpuZworCitlY2hvIC1lICJua3UgLSBOb3Jka3VyaWVyLCAyMDAwIC0gJF9USElTX1lFQVJcdExPQUQoJ25rdScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bmt1CisKK2VjaG8gLWUgIm5reiAtIE5ldWUgS3JvbmVuLVplaXR1bmcsIEphbnVhciAxOTk0IC0gTWFpIDIwMDBcdExPQUQoJ25reicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bmt6CisKK2VjaG8gLWUgIm5vbiAtIE5pZWRlcvZzdGVycmVpY2hpc2NoZSBOYWNocmljaHRlbiwgMjAwNyAtICRfVEhJU19ZRUFSXHRMT0FEKCdub24nKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm5vbgorCitlY2hvIC1lICJudW4gLSBO/HJuYmVyZ2VyIE5hY2hyaWNodGVuLCAxOTkwIC0gJF9USElTX1lFQVJcdExPQUQoJ251bicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86bnVuCisKK2VjaG8gLWUgIm51eiAtIE78cm5iZXJnZXIgWmVpdHVuZywgMjAwMiAtICRfVEhJU19ZRUFSXHRMT0FEKCdudXonKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOm51egorCitlY2hvIC1lICJuemYgLSBOWlogRm9saW8sIDE5OTQgLSAkX1RISVNfWUVBUlx0TE9BRCgnbnpmJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpuemYKKworZWNobyAtZSAibnpzIC0gTlpaIGFtIFNvbm50YWcsIDIwMDIgLSAkX1RISVNfWUVBUlx0TE9BRCgnbnpzJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpuenMKKworZWNobyAtZSAibnp6IC0gTmV1ZSBa/HJjaGVyIFplaXR1bmcsIDIwMDAgLSAkX1RISVNfWUVBUlx0TE9BRCgnbnp6JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpuenoKKworZWNobyAtZSAib29uIC0gT2JlcvZzdGVycmVpY2hpc2NoZSBOYWNocmljaHRlbiwgMTk5NiAtIDE5OTdcdExPQUQoJ29vbicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86b29uCisKKyMgQW5zcHJlY2hwYXJ0bmVyOiBIYXJhbGQgTHVlbmdlbgorZWNobyAtZSAicHAgLSBQbGVuYXJwcm90b2tvbGxlXHRMT0FEKCdwcCcpIiA+PiAkQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICIkU1YiIC1hZDJiOm86cHAKKworZWNobyAtZSAicHJmIC0gcHJvZmlsLCAyMDAwIC0gJF9USElTX1lFQVJcdExPQUQoJ3ByZicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgIiRTViIgLWFkMmI6bzpwcmYKKworZWNobyAtZSAicmVpIC0gUmVkZW4gdW5kIEludGVydmlld3MsIEphbnVhciAyMDAyIC0gRGV6ZW1iZXIgMjAwNlx0TE9BRCgncmVpJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpyZWkKKworZWNobyAtZSAicmhwIC0gRGllIFJoZWlucGZhbHosIDIwMDcgLSAkX1RISVNfWUVBUlx0TE9BRCgncmhwJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpyaHAKKworZWNobyAtZSAicmh6IC0gUmhlaW4tWmVpdHVuZywgMTk5NiAtICRfVEhJU19ZRUFSXHRMT0FEKCdyaHonKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnJoegorCitlY2hvIC1lICJzYmwgLSBTb25udGFnc2JsaWNrLCBGZWIuIDIwMDE7IDIwMDUgLSAkX1RISVNfWUVBUlx0TE9BRCgnc2JsJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpzYmwKKworZWNobyAtZSAic2JuIC0gU2FsemJ1cmdlciBOYWNocmljaHRlbiwgSnVuaSAxOTkxIC0gRGV6ZW1iZXIgMjAwMFx0TE9BRCgnc2JuJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpzYm4KKworZWNobyAtZSAic2d0IC0gU3QuIEdhbGxlciBUYWdibGF0dCwgMTk5NyAtIDIwMDEsIDIwMDcgLSAkX1RISVNfWUVBUlx0TE9BRCgnYScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86YQorCitlY2hvIC1lICJzaWQgLSBGdd9iYWxsLUxpdmV0aWNrZXIsIFNwb3J0LUluZm9ybWF0aW9ucy1EaWVuc3QsIDIwMTAgLSAyMDE2XHRMT0FEKCdzaWQnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnNpZAorCitlY2hvIC1lICJzb3ogLSBEaWUgU/xkb3N0c2Nod2VpeiwgMjAwNSAtIDIwMThcdExPQUQoJ3NveicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86c296CisKK2VjaG8gLWUgInNwaWVnZWwgLSBEZXIgU3BpZWdlbCwgMTk0NyAtICRfVEhJU19ZRUFSXHRMT0FEKCdzJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpzCisKK2VjaG8gLWUgInNwb24gLSBTcGllZ2VsLU9ubGluZSwgMTk5OSAtICRfVEhJU19ZRUFSXHRMT0FEKCdzb2wnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnNvbAorCitlY2hvIC1lICJzcGsgLSBzcGVrdHJ1bWRpcmVrdCwgSmFudWFyIDE5OTcgLSBBdWd1c3QgMjAxMlx0TE9BRCgnc3BrJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpzcGsKKworZWNobyAtZSAic3RlIC0gU3Rlcm4sIDE5OTYgLSAkX1RISVNfWUVBUlx0TE9BRCgnc3RlJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzpzdGUKKworZWNobyAtZSAic3RnIC0gU3Rlcm4gR2VzdW5kIGxlYmVuLCAyMDE4IC0gJF9USElTX1lFQVJcdExPQUQoJ3N0ZycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86c3RnCisKK2VjaG8gLWUgInN6IC0gU/xkZGV1dHNjaGUgWmVpdHVuZywgMTk5MiAtICRfVEhJU19ZRUFSXHRMT0FEKCd1JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp1CisKK2VjaG8gLWUgInRhcyAtIFNvbm50YWdzWmVpdHVuZyAoVGFnZXMtQW56ZWlnZXIpLCAyMDAwIC0gJF9USElTX1lFQVJcdExPQUQoJ3RhcycpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86dGFzCisKK2VjaG8gLWUgInRheiAtIGRpZSB0YWdlc3plaXR1bmcsIDE5ODYgLSAkX1RISVNfWUVBUlx0TE9BRCgndCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86dAorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp0LXB1YgorCitlY2hvIC1lICJ0aG0gLSBUaG9tYXMtTWFubi1Lb3JwdXNcdExPQUQoJ3RobScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86dGhtCisKK2VjaG8gLWUgInR0eiAtIFRpcm9sZXIgVGFnZXN6ZWl0dW5nLCBKYW51YXIgMTk5NiAtIERlemVtYmVyIDIwMDBcdExPQUQoJ3R0eicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86dHR6CisKK2VjaG8gLWUgInZhbiAtIFZvcmFybGJlcmdlciBOYWNocmljaHRlbiwgSmFudWFyIDE5OTcgLSBEZXplbWJlciAyMDAwXHRMT0FEKCd2YW4nKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnZhbgorCitlY2hvIC1lICJ2ZGkgLSBWREkgbmFjaHJpY2h0ZW4sIDIwMDYgLSAkX1RISVNfWUVBUlx0TE9BRCgndmRpJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp2ZGkKKworZWNobyAtZSAid2FtIC0gQmVsbGV0cmlzdGlrIGRlcyAyMC4gSmFocmh1bmRlcnRzOiBNYXJ0aW4gV2Fsc2VyXHRMT0FEKCd3YW0nKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOndhbQorCitlY2hvIC1lICJ3a2IgLSBXZW5kZWtvcnB1cy9XZXN0XHRMT0FEKCd3a2InKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOndrYgorCitlY2hvIC1lICJ3a2QgLSBXZW5kZWtvcnB1cy9Pc3RcdExPQUQoJ3drZCcpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86d2tkCisKK2VjaG8gLWUgIndrIC0gV2VuZGVrb3Jwb3JhIFdlc3QrT3N0XHRMT0FEKCd3a2Igd2tkJykiID4+JENERmlsZQorCitlY2hvIC1lICJ3a3YgLSBXZW5kZWtvcnB1cy9WZXJlaW5pZ3VuZ1x0TE9BRCgnd2t2JykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp3a3YKKworZWNobyAtZSAid3BkMTEgLSBXaWtpcGVkaWEgQXJ0aWtlbCAoU3RhbmQ6IDI5LjEwLjIwMTEpXHRMT0FEKCd3cGQxMScpIiA+PiAkQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOndwZDExCisKK2VjaG8gLWUgIndkZDExIC0gV2lraXBlZGlhIERpc2t1c3Npb25lbiAoU3RhbmQ6IDI5LjEwLjIwMTEpXHRMT0FEKCd3ZGQxMScpIiA+PiAkQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOndkZDExCisKK2VjaG8gLWUgInd4eDExIC0gV2lraXBlZGlhIEFydGlrZWwgdW5kIERpc2t1c3Npb25lbiAoU3RhbmQ6IDI5LjEwLjIwMTEpXHRMT0FEKCd3eHgxMScpIiA+PiAkQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnd4eDExCisKK2VjaG8gLWUgInd3byAtIFdlbHR3b2NoZSwgMjAwNSAtICRfVEhJU19ZRUFSXHRMT0FEKCd3d28nKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnd3bworCitlY2hvIC1lICJ6Y2EgLSBaZWl0IENhbXB1cywgMjAwOSAtICRfVEhJU19ZRUFSXHRMT0FEKCd6Y2EnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnpjYQorCitlY2hvIC1lICJ6Y3cgLSBaRUlUIENocmlzdCB1bmQgV2VsdCwgMjAxNSAtICRfVEhJU19ZRUFSXHRMT0FEKCd6Y3cnKSIgPj4kQ0RGaWxlCiskQklOL2MydGVzdCAkU0wgIiREQk4iICRTViAtYWQyYjpvOnpjdworCitlY2hvIC1lICJ6ZWl0IC0gRGllIFplaXQsIDE5NTMgLSAkX1RISVNfWUVBUlx0TE9BRCgneicpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86egorCitlY2hvIC1lICJ6Z2UgLSBaZWl0IEdlc2NoaWNodGUsIDIwMTAgLSAkX1RISVNfWUVBUlx0TE9BRCgnemdlJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp6Z2UKKworZWNobyAtZSAienRhIC0gVGFnZXMtQW56ZWlnZXIsIDE5OTYgLSAkX1RISVNfWUVBUlx0TE9BRCgnZScpIiA+PiRDREZpbGUKKyRCSU4vYzJ0ZXN0ICRTTCAiJERCTiIgJFNWIC1hZDJiOm86ZQorCitlY2hvIC1lICJ6d2kgLSBaZWl0IFdpc3NlbiAodW52b2xsc3QuKSwgMjAwOSAtIDIwMTUsIDIwMTcgLSAkX1RISVNfWUVBUlx0TE9BRCgnendpJykiID4+JENERmlsZQorJEJJTi9jMnRlc3QgJFNMICIkREJOIiAkU1YgLWFkMmI6bzp6d2kKKworIworIyBpbXBvcnRhbnQgZm9yIHRoZSBuZXh0IHNjcmlwdHM6IAorIyB3YWl0IHRpbGwgYWxsIGJ1aWxkX2JpZ19kZWYoKSBjYWxscyBoYXZlIHJldHVybmVkOgorIyAwMS4wNC4yMS9GQgorCitlY2hvICIkMDogd2FpdCBmb3IgYWxsIGJ1aWxkX2JpZ19kZWYoKS4uLiIKK3dhaXQKK2VjaG8gIiQwOiB3YWl0OiBkb25lLiIKZGlmZiAtLWdpdCBhL3Qvc2NyaXB0MnZjLnQgYi90L3NjcmlwdDJ2Yy50Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NDM1MjgKLS0tIC9kZXYvbnVsbAorKysgYi90L3NjcmlwdDJ2Yy50CkBAIC0wLDAgKzEsOTMgQEAKKyMhL3Vzci9iaW4vZW52IHBlcmwKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgVGVzdDo6TW9yZTsKK3VzZSBLb3JBUDo6U2NyaXB0TG9hZDsKK3VzZSBNb2pvOjpKU09OIHF3J2RlY29kZV9qc29uIGVuY29kZV9qc29uJzsKK3VzZSBNb2pvOjpGaWxlIHF3J3BhdGgnOwordXNlIEZpbGU6OlRlbXAgcXcvdGVtcGRpci87Cit1c2UgRmlsZTo6QmFzZW5hbWU7Cit1c2UgRmlsZTo6U3BlYzo6RnVuY3Rpb25zOworCitteSAkcmYgPSBcJktvckFQOjpTY3JpcHRMb2FkOjpfcGFyc2VfbG9hZDsKKworbXkgKCRuYW1lLCAkZGVzYywgQGRlZikgPSAkcmYtPihxIWVjaG8gLWUgIlctZ2VzYW10LTIwMjItSSAtIFctZ2VzYW10IHZvbiBSZWxlYXNlIERlUmVLby0yMDIyLUkgX0JsdWVfXHRMT0FEKCdjb3JwLXctZ2VzYW10LjIwMjItaS4yMS4wNi4yMicpIiA+PiAkQ0RGaWxlICAgISk7CisKK2lzKCRuYW1lLCAnVy1nZXNhbXQtMjAyMi1JJyk7CitpcygkZGVzYywgJ1ctZ2VzYW10IHZvbiBSZWxlYXNlIERlUmVLby0yMDIyLUknKTsKK2lzKCRkZWZbMF0sICdjb3JwLXctZ2VzYW10LjIwMjItaS4yMS4wNi4yMicpOworCisoJG5hbWUsICRkZXNjLCBAZGVmKSA9ICRyZi0+KHEhIGVjaG8gLWUgIlctZ2VzYW10LTIwMTctSSAtIFctZ2VzYW10IHZvbiBSZWxlYXNlIERlUmVLby0yMDE3LUkgX0JsdWVfXHRMT0FEKCdjb3JwLXctZ2VzYW10LjIwMTctaS4xNy4xMC4xNycpXHRHX1VXViIgPj4gJENERmlsZSAgICEpOworCitpcygkbmFtZSwgJ1ctZ2VzYW10LTIwMTctSScpOworaXMoJGRlc2MsICdXLWdlc2FtdCB2b24gUmVsZWFzZSBEZVJlS28tMjAxNy1JJyk7CitpcygkZGVmWzBdLCAnY29ycC13LWdlc2FtdC4yMDE3LWkuMTcuMTAuMTcnKTsKKworKCRuYW1lLCAkZGVzYywgQGRlZikgPSAkcmYtPihxISBlY2hvIC1lICJsaXQgLSBCZWxsZXRyaXN0aWsvVHJpdmlhbGxpdGVyYXR1ciBfTWFyb29uXyBcdExPQUQoJ2JpaCBiaW8gYmlvLXB1YiBkaXYgZGl2LXB1YiBncjEgZ3JpIGhlcyBramwgbGVzIHdhbSB0aG0tbGl0IG1pc2MtbGl0JykiID4+JENERmlsZSAgICAgISk7CisKK2lzKCRuYW1lLCAnbGl0Jyk7CitpcygkZGVzYywgJ0JlbGxldHJpc3Rpay9Ucml2aWFsbGl0ZXJhdHVyJyk7CitpcygkZGVmWzBdLCAnYmloJyk7CitpcygkZGVmWy0xXSwgJ21pc2MtbGl0Jyk7CisKKygkbmFtZSwgJGRlc2MsIEBkZWYpID0gJHJmLT4ocSFlY2hvIC1lICJXMi3DtmZmZW50bGljaCAtIGFsbGUgw7ZmZmVudGxpY2hlbiBLb3Jwb3JhIGRlcyBBcmNoaXZzIFcyIChtaXQgTmV1YWtxdWlzaXRpb25lbikgX0JfX0JMVUVfXHRMT0FEKCdhYW4gYWF6IGFibyBhbHogYXJ0IGF6bSBiYXogYmR6IGJlZSBiZXogYmt1IGJsYSBibGkgYm96IGJyZyBicm0gYnJ1IGJydyBidW4gYnVwIGJ3YSBic3ogYnplIGNoayBjb3UgY3RiIGRhayBkYXogZGVjIGRraSBkbm4gZG9sIGRwciBkb2cgZWRmIGVmdCBlbGYgZWx0IGV0dCBldXQgZXV3IGZpcyBmbXQgZm5wIGZvbSBmcmEgZnJ0IGdhbCBnYXogZ2UgZ2VvIGdlcyBnaW5na28gZ25nIGdvYiBnc3AgZ3RhIGd0YiBoYWIgaGF1IGhmeiBoaHogaGtyIGhyeiBoc3QgaHRiIGh6cyBoencgaHp6IGl4IGsga2F6IGtzYSBrdXIga3R6IGxhaCBsYW4gbGF6IGxtZCBscnUgbXNwIG5kbyBuZW8gbm96IG53dCBvc3ogcGF6IHBoIHBtbSBzY3cgc3RiIHN0ZyB0dmQgdmJ3IHZ6cyB3IHdhcyB3ZW8gZGl2JykiID4+JENERmlsZSAgISk7CisKK2lzKCRuYW1lLCAnVzItw7ZmZmVudGxpY2gnKTsKK2lzKCRkZXNjLCAnYWxsZSDDtmZmZW50bGljaGVuIEtvcnBvcmEgZGVzIEFyY2hpdnMgVzIgKG1pdCBOZXVha3F1aXNpdGlvbmVuKScpOworaXMoJGRlZlswXSwgJ2FhbicpOworaXMoJGRlZlstMV0sICdkaXYnKTsKKworKCRuYW1lLCAkZGVzYywgQGRlZikgPSAkcmYtPihxIWRpdiAtIEJlbGxldHJpc3RpayBkZXMgMjAuIHVuZCAyMS4gSmFocmh1bmRlcnRzOiBEaXZlcnNlIFNjaHJpZnRzdGVsbGVyIExPQUQoJ2RpdiBkaXYtcHViJykhKTsKKworaXMoJG5hbWUsICdkaXYnKTsKK2lzKCRkZXNjLCAnQmVsbGV0cmlzdGlrIGRlcyAyMC4gdW5kIDIxLiBKYWhyaHVuZGVydHM6IERpdmVyc2UgU2NocmlmdHN0ZWxsZXInKTsKK2lzKCRkZWZbMF0sICdkaXYnKTsKK2lzKCRkZWZbLTFdLCAnZGl2LXB1YicpOworCisKKygkbmFtZSwgJGRlc2MsIEBkZWYpID0gJHJmLT4ocSFlY2hvIC1lICJOLWdlc2FtdCAtIGFsbGUgTmV1YWtxdWlzaXRpb25lbiB2b24gRGVSZUtvLTIwMjQtSSBfQl9fQmx1ZV9cdExPQUQoJ2JpaCBiaW8gYmlvLXB1YiBsIGJ2eiBicnogYnprIGIgY3QgY3ogZGNrIGRpdiBkaXYtcHViIGRrZyBkcGEgcCBlcmsgZmx0IGZheiBmb2MgZnJyIGZzcCBmc3AtcHViIGdvZSBncjEgZ3JpIGhheiBoYmsgaGVzIGhtcCBpa28gaXgga2ljIGtqbCBrbHoga3NwIGxlcyBsaW0gbG1kIGx0YiBtazEgbWsyIG1sZCBtIG5ldSBuZXcgbmcgbmt1IG5reiBub24gbnVuIG51eiBuemYgbnpzIG56eiBvb24gcHAgcHJmIHJlaSByaHAgcmh6IHNibCBzYm4gYSBzaWQgc296IHMgc3BrIHNvbCBzdGUgc3RnIHUgdGFzIHQgdGhtIHR0eiB2YW4gdmRpIHdhbSB3a2Igd2tkIHdrdiB3eHgxMSB3d28gemNhIHpjdyB6IHpnZSBlIHp3aSAtY29ycC13LWdlc2FtdC4yMDIzLWkuMTYuMDMuMjMnKSIgPj4kQ0RGaWxlISk7CisKK2lzKCRuYW1lLCAnTi1nZXNhbXQnKTsKK2lzKCRkZXNjLCAnYWxsZSBOZXVha3F1aXNpdGlvbmVuIHZvbiBEZVJlS28tMjAyNC1JJyk7CitpcygkZGVmWzBdLCAnYmloJyk7CitpcygkZGVmWy0xXSwgJy1jb3JwLXctZ2VzYW10LjIwMjMtaS4xNi4wMy4yMycpOworCisKKyMgTG9hZCBzY3JpcHQgZmlsZQorbXkgJHNjcmlwdF9maWxlID0gY2F0ZmlsZShkaXJuYW1lKF9fRklMRV9fKSwgJ2RhdGEnLCAnZG9WaXJ0Qm1zLncuYWxsLjIwMjQtSScpOworbXkgJG91dHB1dCA9IHRlbXBkaXIoIENMRUFOVVAgPT4gMSApOworCitteSAkbG9hZCA9IEtvckFQOjpTY3JpcHRMb2FkLT5uZXcoCisgIGZpbGUgPT4gJHNjcmlwdF9maWxlLAorICBvdXRwdXQgPT4gJG91dHB1dAorKTsKKworJGxvYWQtPnBhcnNlOworCitvaygtZSBjYXRmaWxlKCRvdXRwdXQsICd3a2QuanNvbmxkJykpOworb2soLWUgY2F0ZmlsZSgkb3V0cHV0LCAndGF6Lmpzb25sZCcpKTsKK29rKC1lIGNhdGZpbGUoJG91dHB1dCwgJ3N0Zy5qc29ubGQnKSk7CitvaygtZSBjYXRmaWxlKCRvdXRwdXQsICd6d2kuanNvbmxkJykpOworCitteSAkZiA9IE1vam86OkZpbGUtPm5ldyhjYXRmaWxlKCRvdXRwdXQsICdsaXQuanNvbmxkJykpOworCitteSAkY29sbCA9IGRlY29kZV9qc29uKCRmLT5zbHVycCk7CisKK2lzKCRjb2xsLT57Y29sbGVjdGlvbn0tPntvcGVyYXRpb259LCdvcGVyYXRpb246b3InKTsKK2lzKCRjb2xsLT57Y29sbGVjdGlvbn0tPntvcGVyYW5kc30tPlswXS0+eydyZWYnfSwnYmloJyk7CitpcygkY29sbC0+e2NvbGxlY3Rpb259LT57b3BlcmFuZHN9LT5bLTFdLT57J3JlZid9LCdtaXNjLWxpdCcpOworCisKKyRmID0gTW9qbzo6RmlsZS0+bmV3KGNhdGZpbGUoJG91dHB1dCwgJ04tZ2VzYW10Lmpzb25sZCcpKTsKKworJGNvbGwgPSBkZWNvZGVfanNvbigkZi0+c2x1cnApOworCitpcygkY29sbC0+e2NvbGxlY3Rpb259LT57b3BlcmF0aW9ufSwnb3BlcmF0aW9uOmFuZCcpOworaXMoJGNvbGwtPntjb2xsZWN0aW9ufS0+e29wZXJhbmRzfS0+WzBdLT57b3BlcmFuZHN9LT5bMF0tPnsncmVmJ30sJ2JpaCcpOworaXMoJGNvbGwtPntjb2xsZWN0aW9ufS0+e29wZXJhbmRzfS0+Wy0xXS0+eydyZWYnfSwgJ2NvcnAtdy1nZXNhbXQuMjAyMy1pLjE2LjAzLjIzJyk7CitpcygkY29sbC0+e2NvbGxlY3Rpb259LT57b3BlcmFuZHN9LT5bLTFdLT57J21hdGNoJ30sICdtYXRjaDpuZScpOworCisKKworCitkb25lX3Rlc3Rpbmc7Cg==