[ruby-core:112701] [Ruby master Bug#19438] Ruby 2.7 -> 3.2 Performance Regression in so_k_nucleotide benchmark
From:
"nickborromeo (Nick Borromeo) via ruby-core" <ruby-core@...>
Date:
2023-03-06 18:10:07 UTC
List:
ruby-core #112701
SXNzdWUgIzE5NDM4IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbmlja2JvcnJvbWVvIChOaWNrIEJvcnJv bWVvKS4NDQoNDQoNDQo+IEhvd2V2ZXIgSSB0aGluayB0aGUgaW50ZXJlc3RpbmcgcGFydCBvZiB0 aGlzIGlzc3VlLCB3b3VsZCBiZSB0byBmaWd1cmUgb3V0IHdoeSB0aGF0IHNwZWNpZmljIGltcGxl bWVudGF0aW9uIGdvdCBzbG93ZXIgb3ZlciB0aW1lLg0NCg0NCkkgZGVmaW5pdGVseSBhZ3JlZSEN DQoNDQo+IEl0IHdvdWxkIGJlIGludGVyZXN0aW5nIHRvIGJyZWFrIGRvd24gdGhlIGFsZ29yaXRo bSBpbiBzbWFsbGVyIHBpZWNlcyBhbmQgYmVuY2htYXJrIHRoZW0gaWRlcGVuZGVudGx5IHRvIHNl ZSB3aGljaCBvcGVyYXRpb24gZXhhY3RseSBnb3Qgc2xvd2VyLg0NCg0NCmJlZm9yZSBJIGRpZCB0 aGUgY2hhbmdlIHRvIGB0YWxseWAgSSBhbHNvIGJyb2tlIGl0IGRvd24gdG8gc21hbGxlciBzdGVw cyBhbmQgcmFuIHRoZSBiZW5jaG1hcmssIGFwb2xvZ2llcyBmb3IgdGhlIHdhbGwgb2YgdGV4dCB0 byBmb2xsb3c7IGEgZGlyZWN0IHF1b3RlIGZyb20gYSBkaXNjdXNzaW9uIEkgaGFkIHdpdGggb3Ro ZXJzIGxvb2tpbmcgYXQgdGhpcw0NCg0NCi0tLQ0NCg0NCkkgbWF5IGhhdmUgZm91bmQgc29tZXRo aW5nIGludGVyZXN0aW5nIHdoaWxlIHBsYXlpbmcgYXJvdW5kIHdpdGggdGhlIGJlbmNobWFyayB0 b29sLiBJIHdhbnRlZCB0byBzZWUgaWYgd2UgY2FuIG5hcnJvdyBpdCBkb3duIHRvIGEgc3BlY2lm aWMgdGhpbmcgdGhhdCBtaWdodCAgYmUgc2xvdy4gc28gSSBnb3QgcmlkIG9mIHRoZSB0aGUgYHNv cnRfYnlfZnJlcWAgYW5kIGBmaW5kX3NlcWAgbWV0aG9kcyBmb3Igbm93IGFuZCBmb2N1c2VkIG1v c3RseSBvbiB0aGUgYGZyZWN1ZW5jeWAgbWV0aG9kIHNpbmNlIHN0YWNrcHJvZiBpZGVudGlmaWVk IHRoYXQgYXMgdGhlIF9zbG93ZXN0XyBvbmUNDQoNDQpKdXN0IHNvIHdlIGhhdmUgYSBiYXNlbGlu ZSBoZXJlIGlzIHRoZSBjb2RlIGFuZCB0aGUgYmVuY2htYXJrIG9mIHRoZSBgZnJlY3VlbmN5YCBt ZXRob2QgdW50b3VjaGVkDQ0KDQ0KYGBgDQ0KICAgICAgZGVmIGZyZWN1ZW5jeShzZXEsIGxlbmd0 aCkNDQogICAgICAgIGZyZXF1ZW5jaWVzID0gSGFzaC5uZXcoMCkNDQogICAgICAgIG5zICAgICAg ICAgID0gc2VxLmxlbmd0aCArIDEgLSBsZW5ndGgNDQoNDQogICAgICAgIGZvciBpIGluICgwIC4u LiBucykNDQogICAgICAgICAgZnJlcXVlbmNpZXNbc2VxW2ksIGxlbmd0aF1dICs9IDENDQogICAg ICAgIGVuZA0NCg0NCiAgICAgICAgW25zLCBmcmVxdWVuY2llc10NDQogICAgICBlbmQNDQpgYGAN DQoNDQpgYGANDQpDYWxjdWxhdGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAyLjcuNSAgICAgICAzLjAuNSAgICAgICAz LjEuMiAgICAgICAzLjIuMQ0NCiAgICAgc29fa19udWNsZW90aWRlICAgICAgNy41MzAgICAgICAg Ni41MjQgICAgICAgNi4wNTYgICAgICAgNi4yOTQgaS9zIC0gICAgICAgMS4wMDAgdGltZXMgaW4g MC4xMzI4MDhzIDAuMTUzMjc3cyAwLjE2NTExN3MgMC4xNTg4ODRzDQ0KDQ0KQ29tcGFyaXNvbjoN DQogICAgICAgICAgICAgICAgICBzb19rX251Y2xlb3RpZGUNDQogICAgICAgICAgICAgICAyLjcu NTogICAgICAgICA3LjUgaS9zDQ0KICAgICAgICAgICAgICAgMy4wLjU6ICAgICAgICAgNi41IGkv cyAtIDEuMTV4ICBzbG93ZXINDQogICAgICAgICAgICAgICAzLjIuMTogICAgICAgICA2LjMgaS9z IC0gMS4yMHggIHNsb3dlcg0NCiAgICAgICAgICAgICAgIDMuMS4yOiAgICAgICAgIDYuMSBpL3Mg LSAxLjI0eCAgc2xvd2VyDQ0KYGBgDQ0KDQ0KTm93IGxldHMgbG9vayBhdCBgU3RyaW5nI1tdYCBh cyB0aGUgb25seSBvcGVyYXRpb24NDQoNDQpgYGANDQogICAgICBkZWYgZnJlY3VlbmN5KHNlcSwg bGVuZ3RoKQ0NCiAgICAgICAgZnJlcXVlbmNpZXMgPSBIYXNoLm5ldygwKQ0NCiAgICAgICAgbnMg ICAgICAgICAgPSBzZXEubGVuZ3RoICsgMSAtIGxlbmd0aA0NCg0NCiAgICAgICAgZm9yIGkgaW4g KDAgLi4uIG5zKQ0NCiAgICAgICAgICBzZXFbaSwgbGVuZ3RoXQ0NCiAgICAgICAgICAjIGZyZXF1 ZW5jaWVzW3NlcVtpLCBsZW5ndGhdXSArPSAxDQ0KICAgICAgICBlbmQNDQoNDQogICAgICAgIFtu cywgZnJlcXVlbmNpZXNdDQ0KICAgICAgZW5kDQ0KYGBgDQ0KYGBgDQ0K4p2vIGJlbmNobWFyay1k cml2ZXIgc29fa19udWNsZW90aWRlLnltbCAtLXJiZW52ICcyLjcuNTszLjAuNTszLjEuMjszLjIu MScgLS1yZXBlYXQtY291bnQgNQ0NCkNhbGN1bGF0aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NDQogICAgICAgICAgICAgICAgICAgICAgICAgIDIuNy41ICAgICAgIDMu MC41ICAgICAgIDMuMS4yICAgICAgIDMuMi4xDQ0KICAgICBzb19rX251Y2xlb3RpZGUgICAgIDE0 LjAwMCAgICAgIDE0LjIyNSAgICAgIDEzLjc5NyAgICAgIDE0LjA5NiBpL3MgLSAgICAgICAxLjAw MCB0aW1lcyBpbiAwLjA3MTQyN3MgMC4wNzAzMDBzIDAuMDcyNDgxcyAwLjA3MDk0NHMNDQoNDQpD b21wYXJpc29uOg0NCiAgICAgICAgICAgICAgICAgIHNvX2tfbnVjbGVvdGlkZQ0NCiAgICAgICAg ICAgICAgIDMuMC41OiAgICAgICAgMTQuMiBpL3MNDQogICAgICAgICAgICAgICAzLjIuMTogICAg ICAgIDE0LjEgaS9zIC0gMS4wMXggIHNsb3dlcg0NCiAgICAgICAgICAgICAgIDIuNy41OiAgICAg ICAgMTQuMCBpL3MgLSAxLjAyeCAgc2xvd2VyDQ0KICAgICAgICAgICAgICAgMy4xLjI6ICAgICAg ICAxMy44IGkvcyAtIDEuMDN4ICBzbG93ZXINDQoNDQpgYGANDQoNDQpOb3cgbGV0cyBsb29rIGF0 IGBTdHJpbmcjW11gIGFuZCBgSGFzaCNbXT1gDQ0KYGBgDQ0KICAgICAgZGVmIGZyZWN1ZW5jeShz ZXEsIGxlbmd0aCkNDQogICAgICAgIGZyZXF1ZW5jaWVzID0gSGFzaC5uZXcoMCkNDQogICAgICAg IG5zICAgICAgICAgID0gc2VxLmxlbmd0aCArIDEgLSBsZW5ndGgNDQoNDQogICAgICAgIGZvciBp IGluICgwIC4uLiBucykNDQogICAgICAgICAgZnJlcXVlbmNpZXNbc2VxW2ksIGxlbmd0aF1dDQ0K ICAgICAgICBlbmQNDQoNDQogICAgICAgIFtucywgZnJlcXVlbmNpZXNdDQ0KICAgICAgZW5kDQ0K YGBgDQ0KDQ0KYGBgDQ0KQ2FsY3VsYXRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgMi43LjUgICAgICAgMy4wLjUgICAg ICAgMy4xLjIgICAgICAgMy4yLjENDQogICAgIHNvX2tfbnVjbGVvdGlkZSAgICAgMTIuNTE2ICAg ICAgMTIuMjQ4ICAgICAgMTIuMDU4ICAgICAgMTMuMDM0IGkvcyAtICAgICAgIDEuMDAwIHRpbWVz IGluIDAuMDc5OTAwcyAwLjA4MTY0NXMgMC4wODI5MzFzIDAuMDc2NzI1cw0NCg0NCkNvbXBhcmlz b246DQ0KICAgICAgICAgICAgICAgICAgc29fa19udWNsZW90aWRlDQ0KICAgICAgICAgICAgICAg My4yLjE6ICAgICAgICAxMy4wIGkvcw0NCiAgICAgICAgICAgICAgIDIuNy41OiAgICAgICAgMTIu NSBpL3MgLSAxLjA0eCAgc2xvd2VyDQ0KICAgICAgICAgICAgICAgMy4wLjU6ICAgICAgICAxMi4y IGkvcyAtIDEuMDZ4ICBzbG93ZXINDQogICAgICAgICAgICAgICAzLjEuMjogICAgICAgIDEyLjEg aS9zIC0gMS4wOHggIHNsb3dlcg0NCmBgYA0NCg0NCkhvd2V2ZXIgdGhlIGludGVyZXN0aW5nIGJp dCBpcyB3aGVuIHdlIGFzc2lnbiB0aGluZ3MgdG8gdmFyaWFibGVzIG9yIHdoZW4gd2UgaW5jcmVt ZW50IHRoZSBjb3VudGVyIGZvciBhIGhhc2ggdmFsdWUgd2hpY2ggSSB0aGluayBpcyBgSGFzaCNb XT1gDQ0KDQ0KYGBgDQ0KICAgICAgZGVmIGZyZWN1ZW5jeShzZXEsIGxlbmd0aCkNDQogICAgICAg IGZyZXF1ZW5jaWVzID0gSGFzaC5uZXcoMCkNDQogICAgICAgIG5zICAgICAgICAgID0gc2VxLmxl bmd0aCArIDEgLSBsZW5ndGgNDQoNDQogICAgICAgIGZvciBpIGluICgwIC4uLiBucykNDQogICAg ICAgICAgeCA9IHNlcVtpLCBsZW5ndGhdDQ0KICAgICAgICBlbmQNDQoNDQogICAgICAgIFtucywg ZnJlcXVlbmNpZXNdDQ0KICAgICAgZW5kDQ0KYGBgDQ0KDQ0KYGBgDQ0K4p2vIGJlbmNobWFyay1k cml2ZXIgc29fa19udWNsZW90aWRlLnltbCAtLXJiZW52ICcyLjcuNTszLjAuNTszLjEuMjszLjIu MScgLS1yZXBlYXQtY291bnQgNQ0NCkNhbGN1bGF0aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NDQogICAgICAgICAgICAgICAgICAgICAgICAgIDIuNy41ICAgICAgIDMu MC41ICAgICAgIDMuMS4yICAgICAgIDMuMi4xDQ0KICAgICBzb19rX251Y2xlb3RpZGUgICAgIDEz LjY0MSAgICAgIDEyLjE3MCAgICAgIDExLjg1NyAgICAgIDEyLjAwMSBpL3MgLSAgICAgICAxLjAw MCB0aW1lcyBpbiAwLjA3MzMwNnMgMC4wODIxNjhzIDAuMDg0MzM1cyAwLjA4MzMyNXMNDQoNDQpD b21wYXJpc29uOg0NCiAgICAgICAgICAgICAgICAgIHNvX2tfbnVjbGVvdGlkZQ0NCiAgICAgICAg ICAgICAgIDIuNy41OiAgICAgICAgMTMuNiBpL3MNDQogICAgICAgICAgICAgICAzLjAuNTogICAg ICAgIDEyLjIgaS9zIC0gMS4xMnggIHNsb3dlcg0NCiAgICAgICAgICAgICAgIDMuMi4xOiAgICAg ICAgMTIuMCBpL3MgLSAxLjE0eCAgc2xvd2VyDQ0KICAgICAgICAgICAgICAgMy4xLjI6ICAgICAg ICAxMS45IGkvcyAtIDEuMTV4ICBzbG93ZXINDQpgYGANDQoNDQpUaGlzIGlzIHRoZSBzYW1lIGFz IHRoZSBiYXNlbGluZSBpbiB0aGUgc3RhcnQgb2YgdGhlIGNvbW1lbnQNDQoNDQpgYGANDQrina8g YmVuY2htYXJrLWRyaXZlciBzb19rX251Y2xlb3RpZGUueW1sIC0tcmJlbnYgJzIuNy41OzMuMC41 OzMuMS4yOzMuMi4xJyAtLXJlcGVhdC1jb3VudCA1DQ0KQ2FsY3VsYXRpbmcgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgMi43 LjUgICAgICAgMy4wLjUgICAgICAgMy4xLjIgICAgICAgMy4yLjENDQogICAgIHNvX2tfbnVjbGVv dGlkZSAgICAgIDcuNjI2ICAgICAgIDYuNDc0ICAgICAgIDYuMTM1ICAgICAgIDYuMjM5IGkvcyAt ICAgICAgIDEuMDAwIHRpbWVzIGluIDAuMTMxMTI2cyAwLjE1NDQ2OHMgMC4xNjMwMDVzIDAuMTYw Mjgzcw0NCg0NCkNvbXBhcmlzb246DQ0KICAgICAgICAgICAgICAgICAgc29fa19udWNsZW90aWRl DQ0KICAgICAgICAgICAgICAgMi43LjU6ICAgICAgICAgNy42IGkvcw0NCiAgICAgICAgICAgICAg IDMuMC41OiAgICAgICAgIDYuNSBpL3MgLSAxLjE4eCAgc2xvd2VyDQ0KICAgICAgICAgICAgICAg My4yLjE6ICAgICAgICAgNi4yIGkvcyAtIDEuMjJ4ICBzbG93ZXINDQogICAgICAgICAgICAgICAz LjEuMjogICAgICAgICA2LjEgaS9zIC0gMS4yNHggIHNsb3dlcg0NCmBgYA0NCg0NCkkgdGhpbmsg d2UgbWlnaHQgbmVlZCB0byBsb29rIGludG8gdGhlIGFzc2lnbm1lbnQgbWV0aG9kcyBpbnN0ZWFk IG9mIHRoZSBhY2Nlc3MgbWV0aG9kcyBmb3Igc3RyaW5nIGFuZCBoYXNoIPCfpJQNDQoNDQoNDQoN DQoNDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQ0KQnVnICMxOTQz ODogUnVieSAyLjcgLT4gMy4yIFBlcmZvcm1hbmNlIFJlZ3Jlc3Npb24gaW4gc29fa19udWNsZW90 aWRlIGJlbmNobWFyaw0NCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTQzOCNj aGFuZ2UtMTAyMTU5DQ0KDQ0KKiBBdXRob3I6IG5pY2suc2Nod2FkZXJlciAoTmljaG9sYXMgU2No d2FkZXJlcikNDQoqIFN0YXR1czogT3Blbg0NCiogUHJpb3JpdHk6IE5vcm1hbA0NCiogcnVieSAt djogMy4yLjANDQoqIEJhY2twb3J0OiAyLjc6IFVOS05PV04sIDMuMDogVU5LTk9XTiwgMy4xOiBV TktOT1dOLCAzLjI6IFVOS05PV04NDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQ0KIyMgSW50cm9kdWN0aW9uDQ0KDQ0KUmVjZW50bHkgSSBoYWQgYmVlbiBnb2luZyB0 aHJvdWdoIHNvbWUgb2YgdGhlIG9sZCBiZW5jaG1hcmtzIGluIHRoZSBbUnVieSBHcmVhdCBJbXBs ZW1lbnRhdGlvbiBTaG9vdG91dF0oaHR0cHM6Ly9wcm9ncmFtbWluZ3plbi5jb20vdGhlLWdyZWF0 LXJ1Ynktc2hvb3RvdXQtanVseS0yMDEwLykgZnJvbSBhcm91bmQgMjAxMC4gDQ0KDQ0KQXMgYW4g ZXhwZXJpbWVudCwgb25lIG5pZ2h0IEkgcmFuIHRoZSBiZW5jaG1hcmtzIGFnYWluc3QgUnVieSAz LjIuMCwgUnVieSAzLjIuMCAtLXlqaXQsIFRydWZmbGVSdWJ5LCBUcnVmZmxlUnVieSArR3JhYWxW TSwgYW5kIFJ1YnkgMi42LjEwLg0NCg0NCk1vc3QgcmVzdWx0cyB3ZXJlIGFzIGV4cGVjdGVkLiBI b3dldmVyIHRoZXJlIHdhcyBhIGJlbmNobWFyayB0aGF0IFJ1YnkgMi42LjEwIHdhcyBfY29uc2lz dGVudGx5XyBvdXRwZXJmb3JtaW5nIGFsbCBuZXcgUnViaWVzIG9uLg0NCg0NCiMjIE1ldGhvZA0N Cg0NCkFmdGVyIHBhaXJpbmcgd2l0aCBAZWlnaHRiaXRyYXB0b3IsIHdlIGRpc2NvdmVyZWQgdGhh dCB0aGlzIG9sZCBiZW5jaG1hcmsgd2FzIHJlbWFya2FibHkgc2ltaWxhciB0byBhbiBleGlzdGlu ZyBiZW5jaG1hcmsgaW4gdGhlIGAvYmVuY2htYXJrYCANDQpkaXJlY3RvcnksIFtzb19rX251Y2xl b3RpZGUueW1sXShodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2Jsb2IvbWFzdGVyL2JlbmNo bWFyay9zb19rX251Y2xlb3RpZGUueW1sKS4gV2UgZGVjaWRlZCB0byBnbyB3aXRoIHRoYXQgYmVu Y2htYXJrLiBGb3IgYnJldml0eSBJIGhhdmUgbm90IGluY2x1ZGVkIHRoZSBmdWxsIDE1MCBsaW5l cyBvZiB0aGUgYmVuY2htYXJrIGhlcmUuDQ0KDQ0KSSB0ZXN0ZWQgdGhpcyBiZW5jaG1hcmsgb3V0 IHdpdGggMTAwIHJ1bnMgdXNpbmcgYGJlbmNobWFyay1kcml2ZXJgIGFnYWluc3QgUnVieSAyLjcs My4wLDMuMSwzLjIuIChJIGhhZCBkaXNjb3ZlcmVkIHRoYXQgMi43IHdhcyBldmVuIGZhc3RlciB0 aGFuIDIuNi4pLg0NCg0NCkl0IGFwcGVhcnMgdGhhdCBhYm91dCBoYWxmIG9mIHRoZSByZWdyZXNz aW9uIG9jY3VyZWQgZnJvbSAyLjcgLT4gMy4wOyB0aGUgb3RoZXIgaGFsZiBmcm9tIDMuMCAtPiAz LjIuIE9uZSBvdGhlciBpbnRlcmVzdGluZyBmaW5kaW5nIGlzIHRoYXQgZWFjaCBtaW5vciB2ZXJz aW9uIGRvZXMgYXBwZWFyIHRvIHJlZ3Jlc3MgDQ0KZnJvbSB0aGUgbGFzdCwgZXZlbiBpZiBhIGxp dHRsZS4NDQoNDQojIyBDb2RlDQ0KDQ0KVGhpcyBpcyBteSBiZW5jaG1hcmsgcnVubmluZyBjb2Rl IGFuZCBoYXJuYXNzLiBbVGhlIGZ1bGwgY29kZSBhbmQgZGF0YSBjYW4gYmUgZm91bmQgaGVyZV0o aHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vU2Nod2FkLzE2ZWRmM2Q3Y2M1MzE2YWY0YmFmMjM0OTdm M2M2YThmKQ0NCg0NCmBgYHJ1YnkNDQpSVU5TID0gMTAwDQ0KDQ0KcmVzdWx0cyA9IEhhc2gubmV3 IHsgfGgsIGt8IGhba10gPSBbXSB9DQ0KUlVOUy50aW1lcyBkbyB8aXwNDQogIHB1dHMgaQ0NCiAg cnVuID0gYGJlbmNobWFyay1kcml2ZXIgc29fa19udWNsZW90aWRlLnltbCAtLWNocnVieSAnMi43 LjU7My4wLjU7My4xLjM7My4yLjAnIC1vIHNpbXBsZWANDQogIHJ1bi5zY2FuKC9cZFwuXGRcLlxk LykuZWFjaF93aXRoX2luZGV4IGRvIHx2ZXJzaW9uLCBpbmRleHwNDQogICAgcmVzdWx0c1t2ZXJz aW9uXSA8PCBydW4uc2NhbigvXGRcLlxkXGRcZC8pW2luZGV4XQ0NCiAgZW5kDQ0KZW5kDQ0KDQ0K cmVxdWlyZSAnY3N2Jw0NCg0NCmNvbHVtbnMgPSByZXN1bHRzLmtleXMNDQpvdXRkYXRhID0gQ1NW LmdlbmVyYXRlIGRvIHxjc3Z8DQ0KICBjc3YgPDwgY29sdW1ucw0NCiAgUlVOUy50aW1lcyBkbyB8 aXwNDQogICAgY3N2IDw8IGNvbHVtbnMubWFwIHsgfGN8IHJlc3VsdHNbY11baV0gfQ0NCiAgZW5k DQ0KZW5kDQ0KDQ0KRmlsZS53cml0ZSgib3V0cHV0LmNzdiIsIG91dGRhdGEpDQ0KYGBgDQ0KIyMg RGF0YQ0NCg0NClJ1YnkgMi43LjUgd2FzIGNvbnNpc3RlbnRseSB+MTgtMjAlIGZhc3RlciB0aGFu IFJ1YnkgMy4yLjAgaW4gdGhpcyBCZW5jaG1hcmsNDQoNDQohW1NjcmVlbnNob3QgMjAyMy0wMi0x NSBhdCAxMyAxNiAxMF0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20v Nzg2NTAzMC8yMTkwMzg0MzAtNGExMjRjYzYtMGQyMy00NmUyLTk3OTQtZDg5ZDFmMjZlMjI3LnBu ZykNDQoNDQojIyBOZXh0IFN0ZXBzDQ0KDQ0KSSBhbSBoYXBweSB0byBoZWxwIGludmVzdGlnYXRl IG9yIGxlYXJuIG1vcmUgYWJvdXQgdGhpcyByZWdyZXNzaW9uIGlmIGFueW9uZSBoYXMgYW55IGlk ZWFzLiANDQoNDQoNDQoNDQotLSANDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NDQogX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1h aWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUg c2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1j b3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL3Bvc3Rvcml1cy9s aXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=