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: matiwari To: git-commits@fedoraproject.org Subject: [rpms/ibus-speech-to-text] rawhide: update to release 1.1.0 Date: Mon, 21 Sep 2026 21:59:08 GMT Message-ID: <179002794845.1.11251679282596415016.rpms-ibus-speech-to-text-38f002b367ae@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus-speech-to-text X-Git-Branch: rawhide X-Git-Rev: 38f002b367ae842015cc569d091ed0ae9bf17f62 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cy1zcGVlY2gt dG8tdGV4dApCcmFuY2ggOiByYXdoaWRlCkNvbW1pdCA6IDM4ZjAwMmIzNjdhZTg0MjAxNWNjNTY5 ZDA5MWVkMGFlOWJmMTdmNjIKQXV0aG9yIDogbWF0aXdhcmkgPG1hdGl3YXJpQHJlZGhhdC5jb20+ CkRhdGUgICA6IDIwMjYtMDktMjJUMDI6NTk6MjkrMDU6MzAKU3RhdHMgIDogKzgvLTE0NjkgaW4g NCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvaWJ1 cy1zcGVlY2gtdG8tdGV4dC9jLzM4ZjAwMmIzNjdhZTg0MjAxNWNjNTY5ZDA5MWVkMGFlOWJmMTdm NjI/YnJhbmNoPXJhd2hpZGUKCkxvZzoKdXBkYXRlIHRvIHJlbGVhc2UgMS4xLjAKCi0tLQpkaWZm IC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggOThhMjdlMy4uMjE3MjNjNiAx MDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC01LDMgKzUsNCBAQAog LzAuOC4wLnRhci5negogLzAuOS4wLnRhci5negogLzEuMC4wLnRhci5negorLzEuMS4wLnRhci5n egoKZGlmZiAtLWdpdCBhL2lidXMtc3BlZWNoLXRvLXRleHQuc3BlYyBiL2lidXMtc3BlZWNoLXRv LXRleHQuc3BlYwppbmRleCBmODU2MDcxLi45ZDY2Y2U4IDEwMDY0NAotLS0gYS9pYnVzLXNwZWVj aC10by10ZXh0LnNwZWMKKysrIGIvaWJ1cy1zcGVlY2gtdG8tdGV4dC5zcGVjCkBAIC0xLDEzICsx LDEyIEBACiAlZ2xvYmFsIGRlYnVnX3BhY2thZ2UgJXtuaWx9CiBOYW1lOiAgIGlidXMtc3BlZWNo LXRvLXRleHQKLVZlcnNpb246ICAxLjAuMAorVmVyc2lvbjogIDEuMS4wCiBSZWxlYXNlOiAgMSV7 P2Rpc3R9CiBTdW1tYXJ5OiAgQSBzcGVlY2ggdG8gdGV4dCBJQnVzIElucHV0IE1ldGhvZCB1c2lu ZyBWT1NLCiBFeGNsdWRlQXJjaDogJXtpeDg2fQogTGljZW5zZTogIEdQTC0zLjAtb3ItbGF0ZXIK IFVSTDogICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9NYW5pc2g3MDkzL0lCdXMtU3BlZWNoLVRvLVRl eHQKIFNvdXJjZTA6IGh0dHBzOi8vZ2l0aHViLmNvbS9NYW5pc2g3MDkzL0lCdXMtU3BlZWNoLVRv LVRleHQvYXJjaGl2ZS9yZWZzL3RhZ3MvJXt2ZXJzaW9ufS50YXIuZ3oKLVBhdGNoMDogaWJ1cy1z dHQtMV8wXzAtYmFja2VuZC1ub3RpZnkucGF0Y2gKIAogQnVpbGRSZXF1aXJlczogIG1lc29uCiBC dWlsZFJlcXVpcmVzOiAgcHl0aG9uMy1kZXZlbApAQCAtMjcsNiArMjYsNyBAQCBSZXF1aXJlczog ICAgZ3N0LXZvc2sgPj0gMC4zLjAKIFJlcXVpcmVzOiAgICBndGs0CiBSZXF1aXJlczogICAgZGNv bmYKIFJlcXVpcmVzOiAgICBweXRob24zLXB5d2hpc3BlcmNwcAorUmVxdWlyZXM6ICAgIGxpYmFk d2FpdGEKIAogJWRlc2NyaXB0aW9uCiBBIHNwZWVjaCB0byB0ZXh0IElCdXMgSW5wdXQgTWV0aG9k IHVzaW5nIFZPU0sgYW5kIFdoaXNwZXJDcHAKQEAgLTM0LDcgKzM0LDYgQEAgd2hpY2ggY2FuIGJl IHVzZWQgdG8gZGljdGF0ZSB0ZXh0IHRvIGFueSBhcHBsaWNhdGlvbgogCiAlcHJlcAogJXNldHVw IC1xIC1uIElCdXMtU3BlZWNoLVRvLVRleHQtJXt2ZXJzaW9ufQotJXBhdGNoIDAgLXAxIC1iIC5v cmlnfgogCiAlYnVpbGQKICVtZXNvbgpAQCAtNTcsNiArNTYsMTAgQEAgZGVza3RvcC1maWxlLXZh bGlkYXRlICV7YnVpbGRyb290fS8le19kYXRhZGlyfS9hcHBsaWNhdGlvbnMvaWJ1cy1zZXR1cC1z dHQuZGVza3QKICV7X2RhdGFkaXJ9L2dsaWItMi4wL3NjaGVtYXMvb3JnLmZyZWVkZXNrdG9wLmli dXMuZW5naW5lLnN0dC5nc2NoZW1hLnhtbAogCiAlY2hhbmdlbG9nCisqIFR1ZSBTZXAgMjIgMjAy NiBNYW5pc2ggVGl3YXJpIDxtYXRpd2FyaUByZWRoYXQuY29tPiAxLjEuMC0xCistIFVwZGF0ZSB0 byByZWxlYXNlIDEuMS4wCistIGh0dHBzOi8vZ2l0aHViLmNvbS9NYW5pc2g3MDkzL0lCdXMtU3Bl ZWNoLVRvLVRleHQvcmVsZWFzZXMvdGFnLzEuMS4wCisKICogRnJpIEF1ZyA3IDIwMjYgTWFuaXNo IFRpd2FyaSA8bWF0aXdhcmlAcmVkaGF0LmNvbT4gMS4wLjAtMQogLSBVcGRhdGUgdG8gcmVsZWFz ZSAxLjAuMAogLSBBZGQgaWJ1cy1zdHQtMV8wXzAtYmFja2VuZC1ub3RpZnkucGF0Y2ggdG8gc3Vw cG9ydCBiYWNrZW5kIG5vdGlmaWNhdGlvbiBkaWFsb2cKCmRpZmYgLS1naXQgYS9pYnVzLXN0dC0x XzBfMC1iYWNrZW5kLW5vdGlmeS5wYXRjaCBiL2lidXMtc3R0LTFfMF8wLWJhY2tlbmQtbm90aWZ5 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMWQ5YzI4Li4wMDAwMDAwCi0t LSBhL2lidXMtc3R0LTFfMF8wLWJhY2tlbmQtbm90aWZ5LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMTQ2NSArMCwwIEBACi1kaWZmIC11ck4gSUJ1cy1TcGVlY2gtVG8tVGV4dC0xLjAuMC5vcmln L2VuZ2luZS9tZXNvbi5idWlsZCBJQnVzLVNwZWVjaC1Uby1UZXh0LTEuMC4wL2VuZ2luZS9tZXNv bi5idWlsZAotLS0tIElCdXMtU3BlZWNoLVRvLVRleHQtMS4wLjAub3JpZy9lbmdpbmUvbWVzb24u YnVpbGQJMjAyNi0wNy0xNCAwMzowMDowMC4wMDAwMDAwMDAgKzA1MzAKLSsrKyBJQnVzLVNwZWVj aC1Uby1UZXh0LTEuMC4wL2VuZ2luZS9tZXNvbi5idWlsZAkyMDI2LTA4LTA3IDAxOjQyOjQzLjAy MTY3MTIxMiArMDUzMAotQEAgLTE4LDYgKzE4LDcgQEAKLSAgICAgJ3N0dHNob3J0Y3V0ZGlhbG9n LnB5JywKLSAgICAgJ3N0dHV0dGVyYW5jZXJvdy5weScsCi0gICAgICdzdHR2YWQucHknLAotKyAg ICAnc3R0YmFja2VuZGRlcHMucHknLAotICAgICAnc3R0bW9kZWxjaG9vc2VyZGlhbG9nLnB5JywK LSAgICAgJ3N0dHZvc2ttb2RlbG1hbmFnZXJzLnB5JywKLSAgICAgJ3N0dHdoaXNwZXJtb2RlbG1h bmFnZXJzLnB5JywKLWRpZmYgLXVyTiBJQnVzLVNwZWVjaC1Uby1UZXh0LTEuMC4wLm9yaWcvZW5n aW5lL3N0dGJhY2tlbmRkZXBzLnB5IElCdXMtU3BlZWNoLVRvLVRleHQtMS4wLjAvZW5naW5lL3N0 dGJhY2tlbmRkZXBzLnB5Ci0tLS0gSUJ1cy1TcGVlY2gtVG8tVGV4dC0xLjAuMC5vcmlnL2VuZ2lu ZS9zdHRiYWNrZW5kZGVwcy5weQkxOTcwLTAxLTAxIDA1OjMwOjAwLjAwMDAwMDAwMCArMDUzMAot KysrIElCdXMtU3BlZWNoLVRvLVRleHQtMS4wLjAvZW5naW5lL3N0dGJhY2tlbmRkZXBzLnB5CTIw MjYtMDgtMDcgMDE6NDQ6NDUuMjk5NTk4ODI4ICswNTMwCi1AQCAtMCwwICsxLDE3MyBAQAotK2lt cG9ydCBpbXBvcnRsaWIKLStpbXBvcnQgaW1wb3J0bGliLm1hY2hpbmVyeQotK2ltcG9ydCBpbXBv cnRsaWIudXRpbAotK2ltcG9ydCBsb2dnaW5nCi0raW1wb3J0IHN5cwotKwotK0xPR19NU0cgPSBs b2dnaW5nLmdldExvZ2dlcigpCi0rCi0rY2xhc3MgU1RUQmFja2VuZERlcGVuZGVuY3k6Ci0rCi0r ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2R1bGUsIGRpc3RyaWJ1dGlvbiwgZXh0cmFzPU5vbmUp OgotKyAgICAgICAgc2VsZi5tb2R1bGUgPSBtb2R1bGUKLSsgICAgICAgIHNlbGYuZGlzdHJpYnV0 aW9uID0gZGlzdHJpYnV0aW9uCi0rICAgICAgICBzZWxmLmV4dHJhcyA9IHR1cGxlKGV4dHJhcykg aWYgZXh0cmFzIGlzIG5vdCBOb25lIGVsc2UgKCkKLSsKLSsgICAgQHByb3BlcnR5Ci0rICAgIGRl ZiByZXF1aXJlbWVudChzZWxmKToKLSsgICAgICAgIGlmIG5vdCBzZWxmLmV4dHJhczoKLSsgICAg ICAgICAgICByZXR1cm4gc2VsZi5kaXN0cmlidXRpb24KLSsgICAgICAgIHJldHVybiAiJXNbJXNd IiAlIChzZWxmLmRpc3RyaWJ1dGlvbiwgIiwiLmpvaW4oc2VsZi5leHRyYXMpKQotKwotKyAgICBA cHJvcGVydHkKLSsgICAgZGVmIHBpcF9hcmd1bWVudChzZWxmKToKLSsgICAgICAgIGlmIG5vdCBz ZWxmLmV4dHJhczoKLSsgICAgICAgICAgICByZXR1cm4gc2VsZi5kaXN0cmlidXRpb24KLSsgICAg ICAgIHJldHVybiAiJyVzJyIgJSBzZWxmLnJlcXVpcmVtZW50Ci0rCi0rICAgIGRlZiBhdmFpbGFi bGUoc2VsZik6Ci0rICAgICAgICAjVHJ1ZSB3aGVuIHRoZSBtb2R1bGUgY2FuIGJlIGZvdW5kIG9u IHN5cy5wYXRoIHJpZ2h0IG5vdwotKyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgIHNwZWMgPSBp bXBvcnRsaWIubWFjaGluZXJ5LlBhdGhGaW5kZXIuZmluZF9zcGVjKHNlbGYubW9kdWxlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN5cy5wYXRoKQotKyAgICAgICAgZXhjZXB0IChJbXBvcnRFcnJvciwgVmFsdWVFcnJvciwgVHlw ZUVycm9yLCBBdHRyaWJ1dGVFcnJvcikgYXMgZXJyb3I6Ci0rICAgICAgICAgICAgTE9HX01TRy5k ZWJ1ZygiY2Fubm90IGxvb2sgdXAgbW9kdWxlICVzICglcykiLCBzZWxmLm1vZHVsZSwgZXJyb3Ip Ci0rICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0rCi0rICAgICAgICByZXR1cm4gc3BlYyBpcyBu b3QgTm9uZQotKwotKyAgICBkZWYgX19yZXByX18oc2VsZik6Ci0rICAgICAgICByZXR1cm4gIjxT VFRCYWNrZW5kRGVwZW5kZW5jeSAlcz4iICUgc2VsZi5yZXF1aXJlbWVudAotKwotKyMgTk9URTog a2VlcCB0aGUga2V5cyBpbiBzeW5jIHdpdGggdGhlICJiYWNrZW5kIiBHU2V0dGluZ3Mga2V5IGFu ZCB3aXRoIHRoZQotKyMgY2hlY2sgYnV0dG9ucyBvZiBzdHRjb25maWdkaWFsb2cudWkuCi0rX0JB Q0tFTkRTID0gewotKyAgICAidm9zayI6IHsKLSsgICAgICAgICJuYW1lIjogIlZvc2siLAotKyAg ICAgICAgImRlcGVuZGVuY2llcyI6ICgpLAotKyAgICAgICAgImNvbXBvbmVudHMiOiB7Ci0rICAg ICAgICAgICAgImVuZ2luZSI6ICAoInN0dGdzdHZvc2siLCAiU1RUR3N0Vm9zayIpLAotKyAgICAg ICAgICAgICJtb2RlbCI6ICAgKCJzdHR2b3NrbW9kZWwiLCAiU1RUVm9za01vZGVsIiksCi0rICAg ICAgICAgICAgIm1hbmFnZXIiOiAoInN0dHZvc2ttb2RlbG1hbmFnZXJzIiwgInN0dF92b3NrX29u bGluZV9tb2RlbF9tYW5hZ2VyIiksCi0rICAgICAgICB9LAotKyAgICB9LAotKyAgICAid2hpc3Bl ciI6IHsKLSsgICAgICAgICJuYW1lIjogIldoaXNwZXIiLAotKyAgICAgICAgImRlcGVuZGVuY2ll cyI6ICgpLAotKyAgICAgICAgImNvbXBvbmVudHMiOiB7Ci0rICAgICAgICAgICAgImVuZ2luZSI6 ICAoInN0dGdzdHdoaXNwZXIiLCAiU1RUR3N0V2hpc3BlciIpLAotKyAgICAgICAgICAgICJtb2Rl bCI6ICAgKCJzdHR3aGlzcGVybW9kZWwiLCAiU1RUV2hpc3Blck1vZGVsIiksCi0rICAgICAgICAg ICAgIm1hbmFnZXIiOiAoInN0dHdoaXNwZXJtb2RlbG1hbmFnZXJzIiwgInN0dF93aGlzcGVyX29u bGluZV9tb2RlbF9tYW5hZ2VyIiksCi0rICAgICAgICB9LAotKyAgICB9LAotKyAgICAib25ueGFz ciI6IHsKLSsgICAgICAgICJuYW1lIjogIm9ubngtYXNyIiwKLSsgICAgICAgICJkZXBlbmRlbmNp ZXMiOiAoCi0rICAgICAgICAgICAgU1RUQmFja2VuZERlcGVuZGVuY3koIm9ubnhfYXNyIiwgIm9u bngtYXNyIiwgKCJjcHUiLCAiaHViIikpLAotKyAgICAgICAgKSwKLSsgICAgICAgICJjb21wb25l bnRzIjogewotKyAgICAgICAgICAgICJlbmdpbmUiOiAgKCJzdHRnc3Rvbm54YXNyIiwgIlNUVEdz dE9ubnhBc3IiKSwKLSsgICAgICAgICAgICAibW9kZWwiOiAgICgic3R0b25ueGFzcm1vZGVsIiwg IlNUVE9ubnhBc3JNb2RlbCIpLAotKyAgICAgICAgICAgICJtYW5hZ2VyIjogKCJzdHRvbm54YXNy bW9kZWxtYW5hZ2VycyIsICJzdHRfb25ueGFzcl9vbmxpbmVfbW9kZWxfbWFuYWdlciIpLAotKyAg ICAgICAgfSwKLSsgICAgfSwKLSsgICAgIm1vb25zaGluZSI6IHsKLSsgICAgICAgICJuYW1lIjog Ik1vb25zaGluZSIsCi0rICAgICAgICAiZGVwZW5kZW5jaWVzIjogKAotKyAgICAgICAgICAgIFNU VEJhY2tlbmREZXBlbmRlbmN5KCJtb29uc2hpbmVfdm9pY2UiLCAibW9vbnNoaW5lLXZvaWNlIiks Ci0rICAgICAgICApLAotKyAgICAgICAgImNvbXBvbmVudHMiOiB7Ci0rICAgICAgICAgICAgImVu Z2luZSI6ICAoInN0dGdzdG1vb25zaGluZSIsICJTVFRHc3RNb29uc2hpbmUiKSwKLSsgICAgICAg ICAgICAibW9kZWwiOiAgICgic3R0bW9vbnNoaW5lbW9kZWwiLCAiU1RUTW9vbnNoaW5lTW9kZWwi KSwKLSsgICAgICAgICAgICAibWFuYWdlciI6ICgic3R0bW9vbnNoaW5lbW9kZWxtYW5hZ2VycyIs ICJzdHRfbW9vbnNoaW5lX29ubGluZV9tb2RlbF9tYW5hZ2VyIiksCi0rICAgICAgICB9LAotKyAg ICB9LAotK30KLSsKLStTVFRfREVGQVVMVF9CQUNLRU5EID0gInZvc2siCi0rCi0rIyBDYWNoZSB0 aGUgbG9va3VwczogdGhleSBhcmUgcXVlcmllZCBmcm9tIGNhbGxiYWNrcyB0aGF0IGNhbiBydW4g b24gZXZlcnkKLSsjIG1vZGVsL2xvY2FsZSBjaGFuZ2UuIERyb3BwZWQgYnkgc3R0X2ludmFsaWRh dGVfYXZhaWxhYmlsaXR5X2NhY2hlKCkuCi0rX2F2YWlsYWJpbGl0eV9jYWNoZSA9IHt9Ci0rCi0r ZGVmIHN0dF9iYWNrZW5kcygpOgotKyAgICByZXR1cm4gdHVwbGUoX0JBQ0tFTkRTLmtleXMoKSkK LSsKLStkZWYgc3R0X2JhY2tlbmRfZGlzcGxheV9uYW1lKGJhY2tlbmQpOgotKyAgICBlbnRyeSA9 IF9CQUNLRU5EUy5nZXQoYmFja2VuZCkKLSsgICAgaWYgZW50cnkgaXMgTm9uZToKLSsgICAgICAg IHJldHVybiBiYWNrZW5kCi0rICAgIHJldHVybiBlbnRyeVsibmFtZSJdCi0rCi0rZGVmIHN0dF9i YWNrZW5kX2RlcGVuZGVuY2llcyhiYWNrZW5kKToKLSsgICAgZW50cnkgPSBfQkFDS0VORFMuZ2V0 KGJhY2tlbmQpCi0rICAgIGlmIGVudHJ5IGlzIE5vbmU6Ci0rICAgICAgICByZXR1cm4gKCkKLSsg ICAgcmV0dXJuIGVudHJ5WyJkZXBlbmRlbmNpZXMiXQotKwotK2RlZiBzdHRfaW52YWxpZGF0ZV9h dmFpbGFiaWxpdHlfY2FjaGUoKToKLSsgICAgX2F2YWlsYWJpbGl0eV9jYWNoZS5jbGVhcigpCi0r ICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCi0rCi0rZGVmIHN0dF9iYWNrZW5kX21p c3NpbmdfZGVwZW5kZW5jaWVzKGJhY2tlbmQsIHJlZnJlc2g9RmFsc2UpOgotKyAgICBpZiByZWZy ZXNoOgotKyAgICAgICAgc3R0X2ludmFsaWRhdGVfYXZhaWxhYmlsaXR5X2NhY2hlKCkKLSsKLSsg ICAgbWlzc2luZyA9IFtdCi0rICAgIGZvciBkZXBlbmRlbmN5IGluIHN0dF9iYWNrZW5kX2RlcGVu ZGVuY2llcyhiYWNrZW5kKToKLSsgICAgICAgIGF2YWlsYWJsZSA9IF9hdmFpbGFiaWxpdHlfY2Fj aGUuZ2V0KGRlcGVuZGVuY3kubW9kdWxlKQotKyAgICAgICAgaWYgYXZhaWxhYmxlIGlzIE5vbmU6 Ci0rICAgICAgICAgICAgYXZhaWxhYmxlID0gZGVwZW5kZW5jeS5hdmFpbGFibGUoKQotKyAgICAg ICAgICAgIF9hdmFpbGFiaWxpdHlfY2FjaGVbZGVwZW5kZW5jeS5tb2R1bGVdID0gYXZhaWxhYmxl Ci0rICAgICAgICAgICAgTE9HX01TRy5kZWJ1ZygibW9kdWxlICVzIGF2YWlsYWJsZTogJXMiLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jeS5tb2R1bGUsIGF2YWlsYWJsZSkK LSsgICAgICAgIGlmIG5vdCBhdmFpbGFibGU6Ci0rICAgICAgICAgICAgbWlzc2luZy5hcHBlbmQo ZGVwZW5kZW5jeSkKLSsKLSsgICAgcmV0dXJuIG1pc3NpbmcKLSsKLStkZWYgc3R0X2JhY2tlbmRf aXNfYXZhaWxhYmxlKGJhY2tlbmQsIHJlZnJlc2g9RmFsc2UpOgotKyAgICByZXR1cm4gbm90IHN0 dF9iYWNrZW5kX21pc3NpbmdfZGVwZW5kZW5jaWVzKGJhY2tlbmQsIHJlZnJlc2g9cmVmcmVzaCkK LSsKLStkZWYgc3R0X2JhY2tlbmRfaW5zdGFsbF9jb21tYW5kKGJhY2tlbmQpOgotKyAgICBtaXNz aW5nID0gc3R0X2JhY2tlbmRfbWlzc2luZ19kZXBlbmRlbmNpZXMoYmFja2VuZCkKLSsgICAgaWYg bm90IG1pc3Npbmc6Ci0rICAgICAgICByZXR1cm4gIiIKLSsKLSsgICAgcmV0dXJuICJwaXAgaW5z dGFsbCAlcyIgJSAiICIuam9pbigKLSsgICAgICAgIGRlcGVuZGVuY3kucGlwX2FyZ3VtZW50IGZv ciBkZXBlbmRlbmN5IGluIG1pc3NpbmcpCi0rCi0rZGVmIHN0dF9iYWNrZW5kX2NvbXBvbmVudChi YWNrZW5kLCBjb21wb25lbnQpOgotKyAgICBlbnRyeSA9IF9CQUNLRU5EUy5nZXQoYmFja2VuZCkK LSsgICAgaWYgZW50cnkgaXMgTm9uZToKLSsgICAgICAgIExPR19NU0cud2FybmluZygidW5rbm93 biBiYWNrZW5kICglcykiLCBiYWNrZW5kKQotKyAgICAgICAgcmV0dXJuIE5vbmUKLSsKLSsgICAg bG9jYXRpb24gPSBlbnRyeVsiY29tcG9uZW50cyJdLmdldChjb21wb25lbnQpCi0rICAgIGlmIGxv Y2F0aW9uIGlzIE5vbmU6Ci0rICAgICAgICByZXR1cm4gTm9uZQotKwotKyAgICBtb2R1bGVfbmFt ZSwgYXR0cmlidXRlID0gbG9jYXRpb24KLSsgICAgdHJ5OgotKyAgICAgICAgbW9kdWxlID0gaW1w b3J0bGliLmltcG9ydF9tb2R1bGUobW9kdWxlX25hbWUpCi0rICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZXJyb3I6Ci0rICAgICAgICBMT0dfTVNHLndhcm5pbmcoImNhbm5vdCBpbXBvcnQgJXMgZm9y IGJhY2tlbmQgJXMgKCVzKSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlX25hbWUs IGJhY2tlbmQsIGVycm9yKQotKyAgICAgICAgcmV0dXJuIE5vbmUKLSsKLSsgICAgdmFsdWUgPSBn ZXRhdHRyKG1vZHVsZSwgYXR0cmlidXRlLCBOb25lKQotKyAgICBpZiB2YWx1ZSBpcyBOb25lOgot KyAgICAgICAgTE9HX01TRy53YXJuaW5nKCIlcyBoYXMgbm8gYXR0cmlidXRlICVzIiwgbW9kdWxl X25hbWUsIGF0dHJpYnV0ZSkKLSsgICAgcmV0dXJuIHZhbHVlCi0rCi0rZGVmIHN0dF9iYWNrZW5k X21vZGVsX21hbmFnZXIoYmFja2VuZCk6Ci0rICAgIG1hbmFnZXIgPSBzdHRfYmFja2VuZF9jb21w b25lbnQoYmFja2VuZCwgIm1hbmFnZXIiKQotKyAgICBpZiBtYW5hZ2VyIGlzIE5vbmU6Ci0rICAg ICAgICByZXR1cm4gTm9uZQotKwotKyAgICB0cnk6Ci0rICAgICAgICByZXR1cm4gbWFuYWdlcigp Ci0rICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6Ci0rICAgICAgICBMT0dfTVNHLndhcm5p bmcoImNhbm5vdCBjcmVhdGUgbW9kZWwgbWFuYWdlciBmb3IgJXMgKCVzKSIsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgYmFja2VuZCwgZXJyb3IpCi0rICAgICAgICByZXR1cm4gTm9uZQotZGlm ZiAtdXJOIElCdXMtU3BlZWNoLVRvLVRleHQtMS4wLjAub3JpZy9lbmdpbmUvc3R0Y29uZmlnZGlh bG9nLnB5IElCdXMtU3BlZWNoLVRvLVRleHQtMS4wLjAvZW5naW5lL3N0dGNvbmZpZ2RpYWxvZy5w eQotLS0tIElCdXMtU3BlZWNoLVRvLVRleHQtMS4wLjAub3JpZy9lbmdpbmUvc3R0Y29uZmlnZGlh bG9nLnB5CTIwMjYtMDctMTQgMDM6MDA6MDAuMDAwMDAwMDAwICswNTMwCi0rKysgSUJ1cy1TcGVl Y2gtVG8tVGV4dC0xLjAuMC9lbmdpbmUvc3R0Y29uZmlnZGlhbG9nLnB5CTIwMjYtMDgtMDcgMDE6 NDU6MjUuMjQxMjI4NDg1ICswNTMwCi1AQCAtMjcsMjcgKzI3LDIzIEBACi0gZ2kucmVxdWlyZV92 ZXJzaW9uKCdHdGsnLCAnNC4wJykKLSBnaS5yZXF1aXJlX3ZlcnNpb24oJ0FkdycsICcxJykKLSAK LS1mcm9tIGdpLnJlcG9zaXRvcnkgaW1wb3J0IEd0aywgR2lvLCBBZHcKLStmcm9tIGdpLnJlcG9z aXRvcnkgaW1wb3J0IEd0aywgR2lvLCBHZGssIEdPYmplY3QsIEFkdwotIAotIGZyb20gc3R0dXRp bHMgaW1wb3J0ICoKLSBmcm9tIHN0dHNob3J0Y3V0cm93IGltcG9ydCBTVFRTaG9ydGN1dFJvdwot IGZyb20gc3R0c2hvcnRjdXRkaWFsb2cgaW1wb3J0IFNUVFNob3J0Y3V0RGlhbG9nCi0gCi0gZnJv bSBzdHRjdXJyZW50bG9jYWxlIGltcG9ydCBzdHRfY3VycmVudF9sb2NhbGUKLS1mcm9tIHN0dHZv c2ttb2RlbG1hbmFnZXJzIGltcG9ydCBzdHRfdm9za19vbmxpbmVfbW9kZWxfbWFuYWdlcgotLWZy b20gc3R0d2hpc3Blcm1vZGVsbWFuYWdlcnMgaW1wb3J0IHN0dF93aGlzcGVyX29ubGluZV9tb2Rl bF9tYW5hZ2VyCi0tZnJvbSBzdHRvbm54YXNybW9kZWxtYW5hZ2VycyBpbXBvcnQgc3R0X29ubnhh c3Jfb25saW5lX21vZGVsX21hbmFnZXIKLS1mcm9tIHN0dG1vb25zaGluZW1vZGVsbWFuYWdlcnMg aW1wb3J0IHN0dF9tb29uc2hpbmVfb25saW5lX21vZGVsX21hbmFnZXIKLS1mcm9tIHN0dHZvc2tt b2RlbCBpbXBvcnQgU1RUVm9za01vZGVsCi0tZnJvbSBzdHR3aGlzcGVybW9kZWwgaW1wb3J0IFNU VFdoaXNwZXJNb2RlbAotLWZyb20gc3R0b25ueGFzcm1vZGVsIGltcG9ydCBTVFRPbm54QXNyTW9k ZWwKLS1mcm9tIHN0dG1vb25zaGluZW1vZGVsIGltcG9ydCBTVFRNb29uc2hpbmVNb2RlbAotIGZy b20gc3R0bW9kZWxjaG9vc2VyZGlhbG9nIGltcG9ydCBTVFRNb2RlbENob29zZXJEaWFsb2cKLSAK LS1mcm9tIHN0dGdzdHZvc2sgaW1wb3J0IFNUVEdzdFZvc2sKLS1mcm9tIHN0dGdzdHdoaXNwZXIg aW1wb3J0IFNUVEdzdFdoaXNwZXIKLS1mcm9tIHN0dGdzdG9ubnhhc3IgaW1wb3J0IFNUVEdzdE9u bnhBc3IKLS1mcm9tIHN0dGdzdG1vb25zaGluZSBpbXBvcnQgU1RUR3N0TW9vbnNoaW5lCi0rZnJv bSBzdHRiYWNrZW5kZGVwcyBpbXBvcnQgKFNUVF9ERUZBVUxUX0JBQ0tFTkQsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0dF9iYWNrZW5kX2NvbXBvbmVudCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3R0X2JhY2tlbmRfZGlzcGxheV9uYW1lLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHRfYmFja2VuZF9pbnN0YWxsX2NvbW1hbmQsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0dF9iYWNrZW5kX2lzX2F2YWlsYWJsZSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3R0X2JhY2tlbmRfbWlzc2luZ19kZXBlbmRlbmNpZXMsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0dF9iYWNrZW5kX21vZGVsX21hbmFnZXIsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0dF9pbnZhbGlkYXRlX2F2YWlsYWJpbGl0eV9jYWNoZSkK LSAKLSBMT0dfTVNHPWxvZ2dpbmcuZ2V0TG9nZ2VyKCkKLSAKLUBAIC02NCw2ICs2MCwxMSBAQAot ICAgICBvbm54YXNyX2NoZWNrID0gR3RrLlRlbXBsYXRlLkNoaWxkKCkKLSAgICAgbW9vbnNoaW5l X2NoZWNrID0gR3RrLlRlbXBsYXRlLkNoaWxkKCkKLSAKLSsgICAgdm9za19hY3Rpb25fcm93ICAg ICAgPSBHdGsuVGVtcGxhdGUuQ2hpbGQoKQotKyAgICB3aGlzcGVyX2FjdGlvbl9yb3cgICA9IEd0 ay5UZW1wbGF0ZS5DaGlsZCgpCi0rICAgIG9ubnhhc3JfYWN0aW9uX3JvdyAgID0gR3RrLlRlbXBs YXRlLkNoaWxkKCkKLSsgICAgbW9vbnNoaW5lX2FjdGlvbl9yb3cgPSBHdGsuVGVtcGxhdGUuQ2hp bGQoKQotKwotICAgICB0YWJfc3RhY2sgICAgPSBHdGsuVGVtcGxhdGUuQ2hpbGQoKQotICAgICB0 YWJfc3dpdGNoZXIgPSBHdGsuVGVtcGxhdGUuQ2hpbGQoKQotIAotQEAgLTEwMiwxOCArMTAzLDIw IEBACi0gICAgICAgICBzZWxmLl91dHRlcmFuY2VzX2RpY3QgPSB7fQotICAgICAgICAgc2VsZi5f bm9fbW9kZWxfdG9hc3QgPSBOb25lCi0gICAgICAgICBzZWxmLl91bnN1cHBvcnRlZF9sb2NhbGVf dG9hc3QgPSBOb25lCi0rICAgICAgICBzZWxmLl9taXNzaW5nX2RlcHNfdG9hc3QgPSBOb25lCi0g ICAgICAgICBzZWxmLl9tb2RlbCA9IE5vbmUKLSAgICAgICAgIHNlbGYuX3N1cHByZXNzX2xhbmd1 YWdlX2NiID0gRmFsc2UKLSsgICAgICAgIHNlbGYuX3N1cHByZXNzX2VuZ2luZV9jYiA9IEZhbHNl Ci0gICAgICAgICBzZWxmLl9lbmdpbmUgPSBOb25lCi0gCi0gICAgICAgICBzZWxmLl9zZXR0aW5n cz1HaW8uU2V0dGluZ3MubmV3KCJvcmcuZnJlZWRlc2t0b3AuaWJ1cy5lbmdpbmUuc3R0IikKLSAg ICAgICAgIHNlbGYuX3NldHRpbmdzLmJpbmQoInByZWxvYWQiLCBzZWxmLnByZWxvYWRfbW9kZWxf c3dpdGNoLCAiYWN0aXZlIiwgR2lvLlNldHRpbmdzQmluZEZsYWdzLkRFRkFVTFQpCi0gICAgICAg ICBzZWxmLl9zZXR0aW5ncy5iaW5kKCJhY3RpdmUtb24tc3RhcnQiLCBzZWxmLmFjdGl2ZV9vbl9z dGFydF9zd2l0Y2gsICJhY3RpdmUiLCBHaW8uU2V0dGluZ3NCaW5kRmxhZ3MuREVGQVVMVCkKLSAK LS0gICAgICAgIHN0dF92b3NrX29ubGluZV9tb2RlbF9tYW5hZ2VyKCkKLS0gICAgICAgIHN0dF93 aGlzcGVyX29ubGluZV9tb2RlbF9tYW5hZ2VyKCkKLS0gICAgICAgIHN0dF9vbm54YXNyX29ubGlu ZV9tb2RlbF9tYW5hZ2VyKCkKLS0gICAgICAgIHN0dF9tb29uc2hpbmVfb25saW5lX21vZGVsX21h bmFnZXIoKQotKyAgICAgICAgc2VsZi5fYmFja2VuZF9zdWJ0aXRsZXMgPSB7Ci0rICAgICAgICAg ICAgYmFja2VuZDogKHJvdy5nZXRfc3VidGl0bGUoKSBvciAiIikKLSsgICAgICAgICAgICBmb3Ig YmFja2VuZCwgcm93IGluIHNlbGYuX2JhY2tlbmRfYWN0aW9uX3Jvd3MoKS5pdGVtcygpCi0rICAg ICAgICB9Ci0gCi0gICAgICAgICAjIExvYWQgY3VycmVudCBsb2NhbGUKLSAgICAgICAgIHNlbGYu X2N1cnJlbnRfbG9jYWxlID0gc3R0X2N1cnJlbnRfbG9jYWxlKCkKLUBAIC0xMjEsMjUgKzEyNCwx MSBAQAotICAgICAgICAgc2VsZi5fb3ZlcnJpZGVfZmlsZV9jaGFuZ2VkX2lkPXNlbGYuX2N1cnJl bnRfbG9jYWxlLmNvbm5lY3QoIm92ZXJyaWRlLWZpbGUtY2hhbmdlZCIsIHNlbGYuX292ZXJyaWRl X2ZpbGVfY2hhbmdlZF9jYikKLSAgICAgICAgIHNlbGYuX292ZXJyaWRlX2ZpbGVfd3JpdHRlbj1G YWxzZQotIAotLSAgICAgICAgYmFja2VuZCA9IHNlbGYuX3NldHRpbmdzLmdldF9zdHJpbmcoImJh Y2tlbmQiKQotLSAgICAgICAgc2VsZi5fc3VwcHJlc3NfZW5naW5lX2NiID0gVHJ1ZQotLSAgICAg ICAgaWYgYmFja2VuZCA9PSAid2hpc3BlciI6Ci0tICAgICAgICAgICAgc2VsZi53aGlzcGVyX2No ZWNrLnNldF9hY3RpdmUoVHJ1ZSkKLS0gICAgICAgIGVsaWYgYmFja2VuZCA9PSAib25ueGFzciI6 Ci0tICAgICAgICAgICAgc2VsZi5vbm54YXNyX2NoZWNrLnNldF9hY3RpdmUoVHJ1ZSkKLS0gICAg ICAgIGVsaWYgYmFja2VuZCA9PSAibW9vbnNoaW5lIjoKLS0gICAgICAgICAgICBzZWxmLm1vb25z aGluZV9jaGVjay5zZXRfYWN0aXZlKFRydWUpCi0tICAgICAgICBlbHNlOgotLSAgICAgICAgICAg IHNlbGYudm9za19jaGVjay5zZXRfYWN0aXZlKFRydWUpCi0tICAgICAgICBzZWxmLl9zdXBwcmVz c19lbmdpbmVfY2IgPSBGYWxzZQotKyAgICAgICAgc2VsZi5fc2VsZWN0X2JhY2tlbmRfYnV0dG9u KHNlbGYuX2JhY2tlbmQoKSkKLSAKLSAgICAgICAgIHNlbGYuX2xvY2FsZV9saXN0ID0gW10KLSAg ICAgICAgIHNlbGYuX2xvY2FsZV9uYW1lcyA9IEd0ay5TdHJpbmdMaXN0KCkKLS0gICAgICAgIHNl bGYuX3BvcHVsYXRlX2xvY2FsZV9saXN0KCkKLS0gICAgICAgIHNlbGYuX3N1cHByZXNzX2xhbmd1 YWdlX2NiID0gVHJ1ZQotLSAgICAgICAgc2VsZi5sYW5ndWFnZV9kcm9wZG93bi5zZXRfbW9kZWwo c2VsZi5fbG9jYWxlX25hbWVzKQotLSAgICAgICAgc2VsZi5fc3VwcHJlc3NfbGFuZ3VhZ2VfY2Ig PSBGYWxzZQotLSAgICAgICAgc2VsZi5fc2VsZWN0X2N1cnJlbnRfbG9jYWxlX2luX2Ryb3Bkb3du KCkKLSsgICAgICAgIHNlbGYuX3JlZnJlc2hfbG9jYWxlX2Ryb3Bkb3duKCkKLSAKLSAgICAgICAg IGlmIHNlbGYuX2N1cnJlbnRfbG9jYWxlLmRlZmF1bHRfbG9jYWxlOgotICAgICAgICAgICAgIHNl bGYuX3N1cHByZXNzX2xhbmd1YWdlX2NiID0gVHJ1ZQotQEAgLTE1NiwxNyArMTQ1LDgxIEBACi0g Ci0gICAgICAgICBzZWxmLl91cGRhdGVfdm9pY2VfY29tbWFuZHNfdmlzaWJpbGl0eSgpCi0gCi0t ICAgICAgICBpZiBzZWxmLl9tb2RlbCBpcyBOb25lIG9yIG5vdCBzZWxmLl9tb2RlbC5hdmFpbGFi bGUoKToKLS0gICAgICAgICAgICBzZWxmLl9lbmdpbmVfaGFzX25vX21vZGVsKCkKLS0gICAgICAg IGVsaWYgc2VsZi5fdmFsaWRfZm9ybWF0dGluZ19maWxlID09IEZhbHNlOgotLSAgICAgICAgICAg IHNlbGYuX3Vuc3VwcG9ydGVkX2xvY2FsZSgpCi0tCi0gICAgICAgICBzZWxmLl90b2FzdF9hY3Rp b249R2lvLlNpbXBsZUFjdGlvbi5uZXcoIm1hbmFnZV9tb2RlbCIsIE5vbmUpCi0rICAgICAgICBz ZWxmLl9pbnN0YWxsX2FjdGlvbj1HaW8uU2ltcGxlQWN0aW9uLm5ldygiaW5zdGFsbF9iYWNrZW5k IiwgTm9uZSkKLSAgICAgICAgIGFjdGlvbl9ncm91cD1HaW8uU2ltcGxlQWN0aW9uR3JvdXAubmV3 KCkKLSAgICAgICAgIGFjdGlvbl9ncm91cC5pbnNlcnQoc2VsZi5fdG9hc3RfYWN0aW9uKQotKyAg ICAgICAgYWN0aW9uX2dyb3VwLmluc2VydChzZWxmLl9pbnN0YWxsX2FjdGlvbikKLSAgICAgICAg IHNlbGYuaW5zZXJ0X2FjdGlvbl9ncm91cCgidG9hc3QiLCBhY3Rpb25fZ3JvdXApCi0gICAgICAg ICBzZWxmLl90b2FzdF9hY3Rpb24uY29ubmVjdCgiYWN0aXZhdGUiLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbWFuYWdlX21vZGVsX2FjdGlvbl9hY3RpdmF0ZWQp Ci0rICAgICAgICBzZWxmLl9pbnN0YWxsX2FjdGlvbi5jb25uZWN0KCJhY3RpdmF0ZSIsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2luc3RhbGxfYWN0aW9uX2Fj dGl2YXRlZCkKLSsKLSsgICAgICAgIHNlbGYuX3VwZGF0ZV9iYWNrZW5kX3Jvd3MoKQotKyAgICAg ICAgc2VsZi5fcmVmcmVzaF9zdGF0dXNfbWVzc2FnZXMoKQotKyAgICAgICAgc2VsZi5fYmFja2Vu ZF93YXNfYXZhaWxhYmxlID0gc3R0X2JhY2tlbmRfaXNfYXZhaWxhYmxlKHNlbGYuX2JhY2tlbmQo KSkKLSsgICAgICAgIHNlbGYuY29ubmVjdCgibm90aWZ5Ojppcy1hY3RpdmUiLCBzZWxmLl93aW5k b3dfYWN0aXZlX2NiKQotKwotKyAgICBkZWYgX3dpbmRvd19hY3RpdmVfY2Ioc2VsZiwgKl9hcmdz KToKLSsgICAgICAgIGlmIG5vdCBzZWxmLmdldF9wcm9wZXJ0eSgiaXMtYWN0aXZlIik6Ci0rICAg ICAgICAgICAgcmV0dXJuCi0rCi0rICAgICAgICBzdHRfaW52YWxpZGF0ZV9hdmFpbGFiaWxpdHlf Y2FjaGUoKQotKyAgICAgICAgYXZhaWxhYmxlID0gc3R0X2JhY2tlbmRfaXNfYXZhaWxhYmxlKHNl bGYuX2JhY2tlbmQoKSkKLSsgICAgICAgIGlmIGF2YWlsYWJsZSA9PSBzZWxmLl9iYWNrZW5kX3dh c19hdmFpbGFibGU6Ci0rICAgICAgICAgICAgc2VsZi5fdXBkYXRlX2JhY2tlbmRfcm93cygpCi0r ICAgICAgICAgICAgcmV0dXJuCi0rCi0rICAgICAgICBzZWxmLl9iYWNrZW5kX3dhc19hdmFpbGFi bGUgPSBhdmFpbGFibGUKLSsgICAgICAgIHNlbGYuX3JlbG9hZF9iYWNrZW5kKCkKLSsKLSsgICAg ZGVmIF9iYWNrZW5kKHNlbGYpOgotKyAgICAgICAgYmFja2VuZCA9IHNlbGYuX3NldHRpbmdzLmdl dF9zdHJpbmcoImJhY2tlbmQiKQotKyAgICAgICAgaWYgYmFja2VuZCBpbiAoIiIsIE5vbmUpOgot KyAgICAgICAgICAgIHJldHVybiBTVFRfREVGQVVMVF9CQUNLRU5ECi0rICAgICAgICByZXR1cm4g YmFja2VuZAotKwotKyAgICBkZWYgX2JhY2tlbmRfY2hlY2tfYnV0dG9ucyhzZWxmKToKLSsgICAg ICAgIHJldHVybiB7Ci0rICAgICAgICAgICAgInZvc2siOiAgICAgIHNlbGYudm9za19jaGVjaywK LSsgICAgICAgICAgICAid2hpc3BlciI6ICAgc2VsZi53aGlzcGVyX2NoZWNrLAotKyAgICAgICAg ICAgICJvbm54YXNyIjogICBzZWxmLm9ubnhhc3JfY2hlY2ssCi0rICAgICAgICAgICAgIm1vb25z aGluZSI6IHNlbGYubW9vbnNoaW5lX2NoZWNrLAotKyAgICAgICAgfQotKwotKyAgICBkZWYgX2Jh Y2tlbmRfYWN0aW9uX3Jvd3Moc2VsZik6Ci0rICAgICAgICByZXR1cm4gewotKyAgICAgICAgICAg ICJ2b3NrIjogICAgICBzZWxmLnZvc2tfYWN0aW9uX3JvdywKLSsgICAgICAgICAgICAid2hpc3Bl ciI6ICAgc2VsZi53aGlzcGVyX2FjdGlvbl9yb3csCi0rICAgICAgICAgICAgIm9ubnhhc3IiOiAg IHNlbGYub25ueGFzcl9hY3Rpb25fcm93LAotKyAgICAgICAgICAgICJtb29uc2hpbmUiOiBzZWxm Lm1vb25zaGluZV9hY3Rpb25fcm93LAotKyAgICAgICAgfQotKwotKyAgICBkZWYgX2JhY2tlbmRf Zm9yX2NoZWNrX2J1dHRvbihzZWxmLCBidXR0b24pOgotKyAgICAgICAgZm9yIGJhY2tlbmQsIGNo ZWNrIGluIHNlbGYuX2JhY2tlbmRfY2hlY2tfYnV0dG9ucygpLml0ZW1zKCk6Ci0rICAgICAgICAg ICAgaWYgY2hlY2sgPT0gYnV0dG9uOgotKyAgICAgICAgICAgICAgICByZXR1cm4gYmFja2VuZAot KyAgICAgICAgcmV0dXJuIE5vbmUKLSsKLSsgICAgZGVmIF9zZWxlY3RfYmFja2VuZF9idXR0b24o c2VsZiwgYmFja2VuZCk6Ci0rICAgICAgICBidXR0b24gPSBzZWxmLl9iYWNrZW5kX2NoZWNrX2J1 dHRvbnMoKS5nZXQoYmFja2VuZCkKLSsgICAgICAgIGlmIGJ1dHRvbiBpcyBOb25lOgotKyAgICAg ICAgICAgIGJ1dHRvbiA9IHNlbGYudm9za19jaGVjawotKwotKyAgICAgICAgc2VsZi5fc3VwcHJl c3NfZW5naW5lX2NiID0gVHJ1ZQotKyAgICAgICAgYnV0dG9uLnNldF9hY3RpdmUoVHJ1ZSkKLSsg ICAgICAgIHNlbGYuX3N1cHByZXNzX2VuZ2luZV9jYiA9IEZhbHNlCi0rCi0rICAgIGRlZiBfdXBk YXRlX2JhY2tlbmRfcm93cyhzZWxmKToKLSsgICAgICAgIGZvciBiYWNrZW5kLCByb3cgaW4gc2Vs Zi5fYmFja2VuZF9hY3Rpb25fcm93cygpLml0ZW1zKCk6Ci0rICAgICAgICAgICAgc3VidGl0bGUg PSBzZWxmLl9iYWNrZW5kX3N1YnRpdGxlcy5nZXQoYmFja2VuZCwgIiIpCi0rICAgICAgICAgICAg aWYgc3R0X2JhY2tlbmRfaXNfYXZhaWxhYmxlKGJhY2tlbmQpOgotKyAgICAgICAgICAgICAgICBy b3cuc2V0X3N1YnRpdGxlKHN1YnRpdGxlKQotKyAgICAgICAgICAgIGVsaWYgc3VidGl0bGU6Ci0r ICAgICAgICAgICAgICAgIHJvdy5zZXRfc3VidGl0bGUoXygiJXMgwrcgTm90IGluc3RhbGxlZCIp ICUgc3VidGl0bGUpCi0rICAgICAgICAgICAgZWxzZToKLSsgICAgICAgICAgICAgICAgcm93LnNl dF9zdWJ0aXRsZShfKCJOb3QgaW5zdGFsbGVkIikpCi0gCi0gCi0gICAgIGRlZiBfY3JlYXRlX2Vu Z2luZShzZWxmKToKLUBAIC0xODAsMTUgKzIzMywyMyBAQAotICAgICAgICAgICAgIHNlbGYuX2Vu Z2luZS5kZXN0cm95KCkKLSAgICAgICAgICAgICBzZWxmLl9lbmdpbmUgPSBOb25lCi0gCi0tICAg ICAgICBiYWNrZW5kID0gc2VsZi5fc2V0dGluZ3MuZ2V0X3N0cmluZygiYmFja2VuZCIpCi0tICAg ICAgICBpZiBiYWNrZW5kID09ICJ3aGlzcGVyIjoKLS0gICAgICAgICAgICBzZWxmLl9lbmdpbmUg PSBTVFRHc3RXaGlzcGVyKGN1cnJlbnRfbG9jYWxlPXNlbGYuX2N1cnJlbnRfbG9jYWxlKQotLSAg ICAgICAgZWxpZiBiYWNrZW5kID09ICJvbm54YXNyIjoKLS0gICAgICAgICAgICBzZWxmLl9lbmdp bmUgPSBTVFRHc3RPbm54QXNyKGN1cnJlbnRfbG9jYWxlPXNlbGYuX2N1cnJlbnRfbG9jYWxlKQot LSAgICAgICAgZWxpZiBiYWNrZW5kID09ICJtb29uc2hpbmUiOgotLSAgICAgICAgICAgIHNlbGYu X2VuZ2luZSA9IFNUVEdzdE1vb25zaGluZShjdXJyZW50X2xvY2FsZT1zZWxmLl9jdXJyZW50X2xv Y2FsZSkKLS0gICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAgc2VsZi5fZW5naW5lID0gU1RUR3N0 Vm9zayhjdXJyZW50X2xvY2FsZT1zZWxmLl9jdXJyZW50X2xvY2FsZSkKLSsgICAgICAgIGJhY2tl bmQgPSBzZWxmLl9iYWNrZW5kKCkKLSsgICAgICAgIGlmIG5vdCBzdHRfYmFja2VuZF9pc19hdmFp bGFibGUoYmFja2VuZCk6Ci0rICAgICAgICAgICAgTE9HX01TRy53YXJuaW5nKCJiYWNrZW5kICVz IGlzIG1pc3NpbmcgaXRzIGRlcGVuZGVuY2llcywgIgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAibm8gZW5naW5lIGNyZWF0ZWQiLCBiYWNrZW5kKQotKyAgICAgICAgICAgIHJldHVybgot KwotKyAgICAgICAgZW5naW5lX2NsYXNzID0gc3R0X2JhY2tlbmRfY29tcG9uZW50KGJhY2tlbmQs ICJlbmdpbmUiKQotKyAgICAgICAgaWYgZW5naW5lX2NsYXNzIGlzIE5vbmU6Ci0rICAgICAgICAg ICAgcmV0dXJuCi0rCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgc2VsZi5fZW5naW5lID0g ZW5naW5lX2NsYXNzKGN1cnJlbnRfbG9jYWxlPXNlbGYuX2N1cnJlbnRfbG9jYWxlKQotKyAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLSsgICAgICAgICAgICBMT0dfTVNHLmVycm9y KCJjYW5ub3QgY3JlYXRlIGVuZ2luZSBmb3IgYmFja2VuZCAlcyAoJXMpIiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgIGJhY2tlbmQsIGVycm9yKQotKyAgICAgICAgICAgIHNlbGYuX2VuZ2lu ZSA9IE5vbmUKLSsgICAgICAgICAgICByZXR1cm4KLSAKLSAgICAgICAgIHNlbGYuX2VuZ2luZS5j b25uZWN0KCJtb2RlbC1jaGFuZ2VkIiwgc2VsZi5fZW5naW5lX21vZGVsX2NoYW5nZWRfY2IpCi0g ICAgICAgICBzZWxmLl9lbmdpbmUucHJlbG9hZCgpCi1AQCAtMjA0LDExICsyNjUsMTMgQEAKLSAg ICAgICAgICAgICAgICAgYW5kIHNlbGYuX2N1cnJlbnRfbG9jYWxlLmxvY2FsZSBub3QgaW4gc2Vs Zi5fbG9jYWxlX2xpc3QpOgotICAgICAgICAgICAgIHNlbGYuX2FwcGVuZF9sb2NhbGVfb3B0aW9u KHNlbGYuX2N1cnJlbnRfbG9jYWxlLmxvY2FsZSkKLSAKLS0gICAgICAgIGJhY2tlbmQgPSBzZWxm Ll9zZXR0aW5ncy5nZXRfc3RyaW5nKCJiYWNrZW5kIikKLSsgICAgICAgIGJhY2tlbmQgPSBzZWxm Ll9iYWNrZW5kKCkKLSAgICAgICAgIGlmIGJhY2tlbmQgPT0gIm1vb25zaGluZSI6Ci0tICAgICAg ICAgICAgc3VwcG9ydGVkID0gc3R0X21vb25zaGluZV9vbmxpbmVfbW9kZWxfbWFuYWdlcigpLnN1 cHBvcnRlZF9sb2NhbGVzKCkKLSsgICAgICAgICAgICBtYW5hZ2VyID0gc3R0X2JhY2tlbmRfbW9k ZWxfbWFuYWdlcigibW9vbnNoaW5lIikKLSAgICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAgc3Vw cG9ydGVkID0gc3R0X3Zvc2tfb25saW5lX21vZGVsX21hbmFnZXIoKS5zdXBwb3J0ZWRfbG9jYWxl cygpCi0rICAgICAgICAgICAgbWFuYWdlciA9IHN0dF9iYWNrZW5kX21vZGVsX21hbmFnZXIoInZv c2siKQotKwotKyAgICAgICAgc3VwcG9ydGVkID0gbWFuYWdlci5zdXBwb3J0ZWRfbG9jYWxlcygp IGlmIG1hbmFnZXIgaXMgbm90IE5vbmUgZWxzZSBbXQotIAotICAgICAgICAgX0VYQ0xVREVEID0g eyJtdWx0aWxpbmd1YWwifQotIAotQEAgLTIxOCw2ICsyODEsMTYgQEAKLSAgICAgICAgICAgICBp ZiBsb2Mgbm90IGluIHNlbGYuX2xvY2FsZV9saXN0OgotICAgICAgICAgICAgICAgICBzZWxmLl9h cHBlbmRfbG9jYWxlX29wdGlvbihsb2MpCi0gCi0rICAgIGRlZiBfcmVmcmVzaF9sb2NhbGVfZHJv cGRvd24oc2VsZik6Ci0rICAgICAgICAjIFJlYnVpbGQgdGhlIGxhbmd1YWdlIGxpc3QgYW5kIGhh bmQgaXQgdG8gdGhlIGRyb3Bkb3duLgotKyAgICAgICAgc2VsZi5fcG9wdWxhdGVfbG9jYWxlX2xp c3QoKQotKwotKyAgICAgICAgc2VsZi5fc3VwcHJlc3NfbGFuZ3VhZ2VfY2IgPSBUcnVlCi0rICAg ICAgICBzZWxmLmxhbmd1YWdlX2Ryb3Bkb3duLnNldF9tb2RlbChzZWxmLl9sb2NhbGVfbmFtZXMp Ci0rICAgICAgICBzZWxmLl9zdXBwcmVzc19sYW5ndWFnZV9jYiA9IEZhbHNlCi0rCi0rICAgICAg ICBzZWxmLl9zZWxlY3RfY3VycmVudF9sb2NhbGVfaW5fZHJvcGRvd24oKQotKwotICAgICBkZWYg X2FwcGVuZF9sb2NhbGVfb3B0aW9uKHNlbGYsIGxvY2FsZV9zdHIpOgotICAgICAgICAgaWYgbG9j YWxlX3N0ciBpbiAoTm9uZSwgIiIsICJOb25lIiwgIm11bHRpbGluZ3VhbCIpOgotICAgICAgICAg ICAgIHJldHVybgotQEAgLTI1MywyMyArMzI2LDM2IEBACi0gICAgICAgICAgICAgICAgIHNlbGYu X21vZGVsLmRpc2Nvbm5lY3RfYnlfZnVuYyhzZWxmLl9tb2RlbF9jaGFuZ2VkX2NiKQotICAgICAg ICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgICAgICAgICAgIHBhc3MKLSsgICAgICAg ICAgICBzZWxmLl9tb2RlbCA9IE5vbmUKLSAKLS0gICAgICAgIGJhY2tlbmQgPSBzZWxmLl9zZXR0 aW5ncy5nZXRfc3RyaW5nKCJiYWNrZW5kIikKLSsgICAgICAgIGJhY2tlbmQgPSBzZWxmLl9iYWNr ZW5kKCkKLSAgICAgICAgIGxvY2FsZV9zdHIgPSBzZWxmLl9jdXJyZW50X2xvY2FsZS5sb2NhbGUK LSAKLS0gICAgICAgIGlmIGJhY2tlbmQgPT0gIndoaXNwZXIiOgotLSAgICAgICAgICAgIHNlbGYu X21vZGVsID0gU1RUV2hpc3Blck1vZGVsKGxvY2FsZV9zdHI9bG9jYWxlX3N0cikKLS0gICAgICAg IGVsaWYgYmFja2VuZCA9PSAib25ueGFzciI6Ci0tICAgICAgICAgICAgc2VsZi5fbW9kZWwgPSBT VFRPbm54QXNyTW9kZWwobG9jYWxlX3N0cj1sb2NhbGVfc3RyKQotLSAgICAgICAgZWxpZiBiYWNr ZW5kID09ICJtb29uc2hpbmUiOgotLSAgICAgICAgICAgIHNlbGYuX21vZGVsID0gU1RUTW9vbnNo aW5lTW9kZWwobG9jYWxlX3N0cj1sb2NhbGVfc3RyKQotLSAgICAgICAgZWxzZToKLS0gICAgICAg ICAgICBzZWxmLl9tb2RlbCA9IFNUVFZvc2tNb2RlbChsb2NhbGVfc3RyPWxvY2FsZV9zdHIpCi0r ICAgICAgICBpZiBzdHRfYmFja2VuZF9pc19hdmFpbGFibGUoYmFja2VuZCk6Ci0rICAgICAgICAg ICAgbW9kZWxfY2xhc3MgPSBzdHRfYmFja2VuZF9jb21wb25lbnQoYmFja2VuZCwgIm1vZGVsIikK LSsgICAgICAgICAgICBpZiBtb2RlbF9jbGFzcyBpcyBub3QgTm9uZToKLSsgICAgICAgICAgICAg ICAgdHJ5OgotKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbW9kZWwgPSBtb2RlbF9jbGFzcyhs b2NhbGVfc3RyPWxvY2FsZV9zdHIpCi0rICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZXJyb3I6Ci0rICAgICAgICAgICAgICAgICAgICBMT0dfTVNHLmVycm9yKCJjYW5ub3QgY3Jl YXRlIG1vZGVsIGZvciBiYWNrZW5kICVzICglcykiLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBiYWNrZW5kLCBlcnJvcikKLSsKLSsgICAgICAgIGlmIHNlbGYuX21vZGVsIGlz IG5vdCBOb25lOgotKyAgICAgICAgICAgIHNlbGYuX21vZGVsLmNvbm5lY3QoImNoYW5nZWQiLCBz ZWxmLl9tb2RlbF9jaGFuZ2VkX2NiKQotIAotLSAgICAgICAgc2VsZi5fbW9kZWwuY29ubmVjdCgi Y2hhbmdlZCIsIHNlbGYuX21vZGVsX2NoYW5nZWRfY2IpCi0gICAgICAgICBzZWxmLl91cGRhdGVf bW9kZWxfaW5mbygpCi0gCi0gICAgIGRlZiBfdXBkYXRlX21vZGVsX2luZm8oc2VsZik6Ci0rICAg ICAgICBiYWNrZW5kID0gc2VsZi5fYmFja2VuZCgpCi0rCi0rICAgICAgICBpZiBzdHRfYmFja2Vu ZF9taXNzaW5nX2RlcGVuZGVuY2llcyhiYWNrZW5kKToKLSsgICAgICAgICAgICBzZWxmLm1vZGVs X2luZm9fcm93LnNldF90aXRsZSgKLSsgICAgICAgICAgICAgICAgXygiJXMgaXMgbm90IGluc3Rh bGxlZCIpICUgc3R0X2JhY2tlbmRfZGlzcGxheV9uYW1lKGJhY2tlbmQpKQotKyAgICAgICAgICAg IHNlbGYubW9kZWxfaW5mb19yb3cuc2V0X3N1YnRpdGxlKAotKyAgICAgICAgICAgICAgICBzdHRf YmFja2VuZF9pbnN0YWxsX2NvbW1hbmQoYmFja2VuZCkpCi0rICAgICAgICAgICAgc2VsZi5jaGFu Z2VfbW9kZWxfYnV0dG9uLnNldF9sYWJlbChfKCJJbnN0YWxs4oCmIikpCi0rICAgICAgICAgICAg cmV0dXJuCi0rCi0gICAgICAgICBpZiBzZWxmLl9tb2RlbCBpcyBOb25lIG9yIG5vdCBzZWxmLl9t b2RlbC5hdmFpbGFibGUoKToKLSAgICAgICAgICAgICBzZWxmLm1vZGVsX2luZm9fcm93LnNldF90 aXRsZShfKCJObyBtb2RlbCBkb3dubG9hZGVkIikpCi0gICAgICAgICAgICAgc2VsZi5tb2RlbF9p bmZvX3Jvdy5zZXRfc3VidGl0bGUoCi1AQCAtMjg4LDE2ICszNzQsOCBAQAotICAgICAgICAgICAg ICAgICBlbHNlIF8oIkluc3RhbGxlZCBtYW51YWxseSIpKQotICAgICAgICAgICAgIHJldHVybgot IAotLSAgICAgICAgYmFja2VuZCA9IHNlbGYuX3NldHRpbmdzLmdldF9zdHJpbmcoImJhY2tlbmQi KQotLSAgICAgICAgaWYgYmFja2VuZCA9PSAid2hpc3BlciI6Ci0tICAgICAgICAgICAgbWFuYWdl ciA9IHN0dF93aGlzcGVyX29ubGluZV9tb2RlbF9tYW5hZ2VyKCkKLS0gICAgICAgIGVsaWYgYmFj a2VuZCA9PSAib25ueGFzciI6Ci0tICAgICAgICAgICAgbWFuYWdlciA9IHN0dF9vbm54YXNyX29u bGluZV9tb2RlbF9tYW5hZ2VyKCkKLS0gICAgICAgIGVsaWYgYmFja2VuZCA9PSAibW9vbnNoaW5l IjoKLS0gICAgICAgICAgICBtYW5hZ2VyID0gc3R0X21vb25zaGluZV9vbmxpbmVfbW9kZWxfbWFu YWdlcigpCi0tICAgICAgICBlbHNlOgotLSAgICAgICAgICAgIG1hbmFnZXIgPSBzdHRfdm9za19v bmxpbmVfbW9kZWxfbWFuYWdlcigpCi0tICAgICAgICBkZXNjID0gbWFuYWdlci5nZXRfbW9kZWxf ZGVzY3JpcHRpb24obW9kZWxfbmFtZSkKLSsgICAgICAgIG1hbmFnZXIgPSBzdHRfYmFja2VuZF9t b2RlbF9tYW5hZ2VyKGJhY2tlbmQpCi0rICAgICAgICBkZXNjID0gbWFuYWdlci5nZXRfbW9kZWxf ZGVzY3JpcHRpb24obW9kZWxfbmFtZSkgaWYgbWFuYWdlciBlbHNlIE5vbmUKLSAKLSAgICAgICAg IHNlbGYubW9kZWxfaW5mb19yb3cuc2V0X3RpdGxlKG1vZGVsX25hbWUpCi0gCi1AQCAtMzQ3LDYg KzQyNSw5IEBACi0gICAgICAgICAgICAgICAgICAgICBzZWxmLm1vZGVsX2luZm9fcm93LnNldF9z dWJ0aXRsZShzaXplKQotIAotICAgICBkZWYgX2F1dG9fcHJvbXB0X21vZGVsX2Rvd25sb2FkKHNl bGYpOgotKyAgICAgICAgaWYgbm90IHN0dF9iYWNrZW5kX2lzX2F2YWlsYWJsZShzZWxmLl9iYWNr ZW5kKCkpOgotKyAgICAgICAgICAgIHJldHVybgotKwotICAgICAgICAgaWYgc2VsZi5fbW9kZWwg aXMgbm90IE5vbmUgYW5kIG5vdCBzZWxmLl9tb2RlbC5hdmFpbGFibGUoKToKLSAgICAgICAgICAg ICBkaWFsb2cgPSBTVFRNb2RlbENob29zZXJEaWFsb2cobW9kZWw9c2VsZi5fbW9kZWwpCi0gICAg ICAgICAgICAgZGlhbG9nLnNldF90cmFuc2llbnRfZm9yKHNlbGYpCi1AQCAtMzU1LDkgKzQzNiwx MzQgQEAKLSAgICAgZGVmIF9tb2RlbF9jaGFuZ2VkX2NiKHNlbGYsIG1vZGVsKToKLSAgICAgICAg IHNlbGYuX3VwZGF0ZV9tb2RlbF9pbmZvKCkKLSAKLSsgICAgZGVmIF9jb3B5X3RvX2NsaXBib2Fy ZChzZWxmLCB0ZXh0KToKLSsgICAgICAgIGNsaXBib2FyZCA9IHNlbGYuZ2V0X2NsaXBib2FyZCgp Ci0rICAgICAgICBpZiBjbGlwYm9hcmQgaXMgTm9uZToKLSsgICAgICAgICAgICByZXR1cm4KLSsK LSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBjbGlwYm9hcmQuc2V0X2NvbnRlbnQoCi0rICAg ICAgICAgICAgICAgIEdkay5Db250ZW50UHJvdmlkZXIubmV3X2Zvcl92YWx1ZShHT2JqZWN0LlZh bHVlKHN0ciwgdGV4dCkpKQotKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLSsg ICAgICAgICAgICBMT0dfTVNHLndhcm5pbmcoImNhbm5vdCBjb3B5IHRvIGNsaXBib2FyZCAoJXMp IiwgZXJyb3IpCi0rCi0rICAgIGRlZiBfaW5zdGFsbF9kaWFsb2dfYm9keShzZWxmLCBiYWNrZW5k LCBtaXNzaW5nKToKLSsgICAgICAgIG1vZHVsZXMgPSAiXG4iLmpvaW4oIiAgICDigKIgJXMiICUg ZGVwLnJlcXVpcmVtZW50IGZvciBkZXAgaW4gbWlzc2luZykKLSsgICAgICAgIHJldHVybiBfKCJU aGUgJShiYWNrZW5kKXMgYmFja2VuZCBuZWVkcyBweXRob24gbW9kdWxlcyB0aGF0IGFyZSBub3Qg IgotKyAgICAgICAgICAgICAgICAgImluc3RhbGxlZCBvbiB0aGlzIHN5c3RlbTpcblxuIgotKyAg ICAgICAgICAgICAgICAgIiUobW9kdWxlcylzXG5cbiIKLSsgICAgICAgICAgICAgICAgICJJbnN0 YWxsIHRoZW0gaW4gYSB0ZXJtaW5hbCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZCwgIgotKyAg ICAgICAgICAgICAgICAgInRoZW4gcHJlc3Mg4oCcQ2hlY2sgQWdhaW7igJ06XG5cbiIKLSsgICAg ICAgICAgICAgICAgICIgICAgJShjb21tYW5kKXMiKSAlIHsKLSsgICAgICAgICAgICAgICAgICAg ICAiYmFja2VuZCI6IHN0dF9iYWNrZW5kX2Rpc3BsYXlfbmFtZShiYWNrZW5kKSwKLSsgICAgICAg ICAgICAgICAgICAgICAibW9kdWxlcyI6IG1vZHVsZXMsCi0rICAgICAgICAgICAgICAgICAgICAg ImNvbW1hbmQiOiBzdHRfYmFja2VuZF9pbnN0YWxsX2NvbW1hbmQoYmFja2VuZCl9Ci0rCi0rICAg IGRlZiBfcHJlc2VudF9pbnN0YWxsX2RpYWxvZyhzZWxmLCBiYWNrZW5kKToKLSsgICAgICAgIG1p c3NpbmcgPSBzdHRfYmFja2VuZF9taXNzaW5nX2RlcGVuZGVuY2llcyhiYWNrZW5kLCByZWZyZXNo PVRydWUpCi0rICAgICAgICBpZiBub3QgbWlzc2luZzoKLSsgICAgICAgICAgICByZXR1cm4gRmFs c2UKLSsKLSsgICAgICAgIGhlYWRpbmcgPSBfKCIlcyBJcyBOb3QgSW5zdGFsbGVkIikgJSBzdHRf YmFja2VuZF9kaXNwbGF5X25hbWUoYmFja2VuZCkKLSsgICAgICAgIGJvZHkgPSBzZWxmLl9pbnN0 YWxsX2RpYWxvZ19ib2R5KGJhY2tlbmQsIG1pc3NpbmcpCi0rICAgICAgICBjb21tYW5kID0gc3R0 X2JhY2tlbmRfaW5zdGFsbF9jb21tYW5kKGJhY2tlbmQpCi0rCi0rICAgICAgICAjIEFkdy5BbGVy dERpYWxvZyBuZWVkcyBsaWJhZHdhaXRhIDEuNSwgZmFsbCBiYWNrIG9uIEFkdy5NZXNzYWdlRGlh bG9nLgotKyAgICAgICAgaWYgaGFzYXR0cihBZHcsICJBbGVydERpYWxvZyIpOgotKyAgICAgICAg ICAgIGRpYWxvZyA9IEFkdy5BbGVydERpYWxvZyhoZWFkaW5nPWhlYWRpbmcsIGJvZHk9Ym9keSkK LSsgICAgICAgICAgICBzZWxmLl9zZXR1cF9pbnN0YWxsX2RpYWxvZyhkaWFsb2csIGJhY2tlbmQs IGNvbW1hbmQpCi0rICAgICAgICAgICAgZGlhbG9nLnByZXNlbnQoc2VsZikKLSsgICAgICAgIGVs c2U6Ci0rICAgICAgICAgICAgZGlhbG9nID0gQWR3Lk1lc3NhZ2VEaWFsb2codHJhbnNpZW50X2Zv cj1zZWxmLCBtb2RhbD1UcnVlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGhlYWRpbmc9aGVhZGluZywgYm9keT1ib2R5KQotKyAgICAgICAgICAgIHNlbGYuX3NldHVw X2luc3RhbGxfZGlhbG9nKGRpYWxvZywgYmFja2VuZCwgY29tbWFuZCkKLSsgICAgICAgICAgICBk aWFsb2cucHJlc2VudCgpCi0rCi0rICAgICAgICByZXR1cm4gVHJ1ZQotKwotKyAgICBkZWYgX3Nl dHVwX2luc3RhbGxfZGlhbG9nKHNlbGYsIGRpYWxvZywgYmFja2VuZCwgY29tbWFuZCk6Ci0rICAg ICAgICBkaWFsb2cuYWRkX3Jlc3BvbnNlKCJjbG9zZSIsIF8oIkNsb3NlIikpCi0rICAgICAgICBk aWFsb2cuYWRkX3Jlc3BvbnNlKCJjb3B5IiwgXygiQ29weSBDb21tYW5kIikpCi0rICAgICAgICBk aWFsb2cuYWRkX3Jlc3BvbnNlKCJyZWNoZWNrIiwgXygiQ2hlY2sgQWdhaW4iKSkKLSsgICAgICAg IGRpYWxvZy5zZXRfcmVzcG9uc2VfYXBwZWFyYW5jZSgicmVjaGVjayIsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWR3LlJlc3BvbnNlQXBwZWFyYW5jZS5TVUdHRVNU RUQpCi0rICAgICAgICBkaWFsb2cuc2V0X2RlZmF1bHRfcmVzcG9uc2UoInJlY2hlY2siKQotKyAg ICAgICAgZGlhbG9nLnNldF9jbG9zZV9yZXNwb25zZSgiY2xvc2UiKQotKyAgICAgICAgZGlhbG9n LmNvbm5lY3QoInJlc3BvbnNlIiwgc2VsZi5faW5zdGFsbF9kaWFsb2dfcmVzcG9uc2VfY2IsCi0r ICAgICAgICAgICAgICAgICAgICAgICBiYWNrZW5kLCBjb21tYW5kKQotKwotKyAgICBkZWYgX2lu c3RhbGxfZGlhbG9nX3Jlc3BvbnNlX2NiKHNlbGYsIGRpYWxvZywgcmVzcG9uc2UsIGJhY2tlbmQs IGNvbW1hbmQpOgotKyAgICAgICAgaWYgcmVzcG9uc2UgPT0gImNvcHkiOgotKyAgICAgICAgICAg IHNlbGYuX2NvcHlfdG9fY2xpcGJvYXJkKGNvbW1hbmQpCi0rICAgICAgICAgICAgc2VsZi50b2Fz dF9vdmVybGF5LmFkZF90b2FzdCgKLSsgICAgICAgICAgICAgICAgQWR3LlRvYXN0KHRpdGxlPV8o IkNvbW1hbmQgY29waWVkIHRvIHRoZSBjbGlwYm9hcmQiKSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgIHRpbWVvdXQ9MykpCi0rICAgICAgICAgICAgcmV0dXJuCi0rCi0rICAgICAgICBpZiBy ZXNwb25zZSAhPSAicmVjaGVjayI6Ci0rICAgICAgICAgICAgcmV0dXJuCi0rCi0rICAgICAgICBp ZiBub3Qgc3R0X2JhY2tlbmRfaXNfYXZhaWxhYmxlKGJhY2tlbmQsIHJlZnJlc2g9VHJ1ZSk6Ci0r ICAgICAgICAgICAgc2VsZi50b2FzdF9vdmVybGF5LmFkZF90b2FzdCgKLSsgICAgICAgICAgICAg ICAgQWR3LlRvYXN0KHRpdGxlPV8oIiVzIGlzIHN0aWxsIG5vdCBpbnN0YWxsZWQiKQotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgJSBzdHRfYmFja2VuZF9kaXNwbGF5X25hbWUoYmFja2VuZCks IHRpbWVvdXQ9NSkpCi0rICAgICAgICAgICAgcmV0dXJuCi0rCi0rICAgICAgICBzZWxmLl91cGRh dGVfYmFja2VuZF9yb3dzKCkKLSsgICAgICAgIGlmIGJhY2tlbmQgIT0gc2VsZi5fYmFja2VuZCgp OgotKyAgICAgICAgICAgIHNlbGYuX2FwcGx5X2JhY2tlbmQoYmFja2VuZCkKLSsgICAgICAgIGVs c2U6Ci0rICAgICAgICAgICAgc2VsZi5fcmVsb2FkX2JhY2tlbmQoKQotKwotKyAgICBkZWYgX2lu c3RhbGxfYWN0aW9uX2FjdGl2YXRlZChzZWxmLCBfYWN0aW9uLCBfcGFyYW0pOgotKyAgICAgICAg c2VsZi5fcHJlc2VudF9pbnN0YWxsX2RpYWxvZyhzZWxmLl9iYWNrZW5kKCkpCi0rCi0rICAgIGRl ZiBfYmFja2VuZF9ub3RfaW5zdGFsbGVkKHNlbGYpOgotKyAgICAgICAgaWYgc2VsZi5fbWlzc2lu Z19kZXBzX3RvYXN0ICE9IE5vbmU6Ci0rICAgICAgICAgICAgcmV0dXJuCi0rCi0rICAgICAgICBp ZiBzZWxmLl9ub19tb2RlbF90b2FzdCAhPSBOb25lOgotKyAgICAgICAgICAgIHNlbGYuX25vX21v ZGVsX3RvYXN0LmRpc21pc3MoKQotKyAgICAgICAgICAgIHNlbGYuX25vX21vZGVsX3RvYXN0ID0g Tm9uZQotKyAgICAgICAgaWYgc2VsZi5fdW5zdXBwb3J0ZWRfbG9jYWxlX3RvYXN0ICE9IE5vbmU6 Ci0rICAgICAgICAgICAgc2VsZi5fdW5zdXBwb3J0ZWRfbG9jYWxlX3RvYXN0LmRpc21pc3MoKQot KyAgICAgICAgICAgIHNlbGYuX3Vuc3VwcG9ydGVkX2xvY2FsZV90b2FzdCA9IE5vbmUKLSsKLSsg ICAgICAgIHNlbGYuX21pc3NpbmdfZGVwc190b2FzdCA9IEFkdy5Ub2FzdCgKLSsgICAgICAgICAg ICB0aXRsZT1fKCIlcyBpcyBub3QgaW5zdGFsbGVkIikKLSsgICAgICAgICAgICAgICAgICAlIHN0 dF9iYWNrZW5kX2Rpc3BsYXlfbmFtZShzZWxmLl9iYWNrZW5kKCkpLAotKyAgICAgICAgICAgIHRp bWVvdXQ9MCwKLSsgICAgICAgICAgICBidXR0b25fbGFiZWw9XygiSG93IHRvIEluc3RhbGwiKSwK LSsgICAgICAgICAgICBhY3Rpb25fbmFtZT0idG9hc3QuaW5zdGFsbF9iYWNrZW5kIikKLSsgICAg ICAgIHNlbGYuX21pc3NpbmdfZGVwc190b2FzdC5jb25uZWN0KCJkaXNtaXNzZWQiLCBzZWxmLl90 b2FzdF9kaXNtaXNzZWQpCi0rICAgICAgICBzZWxmLnRvYXN0X292ZXJsYXkuYWRkX3RvYXN0KHNl bGYuX21pc3NpbmdfZGVwc190b2FzdCkKLSsKLSsgICAgZGVmIF9yZWZyZXNoX3N0YXR1c19tZXNz YWdlcyhzZWxmKToKLSsgICAgICAgIGlmIG5vdCBzdHRfYmFja2VuZF9pc19hdmFpbGFibGUoc2Vs Zi5fYmFja2VuZCgpKToKLSsgICAgICAgICAgICBzZWxmLl9iYWNrZW5kX25vdF9pbnN0YWxsZWQo KQotKyAgICAgICAgICAgIHJldHVybgotKwotKyAgICAgICAgaWYgc2VsZi5fbWlzc2luZ19kZXBz X3RvYXN0ICE9IE5vbmU6Ci0rICAgICAgICAgICAgc2VsZi5fbWlzc2luZ19kZXBzX3RvYXN0LmRp c21pc3MoKQotKyAgICAgICAgICAgIHNlbGYuX21pc3NpbmdfZGVwc190b2FzdCA9IE5vbmUKLSsK LSsgICAgICAgIGlmIChzZWxmLl9tb2RlbCBpcyBOb25lIG9yIG5vdCBzZWxmLl9tb2RlbC5hdmFp bGFibGUoKQotKyAgICAgICAgICAgICAgICBvciBzZWxmLl9lbmdpbmUgaXMgTm9uZSBvciBub3Qg c2VsZi5fZW5naW5lLmhhc19tb2RlbCgpKToKLSsgICAgICAgICAgICBzZWxmLl9lbmdpbmVfaGFz X25vX21vZGVsKCkKLSsgICAgICAgICAgICByZXR1cm4KLSsKLSsgICAgICAgIGlmIHNlbGYuX25v X21vZGVsX3RvYXN0ICE9IE5vbmU6Ci0rICAgICAgICAgICAgc2VsZi5fbm9fbW9kZWxfdG9hc3Qu ZGlzbWlzcygpCi0rICAgICAgICAgICAgc2VsZi5fbm9fbW9kZWxfdG9hc3QgPSBOb25lCi0rCi0r ICAgICAgICBpZiBzZWxmLl92YWxpZF9mb3JtYXR0aW5nX2ZpbGUgPT0gRmFsc2U6Ci0rICAgICAg ICAgICAgc2VsZi5fdW5zdXBwb3J0ZWRfbG9jYWxlKCkKLSsgICAgICAgIGVsaWYgc2VsZi5fdW5z dXBwb3J0ZWRfbG9jYWxlX3RvYXN0ICE9IE5vbmU6Ci0rICAgICAgICAgICAgc2VsZi5fdW5zdXBw b3J0ZWRfbG9jYWxlX3RvYXN0LmRpc21pc3MoKQotKyAgICAgICAgICAgIHNlbGYuX3Vuc3VwcG9y dGVkX2xvY2FsZV90b2FzdCA9IE5vbmUKLSAKLSAgICAgZGVmIF91cGRhdGVfdm9pY2VfY29tbWFu ZHNfdmlzaWJpbGl0eShzZWxmKToKLS0gICAgICAgIGlzX3Zvc2sgPSAoc2VsZi5fc2V0dGluZ3Mu Z2V0X3N0cmluZygiYmFja2VuZCIpID09ICJ2b3NrIikKLSsgICAgICAgIGlzX3Zvc2sgPSAoc2Vs Zi5fYmFja2VuZCgpID09ICJ2b3NrIikKLSAgICAgICAgIHNlbGYudmNfd2hpc3Blcl93YXJuaW5n LnNldF92aXNpYmxlKG5vdCBpc192b3NrKQotICAgICAgICAgc2VsZi52b2ljZV9jb21tYW5kc19n cm91cC5zZXRfdmlzaWJsZShpc192b3NrKQotIAotQEAgLTM3Miw0MCArNTc4LDQwIEBACi0gICAg ICAgICBpZiBnZXRhdHRyKHNlbGYsICdfc3VwcHJlc3NfZW5naW5lX2NiJywgRmFsc2UpOgotICAg ICAgICAgICAgIHJldHVybgotIAotLSAgICAgICAgaWYgYnV0dG9uID09IHNlbGYudm9za19jaGVj azoKLS0gICAgICAgICAgICBiYWNrZW5kID0gInZvc2siCi0tICAgICAgICBlbGlmIGJ1dHRvbiA9 PSBzZWxmLm1vb25zaGluZV9jaGVjazoKLS0gICAgICAgICAgICBiYWNrZW5kID0gIm1vb25zaGlu ZSIKLS0gICAgICAgIGVsaWYgYnV0dG9uID09IHNlbGYud2hpc3Blcl9jaGVjazoKLS0gICAgICAg ICAgICBiYWNrZW5kID0gIndoaXNwZXIiCi0tICAgICAgICBlbHNlOgotLSAgICAgICAgICAgIGJh Y2tlbmQgPSAib25ueGFzciIKLSsgICAgICAgIGJhY2tlbmQgPSBzZWxmLl9iYWNrZW5kX2Zvcl9j aGVja19idXR0b24oYnV0dG9uKQotKyAgICAgICAgaWYgYmFja2VuZCBpcyBOb25lOgotKyAgICAg ICAgICAgIHJldHVybgotIAotLSAgICAgICAgY3VycmVudCA9IHNlbGYuX3NldHRpbmdzLmdldF9z dHJpbmcoImJhY2tlbmQiKQotKyAgICAgICAgY3VycmVudCA9IHNlbGYuX2JhY2tlbmQoKQotICAg ICAgICAgaWYgYmFja2VuZCA9PSBjdXJyZW50OgotICAgICAgICAgICAgIHJldHVybgotIAotLSAg ICAgICAgc2VsZi5fc2V0dGluZ3Muc2V0X3N0cmluZygiYmFja2VuZCIsIGJhY2tlbmQpCi0tICAg ICAgICBvbGRfbG9jYWxlID0gc2VsZi5fY3VycmVudF9sb2NhbGUubG9jYWxlCi0tICAgICAgICBz ZWxmLl9wb3B1bGF0ZV9sb2NhbGVfbGlzdCgpCi0tICAgICAgICBzZWxmLl9zdXBwcmVzc19sYW5n dWFnZV9jYiA9IFRydWUKLS0gICAgICAgIHNlbGYubGFuZ3VhZ2VfZHJvcGRvd24uc2V0X21vZGVs KHNlbGYuX2xvY2FsZV9uYW1lcykKLS0gICAgICAgIHNlbGYuX3N1cHByZXNzX2xhbmd1YWdlX2Ni ID0gRmFsc2UKLSsgICAgICAgIGlmIG5vdCBzdHRfYmFja2VuZF9pc19hdmFpbGFibGUoYmFja2Vu ZCwgcmVmcmVzaD1UcnVlKToKLSsgICAgICAgICAgICBzZWxmLl9zZWxlY3RfYmFja2VuZF9idXR0 b24oY3VycmVudCkKLSsgICAgICAgICAgICBzZWxmLl91cGRhdGVfYmFja2VuZF9yb3dzKCkKLSsg ICAgICAgICAgICBzZWxmLl9wcmVzZW50X2luc3RhbGxfZGlhbG9nKGJhY2tlbmQpCi0rICAgICAg ICAgICAgcmV0dXJuCi0gCi0tICAgICAgICBpZiBvbGRfbG9jYWxlIGluIHNlbGYuX2xvY2FsZV9s aXN0OgotLSAgICAgICAgICAgIHNlbGYuX3N1cHByZXNzX2xhbmd1YWdlX2NiID0gVHJ1ZQotLSAg ICAgICAgICAgIHNlbGYubGFuZ3VhZ2VfZHJvcGRvd24uc2V0X3NlbGVjdGVkKAotLSAgICAgICAg ICAgICAgICBzZWxmLl9sb2NhbGVfbGlzdC5pbmRleChvbGRfbG9jYWxlKSkKLS0gICAgICAgICAg ICBzZWxmLl9zdXBwcmVzc19sYW5ndWFnZV9jYiA9IEZhbHNlCi0rICAgICAgICBzZWxmLl9hcHBs eV9iYWNrZW5kKGJhY2tlbmQpCi0gCi0tICAgICAgICBzZWxmLl9pbml0X21vZGVsKCkKLSsgICAg ZGVmIF9hcHBseV9iYWNrZW5kKHNlbGYsIGJhY2tlbmQpOgotKyAgICAgICAgc2VsZi5fc2V0dGlu Z3Muc2V0X3N0cmluZygiYmFja2VuZCIsIGJhY2tlbmQpCi0rICAgICAgICBzZWxmLl9zZWxlY3Rf YmFja2VuZF9idXR0b24oYmFja2VuZCkKLSsgICAgICAgIHNlbGYuX3JlbG9hZF9iYWNrZW5kKHBy b21wdF9kb3dubG9hZD1UcnVlKQotIAotKyAgICBkZWYgX3JlbG9hZF9iYWNrZW5kKHNlbGYsIHBy b21wdF9kb3dubG9hZD1GYWxzZSk6Ci0rICAgICAgICBzZWxmLl9yZWZyZXNoX2xvY2FsZV9kcm9w ZG93bigpCi0rICAgICAgICBzZWxmLl9pbml0X21vZGVsKCkKLSAgICAgICAgIHNlbGYuX2NyZWF0 ZV9lbmdpbmUoKQotICAgICAgICAgc2VsZi5fdXBkYXRlX3ZvaWNlX2NvbW1hbmRzX3Zpc2liaWxp dHkoKQotICAgICAgICAgc2VsZi5fZW1wdHlfc2hvcnRjdXRfcGFnZSgpCi0gICAgICAgICBzZWxm Ll9sb2FkX3V0dGVyYW5jZXMoKQotKyAgICAgICAgc2VsZi5fdXBkYXRlX2JhY2tlbmRfcm93cygp Ci0rICAgICAgICBzZWxmLl9yZWZyZXNoX3N0YXR1c19tZXNzYWdlcygpCi0gCi0tICAgICAgICBp ZiBzZWxmLl9tb2RlbCBpcyBub3QgTm9uZSBhbmQgbm90IHNlbGYuX21vZGVsLmF2YWlsYWJsZSgp OgotKyAgICAgICAgaWYgKHByb21wdF9kb3dubG9hZAotKyAgICAgICAgICAgICAgICBhbmQgc2Vs Zi5fbW9kZWwgaXMgbm90IE5vbmUKLSsgICAgICAgICAgICAgICAgYW5kIG5vdCBzZWxmLl9tb2Rl bC5hdmFpbGFibGUoKSk6Ci0gICAgICAgICAgICAgc2VsZi5fYXV0b19wcm9tcHRfbW9kZWxfZG93 bmxvYWQoKQotIAotICAgICBAR3RrLlRlbXBsYXRlLkNhbGxiYWNrKCkKLUBAIC00NDEsNiArNjQ3 LDE0IEBACi0gCi0gICAgIEBHdGsuVGVtcGxhdGUuQ2FsbGJhY2soKQotICAgICBkZWYgY2hhbmdl X21vZGVsX2NsaWNrZWRfY2Ioc2VsZiwgKl9hcmdzKToKLSsgICAgICAgIGJhY2tlbmQgPSBzZWxm Ll9iYWNrZW5kKCkKLSsgICAgICAgIGlmIG5vdCBzdHRfYmFja2VuZF9pc19hdmFpbGFibGUoYmFj a2VuZCwgcmVmcmVzaD1UcnVlKToKLSsgICAgICAgICAgICBzZWxmLl9wcmVzZW50X2luc3RhbGxf ZGlhbG9nKGJhY2tlbmQpCi0rICAgICAgICAgICAgcmV0dXJuCi0rCi0rICAgICAgICBpZiBzZWxm Ll9tb2RlbCBpcyBOb25lOgotKyAgICAgICAgICAgIHNlbGYuX3JlbG9hZF9iYWNrZW5kKCkKLSsK LSAgICAgICAgIGlmIHNlbGYuX21vZGVsICE9IE5vbmU6Ci0gICAgICAgICAgICAgZGlhbG9nID0g U1RUTW9kZWxDaG9vc2VyRGlhbG9nKG1vZGVsPXNlbGYuX21vZGVsKQotICAgICAgICAgICAgIGRp YWxvZy5zZXRfdHJhbnNpZW50X2ZvcihzZWxmKQotQEAgLTQ1OCwxMSArNjcyLDcgQEAKLSAgICAg ICAgIHNlbGYuX3NlbGVjdF9jdXJyZW50X2xvY2FsZV9pbl9kcm9wZG93bigpCi0gCi0gICAgICAg ICBpZiBzZWxmLl9jdXJyZW50X2xvY2FsZS5sb2NhbGUgbm90IGluIHNlbGYuX2xvY2FsZV9saXN0 OgotLSAgICAgICAgICAgIHNlbGYuX3BvcHVsYXRlX2xvY2FsZV9saXN0KCkKLS0gICAgICAgICAg ICBzZWxmLl9zdXBwcmVzc19sYW5ndWFnZV9jYiA9IFRydWUKLS0gICAgICAgICAgICBzZWxmLmxh bmd1YWdlX2Ryb3Bkb3duLnNldF9tb2RlbChzZWxmLl9sb2NhbGVfbmFtZXMpCi0tICAgICAgICAg ICAgc2VsZi5fc3VwcHJlc3NfbGFuZ3VhZ2VfY2IgPSBGYWxzZQotLSAgICAgICAgICAgIHNlbGYu X3NlbGVjdF9jdXJyZW50X2xvY2FsZV9pbl9kcm9wZG93bigpCi0rICAgICAgICAgICAgc2VsZi5f cmVmcmVzaF9sb2NhbGVfZHJvcGRvd24oKQotIAotICAgICAgICAgc2VsZi5faW5pdF9tb2RlbCgp Ci0gICAgICAgICBzZWxmLl9sb2FkX2N1cnJlbnRfbG9jYWxlKCkKLUBAIC01NDEsMjAgKzc1MSw3 IEBACi0gICAgIGRlZiBfbG9hZF9jdXJyZW50X2xvY2FsZShzZWxmKToKLSAgICAgICAgIHNlbGYu X2VtcHR5X3Nob3J0Y3V0X3BhZ2UoKQotICAgICAgICAgc2VsZi5fbG9hZF91dHRlcmFuY2VzKCkK LS0KLS0gICAgICAgIGlmIG5vdCBzZWxmLl9lbmdpbmUuaGFzX21vZGVsKCk6Ci0tICAgICAgICAg ICAgc2VsZi5fZW5naW5lX2hhc19ub19tb2RlbCgpCi0tICAgICAgICAgICAgcmV0dXJuCi0tCi0t ICAgICAgICBpZiBzZWxmLl9ub19tb2RlbF90b2FzdCAhPSBOb25lOgotLSAgICAgICAgICAgIHNl bGYuX25vX21vZGVsX3RvYXN0LmRpc21pc3MoKQotLSAgICAgICAgICAgIHNlbGYuX25vX21vZGVs X3RvYXN0ID0gTm9uZQotLQotLSAgICAgICAgaWYgbm90IHNlbGYuX3ZhbGlkX2Zvcm1hdHRpbmdf ZmlsZToKLS0gICAgICAgICAgICBzZWxmLl91bnN1cHBvcnRlZF9sb2NhbGUoKQotLSAgICAgICAg ZWxpZiBzZWxmLl91bnN1cHBvcnRlZF9sb2NhbGVfdG9hc3QgIT0gTm9uZToKLS0gICAgICAgICAg ICBzZWxmLl91bnN1cHBvcnRlZF9sb2NhbGVfdG9hc3QuZGlzbWlzcygpCi0tICAgICAgICAgICAg c2VsZi5fdW5zdXBwb3J0ZWRfbG9jYWxlX3RvYXN0ID0gTm9uZQotKyAgICAgICAgc2VsZi5fcmVm cmVzaF9zdGF0dXNfbWVzc2FnZXMoKQotIAotICAgICBkZWYgX2FwcGx5X2NoYW5nZShzZWxmKToK LSAgICAgICAgIExPR19NU0cuZGVidWcoIm92ZXJyaWRlIGZpbGUgYmVpbmcgd3JpdHRlbiIpCi1A QCAtNjA4LDYgKzgwNSwxMCBAQAotICAgICAgICAgc2VsZi5fcHJlc2VudF9zaG9ydGN1dF9kaWFs b2cocm93KQotIAotICAgICBkZWYgX3ByZXNlbnRfc2hvcnRjdXRfZGlhbG9nKHNlbGYsIHJvdyk6 Ci0rICAgICAgICBpZiBzZWxmLl9lbmdpbmUgaXMgTm9uZToKLSsgICAgICAgICAgICBMT0dfTVNH Lndhcm5pbmcoIm5vIGVuZ2luZSBhdmFpbGFibGUsIGNhbm5vdCBlZGl0IHNob3J0Y3V0cyIpCi0r ICAgICAgICAgICAgcmV0dXJuCi0rCi0gICAgICAgICBkaWFsb2cgPSBTVFRTaG9ydGN1dERpYWxv ZygKLSAgICAgICAgICAgICByb3c9cm93LCBlbmdpbmU9c2VsZi5fZW5naW5lLCB0cmFuc2llbnRf Zm9yPXNlbGYpCi0gICAgICAgICBkaWFsb2cuY29ubmVjdCgicmVzcG9uc2UiLCBzZWxmLl9zaG9y dGN1dF9kaWFsb2dfcmVzcG9uc2VfY2IpCi1AQCAtNzgxLDcgKzk4Miw5IEBACi0gICAgICAgICBz ZWxmLl9hdXRvX3Byb21wdF9tb2RlbF9kb3dubG9hZCgpCi0gCi0gICAgIGRlZiBfdG9hc3RfZGlz bWlzc2VkKHNlbGYsIHRvYXN0KToKLS0gICAgICAgIGlmIHRvYXN0ID09IHNlbGYuX25vX21vZGVs X3RvYXN0OgotKyAgICAgICAgaWYgdG9hc3QgPT0gc2VsZi5fbWlzc2luZ19kZXBzX3RvYXN0Ogot KyAgICAgICAgICAgIHNlbGYuX21pc3NpbmdfZGVwc190b2FzdD1Ob25lCi0rICAgICAgICBlbGlm IHRvYXN0ID09IHNlbGYuX25vX21vZGVsX3RvYXN0OgotICAgICAgICAgICAgIHNlbGYuX25vX21v ZGVsX3RvYXN0PU5vbmUKLSAKLSAgICAgICAgICAgICAjIERpc3BsYXkgdGhlIG90aGVyIG1lc3Nh Z2UgaWYgbmVlZGVkCi1AQCAtNzkyLDExICs5OTUsMTQgQEAKLSAKLSAgICAgZGVmIF91bnN1cHBv cnRlZF9sb2NhbGUoc2VsZik6Ci0gICAgICAgICAjIENhcmVmdWw6IHdlIGNhbiBoYXZlIG5vIGZv cm1hdHRpbmcgZmlsZSBidXQgYW4gb3ZlcnJpZGluZyBvbmUgISEKLSsgICAgICAgIGlmIHNlbGYu X21pc3NpbmdfZGVwc190b2FzdCAhPSBOb25lOgotKyAgICAgICAgICAgIHJldHVybgotKwotICAg ICAgICAgaWYgc2VsZi5fbm9fbW9kZWxfdG9hc3QgIT0gTm9uZToKLSAgICAgICAgICAgICByZXR1 cm4KLSAKLSAgICAgICAgICMgRm9ybWF0dGluZyBmaWxlcyBvbmx5IGV4aXN0IGZvciB2b3NrOyBv dGhlciBlbmdpbmVzIGhhdmUgbm8gZmlsZXMgdG8gZmluZAotLSAgICAgICAgaWYgc2VsZi5fc2V0 dGluZ3MuZ2V0X3N0cmluZygiYmFja2VuZCIpICE9ICJ2b3NrIjoKLSsgICAgICAgIGlmIHNlbGYu X2JhY2tlbmQoKSAhPSAidm9zayI6Ci0gICAgICAgICAgICAgaWYgc2VsZi5fdW5zdXBwb3J0ZWRf bG9jYWxlX3RvYXN0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICBzZWxmLl91bnN1cHBv cnRlZF9sb2NhbGVfdG9hc3QuZGlzbWlzcygpCi0gICAgICAgICAgICAgICAgIHNlbGYuX3Vuc3Vw cG9ydGVkX2xvY2FsZV90b2FzdCA9IE5vbmUKLUBAIC04MTYsNiArMTAyMiw5IEBACi0gICAgICAg ICBzZWxmLnRvYXN0X292ZXJsYXkuYWRkX3RvYXN0KHNlbGYuX3Vuc3VwcG9ydGVkX2xvY2FsZV90 b2FzdCkKLSAKLSAgICAgZGVmIF9lbmdpbmVfaGFzX25vX21vZGVsKHNlbGYpOgotKyAgICAgICAg aWYgc2VsZi5fbWlzc2luZ19kZXBzX3RvYXN0ICE9IE5vbmU6Ci0rICAgICAgICAgICAgcmV0dXJu Ci0rCi0gICAgICAgICBpZiBzZWxmLl9ub19tb2RlbF90b2FzdCAhPSBOb25lOgotICAgICAgICAg ICAgIHJldHVybgotIAotZGlmZiAtdXJOIElCdXMtU3BlZWNoLVRvLVRleHQtMS4wLjAub3JpZy9l bmdpbmUvc3R0Z3N0ZmFjdG9yeS5weSBJQnVzLVNwZWVjaC1Uby1UZXh0LTEuMC4wL2VuZ2luZS9z dHRnc3RmYWN0b3J5LnB5Ci0tLS0gSUJ1cy1TcGVlY2gtVG8tVGV4dC0xLjAuMC5vcmlnL2VuZ2lu ZS9zdHRnc3RmYWN0b3J5LnB5CTIwMjYtMDctMTQgMDM6MDA6MDAuMDAwMDAwMDAwICswNTMwCi0r KysgSUJ1cy1TcGVlY2gtVG8tVGV4dC0xLjAuMC9lbmdpbmUvc3R0Z3N0ZmFjdG9yeS5weQkyMDI2 LTA4LTA3IDAxOjQ2OjAxLjAyNjc5MjYwNCArMDUzMAotQEAgLTI5LDYgKzI5LDEwIEBACi0gZnJv bSBzdHRnc3Rvbm54YXNyIGltcG9ydCBTVFRHc3RPbm54QXNyCi0gZnJvbSBzdHRnc3Rtb29uc2hp bmUgaW1wb3J0IFNUVEdzdE1vb25zaGluZQotIAotK2Zyb20gc3R0YmFja2VuZGRlcHMgaW1wb3J0 IChzdHRfYmFja2VuZF9kaXNwbGF5X25hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0dF9iYWNrZW5kX2luc3RhbGxfY29tbWFuZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3R0X2JhY2tlbmRfaXNfYXZhaWxhYmxlKQotKwotIExPR19NU0c9bG9nZ2luZy5nZXRMb2dn ZXIoKQotIAotIGNsYXNzIFNUVEdzdEZhY3RvcnkoR09iamVjdC5HT2JqZWN0KToKLUBAIC00NSwx MSArNDksMjEgQEAKLSAgICAgICAgIHNlbGYuX191cGRhdGVfcHJlbG9hZGVkX2VuZ2luZSgpCi0g Ci0gICAgIGRlZiBuZXdfZW5naW5lKHNlbGYpOgotLSAgICAgICAgZW5naW5lPU5vbmUgaWYgc2Vs Zi5fY3VycmVudF9lbmdpbmUgaXMgTm9uZSBlbHNlIHNlbGYuX2N1cnJlbnRfZW5naW5lKCkKLSsg ICAgICAgIGVuZ2luZSA9IE5vbmUgaWYgc2VsZi5fY3VycmVudF9lbmdpbmUgaXMgTm9uZSBlbHNl IHNlbGYuX2N1cnJlbnRfZW5naW5lKCkKLSsgICAgICAgIGlmIGVuZ2luZSBpcyBub3QgTm9uZSBh bmQgZW5naW5lLnBpcGVsaW5lIGlzIE5vbmU6Ci0rICAgICAgICAgICAgTE9HX01TRy5kZWJ1Zygi Y2FjaGVkIGVuZ2luZSB3YXMgYWxyZWFkeSBkZXN0cm95ZWQsIGNyZWF0aW5nIGEgbmV3IG9uZSIp Ci0rICAgICAgICAgICAgZW5naW5lID0gTm9uZQotICAgICAgICAgaWYgZW5naW5lIGlzIE5vbmU6 Ci0gICAgICAgICAgICAgTE9HX01TRy5kZWJ1ZygibmV3IGVuZ2luZSIpCi0gICAgICAgICAgICAg IyBDaGVjayBiYWNrZW5kIHNldHRpbmcKLSAgICAgICAgICAgICBiYWNrZW5kID0gc2VsZi5fX3Nl dHRpbmdzLmdldF9zdHJpbmcoImJhY2tlbmQiKQotKyAgICAgICAgICAgIGlmIG5vdCBzdHRfYmFj a2VuZF9pc19hdmFpbGFibGUoYmFja2VuZCk6Ci0rICAgICAgICAgICAgICAgIExPR19NU0cuZXJy b3IoIiVzIGJhY2tlbmQgaXMgc2VsZWN0ZWQgYnV0IG5vdCBpbnN0YWxsZWQuICIKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiSW5zdGFsbCBpdCB3aXRoOiAlcyIsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3R0X2JhY2tlbmRfZGlzcGxheV9uYW1lKGJhY2tlbmQpLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0dF9iYWNrZW5kX2luc3RhbGxfY29tbWFu ZChiYWNrZW5kKSkKLSsgICAgICAgICAgICAgICAgTE9HX01TRy5lcnJvcigiZmFsbGluZyBiYWNr IHRvIHRoZSBWb3NrIGJhY2tlbmQiKQotKyAgICAgICAgICAgICAgICBiYWNrZW5kID0gInZvc2si Ci0gICAgICAgICAgICAgaWYgYmFja2VuZCA9PSAid2hpc3BlciI6Ci0gICAgICAgICAgICAgICAg IExPR19NU0cuaW5mbygiVXNpbmcgV2hpc3BlciBiYWNrZW5kIikKLSAgICAgICAgICAgICAgICAg ZW5naW5lPVNUVEdzdFdoaXNwZXIoKQotZGlmZiAtdXJOIElCdXMtU3BlZWNoLVRvLVRleHQtMS4w LjAub3JpZy9lbmdpbmUvc3R0Z3N0bW9vbnNoaW5lLnB5IElCdXMtU3BlZWNoLVRvLVRleHQtMS4w LjAvZW5naW5lL3N0dGdzdG1vb25zaGluZS5weQotLS0tIElCdXMtU3BlZWNoLVRvLVRleHQtMS4w LjAub3JpZy9lbmdpbmUvc3R0Z3N0bW9vbnNoaW5lLnB5CTIwMjYtMDctMTQgMDM6MDA6MDAuMDAw MDAwMDAwICswNTMwCi0rKysgSUJ1cy1TcGVlY2gtVG8tVGV4dC0xLjAuMC9lbmdpbmUvc3R0Z3N0 bW9vbnNoaW5lLnB5CTIwMjYtMDgtMDcgMDE6Mzg6NTUuMzU2MDgyMjQ0ICswNTMwCi1AQCAtMTMs MzggKzEzLDM5IEBACi0gCi0gU0FNUExFX1JBVEUgPSAxNjAwMAotIAotLXRyeToKLS0gICAgZnJv bSBtb29uc2hpbmVfdm9pY2UgaW1wb3J0ICgKLS0gICAgICAgIFRyYW5zY3JpYmVyLAotLSAgICAg ICAgVHJhbnNjcmlwdEV2ZW50TGlzdGVuZXIsCi0tICAgICAgICBNb2RlbEFyY2gsCi0tICAgICkK LS0gICAgTU9PTlNISU5FX0FWQUlMQUJMRSA9IFRydWUKLS1leGNlcHQgSW1wb3J0RXJyb3I6Ci0t ICAgIExPR19NU0cud2FybmluZygibW9vbnNoaW5lX3ZvaWNlIG5vdCBhdmFpbGFibGUuIEluc3Rh bGwgd2l0aDogcGlwIGluc3RhbGwgbW9vbnNoaW5lLXZvaWNlIikKLS0gICAgTU9PTlNISU5FX0FW QUlMQUJMRSA9IEZhbHNlCi0tICAgIFRyYW5zY3JpcHRFdmVudExpc3RlbmVyID0gb2JqZWN0Ci0r X0xJU1RFTkVSX0NMQVNTID0gTm9uZQotIAotLWNsYXNzIF9MaW5lTGlzdGVuZXIoVHJhbnNjcmlw dEV2ZW50TGlzdGVuZXIpOgotK2RlZiBfbGluZV9saXN0ZW5lcl9jbGFzcygpOgotKyAgICAjQnVp bGQgdGhlIGxpc3RlbmVyIHN1YmNsYXNzIG9uIGZpcnN0IHVzZQotKyAgICBnbG9iYWwgX0xJU1RF TkVSX0NMQVNTCi0rICAgIGlmIF9MSVNURU5FUl9DTEFTUyBpcyBub3QgTm9uZToKLSsgICAgICAg IHJldHVybiBfTElTVEVORVJfQ0xBU1MKLSAKLS0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGVuZ2lu ZSk6Ci0tICAgICAgICBpZiBNT09OU0hJTkVfQVZBSUxBQkxFOgotKyAgICBmcm9tIG1vb25zaGlu ZV92b2ljZSBpbXBvcnQgVHJhbnNjcmlwdEV2ZW50TGlzdGVuZXIKLSsKLSsgICAgY2xhc3MgX0xp bmVMaXN0ZW5lcihUcmFuc2NyaXB0RXZlbnRMaXN0ZW5lcik6Ci0rCi0rICAgICAgICBkZWYgX19p bml0X18oc2VsZiwgZW5naW5lKToKLSAgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkKLS0g ICAgICAgIHNlbGYuX2VuZ2luZSA9IGVuZ2luZQotLSAgICAgICAgc2VsZi5fZW1pdHRlZF9saW5l cyA9IFtdCi0rICAgICAgICAgICAgc2VsZi5fZW5naW5lID0gZW5naW5lCi0rICAgICAgICAgICAg c2VsZi5fZW1pdHRlZF9saW5lcyA9IFtdCi0gCi0tICAgIGRlZiByZXNldChzZWxmKToKLS0gICAg ICAgIHNlbGYuX2VtaXR0ZWRfbGluZXMuY2xlYXIoKQotKyAgICAgICAgZGVmIHJlc2V0KHNlbGYp OgotKyAgICAgICAgICAgIHNlbGYuX2VtaXR0ZWRfbGluZXMuY2xlYXIoKQotKwotKyAgICAgICAg ZGVmIG9uX2xpbmVfY29tcGxldGVkKHNlbGYsIGV2ZW50KToKLSsgICAgICAgICAgICBsaW5lID0g ZXZlbnQubGluZQotKyAgICAgICAgICAgIGlmIGFueShsaW5lIGlzIHNlZW4gZm9yIHNlZW4gaW4g c2VsZi5fZW1pdHRlZF9saW5lcyk6Ci0rICAgICAgICAgICAgICAgIHJldHVybgotKyAgICAgICAg ICAgIHNlbGYuX2VtaXR0ZWRfbGluZXMuYXBwZW5kKGxpbmUpCi0rICAgICAgICAgICAgdGV4dCA9 IChsaW5lLnRleHQgb3IgIiIpLnN0cmlwKCkKLSsgICAgICAgICAgICBpZiB0ZXh0OgotKyAgICAg ICAgICAgICAgICBMT0dfTVNHLmluZm8oIk1vb25zaGluZSB0cmFuc2NyaXB0aW9uIHJlc3VsdDog JyVzJyIsIHRleHQpCi0rICAgICAgICAgICAgICAgIEdMaWIuaWRsZV9hZGQoc2VsZi5fZW5naW5l Ll9lbWl0X3RleHQsIHRleHQpCi0rCi0rICAgIF9MSVNURU5FUl9DTEFTUyA9IF9MaW5lTGlzdGVu ZXIKLSsgICAgcmV0dXJuIF9MSVNURU5FUl9DTEFTUwotIAotLSAgICBkZWYgb25fbGluZV9jb21w bGV0ZWQoc2VsZiwgZXZlbnQpOgotLSAgICAgICAgbGluZSA9IGV2ZW50LmxpbmUKLS0gICAgICAg IGlmIGFueShsaW5lIGlzIHNlZW4gZm9yIHNlZW4gaW4gc2VsZi5fZW1pdHRlZF9saW5lcyk6Ci0t ICAgICAgICAgICAgcmV0dXJuCi0tICAgICAgICBzZWxmLl9lbWl0dGVkX2xpbmVzLmFwcGVuZChs aW5lKQotLSAgICAgICAgdGV4dCA9IChsaW5lLnRleHQgb3IgIiIpLnN0cmlwKCkKLS0gICAgICAg IGlmIHRleHQ6Ci0tICAgICAgICAgICAgTE9HX01TRy5pbmZvKCJNb29uc2hpbmUgdHJhbnNjcmlw dGlvbiByZXN1bHQ6ICclcyciLCB0ZXh0KQotLSAgICAgICAgICAgIEdMaWIuaWRsZV9hZGQoc2Vs Zi5fZW5naW5lLl9lbWl0X3RleHQsIHRleHQpCi0gCi0gY2xhc3MgU1RUR3N0TW9vbnNoaW5lKFNU VEdzdEJhc2UpOgotICAgICBfX2d0eXBlX25hbWVfXyA9ICdTVFRHc3RNb29uc2hpbmUnCi1AQCAt OTMsNiArOTQsNyBAQAotICAgICAgICAgc2VsZi5fdHhfbG9jayA9IHRocmVhZGluZy5Mb2NrKCkK LSAgICAgICAgIHNlbGYuX3Nlc3Npb25fYWN0aXZlID0gRmFsc2UKLSAgICAgICAgIHNlbGYuX3N0 b3BwaW5nID0gRmFsc2UKLSsgICAgICAgIHNlbGYuX2Rlc3Ryb3llZCA9IEZhbHNlCi0gCi0gICAg ICAgICBzZWxmLl9wcm9jZXNzX3F1ZXVlID0gcXVldWUuUXVldWUoKQotICAgICAgICAgc2VsZi5f c3RvcF9wcm9jZXNzaW5nID0gRmFsc2UKLUBAIC0xMDMsMTEgKzEwNSwxMSBAQAotIAotICAgICBk ZWYgX19kZWxfXyhzZWxmKToKLSAgICAgICAgIHRyeToKLS0gICAgICAgICAgICBpZiBMT0dfTVNH IGlzIG5vdCBOb25lOgotLSAgICAgICAgICAgICAgICBMT0dfTVNHLmluZm8oIk1vb25zaGluZSBf X2RlbF9fIikKLSAgICAgICAgICAgICBzZWxmLl9zdG9wX3Byb2Nlc3NpbmcgPSBUcnVlCi0tICAg ICAgICAgICAgaWYgc2VsZi5fcHJvY2Vzc190aHJlYWQgaXMgbm90IE5vbmU6Ci0tICAgICAgICAg ICAgICAgIHNlbGYuX3Byb2Nlc3NfdGhyZWFkLmpvaW4odGltZW91dD0yLjApCi0rICAgICAgICAg ICAgdGhyZWFkID0gc2VsZi5fcHJvY2Vzc190aHJlYWQKLSsgICAgICAgICAgICBzZWxmLl9wcm9j ZXNzX3RocmVhZCA9IE5vbmUKLSsgICAgICAgICAgICBpZiB0aHJlYWQgaXMgbm90IE5vbmU6Ci0r ICAgICAgICAgICAgICAgIHRocmVhZC5qb2luKHRpbWVvdXQ9Mi4wKQotICAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICBwYXNzCi0gICAgICAgICB0cnk6Ci1AQCAtMTE2LDI0 ICsxMTgsMzYgQEAKLSAgICAgICAgICAgICBwYXNzCi0gCi0gICAgIGRlZiBkZXN0cm95KHNlbGYp OgotKyAgICAgICAgaWYgc2VsZi5fZGVzdHJveWVkOgotKyAgICAgICAgICAgIExPR19NU0cuZGVi dWcoIk1vb25zaGluZSBlbmdpbmUgYWxyZWFkeSBkZXN0cm95ZWQiKQotKyAgICAgICAgICAgIHJl dHVybgotKyAgICAgICAgc2VsZi5fZGVzdHJveWVkID0gVHJ1ZQotKwotICAgICAgICAgc2VsZi5f c3RvcF9wcm9jZXNzaW5nID0gVHJ1ZQotLSAgICAgICAgaWYgc2VsZi5fcHJvY2Vzc190aHJlYWQg aXMgbm90IE5vbmU6Ci0tICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc190aHJlYWQuam9pbih0aW1l b3V0PTIuMCkKLSAKLS0gICAgICAgIHNlbGYuX2N1cnJlbnRfbG9jYWxlLmRpc2Nvbm5lY3Qoc2Vs Zi5fbG9jYWxlX2lkKQotLSAgICAgICAgc2VsZi5fbG9jYWxlX2lkID0gMAotKyAgICAgICAgdGhy ZWFkID0gc2VsZi5fcHJvY2Vzc190aHJlYWQKLSsgICAgICAgIHNlbGYuX3Byb2Nlc3NfdGhyZWFk ID0gTm9uZQotKyAgICAgICAgaWYgdGhyZWFkIGlzIG5vdCBOb25lOgotKyAgICAgICAgICAgIHRo cmVhZC5qb2luKHRpbWVvdXQ9Mi4wKQotKyAgICAgICAgICAgIGlmIHRocmVhZC5pc19hbGl2ZSgp OgotKyAgICAgICAgICAgICAgICBMT0dfTVNHLndhcm5pbmcoIk1vb25zaGluZSB3b3JrZXIgdGhy ZWFkIGRpZCBub3Qgc3RvcCBpbiB0aW1lIikKLSsKLSsgICAgICAgIGlmIHNlbGYuX2xvY2FsZV9p ZCAhPSAwOgotKyAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfbG9jYWxlLmRpc2Nvbm5lY3Qoc2Vs Zi5fbG9jYWxlX2lkKQotKyAgICAgICAgICAgIHNlbGYuX2xvY2FsZV9pZCA9IDAKLSAKLS0gICAg ICAgIGlmIHNlbGYuX21vZGVsX2lkICE9IDA6Ci0rICAgICAgICBpZiBzZWxmLl9tb2RlbF9pZCAh PSAwIGFuZCBzZWxmLl9tb2RlbCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICBzZWxmLl9tb2Rl bC5kaXNjb25uZWN0KHNlbGYuX21vZGVsX2lkKQotICAgICAgICAgICAgIHNlbGYuX21vZGVsX2lk ID0gMAotIAotICAgICAgICAgd2l0aCBzZWxmLl90eF9sb2NrOgotICAgICAgICAgICAgIHNlbGYu X3RlYXJkb3duX3RyYW5zY3JpYmVyKCkKLSAKLS0gICAgICAgIGlmIHNlbGYuX2FwcHNpbmsgaXMg bm90IE5vbmUgYW5kIGdldGF0dHIoc2VsZiwgIl9uZXdfc2FtcGxlX2lkIiwgMCkgIT0wOgotLSAg ICAgICAgICAgIHNlbGYuX2FwcHNpbmsuZGlzY29ubmVjdChzZWxmLl9uZXdfc2FtcGxlX2lkKQot LSAgICAgICAgICAgIHNlbGYuX25ld19zYW1wbGVfaWQgPSAwCi0rICAgICAgICBpZiBzZWxmLl9h cHBzaW5rIGlzIG5vdCBOb25lIGFuZCBzZWxmLl9vbl9uZXdfc2FtcGxlX2lkICE9IDA6Ci0rICAg ICAgICAgICAgc2VsZi5fYXBwc2luay5kaXNjb25uZWN0KHNlbGYuX29uX25ld19zYW1wbGVfaWQp Ci0rICAgICAgICAgICAgc2VsZi5fb25fbmV3X3NhbXBsZV9pZCA9IDAKLSAgICAgICAgIHNlbGYu X2FwcHNpbmsgPSBOb25lCi0rCi0gICAgICAgICBMT0dfTVNHLmluZm8oIk1vb25zaGluZS5kZXN0 cm95KCkgY2FsbGVkIikKLSAgICAgICAgIHN1cGVyKCkuZGVzdHJveSgpCi0gCi1AQCAtMTUwLDE0 ICsxNjQsMTggQEAKLSAgICAgICAgIHNlbGYuX2xpc3RlbmVyID0gTm9uZQotIAotICAgICBkZWYg X2xvYWRfbW9vbnNoaW5lX21vZGVsKHNlbGYsIG1vZGVsX3BhdGgsIG1vZGVsX2FyY2gpOgotLSAg ICAgICAgaWYgbm90IE1PT05TSElORV9BVkFJTEFCTEU6Ci0tICAgICAgICAgICAgTE9HX01TRy5l cnJvcigibW9vbnNoaW5lX3ZvaWNlIG5vdCBhdmFpbGFibGUiKQotKyAgICAgICAgdHJ5OgotKyAg ICAgICAgICAgIGZyb20gbW9vbnNoaW5lX3ZvaWNlIGltcG9ydCBNb2RlbEFyY2gsIFRyYW5zY3Jp YmVyCi0rICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0rICAgICAgICAgICAgTE9HX01T Ry5lcnJvcigibW9vbnNoaW5lX3ZvaWNlIG5vdCBhdmFpbGFibGUgKCVzKS4gIgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIkluc3RhbGwgd2l0aDogcGlwIGluc3RhbGwgbW9vbnNoaW5lLXZv aWNlIiwgZSkKLSAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSsKLSAgICAgICAgIHRyeToKLS0g ICAgICAgICAgICBhcmNoID0gbW9kZWxfYXJjaCBpZiBtb2RlbF9hcmNoIGlzIG5vdCBOb25lIGVs c2UgTW9kZWxBcmNoLkJBU0UKLSsgICAgICAgICAgICBhcmNoID0gKE1vZGVsQXJjaChtb2RlbF9h cmNoKSBpZiBtb2RlbF9hcmNoIGlzIG5vdCBOb25lIGVsc2UgTW9kZWxBcmNoLkJBU0UpCi0gICAg ICAgICAgICAgTE9HX01TRy5pbmZvKCJMb2FkaW5nIE1vb25zaGluZSBtb2RlbDogJXMgKGFyY2g9 JXMpIiwgbW9kZWxfcGF0aCwgYXJjaCkKLSAgICAgICAgICAgICB0cmFuc2NyaWJlciA9IFRyYW5z Y3JpYmVyKG1vZGVsX3BhdGg9bW9kZWxfcGF0aCwgbW9kZWxfYXJjaD1hcmNoKQotLSAgICAgICAg ICAgIGxpc3RlbmVyID0gX0xpbmVMaXN0ZW5lcihzZWxmKQotKyAgICAgICAgICAgIGxpc3RlbmVy ID0gX2xpbmVfbGlzdGVuZXJfY2xhc3MoKShzZWxmKQotICAgICAgICAgICAgIHRyYW5zY3JpYmVy LmFkZF9saXN0ZW5lcihsaXN0ZW5lcikKLSAgICAgICAgICAgICB3aXRoIHNlbGYuX3R4X2xvY2s6 Ci0gICAgICAgICAgICAgICAgIHNlbGYuX3RlYXJkb3duX3RyYW5zY3JpYmVyKCkKLWRpZmYgLXVy TiBJQnVzLVNwZWVjaC1Uby1UZXh0LTEuMC4wLm9yaWcvZW5naW5lL3N0dG1vb25zaGluZW1vZGVs bWFuYWdlcnMucHkgSUJ1cy1TcGVlY2gtVG8tVGV4dC0xLjAuMC9lbmdpbmUvc3R0bW9vbnNoaW5l bW9kZWxtYW5hZ2Vycy5weQotLS0tIElCdXMtU3BlZWNoLVRvLVRleHQtMS4wLjAub3JpZy9lbmdp bmUvc3R0bW9vbnNoaW5lbW9kZWxtYW5hZ2Vycy5weQkyMDI2LTA3LTE0IDAzOjAwOjAwLjAwMDAw MDAwMCArMDUzMAotKysrIElCdXMtU3BlZWNoLVRvLVRleHQtMS4wLjAvZW5naW5lL3N0dG1vb25z aGluZW1vZGVsbWFuYWdlcnMucHkJMjAyNi0wOC0wNyAwMTo0Njo1NS4wODY2NDg5NTIgKzA1MzAK LUBAIC0xLDUgKzEsOSBAQAotIGltcG9ydCBvcwotK2ltcG9ydCBzeXMKLStpbXBvcnQgaW1wb3J0 bGliLm1hY2hpbmVyeQotIGltcG9ydCBsb2dnaW5nCi0raW1wb3J0IGltcG9ydGxpYgotK2ltcG9y dCBpbXBvcnRsaWIudXRpbAotIGltcG9ydCB0aHJlYWRpbmcKLSAKLSBmcm9tIHBhdGhsaWIgaW1w b3J0IFBhdGgKLUBAIC05LDIzICsxMywxNCBAQAotIAotIExPR19NU0cgPSBsb2dnaW5nLmdldExv Z2dlcigpCi0gCi0tCi0tdHJ5OgotLSAgICBmcm9tIG1vb25zaGluZV92b2ljZSBpbXBvcnQgTW9k ZWxBcmNoCi0tICAgIGZyb20gbW9vbnNoaW5lX3ZvaWNlLmRvd25sb2FkIGltcG9ydCAoCi0tICAg ICAgICBNT0RFTF9JTkZPLAotLSAgICAgICAgZmluZF9tb2RlbF9pbmZvLAotLSAgICAgICAgZ2V0 X2NvbXBvbmVudHNfZm9yX21vZGVsX2luZm8sCi0tICAgICAgICBnZXRfbW9kZWxfZm9yX2xhbmd1 YWdlLAotLSAgICApCi0tICAgIGZyb20gbW9vbnNoaW5lX3ZvaWNlLmRvd25sb2FkX2ZpbGUgaW1w b3J0IGdldF9jYWNoZV9kaXIKLS0gICAgTU9PTlNISU5FX0FWQUlMQUJMRSA9IFRydWUKLS1leGNl cHQgRXhjZXB0aW9uIGFzIGU6Ci0tICAgIExPR19NU0cud2FybmluZygibW9vbnNoaW5lX3ZvaWNl IG1vZGVsIGNhdGFsb2cgdW5hdmFpbGFibGUgKCVzKS4gIgotLSAgICAgICAgICAgICAgICAgICAg Ikluc3RhbGwvdXBncmFkZSB3aXRoOiBwaXAgaW5zdGFsbCAtVSBtb29uc2hpbmUtdm9pY2UiLCBl KQotLSAgICBNT09OU0hJTkVfQVZBSUxBQkxFID0gRmFsc2UKLS0gICAgTU9ERUxfSU5GTyA9IHt9 Ci0tICAgIE1vZGVsQXJjaCA9IE5vbmUKLStfQVJDSF9OQU1FUyA9IHsKLSsgICAgMDogInRpbnki LAotKyAgICAxOiAiYmFzZSIsCi0rICAgIDI6ICJ0aW55LXN0cmVhbWluZyIsCi0rICAgIDM6ICJi YXNlLXN0cmVhbWluZyIsCi0rICAgIDQ6ICJzbWFsbC1zdHJlYW1pbmciLAotKyAgICA1OiAibWVk aXVtLXN0cmVhbWluZyIsCi0rfQotIAotIF9BUkNIX1NJWkVTID0gewotICAgICAidGlueSI6ICAg ICAgICAgICAgICJ+NTAgTUIiLAotQEAgLTQ2LDE1ICs0MSw5IEBACi0gfQotIAotIGRlZiBfYXJj aF90b19zdHJpbmcobW9kZWxfYXJjaCk6Ci0tICAgIHJldHVybiB7Ci0tICAgICAgICAwOiAidGlu eSIsCi0tICAgICAgICAxOiAiYmFzZSIsCi0tICAgICAgICAyOiAidGlueS1zdHJlYW1pbmciLAot LSAgICAgICAgMzogImJhc2Utc3RyZWFtaW5nIiwKLS0gICAgICAgIDQ6ICJzbWFsbC1zdHJlYW1p bmciLAotLSAgICAgICAgNTogIm1lZGl1bS1zdHJlYW1pbmciLAotLSAgICB9LmdldChpbnQobW9k ZWxfYXJjaCksICJiYXNlIikKLS0KLSsgICAgaWYgbW9kZWxfYXJjaCBpcyBOb25lOgotKyAgICAg ICAgcmV0dXJuICJiYXNlIgotKyAgICByZXR1cm4gX0FSQ0hfTkFNRVMuZ2V0KGludChtb2RlbF9h cmNoKSwgImJhc2UiKQotIAotIGNsYXNzIFNUVERvd25sb2FkU3RhdGUoZmxvYXQsIEVudW0pOgot ICAgICBTVE9QUEVEID0gLTEuMAotQEAgLTY3LDI2ICs1NiwxMTYgQEAKLSAgICAgICAgIHJldHVy biBOb25lCi0gICAgIHJldHVybiBsb2NhbGVfc3RyWzA6Ml0ubG93ZXIoKQotIAotLWRlZiBfYWxs X21vZGVsX2luZm9zKCk6Ci0tICAgIGZvciBsYW5nLCBlbnRyeSBpbiBNT0RFTF9JTkZPLml0ZW1z KCk6Ci0tICAgICAgICBmb3IgbW9kZWwgaW4gZW50cnkuZ2V0KCJtb2RlbHMiLCBbXSk6Ci0tICAg ICAgICAgICAgeWllbGQgbW9kZWxbIm1vZGVsX25hbWUiXSwgbGFuZywgbW9kZWwKLS0KLS1kZWYg X2V4cGVjdGVkX21vZGVsX3BhdGgobW9kZWxfaW5mbyk6Ci0tICAgIGNhY2hlX2RpciA9IGdldF9j YWNoZV9kaXIoKQotLSAgICBmb2xkZXIgPSBtb2RlbF9pbmZvWyJkb3dubG9hZF91cmwiXS5yZXBs YWNlKCJodHRwczovLyIsICIiKQotLSAgICByZXR1cm4gUGF0aChjYWNoZV9kaXIsIGZvbGRlcikK LS0KLS1kZWYgX21vZGVsX3ByZXNlbnQobW9kZWxfaW5mbyk6Ci0tICAgIHJvb3QgPSBfZXhwZWN0 ZWRfbW9kZWxfcGF0aChtb2RlbF9pbmZvKQotLSAgICBpZiBub3Qgcm9vdC5pc19kaXIoKToKLStk ZWYgbW9vbnNoaW5lX2luc3RhbGxlZCgpOgotKyAgICB0cnk6Ci0rICAgICAgICBpZiBpbXBvcnRs aWIubWFjaGluZXJ5LlBhdGhGaW5kZXIuZmluZF9zcGVjKCJtb29uc2hpbmVfdm9pY2UiLCBzeXMu cGF0aCk6Ci0rICAgICAgICAgICAgcmV0dXJuIFRydWUKLSsgICAgICAgIGltcG9ydGxpYi5pbnZh bGlkYXRlX2NhY2hlcygpCi0rICAgICAgICByZXR1cm4gYm9vbChpbXBvcnRsaWIubWFjaGluZXJ5 LlBhdGhGaW5kZXIuZmluZF9zcGVjKCJtb29uc2hpbmVfdm9pY2UiLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXMucGF0aCkp Ci0rICAgIGV4Y2VwdCAoSW1wb3J0RXJyb3IsIFZhbHVlRXJyb3IsIFR5cGVFcnJvciwgQXR0cmli dXRlRXJyb3IpIGFzIGVycm9yOgotKyAgICAgICAgTE9HX01TRy5kZWJ1ZygiY2Fubm90IGxvb2sg dXAgbW9vbnNoaW5lX3ZvaWNlICglcykiLCBlcnJvcikKLSAgICAgICAgIHJldHVybiBGYWxzZQot KwotK2RlZiBfbW9vbnNoaW5lX2NhY2hlX2RpcigpOgotKyAgICAjU2FtZSBkaXJlY3RvcnkgYXMg bW9vbnNoaW5lX3ZvaWNlLmRvd25sb2FkX2ZpbGUuZ2V0X2NhY2hlX2RpcigpLCBjb21wdXRlZCB3 aXRob3V0IGltcG9ydGluZyB0aGUgcGFja2FnZQotKyAgICBvdmVycmlkZSA9IG9zLmVudmlyb24u Z2V0KCJNT09OU0hJTkVfVk9JQ0VfQ0FDSEUiKQotKyAgICBpZiBvdmVycmlkZToKLSsgICAgICAg IHJldHVybiBQYXRoKG92ZXJyaWRlKQotKwotKyAgICB4ZGcgPSBvcy5lbnZpcm9uLmdldCgiWERH X0NBQ0hFX0hPTUUiKQotKyAgICBpZiB4ZGc6Ci0rICAgICAgICByZXR1cm4gUGF0aCh4ZGcpIC8g Im1vb25zaGluZV92b2ljZSIKLSsKLSsgICAgcmV0dXJuIFBhdGguaG9tZSgpIC8gIi5jYWNoZSIg LyAibW9vbnNoaW5lX3ZvaWNlIgotKwotK19DQVRBTE9HID0gTm9uZSAgICAgICAgICAjIHttb2Rl bF9uYW1lOiB7Li4ufX0KLStfQ0FUQUxPR19MT0NBTEVTID0gTm9uZSAgIyB7bGFuZzogW21vZGVs X25hbWUsIC4uLl19Ci0rCi0rZGVmIF9idWlsZF9jYXRhbG9nKCk6Ci0rICAgIGZyb20gbW9vbnNo aW5lX3ZvaWNlLmRvd25sb2FkIGltcG9ydCBmaW5kX21vZGVsX2luZm8sIHN1cHBvcnRlZF9sYW5n dWFnZXMKLSsKLSsgICAgbW9kZWxzID0ge30KLSsgICAgbG9jYWxlcyA9IHt9Ci0rCi0rICAgIGZv ciBsYW5nIGluIHN1cHBvcnRlZF9sYW5ndWFnZXMoKToKLSsgICAgICAgIGZvciBhcmNoX3ZhbHVl IGluIHNvcnRlZChfQVJDSF9OQU1FUyk6Ci0rICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAg ICAgICBpbmZvID0gZmluZF9tb2RlbF9pbmZvKGxhbmcsIGFyY2hfdmFsdWUpCi0rICAgICAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSsgICAgICAgICAgICAgICAgIyBUaGlzIGxhbmd1YWdlIHNp bXBseSBoYXMgbm8gbW9kZWwgZm9yIHRoYXQgYXJjaGl0ZWN0dXJlLgotKyAgICAgICAgICAgICAg ICBjb250aW51ZQotKwotKyAgICAgICAgICAgIGFyY2hfbmFtZSA9IF9BUkNIX05BTUVTW2FyY2hf dmFsdWVdCi0rICAgICAgICAgICAgbmFtZSA9ICIlcy0lcyIgJSAoYXJjaF9uYW1lLCBsYW5nKQot KyAgICAgICAgICAgIG1vZGVsc1tuYW1lXSA9IHsKLSsgICAgICAgICAgICAgICAgIm5hbWUiOiBu YW1lLAotKyAgICAgICAgICAgICAgICAibGFuZyI6IGxhbmcsCi0rICAgICAgICAgICAgICAgICJh cmNoIjogYXJjaF92YWx1ZSwKLSsgICAgICAgICAgICAgICAgImFyY2hfbmFtZSI6IGFyY2hfbmFt ZSwKLSsgICAgICAgICAgICAgICAgImRvd25sb2FkX3VybCI6IGluZm8uZ2V0KCJkb3dubG9hZF91 cmwiLCAiIiksCi0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIGxvY2FsZXMuc2V0ZGVmYXVs dChsYW5nLCBbXSkuYXBwZW5kKG5hbWUpCi0rCi0rICAgIHJldHVybiBtb2RlbHMsIGxvY2FsZXMK LSsKLStkZWYgX2NhdGFsb2coKToKLSsgICAgZ2xvYmFsIF9DQVRBTE9HLCBfQ0FUQUxPR19MT0NB TEVTCi0rCi0rICAgIGlmIG5vdCBtb29uc2hpbmVfaW5zdGFsbGVkKCk6Ci0rICAgICAgICBfQ0FU QUxPRyA9IE5vbmUKLSsgICAgICAgIF9DQVRBTE9HX0xPQ0FMRVMgPSBOb25lCi0rICAgICAgICBy ZXR1cm4ge30sIHt9Ci0rCi0rICAgIGlmIF9DQVRBTE9HIGlzIG5vdCBOb25lOgotKyAgICAgICAg cmV0dXJuIF9DQVRBTE9HLCBfQ0FUQUxPR19MT0NBTEVTCi0rCi0rICAgIHRyeToKLSsgICAgICAg IG1vZGVscywgbG9jYWxlcyA9IF9idWlsZF9jYXRhbG9nKCkKLSsgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBlcnJvcjoKLSsgICAgICAgIExPR19NU0cud2FybmluZygibW9vbnNoaW5lX3ZvaWNlIG1v ZGVsIGNhdGFsb2cgdW5hdmFpbGFibGUgKCVzKS4gIgotKyAgICAgICAgICAgICAgICAgICAgICAg ICJJbnN0YWxsL3VwZ3JhZGUgd2l0aDogcGlwIGluc3RhbGwgLVUgbW9vbnNoaW5lLXZvaWNlIiwK LSsgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcikKLSsgICAgICAgIHJldHVybiB7fSwge30K LSsKLSsgICAgaWYgbm90IG1vZGVsczoKLSsgICAgICAgIExPR19NU0cud2FybmluZygibW9vbnNo aW5lX3ZvaWNlIHJldHVybmVkIGFuIGVtcHR5IG1vZGVsIGNhdGFsb2ciKQotKyAgICAgICAgcmV0 dXJuIHt9LCB7fQotKwotKyAgICBfQ0FUQUxPRyA9IG1vZGVscwotKyAgICBfQ0FUQUxPR19MT0NB TEVTID0gbG9jYWxlcwotKyAgICBMT0dfTVNHLmRlYnVnKCJtb29uc2hpbmUgY2F0YWxvZyBidWls dCAoJWQgbW9kZWxzLCAlZCBsYW5ndWFnZXMpIiwKLSsgICAgICAgICAgICAgICAgICBsZW4obW9k ZWxzKSwgbGVuKGxvY2FsZXMpKQotKyAgICByZXR1cm4gX0NBVEFMT0csIF9DQVRBTE9HX0xPQ0FM RVMKLSsKLStkZWYgX21vZGVsX3Jvb3QoZW50cnkpOgotKyAgICB1cmwgPSBlbnRyeS5nZXQoImRv d25sb2FkX3VybCIpIG9yICIiCi0rICAgIGlmIG5vdCB1cmw6Ci0rICAgICAgICByZXR1cm4gTm9u ZQotKyAgICByZXR1cm4gUGF0aChfbW9vbnNoaW5lX2NhY2hlX2RpcigpLCB1cmwucmVwbGFjZSgi aHR0cHM6Ly8iLCAiIikpCi0rCi0rZGVmIF9tb2RlbF9wcmVzZW50KGVudHJ5KToKLSsgICAgcm9v dCA9IF9tb2RlbF9yb290KGVudHJ5KQotKyAgICBpZiByb290IGlzIE5vbmUgb3Igbm90IHJvb3Qu aXNfZGlyKCk6Ci0rICAgICAgICByZXR1cm4gRmFsc2UKLSsKLSsgICAgY29tcG9uZW50cyA9IE5v bmUKLSAgICAgdHJ5OgotLSAgICAgICAgY29tcG9uZW50cyA9IGdldF9jb21wb25lbnRzX2Zvcl9t b2RlbF9pbmZvKG1vZGVsX2luZm8pCi0tICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0tICAgICAgICBj b21wb25lbnRzID0gWyJ0b2tlbml6ZXIuYmluIl0KLS0gICAgcmV0dXJuIGFsbCgocm9vdCAvIGNv bXBvbmVudCkuaXNfZmlsZSgpIGZvciBjb21wb25lbnQgaW4gY29tcG9uZW50cykKLSsgICAgICAg IGZyb20gbW9vbnNoaW5lX3ZvaWNlLmRvd25sb2FkIGltcG9ydCAoZmluZF9tb2RlbF9pbmZvLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfY29tcG9u ZW50c19mb3JfbW9kZWxfaW5mbykKLSsgICAgICAgIGNvbXBvbmVudHMgPSBnZXRfY29tcG9uZW50 c19mb3JfbW9kZWxfaW5mbygKLSsgICAgICAgICAgICBmaW5kX21vZGVsX2luZm8oZW50cnlbImxh bmciXSwgZW50cnlbImFyY2giXSkpCi0rICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6Ci0r ICAgICAgICBMT0dfTVNHLmRlYnVnKCJjYW5ub3QgbGlzdCBjb21wb25lbnRzIG9mICVzICglcyki LAotKyAgICAgICAgICAgICAgICAgICAgICBlbnRyeVsibmFtZSJdLCBlcnJvcikKLSAKLSsgICAg aWYgY29tcG9uZW50czoKLSsgICAgICAgIHJldHVybiBhbGwoKHJvb3QgLyBjb21wb25lbnQpLmlz X2ZpbGUoKSBmb3IgY29tcG9uZW50IGluIGNvbXBvbmVudHMpCi0rCi0rICAgIHRyeToKLSsgICAg ICAgIHJldHVybiBhbnkocm9vdC5pdGVyZGlyKCkpCi0rICAgIGV4Y2VwdCBPU0Vycm9yOgotKyAg ICAgICAgcmV0dXJuIEZhbHNlCi0gCi0gY2xhc3MgU1RUTW9vbnNoaW5lTW9kZWxEZXNjcmlwdGlv bihHT2JqZWN0Lk9iamVjdCk6Ci0gICAgIF9fZ3R5cGVfbmFtZV9fID0gIlNUVE1vb25zaGluZU1v ZGVsRGVzY3JpcHRpb24iCi1AQCAtMTA2LDIxICsxODUsMzIgQEAKLSAgICAgICAgIHNlbGYucXVh bGl0eSA9IGluaXRfbW9kZWwucXVhbGl0eSBpZiBpbml0X21vZGVsIGlzIG5vdCBOb25lIGVsc2Ug IiIKLSAKLSAgICAgICAgIHNlbGYuX29wZXJhdGlvbiA9IE5vbmUKLSsgICAgICAgIHNlbGYuX2Rv d25sb2FkZWRfcGF0aCA9IE5vbmUKLSAgICAgICAgIHNlbGYuZG93bmxvYWRfcHJvZ3Jlc3MgPSBT VFREb3dubG9hZFN0YXRlLlNUT1BQRUQKLSAKLSAgICAgZGVmIF9kb3dubG9hZF9maW5pc2hlZChz ZWxmKToKLSAgICAgICAgIHNlbGYuX29wZXJhdGlvbiA9IE5vbmUKLSAgICAgICAgIHNlbGYuZG93 bmxvYWRfcHJvZ3Jlc3MgPSBTVFREb3dubG9hZFN0YXRlLlNUT1BQRUQKLS0gICAgICAgIGluZm8g PSBmaW5kX21vZGVsX2luZm8oc2VsZi5sYW5nLCBzZWxmLmFyY2gpCi0tICAgICAgICBpZiBfbW9k ZWxfcHJlc2VudChpbmZvKToKLS0gICAgICAgICAgICBwYXRoID0gc3RyKF9leHBlY3RlZF9tb2Rl bF9wYXRoKGluZm8pKQotKwotKyAgICAgICAgcGF0aCA9IHNlbGYuX2Rvd25sb2FkZWRfcGF0aAot KyAgICAgICAgc2VsZi5fZG93bmxvYWRlZF9wYXRoID0gTm9uZQotKwotKyAgICAgICAgaWYgcGF0 aCBpcyBOb25lOgotKyAgICAgICAgICAgIGVudHJ5ID0gX2NhdGFsb2coKVswXS5nZXQoc2VsZi5u YW1lKQotKyAgICAgICAgICAgIGlmIGVudHJ5IGlzIG5vdCBOb25lIGFuZCBfbW9kZWxfcHJlc2Vu dChlbnRyeSk6Ci0rICAgICAgICAgICAgICAgIHBhdGggPSBzdHIoX21vZGVsX3Jvb3QoZW50cnkp KQotKwotKyAgICAgICAgaWYgcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICBzZWxmLnBh dGhzID0gW3BhdGhdCi0tICAgICAgICAgICAgc3R0X21vb25zaGluZV9sb2NhbF9tb2RlbF9tYW5h Z2VyKCkuX25vdGlmeV9hZGRlZChzZWxmLm5hbWUsIHBhdGgsIHNlbGYubGFuZykKLSsgICAgICAg ICAgICBzdHRfbW9vbnNoaW5lX2xvY2FsX21vZGVsX21hbmFnZXIoKS5fbm90aWZ5X2FkZGVkKAot KyAgICAgICAgICAgICAgICBzZWxmLm5hbWUsIHBhdGgsIHNlbGYubGFuZykKLSAgICAgICAgIHJl dHVybiBGYWxzZQotIAotICAgICBkZWYgX2Rvd25sb2FkX3RocmVhZChzZWxmLCBjYW5jZWxsZWQp OgotICAgICAgICAgdHJ5OgotLSAgICAgICAgICAgIGdldF9tb2RlbF9mb3JfbGFuZ3VhZ2Uoc2Vs Zi5sYW5nLCBzZWxmLmFyY2gpCi0rICAgICAgICAgICAgZnJvbSBtb29uc2hpbmVfdm9pY2UgaW1w b3J0IGdldF9tb2RlbF9mb3JfbGFuZ3VhZ2UKLSsgICAgICAgICAgICBwYXRoLCBfYXJjaCA9IGdl dF9tb2RlbF9mb3JfbGFuZ3VhZ2Uoc2VsZi5sYW5nLCBzZWxmLmFyY2gpCi0rICAgICAgICAgICAg c2VsZi5fZG93bmxvYWRlZF9wYXRoID0gc3RyKHBhdGgpCi0gICAgICAgICBleGNlcHQgRXhjZXB0 aW9uIGFzIGU6Ci0gICAgICAgICAgICAgTE9HX01TRy5lcnJvcigiTW9vbnNoaW5lIGRvd25sb2Fk IGZhaWxlZCAoJXMpOiAlcyIsIHNlbGYubmFtZSwgZSkKLSAgICAgICAgIGlmIG5vdCBjYW5jZWxs ZWQuaXNfc2V0KCk6Ci1AQCAtMTMxLDcgKzIyMSw3IEBACi0gICAgIGRlZiBzdGFydF9kb3dubG9h ZGluZyhzZWxmKToKLSAgICAgICAgIGlmIHNlbGYuX29wZXJhdGlvbiBpcyBub3QgTm9uZToKLSAg ICAgICAgICAgICByZXR1cm4KLS0gICAgICAgIGlmIG5vdCBNT09OU0hJTkVfQVZBSUxBQkxFOgot KyAgICAgICAgaWYgbm90IG1vb25zaGluZV9pbnN0YWxsZWQoKToKLSAgICAgICAgICAgICBMT0df TVNHLmVycm9yKCJjYW5ub3QgZG93bmxvYWQsIG1vb25zaGluZV92b2ljZSBub3QgaW5zdGFsbGVk IikKLSAgICAgICAgICAgICByZXR1cm4KLSAKLUBAIC0xODYsMTYgKzI3NiwxOCBAQAotICAgICAg ICAgc3VwZXIoKS5fX2luaXRfXygpCi0gICAgICAgICBzZWxmLl9wcmVzZW50ID0ge30KLSAgICAg ICAgIHNlbGYuX2N1c3RvbV9wYXRocyA9IHt9Ci0tICAgICAgICBzZWxmLl9zY2FuX3ByZXNlbnRf bW9kZWxzKCkKLSsgICAgICAgIHNlbGYuX3NjYW5uZWRfbW9kZWxzID0gMAotIAotICAgICBkZWYg X3NjYW5fcHJlc2VudF9tb2RlbHMoc2VsZik6Ci0tICAgICAgICBpZiBub3QgTU9PTlNISU5FX0FW QUlMQUJMRToKLSsgICAgICAgIGNhdGFsb2csIF9sb2NhbGVzID0gX2NhdGFsb2coKQotKyAgICAg ICAgaWYgbm90IGNhdGFsb2cgb3Igc2VsZi5fc2Nhbm5lZF9tb2RlbHMgPT0gbGVuKGNhdGFsb2cp OgotICAgICAgICAgICAgIHJldHVybgotLSAgICAgICAgZm9yIG1vZGVsX25hbWUsIGxhbmcsIGlu Zm8gaW4gX2FsbF9tb2RlbF9pbmZvcygpOgotLSAgICAgICAgICAgIGluZm8gPSBkaWN0KGluZm8s IGxhbmd1YWdlPWxhbmcpCi0tICAgICAgICAgICAgaWYgX21vZGVsX3ByZXNlbnQoaW5mbyk6Ci0t ICAgICAgICAgICAgICAgIHNlbGYuX3ByZXNlbnRbbW9kZWxfbmFtZV0gPSBzdHIoX2V4cGVjdGVk X21vZGVsX3BhdGgoaW5mbykpCi0tICAgICAgICAgICAgICAgIExPR19NU0cuZGVidWcoIm1vb25z aGluZSBtb2RlbCBwcmVzZW50IG9uIGRpc2sgKCVzKSIsIG1vZGVsX25hbWUpCi0rCi0rICAgICAg ICBzZWxmLl9zY2FubmVkX21vZGVscyA9IGxlbihjYXRhbG9nKQotKyAgICAgICAgZm9yIG5hbWUs IGVudHJ5IGluIGNhdGFsb2cuaXRlbXMoKToKLSsgICAgICAgICAgICBpZiBfbW9kZWxfcHJlc2Vu dChlbnRyeSk6Ci0rICAgICAgICAgICAgICAgIHNlbGYuX3ByZXNlbnRbbmFtZV0gPSBzdHIoX21v ZGVsX3Jvb3QoZW50cnkpKQotKyAgICAgICAgICAgICAgICBMT0dfTVNHLmRlYnVnKCJtb29uc2hp bmUgbW9kZWwgcHJlc2VudCBvbiBkaXNrICglcykiLCBuYW1lKQotIAotICAgICBkZWYgX25vdGlm eV9hZGRlZChzZWxmLCBtb2RlbF9uYW1lLCBwYXRoLCBsYW5nPU5vbmUpOgotICAgICAgICAgc2Vs Zi5fcHJlc2VudFttb2RlbF9uYW1lXSA9IHBhdGgKLUBAIC0yMDYsNDQgKzI5OCwzOCBAQAotICAg ICAgICAgc2VsZi5lbWl0KCJyZW1vdmVkIiwgbW9kZWxfbmFtZSwgcGF0aCkKLSAKLSAgICAgZGVm IHBhdGhfYXZhaWxhYmxlKHNlbGYsIG1vZGVsX3BhdGgpOgotLSAgICAgICAgcmV0dXJuIG1vZGVs X3BhdGggaW4gc2VsZi5fcHJlc2VudC52YWx1ZXMoKSBvciBtb2RlbF9wYXRoIGluIHNlbGYuX2N1 c3RvbV9wYXRocwotKyAgICAgICAgc2VsZi5fc2Nhbl9wcmVzZW50X21vZGVscygpCi0rICAgICAg ICByZXR1cm4gKG1vZGVsX3BhdGggaW4gc2VsZi5fcHJlc2VudC52YWx1ZXMoKQotKyAgICAgICAg ICAgICAgICBvciBtb2RlbF9wYXRoIGluIHNlbGYuX2N1c3RvbV9wYXRocykKLSAKLSAgICAgZGVm IGdldF9iZXN0X3BhdGhfZm9yX21vZGVsKHNlbGYsIG1vZGVsX25hbWUpOgotICAgICAgICAgaWYg bW9kZWxfbmFtZSBpcyBOb25lOgotICAgICAgICAgICAgIHJldHVybiBOb25lCi0rICAgICAgICBz ZWxmLl9zY2FuX3ByZXNlbnRfbW9kZWxzKCkKLSAgICAgICAgIHJldHVybiBzZWxmLl9wcmVzZW50 LmdldChtb2RlbF9uYW1lLCBOb25lKQotIAotICAgICBkZWYgZ2V0X2FyY2hfZm9yX21vZGVsKHNl bGYsIG1vZGVsX25hbWUpOgotLSAgICAgICAgaWYgbm90IE1PT05TSElORV9BVkFJTEFCTEU6Ci0t ICAgICAgICAgICAgcmV0dXJuIE5vbmUKLS0gICAgICAgIGZvciBuYW1lLCBsYW5nLCBpbmZvIGlu IF9hbGxfbW9kZWxfaW5mb3MoKToKLS0gICAgICAgICAgICBpZiBuYW1lID09IG1vZGVsX25hbWU6 Ci0tICAgICAgICAgICAgICAgIHJldHVybiBpbmZvWyJtb2RlbF9hcmNoIl0KLS0gICAgICAgIHJl dHVybiBOb25lCi0rICAgICAgICBlbnRyeSA9IF9jYXRhbG9nKClbMF0uZ2V0KG1vZGVsX25hbWUp Ci0rICAgICAgICByZXR1cm4gZW50cnlbImFyY2giXSBpZiBlbnRyeSBpcyBub3QgTm9uZSBlbHNl IE5vbmUKLSAKLSAgICAgZGVmIGdldF9sYW5nX2Zvcl9tb2RlbChzZWxmLCBtb2RlbF9uYW1lKToK LS0gICAgICAgIGlmIG5vdCBNT09OU0hJTkVfQVZBSUxBQkxFOgotLSAgICAgICAgICAgIHJldHVy biBOb25lCi0tICAgICAgICBmb3IgbmFtZSwgbGFuZywgaW5mbyBpbiBfYWxsX21vZGVsX2luZm9z KCk6Ci0tICAgICAgICAgICAgaWYgbmFtZSA9PSBtb2RlbF9uYW1lOgotLSAgICAgICAgICAgICAg ICByZXR1cm4gbGFuZwotLSAgICAgICAgcmV0dXJuIE5vbmUKLSsgICAgICAgIGVudHJ5ID0gX2Nh dGFsb2coKVswXS5nZXQobW9kZWxfbmFtZSkKLSsgICAgICAgIHJldHVybiBlbnRyeVsibGFuZyJd IGlmIGVudHJ5IGlzIG5vdCBOb25lIGVsc2UgTm9uZQotIAotICAgICBAc3RhdGljbWV0aG9kCi0g ICAgIGRlZiBfaW5mZXJfYXJjaF9mb3JfZm9sZGVyKG1vZGVsX3BhdGgpOgotICAgICAgICAgcm9v dCA9IFBhdGgobW9kZWxfcGF0aCkKLSsgICAgICAgIG5hbWUgPSByb290Lm5hbWUubG93ZXIoKQot KwotICAgICAgICAgaWYgKHJvb3QgLyAic3RyZWFtaW5nX2NvbmZpZy5qc29uIikuaXNfZmlsZSgp OgotLSAgICAgICAgICAgIG5hbWUgPSByb290Lm5hbWUubG93ZXIoKQotLSAgICAgICAgICAgIGZv ciB0b2tlbiwgYXJjaCBpbiAoKCJtZWRpdW0iLCBNb2RlbEFyY2guTUVESVVNX1NUUkVBTUlORyks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInNtYWxsIiwgTW9kZWxBcmNoLlNN QUxMX1NUUkVBTUlORyksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImJhc2Ui LCBNb2RlbEFyY2guQkFTRV9TVFJFQU1JTkcpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKCJ0aW55IiwgTW9kZWxBcmNoLlRJTllfU1RSRUFNSU5HKSk6Ci0rICAgICAgICAgICAg Zm9yIHRva2VuLCBhcmNoIGluICgoIm1lZGl1bSIsIDUpLCAoInNtYWxsIiwgNCksCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoImJhc2UiLCAzKSwgKCJ0aW55IiwgMikpOgotICAg ICAgICAgICAgICAgICBpZiB0b2tlbiBpbiBuYW1lOgotICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIGFyY2gKLS0gICAgICAgICAgICByZXR1cm4gTW9kZWxBcmNoLlNNQUxMX1NUUkVBTUlORwot LSAgICAgICAgaWYgInRpbnkiIGluIHJvb3QubmFtZS5sb3dlcigpOgotLSAgICAgICAgICAgIHJl dHVybiBNb2RlbEFyY2guVElOWQotLSAgICAgICAgcmV0dXJuIE1vZGVsQXJjaC5CQVNFCi0rICAg ICAgICAgICAgcmV0dXJuIDQKLSsgICAgICAgIGlmICJ0aW55IiBpbiBuYW1lOgotKyAgICAgICAg ICAgIHJldHVybiAwCi0rICAgICAgICByZXR1cm4gMQotIAotICAgICBkZWYgcmVnaXN0ZXJfY3Vz dG9tX21vZGVsX3BhdGgoc2VsZiwgbW9kZWxfcGF0aCwgbG9jYWxlX3N0cik6Ci0gICAgICAgICBz ZWxmLl9jdXN0b21fcGF0aHNbbW9kZWxfcGF0aF0gPSBsb2NhbGVfc3RyCi1AQCAtMjUyLDcgKzMz OCw4IEBACi0gICAgICAgICBzZWxmLl9jdXN0b21fcGF0aHMucG9wKG1vZGVsX3BhdGgsIE5vbmUp Ci0gCi0gICAgIGRlZiBjdXN0b21fcGF0aF9hdmFpbGFibGUoc2VsZiwgbW9kZWxfcGF0aCk6Ci0t ICAgICAgICByZXR1cm4gUGF0aChtb2RlbF9wYXRoKS5pc19kaXIoKSBhbmQgKFBhdGgobW9kZWxf cGF0aCkgLyAidG9rZW5pemVyLmJpbiIpLmlzX2ZpbGUoKQotKyAgICAgICAgcm9vdCA9IFBhdGgo bW9kZWxfcGF0aCkKLSsgICAgICAgIHJldHVybiByb290LmlzX2RpcigpIGFuZCAocm9vdCAvICJ0 b2tlbml6ZXIuYmluIikuaXNfZmlsZSgpCi0gCi0gCi0gX0dMT0JBTF9MT0NBTF9NQU5BR0VSID0g Tm9uZQotQEAgLTI3NiwzNSArMzYzLDQzIEBACi0gICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkK LSAgICAgICAgIHNlbGYuX21vZGVscyA9IHt9Ci0gICAgICAgICBzZWxmLl9sb2NhbGVzX2RpY3Qg PSB7fQotLSAgICAgICAgc2VsZi5fYnVpbGRfY2F0YWxvZygpCi0gCi0gICAgICAgICBsb2NhbCA9 IHN0dF9tb29uc2hpbmVfbG9jYWxfbW9kZWxfbWFuYWdlcigpCi0gICAgICAgICBsb2NhbC5jb25u ZWN0KCJhZGRlZCIsIHNlbGYuX21vZGVsX3BhdGhfYWRkZWRfY2IpCi0gICAgICAgICBsb2NhbC5j b25uZWN0KCJyZW1vdmVkIiwgc2VsZi5fbW9kZWxfcGF0aF9yZW1vdmVkX2NiKQotIAotLSAgICBk ZWYgX2J1aWxkX2NhdGFsb2coc2VsZik6Ci0tICAgICAgICBpZiBub3QgTU9PTlNISU5FX0FWQUlM QUJMRToKLSsgICAgZGVmIF9lbnN1cmVfY2F0YWxvZyhzZWxmKToKLSsgICAgICAgIGNhdGFsb2cs IGxvY2FsZXMgPSBfY2F0YWxvZygpCi0rICAgICAgICBpZiBub3QgY2F0YWxvZzoKLSsgICAgICAg ICAgICBzZWxmLl9tb2RlbHMgPSB7fQotKyAgICAgICAgICAgIHNlbGYuX2xvY2FsZXNfZGljdCA9 IHt9Ci0rICAgICAgICAgICAgcmV0dXJuCi0rICAgICAgICBpZiBsZW4oc2VsZi5fbW9kZWxzKSA9 PSBsZW4oY2F0YWxvZyk6Ci0gICAgICAgICAgICAgcmV0dXJuCi0tICAgICAgICBmb3IgbW9kZWxf bmFtZSwgbGFuZywgaW5mbyBpbiBfYWxsX21vZGVsX2luZm9zKCk6Ci0tICAgICAgICAgICAgYXJj aCA9IGluZm9bIm1vZGVsX2FyY2giXQotLSAgICAgICAgICAgIGFyY2hfc3RyID0gX2FyY2hfdG9f c3RyaW5nKGFyY2gpCi0rCi0rICAgICAgICBsb2NhbCA9IHN0dF9tb29uc2hpbmVfbG9jYWxfbW9k ZWxfbWFuYWdlcigpCi0rICAgICAgICBzZWxmLl9tb2RlbHMgPSB7fQotKyAgICAgICAgc2VsZi5f bG9jYWxlc19kaWN0ID0ge30KLSsKLSsgICAgICAgIGZvciBuYW1lLCBlbnRyeSBpbiBjYXRhbG9n Lml0ZW1zKCk6Ci0rICAgICAgICAgICAgYXJjaF9uYW1lID0gZW50cnlbImFyY2hfbmFtZSJdCi0g Ci0gICAgICAgICAgICAgZGVzYyA9IFNUVE1vb25zaGluZU1vZGVsRGVzY3JpcHRpb24oKQotLSAg ICAgICAgICAgIGRlc2MubmFtZSA9IG1vZGVsX25hbWUKLS0gICAgICAgICAgICBkZXNjLmxhbmcg PSBsYW5nCi0tICAgICAgICAgICAgZGVzYy5sb2NhbGUgPSBsYW5nCi0tICAgICAgICAgICAgZGVz Yy5hcmNoID0gYXJjaAotLSAgICAgICAgICAgIGRlc2MudHlwZSA9IGFyY2hfc3RyCi0tICAgICAg ICAgICAgZGVzYy51cmwgPSBpbmZvWyJkb3dubG9hZF91cmwiXQotLSAgICAgICAgICAgIGRlc2Mu c2l6ZSA9IF9BUkNIX1NJWkVTLmdldChhcmNoX3N0ciwgIiIpCi0tICAgICAgICAgICAgZGVzYy5x dWFsaXR5ID0gX0FSQ0hfUVVBTElUWS5nZXQoYXJjaF9zdHIsICIiKQotKyAgICAgICAgICAgIGRl c2MubmFtZSA9IG5hbWUKLSsgICAgICAgICAgICBkZXNjLmxhbmcgPSBlbnRyeVsibGFuZyJdCi0r ICAgICAgICAgICAgZGVzYy5sb2NhbGUgPSBlbnRyeVsibGFuZyJdCi0rICAgICAgICAgICAgZGVz Yy5hcmNoID0gZW50cnlbImFyY2giXQotKyAgICAgICAgICAgIGRlc2MudHlwZSA9IGFyY2hfbmFt ZQotKyAgICAgICAgICAgIGRlc2MudXJsID0gZW50cnlbImRvd25sb2FkX3VybCJdCi0rICAgICAg ICAgICAgZGVzYy5zaXplID0gX0FSQ0hfU0laRVMuZ2V0KGFyY2hfbmFtZSwgIiIpCi0rICAgICAg ICAgICAgZGVzYy5xdWFsaXR5ID0gX0FSQ0hfUVVBTElUWS5nZXQoYXJjaF9uYW1lLCAiIikKLSAK LS0gICAgICAgICAgICBwYXRoID0gc3R0X21vb25zaGluZV9sb2NhbF9tb2RlbF9tYW5hZ2VyKCku Z2V0X2Jlc3RfcGF0aF9mb3JfbW9kZWwobW9kZWxfbmFtZSkKLSsgICAgICAgICAgICBwYXRoID0g bG9jYWwuZ2V0X2Jlc3RfcGF0aF9mb3JfbW9kZWwobmFtZSkKLSAgICAgICAgICAgICBpZiBwYXRo IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICBkZXNjLnBhdGhzID0gW3BhdGhdCi0gCi0t ICAgICAgICAgICAgc2VsZi5fbW9kZWxzW21vZGVsX25hbWVdID0gZGVzYwotLSAgICAgICAgICAg IHNlbGYuX2xvY2FsZXNfZGljdC5zZXRkZWZhdWx0KGxhbmcsIFtdKS5hcHBlbmQoZGVzYykKLSsg ICAgICAgICAgICBzZWxmLl9tb2RlbHNbbmFtZV0gPSBkZXNjCi0rICAgICAgICAgICAgc2VsZi5f bG9jYWxlc19kaWN0LnNldGRlZmF1bHQoZW50cnlbImxhbmciXSwgW10pLmFwcGVuZChkZXNjKQot IAotICAgICBkZWYgX21vZGVsX3BhdGhfYWRkZWRfY2Ioc2VsZiwgbWFuYWdlciwgbW9kZWxfbmFt ZSwgbW9kZWxfcGF0aCk6Ci0gICAgICAgICBkZXNjID0gc2VsZi5fbW9kZWxzLmdldChtb2RlbF9u YW1lLCBOb25lKQotQEAgLTMyMiwxNSArNDE3LDE2IEBACi0gICAgICAgICBzZWxmLmVtaXQoImNo YW5nZWQiLCBkZXNjKQotIAotICAgICBkZWYgZ2V0X21vZGVsX2Rlc2NyaXB0aW9uKHNlbGYsIG1v ZGVsX25hbWUpOgotKyAgICAgICAgc2VsZi5fZW5zdXJlX2NhdGFsb2coKQotICAgICAgICAgcmV0 dXJuIHNlbGYuX21vZGVscy5nZXQobW9kZWxfbmFtZSwgTm9uZSkKLSAKLSAgICAgZGVmIGdldF9t b2RlbHNfZm9yX2xvY2FsZShzZWxmLCBsb2NhbGVfc3RyKToKLSsgICAgICAgIHNlbGYuX2Vuc3Vy ZV9jYXRhbG9nKCkKLSAgICAgICAgIGxhbmcgPSBfbGFuZ19vZl9sb2NhbGUobG9jYWxlX3N0cikK LSAgICAgICAgIHJldHVybiBsaXN0KHNlbGYuX2xvY2FsZXNfZGljdC5nZXQobGFuZywgW10pKQot IAotICAgICBkZWYgc3VwcG9ydGVkX2xvY2FsZXMoc2VsZik6Ci0tICAgICAgICBpZiBub3QgTU9P TlNISU5FX0FWQUlMQUJMRToKLS0gICAgICAgICAgICByZXR1cm4gW10KLSsgICAgICAgIHNlbGYu X2Vuc3VyZV9jYXRhbG9nKCkKLSAgICAgICAgIHJldHVybiBsaXN0KHNlbGYuX2xvY2FsZXNfZGlj dC5rZXlzKCkpCi0gCi0gX0dMT0JBTF9PTkxJTkVfTUFOQUdFUiA9IE5vbmUKLWRpZmYgLXVyTiBJ QnVzLVNwZWVjaC1Uby1UZXh0LTEuMC4wLm9yaWcvZW5naW5lL3N0dG1vb25zaGluZW1vZGVsLnB5 IElCdXMtU3BlZWNoLVRvLVRleHQtMS4wLjAvZW5naW5lL3N0dG1vb25zaGluZW1vZGVsLnB5Ci0t LS0gSUJ1cy1TcGVlY2gtVG8tVGV4dC0xLjAuMC5vcmlnL2VuZ2luZS9zdHRtb29uc2hpbmVtb2Rl bC5weQkyMDI2LTA3LTE0IDAzOjAwOjAwLjAwMDAwMDAwMCArMDUzMAotKysrIElCdXMtU3BlZWNo LVRvLVRleHQtMS4wLjAvZW5naW5lL3N0dG1vb25zaGluZW1vZGVsLnB5CTIwMjYtMDgtMDcgMDE6 Mzk6MzguOTMyNzY5MTg4ICswNTMwCi1AQCAtNCwxMCArNCw3IEBACi0gZnJvbSBwYXRobGliIGlt cG9ydCBQYXRoCi0gZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBHT2JqZWN0LCBHaW8KLSAKLS1m cm9tIHN0dG1vb25zaGluZW1vZGVsbWFuYWdlcnMgaW1wb3J0ICgKLS0gICAgc3R0X21vb25zaGlu ZV9sb2NhbF9tb2RlbF9tYW5hZ2VyLAotLSAgICBNT09OU0hJTkVfQVZBSUxBQkxFLAotLSkKLStm cm9tIHN0dG1vb25zaGluZW1vZGVsbWFuYWdlcnMgaW1wb3J0IHN0dF9tb29uc2hpbmVfbG9jYWxf bW9kZWxfbWFuYWdlcgotIAotIExPR19NU0cgPSBsb2dnaW5nLmdldExvZ2dlcigpCi0gCi1AQCAt NzksNyArNzYsNyBAQAotICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICBzZWxm Ll9tb2RlbF9uYW1lID0gTm9uZQotICAgICAgICAgICAgIHNlbGYuX21vZGVsX3BhdGggPSBtb2Rl bAotLSAgICAgICAgICAgIHNlbGYuX21vZGVsX2FyY2ggPSBsb2NhbC5faW5mZXJfYXJjaF9mb3Jf Zm9sZGVyKG1vZGVsKSBpZiBNT09OU0hJTkVfQVZBSUxBQkxFIGVsc2UgTm9uZQotKyAgICAgICAg ICAgIHNlbGYuX21vZGVsX2FyY2ggPSBsb2NhbC5faW5mZXJfYXJjaF9mb3JfZm9sZGVyKG1vZGVs KQotICAgICAgICAgICAgIGxvY2FsLnJlZ2lzdGVyX2N1c3RvbV9tb2RlbF9wYXRoKG1vZGVsLCBz ZWxmLl9sb2NhbGVfc3RyKQotICAgICAgICAgICAgIHNlbGYuX3ZhbGlkX21vZGVsID0gbG9jYWwu Y3VzdG9tX3BhdGhfYXZhaWxhYmxlKG1vZGVsKQotICAgICAgICAgZWxzZToKCmRpZmYgLS1naXQg YS9zb3VyY2VzIGIvc291cmNlcwppbmRleCAzZDdkMWNmLi44ZGYzNDFkIDEwMDY0NAotLS0gYS9z b3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAKLVNIQTUxMiAoMS4wLjAudGFyLmd6KSA9 IDdiNWQ2Y2JlYTA2Y2ZjZGIwMzQyMGNmNzE2MDczOGVmNDM1NzI2YWY1MTkyYjNkNDQzNWE1OGFm ZTkwMmVkYjFiOGJiYzUwYjViMGI1OTRmYzY0MDc0OWY2MDYyMmE2Y2Y4MWQ3OWI5ZmVjNmM2YjJj ZWI2OTc3NTUxZjg4NGM4CitTSEE1MTIgKDEuMS4wLnRhci5neikgPSA4YzlmYmRiZDIyNDQzY2Zi OTRiYzY5MmVlMjE4ZWY3Yjk4MmYzNDY5Y2IwZjU0NmI0YTFmMTM1YTA4OGI5MmE1YzgzOTExYTFi NmVmODA4YzhiZGIyNzE2NzgyZWRhNzA2ZjQ1ODIyYzAxZjZhYWRjODE5ZjlmZTJjZTQ5ZWRlOQo=