From: "Yugui (Yuki Sonoda)" Date: 2008-12-12T22:05:33+09:00 Subject: [ruby-dev:37405] Re: m17n of irb This is a multi-part message in MIME format. --------------010002050609050102090801 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Yuguiです。 Yukihiro Matsumoto さんは書きました: > |* エンコーディングのデフォルトをRubyレベルで変更できるべきか? > | YES => setterメソッド追加で解決 > | NO => IRB.parse_optsの拡張ライブラリ化で解決 > > YES。リリースマネジメント的に許されるのであればsetterメソッド > の追加が良いのでは。 そう言うわけで、default_externalとdefault_internalはユーザーの責任でRuby レベルから設定できるようになりました。 これを使って、IRBの多言語化、全部ひっくるめてこんな感じの修正ではどうで しょうか? -- Yugui http://yugui.jp 私は私をDumpする --------------010002050609050102090801 Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0"; name="irb-m17n-3.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="irb-m17n-3.diff" ZGlmZiAtLWdpdCBhL2xpYi9pcmIvaGVscC5yYiBiL2xpYi9pcmIvaGVscC5yYgppbmRleCAw MWU1ODc4Li4yYjA2NGQ1IDEwMDY0NAotLS0gYS9saWIvaXJiL2hlbHAucmIKKysrIGIvbGli L2lyYi9oZWxwLnJiCkBAIC05LDI0ICs5LDI3IEBACiAjICAgCiAjCiAKK3JlcXVpcmUgJ2ly Yi9tYWdpYy1maWxlJworCiBtb2R1bGUgSVJCCiAgIGRlZiBJUkIucHJpbnRfdXNhZ2UKICAg ICBsYyA9IElSQi5jb25mWzpMQ19NRVNTQUdFU10KICAgICBwYXRoID0gbGMuZmluZCgiaXJi L2hlbHAtbWVzc2FnZSIpCiAgICAgc3BhY2VfbGluZSA9IGZhbHNlCi0gICAgRmlsZS5mb3Jl YWNoKHBhdGgpIGRvCi0gICAgICB8bHwKLSAgICAgIGlmIC9eXHMqJC8gPX4gbAotCWxjLnB1 dHMgbCB1bmxlc3Mgc3BhY2VfbGluZQotCXNwYWNlX2xpbmUgPSB0cnVlCi0JbmV4dAorICAg IElSQjo6TWFnaWNGaWxlLm9wZW4ocGF0aCl7fGZ8CisgICAgICBmLmVhY2hfbGluZSBkbyB8 bHwKKwlpZiAvXlxzKiQvID1+IGwKKwkgIGxjLnB1dHMgbCB1bmxlc3Mgc3BhY2VfbGluZQor CSAgc3BhY2VfbGluZSA9IHRydWUKKwkgIG5leHQKKwllbmQKKwlzcGFjZV9saW5lID0gZmFs c2UKKworCWwuc3ViISgvIy4qJC8sICIiKQorCSAgbmV4dCBpZiAvXlxzKiQvID1+IGwKKwls Yy5wdXRzIGwKICAgICAgIGVuZAotICAgICAgc3BhY2VfbGluZSA9IGZhbHNlCi0gICAgICAK LSAgICAgIGwuc3ViISgvIy4qJC8sICIiKQotICAgICAgbmV4dCBpZiAvXlxzKiQvID1+IGwK LSAgICAgIGxjLnB1dHMgbAotICAgIGVuZAorICAgIH0KICAgZW5kCiBlbmQKIApkaWZmIC0t Z2l0IGEvbGliL2lyYi9pbml0LnJiIGIvbGliL2lyYi9pbml0LnJiCmluZGV4IDU3NmI5OWQu LjYyYzg2MmEgMTAwNjQ0Ci0tLSBhL2xpYi9pcmIvaW5pdC5yYgorKysgYi9saWIvaXJiL2lu aXQucmIKQEAgLTEzOSw2ICsxMzksMTEgQEAgbW9kdWxlIElSQgogICAgICAgd2hlbiAvXi1J KC4rKT8vCiAgICAgICAgIG9wdCA9ICQxIHx8IEFSR1Yuc2hpZnQKIAlsb2FkX3BhdGguY29u Y2F0KG9wdC5zcGxpdChGaWxlOjpQQVRIX1NFUEFSQVRPUikpIGlmIG9wdAorICAgICAgd2hl biAnLVUnCisJc2V0X2VuY29kaW5nKCJVVEYtOCIsICJVVEYtOCIpCisgICAgICB3aGVuIC9e LUUoLispPy8sIC9eLS1lbmNvZGluZyg/Oj0oLispKT8vCisJb3B0ID0gJDEgfHwgQVJHVi5z aGlmdAorCXNldF9lbmNvZGluZygqb3B0LnNwbGl0KCc6JywgMikpCiAgICAgICB3aGVuICIt LWluc3BlY3QiCiAJQENPTkZbOklOU1BFQ1RfTU9ERV0gPSB0cnVlCiAgICAgICB3aGVuICIt LW5vaW5zcGVjdCIKQEAgLTE1NSw4ICsxNjAsOSBAQCBtb2R1bGUgSVJCCiAJQENPTkZbOlZF UkJPU0VdID0gdHJ1ZQogICAgICAgd2hlbiAiLS1ub3ZlcmJvc2UiCiAJQENPTkZbOlZFUkJP U0VdID0gZmFsc2UKLSAgICAgIHdoZW4gIi0tcHJvbXB0LW1vZGUiLCAiLS1wcm9tcHQiCi0J cHJvbXB0X21vZGUgPSBBUkdWLnNoaWZ0LnVwY2FzZS50cigiLSIsICJfIikuaW50ZXJuCisg ICAgICB3aGVuIC9eLS1wcm9tcHQtbW9kZSg/Oj0oLispKT8vLCAvXi0tcHJvbXB0KD86PSgu KykpPy8KKwlvcHQgPSAkMSB8fCBBUkdWLnNoaWZ0CisJcHJvbXB0X21vZGUgPSBvcHQudXBj YXNlLnRyKCItIiwgIl8iKS5pbnRlcm4KIAlAQ09ORls6UFJPTVBUX01PREVdID0gcHJvbXB0 X21vZGUKICAgICAgIHdoZW4gIi0tbm9wcm9tcHQiCiAJQENPTkZbOlBST01QVF9NT0RFXSA9 IDpOVUxMCkBAIC0xNjYsMTQgKzE3MiwxNCBAQCBtb2R1bGUgSVJCCiAJQENPTkZbOlBST01Q VF9NT0RFXSA9IDpTSU1QTEUKICAgICAgIHdoZW4gIi0tdHJhY2VyIgogCUBDT05GWzpVU0Vf VFJBQ0VSXSA9IHRydWUKLSAgICAgIHdoZW4gIi0tYmFjay10cmFjZS1saW1pdCIKLQlAQ09O Rls6QkFDS19UUkFDRV9MSU1JVF0gPSBBUkdWLnNoaWZ0LnRvX2kKLSAgICAgIHdoZW4gIi0t Y29udGV4dC1tb2RlIgotCUBDT05GWzpDT05URVhUX01PREVdID0gQVJHVi5zaGlmdC50b19p CisgICAgICB3aGVuIC9eLS1iYWNrLXRyYWNlLWxpbWl0KD86PSguKykpPy8KKwlAQ09ORls6 QkFDS19UUkFDRV9MSU1JVF0gPSAoJDEgfHwgQVJHVi5zaGlmdCkudG9faQorICAgICAgd2hl biAvXi0tY29udGV4dC1tb2RlKD86PSguKykpPy8KKwlAQ09ORls6Q09OVEVYVF9NT0RFXSA9 ICgkMSB8fCBBUkdWLnNoaWZ0KS50b19pCiAgICAgICB3aGVuICItLXNpbmdsZS1pcmIiCiAJ QENPTkZbOlNJTkdMRV9JUkJdID0gdHJ1ZQotICAgICAgd2hlbiAiLS1pcmJfZGVidWciCi0J QENPTkZbOkRFQlVHX0xFVkVMXSA9IEFSR1Yuc2hpZnQudG9faQorICAgICAgd2hlbiAvXi0t aXJiX2RlYnVnPSg/Oj0oLispKT8vCisJQENPTkZbOkRFQlVHX0xFVkVMXSA9ICgkMSB8fCBB UkdWLnNoaWZ0KS50b19pCiAgICAgICB3aGVuICItdiIsICItLXZlcnNpb24iCiAJcHJpbnQg SVJCLnZlcnNpb24sICJcbiIKIAlleGl0IDAKQEAgLTE4MSw2ICsxODcsMTIgQEAgbW9kdWxl IElSQgogCXJlcXVpcmUgImlyYi9oZWxwIgogCUlSQi5wcmludF91c2FnZQogCWV4aXQgMAor ICAgICAgd2hlbiAiLS0iCisJaWYgb3B0ID0gQVJHVi5zaGZpdAorCSAgQENPTkZbOlNDUklQ VF0gPSBvcHQKKwkgICQwID0gb3B0CisJZW5kCisgICAgICAgIGJyZWFrCiAgICAgICB3aGVu IC9eLS8KIAlJUkIuZmFpbCBVbnJlY29nbml6ZWRTd2l0Y2gsIG9wdAogICAgICAgZWxzZQpA QCAtMTk1LDYgKzIwNyw3IEBAIG1vZHVsZSBJUkIKICAgICAgIGVuZAogICAgIGVuZAogICAg ICRMT0FEX1BBVEgudW5zaGlmdCgqbG9hZF9wYXRoKQorCiAgIGVuZAogCiAgICMgcnVubmlu ZyBjb25maWcKQEAgLTI1Myw0ICsyNjYsMjEgQEAgbW9kdWxlIElSQgogICAgIGVuZAogICBl bmQKIAorCisgIERlZmF1bHRFbmNvZGluZ3MgPSBTdHJ1Y3QubmV3KDpleHRlcm5hbCwgOmlu dGVybmFsKQorICBjbGFzcyA8PCBJUkIKKyAgICBwcml2YXRlCisgICAgZGVmIHNldF9lbmNv ZGluZyhleHRlcm4sIGludGVybiA9IG5pbCkKKyAgICAgIHZlcmJvc2UsICRWRVJCT1NFID0g JFZFUkJPU0UsIG5pbAorICAgICAgRW5jb2RpbmcuZGVmYXVsdF9leHRlcm5hbCA9IGV4dGVy biB1bmxlc3MgZXh0ZXJuLm5pbD8gfHwgZXh0ZXJuLmVtcHR5PworICAgICAgRW5jb2Rpbmcu ZGVmYXVsdF9pbnRlcm5hbCA9IGludGVybiB1bmxlc3MgaW50ZXJuLm5pbD8gfHwgaW50ZXJu LmVtcHR5PworICAgICAgQENPTkZbOkVOQ09ESU5HU10gPSBJUkI6OkRlZmF1bHRFbmNvZGlu Z3MubmV3KGV4dGVybiwgaW50ZXJuKQorICAgICAgWyRzdGRpbiwgJHN0ZG91dCwgJHN0ZGVy cl0uZWFjaCBkbyB8aW98CisJaW8uc2V0X2VuY29kaW5nKGV4dGVybiwgaW50ZXJuKQorICAg ICAgZW5kCisgICAgICBAQ09ORls6TENfTUVTU0FHRVNdLmluc3RhbmNlX3ZhcmlhYmxlX3Nl dCg6QGVuY29kaW5nLCBleHRlcm4pCisgICAgZW5zdXJlCisgICAgICAkVkVSQk9TRSA9IHZl cmJvc2UKKyAgICBlbmQKKyAgZW5kCiBlbmQKZGlmZiAtLWdpdCBhL2xpYi9pcmIvaW5wdXQt bWV0aG9kLnJiIGIvbGliL2lyYi9pbnB1dC1tZXRob2QucmIKaW5kZXggZmM4ZDQ3Ni4uMDA2 OTE5OSAxMDA2NDQKLS0tIGEvbGliL2lyYi9pbnB1dC1tZXRob2QucmIKKysrIGIvbGliL2ly Yi9pbnB1dC1tZXRob2QucmIKQEAgLTgsNiArOCw5IEBACiAjCiAjICAgCiAjCityZXF1aXJl ICdpcmIvc3JjX2VuY29kaW5nJworcmVxdWlyZSAnaXJiL21hZ2ljLWZpbGUnCisKIG1vZHVs ZSBJUkIKICAgIyAKICAgIyBJbnB1dE1ldGhvZApAQCAtNDEsMTUgKzQ0LDE3IEBAIG1vZHVs ZSBJUkIKICAgICAgIHN1cGVyCiAgICAgICBAbGluZV9ubyA9IDAKICAgICAgIEBsaW5lID0g W10KKyAgICAgIEBzdGRpbiA9IElPLm9wZW4oU1RESU4udG9faSwgOmV4dGVybmFsX2VuY29k aW5nID0+IElSQi5jb25mWzpMQ19NRVNTQUdFU10uZW5jb2RpbmcpCisgICAgICBAc3Rkb3V0 ID0gSU8ub3BlbihTVERPVVQudG9faSwgOmV4dGVybmFsX2VuY29kaW5nID0+IElSQi5jb25m WzpMQ19NRVNTQUdFU10uZW5jb2RpbmcpCiAgICAgZW5kCiAKICAgICBkZWYgZ2V0cwogICAg ICAgcHJpbnQgQHByb21wdAotICAgICAgQGxpbmVbQGxpbmVfbm8gKz0gMV0gPSAkc3RkaW4u Z2V0cworICAgICAgQGxpbmVbQGxpbmVfbm8gKz0gMV0gPSBAc3RkaW4uZ2V0cwogICAgIGVu ZAogCiAgICAgZGVmIGVvZj8KLSAgICAgICRzdGRpbi5lb2Y/CisgICAgICBAc3RkaW4uZW9m PwogICAgIGVuZAogCiAgICAgZGVmIHJlYWRhYmxlX2F0ZmVyX2VvZj8KQEAgLTU5LDEyICs2 NCwxNiBAQCBtb2R1bGUgSVJCCiAgICAgZGVmIGxpbmUobGluZV9ubykKICAgICAgIEBsaW5l W2xpbmVfbm9dCiAgICAgZW5kCisKKyAgICBkZWYgZW5jb2RpbmcKKyAgICAgIEBzdGRpbi5l eHRlcm5hbF9lbmNvZGluZworICAgIGVuZAogICBlbmQKICAgCiAgIGNsYXNzIEZpbGVJbnB1 dE1ldGhvZCA8IElucHV0TWV0aG9kCiAgICAgZGVmIGluaXRpYWxpemUoZmlsZSkKICAgICAg IHN1cGVyCi0gICAgICBAaW8gPSBvcGVuKGZpbGUpCisgICAgICBAaW8gPSBJUkI6Ok1hZ2lj RmlsZS5vcGVuKGZpbGUpCiAgICAgZW5kCiAgICAgYXR0cl9yZWFkZXIgOmZpbGVfbmFtZQog CkBAIC03OCw2ICs4NywxMCBAQCBtb2R1bGUgSVJCCiAjICAgICAgcHJpbnQgQHByb21wdCwg bAogICAgICAgbAogICAgIGVuZAorCisgICAgZGVmIGVuY29kaW5nCisgICAgICBAaW8uZXh0 ZXJuYWxfZW5jb2RpbmcKKyAgICBlbmQKICAgZW5kCiAKICAgYmVnaW4KQEAgLTkwLDExICsx MDMsMTQgQEAgbW9kdWxlIElSQgogCUBsaW5lX25vID0gMAogCUBsaW5lID0gW10KIAlAZW9m ID0gZmFsc2UKKworCUBzdGRpbiA9IElPLm9wZW4oU1RESU4udG9faSwgOmV4dGVybmFsX2Vu Y29kaW5nID0+IElSQi5jb25mWzpMQ19NRVNTQUdFU10uZW5jb2RpbmcpCisJQHN0ZG91dCA9 IElPLm9wZW4oU1RET1VULnRvX2ksIDpleHRlcm5hbF9lbmNvZGluZyA9PiBJUkIuY29uZls6 TENfTUVTU0FHRVNdLmVuY29kaW5nKQogICAgICAgZW5kCiAKICAgICAgIGRlZiBnZXRzCi0g ICAgICAgIFJlYWRsaW5lLmlucHV0ID0gU1RESU4KLSAgICAgICAgUmVhZGxpbmUub3V0cHV0 ID0gU1RET1VUCisgICAgICAgIFJlYWRsaW5lLmlucHV0ID0gQHN0ZGluCisgICAgICAgIFJl YWRsaW5lLm91dHB1dCA9IEBzdGRvdXQKIAlpZiBsID0gcmVhZGxpbmUoQHByb21wdCwgZmFs c2UpCiAJICBISVNUT1JZLnB1c2gobCkgaWYgIWwuZW1wdHk/CiAJICBAbGluZVtAbGluZV9u byArPSAxXSA9IGwgKyAiXG4iCkBAIC0xMTUsNiArMTMxLDEwIEBAIG1vZHVsZSBJUkIKICAg ICAgIGRlZiBsaW5lKGxpbmVfbm8pCiAJQGxpbmVbbGluZV9ub10KICAgICAgIGVuZAorCisg ICAgICBkZWYgZW5jb2RpbmcKKwlAc3RkaW4uZXh0ZXJuYWxfZW5jb2RpbmcKKyAgICAgIGVu ZAogICAgIGVuZAogICByZXNjdWUgTG9hZEVycm9yCiAgIGVuZApkaWZmIC0tZ2l0IGEvbGli L2lyYi9sYy9oZWxwLW1lc3NhZ2UgYi9saWIvaXJiL2xjL2hlbHAtbWVzc2FnZQppbmRleCBk OTM5NTFiLi45YzA4YTVjIDEwMDY0NAotLS0gYS9saWIvaXJiL2xjL2hlbHAtbWVzc2FnZQor KysgYi9saWIvaXJiL2xjL2hlbHAtbWVzc2FnZQpAQCAtMSwzICsxLDQgQEAKKyMgLSotIGNv ZGluZzogVVMtQVNDSUkgLSotCiAjCiAjICAgaXJiL2xjL2hlbHAtbWVzc2FnZS5yYiAtIAog IyAgIAkkUmVsZWFzZSBWZXJzaW9uOiAwLjkuNSQKQEAgLTE0LDYgKzE1LDggQEAgVXNhZ2U6 ICBpcmIucmIgW29wdGlvbnNdIFtwcm9ncmFtZmlsZV0gW2FyZ3VtZW50c10KICAgLWQgICAg ICAgICAgICAgICAgU2V0ICRERUJVRyB0byB0cnVlIChzYW1lIGFzIGBydWJ5IC1kJykKICAg LXIgbG9hZC1tb2R1bGUgICAgU2FtZSBhcyBgcnVieSAtcicKICAgLUkgcGF0aCAgICAgICAg ICAgU3BlY2lmeSAkTE9BRF9QQVRIIGRpcmVjdG9yeQorICAtVSAgICAgICAgICAgICAgICBT YW1lIGFzIGBydWJ5IC1VYAorICAtRSBlbmMgICAgICAgICAgICBTYW1lIGFzIGBydWJ5IC1F YAogICAtLWluc3BlY3QJICAgIFVzZSBgaW5zcGVjdCcgZm9yIG91dHB1dCAoZGVmYXVsdCBl eGNlcHQgZm9yIGJjIG1vZGUpCiAgIC0tbm9pbnNwZWN0CSAgICBEb24ndCB1c2UgaW5zcGVj dCBmb3Igb3V0cHV0CiAgIC0tcmVhZGxpbmUJICAgIFVzZSBSZWFkbGluZSBleHRlbnNpb24g bW9kdWxlCkBAIC0zMiwzICszNSw0IEBAIFVzYWdlOiAgaXJiLnJiIFtvcHRpb25zXSBbcHJv Z3JhbWZpbGVdIFthcmd1bWVudHNdCiAJCSAgICB2YWx1ZSBpcyAxNi4gCiAgIC0taXJiX2Rl YnVnIG4JICAgIFNldCBpbnRlcm5hbCBkZWJ1ZyBsZXZlbCB0byBuIChub3QgZm9yIHBvcHVs YXIgdXNlKQogICAtdiwgLS12ZXJzaW9uCSAgICBQcmludCB0aGUgdmVyc2lvbiBvZiBpcmIK KyMgdmltOmZpbGVlbmNvZGluZz11cy1hc2NpaQpkaWZmIC0tZ2l0IGEvbGliL2lyYi9sYy9q YS9lbmNvZGluZ19hbGlhc2VzLnJiIGIvbGliL2lyYi9sYy9qYS9lbmNvZGluZ19hbGlhc2Vz LnJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MTNkZmYKLS0tIC9k ZXYvbnVsbAorKysgYi9saWIvaXJiL2xjL2phL2VuY29kaW5nX2FsaWFzZXMucmIKQEAgLTAs MCArMSw4IEBACittb2R1bGUgSVJCCisgIGNsYXNzIExvY2FsZQorICAgIEBAbGVnYWN5X2Vu Y29kaW5nX2FsaWFzX21hcCA9IHsKKyAgICAgICd1amlzJyA9PiBFbmNvZGluZzo6RVVDX0pQ LAorICAgICAgJ2V1YycgPT4gRW5jb2Rpbmc6OkVVQ19KUAorICAgIH0uZnJlZXplCisgIGVu ZAorZW5kCmRpZmYgLS1naXQgYS9saWIvaXJiL2xjL2phL2Vycm9yLnJiIGIvbGliL2lyYi9s Yy9qYS9lcnJvci5yYgppbmRleCAxM2NmMTgwLi5kYzAzNDVlIDEwMDY0NAotLS0gYS9saWIv aXJiL2xjL2phL2Vycm9yLnJiCisrKyBiL2xpYi9pcmIvbGMvamEvZXJyb3IucmIKQEAgLTEs NCArMSw0IEBACi0jCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIyAgIGlyYi9sYy9qYS9l cnJvci5yYiAtIAogIyAgIAkkUmVsZWFzZSBWZXJzaW9uOiAwLjkuNSQKICMgICAJJFJldmlz aW9uJApAQCAtMTMsMTQgKzEzLDE1IEBAIHJlcXVpcmUgImUybW1hcCIKIG1vZHVsZSBJUkIK ICAgIyBleGNlcHRpb25zCiAgIGV4dGVuZCBFeGNlcHRpb24yTWVzc2FnZU1hcHBlcgotICBk ZWZfZXhjZXB0aW9uIDpVbnJlY29nbml6ZWRTd2l0Y2gsICcbJEIlOSUkJUMlQRsoQiglcykb JEIkLEosJGokXiQ7JHMbKEInCi0gIGRlZl9leGNlcHRpb24gOk5vdEltcGxlbWVudGVkRXJy b3IsICdgJXNcJxskQiRORGo1QSQsSSxNVyRHJDkbKEInCi0gIGRlZl9leGNlcHRpb24gOkNh bnRSZXR1cm5Ub05vcm1hbE1vZGUsICdOb3JtYWwbJEIlYiE8JUkkS0xhJGwkXiQ7JHMbKEIu JwotICBkZWZfZXhjZXB0aW9uIDpJbGxlZ2FsUGFyYW1ldGVyLCAnGyRCJVElaSVhITwlPxso QiglcykbJEIkLDRWMGMkQyRGJCQkXiQ5GyhCLicKLSAgZGVmX2V4Y2VwdGlvbiA6SXJiQWxy ZWFkeURlYWQsICdJcmIbJEIkTzR7JEs7YCRzJEckJCReJDkbKEIuJwotICBkZWZfZXhjZXB0 aW9uIDpJcmJTd2l0Y2hlZFRvQ3VycmVudFRocmVhZCwgJxskQiUrJWwlcyVIJTklbCVDJUkk S0BaJGpCWCRvJGokXiQ3JD8bKEIuJwotICBkZWZfZXhjZXB0aW9uIDpOb1N1Y2hKb2IsICcb JEIkPSROJGgkJiRKJTglZyVWGyhCKCVzKRskQiRPJCIkaiReJDskcxsoQi4nCi0gIGRlZl9l eGNlcHRpb24gOkNhbnRTaGlmdFRvTXVsdGlJcmJNb2RlLCAnbXVsdGktaXJiIG1vZGUbJEIk SzBcJGwkXiQ7JHMbKEIuJwotICBkZWZfZXhjZXB0aW9uIDpDYW50Q2hhbmdlQmluZGluZywg JxskQiVQJSQlcyVHJSMlcyUwGyhCKCVzKRskQiRLSlE5OSRHJC0kXiQ7JHMbKEIuJwotICBk ZWZfZXhjZXB0aW9uIDpVbmRlZmluZWRQcm9tcHRNb2RlLCAnGyRCJVclbSVzJVclSCViITwl SRsoQiglcykbJEIkT0RqNUEkNSRsJEYkJCReJDskcxsoQi4nCisgIGRlZl9leGNlcHRpb24g OlVucmVjb2duaXplZFN3aXRjaCwgJ+OCueOCpOODg+ODgSglcynjgYzliIbjgorjgb7jgZvj gpMnCisgIGRlZl9leGNlcHRpb24gOk5vdEltcGxlbWVudGVkRXJyb3IsICdgJXNcJ+OBruWu mue+qeOBjOW/heimgeOBp+OBmScKKyAgZGVmX2V4Y2VwdGlvbiA6Q2FudFJldHVyblRvTm9y bWFsTW9kZSwgJ05vcm1hbOODouODvOODieOBq+aIu+OCjOOBvuOBm+OCky4nCisgIGRlZl9l eGNlcHRpb24gOklsbGVnYWxQYXJhbWV0ZXIsICfjg5Hjg6njg6Hjg7zjgr8oJXMp44GM6ZaT 6YGV44Gj44Gm44GE44G+44GZLicKKyAgZGVmX2V4Y2VwdGlvbiA6SXJiQWxyZWFkeURlYWQs ICdJcmLjga/ml6LjgavmrbvjgpPjgafjgYTjgb7jgZkuJworICBkZWZfZXhjZXB0aW9uIDpJ cmJTd2l0Y2hlZFRvQ3VycmVudFRocmVhZCwgJ+OCq+ODrOODs+ODiOOCueODrOODg+ODieOB q+WIh+OCiuabv+OCj+OCiuOBvuOBl+OBny4nCisgIGRlZl9leGNlcHRpb24gOk5vU3VjaEpv YiwgJ+OBneOBruOCiOOBhuOBquOCuOODp+ODliglcynjga/jgYLjgorjgb7jgZvjgpMuJwor ICBkZWZfZXhjZXB0aW9uIDpDYW50U2hpZnRUb011bHRpSXJiTW9kZSwgJ211bHRpLWlyYiBt b2Rl44Gr56e744KM44G+44Gb44KTLicKKyAgZGVmX2V4Y2VwdGlvbiA6Q2FudENoYW5nZUJp bmRpbmcsICfjg5DjgqTjg7Pjg4fjgqPjg7PjgrAoJXMp44Gr5aSJ5pu044Gn44GN44G+44Gb 44KTLicKKyAgZGVmX2V4Y2VwdGlvbiA6VW5kZWZpbmVkUHJvbXB0TW9kZSwgJ+ODl+ODreOD s+ODl+ODiOODouODvOODiSglcynjga/lrprnvqnjgZXjgozjgabjgYTjgb7jgZvjgpMuJwog ZW5kCisjIHZpbTpmaWxlZW5jb2Rpbmc9dXRmLTgKZGlmZiAtLWdpdCBhL2xpYi9pcmIvbGMv amEvaGVscC1tZXNzYWdlIGIvbGliL2lyYi9sYy9qYS9oZWxwLW1lc3NhZ2UKaW5kZXggZmYw OWIwNy4uZDE1NjAzOSAxMDA2NDQKLS0tIGEvbGliL2lyYi9sYy9qYS9oZWxwLW1lc3NhZ2UK KysrIGIvbGliL2lyYi9sYy9qYS9oZWxwLW1lc3NhZ2UKQEAgLTEsNCArMSw0IEBACi0jCisj IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIyAgIGlyYi9sYy9qYS9oZWxwLW1lc3NhZ2UucmIg LSAKICMgICAJJFJlbGVhc2UgVmVyc2lvbjogMC45LjUkCiAjICAgCSRSZXZpc2lvbiQKQEAg LTksMjcgKzksMzEgQEAKICMgICAKICMKIFVzYWdlOiAgaXJiLnJiIFtvcHRpb25zXSBbcHJv Z3JhbWZpbGVdIFthcmd1bWVudHNdCi0gIC1mCQkgICAgfi8uaXJicmMgGyRCJHJGSSRfOX4k XiRKJCQbKEIuCi0gIC1tCQkgICAgYmMbJEIlYiE8JUkbKEIoGyRCSiw/dBsoQiwgGyRCOVRO cyRON1c7OyQsJEckLSRrGyhCKQotICAtZCAgICAgICAgICAgICAgICAkREVCVUcgGyRCJHIb KEJ0cnVlGyRCJEskOSRrGyhCKHJ1YnkgLWQgGyRCJEhGMSQ4GyhCKQotICAtciBsb2FkLW1v ZHVsZSAgICBydWJ5IC1yIBskQiRIRjEkOBsoQi4KLSAgLUkgcGF0aCAgICAgICAgICAgJExP QURfUEFUSCAbJEIkSxsoQiBwYXRoIBskQiRyREkyQyQ5JGsbKEIuCi0gIC0taW5zcGVjdAkg ICAgGyRCN2syTD1QTk8kSxsoQmluc3BlY3QbJEIkck1RJCQkaxsoQihiYxskQiViITwlSTBK MzAkTyVHJVUlKSVrJUgbKEIpLiAKLSAgLS1ub2luc3BlY3QJICAgIBskQjdrMkw9UE5PJEsb KEJpbnNwZWN0GyRCJHJNUSQkJEokJBsoQi4KLSAgLS1yZWFkbGluZQkgICAgcmVhZGxpbmUb JEIlaSUkJVYlaSVqJHJNeE1RJDkkaxsoQi4KLSAgLS1ub3JlYWRsaW5lCSAgICByZWFkbGlu ZRskQiVpJSQlViVpJWokck14TVEkNyRKJCQbKEIuIAorICAtZgkJICAgIH4vLmlyYnJjIOOC kuiqreOBv+i+vOOBvuOBquOBhC4KKyAgLW0JCSAgICBiY+ODouODvOODiSjliIbmlbAsIOih jOWIl+OBruioiOeul+OBjOOBp+OBjeOCiykKKyAgLWQgICAgICAgICAgICAgICAgJERFQlVH IOOCknRydWXjgavjgZnjgosocnVieSAtZCDjgajlkIzjgZgpCisgIC1yIGxvYWQtbW9kdWxl ICAgIHJ1YnkgLXIg44Go5ZCM44GYLgorICAtSSBwYXRoICAgICAgICAgICAkTE9BRF9QQVRI IOOBqyBwYXRoIOOCkui/veWKoOOBmeOCiy4KKyAgLVUgICAgICAgICAgICAgICAgcnVieSAt VSDjgajlkIzjgZguCisgIC1FIGVuYyAgICAgICAgICAgIHJ1YnkgLUUg44Go5ZCM44GYLgor ICAtLWluc3BlY3QJICAgIOe1kOaenOWHuuWKm+OBq2luc3BlY3TjgpLnlKjjgYTjgosoYmPj g6Ljg7zjg4nku6XlpJbjga/jg4fjg5Xjgqnjg6vjg4gpLiAKKyAgLS1ub2luc3BlY3QJICAg IOe1kOaenOWHuuWKm+OBq2luc3BlY3TjgpLnlKjjgYTjgarjgYQuCisgIC0tcmVhZGxpbmUJ ICAgIHJlYWRsaW5l44Op44Kk44OW44Op44Oq44KS5Yip55So44GZ44KLLgorICAtLW5vcmVh ZGxpbmUJICAgIHJlYWRsaW5l44Op44Kk44OW44Op44Oq44KS5Yip55So44GX44Gq44GELiAK ICAgLS1wcm9tcHQgcHJvbXB0LW1vZGUvLS1wcm9tcHQtbW9kZSBwcm9tcHQtbW9kZQotCQkg ICAgGyRCJVclbSVzJVclSCViITwlSSRyQFpCWCQoJF4kORsoQi4gGyRCOD06X0RqNUEkNSRs JEYkJCRrJVcbKEIKLQkJICAgIBskQiVtJXMlVyVIJWIhPCVJJE8bKEIsIGRlZmF1bHQsIHNp bXBsZSwgeG1wLCBpbmYtcnVieRskQiQsGyhCCi0JCSAgICAbJEJNUTBVJDUkbCRGJCQkXiQ5 GyhCLiAKLSAgLS1pbmYtcnVieS1tb2RlICAgZW1hY3MbJEIkThsoQmluZi1ydWJ5LW1vZGUb JEJNUSROJVclbSVzJVclSEk9PCgkcjlUJEokJhsoQi4gGyRCRkMbKEIKLQkJICAgIBskQiRL O1hEaiQsJEokJDhCJGobKEIsIHJlYWRsaW5lGyRCJWklJCVWJWklaiRPO0gkbyRKJC8kSiRr GyhCLgotICAtLXNpbXBsZS1wcm9tcHQgICAbJEJIcz5vJEslNyVzJVclayRKJVclbSVzJVcl SCRyTVEkJCRrJWIhPCVJJEckORsoQi4KLSAgLS1ub3Byb21wdAkgICAgGyRCJVclbSVzJVcl SEk9PCgkcjlUJEokbyRKJCQbKEIuCi0gIC0tdHJhY2VyCSAgICAbJEIlMyVeJXMlSTxCOVQ7 fiRLJUglbCE8JTkkcjlUJEokJhsoQi4KKwkJICAgIOODl+ODreODs+ODl+ODiOODouODvOOD ieOCkuWIh+abv+OBiOOBvuOBmS4g54++5Zyo5a6a576p44GV44KM44Gm44GE44KL44OXCisJ CSAgICDjg63jg7Pjg5fjg4jjg6Ljg7zjg4njga8sIGRlZmF1bHQsIHNpbXBsZSwgeG1wLCBp bmYtcnVieeOBjAorCQkgICAg55So5oSP44GV44KM44Gm44GE44G+44GZLiAKKyAgLS1pbmYt cnVieS1tb2RlICAgZW1hY3Pjga5pbmYtcnVieS1tb2Rl55So44Gu44OX44Ot44Oz44OX44OI 6KGo56S644KS6KGM44Gq44GGLiDnibkKKwkJICAgIOOBq+aMh+WumuOBjOOBquOBhOmZkOOC iiwgcmVhZGxpbmXjg6njgqTjg5bjg6njg6rjga/kvb/jgo/jgarjgY/jgarjgosuCisgIC0t c2ltcGxlLXByb21wdCAgIOmdnuW4uOOBq+OCt+ODs+ODl+ODq+OBquODl+ODreODs+ODl+OD iOOCkueUqOOBhOOCi+ODouODvOODieOBp+OBmS4KKyAgLS1ub3Byb21wdAkgICAg44OX44Ot 44Oz44OX44OI6KGo56S644KS6KGM44Gq44KP44Gq44GELgorICAtLXRyYWNlcgkgICAg44Kz 44Oe44Oz44OJ5a6f6KGM5pmC44Gr44OI44Os44O844K544KS6KGM44Gq44GGLgogICAtLWJh Y2stdHJhY2UtbGltaXQgbgotCQkgICAgGyRCJVAlQyUvJUglbCE8JTlJPTwoJHIlUCVDJS8l SCVsITwlOSRORiwkKyRpGyhCIG4sIBskQjhlJG0bKEIKLQkJICAgIBskQiQrJGkbKEJuGyRC JEAkMTlUJEokJhsoQi4gGyRCJUclVSUpJWslSCRPGyhCMTYgCi0gIC0taXJiX2RlYnVnIG4J ICAgIGlyYhskQiROJUclUCVDJTAlRyVQJUMlMCVsJVklayRyGyhCbhskQiRLQF9EaiQ5JGsb KEIoGyRCTXhNUSQ3JEobKEIKLQkJICAgIBskQiQkSn0kLEw1RnEkRyQ3JGckJhsoQikuCi0g IC12LCAtLXZlcnNpb24JICAgIGlyYhskQiROJVAhPCU4JWclcyRyST08KCQ5JGsbKEIKKwkJ ICAgIOODkOODg+OCr+ODiOODrOODvOOCueihqOekuuOCkuODkOODg+OCr+ODiOODrOODvOOC ueOBrumgreOBi+OCiSBuLCDlvozjgo0KKwkJICAgIOOBi+OCiW7jgaDjgZHooYzjgarjgYYu IOODh+ODleOCqeODq+ODiOOBrzE2IAorICAtLWlyYl9kZWJ1ZyBuCSAgICBpcmLjga7jg4fj g5Djg4PjgrDjg4fjg5Djg4PjgrDjg6zjg5njg6vjgpJu44Gr6Kit5a6a44GZ44KLKOWIqeeU qOOBl+OBqgorCQkgICAg44GE5pa544GM54Sh6Zuj44Gn44GX44KH44GGKS4KKyAgLXYsIC0t dmVyc2lvbgkgICAgaXJi44Gu44OQ44O844K444On44Oz44KS6KGo56S644GZ44KLCisKKyMg dmltOmZpbGVlbmNvZGluZz11dGYtOApkaWZmIC0tZ2l0IGEvbGliL2lyYi9sb2NhbGUucmIg Yi9saWIvaXJiL2xvY2FsZS5yYgppbmRleCA4NTViZTMxLi4wYjcyOGQwIDEwMDY0NAotLS0g YS9saWIvaXJiL2xvY2FsZS5yYgorKysgYi9saWIvaXJiL2xvY2FsZS5yYgpAQCAtOCw0MyAr OCw1MSBAQAogIwogIyAgIAogIwotCi1hdXRvbG9hZCA6S2NvbnYsICJrY29udiIKLQogbW9k dWxlIElSQgogICBjbGFzcyBMb2NhbGUKICAgICBAUkNTX0lEPSctJElkJC0nCiAKLSAgICBK UERlZmF1bHRMb2NhbGUgPSAiamEiCisgICAgTE9DQUxFX05BTUVfUkUgPSAlclsKKyAgICAg ICg/PGxhbmd1YWdlPltbOmFscGhhOl1dezJ9KQorICAgICAgKD86XworICAgICAgICg/PHRl cnJpdG9yeT5bWzphbHBoYTpdXXsyLDN9KQorICAgICAgICg/OlwuCisJKD88Y29kZXNldD5b XkBdKykKKyAgICAgICApPworICAgICAgKT8KKyAgICAgICg/OkAKKyAgICAgICAoPzxtb2Rp Zmllcj4uKikKKyAgICAgICk/CisgICAgXXgKICAgICBMT0NBTEVfRElSID0gIi9sYy8iCiAK LSAgICBkZWYgaW5pdGlhbGl6ZShsb2NhbGUgPSBuaWwpCi0gICAgICBAbGFuZyA9IGxvY2Fs ZSB8fCBFTlZbIklSQl9MQU5HIl0gfHwgRU5WWyJMQ19NRVNTQUdFUyJdIHx8IEVOVlsiTENf QUxMIl0gfHwgRU5WWyJMQU5HIl0gfHwgIkMiIAotICAgIGVuZAotCi0gICAgYXR0cl9yZWFk ZXIgOmxhbmcKKyAgICBAQGxlZ2FjeV9lbmNvZGluZ19hbGlhc19tYXAgPSB7fS5mcmVlemUK IAotICAgIGRlZiBsYzJrY29udihsYW5nKQotICAgICAgY2FzZSBsYW5nCi0gICAgICB3aGVu ICJqYV9KUC51amlzIiwgImphX0pQLmV1YyIsICJqYV9KUC5ldWNKUCIsICJqYV9KUC5FVUMt SlAiCi0gICAgICAgIEtjb252OjpFVUMKLSAgICAgIHdoZW4gImphX0pQLnNqaXMiLCAiamFf SlAuU0pJUyIKLSAgICAgICAgS2NvbnY6OlNKSVMKLSAgICAgIHdoZW4gL2phX0pQLnV0Zi0/ OC9pCi0JS2NvbnY6OlVURjgKKyAgICBkZWYgaW5pdGlhbGl6ZShsb2NhbGUgPSBuaWwpCisg ICAgICBAbG9jYWxlID0gbG9jYWxlIHx8IEVOVlsiSVJCX0xBTkciXSB8fCBFTlZbIkxDX01F U1NBR0VTIl0gfHwgRU5WWyJMQ19BTEwiXSB8fCBFTlZbIkxBTkciXSB8fCAiQyIgCisgICAg ICBpZiBtID0gTE9DQUxFX05BTUVfUkUubWF0Y2goQGxvY2FsZSkKKwlAbGFuZywgQHRlcnJp dG9yeSwgQGVuY29kaW5nX25hbWUsIEBtb2RpZmllciA9IG1bOmxhbmd1YWdlXSwgbVs6dGVy cml0b3J5XSwgbVs6Y29kZXNldF0sIG1bOm1vZGlmaWVyXQorCisJaWYgQGVuY29kaW5nX25h bWUKKwkgIGJlZ2luOyBsb2FkICdpcmIvZW5jb2RpbmdfYWxpYXNlcy5yYicgcmVzY3VlIExv YWRFcnJvcjsgZW5kCisJICBpZiBAZW5jb2RpbmcgPSBAQGxlZ2FjeV9lbmNvZGluZ19hbGlh c19tYXBbQGVuY29kaW5nX25hbWVdCisJICAgIHdhcm4gIiVzIGlzIG9ic29sZXRlLiB1c2Ug JXMiICUgWyIje0BsYW5nfV8je0B0ZXJyaXRvcnl9LiN7QGVuY29kaW5nX25hbWV9IiwgIiN7 QGxhbmd9XyN7QHRlcnJpdG9yeX0uI3tAZW5jb2RpbmcubmFtZX0iXQorCSAgZWxzZQorCSAg ICBAZW5jb2RpbmcgPSBFbmNvZGluZy5maW5kKCdsb2NhbGUnKQorCSAgZW5kCisJZW5kCiAg ICAgICBlbmQKICAgICBlbmQKLSAgICBwcml2YXRlIDpsYzJrY29udgorCisgICAgYXR0cl9y ZWFkZXIgOmxhbmcsIDp0ZXJyaXRvcnksIDplbmNvZGluZywgOm1vZGlmaWVlcgogCiAgICAg ZGVmIFN0cmluZyhtZXMpCiAgICAgICBtZXMgPSBzdXBlcihtZXMpCi0gICAgICBjYXNlIEBs YW5nCi0gICAgICB3aGVuIC9eamEvCi0JbWVzID0gS2NvbnY6Omtjb252KG1lcywgbGMya2Nv bnYoQGxhbmcpKQorICAgICAgaWYgQGVuY29kaW5nCisJbWVzLmVuY29kZShAZW5jb2Rpbmcp IAogICAgICAgZWxzZQogCW1lcwogICAgICAgZW5kCi0gICAgICBtZXMKICAgICBlbmQKIAog ICAgIGRlZiBmb3JtYXQoKm9wdHMpCkBAIC0xMDYsMjcgKzExNCwyMCBAQCBtb2R1bGUgSVJC CiAgICAgICBkaXIgPSAiIiBpZiBkaXIgPT0gIi4iCiAgICAgICBiYXNlID0gRmlsZS5iYXNl bmFtZShmaWxlKQogCi0gICAgICBpZiAvXmphKF9KUCk/JC8gPX4gQGxhbmcKLSAJYmFjaywg QGxhbmcgPSBAbGFuZywgIkMiCisgICAgICBpZiBkaXJbMF0gPT0gPy8gIy8KKwlsY19wYXRo ID0gc2VhcmNoX2ZpbGUoZGlyLCBiYXNlKQorCXJldHVybiByZWFsX2xvYWQobGNfcGF0aCwg cHJpdikgaWYgbGNfcGF0aAogICAgICAgZW5kCi0gICAgICBiZWdpbgotCWlmIGRpclswXSA9 PSA/LyAjLwotCSAgbGNfcGF0aCA9IHNlYXJjaF9maWxlKGRpciwgYmFzZSkKLQkgIHJldHVy biByZWFsX2xvYWQobGNfcGF0aCwgcHJpdikgaWYgbGNfcGF0aAotCWVuZAotCQotCWZvciBw YXRoIGluICQ6Ci0JICBsY19wYXRoID0gc2VhcmNoX2ZpbGUocGF0aCArICIvIiArIGRpciwg YmFzZSkKLQkgIHJldHVybiByZWFsX2xvYWQobGNfcGF0aCwgcHJpdikgaWYgbGNfcGF0aAot CWVuZAotICAgICAgZW5zdXJlCi0JQGxhbmcgPSBiYWNrIGlmIGJhY2sKKworICAgICAgZm9y IHBhdGggaW4gJDoKKwlsY19wYXRoID0gc2VhcmNoX2ZpbGUocGF0aCArICIvIiArIGRpciwg YmFzZSkKKwlyZXR1cm4gcmVhbF9sb2FkKGxjX3BhdGgsIHByaXYpIGlmIGxjX3BhdGgKICAg ICAgIGVuZAogICAgICAgcmFpc2UgTG9hZEVycm9yLCAiTm8gc3VjaCBmaWxlIHRvIGxvYWQg LS0gI3tmaWxlfSIKICAgICBlbmQgCiAKICAgICBkZWYgcmVhbF9sb2FkKHBhdGgsIHByaXYp Ci0gICAgICBzcmMgPSBzZWxmLlN0cmluZyhGaWxlLnJlYWQocGF0aCkpCisgICAgICBzcmMg PSBNYWdpY0ZpbGUub3BlbihwYXRoKXt8ZnwgZi5yZWFkfQogICAgICAgaWYgcHJpdgogCWV2 YWwoInNlbGYiLCBUT1BMRVZFTF9CSU5ESU5HKS5leHRlbmQoTW9kdWxlLm5ldyB7ZXZhbChz cmMsIG5pbCwgcGF0aCl9KQogICAgICAgZWxzZQpAQCAtMTUyLDI5ICsxNTMsMzkgQEAgbW9k dWxlIElSQgogICAgIGVuZAogCiAgICAgZGVmIHNlYXJjaF9maWxlKHBhdGgsIGZpbGUpCi0g ICAgICBpZiBGaWxlLmV4aXN0PyhwMSA9IHBhdGggKyBsY19wYXRoKGZpbGUsICJDIikpCi0J aWYgRmlsZS5leGlzdD8ocDIgPSBwYXRoICsgbGNfcGF0aChmaWxlKSkKLQkgIHJldHVybiBw MgotCWVsc2UKLQllbmQKLQlyZXR1cm4gcDEKLSAgICAgIGVsc2UKKyAgICAgIGVhY2hfc3Vi bG9jYWxlIGRvIHxsY3wKKwlmdWxsX3BhdGggPSBwYXRoICsgbGNfcGF0aChmaWxlLCBsYykK KwlyZXR1cm4gZnVsbF9wYXRoIGlmIEZpbGUuZXhpc3Q/KGZ1bGxfcGF0aCkKICAgICAgIGVu ZAogICAgICAgbmlsCiAgICAgZW5kCiAgICAgcHJpdmF0ZSA6c2VhcmNoX2ZpbGUKIAotICAg IGRlZiBsY19wYXRoKGZpbGUgPSAiIiwgbGMgPSBAbGFuZykKLSAgICAgIGNhc2UgbGMKLSAg ICAgIHdoZW4gIkMiCisgICAgZGVmIGxjX3BhdGgoZmlsZSA9ICIiLCBsYyA9IEBsb2NhbGUp CisgICAgICBpZiBsYy5uaWw/CiAJTE9DQUxFX0RJUiArIGZpbGUKLSAgICAgIHdoZW4gL15q YS8KLQlMT0NBTEVfRElSICsgImphLyIgKyBmaWxlCiAgICAgICBlbHNlCiAJTE9DQUxFX0RJ UiArIEBsYW5nICsgIi8iICsgZmlsZQogICAgICAgZW5kCiAgICAgZW5kCiAgICAgcHJpdmF0 ZSA6bGNfcGF0aAorCisgICAgZGVmIGVhY2hfc3VibG9jYWxlCisgICAgICBpZiBAbGFuZwor CWlmIEB0ZXJyaXRvcnkKKwkgIGlmIEBlbmNvZGluZ19uYW1lCisJICAgIHlpZWxkICIje0Bs YW5nfV8je0B0ZXJyaXRvcnl9LiN7QGVuY29kaW5nX25hbWV9QCN7QG1vZGlmaWVyfSIgaWYg QG1vZGlmaWVyCisJICAgIHlpZWxkICIje0BsYW5nfV8je0B0ZXJyaXRvcnl9LiN7QGVuY29k aW5nX25hbWV9IgorCSAgZW5kCisJICB5aWVsZCAiI3tAbGFuZ31fI3tAdGVycml0b3J5fUAj e0Btb2RpZmllcn0iIGlmIEBtb2RpZmllcgorCSAgeWllbGQgIiN7QGxhbmd9XyN7QHRlcnJp dG9yeX0iCisJZW5kCisJeWllbGQgIiN7QGxhbmd9QCN7QG1vZGlmaWVyfSIgaWYgQG1vZGlm aWVyCisJeWllbGQgIiN7QGxhbmd9IgorICAgICAgZW5kCisgICAgICB5aWVsZCBuaWwKKyAg ICBlbmQKKyAgICBwcml2YXRlIDplYWNoX3N1YmxvY2FsZQogICBlbmQKIGVuZAogCmRpZmYg LS1naXQgYS9saWIvaXJiL21hZ2ljLWZpbGUucmIgYi9saWIvaXJiL21hZ2ljLWZpbGUucmIK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODYxMjYyMAotLS0gL2Rldi9u dWxsCisrKyBiL2xpYi9pcmIvbWFnaWMtZmlsZS5yYgpAQCAtMCwwICsxLDM2IEBACittb2R1 bGUgSVJCCisgIGNsYXNzIDw8IChNYWdpY0ZpbGUgPSBPYmplY3QubmV3KQorICAgICMgc2Vl IHBhcnNlcl9tYWdpY19jb21tZW50IGluIHBhcnNlLnkKKyAgICBFTkNPRElOR19TUEVDX1JF ID0gJXIiY29kaW5nXHMqWz06XVxzKihbWzphbG51bTpdXC1fXSspIgorCisgICAgZGVmIG9w ZW4ocGF0aCkKKyAgICAgIGlvID0gRmlsZS5vcGVuKHBhdGgsICdyYicpCisgICAgICBsaW5l ID0gaW8uZ2V0cworICAgICAgbGluZSA9IGlvLmdldHMgaWYgbGluZVswLDJdID09ICIjISIK KyAgICAgIGVuY29kaW5nID0gZGV0ZWN0X2VuY29kaW5nKGxpbmUpCisgICAgICBlbmNvZGlu ZyB8fD0gZGVmYXVsdF9zcmNfZW5jb2RpbmcKKyAgICAgIGlvLnJld2luZAorICAgICAgaW8u c2V0X2VuY29kaW5nKGVuY29kaW5nLCBuaWwpCisKKyAgICAgIGlmIGJsb2NrX2dpdmVuPwor ICAgICAgICBiZWdpbgorICAgICAgICAgIHJldHVybiAoeWllbGQgaW8pCisgICAgICAgIGVu c3VyZQorICAgICAgICAgIGlvLmNsb3NlCisgICAgICAgIGVuZAorICAgICAgZWxzZQorICAg ICAgICByZXR1cm4gaW8KKyAgICAgIGVuZAorICAgIGVuZAorCisgICAgcHJpdmF0ZQorICAg IGRlZiBkZXRlY3RfZW5jb2RpbmcobGluZSkKKyAgICAgIHJldHVybiB1bmxlc3MgbGluZVsw XSA9PSA/IworICAgICAgbGluZSA9IGxpbmVbMS4uLTFdCisgICAgICBsaW5lID0gJDEgaWYg bGluZVsvLVwqLVxzKiguKj8pXHMqLSotJC9dCisgICAgICByZXR1cm4gbmlsIHVubGVzcyBF TkNPRElOR19TUEVDX1JFID1+IGxpbmUKKyAgICAgIGVuY29kaW5nID0gJDEKKyAgICAgIHJl dHVybiBlbmNvZGluZy5zdWIoLy0oPzptYWN8ZG9zfHVuaXgpL2ksICcnKQorICAgIGVuZAor ICBlbmQKK2VuZApkaWZmIC0tZ2l0IGEvbGliL2lyYi9ydWJ5LWxleC5yYiBiL2xpYi9pcmIv cnVieS1sZXgucmIKaW5kZXggMjU2OWZkOS4uYjIxZjBkMyAxMDA2NDQKLS0tIGEvbGliL2ly Yi9ydWJ5LWxleC5yYgorKysgYi9saWIvaXJiL3J1YnktbGV4LnJiCkBAIC0yNDAsNiArMjQw LDcgQEAgY2xhc3MgUnVieUxleAogCSAgICBlbmQKIAkgIGVuZAogCSAgaWYgQGxpbmUgIT0g IlxuIgorICAgICAgQGxpbmUuZm9yY2VfZW5jb2RpbmcoQGlvLmVuY29kaW5nKQogCSAgICB5 aWVsZCBAbGluZSwgQGV4cF9saW5lX25vCiAJICBlbmQKIAkgIGJyZWFrIHVubGVzcyBsCmRp ZmYgLS1naXQgYS9saWIvaXJiL3NyY19lbmNvZGluZy5yYiBiL2xpYi9pcmIvc3JjX2VuY29k aW5nLnJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyOGJjNjMKLS0t IC9kZXYvbnVsbAorKysgYi9saWIvaXJiL3NyY19lbmNvZGluZy5yYgpAQCAtMCwwICsxLDQg QEAKKyMgRE8gTk9UIFdSSVRFIEFOWSBNQUdJQyBDT01NRU5ULgorZGVmIGRlZmF1bHRfc3Jj X2VuY29kaW5nCisgIHJldHVybiBfX0VOQ09ESU5HX18KK2VuZAo= --------------010002050609050102090801--