[ruby-core:95700] [Ruby master Feature#16293] Numbered parameter confirmation in Ruby 2.7
From:
mame@...
Date:
2019-11-05 13:05:13 UTC
List:
ruby-core #95700
SXNzdWUgIzE2MjkzIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWFtZSAoWXVzdWtlIEVuZG9oKS4NCg0K DQpJdCBpcyBkaWZmaWN1bHQgZm9yIG1lIHRvIGFuYWx5emUgdGhpcyB0aWNrZXQsIHRvby4gIENv dWxkIHlvdSB3cml0ZSB5b3VyIGV4cGVjdGF0aW9ucyBhbmQgdGhlIGFjdHVhbCByZXN1bHRzPw0K DQpgYGBydWJ5DQojIGV4cGVjdGVkOiB3YXJuaW5nOiBgXzEnIGlzIHVzZWQgYXMgbnVtYmVyZWQg cGFyYW1ldGVyDQojIGFjdHVhbDogbm8gd2FybmluZw0KZGVmIGhnb2UoXzEpDQplbmQNCmBgYA0K DQpgYGBydWJ5DQpkZWYgXzE7IGVuZA0KDQojIGV4cGVjdGVkOiB3YXJuaW5nOiBgXzEnIGlzIHVz ZWQgYXMgbnVtYmVyZWQgcGFyYW1ldGVyDQojIGFjdHVhbDogbm8gd2FybmluZw0KeCA9IF8xDQpg YGANCg0KSXQgd291bGQgYmUgZ29vZCB0byB3cml0ZSB0aGUgcmVhc29uIHdoeSB5b3UgZXhwZWN0 IHNvLiAgQnV0IGZpcnN0bHkgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB5b3UgZXhwZWN0Lg0K DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMxNjI5 MzogTnVtYmVyZWQgcGFyYW1ldGVyIGNvbmZpcm1hdGlvbiBpbiBSdWJ5IDIuNw0KaHR0cHM6Ly9i dWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE2MjkzI2NoYW5nZS04MjQ4Nw0KDQoqIEF1dGhvcjog b3N5byAobWFuZ2Egb3N5bykNCiogU3RhdHVzOiBPcGVuDQoqIFByaW9yaXR5OiBOb3JtYWwNCiog QXNzaWduZWU6IA0KKiBUYXJnZXQgdmVyc2lvbjogDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQojIyBPdmVydmlldw0KDQpJIHdhbnQgdG8gbWFrZSBhIGZpbmFsIGNo ZWNrIG9uIHRoZSBiZWhhdmlvciBvZiBOdW1iZXJlZCBwYXJhbWV0ZXIoIE5vIHdhcm5pbmcgb3Ig V2FybmluZyBvciBFcnJvci4NCg0KKiBObyB3YXJuaW5nIC0+IE5vIGVycm9yIGluIHRoZSBmdXR1 cmUNCiogV2FybmluZyAtPiBEZXByZWNhdGVkIHN5bnRheA0KKiBFcnJvciAtPiBFcnJvciBpbiBS dWJ5IDIuNw0KDQoNCiMjIFJ1YnkgdmVyc2lvbg0KDQpgYGBydWJ5DQpwIFJVQllfVkVSU0lPTg0K IyA9PiAiMi43LjAiDQpwIFJVQllfREVTQ1JJUFRJT04NCiMgPT4gInJ1YnkgMi43LjBkZXYgKDIw MTktMTEtMDJUMDY6MzI6NDlaIHRydW5rIDc3MmIwNjEzYzUpIFt4ODZfNjQtbGludXhdIg0KcCBS VUJZX1JFTEVBU0VfREFURQ0KIyA9PiAiMjAxOS0xMS0wMiINCnAgUlVCWV9SRVZJU0lPTg0KIyA9 PiAiNzcyYjA2MTNjNTgzNzczY2QyZWRhMjNiY2U4Mjc1OTI2YTM1MWU3OSINCmBgYA0KDQoNCiMj IFtMb2cgaW4gRGV2ZWxvcGVyc01lZXRpbmcyMDE5MDgyOUphcGFuXShodHRwczovL2RvY3MuZ29v Z2xlLmNvbS9kb2N1bWVudC9kLzFYeXBETzFjclJWOXVOZzFfYWp4a2xqVmROOFZkeWw1aG56NDYy YkRRdzM0L2VkaXQpDQoNCiogbG9jYWwgdmFyaWFibGVzIChwYXJhbWV0ZXJzIGFuZCBhc3NpZ25l ZCB2YXJpYWJsZSkg4oaSIGZvcmNlIHdhcm5pbmcgKERvbuKAmXQgdXNlKSBvbiBSdWJ5IDIuNyBh bmQgc3ludGF4IGVycm9yIG9uIFJ1YnkgMy4NCiogbWV0aG9kIGludm9jYXRpb24NCiAgKiB2Y2Fs bDogYHggPSBfMCAjIGV4cGVjdCBfMCgpYCBvdXRzaWRlIGJsb2NrLiDihpIgZm9yY2Ugd2Fybmlu ZyBvbiBSdWJ5IDIuNyBhbmQgc3ludGF4IGVycm9yIG9uIFJ1YnkgMy4NCiAgKiB2Y2FsbDogYDEu dGltZXN7IF8wIH1gIOKGkiBibG9jayBwYXJhbWV0ZXIgKGluY29tcGF0aWJpbGl0eSkNCiAgKiB2 Y2FsbDogYDEudGltZXN7fGl8IF8wIH1gIOKGkiBmb3JjZSB3YXJuaW5nIG9uIFJ1YnkgMi43IGFu ZCBzeW50YXggZXJyb3Igb24gUnVieSAzLg0KKiBtZXRob2QgaW52b2NhdGlvbiAoYHggPSBfMCgp LCB4ID0gZm9vLl8wYCkg4oaSIG5vIHdhcm5pbmcNCiogbWV0aG9kIG5hbWUgKGBkZWYgXzAoKTsg ZW5kYCkg4oaSIG5vIHdhcm5pbmcNCg0KDQojIyBDdXJyZW50IGJlaGF2aW9yDQoNCmBgYHJ1YnkN CiMgTm8gd2FybmluZw0KIyBEZWZpbmVkIHBhcmFtZXRlciBuYW1lIGBfMWANCmRlZiBoZ29lKF8x KQ0KZW5kDQpgYGANCg0KYGBgcnVieQ0KZGVmIF8xDQogIDptZXRob2QNCmVuZA0KDQojIE5vIHdh cm5pbmcNCiMgQ2FsbCB0byBtZXRob2QgYF8xYA0KeCA9IF8xDQpwIHgNCiMgPT4gOm1ldGhvZA0K DQojIEVycm9yOiBudW1iZXJlZCBwYXJhbWV0ZXIgb3V0c2lkZSBibG9jayAoU3ludGF4RXJyb3Ip DQpwIGV2YWwoIl8xIikNCmBgYA0KDQpgYGBydWJ5DQpkZWYgXzENCiAgOm1ldGhvZA0KZW5kDQoN CiMgRXJyb3I6IG9yZGluYXJ5IHBhcmFtZXRlciBpcyBkZWZpbmVkDQpwIHByb2MgeyB8aXwgXzEg fS5jYWxsIDQyDQpgYGANCg0KYGBgcnVieQ0KcHJvYyB7DQogICMgV2FybmluZw0KICBfMSA9IDQy DQp9DQoNCnByb2Mgew0KICBfMQ0KICAjIE5vIHdhcm5pbmcNCiAgIyBEZWZpbmVkIGxvY2FsIHZh cmlhYmxlDQogIF8xID0gNDINCn0NCmBgYA0KDQpgYGBydWJ5DQpkZWYgXzENCiAgOm1ldGhvZA0K ZW5kDQoNCiMgTm8gd2FybmluZw0KcCBfMQ0KDQojIEVycm9yOiBudW1iZXJlZCBwYXJhbWV0ZXIg b3V0c2lkZSBibG9jayAoU3ludGF4RXJyb3IpDQpwIGV2YWwoIl8xIikNCmBgYA0KDQojIyBQcm9w b3NhbA0KDQoqIFdoZW4gZGVwcmVjYXRlZCBpbiB0aGUgZnV0dXJlLCBpdCBpcyBuZWNlc3Nhcnkg dG8gaXNzdWUgYSBXYXJuaW5nDQoqIENvbnNpZGVyaW5nIGNvbXBhdGliaWxpdHksIG1ha2UgaXQg V2FybmluZyBpbnN0ZWFkIG9mIEVycm9yDQoNCmBgYHJ1YnkNCmRlZiBfMQ0KICA6bWV0aG9kDQpl bmQNCg0KIyBXYXJuaW5nDQojICJgeCA9IF8wICMgZXhwZWN0IF8wKClgIG91dHNpZGUgYmxvY2su IOKGkiBmb3JjZSB3YXJuaW5nIG9uIFJ1YnkgMi43IGFuZCBzeW50YXggZXJyb3Igb24gUnVieSAz IiBpbiBsb2dzDQp4ID0gXzENCnAgeA0KIyA9PiA6bWV0aG9kDQoNCiMgV2FybmluZw0KcCBldmFs KCJfMSIpDQpgYGANCg0KYGBgcnVieQ0KZGVmIF8xDQogIDptZXRob2QNCmVuZA0KDQojIFdhcm5p bmcNCiMgImAxLnRpbWVze3xpfCBfMCB9YCDihpIgZm9yY2Ugd2FybmluZyBvbiBSdWJ5IDIuNyBh bmQgc3ludGF4IGVycm9yIG9uIFJ1YnkgMy4iIGluIGxvZ3MNCnAgcHJvYyB7IHxpfCBfMSB9LmNh bGwgNDINCmBgYA0KDQpgYGBydWJ5DQpwcm9jIHsNCiAgIyBXYXJuaW5nDQogIF8xID0gNDINCn0N Cg0KcHJvYyB7DQogIF8xDQogICMgV2FybmluZw0KICBfMSA9IDQyDQp9DQpgYGANCg0KYGBgcnVi eQ0KIyBXYXJuaW5nDQojIFNpbmNlIGxvY2FsIHZhcmlhYmxlcyBhcmUgYWxzbyB3YXJuaW5ncywg Zm9ybWFsIHBhcmFtZXRlcnMgYXJlIGFsc28gd2FybmluZ3MNCmRlZiBoZ29lKF8xKQ0KZW5kDQoN CiMgTk9URQ0KIyBgZXZhbCgiXzEiKWAgcmVmZXJzIHRvIGEgZHVtbXkgYXJndW1lbnQNCmRlZiBo b2dlKF8xKQ0KICBwIHByb2Mgew0KICAgIF8xDQogICAgZXZhbCgiXzEiKQ0KICB9LmNhbGwgNDIN CmVuZA0KaG9nZSA6YXJndW1lbnQNCiMgPT4gOmFyZ3VtZW50DQpgYGANCg0KIyMgT3RoZXIgYmVo YXZpb3INCg0KKiBJcyB0aGVyZSBhbnkgb3RoZXIgc3ludGF4IHRvIGNoYW5nZSBgTm8gd2Fybmlu Z2AgYFdhcm5pbmdgIGBFcnJvcmAgPw0KDQojIyMgRXhhbXBsZSAxLiBEZWZpbmVkIGxvY2FsIHZh cmlhYmxlIG5hbWUgYF8xYA0KDQpgYGBydWJ5DQojIEV4YW1wbGUgMS0xDQojIFdhcm5pbmcgOiBk ZWZpbmVkIGxvY2FsIHZhcmlhYmxlDQpfMSA9IDQyDQpgYGANCg0KYGBgcnVieQ0KIyBFeGFtcGxl IDEtMg0KIyBObyB3YXJuaW5nIDogZGVmaW5lZCBtZXRob2QgbmFtZQ0KZGVmIF8xDQogIDQyDQpl bmQNCmBgYA0KDQpgYGBydWJ5DQojIEV4YW1wbGUgMS0zDQojIE5vIHdhcm5pbmcgOiBkZWZpbmVk IHBhcmFtZXRlciBuYW1lDQpkZWYgaGdvZShfMSkNCmVuZA0KYGBgDQoNCmBgYHJ1YnkNCiMgRXhh bXBsZSAxLTQNCiMgSW4gYmxvY2sNCnByb2Mgew0KICAjIFdhcm5pbmc6IGBfMScgaXMgdXNlZCBh cyBOdW1iZXJlZCBwYXJhbWV0ZXINCiAgXzEgPSA0Mg0KfQ0KDQojIEV4YW1wbGUgMS01DQojIElu IGJsb2NrIGFuZCB1c2VkIE51bWJlcmVkIHBhcmFtZXRlcg0KcHJvYyB7DQogIF8xDQogICMgTm8g d2FybmluZw0KICBfMSA9IDQyDQp9DQpgYGANCg0KIyMjIEV4YW1wbGUgMi4gUmVmZXIgdG8gbG9j YWwgdmFyaWFibGUgYF8xYCBpbiBibG9jaw0KDQpgYGBydWJ5DQpfMSA9IDpsb2NhbF92YXJpYWJs ZQ0KDQojIEV4YW1wbGUgMi0xDQojIE5vIHdhcm5pbmcNCnggPSBfMQ0KcCB4DQojID0+IDpsb2Nh bF92YXJpYWJsZQ0KDQojIEV4YW1wbGUgMi0yDQojIE5vIHdhcm5pbmcNCnAgcHJvYyB7IHxpfCBf MSB9LmNhbGwgMw0KIyA9PiA6bG9jYWxfdmFyaWFibGUNCg0KIyBFeGFtcGxlIDItMw0KIyBObyB3 YXJuaW5nDQpwIHByb2MgeyBfMSB9LmNhbGwgMw0KIyA9PiA6bG9jYWxfdmFyaWFibGUNCg0KIyBF eGFtcGxlIDItNA0KcCBwcm9jIHsNCiAgXzENCiAgcHJvYyB7DQogICAgIyBObyB3YXJuaW5nDQog ICAgXzENCiAgfS5jYWxsDQp9LmNhbGwgNDINCiMgPT4gOmxvY2FsX3ZhcmlhYmxlDQpgYGANCg0K IyMjIEV4YW1wbGUgMy4gUmVmZXIgdG8gbWV0aG9kIGBfMWAgaW4gYmxvY2sNCg0KYGBgcnVieQ0K ZGVmIF8xKGEgPSBuaWwpDQogIDoibWV0aG9kI3thfSINCmVuZA0KDQojIEV4YW1wbGUgMy0xDQoj IE5vIHdhcm5pbmcNCnggPSBfMQ0KcCB4DQojID0+IDptZXRob2QNCg0KIyBFeGFtcGxlIDMtMg0K IyBObyB3YXJuaW5nDQp4ID0gXzEgNDINCnAgeA0KIyA9PiA6bWV0aG9kNDINCg0KIyBFeGFtcGxl IDMtMw0KIyBObyB3YXJuaW5nDQp4ID0gXzEoKQ0KcCB4DQojID0+IDptZXRob2QNCg0KIyBFeGFt cGxlIDMtNA0KIyBFcnJvcg0KcCBwcm9jIHsgfGl8IF8xIH0uY2FsbCA0Mg0KDQojIEV4YW1wbGUg My01DQojIE5vIHdhcm5pbmcNCnAgcHJvYyB7IHxpfCBfMSgpIH0uY2FsbCA0Mg0KIyA9PiA6bWV0 aG9kDQoNCiMgRXhhbXBsZSAzLTYNCiMgTm8gd2FybmluZw0KcCBwcm9jIHsgfGl8IF8xIGkgfS5j YWxsIDQyDQojID0+IDptZXRob2Q0Mg0KDQojIEV4YW1wbGUgMy03DQojIE5vIHdhcm5pbmcNCnAg cHJvYyB7IHxpfCBzZWxmLl8xIH0uY2FsbCA0Mg0KIyA9PiA6bWV0aG9kDQoNCiMgRXhhbXBsZSAz LTgNCiMgTm8gd2FybmluZw0KcCBwcm9jIHsgXzEgfS5jYWxsIDQyDQojID0+IDQyDQoNCiMgRXhh bXBsZSAzLTkNCiMgTm8gd2FybmluZw0KcCBwcm9jIHsgXzEgXzIgfS5jYWxsIDQyLCAzDQojID0+ IG1ldGhvZDMNCg0KIyBFeGFtcGxlIDMtMTANCiMgTm8gd2FybmluZw0KcCBwcm9jIHsgXzEoKSB9 LmNhbGwgNDINCiMgPT4gOm1ldGhvZA0KDQojIEV4YW1wbGUgMy0xMQ0KIyBObyB3YXJuaW5nDQpw IHByb2MgeyBzZWxmLl8xIH0uY2FsbCA0Mg0KIyA9PiA6bWV0aG9kDQoNCmBgYA0KDQoNCiMjIyBF eGFtcGxlIDQuIERlZmluZWQgbG9jYWwgdmFyaWFibGUgYF8xYCBhbmQgbWV0aG9kIGBfMWANCg0K YGBgcnVieQ0KZGVmIF8xKGEgPSBuaWwpDQogIDoibWV0aG9kI3thfSINCmVuZA0KDQpfMSA9IDps b2NhbF92YXJpYWJsZQ0KDQojIEV4YW1wbGUgNC0xDQojIE5vIHdhcm5pbmcNCnAgcHJvYyB7IHxp fCBfMSB9LmNhbGwgMw0KIyA9PiA6bG9jYWxfdmFyaWFibGUNCg0KIyBFeGFtcGxlIDQtMg0KIyBO byB3YXJuaW5nDQpwIHByb2MgeyB8aXwgXzEoKSB9LmNhbGwgMw0KIyA9PiA6bWV0aG9kDQoNCiMg RXhhbXBsZSA0LTMNCiMgTm8gd2FybmluZw0KcCBwcm9jIHsgfGl8IF8xIDQyIH0uY2FsbCAzDQoj ID0+IDptZXRob2Q0Mg0KDQojIEV4YW1wbGUgNC00DQojIE5vIHdhcm5pbmcNCnAgcHJvYyB7IF8x IH0uY2FsbCAzDQojID0+IDpsb2NhbF92YXJpYWJsZQ0KDQojIEV4YW1wbGUgNC01DQojIE5vIHdh cm5pbmcNCnAgcHJvYyB7IF8xKCkgfS5jYWxsIDMNCiMgPT4gOm1ldGhvZA0KDQojIEV4YW1wbGUg NC02DQojIE5vIHdhcm5pbmcNCnAgcHJvYyB7IF8xIDQyIH0uY2FsbCAzDQojID0+IDptZXRob2Q0 Mg0KYGBgDQoNCiMjIyBFeGFtcGxlIDUuIFVzZWQgYGV2YWwoIl8xIilgDQoNCiogYGV2YWwgKCJf MSIpYCByZWZlcnMgdG8gbG9jYWwgdmFyaWFibGVzIGluIHByZWZlcmVuY2UNCiAgKiBUaGUgc2Ft ZSBnb2VzIGZvciBgYmluZGluZy5sb2NhbF92YXJpYWJsZV9nZXQoOl8xKWANCiogSWYgbG9jYWwg dmFyaWFibGUgYF8xYCBiZWNvbWVzIEVycm9yLCBzb2x2ZSBpdD8NCiogYGV2YWwoIkAxIilgIGlz IFN5bnRheCBFcnJvcg0KDQpgYGBydWJ5DQojIEV4YW1wbGUgNS0xDQojIEVycm9yOiBudW1iZXJl ZCBwYXJhbWV0ZXIgb3V0c2lkZSBibG9jayAoU3ludGF4RXJyb3IpDQpwIHByb2MgeyBldmFsKCJf MSIpIH0uY2FsbCA0Mg0KYGBgDQoNCmBgYHJ1YnkNCiMgRXhhbXBsZSA1LTINCiMgTm8gd2Fybmlu Zw0KcCBwcm9jIHsgXzE7IGV2YWwoIl8xIikgfS5jYWxsIDQyDQojID0+IDQyDQpgYGANCg0KYGBg cnVieQ0KXzEgPSA6bG9jYWxfdmFyaWFibGUNCg0KIyBFeGFtcGxlIDUtMw0KIyBObyB3YXJuaW5n DQpwIGV2YWwoIl8xIikNCiMgPT4gOmxvY2FsX3ZhcmlhYmxlDQoNCiMgRXhhbXBsZSA1LTQNCiMg Tm8gd2FybmluZw0KcCBwcm9jIHsgZXZhbCgiXzEiKSB9LmNhbGwgNDINCiMgPT4gOmxvY2FsX3Zh cmlhYmxlDQoNCiMgRXhhbXBsZSA1LTUNCiMgTm8gd2FybmluZw0KcCBwcm9jIHsgXzE7IGV2YWwo Il8xIikgfS5jYWxsIDQyDQojID0+IDpsb2NhbF92YXJpYWJsZQ0KYGBgDQoNCmBgYHJ1YnkNCiMg RXhhbXBsZSA1LTYNCnAgcHJvYyB7DQogIF8xDQogICMgRXJyb3I6IG51bWJlcmVkIHBhcmFtZXRl ciBpcyBhbHJlYWR5IHVzZWQgaW4NCiAgIyAgICAgICAgb3V0ZXIgYmxvY2sgaGVyZQ0KICBwcm9j IHsgXzEgfS5jYWxsIDMNCn0uY2FsbCA0Mg0KYGBgDQoNCmBgYHJ1YnkNCiMgRXhhbXBsZSA1LTcN CnAgcHJvYyB7DQogIF8xDQogIHByb2Mgew0KICAgICMgTm8gd2FybmluZw0KICAgIGV2YWwoIl8x IikNCiAgfS5jYWxsIDMNCn0uY2FsbCA0Mg0KIyA9PiA0Mg0KYGBgDQoNCmBgYHJ1YnkNCiMgRXhh bXBsZSA1LTgNCl8xID0gOmxvY2FsX3ZhcmlhYmxlDQpwIHByb2Mgew0KICBfMQ0KICBwcm9jIHsN CiAgICAjIE5vIHdhcm5pbmcNCiAgICBldmFsKCJfMSIpDQogIH0uY2FsbCAzDQp9LmNhbGwgNDIN CiMgPT4gOmxvY2FsX3ZhcmlhYmxlDQpgYGANCg0KYGBgcnVieQ0KZGVmIF8xDQogIDptZXRob2QN CmVuZA0KDQojIEV4YW1wbGUgNS05DQojIE5vIHdhcm5pbmcNCnAgXzENCiMgPT4gOm1ldGhvZA0K DQojIEV4YW1wbGUgNS0xMA0KIyBFcnJvcjogbnVtYmVyZWQgcGFyYW1ldGVyIG91dHNpZGUgYmxv Y2sgKFN5bnRheEVycm9yKQ0KcCBldmFsKCJfMSIpDQoNCiMgRXhhbXBsZSA1LTExDQojIE5vIHdh cm5pbmcNCnAgZXZhbCgiXzEoKSIpDQojID0+IDptZXRob2QNCg0KIyBFeGFtcGxlIDUtMTINCiMg RXJyb3I6IG51bWJlcmVkIHBhcmFtZXRlciBvdXRzaWRlIGJsb2NrIChTeW50YXhFcnJvcikNCnAg cHJvYyB7IGV2YWwoIl8xIikgfS5jYWxsIDQyDQoNCiMgRXhhbXBsZSA1LTEzDQojIE5vIHdhcm5p bmcNCnAgcHJvYyB7IF8xOyBldmFsKCJfMSIpIH0uY2FsbCA0Mg0KIyA9PiA0Mg0KYGBgDQoNCg0K IyMjIEV4YW1wbGUgNi4gVXNlZCBkZWZhdWx0IGFyZ3VtZW50cw0KDQpgYGBydWJ5DQojIEV4YW1w bGUgNi0xDQojIE9LDQpwIHByb2MgeyB8XzF8DQogIC0+IChhID0gXzEpIHsgYSB9LmNhbGwNCn0u Y2FsbCA0Mg0KIyA9PiA0Mg0KYGBgDQoNCmBgYHJ1YnkNCiMgRXhhbXBsZSA2LTINCiMgT0sNCl8x ID0gOmxvY2FsX3ZhcmlhYmxlDQpwIHByb2Mgew0KICAtPiAoYSA9IF8xKSB7IGEgfS5jYWxsDQp9 LmNhbGwgNDINCiMgPT4gOmxvY2FsX3ZhcmlhYmxlDQpgYGANCg0KYGBgcnVieQ0KIyBPSw0KZGVm IF8xDQogIDptZXRob2QNCmVuZA0KDQpwIHByb2Mgew0KICBfMQ0KICBldmFsKCJfMSIpDQp9LmNh bGwgNDINCiMgPT4gNDINCmBgYA0KDQpgYGBydWJ5DQojIEV4YW1wbGUgNi0zDQojIE5HDQpwIHBy b2Mgew0KICAjIEVycm9yOiBvcmRpbmFyeSBwYXJhbWV0ZXIgaXMgZGVmaW5lZA0KICAtPiAoYSA9 IF8xKSB7IGEgfS5jYWxsDQp9LmNhbGwgNDINCmBgYA0KDQpgYGBydWJ5DQojIEV4YW1wbGUgNi00 DQojIE9LDQpwIHByb2MgeyB8XzF8DQogIC0+IChhID0gXzEpIHsgYSB9LmNhbGwNCn0uY2FsbCA0 Mg0KIyA9PiA0Mg0KYGBgDQoNCmBgYHJ1YnkNCiMgRXhhbXBsZSA2LTUNCiMgT0sNCl8xID0gOmxv Y2FsX3ZhcmlhYmxlDQpwIHByb2Mgew0KICAtPiAoYSA9IF8xKSB7IGEgfS5jYWxsDQp9LmNhbGwg NDINCiMgPT4gOmxvY2FsX3ZhcmlhYmxlDQpgYGANCg0KYGBgcnVieQ0KIyBFeGFtcGxlIDYtNg0K IyBORw0KcCBwcm9jIHsNCiAgIyBFcnJvcjogb3JkaW5hcnkgcGFyYW1ldGVyIGlzIGRlZmluZWQN CiAgLT4gKGEgPSBfMSkgeyBhIH0uY2FsbA0KfS5jYWxsIDQyDQpgYGANCg0KDQojIyMgRXhhbXBs ZSA3LiBSZWZyZXIgdG8gYF8xYCBpbiBiaW5kaW5nLmlyYg0KDQpgYGBydWJ5DQojIEV4YW1wbGUg Ny0xDQpwcm9jIHsNCiAgXzENCiAgIyBSZWZlcmVuY2luZyBfMSByZXR1cm5zIDQyDQogIGJpbmRp bmcuaXJiDQp9LmNhbGwgNDINCmBgYA0KDQpgYGBydWJ5DQojIEV4YW1wbGUgNy0yDQpfMSA9IDps b2NhbF92YXJpYWJsZQ0KcHJvYyB7DQogIF8xDQogICMgUmVmZXJlbmNpbmcgXzEgcmV0dXJucyA6 bG9jYWxfdmFyaWFibGUNCiAgYmluZGluZy5pcmINCn0uY2FsbCA0Mg0KYGBgDQoNCkFyZSB0aGVy ZSBvdGhlciBlZGdlIGNhc2VzIGZvciBOdW1iZXJlZCBwYXJhbWV0ZXI/DQpUaGFuayB5b3UgOikN Cg0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1YnNjcmliZTog PG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3Jp YmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9y dWJ5LWNvcmU+Cg==