From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.8 required=3.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.1 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id C949B1F954 for ; Thu, 23 Aug 2018 14:16:33 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 2BFA2120B17; Thu, 23 Aug 2018 23:16:31 +0900 (JST) Received: from o1678948x4.outbound-mail.sendgrid.net (o1678948x4.outbound-mail.sendgrid.net [167.89.48.4]) by neon.ruby-lang.org (Postfix) with ESMTPS id 97B941209E5 for ; Thu, 23 Aug 2018 23:16:25 +0900 (JST) Received: by filter0006p3iad2.sendgrid.net with SMTP id filter0006p3iad2-22712-5B7EC1B1-3C 2018-08-23 14:16:17.653271479 +0000 UTC m=+491887.632303573 Received: from herokuapp.com (ec2-54-90-103-155.compute-1.amazonaws.com [54.90.103.155]) by ismtpd0008p1iad2.sendgrid.net (SG) with ESMTP id OgbuRt1XR96zgVRMSuBV9A Thu, 23 Aug 2018 14:16:17.518 +0000 (UTC) Date: Thu, 23 Aug 2018 14:16:18 +0000 (UTC) From: hanmac@gmx.de To: ruby-core@ruby-lang.org Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 64000 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 15007 X-Redmine-Issue-Author: methodmissing X-Redmine-Issue-Assignee: naruse X-Redmine-Sender: Hanmac X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-SG-EID: ync6xU2WACa70kv/Ymy4QrNMhiuLXJG8OTL2vJD1yS7qQIhVFsx0HmvydbaooFJgsdrdoMrnZbNHFZ CeStTAt4nz00FOr93Dr3XIiZvofq8+iMUMKZU5uDQ69AVL1WKgNVtgG2ZObKAnAQYaxW1N4lf4Z2Oj 0rNz/LyE49oEzdDzpQs5kK+msUKR1UJRSgOn X-ML-Name: ruby-core X-Mail-Count: 88618 Subject: [ruby-core:88618] [Ruby trunk Misc#15007] Let all Init_xxx and extension APIs frequently called from init code paths be considered cold X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE1MDA3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgSGFubWFjIChIYW5zIE1hY2tvd2lhayku CgoKd2hhdCBoYXBwZW5zIHdoZW4gaSB3b3VsZCBjYWxsIHN1Y2ggY29sZCBmdW5jdGlvbiBvdXRz aWRlIG9mIEluaXRfeHh4ID8KCndoYXQgZnVuY3Rpb25zIGluIG15IG93biBiaW5kaW5nIHNob3Vs ZCBiZSB1c2luZyBjb2xkPwpsaWtlIGZvciBleGFtcGxlIGkgaGF2ZSBhIG93biBfYXR0cl9tZXRo b2QgZnVuY3Rpb24gdGhhdCBtaW1pYyBhIGF0dHJpYnV0ZSBieSBzZXR0aW5nIGEgR2V0L1NldCBm dW5jdGlvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpNaXNjICMx NTAwNzogTGV0IGFsbCBJbml0X3h4eCBhbmQgZXh0ZW5zaW9uIEFQSXMgZnJlcXVlbnRseSBjYWxs ZWQgZnJvbSBpbml0IGNvZGUgcGF0aHMgYmUgY29uc2lkZXJlZCBjb2xkCmh0dHBzOi8vYnVncy5y dWJ5LWxhbmcub3JnL2lzc3Vlcy8xNTAwNyNjaGFuZ2UtNzM2NzkKCiogQXV0aG9yOiBtZXRob2Rt aXNzaW5nIChMb3VyZW5zIE5hdWTDqSkKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFs CiogQXNzaWduZWU6IG5hcnVzZSAoWXVpIE5BUlVTRSkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpSZWZlcmVuY2VzIEdpdGh1YiBQUiBodHRwczovL2dpdGh1Yi5jb20v cnVieS9ydWJ5L3B1bGwvMTkzNAoKIyMjIFdoeT8KCkFuIGluY3JlbWVudGFsIGV4dHJhY3Rpb24g ZnJvbSBQUiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMTkyMiwgc3BlY2lmaWNh bGx5IGFkZHJlc3NpbmcgdGhlIGZlZWRiYWNrIGZyb20gWXVpIE5hcnVzZSBpbiBodHRwczovL2dp dGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMTkyMiNpc3N1ZWNvbW1lbnQtNDEzNzk2NzEwCgpUaGUg W0xpbnV4IGtlcm5lbF0oaHR0cHM6Ly9naXRodWIuY29tL3RvcnZhbGRzL2xpbnV4L2Jsb2IvY2Ew NGIzY2NhMTFhY2JhZjkwNGY3MDdmMmQ5Y2E5NjU0ZDdjYzIyNi9pbmNsdWRlL2xpbnV4L2NvbXBp bGVyLWdjYy5oI0wxOTEtTDIwNiksIFtQSFAgN10oaHR0cHM6Ly9naXRodWIuY29tL3BocC9waHAt c3JjL2Jsb2IvMmQ3MWEyODk1NGE0ZjIwNzA5NzE4ZWU3Y2IyYjg1MGQzMzRjNTYxYy9aZW5kL3pl bmRfcG9ydGFiaWxpdHkuaCNMMjIwKSBhbmQgb3RoZXIgcHJvamVjdHMgdXNlIHRoZSBgaG90YCBh bmQgYGNvbGRgIGZ1bmN0aW9uIGF0dHJpYnV0ZXMgdG8gaGVscCB3aXRoIGJldHRlciBjb2RlIGxh eW91dC4KCkkgbm90aWNlZCBSdWJ5IGlzIHZlcnkgbXVjaCBDUFUgZnJvbnRlbmQgYm91bmQgKG5v dCBmZWVkaW5nIGluc3RydWN0aW9ucyBpbnRvIHRoZSBDUFUgcGlwZWxpbmVzIGFzIGZhc3QgYXMg aXQgbWF5YmUgY291bGQpIGFuZCB0aGVyZWZvcmUgZXZlbiBtb3N0IG1pY3JvIGJlbmNobWFya3Mg aGF2ZSBhIGhpZ2ggQ1BJIChjeWNsZXMgcGVyIGluc3RydWN0aW9uKSByYXRlLiBUaGlzIFBSIGlz IHBhcnQgb2YgYSBsYXJnZXIgY2h1bmsgb2Ygd29yayBJJ2QgbGlrZSB0byBkbyBhcm91bmQgaW1w cm92aW5nIENQVSBmcm9udGVuZCB0aHJvdWdocHV0IGFuZCBjYW4gdGFrZSBhIHN0YWIgYXQgZm9y bWFsbHkgd3JpdGluZyB1cCB0aG9zZSBpZGVhcyBpZiB0aGVyZSdzIGFueSBpbnRlcmVzdCBmcm9t IHRoZSBjb21tdW5pdHkuIEkgZG9uJ3Qga25vdy4KCiMjIyBJbXBsZW1lbnRhdGlvbgoKVGhpcyBQ UiBoYXMgYW4gZXhjbHVzaXZlIGZvY3VzIG9uIGhhdmluZyB0aGUgYEluaXRfeHh4YCBmdW5jdGlv bnMgZm9yIHRoZSBjb3JlIGNsYXNzZXMgYW5kIHRob3NlIGJ1bmRsZWQgaW4gYGV4dGAgYmVpbmcg ZmxhZ2dlZCB0byBiZSBvcHRpbWl6ZWQgZm9yIHNpemUgYXMgdGhleSdyZSBjYWxsZWQgb25seSBv bmNlIGF0IHJ1bnRpbWUuCgpUaGUgR0NDIHNwZWNpZmljIFtjb2xkXShodHRwczovL2djYy5nbnUu b3JnL29ubGluZWRvY3MvZ2NjLTQuNi40L2djYy9GdW5jdGlvbi1BdHRyaWJ1dGVzLmh0bWwpIGZ1 bmN0aW9uIGF0dHJpYnV0ZSB3b3JrcyBpbiB0aGUgZm9sbG93aW5nIHdheSAoZnJvbSBHQ0MgZG9j cyk6CgpgYGAKVGhlIGNvbGQgYXR0cmlidXRlIGlzIHVzZWQgdG8gaW5mb3JtIHRoZSBjb21waWxl ciB0aGF0IGEgZnVuY3Rpb24gaXMgdW5saWtlbHkgZXhlY3V0ZWQuIFRoZSBmdW5jdGlvbiBpcyBv cHRpbWl6ZWQgZm9yIHNpemUgcmF0aGVyIHRoYW4gc3BlZWQgYW5kIG9uIG1hbnkgdGFyZ2V0cyBp dCBpcyBwbGFjZWQgaW50byBzcGVjaWFsIHN1YnNlY3Rpb24gb2YgdGhlIHRleHQgc2VjdGlvbiBz byBhbGwgY29sZCBmdW5jdGlvbnMgYXBwZWFycyBjbG9zZSB0b2dldGhlciBpbXByb3ZpbmcgY29k ZSBsb2NhbGl0eSBvZiBub24tY29sZCBwYXJ0cyBvZiBwcm9ncmFtLiBUaGUgcGF0aHMgbGVhZGlu ZyB0byBjYWxsIG9mIGNvbGQgZnVuY3Rpb25zIHdpdGhpbiBjb2RlIGFyZSBtYXJrZWQgYXMgdW5s aWtlbHkgYnkgdGhlIGJyYW5jaCBwcmVkaWN0aW9uIG1lY2hhbmlzbS4gSXQgaXMgdGh1cyB1c2Vm dWwgdG8gbWFyayBmdW5jdGlvbnMgdXNlZCB0byBoYW5kbGUgdW5saWtlbHkgY29uZGl0aW9ucywg c3VjaCBhcyBwZXJyb3IsIGFzIGNvbGQgdG8gaW1wcm92ZSBvcHRpbWl6YXRpb24gb2YgaG90IGZ1 bmN0aW9ucyB0aGF0IGRvIGNhbGwgbWFya2VkIGZ1bmN0aW9ucyBpbiByYXJlIG9jY2FzaW9ucy4K V2hlbiBwcm9maWxlIGZlZWRiYWNrIGlzIGF2YWlsYWJsZSwgdmlhIC1mcHJvZmlsZS11c2UsIGhv dCBmdW5jdGlvbnMgYXJlIGF1dG9tYXRpY2FsbHkgZGV0ZWN0ZWQgYW5kIHRoaXMgYXR0cmlidXRl IGlzIGlnbm9yZWQuCmBgYApCeSBkZWNsYXJpbmcgYSBmdW5jdGlvbiBhcyBgY29sZGAgd2hlbiBk ZWZpbmVkIHdlIGdldCB0aGUgZm9sbG93aW5nIGJlbmVmaXRzOgoKKiBOby1vcCBvbiBwbGF0Zm9y bXMgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBhdHRyaWJ1dGUKKiBTaXplIG9wdGltaXphdGlv biBvZiBjb2xkIGZ1bmN0aW9ucyB3aXRoIGEgc21hbGxlciBmb290cHJpbnQgaW4gdGhlIGluc3Ry dWN0aW9uIGNhY2hlCiogVGhlcmVmb3JlIENQVSBmcm9udGVuZCB0aHJvdWdocHV0IGluY3JlYXNl cyBkdWUgdG8gYSBsb3dlciByYXRpbyBvZiBpbnN0cnVjdGlvbiBjYWNoZSBtaXNzZXMgYW5kIGEg bG93ZXIgSVRMQiBvdmVyaGVhZCAtIHNlZSBbb3JpZ2luYWwgY2h1bmt5IFBSXShodHRwczovL3Vz ZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8zNzkvNDQyMDQ4NTgtNGMwODUxMDAtYTE0 Yy0xMWU4LTg2YjgtZDg3ZmNiNWU0OTg1LnBuZykgVlMgW3RoZW4gdHJ1bmtdKGh0dHBzOi8vdXNl ci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzM3OS80NDIwNDg3MC00ZjliZDgwMC1hMTRj LTExZTgtOWJlZS0xNGM4YWQ4ZDNhN2QucG5nKQoqIFRoaXMgZWZmZWN0IGNhbiBmdXJ0aGVyIGJl IGFtcGxpZmllZCBpbiBmdXR1cmUgd29yayB3aXRoIHRoZSBgaG90YCBhdHRyaWJ1dGUKCiMjIyMg RXh0ZW5zaW9uIEFQSXMgZmxhZ2dlZCBhcyBjb2xkCgpUaGVzZSBhcmUgYW5kIHNob3VsZCB0eXBp Y2FsbHkgb25seSBiZSBjYWxsZWQgb24gZXh0ZW5zaW9uIGluaXQsIGFuZCB0aHVzIHNhZmUgdG8g b3B0aW1pemUgZm9yIHNpemUgYXMgd2VsbC4KCiogYHZvaWQgcmJfZGVmaW5lX21ldGhvZF9pZChW QUxVRSwgSUQsIFZBTFVFICgqKShBTllBUkdTKSwgaW50KSk7YAoqIGB2b2lkIHJiX3VuZGVmKFZB TFVFLCBJRCkpO2AKKiBgdm9pZCByYl9kZWZpbmVfcHJvdGVjdGVkX21ldGhvZChWQUxVRSwgY29u c3QgY2hhciosIFZBTFVFICgqKShBTllBUkdTKSwgaW50KSk7YAoqIGB2b2lkIHJiX2RlZmluZV9w cml2YXRlX21ldGhvZChWQUxVRSwgY29uc3QgY2hhciosIFZBTFVFICgqKShBTllBUkdTKSwgaW50 KSk7YAoqIGB2b2lkIHJiX2RlZmluZV9zaW5nbGV0b25fbWV0aG9kKFZBTFVFLCBjb25zdCBjaGFy KiwgVkFMVUUoKikoQU5ZQVJHUyksIGludCkpO2AKKiBgdm9pZCByYl9kZWZpbmVfYWxsb2NfZnVu YyhWQUxVRSwgcmJfYWxsb2NfZnVuY190KSk7YAoqIGB2b2lkIHJiX3VuZGVmX2FsbG9jX2Z1bmMo VkFMVUUpKTtgCiogYFZBTFVFIHJiX2RlZmluZV9jbGFzcyhjb25zdCBjaGFyKixWQUxVRSkpO2AK KiBgVkFMVUUgcmJfZGVmaW5lX21vZHVsZShjb25zdCBjaGFyKikpO2AKKiBgVkFMVUUgcmJfZGVm aW5lX2NsYXNzX3VuZGVyKFZBTFVFLCBjb25zdCBjaGFyKiwgVkFMVUUpKTtgCiogYFZBTFVFIHJi X2RlZmluZV9tb2R1bGVfdW5kZXIoVkFMVUUsIGNvbnN0IGNoYXIqKSk7YAoqIGB2b2lkIHJiX2Rl ZmluZV92YXJpYWJsZShjb25zdCBjaGFyKixWQUxVRSopKTtgCiogYHZvaWQgcmJfZGVmaW5lX3Zp cnR1YWxfdmFyaWFibGUoY29uc3QgY2hhciosVkFMVUUoKikoQU5ZQVJHUyksdm9pZCgqKShBTllB UkdTKSkpO2AKKiBgdm9pZCByYl9kZWZpbmVfaG9va2VkX3ZhcmlhYmxlKGNvbnN0IGNoYXIqLFZB TFVFKixWQUxVRSgqKShBTllBUkdTKSx2b2lkKCopKEFOWUFSR1MpKSk7YAoqIGB2b2lkIHJiX2Rl ZmluZV9yZWFkb25seV92YXJpYWJsZShjb25zdCBjaGFyKixjb25zdCBWQUxVRSopKTtgCiogYHZv aWQgcmJfZGVmaW5lX2NvbnN0KFZBTFVFLGNvbnN0IGNoYXIqLFZBTFVFKSk7YAoqIGB2b2lkIHJi X2RlZmluZV9nbG9iYWxfY29uc3QoY29uc3QgY2hhciosVkFMVUUpKTtgCiogYHZvaWQgcmJfZGVm aW5lX21ldGhvZChWQUxVRSxjb25zdCBjaGFyKixWQUxVRSgqKShBTllBUkdTKSxpbnQpKTtgCiog YCh2b2lkIHJiX2RlZmluZV9tb2R1bGVfZnVuY3Rpb24oVkFMVUUsY29uc3QgY2hhciosVkFMVUUo KikoQU5ZQVJHUyksaW50KSk7YAoqIGB2b2lkIHJiX2RlZmluZV9nbG9iYWxfZnVuY3Rpb24oY29u c3QgY2hhciosVkFMVUUoKikoQU5ZQVJHUyksaW50KSk7YAoqIGB2b2lkIHJiX3VuZGVmX21ldGhv ZChWQUxVRSxjb25zdCBjaGFyKikpO2AKKiBgdm9pZCByYl9kZWZpbmVfYWxpYXMoVkFMVUUsY29u c3QgY2hhciosY29uc3QgY2hhciopKTtgCiogYHZvaWQgcmJfZGVmaW5lX2F0dHIoVkFMVUUsY29u c3QgY2hhciosaW50LGludCkpO2AKKiBgdm9pZCByYl9nbG9iYWxfdmFyaWFibGUoVkFMVUUqKSk7 YAoqIGB2b2lkIHJiX2djX3JlZ2lzdGVyX21hcmtfb2JqZWN0KFZBTFVFKSk7YAoqIGB2b2lkIHJi X2djX3JlZ2lzdGVyX2FkZHJlc3MoVkFMVUUqKSk7YAoqIGB2b2lkIHJiX2djX3VucmVnaXN0ZXJf YWRkcmVzcyhWQUxVRSopKTtgCgojIyMjIFRleHQgc2VnbWVudCByZWR1Y3Rpb25zCgpTbWFsbCBj aGFuZ2VzIChgMzE0NGAgYnl0ZXMgcmVkdWN0aW9uIG9mIHRoZSB0ZXh0IHNlZ21lbnQpIGJlY2F1 c2UgdGhpcyBpcyBpbmNyZW1lbnRhbCBncm91bmR3b3JrIGFuZCBhbmQgaW5pdGlhbCBsb3cgcmlz ayBQUi4KCnRoaXMgYnJhbmNoOgoKYGBgCmxvdXJlbnNAQ2FyYm9uWDE6fi9zcmMvcnVieS9ydWJ5 JCBzaXplIHJ1YnkKICAgdGV4dAkgICBkYXRhCSAgICBic3MJICAgIGRlYwkgICAgaGV4CWZpbGVu YW1lCjM0NjIxNTMJICAyMTA1NgkgIDcxMzQ0CTM1NTQ1NTMJIDM2M2NmOQlydWJ5CmBgYAoKdHJ1 bms6CgpgYGAKbG91cmVuc0BDYXJib25YMTp+L3NyYy9ydWJ5L3RydW5rJCBzaXplIHJ1YnkKICAg dGV4dAkgICBkYXRhCSAgICBic3MJICAgIGRlYwkgICAgaGV4CWZpbGVuYW1lCjM0NjUyOTcJICAy MTA1NgkgIDcxMzQ0CTM1NTc2OTcJIDM2NDk0MQlydWJ5CmBgYAoKRGlmZnMgZm9yIGluZGl2aWR1 YWwgb2JqZWN0IGZpbGVzOiBodHRwczovL3d3dy5kaWZmY2hlY2tlci5jb20vVDBHVnpYMXEKCkRl ZmF1bHQgYHRleHQudW5saWtlbHlgIHNlY3Rpb24gd2hlcmUgaW5pdCBmdW5jdGlvbnMgYXJlIG1v dmVkIHRvOgoKYGBgCmxvdXJlbnNAQ2FyYm9uWDE6fi9zcmMvcnVieS9ydWJ5JCByZWFkZWxmIC1T IHZtLm8KVGhlcmUgYXJlIDM0IHNlY3Rpb24gaGVhZGVycywgc3RhcnRpbmcgYXQgb2Zmc2V0IDB4 MmEwNGY4OgoKU2VjdGlvbiBIZWFkZXJzOgogIFtOcl0gTmFtZSAgICAgICAgICAgICAgVHlwZSAg ICAgICAgICAgICBBZGRyZXNzICAgICAgICAgICBPZmZzZXQKICAgICAgIFNpemUgICAgICAgICAg ICAgIEVudFNpemUgICAgICAgICAgRmxhZ3MgIExpbmsgIEluZm8gIEFsaWduCiAgWyAwXSAgICAg ICAgICAgICAgICAgICBOVUxMICAgICAgICAgICAgIDAwMDAwMDAwMDAwMDAwMDAgIDAwMDAwMDAw CiAgICAgICAwMDAwMDAwMDAwMDAwMDAwICAwMDAwMDAwMDAwMDAwMDAwICAgICAgICAgICAwICAg ICAwICAgICAwCiAgWyAxXSAudGV4dCAgICAgICAgICAgICBQUk9HQklUUyAgICAgICAgIDAwMDAw MDAwMDAwMDAwMDAgIDAwMDAwMDQwCiAgICAgICAwMDAwMDAwMDAwMDFjMzdmICAwMDAwMDAwMDAw MDAwMDAwICBBWCAgICAgICAwICAgICAwICAgICAxNgogIFsgMl0gLnJlbGEudGV4dCAgICAgICAg UkVMQSAgICAgICAgICAgICAwMDAwMDAwMDAwMDAwMDAwICAwMDExNDEwMAogICAgICAgMDAwMDAw MDAwMDAwYTdkMCAgMDAwMDAwMDAwMDAwMDAxOCAgIEkgICAgICAzMSAgICAgMSAgICAgOAogIFsg M10gLmRhdGEgICAgICAgICAgICAgUFJPR0JJVFMgICAgICAgICAwMDAwMDAwMDAwMDAwMDAwICAw MDAxYzNjMAogICAgICAgMDAwMDAwMDAwMDAwMDAzMCAgMDAwMDAwMDAwMDAwMDAwMCAgV0EgICAg ICAgMCAgICAgMCAgICAgMTYKICBbIDRdIC5ic3MgICAgICAgICAgICAgIE5PQklUUyAgICAgICAg ICAgMDAwMDAwMDAwMDAwMDAwMCAgMDAwMWM0MDAKICAgICAgIDAwMDAwMDAwMDAwMDAyYjAgIDAw MDAwMDAwMDAwMDAwMDAgIFdBICAgICAgIDAgICAgIDAgICAgIDMyCiAgWyA1XSAucm9kYXRhLnN0 cjEuOCAgICBQUk9HQklUUyAgICAgICAgIDAwMDAwMDAwMDAwMDAwMDAgIDAwMDFjNDAwCiAgICAg ICAwMDAwMDAwMDAwMDAwZDZmICAwMDAwMDAwMDAwMDAwMDAxIEFNUyAgICAgICAwICAgICAwICAg ICA4CiAgWyA2XSAudGV4dC51bmxpa2VseSAgICBQUk9HQklUUyAgICAgICAgIDAwMDAwMDAwMDAw MDAwMDAgIDAwMDFkMTZmIDw8PDw8PDw8PDw8PDw8PAogICAgICAgMDAwMDAwMDAwMDAwMWFhOSAg MDAwMDAwMDAwMDAwMDAwMCAgQVggICAgICAgMCAgICAgMCAgICAgMQpgYGAKClRoZSByZWxvY2F0 aW9ucyBmb3IgYHZtLm9gOgoKYGBgCmxvdXJlbnNAQ2FyYm9uWDE6fi9zcmMvcnVieS9ydWJ5JCBs ZCAtTSB2bS5vCi0tLSB0cnVuY2F0ZWQgLS0tCi50ZXh0ICAgICAgICAgICAweDAwMDAwMDAwMDA0 MDAxMjAgICAgMHgxZGUyZgogKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0 LnVubGlrZWx5LiopCiAudGV4dC51bmxpa2VseQogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAw NDAwMTIwICAgICAweDFhYTkgdm0ubwogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDAwMzhm ICAgICAgICAgICAgICAgIHJiX2RlZmluZV9hbGxvY19mdW5jCiAgICAgICAgICAgICAgICAweDAw MDAwMDAwMDA0MDAzYmYgICAgICAgICAgICAgICAgcmJfdW5kZWZfYWxsb2NfZnVuYwogICAgICAg ICAgICAgICAgMHgwMDAwMDAwMDAwNDAwM2M1ICAgICAgICAgICAgICAgIEluaXRfTWV0aG9kCiAg ICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDA1MTIgICAgICAgICAgICAgICAgSW5pdF92bV9l dmFsCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDA3YTEgICAgICAgICAgICAgICAgSW5p dF9ldmFsX21ldGhvZAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDAwYTU0ICAgICAgICAg ICAgICAgIHJiX3VuZGVmCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDBjMWQgICAgICAg ICAgICAgICAgSW5pdF9WTQogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDAxODVmICAgICAg ICAgICAgICAgIEluaXRfQmFyZVZNCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDFiMTYg ICAgICAgICAgICAgICAgSW5pdF92bV9vYmplY3RzCiAgICAgICAgICAgICAgICAweDAwMDAwMDAw MDA0MDFiNjEgICAgICAgICAgICAgICAgSW5pdF90b3Bfc2VsZgogKigudGV4dC5leGl0IC50ZXh0 LmV4aXQuKikKICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAqKC50ZXh0LmhvdCAu dGV4dC5ob3QuKikKICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICpm aWxsKiAgICAgICAgIDB4MDAwMDAwMDAwMDQwMWJjOSAgICAgICAgMHg3IAogLnRleHQgICAgICAg ICAgMHgwMDAwMDAwMDAwNDAxYmQwICAgIDB4MWMzN2Ygdm0ubwogICAgICAgICAgICAgICAgMHgw MDAwMDAwMDAwNDAyMmYwICAgICAgICAgICAgICAgIHJiX2Zfbm90aW1wbGVtZW50CiAgICAgICAg ICAgICAgICAweDAwMDAwMDAwMDA0MDQ3ODAgICAgICAgICAgICAgICAgcmJfdm1fZXBfbG9jYWxf ZXAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNDdiMCAgICAgICAgICAgICAgICByYl92 bV9mcmFtZV9ibG9ja19oYW5kbGVyCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDQ3ZTAg ICAgICAgICAgICAgICAgcmJfdm1fY3JlZl9uZXdfdG9wbGV2ZWwKICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAwMDQwNDg3MCAgICAgICAgICAgICAgICByYl92bV9ibG9ja19lcF91cGRhdGUKICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNDg5MCAgICAgICAgICAgICAgICBydWJ5X3ZtX3Nw ZWNpYWxfZXhjZXB0aW9uX2NvcHkKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNjk2MCAg ICAgICAgICAgICAgICByYl9lY19zdGFja19vdmVyZmxvdwogICAgICAgICAgICAgICAgMHgwMDAw MDAwMDAwNDA2OWMwICAgICAgICAgICAgICAgIHJiX3ZtX3B1c2hfZnJhbWUKICAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAwMDQwNmIyMCAgICAgICAgICAgICAgICByYl92bV9wb3BfZnJhbWUKICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNmIzMCAgICAgICAgICAgICAgICByYl9lcnJvcl9h cml0eQogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA3MTgwICAgICAgICAgICAgICAgIHJi X3ZtX2ZyYW1lX21ldGhvZF9lbnRyeQogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA3NWUw ICAgICAgICAgICAgICAgIHJiX3ZtX3Jld3JpdGVfY3JlZgogICAgICAgICAgICAgICAgMHgwMDAw MDAwMDAwNDA3NmYwICAgICAgICAgICAgICAgIHJiX3NpbXBsZV9pc2VxX3AKICAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAwMDQwNzcwMCAgICAgICAgICAgICAgICByYl92bV9vcHRfc3RydWN0X2Fy ZWYKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNzczMCAgICAgICAgICAgICAgICByYl92 bV9vcHRfc3RydWN0X2FzZXQKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNzc1MCAgICAg ICAgICAgICAgICByYl9jbGVhcl9jb25zdGFudF9jYWNoZQotLS0gdHJ1bmNhdGVkIC0tLQpgYGAK SSBhbHNvIGRhYmJsZWQgd2l0aCB0aGUgaWRlYSBvZiBhbiBgSU5JVEZVTkNgIG1hY3JvIHRoYXQg YWxzbyBwbGFjZXMgdGhlIGBJbml0X3h4eGAgZnVuY3Rpb25zIGludG8gYSBgdGV4dC5pbml0YCBz ZWN0aW9uIGFzIHRoZSBba2VybmVsIGRvZXNdKGh0dHBzOi8vbGludXhnYXpldHRlLm5ldC8xNTcv YW11cnJheS5odG1sKSBmb3IgYSBwb3NzaWJsZSBmdXR1cmUgb3B0aW1pemF0aW9uIG9mIHN0cmlw cGluZyBvdXQgRUxGIHNlY3Rpb25zIGZvciBzZXR1cCAvIGluaXQgc3BlY2lmaWMgZnVuY3Rpb25z LiBJIGRvbid0IHRoaW5rIHRoYXQgbWFrZXMgc2Vuc2UgZm9yIG5vdyBhbmQgcG9zc2libHkgb25s eSBpbnRlcmVzdGluZyBmb3IgbXJ1Ynkgb3IgZW1iZWRkZWQuCgojIyMgUG9zc2libGUgbmV4dCB1 bml0cyBvZiB3b3JrCgojIyMjIENvbGQgY29kZSBzcGVjaWZpYwoKKiBJbmNyZW1lbnRhbGx5IFBS IGNvcm5lciBjYXNlIGVycm9yIGhhbmRsaW5nIGZ1bmN0aW9ucyBzdWNoIGFzIGByYl9idWdgIGZy b20gaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzE5MjIKKiBEaXR0byBmb3IgZ2Vu ZXJpYyBlcnJvciBoYW5kbGluZyBmdW5jdGlvbnMgKGByYl9yYWlzZWAgYW5kIGZyaWVuZHMpIGZy b20gaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzE5MjIKKiBDbGFzcyBzcGVjaWZp YyBlcnJvciBoYW5kbGluZyBmdW5jdGlvbnMgKGxvYWQgZXJyb3JzLCBlbmNvZGluZyBlcnJvcnMg aW4gdGhlIElPIG1vZHVsZSwgc3lzIGVycm9ycyBldGMuKSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNv bS9ydWJ5L3J1YnkvcHVsbC8xOTIyCiogR0NDIDUrIGFsc28gc3VwcG9ydHMgYGNvbGRgIFtsYWJl bHNdKGh0dHBzOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9nY2MvTGFiZWwtQXR0cmlidXRlcy5o dG1sKSAsIHdoaWNoIEkgdG9vayBhIHN0YWIgd2l0aCBpbiB0aGUgYmxvYXRlZCBodHRwczovL2dp dGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMTkyMgoKIyMjIyBUTEIgKHRyYW5zbGF0aW9uIGxvb2th c2lkZSBidWZmZXIpIHNwZWNpZmljCgoqIEZ1cnRoZXIgSVRMQiBvdmVyaGVhZCBpbnZlc3RpZ2F0 aW9uCiogUnVieSBiaW5hcmllcyBidWlsdCB3aXRoIE8zIGFuZCBkZWJ1ZyBzeW1ib2xzIGNvbWUg aW4gYXQganVzdCBzaG9ydCBvZiAxOE1CLCBvciByb3VnaGx5IDkgaHVnZXBhZ2VzIG9uIGxpbnV4 LiBQSFAgY29yZSBkZXZlbG9wZXJzIHdlcmUgYWJsZSB0byBzcXVlZXplIGEgZmV3ICUgYnkgcmVt YXBwaW5nIGNvZGUgdG8gaHVnZXBhZ2VzIG9uIHN1cHBvcnRlZCBzeXN0ZW1zIC0gaHR0cDovL2Rl dmVsb3BlcnMtY2x1Yi5jb20vcG9zdHMvMjcwNjg1LyAuIEltcGxlbWVudGF0aW9uIFtoZXJlXSho dHRwczovL2dpdGh1Yi5jb20vcGhwL3BocC1zcmMvYmxvYi9mYjAzODliMTAxMGRlNWE2NDU5YmNm Mjg2NDA5NDIzZjY5ZTc0YWFmL2V4dC9vcGNhY2hlL1plbmRBY2NlbGVyYXRvci5jI0wyNjQ1LUwy NzUwKQoKIyMjIyBCeXRlY29kZSBzcGVjaWZpYwoKKiBUaGUgW0ludGVsIFRyYWNpbmcgVGFzayBB UEldKGh0dHBzOi8vc29mdHdhcmUuaW50ZWwuY29tL2VuLXVzL3Z0dW5lLWFtcGxpZmllci1oZWxw LXRhc2stYXBpKSBpcyB2ZXJ5IHdlbGwgc3VpdGVkIGZvciB0aGUgaW5zdHJ1Y3Rpb24gc2VxdWVu Y2VzIFlBUlYgZ2VuZXJhdGVzIGFuZCB0byBpbmZlciBiZXR0ZXIgcGVyIGluc3RydWN0aW9uIENQ VSB1dGlsaXphdGlvbiBhbmQgaWRlbnRpZnkgYW55IHN0YWxscyAoZnJvbnRlbmQsIGJhY2tlbmQs IGJyYW5jaGVzIGV0Yy4pIHRvIGRyaXZlIGZ1cnRoZXIgd29yay4KCgoKLS0gCmh0dHBzOi8vYnVn cy5ydWJ5LWxhbmcub3JnLwo=