From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jeffrey C. Ollie To: git-commits@fedoraproject.org Subject: [rpms/ejabberd] f45: auto-import ejabberd-1.1.1-7.fc5 on branch devel from Date: Wed, 23 Sep 2026 19:06:29 GMT Message-ID: <179019038904.1.3746773836589880712.rpms-ejabberd-73b15bb9533c@fedoraproject.org> List-ID: X-Git-Repo: rpms/ejabberd X-Git-Branch: f45 X-Git-Rev: 73b15bb9533c40510176c67b8d29d61755e6aee7 ICAgICAgICBBIG5ldyBjb21taXQgaGFzIGJlZW4gcHVzaGVkLgoKICAgICAgICBSZXBvICAgOiBy cG1zL2VqYWJiZXJkCiAgICAgICAgQnJhbmNoIDogZjQ1CiAgICAgICAgQ29tbWl0IDogNzNiMTVi Yjk1MzNjNDA1MTAxNzZjNjdiOGQyOWQ2MTc1NWU2YWVlNwogICAgICAgIEF1dGhvciA6IEplZmZy ZXkgQy4gT2xsaWUgPGpjb2xsaWVAZmVkb3JhcHJvamVjdC5vcmc+CiAgICAgICAgRGF0ZSAgIDog MjAwNi0wNi0yM1QxMjo0MDowMyswMDowMAogICAgICAgIFN0YXRzICA6ICsxOTg0Ly0wIGluIDEw IGZpbGUocykKICAgICAgICBVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9y cG1zL2VqYWJiZXJkL2MvNzNiMTViYjk1MzNjNDA1MTAxNzZjNjdiOGQyOWQ2MTc1NWU2YWVlNz9i cmFuY2g9ZjQ1CgogICAgICAgIExvZzoKICAgICAgICBhdXRvLWltcG9ydCBlamFiYmVyZC0xLjEu MS03LmZjNSBvbiBicmFuY2ggZGV2ZWwgZnJvbQplamFiYmVyZC0xLjEuMS03LmZjNS5zcmMucnBt CgotLS0KZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8uY3ZzaWdub3JlCmluZGV4IGU2OWRlMjku LmQyMDY0OTQgMTAwNjQ0Ci0tLSBhLy5jdnNpZ25vcmUKKysrIGIvLmN2c2lnbm9yZQpAQCAtMCww ICsxIEBACitlamFiYmVyZC0xLjEuMS50YXIuZ3oKCmRpZmYgLS1naXQgYS9lamFiYmVyZC5pbml0 IGIvZWphYmJlcmQuaW5pdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Mzg0 YTZkCi0tLSAvZGV2L251bGwKKysrIGIvZWphYmJlcmQuaW5pdApAQCAtMCwwICsxLDY5IEBACisj IS9iaW4vYmFzaAorIworIyBlamFiYmVyZCAgICBTdGFydHMsIFN0b3BzIGFuZCBSZWxvYWRzIGVq YWJiZXJkLgorIworIyBjaGtjb25maWc6IC0gNDAgNjAKKyMgZGVzY3JpcHRpb246IGVqYWJiZXJk CisjIHByb2Nlc3NuYW1lOiBlamFiYmVyZAorIyBwaWRmaWxlOiAvdmFyL3J1bi9lamFiYmVyZC5w aWQKKworLiAvZXRjL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucworCitzdGFydCgpIHsKKyAgICAgICAg ZWNobyAtbiAkIlN0YXJ0aW5nIGVqYWJiZXJkOiAiCisgICAgICAgIGRhZW1vbiAtLXVzZXI9ZWph YmJlcmQgLS1jaGVjaz1lamFiYmVyZCBcCisJICAgICJlcmwiICItcGEgQGxpYmRpckAvZWphYmJl cmQtQHZlcnNpb25AL2ViaW4gXAorICAgICAgICAgICAgICAgICAgIC1zbmFtZSBlamFiYmVyZCBc CisgICAgICAgICAgICAgICAgICAgLXMgZWphYmJlcmQgXAorICAgICAgICAgICAgICAgICAgIC1l amFiYmVyZCBjb25maWcgXFxcIi9ldGMvZWphYmJlcmQvZWphYmJlcmQuY2ZnXFxcIiBcCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ19wYXRoIFxcXCIvdmFyL2xvZy9lamFiYmVyZC9l amFiYmVyZC5sb2dcXFwiIFwKKyAgICAgICAgICAgICAgICAgICAtc2FzbCBzYXNsX2Vycm9yX2xv Z2dlciBcXHtmaWxlLFxcXCIvdmFyL2xvZy9lamFiYmVyZC9zYXNsLmxvZ1xcXCJcXH0gXAorICAg ICAgICAgICAgICAgICAgIC1tbmVzaWEgZGlyIFxcXCIvdmFyL2xpYi9lamFiYmVyZC9zcG9vbFxc XCIgXAorICAgICAgICAgICAgICAgICAgIC1rZXJuZWwgaW5ldHJjIFxcXCIvZXRjL2VqYWJiZXJk L2luZXRyY1xcXCIgXAorICAgICAgICAgICAgICAgICAgIC1kZXRhY2hlZCIKKyAgICAgICAgUkVU VkFMPSQ/CisgICAgICAgIFsgJFJFVFZBTCAtZXEgMCBdICYmIHRvdWNoIC92YXIvbG9jay9zdWJz eXMvZWphYmJlcmQKKyAgICAgICAgZWNobworICAgICAgICByZXR1cm4gJFJFVFZBTAorfQorCitz dG9wKCkgeworICAgICAgICAjIFN0b3AgZGFlbW9ucy4KKyAgICAgICAgZWNobyAtbiAiU2h1dHRp bmcgZG93biBlamFiYmVyZDogIgorICAgICAgICBydW51c2VyIC1zIC9iaW4vYmFzaCAtIGVqYWJi ZXJkIC1jICJlcmwgLXBhIEBsaWJkaXJAL2VqYWJiZXJkLUB2ZXJzaW9uQC9lYmluIC1ub2lucHV0 IC1zbmFtZSBlamFiYmVyZGN0bCAtcyBlamFiYmVyZF9jdGwgLWV4dHJhIGVqYWJiZXJkQGBob3N0 bmFtZSAtc2Agc3RvcCIgJiYgc3VjY2VzcyB8fCBmYWlsdXJlCisgICAgICAgIFJFVFZBTD0kPwor ICAgICAgICBbICRSRVRWQUwgLWVxIDAgXSAmJiBybSAtZiAvdmFyL2xvY2svc3Vic3lzL2VqYWJi ZXJkCisgICAgICAgIGVjaG8KKyAgICAgICAgcmV0dXJuICRSRVRWQUwKK30KKworcmVzdGFydCgp IHsKKyAgICAgICAgc3RvcAorICAgICAgICBzdGFydAorfQorCisjIFNlZSBob3cgd2Ugd2VyZSBj YWxsZWQuCitjYXNlICIkMSIgaW4KKyAgc3RhcnQpCisgICAgICAgIHN0YXJ0CisgICAgICAgIDs7 CisgIHN0b3ApCisgICAgICAgIHN0b3AKKyAgICAgICAgOzsKKyAgcmVzdGFydCkKKyAgICAgICAg cmVzdGFydAorICAgICAgICA7OworICBjb25kcmVzdGFydCkKKyAgICAgICAgWyAtZiAvdmFyL2xv Y2svc3Vic3lzL2VqYWJiZXJkIF0gJiYgcmVzdGFydCB8fCA6CisgICAgICAgIDs7CisgIHN0YXR1 cykKKyAgICAgICAgcnVudXNlciAtcyAvYmluL2Jhc2ggLSBlamFiYmVyZCAtYyAiZXJsIC1wYSBA bGliZGlyQC9lamFiYmVyZC1AdmVyc2lvbkAvZWJpbiAtbm9pbnB1dCAtc25hbWUgZWphYmJlcmRj dGwgLXMgZWphYmJlcmRfY3RsIC1leHRyYSBlamFiYmVyZEBgaG9zdG5hbWUgLXNgIHN0YXR1cyIK KyAgICAgICAgOzsKKyAgKikKKyAgICAgICAgZWNobyAiVXNhZ2U6IGVqYWJiZXJkIHtzdGFydHxz dG9wfHJlc3RhcnR8cmVsb2FkfGNvbmRyZXN0YXJ0fHN0YXR1c30iCisgICAgICAgIGV4aXQgMQor ZXNhYworCitleGl0ICQ/CisKKwoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLmxvZ3JvdGF0ZSBiL2Vq YWJiZXJkLmxvZ3JvdGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzMx OWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvZWphYmJlcmQubG9ncm90YXRlCkBAIC0wLDAgKzEsOSBA QAorL3Zhci9sb2cvZWphYmJlcmQvZWphYmJlcmQubG9nIC92YXIvbG9nL2VqYWJiZXJkL3Nhc2wu bG9nIHsKKyAgICBtaXNzaW5nb2sKKyAgICBub3RpZmVtcHR5CisgICAgY3JlYXRlIDA2NDAgZWph YmJlcmQgZWphYmJlcmQKKyAgICBzaGFyZWRzY3JpcHRzCisgICAgcG9zdHJvdGF0ZQorICAgICAg ICBydW51c2VyIC1zIC9iaW4vYmFzaCAtIGVqYWJiZXJkIC1jICJlcmwgLXBhIEBsaWJkaXJAL2Vq YWJiZXJkLUB2ZXJzaW9uQC9lYmluIC1ub2lucHV0IC1zbmFtZSBlamFiYmVyZGN0bCAtcyBlamFi YmVyZF9jdGwgLWV4dHJhIGVqYWJiZXJkQGBob3N0bmFtZSAtc2AgcmVvcGVuLWxvZyA+L2Rldi9u dWxsIDI+L2Rldi9udWxsIHx8IHRydWUKKyAgICBlbmRzY3JpcHQKK30KCmRpZmYgLS1naXQgYS9l amFiYmVyZC5zcGVjIGIvZWphYmJlcmQuc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4yMTM3YTc3Ci0tLSAvZGV2L251bGwKKysrIGIvZWphYmJlcmQuc3BlYwpAQCAtMCww ICsxLDE3NSBAQAorTmFtZTogICAgICAgICAgIGVqYWJiZXJkCitWZXJzaW9uOiAgICAgICAgMS4x LjEKK1JlbGVhc2U6ICAgICAgICA3JXs/ZGlzdH0KK1N1bW1hcnk6ICAgICAgICBBIGRpc3RyaWJ1 dGVkLCBmYXVsdC10b2xlcmFudCBKYWJiZXIvWE1QUCBzZXJ2ZXIKKworR3JvdXA6ICAgICAgICAg IEFwcGxpY2F0aW9ucy9JbnRlcm5ldAorTGljZW5zZTogICAgICAgIEdQTAorVVJMOiAgICAgICAg ICAgIGh0dHA6Ly9lamFiYmVyZC5qYWJiZXIucnUvCitTb3VyY2UwOiAgICAgICAgaHR0cDovL3d3 dy5wcm9jZXNzLW9uZS5uZXQvZW4vcHJvamVjdHMvZWphYmJlcmQvZG93bmxvYWQvJXt2ZXJzaW9u fS9lamFiYmVyZC0le3ZlcnNpb259LnRhci5negorU291cmNlMToJZWphYmJlcmQuaW5pdAorU291 cmNlMjoJZWphYmJlcmQubG9ncm90YXRlCitTb3VyY2UzOglpbmV0cmMKKworIyBodHRwOi8vZWph YmJlcmQuamFiYmVyLnJ1L2VqYWJiZXJkY3RsLWV4dHJhCitTb3VyY2U0OiAgICAgICAgaHR0cDov L2VqYWJiZXJkLmphYmJlci5ydS9maWxlcy9lZmlsZXMvbW9kX2N0bGV4dHJhLmVybAorCisjIFRo ZSBmb2xsb3dpbmcgd2VyZSBleHRyYWN0ZWQgZnJvbSBhIHBhdGNoIGZvdW5kIG9uIGh0dHA6Ly9y ZWFsbG9jLnNwYi5ydS9zaGFyZS9lamFiYmVyZGFkLmh0bWwKK1NvdXJjZTU6ICAgICAgICBlamFi YmVyZF9hdXRoX2FkLmVybAorU291cmNlNjogICAgICAgIG1vZF9zaGFyZWRfcm9zdGVyX2FkLmVy bAorU291cmNlNzogICAgICAgIG1vZF92Y2FyZF9hZC5lcmwKKworQnVpbGRSb290OiAgICAgICV7 X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRfdX0g LW4pCisKK0J1aWxkUmVxdWlyZXM6ICBleHBhdC1kZXZlbAorQnVpbGRSZXF1aXJlczoJb3BlbnNz bC1kZXZlbAorQnVpbGRSZXF1aXJlczogIGVybGFuZworQnVpbGRSZXF1aXJlczogIGhldmVhCisK K1JlcXVpcmVzOiAgICAgICBlcmxhbmcKKworUmVxdWlyZXMocHJlKTogZmVkb3JhLXVzZXJtZ210 CitSZXF1aXJlcyhwb3N0KTogL3NiaW4vY2hrY29uZmlnCitSZXF1aXJlcyhwcmV1bik6IC9zYmlu L2Noa2NvbmZpZworUmVxdWlyZXMocHJldW4pOiAvc2Jpbi9zZXJ2aWNlCitSZXF1aXJlcyhwb3N0 dW4pOiAvc2Jpbi9zZXJ2aWNlCisKKyVkZXNjcmlwdGlvbgorZWphYmJlcmQgaXMgYSBGcmVlIGFu ZCBPcGVuIFNvdXJjZSBkaXN0cmlidXRlZCBmYXVsdC10b2xlcmFudAorSmFiYmVyL1hNUFAgc2Vy dmVyLiBJdCBpcyBtb3N0bHkgd3JpdHRlbiBpbiBFcmxhbmcsIGFuZCBydW5zIG9uIG1hbnkKK3Bs YXRmb3JtcyAodGVzdGVkIG9uIExpbnV4LCBGcmVlQlNELCBOZXRCU0QsIFNvbGFyaXMsIE1hYyBP UyBYIGFuZAorV2luZG93cyBOVC8yMDAwL1hQKS4KKworJXBhY2thZ2UgZG9jCitTdW1tYXJ5OiBE b2N1bWVudGF0aW9uIGZvciBlamFiYmVyZAorR3JvdXA6IERvY3VtZW50YXRpb24KKworJWRlc2Ny aXB0aW9uIGRvYworRG9jdW1lbnRhdGlvbiBmb3IgZWphYmJlcmQuCisKKyVwcmUKKy91c3Ivc2Jp bi9mZWRvcmEtZ3JvdXBhZGQgMjcgLXIgZWphYmJlcmQgJj4vZGV2L251bGwgfHwgOgorL3Vzci9z YmluL2ZlZG9yYS11c2VyYWRkICAyNyAtciAtcyAvc2Jpbi9ub2xvZ2luIC1kIC92YXIvbGliL2Vq YWJiZXJkIC1NIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWMgJ2VqYWJiZXJkJyAt ZyBlamFiYmVyZCBlamFiYmVyZCAmPi9kZXYvbnVsbCB8fCA6CisKKyVwb3N0Cisvc2Jpbi9jaGtj b25maWcgLS1hZGQgZWphYmJlcmQKKworJXByZXVuCitpZiBbICQxID0gMCBdOyB0aGVuCisgICAg ICAgIC9zYmluL3NlcnZpY2UgZWphYmJlcmQgc3RvcCA+L2Rldi9udWxsIDI+JjEKKyAgICAgICAg L3NiaW4vY2hrY29uZmlnIC0tZGVsIGVqYWJiZXJkCitmaQorCislcG9zdHVuCitpZiBbICIkMSIg LWdlICIxIiBdOyB0aGVuCisgICAgICAgIC9zYmluL3NlcnZpY2UgZWphYmJlcmQgY29uZHJlc3Rh cnQgPi9kZXYvbnVsbCAyPiYxCitmaQorCislcHJlcAorJXNldHVwIC1xCisKKyV7X19wZXJsfSAt cGkgLWUgInMhL3Zhci9saWIvZWphYmJlcmQhJXtfbGliZGlyfS9lamFiYmVyZC0le3ZlcnNpb259 IWciIHNyYy9NYWtlZmlsZS5pbgorJXtfX3Blcmx9IC1waSAtZSAicyEvZXRjISV7X3N5c2NvbmZk aXJ9IWciIHNyYy9NYWtlZmlsZS5pbgorJXtfX3Blcmx9IC1waSAtZSAicyFcQHByZWZpeFxAISFn IiBzcmMvTWFrZWZpbGUuaW4KKworY3AgJXtTOjR9IHNyYworY3AgJXtTOjV9IHNyYworY3AgJXtT OjZ9IHNyYworY3AgJXtTOjd9IHNyYworCislYnVpbGQKK3B1c2hkIHNyYworJWNvbmZpZ3VyZSAt LWVuYWJsZS1vZGJjCittYWtlICV7P19zbXBfbWZsYWdzfQorcG9wZAorcHVzaGQgZG9jCittYWtl IGh0bWwgcGRmCitwb3BkCisKKyVpbnN0YWxsCitybSAtcmYgJXtidWlsZHJvb3R9CisKK3B1c2hk IHNyYworbWFrZSBpbnN0YWxsIERFU1RESVI9JXtidWlsZHJvb3R9Citwb3BkCisKK2NobW9kIGEr eCAle2J1aWxkcm9vdH0le19saWJkaXJ9L2VqYWJiZXJkLSV7dmVyc2lvbn0vcHJpdi9saWIvKi5z bworCisle19fcGVybH0gLXBpIC1lICdzIS4vc3NsLnBlbSEvZXRjL2VqYWJiZXJkL2VqYWJiZXJk LnBlbSFnJyAle2J1aWxkcm9vdH0vZXRjL2VqYWJiZXJkL2VqYWJiZXJkLmNmZworCitta2RpciAt cCAle2J1aWxkcm9vdH0vdmFyL2xvZy9lamFiYmVyZAorbWtkaXIgLXAgJXtidWlsZHJvb3R9L3Zh ci9saWIvZWphYmJlcmQvc3Bvb2wKKworbWtkaXIgLXAgJXtidWlsZHJvb3R9JXtfaW5pdHJkZGly fQorY3AgJXtTOjF9ICV7YnVpbGRyb290fSV7X2luaXRyZGRpcn0vZWphYmJlcmQKK2NobW9kIGEr eCAle2J1aWxkcm9vdH0le19pbml0cmRkaXJ9L2VqYWJiZXJkCisKK21rZGlyIC1wICV7YnVpbGRy b290fSV7X3N5c2NvbmZkaXJ9L2xvZ3JvdGF0ZS5kCitjcCAle1M6Mn0gJXtidWlsZHJvb3R9JXtf c3lzY29uZmRpcn0vbG9ncm90YXRlLmQvZWphYmJlcmQKKworJXtfX3Blcmx9IC1waSAtZSAncyFc QGxpYmRpclxAISV7X2xpYmRpcn0hZycgJXtidWlsZHJvb3R9JXtfaW5pdHJkZGlyfS9lamFiYmVy ZCAle2J1aWxkcm9vdH0le19zeXNjb25mZGlyfS9sb2dyb3RhdGUuZC9lamFiYmVyZAorJXtfX3Bl cmx9IC1waSAtZSAncyFcQHZlcnNpb25cQCEle3ZlcnNpb259IWcnICV7YnVpbGRyb290fSV7X2lu aXRyZGRpcn0vZWphYmJlcmQgJXtidWlsZHJvb3R9JXtfc3lzY29uZmRpcn0vbG9ncm90YXRlLmQv ZWphYmJlcmQKKworY3AgJXtTOjN9ICV7YnVpbGRyb290fSV7X3N5c2NvbmZkaXJ9L2VqYWJiZXJk L2luZXRyYworCislY2xlYW4KK3JtIC1yZiAle2J1aWxkcm9vdH0KKworJWZpbGVzCislZGVmYXR0 cigtLHJvb3Qscm9vdCwtKQorJWRvYyBDT1BZSU5HCisKKyVhdHRyKDc1MCxlamFiYmVyZCxlamFi YmVyZCkgJWRpciAle19zeXNjb25mZGlyfS9lamFiYmVyZAorJWF0dHIoNjQwLGVqYWJiZXJkLGVq YWJiZXJkKSAlY29uZmlnKG5vcmVwbGFjZSkgJXtfc3lzY29uZmRpcn0vZWphYmJlcmQvZWphYmJl cmQuY2ZnCislYXR0cig2NDAsZWphYmJlcmQsZWphYmJlcmQpICVjb25maWcobm9yZXBsYWNlKSAl e19zeXNjb25mZGlyfS9lamFiYmVyZC9pbmV0cmMKKworJXtfaW5pdHJkZGlyfS9lamFiYmVyZAor JWNvbmZpZyhub3JlcGxhY2UpICV7X3N5c2NvbmZkaXJ9L2xvZ3JvdGF0ZS5kL2VqYWJiZXJkCisK KyVkaXIgJXtfbGliZGlyfS9lamFiYmVyZC0le3ZlcnNpb259CislZGlyICV7X2xpYmRpcn0vZWph YmJlcmQtJXt2ZXJzaW9ufS9lYmluCisle19saWJkaXJ9L2VqYWJiZXJkLSV7dmVyc2lvbn0vZWJp bi8qLmFwcAorJXtfbGliZGlyfS9lamFiYmVyZC0le3ZlcnNpb259L2ViaW4vKi5iZWFtCisKKyVk aXIgJXtfbGliZGlyfS9lamFiYmVyZC0le3ZlcnNpb259L3ByaXYKKworJWRpciAle19saWJkaXJ9 L2VqYWJiZXJkLSV7dmVyc2lvbn0vcHJpdi9saWIKKyV7X2xpYmRpcn0vZWphYmJlcmQtJXt2ZXJz aW9ufS9wcml2L2xpYi8qLnNvCisKKyVkaXIgJXtfbGliZGlyfS9lamFiYmVyZC0le3ZlcnNpb259 L3ByaXYvbXNncworJXtfbGliZGlyfS9lamFiYmVyZC0le3ZlcnNpb259L3ByaXYvbXNncy8qLm1z ZworCislYXR0cig3NTAsZWphYmJlcmQsZWphYmJlcmQpICVkaXIgL3Zhci9saWIvZWphYmJlcmQK KyVhdHRyKDc1MCxlamFiYmVyZCxlamFiYmVyZCkgJWRpciAvdmFyL2xpYi9lamFiYmVyZC9zcG9v bAorCislYXR0cig3NTAsZWphYmJlcmQsZWphYmJlcmQpICVkaXIgL3Zhci9sb2cvZWphYmJlcmQK KworJWZpbGVzIGRvYworJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyVkb2MgQ2hhbmdlTG9nIENP UFlJTkcgVE9ETyBkb2MvKi5wZGYgZG9jLyouaHRtbCBkb2MvKi5wbmcgZG9jL3JlbGVhc2Vfbm90 ZXNfKgorCislY2hhbmdlbG9nCisqIFRodSBKdW4gMjIgMjAwNiBKZWZmcmV5IEMuIE9sbGllIDxq ZWZmQG9janRlY2gudXM+IC0gMS4xLjEtNworLSBPb3BzIGRyb3AgYmFkIHBhdGNoLgorCisqIFRo dSBKdW4gMjIgMjAwNiBKZWZmcmV5IEMuIE9sbGllIDxqZWZmQG9janRlY2gudXM+IC0gMS4xLjEt NgorLSBTcGxpdCBkb2N1bWVudGF0aW9uIG9mZiB0byBhIHN1YnBhY2thZ2UuCistIE93biAle19s aWJkaXJ9L2VqYWJiZXJkLSV7dmVyc2lvbn0KKy0gTWFyayAle19zeXNjb25mZGlyfS9sb2dyb3Rh dGUuZC9lamFiYmVyZCBhcyAlY29uZmlnCisKKyogVGh1IEp1biAgOCAyMDA2IEplZmZyZXkgQy4g T2xsaWUgPGplZmZAb2NqdGVjaC51cz4gLSAxLjEuMS01CistIFBhdGNoIHRoZSBtYWtlZmlsZSBz byB0aGF0IGl0IGFkZHMgYSBzb25hbWUgdG8gc2hhcmVkIGxpYnMuCisKKyogRnJpIE1heSAyNiAy MDA2IEplZmZyZXkgQy4gT2xsaWUgPGplZmZAb2NqdGVjaC51cz4gLSAxLjEuMS00CistIE1vZGlm eSBBRCBtb2R1bGVzIG5vdCB0byBjaGVjayBmb3IgZ3JvdXAgbWVtYmVyc2hpcC4KKworKiBUaHUg TWF5IDI1IDIwMDYgSmVmZnJleSBDLiBPbGxpZSA8amVmZkBvY2p0ZWNoLnVzPiAtIDEuMS4xLTMK Ky0gQWRkIHNvbWUgZXh0cmEgbW9kdWxlcworCisqIFdlZCBNYXkgMjQgMjAwNiBKZWZmcmV5IEMu IE9sbGllIDxqZWZmQG9janRlY2gudXM+IC0gMS4xLjEtMgorLSBNdW5nZSBNYWtlZmlsZS5pbiBh IGJpdCBtb3JlLi4uCistIENoYW5nZSBvd25lcnNoaXAvcGVybWlzc2lvbnMgLSBub3QgKmV2ZXJ5 dGhpbmcqIG5lZWRzIHRvIGJlIG93bmVkIGJ5IGVqYWJiZXJkCisKKyogV2VkIE1heSAyNCAyMDA2 IEplZmZyZXkgQy4gT2xsaWUgPGplZmZAb2NqdGVjaC51cz4gLSAxLjEuMS0xCistIEZpcnN0IHZl cnNpb24gZm9yIEZlZG9yYSBFeHRyYXMKCmRpZmYgLS1naXQgYS9lamFiYmVyZF9hdXRoX2FkLmVy bCBiL2VqYWJiZXJkX2F1dGhfYWQuZXJsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjVlOWU0NTIKLS0tIC9kZXYvbnVsbAorKysgYi9lamFiYmVyZF9hdXRoX2FkLmVybApAQCAt MCwwICsxLDE2NyBAQAorJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorJSUlIEZpbGUgICAgOiBlamFiYmVyZF9h dXRoX2FkLmVybAorJSUlIEF1dGhvciAgOiBBbGV4ZXkgU2hjaGVwaW4gPGFsZXhleUBzZXZjb20u bmV0PgorJSUlIEF1dGhvciAgOiBBbGV4IEdvcmJhY2hlbmtvIDxhZ2VudF8wMDdAaW1tby5ydT4K KyUlJSBBdXRob3IgIDogU3RhbmlzbGF2IEJvZ2F0eXJldiA8cmVhbGxvY0ByZWFsbG9jLnNwYi5y dT4KKyUlJSBQdXJwb3NlIDogQXV0aGVudGlmaWNhdGlvbiB2aWEgQWN0aXZlIERpcmVjdG9yeQor JSUlIENyZWF0ZWQgOiAxMiBEZWMgMjAwNCBieSBBbGV4ZXkgU2hjaGVwaW4gPGFsZXhleUBzZXZj b20ubmV0PgorJSUlIElkICAgICAgOiAkSWQ6IGVqYWJiZXJkX2F1dGhfYWQuZXJsIDM4NiAyMDA1 LTEyLTIwIDEwOjA2OjM3WiBhZ2VudF8wMDcgJAorJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistbW9kdWxl KGVqYWJiZXJkX2F1dGhfYWQpLgorLWF1dGhvcignYWxleGV5QHNldmNvbS5uZXQnKS4KKy1hdXRo b3IoJ2FnZW50XzAwN0BpbW1vLnJ1JykuCistYXV0aG9yKCdyZWFsbG9jQHJlYWxsb2Muc3BiLnJ1 JykuCistdnNuKCckUmV2aXNpb246IDM4NiAkICcpLgorCislJSBFeHRlcm5hbCBleHBvcnRzCist ZXhwb3J0KFtzdGFydC8xLAorCSBzZXRfcGFzc3dvcmQvMywKKwkgY2hlY2tfcGFzc3dvcmQvMywK KwkgY2hlY2tfcGFzc3dvcmQvNSwKKwkgdHJ5X3JlZ2lzdGVyLzMsCisJIGRpcnR5X2dldF9yZWdp c3RlcmVkX3VzZXJzLzAsCisJIGdldF92aF9yZWdpc3RlcmVkX3VzZXJzLzEsCisJIGdldF9wYXNz d29yZC8yLAorCSBnZXRfcGFzc3dvcmRfcy8yLAorCSBpc191c2VyX2V4aXN0cy8yLAorCSByZW1v dmVfdXNlci8yLAorCSByZW1vdmVfdXNlci8zLAorCSBwbGFpbl9wYXNzd29yZF9yZXF1aXJlZC8w CisJXSkuCisKKy1pbmNsdWRlKCJlamFiYmVyZC5ocmwiKS4KKy1pbmNsdWRlKCJlbGRhcC9lbGRh cC5ocmwiKS4KKworJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorJSUlIEFQSQorJSUlLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor c3RhcnQoSG9zdCkgLT4KKyAgICBMREFQU2VydmVycyA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9j YWxfb3B0aW9uKHthZF9zZXJ2ZXJzLCBIb3N0fSksCisgICAgUm9vdEROID0gZWphYmJlcmRfY29u ZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX3Jvb3RkbiwgSG9zdH0pLAorICAgIFBhc3N3b3JkID0g ZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX3Bhc3N3b3JkLCBIb3N0fSksCisg ICAgZWxkYXA6c3RhcnRfbGluayhnZXRfZWxkYXBfaWQoSG9zdCwgZWphYmJlcmQpLAorCQkgICAg IExEQVBTZXJ2ZXJzLCAzODksIFJvb3RETiwgUGFzc3dvcmQpLAorICAgIGVsZGFwOnN0YXJ0X2xp bmsoZ2V0X2VsZGFwX2lkKEhvc3QsIGVqYWJiZXJkX2JpbmQpLAorCQkgICAgIExEQVBTZXJ2ZXJz LCAzODksIFJvb3RETiwgUGFzc3dvcmQpLAorICAgIG9rLgorCitwbGFpbl9wYXNzd29yZF9yZXF1 aXJlZCgpIC0+CisgICAgdHJ1ZS4KKworY2hlY2tfcGFzc3dvcmQoVXNlciwgU2VydmVyLCBQYXNz d29yZCkgLT4KKyAgICBjYXNlIGZpbmRfdXNlcl9kbihVc2VyLCBTZXJ2ZXIpIG9mCisJZmFsc2Ug LT4KKwkgICAgZmFsc2U7CisJRE4gLT4KKwkgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2Vy dmVyKSwKKwkgICAgY2FzZSBlbGRhcDpiaW5kKGdldF9lbGRhcF9pZChMU2VydmVyLCBlamFiYmVy ZF9iaW5kKSwKKwkJCSAgICBETiwgUGFzc3dvcmQpIG9mCisJCW9rIC0+CisJCSAgICB0cnVlOwor CQlfIC0+CisJCSAgICBmYWxzZQorCSAgICBlbmQKKyAgICBlbmQuCisKK2NoZWNrX3Bhc3N3b3Jk KFVzZXIsIFNlcnZlciwgUGFzc3dvcmQsIF9TdHJlYW1JRCwgX0RpZ2VzdCkgLT4KKyAgICBjaGVj a19wYXNzd29yZChVc2VyLCBTZXJ2ZXIsIFBhc3N3b3JkKS4KKworc2V0X3Bhc3N3b3JkKF9Vc2Vy LCBfU2VydmVyLCBfUGFzc3dvcmQpIC0+CisgICAge2Vycm9yLCBub3RfYWxsb3dlZH0uCisKK3Ry eV9yZWdpc3RlcihfVXNlciwgX1NlcnZlciwgX1Bhc3N3b3JkKSAtPgorICAgIHtlcnJvciwgbm90 X2FsbG93ZWR9LgorCitkaXJ0eV9nZXRfcmVnaXN0ZXJlZF91c2VycygpIC0+CisgICAgZ2V0X3Zo X3JlZ2lzdGVyZWRfdXNlcnMoP01ZTkFNRSkuCisKK2dldF92aF9yZWdpc3RlcmVkX3VzZXJzKFNl cnZlcikgLT4KKyAgICBMU2VydmVyID0gamxpYjpuYW1lcHJlcChTZXJ2ZXIpLAorICAgIEF0dHIg PSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfdWlkYXR0ciwgTFNlcnZlcn0p LAorJSAgICBBZEdyb3VwID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX2dy b3VwLCBMU2VydmVyfSksCisgICAgRmlsdGVyUGVyc29uID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgi b2JqZWN0Q2F0ZWdvcnkiLCAicGVyc29uIiksCisgICAgRmlsdGVyQ29tcCA9IGVsZGFwOmVxdWFs aXR5TWF0Y2goIm9iamVjdENsYXNzIiwgImNvbXB1dGVyIiksCisgICAgRmlsdGVySGlkZGVuID0g ZWxkYXA6ZXF1YWxpdHlNYXRjaCgiZGVzY3JpcHRpb24iLCAiaGlkZGVuIiksCislICAgIEZpbHRl ckdyb3VwID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgibWVtYmVyT2YiLCBBZEdyb3VwKSwKKyAgICBG aWx0ZXJMaXZlID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgidXNlckFjY291bnRDb250cm9sIiwgIjY2 MDUwIiksCisgICAgRmlsdGVyRGVmID0gZWxkYXA6cHJlc2VudChBdHRyKSwKKyAgICBGaWx0ZXIg PSBlbGRhcDonYW5kJyhbCisJCQkgIEZpbHRlckRlZiwKKwkJCSAgRmlsdGVyUGVyc29uLAorJQkJ CSAgRmlsdGVyR3JvdXAsCisJCQkgIGVsZGFwOidub3QnKEZpbHRlckNvbXApLAorCQkJICBlbGRh cDonbm90JyhGaWx0ZXJIaWRkZW4pLAorCQkJICBlbGRhcDonbm90JyhGaWx0ZXJMaXZlKV0pLAor ICAgIEJhc2UgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfYmFzZSwgTFNl cnZlcn0pLAorICAgIGNhc2UgZWxkYXA6c2VhcmNoKGdldF9lbGRhcF9pZChMU2VydmVyLCBlamFi YmVyZCksCisJCSAgICAgIFt7YmFzZSwgQmFzZX0sCisJCSAgICAgICB7ZmlsdGVyLCBGaWx0ZXJ9 LAorCQkgICAgICAge2F0dHJpYnV0ZXMsIFtBdHRyXX1dKSBvZgorCSNlbGRhcF9zZWFyY2hfcmVz dWx0e2VudHJpZXMgPSBFc30gLT4KKwkgICAgbGlzdHM6ZmxhdG1hcCgKKwkgICAgICBmdW4oRSkg LT4KKwkJICAgICAgY2FzZSBsaXN0czprZXlzZWFyY2goQXR0ciwgMSwgRSNlbGRhcF9lbnRyeS5h dHRyaWJ1dGVzKSBvZgorCQkJICB7dmFsdWUsIHtfLCBbVV19fSAtPgorCQkJICAgICAgY2FzZSBq bGliOm5vZGVwcmVwKFUpIG9mCisJCQkJICBlcnJvciAtPgorCQkJCSAgICAgIFtdOworCQkJCSAg TFUgLT4KKwkJCQkgICAgICBbe0xVLCBMU2VydmVyfV0KKwkJCSAgICAgIGVuZDsKKwkJCSAgXyAt PgorCQkJICAgICAgW10KKwkJICAgICAgZW5kCisJICAgICAgZW5kLCBFcyk7CisJXyAtPgorCSAg ICBbXQorICAgIGVuZC4KKworZ2V0X3Bhc3N3b3JkKF9Vc2VyLCBfU2VydmVyKSAtPgorICAgIGZh bHNlLgorCitnZXRfcGFzc3dvcmRfcyhfVXNlciwgX1NlcnZlcikgLT4KKyAgICAiIi4KKworaXNf dXNlcl9leGlzdHMoVXNlciwgU2VydmVyKSAtPgorICAgIGNhc2UgZmluZF91c2VyX2RuKFVzZXIs IFNlcnZlcikgb2YKKwlmYWxzZSAtPgorCSAgICBmYWxzZTsKKwlfRE4gLT4KKwkgICAgdHJ1ZQor ICAgIGVuZC4KKworcmVtb3ZlX3VzZXIoX1VzZXIsIF9TZXJ2ZXIpIC0+CisgICAge2Vycm9yLCBu b3RfYWxsb3dlZH0uCisKK3JlbW92ZV91c2VyKF9Vc2VyLCBfU2VydmVyLCBfUGFzc3dvcmQpIC0+ CisgICAgbm90X2FsbG93ZWQuCisKKworJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorJSUlIEludGVybmFsIGZ1 bmN0aW9ucworJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitmaW5kX3VzZXJfZG4oVXNlciwgU2VydmVyKSAt PgorICAgIExTZXJ2ZXIgPSBqbGliOm5hbWVwcmVwKFNlcnZlciksCisgICAgQWRHcm91cCA9IGVq YWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9ncm91cCwgTFNlcnZlcn0pLAorICAg IEF0dHIgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfdWlkYXR0ciwgTFNl cnZlcn0pLAorICAgIEZpbHRlckF0dHIgPSBlbGRhcDplcXVhbGl0eU1hdGNoKEF0dHIsIFVzZXIp LAorICAgIEZpbHRlckdyb3VwID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgibWVtYmVyT2YiLCBBZEdy b3VwKSwKKyAgICBGaWx0ZXIgPSBlbGRhcDonYW5kJyhbCisgICAgICAgICAgICAgICAgICAgICAg ICAgIEZpbHRlckF0dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlckdyb3VwCisg ICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAorICAgIEJhc2UgPSBlamFiYmVyZF9jb25maWc6 Z2V0X2xvY2FsX29wdGlvbih7YWRfYmFzZSwgTFNlcnZlcn0pLAorICAgIGNhc2UgZWxkYXA6c2Vh cmNoKGdldF9lbGRhcF9pZChMU2VydmVyLCBlamFiYmVyZCksCisJCSAgICAgIFt7YmFzZSwgQmFz ZX0sCisJCSAgICAgICB7ZmlsdGVyLCBGaWx0ZXJ9LAorCQkgICAgICAge2F0dHJpYnV0ZXMsIFtd fV0pIG9mCisJI2VsZGFwX3NlYXJjaF9yZXN1bHR7ZW50cmllcyA9IFtFIHwgX119IC0+CisJICAg IEUjZWxkYXBfZW50cnkub2JqZWN0X25hbWU7CisJXyAtPgorCSAgICBmYWxzZQorICAgIGVuZC4K KworZ2V0X2VsZGFwX2lkKEhvc3QsIE5hbWUpIC0+CisgICAgYXRvbV90b19saXN0KGdlbl9tb2Q6 Z2V0X21vZHVsZV9wcm9jKEhvc3QsIE5hbWUpKS4KCmRpZmYgLS1naXQgYS9pbmV0cmMgYi9pbmV0 cmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQyZjYzNQotLS0gL2Rldi9u dWxsCisrKyBiL2luZXRyYwpAQCAtMCwwICsxIEBACit7ZmlsZSwgcmVzb2x2LCAiL2V0Yy9yZXNv bHYuY29uZiJ9LgoKZGlmZiAtLWdpdCBhL21vZF9jdGxleHRyYS5lcmwgYi9tb2RfY3RsZXh0cmEu ZXJsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZmY2Y2UKLS0tIC9kZXYv bnVsbAorKysgYi9tb2RfY3RsZXh0cmEuZXJsCkBAIC0wLDAgKzEsNTAyIEBACislJSUtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQorJSUlIEZpbGUgICAgOiBtb2RfY3RsZXh0cmEuZXJsDQorJSUlIEF1dGhvciAgOg0K KyUlJSBQdXJwb3NlIDogQWRkcyBtb3JlIG9wdGlvbnMgZm9yIGVqYWJiZXJkX2N0bA0KKyUlJSBD cmVhdGVkIDoNCislJSUgSWQgICAgICA6DQorJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KKyUlJSBtb2Rf Y3RsZXh0cmEgdjAuMi4yIGZvciBlamFiYmVyZCAxLjEuMSAoMTgvTWF5LzIwMDYpIA0KKyUlJQ0K KyUlJSBJTlNUQUxMOg0KKyUlJSAgMS4gQ29weSBtb2RfY3RsZXh0cmEuZXJsIHRvIHlvdXIgZWph YmJlcmQvc3JjDQorJSUlICAyLiBBZGQgdG8geW91ciBlamFiYmVyZC5jZmcsIG9uIHRoZSBtb2R1 bGVzIHNlY3Rpb246DQorJSUlICAgICAgICAge21vZF9jdGxleHRyYSwgW119LA0KKyUlJSAgMy4g UmVjb21waWxlIGFuZCByZXN0YXJ0IGVqYWJiZXJkIA0KKyUlJQ0KKyUlJSBVU0FHRToNCislJSUg IC0gTm93IHlvdSBoYXZlIHNldmVyYWwgbmV3IG9wdGlvbnMgZm9yIGVqYWJiZXJkLWN0bA0KKyUl JSAgLSBFeGFtcGxlIGZvciB2Y2FyZDogZWphYmJlcmRjdGwgZWphQGhvc3QgdmNhcmQtZ2V0IGpv ZSBteWphYi5uZXQgZW1haWwNCislJSUgIC0gVGhlIGZpbGUgdXNlZCBieSAncHVzaHJvc3Rlcicg YW5kICdwdXNocm9zdGVyLWFsbCcgbXVzdCBiZSBwbGFjZWQgb24gDQorJSUlICAgICAgdGhlIHNh bWUgZGlyZWN0b3J5IHdoZXJlIHRoZSAuYmVhbSBmaWxlcyBhcmUuIEV4YW1wbGUgY29udGVudDoN CislJSUgICAgICAgICBbeyJib2IiLCAibXlzZXJ2ZXIiLCAid29ya2VycyIsICJCb2IifSwNCisl JSUgICAgICAgICAgeyJtYXJ0IiwgIm15c2VydmVyIiwgIndvcmtlcnMiLCAiTWFydCJ9LA0KKyUl JSAgICAgICAgICB7IlJpY2giLCAibXlzZXJ2ZXIiLCAiYm9zc2VzIiwgIlJpY2gifV0uDQorDQor LW1vZHVsZShtb2RfY3RsZXh0cmEpLg0KKy1hdXRob3IoJycpLg0KKy12c24oJ1ZlcnNpb24gMC4y LjEnKS4NCisNCistYmVoYXZpb3VyKGdlbl9tb2QpLg0KKw0KKy1leHBvcnQoWw0KKwlzdGFydC8y LA0KKwlzdG9wLzEsDQorCWN0bF9wcm9jZXNzLzIsDQorCWN0bF9wcm9jZXNzLzMNCisJXSkuDQor DQorLWluY2x1ZGUoImVqYWJiZXJkX2N0bC5ocmwiKS4NCistaW5jbHVkZSgiamxpYi5ocmwiKS4N CisNCitzdGFydChIb3N0LCBfT3B0cykgLT4NCisJZWphYmJlcmRfY3RsOnJlZ2lzdGVyX2NvbW1h bmRzKFsNCisJCXsiY29tcGlsZSBmaWxlIiwgInJlY29tcGlsZSBhbmQgcmVsb2FkIGZpbGUifSwN CisJCXsibG9hZC1jb25maWcgZmlsZSIsICJsb2FkIGNvbmZpZyBmcm9tIGZpbGUifSwNCisJCXsi cmVtb3ZlLW5vZGUgbm9kZW5hbWUiLCAicmVtb3ZlIGFuIGVqYWJiZXJkIG5vZGUgZnJvbSB0aGUg ZGF0YWJhc2UifSwNCisNCisJCSUgZWphYmJlcmRfYXV0aA0KKwkJeyJkZWxldGUtb2xkZXItdXNl cnMgZGF5cyIsICJkZWxldGUgdXNlcnMgdGhhdCBoYXZlIG5vdCBsb2dnZWQgaW4gdGhlIGxhc3Qg J2RheXMnIn0sDQorCQl7InNldC1wYXNzd29yZCB1c2VyIHNlcnZlciBwYXNzd29yZCIsICJzZXQg cGFzc3dvcmQgdG8gdXNlckBzZXJ2ZXIifSwNCisNCisJCSUgZWpkMm9kYmMNCisJCXsiZXhwb3J0 Mm9kYmMgc2VydmVyIG91dHB1dCIsICJleHBvcnQgYWxsIHBvc3NpYmxlIHRhYmxlcyBvbiBzZXJ2 ZXIgdG8gb3V0cHV0In0sDQorDQorCQklIG1vZF9vZmZsaW5lDQorCQl7ImRlbGV0ZS1vbGRlci1t ZXNzYWdlcyBkYXlzIiwgImRlbGV0ZSBvZmZsaW5lIG1lc3NhZ2VzIG9sZGVyIHRoYW4gJ2RheXMn In0sDQorDQorCQklIG1vZF9zaGFyZWRfcm9zdGVyDQorCQl7InNyZy1jcmVhdGUgZ3JvdXAgaG9z dCBuYW1lIGRlc2NyaXB0aW9uIGRpc3BsYXkiLCAiY3JlYXRlIHRoZSBncm91cCB3aXRoIG9wdGlv bnMifSwNCisJCXsic3JnLWRlbGV0ZSBncm91cCBob3N0IiwgImRlbGV0ZSB0aGUgZ3JvdXAifSwN CisJCXsic3JnLXVzZXItYWRkIHVzZXIgc2VydmVyIGdyb3VwIGhvc3QiLCAiYWRkIHVzZXJAc2Vy dmVyIHRvIGdyb3VwIG9uIGhvc3QifSwNCisJCXsic3JnLXVzZXItZGVsIHVzZXIgc2VydmVyIGdy b3VwIGhvc3QiLCAiZGVsZXRlIHVzZXJAc2VydmVyIGZyb20gZ3JvdXAgb24gaG9zdCJ9LA0KKwkJ CQ0KKwkJJSBtb2RfdmNhcmQNCisJCXsidmNhcmQtZ2V0IHVzZXIgaG9zdCBkYXRhIFtkYXRhMl0i LCAiZ2V0IGRhdGEgZnJvbSB0aGUgdkNhcmQgb2YgdGhlIHVzZXIifSwNCisJCXsidmNhcmQtc2V0 IHVzZXIgaG9zdCBkYXRhIFtkYXRhMl0gY29udGVudCIsICJzZXQgZGF0YSB0byBjb250ZW50IG9u IHRoZSB2Q2FyZCJ9LA0KKw0KKwkJJSBtb2RfYW5ub3VuY2UNCisJCSUgYW5ub3VuY2Vfc2VuZF9v bmxpbmUgaG9zdCBtZXNzYWdlDQorCQklIGFubm91bmNlX3NlbmRfYWxsIGhvc3QsIG1lc3NhZ2UN CisNCisJCSUgbW9kX211Yw0KKwkJJSBtdWMtYWRkIHJvb20gb3B0cw0KKwkJJSBtdWMtZGVsIHJv b20NCisJCSUgbXVjLWRlbC1vbGRlciA5MCA6IGRlbGV0ZSByb29tcyBvbGRlciB0aGFuIFggZGF5 cyAod2l0aCBubyBhY3Rpdml0eSAoY2hhdCwgcHJlc2VuY2UsIGxvZ2lucykgaW4gNiBtb250aHMp DQorDQorCQklIG1vZF9yb3N0ZXINCisJCXsiYWRkLXJvc3Rlcml0ZW0gdXNlcjEgc2VydmVyMSB1 c2VyMiBzZXJ2ZXIyIG5pY2sgZ3JvdXAgc3VicyIsICJBZGQgdXNlcjJAc2VydmVyMiB0byB1c2Vy MUBzZXJ2ZXIxIn0sDQorCQkleyIiLCAic3Vicz0gbm9uZSwgZnJvbSwgdG8gb3IgYm90aCJ9LA0K KwkJJXsiIiwgImV4YW1wbGU6IGFkZC1yb3N0ZXIgcGV0ZXIgbG9jYWxob3N0IG1pa2Ugc2VydmVy LmNvbSBNaUtlIEVtcGxveWVlcyBib3RoIn0sDQorCQkleyIiLCAid2lsbCBhZGQgbWlrZUBzZXJ2 ZXIuY29tIHRvIHBldGVyQGxvY2FsaG9zdCByb3N0ZXIifSwNCisJCXsicHVzaHJvc3RlciBmaWxl IHVzZXIgc2VydmVyIiwgInB1c2ggdGVtcGxhdGUgcm9zdGVyIGluIGZpbGUgdG8gdXNlckBzZXJ2 ZXIifSwNCisJCXsicHVzaHJvc3Rlci1hbGwgZmlsZSIsICJwdXNoIHRlbXBsYXRlIHJvc3RlciBp biBmaWxlIHRvIGFsbCB0aG9zZSB1c2VycyJ9LA0KKwkJeyJwdXNoLWFsbHRvYWxsIHNlcnZlciBn cm91cCIsICJhZGRzIGFsbCB0aGUgdXNlcnMgdG8gYWxsIHRoZSB1c2VycyBpbiBHcm91cCJ9LA0K Kw0KKwkJeyJzdGF0cyByZWdpc3RlcmVkdXNlcnMiLCAibnVtYmVyIG9mIHJlZ2lzdGVyZWQgdXNl cnMifSwNCisJCXsic3RhdHMgb25saW5ldXNlcnMiLCAibnVtYmVyIG9mIGxvZ2dlZCB1c2VycyJ9 LA0KKw0KKwkJJSBtaXNjDQorCQl7ImtpbGxzZXNzaW9uIHVzZXIgc2VydmVyIHJlc291cmNlIiwg ImtpbGwgYSB1c2VyIHNlc3Npb24ifQ0KKwldLCA/TU9EVUxFLCBjdGxfcHJvY2VzcyksDQorICAg IGVqYWJiZXJkX2N0bDpyZWdpc3Rlcl9jb21tYW5kcyhIb3N0LCBbDQorCQklIG1vZF9sYXN0DQor CQl7Im51bS1hY3RpdmUtdXNlcnMgZGF5cyIsICJudW1iZXIgb2YgdXNlcnMgYWN0aXZlIGluIHRo ZSBsYXN0ICdkYXlzJyJ9LA0KKwkJeyJzdGF0cyByZWdpc3RlcmVkdXNlcnMiLCAibnVtYmVyIG9m IHJlZ2lzdGVyZWQgdXNlcnMifSwNCisJCXsic3RhdHMgb25saW5ldXNlcnMiLCAibnVtYmVyIG9m IGxvZ2dlZCB1c2VycyJ9DQorCV0sID9NT0RVTEUsIGN0bF9wcm9jZXNzKSwNCisJb2suDQorDQor c3RvcChfSG9zdCkgLT4NCisJb2suDQorDQorDQorY3RsX3Byb2Nlc3MoX1ZhbCwgWyJibG8iXSkg LT4NCisJRlJlc291cmNlcyA9ICJlZWVhYWEgYWFhIiwNCisJaW86Zm9ybWF0KCJ+cyIsIFtGUmVz b3VyY2VzXSksDQorCT9TVEFUVVNfU1VDQ0VTUzsNCisNCitjdGxfcHJvY2VzcyhfVmFsLCBbImRl bGV0ZS1vbGRlci1tZXNzYWdlcyIsIERheXNdKSAtPg0KKyAgICBtb2Rfb2ZmbGluZTpyZW1vdmVf b2xkX21lc3NhZ2VzKGxpc3RfdG9faW50ZWdlcihEYXlzKSksDQorICAgID9TVEFUVVNfU1VDQ0VT UzsNCisNCitjdGxfcHJvY2VzcyhfVmFsLCBbImRlbGV0ZS1vbGRlci11c2VycyIsIERheXNdKSAt Pg0KKwl7cmVtb3ZlZCwgTiwgVVJ9ID0gZGVsZXRlX29sZGVyX3VzZXJzKGxpc3RfdG9faW50ZWdl cihEYXlzKSksDQorCWlvOmZvcm1hdCgiRGVsZXRlZCB+cCB1c2VyczogfnB+biIsIFtOLCBVUl0p LA0KKwk/U1RBVFVTX1NVQ0NFU1M7DQorDQorY3RsX3Byb2Nlc3MoX1ZhbCwgWyJleHBvcnQyb2Ri YyIsIFNlcnZlciwgT3V0cHV0MV0pIC0+DQorCU91dHB1dCA9IGxpc3RfdG9fYXRvbShPdXRwdXQx KSwNCisJZWpkMm9kYmM6ZXhwb3J0X3Bhc3N3ZChTZXJ2ZXIsIE91dHB1dCksDQorCWVqZDJvZGJj OmV4cG9ydF9yb3N0ZXIoU2VydmVyLCBPdXRwdXQpLA0KKwllamQyb2RiYzpleHBvcnRfb2ZmbGlu ZShTZXJ2ZXIsIE91dHB1dCksDQorCWVqZDJvZGJjOmV4cG9ydF9sYXN0KFNlcnZlciwgT3V0cHV0 KSwNCisJZWpkMm9kYmM6ZXhwb3J0X3ZjYXJkKFNlcnZlciwgT3V0cHV0KSwNCisJZWpkMm9kYmM6 ZXhwb3J0X3ZjYXJkX3NlYXJjaChTZXJ2ZXIsIE91dHB1dCksDQorCT9TVEFUVVNfU1VDQ0VTUzsN CisNCitjdGxfcHJvY2VzcyhfVmFsLCBbInNldC1wYXNzd29yZCIsIFVzZXIsIFNlcnZlciwgUGFz c3dvcmRdKSAtPg0KKyAgICBlamFiYmVyZF9hdXRoOnNldF9wYXNzd29yZChVc2VyLCBTZXJ2ZXIs IFBhc3N3b3JkKSwNCisJP1NUQVRVU19TVUNDRVNTOw0KKw0KK2N0bF9wcm9jZXNzKF9WYWwsIFsi dmNhcmQtZ2V0IiwgVXNlciwgU2VydmVyLCBEYXRhXSkgLT4NCisJe29rLCBSZXN9ID0gdmNhcmRf Z2V0KFVzZXIsIFNlcnZlciwge0RhdGF9KSwNCisgICAgaW86Zm9ybWF0KCJ+c35uIiwgW1Jlc10p LA0KKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorDQorY3RsX3Byb2Nlc3MoX1ZhbCwgWyJ2Y2FyZC1n ZXQiLCBVc2VyLCBTZXJ2ZXIsIERhdGExLCBEYXRhMl0pIC0+DQorCXtvaywgUmVzfSA9IHZjYXJk X2dldChVc2VyLCBTZXJ2ZXIsIHtEYXRhMSwgRGF0YTJ9KSwNCisgICAgaW86Zm9ybWF0KCJ+c35u IiwgW1Jlc10pLA0KKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorDQorY3RsX3Byb2Nlc3MoX1ZhbCwg WyJ2Y2FyZC1zZXQiLCBVc2VyLCBTZXJ2ZXIsIERhdGEsIENvbnRlbnRdKSAtPg0KKwl7b2ssIFJl c30gPSB2Y2FyZF9zZXQoVXNlciwgU2VydmVyLCBEYXRhLCBDb250ZW50KSwNCisgICAgaW86Zm9y bWF0KCJ+c35uIiwgW1Jlc10pLA0KKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorDQorY3RsX3Byb2Nl c3MoX1ZhbCwgWyJ2Y2FyZC1zZXQiLCBVc2VyLCBTZXJ2ZXIsIERhdGExLCBEYXRhMiwgQ29udGVu dF0pIC0+DQorCXtvaywgUmVzfSA9IHZjYXJkX3NldChVc2VyLCBTZXJ2ZXIsIERhdGExLCBEYXRh MiwgQ29udGVudCksDQorICAgIGlvOmZvcm1hdCgifnN+biIsIFtSZXNdKSwNCisgICAgP1NUQVRV U19TVUNDRVNTOw0KKw0KK2N0bF9wcm9jZXNzKF9WYWwsIFsiY29tcGlsZSIsIE1vZHVsZV0pIC0+ DQorICAgIGNvbXBpbGU6ZmlsZShNb2R1bGUpLA0KKwk/U1RBVFVTX1NVQ0NFU1M7DQorDQorY3Rs X3Byb2Nlc3MoX1ZhbCwgWyJyZW1vdmUtbm9kZSIsIE5vZGVdKSAtPg0KKwltbmVzaWE6ZGVsX3Rh YmxlX2NvcHkoc2NoZW1hLCBsaXN0X3RvX2F0b20oTm9kZSkpLA0KKwk/U1RBVFVTX1NVQ0NFU1M7 DQorDQorY3RsX3Byb2Nlc3MoX1ZhbCwgWyJzcmctY3JlYXRlIiwgR3JvdXAsIEhvc3QsIE5hbWUs IERlc2NyaXB0aW9uLCBEaXNwbGF5XSkgLT4NCisJT3B0cyA9IFt7bmFtZSwgTmFtZX0sIHtkaXNw bGF5ZWRfZ3JvdXBzLCBbRGlzcGxheV19LCB7ZGVzY3JpcHRpb24sIERlc2NyaXB0aW9ufV0sDQor CXthdG9taWMsIG9rfSA9IG1vZF9zaGFyZWRfcm9zdGVyOmNyZWF0ZV9ncm91cChIb3N0LCBHcm91 cCwgT3B0cyksDQorICAgID9TVEFUVVNfU1VDQ0VTUzsNCisNCitjdGxfcHJvY2VzcyhfVmFsLCBb InNyZy1kZWxldGUiLCBHcm91cCwgSG9zdF0pIC0+DQorCXthdG9taWMsIG9rfSA9IG1vZF9zaGFy ZWRfcm9zdGVyOmRlbGV0ZV9ncm91cChIb3N0LCBHcm91cCksDQorICAgID9TVEFUVVNfU1VDQ0VT UzsNCisNCitjdGxfcHJvY2VzcyhfVmFsLCBbInNyZy11c2VyLWFkZCIsIFVzZXIsIFNlcnZlciwg R3JvdXAsIEhvc3RdKSAtPg0KKwl7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjphZGRf dXNlcl90b19ncm91cChIb3N0LCB7VXNlciwgU2VydmVyfSwgR3JvdXApLA0KKyAgICA/U1RBVFVT X1NVQ0NFU1M7DQorDQorY3RsX3Byb2Nlc3MoX1ZhbCwgWyJzcmctdXNlci1kZWwiLCBVc2VyLCBT ZXJ2ZXIsIEdyb3VwLCBIb3N0XSkgLT4NCisJe2F0b21pYywgb2t9ID0gbW9kX3NoYXJlZF9yb3N0 ZXI6cmVtb3ZlX3VzZXJfZnJvbV9ncm91cChIb3N0LCB7VXNlciwgU2VydmVyfSwgR3JvdXApLA0K KyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorDQorY3RsX3Byb2Nlc3MoX1ZhbCwgWyJhZGQtcm9zdGVy aXRlbSIsIExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIsIFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlciwg TmljaywgR3JvdXAsIFN1YnNdKSAtPg0KKyAgICBjYXNlIGFkZF9yb3N0ZXJpdGVtKExvY2FsVXNl ciwgTG9jYWxTZXJ2ZXIsIFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlciwgTmljaywgR3JvdXAsIGxp c3RfdG9fYXRvbShTdWJzKSwgW10pIG9mDQorCXthdG9taWMsIG9rfSAtPg0KKwkgICAgP1NUQVRV U19TVUNDRVNTOw0KKwl7ZXJyb3IsIFJlYXNvbn0gLT4NCisJICAgIGlvOmZvcm1hdCgiQ2FuJ3Qg YWRkIH5wQH5wIHRvIH5wQH5wOiB+cH5uIiwNCisJCSAgICAgIFtSZW1vdGVVc2VyLCBSZW1vdGVT ZXJ2ZXIsIExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIsIFJlYXNvbl0pLA0KKwkgICAgP1NUQVRVU19F UlJPUjsNCisJe2JhZHJwYywgUmVhc29ufSAtPg0KKwkgICAgaW86Zm9ybWF0KCJDYW4ndCBhZGQg cm9zdGVyIGl0ZW0gdG8gdXNlciB+cDogfnB+biIsDQorCQkgICAgICBbTG9jYWxVc2VyLCBSZWFz b25dKSwNCisJICAgID9TVEFUVVNfQkFEUlBDDQorICAgIGVuZDsNCisNCitjdGxfcHJvY2Vzcyhf VmFsLCBbInB1c2hyb3N0ZXIiLCBGaWxlLCBVc2VyLCBTZXJ2ZXJdKSAtPg0KKyAgICBjYXNlIHB1 c2hyb3N0ZXIoRmlsZSwgVXNlciwgU2VydmVyKSBvZg0KKwlvayAtPg0KKwkgICAgP1NUQVRVU19T VUNDRVNTOw0KKwl7ZXJyb3IsIFJlYXNvbn0gLT4NCisJICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVz aCByb3N0ZXIgfnAgdG8gfnBAfnA6IH5wfm4iLA0KKwkJICAgICAgW0ZpbGUsIFVzZXIsIFNlcnZl ciwgUmVhc29uXSksDQorCSAgICA/U1RBVFVTX0VSUk9SOw0KKwl7YmFkcnBjLCBSZWFzb259IC0+ DQorCSAgICBpbzpmb3JtYXQoIkNhbid0IHB1c2ggcm9zdGVyIH5wOiB+cH5uIiwNCisJCSAgICAg IFtGaWxlLCBSZWFzb25dKSwNCisJICAgID9TVEFUVVNfQkFEUlBDDQorICAgIGVuZDsNCisNCitj dGxfcHJvY2VzcyhfVmFsLCBbInB1c2hyb3N0ZXItYWxsIiwgRmlsZV0pIC0+DQorICAgIGNhc2Ug cHVzaHJvc3Rlcl9hbGwoW0ZpbGVdKSBvZg0KKwlvayAtPg0KKwkgICAgP1NUQVRVU19TVUNDRVNT Ow0KKwl7ZXJyb3IsIFJlYXNvbn0gLT4NCisJICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVzaCByb3N0 ZXIgfnA6IH5wfm4iLA0KKwkJICAgICAgW0ZpbGUsIFJlYXNvbl0pLA0KKwkgICAgP1NUQVRVU19F UlJPUjsNCisJe2JhZHJwYywgUmVhc29ufSAtPg0KKwkgICAgaW86Zm9ybWF0KCJDYW4ndCBwdXNo IHJvc3RlciB+cDogfnB+biIsDQorCQkgICAgICBbRmlsZSwgUmVhc29uXSksDQorCSAgICA/U1RB VFVTX0JBRFJQQw0KKyAgICBlbmQ7DQorDQorY3RsX3Byb2Nlc3MoX1ZhbCwgWyJwdXNoLWFsbHRv YWxsIiwgU2VydmVyLCBHcm91cF0pIC0+DQorICAgIGNhc2UgcHVzaF9hbGx0b2FsbChTZXJ2ZXIs IEdyb3VwKSBvZg0KKwlvayAtPg0KKwkgICAgP1NUQVRVU19TVUNDRVNTOw0KKwl7ZXJyb3IsIFJl YXNvbn0gLT4NCisJICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVzaCBhbGwgdG8gYWxsOiB+cH5uIiwN CisJCSAgICAgIFtSZWFzb25dKSwNCisJICAgID9TVEFUVVNfRVJST1I7DQorCXtiYWRycGMsIFJl YXNvbn0gLT4NCisJICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVzaCBhbGwgdG8gYWxsOiB+cH5uIiwN CisJCSAgICAgIFtSZWFzb25dKSwNCisJICAgID9TVEFUVVNfQkFEUlBDDQorICAgIGVuZDsNCisN CitjdGxfcHJvY2VzcyhfVmFsLCBbImxvYWQtY29uZmlnIiwgUGF0aF0pIC0+DQorICAgIGNhc2Ug ZWphYmJlcmRfY29uZmlnOmxvYWRfZmlsZShQYXRoKSBvZg0KKyAgICAgICAge2F0b21pYywgb2t9 IC0+DQorICAgICAgICAgICAgP1NUQVRVU19TVUNDRVNTOw0KKyAgICAgICAge2Vycm9yLCBSZWFz b259IC0+DQorICAgICAgICAgICAgaW86Zm9ybWF0KCJDYW4ndCBsb2FkIGNvbmZpZyBmaWxlIH5w OiB+cH5uIiwNCisgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVuYW1lOmFic25hbWUoUGF0aCks IFJlYXNvbl0pLA0KKwkgICAgP1NUQVRVU19FUlJPUjsNCisgICAgICAgIHtiYWRycGMsIFJlYXNv bn0gLT4NCisgICAgICAgICAgICBpbzpmb3JtYXQoIkNhbid0IGxvYWQgY29uZmlnIGZpbGUgfnA6 IH5wfm4iLA0KKyAgICAgICAgICAgICAgICAgICAgICBbZmlsZW5hbWU6YWJzbmFtZShQYXRoKSwg UmVhc29uXSksDQorCSAgICA/U1RBVFVTX0JBRFJQQw0KKyAgICBlbmQ7DQorDQorY3RsX3Byb2Nl c3MoX1ZhbCwgWyJzdGF0cyIsIFN0YXRdKSAtPg0KKwlSZXMgPSBjYXNlIFN0YXQgb2YNCisJCSJy ZWdpc3RlcmVkdXNlcnMiIC0+IG1uZXNpYTp0YWJsZV9pbmZvKHBhc3N3ZCwgc2l6ZSk7DQorCQki b25saW5ldXNlcnMiIC0+IG1uZXNpYTp0YWJsZV9pbmZvKHNlc3Npb24sIHNpemUpDQorCWVuZCwN CisgICAgaW86Zm9ybWF0KCJ+cH5uIiwgW1Jlc10pLA0KKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQor DQorY3RsX3Byb2Nlc3MoX1ZhbCwgWyJraWxsc2Vzc2lvbiIsIFVzZXIsIFNlcnZlciwgUmVzb3Vy Y2VdKSAtPg0KKyAgICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoDQorICAgICAgICBqbGliOm1ha2Vf amlkKCIiLCAiIiwgIiIpLCANCisgICAgICAgIGpsaWI6bWFrZV9qaWQoVXNlciwgU2VydmVyLCBS ZXNvdXJjZSksDQorICAgICAgICB7eG1sZWxlbWVudCwgImJyb2FkY2FzdCIsIFtdLCBbe2V4aXQs ICJraWxsZWQifV19KSwNCisgICAgP1NUQVRVU19TVUNDRVNTOw0KKw0KK2N0bF9wcm9jZXNzKFZh bCwgX0FyZ3MpIC0+DQorCVZhbC4NCisNCisNCitjdGxfcHJvY2VzcyhfVmFsLCBIb3N0LCBbIm51 bS1hY3RpdmUtdXNlcnMiLCBEYXlzXSkgLT4NCisJTnVtYmVyID0gbnVtX2FjdGl2ZV91c2VycyhI b3N0LCBsaXN0X3RvX2ludGVnZXIoRGF5cykpLA0KKyAgICBpbzpmb3JtYXQoIn5wfm4iLCBbTnVt YmVyXSksDQorICAgID9TVEFUVVNfU1VDQ0VTUzsNCisNCitjdGxfcHJvY2VzcyhfVmFsLCBIb3N0 LCBbInN0YXRzIiwgU3RhdF0pIC0+DQorCVJlcyA9IGNhc2UgU3RhdCBvZg0KKwkJInJlZ2lzdGVy ZWR1c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJkX2F1dGg6Z2V0X3ZoX3JlZ2lzdGVyZWRfdXNlcnMo SG9zdCkpOw0KKwkJIm9ubGluZXVzZXJzIiAtPiBsZW5ndGgoZWphYmJlcmRfc206Z2V0X3ZoX3Nl c3Npb25fbGlzdChIb3N0KSkNCisJZW5kLA0KKyAgICBpbzpmb3JtYXQoIn5wfm4iLCBbUmVzXSks DQorICAgID9TVEFUVVNfU1VDQ0VTUzsNCisNCitjdGxfcHJvY2VzcyhWYWwsIF9Ib3N0LCBfQXJn cykgLT4NCisJVmFsLg0KKw0KKw0KKyUlLS0tLS0tLS0tLS0tLQ0KKyUlIFVUSUxTDQorJSUtLS0t LS0tLS0tLS0tDQorDQorYWRkX3Jvc3Rlcml0ZW0oTFUsIExTLCBSVSwgUlMsIE5pY2ssIEdyb3Vw LCBTdWJzY3JpcHRpb24sIFhhdHRycykgLT4NCisJc3Vic2NyaWJlKExVLCBMUywgUlUsIFJTLCBO aWNrLCBHcm91cCwgU3Vic2NyaXB0aW9uLCBYYXR0cnMpLA0KKwklIFRPRE86IGlmIHRoZSBzZXJ2 ZXIgaXMgbm90IGxvY2FsIGFuZCBTdWJzPXRvIG9yIGJvdGg6IHNlbmQgc3Vic2NyaXB0aW9uIHJl cXVlc3QNCisJJSBUT0RPOiBjaGVjayBpZiB0aGUgJ3JlbW90ZSBzZXJ2ZXInIGlzIGEgdmlydHVh bCBob3N0IGhlcmUsIGVsc2UgZG8gbm90aGluZw0KKwklYWRkX3Jvc3Rlcml0ZW0yKFJVLCBSUywg TFUsIExTLCBMVSwgIiIsIGludmVydF9zdWJzKFN1YnNjcmlwdGlvbiksIFhhdHRycywgSG9zdCku DQorCXN1YnNjcmliZShSVSwgUlMsIExVLCBMUywgTFUsICIiLCBpbnZlcnRfc3VicyhTdWJzY3Jp cHRpb24pLCBYYXR0cnMpLg0KKw0KK2ludmVydF9zdWJzKG5vbmUpIC0+IG5vbmU7DQoraW52ZXJ0 X3N1YnModG8pIC0+IG5vbmU7DQoraW52ZXJ0X3N1YnMoZnJvbSkgLT4gdG87DQoraW52ZXJ0X3N1 YnMoYm90aCkgLT4gYm90aC4NCisNCitzdWJzY3JpYmUoTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwg UmVtb3RlVXNlciwgUmVtb3RlU2VydmVyLCBOaWNrLCBHcm91cCwgU3Vic2NyaXB0aW9uLCBYYXR0 cnMpIC0+DQorCW1uZXNpYTp0cmFuc2FjdGlvbigNCisJCWZ1bigpIC0+DQorCQkJbW5lc2lhOndy aXRlKHsNCisJCQkJcm9zdGVyLA0KKwkJCQl7TG9jYWxVc2VyLExvY2FsU2VydmVyLHtSZW1vdGVV c2VyLFJlbW90ZVNlcnZlcixbXX19LCAlIHVzag0KKwkJCQl7TG9jYWxVc2VyLExvY2FsU2VydmVy fSwgICAgICAgICAgICAgICAgICUgdXMNCisJCQkJe1JlbW90ZVVzZXIsUmVtb3RlU2VydmVyLFtd fSwgICAgICAlIGppZA0KKwkJCQlOaWNrLCAgICAgICAgICAgICAgICAgICUgbmFtZTogIk1vbSIs IFtdDQorCQkJCVN1YnNjcmlwdGlvbiwgICUgc3Vic2NyaXB0aW9uOiBub25lLCB0bz15b3Ugc2Vl IGhpbSwgZnJvbT1oZSBzZWVzIHlvdSwgYm90aA0KKwkJCQlub25lLCAgICAgICAgICAlIGFzazog b3V0PXNlbmQgcmVxdWVzdCwgaW49c29tZWJvZHkgcmVxdWVzdHMgeW91LCBub25lDQorCQkJCVtH cm91cF0sICAgICAgICUgZ3JvdXBzOiBbIkZhbWlseSJdDQorCQkJCVhhdHRycywgICAgICAgICUg eGF0dHJzOiBbeyJjYXRlZ29yeSIsImNvbmZlcmVuY2UifV0NCisJCQkJW10gICAgICAgICAgICAg JSB4czogW10NCisJCX0pDQorCWVuZCkuDQorDQorcHVzaHJvc3RlcihGaWxlLCBVc2VyLCBTZXJ2 ZXIpIC0+DQorCXtvaywgW1Jvc3Rlcl19ID0gZmlsZTpjb25zdWx0KEZpbGUpLA0KKwlzdWJzY3Jp YmVfcm9zdGVyKHtVc2VyLCBTZXJ2ZXIsICIiLCBVc2VyfSwgUm9zdGVyKS4NCisNCitwdXNocm9z dGVyX2FsbChGaWxlKSAtPg0KKwl7b2ssIFtSb3N0ZXJdfSA9IGZpbGU6Y29uc3VsdChGaWxlKSwN CisJc3Vic2NyaWJlX2FsbChSb3N0ZXIpLg0KKw0KK3N1YnNjcmliZV9hbGwoUm9zdGVyKSAtPg0K KwlzdWJzY3JpYmVfYWxsKFJvc3RlciwgUm9zdGVyKS4NCitzdWJzY3JpYmVfYWxsKFtdLCBfKSAt Pg0KKwlvazsNCitzdWJzY3JpYmVfYWxsKFtVc2VyMSB8IFVzZXJzXSwgUm9zdGVyKSAtPg0KKwlz dWJzY3JpYmVfcm9zdGVyKFVzZXIxLCBSb3N0ZXIpLA0KKwlzdWJzY3JpYmVfYWxsKFVzZXJzLCBS b3N0ZXIpLg0KKw0KK3N1YnNjcmliZV9yb3N0ZXIoXywgW10pIC0+DQorCW9rOw0KKyUgRG8gbm90 IHN1YnNjcmliZSBhIHVzZXIgdG8gaXRzZWxmDQorc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZSwgU2Vy dmVyLCBHcm91cCwgTmlja30sIFt7TmFtZSwgU2VydmVyLCBfLCBffSB8IFJvc3Rlcl0pIC0+DQor CXN1YnNjcmliZV9yb3N0ZXIoe05hbWUsIFNlcnZlciwgR3JvdXAsIE5pY2t9LCBSb3N0ZXIpOw0K KyUgU3Vic2NyaWJlIE5hbWUyIHRvIE5hbWUxDQorc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZTEsIFNl cnZlcjEsIEdyb3VwMSwgTmljazF9LCBbe05hbWUyLCBTZXJ2ZXIyLCBHcm91cDIsIE5pY2syfSB8 IFJvc3Rlcl0pIC0+DQorCXN1YnNjcmliZShOYW1lMSwgU2VydmVyMSwgTmFtZTIsIFNlcnZlcjIs IE5pY2syLCBHcm91cDIsIGJvdGgsIFtdKSwNCisJc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZTEsIFNl cnZlcjEsIEdyb3VwMSwgTmljazF9LCBSb3N0ZXIpLg0KKw0KK3B1c2hfYWxsdG9hbGwoUywgRykg LT4NCisJVXNlcnMgPSBlamFiYmVyZF9hdXRoOmdldF92aF9yZWdpc3RlcmVkX3VzZXJzKFMpLA0K KwlVc2VyczIgPSBidWlsZF9saXN0X3VzZXJzKEcsIFVzZXJzLCBbXSksDQorCXN1YnNjcmliZV9h bGwoVXNlcnMyKS4NCisNCitidWlsZF9saXN0X3VzZXJzKF9Hcm91cCwgW10sIFJlcykgLT4NCisJ UmVzOw0KK2J1aWxkX2xpc3RfdXNlcnMoR3JvdXAsIFt7VXNlciwgU2VydmVyfXxVc2Vyc10sIFJl cykgLT4NCisJYnVpbGRfbGlzdF91c2VycyhHcm91cCwgVXNlcnMsIFt7VXNlciwgU2VydmVyLCBH cm91cCwgVXNlcn18UmVzXSkuDQorDQordmNhcmRfZ2V0KFVzZXIsIFNlcnZlciwgRGF0YVgpIC0+ DQorICAgIFt7XywgXywgQTF9XSA9IG1uZXNpYTpkaXJ0eV9yZWFkKHZjYXJkLCB7VXNlciwgU2Vy dmVyfSksDQorICAgIEVsZW0gPSB2Y2FyZF9nZXQoRGF0YVgsIEExKSwNCisgICAge29rLCB4bWw6 Z2V0X3RhZ19jZGF0YShFbGVtKX0uDQorDQordmNhcmRfZ2V0KHtEYXRhMSwgRGF0YTJ9LCBBMSkg LT4NCisgICAgQTIgPSB4bWw6Z2V0X3N1YnRhZyhBMSwgRGF0YTEpLA0KKyAgICBBMyA9IHhtbDpn ZXRfc3VidGFnKEEyLCBEYXRhMiksDQorICAgIGNhc2UgQTMgb2YNCisJCSIiIC0+IEEyOw0KKwkJ XyAtPiBBMw0KKwllbmQ7DQorDQordmNhcmRfZ2V0KHtEYXRhfSwgQTEpIC0+DQorICAgIHhtbDpn ZXRfc3VidGFnKEExLCBEYXRhKS4NCisNCit2Y2FyZF9zZXQoVXNlciwgU2VydmVyLCBEYXRhMSwg RGF0YTIsIENvbnRlbnQpIC0+DQorCUNvbnRlbnQyID0ge3htbGVsZW1lbnQsIERhdGEyLCBbXSwg W3t4bWxjZGF0YSxDb250ZW50fV19LA0KKwlSID0ge3htbGVsZW1lbnQsIERhdGExLCBbXSwgW0Nv bnRlbnQyXX0sDQorCXZjYXJkX3NldDIoVXNlciwgU2VydmVyLCBSLCBEYXRhMSkuDQorDQordmNh cmRfc2V0KFVzZXIsIFNlcnZlciwgRGF0YSwgQ29udGVudCkgLT4NCisJUiA9IHt4bWxlbGVtZW50 LCBEYXRhLCBbXSwgW3t4bWxjZGF0YSxDb250ZW50fV19LA0KKwl2Y2FyZF9zZXQyKFVzZXIsIFNl cnZlciwgUiwgRGF0YSkuDQorDQordmNhcmRfc2V0MihVc2VyLCBTZXJ2ZXIsIFIsIERhdGEpIC0+ DQorCSUgR2V0IG9sZCB2Y2FyZA0KKyAgICBbe18sIF8sIEExfV0gPSBtbmVzaWE6ZGlydHlfcmVh ZCh2Y2FyZCwge1VzZXIsIFNlcnZlcn0pLA0KKwl7XywgXywgXywgQTJ9ID0gQTEsDQorDQorICAg IEEzID0gbGlzdHM6a2V5ZGVsZXRlKERhdGEsIDIsIEEyKSwNCisgICAgQTQgPSBbUiB8IEEzXSwN CisNCisJJSBCdWlsZCBuZXcgdmNhcmQNCisJU3ViRWwgPSB7eG1sZWxlbWVudCwgInZDYXJkIiwg W3sieG1sbnMiLCJ2Y2FyZC10ZW1wIn1dLCBBNH0sDQorCUlRID0gI2lxe3R5cGU9c2V0LCBzdWJf ZWwgPSBTdWJFbH0sDQorCUpJRCA9IGpsaWI6bWFrZV9qaWQoVXNlciwgU2VydmVyLCAiIiksDQor DQorCW1vZF92Y2FyZDpwcm9jZXNzX3NtX2lxKEpJRCwgSklELCBJUSksDQorCXtvaywgImRvbmUi fS4NCisNCisNCistcmVjb3JkKGxhc3RfYWN0aXZpdHksIHt1cywgdGltZXN0YW1wLCBzdGF0dXN9 KS4NCisNCitkZWxldGVfb2xkZXJfdXNlcnMoRGF5cykgLT4NCisJJSBDb252ZXJ0IG9sZGVyIHRp bWUNCisJU2VjT2xkZXIgPSBEYXlzKjI0KjYwKjYwLA0KKw0KKwklIEdldCBjdXJyZW50IHRpbWUN CisJe01lZ2FTZWNzLCBTZWNzLCBfTWljcm9TZWNzfSA9IG5vdygpLA0KKwlUaW1lU3RhbXBfbm93 ID0gTWVnYVNlY3MgKiAxMDAwMDAwICsgU2VjcywNCisNCisJJSBHZXQgdGhlIGxpc3Qgb2YgcmVn aXN0ZXJlZCB1c2Vycw0KKwlVc2VycyA9IGVqYWJiZXJkX2F1dGg6ZGlydHlfZ2V0X3JlZ2lzdGVy ZWRfdXNlcnMoKSwNCisNCisJJSBGb3IgYSB1c2VyLCByZW1vdmUgaWYgcmVxdWlyZWQgYW5kIGFu c3dlciB0cnVlDQorCUYgPSBmdW4oe0xVc2VyLCBMU2VydmVyfSkgLT4NCisJCSUgQ2hlY2sgaWYg dGhlIHVzZXIgaXMgbG9nZ2VkDQorCQljYXNlIGVqYWJiZXJkX3NtOmdldF91c2VyX3Jlc291cmNl cyhMVXNlciwgTFNlcnZlcikgb2YNCisJCQklIElmIGl0IGlzbid0DQorCQkJW10gLT4NCisJCQkJ JSBMb29rIGZvciBoaXMgbGFzdF9hY3Rpdml0eQ0KKwkJCQljYXNlIG1uZXNpYTpkaXJ0eV9yZWFk KGxhc3RfYWN0aXZpdHksIHtMVXNlciwgTFNlcnZlcn0pIG9mDQorCQkJCSUgSWYgaXQgaXMNCisJ CQkJCSUgZXhpc3RlbnQ6DQorCQkJCQlbI2xhc3RfYWN0aXZpdHl7dGltZXN0YW1wID0gVGltZVN0 YW1wfV0gLT4NCisJCQkJCQklIGdldCBoaXMgYWdlDQorCQkJCQkJU2VjID0gVGltZVN0YW1wX25v dyAtIFRpbWVTdGFtcCwNCisJCQkJCQklIElmIGhlIGlzDQorCQkJCQkJaWYgDQorCQkJCQkJCSUg eW91bmdlciB0aGFuIFNlY09sZGVyOiANCisJCQkJCQkJU2VjIDwgU2VjT2xkZXIgLT4NCisJCQkJ CQkJCSUgZG8gbm90aGluZw0KKwkJCQkJCQkJZmFsc2U7DQorCQkJCQkJCSUgb2xkZXI6IA0KKwkJ CQkJCQl0cnVlIC0+DQorCQkJCQkJCQklIHJlbW92ZSB0aGUgdXNlcg0KKwkJCQkJCQkJZWphYmJl cmRfYXV0aDpyZW1vdmVfdXNlcihMVXNlciwgTFNlcnZlciksDQorCQkJCQkJCQl0cnVlDQorCQkJ CQkJZW5kOw0KKwkJCQkJJSBub25leGlzdGVudDoNCisJCQkJCVtdIC0+DQorCQkJCQkJJSByZW1v dmUgdGhlIHVzZXINCisJCQkJCQllamFiYmVyZF9hdXRoOnJlbW92ZV91c2VyKExVc2VyLCBMU2Vy dmVyKSwNCisJCQkJCQl0cnVlDQorCQkJCWVuZDsNCisJCQklIEVsc2UNCisJCQlfIC0+DQorCQkJ CSUgZG8gbm90aGluZw0KKwkJCQlmYWxzZQ0KKwkJZW5kDQorCWVuZCwNCisJJSBBcHBseSB0aGUg ZnVuY3Rpb24gdG8gZXZlcnkgdXNlciBpbiB0aGUgbGlzdA0KKwlVc2Vyc19yZW1vdmVkID0gbGlz dHM6ZmlsdGVyKEYsIFVzZXJzKSwNCisJe3JlbW92ZWQsIGxlbmd0aChVc2Vyc19yZW1vdmVkKSwg VXNlcnNfcmVtb3ZlZH0uDQorDQorbnVtX2FjdGl2ZV91c2VycyhIb3N0LCBEYXlzKSAtPg0KKwls aXN0X2xhc3RfYWN0aXZpdHkoSG9zdCwgdHJ1ZSwgRGF5cykuDQorDQorJSBDb2RlIGJhc2VkIG9u IGVqYWJiZXJkL3NyYy93ZWIvZWphYmJlcmRfd2ViX2FkbWluLmVybA0KK2xpc3RfbGFzdF9hY3Rp dml0eShIb3N0LCBJbnRlZ3JhbCwgRGF5cykgLT4NCisgICAge01lZ2FTZWNzLCBTZWNzLCBfTWlj cm9TZWNzfSA9IG5vdygpLA0KKyAgICBUaW1lU3RhbXAgPSBNZWdhU2VjcyAqIDEwMDAwMDAgKyBT ZWNzLA0KKyAgICBUUyA9IFRpbWVTdGFtcCAtIERheXMgKiA4NjQwMCwNCisgICAgY2FzZSBjYXRj aCBtbmVzaWE6ZGlydHlfc2VsZWN0KA0KKwkJIGxhc3RfYWN0aXZpdHksIFt7e2xhc3RfYWN0aXZp dHksIHsnXycsIEhvc3R9LCAnJDEnLCAnXyd9LA0KKwkJCQkgIFt7Jz4nLCAnJDEnLCBUU31dLA0K KwkJCQkgIFt7J3RydW5jJywgeycvJywNCisJCQkJCSAgICAgIHsnLScsIFRpbWVTdGFtcCwgJyQx J30sDQorCQkJCQkgICAgICA4NjQwMH19XX1dKSBvZg0KKwl7J0VYSVQnLCBfUmVhc29ufSAtPg0K KwkgICAgW107DQorCVZhbHMgLT4NCisJICAgIEhpc3QgPSBoaXN0b2dyYW0oVmFscywgSW50ZWdy YWwpLA0KKwkgICAgaWYNCisJCUhpc3QgPT0gW10gLT4NCisJCSAgICAwOw0KKwkJdHJ1ZSAtPg0K KwkJICAgIExlZnQgPSBpZg0KKwkJCSAgICAgICBEYXlzID09IGluZmluaXR5IC0+DQorCQkJCSAg IDA7DQorCQkJICAgICAgIHRydWUgLT4NCisJCQkJICAgRGF5cyAtIGxlbmd0aChIaXN0KQ0KKwkJ CSAgIGVuZCwNCisJCSAgICBUYWlsID0gaWYNCisJCQkgICAgICAgSW50ZWdyYWwgLT4NCisJCQkJ ICAgbGlzdHM6ZHVwbGljYXRlKExlZnQsIGxpc3RzOmxhc3QoSGlzdCkpOw0KKwkJCSAgICAgICB0 cnVlIC0+DQorCQkJCSAgIGxpc3RzOmR1cGxpY2F0ZShMZWZ0LCAwKQ0KKwkJCSAgIGVuZCwNCisJ CSAgICBsaXN0czpudGgoRGF5cywgSGlzdCArKyBUYWlsKQ0KKwkgICAgZW5kDQorICAgIGVuZC4N CitoaXN0b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCkgLT4NCisgICAgaGlzdG9ncmFtKGxpc3RzOnNv cnQoVmFsdWVzKSwgSW50ZWdyYWwsIDAsIDAsIFtdKS4NCitoaXN0b2dyYW0oW0ggfCBUXSwgSW50 ZWdyYWwsIEN1cnJlbnQsIENvdW50LCBIaXN0KSB3aGVuIEN1cnJlbnQgPT0gSCAtPg0KKyAgICBo aXN0b2dyYW0oVCwgSW50ZWdyYWwsIEN1cnJlbnQsIENvdW50ICsgMSwgSGlzdCk7DQoraGlzdG9n cmFtKFtIIHwgX10gPSBWYWx1ZXMsIEludGVncmFsLCBDdXJyZW50LCBDb3VudCwgSGlzdCkgd2hl biBDdXJyZW50IDwgSCAtPg0KKyAgICBpZg0KKwlJbnRlZ3JhbCAtPg0KKwkgICAgaGlzdG9ncmFt KFZhbHVlcywgSW50ZWdyYWwsIEN1cnJlbnQgKyAxLCBDb3VudCwgW0NvdW50IHwgSGlzdF0pOw0K Kwl0cnVlIC0+DQorCSAgICBoaXN0b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCwgQ3VycmVudCArIDEs IDAsIFtDb3VudCB8IEhpc3RdKQ0KKyAgICBlbmQ7DQoraGlzdG9ncmFtKFtdLCBfSW50ZWdyYWws IF9DdXJyZW50LCBDb3VudCwgSGlzdCkgLT4NCisgICAgaWYNCisJQ291bnQgPiAwIC0+DQorCSAg ICBsaXN0czpyZXZlcnNlKFtDb3VudCB8IEhpc3RdKTsNCisJdHJ1ZSAtPg0KKwkgICAgbGlzdHM6 cmV2ZXJzZShIaXN0KQ0KKyAgICBlbmQuDQoKZGlmZiAtLWdpdCBhL21vZF9zaGFyZWRfcm9zdGVy X2FkLmVybCBiL21vZF9zaGFyZWRfcm9zdGVyX2FkLmVybApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi44ZGMwOWYxCi0tLSAvZGV2L251bGwKKysrIGIvbW9kX3NoYXJlZF9yb3N0 ZXJfYWQuZXJsCkBAIC0wLDAgKzEsNDI4IEBACislJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCislJSUgRmlsZSAg ICA6IG1vZF9zaGFyZWRfcm9zdGVyLmVybAorJSUlIEF1dGhvciAgOiBBbGV4ZXkgU2hjaGVwaW4g PGFsZXhleUBzZXZjb20ubmV0PgorJSUlIEF1dGhvciAgOiBTdGFuaXNsYXYgQm9nYXR5cmV2IDxy ZWFsbG9jQHJlYWxsb2Muc3BiLnJ1PgorJSUlIFB1cnBvc2UgOiBTaGFyZWQgcm9zdGVyIG1hbmFn ZW1lbnQKKyUlJSBDcmVhdGVkIDogIDUgTWFyIDIwMDUgYnkgQWxleGV5IFNoY2hlcGluIDxhbGV4 ZXlAc2V2Y29tLm5ldD4KKyUlJSBJZCAgICAgIDogJElkOiBtb2Rfc2hhcmVkX3Jvc3Rlcl9hZC5l cmwsdiAxLjEgMjAwNi8wNi8yMyAxMjo0MDowMyBqY29sbGllIEV4cCAkCislJSUtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisKKy1tb2R1bGUobW9kX3NoYXJlZF9yb3N0ZXJfYWQpLgorLWF1dGhvcignYWxleGV5QHNl dmNvbS5uZXQnKS4KKy1hdXRob3IoJ3JlYWxsb2NAcmVhbGxvYy5zcGIucnUnKS4KKy12c24oJyRS ZXZpc2lvbjogMS4xICQgJykuCisKKy1iZWhhdmlvdXIoZ2VuX21vZCkuCisKKy1leHBvcnQoW3N0 YXJ0LzIsIHN0b3AvMSwKKwkgZ2V0X3VzZXJfcm9zdGVyLzIsCisJIGdldF9zdWJzY3JpcHRpb25f bGlzdHMvMywKKwkgZ2V0X2ppZF9pbmZvLzQsCisJIGluX3N1YnNjcmlwdGlvbi81LAorCSBvdXRf c3Vic2NyaXB0aW9uLzQsCisJIGxpc3RfZ3JvdXBzLzEsCisJIGNyZWF0ZV9ncm91cC8yLAorCSBj cmVhdGVfZ3JvdXAvMywKKwkgZGVsZXRlX2dyb3VwLzIsCisJIGdldF9ncm91cF9vcHRzLzIsCisJ IHNldF9ncm91cF9vcHRzLzMsCisJIGdldF9ncm91cF91c2Vycy8yLAorCSBnZXRfZ3JvdXBfZXhw bGljaXRfdXNlcnMvMiwKKwkgYWRkX3VzZXJfdG9fZ3JvdXAvMywKKwkgcmVtb3ZlX3VzZXJfZnJv bV9ncm91cC8zXSkuCisKKy1pbmNsdWRlKCJlamFiYmVyZC5ocmwiKS4KKy1pbmNsdWRlKCJqbGli LmhybCIpLgorLWluY2x1ZGUoIm1vZF9yb3N0ZXIuaHJsIikuCistaW5jbHVkZSgiZWxkYXAvZWxk YXAuaHJsIikuCisKKy1yZWNvcmQoc3JfZ3JvdXAsIHtncm91cF9ob3N0LCBvcHRzfSkuCistcmVj b3JkKHNyX3VzZXIsIHt1cywgZ3JvdXBfaG9zdH0pLgorCitzdGFydChIb3N0LCBfT3B0cykgLT4K KyAgICBtbmVzaWE6Y3JlYXRlX3RhYmxlKHNyX2dyb3VwLAorCQkJW3tkaXNjX2NvcGllcywgW25v ZGUoKV19LAorCQkJIHthdHRyaWJ1dGVzLCByZWNvcmRfaW5mbyhmaWVsZHMsIHNyX2dyb3VwKX1d KSwKKyAgICBtbmVzaWE6Y3JlYXRlX3RhYmxlKHNyX3VzZXIsCisJCQlbe2Rpc2NfY29waWVzLCBb bm9kZSgpXX0sCisJCQkge3R5cGUsIGJhZ30sCisJCQkge2F0dHJpYnV0ZXMsIHJlY29yZF9pbmZv KGZpZWxkcywgc3JfdXNlcil9XSksCisgICAgbW5lc2lhOmFkZF90YWJsZV9pbmRleChzcl91c2Vy LCBncm91cF9ob3N0KSwKKyAgICBlamFiYmVyZF9ob29rczphZGQocm9zdGVyX2dldCwgSG9zdCwK KwkJICAgICAgID9NT0RVTEUsIGdldF91c2VyX3Jvc3RlciwgNzApLAorICAgIGVqYWJiZXJkX2hv b2tzOmFkZChyb3N0ZXJfaW5fc3Vic2NyaXB0aW9uLCBIb3N0LAorICAgICAgICAJICAgICAgID9N T0RVTEUsIGluX3N1YnNjcmlwdGlvbiwgMzApLAorICAgIGVqYWJiZXJkX2hvb2tzOmFkZChyb3N0 ZXJfb3V0X3N1YnNjcmlwdGlvbiwgSG9zdCwKKyAgICAgICAgCSAgICAgICA/TU9EVUxFLCBvdXRf c3Vic2NyaXB0aW9uLCAzMCksCisgICAgZWphYmJlcmRfaG9va3M6YWRkKHJvc3Rlcl9nZXRfc3Vi c2NyaXB0aW9uX2xpc3RzLCBIb3N0LAorCQkgICAgICAgP01PRFVMRSwgZ2V0X3N1YnNjcmlwdGlv bl9saXN0cywgNzApLAorICAgIGVqYWJiZXJkX2hvb2tzOmFkZChyb3N0ZXJfZ2V0X2ppZF9pbmZv LCBIb3N0LAorICAgICAgICAJICAgICAgID9NT0RVTEUsIGdldF9qaWRfaW5mbywgNzApLAorICAg IAorICAgICVlamFiYmVyZF9ob29rczphZGQocmVtb3ZlX3VzZXIsIEhvc3QsCisgICAgJSAgICAJ ICAgICAgID9NT0RVTEUsIHJlbW92ZV91c2VyLCA1MCksCisgICAgTERBUFNlcnZlcnMgPSBlamFi YmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfc2VydmVycywgSG9zdH0pLAorICAgIFJv b3RETiA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9yb290ZG4sIEhvc3R9 KSwKKyAgICBQYXNzd29yZCA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9w YXNzd29yZCwgSG9zdH0pLAorICAgIGVsZGFwOnN0YXJ0X2xpbmsoIm1vZF9zaGFyZWRfcm9zdGVy X2FkIiwgTERBUFNlcnZlcnMsIDM4OSwgUm9vdEROLCBQYXNzd29yZCkuCisgICAKKworICAKK3N0 b3AoSG9zdCkgLT4KKyAgICBlamFiYmVyZF9ob29rczpkZWxldGUocm9zdGVyX2dldCwgSG9zdCwK KwkJCSAgP01PRFVMRSwgZ2V0X3VzZXJfcm9zdGVyLCA3MCksCisgICAgZWphYmJlcmRfaG9va3M6 ZGVsZXRlKHJvc3Rlcl9pbl9zdWJzY3JpcHRpb24sIEhvc3QsCisgICAgICAgIAkJICA/TU9EVUxF LCBpbl9zdWJzY3JpcHRpb24sIDMwKSwKKyAgICBlamFiYmVyZF9ob29rczpkZWxldGUocm9zdGVy X291dF9zdWJzY3JpcHRpb24sIEhvc3QsCisgICAgICAgIAkJICA/TU9EVUxFLCBvdXRfc3Vic2Ny aXB0aW9uLCAzMCksCisgICAgZWphYmJlcmRfaG9va3M6ZGVsZXRlKHJvc3Rlcl9nZXRfc3Vic2Ny aXB0aW9uX2xpc3RzLCBIb3N0LAorICAgICAgICAJCSAgP01PRFVMRSwgZ2V0X3N1YnNjcmlwdGlv bl9saXN0cywgNzApLAorICAgIGVqYWJiZXJkX2hvb2tzOmRlbGV0ZShyb3N0ZXJfZ2V0X2ppZF9p bmZvLCBIb3N0LAorICAgICAgICAJCSAgP01PRFVMRSwgZ2V0X2ppZF9pbmZvLCA3MCkuCisgICAg JWVqYWJiZXJkX2hvb2tzOmRlbGV0ZShyZW1vdmVfdXNlciwgSG9zdCwKKyAgICAlICAgIAkJICA/ TU9EVUxFLCByZW1vdmVfdXNlciwgNTApLAorCisKK2dldF91c2VyX3Jvc3RlcihJdGVtcywgVVMp IC0+CisgICAge1UsIFN9ID0gVVMsCisgICAgRGlzcGxheWVkR3JvdXBzID0gZ2V0X3VzZXJfZGlz cGxheWVkX2dyb3Vwc19hZChVUyksCisgICAgU1JVc2VycyA9IAorCWxpc3RzOmZvbGRsKAorCSAg ZnVuKEdyb3VwLCBBY2MxKSAtPgorCQkgIGxpc3RzOmZvbGRsKAorCQkgICAgZnVuKFVzZXIsIEFj YzIpIC0+CisJCQkgICAgZGljdDphcHBlbmQoVXNlciwgR3JvdXAsIEFjYzIpCisJCSAgICBlbmQs IEFjYzEsIGdldF9ncm91cF91c2Vyc19hZChTLCBHcm91cCkpCisJICBlbmQsIGRpY3Q6bmV3KCks IERpc3BsYXllZEdyb3VwcyksCisgICAge05ld0l0ZW1zMSwgU1JVc2Vyc1Jlc3R9ID0KKwlsaXN0 czptYXBmb2xkbCgKKwkgIGZ1bihJdGVtLCBTUlVzZXJzMSkgLT4KKwkJICB7XywgXywge1UxLCBT MSwgX319ID0gSXRlbSNyb3N0ZXIudXNqLAorCQkgIFVTMSA9IHtVMSwgUzF9LAorCQkgIGNhc2Ug ZGljdDpmaW5kKFVTMSwgU1JVc2VyczEpIG9mCisJCSAgICAgIHtvaywgX0dyb3VwTmFtZXN9IC0+ CisJCQkgIHtJdGVtI3Jvc3RlcntzdWJzY3JpcHRpb24gPSBib3RoLCBhc2sgPSBub25lfSwKKwkJ CSAgIGRpY3Q6ZXJhc2UoVVMxLCBTUlVzZXJzMSl9OworCQkgICAgICBlcnJvciAtPgorCQkJICB7 SXRlbSwgU1JVc2VyczF9CisJCSAgZW5kCisJICBlbmQsIFNSVXNlcnMsIEl0ZW1zKSwKKyAgICBT Ukl0ZW1zID0gWyNyb3N0ZXJ7dXNqID0ge1UsIFMsIHtVMSwgUzEsICIifX0sCisJCSAgICAgICB1 cyA9IFVTLAorCQkgICAgICAgamlkID0ge1UxLCBTMSwgIiJ9LAorCQkgICAgICAgbmFtZSA9IGdl dF91c2VyX2ZuKFUxLFMxKSwKKwkJICAgICAgIHN1YnNjcmlwdGlvbiA9IGJvdGgsCisJCSAgICAg ICBhc2sgPSBub25lLAorCQkgICAgICAgZ3JvdXBzID0gR3JvdXBOYW1lc30gfHwKKwkJICB7e1Ux LCBTMX0sIEdyb3VwTmFtZXN9IDwtIGRpY3Q6dG9fbGlzdChTUlVzZXJzUmVzdCldLAorICAgIFNS SXRlbXMgKysgTmV3SXRlbXMxLgorCitnZXRfc3Vic2NyaXB0aW9uX2xpc3RzKHtGLCBUfSwgVXNl ciwgU2VydmVyKSAtPgorICAgIExVc2VyID0gamxpYjpub2RlcHJlcChVc2VyKSwKKyAgICBMU2Vy dmVyID0gamxpYjpuYW1lcHJlcChTZXJ2ZXIpLAorICAgIFVTID0ge0xVc2VyLCBMU2VydmVyfSwK KyAgICBEaXNwbGF5ZWRHcm91cHMgPSBnZXRfdXNlcl9kaXNwbGF5ZWRfZ3JvdXBzX2FkKFVTKSwK KyAgICBTUlVzZXJzID0KKwlsaXN0czp1c29ydCgKKwkgIGxpc3RzOmZsYXRtYXAoCisJICAgIGZ1 bihHcm91cCkgLT4KKwkJICAgIGdldF9ncm91cF91c2Vyc19hZChMU2VydmVyLCBHcm91cCkKKwkg ICAgZW5kLCBEaXNwbGF5ZWRHcm91cHMpKSwKKyAgICBTUkpJRHMgPSBbe1UxLCBTMSwgIiJ9IHx8 IHtVMSwgUzF9IDwtIFNSVXNlcnNdLAorICAgIHtsaXN0czp1c29ydChTUkpJRHMgKysgRiksIGxp c3RzOnVzb3J0KFNSSklEcyArKyBUKX0uCisKK2dldF9qaWRfaW5mbyh7U3Vic2NyaXB0aW9uLCBH cm91cHN9LCBVc2VyLCBTZXJ2ZXIsIEpJRCkgLT4KKyAgICBMVXNlciA9IGpsaWI6bm9kZXByZXAo VXNlciksCisgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2VydmVyKSwKKyAgICBVUyA9IHtM VXNlciwgTFNlcnZlcn0sCisgICAge1UxLCBTMSwgX30gPSBqbGliOmppZF90b2xvd2VyKEpJRCks CisgICAgVVMxID0ge1UxLCBTMX0sCisgICAgRGlzcGxheWVkR3JvdXBzID0gZ2V0X3VzZXJfZGlz cGxheWVkX2dyb3Vwc19hZChVUyksCisgICAgU1JVc2VycyA9IAorCWxpc3RzOmZvbGRsKAorCSAg ZnVuKEdyb3VwLCBBY2MxKSAtPgorCQkgIGxpc3RzOmZvbGRsKAorCQkgICAgZnVuKFVzZXIxLCBB Y2MyKSAtPgorCQkJICAgIGRpY3Q6YXBwZW5kKAorCQkJICAgICAgVXNlcjEsIEdyb3VwLCBBY2My KQorCQkgICAgZW5kLCBBY2MxLCBnZXRfZ3JvdXBfdXNlcnNfYWQoTFNlcnZlciwgR3JvdXApKQor CSAgZW5kLCBkaWN0Om5ldygpLCBEaXNwbGF5ZWRHcm91cHMpLAorICAgIGNhc2UgZGljdDpmaW5k KFVTMSwgU1JVc2Vycykgb2YKKwl7b2ssIEdyb3VwTmFtZXN9IC0+CisJICAgIE5ld0dyb3VwcyA9 IGlmCisJCQkgICAgR3JvdXBzID09IFtdIC0+IEdyb3VwTmFtZXM7CisJCQkgICAgdHJ1ZSAtPiBH cm91cHMKKwkJCWVuZCwKKwkgICAge2JvdGgsIE5ld0dyb3Vwc307CisJZXJyb3IgLT4KKwkgICAg e1N1YnNjcmlwdGlvbiwgR3JvdXBzfQorICAgIGVuZC4KKworaW5fc3Vic2NyaXB0aW9uKEFjYywg VXNlciwgU2VydmVyLCBKSUQsIFR5cGUpIC0+CisgICAgcHJvY2Vzc19zdWJzY3JpcHRpb24oaW4s IFVzZXIsIFNlcnZlciwgSklELCBUeXBlLCBBY2MpLgorCitvdXRfc3Vic2NyaXB0aW9uKFVzZXIs IFNlcnZlciwgSklELCBUeXBlKSAtPgorICAgIHByb2Nlc3Nfc3Vic2NyaXB0aW9uKG91dCwgVXNl ciwgU2VydmVyLCBKSUQsIFR5cGUsIGZhbHNlKS4KKworcHJvY2Vzc19zdWJzY3JpcHRpb24oRGly ZWN0aW9uLCBVc2VyLCBTZXJ2ZXIsIEpJRCwgX1R5cGUsIEFjYykgLT4KKyAgICBMVXNlciA9IGps aWI6bm9kZXByZXAoVXNlciksCisgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2VydmVyKSwK KyAgICBVUyA9IHtMVXNlciwgTFNlcnZlcn0sCisgICAge1UxLCBTMSwgX30gPSBqbGliOmppZF90 b2xvd2VyKGpsaWI6amlkX3JlbW92ZV9yZXNvdXJjZShKSUQpKSwKKyAgICBVUzEgPSB7VTEsIFMx fSwKKyAgICBEaXNwbGF5ZWRHcm91cHMgPSBnZXRfdXNlcl9kaXNwbGF5ZWRfZ3JvdXBzX2FkKFVT KSwKKyAgICBTUlVzZXJzID0KKwlsaXN0czp1c29ydCgKKwkgIGxpc3RzOmZsYXRtYXAoCisJICAg IGZ1bihHcm91cCkgLT4KKwkJICAgIGdldF9ncm91cF91c2Vyc19hZChMU2VydmVyLCBHcm91cCkK KwkgICAgZW5kLCBEaXNwbGF5ZWRHcm91cHMpKSwKKyAgICBjYXNlIGxpc3RzOm1lbWJlcihVUzEs IFNSVXNlcnMpIG9mCisJdHJ1ZSAtPgorCSAgICBjYXNlIERpcmVjdGlvbiBvZgorCQlpbiAtPgor CQkgICAge3N0b3AsIGZhbHNlfTsKKwkJb3V0IC0+CisJCSAgICBzdG9wCisJICAgIGVuZDsKKwlm YWxzZSAtPgorCSAgICBBY2MKKyAgICBlbmQuCisKK2xpc3RfZ3JvdXBzKEhvc3QpIC0+CisgICAg Z2V0X3VzZXJfZGlzcGxheWVkX2dyb3Vwc19hZCh7IiIsSG9zdH0pLgorCisKK2NyZWF0ZV9ncm91 cChIb3N0LCBHcm91cCkgLT4KKyAgICBjcmVhdGVfZ3JvdXAoSG9zdCwgR3JvdXAsIFtdKS4KKwor Y3JlYXRlX2dyb3VwKEhvc3QsIEdyb3VwLCBPcHRzKSAtPgorICAgIFIgPSAjc3JfZ3JvdXB7Z3Jv dXBfaG9zdCA9IHtHcm91cCwgSG9zdH0sIG9wdHMgPSBPcHRzfSwKKyAgICBGID0gZnVuKCkgLT4K KwkJbW5lc2lhOndyaXRlKFIpCisJZW5kLAorICAgIG1uZXNpYTp0cmFuc2FjdGlvbihGKS4KKwor ZGVsZXRlX2dyb3VwKEhvc3QsIEdyb3VwKSAtPgorICAgIEYgPSBmdW4oKSAtPgorCQltbmVzaWE6 ZGVsZXRlKHtzcl9ncm91cCwge0dyb3VwLCBIb3N0fX0pCisJZW5kLAorICAgIG1uZXNpYTp0cmFu c2FjdGlvbihGKS4KKworZ2V0X2dyb3VwX29wdHMoSG9zdCwgR3JvdXApIC0+CisgICAgY2FzZSBj YXRjaCBtbmVzaWE6ZGlydHlfcmVhZChzcl9ncm91cCwge0dyb3VwLCBIb3N0fSkgb2YKKwlbI3Ny X2dyb3Vwe29wdHMgPSBPcHRzfV0gLT4KKwkgICAgT3B0czsKKwlfIC0+CisJICAgIGVycm9yCisg ICAgZW5kLgorCitzZXRfZ3JvdXBfb3B0cyhIb3N0LCBHcm91cCwgT3B0cykgLT4KKyAgICBSID0g I3NyX2dyb3Vwe2dyb3VwX2hvc3QgPSB7R3JvdXAsIEhvc3R9LCBvcHRzID0gT3B0c30sCisgICAg RiA9IGZ1bigpIC0+CisJCW1uZXNpYTp3cml0ZShSKQorCWVuZCwKKyAgICBtbmVzaWE6dHJhbnNh Y3Rpb24oRikuCisKKworCitnZXRfdXNlcl9ncm91cHMoVVMpIC0+CisgICAgSG9zdCA9IGVsZW1l bnQoMiwgVVMpLAorICAgIGNhc2UgY2F0Y2ggbW5lc2lhOmRpcnR5X3JlYWQoc3JfdXNlciwgVVMp IG9mCisJUnMgd2hlbiBpc19saXN0KFJzKSAtPgorCSAgICBbR3JvdXAgfHwgI3NyX3VzZXJ7Z3Jv dXBfaG9zdCA9IHtHcm91cCwgSH19IDwtIFJzLCBIID09IEhvc3RdOworCV8gLT4KKwkgICAgW10K KyAgICBlbmQgKysgZ2V0X2FsbF91c2Vyc19ncm91cHMoSG9zdCkuCisKK2lzX2dyb3VwX2VuYWJs ZWQoSG9zdCwgR3JvdXApIC0+CisgICAgY2FzZSBjYXRjaCBtbmVzaWE6ZGlydHlfcmVhZChzcl9n cm91cCwge0dyb3VwLCBIb3N0fSkgb2YKKwlbI3NyX2dyb3Vwe29wdHMgPSBPcHRzfV0gLT4KKwkg ICAgbm90IGxpc3RzOm1lbWJlcihkaXNhYmxlZCwgT3B0cyk7CisJXyAtPgorCSAgICBmYWxzZQor ICAgIGVuZC4KKworZ2V0X2dyb3VwX29wdChIb3N0LCBHcm91cCwgT3B0LCBEZWZhdWx0KSAtPgor ICAgIGNhc2UgY2F0Y2ggbW5lc2lhOmRpcnR5X3JlYWQoc3JfZ3JvdXAsIHtHcm91cCwgSG9zdH0p IG9mCisJWyNzcl9ncm91cHtvcHRzID0gT3B0c31dIC0+CisJICAgIGNhc2UgbGlzdHM6a2V5c2Vh cmNoKE9wdCwgMSwgT3B0cykgb2YKKwkJe3ZhbHVlLCB7XywgVmFsfX0gLT4KKwkJICAgIFZhbDsK KwkJZmFsc2UgLT4KKwkJICAgIERlZmF1bHQKKwkgICAgZW5kOworCV8gLT4KKwkgICAgZmFsc2UK KyAgICBlbmQuCisKK2dldF9ncm91cF91c2VycyhIb3N0LCBHcm91cCkgLT4KKyAgICBjYXNlIGdl dF9ncm91cF9vcHQoSG9zdCwgR3JvdXAsIGFsbF91c2VycywgZmFsc2UpIG9mCisJdHJ1ZSAtPgor CSAgICBlamFiYmVyZF9hdXRoOmdldF92aF9yZWdpc3RlcmVkX3VzZXJzKEhvc3QpOworCWZhbHNl IC0+CisJICAgIFtdCisgICAgZW5kICsrIGdldF9ncm91cF9leHBsaWNpdF91c2VycyhIb3N0LCBH cm91cCkuCisKK2dldF9ncm91cF9leHBsaWNpdF91c2VycyhIb3N0LCBHcm91cCkgLT4KKyAgICBj YXNlIGNhdGNoIG1uZXNpYTpkaXJ0eV9pbmRleF9yZWFkKAorCQkgc3JfdXNlciwge0dyb3VwLCBI b3N0fSwgI3NyX3VzZXIuZ3JvdXBfaG9zdCkgb2YKKwlScyB3aGVuIGlzX2xpc3QoUnMpIC0+CisJ ICAgIFtSI3NyX3VzZXIudXMgfHwgUiA8LSBSc107CisJXyAtPgorCSAgICBbXQorICAgIGVuZC4K KworZ2V0X2dyb3VwX25hbWUoSG9zdCwgR3JvdXApIC0+CisgICAgZ2V0X2dyb3VwX29wdChIb3N0 LCBHcm91cCwgbmFtZSwgR3JvdXApLgorCitnZXRfYWxsX3VzZXJzX2dyb3VwcyhIb3N0KSAtPgor ICAgIGxpc3RzOmZpbHRlcigKKyAgICAgIGZ1bihHcm91cCkgLT4gZ2V0X2dyb3VwX29wdChIb3N0 LCBHcm91cCwgYWxsX3VzZXJzLCBmYWxzZSkgZW5kLAorICAgICAgbGlzdF9ncm91cHMoSG9zdCkp LgorCitnZXRfdXNlcl9kaXNwbGF5ZWRfZ3JvdXBzKFVTKSAtPgorICAgIEhvc3QgPSBlbGVtZW50 KDIsIFVTKSwKKyAgICBEaXNwbGF5ZWRHcm91cHMxID0KKwlsaXN0czp1c29ydCgKKwkgIGxpc3Rz OmZsYXRtYXAoCisJICAgIGZ1bihHcm91cCkgLT4KKwkJICAgIGNhc2UgaXNfZ3JvdXBfZW5hYmxl ZChIb3N0LCBHcm91cCkgb2YKKwkJCXRydWUgLT4KKwkJCSAgICBnZXRfZ3JvdXBfb3B0KEhvc3Qs IEdyb3VwLCBkaXNwbGF5ZWRfZ3JvdXBzLCBbXSk7CisJCQlmYWxzZSAtPgorCQkJICAgIFtdCisJ CSAgICBlbmQKKwkgICAgZW5kLCBnZXRfdXNlcl9ncm91cHMoVVMpKSksCisgICAgW0dyb3VwIHx8 IEdyb3VwIDwtIERpc3BsYXllZEdyb3VwczEsIGlzX2dyb3VwX2VuYWJsZWQoSG9zdCwgR3JvdXAp XS4KKworCisKKworYWRkX3VzZXJfdG9fZ3JvdXAoSG9zdCwgVVMsIEdyb3VwKSAtPgorICAgIFIg PSAjc3JfdXNlcnt1cyA9IFVTLCBncm91cF9ob3N0ID0ge0dyb3VwLCBIb3N0fX0sCisgICAgRiA9 IGZ1bigpIC0+CisJCW1uZXNpYTp3cml0ZShSKQorCWVuZCwKKyAgICBtbmVzaWE6dHJhbnNhY3Rp b24oRikuCisKK3JlbW92ZV91c2VyX2Zyb21fZ3JvdXAoSG9zdCwgVVMsIEdyb3VwKSAtPgorICAg IFIgPSAjc3JfdXNlcnt1cyA9IFVTLCBncm91cF9ob3N0ID0ge0dyb3VwLCBIb3N0fX0sCisgICAg RiA9IGZ1bigpIC0+CisJCW1uZXNpYTpkZWxldGVfb2JqZWN0KFIpCisJZW5kLAorICAgIG1uZXNp YTp0cmFuc2FjdGlvbihGKS4KKworCisKK2ZpbmRfdXNlcl9hdHRyKFVzZXIsIEhvc3QpIC0+Cisg ICAgQXR0ciA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF91aWRhdHRyLCBI b3N0fSksCisgICAgRmlsdGVyID0gZWxkYXA6ZXF1YWxpdHlNYXRjaChBdHRyLCBVc2VyKSwKKyAg ICBCYXNlID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX2Jhc2UsIEhvc3R9 KSwKKyAgICAKKyAgICBjYXNlIGVsZGFwOnNlYXJjaCgibW9kX3NoYXJlZF9yb3N0ZXJfYWQiLAor ICAgICAgICAgICAgICAgICAgICAgIFt7YmFzZSwgQmFzZX0sCisgICAgICAgICAgICAgICAgICAg ICAgIHtmaWx0ZXIsIEZpbHRlcn0sCisgICAgICAgICAgICAgICAgICAgICAgIHthdHRyaWJ1dGVz LCBbXX1dKSBvZgorICAgICAgICAjZWxkYXBfc2VhcmNoX3Jlc3VsdHtlbnRyaWVzID0gW0UgfCBf XX0gLT4KKyAgICAgICAgICAgIEU7CisgICAgICAgIF8gLT4KKyAgICAgICAgICAgIGZhbHNlCisg ICAgZW5kLgorCitnZXRfdXNlcl9kaXNwbGF5ZWRfZ3JvdXBzX2FkKFVTKSAtPgorICAgIHtfLCBI b3N0fSA9IFVTLAorICAgIEFkR3JvdXAgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlv bih7YWRfZ3JvdXAsIEhvc3R9KSwKKyAgICBGaWx0ZXJHcm91cCA9IGVsZGFwOmVxdWFsaXR5TWF0 Y2goIm1lbWJlck9mIiwgQWRHcm91cCksCisgICAgQmFzZSA9IGVqYWJiZXJkX2NvbmZpZzpnZXRf bG9jYWxfb3B0aW9uKHthZF9iYXNlLCBIb3N0fSksCisgICAgCisgICAgY2FzZSBlbGRhcDpzZWFy Y2goIm1vZF9zaGFyZWRfcm9zdGVyX2FkIiwKKyAgICAgICAgICAgICAgICAgICAgICBbe2Jhc2Us IEJhc2V9LAorICAgICAgICAgICAgICAgICAgICAgICB7ZmlsdGVyLCBGaWx0ZXJHcm91cH0sCisg ICAgICAgICAgICAgICAgICAgICAgIHthdHRyaWJ1dGVzLCBbXX1dKSBvZgorICAgICAgICAjZWxk YXBfc2VhcmNoX3Jlc3VsdHtlbnRyaWVzID0gRX0gLT4KKwkgICAgbGlzdHM6dXNvcnQobGlzdHM6 bWFwKAorCSAgICAgIGZ1bihYKSAtPgorCQkgICAgICBjYXNlIFggb2YKKwkJCSAgI2VsZGFwX2Vu dHJ5e2F0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzfSAtPgorCQkJICAgICAgbGRhcF9nZXRfdmFsdWUo QXR0cmlidXRlcywiZGVwYXJ0bWVudCIpOworCQkJICBmYWxzZSAtPgorCQkJICAgICAgIiIJICAg IAorCQkgICAgICBlbmQKKwkJICAgICAgZW5kLCBFCisJICAgICApKTsKKwkgICAgCisgICAgICAg IF8gLT4KKyAgICAgICAgICAgIFtdCisgICAgZW5kLgorCitnZXRfZWxkYXBfaWQoSG9zdCwgTmFt ZSkgLT4KKyAgICBhdG9tX3RvX2xpc3QoZ2VuX21vZDpnZXRfbW9kdWxlX3Byb2MoSG9zdCwgTmFt ZSkpLgorCisKK2dldF9ncm91cF91c2Vyc19hZChIb3N0LCBHcm91cCkgLT4KKyAgICBBdHRyID0g ZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX3VpZGF0dHIsIEhvc3R9KSwKKyUg ICAgQWRHcm91cCA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9ncm91cCwg SG9zdH0pLAorICAgIEZpbHRlclBlcnNvbiA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm9iamVjdENh dGVnb3J5IiwgInBlcnNvbiIpLAorICAgIEZpbHRlckNvbXAgPSBlbGRhcDplcXVhbGl0eU1hdGNo KCJvYmplY3RDbGFzcyIsICJjb21wdXRlciIpLAorICAgIEZpbHRlckhpZGRlbiA9IGVsZGFwOmVx dWFsaXR5TWF0Y2goImRlc2NyaXB0aW9uIiwgImhpZGRlbiIpLAorJSAgICBGaWx0ZXJHcm91cCA9 IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm1lbWJlck9mIiwgQWRHcm91cCksCisgICAgRmlsdGVyRGVw ID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgiZGVwYXJ0bWVudCIsIEdyb3VwKSwKKyAgICBGaWx0ZXJM aXZlID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgidXNlckFjY291bnRDb250cm9sIiwgIjY2MDUwIiks CisgICAgRmlsdGVyRGVmID0gZWxkYXA6cHJlc2VudChBdHRyKSwKKyAgICBGaWx0ZXIgPSBlbGRh cDonYW5kJyhbCisJCQkgIEZpbHRlckRlZiwKKwkJCSAgRmlsdGVyUGVyc29uLAorJQkJCSAgRmls dGVyR3JvdXAsCisJCQkgIEZpbHRlckRlcCwKKwkJCSAgZWxkYXA6J25vdCcoRmlsdGVyQ29tcCks CisJCQkgIGVsZGFwOidub3QnKEZpbHRlckhpZGRlbiksCisJCQkgIGVsZGFwOidub3QnKEZpbHRl ckxpdmUpXSksCisgICAgQmFzZSA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHth ZF9iYXNlLCBIb3N0fSksCisgICAgY2FzZSBlbGRhcDpzZWFyY2goZ2V0X2VsZGFwX2lkKEhvc3Qs IGVqYWJiZXJkKSwKKwkJICAgICAgW3tiYXNlLCBCYXNlfSwKKwkJICAgICAgIHtmaWx0ZXIsIEZp bHRlcn0sCisJCSAgICAgICB7YXR0cmlidXRlcywgW0F0dHJdfV0pIG9mCisJI2VsZGFwX3NlYXJj aF9yZXN1bHR7ZW50cmllcyA9IEVzfSAtPgorCSAgICBsaXN0czpmbGF0bWFwKAorCSAgICAgIGZ1 bihFKSAtPgorCQkgICAgICBjYXNlIGxpc3RzOmtleXNlYXJjaChBdHRyLCAxLCBFI2VsZGFwX2Vu dHJ5LmF0dHJpYnV0ZXMpIG9mCisJCQkgIHt2YWx1ZSwge18sIFtVXX19IC0+CisJCQkgICAgICBj YXNlIGpsaWI6bm9kZXByZXAoVSkgb2YKKwkJCQkgIGVycm9yIC0+CisJCQkJICAgICAgW107CisJ CQkJICBMVSAtPgorCQkJCSAgICAgIFt7TFUsIEhvc3R9XQorCQkJICAgICAgZW5kOworCQkJICBf IC0+CisJCQkgICAgICBbXQorCQkgICAgICBlbmQKKwkgICAgICBlbmQsIEVzKTsKKwlfIC0+CisJ ICAgIFtdCisgICAgZW5kLgorCisKKworCisKK2xkYXBfZ2V0X3ZhbHVlKEUsQXR0cmlidXRlKSAt PgorICAgIGNhc2UgbGlzdHM6ZmlsdGVyKGZ1bih7QSxffSkgLT4KKwkJCSAgICAgIHN0cmluZzpl cXVhbChBLEF0dHJpYnV0ZSkKKwkJICAgICAgZW5kLEUpIG9mCisJW3tfLFtWYWx1ZXxfXX1dIC0+ CisJICAgIFZhbHVlOworCV8gLT4gCisJICAgIG5vbmUKKyAgICBlbmQuCisKK2dldF91c2VyX2Zu KFVzZXIsIEhvc3QpIC0+CisgICAgY2FzZSBmaW5kX3VzZXJfYXR0cihVc2VyLEhvc3QpIG9mCisJ I2VsZGFwX2VudHJ5e2F0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzfSAtPgorCSAgICBsZGFwX2dldF92 YWx1ZShBdHRyaWJ1dGVzLCJjbiIpOworCQorCWZhbHNlIC0+CisJICAgICIiCSAgICAKKyAgICBl bmQuCisKKwoKZGlmZiAtLWdpdCBhL21vZF92Y2FyZF9hZC5lcmwgYi9tb2RfdmNhcmRfYWQuZXJs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyZGRiZWMKLS0tIC9kZXYvbnVs bAorKysgYi9tb2RfdmNhcmRfYWQuZXJsCkBAIC0wLDAgKzEsNjMxIEBACisKKyUlJS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyUlJSBGaWxlICAgIDogbW9kX3ZjYXJkX2FkLmVybAorJSUlIEF1dGhvciAgOiBTdGFu aXNsYXYgQm9nYXR5cmV2IDxyZWFsbG9jQHJlYWxsb2Muc3BiLnJ1PgorJSUlIEF1dGhvciAgOiBB bGV4ZXkgU2hjaGVwaW4gPGFsZXhleUBzZXZjb20ubmV0PgorJSUlIEF1dGhvciAgOiBBbGV4IDxh Z2VudF8wMDc+IEdvcmJhY2hlbmtvIChhZ2VudF8wMDdAaW1tby5ydSkKKyUlJSBQdXJwb3NlIDog CislJSUgQ3JlYXRlZCA6ICAyIEphbiAyMDAzIGJ5IEFsZXhleSBTaGNoZXBpbiA8YWxleGV5QHNl dmNvbS5uZXQ+CislJSUgSWQgICAgICA6ICRJZDogbW9kX3ZjYXJkX2FkLmVybCA0MzcgMjAwNS0x MS0xOSAwMToyMDowNVogYWdlbnRfMDA3ICQKKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLW1vZHVsZSht b2RfdmNhcmRfYWQpLgorLWF1dGhvcigncmVhbGxvY0ByZWFsbG9jLnNwYi5ydScpLgorLWF1dGhv cignYWxleGV5QHNldmNvbS5uZXQnKS4KKy1hdXRob3IoJ2FnZW50XzAwN0BpbW1vLnJ1JykuCist dnNuKCckUmV2aXNpb246IDQzNyAkICcpLgorCistYmVoYXZpb3VyKGdlbl9tb2QpLgorCistZXhw b3J0KFtzdGFydC8yLCBpbml0LzMsIHN0b3AvMSwKKyAJIGdldF9zbV9mZWF0dXJlcy81LAorCSBw cm9jZXNzX2xvY2FsX2lxLzMsCisJIHByb2Nlc3Nfc21faXEvMywKKwkgcmVtb3ZlX3VzZXIvMV0p LgorCistaW5jbHVkZSgiZWphYmJlcmQuaHJsIikuCistaW5jbHVkZSgiZWxkYXAvZWxkYXAuaHJs IikuCistaW5jbHVkZSgiamxpYi5ocmwiKS4KKworLWRlZmluZShQUk9DTkFNRSwgZWphYmJlcmRf bW9kX3ZjYXJkX2FkKS4KKworc3RhcnQoSG9zdCwgT3B0cykgLT4KKyAgICBJUURpc2MgPSBnZW5f bW9kOmdldF9vcHQoaXFkaXNjLCBPcHRzLCBvbmVfcXVldWUpLAorICAgIGdlbl9pcV9oYW5kbGVy OmFkZF9pcV9oYW5kbGVyKGVqYWJiZXJkX2xvY2FsLCBIb3N0LCA/TlNfVkNBUkQsCisJCQkJICA/ TU9EVUxFLCBwcm9jZXNzX2xvY2FsX2lxLCBJUURpc2MpLAorICAgIGdlbl9pcV9oYW5kbGVyOmFk ZF9pcV9oYW5kbGVyKGVqYWJiZXJkX3NtLCBIb3N0LCA/TlNfVkNBUkQsCisJCQkJICA/TU9EVUxF LCBwcm9jZXNzX3NtX2lxLCBJUURpc2MpLAorICAgIGVqYWJiZXJkX2hvb2tzOmFkZChkaXNjb19z bV9mZWF0dXJlcywgSG9zdCwgP01PRFVMRSwgZ2V0X3NtX2ZlYXR1cmVzLCA1MCksCisgICAgTERB UFNlcnZlcnMgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfc2VydmVycywg SG9zdH0pLAorICAgIFJvb3RETiA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHth ZF9yb290ZG4sIEhvc3R9KSwKKyAgICBQYXNzd29yZCA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9j YWxfb3B0aW9uKHthZF9wYXNzd29yZCwgSG9zdH0pLAorICAgIGVsZGFwOnN0YXJ0X2xpbmsoIm1v ZF92Y2FyZF9hZCIsIExEQVBTZXJ2ZXJzLCAzODksIFJvb3RETiwgUGFzc3dvcmQpLAorICAgIE15 SG9zdCA9IGdlbl9tb2Q6Z2V0X29wdChob3N0LCBPcHRzLCAidmp1ZC4iICsrIEhvc3QpLAorICAg IFNlYXJjaCA9IGdlbl9tb2Q6Z2V0X29wdChzZWFyY2gsIE9wdHMsIHRydWUpLAorICAgIHJlZ2lz dGVyKGdlbl9tb2Q6Z2V0X21vZHVsZV9wcm9jKEhvc3QsID9QUk9DTkFNRSksCisJICAgICBzcGF3 big/TU9EVUxFLCBpbml0LCBbTXlIb3N0LCBIb3N0LCBTZWFyY2hdKSkuCisKK2luaXQoSG9zdCwg U2VydmVySG9zdCwgU2VhcmNoKSAtPgorICAgIGNhc2UgU2VhcmNoIG9mCisJZmFsc2UgLT4KKwkg ICAgbG9vcChIb3N0LCBTZXJ2ZXJIb3N0KTsKKwlfIC0+CisJICAgIGVqYWJiZXJkX3JvdXRlcjpy ZWdpc3Rlcl9yb3V0ZShIb3N0KSwKKwkgICAgbG9vcChIb3N0LCBTZXJ2ZXJIb3N0KQorICAgIGVu ZC4KKworbG9vcChIb3N0LCBTZXJ2ZXJIb3N0KSAtPgorICAgIHJlY2VpdmUKKwl7cm91dGUsIEZy b20sIFRvLCBQYWNrZXR9IC0+CisJICAgIGNhc2UgY2F0Y2ggZG9fcm91dGUoU2VydmVySG9zdCwg RnJvbSwgVG8sIFBhY2tldCkgb2YKKwkJeydFWElUJywgUmVhc29ufSAtPgorCQkgICAgP0VSUk9S X01TRygifnAiLCBbUmVhc29uXSk7CisJCV8gLT4KKwkJICAgIG9rCisJICAgIGVuZCwKKwkgICAg bG9vcChIb3N0LCBTZXJ2ZXJIb3N0KTsKKwlzdG9wIC0+CisJICAgIGVqYWJiZXJkX3JvdXRlcjp1 bnJlZ2lzdGVyX3JvdXRlKEhvc3QpLAorCSAgICBvazsKKwlfIC0+CisJICAgIGxvb3AoSG9zdCwg U2VydmVySG9zdCkKKyAgICBlbmQuCisKK3N0b3AoSG9zdCkgLT4KKyAgICBnZW5faXFfaGFuZGxl cjpyZW1vdmVfaXFfaGFuZGxlcihlamFiYmVyZF9sb2NhbCwgSG9zdCwgP05TX1ZDQVJEKSwKKyAg ICBnZW5faXFfaGFuZGxlcjpyZW1vdmVfaXFfaGFuZGxlcihlamFiYmVyZF9zbSwgSG9zdCwgP05T X1ZDQVJEKSwKKyAgICBlamFiYmVyZF9ob29rczpkZWxldGUoZGlzY29fc21fZmVhdHVyZXMsIEhv c3QsID9NT0RVTEUsIGdldF9zbV9mZWF0dXJlcywgNTApLAorICAgIFByb2MgPSBnZW5fbW9kOmdl dF9tb2R1bGVfcHJvYyhIb3N0LCA/UFJPQ05BTUUpLAorICAgIFByb2MgISBzdG9wLAorICAgIHt3 YWl0LCBQcm9jfS4KKworZ2V0X3NtX2ZlYXR1cmVzKHtlcnJvciwgX0Vycm9yfSA9IEFjYywgX0Zy b20sIF9UbywgX05vZGUsIF9MYW5nKSAtPgorICAgIEFjYzsKK2dldF9zbV9mZWF0dXJlcyhBY2Ms IF9Gcm9tLCBfVG8sIE5vZGUsIF9MYW5nKSAtPgorICAgIGNhc2UgTm9kZSBvZgorIAlbXSAtPgor IAkgICAgY2FzZSBBY2Mgb2YKKyAJCXtyZXN1bHQsIEZlYXR1cmVzfSAtPgorIAkJICAgIHtyZXN1 bHQsIFs/TlNfVkNBUkQgfCBGZWF0dXJlc119OworIAkJZW1wdHkgLT4KKyAJCSAgICB7cmVzdWx0 LCBbP05TX1ZDQVJEXX0KKyAJICAgIGVuZDsKKyAgCV8gLT4KKyAJICAgIEFjYworICAgIGVuZC4K KworcHJvY2Vzc19sb2NhbF9pcShfRnJvbSwgX1RvLCAjaXF7dHlwZSA9IFR5cGUsIGxhbmcgPSBM YW5nLCBzdWJfZWwgPSBTdWJFbH0gPSBJUSkgLT4KKyAgICBjYXNlIFR5cGUgb2YKKwlzZXQgLT4K KwkgICAgSVEjaXF7dHlwZSA9IGVycm9yLCBzdWJfZWwgPSBbU3ViRWwsID9FUlJfTk9UX0FMTE9X RURdfTsKKwlnZXQgLT4KKwkgICAgSVEjaXF7dHlwZSA9IHJlc3VsdCwKKwkJICBzdWJfZWwgPSBb e3htbGVsZW1lbnQsICJ2Q2FyZCIsCisJCQkgICAgIFt7InhtbG5zIiwgP05TX1ZDQVJEfV0sCisJ CQkgICAgIFt7eG1sZWxlbWVudCwgIkZOIiwgW10sCisJCQkgICAgICAgW3t4bWxjZGF0YSwgImVq YWJiZXJkIn1dfSwKKwkJCSAgICAgIHt4bWxlbGVtZW50LCAiVVJMIiwgW10sCisJCQkgICAgICAg W3t4bWxjZGF0YSwKKwkJCQkgImh0dHA6Ly9lamFiYmVyZC5qYWJiZXJzdHVkaW8ub3JnLyJ9XX0s CisJCQkgICAgICB7eG1sZWxlbWVudCwgIkRFU0MiLCBbXSwKKwkJCSAgICAgICBbe3htbGNkYXRh LAorCQkJCSB0cmFuc2xhdGU6dHJhbnNsYXRlKAorCQkJCSAgIExhbmcsCisJCQkJICAgIkVybGFu ZyBKYWJiZXIgU2VydmVyXG4iCisJCQkJICAgIkNvcHlyaWdodCAoYykgMjAwMi0yMDA1IEFsZXhl eSBTaGNoZXBpbiIpfV19LAorCQkJICAgICAge3htbGVsZW1lbnQsICJCREFZIiwgW10sCisJCQkg ICAgICAgW3t4bWxjZGF0YSwgIjIwMDItMTEtMTYifV19CisJCQkgICAgIF19XX0KKyAgICBlbmQu CisKK2ZpbmRfbGRhcF91c2VyKEhvc3QsIFVzZXIpIC0+CisgICAgQXR0ciA9IGVqYWJiZXJkX2Nv bmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF91aWRhdHRyLCBIb3N0fSksCisgICAgRmlsdGVyID0g ZWxkYXA6ZXF1YWxpdHlNYXRjaChBdHRyLCBVc2VyKSwKKyAgICBCYXNlID0gZWphYmJlcmRfY29u ZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX2Jhc2UsIEhvc3R9KSwKKyAgICBjYXNlIGVsZGFwOnNl YXJjaCgibW9kX3ZjYXJkX2FkIiwgW3tiYXNlLCBCYXNlfSwKKwkJCQkJIHtmaWx0ZXIsIEZpbHRl cn0sCisJCQkJCSB7YXR0cmlidXRlcywgW119XSkgb2YKKwkjZWxkYXBfc2VhcmNoX3Jlc3VsdHtl bnRyaWVzID0gW0UgfCBfXX0gLT4KKwkgICAgRTsKKwlfIC0+CisJICAgIGZhbHNlCisgICAgZW5k LgorCitpc19hdHRyaWJ1dGVfcmVhZF9hbGxvd2VkKE5hbWUsRnJvbSxUbykgLT4KKyAgICB0cnVl LgorCitsZGFwX2F0dHJpYnV0ZV90b192Y2FyZChQcmVmaXgse05hbWUsVmFsdWVzfSxGcm9tLFRv KSAtPgorICAgIGNhc2UgaXNfYXR0cmlidXRlX3JlYWRfYWxsb3dlZChOYW1lLEZyb20sVG8pIG9m IAorCXRydWUgLT4KKwkgICAgbGRhcF9sY2FfdG9fdmNhcmQoUHJlZml4LHN0cmluZ3ByZXA6dG9s b3dlcihOYW1lKSxWYWx1ZXMpOworCV8gLT4KKwkgICAgbm9uZQorICAgIGVuZC4KKworbGRhcF9s Y2FfdG9fdmNhcmQodkNhcmQsImRpc3BsYXluYW1lIixbVmFsdWV8X10pIC0+CisgICAge3htbGVs ZW1lbnQsIkZOIixbXSxbe3htbGNkYXRhLFZhbHVlfV19OworCitsZGFwX2xjYV90b192Y2FyZCh2 Q2FyZCwiY24iLFtWYWx1ZXxfXSkgLT4KKyAgICB7eG1sZWxlbWVudCwiTklDS05BTUUiLFtdLFt7 eG1sY2RhdGEsVmFsdWV9XX07CisKK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkLCJ0aXRsZSIsW1Zh bHVlfF9dKSAtPgorICAgIHt4bWxlbGVtZW50LCJUSVRMRSIsW10sW3t4bWxjZGF0YSxWYWx1ZX1d fTsKKworbGRhcF9sY2FfdG9fdmNhcmQodkNhcmQsInd3d2hvbWVwYWdlIixbVmFsdWV8X10pIC0+ CisgICAge3htbGVsZW1lbnQsIlVSTCIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKKworbGRhcF9s Y2FfdG9fdmNhcmQodkNhcmQsImRlc2NyaXB0aW9uIixbVmFsdWV8X10pIC0+CisgICAge3htbGVs ZW1lbnQsIkRFU0MiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07CisKK2xkYXBfbGNhX3RvX3ZjYXJk KHZDYXJkLCJ0ZWxlcGhvbmVudW1iZXIiLFtWYWx1ZXxfXSkgLT4KKyAgICB7eG1sZWxlbWVudCwi VEVMIixbXSxbe3htbGVsZW1lbnQsIlZPSUNFIixbXSxbXX0sCisJCQkgIHt4bWxlbGVtZW50LCJX T1JLIixbXSxbXX0sCisJCQkgIHt4bWxlbGVtZW50LCJOVU1CRVIiLFtdLFt7eG1sY2RhdGEsVmFs dWV9XX1dfTsKKworbGRhcF9sY2FfdG9fdmNhcmQodkNhcmQsIm1haWwiLFtWYWx1ZXxfXSkgLT4K KyAgICB7eG1sZWxlbWVudCwiRU1BSUwiLFtdLFt7eG1sZWxlbWVudCwiSU5URVJORVQiLFtdLFtd fSwKKwkJCSAgICB7eG1sZWxlbWVudCwiUFJFRiIsW10sW119LAorCQkJICAgIHt4bWxlbGVtZW50 LCJVU0VSSUQiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX1dfTsKKworbGRhcF9sY2FfdG9fdmNhcmQo dkNhcmROLCJzbiIsW1ZhbHVlfF9dKSAtPgorICAgIHt4bWxlbGVtZW50LCJGQU1JTFkiLFtdLFt7 eG1sY2RhdGEsVmFsdWV9XX07CisKK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkTiwiZ2l2ZW5uYW1l IixbVmFsdWV8X10pIC0+CisgICAge3htbGVsZW1lbnQsIkdJVkVOIixbXSxbe3htbGNkYXRhLFZh bHVlfV19OworCitsZGFwX2xjYV90b192Y2FyZCh2Q2FyZE4sImluaXRpYWxzIixbVmFsdWV8X10p IC0+CisgICAge3htbGVsZW1lbnQsIk1JRERMRSIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKKwor bGRhcF9sY2FfdG9fdmNhcmQodkNhcmRBZHIsInN0cmVldGFkZHJlc3MiLFtWYWx1ZXxfXSkgLT4K KyAgICB7eG1sZWxlbWVudCwiU1RSRUVUIixbXSxbe3htbGNkYXRhLFZhbHVlfV19OworbGRhcF9s Y2FfdG9fdmNhcmQodkNhcmRBZHIsImNvIixbVmFsdWV8X10pIC0+CisgICAge3htbGVsZW1lbnQs IkNUUlkiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07CitsZGFwX2xjYV90b192Y2FyZCh2Q2FyZEFk ciwibCIsW1ZhbHVlfF9dKSAtPgorICAgIHt4bWxlbGVtZW50LCJMT0NBTElUWSIsW10sW3t4bWxj ZGF0YSxWYWx1ZX1dfTsKK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkQWRyLCJzdCIsW1ZhbHVlfF9d KSAtPgorICAgIHt4bWxlbGVtZW50LCJSRUdJT04iLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07Cits ZGFwX2xjYV90b192Y2FyZCh2Q2FyZEFkciwicG9zdGFsY29kZSIsW1ZhbHVlfF9dKSAtPgorICAg IHt4bWxlbGVtZW50LCJQQ09ERSIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKK2xkYXBfbGNhX3Rv X3ZjYXJkKHZDYXJkTywiY29tcGFueSIsW1ZhbHVlfF9dKSAtPgorICAgIHt4bWxlbGVtZW50LCJP UkdOQU1FIixbXSxbe3htbGNkYXRhLFZhbHVlfV19OworCitsZGFwX2xjYV90b192Y2FyZCh2Q2Fy ZE8sImRlcGFydG1lbnQiLFtWYWx1ZXxfXSkgLT4KKyAgICB7eG1sZWxlbWVudCwiT1JHVU5JVCIs W10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKKworbGRhcF9sY2FfdG9fdmNhcmQoXyxfLF8pIC0+IG5v bmUuCisKK2xkYXBfYXR0cmlidXRlc190b192Y2FyZChBdHRyaWJ1dGVzLEZyb20sVG8pIC0+Cisg ICAgRWx0cyA9IGxpc3RzOm1hcChmdW4oQXR0cikgLT4KKwkJCSAgICAgbGRhcF9hdHRyaWJ1dGVf dG9fdmNhcmQodkNhcmQsQXR0cixGcm9tLFRvKQorCQkgICAgIGVuZCxBdHRyaWJ1dGVzKSwKKyAg ICBGRWx0cyA9IFsgWCB8fCBYIDwtIEVsdHMsIFggLz0gbm9uZSBdLAorICAgIE5FbHRzID0gbGlz dHM6bWFwKGZ1bihBdHRyKSAtPgorCQkJICAgICAgbGRhcF9hdHRyaWJ1dGVfdG9fdmNhcmQodkNh cmROLEF0dHIsRnJvbSxUbykKKwkJICAgICAgZW5kLEF0dHJpYnV0ZXMpLAorICAgIEZORWx0cyA9 IFsgWCB8fCBYIDwtIE5FbHRzLCBYIC89IG5vbmUgXSwKKyAgIAorICAgIEFEUkVsdHMgPSBsaXN0 czptYXAoZnVuKEF0dHIpIC0+CisJCQkgICAgICBsZGFwX2F0dHJpYnV0ZV90b192Y2FyZCh2Q2Fy ZEFkcixBdHRyLEZyb20sVG8pCisJCSAgICAgIGVuZCxBdHRyaWJ1dGVzKSwKKyAgICBGQURSRWx0 cyA9IFsgWCB8fCBYIDwtIEFEUkVsdHMsIFggLz0gbm9uZSBdLAorICAgIAorICAgIE9FbHRzID0g bGlzdHM6bWFwKGZ1bihBdHRyKSAtPgorCQkJICAgICAgbGRhcF9hdHRyaWJ1dGVfdG9fdmNhcmQo dkNhcmRPLEF0dHIsRnJvbSxUbykKKwkJICAgICAgZW5kLEF0dHJpYnV0ZXMpLAorICAgIEZPRWx0 cyA9IFsgWCB8fCBYIDwtIE9FbHRzLCBYIC89IG5vbmUgXSwKKyAgICBbe3htbGVsZW1lbnQsICJ2 Q2FyZCIsIFt7InhtbG5zIiwgP05TX1ZDQVJEfV0sCisgICAgICBsaXN0czphcHBlbmQoRkVsdHMs CisJCSAgIFt7eG1sZWxlbWVudCwiTiIsW10sRk5FbHRzfSwKKwkJICAgIHt4bWxlbGVtZW50LCJB RFIiLFtdLEZBRFJFbHRzfSwKKwkJICAgIHt4bWxlbGVtZW50LCJPUkciLFtdLEZPRWx0c31dKQor ICAgICB9XS4KKworcHJvY2Vzc19zbV9pcShGcm9tLCBUbywgI2lxe3R5cGUgPSBUeXBlLCBzdWJf ZWwgPSBTdWJFbH0gPSBJUSkgLT4KKyAgICBjYXNlIFR5cGUgb2YKKwlzZXQgLT4KKwkgICAgSVEj aXF7dHlwZSA9IGVycm9yLCBzdWJfZWwgPSBbU3ViRWwsID9FUlJfTk9UX0FMTE9XRURdfTsKKwln ZXQgLT4KKwkgICAgI2ppZHtsdXNlciA9IExVc2VyLCBsc2VydmVyID0gTFNlcnZlcn0gPSBUbywK KwkgICAgY2FzZSBmaW5kX2xkYXBfdXNlcihMU2VydmVyLCBMVXNlcikgb2YKKwkJI2VsZGFwX2Vu dHJ5e2F0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzfSAtPgorCQkgICAgVmNhcmQgPSBsZGFwX2F0dHJp YnV0ZXNfdG9fdmNhcmQoQXR0cmlidXRlcyxGcm9tLFRvKSwKKwkJICAgIElRI2lxe3R5cGUgPSBy ZXN1bHQsIHN1Yl9lbCA9IFZjYXJkfTsKKwkJXyAtPgorCQkgICAgSVEjaXF7dHlwZSA9IHJlc3Vs dCwgc3ViX2VsID0gW119CisJICAgIGVuZAorCWVuZC4KKworLWRlZmluZShUTEZJRUxEKFR5cGUs IExhYmVsLCBWYXIpLAorCXt4bWxlbGVtZW50LCAiZmllbGQiLCBbeyJ0eXBlIiwgVHlwZX0sCisJ CQkgICAgICAgeyJsYWJlbCIsIHRyYW5zbGF0ZTp0cmFuc2xhdGUoTGFuZywgTGFiZWwpfSwKKwkJ CSAgICAgICB7InZhciIsIFZhcn1dLCBbXX0pLgorCisKKy1kZWZpbmUoRk9STShKSUQpLAorCVt7 eG1sZWxlbWVudCwgImluc3RydWN0aW9ucyIsIFtdLAorCSAgW3t4bWxjZGF0YSwgdHJhbnNsYXRl OnRyYW5zbGF0ZShMYW5nLCAiWW91IG5lZWQgYW4geDpkYXRhIGNhcGFibGUgY2xpZW50IHRvIHNl YXJjaCIpfV19LAorCSB7eG1sZWxlbWVudCwgIngiLCBbeyJ4bWxucyIsID9OU19YREFUQX0sIHsi dHlwZSIsICJmb3JtIn1dLAorCSAgW3t4bWxlbGVtZW50LCAidGl0bGUiLCBbXSwKKwkgICAgW3t4 bWxjZGF0YSwgdHJhbnNsYXRlOnRyYW5zbGF0ZShMYW5nLCAiU2VhcmNoIHVzZXJzIGluICIpICsr CisJICAgICAgamxpYjpqaWRfdG9fc3RyaW5nKEpJRCl9XX0sCisJICAge3htbGVsZW1lbnQsICJp bnN0cnVjdGlvbnMiLCBbXSwKKwkgICAgW3t4bWxjZGF0YSwgdHJhbnNsYXRlOnRyYW5zbGF0ZShM YW5nLCAiRmlsbCBpbiBmaWVsZHMgdG8gc2VhcmNoICIKKwkJCQkJICAgICJmb3IgYW55IG1hdGNo aW5nIEphYmJlciBVc2VyIil9XX0sCisJICAgP1RMRklFTEQoInRleHQtc2luZ2xlIiwgIlVzZXIi LCAidXNlciIpLAorCSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJGdWxsIE5hbWUiLCAiZm4i KSwKKwkgICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiR2l2ZW4gTmFtZSIsICJnaXZlbiIpLAor CSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJNaWRkbGUgTmFtZSIsICJtaWRkbGUiKSwKKwkg ICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiRmFtaWx5IE5hbWUiLCAiZmFtaWx5IiksCisJICAg P1RMRklFTEQoInRleHQtc2luZ2xlIiwgIk5pY2tuYW1lIiwgIm5pY2tuYW1lIiksCisJICAgP1RM RklFTEQoInRleHQtc2luZ2xlIiwgIkJpcnRoZGF5IiwgImJkYXkiKSwKKwkgICA/VExGSUVMRCgi dGV4dC1zaW5nbGUiLCAiQ291bnRyeSIsICJjdHJ5IiksCisJICAgP1RMRklFTEQoInRleHQtc2lu Z2xlIiwgIkNpdHkiLCAibG9jYWxpdHkiKSwKKwkgICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAi ZW1haWwiLCAiZW1haWwiKSwKKwkgICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiT3JnYW5pemF0 aW9uIE5hbWUiLCAib3JnbmFtZSIpLAorCSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJPcmdh bml6YXRpb24gVW5pdCIsICJvcmd1bml0IikKKwkgIF19XSkuCisKKworCisKK2RvX3JvdXRlKFNl cnZlckhvc3QsIEZyb20sIFRvLCBQYWNrZXQpIC0+CisgICAgI2ppZHt1c2VyID0gVXNlciwgcmVz b3VyY2UgPSBSZXNvdXJjZX0gPSBUbywKKyAgICBpZgorCShVc2VyIC89ICIiKSBvciAoUmVzb3Vy Y2UgLz0gIiIpIC0+CisJICAgIEVyciA9IGpsaWI6bWFrZV9lcnJvcl9yZXBseShQYWNrZXQsID9F UlJfU0VSVklDRV9VTkFWQUlMQUJMRSksCisJICAgIGVqYWJiZXJkX3JvdXRlciAhIHtyb3V0ZSwg VG8sIEZyb20sIEVycn07CisJdHJ1ZSAtPgorCSAgICBJUSA9IGpsaWI6aXFfcXVlcnlfaW5mbyhQ YWNrZXQpLAorCSAgICBjYXNlIElRIG9mCisJCSNpcXt0eXBlID0gVHlwZSwgeG1sbnMgPSA/TlNf U0VBUkNILCBsYW5nID0gTGFuZywgc3ViX2VsID0gU3ViRWx9IC0+CisJCSAgICBjYXNlIFR5cGUg b2YKKwkJCXNldCAtPgorCQkJICAgIFhEYXRhRWwgPSBmaW5kX3hkYXRhX2VsKFN1YkVsKSwKKwkJ CSAgICBjYXNlIFhEYXRhRWwgb2YKKwkJCQlmYWxzZSAtPgorCQkJCSAgICBFcnIgPSBqbGliOm1h a2VfZXJyb3JfcmVwbHkoCisJCQkJCSAgICBQYWNrZXQsID9FUlJfQkFEX1JFUVVFU1QpLAorCQkJ CSAgICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoVG8sIEZyb20sIEVycik7CisJCQkJXyAtPgorCQkJ CSAgICBYRGF0YSA9IGpsaWI6cGFyc2VfeGRhdGFfc3VibWl0KFhEYXRhRWwpLAorCQkJCSAgICBj YXNlIFhEYXRhIG9mCisJCQkJCWludmFsaWQgLT4KKwkJCQkJICAgIEVyciA9IGpsaWI6bWFrZV9l cnJvcl9yZXBseSgKKwkJCQkJCSAgICBQYWNrZXQsCisJCQkJCQkgICAgP0VSUl9CQURfUkVRVUVT VCksCisJCQkJCSAgICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoVG8sIEZyb20sCisJCQkJCQkJCSAg RXJyKTsKKwkJCQkJXyAtPgorCQkJCQkgICAgUmVzSVEgPQorCQkJCQkJSVEjaXF7CisJCQkJCQkg IHR5cGUgPSByZXN1bHQsCisJCQkJCQkgIHN1Yl9lbCA9CisJCQkJCQkgIFt7eG1sZWxlbWVudCwK KwkJCQkJCSAgICAicXVlcnkiLAorCQkJCQkJICAgIFt7InhtbG5zIiwgP05TX1NFQVJDSH1dLAor CQkJCQkJICAgIFt7eG1sZWxlbWVudCwgIngiLAorCQkJCQkJICAgICAgW3sieG1sbnMiLCA/TlNf WERBVEF9LAorCQkJCQkJICAgICAgIHsidHlwZSIsICJyZXN1bHQifV0sCisJCQkJCQkgICAgICBz ZWFyY2hfcmVzdWx0KExhbmcsIFRvLCBTZXJ2ZXJIb3N0LCBYRGF0YSkKKwkJCQkJCSAgICAgfV19 XX0sCisJCQkJCSAgICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoCisJCQkJCSAgICAgIFRvLCBGcm9t LCBqbGliOmlxX3RvX3htbChSZXNJUSkpCisJCQkJICAgIGVuZAorCQkJICAgIGVuZDsKKwkJCWdl dCAtPgorCQkJICAgIFJlc0lRID0gSVEjaXF7dHlwZSA9IHJlc3VsdCwKKwkJCQkJICBzdWJfZWwg PSBbe3htbGVsZW1lbnQsCisJCQkJCQkgICAgICJxdWVyeSIsCisJCQkJCQkgICAgIFt7InhtbG5z IiwgP05TX1NFQVJDSH1dLAorCQkJCQkJICAgICA/Rk9STShUbykKKwkJCQkJCSAgICB9XX0sCisJ CQkgICAgZWphYmJlcmRfcm91dGVyOnJvdXRlKFRvLAorCQkJCQkJICBGcm9tLAorCQkJCQkJICBq bGliOmlxX3RvX3htbChSZXNJUSkpCisJCSAgICBlbmQ7CisJCSNpcXt0eXBlID0gVHlwZSwgeG1s bnMgPSA/TlNfRElTQ09fSU5GTywgc3ViX2VsID0gU3ViRWx9IC0+CisJCSAgICBjYXNlIFR5cGUg b2YKKwkJCXNldCAtPgorCQkJICAgIEVyciA9IGpsaWI6bWFrZV9lcnJvcl9yZXBseSgKKwkJCQkg ICAgUGFja2V0LCA/RVJSX05PVF9BTExPV0VEKSwKKwkJCSAgICBlamFiYmVyZF9yb3V0ZXI6cm91 dGUoVG8sIEZyb20sIEVycik7CisJCQlnZXQgLT4KKwkJCSAgICBSZXNJUSA9CisJCQkJSVEjaXF7 dHlwZSA9IHJlc3VsdCwKKwkJCQkgICAgICBzdWJfZWwgPSBbe3htbGVsZW1lbnQsCisJCQkJCQkg InF1ZXJ5IiwKKwkJCQkJCSBbeyJ4bWxucyIsID9OU19ESVNDT19JTkZPfV0sCisJCQkJCQkgW3t4 bWxlbGVtZW50LCAiaWRlbnRpdHkiLAorCQkJCQkJICAgW3siY2F0ZWdvcnkiLCAiZGlyZWN0b3J5 In0sCisJCQkJCQkgICAgeyJ0eXBlIiwgInVzZXIifSwKKwkJCQkJCSAgICB7Im5hbWUiLAorCQkJ CQkJICAgICAidkNhcmQgVXNlciBTZWFyY2gifV0sCisJCQkJCQkgICBbXX0sCisJCQkJCQkgIHt4 bWxlbGVtZW50LCAiZmVhdHVyZSIsCisJCQkJCQkgICBbeyJ2YXIiLCA/TlNfU0VBUkNIfV0sIFtd fSwKKwkJCQkJCSAge3htbGVsZW1lbnQsICJmZWF0dXJlIiwKKwkJCQkJCSAgIFt7InZhciIsID9O U19WQ0FSRH1dLCBbXX0KKwkJCQkJCSBdCisJCQkJCQl9XX0sCisJCQkgICAgZWphYmJlcmRfcm91 dGVyOnJvdXRlKFRvLAorCQkJCQkJICBGcm9tLAorCQkJCQkJICBqbGliOmlxX3RvX3htbChSZXNJ USkpCisJCSAgICBlbmQ7CisJCSNpcXt0eXBlID0gVHlwZSwgeG1sbnMgPSA/TlNfRElTQ09fSVRF TVMsIHN1Yl9lbCA9IFN1YkVsfSAtPgorCQkgICAgY2FzZSBUeXBlIG9mCisJCQlzZXQgLT4KKwkJ CSAgICBFcnIgPSBqbGliOm1ha2VfZXJyb3JfcmVwbHkoCisJCQkJICAgIFBhY2tldCwgP0VSUl9O T1RfQUxMT1dFRCksCisJCQkgICAgZWphYmJlcmRfcm91dGVyOnJvdXRlKFRvLCBGcm9tLCBFcnIp OworCQkJZ2V0IC0+CisJCQkgICAgUmVzSVEgPSAKKwkJCQlJUSNpcXt0eXBlID0gcmVzdWx0LAor CQkJCSAgICAgIHN1Yl9lbCA9IFt7eG1sZWxlbWVudCwKKwkJCQkJCSAicXVlcnkiLAorCQkJCQkJ IFt7InhtbG5zIiwgP05TX0RJU0NPX0lURU1TfV0sCisJCQkJCQkgW119XX0sCisJCQkgICAgZWph YmJlcmRfcm91dGVyOnJvdXRlKFRvLAorCQkJCQkJICBGcm9tLAorCQkJCQkJICBqbGliOmlxX3Rv X3htbChSZXNJUSkpCisJCSAgICBlbmQ7CisJCSNpcXt0eXBlID0gZ2V0LCB4bWxucyA9ID9OU19W Q0FSRCwgbGFuZyA9IExhbmd9IC0+CisJCSAgICBSZXNJUSA9IAorCQkJSVEjaXF7dHlwZSA9IHJl c3VsdCwKKwkJCSAgICAgIHN1Yl9lbCA9IFt7eG1sZWxlbWVudCwKKwkJCQkJICJ2Q2FyZCIsCisJ CQkJCSBbeyJ4bWxucyIsID9OU19WQ0FSRH1dLAorCQkJCQkgaXFfZ2V0X3ZjYXJkKExhbmcpfV19 LAorCQkgICAgZWphYmJlcmRfcm91dGVyOnJvdXRlKFRvLAorCQkJCQkgIEZyb20sCisJCQkJCSAg amxpYjppcV90b194bWwoUmVzSVEpKTsKKwkJXyAtPgorCQkgICAgRXJyID0gamxpYjptYWtlX2Vy cm9yX3JlcGx5KFBhY2tldCwKKwkJCQkJCT9FUlJfU0VSVklDRV9VTkFWQUlMQUJMRSksCisJCSAg ICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoVG8sIEZyb20sIEVycikKKwkgICAgZW5kCisgICAgZW5k LgorCitpcV9nZXRfdmNhcmQoTGFuZykgLT4KKyAgICBbe3htbGVsZW1lbnQsICJGTiIsIFtdLAor ICAgICAgW3t4bWxjZGF0YSwgImVqYWJiZXJkL21vZF92Y2FyZCJ9XX0sCisgICAgIHt4bWxlbGVt ZW50LCAiVVJMIiwgW10sCisgICAgICBbe3htbGNkYXRhLAorICAgICAgICAiaHR0cDovL2VqYWJi ZXJkLmphYmJlcnN0dWRpby5vcmcvIn1dfSwKKyAgICAge3htbGVsZW1lbnQsICJERVNDIiwgW10s CisgICAgICBbe3htbGNkYXRhLCB0cmFuc2xhdGU6dHJhbnNsYXRlKAorCQkgICAgTGFuZywKKwkJ ICAgICJlamFiYmVyZCB2Q2FyZCBtb2R1bGVcbiIKKwkJICAgICJDb3B5cmlnaHQgKGMpIDIwMDMt MjAwNSBBbGV4ZXkgU2hjaGVwaW4iKX1dfV0uCisKK2ZpbmRfeGRhdGFfZWwoe3htbGVsZW1lbnQs IF9OYW1lLCBfQXR0cnMsIFN1YkVsc30pIC0+CisgICAgZmluZF94ZGF0YV9lbDEoU3ViRWxzKS4K KworZmluZF94ZGF0YV9lbDEoW10pIC0+CisgICAgZmFsc2U7CitmaW5kX3hkYXRhX2VsMShbe3ht bGVsZW1lbnQsIE5hbWUsIEF0dHJzLCBTdWJFbHN9IHwgRWxzXSkgLT4KKyAgICBjYXNlIHhtbDpn ZXRfYXR0cl9zKCJ4bWxucyIsIEF0dHJzKSBvZgorCT9OU19YREFUQSAtPgorCSAgICB7eG1sZWxl bWVudCwgTmFtZSwgQXR0cnMsIFN1YkVsc307CisJXyAtPgorCSAgICBmaW5kX3hkYXRhX2VsMShF bHMpCisgICAgZW5kOworZmluZF94ZGF0YV9lbDEoW18gfCBFbHNdKSAtPgorICAgIGZpbmRfeGRh dGFfZWwxKEVscykuCisKKy1kZWZpbmUoTEZJRUxEKExhYmVsLCBWYXIpLAorCXt4bWxlbGVtZW50 LCAiZmllbGQiLCBbeyJsYWJlbCIsIHRyYW5zbGF0ZTp0cmFuc2xhdGUoTGFuZywgTGFiZWwpfSwK KwkJCSAgICAgICB7InZhciIsIFZhcn1dLCBbXX0pLgorCitzZWFyY2hfcmVzdWx0KExhbmcsIEpJ RCwgU2VydmVySG9zdCwgRGF0YSkgLT4KKyAgICBbe3htbGVsZW1lbnQsICJ0aXRsZSIsIFtdLAor ICAgICAgW3t4bWxjZGF0YSwgdHJhbnNsYXRlOnRyYW5zbGF0ZShMYW5nLCAiUmVzdWx0cyBvZiBz ZWFyY2ggaW4gIikgKysKKwlqbGliOmppZF90b19zdHJpbmcoSklEKX1dfSwKKyAgICAge3htbGVs ZW1lbnQsICJyZXBvcnRlZCIsIFtdLAorICAgICAgWz9MRklFTEQoIkpJRCIsICJqaWQiKSwKKyAg ICAgICA/TEZJRUxEKCJGdWxsIE5hbWUiLCAiZm4iKSwKKyAgICAgICA/TEZJRUxEKCJHaXZlbiBO YW1lIiwgImdpdmVuIiksCisgICAgICAgP0xGSUVMRCgiTWlkZGxlIE5hbWUiLCAibWlkZGxlIiks CisgICAgICAgP0xGSUVMRCgiRmFtaWx5IE5hbWUiLCAiZmFtaWx5IiksCisgICAgICAgP0xGSUVM RCgiTmlja25hbWUiLCAibmlja25hbWUiKSwKKyAgICAgICA/TEZJRUxEKCJCaXJ0aGRheSIsICJi ZGF5IiksCisgICAgICAgP0xGSUVMRCgiQ291bnRyeSIsICJjdHJ5IiksCisgICAgICAgP0xGSUVM RCgiQ2l0eSIsICJsb2NhbGl0eSIpLAorICAgICAgID9MRklFTEQoImVtYWlsIiwgImVtYWlsIiks CisgICAgICAgP0xGSUVMRCgiT3JnYW5pemF0aW9uIE5hbWUiLCAib3JnbmFtZSIpLAorICAgICAg ID9MRklFTEQoIk9yZ2FuaXphdGlvbiBVbml0IiwgIm9yZ3VuaXQiKQorICAgICAgXX1dICsrIGxp c3RzOm1hcChmdW4oRSkgLT4gCisJCQkgICAgICAgcmVjb3JkX3RvX2l0ZW0oRSNlbGRhcF9lbnRy eS5hdHRyaWJ1dGVzKQorCQkgICAgICAgZW5kLCBzZWFyY2goU2VydmVySG9zdCwgRGF0YSkpLgor CistZGVmaW5lKEZJRUxEKFZhciwgVmFsKSwKKwl7eG1sZWxlbWVudCwgImZpZWxkIiwgW3sidmFy IiwgVmFyfV0sCisJIFt7eG1sZWxlbWVudCwgInZhbHVlIiwgW10sCisJICAgW3t4bWxjZGF0YSwg VmFsfV19XX0pLgorCitjYXNlX2V4YWN0X2NvbXBhcmUobm9uZSxfKSAtPgorICAgIGZhbHNlOwor Y2FzZV9leGFjdF9jb21wYXJlKF8sbm9uZSkgLT4KKyAgICBmYWxzZTsKK2Nhc2VfZXhhY3RfY29t cGFyZShYLFkpIC0+CisgICAgWCA+IFkuCisKK2xkYXBfc29ydF9lbnRyaWVzKEwpIC0+CisgICAg bGlzdHM6c29ydChmdW4oRTEsRTIpIC0+CisJCSAgICAgICBjYXNlX2V4YWN0X2NvbXBhcmUobGRh cF9nZXRfdmFsdWUoRTEsImNuIiksbGRhcF9nZXRfdmFsdWUoRTIsImNuIikpCisJICAgICAgIGVu ZCxMKS4KKworbGRhcF9nZXRfdmFsdWUoRSxBdHRyaWJ1dGUpIC0+CisgICAgI2VsZGFwX2VudHJ5 e2F0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzfSA9IEUsCisgICAgY2FzZSBsaXN0czpmaWx0ZXIoZnVu KHtBLF99KSAtPgorCQkJICAgICAgc3RyaW5nOmVxdWFsKEEsQXR0cmlidXRlKQorCQkgICAgICBl bmQsQXR0cmlidXRlcykgb2YKKwlbe0F0dHIsW1ZhbHVlfF9dfV0gLT4KKwkgICAgVmFsdWU7CisJ XyAtPiAKKwkgICAgbm9uZQorICAgIGVuZC4KKworbGRhcF9hdHRyaWJ1dGVfdG9faXRlbSgic2Ft YWNjb3VudG5hbWUiLFZhbHVlKSAtPgorICAgIFsKKyAgICAgP0ZJRUxEKCJqaWQiLFZhbHVlICsr ICJAIiArKyA/TVlOQU1FKSwKKyAgICAgP0ZJRUxEKCJ1aWQiLFZhbHVlKQorICAgIF07CisKK2xk YXBfYXR0cmlidXRlX3RvX2l0ZW0oImNuIixWYWx1ZSkgLT4KKyAgICBbCisgICAgID9GSUVMRCgi bmlja25hbWUiLFZhbHVlKQorICAgIF07CisKK2xkYXBfYXR0cmlidXRlX3RvX2l0ZW0oImRpc3Bs YXluYW1lIixWYWx1ZSkgLT4KKyAgICBbCisgICAgID9GSUVMRCgiZm4iLFZhbHVlKQorICAgIF07 CisKK2xkYXBfYXR0cmlidXRlX3RvX2l0ZW0oInNuIixWYWx1ZSkgLT4KKyAgICBbCisgICAgID9G SUVMRCgiZmFtaWx5IixWYWx1ZSkKKyAgICBdOworbGRhcF9hdHRyaWJ1dGVfdG9faXRlbSgiY28i LFZhbHVlKSAtPgorICAgIFsKKyAgICAgP0ZJRUxEKCJjdHJ5IixWYWx1ZSkKKyAgICBdOworbGRh cF9hdHRyaWJ1dGVfdG9faXRlbSgibCIsVmFsdWUpIC0+CisgICAgWworICAgICA/RklFTEQoImxv Y2FsaXR5IixWYWx1ZSkKKyAgICBdOworCitsZGFwX2F0dHJpYnV0ZV90b19pdGVtKCJnaXZlbm5h bWUiLFZhbHVlKSAtPgorICAgIFsKKyAgICAgP0ZJRUxEKCJnaXZlbiIsVmFsdWUpCisgICAgXTsK KworbGRhcF9hdHRyaWJ1dGVfdG9faXRlbSgiaW5pdGlhbHMiLFZhbHVlKSAtPgorICAgIFsKKyAg ICAgP0ZJRUxEKCJtaWRkbGUiLFZhbHVlKQorICAgIF07CisKK2xkYXBfYXR0cmlidXRlX3RvX2l0 ZW0oIm1haWwiLFZhbHVlKSAtPgorICAgIFsKKyAgICAgP0ZJRUxEKCJlbWFpbCIsVmFsdWUpCisg ICAgXTsKKworbGRhcF9hdHRyaWJ1dGVfdG9faXRlbSgiY29tcGFueSIsVmFsdWUpIC0+CisgICAg WworICAgICA/RklFTEQoIm9yZ25hbWUiLFZhbHVlKQorICAgIF07CisKK2xkYXBfYXR0cmlidXRl X3RvX2l0ZW0oImRlcGFydG1lbnQiLFZhbHVlKSAtPgorICAgIFsKKyAgICAgP0ZJRUxEKCJvcmd1 bml0IixWYWx1ZSkKKyAgICBdOworCitsZGFwX2F0dHJpYnV0ZV90b19pdGVtKF8sXykgLT4KKyAg ICBbbm9uZV0uCisKK3JlY29yZF90b19pdGVtKEF0dHJpYnV0ZXMpIC0+CisgICAgTGlzdCA9IGxp c3RzOmFwcGVuZChsaXN0czptYXAoZnVuKHtBdHRyLFtWYWx1ZXxfXX0pIC0+IAorCQkJCQkgIGxk YXBfYXR0cmlidXRlX3RvX2l0ZW0oc3RyaW5ncHJlcDp0b2xvd2VyKEF0dHIpLFZhbHVlKQorCQkJ CSAgZW5kLEF0dHJpYnV0ZXMpKSwKKyAgICBGTGlzdCA9IFtYIHx8IFggPC0gTGlzdCwgWCAvPSBu b25lXSwKKyAgICB7eG1sZWxlbWVudCwgIml0ZW0iLCBbXSxGTGlzdH0uCisKK3NlYXJjaChMU2Vy dmVyLCBEYXRhKSAtPgorJSAgICBBZEdyb3VwID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9v cHRpb24oe2FkX2dyb3VwLCBMU2VydmVyfSksCisgICAgRmlsdGVyRGVmID0gbWFrZV9maWx0ZXIo RGF0YSksCisgICAgRmlsdGVyUGVyc29uID0gIGVsZGFwOmVxdWFsaXR5TWF0Y2goIm9iamVjdENh dGVnb3J5IiwgInBlcnNvbiIpLAorICAgIEZpbHRlckNvbXAgPSBlbGRhcDplcXVhbGl0eU1hdGNo KCJvYmplY3RDbGFzcyIsICJjb21wdXRlciIpLAorICAgIEZpbHRlckhpZGRlbiA9IGVsZGFwOmVx dWFsaXR5TWF0Y2goImRlc2NyaXB0aW9uIiwgImhpZGRlbiIpLAorJSAgICBGaWx0ZXJHcm91cCA9 IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm1lbWJlck9mIiwgQWRHcm91cCksCisgICAgRmlsdGVyTGl2 ZSA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goInVzZXJBY2NvdW50Q29udHJvbCIsICI2NjA1MCIpLAor ICAgIEZpbHRlciA9IGVsZGFwOidhbmQnKFsKKwkJCSAgRmlsdGVyRGVmLAorCQkJICBGaWx0ZXJQ ZXJzb24sCislCQkJICBGaWx0ZXJHcm91cCwKKwkJCSAgZWxkYXA6J25vdCcoRmlsdGVyQ29tcCks CisJCQkgIGVsZGFwOidub3QnKEZpbHRlckhpZGRlbiksCisJCQkgIGVsZGFwOidub3QnKEZpbHRl ckxpdmUpXSksCisgICAgQmFzZSA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHth ZF9iYXNlLCBMU2VydmVyfSksCisgICAgVUlEQXR0ciA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9j YWxfb3B0aW9uKHthZF91aWRhdHRyLCBMU2VydmVyfSksCisgICAgY2FzZSBlbGRhcDpzZWFyY2go Im1vZF92Y2FyZF9hZCIsW3tiYXNlLCBCYXNlfSwKKwkJCQkJe2ZpbHRlciwgRmlsdGVyfSwKKwkJ CQkJe2F0dHJpYnV0ZXMsIFtdfV0pIG9mCisJI2VsZGFwX3NlYXJjaF9yZXN1bHR7ZW50cmllcyA9 IEV9IC0+CisJICAgIFtYIHx8IFggPC0gRSwKKwkJICBlamFiYmVyZF9hdXRoOmlzX3VzZXJfZXhp c3RzKAorCQkgICAgbGRhcF9nZXRfdmFsdWUoWCwgVUlEQXR0ciksIExTZXJ2ZXIpXTsKKwlFcnIg LT4KKwkgICAgP0VSUk9SX01TRygiQmFkIHNlYXJjaDogfnAiLCBbW0xTZXJ2ZXIsIHtiYXNlLCBC YXNlfSwKKwkJCQkJe2ZpbHRlciwgRmlsdGVyfSwKKwkJCQkJe2F0dHJpYnV0ZXMsIFtdfV1dKQor ICAgIGVuZC4KKworCittYWtlX2ZpbHRlcihEYXRhKSAtPgorICAgIEZpbHRlciA9IFtYIHx8IFgg PC0gbGlzdHM6bWFwKGZ1bihSKSAtPiAKKwkJCQkJICBtYWtlX2Fzc2VydGlvbihSKQorCQkJCSAg ZW5kLCBEYXRhKSwKKwkJICAgWCAvPSBub25lIF0sCisgICAgY2FzZSBGaWx0ZXIgb2YKKwlbRl0g LT4gCisJICAgIEY7CisJXyAtPgorCSAgICBlbGRhcDonYW5kJyhGaWx0ZXIpCisgICAgZW5kLgor CisKK21ha2VfYXNzZXJ0aW9uKCJnaXZlbk5hbWUiLFZhbHVlKSAtPgorICAgIGVsZGFwOnN1YnN0 cmluZ3MoImdpdmVuTmFtZSIsW3thbnksVmFsdWV9XSk7CisKK21ha2VfYXNzZXJ0aW9uKCJjbiIs VmFsdWUpIC0+CisgICAgZWxkYXA6c3Vic3RyaW5ncygiY24iLFt7YW55LFZhbHVlfV0pOworCitt YWtlX2Fzc2VydGlvbigic24iLFZhbHVlKSAtPgorICAgIGVsZGFwOnN1YnN0cmluZ3MoInNuIixb e2FueSxWYWx1ZX1dKTsKKworbWFrZV9hc3NlcnRpb24oQXR0ciwgVmFsdWUpIC0+CisgICAgZWxk YXA6ZXF1YWxpdHlNYXRjaChBdHRyLFZhbHVlKS4KKworbWFrZV9hc3NlcnRpb24oe1NWYXIsIFtW YWxdfSkgLT4KKyAgICBMQXR0ciA9IGxkYXBfYXR0cmlidXRlKFNWYXIpLAorICAgIGNhc2UgTEF0 dHIgb2YKKwlub25lIC0+CisJICAgIG5vbmU7CisJXyAtPgorCSAgICBpZiAKKwkJaXNfbGlzdChW YWwpIGFuZCAoVmFsIC89ICIiKSAtPgorCQkgICAgbWFrZV9hc3NlcnRpb24oTEF0dHIsVmFsKTsK KwkJdHJ1ZSAtPgorCQkgICAgbm9uZQorCSAgICBlbmQKKyAgICBlbmQuCisKK2xkYXBfYXR0cmli dXRlKCJ1c2VyIikgLT4KKyAgICAic2FtYWNjb3VudG5hbWUiOworCitsZGFwX2F0dHJpYnV0ZSgi Zm4iKSAtPgorICAgICJjbiI7CisKK2xkYXBfYXR0cmlidXRlKCJmYW1pbHkiKSAtPgorICAgICJz biI7CisKK2xkYXBfYXR0cmlidXRlKCJnaXZlbiIpIC0+CisgICAgImdpdmVuTmFtZSI7CisKK2xk YXBfYXR0cmlidXRlKCJtaWRkbGUiKSAtPgorICAgICJpbml0aWFscyI7CisKK2xkYXBfYXR0cmli dXRlKCJlbWFpbCIpIC0+CisgICAgIm1haWwiOworCitsZGFwX2F0dHJpYnV0ZSgib3JnbmFtZSIp IC0+CisgICAgImNvbXBhbnkiOworCitsZGFwX2F0dHJpYnV0ZSgib3JndW5pdCIpIC0+CisgICAg ImRlcGFydG1lbnQiOworCitsZGFwX2F0dHJpYnV0ZShfKSAtPgorICAgIG5vbmUuCisKK3JlbW92 ZV91c2VyKFVzZXIpIC0+CisgICAgdHJ1ZS4KKwoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3Vy Y2VzCmluZGV4IGU2OWRlMjkuLmI1M2E4ODIgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291 cmNlcwpAQCAtMCwwICsxIEBACitlZjZmYWU0YTNmOWM3ZjgwN2YyMWU5Y2QzZGFlMTk1YiAgZWph YmJlcmQtMS4xLjEudGFyLmd6Cg==