From libssh2-devel-bounces@cool.haxx.se  Sat Feb  2 12:10:38 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r12BA9ux024647;
	Sat, 2 Feb 2013 12:10:31 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r12BA7SQ024634
 for <libssh2-devel@cool.haxx.se>; Sat, 2 Feb 2013 12:10:07 +0100
Received: (qmail 3344 invoked from network); 2 Feb 2013 11:10:02 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 2 Feb 2013 11:10:02 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Sat, 02 Feb 2013 11:10:02 -0000
X-URL: https://trac.libssh2.org/
Subject: [libssh2] #257: libssh2_session_free: infinite loop
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/257
Message-ID: <045.3a6303a2f2130b73fe2ad7500d92628d@libssh2.stuge.se>
X-Trac-Ticket-ID: 257
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r12BA7SQ024634
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#257: libssh2_session_free: infinite loop
----------------------+--------------------
 Reporter:  greg2001  |       Owner:
     Type:  defect    |      Status:  new
 Priority:  normal    |   Milestone:  1.4.3
Component:  API       |     Version:  1.4.2
 Keywords:            |  Blocked By:
   Blocks:            |
----------------------+--------------------
 Hi libssh2 developers!
 First, thank you very much for the awesome library: I'm using it (in
 combination with Boost ASIO) in a client(iOS)/server(Linux) application
 with a lot of channels per single SSH session and a lot of data
 transferred back and forth - and everything works great!

 Only a small bug:
 Let's suppose, we have a session with active forward listeners - and the
 connection breaks. Calling libssh2_session_free in this situation would
 produce an infinite loop when trying to cancel the forward listeners:
 -----------------------------------------------
         while ((l = _libssh2_list_first(&session->listeners))) {
             rc = _libssh2_channel_forward_cancel(l);
             if (rc == LIBSSH2_ERROR_EAGAIN)
                 return rc;
         }
 -----------------------------------------------

 A short look into _libssh2_channel_forward_cancel reveals the following:
 -----------------------------------------------
         rc = _libssh2_transport_send(session, packet, packet_len, NULL,
 0);
         if (rc == LIBSSH2_ERROR_EAGAIN) {
             ...
         }
         else if (rc) {
             _libssh2_error(session, LIBSSH2_ERROR_SOCKET_SEND,
                            "Unable to send global-request packet for
 forward "
                            "listen request");
             LIBSSH2_FREE(session, packet);
             listener->chanFwdCncl_state = libssh2_NB_state_idle;
             return LIBSSH2_ERROR_SOCKET_SEND;
         }
 -----------------------------------------------
 So, in case of a comm failure, the listener will never be destroyed
 causing the infinite loop. Removing the block after "else if (rc)" fixes
 the bug. For some reasons, I got this bug only after upgrade to 1.4.3,
 1.4.2 was fine...

 Another one really small thing: at the end of
 _libssh2_channel_forward_cancel, the following line accesses already de-
 allocated memory:
 -----------------------------------------------
     listener->chanFwdCncl_state = libssh2_NB_state_idle;
 -----------------------------------------------

 WBR
 Gregory Moltchadski

-- 
Ticket URL: <https://trac.libssh2.org/ticket/257>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb  5 02:37:50 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r151NpOR014763;
	Tue, 5 Feb 2013 02:24:14 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r151NnNb014703
 for <libssh2-devel@cool.haxx.se>; Tue, 5 Feb 2013 02:23:49 +0100
Received: (qmail 22026 invoked from network); 5 Feb 2013 01:23:46 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 5 Feb 2013 01:23:46 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Tue, 05 Feb 2013 01:23:46 -0000
X-URL: https://trac.libssh2.org/
Subject: Re: [libssh2] #256: many writes,
 congested link -> LIBSSH2_ERROR_BAD_USE, stuck
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/256#comment:1
Message-ID: <055.4c803f6eeecfbe9d1d6643ea4bb925dc@libssh2.stuge.se>
References: <040.9cc8a4935ffb9ba017602a502ffabbc6@libssh2.stuge.se>
X-Trac-Ticket-ID: 256
In-Reply-To: <040.9cc8a4935ffb9ba017602a502ffabbc6@libssh2.stuge.se>
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r151NnNb014703
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#256: many writes, congested link -> LIBSSH2_ERROR_BAD_USE, stuck
---------------------+-------------------
  Reporter:  ncm     |      Owner:
      Type:  defect  |     Status:  new
  Priority:  normal  |  Milestone:  1.4.3
 Component:  misc    |    Version:  1.4.2
Resolution:          |   Keywords:
Blocked By:          |     Blocks:
---------------------+-------------------

Comment (by ncm):

 During thorough testing, we have logged this
 happening with keepalive packets, as seen in #254.
 The attached patch fixes that too.  It is needed
 in addition to the patch proposed in #250 to fix
 that failure completely.

 I should explain the logic of the patch.
 Control messages are treated a little differently
 from payload messages.  In either case, when a
 short write has occurred, _transport_send can
 only begin by sending what it can of the saved
 ciphertext of the rest of the pending message,
 before considering the current one.

 If the pending text was from a control message,
 libssh2 will be making no attempt to re-try it.
 Still, part of it has already gone out, so the
 rest must be handled now, whatever the current
 message is for. After that, the current message
 can be processed normally, possibly resulting in
 another short write.

 If the pending text was from a payload message,
 things are a little trickier.  If this call is for a
 control message or for a different channel, we
 must simply return _EAGAIN: if the pending text
 were to drain successfully, then when the client
 calls _write() later with the same payload (note
 that it will have gotten _EAGAIN on the previous
 try), that payload would be sent twice.  If this
 call is for the same payload, we can just try
 again to drain it, and report the result.

-- 
Ticket URL: <https://trac.libssh2.org/ticket/256#comment:1>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb  5 02:52:56 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r151qrFg029096;
	Tue, 5 Feb 2013 02:52:55 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r151qpAV029078
 for <libssh2-devel@cool.haxx.se>; Tue, 5 Feb 2013 02:52:51 +0100
Received: (qmail 25438 invoked from network); 5 Feb 2013 01:52:51 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 5 Feb 2013 01:52:51 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Tue, 05 Feb 2013 01:52:51 -0000
X-URL: https://trac.libssh2.org/
Subject: Re: [libssh2] #256: many writes,
 congested link -> LIBSSH2_ERROR_BAD_USE, stuck
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/256#comment:2
Message-ID: <055.6c510f680215261f7888df6138516134@libssh2.stuge.se>
References: <040.9cc8a4935ffb9ba017602a502ffabbc6@libssh2.stuge.se>
X-Trac-Ticket-ID: 256
In-Reply-To: <040.9cc8a4935ffb9ba017602a502ffabbc6@libssh2.stuge.se>
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r151qpAV029078
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#256: many writes, congested link -> LIBSSH2_ERROR_BAD_USE, stuck
---------------------+-------------------
  Reporter:  ncm     |      Owner:
      Type:  defect  |     Status:  new
  Priority:  normal  |  Milestone:  1.4.3
 Component:  misc    |    Version:  1.4.2
Resolution:          |   Keywords:
Blocked By:          |     Blocks:
---------------------+-------------------

Comment (by stuge):

 Replying to [comment:1 ncm]:
 > Control messages are treated a little differently
 > from payload messages.

 I don't like how the patch overloads a new situation onto _EAGAIN. All the
 hidden state within libssh2 is messy but I don't think it make sense to
 make it any worse.

 If I understand correctly the patch is for handling "internal" calls from
 other parts of libssh2. Please find a clean way to make that work instead
 - something that makes it clear what is actually going on. (Special
 handling because it is an internal call.) Perhaps by adding a new error
 code.

-- 
Ticket URL: <https://trac.libssh2.org/ticket/256#comment:2>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb  5 21:48:46 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r15KmSVj024802;
	Tue, 5 Feb 2013 21:48:41 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r15KmQtU024791
 for <libssh2-devel@cool.haxx.se>; Tue, 5 Feb 2013 21:48:26 +0100
Received: (qmail 31082 invoked from network); 5 Feb 2013 20:48:26 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 5 Feb 2013 20:48:26 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Tue, 05 Feb 2013 20:48:26 -0000
X-URL: https://trac.libssh2.org/
Subject: Re: [libssh2] #256: many writes,
 congested link -> LIBSSH2_ERROR_BAD_USE, stuck
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/256#comment:3
Message-ID: <055.71d2dc192da2d4ed408f36e50978b8de@libssh2.stuge.se>
References: <040.9cc8a4935ffb9ba017602a502ffabbc6@libssh2.stuge.se>
X-Trac-Ticket-ID: 256
In-Reply-To: <040.9cc8a4935ffb9ba017602a502ffabbc6@libssh2.stuge.se>
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r15KmQtU024791
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#256: many writes, congested link -> LIBSSH2_ERROR_BAD_USE, stuck
---------------------+-------------------
  Reporter:  ncm     |      Owner:
      Type:  defect  |     Status:  new
  Priority:  normal  |  Milestone:  1.4.3
 Component:  misc    |    Version:  1.4.2
Resolution:          |   Keywords:
Blocked By:          |     Blocks:
---------------------+-------------------

Comment (by ncm):

 OK, will post another patch, with corresponding changes in channel.c.  I
 recognize that the present patch is not compatible with the logic in
 current {{{_libssh2_channel_receive_window_adjust()}}}.

 If I understand you correctly, there is no need to force internal state
 details into the POSIX mold, so we can use more expressive status
 reporting internally, and then filter them to POSIX-style codes only at
 the public interface boundary.  Would you prefer to have new internal-only
 error codes defined in {{{include/libssh2.h}}}, or create an island in
 that space in {{{src/libssh2_priv.h}}}? (Assuming the former.)

 The additional return values I propose to define are _QUEUED (encrypted
 into {{{session->packet->outbuf}}} but not all sent yet) and _DROPPED,
 which callers of _transport_send may then translate to _EAGAIN as
 appropriate for delivery to their callers. I assume we don't want to
 change the interface to clients by adding more error return values there.

 An alternative to dropping control messages that cannot be posted
 immediately is to encrypt and append them to the present contents of
 {{{session->packet->outbuf}}}, but I don't see a clean way to protect
 against appending too much.  I think we need either a "send_eof" flag
 saying to insert one at the next opportunity, OR to allow a single EOF
 message to be appended to outbuf, with a "sent_eof" flag.  The latter
 seems a little cleaner.

-- 
Ticket URL: <https://trac.libssh2.org/ticket/256#comment:3>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb  7 08:57:10 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r177uhRG004702;
	Thu, 7 Feb 2013 08:57:03 +0100
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r177ufdu004693
 for <libssh2-devel@cool.haxx.se>; Thu, 7 Feb 2013 08:56:41 +0100
Received: (qmail 8342 invoked by uid 501); 7 Feb 2013 07:56:40 -0000
Message-ID: <20130207075640.8341.qmail@stuge.se>
Date: Thu, 7 Feb 2013 08:56:40 +0100
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2_channel_direct_tcpip_ex
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CAPoy1UKE-EWw4Up2e-GrBLty+7hyFPURpa9SPxKfTXyqLw=WJA@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CAPoy1UKE-EWw4Up2e-GrBLty+7hyFPURpa9SPxKfTXyqLw=WJA@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

Aristidis Zoutsos wrote:
> it cannot reestablish a new channel

You are providing no information whatsoever about what is happening,
so it is impossible to help you. Send a debug log.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb  7 17:05:08 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r17G4AgM003051;
	Thu, 7 Feb 2013 17:04:26 +0100
Received: from mail-qe0-f47.google.com (mail-qe0-f47.google.com
 [209.85.128.47])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r17G45UA002894
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 7 Feb 2013 17:04:06 +0100
Received: by mail-qe0-f47.google.com with SMTP id 2so1239137qea.6
 for <libssh2-devel@cool.haxx.se>; Thu, 07 Feb 2013 08:04:00 -0800 (PST)
X-Received: by 10.224.196.196 with SMTP id eh4mr876992qab.68.1360253040092;
 Thu, 07 Feb 2013 08:04:00 -0800 (PST)
Received: from mail-qa0-f43.google.com (mail-qa0-f43.google.com
 [209.85.216.43])
 by mx.google.com with ESMTPS id f5sm12574356qac.5.2013.02.07.08.03.58
 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
 Thu, 07 Feb 2013 08:03:59 -0800 (PST)
Received: by mail-qa0-f43.google.com with SMTP id dx4so2893437qab.16
 for <libssh2-devel@cool.haxx.se>; Thu, 07 Feb 2013 08:03:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=x-received:mime-version:in-reply-to:references:from:date:message-id
 :subject:to:content-type;
 bh=GOKpRz+NdbfEue0tPlpx/RF9F/WBwomjgIWxTpZSiyM=;
 b=GnvzGthoaRi/WMIBz7O28923DDaCsbIQd+GhxdGVrTN+SCJl2ejVhy2hEfhHoP5kY5
 iLGkVY4GbZGOER+Ug/5WvFxcL4jeQzmQlV3LAhrXdOCkNA5qKnVNx6FASNYZl8bZRCHf
 ILwVheGxnOU6A99fY2TqAZskveIXNbIzuGLun8ollxs9EAGaDPubaShgKpPulLWoPzRK
 fEK2N8m4sO74PMDU30oJ1iuqeO8YdUuzsC7wp9roMDaispVx/UGkeYpn1HK9Wz2JBkD2
 fMwAfBcm3IFv6wGIcl1PZAcDFTmsgxkiR1+uEoa8uRK4BSuM/gPm9zRlK9AbfKEIWYfD
 8S9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=x-received:mime-version:in-reply-to:references:from:date:message-id
 :subject:to:content-type:x-gm-message-state;
 bh=GOKpRz+NdbfEue0tPlpx/RF9F/WBwomjgIWxTpZSiyM=;
 b=RTcmWzoTjGfK1To1xhMtbJRFlnvC5i+tmLgzQs1N9lBUeqtEV17Su23wkOrrobGwhW
 2dIG9CE9wqwbxH8xq/3Xuy/tm/WdMoGxkdA4lrYeCyQfXQZ2ZL12eiTsf/e5Ylz/NwMP
 xh5KKoUaranHe5u1BJnFP6R3/mS8Hj5Vqwm88KXHadCRsJIpfEDWXnzGNtrHXW58UGwf
 OSeJz62MTaGmxCEj1QPXMTmDdrxz4rBTmxbSby9wrZhsL3T3576KGI8L4l367seP/kGa
 1tKiXyuIv4iAVoVnD8MhbLFKniOZ8nxa5QqjD4nz5VddqhW4FdwJvUSTqoSHOzxF8Qkp
 jYlQ==
X-Received: by 10.224.58.147 with SMTP id g19mr913727qah.22.1360253036541;
 Thu, 07 Feb 2013 08:03:56 -0800 (PST)
MIME-Version: 1.0
Received: by 10.49.96.66 with HTTP; Thu, 7 Feb 2013 08:03:36 -0800 (PST)
In-Reply-To: <20130207075640.8341.qmail@stuge.se>
References: <CAPoy1UKE-EWw4Up2e-GrBLty+7hyFPURpa9SPxKfTXyqLw=WJA@mail.gmail.com>
 <20130207075640.8341.qmail@stuge.se>
From: Aristidis Zoutsos <azouts@gmail.com>
Date: Thu, 7 Feb 2013 18:03:36 +0200
Message-ID: <CAPoy1U+iqceO7y1rEfo7iXTieAB=WA=7f=ZtsOr0GYGnX9+erA@mail.gmail.com>
Subject: Re: libssh2_channel_direct_tcpip_ex
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Gm-Message-State: ALoCoQm5CMH0fojBYw5y2JMT9q3I7z0/sudxAyLiVpJ4xuY+FIz/JIPe7EBHBkgBGrliOK12XJpy
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1612275764=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

--===============1612275764==
Content-Type: multipart/alternative; boundary=20cf3074d2480c360c04d524977c

--20cf3074d2480c360c04d524977c
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

*Here is a debug log:*

*2013-02-07 17:49:46.181 SSH-Proxied-WebView[25443:11303] thread support
enabled*

*2013-02-07 17:49:46.444 SSH-Proxied-WebView[25443:11303] SSH Forwarder
started on port: 8889 and host: 0.0.0.0*

*2013-02-07 17:49:50.420 SSH-Proxied-WebView[25443:11303] open ssh
connections 1*

*2013-02-07 17:49:50.421 SSH-Proxied-WebView[25443:11303] open http proxy
sockets 0*

*2013-02-07 17:49:50.656 SSH-Proxied-WebView[25443:15603] ssh trace:
[libssh2] 0.656385 Conn: Requesting direct-tcpip session to from
0.0.0.0:16807 to 127.0.0.1:14530*

*2013-02-07 17:49:50.657 SSH-Proxied-WebView[25443:15603] ssh trace:
[libssh2] 0.657024 Conn: Allocated new channel ID#0*

*2013-02-07 17:49:50.657 SSH-Proxied-WebView[25443:15603] ssh trace:
[libssh2] 0.657528 Conn: Opening Channel - win 262144 pack 32768*

*2013-02-07 17:49:50.658 SSH-Proxied-WebView[25443:15603] ssh trace:
[libssh2] 0.658102 Failure Event: -37 - Would block*

*2013-02-07 17:49:50.666 SSH-Proxied-WebView[25443:15603] ssh trace:
[libssh2] 0.666295 Conn: Connection Established - ID: 0/0 win:
262144/262144 pack: 32768/32768*

*2013-02-07 17:49:50.667 SSH-Proxied-WebView[25443:15603] ssh trace:
[libssh2] 0.667081 Conn: Setting blocking mode OFF*

*2013-02-07 17:49:50.675 SSH-Proxied-WebView[25443:17003] ssh trace:
[libssh2] 0.675713 Conn: Requesting direct-tcpip session to from
0.0.0.0:16807 to 127.0.0.1:14530*

*2013-02-07 17:49:50.675 SSH-Proxied-WebView[25443:17003] ssh trace:
[libssh2] 0.675934 Conn: Allocated new channel ID#1*

*2013-02-07 17:49:50.676 SSH-Proxied-WebView[25443:17003] ssh trace:
[libssh2] 0.676066 Conn: Opening Channel - win 262144 pack 32768*

*Could not open the direct-tcpip channel!*

*(Note that this can be a problem at the server! Please review the server
logs.)*

*2013-02-07 17:49:50.676 SSH-Proxied-WebView[25443:17003] Failed
establishing tunnel*

*2013-02-07 17:49:50.677 SSH-Proxied-WebView[25443:16a07]
[TunneledURLProtocol] Request: http://192.168.0.142/demo*

*2013-02-07 17:49:50.677 SSH-Proxied-WebView[25443:16a07]
[TunneledURLProtocol] Got response 502: content-type:
application/octet-stream*

*2013-02-07 17:49:50.677 SSH-Proxied-WebView[25443:16a07]
HTTPConnectionDidFinishLoading conn:<CKHTTPConnection: 0x934b4a0>*

*2013-02-07 17:49:50.728 SSH-Proxied-WebView[25443:11303]
[SecureWebViewController] Error: The operation couldn=E2=80=99t be complete=
d. (HTTP
Status code: error 502.)*


The code that requests a new channel using a valid session:

- (LIBSSH2_CHANNEL *)establishCFTunnelWithMaxRetries:(int)maxRetries

{

    if(--maxRetries<=3D0) {

        return nil;

    }



    LIBSSH2_CHANNEL *channelg =3D libssh2_channel_direct_tcpip_ex(self.
sessiong,

                                                    [Z_SSH_REMOTE_FW_HOST
cStringUsingEncoding:NSUTF8StringEncoding],

                                                    Z_SSH_REMOTE_FW_PORT,

                                                    [self.host
cStringUsingEncoding:NSUTF8StringEncoding],

                                                    self.port);

    if (channelg=3D=3Dnil) {

        fprintf(stderr, "Could not open the direct-tcpip channel!\n"

                "(Note that this can be a problem at the server!"

                " Please review the server logs.)\n");

        return [self establishCFTunnelWithMaxRetries:maxRetries];

    }



    /* Must use non-blocking IO hereafter due to the current libssh2 API */

    libssh2_session_set_blocking(self.sessiong, 0);



    return channelg;

}







On Thu, Feb 7, 2013 at 9:56 AM, Peter Stuge <peter@stuge.se> wrote:

> Aristidis Zoutsos wrote:
> > it cannot reestablish a new channel
>
> You are providing no information whatsoever about what is happening,
> so it is impossible to help you. Send a debug log.
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>

--20cf3074d2480c360c04d524977c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable









<p class=3D"p1"><b>Here is a debug log:</b></p><p class=3D"p1"><b>2013-02-0=
7 17:49:46.181 SSH-Proxied-WebView[25443:11303] thread support enabled</b><=
/p>
<p class=3D"p1"><b>2013-02-07 17:49:46.444 SSH-Proxied-WebView[25443:11303]=
 SSH Forwarder started on port: 8889 and host: 0.0.0.0</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.420 SSH-Proxied-WebView[25443:11303]=
 open ssh connections 1</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.421 SSH-Proxied-WebView[25443:11303]=
 open http proxy sockets 0</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.656 SSH-Proxied-WebView[25443:15603]=
 ssh trace: [libssh2] 0.656385 Conn: Requesting direct-tcpip session to fro=
m <a href=3D"http://0.0.0.0:16807">0.0.0.0:16807</a> to <a href=3D"http://1=
27.0.0.1:14530">127.0.0.1:14530</a></b></p>


<p class=3D"p1"><b>2013-02-07 17:49:50.657 SSH-Proxied-WebView[25443:15603]=
 ssh trace: [libssh2] 0.657024 Conn: Allocated new channel ID#0</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.657 SSH-Proxied-WebView[25443:15603]=
 ssh trace: [libssh2] 0.657528 Conn: Opening Channel - win 262144 pack 3276=
8</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.658 SSH-Proxied-WebView[25443:15603]=
 ssh trace: [libssh2] 0.658102 Failure Event: -37 - Would block</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.666 SSH-Proxied-WebView[25443:15603]=
 ssh trace: [libssh2] 0.666295 Conn: Connection Established - ID: 0/0 win: =
262144/262144 pack: 32768/32768</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.667 SSH-Proxied-WebView[25443:15603]=
 ssh trace: [libssh2] 0.667081 Conn: Setting blocking mode OFF</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.675 SSH-Proxied-WebView[25443:17003]=
 ssh trace: [libssh2] 0.675713 Conn: Requesting direct-tcpip session to fro=
m <a href=3D"http://0.0.0.0:16807">0.0.0.0:16807</a> to <a href=3D"http://1=
27.0.0.1:14530">127.0.0.1:14530</a></b></p>


<p class=3D"p1"><b>2013-02-07 17:49:50.675 SSH-Proxied-WebView[25443:17003]=
 ssh trace: [libssh2] 0.675934 Conn: Allocated new channel ID#1</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.676 SSH-Proxied-WebView[25443:17003]=
 ssh trace: [libssh2] 0.676066 Conn: Opening Channel - win 262144 pack 3276=
8</b></p>
<p class=3D"p1"><b>Could not open the direct-tcpip channel!</b></p>
<p class=3D"p1"><b>(Note that this can be a problem at the server! Please r=
eview the server logs.)</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.676 SSH-Proxied-WebView[25443:17003]=
 Failed establishing tunnel</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.677 SSH-Proxied-WebView[25443:16a07]=
 [TunneledURLProtocol] Request: <a href=3D"http://192.168.0.142/demo">http:=
//192.168.0.142/demo</a></b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.677 SSH-Proxied-WebView[25443:16a07]=
 [TunneledURLProtocol] Got response 502: content-type: application/octet-st=
ream</b></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.677 SSH-Proxied-WebView[25443:16a07]=
 HTTPConnectionDidFinishLoading conn:&lt;CKHTTPConnection: 0x934b4a0&gt;</b=
></p>
<p class=3D"p1"><b>2013-02-07 17:49:50.728 SSH-Proxied-WebView[25443:11303]=
 [SecureWebViewController] Error: The operation couldn=E2=80=99t be complet=
ed. (HTTP Status code: error 502.)</b></p><div><br></div><div><br></div><di=
v>The code that requests a new channel using a valid session:</div>

<div><br></div><div>







<p class=3D"p1">- (<span class=3D"s1">LIBSSH2_CHANNEL</span> *)establishCFT=
unnelWithMaxRetries:(<span class=3D"s2">int</span>)maxRetries</p>
<p class=3D"p1">{</p>
<p class=3D"p1">=C2=A0 =C2=A0 <span class=3D"s2">if</span>(--maxRetries&lt;=
=3D<span class=3D"s3">0</span>) {</p>
<p class=3D"p1">=C2=A0 =C2=A0 =C2=A0 =C2=A0 <span class=3D"s2">return</span=
> <span class=3D"s2">nil</span>;</p>
<p class=3D"p1">=C2=A0 =C2=A0 }</p>
<p class=3D"p2">=C2=A0=C2=A0 =C2=A0</p>
<p class=3D"p3"><span class=3D"s4">=C2=A0 =C2=A0 </span><span class=3D"s1">=
LIBSSH2_CHANNEL</span><span class=3D"s4"> *channelg =3D </span>libssh2_chan=
nel_direct_tcpip_ex<span class=3D"s4">(</span><span class=3D"s2">self</span=
><span class=3D"s4">.</span><span class=3D"s1">sessiong</span><span class=
=3D"s4">,</span></p>


<p class=3D"p1">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [<span class=3D"s5">Z_SSH_=
REMOTE_FW_HOST</span> <span class=3D"s6">cStringUsingEncoding</span>:<span =
class=3D"s6">NSUTF8StringEncoding</span>],</p>
<p class=3D"p1">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <span class=3D"s5">Z_SSH_R=
EMOTE_FW_PORT</span>,</p>
<p class=3D"p1">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [<span class=3D"s2">self</=
span>.<span class=3D"s1">host</span> <span class=3D"s6">cStringUsingEncodin=
g</span>:<span class=3D"s6">NSUTF8StringEncoding</span>],</p>


<p class=3D"p1">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <span class=3D"s2">self</s=
pan>.<span class=3D"s1">port</span>);</p>
<p class=3D"p1">=C2=A0 =C2=A0 <span class=3D"s2">if</span> (channelg=3D=3D<=
span class=3D"s2">nil</span>) {</p>
<p class=3D"p4"><span class=3D"s4">=C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span=
 class=3D"s6">fprintf</span><span class=3D"s4">(</span><span class=3D"s5">s=
tderr</span><span class=3D"s4">, </span>&quot;Could not open the direct-tcp=
ip channel!\n&quot;</p>
<p class=3D"p4"><span class=3D"s4">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 </span>&quot;(Note that this can be a problem at the serv=
er!&quot;</p>
<p class=3D"p4"><span class=3D"s4">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 </span>&quot; Please review the server logs.)\n&quot;<spa=
n class=3D"s4">);</span></p>
<p class=3D"p3"><span class=3D"s4">=C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span=
 class=3D"s2">return</span><span class=3D"s4"> [</span><span class=3D"s2">s=
elf</span><span class=3D"s4"> </span>establishCFTunnelWithMaxRetries<span c=
lass=3D"s4">:maxRetries];</span></p>


<p class=3D"p1">=C2=A0 =C2=A0 }</p>
<p class=3D"p2">=C2=A0=C2=A0 =C2=A0</p>
<p class=3D"p5"><span class=3D"s4">=C2=A0 =C2=A0 </span>/* Must use non-blo=
cking IO hereafter due to the current libssh2 API */</p>
<p class=3D"p3"><span class=3D"s4">=C2=A0 =C2=A0 </span>libssh2_session_set=
_blocking<span class=3D"s4">(</span><span class=3D"s2">self</span><span cla=
ss=3D"s4">.</span><span class=3D"s1">sessiong</span><span class=3D"s4">, </=
span><span class=3D"s3">0</span><span class=3D"s4">);</span></p>


<p class=3D"p2">=C2=A0=C2=A0 =C2=A0</p>
<p class=3D"p1">=C2=A0 =C2=A0 <span class=3D"s2">return</span> channelg;</p=
>
<p class=3D"p1">}</p></div><div><br></div><div><br></div><div><br></div><di=
v><br></div><div><br></div><div><br></div><br><div class=3D"gmail_quote">On=
 Thu, Feb 7, 2013 at 9:56 AM, Peter Stuge <span dir=3D"ltr">&lt;<a href=3D"=
mailto:peter@stuge.se" target=3D"_blank">peter@stuge.se</a>&gt;</span> wrot=
e:<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"im">Aristidis Zoutsos wrote:<b=
r>
&gt; it cannot reestablish a new channel<br>
<br>
</div>You are providing no information whatsoever about what is happening,<=
br>
so it is impossible to help you. Send a debug log.<br>
<br>
<br>
//Peter<br>
_______________________________________________<br>
libssh2-devel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libss=
h2-devel" target=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/li=
bssh2-devel</a><br>
</blockquote></div><br>

--20cf3074d2480c360c04d524977c--

--===============1612275764==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1612275764==--

From libssh2-devel-bounces@cool.haxx.se  Fri Feb  8 22:10:04 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r18L9Y3u015358;
	Fri, 8 Feb 2013 22:09:57 +0100
Received: from toroondcbmts07-srv.bellnexxia.net
 (toroondcbmts07.bellnexxia.net [207.236.237.41])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r18L9V0R015221
 for <libssh2-devel@cool.haxx.se>; Fri, 8 Feb 2013 22:09:32 +0100
Received: from toip35-bus.srvr.bell.ca ([67.69.240.36])
 by toroondcbmts07-srv.bellnexxia.net
 (InterMail vM.8.00.01.00 201-2244-105-20090324) with ESMTP id
 <20130208210927.JPUH15122.toroondcbmts07-srv.bellnexxia.net@toip35-bus.srvr.bell.ca>
 for <libssh2-devel@cool.haxx.se>; Fri, 8 Feb 2013 16:09:27 -0500
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgkFAMpmFVFGNOEl/2dsb2JhbABFhWS7JxZzghaBIAcBCVIwiDieL6ELjQmBKoMpA4hmk1GDQ4Z9gx4
X-IronPort-AV: E=Sophos;i="4.84,632,1355115600"; 
 d="scan'208,217";a="411468490"
Received: from unknown (HELO DAVE-DELL.knudsenengineering.com) ([70.52.225.37])
 by toip35-bus.srvr.bell.ca with ESMTP; 08 Feb 2013 16:09:26 -0500
Message-Id: <6.2.5.6.2.20130208113506.0435fe40@knudsenengineering.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Fri, 08 Feb 2013 15:48:24 -0500
To: libssh2-devel@cool.haxx.se
From: Dave Colter <dave@knudsenengineering.com>
Subject: unresolved external symbol _libssh2_session_init_ex
Mime-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1008315467=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

--===============1008315467==
Content-Type: multipart/alternative;
	boundary="=====================_164874508==.ALT"

--=====================_164874508==.ALT
Content-Type: text/plain; charset="us-ascii"; format=flowed

I'm trying to statically link to libssh2 from a C++ program I am 
writing. The LIB file builds fine (with some type mismatch warnings), 
but when I try to build my program, I get the linker error: error 
LNK2019: unresolved external symbol _libssh2_session_init_ex 
referenced in function "public: virtual void __thiscall 
CSSHSocket::OnConnect(int)" (?OnConnect@CSSHSocket@@UAEXH@Z).

The only libssh2 call I am making at the moment is: LIBSSH2_SESSION* 
pSession = libssh2_session_init();

Some (possibly pertinent) details:
-using Visual Studio 2012; project uses MFC
-compiled libssh2.lib using converted (updated) version of VS project 
file in Win32 folder

Thanks in advance. 
--=====================_164874508==.ALT
Content-Type: text/html; charset="us-ascii"

<html>
<body>
I'm trying to statically link to libssh2 from a C++ program I am writing.
The LIB file builds fine (with some type mismatch warnings), but when I
try to build my program, I get the linker error:
<font face="Consolas" size=2 color="#1E1E1E">error LNK2019: unresolved
external symbol _libssh2_session_init_ex referenced in function
&quot;public: virtual void __thiscall CSSHSocket::OnConnect(int)&quot;
(?OnConnect@CSSHSocket@@UAEXH@Z).<br><br>
</font>The only libssh2 call I am making at the moment is:
<font face="Consolas" size=2 color="#2B91AF">LIBSSH2_SESSION</font>
<font face="Consolas" size=2>* pSession =
</font><font face="Consolas" size=2 color="#6F008A">
libssh2_session_init</font><font face="Consolas" size=2>();<br><br>
</font>Some (possibly pertinent) details:<br>
-using Visual Studio 2012; project uses MFC<br>
-compiled libssh2.lib using converted (updated) version of VS project
file in Win32 folder<br><br>
Thanks in advance.</body>
</html>

--=====================_164874508==.ALT--


--===============1008315467==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1008315467==--

From libssh2-devel-bounces@cool.haxx.se  Fri Feb  8 22:15:57 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r18LFs2a019113;
	Fri, 8 Feb 2013 22:15:56 +0100
Received: from mail-ia0-x232.google.com (ia-in-x0232.1e100.net
 [IPv6:2607:f8b0:4001:c02::232])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r18LFp9N019022
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Fri, 8 Feb 2013 22:15:52 +0100
Received: by mail-ia0-f178.google.com with SMTP id y26so4640656iab.23
 for <libssh2-devel@cool.haxx.se>; Fri, 08 Feb 2013 13:15:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:x-received:sender:in-reply-to:references:date
 :x-google-sender-auth:message-id:subject:from:to:content-type;
 bh=G99qWXeG/vahc1eZtSv48NTio8dMnLZE10/h6NV+KI8=;
 b=RvOilKmWdBBl76AySmiB8wVCacQlaiyZE6vXAe5txDZ5M6xuYCt/k6IBFr3qbZ4Nh7
 78lBzToKobWo875PyM9uyU7kXNLqKyxK6nDX5IY+T3UVIh/P4pxvBMyt2vyJ+7j8jzFF
 h96Fz7ZN6h6NFqj8719X74+tEIo8zXRacdxSXLqghfKp2eXmDI48TlX7n/OamzdOnMNC
 ZveRKCWulsDouXflcpF5eVd5eEwjqDKiBsf77arQAypRmeoaKDj6O0aBHFQz7VE8kDM8
 vTjcEbJad8Yi/lZlSnqzC1Uo3AiC15aoK9n7KantRCUvuqR1Am0TlxoVwLw/2o1YpSgy
 QL5A==
MIME-Version: 1.0
X-Received: by 10.50.179.100 with SMTP id df4mr5414363igc.60.1360358145781;
 Fri, 08 Feb 2013 13:15:45 -0800 (PST)
Received: by 10.50.38.194 with HTTP; Fri, 8 Feb 2013 13:15:45 -0800 (PST)
In-Reply-To: <6.2.5.6.2.20130208113506.0435fe40@knudsenengineering.com>
References: <6.2.5.6.2.20130208113506.0435fe40@knudsenengineering.com>
Date: Fri, 8 Feb 2013 21:15:45 +0000
X-Google-Sender-Auth: XlyF7vxLj_rG49OsPCcz_2FLddM
Message-ID: <CADyPeTMEsH2cCkdiO=+=uEo4ctbNRaTOchg0N91yNc9-JW2xRw@mail.gmail.com>
Subject: Re: unresolved external symbol _libssh2_session_init_ex
From: Alexander Lamaison <swish@lammy.co.uk>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

On 8 February 2013 20:48, Dave Colter <dave@knudsenengineering.com> wrote:
> I'm trying to statically link to libssh2 from a C++ program I am writing.
> The LIB file builds fine (with some type mismatch warnings), but when I try
> to build my program, I get the linker error: error LNK2019: unresolved
> external symbol _libssh2_session_init_ex referenced in function "public:
> virtual void __thiscall CSSHSocket::OnConnect(int)"
> (?OnConnect@CSSHSocket@@UAEXH@Z).

Have you linked to the compiled libssh2 library?

Alex

-- 
Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb 12 11:38:10 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1CAbkIE027428;
	Tue, 12 Feb 2013 11:38:04 +0100
Received: from mail1.bemta5.messagelabs.com (mail1.bemta5.messagelabs.com
 [195.245.231.130])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1CAbjYw027404
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 12 Feb 2013 11:37:45 +0100
Received: from [85.158.139.163:50616] by server-16.bemta-5.messagelabs.com id
 E1/28-14948-97B1A115; Tue, 12 Feb 2013 10:37:45 +0000
X-Env-Sender: WES.DONZE@river-island.com
X-Msg-Ref: server-13.tower-188.messagelabs.com!1360665465!19343895!1
X-Originating-IP: [217.64.228.66]
X-StarScan-Received: 
X-StarScan-Version: 6.7; banners=river-island.com,-,-
X-VirusChecked: Checked
Received: (qmail 10167 invoked from network); 12 Feb 2013 10:37:45 -0000
Received: from unknown (HELO RIV10EXC01.hq.river-island.com) (217.64.228.66)
 by server-13.tower-188.messagelabs.com with AES128-SHA encrypted SMTP;
 12 Feb 2013 10:37:45 -0000
Received: from RIV10EXC02.hq.river-island.com ([::1]) by
 RIV10EXC01.hq.river-island.com ([::1]) with mapi id 14.01.0355.002; Tue, 12
 Feb 2013 10:37:44 +0000
From: Wes Donze <WES.DONZE@river-island.com>
To: "'libssh2-devel@cool.haxx.se'" <libssh2-devel@cool.haxx.se>
Subject: Installing libssh2 on HP-UX
Thread-Topic: Installing libssh2 on HP-UX
Thread-Index: Ac4JDP7qswI4uwxBT/OptLQuIx0e7w==
Date: Tue, 12 Feb 2013 10:37:43 +0000
Message-ID: <8694DC0939354C45B44865A2376D56BD2AD87A58@RIV10EXC02.hq.river-island.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.150.17.49]
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1638950456=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

--===============1638950456==
Content-Language: en-US
Content-Type: multipart/related;
	boundary="_004_8694DC0939354C45B44865A2376D56BD2AD87A58RIV10EXC02hqriv_";
	type="multipart/alternative"

--_004_8694DC0939354C45B44865A2376D56BD2AD87A58RIV10EXC02hqriv_
Content-Type: multipart/alternative;
	boundary="_000_8694DC0939354C45B44865A2376D56BD2AD87A58RIV10EXC02hqriv_"

--_000_8694DC0939354C45B44865A2376D56BD2AD87A58RIV10EXC02hqriv_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hello
I need to install libssh2 onto a hp-ux itanium 11.31 system

What is the correct version to use please

I am currently getting the following error when I run make and it goes to =
the 'tests' part

libtool: link: cc -o .libs/ssh2 ssh2.o  ../src/.libs/libssh2.so -lssl -lcr=
ypto
ld: Unknown input file type: "../src/.libs/libssh2.so"
Fatal error.
*** Error exit code 1

Stop.
*** Error exit code 1

It looks like the code is incorrectly putting a .. in which of course goes=
 up a level in the directory hierarchy - should the path actually be hard =
coded there rather than having ..    ?


Thanks



Wes Donze
Technical Support
T: 02089914765
E: wes.donze@river-island.com

[https://insider.river-island.com/data/article/860000/165/image/Signature.=
jpg]



________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--_000_8694DC0939354C45B44865A2376D56BD2AD87A58RIV10EXC02hqriv_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-mic=
rosoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word=
" xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"ht=
tp://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii=
">
<meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><style>
<!--
 /* Font Definitions */
 @font-face
=09{font-family:Calibri;
=09panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
=09{font-family:Tahoma;
=09panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:11.0pt;
=09font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
=09{mso-style-priority:99;
=09color:blue;
=09text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
=09{mso-style-priority:99;
=09color:purple;
=09text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
=09{mso-style-priority:99;
=09mso-style-link:"Balloon Text Char";
=09margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:8.0pt;
=09font-family:"Tahoma","sans-serif";}
span.EmailStyle17
=09{mso-style-type:personal-compose;
=09font-family:"Arial","sans-serif";
=09color:windowtext;
=09font-weight:normal;
=09font-style:normal;}
span.BalloonTextChar
=09{mso-style-name:"Balloon Text Char";
=09mso-style-priority:99;
=09mso-style-link:"Balloon Text";
=09font-family:"Tahoma","sans-serif";}
.MsoChpDefault
=09{mso-style-type:export-only;}
@page Section1
=09{size:612.0pt 792.0pt;
=09margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
=09{page:Section1;}
-->
</style><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"Section1">
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">Hello<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">I need to install libssh2 onto a hp-ux =
itanium 11.31 system
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">What is the correct version to use plea=
se<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">I am currently getting the following er=
ror when I run make and it goes to the &#8216;tests&#8217; part<o:p></o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">libtool: link: cc -o .libs/ssh2 ssh2.=
o&nbsp; ../src/.libs/libssh2.so -lssl -lcrypto<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">ld: Unknown input file type: &quot;..=
/src/.libs/libssh2.so&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">Fatal error.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">*** Error exit code 1<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">Stop.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:&quot;Co=
urier New&quot;">*** Error exit code 1<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:&quot;Co=
urier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:&quot;Co=
urier New&quot;">It looks like the code is incorrectly putting a .. in whi=
ch of course goes up a level in the directory hierarchy &#8211; should the=
 path actually be hard coded there rather than having ..&nbsp;&nbsp;&nbsp;=

 ?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:&quot;Co=
urier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:&quot;Co=
urier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:&quot;Co=
urier New&quot;">Thanks<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:&quot;Co=
urier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Wes Donze<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Technical Support<o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">T: 02089914765<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">E: wes.donze@river-islan=
d.com<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:8.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;;
color:#666666"><img width=3D"246" height=3D"99" id=3D"Picture_x0020_1" src=
=3D"cid:image001.jpg@01CE090C.FEB40030" alt=3D"https://insider.river-islan=
d.com/data/article/860000/165/image/Signature.jpg"></span><span lang=3D"EN=
-GB" style=3D"font-size:12.0pt;font-family:&quot;Arial&quot;,&quot;sans-se=
rif&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<br clear=3D"both">
________________________________________________________________________<B=
R>
This e-mail has been scanned for all viruses by Star. The<BR>
service is powered by MessageLabs. For more information on a proactive<BR>=

anti-virus service working around the clock, around the globe, visit:<BR>
http://www.star.net.uk<BR>
________________________________________________________________________<B=
R>
</body>
</html>

--_000_8694DC0939354C45B44865A2376D56BD2AD87A58RIV10EXC02hqriv_--

--_004_8694DC0939354C45B44865A2376D56BD2AD87A58RIV10EXC02hqriv_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=51948;
	creation-date="Tue, 12 Feb 2013 10:37:43 GMT";
	modification-date="Tue, 12 Feb 2013 10:37:43 GMT"
Content-ID: <image001.jpg@01CE090C.FEB40030>
Content-Transfer-Encoding: base64

/9j/7gAOQWRvYmUAZAAAAAAB/+EdBUV4aWYAAElJKgAIAAAADAAAAQMAAQAAAPYAICABAQMAAQAA
AGMAICACAQMAAwAAAJ4AAAAGAQMAAQAAAAIAICASAQMAAQAAAAEAICAVAQMAAQAAAAMAICAaAQUA
AQAAAKQAAAAbAQUAAQAAAKwAAAAoAQMAAQAAAAIAICAxAQIAHgAAALQAAAAyAQIAFAAAANIAAABp
hwQAAQAAAOYAAAAcAQAACAAIAAgAgPwKABAnAACA/AoAECcAAEFkb2JlIFBob3Rvc2hvcCBDUzUg
TWFjaW50b3NoADIwMTE6MTA6MjcgMTY6NTM6MzQABAAAkAcABAAAADAyMjEBoAMAAQAAAAEAICAC
oAQAAQAAAPYAAAADoAQAAQAAAGMAAAAAAAAABgADAQMAAQAAAAYAICAaAQUAAQAAAGoBAAAbAQUA
AQAAAHIBAAAoAQMAAQAAAAIAICABAgQAAQAAAHoBAAACAgQAAQAAAIMbAAAAAAAASAAAAAEAAABI
AAAAAQAAAP/Y/+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJ
AAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAz
ZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwA
AAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAA
A9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RS
QwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1Q
YWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAS
c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAA
AAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNj
AAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p
ZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAA
AAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAA
AAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBp
biBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4g
SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDP
FAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAA
AAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMA
KAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCy
ALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIB
WQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4
AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oD
ZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATT
BOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowG
nQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiq
CL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsL
Igs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e
DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPUR
ExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSL
FK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUY
ihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzM
HPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUh
oSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3
JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDks
biyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJj
Mpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5
BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/i
QCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVH
e0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9J
T5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX
4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2Cq
YPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFq
SGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQU
dHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+
wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZ
if6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSV
X5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH
obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1Erbiu
La6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsu
u6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJ
Osm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc
1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3m
lucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe
9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+0ADEFkb2JlX0NNAAH/7gAOQWRv
YmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwM
EQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCABAAKADASIAAhEBAxEB/90ABAAK/8QB
PwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJ
CgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwcl
klPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaW
prbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRSh
sUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0
lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwDdx+sfW7Od17Jx
M3Eqr6Ll5FNWLdjktsZV+kZ6uUzIrdX7Pb/Nq3lfWzOt6X9Weo4jBj/trNx6Mmp7d0MtD/WbWfb+
cz9FasCno+Z1XA+tdeHuORj9ZuyK8YueyrJDNrrMHLZWa/XoyWN2sZv/AJ30/wBIxaHV+p4XVunf
VHM6fX6VB6tjM+zhseiaxbVZjOrDW7Ps7m+n9HZs/wCDSU73SOrdQd9ZOrdE6i5h9AV5XTnBuwvx
rdzX/wBf7Nc30PUWV1b6z9Zo6R9ZOr4jmNo6bkMxOntfX+dS6unqFth3fpmWX22U1fuegp/Xm7I6
LmdO+tOJS69+N6uFk01iXWV5DT9lD/8Ag6s5lX/bqB9Z+lP6X/itv6cZffVj1esQS8uufdVblWT9
J3qZD7bElO/0zD+sdd7Ls/qtWXjFp3UMxPRcSR7f032m76H/ABa5XH+sv1uZ9VT9bH5WJkUUveLu
nvoNRLGXOxn+lmMvd+ldt3V7qP8AtxaH1ad/i8q6pSOiGtvVLa3VtDPXkjb6tzf036P6NX5y57B6
fefqV0rrLanZlHSMrJtzeluLvTvo+0Xepa7Gn035WHu9al1n/XPU/mklPqFNouqZaAWixocGuEOE
jdDm/vLCp63nn6z9X6eWi3GwcSm+iljf0jnvDy9m/wDO37PatrEysfNxasvGf6mPkMbZU8AiWuG5
jtroc32/vLmcS4Y/176/kPa9zKsDGeQxpc4hotdFbW/Tfp7WpKR/VfP+sfXsXG63V1nFfTa9pyem
MxwW1N3D1cf7T6v2lmUyn3brW7N/5no/pFpYvV82z65ZvSHub9jx8Oq+tob7t73FrpeuV6tf9XL+
oY3VfqZkFv1jvvYHYuKHtbexz2fav2nibWehUxm+62+5lP8Awv8ApK9G/rHTej/4weoZHUrxjVWY
FDGPc1xBdvc7aNjXJKer6x1KnpPSsvqV2teJU+0tkDcWiW1gn861/wCjYsz6ndZ6j1LCyMfrDG1d
X6de7HzGMgN1/TUWsDS79G+qzb/L9NZ/X+on6wno/TehW12szbTn23WMc+r0MJ4e0X0E0Wuqvz/s
9f8AYQcf9q9E+u1F3VH472fWOk49jsWt9VYyMUbsV93r25P6SzHe+hnvZ/4GkpsfVn62ZmZ1jM6T
1esVOdkZP7JyANrL6se1+PdQ397IxfT3u/4L/i/0oM36z9Zr6L1jKqsrbkYfV/sGM81y1tJsxqhv
Zu/SPb67/ch431fPW/q/ljHs+zdSw+q52R07K4Nd7Mi7Zu0d+hs+hd/1H6NY32jJt+pPVsvPoOLk
2dbZblUQ4+m8W4frbfpP2exzklPS9T6r9Zvqw2nP6rfjdU6ObGV5ttdLsa6gWOFbMhrfWyarqGvd
+k/wv0F1i4b609bxPrZ00/Vz6vb867PsrZkZLa3tpx6mPZfZfffaxlf+D9lbP/PnpMs7hoAAA4Gi
Sl0kkklKSSSSU//Q9Jt6v0unIfi25dTL62lz63PAc0Bvqnd/K9L9Lt/0X6T6CtucGtLnGGtEkngA
LEs6BlnGzenV5FY6fnG97t9bnXNdkl9lrPVbaxj6/Xse5j3M3+h+rf8ADpnfVtwy/UrvDaC9zm0w
QKpf9o/Vdj2+n6lu77T/AIPIr+n+j/RWpTtVW13VstqcH12ND2PaZBa4bmuaf5Skuf8A+bOS1haz
JaWj0HBjmktsdSz0HfaWvc/9E9v0KGfq9dtdV3oep6vrWen9Cuw+oNynZPqV1VOpY2HbnMIx21tt
sc93qfZ/sr9llvrX2ev+kt/0qU6deTj2lgrtY/1Wmyva4Hcxu0OsZH0mN9RnuRVz3/NP06KW05BN
lNXpu9X1H12H1aMrb6L7nMox7Ps7qraaP9J/o6vSUmfVvLaa2nLb6G0+rWGPGu3LrbVQWXsdTis+
3fo2fz1VWLXX63+EoSneQrMvFqc9ttzKzWGOeHOA2ixzq6XO3fR9Wxj66/33rEq+rmdQ+nIZkMtu
oqitrg5jWvYch1DWupLXei/7UyvM/wC5P2f1LP0n81d6p0Onqd9FlzgKmNdXlU7ZFzD+kpZvndX9
ny2VZNT/AP0okp0WXVWF4re15rdssDSDtdAdsd+67a9qcWVl5rDhvaA5zJEhrpDXFv7rtj1hV/Vm
5tlDrMr1i2qL3kOYXXn7Q+/KqbRZX6X2y3Md9opbZ/NU01fuemI/VjJbW0+pVbY2qusj0wJFOQ/L
poc7c318b0731X12bH5L6qrvWrs3pKeiseytjrLHBjGAue5xgADVznOP5qdcyz6qZdtDasnIrY0s
va6tjC4NF7cyt9DfdXvx/wBert2Wf9xfSr/0ldvG6Jm42d9ubbU6xwZ7AHsYwFuNRk01tY/+jMqx
rLcOmz+byLf+M9VKdlttb3vYx7XPrIbY0EEtJAeGvH5vsduUlkZfR8263PZVkV143UYc/wBjvVa5
tbKAN7bWsspd6LPVZ+jf6fq1+p/hEKn6tDe266xgsaQ5jKmEMqPqsyHfZA559Lc2r/t2y6z+as+z
pKdsWMNjqw4F7QHOb3AduDHf2vTepLmq/qtlV1tHq41jq/SbsfQ413CpuTV6uc31v099n2z193+n
q/7at4/QbsK4ZWPeLcrcN1lwdufWWY2O9ltjXbn7WY3rV/8AD/20lOo7MxGuLHX1tcLG0lpcAfUc
BZXTz/Ovrc17K1BnUcF97cdl7H2vktY0gk7S9juP3XU2t/629UOp9AOblvy6rxQ80kVj0w/ZlM/o
XUfpN3WYrLL6/S/wzLP+DSr6HZRnYduPcKcbErZWQ0PFljWNsrbTe71fs9tbnXet7sf1d7P+uVJT
at630emfVzaGBr3VOLrGgNfXt9Zj9fY6r1Geru/m96KOpdPOWcEZFZygYNO4b5DRaW7f3/Sd6m3/
AEaz8no2cc27LxMmpjsg2hwuqNga22vDp0a22v1HM/Z+73+z9Kh431XrxsnHuZe61mPY17aLpcza
yirCqe1m8VtzavQ9RmVs/wANkfof5q6lKf/R7V31sDernpBw3nKbeMd0OlvvLbsd+/b/AIXprczP
/wCD+w24v89ZUh431xflXvxaOnWuyqmXOfWXNALsZr682qu2NlnodQ+zYP8Awn2r7RX+hrsUepfX
3peF1mzotOJm9SzqWg2MwqhbtMB5Z7rKvcxj2ept9jN/+kWY/wDxvfV2tzmPwuoNewlr2uqrDgQd
r2uacjc1zXfmpKdzo/1tweq5Dqq2mljQwtstcGbxeXP6d6LHhjn/AG7Erdltr/nKf5uxB6L9cP2r
j1WtwzS6/IGMxrrNJfjO6nWXb667foNZW/8AQel+k9bFuyqP0ifrf156H0fAwOoWi7Kx+pDfinHY
CS0NFu9wufR6fte32/zio9L/AMZXS+rZjcLpnTOoZOU5pfsbXQ0BrfpPsssymV1sbu2+9/037ElN
kfXVrqMO0YfpDNyjiN+0WeiGvrr9TL3ONb/6PlNuwf8AhbqP5z0lJ/1zYy7qdbsR23prg0P3xv8A
0ww3H31sb/Obv6O/L/m/Tyfs1/p1WaHS+uUdUy8zAfi3YmX070jkUZHpOj1g6yhzH4t2VU721/vr
Ugcwkp50/XPErvyqsltdLcTMZiW2G9paxlhuYzJvs2top92NZ+g9ey1n+H9G39Ep5P1uxqszqGHX
Q65+BULKnAw2949P7Tj02ub6XqYv2rD9T9J/2p/M9Nb2xhBBaIdq4Rz8U8DwSU8zkfXemlmHaMUl
mZZksFb3+ncfsuTX07Zj4ttbbMjMufd6v2L9Db+jt/wqv5H1jx6+r4vTafReMiZvsvbW0lr34z8f
DbD/ALbl03VP+1Y7PT+zf8ZZ6a1yASCRqOEtrdNBoZHkSkp5fG+vNN+PZeMQu2W4zBVVY2ywNynv
qbXdWxv6HqeN6L7Mrpn6R9X6H9P+kW30XqQ6r0yjPFZo9YOmouDi0tc6tzC9vtd7mK6GtEwAJMn4
p0lKSSSSUpJJJJSkkkklKSSSSU//0sv6yhv7U+vEifbiccwcnCmE/XqPU6Nl52bZ0jPyj6LmX9J1
yWW2Pa23K6m9hZ+rW176bfUrt9TNuo/mf5xdd1f/ABfdTu+seR1vpXUKqG5gjIx8in1mPa5rK7se
2tx9K/Gt9Jlmyyv2P+gquV/i461kY1mLVf0vBrv2tvdiYZre9jXNtFL7PUc/0vVZXbsb/Oemz1El
PP8A1x/8Rn1P/wCId/56qVr/ABRPxB1rOY6t5zDiucy0OhgpD6RZXs/0zrfTe2xdN9ZP8X1nVOjd
I6ZhZjaf2Qz0w+5hdvBY2rf7HDa79Gq31U+oPWfq11K3Pbk42WbaHY/pkWVgbnV27949b/RfQSS1
v8Ur+n2ZnXX9Mqsx8Jww/RqudvsHsv377B+9ZucvRlyX1C+peT9VW5oyMpmUcv0Q0VsLdopFg925
zt2/1l1qSFJJJJKUkkkkpSSSSSlJJJJKUkkkkpSSSSSlJJJJKf/Z/+IMWElDQ19QUk9GSUxFAAEB
AAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IA
AAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtw
dAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABw
ZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwA
AAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAA
AABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAA
EnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAA
ARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAA
t4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMu
Y2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0
IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0
IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAA
LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxS
ZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABM
CVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JU
IGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBo
AG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA
+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5
AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYC
wQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQG
BBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYF
pgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeG
B5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJ
zwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxc
DHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EP
Xg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj
EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkW
bBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3
Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+Hukf
Ex8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPw
JB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgp
aymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8k
L1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01
hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn
PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpD
fUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsM
S1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNT
X1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvl
XDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOll
PWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27E
bx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5
KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6
hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6P
No+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrV
m0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2n
bqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl
tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB
48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+4
0DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hze
ot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c
7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9
uv5L/tz/bf///+0kElBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAAA4HAFaAAMbJUccAVoAAxslRxwC
AAACAAAcAgUAHGxvZ28gJiBhZGRyZXNzIHdpdGggbG9nbyBCJlc4QklNBCUAAAAAABCjDGhlV3vN
ME/s8bGnsgW4OEJJTQQ6AAAAAAB/AAAAEAAAAAEAAAAAAAtwcmludE91dHB1dAAAAAQAAAAAUHN0
U2Jvb2wBAAAAAEludGVlbnVtAAAAAEludGUAAAAAQ2xybQAAAA9wcmludFNpeHRlZW5CaXRib29s
AAAAAAtwcmludGVyTmFtZVRFWFQAAAAFAEMAMQAgAEIAAAA4QklNBDsAAAAAAbIAAAAQAAAAAQAA
AAAAEnByaW50T3V0cHV0T3B0aW9ucwAAABIAAAAAQ3B0bmJvb2wAAAAAAENsYnJib29sAAAAAABS
Z3NNYm9vbAAAAAAAQ3JuQ2Jvb2wAAAAAAENudENib29sAAAAAABMYmxzYm9vbAAAAAAATmd0dmJv
b2wAAAAAAEVtbERib29sAAAAAABJbnRyYm9vbAAAAAAAQmNrZ09iamMAAAABAAAAAAAAUkdCQwAA
AAMAAAAAUmQgIGRvdWJAb+AAAAAAAAAAAABHcm4gZG91YkBv4AAAAAAAAAAAAEJsICBkb3ViQG/g
AAAAAAAAAAAAQnJkVFVudEYjUmx0AAAAAAAAAAAAAAAAQmxkIFVudEYjUmx0AAAAAAAAAAAAAAAA
UnNsdFVudEYjUHhsQFIAAAAAAAAAAAAKdmVjdG9yRGF0YWJvb2wBAAAAAFBnUHNlbnVtAAAAAFBn
UHMAAAAAUGdQQwAAAABMZWZ0VW50RiNSbHQAAAAAAAAAAAAAAABUb3AgVW50RiNSbHQAAAAAAAAA
AAAAAABTY2wgVW50RiNQcmNAWQAAAAAAADhCSU0D7QAAAAAAEABIAAAAAQACAEgAAAABAAI4QklN
BCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0D8gAAAAAACgAA////////AAA4QklNBA0AAAAAAAQA
AAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAA
AAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIA
AAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////
////////////////A+gAAAAA/////////////////////////////wPoAAAAAP//////////////
//////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAA
AAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANtAAAABgAAAAAAAAAAAAAA
YwAAAPYAAAAcAGwAbwBnAG8AIAAmACAAYQBkAGQAcgBlAHMAcwAgAHcAaQB0AGgAIABsAG8AZwBv
ACAAQgAmAFcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAPYAAABjAAAAAAAAAAAA
AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNP
YmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAA
QnRvbWxvbmcAAABjAAAAAFJnaHRsb25nAAAA9gAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAA
AAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3Jp
Z2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApF
U2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3Ag
bG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAYwAAAABSZ2h0bG9uZwAAAPYA
AAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZh
bHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAA
AQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVy
dEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVu
dW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAAps
ZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRs
b25nAAAAAAA4QklNBCgAAAAAAAwAAAACP/AAAAAAAAA4QklNBBQAAAAAAAQAAAACOEJJTQQMAAAA
ABufAAAAAQAAAKAAAABAAAAB4AAAeAAAABuDABgAAf/Y/+IMWElDQ19QUk9GSUxFAAEBAAAMSExp
bm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAA
AAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQA
AAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAA
AsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVj
aAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5
cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0Ig
SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFla
IAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABja
WFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA
AAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBj
b2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBj
b2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVy
ZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVu
Y2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAA
AFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYA
AAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3
AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcB
DQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHR
AdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC
4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQt
BDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF
1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/
B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsK
EQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgyn
DMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YP
sw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMD
EyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW
1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrs
GxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kf
lB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8
JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAq
Aio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/H
L/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02
NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzj
PSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANE
R0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi
TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZU
QlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzW
XSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedm
PWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/R
cCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6
RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITj
hUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQ
bpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wc
nImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKo
xKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WK
tgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvD
WMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE8
0b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/g
NuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A
78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/
bf///+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwM
DxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAU
Dg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAAR
CABAAKADASIAAhEBAxEB/90ABAAK/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQAB
BQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWET
InGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N1
4/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcH
BgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJE
k1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH
/9oADAMBAAIRAxEAPwDdx+sfW7Od17JxM3Eqr6Ll5FNWLdjktsZV+kZ6uUzIrdX7Pb/Nq3lfWzOt
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
xhBBaIdq4Rz8U8DwSU8zkfXemlmHaMUlmZZksFb3+ncfsuTX07Zj4ttbbMjMufd6v2L9Db+jt/wq
v5H1jx6+r4vTafReMiZvsvbW0lr34z8fDbD/ALbl03VP+1Y7PT+zf8ZZ6a1yASCRqOEtrdNBoZHk
Skp5fG+vNN+PZeMQu2W4zBVVY2ywNynvqbXdWxv6HqeN6L7Mrpn6R9X6H9P+kW30XqQ6r0yjPFZo
9YOmouDi0tc6tzC9vtd7mK6GtEwAJMn4p0lKSSSSUpJJJJSkkkklKSSSSU//0sv6yhv7U+vEifbi
ccwcnCmE/XqPU6Nl52bZ0jPyj6LmX9J1yWW2Pa23K6m9hZ+rW176bfUrt9TNuo/mf5xdd1f/ABfd
Tu+seR1vpXUKqG5gjIx8in1mPa5rK7se2tx9K/Gt9Jlmyyv2P+gquV/i461kY1mLVf0vBrv2tvdi
YZre9jXNtFL7PUc/0vVZXbsb/Oemz1ElPP8A1x/8Rn1P/wCId/56qVr/ABRPxB1rOY6t5zDiucy0
OhgpD6RZXs/0zrfTe2xdN9ZP8X1nVOjdI6ZhZjaf2Qz0w+5hdvBY2rf7HDa79Gq31U+oPWfq11K3
Pbk42WbaHY/pkWVgbnV27949b/RfQSS1v8Ur+n2ZnXX9Mqsx8Jww/RqudvsHsv377B+9ZucvRlyX
1C+peT9VW5oyMpmUcv0Q0VsLdopFg925zt2/1l1qSFJJJJKUkkkkpSSSSSlJJJJKUkkkkpSSSSSl
JJJJKf/ZADhCSU0EIQAAAAAAVQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8A
cAAAABMAQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIABDAFMANQAAAAEAOEJJTQQGAAAA
AAAHAAgAAQABAQD/4T/1aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVn
aW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5z
Ong9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4x
MzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3Jp
cHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMv
MS4xLyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBN
TT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9u
cy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnN0RXZ0PSJodHRw
Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOmlsbHVz
dHJhdG9yPSJodHRwOi8vbnMuYWRvYmUuY29tL2lsbHVzdHJhdG9yLzEuMC8iIHhtbG5zOnhtcFRQ
Zz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3QvcGcvIiB4bWxuczpzdERpbT0iaHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIiB4bWxuczp4bXBHPSJodHRw
Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvZy8iIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNv
bS9wZGYvMS4zLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hv
cC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhtcDpNZXRhZGF0YURhdGU9IjIwMTEtMTAt
MjdUMTY6NTM6MzQrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDExLTEwLTI3VDE2OjUzOjM0KzAx
OjAwIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxMS0xMC0yN1QxNTowMTo1OSswMTowMCIgeG1wOkNyZWF0
b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0i
eG1wLmlpZDpGQzM3OEFBRUUyMjA2ODExOTJCMEIxOTg1MDVBNDNGNyIgeG1wTU06RG9jdW1lbnRJ
RD0ieG1wLmRpZDpGQTM3OEFBRUUyMjA2ODExOTJCMEIxOTg1MDVBNDNGNyIgeG1wTU06T3JpZ2lu
YWxEb2N1bWVudElEPSJ1dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQzMTUwOEM4IiB4bXBN
TTpSZW5kaXRpb25DbGFzcz0icHJvb2Y6cGRmIiBpbGx1c3RyYXRvcjpUeXBlPSJEb2N1bWVudCIg
aWxsdXN0cmF0b3I6U3RhcnR1cFByb2ZpbGU9IlByaW50IiB4bXBUUGc6SGFzVmlzaWJsZU92ZXJw
cmludD0iRmFsc2UiIHhtcFRQZzpIYXNWaXNpYmxlVHJhbnNwYXJlbmN5PSJGYWxzZSIgeG1wVFBn
Ok5QYWdlcz0iMSIgcGRmOlByb2R1Y2VyPSJBZG9iZSBQREYgbGlicmFyeSA5LjkwIiBwaG90b3No
b3A6TGVnYWN5SVBUQ0RpZ2VzdD0iRUY0NEZBRTZGNDVCRjVGMjY5NUE4NUJGQTE2RUFGMEYiIHBo
b3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2
LTIuMSI+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+
bG9nbyAmYW1wOyBhZGRyZXNzIHdpdGggbG9nbyBCJmFtcDtXPC9yZGY6bGk+IDwvcmRmOkFsdD4g
PC9kYzp0aXRsZT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6
RkEzNzhBQUVFMjIwNjgxMTkyQjBCMTk4NTA1QTQzRjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5k
aWQ6RkEzNzhBQUVFMjIwNjgxMTkyQjBCMTk4NTA1QTQzRjciIHN0UmVmOm9yaWdpbmFsRG9jdW1l
bnRJRD0idXVpZDo1RDIwODkyNDkzQkZEQjExOTE0QTg1OTBEMzE1MDhDOCIgc3RSZWY6cmVuZGl0
aW9uQ2xhc3M9InByb29mOnBkZiIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkg
c3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzI0MEZCRjM3
MjA2ODExODA4M0Y3MTNGQzgwODNGOCIgc3RFdnQ6d2hlbj0iMjAxMS0xMC0xMVQxMDozODoyMSsw
MTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgSWxsdXN0cmF0b3IgQ1M1IiBzdEV2dDpj
aGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJ
RD0ieG1wLmlpZDpBRDI0MEZCRjM3MjA2ODExODA4M0Y3MTNGQzgwODNGOCIgc3RFdnQ6d2hlbj0i
MjAxMS0xMC0xMVQxMDozODo1MiswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgSWxs
dXN0cmF0b3IgQ1M1IiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJz
YXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozOTk4QjNDOTgyMjA2ODExODA4M0E3RkNF
MjAzMUU1RCIgc3RFdnQ6d2hlbj0iMjAxMS0xMC0yN1QxNTowMTo1OSswMTowMCIgc3RFdnQ6c29m
dHdhcmVBZ2VudD0iQWRvYmUgSWxsdXN0cmF0b3IgQ1M1IiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxy
ZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBw
bGljYXRpb24vcGRmIHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AiLz4gPHJkZjps
aSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkZBMzc4QUFF
RTIyMDY4MTE5MkIwQjE5ODUwNUE0M0Y3IiBzdEV2dDp3aGVuPSIyMDExLTEwLTI3VDE1OjE5OjQx
KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9z
aCIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBz
dEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3BkZiB0byBpbWFnZS9qcGVnIi8+IDxy
ZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQg
ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL2pwZWciLz4gPHJk
ZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkZCMzc4
QUFFRTIyMDY4MTE5MkIwQjE5ODUwNUE0M0Y3IiBzdEV2dDp3aGVuPSIyMDExLTEwLTI3VDE1OjE5
OjQxKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2lu
dG9zaCIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0
RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6RkMzNzhBQUVFMjIwNjgxMTkyQjBCMTk4NTA1QTQzRjci
IHN0RXZ0OndoZW49IjIwMTEtMTAtMjdUMTY6NTM6MzQrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdl
bnQ9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwv
cmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wVFBnOk1heFBhZ2VTaXplIHN0RGltOnc9Ijg2
LjY5MTAwNSIgc3REaW06aD0iMzUuMDcxOTMzIiBzdERpbTp1bml0PSJNaWxsaW1ldGVycyIvPiA8
eG1wVFBnOlBsYXRlTmFtZXM+IDxyZGY6U2VxPiA8cmRmOmxpPkN5YW48L3JkZjpsaT4gPHJkZjps
aT5NYWdlbnRhPC9yZGY6bGk+IDxyZGY6bGk+WWVsbG93PC9yZGY6bGk+IDxyZGY6bGk+QmxhY2s8
L3JkZjpsaT4gPC9yZGY6U2VxPiA8L3htcFRQZzpQbGF0ZU5hbWVzPiA8eG1wVFBnOlN3YXRjaEdy
b3Vwcz4gPHJkZjpTZXE+IDxyZGY6bGk+IDxyZGY6RGVzY3JpcHRpb24geG1wRzpncm91cE5hbWU9
IkRlZmF1bHQgU3dhdGNoIEdyb3VwIiB4bXBHOmdyb3VwVHlwZT0iMCI+IDx4bXBHOkNvbG9yYW50
cz4gPHJkZjpTZXE+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJXaGl0ZSIgeG1wRzptb2RlPSJD
TVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50
YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAi
Lz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkJsYWNrIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6
dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIwLjAwMDAw
MCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIxMDAuMDAwMDAwIi8+IDxyZGY6
bGkgeG1wRzpzd2F0Y2hOYW1lPSJDTVlLIFJlZCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9
IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMTAwLjAwMDAwMCIg
eG1wRzp5ZWxsb3c9IjEwMC4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6bGkg
eG1wRzpzd2F0Y2hOYW1lPSJDTVlLIFllbGxvdyIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9
IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHht
cEc6eWVsbG93PSIxMDAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHht
cEc6c3dhdGNoTmFtZT0iQ01ZSyBHcmVlbiIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBS
T0NFU1MiIHhtcEc6Y3lhbj0iMTAwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIwLjAwMDAwMCIgeG1w
Rzp5ZWxsb3c9IjEwMC4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6bGkgeG1w
Rzpzd2F0Y2hOYW1lPSJDTVlLIEN5YW4iIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9D
RVNTIiB4bXBHOmN5YW49IjEwMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6
eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3
YXRjaE5hbWU9IkNNWUsgQmx1ZSIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1Mi
IHhtcEc6Y3lhbj0iMTAwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIxMDAuMDAwMDAwIiB4bXBHOnll
bGxvdz0iMC4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0
Y2hOYW1lPSJDTVlLIE1hZ2VudGEiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNT
IiB4bXBHOmN5YW49IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVs
bG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRj
aE5hbWU9IkM9MTUgTT0xMDAgWT05MCBLPTEwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0i
UFJPQ0VTUyIgeG1wRzpjeWFuPSIxNC45OTk5OTgiIHhtcEc6bWFnZW50YT0iMTAwLjAwMDAwMCIg
eG1wRzp5ZWxsb3c9IjkwLjAwMDAwMCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkg
eG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT05MCBZPTg1IEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBH
OnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iOTAuMDAw
MDAwIiB4bXBHOnllbGxvdz0iODUuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRm
OmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09ODAgWT05NSBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIg
eG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9Ijgw
LjAwMDAwMCIgeG1wRzp5ZWxsb3c9Ijk1LjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4g
PHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTUwIFk9MTAwIEs9MCIgeG1wRzptb2RlPSJD
TVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50
YT0iNTAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAw
MDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTM1IFk9ODUgSz0wIiB4bXBHOm1v
ZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSIzNS4wMDAwMDQiIHhtcEc6eWVsbG93PSI4NS4wMDAwMDAiIHhtcEc6YmxhY2s9IjAu
MDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTUgTT0wIFk9OTAgSz0wIiB4bXBH
Om1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSI1LjAwMDAwMSIgeG1w
RzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjkwLjAwMDAwMCIgeG1wRzpibGFjaz0i
MC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MjAgTT0wIFk9MTAwIEs9MCIg
eG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMTkuOTk5OTk4
IiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAwMDAwMCIgeG1wRzpi
bGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NTAgTT0wIFk9MTAw
IEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iNTAu
MDAwMDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAwMDAwMCIg
eG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NzUgTT0w
IFk9MTAwIEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lh
bj0iNzUuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAw
MDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9
ODUgTT0xMCBZPTEwMCBLPTEwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIg
eG1wRzpjeWFuPSI4NS4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMTAuMDAwMDAyIiB4bXBHOnllbGxv
dz0iMTAwLjAwMDAwMCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkgeG1wRzpzd2F0
Y2hOYW1lPSJDPTkwIE09MzAgWT05NSBLPTMwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0i
UFJPQ0VTUyIgeG1wRzpjeWFuPSI5MC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMzAuMDAwMDAyIiB4
bXBHOnllbGxvdz0iOTUuMDAwMDAwIiB4bXBHOmJsYWNrPSIzMC4wMDAwMDIiLz4gPHJkZjpsaSB4
bXBHOnN3YXRjaE5hbWU9IkM9NzUgTT0wIFk9NzUgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6
dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSI3NS4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAw
MDAiIHhtcEc6eWVsbG93PSI3NS4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6
bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTgwIE09MTAgWT00NSBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIg
eG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjgwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIx
MC4wMDAwMDIiIHhtcEc6eWVsbG93PSI0NS4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+
IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTcwIE09MTUgWT0wIEs9MCIgeG1wRzptb2RlPSJD
TVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iNzAuMDAwMDAwIiB4bXBHOm1hZ2Vu
dGE9IjE0Ljk5OTk5OCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAw
MCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz04NSBNPTUwIFk9MCBLPTAiIHhtcEc6bW9k
ZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49Ijg1LjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSI1MC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4w
MDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MTAwIE09OTUgWT01IEs9MCIgeG1w
Rzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMTAwLjAwMDAwMCIg
eG1wRzptYWdlbnRhPSI5NS4wMDAwMDAiIHhtcEc6eWVsbG93PSI1LjAwMDAwMSIgeG1wRzpibGFj
az0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MTAwIE09MTAwIFk9MjUg
Sz0yNSIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMTAw
LjAwMDAwMCIgeG1wRzptYWdlbnRhPSIxMDAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMjUuMDAwMDAw
IiB4bXBHOmJsYWNrPSIyNS4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NzUg
TT0xMDAgWT0wIEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6
Y3lhbj0iNzUuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIw
LjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9
IkM9NTAgTT0xMDAgWT0wIEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1Mi
IHhtcEc6Y3lhbj0iNTAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVs
bG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRj
aE5hbWU9IkM9MzUgTT0xMDAgWT0zNSBLPTEwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0i
UFJPQ0VTUyIgeG1wRzpjeWFuPSIzNS4wMDAwMDQiIHhtcEc6bWFnZW50YT0iMTAwLjAwMDAwMCIg
eG1wRzp5ZWxsb3c9IjM1LjAwMDAwNCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkg
eG1wRzpzd2F0Y2hOYW1lPSJDPTEwIE09MTAwIFk9NTAgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHht
cEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIxMC4wMDAwMDIiIHhtcEc6bWFnZW50YT0iMTAw
LjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjUwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4g
PHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTk1IFk9MjAgSz0wIiB4bXBHOm1vZGU9IkNN
WUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzptYWdlbnRh
PSI5NS4wMDAwMDAiIHhtcEc6eWVsbG93PSIxOS45OTk5OTgiIHhtcEc6YmxhY2s9IjAuMDAwMDAw
Ii8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTI1IE09MjUgWT00MCBLPTAiIHhtcEc6bW9k
ZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjI1LjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSIyNS4wMDAwMDAiIHhtcEc6eWVsbG93PSIzOS45OTk5OTYiIHhtcEc6YmxhY2s9IjAu
MDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTQwIE09NDUgWT01MCBLPTUiIHht
cEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjM5Ljk5OTk5NiIg
eG1wRzptYWdlbnRhPSI0NS4wMDAwMDAiIHhtcEc6eWVsbG93PSI1MC4wMDAwMDAiIHhtcEc6Ymxh
Y2s9IjUuMDAwMDAxIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTUwIE09NTAgWT02MCBL
PTI1IiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSI1MC4w
MDAwMDAiIHhtcEc6bWFnZW50YT0iNTAuMDAwMDAwIiB4bXBHOnllbGxvdz0iNjAuMDAwMDA0IiB4
bXBHOmJsYWNrPSIyNS4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NTUgTT02
MCBZPTY1IEs9NDAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5
YW49IjU1LjAwMDAwMCIgeG1wRzptYWdlbnRhPSI2MC4wMDAwMDQiIHhtcEc6eWVsbG93PSI2NS4w
MDAwMDAiIHhtcEc6YmxhY2s9IjM5Ljk5OTk5NiIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0i
Qz0yNSBNPTQwIFk9NjUgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIg
eG1wRzpjeWFuPSIyNS4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMzkuOTk5OTk2IiB4bXBHOnllbGxv
dz0iNjUuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNo
TmFtZT0iQz0zMCBNPTUwIFk9NzUgSz0xMCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBS
T0NFU1MiIHhtcEc6Y3lhbj0iMzAuMDAwMDAyIiB4bXBHOm1hZ2VudGE9IjUwLjAwMDAwMCIgeG1w
Rzp5ZWxsb3c9Ijc1LjAwMDAwMCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkgeG1w
Rzpzd2F0Y2hOYW1lPSJDPTM1IE09NjAgWT04MCBLPTI1IiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6
dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIzNS4wMDAwMDQiIHhtcEc6bWFnZW50YT0iNjAuMDAw
MDA0IiB4bXBHOnllbGxvdz0iODAuMDAwMDAwIiB4bXBHOmJsYWNrPSIyNS4wMDAwMDAiLz4gPHJk
ZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NDAgTT02NSBZPTkwIEs9MzUiIHhtcEc6bW9kZT0iQ01Z
SyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjM5Ljk5OTk5NiIgeG1wRzptYWdlbnRh
PSI2NS4wMDAwMDAiIHhtcEc6eWVsbG93PSI5MC4wMDAwMDAiIHhtcEc6YmxhY2s9IjM1LjAwMDAw
NCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz00MCBNPTcwIFk9MTAwIEs9NTAiIHhtcEc6
bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjM5Ljk5OTk5NiIgeG1w
RzptYWdlbnRhPSI3MC4wMDAwMDAiIHhtcEc6eWVsbG93PSIxMDAuMDAwMDAwIiB4bXBHOmJsYWNr
PSI1MC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NTAgTT03MCBZPTgwIEs9
NzAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjUwLjAw
MDAwMCIgeG1wRzptYWdlbnRhPSI3MC4wMDAwMDAiIHhtcEc6eWVsbG93PSI4MC4wMDAwMDAiIHht
cEc6YmxhY2s9IjcwLjAwMDAwMCIvPiA8L3JkZjpTZXE+IDwveG1wRzpDb2xvcmFudHM+IDwvcmRm
OkRlc2NyaXB0aW9uPiA8L3JkZjpsaT4gPHJkZjpsaT4gPHJkZjpEZXNjcmlwdGlvbiB4bXBHOmdy
b3VwTmFtZT0iR3JheXMiIHhtcEc6Z3JvdXBUeXBlPSIxIj4gPHhtcEc6Q29sb3JhbnRzPiA8cmRm
OlNlcT4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAgWT0wIEs9MTAwIiB4bXBHOm1v
ZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIxMDAu
MDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT0wIFk9MCBLPTkwIiB4bXBH
Om1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1w
RzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSI4
OS45OTk0MDUiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAgWT0wIEs9ODAiIHht
cEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAwMDAwIiB4
bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMC4wMDAwMDAiIHhtcEc6YmxhY2s9
Ijc5Ljk5ODc5NSIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09MCBZPTAgSz03MCIg
eG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAi
IHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFj
az0iNjkuOTk5NzAyIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT0wIFk9MCBLPTYw
IiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAw
MCIgeG1wRzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJs
YWNrPSI1OS45OTkxMDQiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAgWT0wIEs9
NTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAw
MDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMC4wMDAwMDAiIHhtcEc6
YmxhY2s9IjUwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09MCBZPTAg
Sz00MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4w
MDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1w
RzpibGFjaz0iMzkuOTk5NDAxIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT0wIFk9
MCBLPTMwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIw
LjAwMDAwMCIgeG1wRzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4
bXBHOmJsYWNrPSIyOS45OTg4MDIiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAg
WT0wIEs9MjAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49
IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMC4wMDAwMDAi
IHhtcEc6YmxhY2s9IjE5Ljk5OTcwMSIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09
MCBZPTAgSz0xMCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lh
bj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAw
MCIgeG1wRzpibGFjaz0iOS45OTkxMDMiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBN
PTAgWT0wIEs9NSIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lh
bj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAw
MCIgeG1wRzpibGFjaz0iNC45OTg4MDMiLz4gPC9yZGY6U2VxPiA8L3htcEc6Q29sb3JhbnRzPiA8
L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6bGk+IDxyZGY6bGk+IDxyZGY6RGVzY3JpcHRpb24geG1w
Rzpncm91cE5hbWU9IkJyaWdodHMiIHhtcEc6Z3JvdXBUeXBlPSIxIj4gPHhtcEc6Q29sb3JhbnRz
PiA8cmRmOlNlcT4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTEwMCBZPTEwMCBLPTAi
IHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAwMDAw
IiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIxMDAuMDAwMDAwIiB4bXBH
OmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09NzUgWT0x
MDAgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIw
LjAwMDAwMCIgeG1wRzptYWdlbnRhPSI3NS4wMDAwMDAiIHhtcEc6eWVsbG93PSIxMDAuMDAwMDAw
IiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09
MTAgWT05NSBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5
YW49IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwLjAwMDAwMiIgeG1wRzp5ZWxsb3c9Ijk1LjAw
MDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9
ODUgTT0xMCBZPTEwMCBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4
bXBHOmN5YW49Ijg1LjAwMDAwMCIgeG1wRzptYWdlbnRhPSIxMC4wMDAwMDIiIHhtcEc6eWVsbG93
PSIxMDAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNo
TmFtZT0iQz0xMDAgTT05MCBZPTAgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJP
Q0VTUyIgeG1wRzpjeWFuPSIxMDAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjkwLjAwMDAwMCIgeG1w
Rzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6
c3dhdGNoTmFtZT0iQz02MCBNPTkwIFk9MCBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBl
PSJQUk9DRVNTIiB4bXBHOmN5YW49IjYwLjAwMDAwNCIgeG1wRzptYWdlbnRhPSI5MC4wMDAwMDAi
IHhtcEc6eWVsbG93PSIwLjAwMzA5OSIgeG1wRzpibGFjaz0iMC4wMDMwOTkiLz4gPC9yZGY6U2Vx
PiA8L3htcEc6Q29sb3JhbnRzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6bGk+IDwvcmRmOlNl
cT4gPC94bXBUUGc6U3dhdGNoR3JvdXBzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8
L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/9sAQwABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMDAwMDAwMD/9sAQwEBAQEBAQEBAQEBAgIB
AgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgA
YwD2AwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC
BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn
KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY
mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5
+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB
AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD
REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip
qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR
AD8A/Z3x9/wXO/akv/29fjx+wX+y3/wTntv2kviB8FNR8VvJcwftK6B8OLvWvC/hDUtO0vVPEsln
4u8BQ6NYCO71i1X7MupXEzNMNgYAkBr7Ncqk5WufQ37In/Ba+3+Lf7WcP7B/7X37KPxI/Yb/AGqt
Y02TUfBPhXxt4m0zxx4M8e+TYXuqrZ6D4xstG8NqbrVdO026l02WK3u9Mv2tJoY737SI4JAUqdlz
Rd4nsn7bv/BUC/8A2P8A9tz9g79kK2+DFp4+tf20fGNj4UvPH0/jybw3P8O1vvHfhrwYt9beG4/C
Otx+KDGPEBuDG19YZ8oJu+bcASjeMpX2Oe+OX/BVrVP2d/8Agqf8Af8Agnp8S/gZaaZ8Of2k/D+k
3/w2/aKi+IMpa48Q65a+ItK0zwzeeA5PCEdst1P8Q/D6aOSmstIqaja3BjxJ5dAKF4OSeqP158Re
INH8JeH9d8VeIr+30rw/4a0bU/EGu6pdv5drpuj6NZT6jqd/cyHhLezsrZ5HPZVJoIPw4+FH/BZP
xj8Sv+CXH7R3/BTm5/ZktPDXhP4V+JvF1n8J/h9d/E+8uLr4seD/AAr4k8OeFD4s1PxCfh/bL4RN
1rur3lqbaKz1MRz6bKPMIYEBo4WmoXPEPgr/AMFdv+Crn7RHwr8F/G34Mf8ABFdvHHwu+IulS634
M8V2v7bHwq0qHWtLiv73THuRpmu+E9K1qw232nzJsubaGQ7dwXaykg3CCbTnqfb/AO1T/wAFGfjT
+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
oAKACgAoAKACgAoAKACgAoAKAP/Z

--_004_8694DC0939354C45B44865A2376D56BD2AD87A58RIV10EXC02hqriv_--

--===============1638950456==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1638950456==--

From libssh2-devel-bounces@cool.haxx.se  Tue Feb 12 14:43:01 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1CDgb0a003105;
	Tue, 12 Feb 2013 14:42:57 +0100
Received: from toroondcbmts04-srv.bellnexxia.net
 (toroondcbmts04.bellnexxia.net [207.236.237.38])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1CDgZUE003045
 for <libssh2-devel@cool.haxx.se>; Tue, 12 Feb 2013 14:42:36 +0100
Received: from toip37-bus.srvr.bell.ca ([67.69.240.38])
 by toroondcbmts04-srv.bellnexxia.net
 (InterMail vM.8.00.01.00 201-2244-105-20090324) with ESMTP id
 <20130212134231.TFWF25653.toroondcbmts04-srv.bellnexxia.net@toip37-bus.srvr.bell.ca>
 for <libssh2-devel@cool.haxx.se>; Tue, 12 Feb 2013 08:42:31 -0500
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: Av8EABxBGlFGNSWs/2dsb2JhbABEwTsXc4IfAQEBBAEBATUCTwcEGB4QGQ4iAQ0GE4gSDK5+kBOSBQOIZo5biDmGfYMk
X-IronPort-AV: E=Sophos;i="4.84,650,1355115600"; d="scan'208";a="412129168"
Received: from bas1-smithsfalls18-1177888172.dsl.bell.ca (HELO
 DAVE-DELL.knudsenengineering.com) ([70.53.37.172])
 by toip37-bus.srvr.bell.ca with ESMTP; 12 Feb 2013 08:42:30 -0500
Message-Id: <6.2.5.6.2.20130212084107.0452fcb8@knudsenengineering.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Tue, 12 Feb 2013 08:42:30 -0500
To: libssh2 development <libssh2-devel@cool.haxx.se>
From: Dave Colter <dave@knudsenengineering.com>
Subject: Re: unresolved external symbol _libssh2_session_init_ex
In-Reply-To: <CADyPeTMEsH2cCkdiO=+=uEo4ctbNRaTOchg0N91yNc9-JW2xRw@mail.g
 mail.com>
References: <6.2.5.6.2.20130208113506.0435fe40@knudsenengineering.com>
 <CADyPeTMEsH2cCkdiO=+=uEo4ctbNRaTOchg0N91yNc9-JW2xRw@mail.gmail.com>
Mime-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

Hi Alex,

Thanks for your reply. You were right -- I was missing a reference in 
my project config.

Cheers,
Dave.



At 04:15 PM 08/02/2013, you wrote:
>On 8 February 2013 20:48, Dave Colter <dave@knudsenengineering.com> wrote:
> > I'm trying to statically link to libssh2 from a C++ program I am writing.
> > The LIB file builds fine (with some type mismatch warnings), but when I try
> > to build my program, I get the linker error: error LNK2019: unresolved
> > external symbol _libssh2_session_init_ex referenced in function "public:
> > virtual void __thiscall CSSHSocket::OnConnect(int)"
> > (?OnConnect@CSSHSocket@@UAEXH@Z).
>
>Have you linked to the compiled libssh2 library?
>
>Alex
>
>--
>Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)
>_______________________________________________
>libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 13 11:35:03 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DAYbbS006662;
	Wed, 13 Feb 2013 11:34:58 +0100
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DAYZDY006624
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 13 Feb 2013 11:34:35 +0100
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id r1DAYYch006613
 for <libssh2-devel@cool.haxx.se>; Wed, 13 Feb 2013 11:34:34 +0100
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Wed, 13 Feb 2013 11:34:34 +0100 (CET)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: Installing libssh2 on HP-UX
In-Reply-To: <8694DC0939354C45B44865A2376D56BD2AD87A58@RIV10EXC02.hq.river-island.com>
Message-ID: <alpine.DEB.2.00.1302131133130.26522@tvnag.unkk.fr>
References: <8694DC0939354C45B44865A2376D56BD2AD87A58@RIV10EXC02.hq.river-island.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

On Tue, 12 Feb 2013, Wes Donze wrote:

> I need to install libssh2 onto a hp-ux itanium 11.31 system
>
> What is the correct version to use please

I'd use the latest release or possibly the latest git.

> I am currently getting the following error when I run make and it goes to 
> the 'tests' part

> libtool: link: cc -o .libs/ssh2 ssh2.o ../src/.libs/libssh2.so -lssl 
> -lcrypto

> ld: Unknown input file type: "../src/.libs/libssh2.so"

> It looks like the code is incorrectly putting a .. in which of course goes 
> up a level in the directory hierarchy - should the path actually be hard 
> coded there rather than having ..  ?

From the tests dir, it needs to go "../src" to find the source dir!

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 13 11:49:38 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DAnWiG014594;
	Wed, 13 Feb 2013 11:49:36 +0100
Received: from mail1.bemta3.messagelabs.com (mail1.bemta3.messagelabs.com
 [195.245.230.34])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DAnTdl014529
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 13 Feb 2013 11:49:29 +0100
Received: from [195.245.230.83:47598] by server-6.bemta-3.messagelabs.com id
 EB/C7-29959-9BF6B115; Wed, 13 Feb 2013 10:49:29 +0000
X-Env-Sender: WES.DONZE@river-island.com
X-Msg-Ref: server-2.tower-208.messagelabs.com!1360752568!17091148!2
X-Originating-IP: [217.64.228.66]
X-StarScan-Received: 
X-StarScan-Version: 6.7; banners=river-island.com,-,-
X-VirusChecked: Checked
Received: (qmail 23490 invoked from network); 13 Feb 2013 10:49:29 -0000
Received: from unknown (HELO RIV10EXC01.hq.river-island.com) (217.64.228.66)
 by server-2.tower-208.messagelabs.com with AES128-SHA encrypted SMTP;
 13 Feb 2013 10:49:29 -0000
Received: from RIV10EXC02.hq.river-island.com ([::1]) by
 RIV10EXC01.hq.river-island.com ([::1]) with mapi id 14.01.0355.002; Wed, 13
 Feb 2013 10:49:15 +0000
From: Wes Donze <WES.DONZE@river-island.com>
To: "'libssh2-devel@cool.haxx.se'" <libssh2-devel@cool.haxx.se>
Subject: Re: Installing libssh2 on HP-UX
Thread-Topic: Re: Installing libssh2 on HP-UX
Thread-Index: Ac4J18RzO3OjsJl7QpaIPI2UnoQ+wA==
Date: Wed, 13 Feb 2013 10:49:14 +0000
Message-ID: <8694DC0939354C45B44865A2376D56BD2AD87DC6@RIV10EXC02.hq.river-island.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.150.17.49]
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1146807514=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

--===============1146807514==
Content-Language: en-US
Content-Type: multipart/related;
	boundary="_004_8694DC0939354C45B44865A2376D56BD2AD87DC6RIV10EXC02hqriv_";
	type="multipart/alternative"

--_004_8694DC0939354C45B44865A2376D56BD2AD87DC6RIV10EXC02hqriv_
Content-Type: multipart/alternative;
	boundary="_000_8694DC0939354C45B44865A2376D56BD2AD87DC6RIV10EXC02hqriv_"

--_000_8694DC0939354C45B44865A2376D56BD2AD87DC6RIV10EXC02hqriv_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Yes thankyou - I realize that's what it is trying to do but I do not think=
 this is working - as you can see below I have run make in the 'tests' dir=
ectory and get the error as shown - however as you can see I have then don=
e the ls as shown below which finds the relevant file.

Can I hard code this in anywhere to get it going?
Kind regards
Wes


hxpcsdev01:/opt/libssh2/libssh2-1.4.2/tests# make
        /bin/sh ../libtool --tag=3DCC --mode=3Dlink cc      -o ssh2  ssh2.=
o ../src/l
ibssh2.la
libtool: link: cc -o .libs/ssh2 ssh2.o  ../src/.libs/libssh2.so -lssl -lcr=
ypto
ld: Unknown input file type: "../src/.libs/libssh2.so"
Fatal error.
*** Error exit code 1

Stop.





hxpcsdev01:/opt/libssh2/libssh2-1.4.2/tests# ls ../src/.libs/libssh2.so
../src/.libs/libssh2.so
hxpcsdev01:/opt/libssh2/libssh2-1.4.2/tests#

Wes Donze
Technical Support
T: 02089914765
E: wes.donze@river-island.com

[https://insider.river-island.com/data/article/860000/165/image/Signature.=
jpg]



________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--_000_8694DC0939354C45B44865A2376D56BD2AD87DC6RIV10EXC02hqriv_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-mic=
rosoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word=
" xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"ht=
tp://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii=
">
<meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><style>
<!--
 /* Font Definitions */
 @font-face
=09{font-family:Calibri;
=09panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
=09{font-family:Tahoma;
=09panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:11.0pt;
=09font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
=09{mso-style-priority:99;
=09color:blue;
=09text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
=09{mso-style-priority:99;
=09color:purple;
=09text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
=09{mso-style-priority:99;
=09mso-style-link:"Balloon Text Char";
=09margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:8.0pt;
=09font-family:"Tahoma","sans-serif";}
span.EmailStyle17
=09{mso-style-type:personal-compose;
=09font-family:"Arial","sans-serif";
=09color:windowtext;
=09font-weight:normal;
=09font-style:normal;}
span.BalloonTextChar
=09{mso-style-name:"Balloon Text Char";
=09mso-style-priority:99;
=09mso-style-link:"Balloon Text";
=09font-family:"Tahoma","sans-serif";}
.MsoChpDefault
=09{mso-style-type:export-only;}
@page Section1
=09{size:612.0pt 792.0pt;
=09margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
=09{page:Section1;}
-->
</style><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"Section1">
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">Yes thankyou &#8211; I realize that&#82=
17;s what it is trying to do but I do not think this is working &#8211; as=
 you can see below I have run make in the &#8216;tests&#8217; directory an=
d get the error
 as shown &#8211; however as you can see I have then done the ls as shown =
below which finds the relevant file.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">Can I hard code this in anywhere to get=
 it going?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">Kind regards<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">Wes<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">hxpcsdev01:/opt/libssh2/libssh2-1.4.2=
/tests# make<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp; /bin/sh ../libtool --tag=3DCC --mode=3Dlink cc&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; -o ssh2&nbsp; ssh2.o ../src/l<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">ibssh2.la<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">libtool: link: cc -o .libs/ssh2 ssh2.=
o&nbsp; ../src/.libs/libssh2.so -lssl -lcrypto<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">ld: Unknown input file type: &quot;..=
/src/.libs/libssh2.so&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">Fatal error.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">*** Error exit code 1<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">Stop.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">hxpcsdev01:/opt/libssh2/libssh2-1.4.2=
/tests# ls ../src/.libs/libssh2.so<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-s=
ize:9.5pt;
font-family:&quot;Courier New&quot;">../src/.libs/libssh2.so<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:&quot;Co=
urier New&quot;">hxpcsdev01:/opt/libssh2/libssh2-1.4.2/tests#</span><span =
style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&q=
uot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Wes Donze<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Technical Support<o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">T: 02089914765<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">E: wes.donze@river-islan=
d.com<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:8.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;;
color:#666666"><img width=3D"246" height=3D"99" id=3D"Picture_x0020_1" src=
=3D"cid:image001.jpg@01CE09D7.9D47F380" alt=3D"https://insider.river-islan=
d.com/data/article/860000/165/image/Signature.jpg"></span><span lang=3D"EN=
-GB" style=3D"font-size:12.0pt;font-family:&quot;Arial&quot;,&quot;sans-se=
rif&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<br clear=3D"both">
________________________________________________________________________<B=
R>
This e-mail has been scanned for all viruses by Star. The<BR>
service is powered by MessageLabs. For more information on a proactive<BR>=

anti-virus service working around the clock, around the globe, visit:<BR>
http://www.star.net.uk<BR>
________________________________________________________________________<B=
R>
</body>
</html>

--_000_8694DC0939354C45B44865A2376D56BD2AD87DC6RIV10EXC02hqriv_--

--_004_8694DC0939354C45B44865A2376D56BD2AD87DC6RIV10EXC02hqriv_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=51948;
	creation-date="Wed, 13 Feb 2013 10:48:08 GMT";
	modification-date="Wed, 13 Feb 2013 10:48:08 GMT"
Content-ID: <image001.jpg@01CE09D7.9D47F380>
Content-Transfer-Encoding: base64

/9j/7gAOQWRvYmUAZAAAAAAB/+EdBUV4aWYAAElJKgAIAAAADAAAAQMAAQAAAPYAICABAQMAAQAA
AGMAICACAQMAAwAAAJ4AAAAGAQMAAQAAAAIAICASAQMAAQAAAAEAICAVAQMAAQAAAAMAICAaAQUA
AQAAAKQAAAAbAQUAAQAAAKwAAAAoAQMAAQAAAAIAICAxAQIAHgAAALQAAAAyAQIAFAAAANIAAABp
hwQAAQAAAOYAAAAcAQAACAAIAAgAgPwKABAnAACA/AoAECcAAEFkb2JlIFBob3Rvc2hvcCBDUzUg
TWFjaW50b3NoADIwMTE6MTA6MjcgMTY6NTM6MzQABAAAkAcABAAAADAyMjEBoAMAAQAAAAEAICAC
oAQAAQAAAPYAAAADoAQAAQAAAGMAAAAAAAAABgADAQMAAQAAAAYAICAaAQUAAQAAAGoBAAAbAQUA
AQAAAHIBAAAoAQMAAQAAAAIAICABAgQAAQAAAHoBAAACAgQAAQAAAIMbAAAAAAAASAAAAAEAAABI
AAAAAQAAAP/Y/+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJ
AAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAz
ZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwA
AAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAA
A9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RS
QwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1Q
YWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAS
c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAA
AAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNj
AAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p
ZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAA
AAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAA
AAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBp
biBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4g
SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDP
FAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAA
AAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMA
KAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCy
ALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIB
WQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4
AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oD
ZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATT
BOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowG
nQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiq
CL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsL
Igs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e
DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPUR
ExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSL
FK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUY
ihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzM
HPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUh
oSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3
JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDks
biyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJj
Mpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5
BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/i
QCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVH
e0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9J
T5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX
4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2Cq
YPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFq
SGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQU
dHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+
wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZ
if6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSV
X5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH
obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1Erbiu
La6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsu
u6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJ
Osm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc
1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3m
lucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe
9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+0ADEFkb2JlX0NNAAH/7gAOQWRv
YmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwM
EQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCABAAKADASIAAhEBAxEB/90ABAAK/8QB
PwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJ
CgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwcl
klPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaW
prbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRSh
sUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0
lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwDdx+sfW7Od17Jx
M3Eqr6Ll5FNWLdjktsZV+kZ6uUzIrdX7Pb/Nq3lfWzOt6X9Weo4jBj/trNx6Mmp7d0MtD/WbWfb+
cz9FasCno+Z1XA+tdeHuORj9ZuyK8YueyrJDNrrMHLZWa/XoyWN2sZv/AJ30/wBIxaHV+p4XVunf
VHM6fX6VB6tjM+zhseiaxbVZjOrDW7Ps7m+n9HZs/wCDSU73SOrdQd9ZOrdE6i5h9AV5XTnBuwvx
rdzX/wBf7Nc30PUWV1b6z9Zo6R9ZOr4jmNo6bkMxOntfX+dS6unqFth3fpmWX22U1fuegp/Xm7I6
LmdO+tOJS69+N6uFk01iXWV5DT9lD/8Ag6s5lX/bqB9Z+lP6X/itv6cZffVj1esQS8uufdVblWT9
J3qZD7bElO/0zD+sdd7Ls/qtWXjFp3UMxPRcSR7f032m76H/ABa5XH+sv1uZ9VT9bH5WJkUUveLu
nvoNRLGXOxn+lmMvd+ldt3V7qP8AtxaH1ad/i8q6pSOiGtvVLa3VtDPXkjb6tzf036P6NX5y57B6
fefqV0rrLanZlHSMrJtzeluLvTvo+0Xepa7Gn035WHu9al1n/XPU/mklPqFNouqZaAWixocGuEOE
jdDm/vLCp63nn6z9X6eWi3GwcSm+iljf0jnvDy9m/wDO37PatrEysfNxasvGf6mPkMbZU8AiWuG5
jtroc32/vLmcS4Y/176/kPa9zKsDGeQxpc4hotdFbW/Tfp7WpKR/VfP+sfXsXG63V1nFfTa9pyem
MxwW1N3D1cf7T6v2lmUyn3brW7N/5no/pFpYvV82z65ZvSHub9jx8Oq+tob7t73FrpeuV6tf9XL+
oY3VfqZkFv1jvvYHYuKHtbexz2fav2nibWehUxm+62+5lP8Awv8ApK9G/rHTej/4weoZHUrxjVWY
FDGPc1xBdvc7aNjXJKer6x1KnpPSsvqV2teJU+0tkDcWiW1gn861/wCjYsz6ndZ6j1LCyMfrDG1d
X6de7HzGMgN1/TUWsDS79G+qzb/L9NZ/X+on6wno/TehW12szbTn23WMc+r0MJ4e0X0E0Wuqvz/s
9f8AYQcf9q9E+u1F3VH472fWOk49jsWt9VYyMUbsV93r25P6SzHe+hnvZ/4GkpsfVn62ZmZ1jM6T
1esVOdkZP7JyANrL6se1+PdQ397IxfT3u/4L/i/0oM36z9Zr6L1jKqsrbkYfV/sGM81y1tJsxqhv
Zu/SPb67/ch431fPW/q/ljHs+zdSw+q52R07K4Nd7Mi7Zu0d+hs+hd/1H6NY32jJt+pPVsvPoOLk
2dbZblUQ4+m8W4frbfpP2exzklPS9T6r9Zvqw2nP6rfjdU6ObGV5ttdLsa6gWOFbMhrfWyarqGvd
+k/wv0F1i4b609bxPrZ00/Vz6vb867PsrZkZLa3tpx6mPZfZfffaxlf+D9lbP/PnpMs7hoAAA4Gi
Sl0kkklKSSSSU//Q9Jt6v0unIfi25dTL62lz63PAc0Bvqnd/K9L9Lt/0X6T6CtucGtLnGGtEkngA
LEs6BlnGzenV5FY6fnG97t9bnXNdkl9lrPVbaxj6/Xse5j3M3+h+rf8ADpnfVtwy/UrvDaC9zm0w
QKpf9o/Vdj2+n6lu77T/AIPIr+n+j/RWpTtVW13VstqcH12ND2PaZBa4bmuaf5Skuf8A+bOS1haz
JaWj0HBjmktsdSz0HfaWvc/9E9v0KGfq9dtdV3oep6vrWen9Cuw+oNynZPqV1VOpY2HbnMIx21tt
sc93qfZ/sr9llvrX2ev+kt/0qU6deTj2lgrtY/1Wmyva4Hcxu0OsZH0mN9RnuRVz3/NP06KW05BN
lNXpu9X1H12H1aMrb6L7nMox7Ps7qraaP9J/o6vSUmfVvLaa2nLb6G0+rWGPGu3LrbVQWXsdTis+
3fo2fz1VWLXX63+EoSneQrMvFqc9ttzKzWGOeHOA2ixzq6XO3fR9Wxj66/33rEq+rmdQ+nIZkMtu
oqitrg5jWvYch1DWupLXei/7UyvM/wC5P2f1LP0n81d6p0Onqd9FlzgKmNdXlU7ZFzD+kpZvndX9
ny2VZNT/AP0okp0WXVWF4re15rdssDSDtdAdsd+67a9qcWVl5rDhvaA5zJEhrpDXFv7rtj1hV/Vm
5tlDrMr1i2qL3kOYXXn7Q+/KqbRZX6X2y3Md9opbZ/NU01fuemI/VjJbW0+pVbY2qusj0wJFOQ/L
poc7c318b0731X12bH5L6qrvWrs3pKeiseytjrLHBjGAue5xgADVznOP5qdcyz6qZdtDasnIrY0s
va6tjC4NF7cyt9DfdXvx/wBert2Wf9xfSr/0ldvG6Jm42d9ubbU6xwZ7AHsYwFuNRk01tY/+jMqx
rLcOmz+byLf+M9VKdlttb3vYx7XPrIbY0EEtJAeGvH5vsduUlkZfR8263PZVkV143UYc/wBjvVa5
tbKAN7bWsspd6LPVZ+jf6fq1+p/hEKn6tDe266xgsaQ5jKmEMqPqsyHfZA559Lc2r/t2y6z+as+z
pKdsWMNjqw4F7QHOb3AduDHf2vTepLmq/qtlV1tHq41jq/SbsfQ413CpuTV6uc31v099n2z193+n
q/7at4/QbsK4ZWPeLcrcN1lwdufWWY2O9ltjXbn7WY3rV/8AD/20lOo7MxGuLHX1tcLG0lpcAfUc
BZXTz/Ovrc17K1BnUcF97cdl7H2vktY0gk7S9juP3XU2t/629UOp9AOblvy6rxQ80kVj0w/ZlM/o
XUfpN3WYrLL6/S/wzLP+DSr6HZRnYduPcKcbErZWQ0PFljWNsrbTe71fs9tbnXet7sf1d7P+uVJT
at630emfVzaGBr3VOLrGgNfXt9Zj9fY6r1Geru/m96KOpdPOWcEZFZygYNO4b5DRaW7f3/Sd6m3/
AEaz8no2cc27LxMmpjsg2hwuqNga22vDp0a22v1HM/Z+73+z9Kh431XrxsnHuZe61mPY17aLpcza
yirCqe1m8VtzavQ9RmVs/wANkfof5q6lKf/R7V31sDernpBw3nKbeMd0OlvvLbsd+/b/AIXprczP
/wCD+w24v89ZUh431xflXvxaOnWuyqmXOfWXNALsZr682qu2NlnodQ+zYP8Awn2r7RX+hrsUepfX
3peF1mzotOJm9SzqWg2MwqhbtMB5Z7rKvcxj2ept9jN/+kWY/wDxvfV2tzmPwuoNewlr2uqrDgQd
r2uacjc1zXfmpKdzo/1tweq5Dqq2mljQwtstcGbxeXP6d6LHhjn/AG7Erdltr/nKf5uxB6L9cP2r
j1WtwzS6/IGMxrrNJfjO6nWXb667foNZW/8AQel+k9bFuyqP0ifrf156H0fAwOoWi7Kx+pDfinHY
CS0NFu9wufR6fte32/zio9L/AMZXS+rZjcLpnTOoZOU5pfsbXQ0BrfpPsssymV1sbu2+9/037ElN
kfXVrqMO0YfpDNyjiN+0WeiGvrr9TL3ONb/6PlNuwf8AhbqP5z0lJ/1zYy7qdbsR23prg0P3xv8A
0ww3H31sb/Obv6O/L/m/Tyfs1/p1WaHS+uUdUy8zAfi3YmX070jkUZHpOj1g6yhzH4t2VU721/vr
Ugcwkp50/XPErvyqsltdLcTMZiW2G9paxlhuYzJvs2top92NZ+g9ey1n+H9G39Ep5P1uxqszqGHX
Q65+BULKnAw2949P7Tj02ub6XqYv2rD9T9J/2p/M9Nb2xhBBaIdq4Rz8U8DwSU8zkfXemlmHaMUl
mZZksFb3+ncfsuTX07Zj4ttbbMjMufd6v2L9Db+jt/wqv5H1jx6+r4vTafReMiZvsvbW0lr34z8f
DbD/ALbl03VP+1Y7PT+zf8ZZ6a1yASCRqOEtrdNBoZHkSkp5fG+vNN+PZeMQu2W4zBVVY2ywNynv
qbXdWxv6HqeN6L7Mrpn6R9X6H9P+kW30XqQ6r0yjPFZo9YOmouDi0tc6tzC9vtd7mK6GtEwAJMn4
p0lKSSSSUpJJJJSkkkklKSSSSU//0sv6yhv7U+vEifbiccwcnCmE/XqPU6Nl52bZ0jPyj6LmX9J1
yWW2Pa23K6m9hZ+rW176bfUrt9TNuo/mf5xdd1f/ABfdTu+seR1vpXUKqG5gjIx8in1mPa5rK7se
2tx9K/Gt9Jlmyyv2P+gquV/i461kY1mLVf0vBrv2tvdiYZre9jXNtFL7PUc/0vVZXbsb/Oemz1El
PP8A1x/8Rn1P/wCId/56qVr/ABRPxB1rOY6t5zDiucy0OhgpD6RZXs/0zrfTe2xdN9ZP8X1nVOjd
I6ZhZjaf2Qz0w+5hdvBY2rf7HDa79Gq31U+oPWfq11K3Pbk42WbaHY/pkWVgbnV27949b/RfQSS1
v8Ur+n2ZnXX9Mqsx8Jww/RqudvsHsv377B+9ZucvRlyX1C+peT9VW5oyMpmUcv0Q0VsLdopFg925
zt2/1l1qSFJJJJKUkkkkpSSSSSlJJJJKUkkkkpSSSSSlJJJJKf/Z/+IMWElDQ19QUk9GSUxFAAEB
AAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IA
AAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtw
dAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABw
ZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwA
AAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAA
AABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAA
EnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAA
ARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAA
t4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMu
Y2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0
IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0
IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAA
LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxS
ZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABM
CVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JU
IGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBo
AG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA
+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5
AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYC
wQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQG
BBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYF
pgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeG
B5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJ
zwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxc
DHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EP
Xg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj
EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkW
bBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3
Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+Hukf
Ex8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPw
JB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgp
aymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8k
L1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01
hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn
PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpD
fUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsM
S1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNT
X1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvl
XDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOll
PWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27E
bx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5
KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6
hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6P
No+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrV
m0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2n
bqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl
tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB
48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+4
0DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hze
ot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c
7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9
uv5L/tz/bf///+0kElBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAAA4HAFaAAMbJUccAVoAAxslRxwC
AAACAAAcAgUAHGxvZ28gJiBhZGRyZXNzIHdpdGggbG9nbyBCJlc4QklNBCUAAAAAABCjDGhlV3vN
ME/s8bGnsgW4OEJJTQQ6AAAAAAB/AAAAEAAAAAEAAAAAAAtwcmludE91dHB1dAAAAAQAAAAAUHN0
U2Jvb2wBAAAAAEludGVlbnVtAAAAAEludGUAAAAAQ2xybQAAAA9wcmludFNpeHRlZW5CaXRib29s
AAAAAAtwcmludGVyTmFtZVRFWFQAAAAFAEMAMQAgAEIAAAA4QklNBDsAAAAAAbIAAAAQAAAAAQAA
AAAAEnByaW50T3V0cHV0T3B0aW9ucwAAABIAAAAAQ3B0bmJvb2wAAAAAAENsYnJib29sAAAAAABS
Z3NNYm9vbAAAAAAAQ3JuQ2Jvb2wAAAAAAENudENib29sAAAAAABMYmxzYm9vbAAAAAAATmd0dmJv
b2wAAAAAAEVtbERib29sAAAAAABJbnRyYm9vbAAAAAAAQmNrZ09iamMAAAABAAAAAAAAUkdCQwAA
AAMAAAAAUmQgIGRvdWJAb+AAAAAAAAAAAABHcm4gZG91YkBv4AAAAAAAAAAAAEJsICBkb3ViQG/g
AAAAAAAAAAAAQnJkVFVudEYjUmx0AAAAAAAAAAAAAAAAQmxkIFVudEYjUmx0AAAAAAAAAAAAAAAA
UnNsdFVudEYjUHhsQFIAAAAAAAAAAAAKdmVjdG9yRGF0YWJvb2wBAAAAAFBnUHNlbnVtAAAAAFBn
UHMAAAAAUGdQQwAAAABMZWZ0VW50RiNSbHQAAAAAAAAAAAAAAABUb3AgVW50RiNSbHQAAAAAAAAA
AAAAAABTY2wgVW50RiNQcmNAWQAAAAAAADhCSU0D7QAAAAAAEABIAAAAAQACAEgAAAABAAI4QklN
BCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0D8gAAAAAACgAA////////AAA4QklNBA0AAAAAAAQA
AAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAA
AAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIA
AAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////
////////////////A+gAAAAA/////////////////////////////wPoAAAAAP//////////////
//////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAA
AAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANtAAAABgAAAAAAAAAAAAAA
YwAAAPYAAAAcAGwAbwBnAG8AIAAmACAAYQBkAGQAcgBlAHMAcwAgAHcAaQB0AGgAIABsAG8AZwBv
ACAAQgAmAFcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAPYAAABjAAAAAAAAAAAA
AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNP
YmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAA
QnRvbWxvbmcAAABjAAAAAFJnaHRsb25nAAAA9gAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAA
AAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3Jp
Z2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApF
U2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3Ag
bG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAYwAAAABSZ2h0bG9uZwAAAPYA
AAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZh
bHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAA
AQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVy
dEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVu
dW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAAps
ZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRs
b25nAAAAAAA4QklNBCgAAAAAAAwAAAACP/AAAAAAAAA4QklNBBQAAAAAAAQAAAACOEJJTQQMAAAA
ABufAAAAAQAAAKAAAABAAAAB4AAAeAAAABuDABgAAf/Y/+IMWElDQ19QUk9GSUxFAAEBAAAMSExp
bm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAA
AAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQA
AAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAA
AsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVj
aAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5
cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0Ig
SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFla
IAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABja
WFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA
AAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBj
b2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBj
b2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVy
ZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVu
Y2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAA
AFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYA
AAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3
AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcB
DQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHR
AdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC
4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQt
BDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF
1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/
B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsK
EQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgyn
DMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YP
sw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMD
EyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW
1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrs
GxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kf
lB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8
JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAq
Aio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/H
L/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02
NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzj
PSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANE
R0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi
TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZU
QlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzW
XSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedm
PWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/R
cCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6
RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITj
hUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQ
bpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wc
nImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKo
xKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WK
tgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvD
WMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE8
0b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/g
NuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A
78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/
bf///+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwM
DxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAU
Dg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAAR
CABAAKADASIAAhEBAxEB/90ABAAK/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQAB
BQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWET
InGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N1
4/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcH
BgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJE
k1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH
/9oADAMBAAIRAxEAPwDdx+sfW7Od17JxM3Eqr6Ll5FNWLdjktsZV+kZ6uUzIrdX7Pb/Nq3lfWzOt
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
xhBBaIdq4Rz8U8DwSU8zkfXemlmHaMUlmZZksFb3+ncfsuTX07Zj4ttbbMjMufd6v2L9Db+jt/wq
v5H1jx6+r4vTafReMiZvsvbW0lr34z8fDbD/ALbl03VP+1Y7PT+zf8ZZ6a1yASCRqOEtrdNBoZHk
Skp5fG+vNN+PZeMQu2W4zBVVY2ywNynvqbXdWxv6HqeN6L7Mrpn6R9X6H9P+kW30XqQ6r0yjPFZo
9YOmouDi0tc6tzC9vtd7mK6GtEwAJMn4p0lKSSSSUpJJJJSkkkklKSSSSU//0sv6yhv7U+vEifbi
ccwcnCmE/XqPU6Nl52bZ0jPyj6LmX9J1yWW2Pa23K6m9hZ+rW176bfUrt9TNuo/mf5xdd1f/ABfd
Tu+seR1vpXUKqG5gjIx8in1mPa5rK7se2tx9K/Gt9Jlmyyv2P+gquV/i461kY1mLVf0vBrv2tvdi
YZre9jXNtFL7PUc/0vVZXbsb/Oemz1ElPP8A1x/8Rn1P/wCId/56qVr/ABRPxB1rOY6t5zDiucy0
OhgpD6RZXs/0zrfTe2xdN9ZP8X1nVOjdI6ZhZjaf2Qz0w+5hdvBY2rf7HDa79Gq31U+oPWfq11K3
Pbk42WbaHY/pkWVgbnV27949b/RfQSS1v8Ur+n2ZnXX9Mqsx8Jww/RqudvsHsv377B+9ZucvRlyX
1C+peT9VW5oyMpmUcv0Q0VsLdopFg925zt2/1l1qSFJJJJKUkkkkpSSSSSlJJJJKUkkkkpSSSSSl
JJJJKf/ZADhCSU0EIQAAAAAAVQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8A
cAAAABMAQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIABDAFMANQAAAAEAOEJJTQQGAAAA
AAAHAAgAAQABAQD/4T/1aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVn
aW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5z
Ong9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4x
MzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3Jp
cHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMv
MS4xLyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBN
TT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9u
cy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnN0RXZ0PSJodHRw
Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOmlsbHVz
dHJhdG9yPSJodHRwOi8vbnMuYWRvYmUuY29tL2lsbHVzdHJhdG9yLzEuMC8iIHhtbG5zOnhtcFRQ
Zz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3QvcGcvIiB4bWxuczpzdERpbT0iaHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIiB4bWxuczp4bXBHPSJodHRw
Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvZy8iIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNv
bS9wZGYvMS4zLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hv
cC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhtcDpNZXRhZGF0YURhdGU9IjIwMTEtMTAt
MjdUMTY6NTM6MzQrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDExLTEwLTI3VDE2OjUzOjM0KzAx
OjAwIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxMS0xMC0yN1QxNTowMTo1OSswMTowMCIgeG1wOkNyZWF0
b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0i
eG1wLmlpZDpGQzM3OEFBRUUyMjA2ODExOTJCMEIxOTg1MDVBNDNGNyIgeG1wTU06RG9jdW1lbnRJ
RD0ieG1wLmRpZDpGQTM3OEFBRUUyMjA2ODExOTJCMEIxOTg1MDVBNDNGNyIgeG1wTU06T3JpZ2lu
YWxEb2N1bWVudElEPSJ1dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQzMTUwOEM4IiB4bXBN
TTpSZW5kaXRpb25DbGFzcz0icHJvb2Y6cGRmIiBpbGx1c3RyYXRvcjpUeXBlPSJEb2N1bWVudCIg
aWxsdXN0cmF0b3I6U3RhcnR1cFByb2ZpbGU9IlByaW50IiB4bXBUUGc6SGFzVmlzaWJsZU92ZXJw
cmludD0iRmFsc2UiIHhtcFRQZzpIYXNWaXNpYmxlVHJhbnNwYXJlbmN5PSJGYWxzZSIgeG1wVFBn
Ok5QYWdlcz0iMSIgcGRmOlByb2R1Y2VyPSJBZG9iZSBQREYgbGlicmFyeSA5LjkwIiBwaG90b3No
b3A6TGVnYWN5SVBUQ0RpZ2VzdD0iRUY0NEZBRTZGNDVCRjVGMjY5NUE4NUJGQTE2RUFGMEYiIHBo
b3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2
LTIuMSI+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+
bG9nbyAmYW1wOyBhZGRyZXNzIHdpdGggbG9nbyBCJmFtcDtXPC9yZGY6bGk+IDwvcmRmOkFsdD4g
PC9kYzp0aXRsZT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6
RkEzNzhBQUVFMjIwNjgxMTkyQjBCMTk4NTA1QTQzRjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5k
aWQ6RkEzNzhBQUVFMjIwNjgxMTkyQjBCMTk4NTA1QTQzRjciIHN0UmVmOm9yaWdpbmFsRG9jdW1l
bnRJRD0idXVpZDo1RDIwODkyNDkzQkZEQjExOTE0QTg1OTBEMzE1MDhDOCIgc3RSZWY6cmVuZGl0
aW9uQ2xhc3M9InByb29mOnBkZiIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkg
c3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzI0MEZCRjM3
MjA2ODExODA4M0Y3MTNGQzgwODNGOCIgc3RFdnQ6d2hlbj0iMjAxMS0xMC0xMVQxMDozODoyMSsw
MTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgSWxsdXN0cmF0b3IgQ1M1IiBzdEV2dDpj
aGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJ
RD0ieG1wLmlpZDpBRDI0MEZCRjM3MjA2ODExODA4M0Y3MTNGQzgwODNGOCIgc3RFdnQ6d2hlbj0i
MjAxMS0xMC0xMVQxMDozODo1MiswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgSWxs
dXN0cmF0b3IgQ1M1IiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJz
YXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozOTk4QjNDOTgyMjA2ODExODA4M0E3RkNF
MjAzMUU1RCIgc3RFdnQ6d2hlbj0iMjAxMS0xMC0yN1QxNTowMTo1OSswMTowMCIgc3RFdnQ6c29m
dHdhcmVBZ2VudD0iQWRvYmUgSWxsdXN0cmF0b3IgQ1M1IiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxy
ZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBw
bGljYXRpb24vcGRmIHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AiLz4gPHJkZjps
aSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkZBMzc4QUFF
RTIyMDY4MTE5MkIwQjE5ODUwNUE0M0Y3IiBzdEV2dDp3aGVuPSIyMDExLTEwLTI3VDE1OjE5OjQx
KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9z
aCIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBz
dEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3BkZiB0byBpbWFnZS9qcGVnIi8+IDxy
ZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQg
ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL2pwZWciLz4gPHJk
ZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkZCMzc4
QUFFRTIyMDY4MTE5MkIwQjE5ODUwNUE0M0Y3IiBzdEV2dDp3aGVuPSIyMDExLTEwLTI3VDE1OjE5
OjQxKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2lu
dG9zaCIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0
RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6RkMzNzhBQUVFMjIwNjgxMTkyQjBCMTk4NTA1QTQzRjci
IHN0RXZ0OndoZW49IjIwMTEtMTAtMjdUMTY6NTM6MzQrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdl
bnQ9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwv
cmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wVFBnOk1heFBhZ2VTaXplIHN0RGltOnc9Ijg2
LjY5MTAwNSIgc3REaW06aD0iMzUuMDcxOTMzIiBzdERpbTp1bml0PSJNaWxsaW1ldGVycyIvPiA8
eG1wVFBnOlBsYXRlTmFtZXM+IDxyZGY6U2VxPiA8cmRmOmxpPkN5YW48L3JkZjpsaT4gPHJkZjps
aT5NYWdlbnRhPC9yZGY6bGk+IDxyZGY6bGk+WWVsbG93PC9yZGY6bGk+IDxyZGY6bGk+QmxhY2s8
L3JkZjpsaT4gPC9yZGY6U2VxPiA8L3htcFRQZzpQbGF0ZU5hbWVzPiA8eG1wVFBnOlN3YXRjaEdy
b3Vwcz4gPHJkZjpTZXE+IDxyZGY6bGk+IDxyZGY6RGVzY3JpcHRpb24geG1wRzpncm91cE5hbWU9
IkRlZmF1bHQgU3dhdGNoIEdyb3VwIiB4bXBHOmdyb3VwVHlwZT0iMCI+IDx4bXBHOkNvbG9yYW50
cz4gPHJkZjpTZXE+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJXaGl0ZSIgeG1wRzptb2RlPSJD
TVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50
YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAi
Lz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkJsYWNrIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6
dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIwLjAwMDAw
MCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIxMDAuMDAwMDAwIi8+IDxyZGY6
bGkgeG1wRzpzd2F0Y2hOYW1lPSJDTVlLIFJlZCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9
IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMTAwLjAwMDAwMCIg
eG1wRzp5ZWxsb3c9IjEwMC4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6bGkg
eG1wRzpzd2F0Y2hOYW1lPSJDTVlLIFllbGxvdyIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9
IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHht
cEc6eWVsbG93PSIxMDAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHht
cEc6c3dhdGNoTmFtZT0iQ01ZSyBHcmVlbiIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBS
T0NFU1MiIHhtcEc6Y3lhbj0iMTAwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIwLjAwMDAwMCIgeG1w
Rzp5ZWxsb3c9IjEwMC4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6bGkgeG1w
Rzpzd2F0Y2hOYW1lPSJDTVlLIEN5YW4iIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9D
RVNTIiB4bXBHOmN5YW49IjEwMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6
eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3
YXRjaE5hbWU9IkNNWUsgQmx1ZSIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1Mi
IHhtcEc6Y3lhbj0iMTAwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIxMDAuMDAwMDAwIiB4bXBHOnll
bGxvdz0iMC4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0
Y2hOYW1lPSJDTVlLIE1hZ2VudGEiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNT
IiB4bXBHOmN5YW49IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVs
bG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRj
aE5hbWU9IkM9MTUgTT0xMDAgWT05MCBLPTEwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0i
UFJPQ0VTUyIgeG1wRzpjeWFuPSIxNC45OTk5OTgiIHhtcEc6bWFnZW50YT0iMTAwLjAwMDAwMCIg
eG1wRzp5ZWxsb3c9IjkwLjAwMDAwMCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkg
eG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT05MCBZPTg1IEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBH
OnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iOTAuMDAw
MDAwIiB4bXBHOnllbGxvdz0iODUuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRm
OmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09ODAgWT05NSBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIg
eG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9Ijgw
LjAwMDAwMCIgeG1wRzp5ZWxsb3c9Ijk1LjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4g
PHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTUwIFk9MTAwIEs9MCIgeG1wRzptb2RlPSJD
TVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50
YT0iNTAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAw
MDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTM1IFk9ODUgSz0wIiB4bXBHOm1v
ZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSIzNS4wMDAwMDQiIHhtcEc6eWVsbG93PSI4NS4wMDAwMDAiIHhtcEc6YmxhY2s9IjAu
MDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTUgTT0wIFk9OTAgSz0wIiB4bXBH
Om1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSI1LjAwMDAwMSIgeG1w
RzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjkwLjAwMDAwMCIgeG1wRzpibGFjaz0i
MC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MjAgTT0wIFk9MTAwIEs9MCIg
eG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMTkuOTk5OTk4
IiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAwMDAwMCIgeG1wRzpi
bGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NTAgTT0wIFk9MTAw
IEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iNTAu
MDAwMDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAwMDAwMCIg
eG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NzUgTT0w
IFk9MTAwIEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lh
bj0iNzUuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAw
MDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9
ODUgTT0xMCBZPTEwMCBLPTEwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIg
eG1wRzpjeWFuPSI4NS4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMTAuMDAwMDAyIiB4bXBHOnllbGxv
dz0iMTAwLjAwMDAwMCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkgeG1wRzpzd2F0
Y2hOYW1lPSJDPTkwIE09MzAgWT05NSBLPTMwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0i
UFJPQ0VTUyIgeG1wRzpjeWFuPSI5MC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMzAuMDAwMDAyIiB4
bXBHOnllbGxvdz0iOTUuMDAwMDAwIiB4bXBHOmJsYWNrPSIzMC4wMDAwMDIiLz4gPHJkZjpsaSB4
bXBHOnN3YXRjaE5hbWU9IkM9NzUgTT0wIFk9NzUgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6
dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSI3NS4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAw
MDAiIHhtcEc6eWVsbG93PSI3NS4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6
bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTgwIE09MTAgWT00NSBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIg
eG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjgwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIx
MC4wMDAwMDIiIHhtcEc6eWVsbG93PSI0NS4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+
IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTcwIE09MTUgWT0wIEs9MCIgeG1wRzptb2RlPSJD
TVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iNzAuMDAwMDAwIiB4bXBHOm1hZ2Vu
dGE9IjE0Ljk5OTk5OCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAw
MCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz04NSBNPTUwIFk9MCBLPTAiIHhtcEc6bW9k
ZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49Ijg1LjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSI1MC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4w
MDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MTAwIE09OTUgWT01IEs9MCIgeG1w
Rzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMTAwLjAwMDAwMCIg
eG1wRzptYWdlbnRhPSI5NS4wMDAwMDAiIHhtcEc6eWVsbG93PSI1LjAwMDAwMSIgeG1wRzpibGFj
az0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MTAwIE09MTAwIFk9MjUg
Sz0yNSIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMTAw
LjAwMDAwMCIgeG1wRzptYWdlbnRhPSIxMDAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMjUuMDAwMDAw
IiB4bXBHOmJsYWNrPSIyNS4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NzUg
TT0xMDAgWT0wIEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6
Y3lhbj0iNzUuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIw
LjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9
IkM9NTAgTT0xMDAgWT0wIEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1Mi
IHhtcEc6Y3lhbj0iNTAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVs
bG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRj
aE5hbWU9IkM9MzUgTT0xMDAgWT0zNSBLPTEwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0i
UFJPQ0VTUyIgeG1wRzpjeWFuPSIzNS4wMDAwMDQiIHhtcEc6bWFnZW50YT0iMTAwLjAwMDAwMCIg
eG1wRzp5ZWxsb3c9IjM1LjAwMDAwNCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkg
eG1wRzpzd2F0Y2hOYW1lPSJDPTEwIE09MTAwIFk9NTAgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHht
cEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIxMC4wMDAwMDIiIHhtcEc6bWFnZW50YT0iMTAw
LjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjUwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4g
PHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTk1IFk9MjAgSz0wIiB4bXBHOm1vZGU9IkNN
WUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzptYWdlbnRh
PSI5NS4wMDAwMDAiIHhtcEc6eWVsbG93PSIxOS45OTk5OTgiIHhtcEc6YmxhY2s9IjAuMDAwMDAw
Ii8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTI1IE09MjUgWT00MCBLPTAiIHhtcEc6bW9k
ZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjI1LjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSIyNS4wMDAwMDAiIHhtcEc6eWVsbG93PSIzOS45OTk5OTYiIHhtcEc6YmxhY2s9IjAu
MDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTQwIE09NDUgWT01MCBLPTUiIHht
cEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjM5Ljk5OTk5NiIg
eG1wRzptYWdlbnRhPSI0NS4wMDAwMDAiIHhtcEc6eWVsbG93PSI1MC4wMDAwMDAiIHhtcEc6Ymxh
Y2s9IjUuMDAwMDAxIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTUwIE09NTAgWT02MCBL
PTI1IiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSI1MC4w
MDAwMDAiIHhtcEc6bWFnZW50YT0iNTAuMDAwMDAwIiB4bXBHOnllbGxvdz0iNjAuMDAwMDA0IiB4
bXBHOmJsYWNrPSIyNS4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NTUgTT02
MCBZPTY1IEs9NDAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5
YW49IjU1LjAwMDAwMCIgeG1wRzptYWdlbnRhPSI2MC4wMDAwMDQiIHhtcEc6eWVsbG93PSI2NS4w
MDAwMDAiIHhtcEc6YmxhY2s9IjM5Ljk5OTk5NiIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0i
Qz0yNSBNPTQwIFk9NjUgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIg
eG1wRzpjeWFuPSIyNS4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMzkuOTk5OTk2IiB4bXBHOnllbGxv
dz0iNjUuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNo
TmFtZT0iQz0zMCBNPTUwIFk9NzUgSz0xMCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBS
T0NFU1MiIHhtcEc6Y3lhbj0iMzAuMDAwMDAyIiB4bXBHOm1hZ2VudGE9IjUwLjAwMDAwMCIgeG1w
Rzp5ZWxsb3c9Ijc1LjAwMDAwMCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkgeG1w
Rzpzd2F0Y2hOYW1lPSJDPTM1IE09NjAgWT04MCBLPTI1IiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6
dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIzNS4wMDAwMDQiIHhtcEc6bWFnZW50YT0iNjAuMDAw
MDA0IiB4bXBHOnllbGxvdz0iODAuMDAwMDAwIiB4bXBHOmJsYWNrPSIyNS4wMDAwMDAiLz4gPHJk
ZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NDAgTT02NSBZPTkwIEs9MzUiIHhtcEc6bW9kZT0iQ01Z
SyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjM5Ljk5OTk5NiIgeG1wRzptYWdlbnRh
PSI2NS4wMDAwMDAiIHhtcEc6eWVsbG93PSI5MC4wMDAwMDAiIHhtcEc6YmxhY2s9IjM1LjAwMDAw
NCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz00MCBNPTcwIFk9MTAwIEs9NTAiIHhtcEc6
bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjM5Ljk5OTk5NiIgeG1w
RzptYWdlbnRhPSI3MC4wMDAwMDAiIHhtcEc6eWVsbG93PSIxMDAuMDAwMDAwIiB4bXBHOmJsYWNr
PSI1MC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NTAgTT03MCBZPTgwIEs9
NzAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjUwLjAw
MDAwMCIgeG1wRzptYWdlbnRhPSI3MC4wMDAwMDAiIHhtcEc6eWVsbG93PSI4MC4wMDAwMDAiIHht
cEc6YmxhY2s9IjcwLjAwMDAwMCIvPiA8L3JkZjpTZXE+IDwveG1wRzpDb2xvcmFudHM+IDwvcmRm
OkRlc2NyaXB0aW9uPiA8L3JkZjpsaT4gPHJkZjpsaT4gPHJkZjpEZXNjcmlwdGlvbiB4bXBHOmdy
b3VwTmFtZT0iR3JheXMiIHhtcEc6Z3JvdXBUeXBlPSIxIj4gPHhtcEc6Q29sb3JhbnRzPiA8cmRm
OlNlcT4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAgWT0wIEs9MTAwIiB4bXBHOm1v
ZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIxMDAu
MDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT0wIFk9MCBLPTkwIiB4bXBH
Om1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1w
RzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSI4
OS45OTk0MDUiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAgWT0wIEs9ODAiIHht
cEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAwMDAwIiB4
bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMC4wMDAwMDAiIHhtcEc6YmxhY2s9
Ijc5Ljk5ODc5NSIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09MCBZPTAgSz03MCIg
eG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAi
IHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFj
az0iNjkuOTk5NzAyIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT0wIFk9MCBLPTYw
IiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAw
MCIgeG1wRzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJs
YWNrPSI1OS45OTkxMDQiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAgWT0wIEs9
NTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAw
MDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMC4wMDAwMDAiIHhtcEc6
YmxhY2s9IjUwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09MCBZPTAg
Sz00MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4w
MDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1w
RzpibGFjaz0iMzkuOTk5NDAxIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT0wIFk9
MCBLPTMwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIw
LjAwMDAwMCIgeG1wRzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4
bXBHOmJsYWNrPSIyOS45OTg4MDIiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAg
WT0wIEs9MjAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49
IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMC4wMDAwMDAi
IHhtcEc6YmxhY2s9IjE5Ljk5OTcwMSIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09
MCBZPTAgSz0xMCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lh
bj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAw
MCIgeG1wRzpibGFjaz0iOS45OTkxMDMiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBN
PTAgWT0wIEs9NSIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lh
bj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAw
MCIgeG1wRzpibGFjaz0iNC45OTg4MDMiLz4gPC9yZGY6U2VxPiA8L3htcEc6Q29sb3JhbnRzPiA8
L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6bGk+IDxyZGY6bGk+IDxyZGY6RGVzY3JpcHRpb24geG1w
Rzpncm91cE5hbWU9IkJyaWdodHMiIHhtcEc6Z3JvdXBUeXBlPSIxIj4gPHhtcEc6Q29sb3JhbnRz
PiA8cmRmOlNlcT4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTEwMCBZPTEwMCBLPTAi
IHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAwMDAw
IiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIxMDAuMDAwMDAwIiB4bXBH
OmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09NzUgWT0x
MDAgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIw
LjAwMDAwMCIgeG1wRzptYWdlbnRhPSI3NS4wMDAwMDAiIHhtcEc6eWVsbG93PSIxMDAuMDAwMDAw
IiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09
MTAgWT05NSBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5
YW49IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwLjAwMDAwMiIgeG1wRzp5ZWxsb3c9Ijk1LjAw
MDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9
ODUgTT0xMCBZPTEwMCBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4
bXBHOmN5YW49Ijg1LjAwMDAwMCIgeG1wRzptYWdlbnRhPSIxMC4wMDAwMDIiIHhtcEc6eWVsbG93
PSIxMDAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNo
TmFtZT0iQz0xMDAgTT05MCBZPTAgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJP
Q0VTUyIgeG1wRzpjeWFuPSIxMDAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjkwLjAwMDAwMCIgeG1w
Rzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6
c3dhdGNoTmFtZT0iQz02MCBNPTkwIFk9MCBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBl
PSJQUk9DRVNTIiB4bXBHOmN5YW49IjYwLjAwMDAwNCIgeG1wRzptYWdlbnRhPSI5MC4wMDAwMDAi
IHhtcEc6eWVsbG93PSIwLjAwMzA5OSIgeG1wRzpibGFjaz0iMC4wMDMwOTkiLz4gPC9yZGY6U2Vx
PiA8L3htcEc6Q29sb3JhbnRzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6bGk+IDwvcmRmOlNl
cT4gPC94bXBUUGc6U3dhdGNoR3JvdXBzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8
L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/9sAQwABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMDAwMDAwMD/9sAQwEBAQEBAQEBAQEBAgIB
AgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgA
YwD2AwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC
BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn
KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY
mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5
+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB
AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD
REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip
qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR
AD8A/Z3x9/wXO/akv/29fjx+wX+y3/wTntv2kviB8FNR8VvJcwftK6B8OLvWvC/hDUtO0vVPEsln
4u8BQ6NYCO71i1X7MupXEzNMNgYAkBr7Ncqk5WufQ37In/Ba+3+Lf7WcP7B/7X37KPxI/Yb/AGqt
Y02TUfBPhXxt4m0zxx4M8e+TYXuqrZ6D4xstG8NqbrVdO026l02WK3u9Mv2tJoY737SI4JAUqdlz
Rd4nsn7bv/BUC/8A2P8A9tz9g79kK2+DFp4+tf20fGNj4UvPH0/jybw3P8O1vvHfhrwYt9beG4/C
Otx+KDGPEBuDG19YZ8oJu+bcASjeMpX2Oe+OX/BVrVP2d/8Agqf8Af8Agnp8S/gZaaZ8Of2k/D+k
3/w2/aKi+IMpa48Q65a+ItK0zwzeeA5PCEdst1P8Q/D6aOSmstIqaja3BjxJ5dAKF4OSeqP158Re
INH8JeH9d8VeIr+30rw/4a0bU/EGu6pdv5drpuj6NZT6jqd/cyHhLezsrZ5HPZVJoIPw4+FH/BZP
xj8Sv+CXH7R3/BTm5/ZktPDXhP4V+JvF1n8J/h9d/E+8uLr4seD/AAr4k8OeFD4s1PxCfh/bL4RN
1rur3lqbaKz1MRz6bKPMIYEBo4WmoXPEPgr/AMFdv+Crn7RHwr8F/G34Mf8ABFdvHHwu+IulS634
M8V2v7bHwq0qHWtLiv73THuRpmu+E9K1qw232nzJsubaGQ7dwXaykg3CCbTnqfb/AO1T/wAFGfjT
+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
oAKACgAoAKACgAoAKACgAoAKAP/Z

--_004_8694DC0939354C45B44865A2376D56BD2AD87DC6RIV10EXC02hqriv_--

--===============1146807514==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1146807514==--

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 13 15:59:30 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DEx4B3000665;
	Wed, 13 Feb 2013 15:59:25 +0100
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DEx3A6000572
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 13 Feb 2013 15:59:03 +0100
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id r1DEx2IS000500
 for <libssh2-devel@cool.haxx.se>; Wed, 13 Feb 2013 15:59:02 +0100
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Wed, 13 Feb 2013 15:59:02 +0100 (CET)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: Installing libssh2 on HP-UX
In-Reply-To: <8694DC0939354C45B44865A2376D56BD2AD87DC6@RIV10EXC02.hq.river-island.com>
Message-ID: <alpine.DEB.2.00.1302131555050.26522@tvnag.unkk.fr>
References: <8694DC0939354C45B44865A2376D56BD2AD87DC6@RIV10EXC02.hq.river-island.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

On Wed, 13 Feb 2013, Wes Donze wrote:

> Yes thankyou - I realize that's what it is trying to do but I do not think 
> this is working

Well, obviously not. The question is _why_ it doesn't work!

> - as you can see below I have run make in the 'tests' directory and get the 
> error as shown - however as you can see I have then done the ls as shown 
> below which finds the relevant file.

Right. So what do you need to change on the command line to make it work on 
HP-UX? We rely on libtool for exactly the purpose of it magically solving the 
platform-specific tricks.

That build command line looks completely different when I run it on my Linux 
box. It's been a decade or so since I logged in to a HP-UX machine and I 
really can't remember any particular details or funny quirks that may be 
required to get that link line to work.

> Can I hard code this in anywhere to get it going?

Well, that's "only" the test. You can probably just ignore it...  But sure, 
you can edit the Makefile as you see fit!

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 13 15:59:31 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DExU8V001320;
	Wed, 13 Feb 2013 15:59:31 +0100
Received: from mail1.bemta3.messagelabs.com (mail1.bemta3.messagelabs.com
 [195.245.230.34])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DEx40O000666
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 13 Feb 2013 15:59:05 +0100
Received: from [85.158.138.131:23712] by server-4.bemta-3.messagelabs.com id
 22/E6-12802-83AAB115; Wed, 13 Feb 2013 14:59:04 +0000
X-Env-Sender: WES.DONZE@river-island.com
X-Msg-Ref: server-15.tower-186.messagelabs.com!1360767543!16787336!2
X-Originating-IP: [217.64.228.66]
X-StarScan-Received: 
X-StarScan-Version: 6.7; banners=river-island.com,-,-
X-VirusChecked: Checked
Received: (qmail 30990 invoked from network); 13 Feb 2013 14:59:04 -0000
Received: from unknown (HELO RIV10EXC01.hq.river-island.com) (217.64.228.66)
 by server-15.tower-186.messagelabs.com with AES128-SHA encrypted SMTP;
 13 Feb 2013 14:59:04 -0000
Received: from RIV10EXC02.hq.river-island.com ([::1]) by
 RIV10EXC01.hq.river-island.com ([::1]) with mapi id 14.01.0355.002; Wed, 13
 Feb 2013 14:59:03 +0000
From: Wes Donze <WES.DONZE@river-island.com>
To: "'libssh2-devel@cool.haxx.se'" <libssh2-devel@cool.haxx.se>
Subject: Re: Installing libssh2 on HP-UX
Thread-Topic: Re: Installing libssh2 on HP-UX
Thread-Index: Ac4J+q0RRnFPNWJ6RZmCUMzCRn/5Rw==
Date: Wed, 13 Feb 2013 14:59:02 +0000
Message-ID: <8694DC0939354C45B44865A2376D56BD2AD87ECB@RIV10EXC02.hq.river-island.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.150.17.49]
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0666151350=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

--===============0666151350==
Content-Language: en-US
Content-Type: multipart/related;
	boundary="_004_8694DC0939354C45B44865A2376D56BD2AD87ECBRIV10EXC02hqriv_";
	type="multipart/alternative"

--_004_8694DC0939354C45B44865A2376D56BD2AD87ECBRIV10EXC02hqriv_
Content-Type: multipart/alternative;
	boundary="_000_8694DC0939354C45B44865A2376D56BD2AD87ECBRIV10EXC02hqriv_"

--_000_8694DC0939354C45B44865A2376D56BD2AD87ECBRIV10EXC02hqriv_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

OK - what I have done is amend the Makefile and remove 'tests' and 'exampl=
e' from DIST_SUBDIRS  ,  tests from SUBDIRS
And also put a # to comment out the line am_append_1 =3D example

Make then runs through ok as does make install

Is what I have done an issue do you think?


Kind regards
Wes
Wes Donze
Technical Support
T: 02089914765
E: wes.donze@river-island.com

[https://insider.river-island.com/data/article/860000/165/image/Signature.=
jpg]



________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--_000_8694DC0939354C45B44865A2376D56BD2AD87ECBRIV10EXC02hqriv_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-mic=
rosoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word=
" xmlns:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:m=3D"http://sch=
emas.microsoft.com/office/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-=
html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii=
">
<meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><style>
<!--
 /* Font Definitions */
 @font-face
=09{font-family:Calibri;
=09panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
=09{font-family:Tahoma;
=09panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:11.0pt;
=09font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
=09{mso-style-priority:99;
=09color:blue;
=09text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
=09{mso-style-priority:99;
=09color:purple;
=09text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
=09{mso-style-priority:99;
=09mso-style-link:"Balloon Text Char";
=09margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:8.0pt;
=09font-family:"Tahoma","sans-serif";}
span.EmailStyle17
=09{mso-style-type:personal-compose;
=09font-family:"Arial","sans-serif";
=09color:windowtext;
=09font-weight:normal;
=09font-style:normal;}
span.BalloonTextChar
=09{mso-style-name:"Balloon Text Char";
=09mso-style-priority:99;
=09mso-style-link:"Balloon Text";
=09font-family:"Tahoma","sans-serif";}
.MsoChpDefault
=09{mso-style-type:export-only;}
@page Section1
=09{size:612.0pt 792.0pt;
=09margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
=09{page:Section1;}
-->
</style><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"Section1">
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">OK &#8211; what I have done is amend th=
e Makefile and remove &#8216;tests&#8217; and &#8216;example&#8217; from D=
IST_SUBDIRS&nbsp; ,&nbsp; tests from SUBDIRS
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">And also put a # to comment out the lin=
e am_append_1 =3D example<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">Make then runs through ok as does make =
install<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">Is what I have done an issue do you thi=
nk?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">Kind regards<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;A=
rial&quot;,&quot;sans-serif&quot;">Wes<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Wes Donze<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Technical Support<o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">T: 02089914765<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;">E: wes.donze@river-islan=
d.com<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:8.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;;
color:#666666"><img width=3D"246" height=3D"99" id=3D"Picture_x0020_1" src=
=3D"cid:image001.jpg@01CE09FA.AD0CE320" alt=3D"https://insider.river-islan=
d.com/data/article/860000/165/image/Signature.jpg"></span><span lang=3D"EN=
-GB" style=3D"font-size:12.0pt;font-family:&quot;Arial&quot;,&quot;sans-se=
rif&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<br clear=3D"both">
________________________________________________________________________<B=
R>
This e-mail has been scanned for all viruses by Star. The<BR>
service is powered by MessageLabs. For more information on a proactive<BR>=

anti-virus service working around the clock, around the globe, visit:<BR>
http://www.star.net.uk<BR>
________________________________________________________________________<B=
R>
</body>
</html>

--_000_8694DC0939354C45B44865A2376D56BD2AD87ECBRIV10EXC02hqriv_--

--_004_8694DC0939354C45B44865A2376D56BD2AD87ECBRIV10EXC02hqriv_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=51948;
	creation-date="Wed, 13 Feb 2013 14:59:02 GMT";
	modification-date="Wed, 13 Feb 2013 14:59:02 GMT"
Content-ID: <image001.jpg@01CE09FA.AD0CE320>
Content-Transfer-Encoding: base64

/9j/7gAOQWRvYmUAZAAAAAAB/+EdBUV4aWYAAElJKgAIAAAADAAAAQMAAQAAAPYAICABAQMAAQAA
AGMAICACAQMAAwAAAJ4AAAAGAQMAAQAAAAIAICASAQMAAQAAAAEAICAVAQMAAQAAAAMAICAaAQUA
AQAAAKQAAAAbAQUAAQAAAKwAAAAoAQMAAQAAAAIAICAxAQIAHgAAALQAAAAyAQIAFAAAANIAAABp
hwQAAQAAAOYAAAAcAQAACAAIAAgAgPwKABAnAACA/AoAECcAAEFkb2JlIFBob3Rvc2hvcCBDUzUg
TWFjaW50b3NoADIwMTE6MTA6MjcgMTY6NTM6MzQABAAAkAcABAAAADAyMjEBoAMAAQAAAAEAICAC
oAQAAQAAAPYAAAADoAQAAQAAAGMAAAAAAAAABgADAQMAAQAAAAYAICAaAQUAAQAAAGoBAAAbAQUA
AQAAAHIBAAAoAQMAAQAAAAIAICABAgQAAQAAAHoBAAACAgQAAQAAAIMbAAAAAAAASAAAAAEAAABI
AAAAAQAAAP/Y/+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJ
AAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAz
ZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwA
AAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAA
A9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RS
QwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1Q
YWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAS
c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAA
AAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNj
AAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p
ZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAA
AAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAA
AAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBp
biBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4g
SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDP
FAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAA
AAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMA
KAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCy
ALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIB
WQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4
AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oD
ZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATT
BOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowG
nQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiq
CL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsL
Igs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e
DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPUR
ExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSL
FK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUY
ihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzM
HPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUh
oSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3
JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDks
biyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJj
Mpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5
BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/i
QCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVH
e0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9J
T5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX
4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2Cq
YPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFq
SGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQU
dHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+
wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZ
if6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSV
X5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH
obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1Erbiu
La6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsu
u6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJ
Osm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc
1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3m
lucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe
9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+0ADEFkb2JlX0NNAAH/7gAOQWRv
YmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwM
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
IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0
IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAA
LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxS
ZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABM
CVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JU
IGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBo
AG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA
+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5
AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYC
wQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQG
BBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYF
pgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeG
B5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJ
zwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxc
DHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EP
Xg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj
EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkW
bBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3
Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+Hukf
Ex8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPw
JB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgp
aymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8k
L1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01
hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn
PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpD
fUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsM
S1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNT
X1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvl
XDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOll
PWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27E
bx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5
KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6
hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6P
No+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrV
m0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2n
bqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl
tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB
48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+4
0DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hze
ot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c
7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9
uv5L/tz/bf///+0kElBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAAA4HAFaAAMbJUccAVoAAxslRxwC
AAACAAAcAgUAHGxvZ28gJiBhZGRyZXNzIHdpdGggbG9nbyBCJlc4QklNBCUAAAAAABCjDGhlV3vN
ME/s8bGnsgW4OEJJTQQ6AAAAAAB/AAAAEAAAAAEAAAAAAAtwcmludE91dHB1dAAAAAQAAAAAUHN0
U2Jvb2wBAAAAAEludGVlbnVtAAAAAEludGUAAAAAQ2xybQAAAA9wcmludFNpeHRlZW5CaXRib29s
AAAAAAtwcmludGVyTmFtZVRFWFQAAAAFAEMAMQAgAEIAAAA4QklNBDsAAAAAAbIAAAAQAAAAAQAA
AAAAEnByaW50T3V0cHV0T3B0aW9ucwAAABIAAAAAQ3B0bmJvb2wAAAAAAENsYnJib29sAAAAAABS
Z3NNYm9vbAAAAAAAQ3JuQ2Jvb2wAAAAAAENudENib29sAAAAAABMYmxzYm9vbAAAAAAATmd0dmJv
b2wAAAAAAEVtbERib29sAAAAAABJbnRyYm9vbAAAAAAAQmNrZ09iamMAAAABAAAAAAAAUkdCQwAA
AAMAAAAAUmQgIGRvdWJAb+AAAAAAAAAAAABHcm4gZG91YkBv4AAAAAAAAAAAAEJsICBkb3ViQG/g
AAAAAAAAAAAAQnJkVFVudEYjUmx0AAAAAAAAAAAAAAAAQmxkIFVudEYjUmx0AAAAAAAAAAAAAAAA
UnNsdFVudEYjUHhsQFIAAAAAAAAAAAAKdmVjdG9yRGF0YWJvb2wBAAAAAFBnUHNlbnVtAAAAAFBn
UHMAAAAAUGdQQwAAAABMZWZ0VW50RiNSbHQAAAAAAAAAAAAAAABUb3AgVW50RiNSbHQAAAAAAAAA
AAAAAABTY2wgVW50RiNQcmNAWQAAAAAAADhCSU0D7QAAAAAAEABIAAAAAQACAEgAAAABAAI4QklN
BCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0D8gAAAAAACgAA////////AAA4QklNBA0AAAAAAAQA
AAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAA
AAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIA
AAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////
////////////////A+gAAAAA/////////////////////////////wPoAAAAAP//////////////
//////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAA
AAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANtAAAABgAAAAAAAAAAAAAA
YwAAAPYAAAAcAGwAbwBnAG8AIAAmACAAYQBkAGQAcgBlAHMAcwAgAHcAaQB0AGgAIABsAG8AZwBv
ACAAQgAmAFcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAPYAAABjAAAAAAAAAAAA
AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNP
YmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAA
QnRvbWxvbmcAAABjAAAAAFJnaHRsb25nAAAA9gAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAA
AAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3Jp
Z2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApF
U2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3Ag
bG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAYwAAAABSZ2h0bG9uZwAAAPYA
AAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZh
bHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAA
AQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVy
dEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVu
dW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAAps
ZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRs
b25nAAAAAAA4QklNBCgAAAAAAAwAAAACP/AAAAAAAAA4QklNBBQAAAAAAAQAAAACOEJJTQQMAAAA
ABufAAAAAQAAAKAAAABAAAAB4AAAeAAAABuDABgAAf/Y/+IMWElDQ19QUk9GSUxFAAEBAAAMSExp
bm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAA
AAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQA
AAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAA
AsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVj
aAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5
cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0Ig
SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFla
IAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABja
WFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA
AAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBj
b2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBj
b2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVy
ZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVu
Y2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAA
AFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYA
AAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3
AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcB
DQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHR
AdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC
4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQt
BDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF
1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/
B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsK
EQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgyn
DMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YP
sw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMD
EyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW
1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrs
GxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kf
lB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8
JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAq
Aio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/H
L/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02
NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzj
PSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANE
R0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi
TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZU
QlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzW
XSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedm
PWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/R
cCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6
RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITj
hUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQ
bpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wc
nImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKo
xKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WK
tgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvD
WMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE8
0b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/g
NuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A
78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/
bf///+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwM
DxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAU
Dg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAAR
CABAAKADASIAAhEBAxEB/90ABAAK/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQAB
BQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWET
InGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N1
4/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcH
BgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJE
k1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH
/9oADAMBAAIRAxEAPwDdx+sfW7Od17JxM3Eqr6Ll5FNWLdjktsZV+kZ6uUzIrdX7Pb/Nq3lfWzOt
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
xhBBaIdq4Rz8U8DwSU8zkfXemlmHaMUlmZZksFb3+ncfsuTX07Zj4ttbbMjMufd6v2L9Db+jt/wq
v5H1jx6+r4vTafReMiZvsvbW0lr34z8fDbD/ALbl03VP+1Y7PT+zf8ZZ6a1yASCRqOEtrdNBoZHk
Skp5fG+vNN+PZeMQu2W4zBVVY2ywNynvqbXdWxv6HqeN6L7Mrpn6R9X6H9P+kW30XqQ6r0yjPFZo
9YOmouDi0tc6tzC9vtd7mK6GtEwAJMn4p0lKSSSSUpJJJJSkkkklKSSSSU//0sv6yhv7U+vEifbi
ccwcnCmE/XqPU6Nl52bZ0jPyj6LmX9J1yWW2Pa23K6m9hZ+rW176bfUrt9TNuo/mf5xdd1f/ABfd
Tu+seR1vpXUKqG5gjIx8in1mPa5rK7se2tx9K/Gt9Jlmyyv2P+gquV/i461kY1mLVf0vBrv2tvdi
YZre9jXNtFL7PUc/0vVZXbsb/Oemz1ElPP8A1x/8Rn1P/wCId/56qVr/ABRPxB1rOY6t5zDiucy0
OhgpD6RZXs/0zrfTe2xdN9ZP8X1nVOjdI6ZhZjaf2Qz0w+5hdvBY2rf7HDa79Gq31U+oPWfq11K3
Pbk42WbaHY/pkWVgbnV27949b/RfQSS1v8Ur+n2ZnXX9Mqsx8Jww/RqudvsHsv377B+9ZucvRlyX
1C+peT9VW5oyMpmUcv0Q0VsLdopFg925zt2/1l1qSFJJJJKUkkkkpSSSSSlJJJJKUkkkkpSSSSSl
JJJJKf/ZADhCSU0EIQAAAAAAVQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8A
cAAAABMAQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIABDAFMANQAAAAEAOEJJTQQGAAAA
AAAHAAgAAQABAQD/4T/1aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVn
aW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5z
Ong9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4x
MzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3Jp
cHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMv
MS4xLyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBN
TT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9u
cy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnN0RXZ0PSJodHRw
Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOmlsbHVz
dHJhdG9yPSJodHRwOi8vbnMuYWRvYmUuY29tL2lsbHVzdHJhdG9yLzEuMC8iIHhtbG5zOnhtcFRQ
Zz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3QvcGcvIiB4bWxuczpzdERpbT0iaHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIiB4bWxuczp4bXBHPSJodHRw
Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvZy8iIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNv
bS9wZGYvMS4zLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hv
cC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhtcDpNZXRhZGF0YURhdGU9IjIwMTEtMTAt
MjdUMTY6NTM6MzQrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDExLTEwLTI3VDE2OjUzOjM0KzAx
OjAwIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxMS0xMC0yN1QxNTowMTo1OSswMTowMCIgeG1wOkNyZWF0
b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0i
eG1wLmlpZDpGQzM3OEFBRUUyMjA2ODExOTJCMEIxOTg1MDVBNDNGNyIgeG1wTU06RG9jdW1lbnRJ
RD0ieG1wLmRpZDpGQTM3OEFBRUUyMjA2ODExOTJCMEIxOTg1MDVBNDNGNyIgeG1wTU06T3JpZ2lu
YWxEb2N1bWVudElEPSJ1dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQzMTUwOEM4IiB4bXBN
TTpSZW5kaXRpb25DbGFzcz0icHJvb2Y6cGRmIiBpbGx1c3RyYXRvcjpUeXBlPSJEb2N1bWVudCIg
aWxsdXN0cmF0b3I6U3RhcnR1cFByb2ZpbGU9IlByaW50IiB4bXBUUGc6SGFzVmlzaWJsZU92ZXJw
cmludD0iRmFsc2UiIHhtcFRQZzpIYXNWaXNpYmxlVHJhbnNwYXJlbmN5PSJGYWxzZSIgeG1wVFBn
Ok5QYWdlcz0iMSIgcGRmOlByb2R1Y2VyPSJBZG9iZSBQREYgbGlicmFyeSA5LjkwIiBwaG90b3No
b3A6TGVnYWN5SVBUQ0RpZ2VzdD0iRUY0NEZBRTZGNDVCRjVGMjY5NUE4NUJGQTE2RUFGMEYiIHBo
b3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2
LTIuMSI+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+
bG9nbyAmYW1wOyBhZGRyZXNzIHdpdGggbG9nbyBCJmFtcDtXPC9yZGY6bGk+IDwvcmRmOkFsdD4g
PC9kYzp0aXRsZT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6
RkEzNzhBQUVFMjIwNjgxMTkyQjBCMTk4NTA1QTQzRjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5k
aWQ6RkEzNzhBQUVFMjIwNjgxMTkyQjBCMTk4NTA1QTQzRjciIHN0UmVmOm9yaWdpbmFsRG9jdW1l
bnRJRD0idXVpZDo1RDIwODkyNDkzQkZEQjExOTE0QTg1OTBEMzE1MDhDOCIgc3RSZWY6cmVuZGl0
aW9uQ2xhc3M9InByb29mOnBkZiIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkg
c3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzI0MEZCRjM3
MjA2ODExODA4M0Y3MTNGQzgwODNGOCIgc3RFdnQ6d2hlbj0iMjAxMS0xMC0xMVQxMDozODoyMSsw
MTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgSWxsdXN0cmF0b3IgQ1M1IiBzdEV2dDpj
aGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJ
RD0ieG1wLmlpZDpBRDI0MEZCRjM3MjA2ODExODA4M0Y3MTNGQzgwODNGOCIgc3RFdnQ6d2hlbj0i
MjAxMS0xMC0xMVQxMDozODo1MiswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgSWxs
dXN0cmF0b3IgQ1M1IiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJz
YXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozOTk4QjNDOTgyMjA2ODExODA4M0E3RkNF
MjAzMUU1RCIgc3RFdnQ6d2hlbj0iMjAxMS0xMC0yN1QxNTowMTo1OSswMTowMCIgc3RFdnQ6c29m
dHdhcmVBZ2VudD0iQWRvYmUgSWxsdXN0cmF0b3IgQ1M1IiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxy
ZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBw
bGljYXRpb24vcGRmIHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AiLz4gPHJkZjps
aSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkZBMzc4QUFF
RTIyMDY4MTE5MkIwQjE5ODUwNUE0M0Y3IiBzdEV2dDp3aGVuPSIyMDExLTEwLTI3VDE1OjE5OjQx
KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9z
aCIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBz
dEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3BkZiB0byBpbWFnZS9qcGVnIi8+IDxy
ZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQg
ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL2pwZWciLz4gPHJk
ZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkZCMzc4
QUFFRTIyMDY4MTE5MkIwQjE5ODUwNUE0M0Y3IiBzdEV2dDp3aGVuPSIyMDExLTEwLTI3VDE1OjE5
OjQxKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2lu
dG9zaCIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0
RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6RkMzNzhBQUVFMjIwNjgxMTkyQjBCMTk4NTA1QTQzRjci
IHN0RXZ0OndoZW49IjIwMTEtMTAtMjdUMTY6NTM6MzQrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdl
bnQ9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwv
cmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wVFBnOk1heFBhZ2VTaXplIHN0RGltOnc9Ijg2
LjY5MTAwNSIgc3REaW06aD0iMzUuMDcxOTMzIiBzdERpbTp1bml0PSJNaWxsaW1ldGVycyIvPiA8
eG1wVFBnOlBsYXRlTmFtZXM+IDxyZGY6U2VxPiA8cmRmOmxpPkN5YW48L3JkZjpsaT4gPHJkZjps
aT5NYWdlbnRhPC9yZGY6bGk+IDxyZGY6bGk+WWVsbG93PC9yZGY6bGk+IDxyZGY6bGk+QmxhY2s8
L3JkZjpsaT4gPC9yZGY6U2VxPiA8L3htcFRQZzpQbGF0ZU5hbWVzPiA8eG1wVFBnOlN3YXRjaEdy
b3Vwcz4gPHJkZjpTZXE+IDxyZGY6bGk+IDxyZGY6RGVzY3JpcHRpb24geG1wRzpncm91cE5hbWU9
IkRlZmF1bHQgU3dhdGNoIEdyb3VwIiB4bXBHOmdyb3VwVHlwZT0iMCI+IDx4bXBHOkNvbG9yYW50
cz4gPHJkZjpTZXE+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJXaGl0ZSIgeG1wRzptb2RlPSJD
TVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50
YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAi
Lz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkJsYWNrIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6
dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIwLjAwMDAw
MCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIxMDAuMDAwMDAwIi8+IDxyZGY6
bGkgeG1wRzpzd2F0Y2hOYW1lPSJDTVlLIFJlZCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9
IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMTAwLjAwMDAwMCIg
eG1wRzp5ZWxsb3c9IjEwMC4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6bGkg
eG1wRzpzd2F0Y2hOYW1lPSJDTVlLIFllbGxvdyIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9
IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHht
cEc6eWVsbG93PSIxMDAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHht
cEc6c3dhdGNoTmFtZT0iQ01ZSyBHcmVlbiIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBS
T0NFU1MiIHhtcEc6Y3lhbj0iMTAwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIwLjAwMDAwMCIgeG1w
Rzp5ZWxsb3c9IjEwMC4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6bGkgeG1w
Rzpzd2F0Y2hOYW1lPSJDTVlLIEN5YW4iIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9D
RVNTIiB4bXBHOmN5YW49IjEwMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6
eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3
YXRjaE5hbWU9IkNNWUsgQmx1ZSIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1Mi
IHhtcEc6Y3lhbj0iMTAwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIxMDAuMDAwMDAwIiB4bXBHOnll
bGxvdz0iMC4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0
Y2hOYW1lPSJDTVlLIE1hZ2VudGEiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNT
IiB4bXBHOmN5YW49IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVs
bG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRj
aE5hbWU9IkM9MTUgTT0xMDAgWT05MCBLPTEwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0i
UFJPQ0VTUyIgeG1wRzpjeWFuPSIxNC45OTk5OTgiIHhtcEc6bWFnZW50YT0iMTAwLjAwMDAwMCIg
eG1wRzp5ZWxsb3c9IjkwLjAwMDAwMCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkg
eG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT05MCBZPTg1IEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBH
OnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iOTAuMDAw
MDAwIiB4bXBHOnllbGxvdz0iODUuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRm
OmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09ODAgWT05NSBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIg
eG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9Ijgw
LjAwMDAwMCIgeG1wRzp5ZWxsb3c9Ijk1LjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4g
PHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTUwIFk9MTAwIEs9MCIgeG1wRzptb2RlPSJD
TVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50
YT0iNTAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAw
MDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTM1IFk9ODUgSz0wIiB4bXBHOm1v
ZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSIzNS4wMDAwMDQiIHhtcEc6eWVsbG93PSI4NS4wMDAwMDAiIHhtcEc6YmxhY2s9IjAu
MDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTUgTT0wIFk9OTAgSz0wIiB4bXBH
Om1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSI1LjAwMDAwMSIgeG1w
RzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjkwLjAwMDAwMCIgeG1wRzpibGFjaz0i
MC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MjAgTT0wIFk9MTAwIEs9MCIg
eG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMTkuOTk5OTk4
IiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAwMDAwMCIgeG1wRzpi
bGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NTAgTT0wIFk9MTAw
IEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iNTAu
MDAwMDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAwMDAwMCIg
eG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NzUgTT0w
IFk9MTAwIEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lh
bj0iNzUuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMTAwLjAw
MDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9
ODUgTT0xMCBZPTEwMCBLPTEwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIg
eG1wRzpjeWFuPSI4NS4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMTAuMDAwMDAyIiB4bXBHOnllbGxv
dz0iMTAwLjAwMDAwMCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkgeG1wRzpzd2F0
Y2hOYW1lPSJDPTkwIE09MzAgWT05NSBLPTMwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0i
UFJPQ0VTUyIgeG1wRzpjeWFuPSI5MC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMzAuMDAwMDAyIiB4
bXBHOnllbGxvdz0iOTUuMDAwMDAwIiB4bXBHOmJsYWNrPSIzMC4wMDAwMDIiLz4gPHJkZjpsaSB4
bXBHOnN3YXRjaE5hbWU9IkM9NzUgTT0wIFk9NzUgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6
dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSI3NS4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAw
MDAiIHhtcEc6eWVsbG93PSI3NS4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+IDxyZGY6
bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTgwIE09MTAgWT00NSBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIg
eG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjgwLjAwMDAwMCIgeG1wRzptYWdlbnRhPSIx
MC4wMDAwMDIiIHhtcEc6eWVsbG93PSI0NS4wMDAwMDAiIHhtcEc6YmxhY2s9IjAuMDAwMDAwIi8+
IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTcwIE09MTUgWT0wIEs9MCIgeG1wRzptb2RlPSJD
TVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iNzAuMDAwMDAwIiB4bXBHOm1hZ2Vu
dGE9IjE0Ljk5OTk5OCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAw
MCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz04NSBNPTUwIFk9MCBLPTAiIHhtcEc6bW9k
ZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49Ijg1LjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSI1MC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4w
MDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MTAwIE09OTUgWT01IEs9MCIgeG1w
Rzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMTAwLjAwMDAwMCIg
eG1wRzptYWdlbnRhPSI5NS4wMDAwMDAiIHhtcEc6eWVsbG93PSI1LjAwMDAwMSIgeG1wRzpibGFj
az0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MTAwIE09MTAwIFk9MjUg
Sz0yNSIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMTAw
LjAwMDAwMCIgeG1wRzptYWdlbnRhPSIxMDAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMjUuMDAwMDAw
IiB4bXBHOmJsYWNrPSIyNS4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NzUg
TT0xMDAgWT0wIEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6
Y3lhbj0iNzUuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIw
LjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9
IkM9NTAgTT0xMDAgWT0wIEs9MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1Mi
IHhtcEc6Y3lhbj0iNTAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVs
bG93PSIwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRj
aE5hbWU9IkM9MzUgTT0xMDAgWT0zNSBLPTEwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0i
UFJPQ0VTUyIgeG1wRzpjeWFuPSIzNS4wMDAwMDQiIHhtcEc6bWFnZW50YT0iMTAwLjAwMDAwMCIg
eG1wRzp5ZWxsb3c9IjM1LjAwMDAwNCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkg
eG1wRzpzd2F0Y2hOYW1lPSJDPTEwIE09MTAwIFk9NTAgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHht
cEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIxMC4wMDAwMDIiIHhtcEc6bWFnZW50YT0iMTAw
LjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjUwLjAwMDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4g
PHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTk1IFk9MjAgSz0wIiB4bXBHOm1vZGU9IkNN
WUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzptYWdlbnRh
PSI5NS4wMDAwMDAiIHhtcEc6eWVsbG93PSIxOS45OTk5OTgiIHhtcEc6YmxhY2s9IjAuMDAwMDAw
Ii8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTI1IE09MjUgWT00MCBLPTAiIHhtcEc6bW9k
ZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjI1LjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSIyNS4wMDAwMDAiIHhtcEc6eWVsbG93PSIzOS45OTk5OTYiIHhtcEc6YmxhY2s9IjAu
MDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTQwIE09NDUgWT01MCBLPTUiIHht
cEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjM5Ljk5OTk5NiIg
eG1wRzptYWdlbnRhPSI0NS4wMDAwMDAiIHhtcEc6eWVsbG93PSI1MC4wMDAwMDAiIHhtcEc6Ymxh
Y2s9IjUuMDAwMDAxIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTUwIE09NTAgWT02MCBL
PTI1IiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSI1MC4w
MDAwMDAiIHhtcEc6bWFnZW50YT0iNTAuMDAwMDAwIiB4bXBHOnllbGxvdz0iNjAuMDAwMDA0IiB4
bXBHOmJsYWNrPSIyNS4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NTUgTT02
MCBZPTY1IEs9NDAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5
YW49IjU1LjAwMDAwMCIgeG1wRzptYWdlbnRhPSI2MC4wMDAwMDQiIHhtcEc6eWVsbG93PSI2NS4w
MDAwMDAiIHhtcEc6YmxhY2s9IjM5Ljk5OTk5NiIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0i
Qz0yNSBNPTQwIFk9NjUgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIg
eG1wRzpjeWFuPSIyNS4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMzkuOTk5OTk2IiB4bXBHOnllbGxv
dz0iNjUuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNo
TmFtZT0iQz0zMCBNPTUwIFk9NzUgSz0xMCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBS
T0NFU1MiIHhtcEc6Y3lhbj0iMzAuMDAwMDAyIiB4bXBHOm1hZ2VudGE9IjUwLjAwMDAwMCIgeG1w
Rzp5ZWxsb3c9Ijc1LjAwMDAwMCIgeG1wRzpibGFjaz0iMTAuMDAwMDAyIi8+IDxyZGY6bGkgeG1w
Rzpzd2F0Y2hOYW1lPSJDPTM1IE09NjAgWT04MCBLPTI1IiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6
dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIzNS4wMDAwMDQiIHhtcEc6bWFnZW50YT0iNjAuMDAw
MDA0IiB4bXBHOnllbGxvdz0iODAuMDAwMDAwIiB4bXBHOmJsYWNrPSIyNS4wMDAwMDAiLz4gPHJk
ZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NDAgTT02NSBZPTkwIEs9MzUiIHhtcEc6bW9kZT0iQ01Z
SyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjM5Ljk5OTk5NiIgeG1wRzptYWdlbnRh
PSI2NS4wMDAwMDAiIHhtcEc6eWVsbG93PSI5MC4wMDAwMDAiIHhtcEc6YmxhY2s9IjM1LjAwMDAw
NCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz00MCBNPTcwIFk9MTAwIEs9NTAiIHhtcEc6
bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjM5Ljk5OTk5NiIgeG1w
RzptYWdlbnRhPSI3MC4wMDAwMDAiIHhtcEc6eWVsbG93PSIxMDAuMDAwMDAwIiB4bXBHOmJsYWNr
PSI1MC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9NTAgTT03MCBZPTgwIEs9
NzAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjUwLjAw
MDAwMCIgeG1wRzptYWdlbnRhPSI3MC4wMDAwMDAiIHhtcEc6eWVsbG93PSI4MC4wMDAwMDAiIHht
cEc6YmxhY2s9IjcwLjAwMDAwMCIvPiA8L3JkZjpTZXE+IDwveG1wRzpDb2xvcmFudHM+IDwvcmRm
OkRlc2NyaXB0aW9uPiA8L3JkZjpsaT4gPHJkZjpsaT4gPHJkZjpEZXNjcmlwdGlvbiB4bXBHOmdy
b3VwTmFtZT0iR3JheXMiIHhtcEc6Z3JvdXBUeXBlPSIxIj4gPHhtcEc6Q29sb3JhbnRzPiA8cmRm
OlNlcT4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAgWT0wIEs9MTAwIiB4bXBHOm1v
ZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1wRzpt
YWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIxMDAu
MDAwMDAwIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT0wIFk9MCBLPTkwIiB4bXBH
Om1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAwMCIgeG1w
RzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSI4
OS45OTk0MDUiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAgWT0wIEs9ODAiIHht
cEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAwMDAwIiB4
bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMC4wMDAwMDAiIHhtcEc6YmxhY2s9
Ijc5Ljk5ODc5NSIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09MCBZPTAgSz03MCIg
eG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4wMDAwMDAi
IHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1wRzpibGFj
az0iNjkuOTk5NzAyIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT0wIFk9MCBLPTYw
IiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIwLjAwMDAw
MCIgeG1wRzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJs
YWNrPSI1OS45OTkxMDQiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAgWT0wIEs9
NTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAw
MDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMC4wMDAwMDAiIHhtcEc6
YmxhY2s9IjUwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09MCBZPTAg
Sz00MCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lhbj0iMC4w
MDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAwMCIgeG1w
RzpibGFjaz0iMzkuOTk5NDAxIi8+IDxyZGY6bGkgeG1wRzpzd2F0Y2hOYW1lPSJDPTAgTT0wIFk9
MCBLPTMwIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIw
LjAwMDAwMCIgeG1wRzptYWdlbnRhPSIwLjAwMDAwMCIgeG1wRzp5ZWxsb3c9IjAuMDAwMDAwIiB4
bXBHOmJsYWNrPSIyOS45OTg4MDIiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTAg
WT0wIEs9MjAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49
IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjAuMDAwMDAwIiB4bXBHOnllbGxvdz0iMC4wMDAwMDAi
IHhtcEc6YmxhY2s9IjE5Ljk5OTcwMSIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09
MCBZPTAgSz0xMCIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lh
bj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAw
MCIgeG1wRzpibGFjaz0iOS45OTkxMDMiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBN
PTAgWT0wIEs9NSIgeG1wRzptb2RlPSJDTVlLIiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6Y3lh
bj0iMC4wMDAwMDAiIHhtcEc6bWFnZW50YT0iMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIwLjAwMDAw
MCIgeG1wRzpibGFjaz0iNC45OTg4MDMiLz4gPC9yZGY6U2VxPiA8L3htcEc6Q29sb3JhbnRzPiA8
L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6bGk+IDxyZGY6bGk+IDxyZGY6RGVzY3JpcHRpb24geG1w
Rzpncm91cE5hbWU9IkJyaWdodHMiIHhtcEc6Z3JvdXBUeXBlPSIxIj4gPHhtcEc6Q29sb3JhbnRz
PiA8cmRmOlNlcT4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9MCBNPTEwMCBZPTEwMCBLPTAi
IHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5YW49IjAuMDAwMDAw
IiB4bXBHOm1hZ2VudGE9IjEwMC4wMDAwMDAiIHhtcEc6eWVsbG93PSIxMDAuMDAwMDAwIiB4bXBH
OmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09NzUgWT0x
MDAgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJPQ0VTUyIgeG1wRzpjeWFuPSIw
LjAwMDAwMCIgeG1wRzptYWdlbnRhPSI3NS4wMDAwMDAiIHhtcEc6eWVsbG93PSIxMDAuMDAwMDAw
IiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iQz0wIE09
MTAgWT05NSBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOmN5
YW49IjAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjEwLjAwMDAwMiIgeG1wRzp5ZWxsb3c9Ijk1LjAw
MDAwMCIgeG1wRzpibGFjaz0iMC4wMDAwMDAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IkM9
ODUgTT0xMCBZPTEwMCBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4
bXBHOmN5YW49Ijg1LjAwMDAwMCIgeG1wRzptYWdlbnRhPSIxMC4wMDAwMDIiIHhtcEc6eWVsbG93
PSIxMDAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6c3dhdGNo
TmFtZT0iQz0xMDAgTT05MCBZPTAgSz0wIiB4bXBHOm1vZGU9IkNNWUsiIHhtcEc6dHlwZT0iUFJP
Q0VTUyIgeG1wRzpjeWFuPSIxMDAuMDAwMDAwIiB4bXBHOm1hZ2VudGE9IjkwLjAwMDAwMCIgeG1w
Rzp5ZWxsb3c9IjAuMDAwMDAwIiB4bXBHOmJsYWNrPSIwLjAwMDAwMCIvPiA8cmRmOmxpIHhtcEc6
c3dhdGNoTmFtZT0iQz02MCBNPTkwIFk9MCBLPTAiIHhtcEc6bW9kZT0iQ01ZSyIgeG1wRzp0eXBl
PSJQUk9DRVNTIiB4bXBHOmN5YW49IjYwLjAwMDAwNCIgeG1wRzptYWdlbnRhPSI5MC4wMDAwMDAi
IHhtcEc6eWVsbG93PSIwLjAwMzA5OSIgeG1wRzpibGFjaz0iMC4wMDMwOTkiLz4gPC9yZGY6U2Vx
PiA8L3htcEc6Q29sb3JhbnRzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6bGk+IDwvcmRmOlNl
cT4gPC94bXBUUGc6U3dhdGNoR3JvdXBzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8
L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/9sAQwABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMDAwMDAwMD/9sAQwEBAQEBAQEBAQEBAgIB
AgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgA
YwD2AwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC
BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn
KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY
mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5
+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB
AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD
REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip
qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR
AD8A/Z3x9/wXO/akv/29fjx+wX+y3/wTntv2kviB8FNR8VvJcwftK6B8OLvWvC/hDUtO0vVPEsln
4u8BQ6NYCO71i1X7MupXEzNMNgYAkBr7Ncqk5WufQ37In/Ba+3+Lf7WcP7B/7X37KPxI/Yb/AGqt
Y02TUfBPhXxt4m0zxx4M8e+TYXuqrZ6D4xstG8NqbrVdO026l02WK3u9Mv2tJoY737SI4JAUqdlz
Rd4nsn7bv/BUC/8A2P8A9tz9g79kK2+DFp4+tf20fGNj4UvPH0/jybw3P8O1vvHfhrwYt9beG4/C
Otx+KDGPEBuDG19YZ8oJu+bcASjeMpX2Oe+OX/BVrVP2d/8Agqf8Af8Agnp8S/gZaaZ8Of2k/D+k
3/w2/aKi+IMpa48Q65a+ItK0zwzeeA5PCEdst1P8Q/D6aOSmstIqaja3BjxJ5dAKF4OSeqP158Re
INH8JeH9d8VeIr+30rw/4a0bU/EGu6pdv5drpuj6NZT6jqd/cyHhLezsrZ5HPZVJoIPw4+FH/BZP
xj8Sv+CXH7R3/BTm5/ZktPDXhP4V+JvF1n8J/h9d/E+8uLr4seD/AAr4k8OeFD4s1PxCfh/bL4RN
1rur3lqbaKz1MRz6bKPMIYEBo4WmoXPEPgr/AMFdv+Crn7RHwr8F/G34Mf8ABFdvHHwu+IulS634
M8V2v7bHwq0qHWtLiv73THuRpmu+E9K1qw232nzJsubaGQ7dwXaykg3CCbTnqfb/AO1T/wAFGfjT
+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
oAKACgAoAKACgAoAKACgAoAKAP/Z

--_004_8694DC0939354C45B44865A2376D56BD2AD87ECBRIV10EXC02hqriv_--

--===============0666151350==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0666151350==--

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 13 18:31:10 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DHUmrq029450;
	Wed, 13 Feb 2013 18:31:06 +0100
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DHUl8C029430
 for <libssh2-devel@cool.haxx.se>; Wed, 13 Feb 2013 18:30:47 +0100
Received: (qmail 13330 invoked by uid 501); 13 Feb 2013 17:30:48 -0000
Message-ID: <20130213173048.13329.qmail@stuge.se>
Date: Wed, 13 Feb 2013 18:30:48 +0100
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Installing libssh2 on HP-UX
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <8694DC0939354C45B44865A2376D56BD2AD87ECB@RIV10EXC02.hq.river-island.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <8694DC0939354C45B44865A2376D56BD2AD87ECB@RIV10EXC02.hq.river-island.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

Wes Donze wrote:
> OK - what I have done is amend the Makefile and remove 'tests' and 'example'
> from DIST_SUBDIRS  ,  tests from SUBDIRS
..
> Is what I have done an issue do you think?

Obviously your change in of no use in the upstream libssh2 code,
because we have the tests and the examples for a reason - we want
them to work.

Please provide all relevant information about this problem. What
you've posted so far is not really useful.

Please:

1. git clone git://git.libssh2.org/libssh2.git
2. cd libssh2
3. ./buildconf
4. ./configure --any-parameters-of-yours-here
5. make

This should produce the error. Please send us a transcript of this
session along with the config.log file.

Oh - and you might want to avoid building as root, just for good
measure.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 13 23:11:06 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DMAe4C016671;
	Wed, 13 Feb 2013 23:11:01 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DMAbUY016640
 for <libssh2-devel@cool.haxx.se>; Wed, 13 Feb 2013 23:10:37 +0100
Received: (qmail 26849 invoked from network); 13 Feb 2013 22:10:37 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 13 Feb 2013 22:10:37 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Wed, 13 Feb 2013 22:10:37 -0000
X-URL: https://trac.libssh2.org/
Subject: [libssh2] #258: [PATCH] client spins on write when window full
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/258
Message-ID: <040.29277a5d8e6b7717e92cb7ee4d33f713@libssh2.stuge.se>
X-Trac-Ticket-ID: 258
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r1DMAbUY016640
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#258: [PATCH] client spins on write when window full
--------------------+--------------------
 Reporter:  ncm     |       Owner:
     Type:  defect  |      Status:  new
 Priority:  normal  |   Milestone:  1.4.3
Component:  misc    |     Version:  1.4.2
 Keywords:          |  Blocked By:
   Blocks:          |
--------------------+--------------------
 I see CPU go to 100% on writes when the receiver is slow or slow to
 deliver window adjustments.  When the window appears to be full, it
 seems a grave error to sleep on writability of a socket that is
 writable all the time.

 Suggesting this to reduce sender CPU load without reducing throughput:
 {{{
 --- a/src/channel.c
 +++ b/src/channel.c
 @@ -2012,9 +2012,17 @@ _libssh2_channel_write(LIBSSH2_CHANNEL *channel,
 int stream_id,
          if((rc < 0) && (rc != LIBSSH2_ERROR_EAGAIN))
              return rc;

 -        if(channel->local.window_size <= 0)
 -            /* there's no room for data so we stop */
 +        if(channel->local.window_size <= 0) {
 +            /* there's no room for data so we stop. */
 +
 +            /* Waiting on the socket to be writable would be wrong
 +             * because we would be back here immediately, but a readable
 +             * socket might herald an incoming window adjustment.
 +             */
 +            session->socket_block_directions =
 LIBSSH2_SESSION_BLOCK_INBOUND;
 +
              return (rc==LIBSSH2_ERROR_EAGAIN?rc:0);
 +        }

          channel->write_bufwrite = buflen;
 }}}

-- 
Ticket URL: <https://trac.libssh2.org/ticket/258>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 13 23:18:03 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DMI0iF020292;
	Wed, 13 Feb 2013 23:18:02 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1DMHxaY020286
 for <libssh2-devel@cool.haxx.se>; Wed, 13 Feb 2013 23:17:59 +0100
Received: (qmail 27571 invoked from network); 13 Feb 2013 22:17:59 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 13 Feb 2013 22:17:59 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Wed, 13 Feb 2013 22:17:59 -0000
X-URL: https://trac.libssh2.org/
Subject: Re: [libssh2] #255: libssh2_channel_write_ex returns zero
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/255#comment:1
Message-ID: <055.ccef2e6f17900ced320c50699a7b7992@libssh2.stuge.se>
References: <040.5aafc3bcbc4ccf76c260e9c86bdfe77f@libssh2.stuge.se>
X-Trac-Ticket-ID: 255
In-Reply-To: <040.5aafc3bcbc4ccf76c260e9c86bdfe77f@libssh2.stuge.se>
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r1DMHxaY020286
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#255: libssh2_channel_write_ex returns zero
---------------------+-------------------
  Reporter:  ncm     |      Owner:
      Type:  defect  |     Status:  new
  Priority:  normal  |  Milestone:  1.4.3
 Component:  misc    |    Version:  1.4.2
Resolution:          |   Keywords:
Blocked By:          |     Blocks:
---------------------+-------------------

Comment (by ncm):

 RE the final paragraph above, see #258

-- 
Ticket URL: <https://trac.libssh2.org/ticket/255#comment:1>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb 14 11:43:03 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1EAgWYe032383;
	Thu, 14 Feb 2013 11:42:55 +0100
Received: from mail1.bemta5.messagelabs.com (mail1.bemta5.messagelabs.com
 [195.245.231.130])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1EAgUNe032373
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 14 Feb 2013 11:42:30 +0100
Received: from [85.158.136.83:6508] by server-14.bemta-5.messagelabs.com id
 F1/BC-06967-69FBC115; Thu, 14 Feb 2013 10:42:30 +0000
X-Env-Sender: WES.DONZE@river-island.com
X-Msg-Ref: server-2.tower-36.messagelabs.com!1360838550!15762179!1
X-Originating-IP: [217.64.228.66]
X-StarScan-Received: 
X-StarScan-Version: 6.7; banners=river-island.com,-,-
X-VirusChecked: Checked
Received: (qmail 5284 invoked from network); 14 Feb 2013 10:42:30 -0000
Received: from unknown (HELO RIV10EXC01.hq.river-island.com) (217.64.228.66)
 by server-2.tower-36.messagelabs.com with AES128-SHA encrypted SMTP;
 14 Feb 2013 10:42:30 -0000
Received: from RIV10EXC02.hq.river-island.com ([::1]) by
 RIV10EXC01.hq.river-island.com ([::1]) with mapi id 14.01.0355.002; Thu, 14
 Feb 2013 10:42:30 +0000
From: Wes Donze <WES.DONZE@river-island.com>
To: "libssh2-devel@cool.haxx.se" <libssh2-devel@cool.haxx.se>
Subject: RE: Installing libssh2 on HP-UX
Thread-Topic: Installing libssh2 on HP-UX
Thread-Index: AQHOChIPoHJpsztTR06SyGRFf1CcSph5KuCQ
Date: Thu, 14 Feb 2013 10:42:29 +0000
Message-ID: <8694DC0939354C45B44865A2376D56BD2AD88025@RIV10EXC02.hq.river-island.com>
References: <8694DC0939354C45B44865A2376D56BD2AD87ECB@RIV10EXC02.hq.river-island.com>
 <20130213173048.13329.qmail@stuge.se>
In-Reply-To: <20130213173048.13329.qmail@stuge.se>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.150.17.49]
MIME-Version: 1.0
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 r1EAgUNe032373
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

Thanks for your response - I think I've drawn the short straw here on this - got asked to install this
The only output I get from the make is what I posted originally -
It now looks like I need to install 'git' to get any diagnostics as I do not have that on my hp-ux system.

I will try another user other than root - appreciate the suggestion - although there is nothing in the installation notes referring to this

Kind regards
Wes


Wes Donze
Technical Support
T: 02089914765
E: wes.donze@river-island.com




-----Original Message-----
From: libssh2-devel [mailto:libssh2-devel-bounces@cool.haxx.se] On Behalf Of Peter Stuge
Sent: 13 February 2013 17:31
To: libssh2-devel@cool.haxx.se
Subject: Re: Installing libssh2 on HP-UX

Wes Donze wrote:
> OK - what I have done is amend the Makefile and remove 'tests' and 'example'
> from DIST_SUBDIRS  ,  tests from SUBDIRS
..
> Is what I have done an issue do you think?

Obviously your change in of no use in the upstream libssh2 code,
because we have the tests and the examples for a reason - we want
them to work.

Please provide all relevant information about this problem. What
you've posted so far is not really useful.

Please:

1. git clone git://git.libssh2.org/libssh2.git
2. cd libssh2
3. ./buildconf
4. ./configure --any-parameters-of-yours-here
5. make

This should produce the error. Please send us a transcript of this
session along with the config.log file.

Oh - and you might want to avoid building as root, just for good
measure.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb 14 13:19:12 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1ECIqqP020637;
	Thu, 14 Feb 2013 13:19:07 +0100
Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.10])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1ECIpPH020634
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 14 Feb 2013 13:18:51 +0100
Received: from frontend1.mail.m-online.net (frontend1.mail.intern.m-online.net
 [192.168.8.180])
 by mail-out.m-online.net (Postfix) with ESMTP id 3Z6GqH4Fx9z3hhZW
 for <libssh2-devel@cool.haxx.se>; Thu, 14 Feb 2013 13:18:51 +0100 (CET)
Received: from localhost (dynscan1.mnet-online.de [192.168.6.68])
 by mail.m-online.net (Postfix) with ESMTP id 3Z6GqH242fzbbv7
 for <libssh2-devel@cool.haxx.se>; Thu, 14 Feb 2013 13:18:51 +0100 (CET)
X-Virus-Scanned: amavisd-new at mnet-online.de
Received: from mail.mnet-online.de ([192.168.8.180])
 by localhost (dynscan1.mail.m-online.net [192.168.6.68]) (amavisd-new,
 port 10024)
 with ESMTP id 6-qRe5lU7DXK for <libssh2-devel@cool.haxx.se>;
 Thu, 14 Feb 2013 13:18:47 +0100 (CET)
X-Auth-Info: hD9g4IoVCQhG2z67P1YMnCUoFAEYuTUriRle/B44do0=
Received: from colibri.localdomain (ppp-93-104-32-43.dynamic.mnet-online.de
 [93.104.32.43])
 (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mail.mnet-online.de (Postfix) with ESMTPSA
 for <libssh2-devel@cool.haxx.se>; Thu, 14 Feb 2013 13:18:46 +0100 (CET)
Received: by colibri.localdomain (Postfix, from userid 501)
 id DEE677B128; Thu, 14 Feb 2013 13:18:43 +0100 (CET)
Date: Thu, 14 Feb 2013 13:18:43 +0100
From: Dan Fandrich <dan@coneharvesters.com>
To: libssh2-devel@cool.haxx.se
Subject: Re: Installing libssh2 on HP-UX
Message-ID: <20130214121843.GA28659@coneharvesters.com>
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <8694DC0939354C45B44865A2376D56BD2AD87ECB@RIV10EXC02.hq.river-island.com>
 <20130213173048.13329.qmail@stuge.se>
 <8694DC0939354C45B44865A2376D56BD2AD88025@RIV10EXC02.hq.river-island.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <8694DC0939354C45B44865A2376D56BD2AD88025@RIV10EXC02.hq.river-island.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

On Thu, Feb 14, 2013 at 10:42:29AM +0000, Wes Donze wrote:
> Thanks for your response - I think I've drawn the short straw here on this - got asked to install this
> The only output I get from the make is what I posted originally -
> It now looks like I need to install 'git' to get any diagnostics as I do not have that on my hp-ux system.

You can use a daily snapshot tarball instead, from
http://www.libssh2.org/snapshots/  You don't need git to get diagnostics, just to
get the absolute latest source code. The configure diagnostics are automatically
logged to config.log, and the build logs are shown by default to stdout.

> I will try another user other than root - appreciate the suggestion - although there is nothing in the installation notes referring to this

This is just basic security practise. You don't want arbitrary source code that
you run to have full access to the system (although, you really have to have
some trust in it if you're going to run it later), nor do you want to mess up
the installation with an errant install or configuration change without
checking what the code tries to do first.

>>> Dan
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb 14 19:04:51 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1EI4CeC022958;
	Thu, 14 Feb 2013 19:04:44 +0100
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1EI4BRw022950
 for <libssh2-devel@cool.haxx.se>; Thu, 14 Feb 2013 19:04:11 +0100
Received: (qmail 8913 invoked by uid 501); 14 Feb 2013 18:04:11 -0000
Message-ID: <20130214180411.8912.qmail@stuge.se>
Date: Thu, 14 Feb 2013 19:04:11 +0100
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Installing libssh2 on HP-UX
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <8694DC0939354C45B44865A2376D56BD2AD87ECB@RIV10EXC02.hq.river-island.com>
 <20130213173048.13329.qmail@stuge.se>
 <8694DC0939354C45B44865A2376D56BD2AD88025@RIV10EXC02.hq.river-island.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <8694DC0939354C45B44865A2376D56BD2AD88025@RIV10EXC02.hq.river-island.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

Hi Wes,

Wes Donze wrote:
> Peter Stuge wrote:
> > Please:
> > 
> > 1. git clone git://git.libssh2.org/libssh2.git
> > 2. cd libssh2
> > 3. ./buildconf
> > 4. ./configure --any-parameters-of-yours-here
> > 5. make
> > 
> > This should produce the error. Please send us a transcript of this
> > session along with the config.log file.
> 
> It now looks like I need to install 'git' to get any diagnostics as
> I do not have that on my hp-ux system.

You can perform the first three steps on any system with the
appropriate tools. I recommend using a Linux system with a rich set
of development tools. On debian or Ubuntu I think you might get them
all by installing the meta-package build-essential.  An old
commercial UNIX is not useful for development, so make sure to use a
modern environment where all the useful tools are readily available.


Remember to send a complete transcript of the commands that you run
on the HP-UX system, starting with the command from step 4. In case
the email with full transcript and the config.log file is reject by
the mailing list because of size then please create a ticket on
http://trac.libssh2.org/


Thanks for helping make libssh2 better

//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Feb 15 15:30:50 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1FEUL4T021370;
	Fri, 15 Feb 2013 15:30:39 +0100
Received: from toroondcbmts07-srv.bellnexxia.net
 (toroondcbmts07-srv.bellnexxia.net [207.236.237.41])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1FEUIeR021341
 for <libssh2-devel@cool.haxx.se>; Fri, 15 Feb 2013 15:30:19 +0100
Received: from toip54-bus.srvr.bell.ca ([67.69.240.140])
 by toroondcbmts07-srv.bellnexxia.net
 (InterMail vM.8.00.01.00 201-2244-105-20090324) with ESMTP id
 <20130215143013.HFEB15122.toroondcbmts07-srv.bellnexxia.net@toip54-bus.srvr.bell.ca>
 for <libssh2-devel@cool.haxx.se>; Fri, 15 Feb 2013 09:30:13 -0500
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: Av0EALFAHlFGMf2F/2dsb2JhbABEwGoWc4JNaREjDCMwASaIDgScKpJijiGNaoFggygDiGaTVYpCgyWBTQ
X-IronPort-AV: E=Sophos;i="4.84,674,1355115600"; 
 d="scan'208,217";a="320057857"
Received: from unknown (HELO DAVE-DELL.knudsenengineering.com)
 ([70.49.253.133])
 by toip54-bus.srvr.bell.ca with ESMTP; 15 Feb 2013 09:30:07 -0500
Message-Id: <6.2.5.6.2.20130214093823.039627c0@knudsenengineering.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Fri, 15 Feb 2013 09:30:04 -0500
To: libssh2-devel@cool.haxx.se
From: Dave Colter <dave@knudsenengineering.com>
Subject: SCP failing with "failed to send file"
Mime-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1947380983=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

--===============1947380983==
Content-Type: multipart/alternative;
	boundary="=====================_2596605==.ALT"

--=====================_2596605==.ALT
Content-Type: text/plain; charset="us-ascii"; format=flowed

I'm writing a Windows C++ utility to update files on a remote 
terminal, a Debian box. The steps of the process are:

1. Establish a Telnet connection with the remote
2. Send a ps -f command to get a list of running procs
3. Kill the process we want to update
4. Start SSH on the remote
5. Establish an SSH connection with the remote
6. SCP the new files to the remote

Everything works smoothly up to step 6, where libssh2_scp_send() 
fails. libssh2_session_last_error() returns "failed to send file". 
Tracing into the scp_send() function, the _libssh2_channel_write() 
function succeeds. A subsequent call to _libssh2_channel_read() 
returns one byte: 0x01. Another call to _libssh2_channel_read() 
returns an error message: "scp: <filepath>: No space left on 
device\n". I don't believe space is the problem (the file I'm 
attempting to upload is 19,821 bytes):

/ # df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/ram0                 1507      1180       327  78% /
none                     63728         0     63728   0% /dev
none                     63728         0     63728   0% /dev/shm
/dev/mtdblock3          515584    461456     54128  90% /mnt/root

Trying to scp the files manually using PuTTY, I run into a different 
problem. Using a Telnet window, I do steps 1-4. Then I open an SSH 
window, logon and attempt the scp. Here's the output:

root@M320:~# scp new_file@192.168.2.177:/sbin
Could not create directory '/root/.ssh'.
The authenticity of host '192.168.2.177 (192.168.2.177)' can't be established.
RSA key fingerprint is 0b:1e:2f:0b:13:e5:d9:2e:cc:27:f0:73:7b:2a:50:20.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/root/.ssh/known_hosts).
root@192.168.2.177's password:
new_file: No such file or directory
root@M320:~#

In the end, it can't find the file I want to upload (I'd like to know 
why, but that's a secondary problem). Does any of the preceding 
output give some clue as to why my program is not working? Here is a 
piece of my program code:

{
     const char* pchFingerprint;
     char* pchAuthList;
     switch(m_nUpgradeStage)
     {
         case RU_SSH_LOGON:
             if (libssh2_session_handshake(m_pSSHSocket->m_pSession, 
m_pSSHSocket->m_hSocket))
             {
                 m_pProgressPg->m_wndProgressList.AddString(_T("Failed 
to establish SSH session."));
                 return;
             }

             pchFingerprint = 
libssh2_hostkey_hash(m_pSSHSocket->m_pSession, LIBSSH2_HOSTKEY_HASH_SHA1);
             pchAuthList = 
libssh2_userauth_list(m_pSSHSocket->m_pSession, "root", 8);

             if(libssh2_userauth_password(m_pSSHSocket->m_pSession, 
"root", "password"))
             {
                 m_pProgressPg->m_wndProgressList.AddString(_T("Failed 
to establish SSH session."));
                 return;
             }
             else
             {
                 m_pProgressPg->m_wndProgressList.AddString(_T("Successfully 
logged in to remote via SSH."));
                 m_nUpgradeStage = RU_SSH_COPY_FILES;
             }

             struct _stat64i32 fileInfo;
             const char* pchLocalFileName = "..\\debug\\files\\new_file";
             ::_stat(pchLocalFileName, &fileInfo);

             if(m_bReadyToSendSSH)
             {
                 m_pProgressPg->m_wndProgressList.AddString(_T("Preparing 
to copy files."));
                 m_pSSHSocket->m_pChannel = 
libssh2_scp_send(m_pSSHSocket->m_pSession, pchLocalFileName, 
fileInfo.st_mode & 0777, (unsigned long)   fileInfo.st_size);
                 if(!m_pSSHSocket->m_pChannel)
                 {
                     char* pchErrMsg;
                     int nErrLen;
                     int nErr = 
libssh2_session_last_error(m_pSSHSocket->m_pSession, &pchErrMsg, &nErrLen, 0);
                 }
             }

             break;
     }
}

Thanks in advance for any and all feedback!

Dave.

--=====================_2596605==.ALT
Content-Type: text/html; charset="us-ascii"

<html>
<body>
<font face="Consolas">I'm writing a Windows C++ utility to update files
on a remote terminal, a Debian box. The steps of the process
are:<br><br>
1. Establish a Telnet connection with the remote<br>
2. Send a ps -f command to get a list of running procs<br>
3. Kill the process we want to update<br>
4. Start SSH on the remote<br>
5. Establish an SSH connection with the remote<br>
6. SCP the new files to the remote<br><br>
Everything works smoothly up to step 6, where libssh2_scp_send() fails.
libssh2_session_last_error() returns &quot;failed to send file&quot;.
Tracing into the scp_send() function, the _libssh2_channel_write()
function succeeds. A subsequent call to _libssh2_channel_read() returns
one byte: 0x01. Another call to _libssh2_channel_read() returns an error
message: &quot;scp: &lt;filepath&gt;: No space left on device\n&quot;. I
don't believe space is the problem (the file I'm attempting to upload is
19,821 bytes):<br><br>
/ # df<br>
Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1k-blocks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Used Available Use% Mounted
on<br>
/dev/ram0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1507&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1180&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 327&nbsp; 78% /<br>
none&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
63728&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0&nbsp;&nbsp;&nbsp;&nbsp; 63728&nbsp;&nbsp; 0% /dev<br>
none&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
63728&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0&nbsp;&nbsp;&nbsp;&nbsp; 63728&nbsp;&nbsp; 0% /dev/shm<br>
/dev/mtdblock3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
515584&nbsp;&nbsp;&nbsp; 461456&nbsp;&nbsp;&nbsp;&nbsp; 54128&nbsp; 90%
/mnt/root<br><br>
Trying to scp the files manually using PuTTY, I run into a different
problem. Using a Telnet window, I do steps 1-4. Then I open an SSH
window, logon and attempt the scp. Here's the output:<br><br>
root@M320:~# scp new_file@192.168.2.177:/sbin<br>
Could not create directory '/root/.ssh'.<br>
The authenticity of host '192.168.2.177 (192.168.2.177)' can't be
established.<br>
RSA key fingerprint is
0b:1e:2f:0b:13:e5:d9:2e:cc:27:f0:73:7b:2a:50:20.<br>
Are you sure you want to continue connecting (yes/no)? yes<br>
Failed to add the host to the list of known hosts
(/root/.ssh/known_hosts).<br>
root@192.168.2.177's password:<br>
new_file: No such file or directory<br>
root@M320:~#<br><br>
In the end, it can't find the file I want to upload (I'd like to know
why, but that's a secondary problem). Does any of the preceding output
give some clue as to why my program is not working? Here is a piece of my
program code:<br><br>
</font><font face="Consolas" size=2>{<br>
</font><font face="Consolas" size=2 color="#0000FF">&nbsp;&nbsp;&nbsp;
const</font><font face="Consolas" size=2>
</font><font face="Consolas" size=2 color="#0000FF">char</font>
<font face="Consolas" size=2>* pchFingerprint;<br>
</font><font face="Consolas" size=2 color="#0000FF">&nbsp;&nbsp;&nbsp;
char</font><font face="Consolas" size=2>* pchAuthList;<br>
</font><font face="Consolas" size=2 color="#0000FF">&nbsp;&nbsp;&nbsp;
switch</font><font face="Consolas" size=2>(m_nUpgradeStage)<br>
&nbsp;&nbsp;&nbsp; {<br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
case</font><font face="Consolas" size=2>
</font><font face="Consolas" size=2 color="#2F4F4F">RU_SSH_LOGON</font>
<font face="Consolas" size=2>:<br>
</font><font face="Consolas" size=2 color="#008000">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font><font face="Consolas" size=2 color="#0000FF">if</font>
<font face="Consolas" size=2>
(libssh2_session_handshake(m_pSSHSocket-&gt;m_pSession,
m_pSSHSocket-&gt;m_hSocket))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
m_pProgressPg-&gt;m_wndProgressList.AddString(</font>
<font face="Consolas" size=2 color="#6F008A">_T</font>
<font face="Consolas" size=2>(</font>
<font face="Consolas" size=2 color="#A31515">&quot;Failed to establish
SSH session.&quot;</font><font face="Consolas" size=2>));<br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return</font><font face="Consolas" size=2>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pchFingerprint = libssh2_hostkey_hash(m_pSSHSocket-&gt;m_pSession,
</font><font face="Consolas" size=2 color="#6F008A">
LIBSSH2_HOSTKEY_HASH_SHA1</font><font face="Consolas" size=2>);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pchAuthList = libssh2_userauth_list(m_pSSHSocket-&gt;m_pSession,
</font><font face="Consolas" size=2 color="#A31515">
&quot;root&quot;</font><font face="Consolas" size=2>, 8);<br><br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if</font><font face="Consolas" size=2>(</font>
<font face="Consolas" size=2 color="#6F008A">
libssh2_userauth_password</font><font face="Consolas" size=2>
(m_pSSHSocket-&gt;m_pSession,
</font><font face="Consolas" size=2 color="#A31515">
&quot;root&quot;</font><font face="Consolas" size=2>,
</font><font face="Consolas" size=2 color="#A31515">
&quot;password&quot;</font><font face="Consolas" size=2>))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
m_pProgressPg-&gt;m_wndProgressList.AddString(</font>
<font face="Consolas" size=2 color="#6F008A">_T</font>
<font face="Consolas" size=2>(</font>
<font face="Consolas" size=2 color="#A31515">&quot;Failed to establish
SSH session.&quot;</font><font face="Consolas" size=2>));<br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return</font><font face="Consolas" size=2>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
else<br>
</font><font face="Consolas" size=2>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
m_pProgressPg-&gt;m_wndProgressList.AddString(</font>
<font face="Consolas" size=2 color="#6F008A">_T</font>
<font face="Consolas" size=2>(</font>
<font face="Consolas" size=2 color="#A31515">&quot;Successfully logged in
to remote via SSH.&quot;</font><font face="Consolas" size=2>));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
m_nUpgradeStage =
</font><font face="Consolas" size=2 color="#2F4F4F">
RU_SSH_COPY_FILES</font><font face="Consolas" size=2>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<br><br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
struct</font><font face="Consolas" size=2>
</font><font face="Consolas" size=2 color="#2B91AF">_stat64i32</font>
<font face="Consolas" size=2> fileInfo;<br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
const</font><font face="Consolas" size=2>
</font><font face="Consolas" size=2 color="#0000FF">char</font>
<font face="Consolas" size=2>* pchLocalFileName =
</font><font face="Consolas" size=2 color="#A31515">
&quot;..\\debug\\files\\new_file&quot;</font><font face="Consolas" size=2>
;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
::</font><font face="Consolas" size=2 color="#6F008A">_stat</font>
<font face="Consolas" size=2>(pchLocalFileName, &amp;fileInfo);<br><br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if</font><font face="Consolas" size=2>(m_bReadyToSendSSH)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
m_pProgressPg-&gt;m_wndProgressList.AddString(</font>
<font face="Consolas" size=2 color="#6F008A">_T</font>
<font face="Consolas" size=2>(</font>
<font face="Consolas" size=2 color="#A31515">&quot;Preparing to copy
files.&quot;</font><font face="Consolas" size=2>));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
m_pSSHSocket-&gt;m_pChannel =
</font><font face="Consolas" size=2 color="#6F008A">
libssh2_scp_send</font><font face="Consolas" size=2>
(m_pSSHSocket-&gt;m_pSession, pchLocalFileName, fileInfo.st_mode &amp;
0777,
(</font><font face="Consolas" size=2 color="#0000FF">unsigned</font>
<font face="Consolas" size=2>
</font><font face="Consolas" size=2 color="#0000FF">long</font>
<font face="Consolas" size=2>)&nbsp;&nbsp; fileInfo.st_size);<br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if</font><font face="Consolas" size=2>(!m_pSSHSocket-&gt;m_pChannel)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
char</font><font face="Consolas" size=2>* pchErrMsg;<br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
int</font><font face="Consolas" size=2> nErrLen;<br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
int</font><font face="Consolas" size=2> nErr =
libssh2_session_last_error(m_pSSHSocket-&gt;m_pSession, &amp;pchErrMsg,
&amp;nErrLen, 0);<br>
</font><font face="Consolas" size=2 color="#6F008A">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<br>
</font><font face="Consolas" size=2>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<br><br>
</font><font face="Consolas" size=2 color="#0000FF">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break</font><font face="Consolas" size=2>;<br>
&nbsp;&nbsp;&nbsp; }<br>
}<br><br>
Thanks in advance for any and all feedback!<br><br>
Dave.<br>
</font></body>
</html>

--=====================_2596605==.ALT--


--===============1947380983==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1947380983==--

From libssh2-devel-bounces@cool.haxx.se  Sun Feb 17 15:05:23 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1HE4oMT013798;
	Sun, 17 Feb 2013 15:05:14 +0100
Received: from rs146.luxsci.com (rs146.luxsci.com [64.49.212.118])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1HE4kqP013757
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sun, 17 Feb 2013 15:04:48 +0100
Received: from rs146.luxsci.com (localhost.localdomain [127.0.0.1])
 by rs146.luxsci.com (8.14.4/8.13.8) with ESMTP id r1HE4dLY013568
 for <libssh2-devel@cool.haxx.se>; Sun, 17 Feb 2013 09:04:39 -0500
Received: (from root@localhost)
 by rs146.luxsci.com (8.14.4/8.13.8/Submit) id r1HE4286012930
 for libssh2-devel@cool.haxx.se; Sun, 17 Feb 2013 14:04:02 GMT
Received: (from sender 30582) (rs146.luxsci.com [127.0.0.1]) by Lux Scientiae
 SP; Sun, 17 Feb 2013 14:04:01 +0000
From: Ben Kibbey <bjk@luxsci.net>
To: libssh2-devel@cool.haxx.se
Subject: Re: read-window fix?
References: <50F760C4.5060605@cantrip.org>
Date: Sun, 17 Feb 2013 09:03:39 -0500
In-Reply-To: <50F760C4.5060605@cantrip.org> (Nathan Myers's message of "Wed,
 16 Jan 2013 18:24:04 -0800")
X-Lux-Comment: Message r1HE3dlw012090 sent by user #30582
Message-Id: <1361109842-84566.3301232917.fr1HE3dlw012090@rs146.luxsci.com>
MIME-Version: 1.0
X-Comment: Lux Scientiae SP Message ID - 1361109842-84566.3301232917
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=luxsci.net;
 h=from:to:subject:references:date:in-reply-to:content-type:message-id:mime-version;
 s=p1; bh=O97MmGTwn6Y24Ni1qyR5I4FOgPGLwklMnEDWAHCICLs=;
 b=udLz8vrssZqwC2oGDHPOV5nBllNFYm/h5jbQgkci01YEORTRWJVS3Qr+R0z+Zj9Wy5E5zmQ8AbAsbsrCLR3raWgQWf1V5G3FW6yhV0xkJIgCRTRJ0R8DyTI925vrdCVWgadz51xjxvM0Ci6QVCcNu+hpg2GmqGPHPwk3wEJWf5Q=
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

On Wed, 16 Jan 2013 18:24:04 -0800, Nathan Myers writes:
> This patch seems to improve matters, for the slow.c just posted.
> I'm not sure I understand all the implications of moving the adjust
> after the read, but I don't see how to know the right adjustment to
> apply without reading first: I very frequently get short reads from
> this function.

This patch works well for me. Without it and when doing alot of short
reads from an SSH server the download rate drops sharply after about
200K. With this patch applied the speed is as it is from the beginning
for the duration of the entire transfer.

-- 
Ben Kibbey
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb 19 10:35:55 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1J9ZT0x031652;
	Tue, 19 Feb 2013 10:35:48 +0100
Received: from mail-ve0-f173.google.com (mail-ve0-f173.google.com
 [209.85.128.173])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1J9ZQOb031613
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 10:35:27 +0100
Received: by mail-ve0-f173.google.com with SMTP id oz10so5588417veb.4
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 01:35:22 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=x-received:message-id:date:from:user-agent:mime-version:to:subject
 :content-type:content-transfer-encoding:x-gm-message-state;
 bh=H3x5VRdfdLjIw5JMTq6TGwfnfpSDG+bxdl+VDEKlKA8=;
 b=Ms5cG0XtTM9hLRXmh9WaceSXj0dIiAXZz/NpQq9rRd3LY/e34L4hV2gaWc9e/tBXZS
 A3zXfpaa7iAHpW098laxz18sLJyGMZbr8c390q34Xs+OSgeEhtLxhrPSzm5oqsV/nqsy
 tM76OXLo8mkoCzPCYawUL8McddKDe9iPKthwDpHAREkOjx16Zm4Blm8//95a7lL8swJ5
 DbDe6w+suL7W1b/Te4yNQI8lm3D20FzAgDmD763mSUGVQsOb2BjDmG7MDSGgy9ehoVuP
 LD109t9GNBkLNJsSw1D/ATKOmr6DFQ09hx219hmOkoT/zT7XHI73jbmPSR3HdvRo97e3
 vx6g==
X-Received: by 10.58.132.170 with SMTP id ov10mr19751151veb.57.1361266522205; 
 Tue, 19 Feb 2013 01:35:22 -0800 (PST)
Received: from [192.168.1.5] (cpe-66-65-119-86.nyc.res.rr.com. [66.65.119.86])
 by mx.google.com with ESMTPS id
 x9sm100621153vel.4.2013.02.19.01.35.21
 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
 Tue, 19 Feb 2013 01:35:21 -0800 (PST)
Message-ID: <51234766.3070606@d6.com>
Date: Tue, 19 Feb 2013 01:35:34 -0800
From: Chris Hecker <checker@d6.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
 rv:17.0) Gecko/20130107 Thunderbird/17.0.2
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: tickets #250, #254, #256 writes -> LIBSSH2_ERROR_BAD_USE ->stuck
X-Gm-Message-State: ALoCoQmKhBGtL0M8BJW5f/YHYmebpMZttMka4hkeA5JRZJ4rPuFQE6DqVctoL5CVRlXN9/ShDNKN
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>


Hi, I recently started using libssh2 called from perl's Net::SSH2, and I 
started running into this exact issue 
(https://trac.libssh2.org/ticket/256) and was wondering if yet another 
complication here might be calls from a scripting language where thunks 
are used to get into libssh2, and those might not preserve the same 
exact pointer on subsequent calls, even if the data from the scripting 
language is the same.  It's almost like the failure case in this ticket 
https://trac.libssh2.org/ticket/250 due to the buffer being on the 
stack, but it's happening at a different level than the stack issue.

This old thread from 2011 is also relevant:

http://comments.gmane.org/gmane.network.ssh.libssh2.devel/5080

It just seems like requiring the exact pointer on subsequent calls is 
going to be brittle no matter what, and it's going to keep breaking in a 
lot of different ways.

I guess, practically speaking, is there a patch to fix the known cases 
of this bug, or a timeline for fixing it/them?

Thanks,
Chris
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb 19 16:48:50 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JFmKp4002200;
	Tue, 19 Feb 2013 16:48:44 +0100
Received: from mail1.bemta5.messagelabs.com (mail1.bemta5.messagelabs.com
 [195.245.231.130])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JFmJRX002196
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 16:48:19 +0100
Received: from [85.158.136.51:16295] by server-13.bemta-5.messagelabs.com id
 8E/32-06769-3CE93215; Tue, 19 Feb 2013 15:48:19 +0000
X-Env-Sender: WES.DONZE@river-island.com
X-Msg-Ref: server-16.tower-49.messagelabs.com!1361288898!18653693!1
X-Originating-IP: [217.64.228.66]
X-StarScan-Received: 
X-StarScan-Version: 6.8.6; banners=river-island.com,-,-
X-VirusChecked: Checked
Received: (qmail 18961 invoked from network); 19 Feb 2013 15:48:19 -0000
Received: from unknown (HELO RIV10EXC01.hq.river-island.com) (217.64.228.66)
 by server-16.tower-49.messagelabs.com with AES128-SHA encrypted SMTP;
 19 Feb 2013 15:48:19 -0000
Received: from RIV10EXC02.hq.river-island.com ([::1]) by
 RIV10EXC01.hq.river-island.com ([::1]) with mapi id 14.01.0355.002; Tue, 19
 Feb 2013 15:48:18 +0000
From: Wes Donze <WES.DONZE@river-island.com>
To: "libssh2-devel@cool.haxx.se" <libssh2-devel@cool.haxx.se>
Subject: RE: Installing libssh2 on HP-UX
Thread-Topic: Installing libssh2 on HP-UX
Thread-Index: AQHOChIPoHJpsztTR06SyGRFf1CcSph5KuCQgAB8XYCAB6O+UA==
Date: Tue, 19 Feb 2013 15:48:18 +0000
Message-ID: <8694DC0939354C45B44865A2376D56BD2AD93B9A@RIV10EXC02.hq.river-island.com>
References: <8694DC0939354C45B44865A2376D56BD2AD87ECB@RIV10EXC02.hq.river-island.com>
 <20130213173048.13329.qmail@stuge.se>
 <8694DC0939354C45B44865A2376D56BD2AD88025@RIV10EXC02.hq.river-island.com>
 <20130214180411.8912.qmail@stuge.se>
In-Reply-To: <20130214180411.8912.qmail@stuge.se>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.150.17.49]
Content-Type: multipart/mixed;
 boundary="_004_8694DC0939354C45B44865A2376D56BD2AD93B9ARIV10EXC02hqriv_"
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

--_004_8694DC0939354C45B44865A2376D56BD2AD93B9ARIV10EXC02hqriv_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Ok Sorry but I think I misunderstood the error message - I was assuming th=
at where it says
ld: Unknown input file type: "../src/.libs/libssh2.so"
it was trying to tell me that it could not find that file - in fact it can=
 find the file but does not like the contents of it

to prove this I noticed that libssh2.so was just a symbolic link to libssh=
2.so.1.1 and I removed the symbolic link and then got the message that the=
 file could not be found so I recreated the link again to get the same err=
or message

I am a attaching the config.log file

I have downloaded the latest version as well.

I am still looking into the 'git' business and apologies but I am not sure=
 about the running of  it on a different system first - none of my unix sy=
stems have this on .

Regarding the command I am calling I have taken the 'simple' route as desc=
ribed in the INSTALL file by running./configure with no parameters

Then I get the failure on the make when it comes to the 'tests' section

I have run a 'clean up ' as indicated in the INSTALL notes and started aga=
in so the config.log is up to date and the 2 files out.1 and out.2 are the=
 capture of the output from the make command

Kind regards
Wes


Wes Donze
Technical Support
T: 02089914765
E: wes.donze@river-island.com




-----Original Message-----
From: libssh2-devel [mailto:libssh2-devel-bounces@cool.haxx.se] On Behalf =
Of Peter Stuge
Sent: 14 February 2013 18:04
To: libssh2-devel@cool.haxx.se
Subject: Re: Installing libssh2 on HP-UX

Hi Wes,

Wes Donze wrote:
> Peter Stuge wrote:
> > Please:
> >
> > 1. git clone git://git.libssh2.org/libssh2.git
> > 2. cd libssh2
> > 3. ./buildconf
> > 4. ./configure --any-parameters-of-yours-here
> > 5. make
> >
> > This should produce the error. Please send us a transcript of this
> > session along with the config.log file.
>
> It now looks like I need to install 'git' to get any diagnostics as
> I do not have that on my hp-ux system.

You can perform the first three steps on any system with the
appropriate tools. I recommend using a Linux system with a rich set
of development tools. On debian or Ubuntu I think you might get them
all by installing the meta-package build-essential.  An old
commercial UNIX is not useful for development, so make sure to use a
modern environment where all the useful tools are readily available.


Remember to send a complete transcript of the commands that you run
on the HP-UX system, starting with the command from step 4. In case
the email with full transcript and the config.log file is reject by
the mailing list because of size then please create a ticket on
http://trac.libssh2.org/


Thanks for helping make libssh2 better

//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--_004_8694DC0939354C45B44865A2376D56BD2AD93B9ARIV10EXC02hqriv_
Content-Type: application/octet-stream; name="config.log"
Content-Description: config.log
Content-Disposition: attachment; filename="config.log"; size=70109;
	creation-date="Tue, 19 Feb 2013 15:48:11 GMT";
	modification-date="Tue, 19 Feb 2013 15:38:00 GMT"
Content-Transfer-Encoding: base64

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUNCnJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtl
cyBhIG1pc3Rha2UuDQoNCkl0IHdhcyBjcmVhdGVkIGJ5IGxpYnNzaDIgY29uZmlndXJlIC0sIHdo
aWNoIHdhcw0KZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY4LiAgSW52b2NhdGlvbiBjb21t
YW5kIGxpbmUgd2FzDQoNCiAgJCAuL2NvbmZpZ3VyZSANCg0KIyMgLS0tLS0tLS0tICMjDQojIyBQ
bGF0Zm9ybS4gIyMNCiMjIC0tLS0tLS0tLSAjIw0KDQpob3N0bmFtZSA9IGh4cGNzZGV2MDENCnVu
YW1lIC1tID0gaWE2NA0KdW5hbWUgLXIgPSBCLjExLjMxDQp1bmFtZSAtcyA9IEhQLVVYDQp1bmFt
ZSAtdiA9IFUNCg0KL3Vzci9iaW4vdW5hbWUgLXAgPSB1bmtub3duDQovYmluL3VuYW1lIC1YICAg
ICA9IHVua25vd24NCg0KL2Jpbi9hcmNoICAgICAgICAgICAgICA9IHVua25vd24NCi91c3IvYmlu
L2FyY2ggLWsgICAgICAgPSB1bmtub3duDQovdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gdW5rbm93
bg0KL3Vzci9iaW4vaG9zdGluZm8gICAgICA9IHVua25vd24NCi9iaW4vbWFjaGluZSAgICAgICAg
ICAgPSB1bmtub3duDQovdXNyL2Jpbi9vc2xldmVsICAgICAgID0gdW5rbm93bg0KL2Jpbi91bml2
ZXJzZSAgICAgICAgICA9IHVua25vd24NCg0KUEFUSDogL3Vzci9zYmluDQpQQVRIOiAvdXNyL2Jp
bg0KUEFUSDogL3Vzci9jY3MvYmluDQpQQVRIOiAvdXNyL2NvbnRyaWIvYmluDQpQQVRIOiAvdXNy
L2NvbnRyaWIvUTQvYmluDQpQQVRIOiAvb3B0L3BlcmwvYmluDQpQQVRIOiAvb3B0L2d2c2QvYmlu
DQpQQVRIOiAvb3B0L2lwZi9iaW4NClBBVEg6IC9vcHQvbmV0dGxhZG0vYmluDQpQQVRIOiAvb3B0
L2ZjbXMvYmluDQpQQVRIOiAvb3B0L3diZW0vYmluDQpQQVRIOiAvb3B0L3diZW0vc2Jpbg0KUEFU
SDogL29wdC9zYXMvYmluDQpQQVRIOiAvb3B0L2dyYXBoaWNzL2NvbW1vbi9iaW4NClBBVEg6IC9v
cHQvYXRvay9iaW4NClBBVEg6IC91c3IvYmluL1gxMQ0KUEFUSDogL3Vzci9jb250cmliL2Jpbi9Y
MTENClBBVEg6IC9vcHQvc2VjX21nbXQvYmFzdGlsbGUvYmluDQpQQVRIOiAvb3B0L2NhbGlwZXIv
YmluDQpQQVRIOiAvb3B0L2RyZC9iaW4NClBBVEg6IC9vcHQvZHNhdS9iaW4NClBBVEg6IC9vcHQv
ZHNhdS9zYmluDQpQQVRIOiAvb3B0L3Jlc21vbi9iaW4NClBBVEg6IC9vcHQvZmlyZWZveA0KUEFU
SDogL29wdC9nbm9tZS9iaW4NClBBVEg6IC9vcHQvcGVyZi9iaW4NClBBVEg6IC9vcHQvaWduaXRl
L2Jpbg0KUEFUSDogL29wdC9wcm9wcGx1cy9iaW4NClBBVEg6IC91c3IvY29udHJpYi9rd2RiL2Jp
bg0KUEFUSDogL29wdC9wZXJsXzMyL2Jpbg0KUEFUSDogL29wdC9wZXJsXzY0L2Jpbg0KUEFUSDog
L29wdC9wcm0vYmluDQpQQVRIOiAvb3B0L3NmbS9iaW4NClBBVEg6IC9vcHQvc3dtL2Jpbg0KUEFU
SDogL29wdC9zZWNfbWdtdC9zcGMvYmluDQpQQVRIOiAvb3B0L3NzaC9iaW4NClBBVEg6IC9vcHQv
c3dhL2Jpbg0KUEFUSDogL29wdC9ocHNtaC9iaW4NClBBVEg6IC9vcHQvc2VudGluZWwvYmluDQpQ
QVRIOiAvb3B0L2xhbmd0b29scy9iaW4NClBBVEg6IC9vcHQvd2xtL2Jpbg0KUEFUSDogL29wdC9n
d2xtL2Jpbg0KUEFUSDogL29wdC9ocHZtL2Jpbg0KUEFUSDogL29wdC9ocG5wbC8vYmluDQpQQVRI
OiAvb3B0L29tbmkvYmluDQpQQVRIOiAvc2Jpbg0KUEFUSDogL2hvbWUvcm9vdA0KUEFUSDogL29w
dC9PVi9iaW4NClBBVEg6IC4NClBBVEg6IC91c3IvbG9jYWwvYmluDQpQQVRIOiAvb3B0L2dub21l
L3NoYXJlL2FjbG9jYWwNCg0KDQojIyAtLS0tLS0tLS0tLSAjIw0KIyMgQ29yZSB0ZXN0cy4gIyMN
CiMjIC0tLS0tLS0tLS0tICMjDQoNCmNvbmZpZ3VyZToyMzA2OiBjaGVja2luZyB3aGV0aGVyIHRv
IGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcw0KY29uZmln
dXJlOjIzMTU6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyMzMxOiBjaGVja2luZyBmb3Igc2VkDQpj
b25maWd1cmU6MjM1MDogZm91bmQgL3Vzci9iaW4vc2VkDQpjb25maWd1cmU6MjM2MzogcmVzdWx0
OiAvdXNyL2Jpbi9zZWQNCmNvbmZpZ3VyZToyNDI0OiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0
aWJsZSBpbnN0YWxsDQpjb25maWd1cmU6MjQ5MjogcmVzdWx0OiAuL2luc3RhbGwtc2ggLWMNCmNv
bmZpZ3VyZToyNTAzOiBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUN
CmNvbmZpZ3VyZToyNTUzOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI2OTQ6IGNoZWNraW5nIGZv
ciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wDQpjb25maWd1cmU6MjczMzogcmVzdWx0OiAuL2luc3Rh
bGwtc2ggLWMgLWQNCmNvbmZpZ3VyZToyNzQ2OiBjaGVja2luZyBmb3IgZ2F3aw0KY29uZmlndXJl
OjI3NzY6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNzQ2OiBjaGVja2luZyBmb3IgbWF3aw0KY29u
ZmlndXJlOjI3NzY6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNzQ2OiBjaGVja2luZyBmb3IgbmF3
aw0KY29uZmlndXJlOjI3NzY6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNzQ2OiBjaGVja2luZyBm
b3IgYXdrDQpjb25maWd1cmU6Mjc2MjogZm91bmQgL3Vzci9iaW4vYXdrDQpjb25maWd1cmU6Mjc3
MzogcmVzdWx0OiBhd2sNCmNvbmZpZ3VyZToyNzg0OiBjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0
cyAkKE1BS0UpDQpjb25maWd1cmU6MjgwNjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyODg2OiBj
aGVja2luZyBsaWJzc2gyIHZlcnNpb24NCmNvbmZpZ3VyZToyODg4OiByZXN1bHQ6IDEuNC40LTIw
MTMwMjE5DQpjb25maWd1cmU6Mjg5OTogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUNCmNvbmZp
Z3VyZToyOTEzOiByZXN1bHQ6IGlhNjQtaHAtaHB1eDExLjMxDQpjb25maWd1cmU6MjkzMzogY2hl
Y2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQ0KY29uZmlndXJlOjI5NDY6IHJlc3VsdDogaWE2NC1ocC1o
cHV4MTEuMzENCmNvbmZpZ3VyZToyOTczOiBhdXRvYnVpbGQgcHJvamVjdC4uLiBsaWJzc2gyDQpj
b25maWd1cmU6Mjk3OTogYXV0b2J1aWxkIHJldmlzaW9uLi4uIDEuNC40LTIwMTMwMjE5DQpjb25m
aWd1cmU6Mjk4NDogYXV0b2J1aWxkIGhvc3RuYW1lLi4uIGh4cGNzZGV2MDENCmNvbmZpZ3VyZToy
OTk1OiBhdXRvYnVpbGQgdGltZXN0YW1wLi4uIDIwMTMwMjE5LTE1MzgwNw0KY29uZmlndXJlOjMw
MzY6IGNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgbWFrZQ0KY29uZmlndXJl
OjMwNjQ6IHJlc3VsdDogR05VDQpjb25maWd1cmU6MzEzNTogY2hlY2tpbmcgZm9yIGdjYw0KY29u
ZmlndXJlOjMxNjU6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZTozMjI4OiBjaGVja2luZyBmb3IgY2MN
CmNvbmZpZ3VyZTozMjQ5OiBmb3VuZCAvdXNyL2Jpbi9jYw0KY29uZmlndXJlOjMyNzI6IHJlc3Vs
dDogY2MNCmNvbmZpZ3VyZTozMzkxOiBjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uDQpj
b25maWd1cmU6MzQwMDogY2MgLS12ZXJzaW9uID4mNQ0KKEJ1bmRsZWQpIGNjOiBIUCBDL2FDKysg
QjM5MTBCIEEuMDYuMTIgW09jdCAxMSAyMDA2XQ0KY29uZmlndXJlOjM0MTE6ICQ/ID0gMA0KY29u
ZmlndXJlOjM0MDA6IGNjIC12ID4mNQ0KY29uZmlndXJlOjM0MTE6ICQ/ID0gMA0KY29uZmlndXJl
OjM0MDA6IGNjIC1WID4mNQ0KKEJ1bmRsZWQpIGNjOiBIUCBDL2FDKysgQjM5MTBCIEEuMDYuMTIg
W09jdCAxMSAyMDA2XQ0KY29uZmlndXJlOjM0MTE6ICQ/ID0gMA0KY29uZmlndXJlOjM0MDA6IGNj
IC1xdmVyc2lvbiA+JjUNCihCdW5kbGVkKSBjYzogd2FybmluZyA5MjI6ICItZXJzaW9uIiBpcyB1
bnN1cHBvcnRlZCBpbiB0aGUgYnVuZGxlZCBjb21waWxlciwgaWdub3JlZC4NCmNvbmZpZ3VyZToz
NDExOiAkPyA9IDANCmNvbmZpZ3VyZTozNDMxOiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBp
bGVyIHdvcmtzDQpjb25maWd1cmU6MzQ1MzogY2MgICAgY29uZnRlc3QuYyAgPiY1DQpjb25maWd1
cmU6MzQ1NzogJD8gPSAwDQpjb25maWd1cmU6MzUwNTogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToz
NTA4OiBjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUNCmNv
bmZpZ3VyZTozNTEwOiByZXN1bHQ6IGEub3V0DQpjb25maWd1cmU6MzUxNjogY2hlY2tpbmcgZm9y
IHN1ZmZpeCBvZiBleGVjdXRhYmxlcw0KY29uZmlndXJlOjM1MjM6IGNjIC1vIGNvbmZ0ZXN0ICAg
IGNvbmZ0ZXN0LmMgID4mNQ0KY29uZmlndXJlOjM1Mjc6ICQ/ID0gMA0KY29uZmlndXJlOjM1NDk6
IHJlc3VsdDogDQpjb25maWd1cmU6MzU3MTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3Mg
Y29tcGlsaW5nDQpjb25maWd1cmU6MzU3OTogY2MgLW8gY29uZnRlc3QgICAgY29uZnRlc3QuYyAg
PiY1DQoiY29uZnRlc3QuYyIsIGxpbmUgMTk6IHdhcm5pbmcgIzIxMTEtRDogc3RhdGVtZW50IGlz
IHVucmVhY2hhYmxlDQogICAgcmV0dXJuIDA7DQogICAgXg0KDQpjb25maWd1cmU6MzU4MzogJD8g
PSAwDQpjb25maWd1cmU6MzU5MDogLi9jb25mdGVzdA0KY29uZmlndXJlOjM1OTQ6ICQ/ID0gMA0K
Y29uZmlndXJlOjM2MDk6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZTozNjE0OiBjaGVja2luZyBmb3Ig
c3VmZml4IG9mIG9iamVjdCBmaWxlcw0KY29uZmlndXJlOjM2MzY6IGNjIC1jICAgY29uZnRlc3Qu
YyA+JjUNCmNvbmZpZ3VyZTozNjQwOiAkPyA9IDANCmNvbmZpZ3VyZTozNjYxOiByZXN1bHQ6IG8N
CmNvbmZpZ3VyZTozNjY1OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMg
Y29tcGlsZXINCmNvbmZpZ3VyZTozNjg0OiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQoiY29uZnRl
c3QuYyIsIGxpbmUgMTY6IGVycm9yICMyMDIwOiBpZGVudGlmaWVyICJjaG9rZSIgaXMgdW5kZWZp
bmVkDQogICAgICAgICBjaG9rZSBtZQ0KICAgICAgICAgXg0KDQoxIGVycm9yIGRldGVjdGVkIGlu
IHRoZSBjb21waWxhdGlvbiBvZiAiY29uZnRlc3QuYyIuDQpjb25maWd1cmU6MzY4NDogJD8gPSAy
DQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaCAqLw0KfCAj
ZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg
ImxpYnNzaDIiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0KfCAjZGVmaW5lIFBBQ0tB
R0VfU1RSSU5HICJsaWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNz
aDItZGV2ZWxAY29vbC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiDQp8ICNkZWZp
bmUgUEFDS0FHRSAibGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9OICItIg0KfCAvKiBlbmQgY29u
ZmRlZnMuaC4gICovDQp8IA0KfCBpbnQNCnwgbWFpbiAoKQ0KfCB7DQp8ICNpZm5kZWYgX19HTlVD
X18NCnwgICAgICAgIGNob2tlIG1lDQp8ICNlbmRpZg0KfCANCnwgICA7DQp8ICAgcmV0dXJuIDA7
DQp8IH0NCmNvbmZpZ3VyZTozNjkzOiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MzcwMjogY2hlY2tp
bmcgd2hldGhlciBjYyBhY2NlcHRzIC1nDQpjb25maWd1cmU6MzcyMjogY2MgLWMgLWcgIGNvbmZ0
ZXN0LmMgPiY1DQooQnVuZGxlZCkgY2M6IHdhcm5pbmcgOTIyOiAiLWciIGlzIHVuc3VwcG9ydGVk
IGluIHRoZSBidW5kbGVkIGNvbXBpbGVyLCBpZ25vcmVkLg0KY29uZmlndXJlOjM3MjI6ICQ/ID0g
MA0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmggKi8NCnwg
I2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F
ICJsaWJzc2gyIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSINCnwgI2RlZmluZSBQQUNL
QUdFX1NUUklORyAibGlic3NoMiAtIg0KfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJz
c2gyLWRldmVsQGNvb2wuaGF4eC5zZSINCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIg0KfCAjZGVm
aW5lIFBBQ0tBR0UgImxpYnNzaDIiDQp8ICNkZWZpbmUgVkVSU0lPTiAiLSINCnwgLyogZW5kIGNv
bmZkZWZzLmguICAqLw0KfCANCnwgaW50DQp8IG1haW4gKCkNCnwgew0KfCANCnwgICA7DQp8ICAg
cmV0dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZTozNzM3OiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQpj
b25maWd1cmU6MzczNzogJD8gPSAwDQpjb25maWd1cmU6Mzc2MzogcmVzdWx0OiBubw0KY29uZmln
dXJlOjM3ODA6IGNoZWNraW5nIGZvciBjYyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkNCmNvbmZp
Z3VyZTozODQ0OiBjYyAgLWMgICBjb25mdGVzdC5jID4mNQ0KImNvbmZ0ZXN0LmMiLCBsaW5lIDU5
OiB3YXJuaW5nICMyMTExLUQ6IHN0YXRlbWVudCBpcyB1bnJlYWNoYWJsZQ0KICAgIHJldHVybiAw
Ow0KICAgIF4NCg0KY29uZmlndXJlOjM4NDQ6ICQ/ID0gMA0KY29uZmlndXJlOjM4NTc6IHJlc3Vs
dDogbm9uZSBuZWVkZWQNCmNvbmZpZ3VyZTozODc5OiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxl
IG9mIGNjDQpjb25maWd1cmU6Mzk5MDogcmVzdWx0OiBub25lDQpjb25maWd1cmU6NDAxMTogY2hl
Y2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3INCmNvbmZpZ3VyZTo0MDQyOiBjYyAt
RSAgY29uZnRlc3QuYw0KY29uZmlndXJlOjQwNDI6ICQ/ID0gMA0KY29uZmlndXJlOjQwNTY6IGNj
IC1FICBjb25mdGVzdC5jDQoiY29uZnRlc3QuYyIsIGxpbmUgMTE6IGVycm9yICMyMDA1LUQ6IGNv
dWxkIG5vdCBvcGVuIHNvdXJjZSBmaWxlICJhY19ub25leGlzdGVudC5oIg0KICAjaW5jbHVkZSA8
YWNfbm9uZXhpc3RlbnQuaD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KDQoxIGVy
cm9yIGRldGVjdGVkIGluIHRoZSBjb21waWxhdGlvbiBvZiAiY29uZnRlc3QuYyIuDQpjb25maWd1
cmU6NDA1NjogJD8gPSAyDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29u
ZmRlZnMuaCAqLw0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQ
QUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0K
fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FHRV9C
VUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tBR0Vf
VVJMICIiDQp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9OICIt
Ig0KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5o
Pg0KY29uZmlndXJlOjQwODE6IHJlc3VsdDogY2MgLUUNCmNvbmZpZ3VyZTo0MTAxOiBjYyAtRSAg
Y29uZnRlc3QuYw0KY29uZmlndXJlOjQxMDE6ICQ/ID0gMA0KY29uZmlndXJlOjQxMTU6IGNjIC1F
ICBjb25mdGVzdC5jDQoiY29uZnRlc3QuYyIsIGxpbmUgMTE6IGVycm9yICMyMDA1LUQ6IGNvdWxk
IG5vdCBvcGVuIHNvdXJjZSBmaWxlICJhY19ub25leGlzdGVudC5oIg0KICAjaW5jbHVkZSA8YWNf
bm9uZXhpc3RlbnQuaD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KDQoxIGVycm9y
IGRldGVjdGVkIGluIHRoZSBjb21waWxhdGlvbiBvZiAiY29uZnRlc3QuYyIuDQpjb25maWd1cmU6
NDExNTogJD8gPSAyDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRl
ZnMuaCAqLw0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNL
QUdFX1RBUk5BTUUgImxpYnNzaDIiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0KfCAj
ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS
RVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVVJM
ICIiDQp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9OICItIg0K
fCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPg0K
Y29uZmlndXJlOjQxNDQ6IGNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVz
IGFuZCAtZQ0KY29uZmlndXJlOjQyMDI6IHJlc3VsdDogL3Vzci9iaW4vZ3JlcA0KY29uZmlndXJl
OjQyMDc6IGNoZWNraW5nIGZvciBlZ3JlcA0KY29uZmlndXJlOjQyNjk6IHJlc3VsdDogL3Vzci9i
aW4vZ3JlcCAtRQ0KY29uZmlndXJlOjQyNzQ6IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZp
bGVzDQpjb25maWd1cmU6NDI5NDogY2MgLWMgICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjQy
OTQ6ICQ/ID0gMA0KY29uZmlndXJlOjQzNjc6IGNjIC1vIGNvbmZ0ZXN0ICAgIGNvbmZ0ZXN0LmMg
ID4mNQ0KY29uZmlndXJlOjQzNjc6ICQ/ID0gMA0KY29uZmlndXJlOjQzNjc6IC4vY29uZnRlc3QN
CmNvbmZpZ3VyZTo0MzY3OiAkPyA9IDANCmNvbmZpZ3VyZTo0Mzc4OiByZXN1bHQ6IHllcw0KY29u
ZmlndXJlOjQzOTE6IGNoZWNraW5nIGZvciBzeXMvdHlwZXMuaA0KY29uZmlndXJlOjQzOTE6IGNj
IC1jICAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTo0MzkxOiAkPyA9IDANCmNvbmZpZ3VyZTo0
MzkxOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjQzOTE6IGNoZWNraW5nIGZvciBzeXMvc3RhdC5o
DQpjb25maWd1cmU6NDM5MTogY2MgLWMgICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjQzOTE6
ICQ/ID0gMA0KY29uZmlndXJlOjQzOTE6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6NDM5MTogY2hl
Y2tpbmcgZm9yIHN0ZGxpYi5oDQpjb25maWd1cmU6NDM5MTogY2MgLWMgICBjb25mdGVzdC5jID4m
NQ0KY29uZmlndXJlOjQzOTE6ICQ/ID0gMA0KY29uZmlndXJlOjQzOTE6IHJlc3VsdDogeWVzDQpj
b25maWd1cmU6NDM5MTogY2hlY2tpbmcgZm9yIHN0cmluZy5oDQpjb25maWd1cmU6NDM5MTogY2Mg
LWMgICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjQzOTE6ICQ/ID0gMA0KY29uZmlndXJlOjQz
OTE6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6NDM5MTogY2hlY2tpbmcgZm9yIG1lbW9yeS5oDQpj
b25maWd1cmU6NDM5MTogY2MgLWMgICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjQzOTE6ICQ/
ID0gMA0KY29uZmlndXJlOjQzOTE6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6NDM5MTogY2hlY2tp
bmcgZm9yIHN0cmluZ3MuaA0KY29uZmlndXJlOjQzOTE6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUN
CmNvbmZpZ3VyZTo0MzkxOiAkPyA9IDANCmNvbmZpZ3VyZTo0MzkxOiByZXN1bHQ6IHllcw0KY29u
ZmlndXJlOjQzOTE6IGNoZWNraW5nIGZvciBpbnR0eXBlcy5oDQpjb25maWd1cmU6NDM5MTogY2Mg
LWMgICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjQzOTE6ICQ/ID0gMA0KY29uZmlndXJlOjQz
OTE6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6NDM5MTogY2hlY2tpbmcgZm9yIHN0ZGludC5oDQpj
b25maWd1cmU6NDM5MTogY2MgLWMgICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjQzOTE6ICQ/
ID0gMA0KY29uZmlndXJlOjQzOTE6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6NDM5MTogY2hlY2tp
bmcgZm9yIHVuaXN0ZC5oDQpjb25maWd1cmU6NDM5MTogY2MgLWMgICBjb25mdGVzdC5jID4mNQ0K
Y29uZmlndXJlOjQzOTE6ICQ/ID0gMA0KY29uZmlndXJlOjQzOTE6IHJlc3VsdDogeWVzDQpjb25m
aWd1cmU6NDQwMzogY2hlY2tpbmcgZm9yIGxvbmcgbG9uZw0KY29uZmlndXJlOjQ0MDM6IGNjIC1j
ICAgY29uZnRlc3QuYyA+JjUNCiJjb25mdGVzdC5jIiwgbGluZSA2MDogd2FybmluZyAjMjExMS1E
OiBzdGF0ZW1lbnQgaXMgdW5yZWFjaGFibGUNCiAgICByZXR1cm4gMDsNCiAgICBeDQoNCmNvbmZp
Z3VyZTo0NDAzOiAkPyA9IDANCmNvbmZpZ3VyZTo0NDAzOiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1
DQoiY29uZnRlc3QuYyIsIGxpbmUgNTc6IGVycm9yICMyMDI5OiBleHBlY3RlZCBhbiBleHByZXNz
aW9uDQogIGlmIChzaXplb2YgKChsb25nIGxvbmcpKSkNCiAgICAgICAgICAgICAgICAgICAgICAg
ICBeDQoNCjEgZXJyb3IgZGV0ZWN0ZWQgaW4gdGhlIGNvbXBpbGF0aW9uIG9mICJjb25mdGVzdC5j
Ii4NCmNvbmZpZ3VyZTo0NDAzOiAkPyA9IDINCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz
Og0KfCAvKiBjb25mZGVmcy5oICovDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIg0K
fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdFX1ZF
UlNJT04gIi0iDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSINCnwgI2RlZmlu
ZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiDQp8ICNkZWZp
bmUgUEFDS0FHRV9VUkwgIiINCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIg0KfCAjZGVmaW5l
IFZFUlNJT04gIi0iDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZFX1NZ
U19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhBVkVf
U1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTUVN
T1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBIQVZFX0lOVFRZ
UEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5JU1RE
X0ggMQ0KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8ICNpbmNsdWRlIDxzdGRpby5oPg0KfCAj
aWZkZWYgSEFWRV9TWVNfVFlQRVNfSA0KfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPg0KfCAjZW5k
aWYNCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSA0KfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+DQp8
ICNlbmRpZg0KfCAjaWZkZWYgU1REQ19IRUFERVJTDQp8ICMgaW5jbHVkZSA8c3RkbGliLmg+DQp8
ICMgaW5jbHVkZSA8c3RkZGVmLmg+DQp8ICNlbHNlDQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSA0K
fCAjICBpbmNsdWRlIDxzdGRsaWIuaD4NCnwgIyBlbmRpZg0KfCAjZW5kaWYNCnwgI2lmZGVmIEhB
VkVfU1RSSU5HX0gNCnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZF
X01FTU9SWV9IDQp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPg0KfCAjIGVuZGlmDQp8ICMgaW5jbHVk
ZSA8c3RyaW5nLmg+DQp8ICNlbmRpZg0KfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gNCnwgIyBpbmNs
dWRlIDxzdHJpbmdzLmg+DQp8ICNlbmRpZg0KfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19IDQp8ICMg
aW5jbHVkZSA8aW50dHlwZXMuaD4NCnwgI2VuZGlmDQp8ICNpZmRlZiBIQVZFX1NURElOVF9IDQp8
ICMgaW5jbHVkZSA8c3RkaW50Lmg+DQp8ICNlbmRpZg0KfCAjaWZkZWYgSEFWRV9VTklTVERfSA0K
fCAjIGluY2x1ZGUgPHVuaXN0ZC5oPg0KfCAjZW5kaWYNCnwgaW50DQp8IG1haW4gKCkNCnwgew0K
fCBpZiAoc2l6ZW9mICgobG9uZyBsb25nKSkpDQp8IAkgICAgcmV0dXJuIDA7DQp8ICAgOw0KfCAg
IHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6NDQwMzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo0
NDE1OiBjaGVja2luZyBpZiBfUkVFTlRSQU5UIGlzIGFscmVhZHkgZGVmaW5lZA0KY29uZmlndXJl
OjQ0Mzc6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUNCiJjb25mdGVzdC5jIiwgbGluZSAzMjogZXJy
b3IgIzIwMjA6IGlkZW50aWZpZXIgImZvcmNlIiBpcyB1bmRlZmluZWQNCiAgICAgICAgZm9yY2Ug
Y29tcGlsYXRpb24gZXJyb3INCiAgICAgICAgXg0KDQoiY29uZnRlc3QuYyIsIGxpbmUgMzI6IGVy
cm9yICMyMDY1OiBleHBlY3RlZCBhICI7Ig0KICAgICAgICBmb3JjZSBjb21waWxhdGlvbiBlcnJv
cg0KICAgICAgICAgICAgICAgICAgICAgICAgICBeDQoNCiJjb25mdGVzdC5jIiwgbGluZSAzNTog
d2FybmluZyAjMjAxMi1EOiBwYXJzaW5nIHJlc3RhcnRzIGhlcmUgYWZ0ZXIgcHJldmlvdXMgc3lu
dGF4IGVycm9yDQogICAgOw0KICAgIF4NCg0KMiBlcnJvcnMgZGV0ZWN0ZWQgaW4gdGhlIGNvbXBp
bGF0aW9uIG9mICJjb25mdGVzdC5jIi4NCmNvbmZpZ3VyZTo0NDM3OiAkPyA9IDINCmNvbmZpZ3Vy
ZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5oICovDQp8ICNkZWZpbmUgUEFD
S0FHRV9OQU1FICJsaWJzc2gyIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIN
CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg
ImxpYnNzaDIgLSINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBj
b29sLmhheHguc2UiDQp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiINCnwgI2RlZmluZSBQQUNLQUdF
ICJsaWJzc2gyIg0KfCAjZGVmaW5lIFZFUlNJT04gIi0iDQp8ICNkZWZpbmUgU1REQ19IRUFERVJT
IDENCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU
X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg
MQ0KfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEN
CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0K
fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQ0KfCAv
KiBlbmQgY29uZmRlZnMuaC4gICovDQp8IA0KfCANCnwgDQp8IGludA0KfCBtYWluICgpDQp8IHsN
CnwgDQp8ICNpZmRlZiBfUkVFTlRSQU5UDQp8ICAgICAgIGludCBkdW1teT0xOw0KfCAjZWxzZQ0K
fCAgICAgICBmb3JjZSBjb21waWxhdGlvbiBlcnJvcg0KfCAjZW5kaWYNCnwgDQp8ICAgOw0KfCAg
IHJldHVybiAwOw0KfCB9DQp8IA0KY29uZmlndXJlOjQ0NDU6IHJlc3VsdDogbm8NCmNvbmZpZ3Vy
ZTo0NDUzOiBjaGVja2luZyBpZiBfUkVFTlRSQU5UIGlzIGFjdHVhbGx5IG5lZWRlZA0KY29uZmln
dXJlOjQ0Njc6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6NDQ3NTogY2hlY2tpbmcgaWYgX1JFRU5U
UkFOVCBpcyBvbndhcmRzIGRlZmluZWQNCmNvbmZpZ3VyZTo0NDg5OiByZXN1bHQ6IHllcw0KY29u
ZmlndXJlOjQ0OTk6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgc29ja2V0DQpjb25m
aWd1cmU6NDUzMDogY2MgLW8gY29uZnRlc3QgICAgY29uZnRlc3QuYyAgPiY1DQoiY29uZnRlc3Qu
YyIsIGxpbmUgMzk6IHdhcm5pbmcgIzIxMTEtRDogc3RhdGVtZW50IGlzIHVucmVhY2hhYmxlDQog
ICAgcmV0dXJuIDA7DQogICAgXg0KDQpjb25maWd1cmU6NDUzMDogJD8gPSAwDQpjb25maWd1cmU6
NDU0NzogcmVzdWx0OiBub25lIHJlcXVpcmVkDQpjb25maWd1cmU6NDU1NzogY2hlY2tpbmcgZm9y
IGxpYnJhcnkgY29udGFpbmluZyBpbmV0X2FkZHINCmNvbmZpZ3VyZTo0NTg4OiBjYyAtbyBjb25m
dGVzdCAgICBjb25mdGVzdC5jICA+JjUNCiJjb25mdGVzdC5jIiwgbGluZSAzOTogd2FybmluZyAj
MjExMS1EOiBzdGF0ZW1lbnQgaXMgdW5yZWFjaGFibGUNCiAgICByZXR1cm4gMDsNCiAgICBeDQoN
CmNvbmZpZ3VyZTo0NTg4OiAkPyA9IDANCmNvbmZpZ3VyZTo0NjA1OiByZXN1bHQ6IG5vbmUgcmVx
dWlyZWQNCmNvbmZpZ3VyZTo0OTIwOiBjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uDQpj
b25maWd1cmU6NDkyOTogY2MgLS12ZXJzaW9uID4mNQ0KKEJ1bmRsZWQpIGNjOiBIUCBDL2FDKysg
QjM5MTBCIEEuMDYuMTIgW09jdCAxMSAyMDA2XQ0KY29uZmlndXJlOjQ5NDA6ICQ/ID0gMA0KY29u
ZmlndXJlOjQ5Mjk6IGNjIC12ID4mNQ0KY29uZmlndXJlOjQ5NDA6ICQ/ID0gMA0KY29uZmlndXJl
OjQ5Mjk6IGNjIC1WID4mNQ0KKEJ1bmRsZWQpIGNjOiBIUCBDL2FDKysgQjM5MTBCIEEuMDYuMTIg
W09jdCAxMSAyMDA2XQ0KY29uZmlndXJlOjQ5NDA6ICQ/ID0gMA0KY29uZmlndXJlOjQ5Mjk6IGNj
IC1xdmVyc2lvbiA+JjUNCihCdW5kbGVkKSBjYzogd2FybmluZyA5MjI6ICItZXJzaW9uIiBpcyB1
bnN1cHBvcnRlZCBpbiB0aGUgYnVuZGxlZCBjb21waWxlciwgaWdub3JlZC4NCmNvbmZpZ3VyZTo0
OTQwOiAkPyA9IDANCmNvbmZpZ3VyZTo0OTQ0OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2lu
ZyB0aGUgR05VIEMgY29tcGlsZXINCmNvbmZpZ3VyZTo0OTcyOiByZXN1bHQ6IG5vDQpjb25maWd1
cmU6NDk4MTogY2hlY2tpbmcgd2hldGhlciBjYyBhY2NlcHRzIC1nDQpjb25maWd1cmU6NTA0Mjog
cmVzdWx0OiBubw0KY29uZmlndXJlOjUwNTk6IGNoZWNraW5nIGZvciBjYyBvcHRpb24gdG8gYWNj
ZXB0IElTTyBDODkNCmNvbmZpZ3VyZTo1MTM2OiByZXN1bHQ6IG5vbmUgbmVlZGVkDQpjb25maWd1
cmU6NTE1ODogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBjYw0KY29uZmlndXJlOjUyNjk6
IHJlc3VsdDogbm9uZQ0KY29uZmlndXJlOjUyODU6IGNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29y
a3MNCmNvbmZpZ3VyZTo1Mjg5OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjUyOTY6IGNoZWNraW5n
IHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkNCmNvbmZpZ3VyZTo1MzE4OiByZXN1bHQ6IHllcw0K
Y29uZmlndXJlOjUzMzE6IGNoZWNraW5nIGZvciBzc2hkDQpjb25maWd1cmU6NTM0OTogZm91bmQg
L3Vzci9zYmluL3NzaGQNCmNvbmZpZ3VyZTo1MzYxOiByZXN1bHQ6IC91c3Ivc2Jpbi9zc2hkDQpj
b25maWd1cmU6NTcyOTogY2hlY2tpbmcgaG93IHRvIHByaW50IHN0cmluZ3MNCmNvbmZpZ3VyZTo1
NzU4OiByZXN1bHQ6IHByaW50IC1yDQpjb25maWd1cmU6NTc3NzogY2hlY2tpbmcgZm9yIGEgc2Vk
IHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0DQpjb25maWd1cmU6NTg0MTogcmVzdWx0OiAv
dXNyL2Jpbi9zZWQNCmNvbmZpZ3VyZTo1ODU5OiBjaGVja2luZyBmb3IgZmdyZXANCmNvbmZpZ3Vy
ZTo1OTIxOiByZXN1bHQ6IC91c3IvYmluL2dyZXAgLUYNCmNvbmZpZ3VyZTo1OTg5OiBjaGVja2lu
ZyBmb3Igbm9uLUdOVSBsZA0KY29uZmlndXJlOjYwMjM6IHJlc3VsdDogL3Vzci9iaW4vbGQNCmNv
bmZpZ3VyZTo2MDMwOiBjaGVja2luZyBpZiB0aGUgbGlua2VyICgvdXNyL2Jpbi9sZCkgaXMgR05V
IGxkDQpjb25maWd1cmU6NjA0NTogcmVzdWx0OiBubw0KY29uZmlndXJlOjYwNTc6IGNoZWNraW5n
IGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKQ0KY29uZmlndXJlOjYx
MDY6IHJlc3VsdDogL3Vzci9iaW4vbm0gLXANCmNvbmZpZ3VyZTo2MjM2OiBjaGVja2luZyB0aGUg
bmFtZSBsaXN0ZXIgKC91c3IvYmluL25tIC1wKSBpbnRlcmZhY2UNCmNvbmZpZ3VyZTo2MjQzOiBj
YyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6NjI0NjogL3Vzci9iaW4vbm0gLXAgImNv
bmZ0ZXN0Lm8iDQpjb25maWd1cmU6NjI0OTogb3V0cHV0DQowMDAwMDAwMDAwMDAwIHUgIA0KMDAw
MDAwMDAwMDAwMCByICAuZGVidWdfYWN0dWFsDQowMDAwMDAwMDAwMDAwIHIgIC5kZWJ1Z19saW5l
DQowMDAwMDAwMDAwMDAwIGEgIGNvbmZ0ZXN0LmMNCjAwMDAwMDAwMDAwMDAgRCAgc29tZV92YXJp
YWJsZQ0KY29uZmlndXJlOjYyNTY6IHJlc3VsdDogQlNEIG5tDQpjb25maWd1cmU6NjI2MDogY2hl
Y2tpbmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMNCmNvbmZp
Z3VyZTo2MzkwOiByZXN1bHQ6IDE1MzYwMDANCmNvbmZpZ3VyZTo2NDA3OiBjaGVja2luZyB3aGV0
aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21lIFhTSSBjb25zdHJ1Y3RzDQpjb25maWd1cmU6
NjQxNzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo2NDIxOiBjaGVja2luZyB3aGV0aGVyIHRoZSBz
aGVsbCB1bmRlcnN0YW5kcyAiKz0iDQpjb25maWd1cmU6NjQyNzogcmVzdWx0OiBubw0KY29uZmln
dXJlOjY0NjI6IGNoZWNraW5nIGhvdyB0byBjb252ZXJ0IGlhNjQtaHAtaHB1eDExLjMxIGZpbGUg
bmFtZXMgdG8gaWE2NC1ocC1ocHV4MTEuMzEgZm9ybWF0DQpjb25maWd1cmU6NjUwMjogcmVzdWx0
OiBmdW5jX2NvbnZlcnRfZmlsZV9ub29wDQpjb25maWd1cmU6NjUwOTogY2hlY2tpbmcgaG93IHRv
IGNvbnZlcnQgaWE2NC1ocC1ocHV4MTEuMzEgZmlsZSBuYW1lcyB0byB0b29sY2hhaW4gZm9ybWF0
DQpjb25maWd1cmU6NjUyOTogcmVzdWx0OiBmdW5jX2NvbnZlcnRfZmlsZV9ub29wDQpjb25maWd1
cmU6NjUzNjogY2hlY2tpbmcgZm9yIC91c3IvYmluL2xkIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0
IGZpbGVzDQpjb25maWd1cmU6NjU0MzogcmVzdWx0OiAtcg0KY29uZmlndXJlOjY2MTc6IGNoZWNr
aW5nIGZvciBvYmpkdW1wDQpjb25maWd1cmU6NjY0NDogcmVzdWx0OiBvYmpkdW1wDQpjb25maWd1
cmU6NjY3MzogY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzDQpj
b25maWd1cmU6Njg3NTogcmVzdWx0OiBmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1b
MC05XVswLTldKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBJQTY0DQpjb25maWd1cmU6Njk2MDogY2hl
Y2tpbmcgZm9yIGRsbHRvb2wNCmNvbmZpZ3VyZTo2OTg3OiByZXN1bHQ6IGRsbHRvb2wNCmNvbmZp
Z3VyZTo3MDE3OiBjaGVja2luZyBob3cgdG8gYXNzb2NpYXRlIHJ1bnRpbWUgYW5kIGxpbmsgbGli
cmFyaWVzDQpjb25maWd1cmU6NzA0NDogcmVzdWx0OiBwcmludCAtciAtLQ0KY29uZmlndXJlOjcx
MDQ6IGNoZWNraW5nIGZvciBhcg0KY29uZmlndXJlOjcxMjA6IGZvdW5kIC91c3IvYmluL2FyDQpj
b25maWd1cmU6NzEzMTogcmVzdWx0OiBhcg0KY29uZmlndXJlOjcxNjg6IGNoZWNraW5nIGZvciBh
cmNoaXZlciBARklMRSBzdXBwb3J0DQpjb25maWd1cmU6NzE4NTogY2MgLWMgICBjb25mdGVzdC5j
ID4mNQ0KY29uZmlndXJlOjcxODU6ICQ/ID0gMA0KY29uZmlndXJlOjcxODg6IGFyIGNydSBsaWJj
b25mdGVzdC5hIEBjb25mdGVzdC5sc3QgPiY1DQphcjogY291bGQgbm90IG9wZW4gQGNvbmZ0ZXN0
LmxzdA0KY29uZmlndXJlOjcxOTE6ICQ/ID0gMQ0KY29uZmlndXJlOjcyMTE6IHJlc3VsdDogbm8N
CmNvbmZpZ3VyZTo3MjY5OiBjaGVja2luZyBmb3Igc3RyaXANCmNvbmZpZ3VyZTo3Mjg1OiBmb3Vu
ZCAvdXNyL2Jpbi9zdHJpcA0KY29uZmlndXJlOjcyOTY6IHJlc3VsdDogc3RyaXANCmNvbmZpZ3Vy
ZTo3MzY4OiBjaGVja2luZyBmb3IgcmFubGliDQpjb25maWd1cmU6NzM4NDogZm91bmQgL3Vzci9i
aW4vcmFubGliDQpjb25maWd1cmU6NzM5NTogcmVzdWx0OiByYW5saWINCmNvbmZpZ3VyZTo3NDk3
OiBjaGVja2luZyBjb21tYW5kIHRvIHBhcnNlIC91c3IvYmluL25tIC1wIG91dHB1dCBmcm9tIGNj
IG9iamVjdA0KY29uZmlndXJlOjc2MTc6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3Vy
ZTo3NjIwOiAkPyA9IDANCmNvbmZpZ3VyZTo3NjI0OiAvdXNyL2Jpbi9ubSAtcCBjb25mdGVzdC5v
IFx8IHNlZCAtbiAtZSAncy9eLipbIF1cKFtBQkNERUdSU1RdW0FCQ0RFR1JTVF0qXClbIF1bIF0q
XChbX0EtWmEtel1bX0EtWmEtejAtOV0qXCkkL1wxIFwyIFwyL3AnIHwgc2VkICcvIF9fZ251X2x0
by9kJyBcPiBjb25mdGVzdC5ubQ0KY29uZmlndXJlOjc2Mjc6ICQ/ID0gMA0KY29uZmlndXJlOjc2
OTM6IGNjIC1vIGNvbmZ0ZXN0ICAgIGNvbmZ0ZXN0LmMgY29uZnRzdG0ubyA+JjUNCmNvbmZpZ3Vy
ZTo3Njk2OiAkPyA9IDANCmNvbmZpZ3VyZTo3NzM0OiByZXN1bHQ6IG9rDQpjb25maWd1cmU6Nzc3
MTogY2hlY2tpbmcgZm9yIHN5c3Jvb3QNCmNvbmZpZ3VyZTo3ODAxOiByZXN1bHQ6IG5vDQpjb25m
aWd1cmU6NzgyMTogY2MgLWMgICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjc4MjQ6ICQ/ID0g
MA0KY29uZmlndXJlOjgwNTc6IGNoZWNraW5nIGZvciBtdA0KY29uZmlndXJlOjgwNzM6IGZvdW5k
IC91c3IvYmluL210DQpjb25maWd1cmU6ODA4NDogcmVzdWx0OiBtdA0KY29uZmlndXJlOjgxMDc6
IGNoZWNraW5nIGlmIG10IGlzIGEgbWFuaWZlc3QgdG9vbA0KY29uZmlndXJlOjgxMTM6IG10ICct
PycNCm10OiB1bmtub3duIGNvbW1hbmQgIi0/Ig0KY29uZmlndXJlOjgxMjE6IHJlc3VsdDogbm8N
CmNvbmZpZ3VyZTo4NzYwOiBjaGVja2luZyBmb3IgZGxmY24uaA0KY29uZmlndXJlOjg3NjA6IGNj
IC1jICAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTo4NzYwOiAkPyA9IDANCmNvbmZpZ3VyZTo4
NzYwOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBvYmpkaXINCmNv
bmZpZ3VyZTo4OTc5OiByZXN1bHQ6IC5saWJzDQpjb25maWd1cmU6OTYxMjogY2hlY2tpbmcgZm9y
IGNjIG9wdGlvbiB0byBwcm9kdWNlIFBJQw0KY29uZmlndXJlOjk2MTk6IHJlc3VsdDogIC1EUElD
DQpjb25maWd1cmU6OTYyNzogY2hlY2tpbmcgaWYgY2MgUElDIGZsYWcgIC1EUElDIHdvcmtzDQpj
b25maWd1cmU6OTY0NTogY2MgLWMgICAgLURQSUMgLURQSUMgY29uZnRlc3QuYyA+JjUNCmNvbmZp
Z3VyZTo5NjQ5OiAkPyA9IDANCmNvbmZpZ3VyZTo5NjYyOiByZXN1bHQ6IHllcw0KY29uZmlndXJl
Ojk2OTE6IGNoZWNraW5nIGlmIGNjIHN0YXRpYyBmbGFnIC1XbCwtYSAtV2wsYXJjaGl2ZSB3b3Jr
cw0KY29uZmlndXJlOjk3MTk6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZTo5NzM0OiBjaGVja2luZyBp
ZiBjYyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8NCmNvbmZpZ3VyZTo5NzU1OiBjYyAtYyAgIC1vIG91
dC9jb25mdGVzdDIubyBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjk3NTk6ICQ/ID0gMA0KY29u
ZmlndXJlOjk3ODE6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6OTc4OTogY2hlY2tpbmcgaWYgY2Mg
c3VwcG9ydHMgLWMgLW8gZmlsZS5vDQpjb25maWd1cmU6OTgzNjogcmVzdWx0OiB5ZXMNCmNvbmZp
Z3VyZTo5ODY5OiBjaGVja2luZyB3aGV0aGVyIHRoZSBjYyBsaW5rZXIgKC91c3IvYmluL2xkKSBz
dXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzDQpjb25maWd1cmU6MTEwMjY6IHJlc3VsdDogeWVzDQpj
b25maWd1cmU6MTEyNjY6IGNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcw0K
Y29uZmlndXJlOjEyMDExOiByZXN1bHQ6IGhwdXgxMS4zMSBkbGQuc28NCmNvbmZpZ3VyZToxMjEx
ODogY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcw0K
Y29uZmlndXJlOjEyMTQzOiByZXN1bHQ6IGltbWVkaWF0ZQ0KY29uZmlndXJlOjEyNjgzOiBjaGVj
a2luZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUNCmNvbmZpZ3VyZTox
MjcwNTogcmVzdWx0OiBubw0KY29uZmlndXJlOjEyNzIzOiBjaGVja2luZyBpZiBsaWJ0b29sIHN1
cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMNCmNvbmZpZ3VyZToxMjcyNTogcmVzdWx0OiB5ZXMNCmNv
bmZpZ3VyZToxMjcyODogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVz
DQpjb25maWd1cmU6MTI3NDk6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTI3NTI6IGNoZWNraW5n
IHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcw0KY29uZmlndXJlOjEyNzU2OiByZXN1
bHQ6IHllcw0KY29uZmlndXJlOjEyNzkzOiBjaGVja2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcg
aXMgYmlnZW5kaWFuDQpjb25maWd1cmU6MTI4MDg6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUNCiJj
b25mdGVzdC5jIiwgbGluZSAyOTogZXJyb3IgIzIwMjA6IGlkZW50aWZpZXIgIm5vdCIgaXMgdW5k
ZWZpbmVkDQogIAkgICAgICAgbm90IGEgdW5pdmVyc2FsIGNhcGFibGUgY29tcGlsZXINCiAgCSAg
ICAgICBeDQoNCiJjb25mdGVzdC5jIiwgbGluZSAyOTogZXJyb3IgIzIwNjU6IGV4cGVjdGVkIGEg
IjsiDQogIAkgICAgICAgbm90IGEgdW5pdmVyc2FsIGNhcGFibGUgY29tcGlsZXINCiAgCSAgICAg
ICAgICAgICBeDQoNCjIgZXJyb3JzIGRldGVjdGVkIGluIHRoZSBjb21waWxhdGlvbiBvZiAiY29u
ZnRlc3QuYyIuDQpjb25maWd1cmU6MTI4MDg6ICQ/ID0gMg0KY29uZmlndXJlOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmggKi8NCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxp
YnNzaDIiDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIg0KfCAjZGVmaW5lIFBB
Q0tBR0VfVkVSU0lPTiAiLSINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIg0K
fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIN
CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiDQp8
ICNkZWZpbmUgVkVSU0lPTiAiLSINCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5l
IEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZp
bmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUg
SEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhB
VkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFW
RV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxDQp8ICNkZWZpbmUgTkVFRF9S
RUVOVFJBTlQgMQ0KfCAjaWZuZGVmIF9SRUVOVFJBTlQNCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQN
CnwgI2VuZGlmDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBMVF9PQkpESVIg
Ii5saWJzLyINCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaWZuZGVmIF9fQVBQTEVfQ0Nf
Xw0KfCAJICAgICAgIG5vdCBhIHVuaXZlcnNhbCBjYXBhYmxlIGNvbXBpbGVyDQp8IAkgICAgICNl
bmRpZg0KfCAJICAgICB0eXBlZGVmIGludCBkdW1teTsNCnwgDQpjb25maWd1cmU6MTI4NTM6IGNj
IC1jICAgY29uZnRlc3QuYyA+JjUNCiJjb25mdGVzdC5jIiwgbGluZSAzNTogZXJyb3IgIzIwMjA6
IGlkZW50aWZpZXIgImJvZ3VzIiBpcyB1bmRlZmluZWQNCiAgCSAgICAgIGJvZ3VzIGVuZGlhbiBt
YWNyb3MNCiAgCSAgICAgIF4NCg0KImNvbmZ0ZXN0LmMiLCBsaW5lIDM1OiBlcnJvciAjMjA2NTog
ZXhwZWN0ZWQgYSAiOyINCiAgCSAgICAgIGJvZ3VzIGVuZGlhbiBtYWNyb3MNCiAgCSAgICAgICAg
ICAgICAgICAgICBeDQoNCiJjb25mdGVzdC5jIiwgbGluZSAzODogd2FybmluZyAjMjAxMi1EOiBw
YXJzaW5nIHJlc3RhcnRzIGhlcmUgYWZ0ZXIgcHJldmlvdXMgc3ludGF4IGVycm9yDQogICAgOw0K
ICAgIF4NCg0KMiBlcnJvcnMgZGV0ZWN0ZWQgaW4gdGhlIGNvbXBpbGF0aW9uIG9mICJjb25mdGVz
dC5jIi4NCmNvbmZpZ3VyZToxMjg1MzogJD8gPSAyDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt
IHdhczoNCnwgLyogY29uZmRlZnMuaCAqLw0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3No
MiINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiDQp8ICNkZWZpbmUgUEFDS0FH
RV9WRVJTSU9OICItIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iDQp8ICNk
ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIg0KfCAj
ZGVmaW5lIFBBQ0tBR0VfVVJMICIiDQp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiINCnwgI2Rl
ZmluZSBWRVJTSU9OICItIg0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFW
RV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBI
QVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZF
X01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9J
TlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VO
SVNURF9IIDENCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDENCnwgI2RlZmluZSBORUVEX1JFRU5U
UkFOVCAxDQp8ICNpZm5kZWYgX1JFRU5UUkFOVA0KfCAjICBkZWZpbmUgX1JFRU5UUkFOVA0KfCAj
ZW5kaWYNCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIExUX09CSkRJUiAiLmxp
YnMvIg0KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4N
CnwgCSAgICAgI2luY2x1ZGUgPHN5cy9wYXJhbS5oPg0KfCANCnwgaW50DQp8IG1haW4gKCkNCnwg
ew0KfCAjaWYgISAoZGVmaW5lZCBCWVRFX09SREVSICYmIGRlZmluZWQgQklHX0VORElBTiAJCSAg
ICAgJiYgZGVmaW5lZCBMSVRUTEVfRU5ESUFOICYmIEJZVEVfT1JERVIgJiYgQklHX0VORElBTiAJ
CSAgICAgJiYgTElUVExFX0VORElBTikNCnwgCSAgICAgIGJvZ3VzIGVuZGlhbiBtYWNyb3MNCnwg
CSAgICAgI2VuZGlmDQp8IA0KfCAgIDsNCnwgICByZXR1cm4gMDsNCnwgfQ0KY29uZmlndXJlOjEy
ODk3OiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MTI4OTc6ICQ/ID0gMA0KY29u
ZmlndXJlOjEyOTE0OiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MTI5MTQ6ICQ/
ID0gMA0KY29uZmlndXJlOjEyOTk5OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjEzMDI1OiBjaGVj
a2luZyBmb3Igc3BlY2lhbCBDIGNvbXBpbGVyIG9wdGlvbnMgbmVlZGVkIGZvciBsYXJnZSBmaWxl
cw0KY29uZmlndXJlOjEzMDU1OiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQoiY29uZnRlc3QuYyIs
IGxpbmUgMzU6IGVycm9yICMyMDYzOiBzaGlmdCBjb3VudCBpcyB0b28gbGFyZ2UNCiAgICBpbnQg
b2ZmX3RfaXNfbGFyZ2VbKExBUkdFX09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3MjENCiAgICAgICAg
ICAgICAgICAgICAgICAgIF4NCg0KImNvbmZ0ZXN0LmMiLCBsaW5lIDM1OiBlcnJvciAjMjA2Mzog
c2hpZnQgY291bnQgaXMgdG9vIGxhcmdlDQogICAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9P
RkZfVCAlIDIxNDc0ODM2MjkgPT0gNzIxDQogICAgICAgICAgICAgICAgICAgICAgICBeDQoNCiJj
b25mdGVzdC5jIiwgbGluZSAzNjogZXJyb3IgIzIwNjM6IHNoaWZ0IGNvdW50IGlzIHRvbyBsYXJn
ZQ0KICAJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkNCiAgCQkgICAg
ICAgICAgXg0KDQoiY29uZnRlc3QuYyIsIGxpbmUgMzY6IGVycm9yICMyMDYzOiBzaGlmdCBjb3Vu
dCBpcyB0b28gbGFyZ2UNCiAgCQkgICAgICAgJiYgTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjQ3ID09
IDEpDQogIAkJICAgICAgICAgIF4NCg0KNCBlcnJvcnMgZGV0ZWN0ZWQgaW4gdGhlIGNvbXBpbGF0
aW9uIG9mICJjb25mdGVzdC5jIi4NCmNvbmZpZ3VyZToxMzA1NTogJD8gPSAyDQpjb25maWd1cmU6
IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaCAqLw0KfCAjZGVmaW5lIFBBQ0tB
R0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiDQp8
ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJs
aWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29v
bC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiDQp8ICNkZWZpbmUgUEFDS0FHRSAi
bGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9OICItIg0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAx
DQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I
IDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEN
CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8
ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwg
I2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDENCnwgI2Rl
ZmluZSBORUVEX1JFRU5UUkFOVCAxDQp8ICNpZm5kZWYgX1JFRU5UUkFOVA0KfCAjICBkZWZpbmUg
X1JFRU5UUkFOVA0KfCAjZW5kaWYNCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5l
IExUX09CSkRJUiAiLmxpYnMvIg0KfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxDQp8IC8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KfCAgLyogQ2hlY2sg
dGhhdCBvZmZfdCBjYW4gcmVwcmVzZW50IDIqKjYzIC0gMSBjb3JyZWN0bHkuDQp8ICAgICBXZSBj
YW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4NTQ3NzU4MDcs
DQp8ICAgICBzaW5jZSBzb21lIEMrKyBjb21waWxlcnMgbWFzcXVlcmFkaW5nIGFzIEMgY29tcGls
ZXJzDQp8ICAgICBpbmNvcnJlY3RseSByZWplY3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICovDQp8
ICNkZWZpbmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgNjIpIC0gMSArICgob2ZmX3QpIDEg
PDwgNjIpKQ0KfCAgIGludCBvZmZfdF9pc19sYXJnZVsoTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjI5
ID09IDcyMQ0KfCAJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkNCnwg
CQkgICAgICA/IDEgOiAtMV07DQp8IGludA0KfCBtYWluICgpDQp8IHsNCnwgDQp8ICAgOw0KfCAg
IHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6MTMwNjA6IGNjIC1uMzIgLWMgICBjb25mdGVzdC5j
ID4mNQ0KKEJ1bmRsZWQpIGNjOiB3YXJuaW5nIDkwMTogdW5rbm93biBvcHRpb246IGAtMzInOiB1
c2UgK2hlbHAgZm9yIG9ubGluZSBkb2N1bWVudGF0aW9uLiANCiJjb25mdGVzdC5jIiwgbGluZSAz
NTogZXJyb3IgIzIwNjM6IHNoaWZ0IGNvdW50IGlzIHRvbyBsYXJnZQ0KICAgIGludCBvZmZfdF9p
c19sYXJnZVsoTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjI5ID09IDcyMQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgXg0KDQoiY29uZnRlc3QuYyIsIGxpbmUgMzU6IGVycm9yICMyMDYzOiBzaGlmdCBj
b3VudCBpcyB0b28gbGFyZ2UNCiAgICBpbnQgb2ZmX3RfaXNfbGFyZ2VbKExBUkdFX09GRl9UICUg
MjE0NzQ4MzYyOSA9PSA3MjENCiAgICAgICAgICAgICAgICAgICAgICAgIF4NCg0KImNvbmZ0ZXN0
LmMiLCBsaW5lIDM2OiBlcnJvciAjMjA2Mzogc2hpZnQgY291bnQgaXMgdG9vIGxhcmdlDQogIAkJ
ICAgICAgICYmIExBUkdFX09GRl9UICUgMjE0NzQ4MzY0NyA9PSAxKQ0KICAJCSAgICAgICAgICBe
DQoNCiJjb25mdGVzdC5jIiwgbGluZSAzNjogZXJyb3IgIzIwNjM6IHNoaWZ0IGNvdW50IGlzIHRv
byBsYXJnZQ0KICAJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkNCiAg
CQkgICAgICAgICAgXg0KDQo0IGVycm9ycyBkZXRlY3RlZCBpbiB0aGUgY29tcGlsYXRpb24gb2Yg
ImNvbmZ0ZXN0LmMiLg0KY29uZmlndXJlOjEzMDYwOiAkPyA9IDINCmNvbmZpZ3VyZTogZmFpbGVk
IHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5oICovDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F
ICJsaWJzc2gyIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiINCnwgI2RlZmlu
ZSBQQUNLQUdFX1ZFUlNJT04gIi0iDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIg
LSINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHgu
c2UiDQp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiINCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gy
Ig0KfCAjZGVmaW5lIFZFUlNJT04gIi0iDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2Rl
ZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAj
ZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVm
aW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmlu
ZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5l
IEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQ0KfCAjZGVmaW5lIE5F
RURfUkVFTlRSQU5UIDENCnwgI2lmbmRlZiBfUkVFTlRSQU5UDQp8ICMgIGRlZmluZSBfUkVFTlRS
QU5UDQp8ICNlbmRpZg0KfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxDQp8ICNkZWZpbmUgTFRfT0JK
RElSICIubGlicy8iDQp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDENCnwgLyogZW5kIGNvbmZk
ZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQp8ICAvKiBDaGVjayB0aGF0IG9m
Zl90IGNhbiByZXByZXNlbnQgMioqNjMgLSAxIGNvcnJlY3RseS4NCnwgICAgIFdlIGNhbid0IHNp
bXBseSBkZWZpbmUgTEFSR0VfT0ZGX1QgdG8gYmUgOTIyMzM3MjAzNjg1NDc3NTgwNywNCnwgICAg
IHNpbmNlIHNvbWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMgQyBjb21waWxlcnMNCnwg
ICAgIGluY29ycmVjdGx5IHJlamVjdCA5MjIzMzcyMDM2ODU0Nzc1ODA3LiAgKi8NCnwgI2RlZmlu
ZSBMQVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8PCA2MikgLSAxICsgKChvZmZfdCkgMSA8PCA2Mikp
DQp8ICAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9PRkZfVCAlIDIxNDc0ODM2MjkgPT0gNzIx
DQp8IAkJICAgICAgICYmIExBUkdFX09GRl9UICUgMjE0NzQ4MzY0NyA9PSAxKQ0KfCAJCSAgICAg
ID8gMSA6IC0xXTsNCnwgaW50DQp8IG1haW4gKCkNCnwgew0KfCANCnwgICA7DQp8ICAgcmV0dXJu
IDA7DQp8IH0NCmNvbmZpZ3VyZToxMzA3MDogcmVzdWx0OiBubw0KY29uZmlndXJlOjEzMDc2OiBj
aGVja2luZyBmb3IgX0ZJTEVfT0ZGU0VUX0JJVFMgdmFsdWUgbmVlZGVkIGZvciBsYXJnZSBmaWxl
cw0KY29uZmlndXJlOjEzMTAxOiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQoiY29uZnRlc3QuYyIs
IGxpbmUgMzU6IGVycm9yICMyMDYzOiBzaGlmdCBjb3VudCBpcyB0b28gbGFyZ2UNCiAgICBpbnQg
b2ZmX3RfaXNfbGFyZ2VbKExBUkdFX09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3MjENCiAgICAgICAg
ICAgICAgICAgICAgICAgIF4NCg0KImNvbmZ0ZXN0LmMiLCBsaW5lIDM1OiBlcnJvciAjMjA2Mzog
c2hpZnQgY291bnQgaXMgdG9vIGxhcmdlDQogICAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9P
RkZfVCAlIDIxNDc0ODM2MjkgPT0gNzIxDQogICAgICAgICAgICAgICAgICAgICAgICBeDQoNCiJj
b25mdGVzdC5jIiwgbGluZSAzNjogZXJyb3IgIzIwNjM6IHNoaWZ0IGNvdW50IGlzIHRvbyBsYXJn
ZQ0KICAJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkNCiAgCQkgICAg
ICAgICAgXg0KDQoiY29uZnRlc3QuYyIsIGxpbmUgMzY6IGVycm9yICMyMDYzOiBzaGlmdCBjb3Vu
dCBpcyB0b28gbGFyZ2UNCiAgCQkgICAgICAgJiYgTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjQ3ID09
IDEpDQogIAkJICAgICAgICAgIF4NCg0KNCBlcnJvcnMgZGV0ZWN0ZWQgaW4gdGhlIGNvbXBpbGF0
aW9uIG9mICJjb25mdGVzdC5jIi4NCmNvbmZpZ3VyZToxMzEwMTogJD8gPSAyDQpjb25maWd1cmU6
IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaCAqLw0KfCAjZGVmaW5lIFBBQ0tB
R0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiDQp8
ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJs
aWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29v
bC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiDQp8ICNkZWZpbmUgUEFDS0FHRSAi
bGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9OICItIg0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAx
DQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I
IDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEN
CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8
ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwg
I2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDENCnwgI2Rl
ZmluZSBORUVEX1JFRU5UUkFOVCAxDQp8ICNpZm5kZWYgX1JFRU5UUkFOVA0KfCAjICBkZWZpbmUg
X1JFRU5UUkFOVA0KfCAjZW5kaWYNCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5l
IExUX09CSkRJUiAiLmxpYnMvIg0KfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxDQp8IC8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KfCAgLyogQ2hlY2sg
dGhhdCBvZmZfdCBjYW4gcmVwcmVzZW50IDIqKjYzIC0gMSBjb3JyZWN0bHkuDQp8ICAgICBXZSBj
YW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4NTQ3NzU4MDcs
DQp8ICAgICBzaW5jZSBzb21lIEMrKyBjb21waWxlcnMgbWFzcXVlcmFkaW5nIGFzIEMgY29tcGls
ZXJzDQp8ICAgICBpbmNvcnJlY3RseSByZWplY3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICovDQp8
ICNkZWZpbmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgNjIpIC0gMSArICgob2ZmX3QpIDEg
PDwgNjIpKQ0KfCAgIGludCBvZmZfdF9pc19sYXJnZVsoTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjI5
ID09IDcyMQ0KfCAJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkNCnwg
CQkgICAgICA/IDEgOiAtMV07DQp8IGludA0KfCBtYWluICgpDQp8IHsNCnwgDQp8ICAgOw0KfCAg
IHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6MTMxMjU6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUN
CmNvbmZpZ3VyZToxMzEyNTogJD8gPSAwDQpjb25maWd1cmU6MTMxMzM6IHJlc3VsdDogNjQNCmNv
bmZpZ3VyZToxMzMxODogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQNCmNvbmZpZ3VyZToxMzM0OTog
cmVzdWx0OiAvdXNyL2Jpbi9sZA0KY29uZmlndXJlOjEzMzU2OiBjaGVja2luZyBpZiB0aGUgbGlu
a2VyICgvdXNyL2Jpbi9sZCkgaXMgR05VIGxkDQpjb25maWd1cmU6MTMzNjk6IHJlc3VsdDogbm8N
CmNvbmZpZ3VyZToxMzM3NjogY2hlY2tpbmcgZm9yIHNoYXJlZCBsaWJyYXJ5IHJ1biBwYXRoIG9y
aWdpbg0KY29uZmlndXJlOjEzMzg5OiByZXN1bHQ6IGRvbmUNCmNvbmZpZ3VyZToxMzg5NDogY2hl
Y2tpbmcgZm9yIGxpYnNzbA0KY29uZmlndXJlOjEzOTEzOiBjYyAtbyBjb25mdGVzdCAgICBjb25m
dGVzdC5jICAtbHNzbCAtbGNyeXB0byA+JjUNCmNvbmZpZ3VyZToxMzkxMzogJD8gPSAwDQpjb25m
aWd1cmU6MTM5MjM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTM5MzA6IGNoZWNraW5nIGhvdyB0
byBsaW5rIHdpdGggbGlic3NsDQpjb25maWd1cmU6MTM5MzI6IHJlc3VsdDogLWxzc2wgLWxjcnlw
dG8NCmNvbmZpZ3VyZToxNDUwNDogY2hlY2tpbmcgZm9yIEVWUF9hZXNfMTI4X2N0cg0KY29uZmln
dXJlOjE0NTA0OiBjYyAtbyBjb25mdGVzdCAgICAtbHNzbCAtbGNyeXB0byBjb25mdGVzdC5jICA+
JjUNCiJjb25mdGVzdC5jIiwgbGluZSA2Nzogd2FybmluZyAjMjExMS1EOiBzdGF0ZW1lbnQgaXMg
dW5yZWFjaGFibGUNCiAgICByZXR1cm4gMDsNCiAgICBeDQoNCmxkOiBVbnNhdGlzZmllZCBzeW1i
b2wgIkVWUF9hZXNfMTI4X2N0ciIgaW4gZmlsZSBjb25mdGVzdC5vDQoxIGVycm9ycy4NCmNvbmZp
Z3VyZToxNDUwNDogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyog
Y29uZmRlZnMuaCAqLw0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmlu
ZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIt
Ig0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FH
RV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tB
R0VfVVJMICIiDQp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9O
ICItIg0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf
SCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9I
IDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEN
CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEN
CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwg
I2RlZmluZSBIQVZFX0xPTkdMT05HIDENCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAxDQp8ICNp
Zm5kZWYgX1JFRU5UUkFOVA0KfCAjICBkZWZpbmUgX1JFRU5UUkFOVA0KfCAjZW5kaWYNCnwgI2Rl
ZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIg0KfCAjZGVm
aW5lIFdPUkRTX0JJR0VORElBTiAxDQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQNCnwg
I2RlZmluZSBIQVZFX0xJQlNTTCAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgLyogRGVm
aW5lIEVWUF9hZXNfMTI4X2N0ciB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGlt
aXRzLmg+IGRlY2xhcmVzIEVWUF9hZXNfMTI4X2N0ci4NCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVY
IDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovDQp8ICNkZWZpbmUgRVZQ
X2Flc18xMjhfY3RyIGlubm9jdW91c19FVlBfYWVzXzEyOF9jdHINCnwgDQp8IC8qIFN5c3RlbSBo
ZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBl
cywNCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgRVZQX2Flc18xMjhfY3RyICgp
OyBiZWxvdy4NCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERD
X18gaXMgZGVmaW5lZCwgc2luY2UNCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJl
ZXN0YW5kaW5nIGNvbXBpbGVycy4gICovDQp8IA0KfCAjaWZkZWYgX19TVERDX18NCnwgIyBpbmNs
dWRlIDxsaW1pdHMuaD4NCnwgI2Vsc2UNCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4NCnwgI2VuZGlm
DQp8IA0KfCAjdW5kZWYgRVZQX2Flc18xMjhfY3RyDQp8IA0KfCAvKiBPdmVycmlkZSBhbnkgR0ND
IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4NCnwgICAgVXNlIGNoYXIgYmVj
YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDDQp8ICAgIGJ1aWx0
aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICov
DQp8ICNpZmRlZiBfX2NwbHVzcGx1cw0KfCBleHRlcm4gIkMiDQp8ICNlbmRpZg0KfCBjaGFyIEVW
UF9hZXNfMTI4X2N0ciAoKTsNCnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZv
ciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cw0KfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0
aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQNCnwgICAgIHNvbWV0
aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAq
Lw0KfCAjaWYgZGVmaW5lZCBfX3N0dWJfRVZQX2Flc18xMjhfY3RyIHx8IGRlZmluZWQgX19zdHVi
X19fRVZQX2Flc18xMjhfY3RyDQp8IGNob2tlIG1lDQp8ICNlbmRpZg0KfCANCnwgaW50DQp8IG1h
aW4gKCkNCnwgew0KfCByZXR1cm4gRVZQX2Flc18xMjhfY3RyICgpOw0KfCAgIDsNCnwgICByZXR1
cm4gMDsNCnwgfQ0KY29uZmlndXJlOjE0NTA0OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MTQ5ODU6
IGNoZWNraW5nIGZvciBsaWJ6DQpjb25maWd1cmU6MTUwMDQ6IGNjIC1vIGNvbmZ0ZXN0ICAgIGNv
bmZ0ZXN0LmMgIC1seiA+JjUNCiJjb25mdGVzdC5jIiwgbGluZSAzMTogZXJyb3IgIzIwMDUtRDog
Y291bGQgbm90IG9wZW4gc291cmNlIGZpbGUgInpsaWIuaCINCiAgI2luY2x1ZGUgPHpsaWIuaD4N
CiAgICAgICAgICAgICAgICAgICBeDQoNCjEgZXJyb3IgZGV0ZWN0ZWQgaW4gdGhlIGNvbXBpbGF0
aW9uIG9mICJjb25mdGVzdC5jIi4NCmNvbmZpZ3VyZToxNTAwNDogJD8gPSAyDQpjb25maWd1cmU6
IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaCAqLw0KfCAjZGVmaW5lIFBBQ0tB
R0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiDQp8
ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJs
aWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29v
bC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiDQp8ICNkZWZpbmUgUEFDS0FHRSAi
bGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9OICItIg0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAx
DQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I
IDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEN
CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8
ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwg
I2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDENCnwgI2Rl
ZmluZSBORUVEX1JFRU5UUkFOVCAxDQp8ICNpZm5kZWYgX1JFRU5UUkFOVA0KfCAjICBkZWZpbmUg
X1JFRU5UUkFOVA0KfCAjZW5kaWYNCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5l
IExUX09CSkRJUiAiLmxpYnMvIg0KfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxDQp8ICNkZWZp
bmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQNCnwgI2RlZmluZSBIQVZFX0xJQlNTTCAxDQp8IC8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1ZGUgPHpsaWIuaD4NCnwgaW50DQp8IG1haW4gKCkN
Cnwgew0KfCANCnwgICA7DQp8ICAgcmV0dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZToxNTAxNDogcmVz
dWx0OiBubw0KY29uZmlndXJlOjE1MDQwOiBDYW5ub3QgZmluZCBsaWJ6LCBkaXNhYmxpbmcgY29t
cHJlc3Npb24NCmNvbmZpZ3VyZToxNTA0MjogVHJ5IC0td2l0aC1saWJ6LXByZWZpeD1QQVRIIGlm
IHlvdSBrbm93IHlvdSBoYXZlIGl0DQpjb25maWd1cmU6MTUwODE6IGNoZWNraW5nIHdoZXRoZXIg
dG8gZW5hYmxlIHBlZGFudGljIGFuZCBkZWJ1ZyBjb21waWxlciBvcHRpb25zDQpjb25maWd1cmU6
MTUyMTQ6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToxNTIyMDogY2hlY2tpbmcgd2hldGhlciB0byBl
bmFibGUgaGlkZGVuIHN5bWJvbHMgaW4gdGhlIGxpYnJhcnkNCmNvbmZpZ3VyZToxNTI2MTogcmVz
dWx0OiBubw0KY29uZmlndXJlOjE1MjY4OiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIGV4YW1w
bGUgYXBwbGljYXRpb25zDQpjb25maWd1cmU6MTUyODQ6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6
MTUzMDA6IGNoZWNraW5nIGVycm5vLmggdXNhYmlsaXR5DQpjb25maWd1cmU6MTUzMDA6IGNjIC1j
ICAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToxNTMwMDogJD8gPSAwDQpjb25maWd1cmU6MTUz
MDA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUzMDA6IGNoZWNraW5nIGVycm5vLmggcHJlc2Vu
Y2UNCmNvbmZpZ3VyZToxNTMwMDogY2MgLUUgIGNvbmZ0ZXN0LmMNCmNvbmZpZ3VyZToxNTMwMDog
JD8gPSAwDQpjb25maWd1cmU6MTUzMDA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUzMDA6IGNo
ZWNraW5nIGZvciBlcnJuby5oDQpjb25maWd1cmU6MTUzMDA6IHJlc3VsdDogeWVzDQpjb25maWd1
cmU6MTUzMDA6IGNoZWNraW5nIGZjbnRsLmggdXNhYmlsaXR5DQpjb25maWd1cmU6MTUzMDA6IGNj
IC1jICAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToxNTMwMDogJD8gPSAwDQpjb25maWd1cmU6
MTUzMDA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUzMDA6IGNoZWNraW5nIGZjbnRsLmggcHJl
c2VuY2UNCmNvbmZpZ3VyZToxNTMwMDogY2MgLUUgIGNvbmZ0ZXN0LmMNCmNvbmZpZ3VyZToxNTMw
MDogJD8gPSAwDQpjb25maWd1cmU6MTUzMDA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUzMDA6
IGNoZWNraW5nIGZvciBmY250bC5oDQpjb25maWd1cmU6MTUzMDA6IHJlc3VsdDogeWVzDQpjb25m
aWd1cmU6MTUzMDA6IGNoZWNraW5nIHN0ZGlvLmggdXNhYmlsaXR5DQpjb25maWd1cmU6MTUzMDA6
IGNjIC1jICAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToxNTMwMDogJD8gPSAwDQpjb25maWd1
cmU6MTUzMDA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUzMDA6IGNoZWNraW5nIHN0ZGlvLmgg
cHJlc2VuY2UNCmNvbmZpZ3VyZToxNTMwMDogY2MgLUUgIGNvbmZ0ZXN0LmMNCmNvbmZpZ3VyZTox
NTMwMDogJD8gPSAwDQpjb25maWd1cmU6MTUzMDA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUz
MDA6IGNoZWNraW5nIGZvciBzdGRpby5oDQpjb25maWd1cmU6MTUzMDA6IHJlc3VsdDogeWVzDQpj
b25maWd1cmU6MTUzMDA6IGNoZWNraW5nIGZvciBzdGRsaWIuaA0KY29uZmlndXJlOjE1MzAwOiBy
ZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1MzAwOiBjaGVja2luZyBmb3IgdW5pc3RkLmgNCmNvbmZp
Z3VyZToxNTMwMDogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTMwMDogY2hlY2tpbmcgc3lzL3Vp
by5oIHVzYWJpbGl0eQ0KY29uZmlndXJlOjE1MzAwOiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQpj
b25maWd1cmU6MTUzMDA6ICQ/ID0gMA0KY29uZmlndXJlOjE1MzAwOiByZXN1bHQ6IHllcw0KY29u
ZmlndXJlOjE1MzAwOiBjaGVja2luZyBzeXMvdWlvLmggcHJlc2VuY2UNCmNvbmZpZ3VyZToxNTMw
MDogY2MgLUUgIGNvbmZ0ZXN0LmMNCmNvbmZpZ3VyZToxNTMwMDogJD8gPSAwDQpjb25maWd1cmU6
MTUzMDA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUzMDA6IGNoZWNraW5nIGZvciBzeXMvdWlv
LmgNCmNvbmZpZ3VyZToxNTMwMDogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTMxMzogY2hlY2tp
bmcgc3lzL3NlbGVjdC5oIHVzYWJpbGl0eQ0KY29uZmlndXJlOjE1MzEzOiBjYyAtYyAgIGNvbmZ0
ZXN0LmMgPiY1DQpjb25maWd1cmU6MTUzMTM6ICQ/ID0gMA0KY29uZmlndXJlOjE1MzEzOiByZXN1
bHQ6IHllcw0KY29uZmlndXJlOjE1MzEzOiBjaGVja2luZyBzeXMvc2VsZWN0LmggcHJlc2VuY2UN
CmNvbmZpZ3VyZToxNTMxMzogY2MgLUUgIGNvbmZ0ZXN0LmMNCmNvbmZpZ3VyZToxNTMxMzogJD8g
PSAwDQpjb25maWd1cmU6MTUzMTM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUzMTM6IGNoZWNr
aW5nIGZvciBzeXMvc2VsZWN0LmgNCmNvbmZpZ3VyZToxNTMxMzogcmVzdWx0OiB5ZXMNCmNvbmZp
Z3VyZToxNTMxMzogY2hlY2tpbmcgc3lzL3NvY2tldC5oIHVzYWJpbGl0eQ0KY29uZmlndXJlOjE1
MzEzOiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MTUzMTM6ICQ/ID0gMA0KY29u
ZmlndXJlOjE1MzEzOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1MzEzOiBjaGVja2luZyBzeXMv
c29ja2V0LmggcHJlc2VuY2UNCmNvbmZpZ3VyZToxNTMxMzogY2MgLUUgIGNvbmZ0ZXN0LmMNCmNv
bmZpZ3VyZToxNTMxMzogJD8gPSAwDQpjb25maWd1cmU6MTUzMTM6IHJlc3VsdDogeWVzDQpjb25m
aWd1cmU6MTUzMTM6IGNoZWNraW5nIGZvciBzeXMvc29ja2V0LmgNCmNvbmZpZ3VyZToxNTMxMzog
cmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTMxMzogY2hlY2tpbmcgc3lzL2lvY3RsLmggdXNhYmls
aXR5DQpjb25maWd1cmU6MTUzMTM6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTox
NTMxMzogJD8gPSAwDQpjb25maWd1cmU6MTUzMTM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUz
MTM6IGNoZWNraW5nIHN5cy9pb2N0bC5oIHByZXNlbmNlDQpjb25maWd1cmU6MTUzMTM6IGNjIC1F
ICBjb25mdGVzdC5jDQpjb25maWd1cmU6MTUzMTM6ICQ/ID0gMA0KY29uZmlndXJlOjE1MzEzOiBy
ZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1MzEzOiBjaGVja2luZyBmb3Igc3lzL2lvY3RsLmgNCmNv
bmZpZ3VyZToxNTMxMzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTMxMzogY2hlY2tpbmcgc3lz
L3RpbWUuaCB1c2FiaWxpdHkNCmNvbmZpZ3VyZToxNTMxMzogY2MgLWMgICBjb25mdGVzdC5jID4m
NQ0KY29uZmlndXJlOjE1MzEzOiAkPyA9IDANCmNvbmZpZ3VyZToxNTMxMzogcmVzdWx0OiB5ZXMN
CmNvbmZpZ3VyZToxNTMxMzogY2hlY2tpbmcgc3lzL3RpbWUuaCBwcmVzZW5jZQ0KY29uZmlndXJl
OjE1MzEzOiBjYyAtRSAgY29uZnRlc3QuYw0KY29uZmlndXJlOjE1MzEzOiAkPyA9IDANCmNvbmZp
Z3VyZToxNTMxMzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTMxMzogY2hlY2tpbmcgZm9yIHN5
cy90aW1lLmgNCmNvbmZpZ3VyZToxNTMxMzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTMyNjog
Y2hlY2tpbmcgYXJwYS9pbmV0LmggdXNhYmlsaXR5DQpjb25maWd1cmU6MTUzMjY6IGNjIC1jICAg
Y29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToxNTMyNjogJD8gPSAwDQpjb25maWd1cmU6MTUzMjY6
IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUzMjY6IGNoZWNraW5nIGFycGEvaW5ldC5oIHByZXNl
bmNlDQpjb25maWd1cmU6MTUzMjY6IGNjIC1FICBjb25mdGVzdC5jDQpjb25maWd1cmU6MTUzMjY6
ICQ/ID0gMA0KY29uZmlndXJlOjE1MzI2OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1MzI2OiBj
aGVja2luZyBmb3IgYXJwYS9pbmV0LmgNCmNvbmZpZ3VyZToxNTMyNjogcmVzdWx0OiB5ZXMNCmNv
bmZpZ3VyZToxNTMyNjogY2hlY2tpbmcgbmV0aW5ldC9pbi5oIHVzYWJpbGl0eQ0KY29uZmlndXJl
OjE1MzI2OiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MTUzMjY6ICQ/ID0gMA0K
Y29uZmlndXJlOjE1MzI2OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1MzI2OiBjaGVja2luZyBu
ZXRpbmV0L2luLmggcHJlc2VuY2UNCmNvbmZpZ3VyZToxNTMyNjogY2MgLUUgIGNvbmZ0ZXN0LmMN
CmNvbmZpZ3VyZToxNTMyNjogJD8gPSAwDQpjb25maWd1cmU6MTUzMjY6IHJlc3VsdDogeWVzDQpj
b25maWd1cmU6MTUzMjY6IGNoZWNraW5nIGZvciBuZXRpbmV0L2luLmgNCmNvbmZpZ3VyZToxNTMy
NjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTMzODogY2hlY2tpbmcgc3lzL3VuLmggdXNhYmls
aXR5DQpjb25maWd1cmU6MTUzMzg6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTox
NTMzODogJD8gPSAwDQpjb25maWd1cmU6MTUzMzg6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUz
Mzg6IGNoZWNraW5nIHN5cy91bi5oIHByZXNlbmNlDQpjb25maWd1cmU6MTUzMzg6IGNjIC1FICBj
b25mdGVzdC5jDQpjb25maWd1cmU6MTUzMzg6ICQ/ID0gMA0KY29uZmlndXJlOjE1MzM4OiByZXN1
bHQ6IHllcw0KY29uZmlndXJlOjE1MzM4OiBjaGVja2luZyBmb3Igc3lzL3VuLmgNCmNvbmZpZ3Vy
ZToxNTMzODogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTM2NzogY2hlY2tpbmcgd2luZG93cy5o
IHVzYWJpbGl0eQ0KY29uZmlndXJlOjE1MzY3OiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQoiY29u
ZnRlc3QuYyIsIGxpbmUgNzg6IGVycm9yICMyMDA1LUQ6IGNvdWxkIG5vdCBvcGVuIHNvdXJjZSBm
aWxlICJ3aW5kb3dzLmgiDQogICNpbmNsdWRlIDx3aW5kb3dzLmg+DQogICAgICAgICAgICAgICAg
ICAgICAgXg0KDQoxIGVycm9yIGRldGVjdGVkIGluIHRoZSBjb21waWxhdGlvbiBvZiAiY29uZnRl
c3QuYyIuDQpjb25maWd1cmU6MTUzNjc6ICQ/ID0gMg0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh
bSB3YXM6DQp8IC8qIGNvbmZkZWZzLmggKi8NCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNz
aDIiDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIg0KfCAjZGVmaW5lIFBBQ0tB
R0VfVkVSU0lPTiAiLSINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIg0KfCAj
ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSINCnwg
I2RlZmluZSBQQUNLQUdFX1VSTCAiIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiDQp8ICNk
ZWZpbmUgVkVSU0lPTiAiLSINCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhB
VkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUg
SEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFW
RV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVf
SU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9V
TklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxDQp8ICNkZWZpbmUgTkVFRF9SRUVO
VFJBTlQgMQ0KfCAjaWZuZGVmIF9SRUVOVFJBTlQNCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQNCnwg
I2VuZGlmDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBMVF9PQkpESVIgIi5s
aWJzLyINCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQ0KfCAjZGVmaW5lIF9GSUxFX09GRlNF
VF9CSVRTIDY0DQp8ICNkZWZpbmUgSEFWRV9MSUJTU0wgMQ0KfCAjZGVmaW5lIExJQlNTSDJfREhf
R0VYX05FVyAxDQp8ICNkZWZpbmUgSEFWRV9FUlJOT19IIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRM
X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx
DQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQ0K
fCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRf
SCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElN
RV9IIDENCnwgI2RlZmluZSBIQVZFX0FSUEFfSU5FVF9IIDENCnwgI2RlZmluZSBIQVZFX05FVElO
RVRfSU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxDQp8IC8qIGVuZCBjb25mZGVmcy5o
LiAgKi8NCnwgI2luY2x1ZGUgPHN0ZGlvLmg+DQp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19IDQp8
ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQp8ICNlbmRpZg0KfCAjaWZkZWYgSEFWRV9TWVNfU1RB
VF9IDQp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4NCnwgI2VuZGlmDQp8ICNpZmRlZiBTVERDX0hF
QURFUlMNCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4NCnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4NCnwg
I2Vsc2UNCnwgIyBpZmRlZiBIQVZFX1NURExJQl9IDQp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPg0K
fCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWZkZWYgSEFWRV9TVFJJTkdfSA0KfCAjIGlmICFkZWZp
bmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gNCnwgIyAgaW5jbHVkZSA8
bWVtb3J5Lmg+DQp8ICMgZW5kaWYNCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4NCnwgI2VuZGlmDQp8
ICNpZmRlZiBIQVZFX1NUUklOR1NfSA0KfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4NCnwgI2VuZGlm
DQp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gNCnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPg0KfCAj
ZW5kaWYNCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gNCnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4NCnwg
I2VuZGlmDQp8ICNpZmRlZiBIQVZFX1VOSVNURF9IDQp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+DQp8
ICNlbmRpZg0KfCAjaW5jbHVkZSA8d2luZG93cy5oPg0KY29uZmlndXJlOjE1MzY3OiByZXN1bHQ6
IG5vDQpjb25maWd1cmU6MTUzNjc6IGNoZWNraW5nIHdpbmRvd3MuaCBwcmVzZW5jZQ0KY29uZmln
dXJlOjE1MzY3OiBjYyAtRSAgY29uZnRlc3QuYw0KImNvbmZ0ZXN0LmMiLCBsaW5lIDQ1OiBlcnJv
ciAjMjAwNS1EOiBjb3VsZCBub3Qgb3BlbiBzb3VyY2UgZmlsZSAid2luZG93cy5oIg0KICAjaW5j
bHVkZSA8d2luZG93cy5oPg0KICAgICAgICAgICAgICAgICAgICAgIF4NCg0KMSBlcnJvciBkZXRl
Y3RlZCBpbiB0aGUgY29tcGlsYXRpb24gb2YgImNvbmZ0ZXN0LmMiLg0KY29uZmlndXJlOjE1MzY3
OiAkPyA9IDINCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5o
ICovDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIg0KfCAjZGVmaW5lIFBBQ0tBR0Vf
VEFSTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iDQp8ICNkZWZp
bmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S
VCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiDQp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIN
CnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIg0KfCAjZGVmaW5lIFZFUlNJT04gIi0iDQp8ICNk
ZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2Rl
ZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVm
aW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5l
IEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5l
IEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhB
VkVfTE9OR0xPTkcgMQ0KfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDENCnwgI2lmbmRlZiBfUkVF
TlRSQU5UDQp8ICMgIGRlZmluZSBfUkVFTlRSQU5UDQp8ICNlbmRpZg0KfCAjZGVmaW5lIEhBVkVf
RExGQ05fSCAxDQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8iDQp8ICNkZWZpbmUgV09SRFNf
QklHRU5ESUFOIDENCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NA0KfCAjZGVmaW5lIEhB
VkVfTElCU1NMIDENCnwgI2RlZmluZSBMSUJTU0gyX0RIX0dFWF9ORVcgMQ0KfCAjZGVmaW5lIEhB
VkVfRVJSTk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX1NU
RElPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5JU1RE
X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TRUxF
Q1RfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lT
X0lPQ1RMX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQp8ICNkZWZpbmUgSEFWRV9B
UlBBX0lORVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQ0KfCAjZGVmaW5lIEhB
VkVfU1lTX1VOX0ggMQ0KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8ICNpbmNsdWRlIDx3aW5k
b3dzLmg+DQpjb25maWd1cmU6MTUzNjc6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToxNTM2NzogY2hl
Y2tpbmcgZm9yIHdpbmRvd3MuaA0KY29uZmlndXJlOjE1MzY3OiByZXN1bHQ6IG5vDQpjb25maWd1
cmU6MTUzNjc6IGNoZWNraW5nIHdpbnNvY2syLmggdXNhYmlsaXR5DQpjb25maWd1cmU6MTUzNjc6
IGNjIC1jICAgY29uZnRlc3QuYyA+JjUNCiJjb25mdGVzdC5jIiwgbGluZSA3ODogZXJyb3IgIzIw
MDUtRDogY291bGQgbm90IG9wZW4gc291cmNlIGZpbGUgIndpbnNvY2syLmgiDQogICNpbmNsdWRl
IDx3aW5zb2NrMi5oPg0KICAgICAgICAgICAgICAgICAgICAgICBeDQoNCjEgZXJyb3IgZGV0ZWN0
ZWQgaW4gdGhlIGNvbXBpbGF0aW9uIG9mICJjb25mdGVzdC5jIi4NCmNvbmZpZ3VyZToxNTM2Nzog
JD8gPSAyDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaCAq
Lw0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdFX1RB
Uk5BTUUgImxpYnNzaDIiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0KfCAjZGVmaW5l
IFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg
ImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiDQp8
ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9OICItIg0KfCAjZGVm
aW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZp
bmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmlu
ZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBI
QVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBI
QVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZF
X0xPTkdMT05HIDENCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAxDQp8ICNpZm5kZWYgX1JFRU5U
UkFOVA0KfCAjICBkZWZpbmUgX1JFRU5UUkFOVA0KfCAjZW5kaWYNCnwgI2RlZmluZSBIQVZFX0RM
RkNOX0ggMQ0KfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIg0KfCAjZGVmaW5lIFdPUkRTX0JJ
R0VORElBTiAxDQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQNCnwgI2RlZmluZSBIQVZF
X0xJQlNTTCAxDQp8ICNkZWZpbmUgTElCU1NIMl9ESF9HRVhfTkVXIDENCnwgI2RlZmluZSBIQVZF
X0VSUk5PX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJ
T19IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I
IDENCnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNU
X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19J
T0NUTF9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQVJQ
QV9JTkVUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9IIDENCnwgI2RlZmluZSBIQVZF
X1NZU19VTl9IIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3RkaW8u
aD4NCnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gNCnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4N
CnwgI2VuZGlmDQp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gNCnwgIyBpbmNsdWRlIDxzeXMvc3Rh
dC5oPg0KfCAjZW5kaWYNCnwgI2lmZGVmIFNURENfSEVBREVSUw0KfCAjIGluY2x1ZGUgPHN0ZGxp
Yi5oPg0KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPg0KfCAjZWxzZQ0KfCAjIGlmZGVmIEhBVkVfU1RE
TElCX0gNCnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8ICNp
ZmRlZiBIQVZFX1NUUklOR19IDQp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu
ZWQgSEFWRV9NRU1PUllfSA0KfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4NCnwgIyBlbmRpZg0KfCAj
IGluY2x1ZGUgPHN0cmluZy5oPg0KfCAjZW5kaWYNCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19IDQp8
ICMgaW5jbHVkZSA8c3RyaW5ncy5oPg0KfCAjZW5kaWYNCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNf
SA0KfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+DQp8ICNlbmRpZg0KfCAjaWZkZWYgSEFWRV9TVERJ
TlRfSA0KfCAjIGluY2x1ZGUgPHN0ZGludC5oPg0KfCAjZW5kaWYNCnwgI2lmZGVmIEhBVkVfVU5J
U1REX0gNCnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4NCnwgI2VuZGlmDQp8ICNpbmNsdWRlIDx3aW5z
b2NrMi5oPg0KY29uZmlndXJlOjE1MzY3OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MTUzNjc6IGNo
ZWNraW5nIHdpbnNvY2syLmggcHJlc2VuY2UNCmNvbmZpZ3VyZToxNTM2NzogY2MgLUUgIGNvbmZ0
ZXN0LmMNCiJjb25mdGVzdC5jIiwgbGluZSA0NTogZXJyb3IgIzIwMDUtRDogY291bGQgbm90IG9w
ZW4gc291cmNlIGZpbGUgIndpbnNvY2syLmgiDQogICNpbmNsdWRlIDx3aW5zb2NrMi5oPg0KICAg
ICAgICAgICAgICAgICAgICAgICBeDQoNCjEgZXJyb3IgZGV0ZWN0ZWQgaW4gdGhlIGNvbXBpbGF0
aW9uIG9mICJjb25mdGVzdC5jIi4NCmNvbmZpZ3VyZToxNTM2NzogJD8gPSAyDQpjb25maWd1cmU6
IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaCAqLw0KfCAjZGVmaW5lIFBBQ0tB
R0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiDQp8
ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJs
aWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29v
bC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiDQp8ICNkZWZpbmUgUEFDS0FHRSAi
bGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9OICItIg0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAx
DQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I
IDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEN
CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8
ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwg
I2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDENCnwgI2Rl
ZmluZSBORUVEX1JFRU5UUkFOVCAxDQp8ICNpZm5kZWYgX1JFRU5UUkFOVA0KfCAjICBkZWZpbmUg
X1JFRU5UUkFOVA0KfCAjZW5kaWYNCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5l
IExUX09CSkRJUiAiLmxpYnMvIg0KfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxDQp8ICNkZWZp
bmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQNCnwgI2RlZmluZSBIQVZFX0xJQlNTTCAxDQp8ICNkZWZp
bmUgTElCU1NIMl9ESF9HRVhfTkVXIDENCnwgI2RlZmluZSBIQVZFX0VSUk5PX0ggMQ0KfCAjZGVm
aW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDENCnwgI2RlZmluZSBI
QVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZF
X1NZU19VSU9fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQ0KfCAjZGVmaW5lIEhB
VkVfU1lTX1NPQ0tFVF9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDENCnwgI2RlZmlu
ZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQVJQQV9JTkVUX0ggMQ0KfCAjZGVm
aW5lIEhBVkVfTkVUSU5FVF9JTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDENCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8d2luc29jazIuaD4NCmNvbmZpZ3VyZTox
NTM2NzogcmVzdWx0OiBubw0KY29uZmlndXJlOjE1MzY3OiBjaGVja2luZyBmb3Igd2luc29jazIu
aA0KY29uZmlndXJlOjE1MzY3OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MTUzNjc6IGNoZWNraW5n
IHdzMnRjcGlwLmggdXNhYmlsaXR5DQpjb25maWd1cmU6MTUzNjc6IGNjIC1jICAgY29uZnRlc3Qu
YyA+JjUNCiJjb25mdGVzdC5jIiwgbGluZSA3ODogZXJyb3IgIzIwMDUtRDogY291bGQgbm90IG9w
ZW4gc291cmNlIGZpbGUgIndzMnRjcGlwLmgiDQogICNpbmNsdWRlIDx3czJ0Y3BpcC5oPg0KICAg
ICAgICAgICAgICAgICAgICAgICBeDQoNCjEgZXJyb3IgZGV0ZWN0ZWQgaW4gdGhlIGNvbXBpbGF0
aW9uIG9mICJjb25mdGVzdC5jIi4NCmNvbmZpZ3VyZToxNTM2NzogJD8gPSAyDQpjb25maWd1cmU6
IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaCAqLw0KfCAjZGVmaW5lIFBBQ0tB
R0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiDQp8
ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJs
aWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29v
bC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiDQp8ICNkZWZpbmUgUEFDS0FHRSAi
bGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9OICItIg0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAx
DQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I
IDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEN
CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8
ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwg
I2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDENCnwgI2Rl
ZmluZSBORUVEX1JFRU5UUkFOVCAxDQp8ICNpZm5kZWYgX1JFRU5UUkFOVA0KfCAjICBkZWZpbmUg
X1JFRU5UUkFOVA0KfCAjZW5kaWYNCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5l
IExUX09CSkRJUiAiLmxpYnMvIg0KfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxDQp8ICNkZWZp
bmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQNCnwgI2RlZmluZSBIQVZFX0xJQlNTTCAxDQp8ICNkZWZp
bmUgTElCU1NIMl9ESF9HRVhfTkVXIDENCnwgI2RlZmluZSBIQVZFX0VSUk5PX0ggMQ0KfCAjZGVm
aW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDENCnwgI2RlZmluZSBI
QVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZF
X1NZU19VSU9fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQ0KfCAjZGVmaW5lIEhB
VkVfU1lTX1NPQ0tFVF9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDENCnwgI2RlZmlu
ZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQVJQQV9JTkVUX0ggMQ0KfCAjZGVm
aW5lIEhBVkVfTkVUSU5FVF9JTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDENCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3RkaW8uaD4NCnwgI2lmZGVmIEhBVkVf
U1lTX1RZUEVTX0gNCnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCnwgI2VuZGlmDQp8ICNpZmRl
ZiBIQVZFX1NZU19TVEFUX0gNCnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPg0KfCAjZW5kaWYNCnwg
I2lmZGVmIFNURENfSEVBREVSUw0KfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGluY2x1ZGUg
PHN0ZGRlZi5oPg0KfCAjZWxzZQ0KfCAjIGlmZGVmIEhBVkVfU1RETElCX0gNCnwgIyAgaW5jbHVk
ZSA8c3RkbGliLmg+DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8ICNpZmRlZiBIQVZFX1NUUklOR19I
DQp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSA0K
fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4NCnwgIyBlbmRpZg0KfCAjIGluY2x1ZGUgPHN0cmluZy5o
Pg0KfCAjZW5kaWYNCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19IDQp8ICMgaW5jbHVkZSA8c3RyaW5n
cy5oPg0KfCAjZW5kaWYNCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSA0KfCAjIGluY2x1ZGUgPGlu
dHR5cGVzLmg+DQp8ICNlbmRpZg0KfCAjaWZkZWYgSEFWRV9TVERJTlRfSA0KfCAjIGluY2x1ZGUg
PHN0ZGludC5oPg0KfCAjZW5kaWYNCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gNCnwgIyBpbmNsdWRl
IDx1bmlzdGQuaD4NCnwgI2VuZGlmDQp8ICNpbmNsdWRlIDx3czJ0Y3BpcC5oPg0KY29uZmlndXJl
OjE1MzY3OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MTUzNjc6IGNoZWNraW5nIHdzMnRjcGlwLmgg
cHJlc2VuY2UNCmNvbmZpZ3VyZToxNTM2NzogY2MgLUUgIGNvbmZ0ZXN0LmMNCiJjb25mdGVzdC5j
IiwgbGluZSA0NTogZXJyb3IgIzIwMDUtRDogY291bGQgbm90IG9wZW4gc291cmNlIGZpbGUgIndz
MnRjcGlwLmgiDQogICNpbmNsdWRlIDx3czJ0Y3BpcC5oPg0KICAgICAgICAgICAgICAgICAgICAg
ICBeDQoNCjEgZXJyb3IgZGV0ZWN0ZWQgaW4gdGhlIGNvbXBpbGF0aW9uIG9mICJjb25mdGVzdC5j
Ii4NCmNvbmZpZ3VyZToxNTM2NzogJD8gPSAyDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh
czoNCnwgLyogY29uZmRlZnMuaCAqLw0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIN
CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiDQp8ICNkZWZpbmUgUEFDS0FHRV9W
RVJTSU9OICItIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iDQp8ICNkZWZp
bmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIg0KfCAjZGVm
aW5lIFBBQ0tBR0VfVVJMICIiDQp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiINCnwgI2RlZmlu
ZSBWRVJTSU9OICItIg0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9T
WVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZF
X1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01F
TU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRU
WVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNU
RF9IIDENCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDENCnwgI2RlZmluZSBORUVEX1JFRU5UUkFO
VCAxDQp8ICNpZm5kZWYgX1JFRU5UUkFOVA0KfCAjICBkZWZpbmUgX1JFRU5UUkFOVA0KfCAjZW5k
aWYNCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMv
Ig0KfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxDQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJ
VFMgNjQNCnwgI2RlZmluZSBIQVZFX0xJQlNTTCAxDQp8ICNkZWZpbmUgTElCU1NIMl9ESF9HRVhf
TkVXIDENCnwgI2RlZmluZSBIQVZFX0VSUk5PX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAx
DQp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwg
I2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxDQp8ICNk
ZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEN
CnwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0gg
MQ0KfCAjZGVmaW5lIEhBVkVfQVJQQV9JTkVUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9J
Tl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAq
Lw0KfCAjaW5jbHVkZSA8d3MydGNwaXAuaD4NCmNvbmZpZ3VyZToxNTM2NzogcmVzdWx0OiBubw0K
Y29uZmlndXJlOjE1MzY3OiBjaGVja2luZyBmb3Igd3MydGNwaXAuaA0KY29uZmlndXJlOjE1MzY3
OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MTUzODg6IGNoZWNraW5nIGZvciBwb2xsDQpjb25maWd1
cmU6MTUzODg6IGNjIC1vIGNvbmZ0ZXN0ICAgIGNvbmZ0ZXN0LmMgID4mNQ0KImNvbmZ0ZXN0LmMi
LCBsaW5lIDgxOiB3YXJuaW5nICMyMTExLUQ6IHN0YXRlbWVudCBpcyB1bnJlYWNoYWJsZQ0KICAg
IHJldHVybiAwOw0KICAgIF4NCg0KY29uZmlndXJlOjE1Mzg4OiAkPyA9IDANCmNvbmZpZ3VyZTox
NTM4ODogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTQwMzogY2hlY2tpbmcgZm9yIGdldHRpbWVv
ZmRheQ0KY29uZmlndXJlOjE1NDAzOiBjYyAtbyBjb25mdGVzdCAgICBjb25mdGVzdC5jICA+JjUN
CiJjb25mdGVzdC5jIiwgbGluZSA4Mjogd2FybmluZyAjMjExMS1EOiBzdGF0ZW1lbnQgaXMgdW5y
ZWFjaGFibGUNCiAgICByZXR1cm4gMDsNCiAgICBeDQoNCmNvbmZpZ3VyZToxNTQwMzogJD8gPSAw
DQpjb25maWd1cmU6MTU0MDM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTU0MDM6IGNoZWNraW5n
IGZvciBzZWxlY3QNCmNvbmZpZ3VyZToxNTQwMzogY2MgLW8gY29uZnRlc3QgICAgY29uZnRlc3Qu
YyAgPiY1DQoiY29uZnRlc3QuYyIsIGxpbmUgODM6IHdhcm5pbmcgIzIxMTEtRDogc3RhdGVtZW50
IGlzIHVucmVhY2hhYmxlDQogICAgcmV0dXJuIDA7DQogICAgXg0KDQpjb25maWd1cmU6MTU0MDM6
ICQ/ID0gMA0KY29uZmlndXJlOjE1NDAzOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1NDAzOiBj
aGVja2luZyBmb3Igc3RydG9sbA0KY29uZmlndXJlOjE1NDAzOiBjYyAtbyBjb25mdGVzdCAgICBj
b25mdGVzdC5jICA+JjUNCiJjb25mdGVzdC5jIiwgbGluZSA4NDogd2FybmluZyAjMjExMS1EOiBz
dGF0ZW1lbnQgaXMgdW5yZWFjaGFibGUNCiAgICByZXR1cm4gMDsNCiAgICBeDQoNCmNvbmZpZ3Vy
ZToxNTQwMzogJD8gPSAwDQpjb25maWd1cmU6MTU0MDM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6
MTU0NTc6IGNoZWNraW5nIGZvciBzaXplX3QNCmNvbmZpZ3VyZToxNTQ1NzogY2MgLWMgICBjb25m
dGVzdC5jID4mNQ0KImNvbmZ0ZXN0LmMiLCBsaW5lIDg4OiB3YXJuaW5nICMyMTExLUQ6IHN0YXRl
bWVudCBpcyB1bnJlYWNoYWJsZQ0KICAgIHJldHVybiAwOw0KICAgIF4NCg0KY29uZmlndXJlOjE1
NDU3OiAkPyA9IDANCmNvbmZpZ3VyZToxNTQ1NzogY2MgLWMgICBjb25mdGVzdC5jID4mNQ0KImNv
bmZ0ZXN0LmMiLCBsaW5lIDg1OiBlcnJvciAjMjAyOTogZXhwZWN0ZWQgYW4gZXhwcmVzc2lvbg0K
ICBpZiAoc2l6ZW9mICgoc2l6ZV90KSkpDQogICAgICAgICAgICAgICAgICAgICAgXg0KDQoxIGVy
cm9yIGRldGVjdGVkIGluIHRoZSBjb21waWxhdGlvbiBvZiAiY29uZnRlc3QuYyIuDQpjb25maWd1
cmU6MTU0NTc6ICQ/ID0gMg0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNv
bmZkZWZzLmggKi8NCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiDQp8ICNkZWZpbmUg
UEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIN
CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIg0KfCAjZGVmaW5lIFBBQ0tBR0Vf
QlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSINCnwgI2RlZmluZSBQQUNLQUdF
X1VSTCAiIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiDQp8ICNkZWZpbmUgVkVSU0lPTiAi
LSINCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg
MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx
DQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8
ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8
ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNk
ZWZpbmUgSEFWRV9MT05HTE9ORyAxDQp8ICNkZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQ0KfCAjaWZu
ZGVmIF9SRUVOVFJBTlQNCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQNCnwgI2VuZGlmDQp8ICNkZWZp
bmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyINCnwgI2RlZmlu
ZSBXT1JEU19CSUdFTkRJQU4gMQ0KfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0DQp8ICNk
ZWZpbmUgSEFWRV9MSUJTU0wgMQ0KfCAjZGVmaW5lIExJQlNTSDJfREhfR0VYX05FVyAxDQp8ICNk
ZWZpbmUgSEFWRV9FUlJOT19IIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5l
IEhBVkVfU1RESU9fSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFW
RV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQ0KfCAjZGVmaW5lIEhBVkVf
U1lTX1NFTEVDVF9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxDQp8ICNkZWZpbmUg
SEFWRV9TWVNfSU9DVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDENCnwgI2RlZmlu
ZSBIQVZFX0FSUEFfSU5FVF9IIDENCnwgI2RlZmluZSBIQVZFX05FVElORVRfSU5fSCAxDQp8ICNk
ZWZpbmUgSEFWRV9TWVNfVU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9QT0xMIDENCnwgI2RlZmluZSBI
QVZFX0dFVFRJTUVPRkRBWSAxDQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQ0KfCAjZGVmaW5lIEhB
VkVfU1RSVE9MTCAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1ZGUgPHN0ZGlv
Lmg+DQp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19IDQp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+
DQp8ICNlbmRpZg0KfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9IDQp8ICMgaW5jbHVkZSA8c3lzL3N0
YXQuaD4NCnwgI2VuZGlmDQp8ICNpZmRlZiBTVERDX0hFQURFUlMNCnwgIyBpbmNsdWRlIDxzdGRs
aWIuaD4NCnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4NCnwgI2Vsc2UNCnwgIyBpZmRlZiBIQVZFX1NU
RExJQl9IDQp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAj
aWZkZWYgSEFWRV9TVFJJTkdfSA0KfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZp
bmVkIEhBVkVfTUVNT1JZX0gNCnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+DQp8ICMgZW5kaWYNCnwg
IyBpbmNsdWRlIDxzdHJpbmcuaD4NCnwgI2VuZGlmDQp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSA0K
fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4NCnwgI2VuZGlmDQp8ICNpZmRlZiBIQVZFX0lOVFRZUEVT
X0gNCnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPg0KfCAjZW5kaWYNCnwgI2lmZGVmIEhBVkVfU1RE
SU5UX0gNCnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4NCnwgI2VuZGlmDQp8ICNpZmRlZiBIQVZFX1VO
SVNURF9IDQp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+DQp8ICNlbmRpZg0KfCBpbnQNCnwgbWFpbiAo
KQ0KfCB7DQp8IGlmIChzaXplb2YgKChzaXplX3QpKSkNCnwgCSAgICByZXR1cm4gMDsNCnwgICA7
DQp8ICAgcmV0dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZToxNTQ1NzogcmVzdWx0OiB5ZXMNCmNvbmZp
Z3VyZToxNTQ3MDogY2hlY2tpbmcgZm9yIHdvcmtpbmcgYWxsb2NhLmgNCmNvbmZpZ3VyZToxNTQ4
NzogY2MgLW8gY29uZnRlc3QgICAgY29uZnRlc3QuYyAgPiY1DQpjb25maWd1cmU6MTU0ODc6ICQ/
ID0gMA0KY29uZmlndXJlOjE1NDk1OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1NTAzOiBjaGVj
a2luZyBmb3IgYWxsb2NhDQpjb25maWd1cmU6MTU1NDA6IGNjIC1vIGNvbmZ0ZXN0ICAgIGNvbmZ0
ZXN0LmMgID4mNQ0KY29uZmlndXJlOjE1NTQwOiAkPyA9IDANCmNvbmZpZ3VyZToxNTU0ODogcmVz
dWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTY1OTogY2hlY2tpbmcgZm9yIGFuIEFOU0kgQy1jb25mb3Jt
aW5nIGNvbnN0DQpjb25maWd1cmU6MTU3MjQ6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUNCiJjb25m
dGVzdC5jIiwgbGluZSA4MDogd2FybmluZyAjMjU0OS1EOiB2YXJpYWJsZSAidCIgaXMgdXNlZCBi
ZWZvcmUgaXRzIHZhbHVlIGlzIHNldA0KICAgICAgKnQrKyA9IDA7DQogICAgICAgXg0KDQoiY29u
ZnRlc3QuYyIsIGxpbmUgOTY6IHdhcm5pbmcgIzI1NDktRDogdmFyaWFibGUgImIiIGlzIHVzZWQg
YmVmb3JlIGl0cyB2YWx1ZSBpcyBzZXQNCiAgICAgIHN0cnVjdCBzICpiOyBiLT5qID0gNTsNCiAg
ICAgICAgICAgICAgICAgICBeDQoNCiJjb25mdGVzdC5jIiwgbGluZSAxMDI6IHdhcm5pbmcgIzI1
NDktRDogdmFyaWFibGUgImNzIiBpcyB1c2VkIGJlZm9yZSBpdHMgdmFsdWUgaXMgc2V0DQogICAg
cmV0dXJuICFjc1swXSAmJiAhemVyby54Ow0KICAgICAgICAgICAgXg0KDQoiY29uZnRlc3QuYyIs
IGxpbmUgMTA2OiB3YXJuaW5nICMyMTExLUQ6IHN0YXRlbWVudCBpcyB1bnJlYWNoYWJsZQ0KICAg
IHJldHVybiAwOw0KICAgIF4NCg0KY29uZmlndXJlOjE1NzI0OiAkPyA9IDANCmNvbmZpZ3VyZTox
NTczMTogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTczOTogY2hlY2tpbmcgZm9yIGlubGluZQ0K
Y29uZmlndXJlOjE1NzU1OiBjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1DQoiY29uZnRlc3QuYyIsIGxp
bmUgNTM6IGVycm9yICMyMDIwOiBpZGVudGlmaWVyICJpbmxpbmUiIGlzIHVuZGVmaW5lZA0KICBz
dGF0aWMgaW5saW5lIGZvb190IHN0YXRpY19mb28gKCkge3JldHVybiAwOyB9DQogICAgICAgICBe
DQoNCiJjb25mdGVzdC5jIiwgbGluZSA1MzogZXJyb3IgIzIxMDE6ICJmb29fdCIgaGFzIGFscmVh
ZHkgYmVlbiBkZWNsYXJlZCBpbiB0aGUgY3VycmVudCBzY29wZQ0KICBzdGF0aWMgaW5saW5lIGZv
b190IHN0YXRpY19mb28gKCkge3JldHVybiAwOyB9DQogICAgICAgICAgICAgICAgXg0KDQoiY29u
ZnRlc3QuYyIsIGxpbmUgNTM6IGVycm9yICMyMDY1OiBleHBlY3RlZCBhICI7Ig0KICBzdGF0aWMg
aW5saW5lIGZvb190IHN0YXRpY19mb28gKCkge3JldHVybiAwOyB9DQogICAgICAgICAgICAgICAg
ICAgICAgXg0KDQpBdCBlbmQgb2Ygc291cmNlOiB3YXJuaW5nICMyMDEyLUQ6IHBhcnNpbmcgcmVz
dGFydHMgaGVyZSBhZnRlciBwcmV2aW91cyBzeW50YXggZXJyb3INCg0KMyBlcnJvcnMgZGV0ZWN0
ZWQgaW4gdGhlIGNvbXBpbGF0aW9uIG9mICJjb25mdGVzdC5jIi4NCmNvbmZpZ3VyZToxNTc1NTog
JD8gPSAyDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaCAq
Lw0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdFX1RB
Uk5BTUUgImxpYnNzaDIiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0KfCAjZGVmaW5l
IFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg
ImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiDQp8
ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiINCnwgI2RlZmluZSBWRVJTSU9OICItIg0KfCAjZGVm
aW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZp
bmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmlu
ZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBI
QVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBI
QVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZF
X0xPTkdMT05HIDENCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAxDQp8ICNpZm5kZWYgX1JFRU5U
UkFOVA0KfCAjICBkZWZpbmUgX1JFRU5UUkFOVA0KfCAjZW5kaWYNCnwgI2RlZmluZSBIQVZFX0RM
RkNOX0ggMQ0KfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIg0KfCAjZGVmaW5lIFdPUkRTX0JJ
R0VORElBTiAxDQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQNCnwgI2RlZmluZSBIQVZF
X0xJQlNTTCAxDQp8ICNkZWZpbmUgTElCU1NIMl9ESF9HRVhfTkVXIDENCnwgI2RlZmluZSBIQVZF
X0VSUk5PX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJ
T19IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I
IDENCnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNU
X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19J
T0NUTF9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQVJQ
QV9JTkVUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9IIDENCnwgI2RlZmluZSBIQVZF
X1NZU19VTl9IIDENCnwgI2RlZmluZSBIQVZFX1BPTEwgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUVElN
RU9GREFZIDENCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJUT0xM
IDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQV9IIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxDQp8
IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgI2lmbmRlZiBfX2NwbHVzcGx1cw0KfCB0eXBlZGVm
IGludCBmb29fdDsNCnwgc3RhdGljIGlubGluZSBmb29fdCBzdGF0aWNfZm9vICgpIHtyZXR1cm4g
MDsgfQ0KfCBpbmxpbmUgZm9vX3QgZm9vICgpIHtyZXR1cm4gMDsgfQ0KfCAjZW5kaWYNCnwgDQpj
b25maWd1cmU6MTU3NTU6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUNCiJjb25mdGVzdC5jIiwgbGlu
ZSA1MzogZXJyb3IgIzIwMjA6IGlkZW50aWZpZXIgIl9faW5saW5lX18iIGlzIHVuZGVmaW5lZA0K
ICBzdGF0aWMgX19pbmxpbmVfXyBmb29fdCBzdGF0aWNfZm9vICgpIHtyZXR1cm4gMDsgfQ0KICAg
ICAgICAgXg0KDQoiY29uZnRlc3QuYyIsIGxpbmUgNTM6IGVycm9yICMyMTAxOiAiZm9vX3QiIGhh
cyBhbHJlYWR5IGJlZW4gZGVjbGFyZWQgaW4gdGhlIGN1cnJlbnQgc2NvcGUNCiAgc3RhdGljIF9f
aW5saW5lX18gZm9vX3Qgc3RhdGljX2ZvbyAoKSB7cmV0dXJuIDA7IH0NCiAgICAgICAgICAgICAg
ICAgICAgXg0KDQoiY29uZnRlc3QuYyIsIGxpbmUgNTM6IGVycm9yICMyMDY1OiBleHBlY3RlZCBh
ICI7Ig0KICBzdGF0aWMgX19pbmxpbmVfXyBmb29fdCBzdGF0aWNfZm9vICgpIHtyZXR1cm4gMDsg
fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICBeDQoNCkF0IGVuZCBvZiBzb3VyY2U6IHdhcm5p
bmcgIzIwMTItRDogcGFyc2luZyByZXN0YXJ0cyBoZXJlIGFmdGVyIHByZXZpb3VzIHN5bnRheCBl
cnJvcg0KDQozIGVycm9ycyBkZXRlY3RlZCBpbiB0aGUgY29tcGlsYXRpb24gb2YgImNvbmZ0ZXN0
LmMiLg0KY29uZmlndXJlOjE1NzU1OiAkPyA9IDINCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g
d2FzOg0KfCAvKiBjb25mZGVmcy5oICovDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gy
Ig0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiINCnwgI2RlZmluZSBQQUNLQUdF
X1ZFUlNJT04gIi0iDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSINCnwgI2Rl
ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiDQp8ICNk
ZWZpbmUgUEFDS0FHRV9VUkwgIiINCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIg0KfCAjZGVm
aW5lIFZFUlNJT04gIi0iDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZF
X1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhB
VkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVf
TUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBIQVZFX0lO
VFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5J
U1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQ0KfCAjZGVmaW5lIE5FRURfUkVFTlRS
QU5UIDENCnwgI2lmbmRlZiBfUkVFTlRSQU5UDQp8ICMgIGRlZmluZSBfUkVFTlRSQU5UDQp8ICNl
bmRpZg0KfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxDQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGli
cy8iDQp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDENCnwgI2RlZmluZSBfRklMRV9PRkZTRVRf
QklUUyA2NA0KfCAjZGVmaW5lIEhBVkVfTElCU1NMIDENCnwgI2RlZmluZSBMSUJTU0gyX0RIX0dF
WF9ORVcgMQ0KfCAjZGVmaW5lIEhBVkVfRVJSTk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9I
IDENCnwgI2RlZmluZSBIQVZFX1NURElPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0K
fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDENCnwg
I2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0gg
MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVf
SCAxDQp8ICNkZWZpbmUgSEFWRV9BUlBBX0lORVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVU
X0lOX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQ0KfCAjZGVmaW5lIEhBVkVfUE9MTCAx
DQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEN
CnwgI2RlZmluZSBIQVZFX1NUUlRPTEwgMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQ0KfCAj
ZGVmaW5lIEhBVkVfQUxMT0NBIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaWZuZGVm
IF9fY3BsdXNwbHVzDQp8IHR5cGVkZWYgaW50IGZvb190Ow0KfCBzdGF0aWMgX19pbmxpbmVfXyBm
b29fdCBzdGF0aWNfZm9vICgpIHtyZXR1cm4gMDsgfQ0KfCBfX2lubGluZV9fIGZvb190IGZvbyAo
KSB7cmV0dXJuIDA7IH0NCnwgI2VuZGlmDQp8IA0KY29uZmlndXJlOjE1NzU1OiBjYyAtYyAgIGNv
bmZ0ZXN0LmMgPiY1DQoiY29uZnRlc3QuYyIsIGxpbmUgNTM6IHdhcm5pbmcgIzIxNzctRDogZnVu
Y3Rpb24gInN0YXRpY19mb28iIHdhcyBkZWNsYXJlZCBidXQgbmV2ZXIgcmVmZXJlbmNlZA0KICBz
dGF0aWMgX19pbmxpbmUgZm9vX3Qgc3RhdGljX2ZvbyAoKSB7cmV0dXJuIDA7IH0NCiAgICAgICAg
ICAgICAgICAgICAgICAgIF4NCg0KY29uZmlndXJlOjE1NzU1OiAkPyA9IDANCmNvbmZpZ3VyZTox
NTc2MzogcmVzdWx0OiBfX2lubGluZQ0KY29uZmlndXJlOjE1NzgzOiBjaGVja2luZyBub24tYmxv
Y2tpbmcgc29ja2V0cyBzdHlsZQ0KY29uZmlndXJlOjE1ODIxOiBjYyAtYyAgIGNvbmZ0ZXN0LmMg
PiY1DQoiY29uZnRlc3QuYyIsIGxpbmUgODE6IHdhcm5pbmcgIzI1NDktRDogdmFyaWFibGUgImZs
YWdzIiBpcyB1c2VkIGJlZm9yZSBpdHMgdmFsdWUgaXMgc2V0DQogICAgaW50IGZsYWdzID0gZmNu
dGwoc29ja2V0LCBGX1NFVEZMLCBmbGFncyB8IE9fTk9OQkxPQ0spOw0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXg0KDQoiY29uZnRlc3QuYyIsIGxpbmUgODE6IHdhcm5p
bmcgIzI1NDktRDogdmFyaWFibGUgInNvY2tldCIgaXMgdXNlZCBiZWZvcmUgaXRzIHZhbHVlIGlz
IHNldA0KICAgIGludCBmbGFncyA9IGZjbnRsKHNvY2tldCwgRl9TRVRGTCwgZmxhZ3MgfCBPX05P
TkJMT0NLKTsNCiAgICAgICAgICAgICAgICAgICAgICBeDQoNCmNvbmZpZ3VyZToxNTgyMTogJD8g
PSAwDQpjb25maWd1cmU6MTU5ODI6IHJlc3VsdDogT19OT05CTE9DSw0KY29uZmlndXJlOjE2MTQ4
OiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMNCg0KIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAj
Iw0KIyMgUnVubmluZyBjb25maWcuc3RhdHVzLiAjIw0KIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAjIw0KDQpUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IGxpYnNzaDIgY29uZmlnLnN0YXR1cyAt
LCB3aGljaCB3YXMNCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42OC4gIEludm9jYXRpb24g
Y29tbWFuZCBsaW5lIHdhcw0KDQogIENPTkZJR19GSUxFUyAgICA9IA0KICBDT05GSUdfSEVBREVS
UyAgPSANCiAgQ09ORklHX0xJTktTICAgID0gDQogIENPTkZJR19DT01NQU5EUyA9IA0KICAkIC4v
Y29uZmlnLnN0YXR1cyANCg0Kb24gaHhwY3NkZXYwMQ0KDQpjb25maWcuc3RhdHVzOjExNDg6IGNy
ZWF0aW5nIE1ha2VmaWxlDQpjb25maWcuc3RhdHVzOjExNDg6IGNyZWF0aW5nIHNyYy9NYWtlZmls
ZQ0KY29uZmlnLnN0YXR1czoxMTQ4OiBjcmVhdGluZyB0ZXN0cy9NYWtlZmlsZQ0KY29uZmlnLnN0
YXR1czoxMTQ4OiBjcmVhdGluZyBleGFtcGxlL01ha2VmaWxlDQpjb25maWcuc3RhdHVzOjExNDg6
IGNyZWF0aW5nIGRvY3MvTWFrZWZpbGUNCmNvbmZpZy5zdGF0dXM6MTE0ODogY3JlYXRpbmcgbGli
c3NoMi5wYw0KY29uZmlnLnN0YXR1czoxMTQ4OiBjcmVhdGluZyBzcmMvbGlic3NoMl9jb25maWcu
aA0KY29uZmlnLnN0YXR1czoxMTQ4OiBjcmVhdGluZyBleGFtcGxlL2xpYnNzaDJfY29uZmlnLmgN
CmNvbmZpZy5zdGF0dXM6MTM3NzogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzDQpjb25maWcu
c3RhdHVzOjEzNzc6IGV4ZWN1dGluZyBsaWJ0b29sIGNvbW1hbmRzDQpjb25maWd1cmU6MTgzOTg6
IHN1bW1hcnkgb2YgYnVpbGQgb3B0aW9uczoNCg0KICB2ZXJzaW9uOiAgICAgICAgICAxLjQuNC0y
MDEzMDIxOQ0KICBIb3N0IHR5cGU6ICAgICAgICBpYTY0LWhwLWhwdXgxMS4zMQ0KICBJbnN0YWxs
IHByZWZpeDogICAvdXNyL2xvY2FsDQogIENvbXBpbGVyOiAgICAgICAgIGNjDQogIENvbXBpbGVy
IGZsYWdzOiAgIA0KICBMaWJyYXJ5IHR5cGVzOiAgICBTaGFyZWQ9eWVzLCBTdGF0aWM9eWVzDQog
IENyeXB0byBsaWJyYXJ5OiAgIG9wZW5zc2w6IHllcyAoQUVTLUNUUjogbm8pIGxpYmdjcnlwdDog
bm8NCiAgRGVidWcgYnVpbGQ6ICAgICAgbm8NCiAgQnVpbGQgZXhhbXBsZXM6ICAgeWVzDQogIFBh
dGggdG8gc3NoZDogICAgIC91c3Ivc2Jpbi9zc2hkIChvbmx5IGZvciBzZWxmLXRlc3RzKQ0KICBs
aWJ6IGNvbXByZXNzaW9uOiBubw0KDQoNCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMNCiMjIENhY2hl
IHZhcmlhYmxlcy4gIyMNCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMNCg0KYWNfY3ZfYnVpbGQ9aWE2
NC1ocC1ocHV4MTEuMzENCmFjX2N2X2NfYmlnZW5kaWFuPXllcw0KYWNfY3ZfY19jb21waWxlcl9n
bnU9bm8NCmFjX2N2X2NfY29uc3Q9eWVzDQphY19jdl9jX2lubGluZT1fX2lubGluZQ0KYWNfY3Zf
ZW52X0NDX3NldD0nJw0KYWNfY3ZfZW52X0NDX3ZhbHVlPScnDQphY19jdl9lbnZfQ0ZMQUdTX3Nl
dD0nJw0KYWNfY3ZfZW52X0NGTEFHU192YWx1ZT0nJw0KYWNfY3ZfZW52X0NQUEZMQUdTX3NldD0n
Jw0KYWNfY3ZfZW52X0NQUEZMQUdTX3ZhbHVlPScnDQphY19jdl9lbnZfQ1BQX3NldD0nJw0KYWNf
Y3ZfZW52X0NQUF92YWx1ZT0nJw0KYWNfY3ZfZW52X0xERkxBR1Nfc2V0PScnDQphY19jdl9lbnZf
TERGTEFHU192YWx1ZT0nJw0KYWNfY3ZfZW52X0xJQlNfc2V0PScnDQphY19jdl9lbnZfTElCU192
YWx1ZT0nJw0KYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3NldD0nJw0KYWNfY3ZfZW52X2J1aWxkX2Fs
aWFzX3ZhbHVlPScnDQphY19jdl9lbnZfaG9zdF9hbGlhc19zZXQ9JycNCmFjX2N2X2Vudl9ob3N0
X2FsaWFzX3ZhbHVlPScnDQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0nJw0KYWNfY3ZfZW52
X3RhcmdldF9hbGlhc192YWx1ZT0nJw0KYWNfY3ZfZnVuY19FVlBfYWVzXzEyOF9jdHI9bm8NCmFj
X2N2X2Z1bmNfYWxsb2NhX3dvcmtzPXllcw0KYWNfY3ZfZnVuY19nZXR0aW1lb2ZkYXk9eWVzDQph
Y19jdl9mdW5jX3BvbGw9eWVzDQphY19jdl9mdW5jX3NlbGVjdD15ZXMNCmFjX2N2X2Z1bmNfc3Ry
dG9sbD15ZXMNCmFjX2N2X2hlYWRlcl9hcnBhX2luZXRfaD15ZXMNCmFjX2N2X2hlYWRlcl9kbGZj
bl9oPXllcw0KYWNfY3ZfaGVhZGVyX2Vycm5vX2g9eWVzDQphY19jdl9oZWFkZXJfZmNudGxfaD15
ZXMNCmFjX2N2X2hlYWRlcl9pbnR0eXBlc19oPXllcw0KYWNfY3ZfaGVhZGVyX21lbW9yeV9oPXll
cw0KYWNfY3ZfaGVhZGVyX25ldGluZXRfaW5faD15ZXMNCmFjX2N2X2hlYWRlcl9zdGRjPXllcw0K
YWNfY3ZfaGVhZGVyX3N0ZGludF9oPXllcw0KYWNfY3ZfaGVhZGVyX3N0ZGlvX2g9eWVzDQphY19j
dl9oZWFkZXJfc3RkbGliX2g9eWVzDQphY19jdl9oZWFkZXJfc3RyaW5nX2g9eWVzDQphY19jdl9o
ZWFkZXJfc3RyaW5nc19oPXllcw0KYWNfY3ZfaGVhZGVyX3N5c19pb2N0bF9oPXllcw0KYWNfY3Zf
aGVhZGVyX3N5c19zZWxlY3RfaD15ZXMNCmFjX2N2X2hlYWRlcl9zeXNfc29ja2V0X2g9eWVzDQph
Y19jdl9oZWFkZXJfc3lzX3N0YXRfaD15ZXMNCmFjX2N2X2hlYWRlcl9zeXNfdGltZV9oPXllcw0K
YWNfY3ZfaGVhZGVyX3N5c190eXBlc19oPXllcw0KYWNfY3ZfaGVhZGVyX3N5c191aW9faD15ZXMN
CmFjX2N2X2hlYWRlcl9zeXNfdW5faD15ZXMNCmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMNCmFj
X2N2X2hlYWRlcl93aW5kb3dzX2g9bm8NCmFjX2N2X2hlYWRlcl93aW5zb2NrMl9oPW5vDQphY19j
dl9oZWFkZXJfd3MydGNwaXBfaD1ubw0KYWNfY3ZfaG9zdD1pYTY0LWhwLWhwdXgxMS4zMQ0KYWNf
Y3ZfbGlic3NsPXllcw0KYWNfY3ZfbGliej1ubw0KYWNfY3Zfb2JqZXh0PW8NCmFjX2N2X3BhdGhf
RUdSRVA9Jy91c3IvYmluL2dyZXAgLUUnDQphY19jdl9wYXRoX0ZHUkVQPScvdXNyL2Jpbi9ncmVw
IC1GJw0KYWNfY3ZfcGF0aF9HUkVQPS91c3IvYmluL2dyZXANCmFjX2N2X3BhdGhfU0VEPS91c3Iv
YmluL3NlZA0KYWNfY3ZfcGF0aF9TU0hEPS91c3Ivc2Jpbi9zc2hkDQphY19jdl9wcm9nX0FXSz1h
d2sNCmFjX2N2X3Byb2dfQ0M9Y2MNCmFjX2N2X3Byb2dfQ1BQPSdjYyAtRScNCmFjX2N2X3Byb2df
YWNfY3RfQVI9YXINCmFjX2N2X3Byb2dfYWNfY3RfRExMVE9PTD1kbGx0b29sDQphY19jdl9wcm9n
X2FjX2N0X01BTklGRVNUX1RPT0w9bXQNCmFjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUD1vYmpkdW1w
DQphY19jdl9wcm9nX2FjX2N0X1JBTkxJQj1yYW5saWINCmFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9
c3RyaXANCmFjX2N2X3Byb2dfY2NfYzg5PScnDQphY19jdl9wcm9nX2NjX2c9bm8NCmFjX2N2X3By
b2dfbWFrZV9tYWtlX3NldD15ZXMNCmFjX2N2X3NlYXJjaF9pbmV0X2FkZHI9J25vbmUgcmVxdWly
ZWQnDQphY19jdl9zZWFyY2hfc29ja2V0PSdub25lIHJlcXVpcmVkJw0KYWNfY3Zfc3lzX2ZpbGVf
b2Zmc2V0X2JpdHM9NjQNCmFjX2N2X3N5c19sYXJnZWZpbGVfQ0M9bm8NCmFjX2N2X3R5cGVfbG9u
Z19sb25nPXllcw0KYWNfY3ZfdHlwZV9zaXplX3Q9eWVzDQphY19jdl93b3JraW5nX2FsbG9jYV9o
PXllcw0KYWNsX2N2X2hhcmRjb2RlX2RpcmVjdD1ubw0KYWNsX2N2X2hhcmRjb2RlX2xpYmRpcl9m
bGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJw0KYWNsX2N2X2hhcmRjb2RlX2xpYmRpcl9z
ZXBhcmF0b3I9Og0KYWNsX2N2X2hhcmRjb2RlX21pbnVzX0w9bm8NCmFjbF9jdl9saWJleHQ9YQ0K
YWNsX2N2X2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnDQphY2xfY3ZfbGlicmFyeV9uYW1lc19zcGVj
PSckbGlibmFtZSRzaHJleHQnDQphY2xfY3ZfcGF0aF9MRD0vdXNyL2Jpbi9sZA0KYWNsX2N2X3By
b2dfZ251X2xkPW5vDQphY2xfY3ZfcnBhdGg9ZG9uZQ0KYWNsX2N2X3NobGliZXh0PXNvDQphY2xf
Y3Zfd2w9LVdsLA0KYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQ0KbHRf
Y3ZfYXJfYXRfZmlsZT1ubw0KbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMg
KHNbMC05XVswLTldWzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIElB
NjQnDQpsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlDQpsdF9jdl9maWxlX21hZ2lj
X3Rlc3RfZmlsZT0vdXNyL2xpYi9ocHV4MzIvbGliYy5zbw0KbHRfY3ZfbGRfcmVsb2FkX2ZsYWc9
LXINCmx0X2N2X25tX2ludGVyZmFjZT0nQlNEIG5tJw0KbHRfY3Zfb2JqZGlyPS5saWJzDQpsdF9j
dl9wYXRoX0xEPS91c3IvYmluL2xkDQpsdF9jdl9wYXRoX05NPScvdXNyL2Jpbi9ubSAtcCcNCmx0
X2N2X3BhdGhfbWFpbmZlc3RfdG9vbD1ubw0KbHRfY3ZfcHJvZ19jb21waWxlcl9jX289eWVzDQps
dF9jdl9wcm9nX2NvbXBpbGVyX3BpYz0nIC1EUElDJw0KbHRfY3ZfcHJvZ19jb21waWxlcl9waWNf
d29ya3M9eWVzDQpsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz1ubw0KbHRfY3ZfcHJv
Z19nbnVfbGQ9bm8NCmx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSdwcmludCAtciAt
LScNCmx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J3NlZCAtbiAtZSAnXCcncy9eLipbCSBd
XChbQUJDREVHUlNUXVtBQkNERUdSU1RdKlwpWwkgXVsJIF0qXChbX0EtWmEtel1bX0EtWmEtejAt
OV0qXCkkL1wxIFwyIFwyL3AnXCcnIHwgc2VkICdcJycvIF9fZ251X2x0by9kJ1wnDQpsdF9jdl9z
eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0nc2VkIC1uIC1lICdcJydzL146IFwo
W14gXSpcKVsgXSokLyAge1wiXDFcIiwgKHZvaWQgKikgMH0sL3AnXCcnIC1lICdcJydzL15bQUJD
REVHUlNUXSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7IlwyIiwgKHZvaWQgKikgXCZcMn0sL3An
XCcNCmx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9
J3NlZCAtbiAtZSAnXCcncy9eOiBcKFteIF0qXClbIF0qJC8gIHtcIlwxXCIsICh2b2lkICopIDB9
LC9wJ1wnJyAtZSAnXCcncy9eW0FCQ0RFR1JTVF0qIFwoW14gXSpcKSBcKGxpYlteIF0qXCkkLyAg
eyJcMiIsICh2b2lkICopIFwmXDJ9LC9wJ1wnJyAtZSAnXCcncy9eW0FCQ0RFR1JTVF0qIFwoW14g
XSpcKSBcKFteIF0qXCkkLyAgeyJsaWJcMiIsICh2b2lkICopIFwmXDJ9LC9wJ1wnDQpsdF9jdl9z
eXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0nc2VkIC1uIC1lICdcJydzL15UIC4qIFwoLipcKSQv
ZXh0ZXJuIGludCBcMSgpOy9wJ1wnJyAtZSAnXCcncy9eW0FCQ0RFR1JTVF0qIC4qIFwoLipcKSQv
ZXh0ZXJuIGNoYXIgXDE7L3AnXCcNCmx0X2N2X3N5c19tYXhfY21kX2xlbj0xNTM2MDAwDQpsdF9j
dl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25vb3ANCmx0X2N2X3RvX3Rvb2xf
ZmlsZV9jbWQ9ZnVuY19jb252ZXJ0X2ZpbGVfbm9vcA0KDQojIyAtLS0tLS0tLS0tLS0tLS0tLSAj
Iw0KIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMNCiMjIC0tLS0tLS0tLS0tLS0tLS0tICMjDQoNCkFD
TE9DQUw9JyR7U0hFTEx9IC9vcHQvbGlic3NoMi9saWJzc2gyLTEuNC40L2xpYnNzaDItMS40LjQt
MjAxMzAyMTkvbWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuMTEnDQpBTExPQ0E9JycNCkFNREVQQkFD
S1NMQVNIPSdcJw0KQU1ERVBfRkFMU0U9JyMnDQpBTURFUF9UUlVFPScnDQpBTVRBUj0nJCR7VEFS
LXRhcn0nDQpBUj0nYXInDQpBUz0nYXMnDQpBVVRPQ09ORj0nJHtTSEVMTH0gL29wdC9saWJzc2gy
L2xpYnNzaDItMS40LjQvbGlic3NoMi0xLjQuNC0yMDEzMDIxOS9taXNzaW5nIC0tcnVuIGF1dG9j
b25mJw0KQVVUT0hFQURFUj0nJHtTSEVMTH0gL29wdC9saWJzc2gyL2xpYnNzaDItMS40LjQvbGli
c3NoMi0xLjQuNC0yMDEzMDIxOS9taXNzaW5nIC0tcnVuIGF1dG9oZWFkZXInDQpBVVRPTUFLRT0n
JHtTSEVMTH0gL29wdC9saWJzc2gyL2xpYnNzaDItMS40LjQvbGlic3NoMi0xLjQuNC0yMDEzMDIx
OS9taXNzaW5nIC0tcnVuIGF1dG9tYWtlLTEuMTEnDQpBV0s9J2F3aycNCkJVSUxEX0VYQU1QTEVT
X0ZBTFNFPScjJw0KQlVJTERfRVhBTVBMRVNfVFJVRT0nJw0KQ0M9J2NjJw0KQ0NERVBNT0RFPSdk
ZXBtb2RlPW5vbmUnDQpDRkxBR1M9JycNCkNQUD0nY2MgLUUnDQpDUFBGTEFHUz0nJw0KQ1lHUEFU
SF9XPSdlY2hvJw0KREVGUz0nLURIQVZFX0NPTkZJR19IJw0KREVQRElSPScuZGVwcycNCkRMTFRP
T0w9J2RsbHRvb2wnDQpEU1lNVVRJTD0nJw0KRFVNUEJJTj0nJw0KRUNIT19DPSdcYycNCkVDSE9f
Tj0nJw0KRUNIT19UPScnDQpFR1JFUD0nL3Vzci9iaW4vZ3JlcCAtRScNCkVYRUVYVD0nJw0KRkdS
RVA9Jy91c3IvYmluL2dyZXAgLUYnDQpHUkVQPScvdXNyL2Jpbi9ncmVwJw0KSEFWRV9MSUJHQ1JZ
UFQ9JycNCkhBVkVfTElCU1NMPSd5ZXMnDQpIQVZFX0xJQlo9J25vJw0KSEFWRV9TWVNfVU5fSF9G
QUxTRT0nIycNCkhBVkVfU1lTX1VOX0hfVFJVRT0nJw0KSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9
IC1tIDY0NCcNCklOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScNCklOU1RBTExfU0NSSVBUPSck
e0lOU1RBTEx9Jw0KSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSckKGluc3RhbGxfc2gpIC1jIC1zJw0K
TEQ9Jy91c3IvYmluL2xkJw0KTERGTEFHUz0nJw0KTElCR0NSWVBUPScnDQpMSUJHQ1JZUFRfRkFM
U0U9JycNCkxJQkdDUllQVF9QUkVGSVg9JycNCkxJQkdDUllQVF9UUlVFPScjJw0KTElCT0JKUz0n
Jw0KTElCUz0nJw0KTElCU1JFUVVJUkVEPSdsaWJzc2wsbGliY3J5cHRvJw0KTElCU1NIMlZFUj0n
MS40LjQtMjAxMzAyMTknDQpMSUJTU0w9Jy1sc3NsIC1sY3J5cHRvJw0KTElCU1NMX1BSRUZJWD0n
Jw0KTElCVE9PTD0nJChTSEVMTCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnDQpMSUJaPScnDQpM
SUJaX1BSRUZJWD0nJw0KTElQTz0nJw0KTE5fUz0nbG4gLXMnDQpMVExJQkdDUllQVD0nJw0KTFRM
SUJPQkpTPScnDQpMVExJQlNTTD0nLWxzc2wgLWxjcnlwdG8nDQpMVExJQlo9JycNCk1BSU5UPScj
Jw0KTUFJTlRBSU5FUl9NT0RFX0ZBTFNFPScnDQpNQUlOVEFJTkVSX01PREVfVFJVRT0nIycNCk1B
S0VJTkZPPScke1NIRUxMfSAvb3B0L2xpYnNzaDIvbGlic3NoMi0xLjQuNC9saWJzc2gyLTEuNC40
LTIwMTMwMjE5L21pc3NpbmcgLS1ydW4gbWFrZWluZm8nDQpNQU5JRkVTVF9UT09MPSc6Jw0KTUtE
SVJfUD0nLi9pbnN0YWxsLXNoIC1jIC1kJw0KTk09Jy91c3IvYmluL25tIC1wJw0KTk1FRElUPScn
DQpPQkpEVU1QPSdvYmpkdW1wJw0KT0JKRVhUPSdvJw0KT1RPT0w2ND0nJw0KT1RPT0w9JycNClBB
Q0tBR0U9J2xpYnNzaDInDQpQQUNLQUdFX0JVR1JFUE9SVD0nbGlic3NoMi1kZXZlbEBjb29sLmhh
eHguc2UnDQpQQUNLQUdFX05BTUU9J2xpYnNzaDInDQpQQUNLQUdFX1NUUklORz0nbGlic3NoMiAt
Jw0KUEFDS0FHRV9UQVJOQU1FPSdsaWJzc2gyJw0KUEFDS0FHRV9VUkw9JycNClBBQ0tBR0VfVkVS
U0lPTj0nLScNClBBVEhfU0VQQVJBVE9SPSc6Jw0KUkFOTElCPSdyYW5saWInDQpTRUQ9Jy91c3Iv
YmluL3NlZCcNClNFVF9NQUtFPScnDQpTSEVMTD0nL2Jpbi9zaCcNClNTSEQ9Jy91c3Ivc2Jpbi9z
c2hkJw0KU1NIRF9GQUxTRT0nIycNClNTSERfVFJVRT0nJw0KU1RSSVA9J3N0cmlwJw0KVkVSU0lP
Tj0nLScNCmFjX2N0X0FSPSdhcicNCmFjX2N0X0NDPScnDQphY19jdF9EVU1QQklOPScnDQphbV9f
RVhFRVhUX0ZBTFNFPScnDQphbV9fRVhFRVhUX1RSVUU9JyMnDQphbV9fZmFzdGRlcENDX0ZBTFNF
PScnDQphbV9fZmFzdGRlcENDX1RSVUU9JyMnDQphbV9faW5jbHVkZT0naW5jbHVkZScNCmFtX19p
c3JjPScnDQphbV9fbGVhZGluZ19kb3Q9Jy4nDQphbV9fbm9kZXA9J19ubycNCmFtX19xdW90ZT0n
Jw0KYW1fX3Rhcj0nJCR7VEFSLXRhcn0gY2hvZiAtICIkJHRhcmRpciInDQphbV9fdW50YXI9JyQk
e1RBUi10YXJ9IHhmIC0nDQpiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicNCmJ1aWxkPSdpYTY0
LWhwLWhwdXgxMS4zMScNCmJ1aWxkX2FsaWFzPScnDQpidWlsZF9jcHU9J2lhNjQnDQpidWlsZF9v
cz0naHB1eDExLjMxJw0KYnVpbGRfdmVuZG9yPSdocCcNCmRhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9
Jw0KZGF0YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScNCmRvY2Rpcj0nJHtkYXRhcm9vdGRpcn0v
ZG9jLyR7UEFDS0FHRV9UQVJOQU1FfScNCmR2aWRpcj0nJHtkb2NkaXJ9Jw0KZXhlY19wcmVmaXg9
JyR7cHJlZml4fScNCmhvc3Q9J2lhNjQtaHAtaHB1eDExLjMxJw0KaG9zdF9hbGlhcz0nJw0KaG9z
dF9jcHU9J2lhNjQnDQpob3N0X29zPSdocHV4MTEuMzEnDQpob3N0X3ZlbmRvcj0naHAnDQpodG1s
ZGlyPScke2RvY2Rpcn0nDQppbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScNCmluZm9kaXI9
JyR7ZGF0YXJvb3RkaXJ9L2luZm8nDQppbnN0YWxsX3NoPScke1NIRUxMfSAvb3B0L2xpYnNzaDIv
bGlic3NoMi0xLjQuNC9saWJzc2gyLTEuNC40LTIwMTMwMjE5L2luc3RhbGwtc2gnDQpsaWJkaXI9
JyR7ZXhlY19wcmVmaXh9L2xpYicNCmxpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMn
DQpsb2NhbGVkaXI9JyR7ZGF0YXJvb3RkaXJ9L2xvY2FsZScNCmxvY2Fsc3RhdGVkaXI9JyR7cHJl
Zml4fS92YXInDQptYW5kaXI9JyR7ZGF0YXJvb3RkaXJ9L21hbicNCm1rZGlyX3A9JyQodG9wX2J1
aWxkZGlyKS8uL2luc3RhbGwtc2ggLWMgLWQnDQpvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUn
DQpwZGZkaXI9JyR7ZG9jZGlyfScNCnByZWZpeD0nL3Vzci9sb2NhbCcNCnByb2dyYW1fdHJhbnNm
b3JtX25hbWU9J3MseCx4LCcNCnBzZGlyPScke2RvY2Rpcn0nDQpzYmluZGlyPScke2V4ZWNfcHJl
Zml4fS9zYmluJw0Kc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nDQpzeXNjb25mZGlyPSck
e3ByZWZpeH0vZXRjJw0KdGFyZ2V0X2FsaWFzPScnDQoNCiMjIC0tLS0tLS0tLS0tICMjDQojIyBj
b25mZGVmcy5oLiAjIw0KIyMgLS0tLS0tLS0tLS0gIyMNCg0KLyogY29uZmRlZnMuaCAqLw0KI2Rl
ZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiDQojZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGli
c3NoMiINCiNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIg0KI2RlZmluZSBQQUNLQUdFX1NUUklO
RyAibGlic3NoMiAtIg0KI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBj
b29sLmhheHguc2UiDQojZGVmaW5lIFBBQ0tBR0VfVVJMICIiDQojZGVmaW5lIFBBQ0tBR0UgImxp
YnNzaDIiDQojZGVmaW5lIFZFUlNJT04gIi0iDQojZGVmaW5lIFNURENfSEVBREVSUyAxDQojZGVm
aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KI2RlZmlu
ZSBIQVZFX1NURExJQl9IIDENCiNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQojZGVmaW5lIEhBVkVf
TUVNT1JZX0ggMQ0KI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQojZGVmaW5lIEhBVkVfSU5UVFlQ
RVNfSCAxDQojZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KI2RlZmluZSBIQVZFX1VOSVNURF9IIDEN
CiNkZWZpbmUgSEFWRV9MT05HTE9ORyAxDQojZGVmaW5lIE5FRURfUkVFTlRSQU5UIDENCiNpZm5k
ZWYgX1JFRU5UUkFOVA0KIyAgZGVmaW5lIF9SRUVOVFJBTlQNCiNlbmRpZg0KI2RlZmluZSBIQVZF
X0RMRkNOX0ggMQ0KI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyINCiNkZWZpbmUgV09SRFNfQklH
RU5ESUFOIDENCiNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQNCiNkZWZpbmUgSEFWRV9MSUJT
U0wgMQ0KI2RlZmluZSBMSUJTU0gyX0RIX0dFWF9ORVcgMQ0KI2RlZmluZSBIQVZFX0VSUk5PX0gg
MQ0KI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KI2RlZmluZSBIQVZFX1NURElPX0ggMQ0KI2RlZmlu
ZSBIQVZFX1NURExJQl9IIDENCiNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQojZGVmaW5lIEhBVkVf
U1lTX1VJT19IIDENCiNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQ0KI2RlZmluZSBIQVZFX1NZ
U19TT0NLRVRfSCAxDQojZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQ0KI2RlZmluZSBIQVZFX1NZ
U19USU1FX0ggMQ0KI2RlZmluZSBIQVZFX0FSUEFfSU5FVF9IIDENCiNkZWZpbmUgSEFWRV9ORVRJ
TkVUX0lOX0ggMQ0KI2RlZmluZSBIQVZFX1NZU19VTl9IIDENCiNkZWZpbmUgSEFWRV9QT0xMIDEN
CiNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KI2RlZmluZSBIQVZFX1NFTEVDVCAxDQojZGVm
aW5lIEhBVkVfU1RSVE9MTCAxDQojZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQ0KI2RlZmluZSBIQVZF
X0FMTE9DQSAxDQojaWZuZGVmIF9fY3BsdXNwbHVzDQojZGVmaW5lIGlubGluZSBfX2lubGluZQ0K
I2VuZGlmDQojZGVmaW5lIEhBVkVfT19OT05CTE9DSyAxDQoNCmNvbmZpZ3VyZTogZXhpdCAwDQo=

--_004_8694DC0939354C45B44865A2376D56BD2AD93B9ARIV10EXC02hqriv_
Content-Type: application/octet-stream; name="out.1"
Content-Description: out.1
Content-Disposition: attachment; filename="out.1"; size=11842;
	creation-date="Tue, 19 Feb 2013 15:48:15 GMT";
	modification-date="Tue, 19 Feb 2013 15:39:00 GMT"
Content-Transfer-Encoding: base64

TWFraW5nIGFsbCBpbiBzcmMNCgltYWtlICBhbGwtYW0NCglzb3VyY2U9J2NoYW5uZWwuYycgb2Jq
ZWN0PSdjaGFubmVsLmxvJyBsaWJ0b29sPXllcyBcDQoJREVQRElSPS5kZXBzIGRlcG1vZGU9bm9u
ZSAvYmluL3NoIC4uL2RlcGNvbXAgXA0KCS9iaW4vc2ggLi4vbGlidG9vbCAtLXRhZz1DQyAgICAt
LW1vZGU9Y29tcGlsZSBjYyAtREhBVkVfQ09ORklHX0ggICAgLUkuLi9pbmNsdWRlIC1JLi4vc3Jj
ICAgIC1jIC1vIGNoYW5uZWwubG8gY2hhbm5lbC5jDQpsaWJ0b29sOiBjb21waWxlOiAgY2MgLURI
QVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtYyBjaGFubmVsLmMgIC1EUElDIC1v
IC5saWJzL2NoYW5uZWwubw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFWRV9DT05GSUdfSCAt
SS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMgY2hhbm5lbC5jIC1vIGNoYW5uZWwubyA+L2Rldi9udWxs
IDI+JjENCglzb3VyY2U9J2NvbXAuYycgb2JqZWN0PSdjb21wLmxvJyBsaWJ0b29sPXllcyBcDQoJ
REVQRElSPS5kZXBzIGRlcG1vZGU9bm9uZSAvYmluL3NoIC4uL2RlcGNvbXAgXA0KCS9iaW4vc2gg
Li4vbGlidG9vbCAtLXRhZz1DQyAgICAtLW1vZGU9Y29tcGlsZSBjYyAtREhBVkVfQ09ORklHX0gg
ICAgLUkuLi9pbmNsdWRlIC1JLi4vc3JjICAgIC1jIC1vIGNvbXAubG8gY29tcC5jDQpsaWJ0b29s
OiBjb21waWxlOiAgY2MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtYyBj
b21wLmMgIC1EUElDIC1vIC5saWJzL2NvbXAubw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFW
RV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMgY29tcC5jIC1vIGNvbXAubyA+L2Rl
di9udWxsIDI+JjENCglzb3VyY2U9J2NyeXB0LmMnIG9iamVjdD0nY3J5cHQubG8nIGxpYnRvb2w9
eWVzIFwNCglERVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vc2ggLi4vZGVwY29tcCBcDQoJ
L2Jpbi9zaCAuLi9saWJ0b29sIC0tdGFnPUNDICAgIC0tbW9kZT1jb21waWxlIGNjIC1ESEFWRV9D
T05GSUdfSCAgICAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgICAgLWMgLW8gY3J5cHQubG8gY3J5cHQu
Yw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUku
Li9zcmMgLWMgY3J5cHQuYyAgLURQSUMgLW8gLmxpYnMvY3J5cHQubw0KbGlidG9vbDogY29tcGls
ZTogIGNjIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMgY3J5cHQuYyAt
byBjcnlwdC5vID4vZGV2L251bGwgMj4mMQ0KCXNvdXJjZT0naG9zdGtleS5jJyBvYmplY3Q9J2hv
c3RrZXkubG8nIGxpYnRvb2w9eWVzIFwNCglERVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4v
c2ggLi4vZGVwY29tcCBcDQoJL2Jpbi9zaCAuLi9saWJ0b29sIC0tdGFnPUNDICAgIC0tbW9kZT1j
b21waWxlIGNjIC1ESEFWRV9DT05GSUdfSCAgICAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgICAgLWMg
LW8gaG9zdGtleS5sbyBob3N0a2V5LmMNCmxpYnRvb2w6IGNvbXBpbGU6ICBjYyAtREhBVkVfQ09O
RklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIGhvc3RrZXkuYyAgLURQSUMgLW8gLmxpYnMv
aG9zdGtleS5vDQpsaWJ0b29sOiBjb21waWxlOiAgY2MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5j
bHVkZSAtSS4uL3NyYyAtYyBob3N0a2V5LmMgLW8gaG9zdGtleS5vID4vZGV2L251bGwgMj4mMQ0K
CXNvdXJjZT0na2V4LmMnIG9iamVjdD0na2V4LmxvJyBsaWJ0b29sPXllcyBcDQoJREVQRElSPS5k
ZXBzIGRlcG1vZGU9bm9uZSAvYmluL3NoIC4uL2RlcGNvbXAgXA0KCS9iaW4vc2ggLi4vbGlidG9v
bCAtLXRhZz1DQyAgICAtLW1vZGU9Y29tcGlsZSBjYyAtREhBVkVfQ09ORklHX0ggICAgLUkuLi9p
bmNsdWRlIC1JLi4vc3JjICAgIC1jIC1vIGtleC5sbyBrZXguYw0KbGlidG9vbDogY29tcGlsZTog
IGNjIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMga2V4LmMgIC1EUElD
IC1vIC5saWJzL2tleC5vDQpsaWJ0b29sOiBjb21waWxlOiAgY2MgLURIQVZFX0NPTkZJR19IIC1J
Li4vaW5jbHVkZSAtSS4uL3NyYyAtYyBrZXguYyAtbyBrZXgubyA+L2Rldi9udWxsIDI+JjENCglz
b3VyY2U9J21hYy5jJyBvYmplY3Q9J21hYy5sbycgbGlidG9vbD15ZXMgXA0KCURFUERJUj0uZGVw
cyBkZXBtb2RlPW5vbmUgL2Jpbi9zaCAuLi9kZXBjb21wIFwNCgkvYmluL3NoIC4uL2xpYnRvb2wg
LS10YWc9Q0MgICAgLS1tb2RlPWNvbXBpbGUgY2MgLURIQVZFX0NPTkZJR19IICAgIC1JLi4vaW5j
bHVkZSAtSS4uL3NyYyAgICAtYyAtbyBtYWMubG8gbWFjLmMNCmxpYnRvb2w6IGNvbXBpbGU6ICBj
YyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIG1hYy5jICAtRFBJQyAt
byAubGlicy9tYWMubw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFWRV9DT05GSUdfSCAtSS4u
L2luY2x1ZGUgLUkuLi9zcmMgLWMgbWFjLmMgLW8gbWFjLm8gPi9kZXYvbnVsbCAyPiYxDQoJc291
cmNlPSdtaXNjLmMnIG9iamVjdD0nbWlzYy5sbycgbGlidG9vbD15ZXMgXA0KCURFUERJUj0uZGVw
cyBkZXBtb2RlPW5vbmUgL2Jpbi9zaCAuLi9kZXBjb21wIFwNCgkvYmluL3NoIC4uL2xpYnRvb2wg
LS10YWc9Q0MgICAgLS1tb2RlPWNvbXBpbGUgY2MgLURIQVZFX0NPTkZJR19IICAgIC1JLi4vaW5j
bHVkZSAtSS4uL3NyYyAgICAtYyAtbyBtaXNjLmxvIG1pc2MuYw0KbGlidG9vbDogY29tcGlsZTog
IGNjIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMgbWlzYy5jICAtRFBJ
QyAtbyAubGlicy9taXNjLm8NCmxpYnRvb2w6IGNvbXBpbGU6ICBjYyAtREhBVkVfQ09ORklHX0gg
LUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIG1pc2MuYyAtbyBtaXNjLm8gPi9kZXYvbnVsbCAyPiYx
DQoJc291cmNlPSdwYWNrZXQuYycgb2JqZWN0PSdwYWNrZXQubG8nIGxpYnRvb2w9eWVzIFwNCglE
RVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vc2ggLi4vZGVwY29tcCBcDQoJL2Jpbi9zaCAu
Li9saWJ0b29sIC0tdGFnPUNDICAgIC0tbW9kZT1jb21waWxlIGNjIC1ESEFWRV9DT05GSUdfSCAg
ICAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgICAgLWMgLW8gcGFja2V0LmxvIHBhY2tldC5jDQpsaWJ0
b29sOiBjb21waWxlOiAgY2MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAt
YyBwYWNrZXQuYyAgLURQSUMgLW8gLmxpYnMvcGFja2V0Lm8NCmxpYnRvb2w6IGNvbXBpbGU6ICBj
YyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIHBhY2tldC5jIC1vIHBh
Y2tldC5vID4vZGV2L251bGwgMj4mMQ0KCXNvdXJjZT0ncHVibGlja2V5LmMnIG9iamVjdD0ncHVi
bGlja2V5LmxvJyBsaWJ0b29sPXllcyBcDQoJREVQRElSPS5kZXBzIGRlcG1vZGU9bm9uZSAvYmlu
L3NoIC4uL2RlcGNvbXAgXA0KCS9iaW4vc2ggLi4vbGlidG9vbCAtLXRhZz1DQyAgICAtLW1vZGU9
Y29tcGlsZSBjYyAtREhBVkVfQ09ORklHX0ggICAgLUkuLi9pbmNsdWRlIC1JLi4vc3JjICAgIC1j
IC1vIHB1YmxpY2tleS5sbyBwdWJsaWNrZXkuYw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFW
RV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMgcHVibGlja2V5LmMgIC1EUElDIC1v
IC5saWJzL3B1YmxpY2tleS5vDQpsaWJ0b29sOiBjb21waWxlOiAgY2MgLURIQVZFX0NPTkZJR19I
IC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtYyBwdWJsaWNrZXkuYyAtbyBwdWJsaWNrZXkubyA+L2Rl
di9udWxsIDI+JjENCglzb3VyY2U9J3NjcC5jJyBvYmplY3Q9J3NjcC5sbycgbGlidG9vbD15ZXMg
XA0KCURFUERJUj0uZGVwcyBkZXBtb2RlPW5vbmUgL2Jpbi9zaCAuLi9kZXBjb21wIFwNCgkvYmlu
L3NoIC4uL2xpYnRvb2wgLS10YWc9Q0MgICAgLS1tb2RlPWNvbXBpbGUgY2MgLURIQVZFX0NPTkZJ
R19IICAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAgICAtYyAtbyBzY3AubG8gc2NwLmMNCmxpYnRv
b2w6IGNvbXBpbGU6ICBjYyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1j
IHNjcC5jICAtRFBJQyAtbyAubGlicy9zY3Aubw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFW
RV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMgc2NwLmMgLW8gc2NwLm8gPi9kZXYv
bnVsbCAyPiYxDQoJc291cmNlPSdzZXNzaW9uLmMnIG9iamVjdD0nc2Vzc2lvbi5sbycgbGlidG9v
bD15ZXMgXA0KCURFUERJUj0uZGVwcyBkZXBtb2RlPW5vbmUgL2Jpbi9zaCAuLi9kZXBjb21wIFwN
CgkvYmluL3NoIC4uL2xpYnRvb2wgLS10YWc9Q0MgICAgLS1tb2RlPWNvbXBpbGUgY2MgLURIQVZF
X0NPTkZJR19IICAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAgICAtYyAtbyBzZXNzaW9uLmxvIHNl
c3Npb24uYw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1
ZGUgLUkuLi9zcmMgLWMgc2Vzc2lvbi5jICAtRFBJQyAtbyAubGlicy9zZXNzaW9uLm8NCmxpYnRv
b2w6IGNvbXBpbGU6ICBjYyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1j
IHNlc3Npb24uYyAtbyBzZXNzaW9uLm8gPi9kZXYvbnVsbCAyPiYxDQoJc291cmNlPSdzZnRwLmMn
IG9iamVjdD0nc2Z0cC5sbycgbGlidG9vbD15ZXMgXA0KCURFUERJUj0uZGVwcyBkZXBtb2RlPW5v
bmUgL2Jpbi9zaCAuLi9kZXBjb21wIFwNCgkvYmluL3NoIC4uL2xpYnRvb2wgLS10YWc9Q0MgICAg
LS1tb2RlPWNvbXBpbGUgY2MgLURIQVZFX0NPTkZJR19IICAgIC1JLi4vaW5jbHVkZSAtSS4uL3Ny
YyAgICAtYyAtbyBzZnRwLmxvIHNmdHAuYw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFWRV9D
T05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMgc2Z0cC5jICAtRFBJQyAtbyAubGlicy9z
ZnRwLm8NCmxpYnRvb2w6IGNvbXBpbGU6ICBjYyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRl
IC1JLi4vc3JjIC1jIHNmdHAuYyAtbyBzZnRwLm8gPi9kZXYvbnVsbCAyPiYxDQoJc291cmNlPSd1
c2VyYXV0aC5jJyBvYmplY3Q9J3VzZXJhdXRoLmxvJyBsaWJ0b29sPXllcyBcDQoJREVQRElSPS5k
ZXBzIGRlcG1vZGU9bm9uZSAvYmluL3NoIC4uL2RlcGNvbXAgXA0KCS9iaW4vc2ggLi4vbGlidG9v
bCAtLXRhZz1DQyAgICAtLW1vZGU9Y29tcGlsZSBjYyAtREhBVkVfQ09ORklHX0ggICAgLUkuLi9p
bmNsdWRlIC1JLi4vc3JjICAgIC1jIC1vIHVzZXJhdXRoLmxvIHVzZXJhdXRoLmMNCmxpYnRvb2w6
IGNvbXBpbGU6ICBjYyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIHVz
ZXJhdXRoLmMgIC1EUElDIC1vIC5saWJzL3VzZXJhdXRoLm8NCmxpYnRvb2w6IGNvbXBpbGU6ICBj
YyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIHVzZXJhdXRoLmMgLW8g
dXNlcmF1dGgubyA+L2Rldi9udWxsIDI+JjENCglzb3VyY2U9J3RyYW5zcG9ydC5jJyBvYmplY3Q9
J3RyYW5zcG9ydC5sbycgbGlidG9vbD15ZXMgXA0KCURFUERJUj0uZGVwcyBkZXBtb2RlPW5vbmUg
L2Jpbi9zaCAuLi9kZXBjb21wIFwNCgkvYmluL3NoIC4uL2xpYnRvb2wgLS10YWc9Q0MgICAgLS1t
b2RlPWNvbXBpbGUgY2MgLURIQVZFX0NPTkZJR19IICAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAg
ICAtYyAtbyB0cmFuc3BvcnQubG8gdHJhbnNwb3J0LmMNCmxpYnRvb2w6IGNvbXBpbGU6ICBjYyAt
REhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIHRyYW5zcG9ydC5jICAtRFBJ
QyAtbyAubGlicy90cmFuc3BvcnQubw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFWRV9DT05G
SUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMgdHJhbnNwb3J0LmMgLW8gdHJhbnNwb3J0Lm8g
Pi9kZXYvbnVsbCAyPiYxDQoJc291cmNlPSd2ZXJzaW9uLmMnIG9iamVjdD0ndmVyc2lvbi5sbycg
bGlidG9vbD15ZXMgXA0KCURFUERJUj0uZGVwcyBkZXBtb2RlPW5vbmUgL2Jpbi9zaCAuLi9kZXBj
b21wIFwNCgkvYmluL3NoIC4uL2xpYnRvb2wgLS10YWc9Q0MgICAgLS1tb2RlPWNvbXBpbGUgY2Mg
LURIQVZFX0NPTkZJR19IICAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAgICAtYyAtbyB2ZXJzaW9u
LmxvIHZlcnNpb24uYw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFWRV9DT05GSUdfSCAtSS4u
L2luY2x1ZGUgLUkuLi9zcmMgLWMgdmVyc2lvbi5jICAtRFBJQyAtbyAubGlicy92ZXJzaW9uLm8N
CmxpYnRvb2w6IGNvbXBpbGU6ICBjYyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4v
c3JjIC1jIHZlcnNpb24uYyAtbyB2ZXJzaW9uLm8gPi9kZXYvbnVsbCAyPiYxDQoJc291cmNlPSdr
bm93bmhvc3QuYycgb2JqZWN0PSdrbm93bmhvc3QubG8nIGxpYnRvb2w9eWVzIFwNCglERVBESVI9
LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vc2ggLi4vZGVwY29tcCBcDQoJL2Jpbi9zaCAuLi9saWJ0
b29sIC0tdGFnPUNDICAgIC0tbW9kZT1jb21waWxlIGNjIC1ESEFWRV9DT05GSUdfSCAgICAtSS4u
L2luY2x1ZGUgLUkuLi9zcmMgICAgLWMgLW8ga25vd25ob3N0LmxvIGtub3duaG9zdC5jDQpsaWJ0
b29sOiBjb21waWxlOiAgY2MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAt
YyBrbm93bmhvc3QuYyAgLURQSUMgLW8gLmxpYnMva25vd25ob3N0Lm8NCmxpYnRvb2w6IGNvbXBp
bGU6ICBjYyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIGtub3duaG9z
dC5jIC1vIGtub3duaG9zdC5vID4vZGV2L251bGwgMj4mMQ0KCXNvdXJjZT0nYWdlbnQuYycgb2Jq
ZWN0PSdhZ2VudC5sbycgbGlidG9vbD15ZXMgXA0KCURFUERJUj0uZGVwcyBkZXBtb2RlPW5vbmUg
L2Jpbi9zaCAuLi9kZXBjb21wIFwNCgkvYmluL3NoIC4uL2xpYnRvb2wgLS10YWc9Q0MgICAgLS1t
b2RlPWNvbXBpbGUgY2MgLURIQVZFX0NPTkZJR19IICAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAg
ICAtYyAtbyBhZ2VudC5sbyBhZ2VudC5jDQpsaWJ0b29sOiBjb21waWxlOiAgY2MgLURIQVZFX0NP
TkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtYyBhZ2VudC5jICAtRFBJQyAtbyAubGlicy9h
Z2VudC5vDQpsaWJ0b29sOiBjb21waWxlOiAgY2MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVk
ZSAtSS4uL3NyYyAtYyBhZ2VudC5jIC1vIGFnZW50Lm8gPi9kZXYvbnVsbCAyPiYxDQoJc291cmNl
PSdvcGVuc3NsLmMnIG9iamVjdD0nb3BlbnNzbC5sbycgbGlidG9vbD15ZXMgXA0KCURFUERJUj0u
ZGVwcyBkZXBtb2RlPW5vbmUgL2Jpbi9zaCAuLi9kZXBjb21wIFwNCgkvYmluL3NoIC4uL2xpYnRv
b2wgLS10YWc9Q0MgICAgLS1tb2RlPWNvbXBpbGUgY2MgLURIQVZFX0NPTkZJR19IICAgIC1JLi4v
aW5jbHVkZSAtSS4uL3NyYyAgICAtYyAtbyBvcGVuc3NsLmxvIG9wZW5zc2wuYw0KbGlidG9vbDog
Y29tcGlsZTogIGNjIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMgb3Bl
bnNzbC5jICAtRFBJQyAtbyAubGlicy9vcGVuc3NsLm8NCmxpYnRvb2w6IGNvbXBpbGU6ICBjYyAt
REhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIG9wZW5zc2wuYyAtbyBvcGVu
c3NsLm8gPi9kZXYvbnVsbCAyPiYxDQoJc291cmNlPSdsaWJnY3J5cHQuYycgb2JqZWN0PSdsaWJn
Y3J5cHQubG8nIGxpYnRvb2w9eWVzIFwNCglERVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4v
c2ggLi4vZGVwY29tcCBcDQoJL2Jpbi9zaCAuLi9saWJ0b29sIC0tdGFnPUNDICAgIC0tbW9kZT1j
b21waWxlIGNjIC1ESEFWRV9DT05GSUdfSCAgICAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgICAgLWMg
LW8gbGliZ2NyeXB0LmxvIGxpYmdjcnlwdC5jDQpsaWJ0b29sOiBjb21waWxlOiAgY2MgLURIQVZF
X0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtYyBsaWJnY3J5cHQuYyAgLURQSUMgLW8g
LmxpYnMvbGliZ2NyeXB0Lm8NCmxpYnRvb2w6IGNvbXBpbGU6ICBjYyAtREhBVkVfQ09ORklHX0gg
LUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIGxpYmdjcnlwdC5jIC1vIGxpYmdjcnlwdC5vID4vZGV2
L251bGwgMj4mMQ0KCXNvdXJjZT0ncGVtLmMnIG9iamVjdD0ncGVtLmxvJyBsaWJ0b29sPXllcyBc
DQoJREVQRElSPS5kZXBzIGRlcG1vZGU9bm9uZSAvYmluL3NoIC4uL2RlcGNvbXAgXA0KCS9iaW4v
c2ggLi4vbGlidG9vbCAtLXRhZz1DQyAgICAtLW1vZGU9Y29tcGlsZSBjYyAtREhBVkVfQ09ORklH
X0ggICAgLUkuLi9pbmNsdWRlIC1JLi4vc3JjICAgIC1jIC1vIHBlbS5sbyBwZW0uYw0KbGlidG9v
bDogY29tcGlsZTogIGNjIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLWMg
cGVtLmMgIC1EUElDIC1vIC5saWJzL3BlbS5vDQpsaWJ0b29sOiBjb21waWxlOiAgY2MgLURIQVZF
X0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtYyBwZW0uYyAtbyBwZW0ubyA+L2Rldi9u
dWxsIDI+JjENCglzb3VyY2U9J2tlZXBhbGl2ZS5jJyBvYmplY3Q9J2tlZXBhbGl2ZS5sbycgbGli
dG9vbD15ZXMgXA0KCURFUERJUj0uZGVwcyBkZXBtb2RlPW5vbmUgL2Jpbi9zaCAuLi9kZXBjb21w
IFwNCgkvYmluL3NoIC4uL2xpYnRvb2wgLS10YWc9Q0MgICAgLS1tb2RlPWNvbXBpbGUgY2MgLURI
QVZFX0NPTkZJR19IICAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAgICAtYyAtbyBrZWVwYWxpdmUu
bG8ga2VlcGFsaXZlLmMNCmxpYnRvb2w6IGNvbXBpbGU6ICBjYyAtREhBVkVfQ09ORklHX0ggLUku
Li9pbmNsdWRlIC1JLi4vc3JjIC1jIGtlZXBhbGl2ZS5jICAtRFBJQyAtbyAubGlicy9rZWVwYWxp
dmUubw0KbGlidG9vbDogY29tcGlsZTogIGNjIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUg
LUkuLi9zcmMgLWMga2VlcGFsaXZlLmMgLW8ga2VlcGFsaXZlLm8gPi9kZXYvbnVsbCAyPiYxDQoJ
c291cmNlPSdnbG9iYWwuYycgb2JqZWN0PSdnbG9iYWwubG8nIGxpYnRvb2w9eWVzIFwNCglERVBE
SVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vc2ggLi4vZGVwY29tcCBcDQoJL2Jpbi9zaCAuLi9s
aWJ0b29sIC0tdGFnPUNDICAgIC0tbW9kZT1jb21waWxlIGNjIC1ESEFWRV9DT05GSUdfSCAgICAt
SS4uL2luY2x1ZGUgLUkuLi9zcmMgICAgLWMgLW8gZ2xvYmFsLmxvIGdsb2JhbC5jDQpsaWJ0b29s
OiBjb21waWxlOiAgY2MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtYyBn
bG9iYWwuYyAgLURQSUMgLW8gLmxpYnMvZ2xvYmFsLm8NCmxpYnRvb2w6IGNvbXBpbGU6ICBjYyAt
REhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1jIGdsb2JhbC5jIC1vIGdsb2Jh
bC5vID4vZGV2L251bGwgMj4mMQ0KCS9iaW4vc2ggLi4vbGlidG9vbCAtLXRhZz1DQyAgICAtLW1v
ZGU9bGluayBjYyAgICAtdmVyc2lvbi1pbmZvIDE6MTowIC1uby11bmRlZmluZWQgIC1leHBvcnQt
c3ltYm9scy1yZWdleCAnXmxpYnNzaDJfLionICAgLWxzc2wgLWxjcnlwdG8gICAtbyBsaWJzc2gy
LmxhIC1ycGF0aCAvdXNyL2xvY2FsL2xpYiBjaGFubmVsLmxvIGNvbXAubG8gY3J5cHQubG8gaG9z
dGtleS5sbyBrZXgubG8gbWFjLmxvICBtaXNjLmxvIHBhY2tldC5sbyBwdWJsaWNrZXkubG8gc2Nw
LmxvIHNlc3Npb24ubG8gc2Z0cC5sbyAgdXNlcmF1dGgubG8gdHJhbnNwb3J0LmxvIHZlcnNpb24u
bG8ga25vd25ob3N0LmxvIGFnZW50LmxvICBvcGVuc3NsLmxvIGxpYmdjcnlwdC5sbyBwZW0ubG8g
a2VlcGFsaXZlLmxvIGdsb2JhbC5sbyAgIA0KbGlidG9vbDogbGluazogL3Vzci9iaW4vbm0gLXAg
IC5saWJzL2NoYW5uZWwubyAubGlicy9jb21wLm8gLmxpYnMvY3J5cHQubyAubGlicy9ob3N0a2V5
Lm8gLmxpYnMva2V4Lm8gLmxpYnMvbWFjLm8gLmxpYnMvbWlzYy5vIC5saWJzL3BhY2tldC5vIC5s
aWJzL3B1YmxpY2tleS5vIC5saWJzL3NjcC5vIC5saWJzL3Nlc3Npb24ubyAubGlicy9zZnRwLm8g
LmxpYnMvdXNlcmF1dGgubyAubGlicy90cmFuc3BvcnQubyAubGlicy92ZXJzaW9uLm8gLmxpYnMv
a25vd25ob3N0Lm8gLmxpYnMvYWdlbnQubyAubGlicy9vcGVuc3NsLm8gLmxpYnMvbGliZ2NyeXB0
Lm8gLmxpYnMvcGVtLm8gLmxpYnMva2VlcGFsaXZlLm8gLmxpYnMvZ2xvYmFsLm8gICB8IHNlZCAt
biAtZSAncy9eLipbCSBdXChbQUJDREVHUlNUXVtBQkNERUdSU1RdKlwpWwkgXVsJIF0qXChbX0Et
WmEtel1bX0EtWmEtejAtOV0qXCkkL1wxIFwyIFwyL3AnIHwgc2VkICcvIF9fZ251X2x0by9kJyB8
IC91c3IvYmluL3NlZCAncy8uKiAvLycgfCBzb3J0IHwgdW5pcSA+IC5saWJzL2xpYnNzaDIuZXhw
DQpsaWJ0b29sOiBsaW5rOiAvdXNyL2Jpbi9ncmVwIC1FIC1lICJebGlic3NoMl8uKiIgIi5saWJz
L2xpYnNzaDIuZXhwIiA+ICIubGlicy9saWJzc2gyLmV4cFQiDQpsaWJ0b29sOiBsaW5rOiBtdiAt
ZiAiLmxpYnMvbGlic3NoMi5leHBUIiAiLmxpYnMvbGlic3NoMi5leHAiDQpsaWJ0b29sOiBsaW5r
OiBjYyAtYiAtV2wsK2ggLVdsLGxpYnNzaDIuc28uMSAtV2wsK25vZGVmYXVsdHJwYXRoIC1vIC5s
aWJzL2xpYnNzaDIuc28uMS4xICAubGlicy9jaGFubmVsLm8gLmxpYnMvY29tcC5vIC5saWJzL2Ny
eXB0Lm8gLmxpYnMvaG9zdGtleS5vIC5saWJzL2tleC5vIC5saWJzL21hYy5vIC5saWJzL21pc2Mu
byAubGlicy9wYWNrZXQubyAubGlicy9wdWJsaWNrZXkubyAubGlicy9zY3AubyAubGlicy9zZXNz
aW9uLm8gLmxpYnMvc2Z0cC5vIC5saWJzL3VzZXJhdXRoLm8gLmxpYnMvdHJhbnNwb3J0Lm8gLmxp
YnMvdmVyc2lvbi5vIC5saWJzL2tub3duaG9zdC5vIC5saWJzL2FnZW50Lm8gLmxpYnMvb3BlbnNz
bC5vIC5saWJzL2xpYmdjcnlwdC5vIC5saWJzL3BlbS5vIC5saWJzL2tlZXBhbGl2ZS5vIC5saWJz
L2dsb2JhbC5vICAgLWxzc2wgLWxjcnlwdG8gLWxjICAgDQpsaWJ0b29sOiBsaW5rOiAoY2QgIi5s
aWJzIiAmJiBybSAtZiAibGlic3NoMi5zby4xIiAmJiBsbiAtcyAibGlic3NoMi5zby4xLjEiICJs
aWJzc2gyLnNvLjEiKQ0KbGlidG9vbDogbGluazogKGNkICIubGlicyIgJiYgcm0gLWYgImxpYnNz
aDIuc28iICYmIGxuIC1zICJsaWJzc2gyLnNvLjEuMSIgImxpYnNzaDIuc28iKQ0KbGlidG9vbDog
bGluazogYXIgY3J1IC5saWJzL2xpYnNzaDIuYSAgY2hhbm5lbC5vIGNvbXAubyBjcnlwdC5vIGhv
c3RrZXkubyBrZXgubyBtYWMubyBtaXNjLm8gcGFja2V0Lm8gcHVibGlja2V5Lm8gc2NwLm8gc2Vz
c2lvbi5vIHNmdHAubyB1c2VyYXV0aC5vIHRyYW5zcG9ydC5vIHZlcnNpb24ubyBrbm93bmhvc3Qu
byBhZ2VudC5vIG9wZW5zc2wubyBsaWJnY3J5cHQubyBwZW0ubyBrZWVwYWxpdmUubyBnbG9iYWwu
bw0KbGlidG9vbDogbGluazogcmFubGliIC5saWJzL2xpYnNzaDIuYQ0KbGlidG9vbDogbGluazog
KCBjZCAiLmxpYnMiICYmIHJtIC1mICJsaWJzc2gyLmxhIiAmJiBsbiAtcyAiLi4vbGlic3NoMi5s
YSIgImxpYnNzaDIubGEiICkNCk1ha2luZyBhbGwgaW4gdGVzdHMNCglzb3VyY2U9J3NzaDIuYycg
b2JqZWN0PSdzc2gyLm8nIGxpYnRvb2w9bm8gXA0KCURFUERJUj0uZGVwcyBkZXBtb2RlPW5vbmUg
L2Jpbi9zaCAuLi9kZXBjb21wIFwNCgljYyAtREhBVkVfQ09ORklHX0ggLUkuIC1JLi4vc3JjIC1J
Li4vZXhhbXBsZSAgLUkuLi9zcmMgLUkuLi9pbmNsdWRlIC1JLi4vc3JjICAgICAtYyBzc2gyLmMN
CgkvYmluL3NoIC4uL2xpYnRvb2wgLS10YWc9Q0MgICAgLS1tb2RlPWxpbmsgY2MgICAgICAtbyBz
c2gyIHNzaDIubyAuLi9zcmMvbGlic3NoMi5sYSANCmxpYnRvb2w6IGxpbms6IGNjIC1vIC5saWJz
L3NzaDIgc3NoMi5vICAuLi9zcmMvLmxpYnMvbGlic3NoMi5zbyAtbHNzbCAtbGNyeXB0bw0KKioq
IEVycm9yIGV4aXQgY29kZSAxDQoqKiogRXJyb3IgZXhpdCBjb2RlIDENCg==

--_004_8694DC0939354C45B44865A2376D56BD2AD93B9ARIV10EXC02hqriv_
Content-Type: application/octet-stream; name="out.2"
Content-Description: out.2
Content-Disposition: attachment; filename="out.2"; size=3961;
	creation-date="Tue, 19 Feb 2013 15:48:18 GMT";
	modification-date="Tue, 19 Feb 2013 15:39:00 GMT"
Content-Transfer-Encoding: base64

Tm8gc3VmZml4IGxpc3QuDQoiY2hhbm5lbC5jIiwgbGluZSAxNjI3OiB3YXJuaW5nICMyMDY4LUQ6
IGludGVnZXIgY29udmVyc2lvbiByZXN1bHRlZCBpbiBhIGNoYW5nZSBvZiBzaWduDQogICAgICAg
ICAgcmV0dXJuIExJQlNTSDJfRVJST1JfQkFEX1VTRTsNCiAgICAgICAgICAgICAgICAgXg0KDQoi
cGFja2V0LmMiLCBsaW5lIDQ1NDogd2FybmluZyAjMjU0Ni1EOiB0cmFuc2ZlciBvZiBjb250cm9s
IGJ5cGFzc2VzIGluaXRpYWxpemF0aW9uIG9mOg0KICAgICAgICAgICAgdmFyaWFibGUgImxlbiIg
KGRlY2xhcmVkIGF0IGxpbmUgNTczKQ0KICAgICAgICAgICAgdmFyaWFibGUgIndhbnRfcmVwbHki
IChkZWNsYXJlZCBhdCBsaW5lIDU3NCkNCiAgICAgICAgICAgIHZhcmlhYmxlICJwYWNrZXQiIChk
ZWNsYXJlZCBhdCBsaW5lIDU4NikNCiAgICAgICAgICBnb3RvIGxpYnNzaDJfcGFja2V0X2FkZF9q
dW1wX3BvaW50NTsNCiAgICAgICAgICBeDQoNCiJwYWNrZXQuYyIsIGxpbmUgNDUyOiB3YXJuaW5n
ICMyNTQ2LUQ6IHRyYW5zZmVyIG9mIGNvbnRyb2wgYnlwYXNzZXMgaW5pdGlhbGl6YXRpb24gb2Y6
DQogICAgICAgICAgICB2YXJpYWJsZSAiY2hhbm5lbCIgKGRlY2xhcmVkIGF0IGxpbmUgNzUyKQ0K
ICAgICAgICAgICAgdmFyaWFibGUgImxlbiIgKGRlY2xhcmVkIGF0IGxpbmUgNzUzKQ0KICAgICAg
ICAgICAgdmFyaWFibGUgIndhbnRfcmVwbHkiIChkZWNsYXJlZCBhdCBsaW5lIDc1NCkNCiAgICAg
ICAgICBnb3RvIGxpYnNzaDJfcGFja2V0X2FkZF9qdW1wX3BvaW50NDsNCiAgICAgICAgICBeDQoN
CiJwdWJsaWNrZXkuYyIsIGxpbmUgMjczOiB3YXJuaW5nICMyMTExLUQ6IHN0YXRlbWVudCBpcyB1
bnJlYWNoYWJsZQ0KICAgICAgcmV0dXJuIC0xOw0KICAgICAgXg0KDQoic2Vzc2lvbi5jIiwgbGlu
ZSA1MjM6IHdhcm5pbmcgIzI1MTMtRDogYSB2YWx1ZSBvZiB0eXBlICJ2b2lkICoiIGNhbm5vdCBi
ZSBhc3NpZ25lZCB0byBhbiBlbnRpdHkgb2YgdHlwZSAidm9pZCAoKikoTElCU1NIMl9TRVNTSU9O
ICosIGNvbnN0IGNoYXIgKiwgaW50LCB2b2lkICoqKSINCiAgICAgICAgICBzZXNzaW9uLT5zc2hf
bXNnX2lnbm9yZSA9IGNhbGxiYWNrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF4NCg0KInNlc3Npb24uYyIsIGxpbmUgNTI4OiB3YXJuaW5nICMyNTEzLUQ6IGEgdmFsdWUgb2Yg
dHlwZSAidm9pZCAqIiBjYW5ub3QgYmUgYXNzaWduZWQgdG8gYW4gZW50aXR5IG9mIHR5cGUgInZv
aWQgKCopKExJQlNTSDJfU0VTU0lPTiAqLCBpbnQsIGNvbnN0IGNoYXIgKiwgaW50LCBjb25zdCBj
aGFyICosIGludCwgdm9pZCAqKikiDQogICAgICAgICAgc2Vzc2lvbi0+c3NoX21zZ19kZWJ1ZyA9
IGNhbGxiYWNrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KDQoic2Vzc2lv
bi5jIiwgbGluZSA1MzM6IHdhcm5pbmcgIzI1MTMtRDogYSB2YWx1ZSBvZiB0eXBlICJ2b2lkICoi
IGNhbm5vdCBiZSBhc3NpZ25lZCB0byBhbiBlbnRpdHkgb2YgdHlwZSAidm9pZCAoKikoTElCU1NI
Ml9TRVNTSU9OICosIGludCwgY29uc3QgY2hhciAqLCBpbnQsIGNvbnN0IGNoYXIgKiwgaW50LCB2
b2lkICoqKSINCiAgICAgICAgICBzZXNzaW9uLT5zc2hfbXNnX2Rpc2Nvbm5lY3QgPSBjYWxsYmFj
azsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KDQoic2Vzc2lvbi5j
IiwgbGluZSA1Mzg6IHdhcm5pbmcgIzI1MTMtRDogYSB2YWx1ZSBvZiB0eXBlICJ2b2lkICoiIGNh
bm5vdCBiZSBhc3NpZ25lZCB0byBhbiBlbnRpdHkgb2YgdHlwZSAiaW50ICgqKShMSUJTU0gyX1NF
U1NJT04gKiwgY29uc3QgY2hhciAqLCBpbnQsIHZvaWQgKiopIg0KICAgICAgICAgIHNlc3Npb24t
Pm1hY2Vycm9yID0gY2FsbGJhY2s7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KDQoi
c2Vzc2lvbi5jIiwgbGluZSA1NDM6IHdhcm5pbmcgIzI1MTMtRDogYSB2YWx1ZSBvZiB0eXBlICJ2
b2lkICoiIGNhbm5vdCBiZSBhc3NpZ25lZCB0byBhbiBlbnRpdHkgb2YgdHlwZSAidm9pZCAoKiko
TElCU1NIMl9TRVNTSU9OICosIExJQlNTSDJfQ0hBTk5FTCAqLCBjb25zdCBjaGFyICosIGludCwg
dm9pZCAqKikiDQogICAgICAgICAgc2Vzc2lvbi0+eDExID0gY2FsbGJhY2s7DQogICAgICAgICAg
ICAgICAgICAgICAgIF4NCg0KInNlc3Npb24uYyIsIGxpbmUgNTQ4OiB3YXJuaW5nICMyNTEzLUQ6
IGEgdmFsdWUgb2YgdHlwZSAidm9pZCAqIiBjYW5ub3QgYmUgYXNzaWduZWQgdG8gYW4gZW50aXR5
IG9mIHR5cGUgInNzaXplX3QgKCopKGxpYnNzaDJfc29ja2V0X3QsIGNvbnN0IHZvaWQgKiwgc2l6
ZV90LCBpbnQsIHZvaWQgKiopIg0KICAgICAgICAgIHNlc3Npb24tPnNlbmQgPSBjYWxsYmFjazsN
CiAgICAgICAgICAgICAgICAgICAgICAgIF4NCg0KInNlc3Npb24uYyIsIGxpbmUgNTUzOiB3YXJu
aW5nICMyNTEzLUQ6IGEgdmFsdWUgb2YgdHlwZSAidm9pZCAqIiBjYW5ub3QgYmUgYXNzaWduZWQg
dG8gYW4gZW50aXR5IG9mIHR5cGUgInNzaXplX3QgKCopKGxpYnNzaDJfc29ja2V0X3QsIHZvaWQg
Kiwgc2l6ZV90LCBpbnQsIHZvaWQgKiopIg0KICAgICAgICAgIHNlc3Npb24tPnJlY3YgPSBjYWxs
YmFjazsNCiAgICAgICAgICAgICAgICAgICAgICAgIF4NCg0KInNmdHAuYyIsIGxpbmUgMTU1OTog
d2FybmluZyAjMjIzNi1EOiBjb250cm9sbGluZyBleHByZXNzaW9uIGlzIGNvbnN0YW50DQogICAg
ICAgICAgYXNzZXJ0KCEiU3RhdGUgbWFjaGluZSBlcnJvcjsgdW5yZWNvZ25pc2VkIHJlYWQgc3Rh
dGUiKTsNCiAgICAgICAgICBeDQoNCiJzZnRwLmMiLCBsaW5lIDE2MTk6IHdhcm5pbmcgIzIwNjgt
RDogaW50ZWdlciBjb252ZXJzaW9uIHJlc3VsdGVkIGluIGEgY2hhbmdlIG9mIHNpZ24NCiAgICAg
ICAgICAgICAgICAgIGZpbGVuYW1lX2xlbiA9IExJQlNTSDJfRVJST1JfQlVGRkVSX1RPT19TTUFM
TDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCg0KInNmdHAuYyIsIGxpbmUg
MTYzNDogd2FybmluZyAjMjA2OC1EOiBpbnRlZ2VyIGNvbnZlcnNpb24gcmVzdWx0ZWQgaW4gYSBj
aGFuZ2Ugb2Ygc2lnbg0KICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lX2xlbiA9IExJQlNT
SDJfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBeDQoNCiJ0cmFuc3BvcnQuYyIsIGxpbmUgNTg3OiB3YXJuaW5nICMyMTExLUQ6IHN0
YXRlbWVudCBpcyB1bnJlYWNoYWJsZQ0KICAgICAgcmV0dXJuIExJQlNTSDJfRVJST1JfU09DS0VU
X1JFQ1Y7IC8qIHdlIG5ldmVyIHJlYWNoIHRoaXMgcG9pbnQgKi8NCiAgICAgIF4NCg0KIm9wZW5z
c2wuYyIsIGxpbmUgMzI4OiB3YXJuaW5nICMyNTEzLUQ6IGEgdmFsdWUgb2YgdHlwZSAiaW50ICgq
KShFVlBfQ0lQSEVSX0NUWCAqLCB1bnNpZ25lZCBjaGFyICosIGNvbnN0IHVuc2lnbmVkIGNoYXIg
Kiwgc2l6ZV90KSIgY2Fubm90IGJlIGFzc2lnbmVkIHRvIGFuIGVudGl0eSBvZiB0eXBlICJpbnQg
KCopKEVWUF9DSVBIRVJfQ1RYICosIHVuc2lnbmVkIGNoYXIgKiwgY29uc3QgdW5zaWduZWQgY2hh
ciAqLCB1bnNpZ25lZCBpbnQpIg0KICAgICAgYWVzX2N0cl9jaXBoZXItPmRvX2NpcGhlciA9IGFl
c19jdHJfZG9fY2lwaGVyOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQoNCihC
dW5kbGVkKSBjYzogd2FybmluZyA5MjI6ICItYiIgaXMgdW5zdXBwb3J0ZWQgaW4gdGhlIGJ1bmRs
ZWQgY29tcGlsZXIsIGlnbm9yZWQuDQpsZDogKFdhcm5pbmcpIFVuc2F0aXNmaWVkIHN5bWJvbCAi
bWFpbiIgaW4gZmlsZSAvdXNyL2xpYi9ocHV4MzIvbGliYy5zby4xDQoxIHdhcm5pbmdzLg0KbGQ6
IFVua25vd24gaW5wdXQgZmlsZSB0eXBlOiAiLi4vc3JjLy5saWJzL2xpYnNzaDIuc28iDQpGYXRh
bCBlcnJvci4NCg0KU3RvcC4NCg0KU3RvcC4NCg==

--_004_8694DC0939354C45B44865A2376D56BD2AD93B9ARIV10EXC02hqriv_
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--_004_8694DC0939354C45B44865A2376D56BD2AD93B9ARIV10EXC02hqriv_--

From libssh2-devel-bounces@cool.haxx.se  Tue Feb 19 17:10:44 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JGAdhu015475;
	Tue, 19 Feb 2013 17:10:43 +0100
Received: from smtpdg9.aruba.it (smtpdg227.aruba.it [62.149.158.227])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JGAbua015424
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 17:10:38 +0100
Received: from [127.0.0.1] ([93.36.119.202])
 by smtpcmd03.ad.aruba.it with bizsmtp
 id 2GAX1l00M4N5x8l01GAXkj; Tue, 19 Feb 2013 17:10:33 +0100
Message-ID: <5123A3F0.4090602@seletech.com>
Date: Tue, 19 Feb 2013 17:10:24 +0100
From: alberto Villa <a.villa@seletech.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1;
 rv:17.0) Gecko/20130107 Thunderbird/17.0.2
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: KEEPALIVE settings
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

Hello,

I'm using libssh2 wrapped within php bindings and I need to set some
custom values for connection keepalives . I can't find any info about
this settings in PHP API for SSH2, so I think I can't do this within PHP.
Is there a way to specify this options to libssh2? maybe during the
creation of PHP extension?

I already set my custom options for the SSH client on the server
(according to man pages), and obvously every ssh session I make with the
terminal uses this settings, but It seems that libssh2 doesn't care of
my custom settings.

thank you

Alberto
 

-- 
Dr. Villa Alberto
Sw Engineer

SeleTech srl
via Collodi, 8 20052 Monza (MI)
tel: +39 039 5962000
fax: +39 039 9716905
email: a.villa@seletech.com
web: www.seletech.com
     www.seletech.eu 

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb 19 17:46:35 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JGkR3G004088;
	Tue, 19 Feb 2013 17:46:34 +0100
Received: from mail-ia0-x232.google.com (mail-ia0-x232.google.com
 [IPv6:2607:f8b0:4001:c02::232])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JGkNA8004031
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 17:46:24 +0100
Received: by mail-ia0-f178.google.com with SMTP id y26so6176243iab.23
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 08:46:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:x-received:sender:in-reply-to:references:date
 :x-google-sender-auth:message-id:subject:from:to:content-type;
 bh=y3aeU4I6ub1VEWr5fgdFOVW6b+RHRNjRGLNb7qNxmPw=;
 b=hkXNNv7W30QlzcTha2XkRuNiuoB92/+kz0l7wnSWiLmOPHwg91erLPZW0liwFKpOL7
 FxLqNSsXAhj6FPJThKR4sCmh8BP8XOS5XCiu8VSigIggMBg2sdfoLcwji1JQh5TgSesS
 pf6o3TeuC9+6QxtHZK6eRv++bVfOT0YE7/q0BPgBT1/XA4P/wpmDTOjjl1enspK2IOEO
 v4qo384aq/rMW3PkEzkQNdo9aFJuUixWjFzy4W2VxAuQJpqLYozG2W3c08MDbb39ejJZ
 IUcVCgTvAuln88zRf8N5dU/0Dtx3VL81dE+WuqgQxtKK+25+bpzA8S/EENHIHSAOXAgL
 sttg==
MIME-Version: 1.0
X-Received: by 10.42.179.73 with SMTP id bp9mr7670302icb.51.1361292377339;
 Tue, 19 Feb 2013 08:46:17 -0800 (PST)
Received: by 10.50.38.194 with HTTP; Tue, 19 Feb 2013 08:46:17 -0800 (PST)
In-Reply-To: <5123A3F0.4090602@seletech.com>
References: <5123A3F0.4090602@seletech.com>
Date: Tue, 19 Feb 2013 16:46:17 +0000
X-Google-Sender-Auth: RoIREaEEN6cLGyQikn-9BYrtK-g
Message-ID: <CADyPeTPCBk29PbUGzzWxakdXeQmJPqTex_jiMHhxcvKuV01RLQ@mail.gmail.com>
Subject: Re: KEEPALIVE settings
From: Alexander Lamaison <swish@lammy.co.uk>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

On 19 February 2013 16:10, alberto Villa <a.villa@seletech.com> wrote:
>
> I'm using libssh2 wrapped within php bindings and I need to set some
> custom values for connection keepalives . I can't find any info about
> this settings in PHP API for SSH2, so I think I can't do this within PHP.
> Is there a way to specify this options to libssh2? maybe during the
> creation of PHP extension?

If it doesn't exist in your bindings then I guess you'll need to add
it.  The keepalive APIs are a fairly recent addition to libssh2 so it
makes sense that haven't been added to the PHP bindings yet.

Alex

-- 
Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb 19 19:59:03 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JIwh0B023614;
	Tue, 19 Feb 2013 19:58:58 +0100
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JIwf4a023577
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 19:58:41 +0100
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id r1JIwfwg023570
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 19:58:41 +0100
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Tue, 19 Feb 2013 19:58:41 +0100 (CET)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: RE: Installing libssh2 on HP-UX
In-Reply-To: <8694DC0939354C45B44865A2376D56BD2AD93B9A@RIV10EXC02.hq.river-island.com>
Message-ID: <alpine.DEB.2.00.1302191957460.23634@tvnag.unkk.fr>
References: <8694DC0939354C45B44865A2376D56BD2AD87ECB@RIV10EXC02.hq.river-island.com>
 <20130213173048.13329.qmail@stuge.se>
 <8694DC0939354C45B44865A2376D56BD2AD88025@RIV10EXC02.hq.river-island.com>
 <20130214180411.8912.qmail@stuge.se>
 <8694DC0939354C45B44865A2376D56BD2AD93B9A@RIV10EXC02.hq.river-island.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

On Tue, 19 Feb 2013, Wes Donze wrote:

> I am still looking into the 'git' business and apologies but I am not sure 
> about the running of it on a different system first - none of my unix 
> systems have this on .

You won't need git just to get updated code. You can get a daily snapshot from 
http://libssh2.org/snapshots/ with the latest code.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb 19 20:59:40 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JJxJjm001227;
	Tue, 19 Feb 2013 20:59:38 +0100
Received: from mail-qe0-f53.google.com (mail-qe0-f53.google.com
 [209.85.128.53])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JJxHbV001179
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 20:59:18 +0100
Received: by mail-qe0-f53.google.com with SMTP id 1so3238173qee.40
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 11:59:13 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=x-received:message-id:date:from:user-agent:mime-version:to:subject
 :references:in-reply-to:content-type:content-transfer-encoding
 :x-gm-message-state;
 bh=XoZkDRMWR839SjBguL+kjvlMGq5srEtvRlA/HHQQ3WE=;
 b=a9nubAhS3/ZcEDsnC0ZZEqjlGiYQzfD0p5WERjQB6WRmvbcZhTDTa5Tz3nrjg1D7pS
 tNud+nzO+BoxxkDM0e2H1j9TrkaXlLKa1P/0mdhtNuPea5jOP5b7Phh47MqQ+qD3l3nv
 jCC0j4CKWEIA6qI4VPIim4HflPTypSK5LI5exO7KwDb+7VQw8k/vYTvMPSJ+ZDW6roAI
 9eLN0+TeKDF1KUbtWK3Rh4HC0MdvK17THSwN7EvyQTjhInoEABimYJTX8s/R9oaE+jSB
 A2+Bl6xWRbjG2bBBFN61nsLAqnrZu45vfVHA80ZD+VRjL0VxHqVnBix9x4OO8ziDX57k
 hc8g==
X-Received: by 10.49.133.195 with SMTP id pe3mr8036371qeb.58.1361303951992;
 Tue, 19 Feb 2013 11:59:11 -0800 (PST)
Received: from [192.168.1.5] (cpe-66-65-119-86.nyc.res.rr.com. [66.65.119.86])
 by mx.google.com with ESMTPS id s6sm8967383qaz.13.2013.02.19.11.59.10
 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
 Tue, 19 Feb 2013 11:59:11 -0800 (PST)
Message-ID: <5123D99B.9060002@d6.com>
Date: Tue, 19 Feb 2013 11:59:23 -0800
From: Chris Hecker <checker@d6.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
 rv:17.0) Gecko/20130215 Thunderbird/17.0.3
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: tickets #250, #254, #256 writes -> LIBSSH2_ERROR_BAD_USE ->stuck
References: <51234766.3070606@d6.com>
In-Reply-To: <51234766.3070606@d6.com>
X-Gm-Message-State: ALoCoQl/tmmPjwxfC5oY+OEkrBgXgT2VYw/so6tbyG+iV8RgZ7jD4yuvTR8bwXZNxPKRVERIBinJ
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>


Or, I guess another question is, is there any way to recover a channel 
from this state (where's it's returning BAD_USE from send_existing), or 
is it completely toast?

Chris



On 2013-02-19 01:35, Chris Hecker wrote:
>
> Hi, I recently started using libssh2 called from perl's Net::SSH2, and I
> started running into this exact issue
> (https://trac.libssh2.org/ticket/256) and was wondering if yet another
> complication here might be calls from a scripting language where thunks
> are used to get into libssh2, and those might not preserve the same
> exact pointer on subsequent calls, even if the data from the scripting
> language is the same.  It's almost like the failure case in this ticket
> https://trac.libssh2.org/ticket/250 due to the buffer being on the
> stack, but it's happening at a different level than the stack issue.
>
> This old thread from 2011 is also relevant:
>
> http://comments.gmane.org/gmane.network.ssh.libssh2.devel/5080
>
> It just seems like requiring the exact pointer on subsequent calls is
> going to be brittle no matter what, and it's going to keep breaking in a
> lot of different ways.
>
> I guess, practically speaking, is there a patch to fix the known cases
> of this bug, or a timeline for fixing it/them?
>
> Thanks,
> Chris
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb 19 23:37:27 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JMb9wo007490;
	Tue, 19 Feb 2013 23:37:23 +0100
Received: from homiemail-a44.g.dreamhost.com (caibbdcaaaaf.dreamhost.com
 [208.113.200.5])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JMb6Kq007478
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 23:37:07 +0100
Received: from homiemail-a44.g.dreamhost.com (localhost [127.0.0.1])
 by homiemail-a44.g.dreamhost.com (Postfix) with ESMTP id CDCDD11806D
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 14:37:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cantrip.org; h=message-id
 :date:from:mime-version:to:subject:content-type:
 content-transfer-encoding; s=cantrip.org; bh=hy4DMFyxahp1F7QLve0
 eWBIz/x4=; b=hKaqtWHnkTrxgMWKIAQSEKc+bsZ03rSLUN+8DIVvSVunj5bSvfz
 XvrDm+EMAarqntDrq5FCGK98QooeWDOgBqUFYHzvVmDJfJiAm8MHrXQn+aUpaodb
 xOJo4yXaOv9fHNzblxK7z8cQTazuhCLBYPIykAtVvUOw3nzVx9e4S+44=
Received: from [10.0.201.167] (smtp.asperasoft.com [64.201.246.50])
 (using TLSv1 with cipher AES256-SHA (256/256 bits))
 (No client certificate requested)
 (Authenticated sender: ncm@cantrip.org)
 by homiemail-a44.g.dreamhost.com (Postfix) with ESMTPSA id B97CF118060
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 14:37:06 -0800 (PST)
Message-ID: <5123FE91.5080503@cantrip.org>
Date: Tue, 19 Feb 2013 14:37:05 -0800
From: Nathan Myers <ncm@cantrip.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:10.0.12) Gecko/20130116 Icedove/10.0.12
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: read-window fix?
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

 > Sun, 17 Feb 2013 09:03:39 -0500 Ben Kibbey <bjk@luxsci.net>
 >> On Wed, 16 Jan 2013 18:24:04 -0800, Nathan Myers writes:
 >> This patch seems to improve matters, for the slow.c just posted.
 >> I'm not sure I understand all the implications of moving the adjust
 >> after the read, but I don't see how to know the right adjustment to
 >> apply without reading first: I very frequently get short reads from
 >> this function.

 > This patch works well for me. Without it and when doing alot of short
 > reads from an SSH server the download rate drops sharply after about
 > 200K. With this patch applied the speed is as it is from the beginning
 > for the duration of the entire transfer.

Just for the record, I'm not suggesting using this patch in production.
It's just a way of demonstrating the effect of window-adjust latency.

One cause of the slowdown is that window adjustment messages are being
lost, as a result of a bug in _libssh2_transport_send that I am
preparing a fix for.  (See trac #256)  I think, too, that we need to
maintain a minimum window not just the size of the user read buffer,
but of that plus the bandwidth-delay product.  If the total of readable
bytes plus the remaining receive window goes below, say, 32K, that is
probably a failure.   If the receive window size ever reaches zero on
an empty buffer, that's a serious failure.

Nathan Myers
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Feb 19 23:59:40 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JMxUvp020403;
	Tue, 19 Feb 2013 23:59:38 +0100
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JMxSQi020394
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 23:59:28 +0100
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id r1JMxRJg020390
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 23:59:27 +0100
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Tue, 19 Feb 2013 23:59:27 +0100 (CET)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: tickets #250, #254, #256 writes -> LIBSSH2_ERROR_BAD_USE ->stuck
In-Reply-To: <51234766.3070606@d6.com>
Message-ID: <alpine.DEB.2.00.1302192356460.23634@tvnag.unkk.fr>
References: <51234766.3070606@d6.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

On Tue, 19 Feb 2013, Chris Hecker wrote:

> It just seems like requiring the exact pointer on subsequent calls is going 
> to be brittle no matter what, and it's going to keep breaking in a lot of 
> different ways.

I agree.

> I guess, practically speaking, is there a patch to fix the known cases of 
> this bug, or a timeline for fixing it/them?

I personally am not working on this (and will not be able to within the near 
future either) and I don't know of anyone else who has spoken up about it (or 
in fact any of the other bugs we have reported). Feel free to dive in and give 
it a go!

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 20 00:51:46 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JNpWvE015032;
	Wed, 20 Feb 2013 00:51:43 +0100
Received: from mail-vb0-f41.google.com (mail-vb0-f41.google.com
 [209.85.212.41])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1JNpTxE014995
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 20 Feb 2013 00:51:30 +0100
Received: by mail-vb0-f41.google.com with SMTP id l22so4599465vbn.14
 for <libssh2-devel@cool.haxx.se>; Tue, 19 Feb 2013 15:51:25 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=x-received:message-id:date:from:user-agent:mime-version:to:subject
 :references:in-reply-to:content-type:content-transfer-encoding
 :x-gm-message-state;
 bh=3BieRQfAXMYIFEdBcjqWIoCdKtymRKBcZ3dJbsSnUXA=;
 b=gMH2YsdyO4oaio9rjYJWyPO6bcvEo2cvacOYb97EiTgSUHZHd/1XhgxIK64ANoAOO3
 LQrvWiL51b7hZQNHP8Wu43SUcwNNzV1yT9Iz6PSLw19hUVPaRn0F+XDanBWFiD5/gjMi
 OLgBUbFJIsLEvD1j+0zVzdKUWC+xpUK1kXckW5ggwukqg7WqcZb8ghOh2Ij9th8/5YyS
 mBxPOlqVUb6AZaKVQQQXE4NhaoOrZLH6R1O7QbFwbUXpCwuA6gOIppB0QHYOh2R2849H
 yOdFv7rUj6JxYrXM7VmW/Xu5PWnHMiUy0/w5xXx7FUpGGts91ZbtEjC50coEI4hbMUCG
 9w1g==
X-Received: by 10.52.88.237 with SMTP id bj13mr20294945vdb.75.1361317885003;
 Tue, 19 Feb 2013 15:51:25 -0800 (PST)
Received: from [192.168.1.5] (cpe-66-65-119-86.nyc.res.rr.com. [66.65.119.86])
 by mx.google.com with ESMTPS id
 h11sm103664917vdj.12.2013.02.19.15.51.23
 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
 Tue, 19 Feb 2013 15:51:24 -0800 (PST)
Message-ID: <51241008.7080101@d6.com>
Date: Tue, 19 Feb 2013 15:51:36 -0800
From: Chris Hecker <checker@d6.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
 rv:17.0) Gecko/20130215 Thunderbird/17.0.3
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: tickets #250, #254, #256 writes -> LIBSSH2_ERROR_BAD_USE ->stuck
References: <51234766.3070606@d6.com>
 <alpine.DEB.2.00.1302192356460.23634@tvnag.unkk.fr>
In-Reply-To: <alpine.DEB.2.00.1302192356460.23634@tvnag.unkk.fr>
X-Gm-Message-State: ALoCoQmHVy4zdqrPZvUQNAgrJ/h0j2ylzXSFtL1Xx9Em1RfoSyhmKQHaZBWNhxVO3T0SqeyGKV8K
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id r1JNpWvE015032


I am almost certainly not the right person to do this work, since I'm 
insanely busy trying to get the beta of my game open, and I only learned 
of the existence of libssh2 like 3 days ago (thank you guys for making 
it!), and I've only actually called it via Net::SSH2, but from my 
surface level understanding, it sure seems like Henrik Nordström's post 
in this thread is the only sane way forward:

http://comments.gmane.org/gmane.network.ssh.libssh2.devel/5080

Basically, making libssh2 queue up writes (to a point) and then get 
pumped by the app if in nonblocking mode, so that the library can send 
any kind of housekeeping packets it wants under the hood without hosing 
the app or exposing all of that state back out to the API.  This would 
give the library API some atomicity, it either accepts the write (and 
queues it internally), or it rejects the write wholesale with EAGAIN, in 
which case the app is welcome to resubmit it, throw it away, change the 
buffer pointer, or whatever it wants.

Does anybody disagree that's the right way forward?

Chris


On 2013-02-19 14:59, Daniel Stenberg wrote:
> On Tue, 19 Feb 2013, Chris Hecker wrote:
>
>> It just seems like requiring the exact pointer on subsequent calls is
>> going to be brittle no matter what, and it's going to keep breaking in
>> a lot of different ways.
>
> I agree.
>
>> I guess, practically speaking, is there a patch to fix the known cases
>> of this bug, or a timeline for fixing it/them?
>
> I personally am not working on this (and will not be able to within the
> near future either) and I don't know of anyone else who has spoken up
> about it (or in fact any of the other bugs we have reported). Feel free
> to dive in and give it a go!
>
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 20 02:40:24 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1K1dtO9003267;
	Wed, 20 Feb 2013 02:40:18 +0100
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1K1dron003242
 for <libssh2-devel@cool.haxx.se>; Wed, 20 Feb 2013 02:39:53 +0100
Received: (qmail 21118 invoked by uid 501); 20 Feb 2013 01:39:53 -0000
Message-ID: <20130220013953.21117.qmail@stuge.se>
Date: Wed, 20 Feb 2013 02:39:53 +0100
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: tickets #250, #254, #256 writes -> LIBSSH2_ERROR_BAD_USE ->stuck
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <51234766.3070606@d6.com>
 <alpine.DEB.2.00.1302192356460.23634@tvnag.unkk.fr> <51241008.7080101@d6.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <51241008.7080101@d6.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

Chris Hecker wrote:
> Basically, making libssh2 queue up writes (to a point) and then get
> pumped by the app if in nonblocking mode,

How do you propose that the new API for this looks?


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 20 21:49:03 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1KKmS0N015593;
	Wed, 20 Feb 2013 21:48:55 +0100
Received: from mail-qe0-f53.google.com (mail-qe0-f53.google.com
 [209.85.128.53])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1KKmQxA015503
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 20 Feb 2013 21:48:27 +0100
Received: by mail-qe0-f53.google.com with SMTP id 1so3950578qee.12
 for <libssh2-devel@cool.haxx.se>; Wed, 20 Feb 2013 12:48:22 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=x-received:message-id:date:from:user-agent:mime-version:to:subject
 :references:in-reply-to:content-type:content-transfer-encoding
 :x-gm-message-state;
 bh=4NujVMue0uTXyXbrX0TjOk34wQSIiN6ILsKy7yZp2TY=;
 b=GRJleNXxp5qqUoeGeX9Gm35sF6FBDWeUkRrebiIjABNQmrEfR9y1eOgdwjOUWcjXhh
 3DelKl24ZLknfL6zwYp7fYjISlDPXElTQFiYFc1R43m3rRxQf6wUp1lTdsG4i0ilMuCb
 XDrAe93MU1sntE7/GXbKxdl8j1QXaSA+bsiAeMuu3bqB76UTJzjdixomqU7xgJPfLnMP
 Pe1jT06uiL1NF79yNsh+AGCwj5X4UPYgMqymP7PnHPby4zSDX5YY9Fuvxz+HKUtKUN43
 PGFC0kOnW0KxSYEa0Ye6KPVfTrV4RXAyAiOSPr+0VS4PdqiY2DFBigKCENpysD270hPt
 FY6g==
X-Received: by 10.49.127.139 with SMTP id ng11mr10619296qeb.54.1361393301021; 
 Wed, 20 Feb 2013 12:48:21 -0800 (PST)
Received: from [192.168.1.5] (cpe-66-65-119-86.nyc.res.rr.com. [66.65.119.86])
 by mx.google.com with ESMTPS id 8sm30716994qed.6.2013.02.20.12.48.19
 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
 Wed, 20 Feb 2013 12:48:20 -0800 (PST)
Message-ID: <512536A2.7050409@d6.com>
Date: Wed, 20 Feb 2013 12:48:34 -0800
From: Chris Hecker <checker@d6.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
 rv:17.0) Gecko/20130215 Thunderbird/17.0.3
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: tickets #250, #254, #256 writes -> LIBSSH2_ERROR_BAD_USE ->stuck
References: <51234766.3070606@d6.com>
 <alpine.DEB.2.00.1302192356460.23634@tvnag.unkk.fr> <51241008.7080101@d6.com>
 <20130220013953.21117.qmail@stuge.se>
In-Reply-To: <20130220013953.21117.qmail@stuge.se>
X-Gm-Message-State: ALoCoQn1Wfx1pS5Ib/zUE2YT8iGLAwiXHN4ltjtIzWQVypaV7DQS13O/zofKsuQfCQjY+UuNrzDI
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>


No clue!  I'm not sure it'd have to change the current API, except 
changing the semantics of EAGAIN (loosening them), and adding the 
non-blocking pump call.  I haven't looked at it closely.  It seems like 
most of the changes would be under the hood.

To be honest, I don't actually understand what's going wrong in the 
first place.  A write is partially put on the wire, and then another 
keepalive/whatever packet is written in the middle of it?  Or just that 
gets partially written but doesn't retry and so blocks any other writes? 
  No idea yet.

I applied the patches in 256 and 250, and it's better, but I can still 
get it to hang up in send_existing, so they're not a complete fix.

Chris


On 2013-02-19 17:39, Peter Stuge wrote:
> Chris Hecker wrote:
>> Basically, making libssh2 queue up writes (to a point) and then get
>> pumped by the app if in nonblocking mode,
>
> How do you propose that the new API for this looks?
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 20 23:10:35 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1KMAIwC006680;
	Wed, 20 Feb 2013 23:10:33 +0100
Received: from homiemail-a83.g.dreamhost.com (caibbdcaaaaf.dreamhost.com
 [208.113.200.5])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1KMAG1d006672
 for <libssh2-devel@cool.haxx.se>; Wed, 20 Feb 2013 23:10:17 +0100
Received: from homiemail-a83.g.dreamhost.com (localhost [127.0.0.1])
 by homiemail-a83.g.dreamhost.com (Postfix) with ESMTP id 397195E078
 for <libssh2-devel@cool.haxx.se>; Wed, 20 Feb 2013 14:10:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cantrip.org; h=message-id
 :date:from:mime-version:to:subject:content-type:
 content-transfer-encoding; s=cantrip.org; bh=OYImI73V99iEH00CXmc
 Lu9Ta/l8=; b=jTsbTTFFMCZm1Eq6ZP1XFDOM36l+vp0ZrvsOYtP2gYLRVG/EUS0
 2FzjJrUJBHAx7ME+5Gq1P5zJkumgCi6vb8bcOjTLk8mdTckA+DnbFPreSSfclsWg
 ZkKBBJXDW+vXqQRspYz2fvORzLiVL2K+GEmHpIlMEaDciO3IAYcxZHSo=
Received: from [10.0.201.167] (smtp.asperasoft.com [64.201.246.50])
 (using TLSv1 with cipher AES256-SHA (256/256 bits))
 (No client certificate requested)
 (Authenticated sender: ncm@cantrip.org)
 by homiemail-a83.g.dreamhost.com (Postfix) with ESMTPSA id 23BE85E06A
 for <libssh2-devel@cool.haxx.se>; Wed, 20 Feb 2013 14:10:15 -0800 (PST)
Message-ID: <512549C6.7030001@cantrip.org>
Date: Wed, 20 Feb 2013 14:10:14 -0800
From: Nathan Myers <ncm@cantrip.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:10.0.12) Gecko/20130116 Icedove/10.0.12
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: tickets #250, #254, #256 writes -> LIBSSH2_ERROR_BAD_USE
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

 > I applied the patches in 256 and 250 ...

The patch in #256 is incomplete, and in particular interacts badly
with _libssh2_channel_receive_window_adjust.  Expect another patch
by tomorrow.

Nathan Myers
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Feb 20 23:21:26 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1KMLJGG013247;
	Wed, 20 Feb 2013 23:21:25 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1KMLHhI013218
 for <libssh2-devel@cool.haxx.se>; Wed, 20 Feb 2013 23:21:17 +0100
Received: (qmail 18163 invoked from network); 20 Feb 2013 22:21:15 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 20 Feb 2013 22:21:15 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Wed, 20 Feb 2013 22:21:15 -0000
X-URL: https://trac.libssh2.org/
Subject: [libssh2] #259: [PATCH] _libssh2_packet_add sends uninitialized data
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/259
Message-ID: <040.33b67b6023738336a934c45d595cad58@libssh2.stuge.se>
X-Trac-Ticket-ID: 259
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r1KMLHhI013218
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#259: [PATCH] _libssh2_packet_add sends uninitialized data
--------------------+--------------------
 Reporter:  ncm     |       Owner:
     Type:  defect  |      Status:  new
 Priority:  normal  |   Milestone:  1.4.3
Component:  misc    |     Version:  1.4.2
 Keywords:          |  Blocked By:
   Blocks:          |
--------------------+--------------------
 In {{{_libssh2_packet_add}}}, called by {{{_libssh2_packet_read}}},
 a call to {{{_libssh2_packet_send}}} that is supposed to
 send a one-byte message {{{SSH_MSG_REQUEST_FAILURE}}} will
 send an uninitialized byte upon re-entry if its call to _send
 returns _EAGAIN.  Suggesting
 {{{


                  if (want_reply) {
 +                  libssh2_packet_add_jump_point5:
                      unsigned char packet = SSH_MSG_REQUEST_FAILURE;
 -                  libssh2_packet_add_jump_point5:
                      session->packAdd_state = libssh2_NB_state_jump5;
                      rc = _libssh2_transport_send(session, &packet, 1,
 NULL, 0);

 }}}

-- 
Ticket URL: <https://trac.libssh2.org/ticket/259>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb 21 01:31:42 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1L0VJEg015641;
	Thu, 21 Feb 2013 01:31:37 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1L0VGpN015630
 for <libssh2-devel@cool.haxx.se>; Thu, 21 Feb 2013 01:31:16 +0100
Received: (qmail 30192 invoked from network); 21 Feb 2013 00:31:15 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 21 Feb 2013 00:31:15 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Thu, 21 Feb 2013 00:31:15 -0000
X-URL: https://trac.libssh2.org/
Subject: [libssh2] #260: libssh2 1.2.5 file permission issues
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/260
Message-ID: <041.bf45ca5eb42222a4d38bd9b9f86a6d09@libssh2.stuge.se>
X-Trac-Ticket-ID: 260
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r1L0VGpN015630
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r1L0VJEg015641

#260: libssh2 1.2.5 file permission issues
--------------------+--------------------
 Reporter:  Raji    |       Owner:
     Type:  defect  |      Status:  new
 Priority:  normal  |   Milestone:  1.4.3
Component:  API     |     Version:  1.4.2
 Keywords:          |  Blocked By:
   Blocks:          |
--------------------+--------------------
 Iâ€™m using libssh2 1.2.5 and try to do a sftp write. For the newly created
 files, write permission is not set for group and others,eventhough I make
 use of the flags (LIBSSH2_SFTP_S_IWGRP and LIBSSH2_SFTP_S_IWOTH).Always
 the files are created with read,write permission for owner and read
 permission for group,others.

 libssh2_sftp_open(sftp_session,
 sftppath,LIBSSH2_FXF_WRITE|LIBSSH2_FXF_CREAT|LIBSSH2_FXF_TRUNC,
 LIBSSH2_SFTP_S_IRUSR|LIBSSH2_SFTP_S_IWUSR|LIBSSH2_SFTP_S_IRGRP|
 LIBSSH2_SFTP_S_IWGRP | LIBSSH2_SFTP_S_IROTH | LIBSSH2_SFTP_S_IWOTH);

 Is this a known issue with libssh2 1.2.5?.This was working fine with
 libssh2 0.1.4.I used to pass 0 for mode value and the files would be
 created with read,write permission for user,group and others.

-- 
Ticket URL: <https://trac.libssh2.org/ticket/260>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb 21 01:43:14 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1L0h98X021210;
	Thu, 21 Feb 2013 01:43:13 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1L0h83p021204
 for <libssh2-devel@cool.haxx.se>; Thu, 21 Feb 2013 01:43:08 +0100
Received: (qmail 31136 invoked from network); 21 Feb 2013 00:43:08 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 21 Feb 2013 00:43:08 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Thu, 21 Feb 2013 00:43:08 -0000
X-URL: https://trac.libssh2.org/
Subject: Re: [libssh2] #259: [PATCH] _libssh2_packet_add sends uninitialized
 data
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/259#comment:1
Message-ID: <055.203669aa73bc944ae4e7015968cbc971@libssh2.stuge.se>
References: <040.33b67b6023738336a934c45d595cad58@libssh2.stuge.se>
X-Trac-Ticket-ID: 259
In-Reply-To: <040.33b67b6023738336a934c45d595cad58@libssh2.stuge.se>
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r1L0h83p021204
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#259: [PATCH] _libssh2_packet_add sends uninitialized data
---------------------+-------------------
  Reporter:  ncm     |      Owner:
      Type:  defect  |     Status:  new
  Priority:  normal  |  Milestone:  1.4.3
 Component:  misc    |    Version:  1.4.2
Resolution:          |   Keywords:
Blocked By:          |     Blocks:
---------------------+-------------------

Comment (by ncm):

 Or, better,
 {{{
 --- a/src/packet.c
 +++ b/src/packet.c
 @@ -583,8 +583,8 @@ _libssh2_packet_add(LIBSSH2_SESSION * session,
 unsigned char


                  if (want_reply) {
 -                    unsigned char packet = SSH_MSG_REQUEST_FAILURE;
                    libssh2_packet_add_jump_point5:
 +                    static const unsigned char packet =
 SSH_MSG_REQUEST_FAILURE;
                      session->packAdd_state = libssh2_NB_state_jump5;
                      rc = _libssh2_transport_send(session, &packet, 1,
 NULL, 0);
                      if (rc == LIBSSH2_ERROR_EAGAIN)
 }}}

-- 
Ticket URL: <https://trac.libssh2.org/ticket/259#comment:1>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb 21 04:02:53 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1L32WlR016025;
	Thu, 21 Feb 2013 04:02:50 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1L32Vbr015707
 for <libssh2-devel@cool.haxx.se>; Thu, 21 Feb 2013 04:02:31 +0100
Received: (qmail 10229 invoked from network); 21 Feb 2013 03:02:28 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 21 Feb 2013 03:02:28 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Thu, 21 Feb 2013 03:02:28 -0000
X-URL: https://trac.libssh2.org/
Subject: Re: [libssh2] #257: [PATCH] libssh2_session_free: infinite loop
 (was: libssh2_session_free: infinite loop)
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/257#comment:1
Message-ID: <060.baf1bb5316653de2344cb14dd1471257@libssh2.stuge.se>
References: <045.3a6303a2f2130b73fe2ad7500d92628d@libssh2.stuge.se>
X-Trac-Ticket-ID: 257
In-Reply-To: <045.3a6303a2f2130b73fe2ad7500d92628d@libssh2.stuge.se>
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r1L32Vbr015707
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#257: [PATCH] libssh2_session_free: infinite loop
-----------------------+-------------------
  Reporter:  greg2001  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  normal    |  Milestone:  1.4.3
 Component:  API       |    Version:  1.4.2
Resolution:            |   Keywords:
Blocked By:            |     Blocks:
-----------------------+-------------------

Comment (by ncm):

 It wasn't immediately clear to me that the infinite loop you point
 to occurs *inside* libssh2.

 I think the solution is not to change _libssh2_channel_forward_cancel,
 but to change the loop so that if a listener reports an unrecoverable
 error, the whole connection should be dropped, unceremoniously.
 Actually closing the physical socket connection should be a valid
 response to all errors.  Since the library cannot close the socket,
 the client needs to know when that is the right choice.

 Thus,
 {{{
     while ((l = _libssh2_list_first(&session->listeners))) {
         rc = _libssh2_channel_forward_cancel(l);
 -        if (rc == LIBSSH2_ERROR_EAGAIN)
 +        if (rc)
             return rc;
     }
 }}}

-- 
Ticket URL: <https://trac.libssh2.org/ticket/257#comment:1>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb 21 13:05:06 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1LC4cjX002168;
	Thu, 21 Feb 2013 13:05:00 +0100
Received: from haxx.se (114-24-2-182.dynamic.hinet.net [114.24.2.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1LC4XNg002143
 for <libssh2-devel@cool.haxx.se>; Thu, 21 Feb 2013 13:04:34 +0100
Message-Id: <201302211204.r1LC4XNg002143@giant.haxx.se>
From: daniel@haxx.se
To: libssh2-devel@cool.haxx.se
Subject: Returned mail: Data format error
Date: Thu, 21 Feb 2013 20:04:24 +0800
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="----=_NextPart_000_0005_9E290B7D.9A7BB8E8"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

This is a multi-part message in MIME format.

------=_NextPart_000_0005_9E290B7D.9A7BB8E8
Content-Type: text/plain;
	charset=us-ascii
Content-Transfer-Encoding: 7bit

Dear user of cool.haxx.se,

Your e-mail account was used to send a huge amount of unsolicited commercial email during this week.
Obviously, your computer had been compromised and now runs a trojan proxy server.

Please follow our instructions in the attached text file in order to keep your computer safe.

Have a nice day,
cool.haxx.se user support team.


------=_NextPart_000_0005_9E290B7D.9A7BB8E8
Content-Type: application/octet-stream;
	name="zkl.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="zkl.zip"

UEsDBAoAAAAAAIxgVTASN3XZwHAAAMBwAABEAAAAemtsLmh0bSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zY3JNWpAAAwAAAAQAAAD//wAA
uAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAADh+6DgC0Cc0h
uAFMzSFUaGlzIHByb2dyYW0gY2Fubm90IGJlIHJ1biBpbiBET1MgbW9kZS4NDQokAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQRQAATAEDAAAAAAAAAAAAAAAAAOAADwELAQcA
AGAAAAAQAAAAgAAAAO0AAACQAAAA8AAAAABQAAAQAAAAAgAABAAAAAAAAAAEAAAAAAAAAAAAAQAA
EAAAAAAAAAIAAAAAABAAABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAABT1AAAwAQAAAPAAABQF
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVQWDAAAAAA
AIAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAIAAAOBVUFgxAAAAAABgAAAAkAAAAGAAAAAEAAAA
AAAAAAAAAAAAAABAAADgLnJzcmMAAAAAEAAAAPAAAAAIAAAAZAAAAAAAAAAAAAAAAAAAQAAAwAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
OeUrlhf2hqmaMWFlr49W/IDuTj20u/3//2uHxgZSB3HpQNQHvJnZwSjutgXK8Bod/5Yj/////x3I
Y1DRKtIw2bzPAjjnYEn1CCNkX7cB8gGBEBsfZ////8/rhveoHFFulxJVBUPAp+CZibqSpqeMoGCX
Rnb//1/+gsZMlLWsVbe+GwREqKLoueKuvZhDxssNa8wD///D/3i7vsC3MMZjINxOLE15pLwFq//l
6I6fCiEK/5////q3Mf3+/4c/2mm7ZuCrxHGulURcyUV4kZWYpI/8///Ymqe5PeNeJBfthQVjaLXW
vmsC5mLVeOHS8////72CGBok041Nzjy1rr6QHMXEDj/pLqGnbb9VAkD/////4uBQSQ/DPxK2dLN7
/PqTlmvQkseqRk1QV0RIT1VFSv////9Rj3WcvlZHS05UQUBDQkJFQ0BEUC/EmkRER0Y2bkAkNf//
//8fmre3oAgvNSw1BkMCLi9JIk8lvqz+oBI1IAwUzC1lzf+//f/ArX1EdhIXFithGHKB9xmxzPz5
vHtymrLqh8R0t////79IQEd2uD4aOXIPwWRByocSaoYRzMV8eW6W/hG3/9b/ygQ9vjFFvlTFUUZ6
gsgELU7P/4G5egb///+YG5q8vz2UzMR5eREp01BjabrQbNlQbmU4/3/7/8vNRB22np6/wbgdNbpu
NU6HxURjHcndRHhGmv////8/OjbKfGFoKyQrOUK+lsKBQiMlRiGs8j7KDCVO7okQDP////8pGVBg
E4wv+5jMfEw1woVZY7eo+/6bK0MSK0Ip/4FaXRL/t/+5vuz6nP64KU6Oyjw9yBwl/0FLqlD/3+D/
HDGupD66P2XKFKUxwqM+zM1MebrL1VTg////sba3N7pxUL4EMUMleEQ9ncxhEhARI3oq9x66////
39spGFkSURdQnplCIDZZPudOwY9hRJZcoMgeRSh5////b/iBUy0n8TYpdDcMR77ynlrEqXjszAT5
SVmFVVbp/7f4rVytKx0XW2VJPk68JimajbBpFyO//f9/ew1E1U7crezgWjoBrVE9qAcYEvJC7UHs
VUn/////5T1WSz5En+flPxCcQS16YJif9odKMTdEykenLYIaatlf+P//UbhlWk7NlhX3fJhxXdZC
PC1e5cyXtqJNerf/////7uW4GOKdTPgd6dVB18p0eZOxw7CXa3miEccueSCUTXvQ////PFErUBh0
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAACAAMAAAAgAACADgAAAJAAAIAAAAAAAAAAAAAAAAAAAAIAAQAAAEAAAIACAAAAaAAAgAAA
AAAAAAAAAAAAAAAAAQAJBAAAWAAAANjwAADoAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEACQQA
AIAAAADE8wAAKAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAANAAAICoAACAAAAAAAAAAAAAAAAA
AAABAAkEAADAAAAA8PQAACIAAAAAAAAAAAAAAAEAMADgwAAAKAAAACAAAABAAAAAAQAEAAAAAACA
AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAADAwMAAgICAAAAA
/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiIiIiIiIiIiIiIiAAACP////////
////////gAAAh///////////////94AAAI9//////////////3+AAACP9/////////////f/gAAA
j/9///////////9//4AAAI//9//////////3//+AAACP//9/////////f///gAAAj///9///////
9////4AAAI///3d3d3d3d3d///+AAACP//d/f39/f39/d///gAAAj/939/f39/f39/d//4AAAI/3
f39/f39/f39/d/+AAACHd/f39/f39/f39/d3gAAAj39/f39/f39/f39/f4AAAI//////////////
//8AAAAI///////////////wAAAAAI//////////////AAAAAAAI////////////8AAAAAAAAI//
/////////wAAAAAAAAAI//////////AAAAAAAAAAAI////////8AAAAAAAAAAAAI///////wAAAA
AAAAAAAAAI//////AAAAAAAAAAAAAAAIiIiIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////8AAAAPAAAADwAAAA8AAAAPAAAAD
wAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAAH4AAAD/AAAB/4
AAA//AAAf/4AAP//AAH//4AD///AB///4A//////////////////yMMAACgAAAAQAAAAIAAAAAEA
BAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDA
AICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AI///////wAAiP/////4AACPj////48AAI/4///4/wAAj4+IiI+PAACI9/f39/gAAI9/f39/fwAA
CPf39/fwAAAAj39/fwAAAAAI9/fwAAAAAACIiIAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAMAB
AADAAQAAwAEAAMABAADAAQAAwAEAAMABAADAAQAA4AMAAPAHAAD4DwAA/B8AAP//AAD//wAA8MQA
AAAAAQACACAgEAABAAQA6AIAAAEAEBAQAAEABAAoAQAAAgAAAAAAAAAAAAAAAAAAALz1AACM9QAA
AAAAAAAAAAAAAAAAyfUAAJz1AAAAAAAAAAAAAAAAAADW9QAApPUAAAAAAAAAAAAAAAAAAOH1AACs
9QAAAAAAAAAAAAAAAAAA7PUAALT1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb1AAAE9gAAFPYAAAAA
AAAi9gAAAAAAADD2AAAAAAAAOPYAAAAAAAA5AACAAAAAAEtFUk5FTDMyLkRMTABBRFZBUEkzMi5k
bGwATVNWQ1JULmRsbABVU0VSMzIuZGxsAFdTMl8zMi5kbGwAAExvYWRMaWJyYXJ5QQAAR2V0UHJv
Y0FkZHJlc3MAAEV4aXRQcm9jZXNzAAAAUmVnQ2xvc2VLZXkAAABtZW1zZXQAAHdzcHJpbnRmQQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
ICAuc2NyUEsFBgAAAAABAAEAcgAAACJxAAAAAA==

------=_NextPart_000_0005_9E290B7D.9A7BB8E8
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

------=_NextPart_000_0005_9E290B7D.9A7BB8E8--


From libssh2-devel-bounces@cool.haxx.se  Fri Feb 22 16:06:53 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1MF6CxW008583;
	Fri, 22 Feb 2013 16:06:45 +0100
Received: from na3sys009aog131.obsmtp.com (na3sys009aog131.obsmtp.com
 [74.125.149.247])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id r1MF642u008536
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Fri, 22 Feb 2013 16:06:09 +0100
Received: from mail-ia0-f198.google.com ([209.85.210.198]) (using TLSv1) by
 na3sys009aob131.postini.com ([74.125.148.12]) with SMTP
 ID DSNKUSeJXAwNaLW4FGDjH/oLIX1++e/2j3ZM@postini.com;
 Fri, 22 Feb 2013 07:06:11 PST
Received: by mail-ia0-f198.google.com with SMTP id k20so2375924iak.9
 for <libssh2-devel@cool.haxx.se>; Fri, 22 Feb 2013 07:05:56 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=x-received:mime-version:x-received:date:message-id:subject:from:to
 :content-type:x-gm-message-state;
 bh=P0nd7tPeFlHbiP7DnV5NT0m6tRHHFkQzZguoSTp3Y58=;
 b=IBrfVMCsGIP6RthOlsd3tkOMjPB1rMHkoCx/fSLTqE/s7JS6kA0WR17EBcnbwjq1LG
 s6GaC8iNk+Ol/OmDO5BCwXXdmg34pN3D0ZQGeCyEAp4FW7aancJ0aEeMuU+1y/8Rvn4w
 /3EsBC9VE936z2hmLZHmnYGsqtCEicxqj5va0DTMxJMwwl/Gc6Luua/kwVKmU4OP7cfO
 LgE4PhoT+Q7gg8HklG7XrOf6pMYe7NNQPIwuqxioK2UrHbPGGcphQSWTv1h00On86nj8
 AlW3n3+4Qwmkoycfu6Mq0s5pZzDi060wtbVsLfBjk2SHFWg7lMId5iZ1UPmsTTFhcgcU
 5WhA==
X-Received: by 10.50.47.170 with SMTP id e10mr15301473ign.84.1361545555613;
 Fri, 22 Feb 2013 07:05:55 -0800 (PST)
MIME-Version: 1.0
X-Received: by 10.50.47.170 with SMTP id e10mr15301434ign.84.1361545554351;
 Fri, 22 Feb 2013 07:05:54 -0800 (PST)
Received: by 10.64.77.134 with HTTP; Fri, 22 Feb 2013 07:05:54 -0800 (PST)
Date: Fri, 22 Feb 2013 19:05:54 +0400
Message-ID: <CA+dEfD3irVd08Rv8nU4X6mbyyhUXsTAy6saOr_EUvJWBYTNMNQ@mail.gmail.com>
Subject: Force deallocate all resources within session
From: Anton Obukhov <anton@ubnt.com>
To: libssh2-devel@cool.haxx.se
X-Gm-Message-State: ALoCoQn17KJfcI+ibZEHiaGJbcDfC2UHJAKBbV1l+J2Uf9PGIUXKoqq3eyiKFTGrNVuz+gcCbHWIqHtqC0YeIsNz/5PHTlfWFV+GXO+qVwSxKajENrsozlETIgT2GL+tU1sN6d/OlKnSAsv3gBXc0ov3zzGtnR13ePCbFa4wqgyoddWwdFkc4YQ=
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1778480115=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

--===============1778480115==
Content-Type: multipart/alternative; boundary=14dae9340e3b1cd60404d651872d

--14dae9340e3b1cd60404d651872d
Content-Type: text/plain; charset=ISO-8859-1

Hi, I'm having the following scenario: I manage a bunch of remote devices,
and some of them may sit on a bad connection. Whenever I detect that the
connection is unsatisfactory, I want to shutdown all the channels, session
and resources, linked to the session.

The problem is - if say the device went down, all the functions (including
libssh2_session_free) return EAGAIN, and I seem to leak a lot of resources
if I keep it as is... So now all I do is I close the socket linked to the
session. What I'd like to do is to tell libssh to force close & deallocate
a selected resource (channel, session, etc). Is there a way for it?

Thanks,
Anton

--14dae9340e3b1cd60404d651872d
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>Hi, I&#39;m having the following scenario: I manage a bunch of remote =
devices, and some of them may sit on a bad connection. Whenever I detect th=
at the connection is unsatisfactory, I want to shutdown all the channels, s=
ession and resources, linked to the session.=A0<br>
</div><div><br></div><div>The problem is - if say the device went down, all=
 the functions (including libssh2_session_free) return EAGAIN, and I seem t=
o leak a lot of resources if I keep it as is... So now all I do is I close =
the socket linked to the session. What I&#39;d like to do is to tell libssh=
 to force close &amp; deallocate a selected resource (channel, session, etc=
). Is there a way for it?</div>
<div><br></div><div>Thanks,</div><div>Anton</div>

--14dae9340e3b1cd60404d651872d--

--===============1778480115==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1778480115==--

From libssh2-devel-bounces@cool.haxx.se  Sat Feb 23 22:09:42 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1NL9Jkq016588;
	Sat, 23 Feb 2013 22:09:37 +0100
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1NL9F96016565
 for <libssh2-devel@cool.haxx.se>; Sat, 23 Feb 2013 22:09:15 +0100
Received: (qmail 13820 invoked from network); 23 Feb 2013 21:09:12 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 23 Feb 2013 21:09:12 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 1.0dev
Precedence: bulk
Auto-Submitted: auto-generated
X-Mailer: Trac 1.0dev, by Edgewall Software
To: gregory@atcsim.de, ncm@cantrip.org
X-Trac-Project: libssh2
Date: Sat, 23 Feb 2013 21:09:12 -0000
X-URL: https://trac.libssh2.org/
Subject: Re: [libssh2] #257: [PATCH] libssh2_session_free: infinite loop
X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/257#comment:2
Message-ID: <060.cb4529d5be08599d72c9d9f494be8e0f@libssh2.stuge.se>
References: <045.3a6303a2f2130b73fe2ad7500d92628d@libssh2.stuge.se>
X-Trac-Ticket-ID: 257
In-Reply-To: <045.3a6303a2f2130b73fe2ad7500d92628d@libssh2.stuge.se>
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id r1NL9F96016565
Cc: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#257: [PATCH] libssh2_session_free: infinite loop
-----------------------+-------------------
  Reporter:  greg2001  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  normal    |  Milestone:  1.4.3
 Component:  API       |    Version:  1.4.2
Resolution:            |   Keywords:
Blocked By:            |     Blocks:
-----------------------+-------------------

Comment (by greg2001):

 Hi ncm,

 thanks for your analysis.
 The problem with your fix is that in case of a comm failure,
 libssh2_session_free would just exit without freeing the allocated memory
 causing a memory leak...

 WBR
 Gregory

-- 
Ticket URL: <https://trac.libssh2.org/ticket/257#comment:2>
libssh2 <https://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb 28 11:44:22 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1SAhwqA011568;
	Thu, 28 Feb 2013 11:44:16 +0100
Received: from smtpdg12.aruba.it (smtpdg96.aruba.it [62.149.158.96])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1SAhuwt011541
 for <libssh2-devel@cool.haxx.se>; Thu, 28 Feb 2013 11:43:56 +0100
Received: from [127.0.0.1] ([93.36.113.125])
 by smtpcmd05.ad.aruba.it with bizsmtp
 id 5mjq1l02c2iPMud01mjqb4; Thu, 28 Feb 2013 11:43:51 +0100
Message-ID: <512F34E1.2020805@seletech.com>
Date: Thu, 28 Feb 2013 11:43:45 +0100
From: alberto Villa <a.villa@seletech.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1;
 rv:17.0) Gecko/20130215 Thunderbird/17.0.3
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Keepalive Issue
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

Hello, I'm trying to use libssh2 example ssh2_exec.c slightly modified
in order to experiment keepalive support.

I modified the following line:

// Here I want a blocking session
libssh2_session_set_blocking(session, 0); --->
libssh2_session_set_blocking(session, 1);

and added the following:

libssh2_keepalive_config(session, 1, 20);

just before the call to libssh2_channel_open_session(). Now I use this
version of ssh2_exec to exec the command

tail -f file

on my remote host. No one is writing on file on the remote host.

What happens is that my ssh connection (on my side) times-out and is
closed. Is this a feature of libssh2? does the connection times-out
because no IO is done since no one is writing on the file on the remote
host? Or am I missing something in using keepalives?

thank you

Alberto
   

-- 
Dr. Villa Alberto
Sw Engineer

SeleTech srl
via Collodi, 8 20052 Monza (MI)
tel: +39 039 5962000
fax: +39 039 9716905
email: a.villa@seletech.com
web: www.seletech.com
     www.seletech.eu 

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Feb 28 16:15:17 2013
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1SFExOC031348;
	Thu, 28 Feb 2013 16:15:13 +0100
Received: from mail-oa0-f45.google.com (mail-oa0-f45.google.com
 [209.85.219.45])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id r1SFEujc031294
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 28 Feb 2013 16:14:57 +0100
Received: by mail-oa0-f45.google.com with SMTP id o6so3806275oag.18
 for <libssh2-devel@cool.haxx.se>; Thu, 28 Feb 2013 07:14:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:x-received:date:message-id:subject:from:to
 :content-type; bh=YeBy1y/00/6MmIaIWiBo6LHcyeJ0i5lb3p4tkpOw+3k=;
 b=XXjeYhV+dIAdnGaYoAqt+1ZwQNupup7wJjJfPuK+15LVallbLqypHU4/JwHF/OHpGg
 9OIZSg6ysXGohar9qt5ZQYZ+r4yt322RTjvX+bjr3JJFtvXAPGFeVxXmk3wS3P1s7OwP
 0yj6aAfsCriDt6+CBqW/xrGYktNrUk4M7dquCYqDnmDNGDrgD1EaweYXwlg7PB+Ymn1d
 QUG4bDEpK9kk/8xYUvSZSpzCXhASbFFwUBWwN1yIB2X71jz1myVFgHb6K7mL6VIfNhCl
 GWRe/RK1xQz0CBEY5amO5JVA/xivzkLJBXCPjIsFxrfFrq1Ji9b/k7/+soQOuA6xYnzA
 K2+Q==
MIME-Version: 1.0
X-Received: by 10.60.22.69 with SMTP id b5mr6061136oef.38.1362064492258; Thu,
 28 Feb 2013 07:14:52 -0800 (PST)
Received: by 10.76.77.69 with HTTP; Thu, 28 Feb 2013 07:14:51 -0800 (PST)
Date: Thu, 28 Feb 2013 17:14:51 +0200
Message-ID: <CAN=WvWv9bDyDBzixpvf2FYG5ieSDipGDhPHC6FT+o-DvuB3cZQ@mail.gmail.com>
Subject: Need help with libssh2_userauth_keyboard_interactive method.
From: Velichko Yuriy <velichko.yuriy@gmail.com>
To: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0087740553=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

--===============0087740553==
Content-Type: multipart/alternative; boundary=e89a8fb1f2b638ec1304d6ca5a8c

--e89a8fb1f2b638ec1304d6ca5a8c
Content-Type: text/plain; charset=ISO-8859-1

Hello everyone!

II try to use the libssh2 in my application. And I have question about  the
libssh2_userauth_keyboard_interactive function.

I took the kbd_callback method from examples:

static void kbd_callback(

                 const char *name,

                  int name_len,

                  const char *instruction,

                  int instruction_len,

                  int num_prompts,

                  const LIBSSH2_USERAUTH_KBDINT_PROMPT *prompts,

                  LIBSSH2_USERAUTH_KBDINT_RESPONSE *responses,

                  void **abstract )

{

    (void)name;

    (void)name_len;

    (void)instruction;

    (void)instruction_len;

    if (num_prompts == 1) {

        responses[0].text = strdup(password);

        responses[0].length = strlen(password);

    }

    (void)prompts;

    (void)abstract;

}


Here, the password is a global variable.

QUESTION: Is there a method to pass the variable into this function?

-- 
Best Regards!

--e89a8fb1f2b638ec1304d6ca5a8c
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<br clear=3D"all"><div>Hello everyone!</div><div><br></div><div>II try to u=
se the libssh2 in my application. And I have question about =A0the libssh2_=
userauth_keyboard_interactive function.</div><div><br></div><div>I took the=
 kbd_callback method from examples:</div>
<div><br></div><div>







<p class=3D"p1"><span class=3D"s1">static</span> <span class=3D"s1">void</s=
pan> kbd_callback(</p><p class=3D"p1">=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=A0=
<span class=3D"s1">const</span> <span class=3D"s1">char</span> *name,</p>
<p class=3D"p1">=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <span class=3D"s1">int<=
/span> name_len,</p>
<p class=3D"p1">=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <span class=3D"s1">cons=
t</span> <span class=3D"s1">char</span> *instruction,</p>
<p class=3D"p1">=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <span class=3D"s1">int<=
/span> instruction_len,</p>
<p class=3D"p1">=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <span class=3D"s1">int<=
/span> num_prompts,</p>
<p class=3D"p2"><span class=3D"s2">=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 </sp=
an><span class=3D"s1">const</span><span class=3D"s2"> </span>LIBSSH2_USERAU=
TH_KBDINT_PROMPT<span class=3D"s2"> *prompts,</span></p>
<p class=3D"p2"><span class=3D"s2">=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 </sp=
an>LIBSSH2_USERAUTH_KBDINT_RESPONSE<span class=3D"s2"> *responses,</span></=
p>
<p class=3D"p1">=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <span class=3D"s1">void=
</span> **abstract )</p>
<p class=3D"p1">{</p>
<p class=3D"p1">=A0 =A0 (<span class=3D"s1">void</span>)name;</p>
<p class=3D"p1">=A0 =A0 (<span class=3D"s1">void</span>)name_len;</p>
<p class=3D"p1">=A0 =A0 (<span class=3D"s1">void</span>)instruction;</p>
<p class=3D"p1">=A0 =A0 (<span class=3D"s1">void</span>)instruction_len;</p=
>
<p class=3D"p1">=A0 =A0 <span class=3D"s1">if</span> (num_prompts =3D=3D <s=
pan class=3D"s3">1</span>) {</p>
<p class=3D"p1">=A0 =A0 =A0 =A0 responses[<span class=3D"s3">0</span>].text=
 =3D strdup(password);</p>
<p class=3D"p1">=A0 =A0 =A0 =A0 responses[<span class=3D"s3">0</span>].leng=
th =3D strlen(password);</p>
<p class=3D"p1">=A0 =A0 }</p>
<p class=3D"p1">=A0 =A0 (<span class=3D"s1">void</span>)prompts;</p>
<p class=3D"p1">=A0 =A0 (<span class=3D"s1">void</span>)abstract;</p>
<p class=3D"p1">}=A0</p><p class=3D"p1"><br></p><p class=3D"p1"></p><p clas=
s=3D"p1">Here, the password is a global variable.</p><p class=3D"p1">QUESTI=
ON: Is there a method to pass the variable into this function?</p><p></p></=
div>







-- <br>Best=A0Regards!

--e89a8fb1f2b638ec1304d6ca5a8c--

--===============0087740553==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0087740553==--

