[ruby-core:112902] [Ruby master Bug#19412] Socket starts queueing and not responding after a certain amount of requests
From:
"brodock (Gabriel Mazetto) via ruby-core" <ruby-core@...>
Date:
2023-03-15 15:31:40 UTC
List:
ruby-core #112902
SXNzdWUgIzE5NDEyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnJvZG9jayAoR2FicmllbCBNYXpldHRv KS4NDQoNDQoNDQpJJ3ZlIHdlbnQgYmFjayB0byBteSBMaW51eCBtYWNoaW5lIGFuZCB0cmllZCB0 byByZXByb2R1Y2UgdGhlIHByb2JsZW0uDQ0KDQ0KVXNpbmcgUnVieSAzLjAgKGZyb20gdGhlIHBh Y2thZ2UgbWFuYWdlciksIEkgZ290IHRvIG1ha2UgaXQgY3Jhc2ggb25seSB1c2luZyBzb21lIGRl Y2VudCBjb25jdXJyZW5jeSAoMTAwKSBhbmQgcnVubmluZyBpdCBmb3IgbG9uZ2VyIHRpbWU6DQ0K DQ0KYGBgDQ0KYnJvZG9ja0Bwb3Atb3M6fi9Qcm9qZXRvcy9yYWN0b3IkIG5lb2ZldGNoIA0NCiAg ICAgICAgICAgICAvLy8vLy8vLy8vLy8vICAgICAgICAgICAgICAgIGJyb2RvY2tAcG9wLW9zIA0N CiAgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0t IA0NCiAgICAgIC8vLy8vLy8qNzY3Ly8vLy8vLy8vLy8vLy8vLyAgICAgICAgIE9TOiBQb3AhX09T IDIyLjA0IExUUyB4ODZfNjQgDQ0KICAgIC8vLy8vLzc2NzY3Njc2NzYqLy8vLy8vLy8vLy8vLy8g ICAgICAgS2VybmVsOiA2LjIuMC03NjA2MDIwMC1nZW5lcmljIA0NCiAgIC8vLy8vNzY3NjcvLzc2 NzY3NjcvLy8vLy8vLy8vLy8vLyAgICAgIFVwdGltZTogMTMgbWlucyANDQogIC8vLy8vNzY3Njc2 Ly8vKjc2NzY3Ly8vLy8vLy8vLy8vLy8vICAgICBQYWNrYWdlczogMjAzMSAoZHBrZyksIDI1IChm bGF0cGFrKSANDQogLy8vLy8vLzc2NzY3Ni8vLzc2NzY3Li8vLzc2NzYqLy8vLy8vLyAgICBTaGVs bDogYmFzaCA1LjEuMTYgDQ0KLy8vLy8vLy8vNzY3Njc2Ly83Njc2Ny8vLzc2NzY3Ni8vLy8vLy8v ICAgUmVzb2x1dGlvbjogMzg0MHgyMTYwIA0NCi8vLy8vLy8vLy83Njc2NzY3Njc2Ny8vLy83Njc2 Ny8vLy8vLy8vLyAgIERFOiBHTk9NRSA0Mi41IA0NCi8vLy8vLy8vLy8vNzY3Njc2NzYvLy8vLy83 Njc2Ly8vLy8vLy8vLyAgIFdNOiBNdXR0ZXIgDQ0KLy8vLy8vLy8vLy8vLDc2NzYsLy8vLy8vLzc2 Ny8vLy8vLy8vLy8vICAgV00gVGhlbWU6IFBvcCANDQovLy8vLy8vLy8vLy8vKjc2NzYvLy8vLy8v NzYvLy8vLy8vLy8vLy8gICBUaGVtZTogUG9wLWRhcmsgW0dUSzIvM10gDQ0KLy8vLy8vLy8vLy8v Ly8vNzY3Ni8vLy8vLy8vLy8vLy8vLy8vLy8vICAgSWNvbnM6IFBvcCBbR1RLMi8zXSANDQogLy8v Ly8vLy8vLy8vLy8vNzY3Ni8vLzc2Ny8vLy8vLy8vLy8vLyAgICBUZXJtaW5hbDogZ25vbWUtdGVy bWluYWwgDQ0KICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vJy8vLy8vLy8vLy8vLyAgICAgQ1BVOiBB TUQgUnl6ZW4gOSA1OTAwWCAoMjQpIEAgMy43MDBHSHogDQ0KICAgLy8vLy8vLjc2NzY3Njc2NzY3 Njc2NzY3NjcsLy8vLy8vICAgICAgR1BVOiBOVklESUEgR2VGb3JjZSBHVFggMTY2MCBTVVBFUiAN DQogICAgLy8vLy83Njc2NzY3Njc2NzY3Njc2NzY3NjcvLy8vLyAgICAgICBNZW1vcnk6IDM3MDlN aUIgLyAzMjAwMk1pQiANDQogICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NDQogICAg ICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICANDQogICAgICAgICAgICAgLy8vLy8vLy8vLy8vLyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICANDQoNDQpgYGANDQoNDQpgYGANDQphYiAtbiA5MDAwMCAtYyAyMDAg aHR0cDovL2xvY2FsaG9zdDo4MDgwLw0NClRoaXMgaXMgQXBhY2hlQmVuY2gsIFZlcnNpb24gMi4z IDwkUmV2aXNpb246IDE4Nzk0OTAgJD4NDQpDb3B5cmlnaHQgMTk5NiBBZGFtIFR3aXNzLCBaZXVz IFRlY2hub2xvZ3kgTHRkLCBodHRwOi8vd3d3LnpldXN0ZWNoLm5ldC8NDQpMaWNlbnNlZCB0byBU aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy8NDQoN DQpCZW5jaG1hcmtpbmcgbG9jYWxob3N0IChiZSBwYXRpZW50KQ0NCkNvbXBsZXRlZCA5MDAwIHJl cXVlc3RzDQ0KQ29tcGxldGVkIDE4MDAwIHJlcXVlc3RzDQ0KQ29tcGxldGVkIDI3MDAwIHJlcXVl c3RzDQ0KQ29tcGxldGVkIDM2MDAwIHJlcXVlc3RzDQ0KQ29tcGxldGVkIDQ1MDAwIHJlcXVlc3Rz DQ0KQ29tcGxldGVkIDU0MDAwIHJlcXVlc3RzDQ0KQ29tcGxldGVkIDYzMDAwIHJlcXVlc3RzDQ0K Q29tcGxldGVkIDcyMDAwIHJlcXVlc3RzDQ0KQ29tcGxldGVkIDgxMDAwIHJlcXVlc3RzDQ0KYXBy X3BvbGxzZXRfcG9sbDogVGhlIHRpbWVvdXQgc3BlY2lmaWVkIGhhcyBleHBpcmVkICg3MDAwNykN DQpUb3RhbCBvZiA4OTg4OCByZXF1ZXN0cyBjb21wbGV0ZWQNDQpgYGANDQoNDQpJdCBzZWVtcyBM aW51eCBjYW4gaGFuZGxlIHRoZSBpc3N1ZSBiZXR0ZXIgdGhhbiBNYWMgT1MsIGJ1dCB3aGF0ZXZl ciBpcyBicmVha2luZyBpcyBzdGlsbCB0aGVyZS4NDQoNDQpUaGlzIGlzIHdoYXQgSSBnb3QgcnVu bmluZyB0aGUgc2VydmVyIHBhcnQ6DQ0KDQ0KYGBgDQ0KR0VUIC8gSFRUUC8xLjANDQpHRVQgLyBI VFRQLzEuMA0NCkdFVCAvIEhUVFAvMS4wDQ0KR0VUIC8gSFRUUC8xLjANDQpHRVQgLyBIVFRQLzEu MA0NCkdFVCAvIEhUVFAvMS4wDQ0KDQ0KYnVnLTE5NDEyLnJiOjEzOmluIGB3cml0ZSc6IEJyb2tl biBwaXBlIChFcnJubzo6RVBJUEUpDQ0KCWZyb20gYnVnLTE5NDEyLnJiOjEzOmluIGBoYW5kbGVf Y29ubmVjdGlvbicNDQoJZnJvbSBidWctMTk0MTIucmI6Mjg6aW4gYGJsb2NrIGluIDxtYWluPicN DQoJZnJvbSBidWctMTk0MTIucmI6Mjc6aW4gYGxvb3AnDQ0KCWZyb20gYnVnLTE5NDEyLnJiOjI3 OmluIGA8bWFpbj4nDQ0KYGBgDQ0KDQ0KV2hlbiBJIGp1c3QgcnVuIHRoZSBgY2xpZW50LnJiYCBp dCBkb2VzbsK0dCBicmVhayBhcyB0aGVyZSBpcyBub3QgZW5vdWdoIGNvbmN1cnJlbmN5LCBzbyBp dCBuZXZlciByZWFjaGVzIGEgcG9pbnQgd2hlcmUgaXQgY2FuIGV4aGF1c3Qgd2hhdGV2ZXIgcmVz b3VyY2UgaXMgZ2V0dGluZyBleGhhdXN0ZWQuDQ0KDQ0KV2VpcmRseSBlbm91Z2ggSSBjYW7CtHQg cmVwcm9kdWNlIHRoZSBwcm9ibGVtIHdoZW4gdXNpbmcgaGV5OiBodHRwczovL2dpdGh1Yi5jb20v cmFreWxsL2hleQ0NCg0NCmBgYA0NCmhleSAtbiAxODAwMDAgLWMgMzAwIGh0dHA6Ly9sb2NhbGhv c3Q6ODA4MC8NDQoNDQpTdW1tYXJ5Og0NCiAgVG90YWw6CTE0Ljg4MTQgc2Vjcw0NCiAgU2xvd2Vz dDoJMTQuNTQ2MiBzZWNzDQ0KICBGYXN0ZXN0OgkwLjAwMDIgc2Vjcw0NCiAgQXZlcmFnZToJMC4w MTEyIHNlY3MNDQogIFJlcXVlc3RzL3NlYzoJMTIwOTUuNjM4Nw0NCiAgDQ0KDQ0KUmVzcG9uc2Ug dGltZSBoaXN0b2dyYW06DQ0KICAwLjAwMCBbMV0JfA0NCiAgMS40NTUgWzE3OTc0Ml0JfOKWoOKW oOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKW oOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKWoOKW oA0NCiAgMi45MDkgWzM2XQl8DQ0KICA0LjM2NCBbNzddCXwNDQogIDUuODE5IFsxNl0JfA0NCiAg Ny4yNzMgWzg4XQl8DQ0KICA4LjcyOCBbMjNdCXwNDQogIDEwLjE4MiBbMF0JfA0NCiAgMTEuNjM3 IFswXQl8DQ0KICAxMy4wOTIgWzBdCXwNDQogIDE0LjU0NiBbMTddCXwNDQoNDQoNDQpMYXRlbmN5 IGRpc3RyaWJ1dGlvbjoNDQogIDEwJSBpbiAwLjAwMDYgc2Vjcw0NCiAgMjUlIGluIDAuMDAxNSBz ZWNzDQ0KICA1MCUgaW4gMC4wMDE5IHNlY3MNDQogIDc1JSBpbiAwLjAwMjAgc2Vjcw0NCiAgOTAl IGluIDAuMDAyMiBzZWNzDQ0KICA5NSUgaW4gMC4wMDIzIHNlY3MNDQogIDk5JSBpbiAwLjAwMjUg c2Vjcw0NCg0NCkRldGFpbHMgKGF2ZXJhZ2UsIGZhc3Rlc3QsIHNsb3dlc3QpOg0NCiAgRE5TK2Rp YWx1cDoJMC4wMDY2IHNlY3MsIDAuMDAwMiBzZWNzLCAxNC41NDYyIHNlY3MNDQogIEROUy1sb29r dXA6CTAuMDAwMSBzZWNzLCAwLjAwMDAgc2VjcywgMC4wNDkxIHNlY3MNDQogIHJlcSB3cml0ZToJ MC4wMDAwIHNlY3MsIDAuMDAwMCBzZWNzLCAwLjAwMjUgc2Vjcw0NCiAgcmVzcCB3YWl0OgkwLjAw NDUgc2VjcywgMC4wMDAwIHNlY3MsIDEzLjUzMjQgc2Vjcw0NCiAgcmVzcCByZWFkOgkwLjAwMDAg c2VjcywgMC4wMDAwIHNlY3MsIDAuMDAzMyBzZWNzDQ0KDQ0KU3RhdHVzIGNvZGUgZGlzdHJpYnV0 aW9uOg0NCiAgWzIwMF0JMTgwMDAwIHJlc3BvbnNlcw0NCmBgYA0NCg0NCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NDQpCdWcgIzE5NDEyOiBTb2NrZXQgc3RhcnRzIHF1 ZXVlaW5nIGFuZCBub3QgcmVzcG9uZGluZyBhZnRlciBhIGNlcnRhaW4gYW1vdW50IG9mIHJlcXVl c3RzDQ0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE5NDEyI2NoYW5nZS0xMDI0 MjANDQoNDQoqIEF1dGhvcjogYnJvZG9jayAoR2FicmllbCBNYXpldHRvKQ0NCiogU3RhdHVzOiBP cGVuDQ0KKiBQcmlvcml0eTogTm9ybWFsDQ0KKiBydWJ5IC12OiBydWJ5IDMuMi4xICgyMDIzLTAy LTA4IHJldmlzaW9uIDMxODE5ZTgyYzgpIFthcm02NC1kYXJ3aW4yMl0NDQoqIEJhY2twb3J0OiAy Ljc6IFVOS05PV04sIDMuMDogVU5LTk9XTiwgMy4xOiBVTktOT1dOLCAzLjI6IFVOS05PV04NDQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQ0KSGVyZSBpcyBhIGFuIGV4 YW1wbGUgY29kZToNDQoNDQpgYGBydWJ5DQ0KcmVxdWlyZSAnc29ja2V0Jw0NCg0NClBPUlQgPSA4 MDgwDQ0KQkFDS0xPRyA9IDUwDQ0KTElTVEVOID0gJzEyNy4wLjAuMScNDQoNDQpkZWYgaGFuZGxl X2Nvbm5lY3Rpb24oY29ubmVjdGlvbiwgX2FkZHJpbmZvKQ0NCiAgcmVxdWVzdCA9IGNvbm5lY3Rp b24uZ2V0cw0NCg0NCiAgcHV0cyByZXF1ZXN0DQ0KDQ0KICBjb25uZWN0aW9uLndyaXRlICJIVFRQ LzEuMSAyMDBcclxuIg0NCiAgY29ubmVjdGlvbi53cml0ZSAiQ29udGVudC1UeXBlOiB0ZXh0L2h0 bWxcclxuIg0NCiAgY29ubmVjdGlvbi53cml0ZSAiXHJcbiINDQogIGNvbm5lY3Rpb24ud3JpdGUg IkhlbGxvIHdvcmxkISBDdXJyZW50IHRpbWUgaXMgI3tUaW1lLm5vd30iDQ0KDQ0KZW5zdXJlDQ0K ICBjb25uZWN0aW9uLmNsb3NlDQ0KZW5kDQ0KDQ0KYmVnaW4NDQogIHNvY2tldCA9IFNvY2tldC5u ZXcoOklORVQsIDpTVFJFQU0pDQ0KICBzb2NrZXQuYmluZChBZGRyaW5mby50Y3AoTElTVEVOLCBQ T1JUKSkNDQogIHNvY2tldC5saXN0ZW4oQkFDS0xPRykNDQoNDQogIHB1dHMgIlJlcXVlc3RlZCBx dWV1ZSBzaXplOiAje0JBQ0tMT0d9IGJpZ2dlciB0aGVuIGxpbWl0OiAje1NvY2tldDo6U09NQVhD T05OfSIgaWYgQkFDS0xPRyA+IFNvY2tldDo6U09NQVhDT05ODQ0KDQ0KICBsb29wIGRvDQ0KICAg IGxpc3RlbmluZywgPSBJTy5zZWxlY3QoW3NvY2tldF0pDQ0KICAgIGlvLCA9IGxpc3RlbmluZw0N CiAgICBjb25uZWN0aW9uLCBhZGRyaW5mbyA9IGlvLmFjY2VwdA0NCiAgICBoYW5kbGVfY29ubmVj dGlvbihjb25uZWN0aW9uLCBhZGRyaW5mbykNDQogIGVuZA0NCmVuc3VyZQ0NCiAgc29ja2V0LmNs b3NlDQ0KZW5kDQ0KYGBgDQ0KDQ0KVGhpcyB0cmllcyB0byBzaW11bGF0ZSBhIFRDUCBzZXJ2ZXIg dGhhdCByZXNwb25kcyBhcyBpZiBpdCB3YXMgYW4gSFRUUCBzZXJ2ZXIuDQ0KDQ0KVGhlIGFtb3Vu dCBvZiByZXF1ZXN0cyBpdCBjYW4gc3VzdGFpbiBzZWVtcyB0byBkZXBlbmQgb24gdGhlIE9TLiBP biBhIExpbnV4IG1hY2hpbmUgcnVubmluZyB1YnVudHUgMjAuMDQgSSBnZXQgc29tZXRoaW5nIGFy b3VuZCA3LjZLIHRvIDcuOEsgdW50aWwgaXQgc3RvcHMgcmVzcG9uZGluZy4NDQoNDQpgYGANDQok IHVuYW1lIC1hDQ0KTGludXggLi4uIDUuMTcuNS14ODZfNjQtbGlub2RlMTU0ICMxIFNNUCBQUkVF TVBUIE1vbiBNYXkgMiAxNTowNzoyMiBFRFQgMjAyMiB4ODZfNjQgeDg2XzY0IHg4Nl82NCBHTlUv TGludXgNDQoNDQokIGFiIC1uIDIwMDAwIC1jIDUwIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC8NDQpU aGlzIGlzIEFwYWNoZUJlbmNoLCBWZXJzaW9uIDIuMyA8JFJldmlzaW9uOiAxODQzNDEyICQ+DQ0K Q29weXJpZ2h0IDE5OTYgQWRhbSBUd2lzcywgWmV1cyBUZWNobm9sb2d5IEx0ZCwgaHR0cDovL3d3 dy56ZXVzdGVjaC5uZXQvDQ0KTGljZW5zZWQgdG8gVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvDQ0KDQ0KQmVuY2htYXJraW5nIDEyNy4wLjAuMSAo YmUgcGF0aWVudCkNDQpDb21wbGV0ZWQgMjAwMCByZXF1ZXN0cw0NCkNvbXBsZXRlZCA0MDAwIHJl cXVlc3RzDQ0KQ29tcGxldGVkIDYwMDAgcmVxdWVzdHMNDQphcHJfcG9sbHNldF9wb2xsOiBUaGUg dGltZW91dCBzcGVjaWZpZWQgaGFzIGV4cGlyZWQgKDcwMDA3KQ0NClRvdGFsIG9mIDc4ODMgcmVx dWVzdHMgY29tcGxldGVkDQ0KYGBgDQ0KDQ0Kb24gTWFjT1MgVmVudHVyYSBJIGdldCBhcm91bmQg MTZLOg0NCg0NCmBgYA0NCiQgdW5hbWUgLWENDQpEYXJ3aW4gLi4uIDIyLjIuMCBEYXJ3aW4gS2Vy bmVsIFZlcnNpb24gMjIuMi4wOiBGcmkgTm92IDExIDAyOjA0OjQ0IFBTVCAyMDIyOyByb290Onhu dS04NzkyLjYxLjJ+NC9SRUxFQVNFX0FSTTY0X1Q4MTAzIGFybTY0DQ0KDQ0KJCBhYiAtbiAyMDAw MCAtYyA1MCBodHRwOi8vMTI3LjAuMC4xOjgwODAvICAgICANDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQ0KVGhpcyBp cyBBcGFjaGVCZW5jaCwgVmVyc2lvbiAyLjMgPCRSZXZpc2lvbjogMTkwMTU2NyAkPg0NCkNvcHly aWdodCAxOTk2IEFkYW0gVHdpc3MsIFpldXMgVGVjaG5vbG9neSBMdGQsIGh0dHA6Ly93d3cuemV1 c3RlY2gubmV0Lw0NCkxpY2Vuc2VkIHRvIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiwg aHR0cDovL3d3dy5hcGFjaGUub3JnLw0NCg0NCkJlbmNobWFya2luZyAxMjcuMC4wLjEgKGJlIHBh dGllbnQpDQ0KQ29tcGxldGVkIDIwMDAgcmVxdWVzdHMNDQpDb21wbGV0ZWQgNDAwMCByZXF1ZXN0 cw0NCkNvbXBsZXRlZCA2MDAwIHJlcXVlc3RzDQ0KQ29tcGxldGVkIDgwMDAgcmVxdWVzdHMNDQpD b21wbGV0ZWQgMTAwMDAgcmVxdWVzdHMNDQpDb21wbGV0ZWQgMTIwMDAgcmVxdWVzdHMNDQpDb21w bGV0ZWQgMTQwMDAgcmVxdWVzdHMNDQpDb21wbGV0ZWQgMTYwMDAgcmVxdWVzdHMNDQphcHJfc29j a2V0X3JlY3Y6IE9wZXJhdGlvbiB0aW1lZCBvdXQgKDYwKQ0NClRvdGFsIG9mIDE2Mzc1IHJlcXVl c3RzIGNvbXBsZXRlZA0NCmBgYA0NCg0NCmluIGJvdGggY2FzZXMgd2hlbiB0aGF0IGxpbWl0IHJl YWNoZXMsIGlmIEkgYWJvcnQgdGhlIHByb2dyYW0gKENUUkwtQykgYW5kIHRyeSB0byBydW4gaXQg YWdhaW4gaXQgdGFrZXMgYSB3aGlsZSB1bnRpbCB0aGUgcG9ydCBpcyByZWxlYXNlZDoNDQoNDQpg YGANDQouLi4NDQpHRVQgLyBIVFRQLzEuMA0NCkdFVCAvIEhUVFAvMS4wDQ0KR0VUIC8gSFRUUC8x LjANDQpeQ3NvY2tldHNlcnZlci5yYjoyOTppbiBgc2VsZWN0JzogSW50ZXJydXB0DQ0KCWZyb20g c29ja2V0c2VydmVyLnJiOjI5OmluIGBibG9jayBpbiA8bWFpbj4nDQ0KCWZyb20gc29ja2V0c2Vy dmVyLnJiOjI4OmluIGBsb29wJw0NCglmcm9tIHNvY2tldHNlcnZlci5yYjoyODppbiBgPG1haW4+ Jw0NCiQgcnVieSBzb2NrZXRzZXJ2ZXIucmIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IA0NCnNvY2tldHNlcnZlci5yYjoyMzppbiBgYmluZCc6IEFkZHJlc3MgYWxyZWFkeSBpbiB1c2Ug LSBiaW5kKDIpIGZvciAxMjcuMC4wLjE6ODA4MCAoRXJybm86OkVBRERSSU5VU0UpDQ0KCWZyb20g c29ja2V0c2VydmVyLnJiOjIzOmluIGA8bWFpbj4nDQ0KYGBgDQ0KDQ0KQWZ0ZXIga2lsbGluZyB0 aGUgcHJvY2VzcyBpdCBzZWVtcyBubyBwcm9jZXNzIGlzIGhvbGRpbmcgdGhlIHBvcnQ6DQ0KDQ0K YGBgDQ0KbHNvZiAtd25pIHRjcDo4MDgwDQ0KYGBgDQ0KDQ0KUnVubmluZyB0aGUgY29tbWFuZCBh Ym92ZSBkb2VzIG5vdCByZXR1cm4gYW55dGhpbmcgKGl0IGRvZXMgd2hlbiB0aGUgcHJvZ3JhbSBp cyBzdGlsbCBydW5uaW5nKS4NDQoNDQpJIHRoaW5rIHdlIG1heSBiZSBmYWlsaW5nIHRvIHJlbGVh c2Ugc29tZXRoaW5nIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgU29ja2V0IG9uIHN5c2NhbGxz L2tlcm5lbCBsZXZlbCBhbmQgd2UgZW5kdXAgZmlsbGluZyB1cCBzb21lIHF1ZXVlL2J1ZmZlciB0 aGF0IGV2ZW50dWFsbHkgZ2V0cyBmcmVlZC4NDQoNDQoNDQoNDQotLSANDQpodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy8NDQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5n Lm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwu cnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3Jn L21haWxtYW4zL3Bvc3Rvcml1cy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=