[ruby-core:112977] [Ruby master Feature#19541] Proposal: Generate frame unwinding info for YJIT code
From:
"hsbt (Hiroshi SHIBATA) via ruby-core" <ruby-core@...>
Date:
2023-03-22 10:34:28 UTC
List:
ruby-core #112977
SXNzdWUgIzE5NTQxIGhhcyBiZWVuIHVwZGF0ZWQgYnkgaHNidCAoSGlyb3NoaSBTSElCQVRBKS4N DQoNDQpTdGF0dXMgY2hhbmdlZCBmcm9tIE9wZW4gdG8gQXNzaWduZWQNDQpBc3NpZ25lZSBzZXQg dG8geWppdA0NCg0NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NDQpG ZWF0dXJlICMxOTU0MTogUHJvcG9zYWw6IEdlbmVyYXRlIGZyYW1lIHVud2luZGluZyBpbmZvIGZv ciBZSklUIGNvZGUNDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTk1NDEjY2hh bmdlLTEwMjUwNQ0NCg0NCiogQXV0aG9yOiBranRzYW5ha3RzaWRpcyAoS0ogVHNhbmFrdHNpZGlz KQ0NCiogU3RhdHVzOiBBc3NpZ25lZA0NCiogUHJpb3JpdHk6IE5vcm1hbA0NCiogQXNzaWduZWU6 IHlqaXQNDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQ0KIyMgV2hh dCBpcyBiZWluZyBwcm9wc2VkPw0NCg0NCkN1cnJlbnRseSwgd2hlbiBSdWJ5IGNyYXNoZXMgd2l0 aCB5aml0IGdlbmVyYXRlZCBjb2RlIG9uIHRoZSBzdGFjaywgYHJiX3ByaW50X2JhY2t0cmFjZSgp YCBpcyB1bmFibGUgdG8gYWN0dWFsbHkgc2hvdyBhbnkgZnJhbWVzIHVuZGVybmVhdGggdGhlIHlq aXQgY29kZS4gRm9yIGV4YW1wbGUsIGlmIHlvdSBzZW5kIFNJR1NFR1YgdG8gYSBSdWJ5IHByb2Nl c3MgcnVubmluZyB5aml0LCB0aGlzIGlzIHdoYXQgeW91IHNlZToNDQoNDQpgYGANDQovcnVieS9t aW5pcnVieShyYl9wcmludF9iYWNrdHJhY2UrMHhjKSBbMHhhYWFhZDAyNzY4ODRdIC9ydWJ5L3Zt X2R1bXAuYzo3ODUNDQovcnVieS9taW5pcnVieShyYl92bV9idWdyZXBvcnQpIC9ydWJ5L3ZtX2R1 bXAuYzoxMDkzDQ0KL3J1YnkvbWluaXJ1YnkocmJfYnVnX2Zvcl9mYXRhbF9zaWduYWwrMHhkMCkg WzB4YWFhYWQwMDc1NTgwXSAvcnVieS9lcnJvci5jOjgxMw0NCi9ydWJ5L21pbmlydWJ5KHNpZ3Nl Z3YrMHg1YykgWzB4YWFhYWQwMWJlZGFjXSAvcnVieS9zaWduYWwuYzo5MTkNDQpsaW51eC12ZHNv LnNvLjEoX19rZXJuZWxfcnRfc2lncmV0dXJuKzB4MCkgWzB4ZmZmZjkxYTNlOGJjXQ0NCi9ydWJ5 L21pbmlydWJ5KG1hcDwodXNpemUsIHlqaXQ6OmJhY2tlbmQ6OmlyOjpJbnNuKSwgKHVzaXplLCB5 aml0OjpiYWNrZW5kOjppcjo6SW5zbiksIHlqaXQ6OmJhY2tlbmQ6OmlyOjp7aW1wbCMxN306Om5l eHRfbWFwcGVkOjp7Y2xvc3VyZV9lbnYjMH0+KzB4OGMpIFsweGFhYWFkMDNiOGIwMF0gL3J1c3Rj Lzg5N2UzNzU1M2JiYThiNDI3NTFjNjc2NTg5Njc4ODlkMTFlY2QxMjAvbGlicmFyeS9jb3JlL3Ny Yy9vcHRpb24ucnM6OTI5DQ0KL3J1YnkvbWluaXJ1YnkobmV4dF9tYXBwZWQrMHgzYykgWzB4YWFh YWQwMjkxZGMwXSBzcmMvYmFja2VuZC9pci5yczoxMjI1DQ0KL3J1YnkvbWluaXJ1YnkoYXJtNjRf c3BsaXQrMHgxMTQpIFsweGFhYWFkMDI4Nzc0NF0gc3JjL2JhY2tlbmQvYXJtNjQvbW9kLnJzOjM1 OQ0NCi9ydWJ5L21pbmlydWJ5KGNvbXBpbGVfd2l0aF9yZWdzKzB4ODApIFsweGFhYWFkMDI4YmY4 NF0gc3JjL2JhY2tlbmQvYXJtNjQvbW9kLnJzOjExMDYNDQovcnVieS9taW5pcnVieShjb21waWxl KzB4YzQpIFsweGFhYWFkMDI5MWFlMF0gc3JjL2JhY2tlbmQvaXIucnM6MTE1OA0NCi9ydWJ5L21p bmlydWJ5KGdlbl9zaW5nbGVfYmxvY2srMHhlNDQpIFsweGFhYWFkMDJiMWY4OF0gc3JjL2NvZGVn ZW4ucnM6ODU0DQ0KL3J1YnkvbWluaXJ1YnkoZ2VuX2Jsb2NrX3Nlcmllc19ib2R5KzB4OWMpIFsw eGFhYWFkMDNiMDI1MF0gc3JjL2NvcmUucnM6MTY5OA0NCi9ydWJ5L21pbmlydWJ5KGdlbl9ibG9j a19zZXJpZXMrMHg1MCkgWzB4YWFhYWQwM2IwMTAwXSBzcmMvY29yZS5yczoxNjc2DQ0KL3J1Ynkv bWluaXJ1YnkoYnJhbmNoX3N0dWJfaGl0X2JvZHkrMHg4MGMpIFsweGFhYWFkMDNiMWY2OF0gc3Jj L2NvcmUucnM6MjAyMQ0NCi9ydWJ5L21pbmlydWJ5KHtjbG9zdXJlIzB9KzB4MjgpIFsweGFhYWFk MDJlYjg2Y10gc3JjL2NvcmUucnM6MTkyNA0NCi9ydWJ5L21pbmlydWJ5KGRvX2NhbGw8eWppdDo6 Y29yZTo6YnJhbmNoX3N0dWJfaGl0Ojp7Y2xvc3VyZV9lbnYjMH0sICpjb25zdCB1OD4rMHg5OCkg WzB4YWFhYWQwMzViYTNjXSAvcnVzdGMvODk3ZTM3NTUzYmJhOGI0Mjc1MWM2NzY1ODk2Nzg4OWQx MWVjZDEyMC9saWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzOjQ5Mg0NClsweGFhYWFkMDM1Yzli NF0NDQpgYGANDQoNDQoobi5iLiAtIEkgY29tcGlsZWQgUnVieSB3aXRoIGAtZmFzeW5jaHJvbm91 cy11bndpbmQtdGFibGVzIOKAk3JkeW5hbWljIOKAk2dgIGluIGNmbGFncyB0byBtYWtlIHN1cmUg Z2NjIGdlbmVyYXRlcyBhcHByb3ByaWF0ZSB1bndpbmQgaW5mbyAmIGtlZXBzIHRoZSBzeW1ib2wg dGFibGVzKS4NDQoNDQpMaWtld2lzZSwgaWYgeW91IGF0dGFjaCBnZGIgdG8gYSBSdWJ5IHByb2Nl c3Mgd2l0aCB5aml0IGVuYWJsZWQsIGdkYiBjYW4ndCBzaG93IHRocmVhZCBiYWNrdHJhY2VzIHRo cm91Z2ggeWppdC1nZW5lcmF0ZWQgY29kZSBlaXRoZXIuDQ0KDQ0KTXkgcHJvcG9zYWwgaXMgdGhh dCBZSklUIGdlbmVyYXRlIHN1ZmZpY2llbnQgdW53aW5kaW5nIGFuZCBkZWJ1ZyBpbmZvcm1hdGlv biBvbiBhbGwgcGxhdGZvcm1zIHRvIGFsbG93IGJvdGggYHJiX3ByaW50X2JhY2t0cmFjZSgpYCBh bmQgdGhlIHBsYXRmb3JtJ3MgZGVidWdnZXIgKGdkYi9sbGRiL1dpbkRiZykgdG8gc2hvdzoNDQoN DQoqIEZ1bGwgc3RhY2sgdHJhY2VzIGFsbCB0aGUgd2F5IGJhY2sgdG8gYG1haW5gLiBUaGF0IGlz LCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gc2VlIGZyYW1lcyBfdW5kZXJuZWF0aF8gYFsweGFh YWFkMDM1YzliNF1gIGZyb20gdGhlIGJhY2t0cmFjZSBhYm92ZS4NDQoqIE5hbWVzIGZvciB0aGUg ZHluYW1pY2FsbHkgZ2VuZXJhdGVkIHlqaXQgYmxvY2tzIChlLmcuIGluc3RlYWQgb2YgYFsweGFh YWFkMDM1YzliNF1gLCB3ZSBzaG91bGQgc2VlIHNvbWV0aGluZyBsaWtlIGB5aml0JCRuYW1lX29m X3J1YnlfbWV0aG9kYCwgd2hlcmUgYG5hbWVfb2ZfcnVieV9tZXRob2RgIGlzIHRoZSBgbGFiZWxg IGZvciB0aGUgaXNlcSB0aGlzIGlzIEpJVCdkIGNvZGUgZm9yKS4NDQoNDQojIyBNb3RpdmF0aW9u DQ0KDQ0KSSBoYXZlIGEgZmV3IG1vdGl2YXRpb25zIGZvciB3YW50aW5nIHRoaXMuIEZpcnN0bHks IEkgZmVlbCB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgaW5kZXBlbmRlbnRseSB1c2VmdWwuIFdoZW4g UnVieSBjcmFzaGVzLCB0aGUgbW9yZSBpbmZvcm1hdGlvbiB3ZSBjYW4gZ2V0LCB0aGUgbW9yZSBs aWtlbHkgd2UgYXJlIHRvIGZpbmQgdGhlIHJvb3QgY2F1c2UuIExpa2V3aXNlLCB0aGUgc2FtZSBw cmluY2lwbGUgYXBwbGllcyB0byBkZWJ1Z2dpbmcgd2l0aCBnZGIgLSB5b3UgY2FuIGdldCBhIGZ1 bGxlciB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgdGhlIHByb2Nlc3MgaXMgZG9pbmcgaWYgeW91IHNl ZSB0aGUgd2hvbGUgc3RhY2suDQ0KDQ0KSSBoYXZlIG9mdGVuIGZvdW5kIGF0dGFjaGluZyBnZGIg dG8gdGhlIFJ1YnkgaW50ZXJwcmV0ZXIgaGVscHMgaW4gdW5kZXJzdGFuZGluZyBwcm9ibGVtcyBp biBSdWJ5IGNvZGUgb3IgQyBleHRlbnNpb25zIGFuZCBpcyBzb21ldGhpbmcgSSBkbyByZWxhdGl2 ZWx5IGZyZXF1ZW50bHk7IHlqaXQgYnJlYWtpbmcgdGhhdCB3aWxsIGRlZmluaXRlbHkgYmUgaW5j b252ZW5pZW50IGZvciBtZSENDQoNDQojIyBJbXBsZW1lbnRhdGlvbg0NCg0NCkkgaGF2ZSBhIGRy YWZ0IGltcGxlbWVudGF0aW9uIGhlcmUgb24gaG93IEknZCBpbXBsZW1lbnQgdGhpczogaHR0cHM6 Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzc1NjcuIEl0J3MgY3VycmVudGx5IG1pc3Npbmcg dGVzdHMgJiBwbGF0Zm9ybSBzdXBwb3J0IChpdCBvbmx5IHdvcmtzIG9uIExpbnV4IGFhcmNoNjQp LiBBbHNvLCBpdCBpbXBsZW1lbnRzIHVud2luZCBpbmZvIGdlbmVyYXRpb24sIHNvIHVud2luZGlu ZyBjYW4gd29yayBfdGhyb3VnaF8geWppdCBjb2RlLCBidXQgaXQgZG9lcyBub3QgY3VycmVudGx5 IGVtaXQgc3ltYm9scyB0byBnaXZlIF9uYW1lc18gdG8gdGhvc2UgeWppdCBmcmFtZXMuDQ0KDQ0K TXkgUFIgY29udGFpbnMgYSBkb2N1bWVudCB3aGljaCBleHBsYWlucyBob3cgdGhlIExpbnV4IGlu dGVyZmFjZXMgZm9yIHJlZ2lzdGVyaW5nIHVud2luZCBpbmZvIGZvciBKSVQnZCBjb2RlIHdvcmss IHNvIEkgd29uJ3QgZHVwbGljYXRlIHRoYXQgaW5mb3JtYXRpb24gaGVyZS4NDQoNDQpUaGUgYmln Z2VzdCBpbXBsZW1lbnRhdGlvbiBxdWVzdGlvbiBJIGhhZCBpcyBhcm91bmQgdGhlIHVzZSBvZiBS dXN0IGNyYXRlcy4gQ3VycmVudGx5LCBJIHByb3RvdHlwZWQgbXkgaW1wbGVtZW50YXRpb24gdXNp bmcgdGhlIGdpbWxpICYgb2JqZWN0IGNyYXRlcywgZm9yIGdlbmVyYXRpbmcgRFdBUkYgaW5mbyBh bmQgRUxGIGJpbmFyaWVzLiBIb3dldmVyLCB0aGUgeWppdCBidWlsZCBkb2VzIHB1cnBvc2VmdWxs eSBkb2VzIG5vdCB1c2UgY2FyZ28gJiBleHRlcm5hbCBjcmF0ZXMgZm9yIHJlbGVhc2UgYnVpbGRz LiBUaGVyZSBhcmUgYSBmZXcgZGlmZmVyZW50IHdheXMgd2UgY291bGQgZ28gaGVyZToNDQoNDQoq IERvbid0IHVzZSB0aGUgZ2ltbGkgJiBvYmplY3QgY3JhdGVzOyBpbnN0ZWFkLCByZS1pbXBsZW1l bnQgYWxsIGRlYnVnIGluZm8gJiBvYmplY3QgZmlsZSBnZW5lcmF0aW9uIGNvZGUgaW4geWppdC4N DQoqIERvbid0IHVzZSB0aGUgY3JhdGVzOyBpbnN0ZWFkLCBsaW5rIGFnYWludCBDIGxpYnJhcmll cyB0byBwcm92aWRlIHRoaXMgZnVuY3Rpb25hbGl0eSAmIGNhbGwgdGhlbSBmcm9tIFJ1c3QgKHBl cmhhcHMgc29tZSBjb21iaW5hdGlvbiBvZiBsaWJlbGYsIGxpYmR3LCBsaWJiZmQsIG9yIGxsdm0g bWlnaHQgZG8gd2hhdCB3ZSBuZWVkKQ0NCiogVXNlIGNhcmdvIGFmdGVyIGFsbCBmb3IgdGhlIHJl bGVhc2UgYnVpbGQgJiBkb3dubG9hZCB0aGUgY3JhdGVzIGF0IGJ1aWxkLXRpbWUNDQoqIFVzZSBj YXJnbyBmb3IgdGhlIHJlbGVhc2UgYnVpbGQsIGJ1dCB2ZW5kb3IgZXZlcnl0aGluZywgc28gdGhl IGJ1aWxkIGRvZXNuJ3QgbmVlZCB0byBkb3dubG9hZCBhbnl0aGluZw0NCiogT25seSBtYWtlIHVu d2luZCBpbmZvIGdlbmVyYXRpb24gYXZhaWxhYmxlIGluIGRldiBtb2RlIHdoZXJlIGNhcmdvIGlz IHVzZWQsIGFuZCBzbyBtYXJrIHRoZSBnaW1saS9vYmplY3QgZGVwZW5kZW5jaWVzIGFzIG9wdGlv bmFsIGluIENhcmdvLnRvbWwuDQ0KDQ0KV2UnZCBuZWVkIHRvIGRlY2lkZSBvbiBvbmUgb2YgdGhl c2UgYXBwcm9hY2hlcyBmb3IgdGhpcyBwcm9wb3NhbCB0byB3b3JrLiBJIGRvbid0IHJlYWxseSBo YXZlIGEgc3Ryb25nIHNlbnNlIG9mIHRoZSBwcm9zL2NvbnMgb2YgZWFjaC4NDQoNDQooU2lkZSBu b3RlIC0gbXkgUFIgYWN0dWFsbHkgZGVwZW5kcyBvbiBhIF9mb3JrXyBvZiBnaW1saSAtIEkndmUg YmVlbiBkaXNjdXNzaW5nIGFkZGluZyB0aGUgbmVlZGVkIGludGVyZmFjZXMgdXBzdHJlYW0gaGVy ZTogaHR0cHM6Ly9naXRodWIuY29tL2dpbWxpLXJzL2dpbWxpL2lzc3Vlcy82NDgpLg0NCg0NCiMj IEJlbmNobWFya3MNDQoNDQpJIHJhbiB0aGUgeWl0LWJlbmNoIHN1aXRlIG9uIG15IGJyYW5jaCBh bmQgY29tcGFyZWQgaXQgdG8gUnVieSBtYXN0ZXI6DQ0KDQ0KKiBNeSBicmFuY2g6IGh0dHBzOi8v Z2lzdC5naXRodWIuY29tL0tKVHNhbmFrdHNpZGlzLzU3NDFhOWY2NGU1Y2Q3NWNkZjVmZWRkODQ2 MDkxYTRmDQ0KKiBSdWJ5IG1hc3RlcjogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vS0pUc2FuYWt0 c2lkaXMvNTkyZDNlYmNmOThmNjc0NWRmYTNlZmJkMzBhMjVhY2YNDQoNDQpUaGlzIGlzIGEgKHZl cnkgc2ltcGxlKSBjb21wYXJpc29uOg0NCg0NCmBgYA0NCi0tLS0tLS0tLS0tLS0tIC0tLS0tLS0t LS0tLSAtLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tDQ0KYmVuY2ggICAgICAgICAgeWppdCAo bXMpICAgIGJyYW5jaCAobXMpICBicmFuY2gveWppdCAoJSkNDQphY3RpdmVyZWNvcmQgICA5Ny41 ICAgICAgICAgOTguNSAgICAgICAgIDEwMS4wMyUNDQpoZXhhcGRmICAgICAgICAyNDE1LjMgICAg ICAgMjQ1OC4yICAgICAgIDEwMS43OCUNDQpsaXF1aWQtYyAgICAgICA2MS45ICAgICAgICAgNjMu MSAgICAgICAgIDEwMS45NCUNDQpsaXF1aWQtcmVuZGVyICAxMzUuMyAgICAgICAgMTM1LjAgICAg ICAgIDk5Ljc4JQ0NCm1haWwgICAgICAgICAgIDEwNC42ICAgICAgICAxMDUuNSAgICAgICAgMTAw Ljg2JQ0NCnBzeWNoLWxvYWQgICAgIDE4ODcuMSAgICAgICAxOTIyLjAgICAgICAgMTAxLjg1JQ0N CnJhaWxzYmVuY2ggICAgIDE1NDQuNCAgICAgICAxNTU2LjAgICAgICAgMTAwLjc1JQ0NCnJ1Ynkt bHNwICAgICAgIDg4LjQgICAgICAgICA4OS41ICAgICAgICAgMTAxLjI0JQ0NCnNlcXVlbCAgICAg ICAgIDE0Ny41ICAgICAgICAxNTEuMSAgICAgICAgMTAyLjQ0JQ0NCmJpbmFyeXRyZWVzICAgIDMw MyAgICAgICAgICAzMDUuNiAgICAgICAgMTAwLjg2JQ0NCmNodW5reV9wbmcgICAgIDEwNzUuOCAg ICAgICAxMDc5LjQgICAgICAgMTAwLjMzJQ0NCmVydWJpICAgICAgICAgIDM5Mi45ICAgICAgICAz OTIuMyAgICAgICAgOTkuODUlDQ0KZXJ1YmlfcmFpbHMgICAgMTQuNyAgICAgICAgIDE0LjcgICAg ICAgICAxMDAuMDAlDQ0KZXRhbm5pICAgICAgICAgNzkyLjMgICAgICAgIDc5MS40ICAgICAgICA5 OS44OSUNDQpmYW5ua3VjaHJlZHV4ICAzODE1LjkgICAgICAgMzgxMy42ICAgICAgIDk5Ljk0JQ0N CmxlZSAgICAgICAgICAgIDEwMzAuMiAgICAgICAxMDM5LjIgICAgICAgMTAwLjg3JQ0NCm5ib2R5 ICAgICAgICAgIDQ5LjIgICAgICAgICA0OS4zICAgICAgICAgMTAwLjIwJQ0NCm9wdGNhcnJvdCAg ICAgIDQxNDIgICAgICAgICA0MTQzLjMgICAgICAgMTAwLjAzJQ0NCnJ1YnktanNvbiAgICAgIDI4 NjAuNyAgICAgICAyODc0LjAgICAgICAgMTAwLjQ2JQ0NCnJ1Ynlrb24gICAgICAgIDc5MDYuNiAg ICAgICA3OTA0LjIgICAgICAgOTkuOTclDQ0KMzBrX2lmZWxzZSAgICAgMzQ4LjcgICAgICAgIDM0 NS40ICAgICAgICA5OS4wNSUNDQozMGtfbWV0aG9kcyAgICA4MjguNiAgICAgICAgODMxLjggICAg ICAgIDEwMC4zOSUNDQpjZnVuY19pdHNlbGYgICAyOC44ICAgICAgICAgMjguOSAgICAgICAgIDEw MC4zNSUNDQpmaWIgICAgICAgICAgICAzNC40ICAgICAgICAgMzQuNSAgICAgICAgIDEwMC4yOSUN DQpnZXRpdmFyICAgICAgICAxMTUuNSAgICAgICAgMTA5LjcgICAgICAgIDk0Ljk4JQ0NCmtleXdv cmRfYXJncyAgIDM3LjcgICAgICAgICAzOC4wICAgICAgICAgMTAwLjgwJQ0NCnJlc3BvbmRfdG8g ICAgIDI2ICAgICAgICAgICAyNi4xICAgICAgICAgMTAwLjM4JQ0NCnNldGl2YXIgICAgICAgIDMz LjggICAgICAgICAzMy41ICAgICAgICAgOTkuMTElDQ0Kc2V0aXZhcl9vYmplY3QgMjA4LjcgICAg ICAgIDE5NC4zICAgICAgICA5My4xMCUNDQpzdHJfY29uY2F0ICAgICA1Mi42ICAgICAgICAgNTIu MiAgICAgICAgIDk5LjI0JQ0NCnRocm93ICAgICAgICAgIDIzLjggICAgICAgICAyNC4xICAgICAg ICAgMTAxLjI2JQ0NCi0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0gLS0t LS0tLS0tLS0tLS0tDQ0KYGBgDQ0KDQ0KSXQgc2VlbXMgbGlrZSB0aGUgcGVyZm9ybWFuY2UgaW1w YWN0IG9mIGdlbmVyYXRpbmcgYW5kIHJlZ2lzdGVyaW5nIHRoZSBkZWJ1ZyBpbmZvIGlzIG1hcmdp bmFsLg0NCg0NCg0NCg0NCi0tIA0NCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0NCiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiBydWJ5LWNvcmUgbWFp bGluZyBsaXN0IC0tIHJ1YnktY29yZUBtbC5ydWJ5LWxhbmcub3JnCiBUbyB1bnN1YnNjcmliZSBz ZW5kIGFuIGVtYWlsIHRvIHJ1YnktY29yZS1sZWF2ZUBtbC5ydWJ5LWxhbmcub3JnCiBydWJ5LWNv cmUgaW5mbyAtLSBodHRwczovL21sLnJ1YnktbGFuZy5vcmcvbWFpbG1hbjMvcG9zdG9yaXVzL2xp c3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3JnLw==