From libssh2-devel-bounces@cool.haxx.se Thu Jul 19 20:19:38 2018 Return-Path: Received: from www.haxx.se (mail [127.0.0.1]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTP id w6JIIxuL011865; Thu, 19 Jul 2018 20:19:27 +0200 Received: from mail-qk0-x22b.google.com (mail-qk0-x22b.google.com [IPv6:2607:f8b0:400d:c09:0:0:0:22b]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTPS id w6JIIuSu011809 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 19 Jul 2018 20:18:57 +0200 Received: by mail-qk0-x22b.google.com with SMTP id o2-v6so4807372qkc.13 for ; Thu, 19 Jul 2018 11:18:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=CZ7Kb03uhNyMsM1SqBr+gzyxgamd/07I3PNIFfVSCJo=; b=f2iSLu48k+xtSPgqnhnli7Qt9q3RVVo292GT8qa7Va5hNZT7BjMMRsE6nmADgtl2g1 +wnzmrtxfy+rLrGCxlVZ+17Rner5ihYKWKNQiZcC1AMU7Lnto4UPoEe50ZRA1ChO0PC3 PEy7WFJQT91oliRyKW1QsNEWbZC06gIFIHFfD5F2KKVSnbU5+hZUL5Jc/UNUYwMXPczE rbaEH/uQ3ma5ewY2gfpAWPp7kVgAR2ggQ8YAcs+IeabCuV1/UQAJ3cXdAsNXscEjvnwY 2Oyam6WsneNv8NNgiTiYI+I8fZWQV9wkLCz92uQf46sLgxRiH54JWT9AlN1T50b6Ck5n S9cQ== 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; bh=CZ7Kb03uhNyMsM1SqBr+gzyxgamd/07I3PNIFfVSCJo=; b=in0BocNEPtcQ0TW/de1gowlR3naSZuRgjuUGpkzg/+P6ClvcpWWyICw2xbQS0hcoAe PI0dUbUtJDKtDnVn/QDITvhkFj/QRzRwxr3Crl4Y4ADiOGLznoE41fJ3K5J2eRsiR5I2 43vJ8LibzDo41nE0qyOv6h2CY0L+hKE9eCU5RYkElm5UKkL1rGb3wzrJ61b605eCJuOg 2m1MxAZtE52c1zj6Np5kZqJnJRT4o/iiGi9w2ezxyKeAglyYYGNH1vcRXX98PHNLJ8xY wtiRQnCe4lMvb25NaTnXeJ1utlEhVOUAKoAT0yamZAjsz40Eqm5xapUP7ZcJfAKin9ez TUaw== X-Gm-Message-State: AOUpUlGtBtFeg82d82BoDuU8GV0qXtQGvk9N+KqJPwgJv+X9GQmU345+ YXuw4H2HgMFuibPeCCykzsCFsUWgoNyFz/qiRt5iFENl X-Google-Smtp-Source: AAOMgpdbvGBSx+/UCXTntOdn8WX1kSqQgqYtMYwa2vRRWXChoAwRYACJF6Wk1Fk2yJnfr1yVCI42hjlUPVFBnjTBXzc= X-Received: by 2002:a37:8045:: with SMTP id b66-v6mr10228613qkd.130.1532024332308; Thu, 19 Jul 2018 11:18:52 -0700 (PDT) MIME-Version: 1.0 From: Milind Gupta Date: Thu, 19 Jul 2018 11:18:40 -0700 Message-ID: Subject: Windows compilation help To: libssh2-devel@cool.haxx.se X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.22 Precedence: list List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: libssh2 development Content-Type: multipart/mixed; boundary="===============1310915640==" Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" --===============1310915640== Content-Type: multipart/alternative; boundary="0000000000001d543905715e3683" --0000000000001d543905715e3683 Content-Type: text/plain; charset="UTF-8" Hi, When I run configure using MinGW I see the following warning: checking winsock2.h usability... no checking winsock2.h presence... yes configure: WARNING: winsock2.h: present but cannot be compiled configure: WARNING: winsock2.h: check for missing prerequisite headers? configure: WARNING: winsock2.h: see the Autoconf documentation configure: WARNING: winsock2.h: section "Present But Cannot Be Compiled" configure: WARNING: winsock2.h: proceeding with the compiler's result configure: WARNING: ## ----------------------------------------- ## configure: WARNING: ## Report this to libssh2-devel@cool.haxx.se ## configure: WARNING: ## ----------------------------------------- ## checking for winsock2.h... no checking ws2tcpip.h usability... no checking ws2tcpip.h presence... yes configure: WARNING: ws2tcpip.h: present but cannot be compiled configure: WARNING: ws2tcpip.h: check for missing prerequisite headers? configure: WARNING: ws2tcpip.h: see the Autoconf documentation configure: WARNING: ws2tcpip.h: section "Present But Cannot Be Compiled" configure: WARNING: ws2tcpip.h: proceeding with the compiler's result configure: WARNING: ## ----------------------------------------- ## configure: WARNING: ## Report this to libssh2-devel@cool.haxx.se ## configure: WARNING: ## ----------------------------------------- ## checking for ws2tcpip.h... no Subsequent make shows error like undefined type SOCKET etc. Please let me know how should I proceed to get around these errors. Thanks, Milind --0000000000001d543905715e3683 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,
=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0When I run configure using MinGW I see the foll= owing warning:

checking= winsock2.h usability... no
checking winsock2.h presence... yes
configure: WARNING: winsock2.h: present but cannot be compiled
configure: WARNING: winsock2.h:=C2=A0 =C2=A0 =C2=A0check for missing= prerequisite headers?
configure: WARNING: winsock2.h: see the Au= toconf documentation
configure: WARNING: winsock2.h:=C2=A0 =C2=A0= =C2=A0section "Present But Cannot Be Compiled"
configu= re: WARNING: winsock2.h: proceeding with the compiler's result
configure: WARNING:=C2=A0 =C2=A0 =C2=A0## -------------------------------= ---------- ##
configure: WARNING:=C2=A0 =C2=A0 =C2=A0## Report th= is to=C2=A0libssh= 2-devel@cool.haxx.se=C2=A0##
configure: W= ARNING:=C2=A0 =C2=A0 =C2=A0## ----------------------------------------- ##<= /div>
checking for winsock2.h... no
checking ws2tcpip.h usabi= lity... no
checking ws2tcpip.h presence... yes
configur= e: WARNING: ws2tcpip.h: present but cannot be compiled
configure:= WARNING: ws2tcpip.h:=C2=A0 =C2=A0 =C2=A0check for missing prerequisite hea= ders?
configure: WARNING: ws2tcpip.h: see the Autoconf documentat= ion
configure: WARNING: ws2tcpip.h:=C2=A0 =C2=A0 =C2=A0section &q= uot;Present But Cannot Be Compiled"
configure: WARNING: ws2t= cpip.h: proceeding with the compiler's result
configure: WARN= ING:=C2=A0 =C2=A0 =C2=A0## ----------------------------------------- ##
configure: WARNING:=C2=A0 =C2=A0 =C2=A0## Report this to=C2=A0= libssh2-devel@co= ol.haxx.se=C2=A0##
configure: WARNING:=C2=A0 =C2= =A0 =C2=A0## ----------------------------------------- ##
checkin= g for ws2tcpip.h... no


Subsequent make shows error like undefined type = SOCKET etc.=C2=A0
Please let me know how should I proc= eed to get around these errors.

Thanks,
Milind

--0000000000001d543905715e3683-- --===============1310915640== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlic3NoMi1k ZXZlbCBodHRwczovL2Nvb2wuaGF4eC5zZS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbGlic3No Mi1kZXZlbAo= --===============1310915640==-- From libssh2-devel-bounces@cool.haxx.se Thu Jul 19 20:48:31 2018 Return-Path: Received: from www.haxx.se (mail [127.0.0.1]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTP id w6JImHcQ002263; Thu, 19 Jul 2018 20:48:28 +0200 Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.10]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTPS id w6JImFv3002209 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 19 Jul 2018 20:48:16 +0200 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 41WjhK17YBz1qvnY for ; Thu, 19 Jul 2018 20:48:16 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 41WjhJ1XHWz20xSj for ; Thu, 19 Jul 2018 20:48:16 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id ybnzG-_I_bFN for ; Thu, 19 Jul 2018 20:48:15 +0200 (CEST) X-Auth-Info: +0igfAgI0y1PgM5s23+OjbcCLkmUULrAt7Liq3ZCveDb+mlDSK+lNNT/gB2WzSjn Received: from colibri.localdomain (ppp-188-174-31-40.dynamic.mnet-online.de [188.174.31.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA for ; Thu, 19 Jul 2018 20:48:15 +0200 (CEST) Received: by colibri.localdomain (Postfix, from userid 501) id EEF0C5F87B; Thu, 19 Jul 2018 20:48:14 +0200 (CEST) Date: Thu, 19 Jul 2018 20:48:14 +0200 From: Dan Fandrich To: libssh2-devel@cool.haxx.se Subject: Re: Windows compilation help Message-ID: <20180719184814.GA22595@coneharvesters.com> Mail-Followup-To: libssh2-devel@cool.haxx.se References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.22 Precedence: list List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: libssh2 development Content-Type: text/plain; charset="utf-8" Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id w6JImHcQ002263 On Thu, Jul 19, 2018 at 11:18:40AM -0700, Milind Gupta wrote: >          When I run configure using MinGW I see the following warning: > > checking winsock2.h usability... no > checking winsock2.h presence... yes > configure: WARNING: winsock2.h: present but cannot be compiled > configure: WARNING: winsock2.h:     check for missing prerequisite headers? > configure: WARNING: winsock2.h: see the Autoconf documentation > configure: WARNING: winsock2.h:     section "Present But Cannot Be Compiled" > configure: WARNING: winsock2.h: proceeding with the compiler's result > configure: WARNING:     ## ----------------------------------------- ## > configure: WARNING:     ## Report this to libssh2-devel@cool.haxx.se ## > configure: WARNING:     ## ----------------------------------------- ## > checking for winsock2.h... no > checking ws2tcpip.h usability... no > checking ws2tcpip.h presence... yes > configure: WARNING: ws2tcpip.h: present but cannot be compiled > configure: WARNING: ws2tcpip.h:     check for missing prerequisite headers? > configure: WARNING: ws2tcpip.h: see the Autoconf documentation > configure: WARNING: ws2tcpip.h:     section "Present But Cannot Be Compiled" > configure: WARNING: ws2tcpip.h: proceeding with the compiler's result > configure: WARNING:     ## ----------------------------------------- ## > configure: WARNING:     ## Report this to libssh2-devel@cool.haxx.se ## > configure: WARNING:     ## ----------------------------------------- ## > checking for ws2tcpip.h... no > > Subsequent make shows error like undefined type SOCKET etc.  > Please let me know how should I proceed to get around these errors. Did you check for missing prerequisite headers? Take a look in config.log for the sections showing these warnings and you'll probably see some errors regarding missing header files. Dan _______________________________________________ libssh2-devel https://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Fri Jul 20 08:35:10 2018 Return-Path: Received: from www.haxx.se (mail [127.0.0.1]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTP id w6K6YY52025875; Fri, 20 Jul 2018 08:34:59 +0200 Received: from mail-qt0-x22e.google.com (mail-qt0-x22e.google.com [IPv6:2607:f8b0:400d:c0d:0:0:0:22e]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTPS id w6K6YV3V025769 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 20 Jul 2018 08:34:32 +0200 Received: by mail-qt0-x22e.google.com with SMTP id y5-v6so9385886qti.12 for ; Thu, 19 Jul 2018 23:34:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=e0skafrZzeDPIeeWAkVwDHMETcPZUI5kBrU0d64ShX8=; b=Qf6oSuEwhipUyCdfjHmXUNlTpCwgcMg+XvRoum4l0pNFpkOyOvqlVxXiayQ69hgZZ6 Vz514feZFh6aEH3Dt+Zl/qPCnVeYyMJMGBtImQ8T23SIsxib+j5UFZfLuwo9CIae7/hf iW2kewrrQhZET7dEHnDBUnicF2Qkf1F3W60PJipthrxt1KNY7Ku+w4s+B5CTUwHk9Jar PkMjsS7mC7AtJXAiiCaWg63CAe2X69lMzWnCfTiFklkbdtBl2tjlN7sFAryu0+00RO85 bF38o54zY+NS7LFSsaEVm3MdCy+BigxcKD/mxZ87Bd02j79C7wxpdHguFBe56JJ6KWlF w19g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=e0skafrZzeDPIeeWAkVwDHMETcPZUI5kBrU0d64ShX8=; b=LGAWC9GOSsCU7Rp9ggnE23E1hDjZ90H7KVwWK5HyhTy7gYaC6wTVqqN8LHatleI/ct 4FqWXyUcxGN+v1/ZNk5NeSVSscC86GKah2rOY2XLwzHlYS9bUjGTc8IKxjLyXH+26J6x oVR57bEP8Ng/p+G5K+e5nNN2hNaVbPrqb141tq6VWsx/Cx6eaKXQMPiib/TfBdqyZXLC yHgx3q19qae2Joh4F+Gi+rEut0r3qnQ4q0/kQYPuPIMxQILJqTdYXhOpu3RDO7LOiFSg fes9GwUqOWCePBGUQgHLetQ6sh6hRLeqtLjg27jMj8a3AcC9JeaH19wlIfKs2Njm4p6/ SPew== X-Gm-Message-State: AOUpUlGwfMVb5oBlcYHZRXlKsJ9Rxs4iHYZPHq+4Os4UGXd3mcV5mZAs 0/0P/0WFhsDCSDp4zDyb+GXod499wUTmGLEOboTwNHxJ X-Google-Smtp-Source: AAOMgpdkJ/TVPQijS7Ur09XwdghdJ0Az3VqQF+ZxsBOQW6lSiutQy6fF8jVgZqLRs2oIGtgqmPX/3iuYGtr6sUtma0Q= X-Received: by 2002:aed:38c9:: with SMTP id k67-v6mr226050qte.390.1532068465427; Thu, 19 Jul 2018 23:34:25 -0700 (PDT) MIME-Version: 1.0 References: <20180719184814.GA22595@coneharvesters.com> In-Reply-To: <20180719184814.GA22595@coneharvesters.com> From: Milind Gupta Date: Thu, 19 Jul 2018 23:34:14 -0700 Message-ID: Subject: Re: Windows compilation help To: libssh2-devel@cool.haxx.se Content-Type: multipart/mixed; boundary="000000000000a767320571687cfe" X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.22 Precedence: list List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: libssh2 development Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" --000000000000a767320571687cfe Content-Type: multipart/alternative; boundary="000000000000a767300571687cfc" --000000000000a767300571687cfc Content-Type: text/plain; charset="UTF-8" Thanks for the tip. I looked at config.log and here is a portion from that error in there: In file included from conftest.c:79:0: /usr/include/w32api/winsock2.h:1004:34: error: conflicting types for 'gethostname' WINSOCK_API_LINKAGE int WSAAPI gethostname(char *name,int namelen); I have attached the config.log file. I found a similar error reported for imagemagick and I think they did a patch for it. On Thu, Jul 19, 2018 at 11:50 AM Dan Fandrich wrote: > On Thu, Jul 19, 2018 at 11:18:40AM -0700, Milind Gupta wrote: > > When I run configure using MinGW I see the following warning: > > > > checking winsock2.h usability... no > > checking winsock2.h presence... yes > > configure: WARNING: winsock2.h: present but cannot be compiled > > configure: WARNING: winsock2.h: check for missing prerequisite > headers? > > configure: WARNING: winsock2.h: see the Autoconf documentation > > configure: WARNING: winsock2.h: section "Present But Cannot Be > Compiled" > > configure: WARNING: winsock2.h: proceeding with the compiler's result > > configure: WARNING: ## ----------------------------------------- ## > > configure: WARNING: ## Report this to libssh2-devel@cool.haxx.se ## > > configure: WARNING: ## ----------------------------------------- ## > > checking for winsock2.h... no > > checking ws2tcpip.h usability... no > > checking ws2tcpip.h presence... yes > > configure: WARNING: ws2tcpip.h: present but cannot be compiled > > configure: WARNING: ws2tcpip.h: check for missing prerequisite > headers? > > configure: WARNING: ws2tcpip.h: see the Autoconf documentation > > configure: WARNING: ws2tcpip.h: section "Present But Cannot Be > Compiled" > > configure: WARNING: ws2tcpip.h: proceeding with the compiler's result > > configure: WARNING: ## ----------------------------------------- ## > > configure: WARNING: ## Report this to libssh2-devel@cool.haxx.se ## > > configure: WARNING: ## ----------------------------------------- ## > > checking for ws2tcpip.h... no > > > > Subsequent make shows error like undefined type SOCKET etc. > > Please let me know how should I proceed to get around these errors. > > Did you check for missing prerequisite headers? Take a look in config.log > for > the sections showing these warnings and you'll probably see some errors > regarding missing header files. > > Dan > _______________________________________________ > libssh2-devel https://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel > --000000000000a767300571687cfc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks for the tip. I looked at config.log and here is a p= ortion from that error in there:

In file included f= rom conftest.c:79:0:
/usr/include/w32api/winsock2.h:1004:34: erro= r: conflicting types for 'gethostname'
=C2=A0 =C2=A0WINSO= CK_API_LINKAGE int WSAAPI gethostname(char *name,int namelen);
<= div>
I have attached the config.log file. I found a similar e= rror reported for imagemagick and I think they did a patch for it.



On Thu, Jul 19, 2018 at 11:50 AM Dan Fandrich <dan@coneharvesters.com> wrote:
On Thu, Jul 19, 2018 at 11:18:40AM -0700, Milind = Gupta wrote:
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0When I run configure using MinGW I s= ee the following warning:
>
> checking winsock2.h usability... no
> checking winsock2.h presence... yes
> configure: WARNING: winsock2.h: present but cannot be compiled
> configure: WARNING: winsock2.h:=C2=A0 =C2=A0 =C2=A0check for missing p= rerequisite headers?
> configure: WARNING: winsock2.h: see the Autoconf documentation
> configure: WARNING: winsock2.h:=C2=A0 =C2=A0 =C2=A0section "Prese= nt But Cannot Be Compiled"
> configure: WARNING: winsock2.h: proceeding with the compiler's res= ult
> configure: WARNING:=C2=A0 =C2=A0 =C2=A0## ----------------------------= ------------- ##
> configure: WARNING:=C2=A0 =C2=A0 =C2=A0## Report this to=C2=A0libssh2-devel@cool= .haxx.se=C2=A0##
> configure: WARNING:=C2=A0 =C2=A0 =C2=A0## ----------------------------= ------------- ##
> checking for winsock2.h... no
> checking ws2tcpip.h usability... no
> checking ws2tcpip.h presence... yes
> configure: WARNING: ws2tcpip.h: present but cannot be compiled
> configure: WARNING: ws2tcpip.h:=C2=A0 =C2=A0 =C2=A0check for missing p= rerequisite headers?
> configure: WARNING: ws2tcpip.h: see the Autoconf documentation
> configure: WARNING: ws2tcpip.h:=C2=A0 =C2=A0 =C2=A0section "Prese= nt But Cannot Be Compiled"
> configure: WARNING: ws2tcpip.h: proceeding with the compiler's res= ult
> configure: WARNING:=C2=A0 =C2=A0 =C2=A0## ----------------------------= ------------- ##
> configure: WARNING:=C2=A0 =C2=A0 =C2=A0## Report this to=C2=A0libssh2-devel@cool= .haxx.se=C2=A0##
> configure: WARNING:=C2=A0 =C2=A0 =C2=A0## ----------------------------= ------------- ##
> checking for ws2tcpip.h... no
>
> Subsequent make shows error like undefined type SOCKET etc.=C2=A0
> Please let me know how should I proceed to get around these errors.
Did you check for missing prerequisite headers?=C2=A0 Take a look in config= .log for
the sections showing these warnings and you'll probably see some errors=
regarding missing header files.

Dan
_______________________________________________
libssh2-devel https://cool.haxx.se/cgi-bi= n/mailman/listinfo/libssh2-devel
--000000000000a767300571687cfc-- --000000000000a767320571687cfe Content-Type: application/octet-stream; name="config.log" Content-Disposition: attachment; filename="config.log" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jjtlzwpd0 VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IGxpYnNzaDIgY29uZmlndXJlIC0sIHdoaWNo IHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjkuICBJbnZvY2F0aW9uIGNvbW1hbmQg bGluZSB3YXMKCiAgJCAuL2NvbmZpZ3VyZSAKCiMjIC0tLS0tLS0tLSAjIwojIyBQbGF0Zm9ybS4g IyMKIyMgLS0tLS0tLS0tICMjCgpob3N0bmFtZSA9IERFU0tUT1AtT01ETDI2Uwp1bmFtZSAtbSA9 IGk2ODYKdW5hbWUgLXIgPSAyLjEwLjAoMC4zMjUvNS8zKQp1bmFtZSAtcyA9IE1TWVNfTlQtMTAu MC1XT1cKdW5hbWUgLXYgPSAyMDE4LTAyLTA5IDE0OjUwCgovdXNyL2Jpbi91bmFtZSAtcCA9IHVu a25vd24KL2Jpbi91bmFtZSAtWCAgICAgPSB1bmtub3duCgovYmluL2FyY2ggICAgICAgICAgICAg ID0gaTY4NgovdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gdW5rbm93bgovdXNyL2NvbnZleC9nZXRz eXNpbmZvID0gdW5rbm93bgovdXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gdW5rbm93bgovYmluL21h Y2hpbmUgICAgICAgICAgID0gdW5rbm93bgovdXNyL2Jpbi9vc2xldmVsICAgICAgID0gdW5rbm93 bgovYmluL3VuaXZlcnNlICAgICAgICAgID0gdW5rbm93bgoKUEFUSDogL3Vzci9sb2NhbC9iaW4K UEFUSDogL3Vzci9iaW4KUEFUSDogL2JpbgpQQVRIOiAvb3B0L2JpbgpQQVRIOiAvYy9XaW5kb3dz L1N5c3RlbTMyClBBVEg6IC9jL1dpbmRvd3MKUEFUSDogL2MvV2luZG93cy9TeXN0ZW0zMi9XYmVt ClBBVEg6IC9jL1dpbmRvd3MvU3lzdGVtMzIvV2luZG93c1Bvd2VyU2hlbGwvdjEuMC8KCgojIyAt LS0tLS0tLS0tLSAjIwojIyBDb3JlIHRlc3RzLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoKY29uZmln dXJlOjIzMTU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgL2V0Yy9jb25maWcuc2l0ZQp8ICMgVGhpcyBm aWxlIGlzIGluIHB1YmxpYyBkb21haW4uCnwgIyBPcmlnaW5hbCBhdXRob3I6IEthcmxzb24yayAo RXZnZW55IEdyaW4pCnwgIyBXcml0dGVuIGZvciBNU3lzMiB0byBoZWxwIHJ1bm5pbmcgJ2NvbmZp Z3VyZScgc2NyaXB0cwp8IAp8ICMgVXNlIGNvcnJlY3QgY29uZmlnLnNpdGUgZXZlbiBpZiBDT05G SUdfU0lURSBpcyBub3Qgc2V0CnwgaWYgdGVzdCAieCRNU1lTVEVNIiA9ICJ4TUlOR1c2NCI7IHRo ZW4KfCAgIGlmIHRlc3QgLXIgIiR7TUlOR1dfUFJFRklYLS9taW5ndzY0fS9ldGMvY29uZmlnLnNp dGUiOyB0aGVuCnwgICAgIC4gIiR7TUlOR1dfUFJFRklYLS9taW5ndzY0fS9ldGMvY29uZmlnLnNp dGUiCnwgICBmaQp8IGVsaWYgdGVzdCAieCRNU1lTVEVNIiA9ICJ4TUlOR1czMiI7IHRoZW4KfCAg IGlmIHRlc3QgLXIgIiR7TUlOR1dfUFJFRklYLS9taW5ndzMyfS9ldGMvY29uZmlnLnNpdGUiOyB0 aGVuCnwgICAgIC4gIiR7TUlOR1dfUFJFRklYLS9taW5ndzMyfS9ldGMvY29uZmlnLnNpdGUiCnwg ICBmaQp8IGVsc2UKfCAgICMgRGVmYXVsdHMgZm9yIE1TeXMyLXRhcmdldGVkIHByb2dyYW1zCnwg CnwgICAjIFNldCBwcm9wZXIgc2VsZm5hbWUgb24gYmFzaCBhbmQgZmFsbGJhY2sgdG8gZGVmYXVs dCBuYW1lIG9uIG90aGVyIHNoZWxscwp8ICAgdGVzdCAtbiAiJHtCQVNIX1NPVVJDRX0iIDI+L2Rl di9udWxsICYmIGNvbmZpZ19zaXRlX21lPSIke0JBU0hfU09VUkNFWzBdIyMqL30iIHx8IGNvbmZp Z19zaXRlX21lPWNvbmZpZy5zaXRlCnwgCnwgICAjIFNldCBkZWZhdWx0ICdob3N0JyB0byBzcGVl ZHVwIGNvbmZpZ3VyZQp8ICAgaWYgdGVzdCAteiAiJGJ1aWxkX2FsaWFzIjsgdGhlbgp8ICAgICBi dWlsZF9hbGlhcz0iJHtNU1lTVEVNX0NBUkNILXg4Nl82NH0tcGMtbXN5cyIgICYmIFwKfCAgICAg ICAkYXNfZWNobyAiJGNvbmZpZ19zaXRlX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBkZWZhdWx0 IGJ1aWxkX2FsaWFzIHNldCB0byAkYnVpbGRfYWxpYXMiID4mNSAKfCAgIGZpCnwgCnwgICAjIFNl dCBkZWZhdWx0ICdwcmVmaXgnIHRvICIvdXNyIgp8ICAgaWYgKCB0ZXN0IC16ICIkcHJlZml4IiB8 fCB0ZXN0ICJ4JHByZWZpeCIgPSAieE5PTkUiICkgJiYgXAp8ICAgICAgKCB0ZXN0IC16ICIkZXhl Y19wcmVmaXgiIHx8IHRlc3QgIngkZXhlY19wcmVmaXgiID0gInhOT05FIiApOyB0aGVuCnwgICAg IHByZWZpeD0iJHtNU1lTVEVNX1BSRUZJWC0vdXNyfSIgJiYgXAp8ICAgICAgICRhc19lY2hvICIk Y29uZmlnX3NpdGVfbWU6JHthc19saW5lbm8tJExJTkVOT306IGRlZmF1bHQgcHJlZml4IHNldCB0 byAkcHJlZml4IiA+JjUKfCAgIGZpCnwgCnwgZmkKY29uZmlnLnNpdGU6MjM6IGRlZmF1bHQgYnVp bGRfYWxpYXMgc2V0IHRvIGk2ODYtcGMtbXN5cwpjb25maWcuc2l0ZTozMDogZGVmYXVsdCBwcmVm aXggc2V0IHRvIC91c3IKY29uZmlndXJlOjI0MTY6IGNoZWNraW5nIHdoZXRoZXIgdG8gZW5hYmxl IG1haW50YWluZXItc3BlY2lmaWMgcG9ydGlvbnMgb2YgTWFrZWZpbGVzCmNvbmZpZ3VyZToyNDI1 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNDQ5OiBjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9y dHMgbmVzdGVkIHZhcmlhYmxlcwpjb25maWd1cmU6MjQ2NjogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjI0ODA6IGNoZWNraW5nIGZvciBzZWQKY29uZmlndXJlOjI0OTk6IGZvdW5kIC91c3IvYmluL3Nl ZApjb25maWd1cmU6MjUxMjogcmVzdWx0OiAvdXNyL2Jpbi9zZWQKY29uZmlndXJlOjI1NzM6IGNo ZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwKY29uZmlndXJlOjI2NDE6IHJlc3Vs dDogL3Vzci9iaW4vaW5zdGFsbCAtYwpjb25maWd1cmU6MjY1MjogY2hlY2tpbmcgd2hldGhlciBi dWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lCmNvbmZpZ3VyZToyNzA3OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6Mjg1ODogY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAKY29uZmlndXJl OjI4OTc6IHJlc3VsdDogL3Vzci9iaW4vbWtkaXIgLXAKY29uZmlndXJlOjI5MDQ6IGNoZWNraW5n IGZvciBnYXdrCmNvbmZpZ3VyZToyOTIwOiBmb3VuZCAvdXNyL2Jpbi9nYXdrCmNvbmZpZ3VyZToy OTMxOiByZXN1bHQ6IGdhd2sKY29uZmlndXJlOjI5NDI6IGNoZWNraW5nIHdoZXRoZXIgbWFrZSBz ZXRzICQoTUFLRSkKY29uZmlndXJlOjI5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMDk3OiBj aGVja2luZyBsaWJzc2gyIHZlcnNpb24KY29uZmlndXJlOjMwOTk6IHJlc3VsdDogMS44LjFfREVW CmNvbmZpZ3VyZTozMTEwOiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZQpjb25maWd1cmU6MzEy NDogcmVzdWx0OiBpNjg2LXBjLW1zeXMKY29uZmlndXJlOjMxNDQ6IGNoZWNraW5nIGhvc3Qgc3lz dGVtIHR5cGUKY29uZmlndXJlOjMxNTc6IHJlc3VsdDogaTY4Ni1wYy1tc3lzCmNvbmZpZ3VyZToz MTg0OiBhdXRvYnVpbGQgcHJvamVjdC4uLiBsaWJzc2gyCmNvbmZpZ3VyZTozMTkwOiBhdXRvYnVp bGQgcmV2aXNpb24uLi4gMS44LjFfREVWCmNvbmZpZ3VyZTozMTk1OiBhdXRvYnVpbGQgaG9zdG5h bWUuLi4gREVTS1RPUC1PTURMMjZTCmNvbmZpZ3VyZTozMjA2OiBhdXRvYnVpbGQgdGltZXN0YW1w Li4uIDIwMTgwNzEyLTAwMTA0Ngpjb25maWd1cmU6MzI0NzogY2hlY2tpbmcgZm9yIHN0eWxlIG9m IGluY2x1ZGUgdXNlZCBieSBtYWtlCmNvbmZpZ3VyZTozMjc1OiByZXN1bHQ6IEdOVQpjb25maWd1 cmU6MzM0NjogY2hlY2tpbmcgZm9yIGdjYwpjb25maWd1cmU6MzM2MjogZm91bmQgL3Vzci9iaW4v Z2NjCmNvbmZpZ3VyZTozMzczOiByZXN1bHQ6IGdjYwpjb25maWd1cmU6MzYwMjogY2hlY2tpbmcg Zm9yIEMgY29tcGlsZXIgdmVyc2lvbgpjb25maWd1cmU6MzYxMTogZ2NjIC0tdmVyc2lvbiA+JjUK Z2NjIChHQ0MpIDcuMy4wCkNvcHlyaWdodCAoQykgMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWlu ZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8Kd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCgpjb25maWd1cmU6 MzYyMjogJD8gPSAwCmNvbmZpZ3VyZTozNjExOiBnY2MgLXYgPiY1ClVzaW5nIGJ1aWx0LWluIHNw ZWNzLgpDT0xMRUNUX0dDQz1nY2MKQ09MTEVDVF9MVE9fV1JBUFBFUj0vdXNyL2xpYi9nY2MvaTY4 Ni1wYy1tc3lzLzcuMy4wL2x0by13cmFwcGVyLmV4ZQpUYXJnZXQ6IGk2ODYtcGMtbXN5cwpDb25m aWd1cmVkIHdpdGg6IC9tc3lzX3NjcmlwdHMvZ2NjL3NyYy9nY2MtNy4zLjAvY29uZmlndXJlIC0t YnVpbGQ9aTY4Ni1wYy1tc3lzIC0tcHJlZml4PS91c3IgLS1saWJleGVjZGlyPS91c3IvbGliIC0t ZW5hYmxlLWJvb3RzdHJhcCAtLWVuYWJsZS1zaGFyZWQgLS1lbmFibGUtc2hhcmVkLWxpYmdjYyAt LWVuYWJsZS1zdGF0aWMgLS1lbmFibGUtdmVyc2lvbi1zcGVjaWZpYy1ydW50aW1lLWxpYnMgLS13 aXRoLWFyY2g9aTY4NiAtLXdpdGgtdHVuZT1nZW5lcmljIC0tZGlzYWJsZS1tdWx0aWxpYiAtLWRp c2FibGUtc2psai1leGNlcHRpb25zIC0tZW5hYmxlLV9fY3hhX2F0ZXhpdCAtLXdpdGgtZHdhcmYy IC0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyxmb3J0cmFuLGx0byAtLWVuYWJsZS1ncmFwaGl0ZSAt LWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLWxpYmF0b21pYyAtLWVuYWJsZS1saWJjaWxr cnRzIC0tZW5hYmxlLWxpYmdvbXAgLS1lbmFibGUtbGliaXRtIC0tZW5hYmxlLWxpYnF1YWRtYXRo IC0tZW5hYmxlLWxpYnF1YWRtYXRoLXN1cHBvcnQgLS1kaXNhYmxlLWxpYnNzcCAtLWRpc2FibGUt d2luMzItcmVnaXN0cnkgLS1kaXNhYmxlLXN5bXZlcnMgLS13aXRoLWdudS1sZCAtLXdpdGgtZ251 LWFzIC0tZGlzYWJsZS1pc2wtdmVyc2lvbi1jaGVjayAtLWVuYWJsZS1jaGVja2luZz1yZWxlYXNl IC0td2l0aG91dC1saWJpY29udi1wcmVmaXggLS13aXRob3V0LWxpYmludGwtcHJlZml4IC0td2l0 aC1zeXN0ZW0temxpYiAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQgLS13aXRoLWRlZmF1bHQtbGli c3RkY3h4LWFiaT1nY2M0LWNvbXBhdGlibGUKVGhyZWFkIG1vZGVsOiBwb3NpeApnY2MgdmVyc2lv biA3LjMuMCAoR0NDKSAKY29uZmlndXJlOjM2MjI6ICQ/ID0gMApjb25maWd1cmU6MzYxMTogZ2Nj IC1WID4mNQpnY2M6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAnLVYn CmdjYzogZmF0YWwgZXJyb3I6IG5vIGlucHV0IGZpbGVzCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZTozNjIyOiAkPyA9IDEKY29uZmlndXJlOjM2MTE6IGdjYyAtcXZlcnNpb24gPiY1 CmdjYzogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICctcXZlcnNpb24n OyBkaWQgeW91IG1lYW4gJy0tdmVyc2lvbic/CmdjYzogZmF0YWwgZXJyb3I6IG5vIGlucHV0IGZp bGVzCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTozNjIyOiAkPyA9IDEKY29uZmln dXJlOjM2NDI6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MKY29uZmlndXJl OjM2NjQ6IGdjYyAgICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjM2Njg6ICQ/ID0gMApjb25m aWd1cmU6MzcxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM3MTk6IGNoZWNraW5nIGZvciBDIGNv bXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZQpjb25maWd1cmU6MzcyMTogcmVzdWx0OiBh LmV4ZQpjb25maWd1cmU6MzcyNzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcwpj b25maWd1cmU6MzczNDogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAgICBjb25mdGVzdC5jICA+JjUKY29u ZmlndXJlOjM3Mzg6ICQ/ID0gMApjb25maWd1cmU6Mzc2MDogcmVzdWx0OiAuZXhlCmNvbmZpZ3Vy ZTozNzgyOiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcKY29uZmlndXJl OjM3OTA6IGdjYyAtbyBjb25mdGVzdC5leGUgICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZToz Nzk0OiAkPyA9IDAKY29uZmlndXJlOjM4MDE6IC4vY29uZnRlc3QuZXhlCmNvbmZpZ3VyZTozODA1 OiAkPyA9IDAKY29uZmlndXJlOjM4MjA6IHJlc3VsdDogbm8KY29uZmlndXJlOjM4MjU6IGNoZWNr aW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzCmNvbmZpZ3VyZTozODQ3OiBnY2MgLWMgICBj b25mdGVzdC5jID4mNQpjb25maWd1cmU6Mzg1MTogJD8gPSAwCmNvbmZpZ3VyZTozODcyOiByZXN1 bHQ6IG8KY29uZmlndXJlOjM4NzY6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBH TlUgQyBjb21waWxlcgpjb25maWd1cmU6Mzg5NTogZ2NjIC1jICAgY29uZnRlc3QuYyA+JjUKY29u ZmlndXJlOjM4OTU6ICQ/ID0gMApjb25maWd1cmU6MzkwNDogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjM5MTM6IGNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcKY29uZmlndXJlOjM5MzM6IGdj YyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjM5MzM6ICQ/ID0gMApjb25maWd1cmU6 Mzk3NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM5OTE6IGNoZWNraW5nIGZvciBnY2Mgb3B0aW9u IHRvIGFjY2VwdCBJU08gQzg5CmNvbmZpZ3VyZTo0MDU0OiBnY2MgIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKY29uZmlndXJlOjQwNTQ6ICQ/ID0gMApjb25maWd1cmU6NDA2NzogcmVzdWx0OiBu b25lIG5lZWRlZApjb25maWd1cmU6NDA5MjogY2hlY2tpbmcgd2hldGhlciBnY2MgdW5kZXJzdGFu ZHMgLWMgYW5kIC1vIHRvZ2V0aGVyCmNvbmZpZ3VyZTo0MTE0OiBnY2MgLWMgY29uZnRlc3QuYyAt byBjb25mdGVzdDIubwpjb25maWd1cmU6NDExNzogJD8gPSAwCmNvbmZpZ3VyZTo0MTE0OiBnY2Mg LWMgY29uZnRlc3QuYyAtbyBjb25mdGVzdDIubwpjb25maWd1cmU6NDExNzogJD8gPSAwCmNvbmZp Z3VyZTo0MTI5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDE0ODogY2hlY2tpbmcgZGVwZW5kZW5j eSBzdHlsZSBvZiBnY2MKY29uZmlndXJlOjQyNTk6IHJlc3VsdDogZ2NjMwpjb25maWd1cmU6NDI4 MDogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IKY29uZmlndXJlOjQzMTE6 IGdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NDMxMTogJD8gPSAwCmNvbmZpZ3VyZTo0MzI1 OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoxMToxMDogZmF0YWwgZXJyb3I6IGFjX25v bmV4aXN0ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICNpbmNsdWRlIDxhY19ub25l eGlzdGVudC5oPgogICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZTo0MzI1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lP TiAiLSIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50 Lmg+CmNvbmZpZ3VyZTo0MzUwOiByZXN1bHQ6IGdjYyAtRQpjb25maWd1cmU6NDM3MDogZ2NjIC1F ICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo0MzcwOiAkPyA9IDAKY29uZmlndXJlOjQzODQ6IGdjYyAt RSAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjExOjEwOiBmYXRhbCBlcnJvcjogYWNfbm9uZXhpc3Rl bnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50 Lmg+CiAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4K Y29uZmlndXJlOjQzODQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0i CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICItIgp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KY29u ZmlndXJlOjQ0MTM6IGNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFu ZCAtZQpjb25maWd1cmU6NDQ3MTogcmVzdWx0OiAvdXNyL2Jpbi9ncmVwCmNvbmZpZ3VyZTo0NDc2 OiBjaGVja2luZyBmb3IgZWdyZXAKY29uZmlndXJlOjQ1Mzg6IHJlc3VsdDogL3Vzci9iaW4vZ3Jl cCAtRQpjb25maWd1cmU6NDU0MzogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMKY29u ZmlndXJlOjQ1NjM6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NTYz OiAkPyA9IDAKY29uZmlndXJlOjQ2MzY6IGdjYyAtbyBjb25mdGVzdC5leGUgLWcgLU8yICAgY29u ZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo0NjM2OiAkPyA9IDAKY29uZmlndXJlOjQ2MzY6IC4vY29u ZnRlc3QuZXhlCmNvbmZpZ3VyZTo0NjM2OiAkPyA9IDAKY29uZmlndXJlOjQ2NDc6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo0NjYwOiBjaGVja2luZyBmb3Igc3lzL3R5cGVzLmgKY29uZmlndXJlOjQ2 NjA6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NjYwOiAkPyA9IDAK Y29uZmlndXJlOjQ2NjA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NjYwOiBjaGVja2luZyBmb3Ig c3lzL3N0YXQuaApjb25maWd1cmU6NDY2MDogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjQ2NjA6ICQ/ID0gMApjb25maWd1cmU6NDY2MDogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjQ2NjA6IGNoZWNraW5nIGZvciBzdGRsaWIuaApjb25maWd1cmU6NDY2MDogZ2NjIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ2NjA6ICQ/ID0gMApjb25maWd1cmU6NDY2 MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ2NjA6IGNoZWNraW5nIGZvciBzdHJpbmcuaApjb25m aWd1cmU6NDY2MDogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ2NjA6 ICQ/ID0gMApjb25maWd1cmU6NDY2MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ2NjA6IGNoZWNr aW5nIGZvciBtZW1vcnkuaApjb25maWd1cmU6NDY2MDogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3Qu YyA+JjUKY29uZmlndXJlOjQ2NjA6ICQ/ID0gMApjb25maWd1cmU6NDY2MDogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjQ2NjA6IGNoZWNraW5nIGZvciBzdHJpbmdzLmgKY29uZmlndXJlOjQ2NjA6IGdj YyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NjYwOiAkPyA9IDAKY29uZmln dXJlOjQ2NjA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NjYwOiBjaGVja2luZyBmb3IgaW50dHlw ZXMuaApjb25maWd1cmU6NDY2MDogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmln dXJlOjQ2NjA6ICQ/ID0gMApjb25maWd1cmU6NDY2MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ2 NjA6IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6NDY2MDogZ2NjIC1jIC1nIC1PMiAg Y29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ2NjA6ICQ/ID0gMApjb25maWd1cmU6NDY2MDogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjQ2NjA6IGNoZWNraW5nIGZvciB1bmlzdGQuaApjb25maWd1cmU6 NDY2MDogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ2NjA6ICQ/ID0g MApjb25maWd1cmU6NDY2MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ2NzI6IGNoZWNraW5nIGZv ciBsb25nIGxvbmcKY29uZmlndXJlOjQ2NzI6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZpZ3VyZTo0NjcyOiAkPyA9IDAKY29uZmlndXJlOjQ2NzI6IGdjYyAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzo1 NzoyNDogZXJyb3I6IGV4cGVjdGVkIGV4cHJlc3Npb24gYmVmb3JlICcpJyB0b2tlbgogaWYgKHNp emVvZiAoKGxvbmcgbG9uZykpKQogICAgICAgICAgICAgICAgICAgICAgICBeCmNvbmZpZ3VyZTo0 NjcyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJs aWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2Rl ZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFNU RENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5 cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUg PHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9T VERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQg SEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1 ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVk ZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1 ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1 ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRl IDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBpbnQKfCBtYWluICgpCnwgewp8IGlmIChzaXplb2YgKChs b25nIGxvbmcpKSkKfCAJICAgIHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6NDY3MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ2ODQ6IGNoZWNraW5nIGlmIF9SRUVO VFJBTlQgaXMgYWxyZWFkeSBkZWZpbmVkCmNvbmZpZ3VyZTo0NzA2OiBnY2MgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6 MzI6NzogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdmb3JjZScKICAgICAgIGZvcmNlIGNvbXBp bGF0aW9uIGVycm9yCiAgICAgICBefn5+fgpjb25mdGVzdC5jOjMyOjI1OiBlcnJvcjogZXhwZWN0 ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnZXJyb3In CiAgICAgICBmb3JjZSBjb21waWxhdGlvbiBlcnJvcgogICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn4KY29uZmlndXJlOjQ3MDY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9O ICItIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFW RV9MT05HTE9ORyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IAp8IAp8IGludAp8IG1h aW4gKCkKfCB7CnwgCnwgI2lmZGVmIF9SRUVOVFJBTlQKfCAgICAgICBpbnQgZHVtbXk9MTsKfCAj ZWxzZQp8ICAgICAgIGZvcmNlIGNvbXBpbGF0aW9uIGVycm9yCnwgI2VuZGlmCnwgCnwgICA7Cnwg ICByZXR1cm4gMDsKfCB9CnwgCmNvbmZpZ3VyZTo0NzE0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo0 NzIyOiBjaGVja2luZyBpZiBfUkVFTlRSQU5UIGlzIGFjdHVhbGx5IG5lZWRlZApjb25maWd1cmU6 NDczOTogcmVzdWx0OiBubwpjb25maWd1cmU6NDc0NDogY2hlY2tpbmcgaWYgX1JFRU5UUkFOVCBp cyBvbndhcmRzIGRlZmluZWQKY29uZmlndXJlOjQ3NjE6IHJlc3VsdDogbm8KY29uZmlndXJlOjQ3 Njg6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgc29ja2V0CmNvbmZpZ3VyZTo0Nzk5 OiBnY2MgLW8gY29uZnRlc3QuZXhlIC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6 NDc5OTogJD8gPSAwCmNvbmZpZ3VyZTo0ODE2OiByZXN1bHQ6IG5vbmUgcmVxdWlyZWQKY29uZmln dXJlOjQ4MjY6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgaW5ldF9hZGRyCmNvbmZp Z3VyZTo0ODU3OiBnY2MgLW8gY29uZnRlc3QuZXhlIC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpj b25maWd1cmU6NDg1NzogJD8gPSAwCmNvbmZpZ3VyZTo0ODc0OiByZXN1bHQ6IG5vbmUgcmVxdWly ZWQKY29uZmlndXJlOjQ5MzM6IGNoZWNraW5nIGZvciBnY2MKY29uZmlndXJlOjQ5NjA6IHJlc3Vs dDogZ2NjCmNvbmZpZ3VyZTo1MTg5OiBjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uCmNv bmZpZ3VyZTo1MTk4OiBnY2MgLS12ZXJzaW9uID4mNQpnY2MgKEdDQykgNy4zLjAKQ29weXJpZ2h0 IChDKSAyMDE3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpUaGlzIGlzIGZyZWUgc29m dHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBO Twp3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4KCmNvbmZpZ3VyZTo1MjA5OiAkPyA9IDAKY29uZmlndXJlOjUx OTg6IGdjYyAtdiA+JjUKVXNpbmcgYnVpbHQtaW4gc3BlY3MuCkNPTExFQ1RfR0NDPWdjYwpDT0xM RUNUX0xUT19XUkFQUEVSPS91c3IvbGliL2djYy9pNjg2LXBjLW1zeXMvNy4zLjAvbHRvLXdyYXBw ZXIuZXhlClRhcmdldDogaTY4Ni1wYy1tc3lzCkNvbmZpZ3VyZWQgd2l0aDogL21zeXNfc2NyaXB0 cy9nY2Mvc3JjL2djYy03LjMuMC9jb25maWd1cmUgLS1idWlsZD1pNjg2LXBjLW1zeXMgLS1wcmVm aXg9L3VzciAtLWxpYmV4ZWNkaXI9L3Vzci9saWIgLS1lbmFibGUtYm9vdHN0cmFwIC0tZW5hYmxl LXNoYXJlZCAtLWVuYWJsZS1zaGFyZWQtbGliZ2NjIC0tZW5hYmxlLXN0YXRpYyAtLWVuYWJsZS12 ZXJzaW9uLXNwZWNpZmljLXJ1bnRpbWUtbGlicyAtLXdpdGgtYXJjaD1pNjg2IC0td2l0aC10dW5l PWdlbmVyaWMgLS1kaXNhYmxlLW11bHRpbGliIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMgLS1l bmFibGUtX19jeGFfYXRleGl0IC0td2l0aC1kd2FyZjIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysr LGZvcnRyYW4sbHRvIC0tZW5hYmxlLWdyYXBoaXRlIC0tZW5hYmxlLXRocmVhZHM9cG9zaXggLS1l bmFibGUtbGliYXRvbWljIC0tZW5hYmxlLWxpYmNpbGtydHMgLS1lbmFibGUtbGliZ29tcCAtLWVu YWJsZS1saWJpdG0gLS1lbmFibGUtbGlicXVhZG1hdGggLS1lbmFibGUtbGlicXVhZG1hdGgtc3Vw cG9ydCAtLWRpc2FibGUtbGlic3NwIC0tZGlzYWJsZS13aW4zMi1yZWdpc3RyeSAtLWRpc2FibGUt c3ltdmVycyAtLXdpdGgtZ251LWxkIC0td2l0aC1nbnUtYXMgLS1kaXNhYmxlLWlzbC12ZXJzaW9u LWNoZWNrIC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2UgLS13aXRob3V0LWxpYmljb252LXByZWZp eCAtLXdpdGhvdXQtbGliaW50bC1wcmVmaXggLS13aXRoLXN5c3RlbS16bGliIC0tZW5hYmxlLWxp bmtlci1idWlsZC1pZCAtLXdpdGgtZGVmYXVsdC1saWJzdGRjeHgtYWJpPWdjYzQtY29tcGF0aWJs ZQpUaHJlYWQgbW9kZWw6IHBvc2l4CmdjYyB2ZXJzaW9uIDcuMy4wIChHQ0MpIApjb25maWd1cmU6 NTIwOTogJD8gPSAwCmNvbmZpZ3VyZTo1MTk4OiBnY2MgLVYgPiY1CmdjYzogZXJyb3I6IHVucmVj b2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICctVicKZ2NjOiBmYXRhbCBlcnJvcjogbm8gaW5w dXQgZmlsZXMKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjUyMDk6ICQ/ID0gMQpj b25maWd1cmU6NTE5ODogZ2NjIC1xdmVyc2lvbiA+JjUKZ2NjOiBlcnJvcjogdW5yZWNvZ25pemVk IGNvbW1hbmQgbGluZSBvcHRpb24gJy1xdmVyc2lvbic7IGRpZCB5b3UgbWVhbiAnLS12ZXJzaW9u Jz8KZ2NjOiBmYXRhbCBlcnJvcjogbm8gaW5wdXQgZmlsZXMKY29tcGlsYXRpb24gdGVybWluYXRl ZC4KY29uZmlndXJlOjUyMDk6ICQ/ID0gMQpjb25maWd1cmU6NTIxMzogY2hlY2tpbmcgd2hldGhl ciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyCmNvbmZpZ3VyZTo1MjQxOiByZXN1bHQ6 IHllcwpjb25maWd1cmU6NTI1MDogY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZwpjb25m aWd1cmU6NTMxMTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzMjg6IGNoZWNraW5nIGZvciBnY2Mg b3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5CmNvbmZpZ3VyZTo1NDA0OiByZXN1bHQ6IG5vbmUgbmVl ZGVkCmNvbmZpZ3VyZTo1NDI5OiBjaGVja2luZyB3aGV0aGVyIGdjYyB1bmRlcnN0YW5kcyAtYyBh bmQgLW8gdG9nZXRoZXIKY29uZmlndXJlOjU0NjY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NDg1 OiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdjYwpjb25maWd1cmU6NTU5NjogcmVzdWx0 OiBnY2MzCmNvbmZpZ3VyZTo1NjEyOiBjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzCmNvbmZp Z3VyZTo1NjE5OiByZXN1bHQ6IG5vLCB1c2luZyBjcCAtcFIKY29uZmlndXJlOjU2MjM6IGNoZWNr aW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkKY29uZmlndXJlOjU2NDU6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo1NjU4OiBjaGVja2luZyBmb3Igc3NoZApjb25maWd1cmU6NTY5MTogcmVzdWx0 OiBubwpjb25maWd1cmU6NTc1NDogY2hlY2tpbmcgZm9yIGFzCmNvbmZpZ3VyZTo1NzcwOiBmb3Vu ZCAvdXNyL2Jpbi9hcwpjb25maWd1cmU6NTc4MTogcmVzdWx0OiBhcwpjb25maWd1cmU6NTg0Njog Y2hlY2tpbmcgZm9yIGRsbHRvb2wKY29uZmlndXJlOjU4NjI6IGZvdW5kIC91c3IvYmluL2RsbHRv b2wKY29uZmlndXJlOjU4NzM6IHJlc3VsdDogZGxsdG9vbApjb25maWd1cmU6NTkzODogY2hlY2tp bmcgZm9yIG9iamR1bXAKY29uZmlndXJlOjU5NTQ6IGZvdW5kIC91c3IvYmluL29iamR1bXAKY29u ZmlndXJlOjU5NjU6IHJlc3VsdDogb2JqZHVtcApjb25maWd1cmU6NjA1NjogY2hlY2tpbmcgaG93 IHRvIHByaW50IHN0cmluZ3MKY29uZmlndXJlOjYwODM6IHJlc3VsdDogcHJpbnRmCmNvbmZpZ3Vy ZTo2MTA0OiBjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQK Y29uZmlndXJlOjYxNjg6IHJlc3VsdDogL3Vzci9iaW4vc2VkCmNvbmZpZ3VyZTo2MTg2OiBjaGVj a2luZyBmb3IgZmdyZXAKY29uZmlndXJlOjYyNDg6IHJlc3VsdDogL3Vzci9iaW4vZ3JlcCAtRgpj b25maWd1cmU6NjI4MzogY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgZ2NjCmNvbmZpZ3VyZTo2MzUw OiByZXN1bHQ6IC91c3IvaTY4Ni1wYy1tc3lzL2Jpbi9sZC5leGUKY29uZmlndXJlOjYzNTc6IGNo ZWNraW5nIGlmIHRoZSBsaW5rZXIgKC91c3IvaTY4Ni1wYy1tc3lzL2Jpbi9sZC5leGUpIGlzIEdO VSBsZApjb25maWd1cmU6NjM3MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYzODQ6IGNoZWNraW5n IGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKQpjb25maWd1cmU6NjQz ODogcmVzdWx0OiAvdXNyL2Jpbi9ubSAtQgpjb25maWd1cmU6NjU2ODogY2hlY2tpbmcgdGhlIG5h bWUgbGlzdGVyICgvdXNyL2Jpbi9ubSAtQikgaW50ZXJmYWNlCmNvbmZpZ3VyZTo2NTc1OiBnY2Mg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjU3ODogL3Vzci9iaW4vbm0gLUIg ImNvbmZ0ZXN0Lm8iCmNvbmZpZ3VyZTo2NTgxOiBvdXRwdXQKMDAwMDAwMDAgYiAuYnNzCjAwMDAw MDAwIGQgLmRhdGEKMDAwMDAwMDAgTiAuZGVidWdfYWJicmV2CjAwMDAwMDAwIE4gLmRlYnVnX2Fy YW5nZXMKMDAwMDAwMDAgTiAuZGVidWdfaW5mbwowMDAwMDAwMCBOIC5kZWJ1Z19saW5lCjAwMDAw MDAwIHIgLnJkYXRhJHp6egowMDAwMDAwMCB0IC50ZXh0CjAwMDAwMDAwIEIgX3NvbWVfdmFyaWFi bGUKY29uZmlndXJlOjY1ODg6IHJlc3VsdDogQlNEIG5tCmNvbmZpZ3VyZTo2NTkyOiBjaGVja2lu ZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwpjb25maWd1cmU6 NjcyMzogcmVzdWx0OiA4MTkyCmNvbmZpZ3VyZTo2NzcxOiBjaGVja2luZyBob3cgdG8gY29udmVy dCBpNjg2LXBjLW1zeXMgZmlsZSBuYW1lcyB0byBpNjg2LXBjLW1zeXMgZm9ybWF0CmNvbmZpZ3Vy ZTo2ODExOiByZXN1bHQ6IGZ1bmNfY29udmVydF9maWxlX25vb3AKY29uZmlndXJlOjY4MTg6IGNo ZWNraW5nIGhvdyB0byBjb252ZXJ0IGk2ODYtcGMtbXN5cyBmaWxlIG5hbWVzIHRvIHRvb2xjaGFp biBmb3JtYXQKY29uZmlndXJlOjY4Mzg6IHJlc3VsdDogZnVuY19jb252ZXJ0X2ZpbGVfbm9vcApj b25maWd1cmU6Njg0NTogY2hlY2tpbmcgZm9yIC91c3IvaTY4Ni1wYy1tc3lzL2Jpbi9sZC5leGUg b3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXMKY29uZmlndXJlOjY4NTI6IHJlc3VsdDogLXIK Y29uZmlndXJlOjY5MjY6IGNoZWNraW5nIGZvciBvYmpkdW1wCmNvbmZpZ3VyZTo2OTUzOiByZXN1 bHQ6IG9iamR1bXAKY29uZmlndXJlOjY5ODI6IGNoZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVw ZW5kZW50IGxpYnJhcmllcwpjb25maWd1cmU6NzE4MjogcmVzdWx0OiBmaWxlX21hZ2ljIF54ODYg YXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwKY29uZmlndXJlOjcyNjc6IGNoZWNraW5nIGZvciBkbGx0 b29sCmNvbmZpZ3VyZTo3Mjk0OiByZXN1bHQ6IGRsbHRvb2wKY29uZmlndXJlOjczMjQ6IGNoZWNr aW5nIGhvdyB0byBhc3NvY2lhdGUgcnVudGltZSBhbmQgbGluayBsaWJyYXJpZXMKY29uZmlndXJl OjczNTE6IHJlc3VsdDogZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliCmNvbmZpZ3VyZTo3NDEx OiBjaGVja2luZyBmb3IgYXIKY29uZmlndXJlOjc0Mjc6IGZvdW5kIC91c3IvYmluL2FyCmNvbmZp Z3VyZTo3NDM4OiByZXN1bHQ6IGFyCmNvbmZpZ3VyZTo3NDc1OiBjaGVja2luZyBmb3IgYXJjaGl2 ZXIgQEZJTEUgc3VwcG9ydApjb25maWd1cmU6NzQ5MjogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3Qu YyA+JjUKY29uZmlndXJlOjc0OTI6ICQ/ID0gMApjb25maWd1cmU6NzQ5NTogYXIgY3J1IGxpYmNv bmZ0ZXN0LmEgQGNvbmZ0ZXN0LmxzdCA+JjUKY29uZmlndXJlOjc0OTg6ICQ/ID0gMApjb25maWd1 cmU6NzUwMzogYXIgY3J1IGxpYmNvbmZ0ZXN0LmEgQGNvbmZ0ZXN0LmxzdCA+JjUKYXI6IGNvbmZ0 ZXN0Lm86IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJlOjc1MDY6ICQ/ID0gMQpj b25maWd1cmU6NzUxODogcmVzdWx0OiBACmNvbmZpZ3VyZTo3NTc2OiBjaGVja2luZyBmb3Igc3Ry aXAKY29uZmlndXJlOjc1OTI6IGZvdW5kIC91c3IvYmluL3N0cmlwCmNvbmZpZ3VyZTo3NjAzOiBy ZXN1bHQ6IHN0cmlwCmNvbmZpZ3VyZTo3Njc1OiBjaGVja2luZyBmb3IgcmFubGliCmNvbmZpZ3Vy ZTo3NjkxOiBmb3VuZCAvdXNyL2Jpbi9yYW5saWIKY29uZmlndXJlOjc3MDI6IHJlc3VsdDogcmFu bGliCmNvbmZpZ3VyZTo3ODA0OiBjaGVja2luZyBjb21tYW5kIHRvIHBhcnNlIC91c3IvYmluL25t IC1CIG91dHB1dCBmcm9tIGdjYyBvYmplY3QKY29uZmlndXJlOjc5NTc6IGdjYyAtYyAtZyAtTzIg IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3OTYwOiAkPyA9IDAKY29uZmlndXJlOjc5NjQ6IC91 c3IvYmluL25tIC1CIGNvbmZ0ZXN0Lm8gXHwgc2VkIC1uIC1lICdzL14uKlsgXVwoW0FCQ0RHSVJT VFddW0FCQ0RHSVJTVFddKlwpWyBdWyBdKlwoW19BLVphLXpdW19BLVphLXowLTldKlwpJC9cMSBc MiBcMi9wJyB8IHNlZCAnLyBfX2dudV9sdG8vZCcgXD4gY29uZnRlc3Qubm0KY29uZmlndXJlOjc5 Njc6ICQ/ID0gMApjYW5ub3QgZmluZCBubV90ZXN0X3ZhciBpbiBjb25mdGVzdC5ubQpjb25maWd1 cmU6Nzk1NzogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjc5NjA6ICQ/ ID0gMApjb25maWd1cmU6Nzk2NDogL3Vzci9iaW4vbm0gLUIgY29uZnRlc3QubyBcfCBzZWQgLW4g LWUgJ3MvXi4qWyBdXChbQUJDREdJUlNUV11bQUJDREdJUlNUV10qXClbIF1bIF0qX1woW19BLVph LXpdW19BLVphLXowLTldKlwpJC9cMSBfXDIgXDIvcCcgfCBzZWQgJy8gX19nbnVfbHRvL2QnIFw+ IGNvbmZ0ZXN0Lm5tCmNvbmZpZ3VyZTo3OTY3OiAkPyA9IDAKY29uZmlndXJlOjgwMzM6IGdjYyAt byBjb25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyBjb25mdHN0bS5vID4mNQpjb25maWd1 cmU6ODAzNjogJD8gPSAwCmNvbmZpZ3VyZTo4MDc0OiByZXN1bHQ6IG9rCmNvbmZpZ3VyZTo4MTIx OiBjaGVja2luZyBmb3Igc3lzcm9vdApjb25maWd1cmU6ODE1MTogcmVzdWx0OiBubwpjb25maWd1 cmU6ODE1ODogY2hlY2tpbmcgZm9yIGEgd29ya2luZyBkZApjb25maWd1cmU6ODE5NjogcmVzdWx0 OiAvdXNyL2Jpbi9kZApjb25maWd1cmU6ODIwMDogY2hlY2tpbmcgaG93IHRvIHRydW5jYXRlIGJp bmFyeSBwaXBlcwpjb25maWd1cmU6ODIxNTogcmVzdWx0OiAvdXNyL2Jpbi9kZCBicz00MDk2IGNv dW50PTEKY29uZmlndXJlOjg1NDQ6IGNoZWNraW5nIGZvciBtdApjb25maWd1cmU6ODU3NDogcmVz dWx0OiBubwpjb25maWd1cmU6ODU5NDogY2hlY2tpbmcgaWYgOiBpcyBhIG1hbmlmZXN0IHRvb2wK Y29uZmlndXJlOjg2MDA6IDogJy0/Jwpjb25maWd1cmU6ODYwODogcmVzdWx0OiBubwpjb25maWd1 cmU6OTI4MjogY2hlY2tpbmcgZm9yIGRsZmNuLmgKY29uZmlndXJlOjkyODI6IGdjYyAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo5MjgyOiAkPyA9IDAKY29uZmlndXJlOjkyODI6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5NTM2OiBjaGVja2luZyBmb3Igb2JqZGlyCmNvbmZpZ3Vy ZTo5NTUxOiByZXN1bHQ6IC5saWJzCmNvbmZpZ3VyZTo5ODE1OiBjaGVja2luZyBpZiBnY2Mgc3Vw cG9ydHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucwpjb25maWd1cmU6OTgzMzogZ2NjIC1jIC1n IC1PMiAgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyBjb25mdGVzdC5jID4mNQpjYzE6IHdhcm5p bmc6IGNvbW1hbmQgbGluZSBvcHRpb24gJy1mbm8tcnR0aScgaXMgdmFsaWQgZm9yIEMrKy9PYmpD KysgYnV0IG5vdCBmb3IgQwpjb25maWd1cmU6OTgzNzogJD8gPSAwCmNvbmZpZ3VyZTo5ODUwOiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDIwODogY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gcHJv ZHVjZSBQSUMKY29uZmlndXJlOjEwMjE1OiByZXN1bHQ6IC1ERExMX0VYUE9SVCAtRFBJQwpjb25m aWd1cmU6MTAyMjM6IGNoZWNraW5nIGlmIGdjYyBQSUMgZmxhZyAtRERMTF9FWFBPUlQgLURQSUMg d29ya3MKY29uZmlndXJlOjEwMjQxOiBnY2MgLWMgLWcgLU8yICAtRERMTF9FWFBPUlQgLURQSUMg LURQSUMgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjEwMjQ1OiAkPyA9IDAKY29uZmlndXJlOjEw MjU4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAyODc6IGNoZWNraW5nIGlmIGdjYyBzdGF0aWMg ZmxhZyAtc3RhdGljIHdvcmtzCmNvbmZpZ3VyZToxMDMxNTogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjEwMzMwOiBjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5vCmNvbmZpZ3VyZTox MDM1MTogZ2NjIC1jIC1nIC1PMiAgLW8gb3V0L2NvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0LmMgPiY1CmNv bmZpZ3VyZToxMDM1NTogJD8gPSAwCmNvbmZpZ3VyZToxMDM3NzogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjEwMzg1OiBjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5vCmNvbmZpZ3Vy ZToxMDQzMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwNDY1OiBjaGVja2luZyB3aGV0aGVyIHRo ZSBnY2MgbGlua2VyICgvdXNyL2k2ODYtcGMtbXN5cy9iaW4vbGQuZXhlKSBzdXBwb3J0cyBzaGFy ZWQgbGlicmFyaWVzCmNvbmZpZ3VyZToxMTcyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjExNzYx OiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4KY29u ZmlndXJlOjExNzY5OiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTE3 NzI6ICQ/ID0gMApjb25maWd1cmU6MTE3ODc6IGdjYyAtc2hhcmVkIGNvbmZ0ZXN0Lm8gIC12IC1v IC4vY29uZnRlc3QgLVdsLC0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1p bXBsaWIgLVhsaW5rZXIgY29uZnRlc3QgMlw+XCYxIFx8IC91c3IvYmluL2dyZXAgIC1sYyAgXD4v ZGV2L251bGwgMlw+XCYxCmNvbmZpZ3VyZToxMTc5MDogJD8gPSAxCmNvbmZpZ3VyZToxMTgwNDog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjExOTY0OiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFy YWN0ZXJpc3RpY3MKY29uZmlndXJlOjEyNzg4OiByZXN1bHQ6IFdpbjMyIGxkLmV4ZQpjb25maWd1 cmU6MTI5MTA6IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJv Z3JhbXMKY29uZmlndXJlOjEyOTM1OiByZXN1bHQ6IGltbWVkaWF0ZQpjb25maWd1cmU6MTM0ODM6 IGNoZWNraW5nIHdoZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZQpjb25maWd1 cmU6MTM0ODg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMzUyMzogY2hlY2tpbmcgaWYgbGlidG9v bCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzCmNvbmZpZ3VyZToxMzUyNTogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjEzNTI4OiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJp ZXMKY29uZmlndXJlOjEzNTUzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTM1NTY6IGNoZWNraW5n IHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcwpjb25maWd1cmU6MTM1NjA6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZToxMzU5NzogY2hlY2tpbmcgd2hldGhlciBieXRlIG9yZGVyaW5nIGlz IGJpZ2VuZGlhbgpjb25maWd1cmU6MTM2MTI6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZ0ZXN0LmM6MjU6OTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdub3QnCiAgICAgICAg IG5vdCBhIHVuaXZlcnNhbCBjYXBhYmxlIGNvbXBpbGVyCiAgICAgICAgIF5+fgpjb25mdGVzdC5j OjI1OjE1OiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmli dXRlX18nIGJlZm9yZSAndW5pdmVyc2FsJwogICAgICAgICBub3QgYSB1bml2ZXJzYWwgY2FwYWJs ZSBjb21waWxlcgogICAgICAgICAgICAgICBefn5+fn5+fn4KY29uZnRlc3QuYzoyNToxNTogZXJy b3I6IHVua25vd24gdHlwZSBuYW1lICd1bml2ZXJzYWwnCmNvbmZpZ3VyZToxMzYxMjogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGli c3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZl bEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FH RSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIi0iCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj ZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIEhBVkVf RExGQ05fSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgI2lmbmRlZiBfX0FQUExFX0NDX18KfCAJICAgICAgIG5vdCBhIHVuaXZlcnNhbCBj YXBhYmxlIGNvbXBpbGVyCnwgCSAgICAgI2VuZGlmCnwgCSAgICAgdHlwZWRlZiBpbnQgZHVtbXk7 CnwgCmNvbmZpZ3VyZToxMzY1NzogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmln dXJlOjEzNjU3OiAkPyA9IDAKY29uZmlndXJlOjEzNjc1OiBnY2MgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MzE6NDog ZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdub3QnOyBkaWQgeW91IG1lYW4gJ2lub190Jz8KICAg IG5vdCBiaWcgZW5kaWFuCiAgICBefn4KICAgIGlub190CmNvbmZ0ZXN0LmM6MzE6MTI6IGVycm9y OiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3Jl ICdlbmRpYW4nCiAgICBub3QgYmlnIGVuZGlhbgogICAgICAgICAgICBefn5+fn4KY29uZmlndXJl OjEzNjc1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwg I2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiLSIKfCAjZGVmaW5l IFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8 ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgCQkjaW5jbHVk ZSA8c3lzL3BhcmFtLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWYgQllURV9PUkRFUiAh PSBCSUdfRU5ESUFOCnwgCQkgbm90IGJpZyBlbmRpYW4KfCAJCSNlbmRpZgp8IAp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTM4MDM6IHJlc3VsdDogbm8KY29uZmlndXJlOjEzODI5 OiBjaGVja2luZyBmb3Igc3BlY2lhbCBDIGNvbXBpbGVyIG9wdGlvbnMgbmVlZGVkIGZvciBsYXJn ZSBmaWxlcwpjb25maWd1cmU6MTM4NzQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEzODgwOiBjaGVj a2luZyBmb3IgX0ZJTEVfT0ZGU0VUX0JJVFMgdmFsdWUgbmVlZGVkIGZvciBsYXJnZSBmaWxlcwpj b25maWd1cmU6MTM5MDU6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTox MzkwNTogJD8gPSAwCmNvbmZpZ3VyZToxMzkzNzogcmVzdWx0OiBubwpjb25maWd1cmU6MTQwOTA6 IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5IEdDQwpjb25maWd1cmU6MTQxNTQ6IHJlc3VsdDogL3Vz ci9pNjg2LXBjLW1zeXMvYmluL2xkLmV4ZQpjb25maWd1cmU6MTQxNjE6IGNoZWNraW5nIGlmIHRo ZSBsaW5rZXIgKC91c3IvaTY4Ni1wYy1tc3lzL2Jpbi9sZC5leGUpIGlzIEdOVSBsZApjb25maWd1 cmU6MTQxNzQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDE4MTogY2hlY2tpbmcgZm9yIHNoYXJl ZCBsaWJyYXJ5IHJ1biBwYXRoIG9yaWdpbgpjb25maWd1cmU6MTQxOTQ6IHJlc3VsdDogZG9uZQpj b25maWd1cmU6MTQ3MTE6IGNoZWNraW5nIGZvciBsaWJzc2wKY29uZmlndXJlOjE0NzMwOiBnY2Mg LW8gY29uZnRlc3QuZXhlIC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sc3NsIC1sY3J5cHRvID4mNQpj b25mdGVzdC5jOjI0OjEwOiBmYXRhbCBlcnJvcjogb3BlbnNzbC9zc2wuaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQogI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+CiAgICAgICAgICBefn5+fn5+ fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjE0NzMwOiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJz c2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVs QGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdF ICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9E TEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD4KfCBpbnQKfCBtYWluICgpCnwgewp8IAp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTQ3NDA6IHJlc3VsdDogbm8KY29uZmln dXJlOjE1MjgyOiBjaGVja2luZyBmb3IgbGliZ2NyeXB0CmNvbmZpZ3VyZToxNTMwMTogZ2NjIC1v IGNvbmZ0ZXN0LmV4ZSAtZyAtTzIgICBjb25mdGVzdC5jICAtbGdjcnlwdCA+JjUKY29uZnRlc3Qu YzoyNDoxMDogZmF0YWwgZXJyb3I6IGdjcnlwdC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CiAjaW5jbHVkZSA8Z2NyeXB0Lmg+CiAgICAgICAgICBefn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRl cm1pbmF0ZWQuCmNvbmZpZ3VyZToxNTMwMTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3No MiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZF UlNJT04gIi0iCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmlu ZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9P QkpESVIgIi5saWJzLyIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGdjcnlw dC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZToxNTMxMTogcmVzdWx0OiBubwpjb25maWd1cmU6MTU4MzQ6IGNoZWNraW5nIGZvciBsaWJt YmVkY3J5cHRvCmNvbmZpZ3VyZToxNTg1MzogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtZyAtTzIgICBj b25mdGVzdC5jICAtbG1iZWRjcnlwdG8gPiY1CmNvbmZ0ZXN0LmM6MjQ6MTA6IGZhdGFsIGVycm9y OiBtYmVkdGxzL3ZlcnNpb24uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogI2luY2x1ZGUg PG1iZWR0bHMvdmVyc2lvbi5oPgogICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxh dGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTU4NTM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg ImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2Rl ZmluZSBWRVJTSU9OICItIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZp bmUgTFRfT0JKRElSICIubGlicy8iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl IDxtYmVkdGxzL3ZlcnNpb24uaD4KfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MTU4NjM6IHJlc3VsdDogbm8KY29uZmlndXJlOjE1OTE2OiBj aGVja2luZyBmb3IgbnRkZWYuaApjb25maWd1cmU6MTU5MTY6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNTkxNjogJD8gPSAwCmNvbmZpZ3VyZToxNTkxNjogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjE1OTE2OiBjaGVja2luZyBmb3IgbnRzdGF0dXMuaApjb25maWd1cmU6 MTU5MTY6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNTkxNjogJD8g PSAwCmNvbmZpZ3VyZToxNTkxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE1OTI3OiBjaGVja2lu ZyB3aGV0aGVyIFNlY3VyZVplcm9NZW1vcnkgaXMgZGVjbGFyZWQKY29uZmlndXJlOjE1OTI3OiBn Y2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTU5Mjc6ICQ/ID0gMApjb25m aWd1cmU6MTU5Mjc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNjQxNjogY2hlY2tpbmcgZm9yIGxp YmNyeXB0MzIKY29uZmlndXJlOjE2NDM4OiBnY2MgLW8gY29uZnRlc3QuZXhlIC1nIC1PMiAgIGNv bmZ0ZXN0LmMgIC1sY3J5cHQzMiA+JjUKY29uZmlndXJlOjE2NDM4OiAkPyA9IDAKY29uZmlndXJl OjE2NDQ4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTY0NTU6IGNoZWNraW5nIGhvdyB0byBsaW5r IHdpdGggbGliY3J5cHQzMgpjb25maWd1cmU6MTY0NTc6IHJlc3VsdDogLWxjcnlwdDMyCmNvbmZp Z3VyZToxNjk1ODogY2hlY2tpbmcgZm9yIGxpYmJjcnlwdApjb25maWd1cmU6MTY5ODA6IGdjYyAt byBjb25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxiY3J5cHQgPiY1CmNvbmZpZ3Vy ZToxNjk4MDogJD8gPSAwCmNvbmZpZ3VyZToxNjk5MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE2 OTk3OiBjaGVja2luZyBob3cgdG8gbGluayB3aXRoIGxpYmJjcnlwdApjb25maWd1cmU6MTY5OTk6 IHJlc3VsdDogLWxiY3J5cHQKY29uZmlndXJlOjE3NTc1OiBjaGVja2luZyBmb3IgbGliegpjb25m aWd1cmU6MTc1OTQ6IGdjYyAtbyBjb25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyAgLWx6 ID4mNQpjb25mdGVzdC5jOjMwOjEwOiBmYXRhbCBlcnJvcjogemxpYi5oOiBObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5CiAjaW5jbHVkZSA8emxpYi5oPgogICAgICAgICAgXn5+fn5+fn4KY29tcGls YXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjE3NTk0OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNk ZWZpbmUgVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVm aW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgSEFWRV9OVERFRl9IIDEKfCAjZGVmaW5l IEhBVkVfTlRTVEFUVVNfSCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VDVVJFWkVST01FTU9SWSAx CnwgI2RlZmluZSBIQVZFX0xJQkNSWVBUMzIgMQp8ICNkZWZpbmUgSEFWRV9MSUJCQ1JZUFQgMQp8 ICNkZWZpbmUgTElCU1NIMl9XSU5DTkcgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5j bHVkZSA8emxpYi5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZToxNzYwNDogcmVzdWx0OiBubwpjb25maWd1cmU6MTc2MzE6IENhbm5vdCBm aW5kIGxpYnosIGRpc2FibGluZyBjb21wcmVzc2lvbgpjb25maWd1cmU6MTc3MTE6IGNoZWNraW5n IHdoZXRoZXIgdG8gZW5hYmxlIHBlZGFudGljIGFuZCBkZWJ1ZyBjb21waWxlciBvcHRpb25zCmNv bmZpZ3VyZToxNzg0NTogcmVzdWx0OiBubwpjb25maWd1cmU6MTc4NTE6IGNoZWNraW5nIHdoZXRo ZXIgdG8gZW5hYmxlIGhpZGRlbiBzeW1ib2xzIGluIHRoZSBsaWJyYXJ5CmNvbmZpZ3VyZToxNzg5 MjogcmVzdWx0OiBubwpjb25maWd1cmU6MTc4OTk6IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQg ZXhhbXBsZSBhcHBsaWNhdGlvbnMKY29uZmlndXJlOjE3OTE1OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6MTc5MzE6IGNoZWNraW5nIGVycm5vLmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNzkzMTogZ2Nj IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjE3OTMxOiAkPyA9IDAKY29uZmln dXJlOjE3OTMxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc5MzE6IGNoZWNraW5nIGVycm5vLmgg cHJlc2VuY2UKY29uZmlndXJlOjE3OTMxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE3 OTMxOiAkPyA9IDAKY29uZmlndXJlOjE3OTMxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc5MzE6 IGNoZWNraW5nIGZvciBlcnJuby5oCmNvbmZpZ3VyZToxNzkzMTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjE3OTMxOiBjaGVja2luZyBmY250bC5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTc5MzE6IGdj YyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNzkzMTogJD8gPSAwCmNvbmZp Z3VyZToxNzkzMTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3OTMxOiBjaGVja2luZyBmY250bC5o IHByZXNlbmNlCmNvbmZpZ3VyZToxNzkzMTogZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTox NzkzMTogJD8gPSAwCmNvbmZpZ3VyZToxNzkzMTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3OTMx OiBjaGVja2luZyBmb3IgZmNudGwuaApjb25maWd1cmU6MTc5MzE6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToxNzkzMTogY2hlY2tpbmcgc3RkaW8uaCB1c2FiaWxpdHkKY29uZmlndXJlOjE3OTMxOiBn Y2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTc5MzE6ICQ/ID0gMApjb25m aWd1cmU6MTc5MzE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzkzMTogY2hlY2tpbmcgc3RkaW8u aCBwcmVzZW5jZQpjb25maWd1cmU6MTc5MzE6IGdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6 MTc5MzE6ICQ/ID0gMApjb25maWd1cmU6MTc5MzE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzkz MTogY2hlY2tpbmcgZm9yIHN0ZGlvLmgKY29uZmlndXJlOjE3OTMxOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MTc5MzE6IGNoZWNraW5nIGZvciBzdGRsaWIuaApjb25maWd1cmU6MTc5MzE6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZToxNzkzMTogY2hlY2tpbmcgZm9yIHVuaXN0ZC5oCmNvbmZpZ3VyZTox NzkzMTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3OTMxOiBjaGVja2luZyBzeXMvdWlvLmggdXNh YmlsaXR5CmNvbmZpZ3VyZToxNzkzMTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29u ZmlndXJlOjE3OTMxOiAkPyA9IDAKY29uZmlndXJlOjE3OTMxOiByZXN1bHQ6IHllcwpjb25maWd1 cmU6MTc5MzE6IGNoZWNraW5nIHN5cy91aW8uaCBwcmVzZW5jZQpjb25maWd1cmU6MTc5MzE6IGdj YyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6MTc5MzE6ICQ/ID0gMApjb25maWd1cmU6MTc5MzE6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzkzMTogY2hlY2tpbmcgZm9yIHN5cy91aW8uaApjb25m aWd1cmU6MTc5MzE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzk0NDogY2hlY2tpbmcgc3lzL3Nl bGVjdC5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTc5NDQ6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CmNvbmZpZ3VyZToxNzk0NDogJD8gPSAwCmNvbmZpZ3VyZToxNzk0NDogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjE3OTQ0OiBjaGVja2luZyBzeXMvc2VsZWN0LmggcHJlc2VuY2UKY29uZmln dXJlOjE3OTQ0OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE3OTQ0OiAkPyA9IDAKY29u ZmlndXJlOjE3OTQ0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc5NDQ6IGNoZWNraW5nIGZvciBz eXMvc2VsZWN0LmgKY29uZmlndXJlOjE3OTQ0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc5NDQ6 IGNoZWNraW5nIHN5cy9zb2NrZXQuaCB1c2FiaWxpdHkKY29uZmlndXJlOjE3OTQ0OiBnY2MgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTc5NDQ6ICQ/ID0gMApjb25maWd1cmU6 MTc5NDQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzk0NDogY2hlY2tpbmcgc3lzL3NvY2tldC5o IHByZXNlbmNlCmNvbmZpZ3VyZToxNzk0NDogZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTox Nzk0NDogJD8gPSAwCmNvbmZpZ3VyZToxNzk0NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3OTQ0 OiBjaGVja2luZyBmb3Igc3lzL3NvY2tldC5oCmNvbmZpZ3VyZToxNzk0NDogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjE3OTQ0OiBjaGVja2luZyBzeXMvaW9jdGwuaCB1c2FiaWxpdHkKY29uZmlndXJl OjE3OTQ0OiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTc5NDQ6ICQ/ ID0gMApjb25maWd1cmU6MTc5NDQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzk0NDogY2hlY2tp bmcgc3lzL2lvY3RsLmggcHJlc2VuY2UKY29uZmlndXJlOjE3OTQ0OiBnY2MgLUUgIGNvbmZ0ZXN0 LmMKY29uZmlndXJlOjE3OTQ0OiAkPyA9IDAKY29uZmlndXJlOjE3OTQ0OiByZXN1bHQ6IHllcwpj b25maWd1cmU6MTc5NDQ6IGNoZWNraW5nIGZvciBzeXMvaW9jdGwuaApjb25maWd1cmU6MTc5NDQ6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzk0NDogY2hlY2tpbmcgc3lzL3RpbWUuaCB1c2FiaWxp dHkKY29uZmlndXJlOjE3OTQ0OiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1 cmU6MTc5NDQ6ICQ/ID0gMApjb25maWd1cmU6MTc5NDQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox Nzk0NDogY2hlY2tpbmcgc3lzL3RpbWUuaCBwcmVzZW5jZQpjb25maWd1cmU6MTc5NDQ6IGdjYyAt RSAgY29uZnRlc3QuYwpjb25maWd1cmU6MTc5NDQ6ICQ/ID0gMApjb25maWd1cmU6MTc5NDQ6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxNzk0NDogY2hlY2tpbmcgZm9yIHN5cy90aW1lLmgKY29uZmln dXJlOjE3OTQ0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc5NTc6IGNoZWNraW5nIGFycGEvaW5l dC5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTc5NTc6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1CmNvbmZpZ3VyZToxNzk1NzogJD8gPSAwCmNvbmZpZ3VyZToxNzk1NzogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjE3OTU3OiBjaGVja2luZyBhcnBhL2luZXQuaCBwcmVzZW5jZQpjb25maWd1cmU6 MTc5NTc6IGdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6MTc5NTc6ICQ/ID0gMApjb25maWd1 cmU6MTc5NTc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzk1NzogY2hlY2tpbmcgZm9yIGFycGEv aW5ldC5oCmNvbmZpZ3VyZToxNzk1NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3OTU3OiBjaGVj a2luZyBuZXRpbmV0L2luLmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNzk1NzogZ2NjIC1jIC1nIC1P MiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjE3OTU3OiAkPyA9IDAKY29uZmlndXJlOjE3OTU3 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc5NTc6IGNoZWNraW5nIG5ldGluZXQvaW4uaCBwcmVz ZW5jZQpjb25maWd1cmU6MTc5NTc6IGdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6MTc5NTc6 ICQ/ID0gMApjb25maWd1cmU6MTc5NTc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzk1NzogY2hl Y2tpbmcgZm9yIG5ldGluZXQvaW4uaApjb25maWd1cmU6MTc5NTc6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToxNzk2OTogY2hlY2tpbmcgc3lzL3VuLmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNzk2OTog Z2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjE3OTY5OiAkPyA9IDAKY29u ZmlndXJlOjE3OTY5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc5Njk6IGNoZWNraW5nIHN5cy91 bi5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNzk2OTogZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3Vy ZToxNzk2OTogJD8gPSAwCmNvbmZpZ3VyZToxNzk2OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3 OTY5OiBjaGVja2luZyBmb3Igc3lzL3VuLmgKY29uZmlndXJlOjE3OTY5OiByZXN1bHQ6IHllcwpj b25maWd1cmU6MTc5OTg6IGNoZWNraW5nIHdpbmRvd3MuaCB1c2FiaWxpdHkKY29uZmlndXJlOjE3 OTk4OiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTc5OTg6ICQ/ID0g MApjb25maWd1cmU6MTc5OTg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzk5ODogY2hlY2tpbmcg d2luZG93cy5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNzk5ODogZ2NjIC1FICBjb25mdGVzdC5jCmNv bmZpZ3VyZToxNzk5ODogJD8gPSAwCmNvbmZpZ3VyZToxNzk5ODogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjE3OTk4OiBjaGVja2luZyBmb3Igd2luZG93cy5oCmNvbmZpZ3VyZToxNzk5ODogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjE3OTk4OiBjaGVja2luZyB3aW5zb2NrMi5oIHVzYWJpbGl0eQpjb25m aWd1cmU6MTc5OTg6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVk ZWQgZnJvbSAvdXNyL2luY2x1ZGUvdzMyYXBpL3dpbnNvY2syLmg6NTY6MCwKICAgICAgICAgICAg ICAgICBmcm9tIGNvbmZ0ZXN0LmM6Nzk6Ci91c3IvaW5jbHVkZS93MzJhcGkvcHNka19pbmMvX2Zk X3R5cGVzLmg6MTAwOjI6IHdhcm5pbmc6ICN3YXJuaW5nICJmZF9zZXQgYW5kIGFzc29jaWF0ZWQg bWFjcm9zIGhhdmUgYmVlbiBkZWZpbmVkIGluIHN5cy90eXBlcy4gICAgICBUaGlzIGNhbiBjYXVz ZSBydW50aW1lIHByb2JsZW1zIHdpdGggVzMyIHNvY2tldHMiIFstV2NwcF0KICN3YXJuaW5nICJm ZF9zZXQgYW5kIGFzc29jaWF0ZWQgbWFjcm9zIGhhdmUgYmVlbiBkZWZpbmVkIGluIHN5cy90eXBl cy4gIFwKICBefn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjc5OjA6Ci91 c3IvaW5jbHVkZS93MzJhcGkvd2luc29jazIuaDo5OTU6MzQ6IGVycm9yOiBjb25mbGljdGluZyB0 eXBlcyBmb3IgJ3NlbGVjdCcKICAgV0lOU09DS19BUElfTElOS0FHRSBpbnQgV1NBQVBJIHNlbGVj dChpbnQgbmZkcyxmZF9zZXQgKnJlYWRmZHMsZmRfc2V0ICp3cml0ZWZkcyxmZF9zZXQgKmV4Y2Vw dGZkcyxjb25zdCBQVElNRVZBTCB0aW1lb3V0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL3Vzci9pbmNsdWRlL3N5cy90eXBl cy5oOjY4OjAsCiAgICAgICAgICAgICAgICAgZnJvbSAvdXNyL2luY2x1ZGUvc3RkaW8uaDo2MSwK ICAgICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0LmM6NDY6Ci91c3IvaW5jbHVkZS9zeXMvc2Vs ZWN0Lmg6NjI6NTogbm90ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2YgJ3NlbGVjdCcgd2FzIGhl cmUKIGludCBzZWxlY3QgX19QICgoaW50IF9fbiwgZmRfc2V0ICpfX3JlYWRmZHMsIGZkX3NldCAq X193cml0ZWZkcywKICAgICBefn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6 Nzk6MDoKL3Vzci9pbmNsdWRlL3czMmFwaS93aW5zb2NrMi5oOjEwMDQ6MzQ6IGVycm9yOiBjb25m bGljdGluZyB0eXBlcyBmb3IgJ2dldGhvc3RuYW1lJwogICBXSU5TT0NLX0FQSV9MSU5LQUdFIGlu dCBXU0FBUEkgZ2V0aG9zdG5hbWUoY2hhciAqbmFtZSxpbnQgbmFtZWxlbik7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g L3Vzci9pbmNsdWRlL3VuaXN0ZC5oOjQ6MCwKICAgICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0 LmM6Nzc6Ci91c3IvaW5jbHVkZS9zeXMvdW5pc3RkLmg6MzAwOjY6IG5vdGU6IHByZXZpb3VzIGRl Y2xhcmF0aW9uIG9mICdnZXRob3N0bmFtZScgd2FzIGhlcmUKICBpbnQgZ2V0aG9zdG5hbWUgKGNo YXIgKl9fbmFtZSwgc2l6ZV90IF9fbGVuKTsKICAgICAgXn5+fn5+fn5+fn4KY29uZmlndXJlOjE3 OTk4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJs aWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2Rl ZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFNU RENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNk ZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZp bmUgSEFWRV9OVERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfTlRTVEFUVVNfSCAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfU0VDVVJFWkVST01FTU9SWSAxCnwgI2RlZmluZSBIQVZFX0xJQkNSWVBUMzIgMQp8 ICNkZWZpbmUgSEFWRV9MSUJCQ1JZUFQgMQp8ICNkZWZpbmUgTElCU1NIMl9XSU5DTkcgMQp8ICNk ZWZpbmUgTElCU1NIMl9ESF9HRVhfTkVXIDEKfCAjZGVmaW5lIExJQlNTSDJfQ0xFQVJfTUVNT1JZ IDEKfCAjZGVmaW5lIEhBVkVfRVJSTk9fSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19JT0NUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBI QVZFX0FSUEFfSU5FVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9XSU5ET1dTX0ggMQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNf SAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NU QVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFE RVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNl CnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRp Zgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hF QURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cnwg IyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RS SU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5U VFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5J U1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDx3aW5zb2Nr Mi5oPgpjb25maWd1cmU6MTc5OTg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3OTk4OiBjaGVja2lu ZyB3aW5zb2NrMi5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNzk5ODogZ2NjIC1FICBjb25mdGVzdC5j CmNvbmZpZ3VyZToxNzk5ODogJD8gPSAwCmNvbmZpZ3VyZToxNzk5ODogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjE3OTk4OiBXQVJOSU5HOiB3aW5zb2NrMi5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUg Y29tcGlsZWQKY29uZmlndXJlOjE3OTk4OiBXQVJOSU5HOiB3aW5zb2NrMi5oOiAgICAgY2hlY2sg Zm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/CmNvbmZpZ3VyZToxNzk5ODogV0FSTklO Rzogd2luc29jazIuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uCmNvbmZpZ3VyZTox Nzk5ODogV0FSTklORzogd2luc29jazIuaDogICAgIHNlY3Rpb24gIlByZXNlbnQgQnV0IENhbm5v dCBCZSBDb21waWxlZCIKY29uZmlndXJlOjE3OTk4OiBXQVJOSU5HOiB3aW5zb2NrMi5oOiBwcm9j ZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0CmNvbmZpZ3VyZToxNzk5ODogY2hlY2tp bmcgZm9yIHdpbnNvY2syLmgKY29uZmlndXJlOjE3OTk4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox Nzk5ODogY2hlY2tpbmcgd3MydGNwaXAuaCB1c2FiaWxpdHkKY29uZmlndXJlOjE3OTk4OiBnY2Mg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL3Vzci9pbmNs dWRlL3czMmFwaS93aW5zb2NrMi5oOjU2OjAsCiAgICAgICAgICAgICAgICAgZnJvbSAvdXNyL2lu Y2x1ZGUvdzMyYXBpL3dzMnRjcGlwLmg6MTcsCiAgICAgICAgICAgICAgICAgZnJvbSBjb25mdGVz dC5jOjc5OgovdXNyL2luY2x1ZGUvdzMyYXBpL3BzZGtfaW5jL19mZF90eXBlcy5oOjEwMDoyOiB3 YXJuaW5nOiAjd2FybmluZyAiZmRfc2V0IGFuZCBhc3NvY2lhdGVkIG1hY3JvcyBoYXZlIGJlZW4g ZGVmaW5lZCBpbiBzeXMvdHlwZXMuICAgICAgVGhpcyBjYW4gY2F1c2UgcnVudGltZSBwcm9ibGVt cyB3aXRoIFczMiBzb2NrZXRzIiBbLVdjcHBdCiAjd2FybmluZyAiZmRfc2V0IGFuZCBhc3NvY2lh dGVkIG1hY3JvcyBoYXZlIGJlZW4gZGVmaW5lZCBpbiBzeXMvdHlwZXMuICBcCiAgXn5+fn5+fgpJ biBmaWxlIGluY2x1ZGVkIGZyb20gL3Vzci9pbmNsdWRlL3czMmFwaS93czJ0Y3BpcC5oOjE3OjAs CiAgICAgICAgICAgICAgICAgZnJvbSBjb25mdGVzdC5jOjc5OgovdXNyL2luY2x1ZGUvdzMyYXBp L3dpbnNvY2syLmg6OTk1OjM0OiBlcnJvcjogY29uZmxpY3RpbmcgdHlwZXMgZm9yICdzZWxlY3Qn CiAgIFdJTlNPQ0tfQVBJX0xJTktBR0UgaW50IFdTQUFQSSBzZWxlY3QoaW50IG5mZHMsZmRfc2V0 ICpyZWFkZmRzLGZkX3NldCAqd3JpdGVmZHMsZmRfc2V0ICpleGNlcHRmZHMsY29uc3QgUFRJTUVW QUwgdGltZW91dCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaDo2ODowLAogICAgICAg ICAgICAgICAgIGZyb20gL3Vzci9pbmNsdWRlL3N0ZGlvLmg6NjEsCiAgICAgICAgICAgICAgICAg ZnJvbSBjb25mdGVzdC5jOjQ2OgovdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oOjYyOjU6IG5vdGU6 IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdzZWxlY3QnIHdhcyBoZXJlCiBpbnQgc2VsZWN0IF9f UCAoKGludCBfX24sIGZkX3NldCAqX19yZWFkZmRzLCBmZF9zZXQgKl9fd3JpdGVmZHMsCiAgICAg Xn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvdXNyL2luY2x1ZGUvdzMyYXBpL3dzMnRjcGlw Lmg6MTc6MCwKICAgICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0LmM6Nzk6Ci91c3IvaW5jbHVk ZS93MzJhcGkvd2luc29jazIuaDoxMDA0OjM0OiBlcnJvcjogY29uZmxpY3RpbmcgdHlwZXMgZm9y ICdnZXRob3N0bmFtZScKICAgV0lOU09DS19BUElfTElOS0FHRSBpbnQgV1NBQVBJIGdldGhvc3Ru YW1lKGNoYXIgKm5hbWUsaW50IG5hbWVsZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5jbHVkZS91bmlz dGQuaDo0OjAsCiAgICAgICAgICAgICAgICAgZnJvbSBjb25mdGVzdC5jOjc3OgovdXNyL2luY2x1 ZGUvc3lzL3VuaXN0ZC5oOjMwMDo2OiBub3RlOiBwcmV2aW91cyBkZWNsYXJhdGlvbiBvZiAnZ2V0 aG9zdG5hbWUnIHdhcyBoZXJlCiAgaW50IGdldGhvc3RuYW1lIChjaGFyICpfX25hbWUsIHNpemVf dCBfX2xlbik7CiAgICAgIF5+fn5+fn5+fn5+CmNvbmZpZ3VyZToxNzk5ODogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJs aWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29s LmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGli c3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIi0iCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l IEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFW RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIEhBVkVfRExGQ05f SCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIEhBVkVfTlRERUZfSCAx CnwgI2RlZmluZSBIQVZFX05UU1RBVFVTX0ggMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFQ1VSRVpF Uk9NRU1PUlkgMQp8ICNkZWZpbmUgSEFWRV9MSUJDUllQVDMyIDEKfCAjZGVmaW5lIEhBVkVfTElC QkNSWVBUIDEKfCAjZGVmaW5lIExJQlNTSDJfV0lOQ05HIDEKfCAjZGVmaW5lIExJQlNTSDJfREhf R0VYX05FVyAxCnwgI2RlZmluZSBMSUJTU0gyX0NMRUFSX01FTU9SWSAxCnwgI2RlZmluZSBIQVZF X0VSUk5PX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU9f SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9BUlBBX0lORVRfSCAx CnwgI2RlZmluZSBIQVZFX05FVElORVRfSU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEK fCAjZGVmaW5lIEhBVkVfV0lORE9XU19IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5 cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUg PHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9T VERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQg SEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1 ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVk ZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1 ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1 ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRl IDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8d3MydGNwaXAuaD4KY29uZmlndXJlOjE3 OTk4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzk5ODogY2hlY2tpbmcgd3MydGNwaXAuaCBwcmVz ZW5jZQpjb25maWd1cmU6MTc5OTg6IGdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6MTc5OTg6 ICQ/ID0gMApjb25maWd1cmU6MTc5OTg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzk5ODogV0FS TklORzogd3MydGNwaXAuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkCmNvbmZpZ3Vy ZToxNzk5ODogV0FSTklORzogd3MydGNwaXAuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJl cXVpc2l0ZSBoZWFkZXJzPwpjb25maWd1cmU6MTc5OTg6IFdBUk5JTkc6IHdzMnRjcGlwLmg6IHNl ZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbgpjb25maWd1cmU6MTc5OTg6IFdBUk5JTkc6IHdz MnRjcGlwLmg6ICAgICBzZWN0aW9uICJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWQiCmNv bmZpZ3VyZToxNzk5ODogV0FSTklORzogd3MydGNwaXAuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBj b21waWxlcidzIHJlc3VsdApjb25maWd1cmU6MTc5OTg6IGNoZWNraW5nIGZvciB3czJ0Y3BpcC5o CmNvbmZpZ3VyZToxNzk5ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTgwMTk6IGNoZWNraW5nIGZv ciBwb2xsCmNvbmZpZ3VyZToxODAxOTogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtZyAtTzIgICBjb25m dGVzdC5jICA+JjUKY29uZmlndXJlOjE4MDE5OiAkPyA9IDAKY29uZmlndXJlOjE4MDE5OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6MTgwMzQ6IGNoZWNraW5nIGZvciBnZXR0aW1lb2ZkYXkKY29uZmln dXJlOjE4MDM0OiBnY2MgLW8gY29uZnRlc3QuZXhlIC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpj b25maWd1cmU6MTgwMzQ6ICQ/ID0gMApjb25maWd1cmU6MTgwMzQ6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToxODAzNDogY2hlY2tpbmcgZm9yIHNlbGVjdApjb25maWd1cmU6MTgwMzQ6IGdjYyAtbyBj b25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZToxODAzNDogJD8g PSAwCmNvbmZpZ3VyZToxODAzNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE4MDM0OiBjaGVja2lu ZyBmb3Igc3RydG9sbApjb25maWd1cmU6MTgwMzQ6IGdjYyAtbyBjb25mdGVzdC5leGUgLWcgLU8y ICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZToxODAzNDogJD8gPSAwCmNvbmZpZ3VyZToxODAz NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE4MDg4OiBjaGVja2luZyBmb3Igc2l6ZV90CmNvbmZp Z3VyZToxODA4ODogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjE4MDg4 OiAkPyA9IDAKY29uZmlndXJlOjE4MDg4OiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpj b25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6ODY6MjE6IGVycm9yOiBl eHBlY3RlZCBleHByZXNzaW9uIGJlZm9yZSAnKScgdG9rZW4KIGlmIChzaXplb2YgKChzaXplX3Qp KSkKICAgICAgICAgICAgICAgICAgICAgXgpjb25maWd1cmU6MTgwODg6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGli c3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5o YXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNz aDIiCnwgI2RlZmluZSBWRVJTSU9OICItIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI QVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmluZSBIQVZFX0RMRkNOX0gg MQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBIQVZFX05UREVGX0ggMQp8 ICNkZWZpbmUgSEFWRV9OVFNUQVRVU19IIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TRUNVUkVaRVJP TUVNT1JZIDEKfCAjZGVmaW5lIEhBVkVfTElCQ1JZUFQzMiAxCnwgI2RlZmluZSBIQVZFX0xJQkJD UllQVCAxCnwgI2RlZmluZSBMSUJTU0gyX1dJTkNORyAxCnwgI2RlZmluZSBMSUJTU0gyX0RIX0dF WF9ORVcgMQp8ICNkZWZpbmUgTElCU1NIMl9DTEVBUl9NRU1PUlkgMQp8ICNkZWZpbmUgSEFWRV9F UlJOT19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX1NURElPX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfQVJQQV9JTkVUX0ggMQp8 ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwg I2RlZmluZSBIQVZFX1dJTkRPV1NfSCAxCnwgI2RlZmluZSBIQVZFX1BPTEwgMQp8ICNkZWZpbmUg SEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFW RV9TVFJUT0xMIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBp bmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdf SAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8 ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAj ZW5kaWYKfCBpbnQKfCBtYWluICgpCnwgewp8IGlmIChzaXplb2YgKChzaXplX3QpKSkKfCAJICAg IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTgwODg6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZToxODEwMTogY2hlY2tpbmcgZm9yIHdvcmtpbmcgYWxsb2NhLmgKY29u ZmlndXJlOjE4MTE4OiBnY2MgLW8gY29uZnRlc3QuZXhlIC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4m NQpjb25maWd1cmU6MTgxMTg6ICQ/ID0gMApjb25maWd1cmU6MTgxMjY6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZToxODEzNDogY2hlY2tpbmcgZm9yIGFsbG9jYQpjb25maWd1cmU6MTgxNzE6IGdjYyAt byBjb25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZToxODE3MTog JD8gPSAwCmNvbmZpZ3VyZToxODE3OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE4Mjg3OiBjaGVj a2luZyBmb3IgYW4gQU5TSSBDLWNvbmZvcm1pbmcgY29uc3QKY29uZmlndXJlOjE4MzUzOiBnY2Mg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTgzNTM6ICQ/ID0gMApjb25maWd1 cmU6MTgzNjA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxODM2ODogY2hlY2tpbmcgZm9yIGlubGlu ZQpjb25maWd1cmU6MTgzODQ6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy ZToxODM4NDogJD8gPSAwCmNvbmZpZ3VyZToxODM5MjogcmVzdWx0OiBpbmxpbmUKY29uZmlndXJl OjE4NDEyOiBjaGVja2luZyBub24tYmxvY2tpbmcgc29ja2V0cyBzdHlsZQpjb25maWd1cmU6MTg0 NTA6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxODQ1MDogJD8gPSAw CmNvbmZpZ3VyZToxODYxMTogcmVzdWx0OiBPX05PTkJMT0NLCmNvbmZpZ3VyZToxODc1MzogY2hl Y2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlCmNvbmZp Z3VyZToxODc1OTogcmVzdWx0OiBkb25lCmNvbmZpZ3VyZToxODgxNTogY3JlYXRpbmcgLi9jb25m aWcuc3RhdHVzCgojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFJ1bm5pbmcgY29uZmln LnN0YXR1cy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKVGhpcyBmaWxlIHdhcyBl eHRlbmRlZCBieSBsaWJzc2gyIGNvbmZpZy5zdGF0dXMgLSwgd2hpY2ggd2FzCmdlbmVyYXRlZCBi eSBHTlUgQXV0b2NvbmYgMi42OS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwoKICBDT05G SUdfRklMRVMgICAgPSAKICBDT05GSUdfSEVBREVSUyAgPSAKICBDT05GSUdfTElOS1MgICAgPSAK ICBDT05GSUdfQ09NTUFORFMgPSAKICAkIC4vY29uZmlnLnN0YXR1cyAKCm9uIERFU0tUT1AtT01E TDI2UwoKY29uZmlnLnN0YXR1czoxMTc5OiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3RhdHVz OjExNzk6IGNyZWF0aW5nIHNyYy9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjExNzk6IGNyZWF0aW5n IHRlc3RzL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MTE3OTogY3JlYXRpbmcgZXhhbXBsZS9NYWtl ZmlsZQpjb25maWcuc3RhdHVzOjExNzk6IGNyZWF0aW5nIGRvY3MvTWFrZWZpbGUKY29uZmlnLnN0 YXR1czoxMTc5OiBjcmVhdGluZyBsaWJzc2gyLnBjCmNvbmZpZy5zdGF0dXM6MTE3OTogY3JlYXRp bmcgc3JjL2xpYnNzaDJfY29uZmlnLmgKY29uZmlnLnN0YXR1czoxMTc5OiBjcmVhdGluZyBleGFt cGxlL2xpYnNzaDJfY29uZmlnLmgKY29uZmlnLnN0YXR1czoxNDA4OiBleGVjdXRpbmcgZGVwZmls ZXMgY29tbWFuZHMKY29uZmlnLnN0YXR1czoxNDA4OiBleGVjdXRpbmcgbGlidG9vbCBjb21tYW5k cwpjb25maWd1cmU6MjA5ODQ6IHN1bW1hcnkgb2YgYnVpbGQgb3B0aW9uczoKCiAgdmVyc2lvbjog ICAgICAgICAgMS44LjFfREVWCiAgSG9zdCB0eXBlOiAgICAgICAgaTY4Ni1wYy1tc3lzCiAgSW5z dGFsbCBwcmVmaXg6ICAgL3VzcgogIENvbXBpbGVyOiAgICAgICAgIGdjYwogIENvbXBpbGVyIGZs YWdzOiAgIC1nIC1PMgogIExpYnJhcnkgdHlwZXM6ICAgIFNoYXJlZD15ZXMsIFN0YXRpYz15ZXMK ICBDcnlwdG8gbGlicmFyeTogICBXaW5kb3dzIENyeXB0b2dyYXBoeSBBUEk6IE5leHQgR2VuZXJh dGlvbgogIENsZWFyIG1lbW9yeTogICAgIHllcwogIERlYnVnIGJ1aWxkOiAgICAgIG5vCiAgQnVp bGQgZXhhbXBsZXM6ICAgeWVzCiAgUGF0aCB0byBzc2hkOiAgICAgIChvbmx5IGZvciBzZWxmLXRl c3RzKQogIHpsaWIgY29tcHJlc3Npb246IGRpc2FibGVkOyBubyBsaWJ6IGZvdW5kCgoKIyMgLS0t LS0tLS0tLS0tLS0tLSAjIwojIyBDYWNoZSB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0t LS0gIyMKCmFjX2N2X2J1aWxkPWk2ODYtcGMtbXN5cwphY19jdl9jX2JpZ2VuZGlhbj1ubwphY19j dl9jX2NvbXBpbGVyX2dudT15ZXMKYWNfY3ZfY19jb25zdD15ZXMKYWNfY3ZfY19pbmxpbmU9aW5s aW5lCmFjX2N2X2Vudl9DQ19zZXQ9CmFjX2N2X2Vudl9DQ192YWx1ZT0KYWNfY3ZfZW52X0NGTEFH U19zZXQ9CmFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DUFBGTEFHU19zZXQ9CmFj X2N2X2Vudl9DUFBGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0NQUF9zZXQ9CmFjX2N2X2Vudl9DUFBf dmFsdWU9CmFjX2N2X2Vudl9MREZMQUdTX3NldD0KYWNfY3ZfZW52X0xERkxBR1NfdmFsdWU9CmFj X2N2X2Vudl9MSUJTX3NldD0KYWNfY3ZfZW52X0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9MVF9TWVNf TElCUkFSWV9QQVRIX3NldD0KYWNfY3ZfZW52X0xUX1NZU19MSUJSQVJZX1BBVEhfdmFsdWU9CmFj X2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9CmFjX2N2X2Vudl9idWlsZF9hbGlhc192YWx1ZT0KYWNf Y3ZfZW52X2hvc3RfYWxpYXNfc2V0PQphY19jdl9lbnZfaG9zdF9hbGlhc192YWx1ZT0KYWNfY3Zf ZW52X3RhcmdldF9hbGlhc19zZXQ9CmFjX2N2X2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9CmFjX2N2 X2V4ZWV4dD0uZXhlCmFjX2N2X2Z1bmNfYWxsb2NhX3dvcmtzPXllcwphY19jdl9mdW5jX2dldHRp bWVvZmRheT15ZXMKYWNfY3ZfZnVuY19wb2xsPXllcwphY19jdl9mdW5jX3NlbGVjdD15ZXMKYWNf Y3ZfZnVuY19zdHJ0b2xsPXllcwphY19jdl9oYXZlX2RlY2xfU2VjdXJlWmVyb01lbW9yeT15ZXMK YWNfY3ZfaGVhZGVyX2FycGFfaW5ldF9oPXllcwphY19jdl9oZWFkZXJfZGxmY25faD15ZXMKYWNf Y3ZfaGVhZGVyX2Vycm5vX2g9eWVzCmFjX2N2X2hlYWRlcl9mY250bF9oPXllcwphY19jdl9oZWFk ZXJfaW50dHlwZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX21lbW9yeV9oPXllcwphY19jdl9oZWFkZXJf bmV0aW5ldF9pbl9oPXllcwphY19jdl9oZWFkZXJfbnRkZWZfaD15ZXMKYWNfY3ZfaGVhZGVyX250 c3RhdHVzX2g9eWVzCmFjX2N2X2hlYWRlcl9zdGRjPXllcwphY19jdl9oZWFkZXJfc3RkaW50X2g9 eWVzCmFjX2N2X2hlYWRlcl9zdGRpb19oPXllcwphY19jdl9oZWFkZXJfc3RkbGliX2g9eWVzCmFj X2N2X2hlYWRlcl9zdHJpbmdfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0cmluZ3NfaD15ZXMKYWNfY3Zf aGVhZGVyX3N5c19pb2N0bF9oPXllcwphY19jdl9oZWFkZXJfc3lzX3NlbGVjdF9oPXllcwphY19j dl9oZWFkZXJfc3lzX3NvY2tldF9oPXllcwphY19jdl9oZWFkZXJfc3lzX3N0YXRfaD15ZXMKYWNf Y3ZfaGVhZGVyX3N5c190aW1lX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfdHlwZXNfaD15ZXMKYWNf Y3ZfaGVhZGVyX3N5c191aW9faD15ZXMKYWNfY3ZfaGVhZGVyX3N5c191bl9oPXllcwphY19jdl9o ZWFkZXJfdW5pc3RkX2g9eWVzCmFjX2N2X2hlYWRlcl93aW5kb3dzX2g9eWVzCmFjX2N2X2hlYWRl cl93aW5zb2NrMl9oPW5vCmFjX2N2X2hlYWRlcl93czJ0Y3BpcF9oPW5vCmFjX2N2X2hvc3Q9aTY4 Ni1wYy1tc3lzCmFjX2N2X2xpYmJjcnlwdD15ZXMKYWNfY3ZfbGliY3J5cHQzMj15ZXMKYWNfY3Zf bGliZ2NyeXB0PW5vCmFjX2N2X2xpYm1iZWRjcnlwdG89bm8KYWNfY3ZfbGlic3NsPW5vCmFjX2N2 X2xpYno9bm8KYWNfY3Zfb2JqZXh0PW8KYWNfY3ZfcGF0aF9FR1JFUD0nL3Vzci9iaW4vZ3JlcCAt RScKYWNfY3ZfcGF0aF9GR1JFUD0nL3Vzci9iaW4vZ3JlcCAtRicKYWNfY3ZfcGF0aF9HUkVQPS91 c3IvYmluL2dyZXAKYWNfY3ZfcGF0aF9TRUQ9L3Vzci9iaW4vc2VkCmFjX2N2X3BhdGhfaW5zdGFs bD0nL3Vzci9iaW4vaW5zdGFsbCAtYycKYWNfY3ZfcGF0aF9sdF9ERD0vdXNyL2Jpbi9kZAphY19j dl9wYXRoX21rZGlyPS91c3IvYmluL21rZGlyCmFjX2N2X3Byb2dfQVdLPWdhd2sKYWNfY3ZfcHJv Z19DUFA9J2djYyAtRScKYWNfY3ZfcHJvZ19hY19jdF9BUj1hcgphY19jdl9wcm9nX2FjX2N0X0FT PWFzCmFjX2N2X3Byb2dfYWNfY3RfQ0M9Z2NjCmFjX2N2X3Byb2dfYWNfY3RfRExMVE9PTD1kbGx0 b29sCmFjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUD1vYmpkdW1wCmFjX2N2X3Byb2dfYWNfY3RfUkFO TElCPXJhbmxpYgphY19jdl9wcm9nX2FjX2N0X1NUUklQPXN0cmlwCmFjX2N2X3Byb2dfY2NfYzg5 PQphY19jdl9wcm9nX2NjX2c9eWVzCmFjX2N2X3Byb2dfbWFrZV9tYWtlX3NldD15ZXMKYWNfY3Zf c2VhcmNoX2luZXRfYWRkcj0nbm9uZSByZXF1aXJlZCcKYWNfY3Zfc2VhcmNoX3NvY2tldD0nbm9u ZSByZXF1aXJlZCcKYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHM9bm8KYWNfY3Zfc3lzX2xhcmdl ZmlsZV9DQz1ubwphY19jdl90eXBlX2xvbmdfbG9uZz15ZXMKYWNfY3ZfdHlwZV9zaXplX3Q9eWVz CmFjX2N2X3dvcmtpbmdfYWxsb2NhX2g9eWVzCmFjbF9jdl9oYXJkY29kZV9kaXJlY3Q9bm8KYWNs X2N2X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicK YWNsX2N2X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9CmFjbF9jdl9oYXJkY29kZV9taW51c19M PW5vCmFjbF9jdl9saWJleHQ9YQphY2xfY3ZfbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKYWNsX2N2 X2xpYnJhcnlfbmFtZXNfc3BlYz0KYWNsX2N2X3BhdGhfTEQ9L3Vzci9pNjg2LXBjLW1zeXMvYmlu L2xkLmV4ZQphY2xfY3ZfcHJvZ19nbnVfbGQ9eWVzCmFjbF9jdl9ycGF0aD1kb25lCmFjbF9jdl9z aGxpYmV4dD1zbwphY2xfY3Zfd2w9LVdsLAphbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJf dHlwZT1nY2MzCmFtX2N2X21ha2Vfc3VwcG9ydF9uZXN0ZWRfdmFyaWFibGVzPXllcwphbV9jdl9w cm9nX2NjX2Nfbz15ZXMKbHRfY3ZfYXJfYXRfZmlsZT1ACmx0X2N2X2FyY2hpdmVfY21kc19uZWVk X2xjPXllcwpsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hp dmUgaW1wb3J0fF54ODYgRExMJwpsdF9jdl9maWxlX21hZ2ljX2NtZD1mdW5jX3dpbjMyX2xpYmlk Cmx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPQpsdF9jdl9sZF9yZWxvYWRfZmxhZz0tcgpsdF9j dl9ubV9pbnRlcmZhY2U9J0JTRCBubScKbHRfY3Zfb2JqZGlyPS5saWJzCmx0X2N2X3BhdGhfTEQ9 L3Vzci9pNjg2LXBjLW1zeXMvYmluL2xkLmV4ZQpsdF9jdl9wYXRoX05NPScvdXNyL2Jpbi9ubSAt QicKbHRfY3ZfcGF0aF9tYWluZmVzdF90b29sPW5vCmx0X2N2X3Byb2dfY29tcGlsZXJfY19vPXll cwpsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYz0nLURETExfRVhQT1JUIC1EUElDJwpsdF9jdl9wcm9n X2NvbXBpbGVyX3BpY193b3Jrcz15ZXMKbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlv bnM9bm8KbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9eWVzCmx0X2N2X3Byb2dfZ251 X2xkPXllcwpsdF9jdl9zaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD1mdW5jX2N5Z21pbmdfZGxs X2Zvcl9pbXBsaWIKbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0nc2VkIC1uIC1lICdcJydz L14uKlsJIF1cKFtBQkNER0lSU1RXXVtBQkNER0lSU1RXXSpcKVsJIF1bCSBdKl9cKFtfQS1aYS16 XVtfQS1aYS16MC05XSpcKSQvXDEgX1wyIFwyL3AnXCcnIHwgc2VkICdcJycvIF9fZ251X2x0by9k J1wnJycKbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9J3NlZCAtbiAt ZSAnXCcncy9eOiBcKC4qXCkgLiokLyAgeyJcMSIsICh2b2lkICopIDB9LC9wJ1wnJyAtZSAnXCcn cy9eW0FCQ0RHSVJTVFddW0FCQ0RHSVJTVFddKiAuKiBcKC4qXCkkLyAgeyJcMSIsICh2b2lkICop IFwmXDF9LC9wJ1wnJycKbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3Nf bGliX3ByZWZpeD0nc2VkIC1uIC1lICdcJydzL146IFwoLipcKSAuKiQvICB7IlwxIiwgKHZvaWQg KikgMH0sL3AnXCcnIC1lICdcJydzL15bQUJDREdJUlNUV11bQUJDREdJUlNUV10qIC4qIFwobGli LipcKSQvICB7IlwxIiwgKHZvaWQgKikgXCZcMX0sL3AnXCcnIC1lICdcJydzL15bQUJDREdJUlNU V11bQUJDREdJUlNUV10qIC4qIFwoLipcKSQvICB7ImxpYlwxIiwgKHZvaWQgKikgXCZcMX0sL3An XCcnJwpsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0nc2VkIC1uIC1lICdcJydzL15U IC4qIFwoLipcKSQvZXh0ZXJuIGludCBcMSgpOy9wJ1wnJyAtZSAnXCcncy9eW0FCQ0RHSVJTVFdd W0FCQ0RHSVJTVFddKiAuKiBcKC4qXCkkL2V4dGVybiBjaGFyIFwxOy9wJ1wnJycKbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9faW1wb3J0PQpsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MgpsdF9j dl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25vb3AKbHRfY3ZfdG9fdG9vbF9m aWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9ub29wCmx0X2N2X3RydW5jYXRlX2Jpbj0nL3Vzci9i aW4vZGQgYnM9NDA5NiBjb3VudD0xJwoKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgT3V0cHV0 IHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKCkFDTE9DQUw9JyR7U0hFTEx9 IC9kL01pbGluZC9Eb3dubG9hZHMvbGlic3NoMi9taXNzaW5nIGFjbG9jYWwtMS4xNScKQUxMT0NB PScnCkFNREVQQkFDS1NMQVNIPSdcJwpBTURFUF9GQUxTRT0nIycKQU1ERVBfVFJVRT0nJwpBTVRB Uj0nJCR7VEFSLXRhcn0nCkFNX0JBQ0tTTEFTSD0nXCcKQU1fREVGQVVMVF9WPSckKEFNX0RFRkFV TFRfVkVSQk9TSVRZKScKQU1fREVGQVVMVF9WRVJCT1NJVFk9JzAnCkFNX1Y9JyQoViknCkFSPSdh cicKQVM9J2FzJwpBVVRPQ09ORj0nJHtTSEVMTH0gL2QvTWlsaW5kL0Rvd25sb2Fkcy9saWJzc2gy L21pc3NpbmcgYXV0b2NvbmYnCkFVVE9IRUFERVI9JyR7U0hFTEx9IC9kL01pbGluZC9Eb3dubG9h ZHMvbGlic3NoMi9taXNzaW5nIGF1dG9oZWFkZXInCkFVVE9NQUtFPScke1NIRUxMfSAvZC9NaWxp bmQvRG93bmxvYWRzL2xpYnNzaDIvbWlzc2luZyBhdXRvbWFrZS0xLjE1JwpBV0s9J2dhd2snCkJV SUxEX0VYQU1QTEVTX0ZBTFNFPScjJwpCVUlMRF9FWEFNUExFU19UUlVFPScnCkNDPSdnY2MnCkND REVQTU9ERT0nZGVwbW9kZT1nY2MzJwpDRkxBR1M9Jy1nIC1PMicKQ1BQPSdnY2MgLUUnCkNQUEZM QUdTPScnCkNZR1BBVEhfVz0nY3lncGF0aCAtdycKREVGUz0nLURIQVZFX0NPTkZJR19IJwpERVBE SVI9Jy5kZXBzJwpETExUT09MPSdkbGx0b29sJwpEU1lNVVRJTD0nJwpEVU1QQklOPScnCkVDSE9f Qz0nJwpFQ0hPX049Jy1uJwpFQ0hPX1Q9JycKRUdSRVA9Jy91c3IvYmluL2dyZXAgLUUnCkVYRUVY VD0nLmV4ZScKRkdSRVA9Jy91c3IvYmluL2dyZXAgLUYnCkdSRVA9Jy91c3IvYmluL2dyZXAnCkhB VkVfTElCQkNSWVBUPSd5ZXMnCkhBVkVfTElCQ1JZUFQzMj0neWVzJwpIQVZFX0xJQkdDUllQVD0n bm8nCkhBVkVfTElCTUJFRENSWVBUTz0nbm8nCkhBVkVfTElCU1NMPSdubycKSEFWRV9MSUJaPSdu bycKSEFWRV9TWVNfVU5fSF9GQUxTRT0nIycKSEFWRV9TWVNfVU5fSF9UUlVFPScnCklOU1RBTExf REFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCklOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKSU5T VEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCklOU1RBTExfU1RSSVBfUFJPR1JBTT0nJChpbnN0YWxs X3NoKSAtYyAtcycKTEQ9Jy91c3IvaTY4Ni1wYy1tc3lzL2Jpbi9sZC5leGUnCkxERkxBR1M9JycK TElCQkNSWVBUPSctbGJjcnlwdCcKTElCQkNSWVBUX1BSRUZJWD0nJwpMSUJDUllQVDMyPSctbGNy eXB0MzInCkxJQkNSWVBUMzJfUFJFRklYPScnCkxJQkdDUllQVD0nJwpMSUJHQ1JZUFRfRkFMU0U9 JycKTElCR0NSWVBUX1BSRUZJWD0nJwpMSUJHQ1JZUFRfVFJVRT0nIycKTElCTUJFRENSWVBUTz0n JwpMSUJNQkVEQ1JZUFRPX1BSRUZJWD0nJwpMSUJPQkpTPScnCkxJQlM9JycKTElCU1JFUVVJUkVE PScnCkxJQlNTSDJWRVI9JzEuOC4xX0RFVicKTElCU1NMPScnCkxJQlNTTF9QUkVGSVg9JycKTElC VE9PTD0nJChTSEVMTCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnCkxJQlo9JycKTElCWl9QUkVG SVg9JycKTElQTz0nJwpMTl9TPSdjcCAtcFInCkxUTElCQkNSWVBUPSctbGJjcnlwdCcKTFRMSUJD UllQVDMyPSctbGNyeXB0MzInCkxUTElCR0NSWVBUPScnCkxUTElCTUJFRENSWVBUTz0nJwpMVExJ Qk9CSlM9JycKTFRMSUJTU0w9JycKTFRMSUJaPScnCkxUX1NZU19MSUJSQVJZX1BBVEg9JycKTUFJ TlQ9JyMnCk1BSU5UQUlORVJfTU9ERV9GQUxTRT0nJwpNQUlOVEFJTkVSX01PREVfVFJVRT0nIycK TUFLRUlORk89JyR7U0hFTEx9IC9kL01pbGluZC9Eb3dubG9hZHMvbGlic3NoMi9taXNzaW5nIG1h a2VpbmZvJwpNQU5JRkVTVF9UT09MPSc6JwpNQkVEVExTX0ZBTFNFPScnCk1CRURUTFNfVFJVRT0n IycKTUtESVJfUD0nL3Vzci9iaW4vbWtkaXIgLXAnCk5NPScvdXNyL2Jpbi9ubSAtQicKTk1FRElU PScnCk9CSkRVTVA9J29iamR1bXAnCk9CSkVYVD0nbycKT1BFTlNTTF9GQUxTRT0nJwpPUEVOU1NM X1RSVUU9JyMnCk9UT09MNjQ9JycKT1RPT0w9JycKUEFDS0FHRT0nbGlic3NoMicKUEFDS0FHRV9C VUdSRVBPUlQ9J2xpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlJwpQQUNLQUdFX05BTUU9J2xpYnNz aDInClBBQ0tBR0VfU1RSSU5HPSdsaWJzc2gyIC0nClBBQ0tBR0VfVEFSTkFNRT0nbGlic3NoMicK UEFDS0FHRV9VUkw9JycKUEFDS0FHRV9WRVJTSU9OPSctJwpQQVRIX1NFUEFSQVRPUj0nOicKUkFO TElCPSdyYW5saWInClNFRD0nL3Vzci9iaW4vc2VkJwpTRVRfTUFLRT0nJwpTSEVMTD0nL2Jpbi9z aCcKU1NIRD0nJwpTU0hEX0ZBTFNFPScnClNTSERfVFJVRT0nIycKU1RSSVA9J3N0cmlwJwpWRVJT SU9OPSctJwpXSU5DTkdfRkFMU0U9JyMnCldJTkNOR19UUlVFPScnCmFjX2N0X0FSPSdhcicKYWNf Y3RfQ0M9J2djYycKYWNfY3RfRFVNUEJJTj0nJwphbV9fRVhFRVhUX0ZBTFNFPScjJwphbV9fRVhF RVhUX1RSVUU9JycKYW1fX2Zhc3RkZXBDQ19GQUxTRT0nIycKYW1fX2Zhc3RkZXBDQ19UUlVFPScn CmFtX19pbmNsdWRlPSdpbmNsdWRlJwphbV9faXNyYz0nJwphbV9fbGVhZGluZ19kb3Q9Jy4nCmFt X19ub2RlcD0nX25vJwphbV9fcXVvdGU9JycKYW1fX3Rhcj0nJCR7VEFSLXRhcn0gY2hvZiAtICIk JHRhcmRpciInCmFtX191bnRhcj0nJCR7VEFSLXRhcn0geGYgLScKYmluZGlyPScke2V4ZWNfcHJl Zml4fS9iaW4nCmJ1aWxkPSdpNjg2LXBjLW1zeXMnCmJ1aWxkX2FsaWFzPSdpNjg2LXBjLW1zeXMn CmJ1aWxkX2NwdT0naTY4NicKYnVpbGRfb3M9J21zeXMnCmJ1aWxkX3ZlbmRvcj0ncGMnCmRhdGFk aXI9JyR7ZGF0YXJvb3RkaXJ9JwpkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwpkb2NkaXI9 JyR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BBQ0tBR0VfVEFSTkFNRX0nCmR2aWRpcj0nJHtkb2NkaXJ9 JwpleGVjX3ByZWZpeD0nJHtwcmVmaXh9Jwpob3N0PSdpNjg2LXBjLW1zeXMnCmhvc3RfYWxpYXM9 JycKaG9zdF9jcHU9J2k2ODYnCmhvc3Rfb3M9J21zeXMnCmhvc3RfdmVuZG9yPSdwYycKaHRtbGRp cj0nJHtkb2NkaXJ9JwppbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKaW5mb2Rpcj0nJHtk YXRhcm9vdGRpcn0vaW5mbycKaW5zdGFsbF9zaD0nJHtTSEVMTH0gL2QvTWlsaW5kL0Rvd25sb2Fk cy9saWJzc2gyL2luc3RhbGwtc2gnCmxpYmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJwpsaWJleGVj ZGlyPScke2V4ZWNfcHJlZml4fS9saWJleGVjJwpsb2NhbGVkaXI9JyR7ZGF0YXJvb3RkaXJ9L2xv Y2FsZScKbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKbWFuZGlyPScke2RhdGFyb290ZGly fS9tYW4nCm1rZGlyX3A9JyQoTUtESVJfUCknCm9sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScK cGRmZGlyPScke2RvY2Rpcn0nCnByZWZpeD0nL3VzcicKcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0n cyx4LHgsJwpwc2Rpcj0nJHtkb2NkaXJ9JwpzYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwpz aGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycK dGFyZ2V0X2FsaWFzPScnCgojIyAtLS0tLS0tLS0tLSAjIwojIyBjb25mZGVmcy5oLiAjIwojIyAt LS0tLS0tLS0tLSAjIwoKLyogY29uZmRlZnMuaCAqLwojZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGli c3NoMiIKI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCiNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICItIgojZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCiNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgojZGVmaW5lIFBBQ0tB R0VfVVJMICIiCiNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKI2RlZmluZSBWRVJTSU9OICItIgoj ZGVmaW5lIFNURENfSEVBREVSUyAxCiNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCiNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKI2RlZmluZSBIQVZFX1NURExJQl9IIDEKI2RlZmluZSBIQVZFX1NU UklOR19IIDEKI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx CiNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKI2RlZmluZSBIQVZFX1NURElOVF9IIDEKI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKI2RlZmluZSBIQVZFX0RM RkNOX0ggMQojZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgojZGVmaW5lIEhBVkVfTlRERUZfSCAx CiNkZWZpbmUgSEFWRV9OVFNUQVRVU19IIDEKI2RlZmluZSBIQVZFX0RFQ0xfU0VDVVJFWkVST01F TU9SWSAxCiNkZWZpbmUgSEFWRV9MSUJDUllQVDMyIDEKI2RlZmluZSBIQVZFX0xJQkJDUllQVCAx CiNkZWZpbmUgTElCU1NIMl9XSU5DTkcgMQojZGVmaW5lIExJQlNTSDJfREhfR0VYX05FVyAxCiNk ZWZpbmUgTElCU1NIMl9DTEVBUl9NRU1PUlkgMQojZGVmaW5lIEhBVkVfRVJSTk9fSCAxCiNkZWZp bmUgSEFWRV9GQ05UTF9IIDEKI2RlZmluZSBIQVZFX1NURElPX0ggMQojZGVmaW5lIEhBVkVfU1RE TElCX0ggMQojZGVmaW5lIEhBVkVfVU5JU1REX0ggMQojZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEK I2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCiNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQoj ZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQojZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCiNkZWZp bmUgSEFWRV9BUlBBX0lORVRfSCAxCiNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQojZGVmaW5l IEhBVkVfU1lTX1VOX0ggMQojZGVmaW5lIEhBVkVfV0lORE9XU19IIDEKI2RlZmluZSBIQVZFX1BP TEwgMQojZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKI2RlZmluZSBIQVZFX1NFTEVDVCAxCiNk ZWZpbmUgSEFWRV9TVFJUT0xMIDEKI2RlZmluZSBIQVZFX0FMTE9DQV9IIDEKI2RlZmluZSBIQVZF X0FMTE9DQSAxCiNkZWZpbmUgSEFWRV9PX05PTkJMT0NLIDEKCmNvbmZpZ3VyZTogZXhpdCAwCg== --000000000000a767320571687cfe Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlic3NoMi1k ZXZlbCBodHRwczovL2Nvb2wuaGF4eC5zZS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbGlic3No Mi1kZXZlbAo= --000000000000a767320571687cfe-- From libssh2-devel-bounces@cool.haxx.se Fri Jul 20 14:51:58 2018 Return-Path: Received: from www.haxx.se (mail [127.0.0.1]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTP id w6KCpZDC030139; Fri, 20 Jul 2018 14:51:54 +0200 Received: from giant.haxx.se (mail [127.0.0.1]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTPS id w6KCpXY5030134 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 20 Jul 2018 14:51:33 +0200 Received: from localhost (dast@localhost) by giant.haxx.se (8.15.2/8.15.2/Submit) with ESMTP id w6KCpXex030130 for ; Fri, 20 Jul 2018 14:51:33 +0200 X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs Date: Fri, 20 Jul 2018 14:51:33 +0200 (CEST) From: Daniel Stenberg X-X-Sender: dast@giant.haxx.se To: libssh2 development Subject: Re: Windows compilation help In-Reply-To: Message-ID: References: <20180719184814.GA22595@coneharvesters.com> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) X-fromdanielhimself: yes MIME-Version: 1.0 X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.22 Precedence: list List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: libssh2 development Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id w6KCpZDC030139 On Thu, 19 Jul 2018, Milind Gupta wrote: > In file included from conftest.c:79:0: > /usr/include/w32api/winsock2.h:1004:34: error: conflicting types for > 'gethostname' > WINSOCK_API_LINKAGE int WSAAPI gethostname(char *name,int namelen); > > I have attached the config.log file. I found a similar error reported for > imagemagick and I think they did a patch for it. Your compiler found two conflicting declarations of gethostname(). That seems like a problem that's not up to libssh2 to fix... -- / daniel.haxx.se _______________________________________________ libssh2-devel https://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Fri Jul 20 15:34:54 2018 Return-Path: Received: from www.haxx.se (mail [127.0.0.1]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTP id w6KDYa0n032475; Fri, 20 Jul 2018 15:34:49 +0200 Received: from foo.stuge.se (foo.stuge.se [212.116.89.98]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTPS id w6KDYY3K032378 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 20 Jul 2018 15:34:35 +0200 Received: (qmail 18569 invoked by uid 1000); 20 Jul 2018 13:34:30 -0000 Message-ID: <20180720133430.18568.qmail@stuge.se> Date: Fri, 20 Jul 2018 13:34:30 +0000 From: Peter Stuge To: libssh2 development Subject: Re: Windows compilation help MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.22 Precedence: list List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: libssh2 development Content-Type: text/plain; charset="utf-8" Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id w6KDYa0n032475 Milind Gupta wrote: > I have attached the config.log file. Great that you included the complete config.log file! Thanks. This was absolutely neccessary in order to recognize the actual problem. Daniel Stenberg wrote: > Your compiler found two conflicting declarations of gethostname(). > That seems like a problem that's not up to libssh2 to fix... The problem isn't just with gethostname() but also with other functions, including select(). Various headers in /usr/include in the environment where you invoked configure are incompatible with the MSYS headers in /usr/i686-pc-msys/include in that same environment. If this is not an error with your system and/or environment and you want to build for MSYS then you actually want to cross-compile libssh2, which is supported, but you have to be explicit about that when invoking configure. That could look like so: (This is just an example, you have to know what is appropriate for your environment.) ./configure --host=i686-pc-msys The key here is that your cross-compiler toolchain (MSYS gcc and binutils) executables have an i686-pc-msys- filename prefix. So if this is the correct prefix then you should be able to invoke e.g. i686-pc-msys-gcc and i686-pc-msys-ld. //Peter _______________________________________________ libssh2-devel https://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Wed Jul 25 09:57:11 2018 Return-Path: Received: from www.haxx.se (mail [127.0.0.1]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTP id w6P7uT6S004527; Wed, 25 Jul 2018 09:56:59 +0200 Received: from mail-qt0-x233.google.com (mail-qt0-x233.google.com [IPv6:2607:f8b0:400d:c0d:0:0:0:233]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTPS id w6P7uQSR004354 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Wed, 25 Jul 2018 09:56:26 +0200 Received: by mail-qt0-x233.google.com with SMTP id b15-v6so6747208qtp.11 for ; Wed, 25 Jul 2018 00:56:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=ZHCK4j71QsXHyYg3JsZlpYL22ortzjbVTmMalW7xPJk=; b=NcdELtuxBssAZTychtkOy3WpDLW7JEhXJyJmIhSbFJjdr4TVQZwOBWw7Y1D6QYe+uv 1CTpUYZHITKFYKhHVJbd1Qs/D+3OcV37y/VnTVLvG7C01ZPHPA1odggZqDw/0WN15teM zklY1tcPWXbR4A4QBgeVH+pkt7/Pr5YADCd3hOLM0zszO30Nv4MEon05ZBJsysJrbaKZ CmHk12uzTFpOsdj/JBKtX+cMoM5RpPOycUA/5gsVPwKatveQ6V4kftCU6sa6zgXwTung 2N8WPj4ffgrTI6HUXTn1C90zQ5lJByiGWMbgWZMvAcjVRZMznOzNrd6LHC9v2ZhqzGaK VY9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=ZHCK4j71QsXHyYg3JsZlpYL22ortzjbVTmMalW7xPJk=; b=bzuLNRo6VYRnCBnBvOgHwOjnUdXVzEEdpAQscG2WTmfO86JwhFwWKPl72arQP5Oabp O1SJfP/0otcbJnlc7ZUsNOWsIPGddHVOkEpn1+ZGDqdaX21xC29oJ7U3xLPvnw/TWO5D 3ZU6OQQ6j02/K3wjqqT6zZ+AFaV8uupjsGpo/9edOxNf/VBn2RWkZIXXNf91JU1bRe5I UvcvRUbbR/r5QKnHVlUow20yeu6+uDLrXk+i288OdiW07bACKujY5wCixHlP3ASOwXrs qhMg/tMpnsQ7XFOIhD0ScefKcNAHG3FvHrmlt3N1+r68zgueh9IILH8ZcLJcmLLWvaVb UDyQ== X-Gm-Message-State: AOUpUlGTSXJ14bYAQZHhZ2ZbWIMACs9FxgywWJqDDJQ9JXu6oLdrlxlT gQGkkbOL0kQKuuDZCXZr0sJ4COBaZxW43s7cg+Ddrg== X-Google-Smtp-Source: AAOMgpfTNUWc0aUE3IxYmXnGy4gsmv/0xngmjG8DHcB6siBvYm5NuASinPoLm7rvxT0z/NZ5JyzdKYh7ekKf/1P9kqE= X-Received: by 2002:ac8:193a:: with SMTP id t55-v6mr18675456qtj.251.1532505380704; Wed, 25 Jul 2018 00:56:20 -0700 (PDT) MIME-Version: 1.0 References: <20180720133430.18568.qmail@stuge.se> In-Reply-To: <20180720133430.18568.qmail@stuge.se> From: Milind Gupta Date: Wed, 25 Jul 2018 00:56:10 -0700 Message-ID: Subject: Re: Windows compilation help To: libssh2-devel@cool.haxx.se X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.22 Precedence: list List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: libssh2 development Content-Type: multipart/mixed; boundary="===============0515761742==" Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" --===============0515761742== Content-Type: multipart/alternative; boundary="000000000000d558070571ce36f4" --000000000000d558070571ce36f4 Content-Type: text/plain; charset="UTF-8" Hi Peter, Thank you very much for your reply. That helped me understand the problem better. I alternatively tried compiling using Cmake and was able to get it to compile easily. Thanks, Milind On Fri, Jul 20, 2018 at 6:36 AM Peter Stuge wrote: > Milind Gupta wrote: > > I have attached the config.log file. > > Great that you included the complete config.log file! Thanks. This > was absolutely neccessary in order to recognize the actual problem. > > > Daniel Stenberg wrote: > > Your compiler found two conflicting declarations of gethostname(). > > That seems like a problem that's not up to libssh2 to fix... > > The problem isn't just with gethostname() but also with other > functions, including select(). > > > Various headers in /usr/include in the environment where you invoked > configure are incompatible with the MSYS headers in > /usr/i686-pc-msys/include in that same environment. > > If this is not an error with your system and/or environment and you > want to build for MSYS then you actually want to cross-compile > libssh2, which is supported, but you have to be explicit about that > when invoking configure. > > That could look like so: (This is just an example, you have to know > what is appropriate for your environment.) > > ./configure --host=i686-pc-msys > > The key here is that your cross-compiler toolchain (MSYS gcc and > binutils) executables have an i686-pc-msys- filename prefix. So if > this is the correct prefix then you should be able to invoke e.g. > i686-pc-msys-gcc and i686-pc-msys-ld. > > > //Peter > _______________________________________________ > libssh2-devel https://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel > --000000000000d558070571ce36f4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Peter,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 Thank you very much for your reply. That helped me understand the pr= oblem better. I alternatively tried compiling using Cmake and was able to g= et it to compile easily.

Thanks,
Milind<= /div>

On Fri, Jul 20, = 2018 at 6:36 AM Peter Stuge <peter@stu= ge.se> wrote:
Milind Gupta w= rote:
> I have attached the config.log file.

Great that you included the complete config.log file! Thanks. This
was absolutely neccessary in order to recognize the actual problem.


Daniel Stenberg wrote:
> Your compiler found two conflicting declarations of gethostname().
> That seems like a problem that's not up to libssh2 to fix...

The problem isn't just with gethostname() but also with other
functions, including select().


Various headers in /usr/include in the environment where you invoked
configure are incompatible with the MSYS headers in
/usr/i686-pc-msys/include in that same environment.

If this is not an error with your system and/or environment and you
want to build for MSYS then you actually want to cross-compile
libssh2, which is supported, but you have to be explicit about that
when invoking configure.

That could look like so: (This is just an example, you have to know
what is appropriate for your environment.)

./configure --host=3Di686-pc-msys

The key here is that your cross-compiler toolchain (MSYS gcc and
binutils) executables have an i686-pc-msys- filename prefix. So if
this is the correct prefix then you should be able to invoke e.g.
i686-pc-msys-gcc and i686-pc-msys-ld.


//Peter
_______________________________________________
libssh2-devel https://cool.haxx.se/cgi-bi= n/mailman/listinfo/libssh2-devel
--000000000000d558070571ce36f4-- --===============0515761742== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlic3NoMi1k ZXZlbCBodHRwczovL2Nvb2wuaGF4eC5zZS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbGlic3No Mi1kZXZlbAo= --===============0515761742==--