From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.bugs Subject: bug#21317: 25.0.50; frame-resize-pixelwise has no effect (GTK, no window manager) Date: Sat, 22 Aug 2015 10:50:59 +0000 Message-ID: References: <55D8196B.3010206@gmx.at> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=e89a8ffbabc5eccc7b051de42800 X-Trace: ger.gmane.org 1440240743 7295 80.91.229.3 (22 Aug 2015 10:52:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 22 Aug 2015 10:52:23 +0000 (UTC) Cc: 21317@debbugs.gnu.org To: martin rudalics Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Aug 22 12:52:14 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZT6PF-0003Ji-H4 for geb-bug-gnu-emacs@m.gmane.org; Sat, 22 Aug 2015 12:52:14 +0200 Original-Received: from localhost ([::1]:46061 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZT6PE-000270-MA for geb-bug-gnu-emacs@m.gmane.org; Sat, 22 Aug 2015 06:52:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55958) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZT6P7-00026K-LM for bug-gnu-emacs@gnu.org; Sat, 22 Aug 2015 06:52:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZT6P4-0003FT-CE for bug-gnu-emacs@gnu.org; Sat, 22 Aug 2015 06:52:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:42786) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZT6P4-0003FP-8Y for bug-gnu-emacs@gnu.org; Sat, 22 Aug 2015 06:52:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZT6P3-0008EC-Sr for bug-gnu-emacs@gnu.org; Sat, 22 Aug 2015 06:52:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 22 Aug 2015 10:52:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21317 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 21317-submit@debbugs.gnu.org id=B21317.144024066631563 (code B ref 21317); Sat, 22 Aug 2015 10:52:01 +0000 Original-Received: (at 21317) by debbugs.gnu.org; 22 Aug 2015 10:51:06 +0000 Original-Received: from localhost ([127.0.0.1]:34996 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZT6O8-0008Cx-FI for submit@debbugs.gnu.org; Sat, 22 Aug 2015 06:51:06 -0400 Original-Received: from mail-ig0-f172.google.com ([209.85.213.172]:38321) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZT6O4-0008CQ-KN for 21317@debbugs.gnu.org; Sat, 22 Aug 2015 06:51:02 -0400 Original-Received: by igfj19 with SMTP id j19so29570579igf.1 for <21317@debbugs.gnu.org>; Sat, 22 Aug 2015 03:51:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=a1qsJ7Sq4lasDY8nnSGTA6g7E7Tn3fInsbw1NfEsUR0=; b=UbcTti8jN5ikbGY0JmGNF/0QgRNRO4VwrODfuynnMKZ9C89tFRbJjtz3tk7uqL9+B6 EMn8CmaOoIjA4KaKwfGNxk0G7xG08syrd5aDNCbaYsVD2PFhZBAJat9VKYHcDlhmjF+k 5Zqnm6a2JwbkiAvgu38ncN7xcv/7nsdmuh2ToiGTXKqgxmBy/Cbuz0wHnz9IiS+XVCtY K1nqKa636jAGoEQZCdWLCNir+WBfbn2L/CT7PzbuANl0g68DcIKfIMV1CU05+Q09fi4k jQ4luC2KDqH6KWp9rT3pXPoMfJxBipUnop/oX7K1j3ciZdmiEOIw2wtlh3wmHZJFcLEq a5Lg== X-Received: by 10.50.92.67 with SMTP id ck3mr7127127igb.93.1440240659871; Sat, 22 Aug 2015 03:50:59 -0700 (PDT) Original-Received: by 10.79.78.66 with HTTP; Sat, 22 Aug 2015 03:50:59 -0700 (PDT) In-Reply-To: <55D8196B.3010206@gmx.at> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:105690 Archived-At: --e89a8ffbabc5eccc7b051de42800 Content-Type: text/plain; charset=UTF-8 Thanks for responding! On Sat, Aug 22, 2015 at 6:40 AM, martin rudalics wrote: >> When starting Emacs (GTK build) on an X server which has no window >> manager (such as a newly-created Xnest session), setting >> `frame-resize-pixelwise' to t followed by a resize operation often has >> no effect. > > According to the manual > > Setting this variable usually causes the next resize operation to > pass the corresponding size hints to the window manager. This > means that this variable should be set only in a user's initial > file; applications should never bind it temporarily. That documentation is outdated and does not apply to GTK builds in all cases, I'm afraid. It is not the window manager that decides to honor or dishonor frame-resize-pixelwise but GDK. See x_wm_set_size_hint and gtk_window_move_resize (gtkwindow.c, in the GTK sources). In particular, gtk_window_compute_configure_request calls gtk_window_constrain_size which calls gdk_window_constrain_size which calculates width = base_width + FLOOR (width - base_width, xinc); height = base_height + FLOOR (height - base_height, yinc); (where FLOOR is defined as #define FLOOR(value, base) ( ((gint) ((value) / (base))) * (base) ) ) > So it's possible that Xnest or some other X component refuses to resize > your frame because the size hints were set up inappropriately. I'm pretty sure that's not what's happening, but I'll be happy to provide traces to demonstrate my analysis is correct...or to prove it wrong, of course! The attached gdb log shows quite clearly that it's GDK making the second (erroneous) call to XResizeWindow, not Xnest (there is no window manager). > Does it also fail when `frame-resize-pixelwise' is set to t in your > initial file? Yes, it does. > Does it fail when you set `frame-resize-pixelwise' to t, request an > integral resize first and a second non-integral one afterwards? I'm not sure I fully understand how you define "integral". In short, non-full-screen resize + redisplay + full-screen resize works, the other combinations do not. If I run this code (Xnest running on display :3): DISPLAY=:3 emacs -Q --eval "(progn (setq frame-resize-pixelwise t) (set-frame-height (selected-frame) (1+ (frame-pixel-height (selected-frame))) nil t) (redisplay) (set-frame-parameter (selected-frame) 'fullscreen 'fullboth))" Things work, but without the "(redisplay)" they don't. (So that's a non-full-screen resize first, then a full-screen resize). Doing the full-screen resize first breaks things. I must also point out that without the "(redisplay)", there are unexpected results: the full screen resize appears to be ignored entirely. But, again, I currently stand by my initial analysis of what's happening. The problem is that we cannot simply do the right thing because of the KWin bug... --e89a8ffbabc5eccc7b051de42800 Content-Type: text/plain; charset=US-ASCII; name="emacs-bug-008-gdb-log.txt" Content-Disposition: attachment; filename="emacs-bug-008-gdb-log.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_idmy05tk0 JSBYbmVzdCA6MiAtZ2VvbWV0cnkgODc3eDg3NyswKzAgJgpYbmVzdCA6MiAtZ2VvbWV0cnkgODc3 eDg3NyswKzAgJgpbMV0gMTQ2NzUKJSBESVNQTEFZPToyIC91c3IvYmluL2dkYiAtLWFyZ3MgZW1h Y3MgLVEgLS1ldmFsICIocHJvZ24gKHNldHEgZnJhbWUtcmVzaXplLXBpeGVsd2lzZSB0KSAoc2V0 LWZyYW1lLXBhcmFtZXRlciAoc2VsZWN0ZWQtZnJhbWUpICdmdWxsc2NyZWVuICdmdWxsYm90aCkp Igo8d2lzZSB0KSAoc2V0LWZyYW1lLXBhcmFtZXRlciAoc2VsZWN0ZWQtZnJhbWUpICdmdWxsc2Ny ZWVuICdmdWxsYm90aCkpIgpHTlUgZ2RiIChEZWJpYW4gNy45LjEtMSkgNy45LjEKQ29weXJpZ2h0 IChDKSAyMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpMaWNlbnNlIEdQTHYzKzog R05VIEdQTCB2ZXJzaW9uIDMgb3IgbGF0ZXIgPGh0dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2dwbC5o dG1sPgpUaGlzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBhcmUgZnJlZSB0byBjaGFuZ2UgYW5kIHJl ZGlzdHJpYnV0ZSBpdC4KVGhlcmUgaXMgTk8gV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0 dGVkIGJ5IGxhdy4gIFR5cGUgInNob3cgY29weWluZyIKYW5kICJzaG93IHdhcnJhbnR5IiBmb3Ig ZGV0YWlscy4KVGhpcyBHREIgd2FzIGNvbmZpZ3VyZWQgYXMgIng4Nl82NC1saW51eC1nbnUiLgpU eXBlICJzaG93IGNvbmZpZ3VyYXRpb24iIGZvciBjb25maWd1cmF0aW9uIGRldGFpbHMuCkZvciBi dWcgcmVwb3J0aW5nIGluc3RydWN0aW9ucywgcGxlYXNlIHNlZToKPGh0dHA6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9nZGIvYnVncy8+LgpGaW5kIHRoZSBHREIgbWFudWFsIGFuZCBvdGhlciBkb2N1 bWVudGF0aW9uIHJlc291cmNlcyBvbmxpbmUgYXQ6CjxodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ2RiL2RvY3VtZW50YXRpb24vPi4KRm9yIGhlbHAsIHR5cGUgImhlbHAiLgpUeXBlICJhcHJv cG9zIHdvcmQiIHRvIHNlYXJjaCBmb3IgY29tbWFuZHMgcmVsYXRlZCB0byAid29yZCIuLi4KUmVh ZGluZyBzeW1ib2xzIGZyb20gZW1hY3MuLi5kb25lLgooZ2RiKSBiIFhSZXNpemVXaW5kb3cKYiBY UmVzaXplV2luZG93CkJyZWFrcG9pbnQgMSBhdCAweDQxNjdhMAooZ2RiKSByCnIKU3RhcnRpbmcg cHJvZ3JhbTogL3Vzci9sb2NhbC9iaW4vZW1hY3MgLVEgLS1ldmFsIFwocHJvZ25cIFwoc2V0cVwg ZnJhbWUtcmVzaXplLXBpeGVsd2lzZVwgdFwpXCBcKHNldC1mcmFtZS1wYXJhbWV0ZXJcIFwoc2Vs ZWN0ZWQtZnJhbWVcKVwgXCdmdWxsc2NyZWVuXCBcJ2Z1bGxib3RoXClcKQpbVGhyZWFkIGRlYnVn Z2luZyB1c2luZyBsaWJ0aHJlYWRfZGIgZW5hYmxlZF0KVXNpbmcgaG9zdCBsaWJ0aHJlYWRfZGIg bGlicmFyeSAiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRocmVhZF9kYi5zby4xIi4KMSBYU0VM SU5VWHMgc3RpbGwgYWxsb2NhdGVkIGF0IHJlc2V0ClNDUkVFTjogMCBvYmplY3RzIG9mIDE1MiBi eXRlcyA9IDAgdG90YWwgYnl0ZXMgMCBwcml2YXRlIGFsbG9jcwpDT0xPUk1BUDogMCBvYmplY3Rz IG9mIDggYnl0ZXMgPSAwIHRvdGFsIGJ5dGVzIDAgcHJpdmF0ZSBhbGxvY3MKREVWSUNFOiAwIG9i amVjdHMgb2YgOTYgYnl0ZXMgPSAwIHRvdGFsIGJ5dGVzIDAgcHJpdmF0ZSBhbGxvY3MKQ0xJRU5U OiAwIG9iamVjdHMgb2YgNTYgYnl0ZXMgPSAwIHRvdGFsIGJ5dGVzIDAgcHJpdmF0ZSBhbGxvY3MK V0lORE9XOiAwIG9iamVjdHMgb2YgNzIgYnl0ZXMgPSAwIHRvdGFsIGJ5dGVzIDAgcHJpdmF0ZSBh bGxvY3MKUElYTUFQOiAxIG9iamVjdHMgb2YgMjQgYnl0ZXMgPSAyNCB0b3RhbCBieXRlcyAwIHBy aXZhdGUgYWxsb2NzCkdDOiAwIG9iamVjdHMgb2YgMjQgYnl0ZXMgPSAwIHRvdGFsIGJ5dGVzIDAg cHJpdmF0ZSBhbGxvY3MKQ1VSU09SOiAwIG9iamVjdHMgb2YgOCBieXRlcyA9IDAgdG90YWwgYnl0 ZXMgMCBwcml2YXRlIGFsbG9jcwpUT1RBTDogMSBvYmplY3RzLCAyNCBieXRlcywgMCBhbGxvY3MK MSBQSVhNQVBzIHN0aWxsIGFsbG9jYXRlZCBhdCByZXNldApQSVhNQVA6IDEgb2JqZWN0cyBvZiAy NCBieXRlcyA9IDI0IHRvdGFsIGJ5dGVzIDAgcHJpdmF0ZSBhbGxvY3MKR0M6IDAgb2JqZWN0cyBv ZiAyNCBieXRlcyA9IDAgdG90YWwgYnl0ZXMgMCBwcml2YXRlIGFsbG9jcwpDVVJTT1I6IDAgb2Jq ZWN0cyBvZiA4IGJ5dGVzID0gMCB0b3RhbCBieXRlcyAwIHByaXZhdGUgYWxsb2NzClRPVEFMOiAx IG9iamVjdHMsIDI0IGJ5dGVzLCAwIGFsbG9jcwoxIERBTUFHRXMgc3RpbGwgYWxsb2NhdGVkIGF0 IHJlc2V0ClRPVEFMOiAwIG9iamVjdHMsIDAgYnl0ZXMsIDAgYWxsb2NzCjEgWFNFTElOVVhzIHN0 aWxsIGFsbG9jYXRlZCBhdCByZXNldApTQ1JFRU46IDAgb2JqZWN0cyBvZiAxNTIgYnl0ZXMgPSAw IHRvdGFsIGJ5dGVzIDAgcHJpdmF0ZSBhbGxvY3MKQ09MT1JNQVA6IDAgb2JqZWN0cyBvZiA4IGJ5 dGVzID0gMCB0b3RhbCBieXRlcyAwIHByaXZhdGUgYWxsb2NzCkRFVklDRTogMCBvYmplY3RzIG9m IDk2IGJ5dGVzID0gMCB0b3RhbCBieXRlcyAwIHByaXZhdGUgYWxsb2NzCkNMSUVOVDogMCBvYmpl Y3RzIG9mIDU2IGJ5dGVzID0gMCB0b3RhbCBieXRlcyAwIHByaXZhdGUgYWxsb2NzCldJTkRPVzog MCBvYmplY3RzIG9mIDcyIGJ5dGVzID0gMCB0b3RhbCBieXRlcyAwIHByaXZhdGUgYWxsb2NzClBJ WE1BUDogMSBvYmplY3RzIG9mIDI0IGJ5dGVzID0gMjQgdG90YWwgYnl0ZXMgMCBwcml2YXRlIGFs bG9jcwpHQzogMCBvYmplY3RzIG9mIDI0IGJ5dGVzID0gMCB0b3RhbCBieXRlcyAwIHByaXZhdGUg YWxsb2NzCkNVUlNPUjogMCBvYmplY3RzIG9mIDggYnl0ZXMgPSAwIHRvdGFsIGJ5dGVzIDAgcHJp dmF0ZSBhbGxvY3MKVE9UQUw6IDEgb2JqZWN0cywgMjQgYnl0ZXMsIDAgYWxsb2NzCjEgUElYTUFQ cyBzdGlsbCBhbGxvY2F0ZWQgYXQgcmVzZXQKUElYTUFQOiAxIG9iamVjdHMgb2YgMjQgYnl0ZXMg PSAyNCB0b3RhbCBieXRlcyAwIHByaXZhdGUgYWxsb2NzCkdDOiAwIG9iamVjdHMgb2YgMjQgYnl0 ZXMgPSAwIHRvdGFsIGJ5dGVzIDAgcHJpdmF0ZSBhbGxvY3MKQ1VSU09SOiAwIG9iamVjdHMgb2Yg OCBieXRlcyA9IDAgdG90YWwgYnl0ZXMgMCBwcml2YXRlIGFsbG9jcwpUT1RBTDogMSBvYmplY3Rz LCAyNCBieXRlcywgMCBhbGxvY3MKMSBEQU1BR0VzIHN0aWxsIGFsbG9jYXRlZCBhdCByZXNldApU T1RBTDogMCBvYmplY3RzLCAwIGJ5dGVzLCAwIGFsbG9jcwoxIFhTRUxJTlVYcyBzdGlsbCBhbGxv Y2F0ZWQgYXQgcmVzZXQKU0NSRUVOOiAwIG9iamVjdHMgb2YgMTUyIGJ5dGVzID0gMCB0b3RhbCBi eXRlcyAwIHByaXZhdGUgYWxsb2NzCkNPTE9STUFQOiAwIG9iamVjdHMgb2YgOCBieXRlcyA9IDAg dG90YWwgYnl0ZXMgMCBwcml2YXRlIGFsbG9jcwpERVZJQ0U6IDAgb2JqZWN0cyBvZiA5NiBieXRl cyA9IDAgdG90YWwgYnl0ZXMgMCBwcml2YXRlIGFsbG9jcwpDTElFTlQ6IDAgb2JqZWN0cyBvZiA1 NiBieXRlcyA9IDAgdG90YWwgYnl0ZXMgMCBwcml2YXRlIGFsbG9jcwpXSU5ET1c6IDAgb2JqZWN0 cyBvZiA3MiBieXRlcyA9IDAgdG90YWwgYnl0ZXMgMCBwcml2YXRlIGFsbG9jcwpQSVhNQVA6IDEg b2JqZWN0cyBvZiAyNCBieXRlcyA9IDI0IHRvdGFsIGJ5dGVzIDAgcHJpdmF0ZSBhbGxvY3MKR0M6 IDAgb2JqZWN0cyBvZiAyNCBieXRlcyA9IDAgdG90YWwgYnl0ZXMgMCBwcml2YXRlIGFsbG9jcwpD VVJTT1I6IDAgb2JqZWN0cyBvZiA4IGJ5dGVzID0gMCB0b3RhbCBieXRlcyAwIHByaXZhdGUgYWxs b2NzClRPVEFMOiAxIG9iamVjdHMsIDI0IGJ5dGVzLCAwIGFsbG9jcwoxIFBJWE1BUHMgc3RpbGwg YWxsb2NhdGVkIGF0IHJlc2V0ClBJWE1BUDogMSBvYmplY3RzIG9mIDI0IGJ5dGVzID0gMjQgdG90 YWwgYnl0ZXMgMCBwcml2YXRlIGFsbG9jcwpHQzogMCBvYmplY3RzIG9mIDI0IGJ5dGVzID0gMCB0 b3RhbCBieXRlcyAwIHByaXZhdGUgYWxsb2NzCkNVUlNPUjogMCBvYmplY3RzIG9mIDggYnl0ZXMg PSAwIHRvdGFsIGJ5dGVzIDAgcHJpdmF0ZSBhbGxvY3MKVE9UQUw6IDEgb2JqZWN0cywgMjQgYnl0 ZXMsIDAgYWxsb2NzCjEgREFNQUdFcyBzdGlsbCBhbGxvY2F0ZWQgYXQgcmVzZXQKVE9UQUw6IDAg b2JqZWN0cywgMCBieXRlcywgMCBhbGxvY3MKW05ldyBUaHJlYWQgMHg3ZmZmZTViZGU3MDAgKExX UCAxNDc2OCldCltOZXcgVGhyZWFkIDB4N2ZmZmU1MzhkNzAwIChMV1AgMTQ3NzApXQpbTmV3IFRo cmVhZCAweDdmZmZlN2RhYTcwMCAoTFdQIDE0NzM0KV0KCkJyZWFrcG9pbnQgMSwgWFJlc2l6ZVdp bmRvdyAoZHB5PTB4ZDI1OTQwLCB3PXdAZW50cnk9NjI5MTQ3Nywgd2lkdGg9d2lkdGhAZW50cnk9 NTkxLAogICAgaGVpZ2h0PWhlaWdodEBlbnRyeT00NzQpIGF0IC4uLy4uL3NyYy9DaFdpbmRvdy5j OjM4CjM4CS4uLy4uL3NyYy9DaFdpbmRvdy5jOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Lgoo Z2RiKSBjCmMKQ29udGludWluZy4KCkJyZWFrcG9pbnQgMSwgWFJlc2l6ZVdpbmRvdyAoZHB5PTB4 ZDI1OTQwLCB3PTYyOTE0NzcsIHdpZHRoPTg3NywgaGVpZ2h0PTg3NykKICAgIGF0IC4uLy4uL3Ny Yy9DaFdpbmRvdy5jOjM4CjM4CWluIC4uLy4uL3NyYy9DaFdpbmRvdy5jCihnZGIpIGJ0CmJ0CiMw ICBYUmVzaXplV2luZG93IChkcHk9MHhkMjU5NDAsIHc9NjI5MTQ3Nywgd2lkdGg9ODc3LCBoZWln aHQ9ODc3KSBhdCAuLi8uLi9zcmMvQ2hXaW5kb3cuYzozOAojMSAgMHgwMDAwMDAwMDAwNTFlNTQw IGluIHhfY2hlY2tfZnVsbHNjcmVlbiAoZj0weDEyYWM4ZDApIGF0IHh0ZXJtLmM6MTAxOTQKIzIg IDB4MDAwMDAwMDAwMDUxZTFkYSBpbiBYVGZ1bGxzY3JlZW5faG9vayAoZj0weDEyYWM4ZDApIGF0 IHh0ZXJtLmM6MTAxMTEKIzMgIDB4MDAwMDAwMDAwMDQyZDJjZCBpbiB4X3NldF9mdWxsc2NyZWVu IChmPTB4MTJhYzhkMCwgbmV3X3ZhbHVlPTIzMzI4LCBvbGRfdmFsdWU9MCkKICAgIGF0IGZyYW1l LmM6MzQ4MAojNCAgMHgwMDAwMDAwMDAwNDJjYjBkIGluIHhfc2V0X2ZyYW1lX3BhcmFtZXRlcnMg KGY9MHgxMmFjOGQwLCBhbGlzdD0wKSBhdCBmcmFtZS5jOjMzNTgKIzUgIDB4MDAwMDAwMDAwMDQy YWY1MiBpbiBGbW9kaWZ5X2ZyYW1lX3BhcmFtZXRlcnMgKGZyYW1lPTE5NTgxMTQxLCBhbGlzdD0x NzE0OTMzMSkgYXQgZnJhbWUuYzoyNjc1CiM2ICAweDAwMDAwMDAwMDA1ZWM4OTQgaW4gRmZ1bmNh bGwgKG5hcmdzPTMsIGFyZ3M9MHg3ZmZmZmZmZmNiODApIGF0IGV2YWwuYzoyNzM3CiM3ICAweDAw MDAwMDAwMDA2MmY0NjggaW4gZXhlY19ieXRlX2NvZGUgKGJ5dGVzdHI9MTA2MDA5NzIsIHZlY3Rv cj0xMDYwMTAwNSwgbWF4ZGVwdGg9MzAsCiAgICBhcmdzX3RlbXBsYXRlPTMwODYsIG5hcmdzPTMs IGFyZ3M9MHg3ZmZmZmZmZmNmZjgpIGF0IGJ5dGVjb2RlLmM6OTE5CiM4ICAweDAwMDAwMDAwMDA1 ZWQwYTEgaW4gZnVuY2FsbF9sYW1iZGEgKGZ1bj0xMDYwMDkyNSwgbmFyZ3M9MywgYXJnX3ZlY3Rv cj0weDdmZmZmZmZmY2ZlMCkKICAgIGF0IGV2YWwuYzoyOTAxCiM5ICAweDAwMDAwMDAwMDA1ZWNl NTMgaW4gYXBwbHlfbGFtYmRhIChmdW49MTA2MDA5MjUsIGFyZ3M9MTcxNTA2OTEsIGNvdW50PTEy KSBhdCBldmFsLmM6Mjg0MgojMTAgMHgwMDAwMDAwMDAwNWViNWYxIGluIGV2YWxfc3ViIChmb3Jt PTE3MTUwNzU1KSBhdCBldmFsLmM6MjI0MgojMTEgMHgwMDAwMDAwMDAwNWU3NzUxIGluIEZwcm9n biAoYm9keT0xNzE0OTk1NSkgYXQgZXZhbC5jOjQ2MAojMTIgMHgwMDAwMDAwMDAwNWViMDlmIGlu IGV2YWxfc3ViIChmb3JtPTE3MTUxMDkxKSBhdCBldmFsLmM6MjE0NwojMTMgMHgwMDAwMDAwMDAw NWVhYjg4IGluIEZldmFsIChmb3JtPTE3MTUxMDkxLCBsZXhpY2FsPTApIGF0IGV2YWwuYzoyMDEx CiMxNCAweDAwMDAwMDAwMDA1ZWM4OTQgaW4gRmZ1bmNhbGwgKG5hcmdzPTIsIGFyZ3M9MHg3ZmZm ZmZmZmQ1MjApIGF0IGV2YWwuYzoyNzM3CiMxNSAweDAwMDAwMDAwMDA2MmY0NjggaW4gZXhlY19i eXRlX2NvZGUgKGJ5dGVzdHI9MTA2NTE3ODgsIHZlY3Rvcj0xMDY1MTgyMSwgbWF4ZGVwdGg9OTAs CiAgICBhcmdzX3RlbXBsYXRlPTEwMzAsIG5hcmdzPTEsIGFyZ3M9MHg3ZmZmZmZmZmRhNzgpIGF0 IGJ5dGVjb2RlLmM6OTE5CiMxNiAweDAwMDAwMDAwMDA1ZWQwYTEgaW4gZnVuY2FsbF9sYW1iZGEg KGZ1bj0xMDY1MTc0MSwgbmFyZ3M9MSwgYXJnX3ZlY3Rvcj0weDdmZmZmZmZmZGE3MCkKICAgIGF0 IGV2YWwuYzoyOTAxCiMxNyAweDAwMDAwMDAwMDA1ZWNhZTMgaW4gRmZ1bmNhbGwgKG5hcmdzPTIs IGFyZ3M9MHg3ZmZmZmZmZmRhNjgpIGF0IGV2YWwuYzoyNzgzCiMxOCAweDAwMDAwMDAwMDA2MmY0 NjggaW4gZXhlY19ieXRlX2NvZGUgKGJ5dGVzdHI9MTA2Mjg1OTYsIHZlY3Rvcj0xMDYyODYyOSwg bWF4ZGVwdGg9ODYsCiAgICBhcmdzX3RlbXBsYXRlPTIsIG5hcmdzPTAsIGFyZ3M9MHg3ZmZmZmZm ZmUwMTgpIGF0IGJ5dGVjb2RlLmM6OTE5CiMxOSAweDAwMDAwMDAwMDA1ZWQwYTEgaW4gZnVuY2Fs bF9sYW1iZGEgKGZ1bj0xMDYyODU0OSwgbmFyZ3M9MCwgYXJnX3ZlY3Rvcj0weDdmZmZmZmZmZTAx OCkKICAgIGF0IGV2YWwuYzoyOTAxCiMyMCAweDAwMDAwMDAwMDA1ZWNhZTMgaW4gRmZ1bmNhbGwg KG5hcmdzPTEsIGFyZ3M9MHg3ZmZmZmZmZmUwMTApIGF0IGV2YWwuYzoyNzgzCiMyMSAweDAwMDAw MDAwMDA2MmY0NjggaW4gZXhlY19ieXRlX2NvZGUgKGJ5dGVzdHI9MTA2MjUxOTYsIHZlY3Rvcj0x MDYyNTIyOSwgbWF4ZGVwdGg9NTAsCiAgICBhcmdzX3RlbXBsYXRlPTIsIG5hcmdzPTAsIGFyZ3M9 MHg3ZmZmZmZmZmU0YjApIGF0IGJ5dGVjb2RlLmM6OTE5CiMyMiAweDAwMDAwMDAwMDA1ZWQwYTEg aW4gZnVuY2FsbF9sYW1iZGEgKGZ1bj0xMDYyNTE0OSwgbmFyZ3M9MCwgYXJnX3ZlY3Rvcj0weDdm ZmZmZmZmZTRiMCkKICAgIGF0IGV2YWwuYzoyOTAxCiMyMyAweDAwMDAwMDAwMDA1ZWNlNTMgaW4g YXBwbHlfbGFtYmRhIChmdW49MTA2MjUxNDksIGFyZ3M9MCwgY291bnQ9MykgYXQgZXZhbC5jOjI4 NDIKIzI0IDB4MDAwMDAwMDAwMDVlYjVmMSBpbiBldmFsX3N1YiAoZm9ybT0xNzcxMTc5NSkgYXQg ZXZhbC5jOjIyNDIKIzI1IDB4MDAwMDAwMDAwMDVlYWI4OCBpbiBGZXZhbCAoZm9ybT0xNzcxMTc5 NSwgbGV4aWNhbD0wKSBhdCBldmFsLmM6MjAxMQojMjYgMHgwMDAwMDAwMDAwNTUxYmRhIGluIHRv cF9sZXZlbF8yICgpIGF0IGtleWJvYXJkLmM6MTE0NwojMjcgMHgwMDAwMDAwMDAwNWU5NGUxIGlu IGludGVybmFsX2NvbmRpdGlvbl9jYXNlIChiZnVuPTB4NTUxYmI3IDx0b3BfbGV2ZWxfMj4sIGhh bmRsZXJzPTE4NjcyLAogICAgaGZ1bj0weDU1MTY3NyA8Y21kX2Vycm9yPikgYXQgZXZhbC5jOjEz NjMKIzI4IDB4MDAwMDAwMDAwMDU1MWMxYiBpbiB0b3BfbGV2ZWxfMSAoaWdub3JlPTApIGF0IGtl eWJvYXJkLmM6MTE1NQojMjkgMHgwMDAwMDAwMDAwNWU4Yzc2IGluIGludGVybmFsX2NhdGNoICh0 YWc9NDQ0OTYsIGZ1bmM9MHg1NTFiZGMgPHRvcF9sZXZlbF8xPiwgYXJnPTApCiAgICBhdCBldmFs LmM6MTEyMwojMzAgMHgwMDAwMDAwMDAwNTUxYjBmIGluIGNvbW1hbmRfbG9vcCAoKSBhdCBrZXli b2FyZC5jOjExMTYKIzMxIDB4MDAwMDAwMDAwMDU1MTIzZiBpbiByZWN1cnNpdmVfZWRpdF8xICgp IGF0IGtleWJvYXJkLmM6NzIzCiMzMiAweDAwMDAwMDAwMDA1NTEzZDMgaW4gRnJlY3Vyc2l2ZV9l ZGl0ICgpIGF0IGtleWJvYXJkLmM6Nzk0CiMzMyAweDAwMDAwMDAwMDA1NGYyMGQgaW4gbWFpbiAo YXJnYz00LCBhcmd2PTB4N2ZmZmZmZmZlYTU4KSBhdCBlbWFjcy5jOjE2MjkKKGdkYikgYwpjCkNv bnRpbnVpbmcuCgpCcmVha3BvaW50IDEsIFhSZXNpemVXaW5kb3cgKGRweT0weGQyNTk0MCwgdz13 QGVudHJ5PTYyOTE0NzcsIHdpZHRoPXdpZHRoQGVudHJ5PTg3MSwKICAgIGhlaWdodD1oZWlnaHRA ZW50cnk9ODc3KSBhdCAuLi8uLi9zcmMvQ2hXaW5kb3cuYzozOAozOAlpbiAuLi8uLi9zcmMvQ2hX aW5kb3cuYwooZ2RiKSBidApidAojMCAgWFJlc2l6ZVdpbmRvdyAoZHB5PTB4ZDI1OTQwLCB3PXdA ZW50cnk9NjI5MTQ3Nywgd2lkdGg9d2lkdGhAZW50cnk9ODcxLCBoZWlnaHQ9aGVpZ2h0QGVudHJ5 PTg3NykKICAgIGF0IC4uLy4uL3NyYy9DaFdpbmRvdy5jOjM4CiMxICAweDAwMDA3ZmZmZjY3N2E3 NGEgaW4gd2luZG93X3gxMV9yZXNpemUgKGhlaWdodD04NzcsIHdpZHRoPTg3MSwgd2luZG93PTB4 ZDNkYmQwKQogICAgYXQgL3RtcC9idWlsZGQvZ3RrKzMuMC0zLjE2LjYvLi9nZGsveDExL2dka3dp bmRvdy14MTEuYzoxODA2CiMyICBnZGtfd2luZG93X3gxMV9tb3ZlX3Jlc2l6ZSAod2luZG93PTB4 ZDNkYmQwLCB3aXRoX21vdmU9PG9wdGltaXplZCBvdXQ+LCB4PTxvcHRpbWl6ZWQgb3V0PiwKICAg IHk9PG9wdGltaXplZCBvdXQ+LCB3aWR0aD08b3B0aW1pemVkIG91dD4sIGhlaWdodD08b3B0aW1p emVkIG91dD4pCiAgICBhdCAvdG1wL2J1aWxkZC9ndGsrMy4wLTMuMTYuNi8uL2dkay94MTEvZ2Rr d2luZG93LXgxMS5jOjE4OTAKIzMgIDB4MDAwMDdmZmZmNjc1NzM3MSBpbiBnZGtfd2luZG93X21v dmVfcmVzaXplX3RvcGxldmVsIChoZWlnaHQ9ODc3LCB3aWR0aD04NzEsIHk9MCwgeD0wLAogICAg d2l0aF9tb3ZlPTAsIHdpbmRvdz0weGQzZGJkMCkgYXQgL3RtcC9idWlsZGQvZ3RrKzMuMC0zLjE2 LjYvLi9nZGsvZ2Rrd2luZG93LmM6NTYxOQojNCAgZ2RrX3dpbmRvd19tb3ZlX3Jlc2l6ZV9pbnRl cm5hbCAod2luZG93PTB4ZDNkYmQwLCB3aXRoX21vdmU9MCwgeD0wLCB5PTAsIHdpZHRoPTg3MSwg aGVpZ2h0PTg3NykKICAgIGF0IC90bXAvYnVpbGRkL2d0ayszLjAtMy4xNi42Ly4vZ2RrL2dka3dp bmRvdy5jOjU2ODYKIzUgIDB4MDAwMDdmZmZmNmQzNWY1OSBpbiBndGtfd2luZG93X21vdmVfcmVz aXplICh3aW5kb3c9MHgxNThjMjMwKQogICAgYXQgL3RtcC9idWlsZGQvZ3RrKzMuMC0zLjE2LjYv Li9ndGsvZ3Rrd2luZG93LmM6OTM3MQojNiAgZ3RrX3dpbmRvd19jaGVja19yZXNpemUgKGNvbnRh aW5lcj0weDE1OGMyMzApCiAgICBhdCAvdG1wL2J1aWxkZC9ndGsrMy4wLTMuMTYuNi8uL2d0ay9n dGt3aW5kb3cuYzo4MDcxCiM3ICAweDAwMDA3ZmZmZjUzOTA1MDQgaW4gX2dfY2xvc3VyZV9pbnZv a2VfdmEgKGNsb3N1cmU9MHhkMDFiMDAsIHJldHVybl92YWx1ZT0weDAsCiAgICBpbnN0YW5jZT0w eDE1OGMyMzAsIGFyZ3M9MHg3ZmZmZmZmZmMwNDAsIG5fcGFyYW1zPTxvcHRpbWl6ZWQgb3V0Piwg cGFyYW1fdHlwZXM9MHgwKQogICAgYXQgL3RtcC9idWlsZGQvZ2xpYjIuMC0yLjQ0LjEvLi9nb2Jq ZWN0L2djbG9zdXJlLmM6ODMxCiM4ICAweDAwMDA3ZmZmZjUzYTlmYTcgaW4gZ19zaWduYWxfZW1p dF92YWxpc3QgKGluc3RhbmNlPTB4MTU4YzIzMCwgc2lnbmFsX2lkPTxvcHRpbWl6ZWQgb3V0PiwK ICAgIGRldGFpbD0wLCB2YXJfYXJncz12YXJfYXJnc0BlbnRyeT0weDdmZmZmZmZmYzA0MCkKICAg IGF0IC90bXAvYnVpbGRkL2dsaWIyLjAtMi40NC4xLy4vZ29iamVjdC9nc2lnbmFsLmM6MzIxNAoj OSAgMHgwMDAwN2ZmZmY1M2FhOGZmIGluIGdfc2lnbmFsX2VtaXQgKGluc3RhbmNlPTxvcHRpbWl6 ZWQgb3V0Piwgc2lnbmFsX2lkPTxvcHRpbWl6ZWQgb3V0PiwKICAgIGRldGFpbD08b3B0aW1pemVk IG91dD4pIGF0IC90bXAvYnVpbGRkL2dsaWIyLjAtMi40NC4xLy4vZ29iamVjdC9nc2lnbmFsLmM6 MzM2MQojMTAgMHgwMDAwN2ZmZmY2YjJmOTZjIGluIGd0a19jb250YWluZXJfaWRsZV9zaXplciAo Y2xvY2s9MHhkNDEyNDAsIGNvbnRhaW5lcj0weDE1OGMyMzApCiAgICBhdCAvdG1wL2J1aWxkZC9n dGsrMy4wLTMuMTYuNi8uL2d0ay9ndGtjb250YWluZXIuYzoxODczCiMxMSAweDAwMDA3ZmZmZjUz OTA1MDQgaW4gX2dfY2xvc3VyZV9pbnZva2VfdmEgKGNsb3N1cmU9MHgxYmQ1YjUwLCByZXR1cm5f dmFsdWU9MHgwLAogICAgaW5zdGFuY2U9MHhkNDEyNDAsIGFyZ3M9MHg3ZmZmZmZmZmMzODgsIG5f cGFyYW1zPTxvcHRpbWl6ZWQgb3V0PiwgcGFyYW1fdHlwZXM9MHgwKQogICAgYXQgL3RtcC9idWls ZGQvZ2xpYjIuMC0yLjQ0LjEvLi9nb2JqZWN0L2djbG9zdXJlLmM6ODMxCiMxMiAweDAwMDA3ZmZm ZjUzYTlmYTcgaW4gZ19zaWduYWxfZW1pdF92YWxpc3QgKGluc3RhbmNlPWluc3RhbmNlQGVudHJ5 PTB4ZDQxMjQwLAogICAgc2lnbmFsX2lkPXNpZ25hbF9pZEBlbnRyeT0xNDAsIGRldGFpbD1kZXRh aWxAZW50cnk9MCwgdmFyX2FyZ3M9dmFyX2FyZ3NAZW50cnk9MHg3ZmZmZmZmZmMzODgpCiAgICBh dCAvdG1wL2J1aWxkZC9nbGliMi4wLTIuNDQuMS8uL2dvYmplY3QvZ3NpZ25hbC5jOjMyMTQKIzEz IDB4MDAwMDdmZmZmNTNhYWU0YSBpbiBnX3NpZ25hbF9lbWl0X2J5X25hbWUgKGluc3RhbmNlPWlu c3RhbmNlQGVudHJ5PTB4ZDQxMjQwLAogICAgZGV0YWlsZWRfc2lnbmFsPWRldGFpbGVkX3NpZ25h bEBlbnRyeT0weDdmZmZmNjdiMzE5YSAibGF5b3V0IikKICAgIGF0IC90bXAvYnVpbGRkL2dsaWIy LjAtMi40NC4xLy4vZ29iamVjdC9nc2lnbmFsLmM6MzQwMQojMTQgMHgwMDAwN2ZmZmY2NzQ3NjI0 IGluIGdka19mcmFtZV9jbG9ja19wYWludF9pZGxlIChkYXRhPTB4ZDQxMjQwKQogICAgYXQgL3Rt cC9idWlsZGQvZ3RrKzMuMC0zLjE2LjYvLi9nZGsvZ2RrZnJhbWVjbG9ja2lkbGUuYzo0MDgKIzE1 IDB4MDAwMDdmZmZmNjczNmQ4OCBpbiBnZGtfdGhyZWFkc19kaXNwYXRjaCAoZGF0YT0weGVmY2Nj MCwKICAgIGRhdGFAZW50cnk9PGVycm9yIHJlYWRpbmcgdmFyaWFibGU6IHZhbHVlIGhhcyBiZWVu IG9wdGltaXplZCBvdXQ+KQogICAgYXQgL3RtcC9idWlsZGQvZ3RrKzMuMC0zLjE2LjYvLi9nZGsv Z2RrLmM6NzE5CiMxNiAweDAwMDA3ZmZmZjUwYmI1ZTMgaW4gZ190aW1lb3V0X2Rpc3BhdGNoIChz b3VyY2U9MHgxYmQ2YzAwLCBjYWxsYmFjaz08b3B0aW1pemVkIG91dD4sCiAgICB1c2VyX2RhdGE9 PG9wdGltaXplZCBvdXQ+KSBhdCAvdG1wL2J1aWxkZC9nbGliMi4wLTIuNDQuMS8uL2dsaWIvZ21h aW4uYzo0NTQ1CiMxNyAweDAwMDA3ZmZmZjUwYmFiNGQgaW4gZ19tYWluX2Rpc3BhdGNoIChjb250 ZXh0PTB4ZDFmMGMwKQogICAgYXQgL3RtcC9idWlsZGQvZ2xpYjIuMC0yLjQ0LjEvLi9nbGliL2dt YWluLmM6MzEyMgojMTggZ19tYWluX2NvbnRleHRfZGlzcGF0Y2ggKGNvbnRleHQ9Y29udGV4dEBl bnRyeT0weGQxZjBjMCkKICAgIGF0IC90bXAvYnVpbGRkL2dsaWIyLjAtMi40NC4xLy4vZ2xpYi9n bWFpbi5jOjM3MzcKIzE5IDB4MDAwMDdmZmZmNTBiYWYyMCBpbiBnX21haW5fY29udGV4dF9pdGVy YXRlIChjb250ZXh0PWNvbnRleHRAZW50cnk9MHhkMWYwYzAsCiAgICBibG9jaz1ibG9ja0BlbnRy eT0xLCBkaXNwYXRjaD1kaXNwYXRjaEBlbnRyeT0xLCBzZWxmPTxvcHRpbWl6ZWQgb3V0PikKICAg IGF0IC90bXAvYnVpbGRkL2dsaWIyLjAtMi40NC4xLy4vZ2xpYi9nbWFpbi5jOjM4MDgKIzIwIDB4 MDAwMDdmZmZmNTBiYWZjYyBpbiBnX21haW5fY29udGV4dF9pdGVyYXRpb24gKGNvbnRleHQ9MHhk MWYwYzAsIGNvbnRleHRAZW50cnk9MHgwLAogICAgbWF5X2Jsb2NrPW1heV9ibG9ja0BlbnRyeT0x KSBhdCAvdG1wL2J1aWxkZC9nbGliMi4wLTIuNDQuMS8uL2dsaWIvZ21haW4uYzozODY5CiMyMSAw eDAwMDA3ZmZmZjZiZTFmZjUgaW4gZ3RrX21haW5faXRlcmF0aW9uICgpIGF0IC90bXAvYnVpbGRk L2d0ayszLjAtMy4xNi42Ly4vZ3RrL2d0a21haW4uYzoxMzIwCiMyMiAweDAwMDAwMDAwMDA1MWI0 ZjIgaW4gWFRyZWFkX3NvY2tldCAodGVybWluYWw9MHgxMWZlNmEwLCBob2xkX3F1aXQ9MHg3ZmZm ZmZmZmM2YTApCiAgICBhdCB4dGVybS5jOjg2NDQKIzIzIDB4MDAwMDAwMDAwMDU1ZDczMyBpbiBn b2JibGVfaW5wdXQgKCkgYXQga2V5Ym9hcmQuYzo2OTI5CiMyNCAweDAwMDAwMDAwMDA1NWRiMWQg aW4gaGFuZGxlX2FzeW5jX2lucHV0ICgpIGF0IGtleWJvYXJkLmM6NzE4MQojMjUgMHgwMDAwMDAw MDAwNTVkYjNjIGluIHByb2Nlc3NfcGVuZGluZ19zaWduYWxzICgpIGF0IGtleWJvYXJkLmM6NzE5 NQojMjYgMHgwMDAwMDAwMDAwNTVkYjdjIGluIHVuYmxvY2tfaW5wdXRfdG8gKGxldmVsPTApIGF0 IGtleWJvYXJkLmM6NzIxMAojMjcgMHgwMDAwMDAwMDAwNTVkYmIxIGluIHRvdGFsbHlfdW5ibG9j a19pbnB1dCAoKSBhdCBrZXlib2FyZC5jOjcyMzgKIzI4IDB4MDAwMDAwMDAwMDUxZTkyMCBpbiB4 X3dhaXRfZm9yX2V2ZW50IChmPTB4MTJhYzhkMCwgZXZlbnR0eXBlPTIyKSBhdCB4dGVybS5jOjEw MzE4CiMyOSAweDAwMDAwMDAwMDA1MWU1NjMgaW4geF9jaGVja19mdWxsc2NyZWVuIChmPTB4MTJh YzhkMCkgYXQgeHRlcm0uYzoxMDE5OQojMzAgMHgwMDAwMDAwMDAwNTFlMWRhIGluIFhUZnVsbHNj cmVlbl9ob29rIChmPTB4MTJhYzhkMCkgYXQgeHRlcm0uYzoxMDExMQojMzEgMHgwMDAwMDAwMDAw NDJkMmNkIGluIHhfc2V0X2Z1bGxzY3JlZW4gKGY9MHgxMmFjOGQwLCBuZXdfdmFsdWU9MjMzMjgs IG9sZF92YWx1ZT0wKQogICAgYXQgZnJhbWUuYzozNDgwCiMzMiAweDAwMDAwMDAwMDA0MmNiMGQg aW4geF9zZXRfZnJhbWVfcGFyYW1ldGVycyAoZj0weDEyYWM4ZDAsIGFsaXN0PTApIGF0IGZyYW1l LmM6MzM1OAojMzMgMHgwMDAwMDAwMDAwNDJhZjUyIGluIEZtb2RpZnlfZnJhbWVfcGFyYW1ldGVy cyAoZnJhbWU9MTk1ODExNDEsIGFsaXN0PTE3MTQ5MzMxKSBhdCBmcmFtZS5jOjI2NzUKIzM0IDB4 MDAwMDAwMDAwMDVlYzg5NCBpbiBGZnVuY2FsbCAobmFyZ3M9MywgYXJncz0weDdmZmZmZmZmY2I4 MCkgYXQgZXZhbC5jOjI3MzcKIzM1IDB4MDAwMDAwMDAwMDYyZjQ2OCBpbiBleGVjX2J5dGVfY29k ZSAoYnl0ZXN0cj0xMDYwMDk3MiwgdmVjdG9yPTEwNjAxMDA1LCBtYXhkZXB0aD0zMCwKLS0tVHlw ZSA8cmV0dXJuPiB0byBjb250aW51ZSwgb3IgcSA8cmV0dXJuPiB0byBxdWl0LS0tCgogICAgYXJn c190ZW1wbGF0ZT0zMDg2LCBuYXJncz0zLCBhcmdzPTB4N2ZmZmZmZmZjZmY4KSBhdCBieXRlY29k ZS5jOjkxOQojMzYgMHgwMDAwMDAwMDAwNWVkMGExIGluIGZ1bmNhbGxfbGFtYmRhIChmdW49MTA2 MDA5MjUsIG5hcmdzPTMsIGFyZ192ZWN0b3I9MHg3ZmZmZmZmZmNmZTApCiAgICBhdCBldmFsLmM6 MjkwMQojMzcgMHgwMDAwMDAwMDAwNWVjZTUzIGluIGFwcGx5X2xhbWJkYSAoZnVuPTEwNjAwOTI1 LCBhcmdzPTE3MTUwNjkxLCBjb3VudD0xMikgYXQgZXZhbC5jOjI4NDIKIzM4IDB4MDAwMDAwMDAw MDVlYjVmMSBpbiBldmFsX3N1YiAoZm9ybT0xNzE1MDc1NSkgYXQgZXZhbC5jOjIyNDIKIzM5IDB4 MDAwMDAwMDAwMDVlNzc1MSBpbiBGcHJvZ24gKGJvZHk9MTcxNDk5NTUpIGF0IGV2YWwuYzo0NjAK IzQwIDB4MDAwMDAwMDAwMDVlYjA5ZiBpbiBldmFsX3N1YiAoZm9ybT0xNzE1MTA5MSkgYXQgZXZh bC5jOjIxNDcKIzQxIDB4MDAwMDAwMDAwMDVlYWI4OCBpbiBGZXZhbCAoZm9ybT0xNzE1MTA5MSwg bGV4aWNhbD0wKSBhdCBldmFsLmM6MjAxMQojNDIgMHgwMDAwMDAwMDAwNWVjODk0IGluIEZmdW5j YWxsIChuYXJncz0yLCBhcmdzPTB4N2ZmZmZmZmZkNTIwKSBhdCBldmFsLmM6MjczNwojNDMgMHgw MDAwMDAwMDAwNjJmNDY4IGluIGV4ZWNfYnl0ZV9jb2RlIChieXRlc3RyPTEwNjUxNzg4LCB2ZWN0 b3I9MTA2NTE4MjEsIG1heGRlcHRoPTkwLAogICAgYXJnc190ZW1wbGF0ZT0xMDMwLCBuYXJncz0x LCBhcmdzPTB4N2ZmZmZmZmZkYTc4KSBhdCBieXRlY29kZS5jOjkxOQojNDQgMHgwMDAwMDAwMDAw NWVkMGExIGluIGZ1bmNhbGxfbGFtYmRhIChmdW49MTA2NTE3NDEsIG5hcmdzPTEsIGFyZ192ZWN0 b3I9MHg3ZmZmZmZmZmRhNzApCiAgICBhdCBldmFsLmM6MjkwMQojNDUgMHgwMDAwMDAwMDAwNWVj YWUzIGluIEZmdW5jYWxsIChuYXJncz0yLCBhcmdzPTB4N2ZmZmZmZmZkYTY4KSBhdCBldmFsLmM6 Mjc4MwojNDYgMHgwMDAwMDAwMDAwNjJmNDY4IGluIGV4ZWNfYnl0ZV9jb2RlIChieXRlc3RyPTEw NjI4NTk2LCB2ZWN0b3I9MTA2Mjg2MjksIG1heGRlcHRoPTg2LAogICAgYXJnc190ZW1wbGF0ZT0y LCBuYXJncz0wLCBhcmdzPTB4N2ZmZmZmZmZlMDE4KSBhdCBieXRlY29kZS5jOjkxOQojNDcgMHgw MDAwMDAwMDAwNWVkMGExIGluIGZ1bmNhbGxfbGFtYmRhIChmdW49MTA2Mjg1NDksIG5hcmdzPTAs IGFyZ192ZWN0b3I9MHg3ZmZmZmZmZmUwMTgpCiAgICBhdCBldmFsLmM6MjkwMQojNDggMHgwMDAw MDAwMDAwNWVjYWUzIGluIEZmdW5jYWxsIChuYXJncz0xLCBhcmdzPTB4N2ZmZmZmZmZlMDEwKSBh dCBldmFsLmM6Mjc4MwojNDkgMHgwMDAwMDAwMDAwNjJmNDY4IGluIGV4ZWNfYnl0ZV9jb2RlIChi eXRlc3RyPTEwNjI1MTk2LCB2ZWN0b3I9MTA2MjUyMjksIG1heGRlcHRoPTUwLAogICAgYXJnc190 ZW1wbGF0ZT0yLCBuYXJncz0wLCBhcmdzPTB4N2ZmZmZmZmZlNGIwKSBhdCBieXRlY29kZS5jOjkx OQojNTAgMHgwMDAwMDAwMDAwNWVkMGExIGluIGZ1bmNhbGxfbGFtYmRhIChmdW49MTA2MjUxNDks IG5hcmdzPTAsIGFyZ192ZWN0b3I9MHg3ZmZmZmZmZmU0YjApCiAgICBhdCBldmFsLmM6MjkwMQoj NTEgMHgwMDAwMDAwMDAwNWVjZTUzIGluIGFwcGx5X2xhbWJkYSAoZnVuPTEwNjI1MTQ5LCBhcmdz PTAsIGNvdW50PTMpIGF0IGV2YWwuYzoyODQyCiM1MiAweDAwMDAwMDAwMDA1ZWI1ZjEgaW4gZXZh bF9zdWIgKGZvcm09MTc3MTE3OTUpIGF0IGV2YWwuYzoyMjQyCiM1MyAweDAwMDAwMDAwMDA1ZWFi ODggaW4gRmV2YWwgKGZvcm09MTc3MTE3OTUsIGxleGljYWw9MCkgYXQgZXZhbC5jOjIwMTEKIzU0 IDB4MDAwMDAwMDAwMDU1MWJkYSBpbiB0b3BfbGV2ZWxfMiAoKSBhdCBrZXlib2FyZC5jOjExNDcK IzU1IDB4MDAwMDAwMDAwMDVlOTRlMSBpbiBpbnRlcm5hbF9jb25kaXRpb25fY2FzZSAoYmZ1bj0w eDU1MWJiNyA8dG9wX2xldmVsXzI+LCBoYW5kbGVycz0xODY3MiwKICAgIGhmdW49MHg1NTE2Nzcg PGNtZF9lcnJvcj4pIGF0IGV2YWwuYzoxMzYzCiM1NiAweDAwMDAwMDAwMDA1NTFjMWIgaW4gdG9w X2xldmVsXzEgKGlnbm9yZT0wKSBhdCBrZXlib2FyZC5jOjExNTUKIzU3IDB4MDAwMDAwMDAwMDVl OGM3NiBpbiBpbnRlcm5hbF9jYXRjaCAodGFnPTQ0NDk2LCBmdW5jPTB4NTUxYmRjIDx0b3BfbGV2 ZWxfMT4sIGFyZz0wKQogICAgYXQgZXZhbC5jOjExMjMKIzU4IDB4MDAwMDAwMDAwMDU1MWIwZiBp biBjb21tYW5kX2xvb3AgKCkgYXQga2V5Ym9hcmQuYzoxMTE2CiM1OSAweDAwMDAwMDAwMDA1NTEy M2YgaW4gcmVjdXJzaXZlX2VkaXRfMSAoKSBhdCBrZXlib2FyZC5jOjcyMwojNjAgMHgwMDAwMDAw MDAwNTUxM2QzIGluIEZyZWN1cnNpdmVfZWRpdCAoKSBhdCBrZXlib2FyZC5jOjc5NAojNjEgMHgw MDAwMDAwMDAwNTRmMjBkIGluIG1haW4gKGFyZ2M9NCwgYXJndj0weDdmZmZmZmZmZWE1OCkgYXQg ZW1hY3MuYzoxNjI5CihnZGIpIGMKYwpDb250aW51aW5nLgoKQnJlYWtwb2ludCAxLCBYUmVzaXpl V2luZG93IChkcHk9MHhkMjU5NDAsIHc9d0BlbnRyeT02MjkxNDc3LCB3aWR0aD13aWR0aEBlbnRy eT04NzEsCiAgICBoZWlnaHQ9aGVpZ2h0QGVudHJ5PTkyMikgYXQgLi4vLi4vc3JjL0NoV2luZG93 LmM6MzgKMzgJaW4gLi4vLi4vc3JjL0NoV2luZG93LmMKKGdkYikgYnQKYnQKIzAgIFhSZXNpemVX aW5kb3cgKGRweT0weGQyNTk0MCwgdz13QGVudHJ5PTYyOTE0NzcsIHdpZHRoPXdpZHRoQGVudHJ5 PTg3MSwgaGVpZ2h0PWhlaWdodEBlbnRyeT05MjIpCiAgICBhdCAuLi8uLi9zcmMvQ2hXaW5kb3cu YzozOAojMSAgMHgwMDAwN2ZmZmY2NzdhNzRhIGluIHdpbmRvd194MTFfcmVzaXplIChoZWlnaHQ9 OTIyLCB3aWR0aD04NzEsIHdpbmRvdz0weGQzZGJkMCkKICAgIGF0IC90bXAvYnVpbGRkL2d0aysz LjAtMy4xNi42Ly4vZ2RrL3gxMS9nZGt3aW5kb3cteDExLmM6MTgwNgojMiAgZ2RrX3dpbmRvd194 MTFfbW92ZV9yZXNpemUgKHdpbmRvdz0weGQzZGJkMCwgd2l0aF9tb3ZlPTxvcHRpbWl6ZWQgb3V0 PiwgeD08b3B0aW1pemVkIG91dD4sCiAgICB5PTxvcHRpbWl6ZWQgb3V0Piwgd2lkdGg9PG9wdGlt aXplZCBvdXQ+LCBoZWlnaHQ9PG9wdGltaXplZCBvdXQ+KQogICAgYXQgL3RtcC9idWlsZGQvZ3Rr KzMuMC0zLjE2LjYvLi9nZGsveDExL2dka3dpbmRvdy14MTEuYzoxODkwCiMzICAweDAwMDA3ZmZm ZjY3NTczNzEgaW4gZ2RrX3dpbmRvd19tb3ZlX3Jlc2l6ZV90b3BsZXZlbCAoaGVpZ2h0PTkyMiwg d2lkdGg9ODcxLCB5PTAsIHg9MCwKICAgIHdpdGhfbW92ZT0wLCB3aW5kb3c9MHhkM2RiZDApIGF0 IC90bXAvYnVpbGRkL2d0ayszLjAtMy4xNi42Ly4vZ2RrL2dka3dpbmRvdy5jOjU2MTkKIzQgIGdk a193aW5kb3dfbW92ZV9yZXNpemVfaW50ZXJuYWwgKHdpbmRvdz0weGQzZGJkMCwgd2l0aF9tb3Zl PTAsIHg9MCwgeT0wLCB3aWR0aD04NzEsIGhlaWdodD05MjIpCiAgICBhdCAvdG1wL2J1aWxkZC9n dGsrMy4wLTMuMTYuNi8uL2dkay9nZGt3aW5kb3cuYzo1Njg2CiM1ICAweDAwMDA3ZmZmZjZkMzVm NTkgaW4gZ3RrX3dpbmRvd19tb3ZlX3Jlc2l6ZSAod2luZG93PTB4MTU4YzIzMCkKICAgIGF0IC90 bXAvYnVpbGRkL2d0ayszLjAtMy4xNi42Ly4vZ3RrL2d0a3dpbmRvdy5jOjkzNzEKIzYgIGd0a193 aW5kb3dfY2hlY2tfcmVzaXplIChjb250YWluZXI9MHgxNThjMjMwKQogICAgYXQgL3RtcC9idWls ZGQvZ3RrKzMuMC0zLjE2LjYvLi9ndGsvZ3Rrd2luZG93LmM6ODA3MQojNyAgMHgwMDAwN2ZmZmY1 MzkwNTA0IGluIF9nX2Nsb3N1cmVfaW52b2tlX3ZhIChjbG9zdXJlPTB4ZDAxYjAwLCByZXR1cm5f dmFsdWU9MHgwLAogICAgaW5zdGFuY2U9MHgxNThjMjMwLCBhcmdzPTB4N2ZmZmZmZmY5ODQwLCBu X3BhcmFtcz08b3B0aW1pemVkIG91dD4sIHBhcmFtX3R5cGVzPTB4MCkKICAgIGF0IC90bXAvYnVp bGRkL2dsaWIyLjAtMi40NC4xLy4vZ29iamVjdC9nY2xvc3VyZS5jOjgzMQojOCAgMHgwMDAwN2Zm ZmY1M2E5ZmE3IGluIGdfc2lnbmFsX2VtaXRfdmFsaXN0IChpbnN0YW5jZT0weDE1OGMyMzAsIHNp Z25hbF9pZD08b3B0aW1pemVkIG91dD4sCiAgICBkZXRhaWw9MCwgdmFyX2FyZ3M9dmFyX2FyZ3NA ZW50cnk9MHg3ZmZmZmZmZjk4NDApCiAgICBhdCAvdG1wL2J1aWxkZC9nbGliMi4wLTIuNDQuMS8u L2dvYmplY3QvZ3NpZ25hbC5jOjMyMTQKIzkgIDB4MDAwMDdmZmZmNTNhYThmZiBpbiBnX3NpZ25h bF9lbWl0IChpbnN0YW5jZT08b3B0aW1pemVkIG91dD4sIHNpZ25hbF9pZD08b3B0aW1pemVkIG91 dD4sCiAgICBkZXRhaWw9PG9wdGltaXplZCBvdXQ+KSBhdCAvdG1wL2J1aWxkZC9nbGliMi4wLTIu NDQuMS8uL2dvYmplY3QvZ3NpZ25hbC5jOjMzNjEKIzEwIDB4MDAwMDdmZmZmNmIyZjk2YyBpbiBn dGtfY29udGFpbmVyX2lkbGVfc2l6ZXIgKGNsb2NrPTB4ZDQxMjQwLCBjb250YWluZXI9MHgxNThj MjMwKQogICAgYXQgL3RtcC9idWlsZGQvZ3RrKzMuMC0zLjE2LjYvLi9ndGsvZ3RrY29udGFpbmVy LmM6MTg3MwojMTEgMHgwMDAwN2ZmZmY1MzkwNTA0IGluIF9nX2Nsb3N1cmVfaW52b2tlX3ZhIChj bG9zdXJlPTB4MWI1MGRiMCwgcmV0dXJuX3ZhbHVlPTB4MCwKICAgIGluc3RhbmNlPTB4ZDQxMjQw LCBhcmdzPTB4N2ZmZmZmZmY5Yjg4LCBuX3BhcmFtcz08b3B0aW1pemVkIG91dD4sIHBhcmFtX3R5 cGVzPTB4MCkKICAgIGF0IC90bXAvYnVpbGRkL2dsaWIyLjAtMi40NC4xLy4vZ29iamVjdC9nY2xv c3VyZS5jOjgzMQojMTIgMHgwMDAwN2ZmZmY1M2E5ZmE3IGluIGdfc2lnbmFsX2VtaXRfdmFsaXN0 IChpbnN0YW5jZT1pbnN0YW5jZUBlbnRyeT0weGQ0MTI0MCwKICAgIHNpZ25hbF9pZD1zaWduYWxf aWRAZW50cnk9MTQwLCBkZXRhaWw9ZGV0YWlsQGVudHJ5PTAsIHZhcl9hcmdzPXZhcl9hcmdzQGVu dHJ5PTB4N2ZmZmZmZmY5Yjg4KQogICAgYXQgL3RtcC9idWlsZGQvZ2xpYjIuMC0yLjQ0LjEvLi9n b2JqZWN0L2dzaWduYWwuYzozMjE0CiMxMyAweDAwMDA3ZmZmZjUzYWFlNGEgaW4gZ19zaWduYWxf ZW1pdF9ieV9uYW1lIChpbnN0YW5jZT1pbnN0YW5jZUBlbnRyeT0weGQ0MTI0MCwKICAgIGRldGFp bGVkX3NpZ25hbD1kZXRhaWxlZF9zaWduYWxAZW50cnk9MHg3ZmZmZjY3YjMxOWEgImxheW91dCIp CiAgICBhdCAvdG1wL2J1aWxkZC9nbGliMi4wLTIuNDQuMS8uL2dvYmplY3QvZ3NpZ25hbC5jOjM0 MDEKIzE0IDB4MDAwMDdmZmZmNjc0NzYyNCBpbiBnZGtfZnJhbWVfY2xvY2tfcGFpbnRfaWRsZSAo ZGF0YT0weGQ0MTI0MCkKICAgIGF0IC90bXAvYnVpbGRkL2d0ayszLjAtMy4xNi42Ly4vZ2RrL2dk a2ZyYW1lY2xvY2tpZGxlLmM6NDA4CiMxNSAweDAwMDA3ZmZmZjY3MzZkODggaW4gZ2RrX3RocmVh ZHNfZGlzcGF0Y2ggKGRhdGE9MHhmNTU1MDAsCiAgICBkYXRhQGVudHJ5PTxlcnJvciByZWFkaW5n IHZhcmlhYmxlOiB2YWx1ZSBoYXMgYmVlbiBvcHRpbWl6ZWQgb3V0PikKICAgIGF0IC90bXAvYnVp bGRkL2d0ayszLjAtMy4xNi42Ly4vZ2RrL2dkay5jOjcxOQojMTYgMHgwMDAwN2ZmZmY1MGJiNWUz IGluIGdfdGltZW91dF9kaXNwYXRjaCAoc291cmNlPTB4MWI1MGRlMCwgY2FsbGJhY2s9PG9wdGlt aXplZCBvdXQ+LAogICAgdXNlcl9kYXRhPTxvcHRpbWl6ZWQgb3V0PikgYXQgL3RtcC9idWlsZGQv Z2xpYjIuMC0yLjQ0LjEvLi9nbGliL2dtYWluLmM6NDU0NQojMTcgMHgwMDAwN2ZmZmY1MGJhYjRk IGluIGdfbWFpbl9kaXNwYXRjaCAoY29udGV4dD0weGQxZjBjMCkKICAgIGF0IC90bXAvYnVpbGRk L2dsaWIyLjAtMi40NC4xLy4vZ2xpYi9nbWFpbi5jOjMxMjIKIzE4IGdfbWFpbl9jb250ZXh0X2Rp c3BhdGNoIChjb250ZXh0PWNvbnRleHRAZW50cnk9MHhkMWYwYzApCiAgICBhdCAvdG1wL2J1aWxk ZC9nbGliMi4wLTIuNDQuMS8uL2dsaWIvZ21haW4uYzozNzM3CiMxOSAweDAwMDA3ZmZmZjUwYmFm MjAgaW4gZ19tYWluX2NvbnRleHRfaXRlcmF0ZSAoY29udGV4dD1jb250ZXh0QGVudHJ5PTB4ZDFm MGMwLAogICAgYmxvY2s9YmxvY2tAZW50cnk9MSwgZGlzcGF0Y2g9ZGlzcGF0Y2hAZW50cnk9MSwg c2VsZj08b3B0aW1pemVkIG91dD4pCiAgICBhdCAvdG1wL2J1aWxkZC9nbGliMi4wLTIuNDQuMS8u L2dsaWIvZ21haW4uYzozODA4CiMyMCAweDAwMDA3ZmZmZjUwYmFmY2MgaW4gZ19tYWluX2NvbnRl eHRfaXRlcmF0aW9uIChjb250ZXh0PTB4ZDFmMGMwLCBjb250ZXh0QGVudHJ5PTB4MCwKICAgIG1h eV9ibG9jaz1tYXlfYmxvY2tAZW50cnk9MSkgYXQgL3RtcC9idWlsZGQvZ2xpYjIuMC0yLjQ0LjEv Li9nbGliL2dtYWluLmM6Mzg2OQojMjEgMHgwMDAwN2ZmZmY2YmUxZmY1IGluIGd0a19tYWluX2l0 ZXJhdGlvbiAoKSBhdCAvdG1wL2J1aWxkZC9ndGsrMy4wLTMuMTYuNi8uL2d0ay9ndGttYWluLmM6 MTMyMAojMjIgMHgwMDAwMDAwMDAwNTFiNGYyIGluIFhUcmVhZF9zb2NrZXQgKHRlcm1pbmFsPTB4 MTFmZTZhMCwgaG9sZF9xdWl0PTB4N2ZmZmZmZmY5ZWEwKQogICAgYXQgeHRlcm0uYzo4NjQ0CiMy MyAweDAwMDAwMDAwMDA1NWQ3MzMgaW4gZ29iYmxlX2lucHV0ICgpIGF0IGtleWJvYXJkLmM6Njky OQojMjQgMHgwMDAwMDAwMDAwNTVkYjFkIGluIGhhbmRsZV9hc3luY19pbnB1dCAoKSBhdCBrZXli b2FyZC5jOjcxODEKIzI1IDB4MDAwMDAwMDAwMDU1ZGIzYyBpbiBwcm9jZXNzX3BlbmRpbmdfc2ln bmFscyAoKSBhdCBrZXlib2FyZC5jOjcxOTUKIzI2IDB4MDAwMDAwMDAwMDU1ZGI3YyBpbiB1bmJs b2NrX2lucHV0X3RvIChsZXZlbD0wKSBhdCBrZXlib2FyZC5jOjcyMTAKIzI3IDB4MDAwMDAwMDAw MDU1ZGJiMSBpbiB0b3RhbGx5X3VuYmxvY2tfaW5wdXQgKCkgYXQga2V5Ym9hcmQuYzo3MjM4CiMy OCAweDAwMDAwMDAwMDA1MWU5MjAgaW4geF93YWl0X2Zvcl9ldmVudCAoZj0weDEyYWM4ZDAsIGV2 ZW50dHlwZT0yMikgYXQgeHRlcm0uYzoxMDMxOAojMjkgMHgwMDAwMDAwMDAwNTM4YjlhIGluIHhn X2ZyYW1lX3NldF9jaGFyX3NpemUgKGY9MHgxMmFjOGQwLCB3aWR0aD04NDAsIGhlaWdodD04NTgp CiAgICBhdCBndGt1dGlsLmM6MTAxNwojMzAgMHgwMDAwMDAwMDAwNTFmMDcwIGluIHhfc2V0X3dp bmRvd19zaXplIChmPTB4MTJhYzhkMCwgY2hhbmdlX2dyYXZpdHk9ZmFsc2UsIHdpZHRoPTg0MCwK ICAgIGhlaWdodD04NTgsIHBpeGVsd2lzZT10cnVlKSBhdCB4dGVybS5jOjEwNDg4CiMzMSAweDAw MDAwMDAwMDA0MjYwYjAgaW4gYWRqdXN0X2ZyYW1lX3NpemUgKGY9MHgxMmFjOGQwLCBuZXdfd2lk dGg9LTEsIG5ld19oZWlnaHQ9LTEsIGluaGliaXQ9MiwKICAgIHByZXRlbmQ9ZmFsc2UsIHBhcmFt ZXRlcj00NDE2MCkgYXQgZnJhbWUuYzo0OTAKIzMyIDB4MDAwMDAwMDAwMDU0MTU3OSBpbiB1cGRh dGVfZnJhbWVfdG9vbF9iYXIgKGY9MHgxMmFjOGQwKSBhdCBndGt1dGlsLmM6NTAwOQojMzMgMHgw MDAwMDAwMDAwNDU1NzEwIGluIHJlZGlzcGxheV90b29sX2JhciAoZj0weDEyYWM4ZDApIGF0IHhk aXNwLmM6MTIyODEKLS0tVHlwZSA8cmV0dXJuPiB0byBjb250aW51ZSwgb3IgcSA8cmV0dXJuPiB0 byBxdWl0LS0tCgojMzQgMHgwMDAwMDAwMDAwNDYyNDUxIGluIHJlZGlzcGxheV93aW5kb3cgKHdp bmRvdz0xOTU4NTI1MywganVzdF90aGlzX29uZV9wPWZhbHNlKSBhdCB4ZGlzcC5jOjE2Nzk1CiMz NSAweDAwMDAwMDAwMDA0NThmM2YgaW4gcmVkaXNwbGF5X3dpbmRvd18wICh3aW5kb3c9MTk1ODUy NTMpIGF0IHhkaXNwLmM6MTQxOTcKIzM2IDB4MDAwMDAwMDAwMDVlOTY1YiBpbiBpbnRlcm5hbF9j b25kaXRpb25fY2FzZV8xIChiZnVuPTB4NDU4ZWZkIDxyZWRpc3BsYXlfd2luZG93XzA+LAogICAg YXJnPTE5NTg1MjUzLCBoYW5kbGVycz0xMzMzMzA3NSwgaGZ1bj0weDQ1OGVjNSA8cmVkaXNwbGF5 X3dpbmRvd19lcnJvcj4pIGF0IGV2YWwuYzoxMzg3CiMzNyAweDAwMDAwMDAwMDA0NThlYTIgaW4g cmVkaXNwbGF5X3dpbmRvd3MgKHdpbmRvdz0xOTU4NTI1MykgYXQgeGRpc3AuYzoxNDE3NwojMzgg MHgwMDAwMDAwMDAwNDU4MDZhIGluIHJlZGlzcGxheV9pbnRlcm5hbCAoKSBhdCB4ZGlzcC5jOjEz NzY5CiMzOSAweDAwMDAwMDAwMDA0NTYzNjUgaW4gcmVkaXNwbGF5ICgpIGF0IHhkaXNwLmM6MTMw MzIKIzQwIDB4MDAwMDAwMDAwMDU1NGMwZSBpbiByZWFkX2NoYXIgKGNvbW1hbmRmbGFnPTEsIG1h cD0xNzIyNDcyMywgcHJldl9ldmVudD0wLAogICAgdXNlZF9tb3VzZV9tZW51PTB4N2ZmZmZmZmZl M2ZmLCBlbmRfdGltZT0weDApIGF0IGtleWJvYXJkLmM6MjU0NgojNDEgMHgwMDAwMDAwMDAwNTYx ZTYyIGluIHJlYWRfa2V5X3NlcXVlbmNlIChrZXlidWY9MHg3ZmZmZmZmZmU1ZDAsIGJ1ZnNpemU9 MzAsIHByb21wdD0wLAogICAgZG9udF9kb3duY2FzZV9sYXN0PWZhbHNlLCBjYW5fcmV0dXJuX3N3 aXRjaF9mcmFtZT10cnVlLCBmaXhfY3VycmVudF9idWZmZXI9dHJ1ZSwKICAgIHByZXZlbnRfcmVk aXNwbGF5PWZhbHNlKSBhdCBrZXlib2FyZC5jOjkxOTEKIzQyIDB4MDAwMDAwMDAwMDU1MjJiOCBp biBjb21tYW5kX2xvb3BfMSAoKSBhdCBrZXlib2FyZC5jOjE0MDYKIzQzIDB4MDAwMDAwMDAwMDVl OTRlMSBpbiBpbnRlcm5hbF9jb25kaXRpb25fY2FzZSAoYmZ1bj0weDU1MWU4ZCA8Y29tbWFuZF9s b29wXzE+LCBoYW5kbGVycz0xODY3MiwKICAgIGhmdW49MHg1NTE2NzcgPGNtZF9lcnJvcj4pIGF0 IGV2YWwuYzoxMzYzCiM0NCAweDAwMDAwMDAwMDA1NTFiOTQgaW4gY29tbWFuZF9sb29wXzIgKGln bm9yZT0wKSBhdCBrZXlib2FyZC5jOjExMzgKIzQ1IDB4MDAwMDAwMDAwMDVlOGM3NiBpbiBpbnRl cm5hbF9jYXRjaCAodGFnPTQ0NDk2LCBmdW5jPTB4NTUxYjZiIDxjb21tYW5kX2xvb3BfMj4sIGFy Zz0wKQogICAgYXQgZXZhbC5jOjExMjMKIzQ2IDB4MDAwMDAwMDAwMDU1MWIzNiBpbiBjb21tYW5k X2xvb3AgKCkgYXQga2V5Ym9hcmQuYzoxMTE3CiM0NyAweDAwMDAwMDAwMDA1NTEyM2YgaW4gcmVj dXJzaXZlX2VkaXRfMSAoKSBhdCBrZXlib2FyZC5jOjcyMwojNDggMHgwMDAwMDAwMDAwNTUxM2Qz IGluIEZyZWN1cnNpdmVfZWRpdCAoKSBhdCBrZXlib2FyZC5jOjc5NAojNDkgMHgwMDAwMDAwMDAw NTRmMjBkIGluIG1haW4gKGFyZ2M9NCwgYXJndj0weDdmZmZmZmZmZWE1OCkgYXQgZW1hY3MuYzox NjI5CihnZGIpIGMKYwpDb250aW51aW5nLgo= --e89a8ffbabc5eccc7b051de42800--