[#104307] Float truncate — Eustáquio Rangel <eustaquiorangel@...>
Hi!
4 messages
2021/06/16
[ruby-core:104215] [Ruby master Feature#17942] Add a `initialize(public @a, private @b)` shortcut syntax for defining public/private accessors for instance vars as part of constructor
From:
merch-redmine@...
Date:
2021-06-09 05:32:21 UTC
List:
ruby-core #104215
SXNzdWUgIzE3OTQyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgamVyZW15ZXZhbnMwIChKZXJlbXkgRXZh bnMpLg0KDQoNCllvdSBzaG91bGQgcHJvYmFibHkgcmVhZCBAbWF0eidzIHJlc3BvbnNlIHRvIGEg cHJldmlvdXMgcmVxdWVzdCBmb3IgaW5zdGFuY2UgdmFyaWFibGUgcGFyYW1ldGVyczogaHR0cHM6 Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzg1NjMjbm90ZS0zICh3aGljaCBoZSBjb25maXJt ZWQgaGFkIG5vdCBjaGFuZ2VkIGFzIG9mIDIwMTc6IGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3Jn L2lzc3Vlcy84NTYzI25vdGUtMTgpLiBZb3VyIHByb3Bvc2FsIGlzIG1vcmUgY29tcGxleCwgYnV0 IGRvZXNuJ3QgYWRkcmVzcyB0aGUgY29tcGxhaW50IEBtYXR6IGhhcyByZWdhcmRpbmcgdXNpbmcg aW5zdGFuY2UgdmFyaWFibGVzIGFzIHBhcmFtZXRlcnMuICBBIG5ldyBpc3N1ZSB3aXRoIHlvdXIg cHJvcG9zYWwgaXMgaXQgd291bGQgdHVybiBgcHVibGljYC9gcHJpdmF0ZWAgaW50byBrZXl3b3Jk cywgd2hlbiB0aGV5IGFyZSBjdXJyZW50bHkganVzdCBtZXRob2RzLg0KDQpJZiB5b3Ugd2FudCBy ZWFsbHkgY29uY2lzZSBjbGFzcyBkZWZpbml0aW9ucywgdXNlIGBTdHJ1Y3RgLiAgSXQgZG9lc24n dCBnZXQgbXVjaCBtb3JlIGNvbmNpc2UgdGhhbjoNCg0KYGBgcnVieQ0KVGhpbmcgPSBTdHJ1Y3Qu bmV3KDphLCA6YiwgOmMpDQpgYGANCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KRmVhdHVyZSAjMTc5NDI6IEFkZCBhIGBpbml0aWFsaXplKHB1YmxpYyBAYSwgcHJp dmF0ZSBAYilgIHNob3J0Y3V0IHN5bnRheCBmb3IgZGVmaW5pbmcgcHVibGljL3ByaXZhdGUgYWNj ZXNzb3JzIGZvciBpbnN0YW5jZSB2YXJzIGFzIHBhcnQgb2YgY29uc3RydWN0b3INCmh0dHBzOi8v YnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNzk0MiNjaGFuZ2UtOTIzOTkNCg0KKiBBdXRob3I6 IFR5bGVyUmljayAoVHlsZXIgUmljaykNCiogU3RhdHVzOiBPcGVuDQoqIFByaW9yaXR5OiBOb3Jt YWwNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClRoaXMgcHJvcG9z YWwgYnVpbGRzIG9uIHRoZSBwcm9wb3NlZCBgaW5pdGlhbGl6ZShAYSwgQGIpYCBpbnN0YW5jZSB2 YXIgYXNzaWdubWVudCBzaG9ydGN1dCBzeW50YXggZGVzY3JpYmVkIGluICMxNTE5Mi4NCg0KMS4g SXQgYWxsb3dzIHlvdSB0byBhZGQgYW4gKm9wdGlvbmFsKiBgcHVibGljYC9gcHJvdGVjdGVkYC9g cHJpdmF0ZWAgbW9kaWZpZXIgYmVmb3JlIGFueSBpbnN0YW5jZSB2YXIgcGFyYW1ldGVyLiBEb2lu ZyBzbyBhdXRvbWF0aWNhbGx5IGRlZmluZXMgKmFjY2Vzc29yIG1ldGhvZHMqICh3aXRoIHRoZSBn aXZlbiBhY2Nlc3MgbW9kaWZpZXI7IGVxdWl2YWxlbnQgdG8gYGF0dHJfYWNjZXNzb3JgIGluc2lk ZSBvZiBhICBgcHVibGljYC9gcHJvdGVjdGVkYC9gcHJpdmF0ZWAgYmxvY2spIGZvciB0aGUgaW5z dGFuY2UgdmFyIGl0IHByZWNlZGVzLg0KMi4gSWYgdGhlIHZpc2liaWxpdHkgbW9kaWZpZXIgaXMg b21pdHRlZCwgdGhlbiBpdCBkZWZhdWx0cyB0byBhdXRvbWF0aWNhbGx5IF9ub18gZ2V0dGVyL3Nl dHRlciBtZXRob2RzIGZvciB0aGF0IGluc3RhbmNlIHZhciAoaXQgX29ubHlfIGRvZXMgYW4gYXNz aWdubWVudCBvZiB0aGF0IGFscmVhZHktcHJpdmF0ZSBpbnN0YW5jZSB2YXIpLg0KDQojIyBQYXJh bWV0ZXIgcHJvcGVydGllcyBpbiBUeXBlU2NyaXB0IGxhbmd1YWdlDQoNClRoaXMgaXMgaW5zcGly ZWQgYnkgVHlwZVNjcmlwdCdzIGBjb25zdHJ1Y3RvcihwdWJsaWMgYSwgcHJpdmF0ZSBiKWAgc3lu dGF4LCB3aGljaCBhbGxvd3MgeW91IHRvIHdyaXRlIHRoaXMgKFtSRVBMXShodHRwczovL3d3dy50 eXBlc2NyaXB0bGFuZy5vcmcvcGxheT8jY29kZS9NWUd3aGd6aEFFQmlEMjlvRzhCUTBQV1BBZGhB TGdFNEN1dys4aEFGQUE3RUJHSUFsc05HQUZ3N0VDMmRBcG9RQnBvdEJzMmgwTzNQb09HRkdBTnpE NWVXU1QzNEJLRk9rd0JmVlBxQSkpOg0KYGBganMNCmNsYXNzIEZvbyB7DQogICAgY29uc3RydWN0 b3IocHVibGljIGE6bnVtYmVyLCBwdWJsaWMgYjpudW1iZXIsIHByaXZhdGUgYzpudW1iZXIpIHsN CiAgICB9DQp9DQpgYGANCmluc3RlYWQgb2YgdGhpczoNCmBgYGpzDQpjbGFzcyBGb28gew0KICAg IGNvbnN0cnVjdG9yKGEsIGIsIGMpIHsNCiAgICAgICAgdGhpcy5hID0gYTsNCiAgICAgICAgdGhp cy5iID0gYjsNCiAgICAgICAgdGhpcy5jID0gYzsNCiAgICB9DQp9DQpgYGANCg0KKFRoZSBgcHVi bGljYC9gcHJpdmF0ZWAgYWNjZXNzIG1vZGlmaWVycyBhY3R1YWxseSBkaXNhcHBlYXIgaW4gdGhl IHRyYW5zcGlsZWQgSmF2YVNjcmlwdCBjb2RlIGJlY2F1c2UgaXQncyBvbmx5IHRoZSBUeXBlU2Ny aXB0IGNvbXBpbGVyIHRoYXQgZW5mb3JjZXMgdGhvc2UgYWNjZXNzIG1vZGlmaWVycywgYW5kIGl0 IGRvZXMgc28gYXQgKmNvbXBpbGUqIHRpbWUgcmF0aGVyIHRoYW4gYXQgcnVuIHRpbWUuKQ0KDQpG dXJ0aGVyIHJlYWRpbmc6DQotIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hh bmRib29rLzIvY2xhc3Nlcy5odG1sI3BhcmFtZXRlci1wcm9wZXJ0aWVzDQotIGh0dHBzOi8vYmFz YXJhdC5naXRib29rLmlvL3R5cGVzY3JpcHQvZnV0dXJlLWphdmFzY3JpcHQvY2xhc3NlcyNkZWZp bmUtdXNpbmctY29uc3RydWN0b3INCi0gaHR0cHM6Ly9rZW5kYWxlaXYuY29tL3R5cGVzY3JpcHQt Y29uc3RydWN0b3ItYXNzaWdubWVudC1wdWJsaWMtYW5kLXByaXZhdGUta2V5d29yZHMvDQoNCg0K IyMgRGlmZmVyZW5jZXMgZnJvbSBUeXBlU2NyaXB0DQoNCkkgcHJvcG9zZSBhZGRpbmcgYSBzaW1p bGFyIGZlYXR1cmUgdG8gUnVieSwgYnV0IHdpdGggZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20g VHlwZVNjcmlwdDoNCg0KMS4gVXNlICoqYEBhYCoqIGluc3RlYWQgb2YgYmFyZSBgYWAuIFRoaXMg bWFrZXMgaXQgKm11Y2gqIGNsZWFyZXIgdGhhdCB5b3UgYXJlIGFzc2lnbmluZyBkaXJlY3RseSB0 byBpbnN0YW5jZSB2YXJpYWJsZXMgaW5zdGVhZCBvZiB0byBsb2NhbHMuDQogICAgLSBSYXRpb25h bGU6IFRoZSBgQGAgaXMgYWN0dWFsbHkgX3BhcnRfIG9mIHRoZSBpbnN0YW5jZSB2YXJpYWJsZSBu YW1lLCBhbmQgaXMgaW5zZXBhcmFibGUgZnJvbSBpdC4gKFRoaXMgaXMgYWxzbyBjb25zaXN0ZW50 IHdpdGggaG93IHRoZSBgI2AgaXMgcGFydCBvZiB0aGUgbmFtZSBpdHNlbGYgaW4gSmF2YVNjcmlw dCdzIFsoUHJpdmF0ZSBpbnN0YW5jZSBmaWVsZHMpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxh Lm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9DbGFzc2VzL1ByaXZhdGVf Y2xhc3NfZmllbGRzI3ByaXZhdGVfaW5zdGFuY2VfZmllbGRzKS4pDQogICAgLSAoYHB1YmxpYyBh YCB3b3VsZCBiZSBhIHN5bnRheCBlcnJvciBiZWNhdXNlIHRoZXJlJ3Mgbm8gc3VjaCB0aGluZyBh cyBhY2Nlc3MgbW9kaWZpZXJzIGZvciBsb2NhbHMuIE9rYXksIEkgZ3Vlc3MgdGhlcmUncyBubyBz dWNoIHRoaW5nIGFzIGFjY2VzcyBtb2RpZmllcnMgZm9yIGluc3RhbmNlIHZhcnMgZWl0aGVyLCB3 aGljaCBpcyB3aHkuLi4pDQoNCjEuIE1ha2UgdGhlIHN5bnRheCBmb3IgKioqYXNzaWduaW5nKioq IHRvIGluc3RhbmNlIHZhcnMgKGBAYWApICh0aGUgcHJvcG9zYWwgaW4gIzE1MTkyKSBhbmQgZGVm aW5pbmcgKioqYWNjZXNzb3IgbWV0aG9kcyoqKiBmb3IgdGhvc2UgaW5zdGFuY2UgdmFycyAoYHB1 YmxpY2AvYHByaXZhdGVgKSBzZXBhcmF0ZS9kaXN0aW5jdC4NCiAgICAtIEluIG90aGVyIHdvcmRz LCByYXRoZXIgdGhhbiBtYWtlIHRoZSBgcHVibGljYC9gcHJpdmF0ZWAga2V5d29yZHMgYSAqcmVx dWlyZWQqIHBhcnQgb2YgdGhlIHN5bnRheCBsaWtlIGl0IGlzIGZvciBUeXBlU2NyaXB0IFtwYXJh bWV0ZXIgcHJvcGVydGllc10oaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFu ZGJvb2svMi9jbGFzc2VzLmh0bWwjcGFyYW1ldGVyLXByb3BlcnRpZXMpLCB5b3UgY291bGQgb21p dCB0aGUgbW9kaWZpZXIgYW5kIGl0IHdvdWxkIHN0aWxsIGRvIHRoZSBpbnN0YW5jZSB2YXIgX2Fz c2lnbm1lbnQqLg0KICAgIC0gVGhlIGBwdWJsaWNgL2Bwcml2YXRlYCBhY2Nlc3MgbW9kaWZpZXJz IGJlIGFuIGFkZGl0aW9uYWwgKCpvcHRpb25hbCopIHNob3J0Y3V0IHdoZW4geW91IHdhbnQgdG8g YWRkIGFuICoqKmFjY2Vzc29yIG1ldGhvZCoqKiBpbiAqYWRkaXRpb24qIHRvIGRvaW5nIGFuICoq KmFzc2lnbm1lbnQqKiogLg0KICAgIC0gVW5saWtlIEphdmEgYW5kIFR5cGVTY3JpcHQgd2hlcmUg eW91IF9jYW5fIGFkZCBhY2Nlc3MgbW9kaWZpZXJzIHRvIGluc3RhbmNlIHZhcmlhYmxlcywgaW4g UnVieSwgYHB1YmxpY2AvYHByaXZhdGVgIF9jYW4ndF8gYmUgYXBwbGllZCB0byBpbnN0YW5jZSB2 YXJpYWJsZXMgKGRpcmVjdCBhY2Nlc3MgaXMgb25seSBwb3NzaWJsZSBmcm9tIHdpdGhpbiB0aGUg aW5zdGFuY2UpLiBTbyBpZiB3ZSdyZSBnb2luZyB0byBhbGxvdyBhIGBwdWJsaWNgL2Bwcml2YXRl YCBtb2RpZmllciBoZXJlIGF0IGFsbCwgVGhleSBfbXVzdF8gcmVmZXIgdG8gbWV0aG9kcywgc3Bl Y2lmaWNhbGx5IGFjY2Vzc29yIG1ldGhvZHMgZm9yIHRob3NlIGluc3RhbmNlIHZhcmlhYmxlcy4N Cg0KMS4gS2VlcCBpdCAqKnByaXZhdGUqKiBieSBkZWZhdWx0ICh3aGljaCBvZiBjb3Vyc2UgYEBh YCBieSBpdHNlbGYgaW1wbGllc+KAlGl0IF9pc18gcHJpdmF0ZSB1bmxlc3MgeW91IGFkZCBhIHB1 YmxpYyBhY2Nlc3NvcikuDQogICAgLSAoUmF0aGVyIHRoYW4gbWFrZSBpdCBgcHVibGljYCBieSBk ZWZhdWx0IGxpa2UgaXQgaXMgaW4gVHlwZVNjcmlwdC4pDQogICAgLSBLZWVwaW5nIGluc3RhbmNl IHZhcmlhYmxlcyBjb21wbGV0ZWx5IHByaXZhdGUgaXMgcHJvYmFibHkgd2hhdCBwZW9wbGUgd2ls bCB3YW50IG1vc3Qgb2YgdGhlIHRpbWUsIGFuZCB3ZSBzaG91bGQgb3B0aW1pemUgdGhlIGVyZ29u b21pY3MgZm9yIHRoZSBtb3N0IGNvbW1vbiBjYXNlLg0KICAgIC0gUHJpdmF0ZSBpcyBhIHNhZmVy IGRlZmF1bHQsIGFuZCBzaG91bGQgYmUgYXNzdW1lZCB1bmxlc3MgeW91IGV4cGxpY2l0bHkgYXNr IGZvciBhIHB1YmxpYyBhY2Nlc3NvciB0byBiZSBhZGRlZC4NCiAgICAtIEkgYmV0IFR5cGVTY3Jp cHQgbWFkZSB0aGUgYHB1YmxpY2AgdGhlIGRlZmF1bHQgbW9zdGx5IHRvIGJlIGNvbnNpc3RlbnQg d2l0aCBKYXZhU2NyaXB0ICh3aGljaCBUeXBlU2NyaXB0IGNvbXBpbGVzIHRvKTogSmF2YVNjcmlw dCAoYWxvbmcgd2l0aCBvdGhlciBsYW5ndWFnZXMgbGlrZSBKYXZhKSBhbGxvd3MgZGlyZWN0IGFj Y2VzcyAobm8gZ2V0dGVyL3NldHRlciBuZWVkZSkgdG8gaW5zdGFuY2UgcHJvcGVydGllcy92YXJp YWJsZXMgZnJvbSBvYmplY3RzIG91dHNpZGUgdGhlIGluc3RhbmNlLiBKYXZhU2NyaXB0IGRvZXNu J3QgZXZlbiBfaGF2ZV8gYSB3YXkgdG8gbWFrZSBpbnN0YW5jZSB2YXJpYWJsZXMgcHJpdmF0ZSAo YnV0IGhvcGVmdWxseSB3aWxsIHNvb24gd2l0aCB0aGlzIFtwcm9wb3NhbF0oaHR0cHM6Ly9naXRo dWIuY29tL3RjMzkvcHJvcG9zYWwtcHJpdmF0ZS1tZXRob2RzKSB0byBhZGQgYCNhYCBzeW50YXgg Zm9yIHByaXZhdGUgcHJvcGVydGllcykuDQoNClNvIHRoaXM6DQoNCmBgYHJ1YnkNCmNsYXNzIFRo aW5nDQogIGRlZiBpbml0aWFsaXplKHB1YmxpYyBAYSwgcHVibGljIEBiLCBAYykNCiAgZW5kDQpl bmQNCmBgYA0KDQp3b3VsZCBiZSBlcXVpdmFsZW50IHRvIHRoaXM6DQoNCmBgYHJ1YnkNCmNsYXNz IFRoaW5nDQogIGF0dHJfYWNjZXNzb3IgOmEsIDpiDQoNCiAgZGVmIGluaXRpYWxpemUoYSwgYiwg YykNCiAgICBAYSA9IGENCiAgICBAYiA9IGINCiAgICBAYyA9IGMNCiAgZW5kDQpgYGANCg0KIyMg SG93IGlzIGBpbml0aWFsaXplKHByaXZhdGUgQGEpYCBkaWZmZXJlbnQgZnJvbSBgaW5pdGlhbGl6 ZShAYSlgPw0KDQpFdmVuIHRob3VnaCBgQGFgIGJ5IGl0c2VsZiBpcyBhbHJlYWR5IHByaXZhdGUu Li4NCjEuIFRoaXMgZGVmaW5lcyBhIHByaXZhdGUgYWNjZXNzb3IgZm9yIHRoYXQgaW5zdGFuY2Ug dmFyLCB3aGljaCBsZXRzIHlvdSB3cml0ZSBgc2VsZi5hID1gIGluc3RlYWQgb2YgYEBhID1gIChp ZiB5b3Ugd2FudCkuDQoyLiBIYXZpbmcgYSBjb25jaXNlIHdheSB0byBkbyB0aGF0IGlzIGhlbHBm dWwsIGZvciBleGFtcGxlIGlmIHlvdSB3YW50IHRvIG1ha2UgaXQgYSBtYXR0ZXIgb2YgcHJhY3Rp Y2UvcG9saWN5IHRvIG9ubHkgc2V0IGFuIGluc3RhbmNlIHZhcmlhYmxlIGJ5IGdvaW5nIHRocm91 Z2ggaXRzICpzZXR0ZXIgbWV0aG9kKi4gKFNlZSBbZGlzY3Vzc2lvbiBoZXJlXShodHRwczovL3N0 YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNTU3MTY0Mi9ydWJ5LXByaXZhdGUtYW5kLXB1Ymxp Yy1hY2Nlc3NvcnMpLikNCg0KDQpXaHkgbm90IGp1c3QgdXNlIGBpbml0aWFsaXplKHByaXZhdGUg QGEpYCB0byBiZSBjb25zaXN0ZW50IHdpdGggVHlwZVNjcmlwdCBzcGVjPw0KLSBUeXBlU2NyaXB0 J3MgYHB1YmxpY2AvYHByaXZhdGVgIGlzIG5vdCBzdGFuZGFyZCBKYXZhU2NyaXB0LiBJbiBmYWN0 LCBpZiB0aGUgW3ByaXZhdGUgbWV0aG9kcy9maWVsZHMgcHJvcG9zYWxdKGh0dHBzOi8vZ2l0aHVi LmNvbS90YzM5L3Byb3Bvc2FsLXByaXZhdGUtbWV0aG9kcykgaGFkIGV4aXN0ZWQgd2hlbiBUeXBl U2NyaXB0IGFkZGVkIFtwYXJhbWV0ZXIgcHJvcGVydGllc10oaHR0cHM6Ly93d3cudHlwZXNjcmlw dGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9jbGFzc2VzLmh0bWwjcGFyYW1ldGVyLXByb3BlcnRp ZXMpLCBJJ2QgbGlrZSB0byB0aGluayB0aGF0IHRoZXkgbWlnaHQgaGF2ZSBhY3R1YWxseSAqbWFk ZSB1c2UqIG9mIHRoZSBuZXcgYCNiYCBzeW50YXggYW5kIGdvbmUgd2l0aCBhIHRlcnNlciBzeW50 YXggbGlrZSBgY29uc3RydWN0b3IocHVibGljIGEsICNiKWAgaW5zdGVhZCBvZiBgYGNvbnN0cnVj dG9yKHB1YmxpYyBhLCBwcml2YXRlIGIpYC4NCg0KDQojIyBVcHNpZGVzIG9mIHRoaXMgcHJvcG9z YWwNCg0KMS4gUmVtb3ZlcyBldmVuIG1vcmUgYm9pbGVycGxhdGUgKGFsbCB0aG9zZSBgYXR0cl9h Y2Nlc3NvcmAgbGluZXMpLCBtdWNoIG9mIHRoZSB0aW1lDQoNCiMjIERvd25zaWRlcyBvZiB0aGlz IHByb3Bvc2FsDQoNCjEuIE9ubHkgcHJvdmlkZXMgYSB3YXkgdG8gZGVmaW5lIGJvdGggZ2V0dGVy IGFuZCBzZXR0ZXIgYXQgb25jZS4gRG9lc24ndCBwcm92aWRlIGEgd2F5IHRvIF9qdXN0XyBkZWZp bmUgYSBnZXR0ZXIgYW5kIG5vdCBhIHNldHRlciwgZm9yIGV4YW1wbGUuDQogICAgLSBEb2Vzbid0 IHNlZW0gbGlrZSBhIGJpZyBkZWFsLCBob3dldmVyLiBZb3UgY2FuIGp1c3Qgbm90IHVzZSB0aGlz IGZlYXR1cmUgYW5kIGRlZmluZSB0aGUgZ2V0dGVyIHdpdGggYGF0dHJfcmVhZGVyIDphYCBpbnN0 ZWFkLiBPciBkZWZpbmUgcHJpdmF0ZSBnZXR0ZXIvc2V0dGVyIHdpdGggYHByaXZhdGUgQGFgIGFu ZCB0aGVuIG92ZXJyaWRlIHdpdGggYGF0dHJfcmVhZGVyIDphYCB0byBhZGQgYSBwdWJsaWMgZ2V0 dGVyICh3aGlsZSBrZWVwaW5nIHRoZSBwcml2YXRlIHNldHRlcikuDQoNCg0KDQoNCi0tIA0KaHR0 cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3Jl LXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3Rz LnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=