From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Duncan Greatwood Newsgroups: gmane.emacs.bugs Subject: bug#45518: Ctrl-G Fails to Interrupt Hung Tramp Remote-Compile in Emacs 27.1 Date: Thu, 28 Jan 2021 21:15:38 -0800 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000f4f3e505ba031840" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8067"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 45518@debbugs.gnu.org To: Michael Albinus Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jan 29 06:16:40 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l5M99-0001uk-FA for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 29 Jan 2021 06:16:39 +0100 Original-Received: from localhost ([::1]:41254 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l5M98-0002l3-Dc for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 29 Jan 2021 00:16:38 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37648) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l5M8Y-0002kI-C1 for bug-gnu-emacs@gnu.org; Fri, 29 Jan 2021 00:16:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:39293) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l5M8Y-0007x8-4H for bug-gnu-emacs@gnu.org; Fri, 29 Jan 2021 00:16:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1l5M8X-0001Y0-VG for bug-gnu-emacs@gnu.org; Fri, 29 Jan 2021 00:16:01 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Duncan Greatwood Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 29 Jan 2021 05:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45518 X-GNU-PR-Package: emacs Original-Received: via spool by 45518-submit@debbugs.gnu.org id=B45518.16118973595935 (code B ref 45518); Fri, 29 Jan 2021 05:16:01 +0000 Original-Received: (at 45518) by debbugs.gnu.org; 29 Jan 2021 05:15:59 +0000 Original-Received: from localhost ([127.0.0.1]:50839 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5M8U-0001Xf-S3 for submit@debbugs.gnu.org; Fri, 29 Jan 2021 00:15:59 -0500 Original-Received: from mail-il1-f177.google.com ([209.85.166.177]:33786) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5M8R-0001XQ-GF for 45518@debbugs.gnu.org; Fri, 29 Jan 2021 00:15:57 -0500 Original-Received: by mail-il1-f177.google.com with SMTP id e1so7500163ilu.0 for <45518@debbugs.gnu.org>; Thu, 28 Jan 2021 21:15:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=sqir433GMj8iDFiJkkAlQJgUNi+K+B700i+zDhCikD4=; b=lC/iHg7eQ+9pIuVKLlct6qh65mIDuBtIjrsuxh7446o0RYzgY/eHXYpR7ztYdr1xvA bt2e7zSdM4CuGkRxIBBJsGXNrvwVWYjbZviBzUX5+7YzasVrLDeOeJz5oHrvbLvlR58X RwZetQrkOvrzL5S67Ymuo4MIBzmay+xQp3Jowhx+XpelDp8FW86X9DP6BYgh6WJ3Unnc w86YY7aZkUAUpylU9SXRz2nB7HVkvNUfjopqoZB1U4dKyVX5szkPvupvI0hmAwXq1oNG HkD4q9+kxEan5ZoDIFPn0++jgDEAg0aaBPr25Nh3cckY97pvrjA8NLliGd2+DWHaZygn nB3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=sqir433GMj8iDFiJkkAlQJgUNi+K+B700i+zDhCikD4=; b=rfHuDTpCJ0n+z8w05ITDVX26ASxYbyJrfEz8n7l5hz/DZ8wocX6/42NqVTYBUeR7Hv 6mG6L31d6LY/GQpaqY5Kha+yEY6TyyXQBaUC6f58IXmcjOGd7CSdjrXjAIoiJmQJipAF JDoU+kvrm6F0BjRpBI6rBLtrK/+CbX0EaKFjbvobQTqflyDX9Isz7O97O8kte/zbcOpR aYOWkwsf6eEpim0FBKSOzGvqQdeuVoiiHdUs1yMxhdeeCLLKKWOfxZdQjwakEmHKJuN5 7LWArlE/chzoGvmO/LJY+G1ZwrTUimg1VaHkRpFW025aVaq9Yp+PoztJviDKa/YkqLVL DgKQ== X-Gm-Message-State: AOAM533srcRaeWa/Ss+4X4pA8shmO0fsTQVDdyf//SFalaEcN2hnJonr ZeZKtzdR+CX7GprsLg6YIvwhmBq1o9fzHrSP3Tc= X-Google-Smtp-Source: ABdhPJyoBFD+zKqFbxzmHaFQu8kVcJC5/ABJbmXyhTwb8MvOWWS2nYm5yg6P62mAjCA2EwdNr+7f019pOWgJAT9KuZU= X-Received: by 2002:a05:6e02:1d02:: with SMTP id i2mr2131514ila.30.1611897349916; Thu, 28 Jan 2021 21:15:49 -0800 (PST) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:198837 Archived-At: --000000000000f4f3e505ba031840 Content-Type: multipart/alternative; boundary="000000000000f4f3e205ba03183e" --000000000000f4f3e205ba03183e Content-Type: text/plain; charset="UTF-8" Hi Michael - Got back to this. Good news! The patch for compile.el, applied to Emacs 27.1, fixes the issue of the tramp window hanging in my test cases, running tramp from MAC. There is still one tramp hanging issue I saw in my testing. This is a much less serious issue (pressing ctrl-G once "unhangs"), but thought I'd mention it here. LMK if you'd prefer a separate bug report and I'll create one. If, during a "make" via tramp with many syntax errors, you click on one of the early errors produced in the tramp window, the compile pauses and the source window does not move to the error. Emacs appears to hang. If you press ctrl-G, then the compile continues, no problem, until eventually exiting. I also noticed the same effect if I just try and type a few characters into the source file while the make is going on - the compile hangs, and emacs appears to hang, until I press ctrl-G to allow it to continue. When I perform this operation directly in emacs on the ubuntu machine (i.e. without using tramp), clicking on an early error message while "make" continues to run does not hang anything - the "make" process continues and meanwhile (even before make completes) the source window moves to the error that I clicked on. Likewise I can type characters into the test.cpp source file during make without causing a hang. I am enclosing another test.cpp with even more errors to make it easier to catch this issue (you can just drop it into the src directory you were using for the last setup, overwriting the prior test.cpp). By the way, this time, the issue reproduces for me regardless of whether I am running the emacs-tramp on a Mac or on an ubuntu client; as you'll recall, the target host is ubuntu in both cases. Thanks again for fixing the main hanging issue! Duncan. On Tue, Jan 12, 2021 at 7:02 AM Michael Albinus wrote: > Duncan Greatwood writes: > > Hi Duncan, > > > Meanwhile, good luck with debugging these bug#45518 issues. > > Finally, I nailed it down. In the (remote) compilation process, there is > a process filter, which calls `file-truename' if it detects an > error. This works one or two times, but then the (remote) compilation > process comes in conflict with the (remote) Tramp process responsible > for `file-truename'. > > The following patch has fixed the issue for me on my FreeBSD machine. It > is on top of Emacs' git master; but likely it works also for your Emacs > 27 (not tested by me). Could you check, whether this helps you? > > > Thanks again! > > Best regards, Michael. > --000000000000f4f3e205ba03183e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Michael -

Got back to thi= s.

Good news! The patch for compile.el, applied to= Emacs 27.1, fixes the issue of the tramp window hanging in my test cases, = running tramp from MAC.

There is still one tramp h= anging issue I saw in my testing. This is a much less serious=C2=A0issue (p= ressing ctrl-G once "unhangs"), but thought I'd mention it he= re. LMK if you'd prefer a separate bug report and I'll create one.<= /div>

If, during a "make" via tramp with many = syntax errors, you click on one of the early errors produced in the tramp w= indow, the compile pauses and the source window does not move to the error.= Emacs appears to hang.

If you press ctrl-G, then = the compile continues, no problem, until eventually exiting.

=
I also noticed the same effect if I just try and type a few char= acters into the source file while the make is going on - the compile hangs,= and emacs appears to hang, until I press ctrl-G to allow it to continue.

When I perform this operation directly in emacs on = the ubuntu machine (i.e. without using tramp), clicking on an early error m= essage while "make" continues to run does not hang anything - the= "make" process continues and meanwhile (even before make complet= es) the source window moves to the error that I clicked on. Likewise I can = type characters into the test.cpp source file during make without causing a= hang.

I am enclosing another test.cpp with even m= ore errors to make it easier to catch this issue (you can just drop it into= the src directory you were using for the last setup, overwriting the prior= test.cpp).

By the way, this time, the issue repro= duces for me regardless of whether I am running the emacs-tramp on a Mac or= on an ubuntu client; as you'll recall, the target host is ubuntu in bo= th cases.

Thanks again for fixing the main hanging= issue!
Duncan.

On Tue, Jan 12, 2021 at 7:02 AM Michael Albinus &l= t;michael.albinus@gmx.de> = wrote:
Duncan Gr= eatwood <dgbulk@gm= ail.com> writes:

Hi Duncan,

> Meanwhile, good luck with debugging these bug#45518 issues.

Finally, I nailed it down. In the (remote) compilation process, there is a process filter, which calls `file-truename' if it detects an
error. This works one or two times, but then the (remote) compilation
process comes in conflict with the (remote) Tramp process responsible
for `file-truename'.

The following patch has fixed the issue for me on my FreeBSD machine. It is on top of Emacs' git master; but likely it works also for your Emacs=
27 (not tested by me). Could you check, whether this helps you?

> Thanks again!

Best regards, Michael.
--000000000000f4f3e205ba03183e-- --000000000000f4f3e505ba031840 Content-Type: application/octet-stream; name="test.cpp" Content-Disposition: attachment; filename="test.cpp" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kkhtx4ov0 Ly8gdGVzdC5jcHAgLSBmb3IgbG90cyBvZiBzeW50YXggZXJyb3JzCgojaW5jbHVkZSA8bXV0ZXg+ CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxtZW1vcnk+ICAg ICAgICAgCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY2xhc3MgQTEKewogICAgaW50 IGYxKCk7CiAgICBpbnQgZjIoKTsKICAgIGludCBmMygpOwogICAgaW50IGY0KCk7CiAgICBpbnQg ZjUoKTsKICAgIGludCBmNigpOwogICAgaW50IGY3KCk7CiAgICBpbnQgZjgoKTsKICAgIGludCBm OSgpOwp9OwoKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xh c3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsK Y2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVk CnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVz dGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3Mg TmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xhc3MgTmVzdGVkCnsKY2xh c3MgTmVzdGVkCnsKICAgIEExIG0xOwp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9 Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9OwoKCmNsYXNzIEEyCnsKICAgIHN0ZDo6 c2hhcmVkX3B0cjxBMT4gYTFwdHI7CiAgICBBMigpIHtBMSBhMTsgYTFwdHIgPSAmYTE7fQp9OwoK I2RlZmluZSBBTl9CT0RZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgIEExIHgxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEExIHgyOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMxKHgx KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6 c3RyaW5nIHMyKHgyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKTmVzdGVkIG4xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXApjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdjEoMSwg YTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmNvbnN0IHN0ZDo6dmVjdG9yPHN0 ZDo6c3RyaW5nPiB2MSgxLCBuMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKc3Rk Ojp2ZWN0b3I8c3RkOjpzdHJpbmc+ICogdjFfY3B0cigmdjEpOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXApyZXR1cm4oczErczIpOwoKaW50IEExOjpmMSgpCnsKICAgIEFOX0JPRFk7 Cn0KCmludCBBMTo6ZjIoKQp7CiAgICBBTl9CT0RZOwp9CgppbnQgQTE6OmYzKCkKewogICAgQU5f Qk9EWTsKfQoKaW50IEExOjpmNCgpCnsKICAgIEFOX0JPRFk7Cn0KCmludCBBMTo6ZjUoKQp7CiAg ICBBTl9CT0RZOwp9CgppbnQgQTE6OmY2KCkKewogICAgQU5fQk9EWTsKfQoKaW50IEExOjpmNygp CnsKICAgIEFOX0JPRFk7Cn0KCmludCBBMTo6ZjgoKQp7CiAgICBBTl9CT0RZOwp9CgppbnQgQTE6 OmY5KCkKewogICAgQU5fQk9EWTsKfQoKaW50IEExOjpmMTAoKQp7CiAgICBBTl9CT0RZOwp9CgoK aW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewogICAgQU5fQk9EWTsKfQoKCi8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpjbGFzcyBBMTEKewogICAgaW50IGYxKCk7CiAgICBp bnQgZjIoKTsKICAgIGludCBmMygpOwogICAgaW50IGY0KCk7CiAgICBpbnQgZjUoKTsKICAgIGlu dCBmNigpOwogICAgaW50IGY3KCk7CiAgICBpbnQgZjgoKTsKICAgIGludCBmOSgpOwp9OwoKY2xh c3MgTmVzdGVkMQp7CmNsYXNzIE5lc3RlZDEKewpjbGFzcyBOZXN0ZWQxCnsKY2xhc3MgTmVzdGVk MQp7CmNsYXNzIE5lc3RlZDEKewpjbGFzcyBOZXN0ZWQxCnsKY2xhc3MgTmVzdGVkMQp7CmNsYXNz IE5lc3RlZDEKewpjbGFzcyBOZXN0ZWQxCnsKY2xhc3MgTmVzdGVkMQp7CmNsYXNzIE5lc3RlZDEK ewpjbGFzcyBOZXN0ZWQxCnsKY2xhc3MgTmVzdGVkMQp7CmNsYXNzIE5lc3RlZDEKewpjbGFzcyBO ZXN0ZWQxCnsKY2xhc3MgTmVzdGVkMQp7CmNsYXNzIE5lc3RlZDEKewpjbGFzcyBOZXN0ZWQxCnsK Y2xhc3MgTmVzdGVkMQp7CmNsYXNzIE5lc3RlZDEKewpjbGFzcyBOZXN0ZWQxCnsKY2xhc3MgTmVz dGVkMQp7CmNsYXNzIE5lc3RlZDEKewogICAgQTExIG0xOwp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9 Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9OwoKCmNsYXNzIEEy CnsKICAgIHN0ZDo6c2hhcmVkX3B0cjxBMTE+IGExcHRyOwogICAgQTIoKSB7QTExIGExOyBhMXB0 ciA9ICZhMTt9Cn07CgojZGVmaW5lIEFOX0JPRFkxICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEExMSB4MTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBBMTEgeDI7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg c3RkOjpzdHJpbmcgczEoeDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgc3RkOjpzdHJpbmcgczIoeDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXApOZXN0ZWQxIG4xOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApjb25zdCBzdGQ6OnZlY3Rvcjxz dGQ6OnN0cmluZz4gdjEoMSwgYTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmNv bnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgxLCBuMSk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICogdjFfY3B0cigmdjEpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApyZXR1cm4oczErczIpOwoKaW50IEExMTo6 ZjEoKQp7CiAgICBBTl9CT0RZMTsKfQoKaW50IEExMTo6ZjIoKQp7CiAgICBBTl9CT0RZMTsKfQoK aW50IEExMTo6ZjMoKQp7CiAgICBBTl9CT0RZMTsKfQoKaW50IEExMTo6ZjQoKQp7CiAgICBBTl9C T0RZMTsKfQoKaW50IEExMTo6ZjUoKQp7CiAgICBBTl9CT0RZMTsKfQoKaW50IEExMTo6ZjYoKQp7 CiAgICBBTl9CT0RZMTsKfQoKaW50IEExMTo6ZjcoKQp7CiAgICBBTl9CT0RZMTsKfQoKaW50IEEx MTo6ZjgoKQp7CiAgICBBTl9CT0RZMTsKfQoKaW50IEExMTo6ZjkoKQp7CiAgICBBTl9CT0RZMTsK fQoKaW50IEExMTo6ZjEwKCkKewogICAgQU5fQk9EWTE7Cn0KCgppbnQgbWFpbjEoaW50IGFyZ2Ms IGNoYXIqIGFyZ3ZbXSkKewogICAgQU5fQk9EWTE7Cn0KCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLwoKY2xhc3MgQTExMQp7CiAgICBpbnQgZjEoKTsKICAgIGludCBmMigpOwogICAgaW50 IGYzKCk7CiAgICBpbnQgZjQoKTsKICAgIGludCBmNSgpOwogICAgaW50IGY2KCk7CiAgICBpbnQg ZjcoKTsKICAgIGludCBmOCgpOwogICAgaW50IGY5KCk7Cn07CgpjbGFzcyBOZXN0ZWQxMQp7CmNs YXNzIE5lc3RlZDExCnsKY2xhc3MgTmVzdGVkMTEKewpjbGFzcyBOZXN0ZWQxMQp7CmNsYXNzIE5l c3RlZDExCnsKY2xhc3MgTmVzdGVkMTEKewpjbGFzcyBOZXN0ZWQxMQp7CmNsYXNzIE5lc3RlZDEx CnsKY2xhc3MgTmVzdGVkMTEKewpjbGFzcyBOZXN0ZWQxMQp7CmNsYXNzIE5lc3RlZDExCnsKY2xh c3MgTmVzdGVkMTEKewpjbGFzcyBOZXN0ZWQxMQp7CmNsYXNzIE5lc3RlZDExCnsKY2xhc3MgTmVz dGVkMTEKewpjbGFzcyBOZXN0ZWQxMQp7CmNsYXNzIE5lc3RlZDExCnsKY2xhc3MgTmVzdGVkMTEK ewpjbGFzcyBOZXN0ZWQxMQp7CmNsYXNzIE5lc3RlZDExCnsKY2xhc3MgTmVzdGVkMTEKewpjbGFz cyBOZXN0ZWQxMQp7CmNsYXNzIE5lc3RlZDExCnsKICAgIEExMTEgbTE7Cn07Cn07Cn07Cn07Cn07 Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07CgoK Y2xhc3MgQTIKewogICAgc3RkOjpzaGFyZWRfcHRyPEExMTE+IGExcHRyOwogICAgQTIoKSB7QTEx MSBhMTsgYTFwdHIgPSAmYTE7fQp9OwoKI2RlZmluZSBBTl9CT0RZMTEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgQTExMSB4MTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBB MTExIHgyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMxKHgxKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMyKHgyKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKTmVzdGVkMTEgbjE7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmNvbnN0 IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgxLCBhMSk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHYxKDEsIG4xKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXApzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gKiB2 MV9jcHRyKCZ2MSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCnJldHVybihzMStz Mik7CgppbnQgQTExMTo6ZjEoKQp7CiAgICBBTl9CT0RZMTE7Cn0KCmludCBBMTExOjpmMigpCnsK ICAgIEFOX0JPRFkxMTsKfQoKaW50IEExMTE6OmYzKCkKewogICAgQU5fQk9EWTExOwp9CgppbnQg QTExMTo6ZjQoKQp7CiAgICBBTl9CT0RZMTE7Cn0KCmludCBBMTExOjpmNSgpCnsKICAgIEFOX0JP RFkxMTsKfQoKaW50IEExMTE6OmY2KCkKewogICAgQU5fQk9EWTExOwp9CgppbnQgQTExMTo6Zjco KQp7CiAgICBBTl9CT0RZMTE7Cn0KCmludCBBMTExOjpmOCgpCnsKICAgIEFOX0JPRFkxMTsKfQoK aW50IEExMTE6OmY5KCkKewogICAgQU5fQk9EWTExOwp9CgppbnQgQTExMTo6ZjEwKCkKewogICAg QU5fQk9EWTExOwp9CgoKaW50IG1haW4xMShpbnQgYXJnYywgY2hhciogYXJndltdKQp7CiAgICBB Tl9CT0RZMTE7Cn0KCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY2xhc3MgQTExMTEK ewogICAgaW50IGYxKCk7CiAgICBpbnQgZjIoKTsKICAgIGludCBmMygpOwogICAgaW50IGY0KCk7 CiAgICBpbnQgZjUoKTsKICAgIGludCBmNigpOwogICAgaW50IGY3KCk7CiAgICBpbnQgZjgoKTsK ICAgIGludCBmOSgpOwp9OwoKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xh c3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3Mg TmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVz dGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVk MTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTEx CnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsK Y2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKY2xh c3MgTmVzdGVkMTExCnsKY2xhc3MgTmVzdGVkMTExCnsKICAgIEExMTExIG0xOwp9Owp9Owp9Owp9 Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9 OwoKCmNsYXNzIEEyCnsKICAgIHN0ZDo6c2hhcmVkX3B0cjxBMTExMT4gYTFwdHI7CiAgICBBMigp IHtBMTExMSBhMTsgYTFwdHIgPSAmYTE7fQp9OwoKI2RlZmluZSBBTl9CT0RZMTExICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEExMTExIHgx OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgIEExMTExIHgyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMxKHgxKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMyKHgyKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKTmVzdGVkMTExIG4xOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXApjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdjEoMSwgYTEpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCmNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgx LCBuMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKc3RkOjp2ZWN0b3I8c3RkOjpz dHJpbmc+ICogdjFfY3B0cigmdjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApy ZXR1cm4oczErczIpOwoKaW50IEExMTExOjpmMSgpCnsKICAgIEFOX0JPRFkxMTE7Cn0KCmludCBB MTExMTo6ZjIoKQp7CiAgICBBTl9CT0RZMTExOwp9CgppbnQgQTExMTE6OmYzKCkKewogICAgQU5f Qk9EWTExMTsKfQoKaW50IEExMTExOjpmNCgpCnsKICAgIEFOX0JPRFkxMTE7Cn0KCmludCBBMTEx MTo6ZjUoKQp7CiAgICBBTl9CT0RZMTExOwp9CgppbnQgQTExMTE6OmY2KCkKewogICAgQU5fQk9E WTExMTsKfQoKaW50IEExMTExOjpmNygpCnsKICAgIEFOX0JPRFkxMTE7Cn0KCmludCBBMTExMTo6 ZjgoKQp7CiAgICBBTl9CT0RZMTExOwp9CgppbnQgQTExMTE6OmY5KCkKewogICAgQU5fQk9EWTEx MTsKfQoKaW50IEExMTExOjpmMTAoKQp7CiAgICBBTl9CT0RZMTExOwp9CgoKaW50IG1haW4xMTEo aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewogICAgQU5fQk9EWTExMTsKfQoKCi8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vCgpjbGFzcyBBMTExMTEKewogICAgaW50IGYxKCk7CiAgICBpbnQg ZjIoKTsKICAgIGludCBmMygpOwogICAgaW50IGY0KCk7CiAgICBpbnQgZjUoKTsKICAgIGludCBm NigpOwogICAgaW50IGY3KCk7CiAgICBpbnQgZjgoKTsKICAgIGludCBmOSgpOwp9OwoKY2xhc3Mg TmVzdGVkMTExMQp7CmNsYXNzIE5lc3RlZDExMTEKewpjbGFzcyBOZXN0ZWQxMTExCnsKY2xhc3Mg TmVzdGVkMTExMQp7CmNsYXNzIE5lc3RlZDExMTEKewpjbGFzcyBOZXN0ZWQxMTExCnsKY2xhc3Mg TmVzdGVkMTExMQp7CmNsYXNzIE5lc3RlZDExMTEKewpjbGFzcyBOZXN0ZWQxMTExCnsKY2xhc3Mg TmVzdGVkMTExMQp7CmNsYXNzIE5lc3RlZDExMTEKewpjbGFzcyBOZXN0ZWQxMTExCnsKY2xhc3Mg TmVzdGVkMTExMQp7CmNsYXNzIE5lc3RlZDExMTEKewpjbGFzcyBOZXN0ZWQxMTExCnsKY2xhc3Mg TmVzdGVkMTExMQp7CmNsYXNzIE5lc3RlZDExMTEKewpjbGFzcyBOZXN0ZWQxMTExCnsKY2xhc3Mg TmVzdGVkMTExMQp7CmNsYXNzIE5lc3RlZDExMTEKewpjbGFzcyBOZXN0ZWQxMTExCnsKY2xhc3Mg TmVzdGVkMTExMQp7CmNsYXNzIE5lc3RlZDExMTEKewogICAgQTExMTExIG0xOwp9Owp9Owp9Owp9 Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9 OwoKCmNsYXNzIEEyCnsKICAgIHN0ZDo6c2hhcmVkX3B0cjxBMTExMTE+IGExcHRyOwogICAgQTIo KSB7QTExMTExIGExOyBhMXB0ciA9ICZhMTt9Cn07CgojZGVmaW5lIEFOX0JPRFkxMTExICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEExMTEx MSB4MTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICBBMTExMTEgeDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAogICAgc3RkOjpzdHJpbmcgczEoeDEpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgc3RkOjpzdHJpbmcgczIoeDIp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApOZXN0ZWQxMTEx IG4xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXApjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdjEoMSwgYTEpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCmNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5n PiB2MSgxLCBuMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKc3RkOjp2ZWN0b3I8 c3RkOjpzdHJpbmc+ICogdjFfY3B0cigmdjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXApyZXR1cm4oczErczIpOwoKaW50IEExMTExMTo6ZjEoKQp7CiAgICBBTl9CT0RZMTExMTsK fQoKaW50IEExMTExMTo6ZjIoKQp7CiAgICBBTl9CT0RZMTExMTsKfQoKaW50IEExMTExMTo6ZjMo KQp7CiAgICBBTl9CT0RZMTExMTsKfQoKaW50IEExMTExMTo6ZjQoKQp7CiAgICBBTl9CT0RZMTEx MTsKfQoKaW50IEExMTExMTo6ZjUoKQp7CiAgICBBTl9CT0RZMTExMTsKfQoKaW50IEExMTExMTo6 ZjYoKQp7CiAgICBBTl9CT0RZMTExMTsKfQoKaW50IEExMTExMTo6ZjcoKQp7CiAgICBBTl9CT0RZ MTExMTsKfQoKaW50IEExMTExMTo6ZjgoKQp7CiAgICBBTl9CT0RZMTExMTsKfQoKaW50IEExMTEx MTo6ZjkoKQp7CiAgICBBTl9CT0RZMTExMTsKfQoKaW50IEExMTExMTo6ZjEwKCkKewogICAgQU5f Qk9EWTExMTE7Cn0KCgppbnQgbWFpbjExMTEoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewogICAg QU5fQk9EWTExMTE7Cn0KCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY2xhc3MgQTEx MTExMQp7CiAgICBpbnQgZjEoKTsKICAgIGludCBmMigpOwogICAgaW50IGYzKCk7CiAgICBpbnQg ZjQoKTsKICAgIGludCBmNSgpOwogICAgaW50IGY2KCk7CiAgICBpbnQgZjcoKTsKICAgIGludCBm OCgpOwogICAgaW50IGY5KCk7Cn07CgpjbGFzcyBOZXN0ZWQxMTExMQp7CmNsYXNzIE5lc3RlZDEx MTExCnsKY2xhc3MgTmVzdGVkMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMQp7CmNsYXNzIE5lc3Rl ZDExMTExCnsKY2xhc3MgTmVzdGVkMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMQp7CmNsYXNzIE5l c3RlZDExMTExCnsKY2xhc3MgTmVzdGVkMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMQp7CmNsYXNz IE5lc3RlZDExMTExCnsKY2xhc3MgTmVzdGVkMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMQp7CmNs YXNzIE5lc3RlZDExMTExCnsKY2xhc3MgTmVzdGVkMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMQp7 CmNsYXNzIE5lc3RlZDExMTExCnsKY2xhc3MgTmVzdGVkMTExMTEKewpjbGFzcyBOZXN0ZWQxMTEx MQp7CmNsYXNzIE5lc3RlZDExMTExCnsKY2xhc3MgTmVzdGVkMTExMTEKewpjbGFzcyBOZXN0ZWQx MTExMQp7CmNsYXNzIE5lc3RlZDExMTExCnsKICAgIEExMTExMTEgbTE7Cn07Cn07Cn07Cn07Cn07 Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07CgoK Y2xhc3MgQTIKewogICAgc3RkOjpzaGFyZWRfcHRyPEExMTExMTE+IGExcHRyOwogICAgQTIoKSB7 QTExMTExMSBhMTsgYTFwdHIgPSAmYTE7fQp9OwoKI2RlZmluZSBBTl9CT0RZMTExMTEgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgQTExMTEx MSB4MTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICBBMTExMTExIHgyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMxKHgxKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMyKHgy KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKTmVzdGVkMTEx MTEgbjE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCmNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgxLCBhMSk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJp bmc+IHYxKDEsIG4xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApzdGQ6OnZlY3Rv cjxzdGQ6OnN0cmluZz4gKiB2MV9jcHRyKCZ2MSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCnJldHVybihzMStzMik7CgppbnQgQTExMTExMTo6ZjEoKQp7CiAgICBBTl9CT0RZMTEx MTE7Cn0KCmludCBBMTExMTExOjpmMigpCnsKICAgIEFOX0JPRFkxMTExMTsKfQoKaW50IEExMTEx MTE6OmYzKCkKewogICAgQU5fQk9EWTExMTExOwp9CgppbnQgQTExMTExMTo6ZjQoKQp7CiAgICBB Tl9CT0RZMTExMTE7Cn0KCmludCBBMTExMTExOjpmNSgpCnsKICAgIEFOX0JPRFkxMTExMTsKfQoK aW50IEExMTExMTE6OmY2KCkKewogICAgQU5fQk9EWTExMTExOwp9CgppbnQgQTExMTExMTo6Zjco KQp7CiAgICBBTl9CT0RZMTExMTE7Cn0KCmludCBBMTExMTExOjpmOCgpCnsKICAgIEFOX0JPRFkx MTExMTsKfQoKaW50IEExMTExMTE6OmY5KCkKewogICAgQU5fQk9EWTExMTExOwp9CgppbnQgQTEx MTExMTo6ZjEwKCkKewogICAgQU5fQk9EWTExMTExOwp9CgoKaW50IG1haW4xMTExMShpbnQgYXJn YywgY2hhciogYXJndltdKQp7CiAgICBBTl9CT0RZMTExMTE7Cn0KCgovLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLwoKY2xhc3MgQTExMTExMTEKewogICAgaW50IGYxKCk7CiAgICBpbnQgZjIo KTsKICAgIGludCBmMygpOwogICAgaW50IGY0KCk7CiAgICBpbnQgZjUoKTsKICAgIGludCBmNigp OwogICAgaW50IGY3KCk7CiAgICBpbnQgZjgoKTsKICAgIGludCBmOSgpOwp9OwoKY2xhc3MgTmVz dGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xh c3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTEx CnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVk MTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3Mg TmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsK Y2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTEx MTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVz dGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExCnsKY2xh c3MgTmVzdGVkMTExMTExCnsKICAgIEExMTExMTExIG0xOwp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9 Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9OwoKCmNsYXNzIEEy CnsKICAgIHN0ZDo6c2hhcmVkX3B0cjxBMTExMTExMT4gYTFwdHI7CiAgICBBMigpIHtBMTExMTEx MSBhMTsgYTFwdHIgPSAmYTE7fQp9OwoKI2RlZmluZSBBTl9CT0RZMTExMTExICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEExMTExMTExIHgx OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgIEExMTExMTExIHgyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMxKHgxKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMyKHgyKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKTmVzdGVkMTExMTEx IG4xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXApjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdjEoMSwgYTEpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCmNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5n PiB2MSgxLCBuMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKc3RkOjp2ZWN0b3I8 c3RkOjpzdHJpbmc+ICogdjFfY3B0cigmdjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXApyZXR1cm4oczErczIpOwoKaW50IEExMTExMTExOjpmMSgpCnsKICAgIEFOX0JPRFkxMTEx MTE7Cn0KCmludCBBMTExMTExMTo6ZjIoKQp7CiAgICBBTl9CT0RZMTExMTExOwp9CgppbnQgQTEx MTExMTE6OmYzKCkKewogICAgQU5fQk9EWTExMTExMTsKfQoKaW50IEExMTExMTExOjpmNCgpCnsK ICAgIEFOX0JPRFkxMTExMTE7Cn0KCmludCBBMTExMTExMTo6ZjUoKQp7CiAgICBBTl9CT0RZMTEx MTExOwp9CgppbnQgQTExMTExMTE6OmY2KCkKewogICAgQU5fQk9EWTExMTExMTsKfQoKaW50IEEx MTExMTExOjpmNygpCnsKICAgIEFOX0JPRFkxMTExMTE7Cn0KCmludCBBMTExMTExMTo6ZjgoKQp7 CiAgICBBTl9CT0RZMTExMTExOwp9CgppbnQgQTExMTExMTE6OmY5KCkKewogICAgQU5fQk9EWTEx MTExMTsKfQoKaW50IEExMTExMTExOjpmMTAoKQp7CiAgICBBTl9CT0RZMTExMTExOwp9CgoKaW50 IG1haW4xMTExMTEoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewogICAgQU5fQk9EWTExMTExMTsK fQoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpjbGFzcyBBMTExMTExMTEKewogICAg aW50IGYxKCk7CiAgICBpbnQgZjIoKTsKICAgIGludCBmMygpOwogICAgaW50IGY0KCk7CiAgICBp bnQgZjUoKTsKICAgIGludCBmNigpOwogICAgaW50IGY3KCk7CiAgICBpbnQgZjgoKTsKICAgIGlu dCBmOSgpOwp9OwoKY2xhc3MgTmVzdGVkMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTEKewpj bGFzcyBOZXN0ZWQxMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMQp7CmNsYXNzIE5lc3RlZDEx MTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMQp7CmNsYXNz IE5lc3RlZDExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTEx MQp7CmNsYXNzIE5lc3RlZDExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExCnsKY2xhc3MgTmVz dGVkMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExCnsK Y2xhc3MgTmVzdGVkMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTEKewpjbGFzcyBOZXN0ZWQx MTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTEKewpjbGFz cyBOZXN0ZWQxMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTEx MTEKewogICAgQTExMTExMTExIG0xOwp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9 Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9OwoKCmNsYXNzIEEyCnsKICAgIHN0ZDo6 c2hhcmVkX3B0cjxBMTExMTExMTE+IGExcHRyOwogICAgQTIoKSB7QTExMTExMTExIGExOyBhMXB0 ciA9ICZhMTt9Cn07CgojZGVmaW5lIEFOX0JPRFkxMTExMTExICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEExMTExMTExMSB4MTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBB MTExMTExMTEgeDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgc3RkOjpzdHJpbmcgczEoeDEpOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgc3RkOjpzdHJpbmcgczIoeDIpOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApOZXN0ZWQxMTExMTExIG4xOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXApjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdjEoMSwgYTEpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCmNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgx LCBuMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKc3RkOjp2ZWN0b3I8c3RkOjpz dHJpbmc+ICogdjFfY3B0cigmdjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApy ZXR1cm4oczErczIpOwoKaW50IEExMTExMTExMTo6ZjEoKQp7CiAgICBBTl9CT0RZMTExMTExMTsK fQoKaW50IEExMTExMTExMTo6ZjIoKQp7CiAgICBBTl9CT0RZMTExMTExMTsKfQoKaW50IEExMTEx MTExMTo6ZjMoKQp7CiAgICBBTl9CT0RZMTExMTExMTsKfQoKaW50IEExMTExMTExMTo6ZjQoKQp7 CiAgICBBTl9CT0RZMTExMTExMTsKfQoKaW50IEExMTExMTExMTo6ZjUoKQp7CiAgICBBTl9CT0RZ MTExMTExMTsKfQoKaW50IEExMTExMTExMTo6ZjYoKQp7CiAgICBBTl9CT0RZMTExMTExMTsKfQoK aW50IEExMTExMTExMTo6ZjcoKQp7CiAgICBBTl9CT0RZMTExMTExMTsKfQoKaW50IEExMTExMTEx MTo6ZjgoKQp7CiAgICBBTl9CT0RZMTExMTExMTsKfQoKaW50IEExMTExMTExMTo6ZjkoKQp7CiAg ICBBTl9CT0RZMTExMTExMTsKfQoKaW50IEExMTExMTExMTo6ZjEwKCkKewogICAgQU5fQk9EWTEx MTExMTE7Cn0KCgppbnQgbWFpbjExMTExMTEoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewogICAg QU5fQk9EWTExMTExMTE7Cn0KCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY2xhc3Mg QTExMTExMTExMQp7CiAgICBpbnQgZjEoKTsKICAgIGludCBmMigpOwogICAgaW50IGYzKCk7CiAg ICBpbnQgZjQoKTsKICAgIGludCBmNSgpOwogICAgaW50IGY2KCk7CiAgICBpbnQgZjcoKTsKICAg IGludCBmOCgpOwogICAgaW50IGY5KCk7Cn07CgpjbGFzcyBOZXN0ZWQxMTExMTExMQp7CmNsYXNz IE5lc3RlZDExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTEx MTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTEKewpjbGFz cyBOZXN0ZWQxMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExCnsKY2xhc3MgTmVzdGVkMTEx MTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExCnsKY2xh c3MgTmVzdGVkMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMQp7CmNsYXNzIE5lc3RlZDEx MTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMQp7CmNs YXNzIE5lc3RlZDExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTEKewpjbGFzcyBOZXN0ZWQx MTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTEKewpj bGFzcyBOZXN0ZWQxMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExCnsKICAgIEExMTExMTEx MTEgbTE7Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07 Cn07Cn07Cn07Cn07Cn07Cn07CgoKY2xhc3MgQTIKewogICAgc3RkOjpzaGFyZWRfcHRyPEExMTEx MTExMTE+IGExcHRyOwogICAgQTIoKSB7QTExMTExMTExMSBhMTsgYTFwdHIgPSAmYTE7fQp9OwoK I2RlZmluZSBBTl9CT0RZMTExMTExMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAogICAgQTExMTExMTExMSB4MTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBBMTExMTExMTExIHgy OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgIHN0ZDo6c3RyaW5nIHMxKHgxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMyKHgyKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKTmVzdGVkMTExMTExMTEgbjE7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmNvbnN0 IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgxLCBhMSk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHYxKDEsIG4xKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXApzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gKiB2 MV9jcHRyKCZ2MSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCnJldHVybihzMStz Mik7CgppbnQgQTExMTExMTExMTo6ZjEoKQp7CiAgICBBTl9CT0RZMTExMTExMTE7Cn0KCmludCBB MTExMTExMTExOjpmMigpCnsKICAgIEFOX0JPRFkxMTExMTExMTsKfQoKaW50IEExMTExMTExMTE6 OmYzKCkKewogICAgQU5fQk9EWTExMTExMTExOwp9CgppbnQgQTExMTExMTExMTo6ZjQoKQp7CiAg ICBBTl9CT0RZMTExMTExMTE7Cn0KCmludCBBMTExMTExMTExOjpmNSgpCnsKICAgIEFOX0JPRFkx MTExMTExMTsKfQoKaW50IEExMTExMTExMTE6OmY2KCkKewogICAgQU5fQk9EWTExMTExMTExOwp9 CgppbnQgQTExMTExMTExMTo6ZjcoKQp7CiAgICBBTl9CT0RZMTExMTExMTE7Cn0KCmludCBBMTEx MTExMTExOjpmOCgpCnsKICAgIEFOX0JPRFkxMTExMTExMTsKfQoKaW50IEExMTExMTExMTE6OmY5 KCkKewogICAgQU5fQk9EWTExMTExMTExOwp9CgppbnQgQTExMTExMTExMTo6ZjEwKCkKewogICAg QU5fQk9EWTExMTExMTExOwp9CgoKaW50IG1haW4xMTExMTExMShpbnQgYXJnYywgY2hhciogYXJn dltdKQp7CiAgICBBTl9CT0RZMTExMTExMTE7Cn0KCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLwoKY2xhc3MgQTExMTExMTExMTEKewogICAgaW50IGYxKCk7CiAgICBpbnQgZjIoKTsKICAg IGludCBmMygpOwogICAgaW50IGY0KCk7CiAgICBpbnQgZjUoKTsKICAgIGludCBmNigpOwogICAg aW50IGY3KCk7CiAgICBpbnQgZjgoKTsKICAgIGludCBmOSgpOwp9OwoKY2xhc3MgTmVzdGVkMTEx MTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsK Y2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVz dGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTEx MTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xh c3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVk MTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTEx CnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3Mg TmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTEx MTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExCnsK Y2xhc3MgTmVzdGVkMTExMTExMTExCnsKICAgIEExMTExMTExMTExIG0xOwp9Owp9Owp9Owp9Owp9 Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9OwoK CmNsYXNzIEEyCnsKICAgIHN0ZDo6c2hhcmVkX3B0cjxBMTExMTExMTExMT4gYTFwdHI7CiAgICBB MigpIHtBMTExMTExMTExMSBhMTsgYTFwdHIgPSAmYTE7fQp9OwoKI2RlZmluZSBBTl9CT0RZMTEx MTExMTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgIEExMTExMTExMTExIHgxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEExMTExMTExMTExIHgyOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3Ry aW5nIHMxKHgxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgIHN0ZDo6c3RyaW5nIHMyKHgyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKTmVzdGVkMTExMTExMTExIG4xOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApjb25zdCBzdGQ6OnZlY3Rvcjxz dGQ6OnN0cmluZz4gdjEoMSwgYTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmNv bnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgxLCBuMSk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICogdjFfY3B0cigmdjEpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApyZXR1cm4oczErczIpOwoKaW50IEExMTEx MTExMTExOjpmMSgpCnsKICAgIEFOX0JPRFkxMTExMTExMTE7Cn0KCmludCBBMTExMTExMTExMTo6 ZjIoKQp7CiAgICBBTl9CT0RZMTExMTExMTExOwp9CgppbnQgQTExMTExMTExMTE6OmYzKCkKewog ICAgQU5fQk9EWTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExOjpmNCgpCnsKICAgIEFOX0JP RFkxMTExMTExMTE7Cn0KCmludCBBMTExMTExMTExMTo6ZjUoKQp7CiAgICBBTl9CT0RZMTExMTEx MTExOwp9CgppbnQgQTExMTExMTExMTE6OmY2KCkKewogICAgQU5fQk9EWTExMTExMTExMTsKfQoK aW50IEExMTExMTExMTExOjpmNygpCnsKICAgIEFOX0JPRFkxMTExMTExMTE7Cn0KCmludCBBMTEx MTExMTExMTo6ZjgoKQp7CiAgICBBTl9CT0RZMTExMTExMTExOwp9CgppbnQgQTExMTExMTExMTE6 OmY5KCkKewogICAgQU5fQk9EWTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExOjpmMTAoKQp7 CiAgICBBTl9CT0RZMTExMTExMTExOwp9CgoKaW50IG1haW4xMTExMTExMTEoaW50IGFyZ2MsIGNo YXIqIGFyZ3ZbXSkKewogICAgQU5fQk9EWTExMTExMTExMTsKfQoKCi8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCgpjbGFzcyBBMTExMTExMTExMTEKewogICAgaW50IGYxKCk7CiAgICBpbnQg ZjIoKTsKICAgIGludCBmMygpOwogICAgaW50IGY0KCk7CiAgICBpbnQgZjUoKTsKICAgIGludCBm NigpOwogICAgaW50IGY3KCk7CiAgICBpbnQgZjgoKTsKICAgIGludCBmOSgpOwp9OwoKY2xhc3Mg TmVzdGVkMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQx MTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTEx MTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMQp7CmNs YXNzIE5lc3RlZDExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExCnsKY2xhc3MgTmVz dGVkMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTEx MTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTEK ewpjbGFzcyBOZXN0ZWQxMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMQp7CmNsYXNz IE5lc3RlZDExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExCnsKY2xhc3MgTmVzdGVk MTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTEx MTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTEKewog ICAgQTExMTExMTExMTExIG0xOwp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9 Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9OwoKCmNsYXNzIEEyCnsKICAgIHN0ZDo6c2hh cmVkX3B0cjxBMTExMTExMTExMTE+IGExcHRyOwogICAgQTIoKSB7QTExMTExMTExMTExIGExOyBh MXB0ciA9ICZhMTt9Cn07CgojZGVmaW5lIEFOX0JPRFkxMTExMTExMTExICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEExMTExMTExMTExMSB4 MTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICBBMTExMTExMTExMTEgeDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgc3RkOjpzdHJpbmcgczEoeDEpOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgc3RkOjpzdHJpbmcgczIo eDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApOZXN0ZWQx MTExMTExMTExIG4xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXApjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdjEoMSwg YTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmNvbnN0IHN0ZDo6dmVjdG9yPHN0 ZDo6c3RyaW5nPiB2MSgxLCBuMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKc3Rk Ojp2ZWN0b3I8c3RkOjpzdHJpbmc+ICogdjFfY3B0cigmdjEpOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXApyZXR1cm4oczErczIpOwoKaW50IEExMTExMTExMTExMTo6ZjEoKQp7CiAg ICBBTl9CT0RZMTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExMTo6ZjIoKQp7CiAgICBBTl9C T0RZMTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExMTo6ZjMoKQp7CiAgICBBTl9CT0RZMTEx MTExMTExMTsKfQoKaW50IEExMTExMTExMTExMTo6ZjQoKQp7CiAgICBBTl9CT0RZMTExMTExMTEx MTsKfQoKaW50IEExMTExMTExMTExMTo6ZjUoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTsKfQoK aW50IEExMTExMTExMTExMTo6ZjYoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTsKfQoKaW50IEEx MTExMTExMTExMTo6ZjcoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTsKfQoKaW50IEExMTExMTEx MTExMTo6ZjgoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExMTo6 ZjkoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExMTo6ZjEwKCkK ewogICAgQU5fQk9EWTExMTExMTExMTE7Cn0KCgppbnQgbWFpbjExMTExMTExMTEoaW50IGFyZ2Ms IGNoYXIqIGFyZ3ZbXSkKewogICAgQU5fQk9EWTExMTExMTExMTE7Cn0KCgovLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLwoKY2xhc3MgQTExMTExMTExMTExMQp7CiAgICBpbnQgZjEoKTsKICAg IGludCBmMigpOwogICAgaW50IGYzKCk7CiAgICBpbnQgZjQoKTsKICAgIGludCBmNSgpOwogICAg aW50IGY2KCk7CiAgICBpbnQgZjcoKTsKICAgIGludCBmOCgpOwogICAgaW50IGY5KCk7Cn07Cgpj bGFzcyBOZXN0ZWQxMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExCnsKY2xhc3Mg TmVzdGVkMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMQp7CmNsYXNzIE5lc3Rl ZDExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTEx MTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTEx MTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExCnsK Y2xhc3MgTmVzdGVkMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMQp7CmNsYXNz IE5lc3RlZDExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTEKewpjbGFzcyBOZXN0 ZWQxMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTEx MTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTEx MTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMQp7 CmNsYXNzIE5lc3RlZDExMTExMTExMTExCnsKICAgIEExMTExMTExMTExMTEgbTE7Cn07Cn07Cn07 Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07 Cn07CgoKY2xhc3MgQTIKewogICAgc3RkOjpzaGFyZWRfcHRyPEExMTExMTExMTExMTE+IGExcHRy OwogICAgQTIoKSB7QTExMTExMTExMTExMSBhMTsgYTFwdHIgPSAmYTE7fQp9OwoKI2RlZmluZSBB Tl9CT0RZMTExMTExMTExMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgQTExMTExMTExMTExMSB4MTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBBMTExMTExMTExMTExIHgy OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgIHN0ZDo6c3RyaW5nIHMxKHgxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMyKHgyKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKTmVzdGVkMTExMTExMTExMTEgbjE7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmNv bnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgxLCBhMSk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHYxKDEsIG4xKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4g KiB2MV9jcHRyKCZ2MSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCnJldHVybihz MStzMik7CgppbnQgQTExMTExMTExMTExMTo6ZjEoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTE7 Cn0KCmludCBBMTExMTExMTExMTExOjpmMigpCnsKICAgIEFOX0JPRFkxMTExMTExMTExMTsKfQoK aW50IEExMTExMTExMTExMTE6OmYzKCkKewogICAgQU5fQk9EWTExMTExMTExMTExOwp9CgppbnQg QTExMTExMTExMTExMTo6ZjQoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTE7Cn0KCmludCBBMTEx MTExMTExMTExOjpmNSgpCnsKICAgIEFOX0JPRFkxMTExMTExMTExMTsKfQoKaW50IEExMTExMTEx MTExMTE6OmY2KCkKewogICAgQU5fQk9EWTExMTExMTExMTExOwp9CgppbnQgQTExMTExMTExMTEx MTo6ZjcoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTE7Cn0KCmludCBBMTExMTExMTExMTExOjpm OCgpCnsKICAgIEFOX0JPRFkxMTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExMTE6OmY5KCkK ewogICAgQU5fQk9EWTExMTExMTExMTExOwp9CgppbnQgQTExMTExMTExMTExMTo6ZjEwKCkKewog ICAgQU5fQk9EWTExMTExMTExMTExOwp9CgoKaW50IG1haW4xMTExMTExMTExMShpbnQgYXJnYywg Y2hhciogYXJndltdKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTE7Cn0KCgovLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLwoKY2xhc3MgQTExMTExMTExMTExMTEKewogICAgaW50IGYxKCk7CiAg ICBpbnQgZjIoKTsKICAgIGludCBmMygpOwogICAgaW50IGY0KCk7CiAgICBpbnQgZjUoKTsKICAg IGludCBmNigpOwogICAgaW50IGY3KCk7CiAgICBpbnQgZjgoKTsKICAgIGludCBmOSgpOwp9OwoK Y2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xh c3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3Mg TmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVz dGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVk MTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTEx MTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTEx MTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTEx MTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTEx CnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsK Y2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xh c3MgTmVzdGVkMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExCnsKICAgIEEx MTExMTExMTExMTExIG0xOwp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9 Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9OwoKCmNsYXNzIEEyCnsKICAgIHN0ZDo6c2hhcmVk X3B0cjxBMTExMTExMTExMTExMT4gYTFwdHI7CiAgICBBMigpIHtBMTExMTExMTExMTExMSBhMTsg YTFwdHIgPSAmYTE7fQp9OwoKI2RlZmluZSBBTl9CT0RZMTExMTExMTExMTExICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEExMTExMTExMTEx MTExIHgxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgIEExMTExMTExMTExMTExIHgyOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMxKHgxKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3Ry aW5nIHMyKHgyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK TmVzdGVkMTExMTExMTExMTExIG4xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXApjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmlu Zz4gdjEoMSwgYTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmNvbnN0IHN0ZDo6 dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgxLCBuMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICogdjFfY3B0cigmdjEpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXApyZXR1cm4oczErczIpOwoKaW50IEExMTExMTExMTExMTEx OjpmMSgpCnsKICAgIEFOX0JPRFkxMTExMTExMTExMTE7Cn0KCmludCBBMTExMTExMTExMTExMTo6 ZjIoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTExOwp9CgppbnQgQTExMTExMTExMTExMTE6OmYz KCkKewogICAgQU5fQk9EWTExMTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExMTExOjpmNCgp CnsKICAgIEFOX0JPRFkxMTExMTExMTExMTE7Cn0KCmludCBBMTExMTExMTExMTExMTo6ZjUoKQp7 CiAgICBBTl9CT0RZMTExMTExMTExMTExOwp9CgppbnQgQTExMTExMTExMTExMTE6OmY2KCkKewog ICAgQU5fQk9EWTExMTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExMTExOjpmNygpCnsKICAg IEFOX0JPRFkxMTExMTExMTExMTE7Cn0KCmludCBBMTExMTExMTExMTExMTo6ZjgoKQp7CiAgICBB Tl9CT0RZMTExMTExMTExMTExOwp9CgppbnQgQTExMTExMTExMTExMTE6OmY5KCkKewogICAgQU5f Qk9EWTExMTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExMTExOjpmMTAoKQp7CiAgICBBTl9C T0RZMTExMTExMTExMTExOwp9CgoKaW50IG1haW4xMTExMTExMTExMTEoaW50IGFyZ2MsIGNoYXIq IGFyZ3ZbXSkKewogICAgQU5fQk9EWTExMTExMTExMTExMTsKfQoKCi8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCgpjbGFzcyBBMTExMTExMTExMTExMTEKewogICAgaW50IGYxKCk7CiAgICBp bnQgZjIoKTsKICAgIGludCBmMygpOwogICAgaW50IGY0KCk7CiAgICBpbnQgZjUoKTsKICAgIGlu dCBmNigpOwogICAgaW50IGY3KCk7CiAgICBpbnQgZjgoKTsKICAgIGludCBmOSgpOwp9OwoKY2xh c3MgTmVzdGVkMTExMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExMTEKewpjbGFz cyBOZXN0ZWQxMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExMQp7CmNsYXNz IE5lc3RlZDExMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMTExCnsKY2xhc3Mg TmVzdGVkMTExMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExMTEKewpjbGFzcyBO ZXN0ZWQxMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExMQp7CmNsYXNzIE5l c3RlZDExMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMTExCnsKY2xhc3MgTmVz dGVkMTExMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExMTEKewpjbGFzcyBOZXN0 ZWQxMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExMQp7CmNsYXNzIE5lc3Rl ZDExMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVk MTExMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQx MTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDEx MTExMTExMTExMTEKewogICAgQTExMTExMTExMTExMTExIG0xOwp9Owp9Owp9Owp9Owp9Owp9Owp9 Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9Owp9OwoKCmNsYXNz IEEyCnsKICAgIHN0ZDo6c2hhcmVkX3B0cjxBMTExMTExMTExMTExMTE+IGExcHRyOwogICAgQTIo KSB7QTExMTExMTExMTExMTExIGExOyBhMXB0ciA9ICZhMTt9Cn07CgojZGVmaW5lIEFOX0JPRFkx MTExMTExMTExMTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgIEExMTExMTExMTExMTExMSB4MTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBBMTExMTExMTExMTExMTEgeDI7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgc3RkOjpzdHJpbmcgczEoeDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgc3RkOjpzdHJpbmcgczIoeDIpOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXApOZXN0ZWQxMTExMTExMTExMTExIG4xOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApj b25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdjEoMSwgYTEpOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCmNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgxLCBuMSk7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ ICogdjFfY3B0cigmdjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApyZXR1cm4o czErczIpOwoKaW50IEExMTExMTExMTExMTExMTo6ZjEoKQp7CiAgICBBTl9CT0RZMTExMTExMTEx MTExMTsKfQoKaW50IEExMTExMTExMTExMTExMTo6ZjIoKQp7CiAgICBBTl9CT0RZMTExMTExMTEx MTExMTsKfQoKaW50IEExMTExMTExMTExMTExMTo6ZjMoKQp7CiAgICBBTl9CT0RZMTExMTExMTEx MTExMTsKfQoKaW50IEExMTExMTExMTExMTExMTo6ZjQoKQp7CiAgICBBTl9CT0RZMTExMTExMTEx MTExMTsKfQoKaW50IEExMTExMTExMTExMTExMTo6ZjUoKQp7CiAgICBBTl9CT0RZMTExMTExMTEx MTExMTsKfQoKaW50IEExMTExMTExMTExMTExMTo6ZjYoKQp7CiAgICBBTl9CT0RZMTExMTExMTEx MTExMTsKfQoKaW50IEExMTExMTExMTExMTExMTo6ZjcoKQp7CiAgICBBTl9CT0RZMTExMTExMTEx MTExMTsKfQoKaW50IEExMTExMTExMTExMTExMTo6ZjgoKQp7CiAgICBBTl9CT0RZMTExMTExMTEx MTExMTsKfQoKaW50IEExMTExMTExMTExMTExMTo6ZjkoKQp7CiAgICBBTl9CT0RZMTExMTExMTEx MTExMTsKfQoKaW50IEExMTExMTExMTExMTExMTo6ZjEwKCkKewogICAgQU5fQk9EWTExMTExMTEx MTExMTE7Cn0KCgppbnQgbWFpbjExMTExMTExMTExMTEoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK ewogICAgQU5fQk9EWTExMTExMTExMTExMTE7Cn0KCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLwoKY2xhc3MgQTExMTExMTExMTExMTExMQp7CiAgICBpbnQgZjEoKTsKICAgIGludCBmMigp OwogICAgaW50IGYzKCk7CiAgICBpbnQgZjQoKTsKICAgIGludCBmNSgpOwogICAgaW50IGY2KCk7 CiAgICBpbnQgZjcoKTsKICAgIGludCBmOCgpOwogICAgaW50IGY5KCk7Cn07CgpjbGFzcyBOZXN0 ZWQxMTExMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExMTExCnsKY2xhc3MgTmVz dGVkMTExMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMTExMQp7CmNsYXNzIE5l c3RlZDExMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExMTEKewpjbGFzcyBO ZXN0ZWQxMTExMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExMTExCnsKY2xhc3Mg TmVzdGVkMTExMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMTExMQp7CmNsYXNz IE5lc3RlZDExMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExMTEKewpjbGFz cyBOZXN0ZWQxMTExMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExMTExCnsKY2xh c3MgTmVzdGVkMTExMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMTExMQp7CmNs YXNzIE5lc3RlZDExMTExMTExMTExMTExCnsKY2xhc3MgTmVzdGVkMTExMTExMTExMTExMTEKewpj bGFzcyBOZXN0ZWQxMTExMTExMTExMTExMQp7CmNsYXNzIE5lc3RlZDExMTExMTExMTExMTExCnsK Y2xhc3MgTmVzdGVkMTExMTExMTExMTExMTEKewpjbGFzcyBOZXN0ZWQxMTExMTExMTExMTExMQp7 CmNsYXNzIE5lc3RlZDExMTExMTExMTExMTExCnsKICAgIEExMTExMTExMTExMTExMTEgbTE7Cn07 Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07Cn07 Cn07Cn07Cn07CgoKY2xhc3MgQTIKewogICAgc3RkOjpzaGFyZWRfcHRyPEExMTExMTExMTExMTEx MTE+IGExcHRyOwogICAgQTIoKSB7QTExMTExMTExMTExMTExMSBhMTsgYTFwdHIgPSAmYTE7fQp9 OwoKI2RlZmluZSBBTl9CT0RZMTExMTExMTExMTExMTEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgQTExMTExMTExMTExMTExMSB4MTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICBBMTExMTExMTExMTExMTExIHgyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMxKHgxKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHN0ZDo6c3RyaW5nIHMyKHgy KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKTmVzdGVkMTEx MTExMTExMTExMTEgbjE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCmNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2MSgx LCBhMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKY29uc3Qgc3RkOjp2ZWN0b3I8 c3RkOjpzdHJpbmc+IHYxKDEsIG4xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApz dGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gKiB2MV9jcHRyKCZ2MSk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCnJldHVybihzMStzMik7CgppbnQgQTExMTExMTExMTExMTExMTo6ZjEo KQp7CiAgICBBTl9CT0RZMTExMTExMTExMTExMTE7Cn0KCmludCBBMTExMTExMTExMTExMTExOjpm MigpCnsKICAgIEFOX0JPRFkxMTExMTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTExMTExMTE6 OmYzKCkKewogICAgQU5fQk9EWTExMTExMTExMTExMTExOwp9CgppbnQgQTExMTExMTExMTExMTEx MTo6ZjQoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTExMTE7Cn0KCmludCBBMTExMTExMTExMTEx MTExOjpmNSgpCnsKICAgIEFOX0JPRFkxMTExMTExMTExMTExMTsKfQoKaW50IEExMTExMTExMTEx MTExMTE6OmY2KCkKewogICAgQU5fQk9EWTExMTExMTExMTExMTExOwp9CgppbnQgQTExMTExMTEx MTExMTExMTo6ZjcoKQp7CiAgICBBTl9CT0RZMTExMTExMTExMTExMTE7Cn0KCmludCBBMTExMTEx MTExMTExMTExOjpmOCgpCnsKICAgIEFOX0JPRFkxMTExMTExMTExMTExMTsKfQoKaW50IEExMTEx MTExMTExMTExMTE6OmY5KCkKewogICAgQU5fQk9EWTExMTExMTExMTExMTExOwp9CgppbnQgQTEx MTExMTExMTExMTExMTo6ZjEwKCkKewogICAgQU5fQk9EWTExMTExMTExMTExMTExOwp9CgoKaW50 IG1haW4xMTExMTExMTExMTExMShpbnQgYXJnYywgY2hhciogYXJndltdKQp7CiAgICBBTl9CT0RZ MTExMTExMTExMTExMTE7Cn0KCgo= --000000000000f4f3e505ba031840--