[ruby-core:110047] [Ruby master Bug#19017] Net::HTTP may block when attempting to reuse a persistent connection
From:
"joshc (Josh C)" <noreply@...>
Date:
2022-09-23 15:04:14 UTC
List:
ruby-core #110047
SXNzdWUgIzE5MDE3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgam9zaGMgKEpvc2ggQykuCgoKRm9yZ290 IHRvIGFkZCB0aGUgbGluayB0byB0aGUgZHJhZnQgUFI6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5 L3J1YnkvcHVsbC82NDIzLgoKPiBJIHRoaW5rIHdlIHNob3VsZCBzb2x2ZSB0aGlzIGluIElPLCBu b3QgaW4gTmV0OjpIVFRQLiBDaGVja2luZyB0aGUgY2xhc3MvdHlwZSBpcyBhIHN0cm9uZyBpbmRp Y2F0aW9uIHRvIG1lIHRoYXQgdGhlIHByb2JsZW0gaXMgbm90IGJlaW5nIHNvbHZlZCBhdCB0aGUg cmlnaHQgbGV2ZWwuCgpZZXMsIG1ha2VzIHNlbnNlLiBUaG91Z2ggZm9yIGNvbnRleHQsIEkgYWRk ZWQgdGhlIHR5cGUgY2hlY2sgdG8gdGVtcG9yYXJpbHkgd29yayBhcm91bmQgdGhlc2UgdHdvIGZh aWxpbmcgdGVzdHM6CgpodHRwczovL2dpdGh1Yi5jb20vcnVieS9zcGVjL2Jsb2IvOGQyNmMwYzIw MmQzYzA5ODQ3OGZlMTcwNjdhMTJiODAzNTA0MTg3ZS9saWJyYXJ5L25ldC9odHRwL2h0dHAvcmVx dWVzdF9zcGVjLnJiI0wyNC1MMjUKaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkvc3BlYy9ibG9iLzhk MjZjMGMyMDJkM2MwOTg0NzhmZTE3MDY3YTEyYjgwMzUwNDE4N2UvbGlicmFyeS9uZXQvaHR0cC9o dHRwL3JlcXVlc3Rfc3BlYy5yYiNMNzEtTDcyCgpUaG9zZSB0ZXN0cyBmYWlsIGJlY2F1c2UgdGhl IHByZWNlZGluZyBIRUFEIHRlc3RzLCBlLmcuIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3NwZWMv YmxvYi84ZDI2YzBjMjAyZDNjMDk4NDc4ZmUxNzA2N2ExMmI4MDM1MDQxODdlL2xpYnJhcnkvbmV0 L2h0dHAvaHR0cC9yZXF1ZXN0X3NwZWMucmIjTDIxLUwyMi4gbGVhdmUgdGhlIHNvY2tldCBpbiBh IGJhZCBzdGF0ZSwgd2hpY2ggY2F1c2VzIHRoZSBQT1NUIHRlc3QgdG8gZmFpbC4KCkkgdGhpbmsg dGhlcmUncyBsaWtlbHkgYSBidWcgaW4gbmV0L2h0dHAgd2hlbiBwcm9jZXNzaW5nIEhFQUQgcmVx dWVzdHMgd2l0aCBwZXJzaXN0ZW50IGNvbm5lY3Rpb25zLiBJIHRoaW5rIGl0J3Mgbm90IGZ1bGx5 IGRyYWluaW5nIHRoZSBzb2NrZXQsIGJ1dCBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgbW9yZS4gT25j ZSB0aGF0J3MgcmVzb2x2ZWQsIHRoZW4gSSB0aGluayBJIGNhbiByZW1vdmUgdGhlIHR5cGUgY2hl Y2sgZm9yIGh0dHAgdnMgaHR0cHMuIEkgYWxzbyB3YW50ZWQgdG8gdGVzdCBvbiBXaW5kb3dzIHRv IHNlZSBpZiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMTA4OSNpc3N1ZWNvbW1l bnQtMTU5ODc4MDAzIGlzIGFjdHVhbGx5IHN0aWxsIGFuIGlzc3VlLgoKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpCdWcgIzE5MDE3OiBOZXQ6OkhUVFAgbWF5IGJsb2Nr IHdoZW4gYXR0ZW1wdGluZyB0byByZXVzZSBhIHBlcnNpc3RlbnQgY29ubmVjdGlvbgpodHRwczov L2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTkwMTcjY2hhbmdlLTk5Mjk3CgoqIEF1dGhvcjog am9zaGMgKEpvc2ggQykKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCiogcnVieSAt djogcnVieSAzLjEuMnAyMCAoMjAyMi0wNC0xMiByZXZpc2lvbiA0NDkxYmI3NDBhKSBbeDg2XzY0 LWxpbnV4XQoqIEJhY2twb3J0OiAyLjc6IFVOS05PV04sIDMuMDogVU5LTk9XTiwgMy4xOiBVTktO T1dOCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KUnVieSdzIE5ldDo6 SFRUUCBjb2RlIHBlcmZvcm1zIGEgYmxvY2tpbmcgYE5ldDo6QnVmZmVyZWRJTyNlb2Y/YCBjaGVj ayB3aGVuIGF0dGVtcHRpbmcgdG8gcmV1c2UgYSBwZXJzaXN0ZW50IEhUVFAgY29ubmVjdGlvbi4g U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvYmxvYi82YjA5OTMyOGFmMmFlMmQwNGNi ZmQwNmZlZGMzNmExOWNkZWNkMzBkL2xpYi9uZXQvaHR0cC5yYiNMMTU3My4gVGhlIGJ1ZyBpcyB0 aGUgY2hlY2sgY2FuIGhhbmcgZm9yIHVwIHRvIHRoZSBIVFRQIGByZWFkX3RpbWVvdXRgLCB3aGlj aCBpcyA2MCBzZWNvbmRzIGJ5IGRlZmF1bHQuIAoKVGhlIGNvZGUgY2FsbHMgYFRDUFNvY2tldCN3 YWl0X3JlYWRhYmxlKDApYCB0byBzZWUgaWYgdGhlIHNvY2tldCBpcyByZWFkYWJsZSBiZWZvcmUg Y2FsbGluZyB0aGUgYmxvY2tpbmcgYGVvZj9gIG1ldGhvZC4gSG93ZXZlciwgaXQncyBwb3NzaWJs ZSBmb3IgdGhlIHNvY2tldCB0byBiZSByZWFkYWJsZSB3aXRoIFNTTCBIYW5kc2hha2UgcmVjb3Jk cyBhbmQgbm8gQXBwbGljYXRpb24gRGF0YS4gU28gdGhlIGNhbGwgdG8gYGVvZj9gIHdpbGwgcHJv Y2VzcyB0aGUgU1NMIEhhbmRzaGFrZSByZWNvcmRzLCBidXQgaGFuZyBzaW5jZSBubyBBcHBsaWNh dGlvbiBEYXRhIGlzIGF2YWlsYWJsZS4KClRoZSBpc3N1ZSBjYW4gYmUgdHJpZ2dlcmVkIGlmIGEg VExTIDEuMyBzZXJ2ZXIgc2VuZHMgYSBgTmV3U2Vzc2lvblRpY2tldGAgc29tZXRpbWUgYWZ0ZXIg QXBwbGljYXRpb24gRGF0YSBpcyB3cml0dGVuLiBUaGUgYXR0YWNoZWQgY2xpZW50IGFuZCBzZXJ2 ZXIgY29kZSBkZW1vbnN0cmF0ZSB0aGUgcHJvYmxlbS4gTm90ZSBpdCdzIGltcG9ydGFudCB0aGF0 IHRoZSBjbGllbnQgYW5kIHNlcnZlciBiZSBvbiBzZXBhcmF0ZSBob3N0cyBvdGhlcndpc2UgYGVv Zj9gIHdpbGwgYWx3YXlzIHJldHVybiBpbW1lZGlhdGVseS4KCk9uIHRoZSBzZXJ2ZXIsIGNvcHkg YFNlcnZlci5qYXZhYCBhbmQgYGNlcnRzLnAxMmAgaW50byBhIGRpcmVjdG9yeSwgaW5zdGFsbCBK REsgMTcsIGNvbXBpbGUgdGhlIHNlcnZlciBhbmQgcnVuIGl0OgoKYGBgCiQgb3BlbnNzbCBwa2Nz MTIgLWluZm8gLWluIGNlcnRzLnAxMiAtbm9vdXQgLXBhc3NpbiBwYXNzOnBhc3N3b3JkCk1BQzog c2hhMSwgSXRlcmF0aW9uIDIwNDgKTUFDIGxlbmd0aDogMjAsIHNhbHQgbGVuZ3RoOiA4ClBLQ1M3 IEVuY3J5cHRlZCBkYXRhOiBwYmVXaXRoU0hBMUFuZDQwQml0UkMyLUNCQywgSXRlcmF0aW9uIDIw NDgKQ2VydGlmaWNhdGUgYmFnClBLQ1M3IERhdGEKU2hyb3VkZWQgS2V5YmFnOiBwYmVXaXRoU0hB MUFuZDMtS2V5VHJpcGxlREVTLUNCQywgSXRlcmF0aW9uIDIwNDgKJCBzdWRvIGFwdCBpbnN0YWxs IC15IG9wZW5qZGstMTctamRrIG9wZW5qZGstMTctanJlCiQgamF2YWMgU2VydmVyLmphdmEKJCBq YXZhIC1EamF2YXgubmV0LmRlYnVnPXNzbCx2ZXJib3NlIFNlcnZlcgpMb2FkZWQgcGtjczEyCmBg YAoKT24gdGhlIGNsaWVudCwgY29weSBgaHR0cC5yYmAgYW5kIGBjYS5wZW1gIGludG8gYSBkaXJl Y3RvcnksIGFkZCB0aGUgSVAgYWRkcmVzcyBmb3IgdGhlIHNlcnZlciBhcyBgcGx1dG9gIHRvIGAv ZXRjL2hvc3RzYDoKCmBgYAokIGZpbGUgY2EucGVtCgokIHN1ZG8gdmkgL2V0Yy9ob3N0cwouLi4K MTkyLjE2OC4wLjEwIHBsdXRvCi4uLgokIHJ1YnkgLS12ZXJzaW9uCnJ1YnkgMi43LjZwMjE5ICgy MDIyLTA0LTEyIHJldmlzaW9uIGM5YzIyNDVjMGEpIFt4ODZfNjQtbGludXhdCiQgb3BlbnNzbCB2 ZXJzaW9uCk9wZW5TU0wgMS4xLjFmICAzMSBNYXIgMjAyMApgYGAKClJ1biB0aGUgY2xpZW50IHRv IG1ha2UgdGhlIGZpcnN0IHJlcXVlc3Q6CgpgYGAKJCBydWJ5IGh0dHAucmIKb3BlbmluZyBjb25u ZWN0aW9uIHRvIHBsdXRvOjg4ODguLi4Kb3BlbmVkCnN0YXJ0aW5nIFNTTCBmb3IgcGx1dG86ODg4 OC4uLgpgYGAKClRoZSBzZXJ2ZXIgd2lsbCBoYW5kbGUgcmVxdWVzdF8xIGFuZCB0cmlnZ2VyIGEg bmV3IHNlc3Npb24gdGlja2V0OgoKYGBgCmphdmF4Lm5ldC5zc2x8REVCVUd8MTB8bWFpbnwyMDIy LTA5LTIyIDE4OjE4OjIzLjI2OSBVVEN8U1NMQ2lwaGVyLmphdmE6NDY2fGpkay50bHMua2V5TGlt aXRzOiAgZW50cnkgPSBBRVMvR0NNL05vUGFkZGluZyBLZXlVcGRhdGUgMl4zNy4gQUVTL0dDTS9O T1BBRERJTkc6S0VZVVBEQVRFID0gMTM3NDM4OTUzNDcyCkNvbm5lY3RlZCB0byAzNzUzMgpIYW5k bGluZyByZXF1ZXN0XzAKLi4uIHNuaXAgLi4uCmphdmF4Lm5ldC5zc2x8REVCVUd8MTB8bWFpbnwy MDIyLTA5LTIyIDE4OjE4OjI1LjMxMCBVVEN8U1NMQ2lwaGVyLmphdmE6MjAyNHxLZXlMaW1pdCB3 cml0ZSBzaWRlOiBhbGdvcml0aG0gPSBBRVMvR0NNL05PUEFERElORzpLRVlVUERBVEUKY291bnRk b3duIHZhbHVlID0gMTM3NDM4OTUzNDcyCmphdmF4Lm5ldC5zc2x8REVCVUd8MTB8bWFpbnwyMDIy LTA5LTIyIDE4OjE4OjI1LjMzNSBVVEN8U1NMQ2lwaGVyLmphdmE6MTg3MHxLZXlMaW1pdCByZWFk IHNpZGU6IGFsZ29yaXRobSA9IEFFUy9HQ00vTk9QQURESU5HOktFWVVQREFURQpjb3VudGRvd24g dmFsdWUgPSAxMzc0Mzg5NTM0NzIKcmVhZCBib2R5CnVwZGF0ZWQgc2Vzc2lvbiBkYXRhCmphdmF4 Lm5ldC5zc2x8QUxMfDEwfG1haW58MjAyMi0wOS0yMiAxODoxODoyNS4zNDMgVVRDfFNTTFNvY2tl dEltcGwuamF2YToxNTY0fHRyaWdnZXIgbmV3IHNlc3Npb24gdGlja2V0Cndyb3RlIHJlc3BvbnNl CkhhbmRsaW5nIHJlcXVlc3RfMQpgYGAKClRoZSBjbGllbnQgd2lsbCBoYW5nIHdoZW4gdHJ5aW5n IHRvIHJldXNlIHRoZSBwZXJzaXN0ZW50IGNvbm5lY3Rpb246CgpgYGAKT1NTTF9ERUJVRzogU1NM IFNFU1NJT04gbmV3IGNhbGxiYWNrIGFkZGVkIFtvc3NsX3NzbC5jOjk2M10KU1NMIGVzdGFibGlz aGVkLCBwcm90b2NvbDogVExTdjEuMywgY2lwaGVyOiBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0Cjwt ICJQT1NUIC8gSFRUUC8xLjFcclxuQWNjZXB0LUVuY29kaW5nOiBpZGVudGl0eVxyXG5Db25uZWN0 aW9uOiBrZWVwLWFsaXZlXHJcbkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpblxyXG5BY2NlcHQ6ICov KlxyXG5Vc2VyLUFnZW50OiBSdWJ5XHJcbkhvc3Q6IHBsdXRvOjg4ODhcclxuQ29udGVudC1MZW5n dGg6IDBcclxuXHJcbiIKPC0gIiIKT1NTTF9ERUJVRzogU1NMIFNFU1NJT04gbmV3IGNhbGxiYWNr IGVudGVyZWQgW29zc2xfc3NsLmM6NDU0XQotPiAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKLT4gIkNv bnRlbnQtTGVuZ3RoOiAwXHJcbiIKLT4gIlxyXG4iCnJlYWRpbmcgMCBieXRlcy4uLgotPiAiIgpy ZWFkIDAgYnl0ZXMKQ29ubiBrZWVwLWFsaXZlCk9TU0xfREVCVUc6IFNTTCBTRVNTSU9OIG5ldyBj YWxsYmFjayBlbnRlcmVkIFtvc3NsX3NzbC5jOjQ1NF0KYGBgCgpQcmVzc2luZyBDdHJsLUMgc2hv d3MgdGhlIGJhY2t0cmFjZToKCmBgYApeQ1RyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0 KToKCTExOiBmcm9tIGh0dHAucmI6MTA6aW4gYDxtYWluPicKCTEwOiBmcm9tIC9ob21lL2pvc2gv LnJiZW52L3ZlcnNpb25zLzIuNy42L2xpYi9ydWJ5LzIuNy4wL25ldC9odHRwLnJiOjkzMzppbiBg c3RhcnQnCgkgOTogZnJvbSBodHRwLnJiOjE3OmluIGBibG9jayBpbiA8bWFpbj4nCgkgODogZnJv bSAvaG9tZS9qb3NoLy5yYmVudi92ZXJzaW9ucy8yLjcuNi9saWIvcnVieS8yLjcuMC9uZXQvaHR0 cC5yYjoxMjk0OmluIGBwb3N0JwoJIDc6IGZyb20gL2hvbWUvam9zaC8ucmJlbnYvdmVyc2lvbnMv Mi43LjYvbGliL3J1YnkvMi43LjAvbmV0L2h0dHAucmI6MTUwNjppbiBgc2VuZF9lbnRpdHknCgkg NjogZnJvbSAvaG9tZS9qb3NoLy5yYmVudi92ZXJzaW9ucy8yLjcuNi9saWIvcnVieS8yLjcuMC9u ZXQvaHR0cC5yYjoxNDkyOmluIGByZXF1ZXN0JwoJIDU6IGZyb20gL2hvbWUvam9zaC8ucmJlbnYv dmVyc2lvbnMvMi43LjYvbGliL3J1YnkvMi43LjAvbmV0L2h0dHAucmI6MTUxODppbiBgdHJhbnNw b3J0X3JlcXVlc3QnCgkgNDogZnJvbSAvaG9tZS9qb3NoLy5yYmVudi92ZXJzaW9ucy8yLjcuNi9s aWIvcnVieS8yLjcuMC9uZXQvaHR0cC5yYjoxNTczOmluIGBiZWdpbl90cmFuc3BvcnQnCgkgMzog ZnJvbSAvaG9tZS9qb3NoLy5yYmVudi92ZXJzaW9ucy8yLjcuNi9saWIvcnVieS8yLjcuMC9uZXQv cHJvdG9jb2wucmI6MTM0OmluIGBlb2Y/JwoJIDI6IGZyb20gL2hvbWUvam9zaC8ucmJlbnYvdmVy c2lvbnMvMi43LjYvbGliL3J1YnkvMi43LjAvb3BlbnNzbC9idWZmZXJpbmcucmI6MzAwOmluIGBl b2Y/JwoJIDE6IGZyb20gL2hvbWUvam9zaC8ucmJlbnYvdmVyc2lvbnMvMi43LjYvbGliL3J1Ynkv Mi43LjAvb3BlbnNzbC9idWZmZXJpbmcucmI6NTc6aW4gYGZpbGxfcmJ1ZmYnCi9ob21lL2pvc2gv LnJiZW52L3ZlcnNpb25zLzIuNy42L2xpYi9ydWJ5LzIuNy4wL29wZW5zc2wvYnVmZmVyaW5nLnJi OjU3OmluIGBzeXNyZWFkJzogSW50ZXJydXB0CmBgYAoKSSBnZXQgdGhlIHNhbWUgYmVoYXZpb3Ig d2l0aCBsYXRlc3QgcnVieSB0b286CgpgYGAKJCBydWJ5IC0tdmVyc2lvbiAgIApydWJ5IDMuMS4y cDIwICgyMDIyLTA0LTEyIHJldmlzaW9uIDQ0OTFiYjc0MGEpIFt4ODZfNjQtbGludXhdCmBgYAoK Q2hhbmdpbmcgTmV0OjpIVFRQIHRvIHRoZSBmb2xsb3dpbmc6CgpgYGAKZWxzaWYgQHNvY2tldC5p by5yZWFkX25vbmJsb2NrKDAsIGV4Y2VwdGlvbjogZmFsc2UpLm5pbD8KYGBgCgpSZXNvbHZlcyB0 aGUgaXNzdWU6CgpgYGAKJCBydWJ5IGh0dHAucmIKb3BlbmluZyBjb25uZWN0aW9uIHRvIHBsdXRv Ojg4ODguLi4Kb3BlbmVkCnN0YXJ0aW5nIFNTTCBmb3IgcGx1dG86ODg4OC4uLgpPU1NMX0RFQlVH OiBTU0wgU0VTU0lPTiBuZXcgY2FsbGJhY2sgYWRkZWQgW29zc2xfc3NsLmM6OTYzXQpTU0wgZXN0 YWJsaXNoZWQsIHByb3RvY29sOiBUTFN2MS4zLCBjaXBoZXI6IFRMU19BRVNfMjU2X0dDTV9TSEEz ODQKPC0gIlBPU1QgLyBIVFRQLzEuMVxyXG5BY2NlcHQtRW5jb2Rpbmc6IGlkZW50aXR5XHJcbkNv bm5lY3Rpb246IGtlZXAtYWxpdmVcclxuQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluXHJcbkFjY2Vw dDogKi8qXHJcblVzZXItQWdlbnQ6IFJ1YnlcclxuSG9zdDogcGx1dG86ODg4OFxyXG5Db250ZW50 LUxlbmd0aDogMFxyXG5cclxuIgo8LSAiIgpPU1NMX0RFQlVHOiBTU0wgU0VTU0lPTiBuZXcgY2Fs bGJhY2sgZW50ZXJlZCBbb3NzbF9zc2wuYzo0NTRdCi0+ICJIVFRQLzEuMSAyMDAgT0tcclxuIgot PiAiQ29udGVudC1MZW5ndGg6IDBcclxuIgotPiAiXHJcbiIKcmVhZGluZyAwIGJ5dGVzLi4uCi0+ ICIiCnJlYWQgMCBieXRlcwpDb25uIGtlZXAtYWxpdmUKPC0gIlBPU1QgLyBIVFRQLzEuMVxyXG5B Y2NlcHQtRW5jb2Rpbmc6IGlkZW50aXR5XHJcbkNvbm5lY3Rpb246IGtlZXAtYWxpdmVcclxuQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluXHJcbkFjY2VwdDogKi8qXHJcblVzZXItQWdlbnQ6IFJ1Ynlc clxuSG9zdDogcGx1dG86ODg4OFxyXG5Db250ZW50LUxlbmd0aDogMFxyXG5cclxuIgo8LSAiIgpP U1NMX0RFQlVHOiBTU0wgU0VTU0lPTiBuZXcgY2FsbGJhY2sgZW50ZXJlZCBbb3NzbF9zc2wuYzo0 NTRdCi0+ICJIVFRQLzEuMSAyMDAgT0tcclxuIgotPiAiQ29udGVudC1MZW5ndGg6IDBcclxuIgot PiAiXHJcbiIKcmVhZGluZyAwIGJ5dGVzLi4uCi0+ICIiCnJlYWQgMCBieXRlcwpDb25uIGtlZXAt YWxpdmUKYGBgCgpIb3dldmVyLCBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5 L3B1bGwvMTA4OSNpc3N1ZWNvbW1lbnQtMTU5ODc4MDAzIHRoYXQgY2hhbmdlIG1heSBub3QgYmUg Y29ycmVjdC4gT3IgaXQgY291bGQgYmUgdGhhdCBSdWJ5IG9uIFdpbmRvd3MgZG9lc24ndCBoYXZl IHRoaXMgaXNzdWUgYW55bW9yZS4KCi0tLUZpbGVzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KU2VydmVyLmphdmEgKDMuNzUgS0IpCmh0dHAucmIgKDQyMyBCeXRlcykKY2EucGVtICg4 LjQzIEtCKQpjZXJ0cy5wMTIgKDIuMjQgS0IpCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnLwoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9y Zz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJp bi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=