From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Christoph Newsgroups: gmane.emacs.devel Subject: Re: make dist target for Windows Date: Wed, 07 Apr 2010 18:05:43 -0600 Message-ID: <4BBD1DD7.70700@gmail.com> References: <4BB2BB70.3090608@gmail.com> <83eij0zydg.fsf@gnu.org> <4BB3FB7C.3040106@gmail.com> <83iq8by6bw.fsf@gnu.org> <4BB571EA.4030209@gmail.com> <83k4sqw9av.fsf@gnu.org> <4BB77B64.3080501@gmail.com> <83wrwnzoa8.fsf@gnu.org> <4BBA98A5.4060904@gmail.com> <83eiisxxzg.fsf@gnu.org> <4BBBE5AA.2000103@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070806050503030003040505" X-Trace: dough.gmane.org 1270685661 23929 80.91.229.12 (8 Apr 2010 00:14:21 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 8 Apr 2010 00:14:21 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Apr 08 02:14:19 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1NzfNx-0005Vv-CP for ged-emacs-devel@m.gmane.org; Thu, 08 Apr 2010 02:14:18 +0200 Original-Received: from localhost ([127.0.0.1]:48261 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NzfG3-0006ah-BO for ged-emacs-devel@m.gmane.org; Wed, 07 Apr 2010 20:06:07 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NzfFy-0006Yr-Ae for emacs-devel@gnu.org; Wed, 07 Apr 2010 20:06:02 -0400 Original-Received: from [140.186.70.92] (port=47771 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NzfFv-0006Sw-4x for emacs-devel@gnu.org; Wed, 07 Apr 2010 20:06:02 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NzfFs-0000eG-9i for emacs-devel@gnu.org; Wed, 07 Apr 2010 20:05:58 -0400 Original-Received: from mail-pv0-f169.google.com ([74.125.83.169]:57870) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NzfFo-0000dn-3f; Wed, 07 Apr 2010 20:05:52 -0400 Original-Received: by pvg11 with SMTP id 11so1367572pvg.0 for ; Wed, 07 Apr 2010 17:05:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type; bh=kzfXUCOvHTWoCR6DKcI1B/kghfX6QJURNPqk9X+Cq6M=; b=TThEHPheqs7kI2Sf9WrVs/knqoyF7pfZDARSffl8yXI0mSIi+pbF+jROLyXj88N92q 1Mttdj00Mp3nZ0Lbg6Y0tWn+Xt1dU5HHGBhBqGJqA1+8DPJX+pUeU9Vdd1hRzjJ5/Gqp RZ7B6f6iOJGH8A2nfO7Uyx8FRIqNgqapgiA+g= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type; b=boKP2gpz1oHMt3scVkZRtR5jKjG8PtkeNZ9W3yMKqBDQuuAKJSd3uv2aF3XCpR+Ocs am73rkTZZRwGw1LOPRxF6MsoOGae02cY/aWeQ7+MTpaG26NOQREGpYUDTXe1vCzEheYm 2fuhmWPAkzPCrMnkVv1L17Wz993EJPN1Z5hFM= Original-Received: by 10.115.113.18 with SMTP id q18mr9519095wam.220.1270685150511; Wed, 07 Apr 2010 17:05:50 -0700 (PDT) Original-Received: from [192.168.1.5] (67-41-143-56.hlrn.qwest.net [67.41.143.56]) by mx.google.com with ESMTPS id 22sm1791822pzk.13.2010.04.07.17.05.46 (version=SSLv3 cipher=RC4-MD5); Wed, 07 Apr 2010 17:05:48 -0700 (PDT) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 In-Reply-To: <4BBBE5AA.2000103@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:123342 Archived-At: This is a multi-part message in MIME format. --------------070806050503030003040505 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 4/6/2010 7:53 PM, I wrote: > So, here is the final version of the patch. > > Major changes: > - Use $(ComSpec) etc. to execute batch file zipdist accordingly with > cygwin shell and cmd.exe > - Added info to prerequisites for dist target. When packaging a > snapshot from the trunk this might be necessary, for the tarball it is > not. If the info files exist, it will not do anything. One more change: I removed the info prerequisite, since bootstrap already does this. Final version attached. If there are no more comments or suggestions...how do I get this installed? Personally, I think it would be nice to install this in the EMACS_23 branch to be used on any forthcoming pretests and the final release, but I understand if it is a little late in the game for this. Christoph --------------070806050503030003040505 Content-Type: text/plain; name="makedistw32v6.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="makedistw32v6.txt" IyBCYXphYXIgbWVyZ2UgZGlyZWN0aXZlIGZvcm1hdCAyIChCYXphYXIgMC45MCkKIyByZXZp c2lvbl9pZDogY3NjaG9sMjExMkBnbWFpbC5jb20tMjAxMDA0MDcxNzAyMDctNmZmZnQ2MGM4 MmY2aDBwMQojIHRhcmdldF9icmFuY2g6IGh0dHA6Ly9ienIuc2F2YW5uYWguZ251Lm9yZy9y L2VtYWNzL3RydW5rLwojIHRlc3RhbWVudF9zaGExOiA5ZDZmM2FmN2M0ZGY0NjM1MjRiYTJm MmFkNzExZTA2OTcwMTZiZjZkCiMgdGltZXN0YW1wOiAyMDEwLTA0LTA3IDExOjA1OjM1IC0w NjAwCiMgYmFzZV9yZXZpc2lvbl9pZDogandpZWdsZXlAZ21haWwuY29tLTIwMTAwNDA2MTgx NzU1LWpjaXloNHdubTQxdWYzYWoKIyAKIyBCZWdpbiBwYXRjaAo9PT0gbW9kaWZpZWQgZmls ZSAnYWRtaW4vYWRtaW4uZWwnCi0tLSBhZG1pbi9hZG1pbi5lbAkyMDEwLTAxLTEzIDA4OjM1 OjEwICswMDAwCisrKyBhZG1pbi9hZG1pbi5lbAkyMDEwLTAzLTMxIDAyOjI3OjE1ICswMDAw CkBAIC05NSw2ICs5NSw5IEBACiAgIChzZXQtdmVyc2lvbi1pbi1maWxlIHJvb3QgImxpYi1z cmMvbWFrZWZpbGUudzMyLWluIiB2ZXJzaW9uCiAJCSAgICAgICAocnggKGFuZCAiVkVSU0lP TiIgKDArIHNwYWNlKSAiPSIgKDArIHNwYWNlKQogCQkJCShzdWJtYXRjaCAoMSsgKGluICIw LTkuIikpKSkpKQorICAoc2V0LXZlcnNpb24taW4tZmlsZSByb290ICJudC9tYWtlZmlsZS53 MzItaW4iIHZlcnNpb24KKwkJICAgICAgIChyeCAoYW5kICJWRVJTSU9OIiAoMCsgc3BhY2Up ICI9IiAoMCsgc3BhY2UpCisJCQkJKHN1Ym1hdGNoICgxKyAoaW4gIjAtOS4iKSkpKSkpCiAg IDs7IG50L2VtYWNzLnJjIGFsc28gY29udGFpbnMgdGhlIHZlcnNpb24gbnVtYmVyLCBidXQg aW4gYW4gYXdrd2FyZAogICA7OyBmb3JtYXQuIEl0IG11c3QgY29udGFpbiBmb3VyIGNvbXBv bmVudHMsIHNlcGFyYXRlZCBieSBjb21tYXMsIGFuZAogICA7OyBpbiB0d28gcGxhY2VzIHRo b3NlIGNvbW1hcyBhcmUgZm9sbG93ZWQgYnkgc3BhY2UsIGluIHR3byBvdGhlcgoKPT09IG1v ZGlmaWVkIGZpbGUgJ250L0lOU1RBTEwnCi0tLSBudC9JTlNUQUxMCTIwMTAtMDEtMTMgMDg6 MzU6MTAgKzAwMDAKKysrIG50L0lOU1RBTEwJMjAxMC0wNC0wMyAxNzowMToxNyArMDAwMApA QCAtNDAzLDYgKzQwMyw5IEBACiAgIFJlbW92ZXMgdGhlIGluc3RhbGxlZCBmaWxlcyBpbiB0 aGUgYmluIHN1YmRpcmVjdG9yeSBpbiBhZGRpdGlvbiB0bwogICB0aGUgZmlsZXMgcmVtb3Zl ZCBieSBtYWtlIGNsZWFuYWxsLgogCisgIG1ha2UgZGlzdAorICBCdWlsZHMgRW1hY3MgZnJv bSB0aGUgYXZhaWxhYmxlIHNvdXJjZXMgYW5kIHByZS1jb21waWxlZCBsaXNwIGZpbGVzLgor ICBQYWNrYWdlcyBFbWFjcyBiaW5hcmllcyBhcyBmdWxsIGRpc3RyaWJ1dGlvbiBhbmQgYmFy ZWJpbiBkaXN0cmlidXRpb24uCiAKICAgVGhlIGZvbGxvd2luZyB0YXJnZXRzIGFyZSBpbnRl bmRlZCBvbmx5IGZvciB1c2Ugd2l0aCB0aGUgQmF6YWFyIHNvdXJjZXMuCiAKQEAgLTQyNSw3 ICs0MjgsMzMgQEAKICAgYm9vdHN0cmFwIHRvIHJlYnVpbGQuICBPY2Nhc2lvbmFsbHkgaXQg bWF5IGJlIG5lY2Vzc2FyeSB0byBydW4gdGhpcwogICB0YXJnZXQgYWZ0ZXIgYW4gdXBkYXRl LgogCi0KKyogQ3JlYXRpbmcgYmluYXJ5IGRpc3RyaWJ1dGlvbnMKKyAgCisgIEJpbmFyeSBk aXN0cmlidXRpb25zIChmdWxsIGFuZCBiYXJlYmluIGRpc3RyaWJ1dGlvbnMpIGNhbiBiZSAK KyAgYXV0b21hdGljYWxseSBidWlsdCBhbmQgcGFja2FnZWQgZnJvbSBzb3VyY2UgdGFyYmFs bHMgb3IgYSBienIKKyAgY2hlY2tvdXQuIAorICAKKyAgV2hlbiBidWlsZGluZyBFbWFjcyBi aW5hcnkgZGlzdHJpYnV0aW9ucywgdGhlIC0tZGlzdGZpbGVzIGFyZ3VtZW50CisgIHRvIGNv bmZpZ3VyZS5iYXQgc3BlY2lmaWVzIGZpbGVzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBiaW4g ZGlyZWN0b3J5CisgIG9mIHRoZSBiaW5hcnkgZGlzdHJpYnV0aW9ucy4gVGhpcyBpcyBpbnRl bmRlZCBmb3IgbGlicmFyaWVzIHRoYXQgYXJlIAorICBub3QgYnVpbHQgYXMgcGFydCBvZiBF bWFjcywgZS5nLiBpbWFnZSBsaWJyYXJpZXMuCisgIAorICBGb3IgZXhhbXBsZSwgc3BlY2lm eWluZyAKKyAgCisJLS1kaXN0ZmlsZXMgRDpcZGlzdGZpbGVzXGxpYlhwbS5kbGwKKworICBy ZXN1bHRzIGluIGxpYlhwbS5kbGwgYmVpbmcgY29waWVkIGZyb20gRDpcZGlzdGZpbGVzIHRv IHRoZSAKKyAgYmluIGRpcmVjdG9yeSBiZWZvcmUgcGFja2FnaW5nIHN0YXJ0cy4KKyAgCisg IE11bHRpcGxlIGZpbGVzIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgbXVsdGlwbGUgLS1kaXN0 ZmlsZXMgYXJndW1lbnRzOgorICAKKwktLWRpc3RmaWxlcyBEOlxkaXN0ZmlsZXNcbGliWHBt LmRsbCAtLWRpc3RmaWxlcyBDOlxqcGVnbGliXGpwZWcuZGxsCisgICAgCisgIEZvciBwYWNr YWdpbmcgdGhlIGJpbmFyeSBkaXN0cmlidXRpb25zLCB0aGUgJ2Rpc3QnIG1ha2UgdGFyZ2V0 IHVzZXMKKyAgNy1aaXAgKGh0dHA6Ly93d3cuNy16aXAub3JnKSwgd2hpY2ggbXVzdCBiZSBp bnN0YWxsZWQgYW5kIGF2YWlsYWJsZQorICBvbiB0aGUgV2luZG93cyBQYXRoLgorCisgIAog KiBUcm91YmxlLXNob290aW5nCiAKICAgVGhlIG1haW4gcHJvYmxlbXMgdGhhdCBhcmUgbGlr ZWx5IHRvIGJlIGVuY291bnRlcmVkIHdoZW4gYnVpbGRpbmcKCj09PSBhZGRlZCBmaWxlICdu dC9SRUFETUUuVzMyJwotLS0gbnQvUkVBRE1FLlczMgkxOTcwLTAxLTAxIDAwOjAwOjAwICsw MDAwCisrKyBudC9SRUFETUUuVzMyCTIwMTAtMDMtMzEgMDI6Mjc6MTUgKzAwMDAKQEAgLTAs MCArMSwyNjQgQEAKK0NvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMAorICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KK1NlZSB0aGUgZW5kIG9mIHRoZSBmaWxlIGZvciBsaWNlbnNlIGNvbmRp dGlvbnMuCisKKwkJCSAgIEVtYWNzIGZvciBXaW5kb3dzCisKKyAgVGhpcyBSRUFETUUgZmls ZSBkZXNjcmliZXMgaG93IHRvIHNldCB1cCBhbmQgcnVuIGEgcHJlY29tcGlsZWQKKyAgdmVy c2lvbiBvZiBHTlUgRW1hY3MgZm9yIFdpbmRvd3MuICBUaGlzIGRpc3RyaWJ1dGlvbiBjYW4g YmUgZm91bmQgb24KKyAgdGhlIGZ0cC5nbnUub3JnIHNlcnZlciBhbmQgaXRzIG1pcnJvcnM6 CisKKwlmdHA6Ly9mdHAuZ251Lm9yZy9nbnUvZW1hY3Mvd2luZG93cy8KKworICBUaGlzIHNl cnZlciBjb250YWlucyBvdGhlciBkaXN0cmlidXRpb25zLCBpbmNsdWRpbmcgdGhlIGZ1bGwg RW1hY3MKKyAgc291cmNlIGRpc3RyaWJ1dGlvbiBhbmQgYSBiYXJlYmluIGRpc3RyaWJ1dGlv biB3aGljaCBjYW4gYmUgaW5zdGFsbGVkCisgIG92ZXIgaXQsIGFzIHdlbGwgYXMgb2xkZXIg cmVsZWFzZXMgb2YgRW1hY3MgZm9yIFdpbmRvd3MuCisKKyAgQW5zd2VycyB0byBmcmVxdWVu dGx5IGFza2VkIHF1ZXN0aW9ucywgYW5kIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQKKyAg dGhpcyBwb3J0IG9mIEdOVSBFbWFjcyBhbmQgcmVsYXRlZCBzb2Z0d2FyZSBwYWNrYWdlcyBj YW4gYmUgZm91bmQgdmlhCisgIGh0dHA6CisKKwlodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZW1hY3Mvd2luZG93cy8KKworKiBQcmVsaW1pbmFyaWVzCisKKyAgQWxvbmcgd2l0aCB0 aGlzIGZpbGUgc2hvdWxkIGJlIHNpeCBzdWJkaXJlY3RvcmllcyAoYmluLCBldGMsIGluZm8s CisgIGxpc3AsIGxlaW0sIHNpdGUtbGlzcCkuICBJZiB5b3UgaGF2ZSBkb3dubG9hZGVkIHRo ZSBiYXJlYmluCisgIGRpc3RyaWJ1dGlvbiwgdGhlbiBpdCB3aWxsIGNvbnRhaW4gb25seSB0 aGUgYmluIGRpcmVjdG9yeSBhbmQgdGhlCisgIGJ1aWx0IGluIGRvY3VtZW50YXRpb24gaW4g ZXRjL0RPQy1YLCB0aGUgcmVzdCBvZiB0aGUgc3ViZGlyZWN0b3JpZXMKKyAgYXJlIGluIHRo ZSBzcmMgZGlzdHJpYnV0aW9uLCB3aGljaCB0aGUgYmFyZWJpbiBkaXN0cmlidXRpb24gaXMK KyAgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoLgorCisqIFNldHRpbmcgdXAgRW1hY3MKKwor ICBUbyBpbnN0YWxsIEVtYWNzLCBzaW1wbHkgdW5wYWNrIGFsbCB0aGUgZmlsZXMgaW50byBh IGRpcmVjdG9yeSBvZgorICB5b3VyIGNob2ljZSwgYnV0IG5vdGUgdGhhdCB5b3UgbWlnaHQg ZW5jb3VudGVyIG1pbm9yIHByb2JsZW1zIGlmCisgIHRoZXJlIGlzIGEgc3BhY2UgYW55d2hl cmUgaW4gdGhlIGRpcmVjdG9yeSBuYW1lLiAgVG8gY29tcGxldGUgdGhlCisgIGluc3RhbGxh dGlvbiBwcm9jZXNzLCB5b3UgY2FuIG9wdGlvbmFsbHkgcnVuIHRoZSBwcm9ncmFtIGFkZHBt LmV4ZQorICBpbiB0aGUgYmluIHN1YmRpcmVjdG9yeS4gIFRoaXMgd2lsbCBwdXQgYW4gaWNv biBmb3IgRW1hY3MgaW4gdGhlCisgIFN0YXJ0IE1lbnUgdW5kZXIgIlN0YXJ0IC0+IFByb2dy YW1zIC0+IEdudSBFbWFjcyIuCisKKyAgU29tZSB1c2VycyBoYXZlIHJlcG9ydGVkIHRoYXQg dGhlIFN0YXJ0IE1lbnUgaXRlbSBpcyBub3QgY3JlYXRlZCBmb3IKKyAgdGhlbS4gIElmIHRo aXMgaGFwcGVucywganVzdCBjcmVhdGUgeW91ciBvd24gc2hvcnRjdXQgdG8gcnVuZW1hY3Mu ZXhlLAorICBlZy4gYnkgZHJhZ2dpbmcgaXQgb24gdG8gdGhlIGRlc2t0b3Agb3IgdGhlIFN0 YXJ0IGJ1dHRvbi4KKworICBOb3RlIHRoYXQgcnVubmluZyBhZGRwbSBpcyBub3cgYW4gb3B0 aW9uYWwgc3RlcDsgRW1hY3MgaXMgYWJsZSB0bworICBsb2NhdGUgYWxsIG9mIGl0cyBmaWxl cyB3aXRob3V0IG5lZWRpbmcgYW55IGluZm9ybWF0aW9uIHRvIGJlIHNldCBpbgorICB0aGUg ZW52aXJvbm1lbnQgb3IgdGhlIHJlZ2lzdHJ5LCBhbHRob3VnaCBzdWNoIHNldHRpbmdzIHdp bGwgc3RpbGwKKyAgYmUgb2JleWVkIGlmIHByZXNlbnQuICBUaGlzIGlzIGNvbnZlbmllbnQg Zm9yIHJ1bm5pbmcgRW1hY3Mgb24gYQorICBtYWNoaW5lIHdoaWNoIGRpc2FsbG93cyByZWdp c3RyeSBjaGFuZ2VzLCBvciBvbiB3aGljaCBzb2Z0d2FyZQorICBzaG91bGQgbm90IGJlIGlu c3RhbGxlZC4gIEZvciBpbnN0YW5jZSwgeW91IGNhbiBub3cgcnVuIEVtYWNzCisgIGRpcmVj dGx5IGZyb20gYSBDRCBvciBVU0IgZmxhc2ggZHJpdmUgd2l0aG91dCBjb3B5aW5nIG9yIGlu c3RhbGxpbmcKKyAgYW55dGhpbmcgb24gdGhlIG1hY2hpbmUgaXRzZWxmLgorCisqIFN0YXJ0 aW5nIEVtYWNzCisKKyAgVG8gcnVuIEVtYWNzLCBzaW1wbHkgc2VsZWN0IEVtYWNzIGZyb20g dGhlIFN0YXJ0IE1lbnUsIG9yIGludm9rZQorICBydW5lbWFjcy5leGUgZGlyZWN0bHkgZnJv bSBFeHBsb3JlciBvciBmcm9tIGEgY29tbWFuZCBwcm9tcHQuICBUaGlzCisgIHdpbGwgc3Rh cnQgRW1hY3MgaW4gaXRzIGRlZmF1bHQgR1VJIG1vZGUsIHJlYWR5IHRvIHVzZS4gIElmIHlv dSBoYXZlCisgIG5ldmVyIHVzZWQgRW1hY3MgYmVmb3JlLCB5b3Ugc2hvdWxkIGZvbGxvdyB0 aGUgdHV0b3JpYWwgYXQgdGhpcworICBwb2ludCAoc2VsZWN0IEVtYWNzIFR1dG9yaWFsIGZy b20gdGhlIEhlbHAgbWVudSksIHNpbmNlIEVtYWNzIGlzCisgIHF1aXRlIGRpZmZlcmVudCBm cm9tIG9yZGluYXJ5IFdpbmRvd3MgYXBwbGljYXRpb25zIGluIG1hbnkgcmVzcGVjdHMuCisK KyAgSWYgeW91IHdhbnQgdG8gdXNlIEVtYWNzIGluIHR0eSBvciBjaGFyYWN0ZXIgbW9kZSB3 aXRoaW4gYSBjb21tYW5kCisgIHdpbmRvdywgeW91IGNhbiBzdGFydCBpdCBieSB0eXBpbmcg ImVtYWNzIC1udyIgYXQgdGhlIGNvbW1hbmQgcHJvbXB0LgorICAoT2J2aW91c2x5LCB5b3Ug bmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgRW1hY3MgYmluIHN1YmRpcmVjdG9yeSBpcyBpbgor ICB5b3VyIFBBVEggZmlyc3QsIG9yIHNwZWNpZnkgdGhlIHBhdGggdG8gZW1hY3MuZXhlLikg IFRoZSAtbncKKyAgKG5vbi13aW5kb3dlZCkgbW9kZSBvZiBvcGVyYXRpb24gaXMgbW9zdCB1 c2VmdWwgaWYgeW91IGhhdmUgYSB0ZWxuZXQKKyAgc2VydmVyIG9uIHlvdXIgbWFjaGluZSwg YWxsb3dpbmcgeW91IHRvIHJ1biBFbWFjcyByZW1vdGVseS4KKworKiBFWEUgZmlsZXMgaW5j bHVkZWQKKworICBFbWFjcyBjb21lcyB3aXRoIHRoZSBmb2xsb3dpbmcgZXhlY3V0YWJsZSBm aWxlcyBpbiB0aGUgYmluIGRpcmVjdG9yeS4KKworICArIGVtYWNzLmV4ZSAtIFRoZSBtYWlu IEVtYWNzIGV4ZWN1dGFibGUuICBBcyB0aGlzIGlzIGRlc2lnbmVkIHRvIHJ1bgorICAgIGFz IGJvdGggYSB0ZXh0LW1vZGUgYXBwbGljYXRpb24gKGVtYWNzIC1udykgYW5kIGFzIGEgR1VJ IGFwcGxpY2F0aW9uLAorICAgIGl0IHdpbGwgcG9wIHVwIGEgY29tbWFuZCBwcm9tcHQgd2lu ZG93IGlmIHJ1biBkaXJlY3RseSBmcm9tIEV4cGxvcmVyLgorCisgICsgcnVuZW1hY3MuZXhl IC0gQSB3cmFwcGVyIGZvciBydW5uaW5nIEVtYWNzIGFzIGEgR1VJIGFwcGxpY2F0aW9uCisg ICAgd2l0aG91dCBwb3BwaW5nIHVwIGEgY29tbWFuZCBwcm9tcHQgd2luZG93LgorCisgICsg ZW1hY3NjbGllbnQuZXhlIC0gQSBjb21tYW5kLWxpbmUgY2xpZW50IHByb2dyYW0gdGhhdCBj YW4KKyAgICBjb21tdW5pY2F0ZSB3aXRoIGEgcnVubmluZyBFbWFjcyBwcm9jZXNzLiAgU2Vl IHRoZSBgRW1hY3MgU2VydmVyJworICAgIG5vZGUgb2YgdGhlIEVtYWNzIG1hbnVhbC4KKwor ICArIGVtYWNzY2xpZW50dy5leGUgLSBBIHZlcnNpb24gb2YgZW1hY3NjbGllbnQgdGhhdCBk b2VzIG5vdCBvcGVuCisgICAgYSBjb21tYW5kLWxpbmUgd2luZG93LgorCisgICsgYWRkcG0u ZXhlIC0gQSBiYXNpYyBpbnN0YWxsZXIgdGhhdCBjcmVhdGVzIFN0YXJ0IE1lbnUgaWNvbnMg Zm9yIEVtYWNzLgorICAgIFJ1bm5pbmcgdGhpcyBpcyBvcHRpb25hbC4KKworICArIGNtZHBy b3h5LmV4ZSAtIFVzZWQgaW50ZXJuYWxseSBieSBFbWFjcyB0byB3b3JrIGFyb3VuZCBwcm9i bGVtcyB3aXRoCisgICAgdGhlIG5hdGl2ZSBzaGVsbHMgaW4gdmFyaW91cyB2ZXJzaW9ucyBv ZiBXaW5kb3dzLgorCisgICsgY3RhZ3MuZXhlLCBldGFncy5leGUgLSBUb29scyBmb3IgZ2Vu ZXJhdGluZyB0YWcgZmlsZXMuICBTZWUgdGhlCisgICAgYFRhZ3MnIG5vZGUgb2YgdGhlIEVt YWNzIG1hbnVhbC4KKworICArIGVicm93c2UuZXhlIC0gQSB0b29sIGZvciBnZW5lcmF0aW5n IEMrKyBicm93c2UgaW5mb3JtYXRpb24uICBTZWUgdGhlCisgICAgYEVicm93c2UnIG1hbnVh bC4KKworICArIGRkZWNsaWVudC5leGUgLSBBIHRvb2wgZm9yIGludGVyYWN0aW5nIHdpdGgg RERFIHNlcnZlcnMuCisKKyAgKyBoZXhsLmV4ZSAtIEEgdG9vbCBmb3IgY29udmVydGluZyBm aWxlcyB0byBoZXggZHVtcHMuICBTZWUgdGhlCisgICAgYEVkaXRpbmcgQmluYXJ5IEZpbGVz JyBub2RlIG9mIHRoZSBFbWFjcyBtYW51YWwuCisKKyAgKyBtb3ZlbWFpbC5leGUgLSBBIGhl bHBlciBhcHBsaWNhdGlvbiBmb3Igc2FmZWx5IG1vdmluZyBtYWlsIGZyb20KKyAgICBhIG1h aWwgc3Bvb2wgb3IgUE9QIHNlcnZlciB0byBhIGxvY2FsIHVzZXIgbWFpbGJveC4gIFNlZSB0 aGUKKyAgICBgTW92ZW1haWwnIG5vZGUgb2YgdGhlIEVtYWNzIG1hbnVhbC4KKworICArIGRp Z2VzdC1kb2MuZXhlLCBzb3J0ZWQtZG9jLmV4ZSAtIFRvb2xzIGZvciByZWJ1aWxkaW5nIHRo ZQorICAgIGJ1aWx0LWluIGRvY3VtZW50YXRpb24uCisKKyogSW1hZ2Ugc3VwcG9ydAorCisg IEVtYWNzIGhhcyBidWlsdCBpbiBzdXBwb3J0IGZvciBYQk0gYW5kIFBQTS9QR00vUEJNIGlt YWdlcywgYW5kIHRoZQorICBsaWJYcG0gbGlicmFyeSBpcyBidW5kbGVkLCBwcm92aWRpbmcg WFBNIHN1cHBvcnQgKHJlcXVpcmVkIGZvciBjb2xvcgorICB0b29sYmFyIGljb25zIGFuZCBz cGxhc2ggc2NyZWVuKS4gIFNvdXJjZSBmb3IgbGliWHBtIHNob3VsZCBiZSBhdmFpbGFibGUK KyAgb24gdGhlIHNhbWUgcGxhY2UgYXMgeW91IGdvdCB0aGlzIGJpbmFyeSBkaXN0cmlidXRp b24gZnJvbS4gIFRoZSB2ZXJzaW9uCisgIG9mIGxpYlhwbSBidW5kbGVkIHdpdGggdGhpcyB2 ZXJzaW9uIG9mIEVtYWNzIGlzIDMuNS43LCBiYXNlZCBvbiB4Lm9yZydzCisgIGxpYlhwbSBs aWJyYXJ5IGZyb20gWDExUjcuMy4KKworICBFbWFjcyBjYW4gYWxzbyBzdXBwb3J0IHNvbWUg b3RoZXIgaW1hZ2UgZm9ybWF0cyB3aXRoIGFwcHJvcHJpYXRlCisgIGxpYnJhcmllcy4gIFRo ZXNlIGxpYnJhcmllcyBhcmUgYWxsIGF2YWlsYWJsZSBhcyBwYXJ0IG9mIEdUSywgb3IgZnJv bQorICBnbnV3aW4zMi5zb3VyY2Vmb3JnZS5uZXQuICBFbWFjcyB3aWxsIGZpbmQgdGhlbSBp ZiB0aGUgZGlyZWN0b3J5IHRoZXkKKyAgYXJlIGluc3RhbGxlZCBpbiBpcyBvbiB0aGUgUEFU SC4KKworICAgICAgUE5HOiByZXF1aXJlcyB0aGUgUE5HIHJlZmVyZW5jZSBsaWJyYXJ5IDEu MiBvciBsYXRlciwgd2hpY2ggd2lsbAorICAgICAgYmUgbmFtZWQgbGlicG5nMTNkLmRsbCwg bGlicG5nMTMuZGxsLCBsaWJwbmcxMmQuZGxsLCBsaWJwbmcxMi5kbGwKKyAgICAgIG9yIGxp YnBuZy5kbGwuICBMaWJQTkcgcmVxdWlyZXMgemxpYiwgd2hpY2ggc2hvdWxkIGNvbWUgZnJv bSB0aGUgc2FtZQorICAgICAgc291cmNlIGFzIHlvdSBnb3QgbGlicG5nLgorCisgICAgICBK UEVHOiByZXF1aXJlcyB0aGUgSW5kZXBlbmRhbnQgSlBFRyBHcm91cCdzIGxpYmpwZWcgNmIg b3IgbGF0ZXIsCisgICAgICB3aGljaCB3aWxsIGJlIGNhbGxlZCBqcGVnNjIuZGxsLCBsaWJq cGVnLmRsbCwganBlZy02Mi5kbGwgb3IganBlZy5kbGwuCisKKyAgICAgIFRJRkY6IHJlcXVp cmVzIGxpYlRJRkYgMy4wIG9yIGxhdGVyLCB3aGljaCB3aWxsIGJlIGNhbGxlZCBsaWJ0aWZm My5kbGwKKyAgICAgIG9yIGxpYnRpZmYuZGxsLgorCisgICAgICBHSUY6IHJlcXVpcmVzIGxp YnVuZ2lmIG9yIGdpZmxpYiA0LjEgb3IgbGF0ZXIsIHdoaWNoIHdpbGwgYmUKKyAgICAgIGNh bGxlZCBnaWZsaWI0LmRsbCwgbGlidW5naWY0LmRsbCBvciBsaWJ1bmdpZi5kbGwuCisKKyAg IEluIGFkZGl0aW9uLCBFbWFjcyBjYW4gYmUgY29tcGlsZWQgdG8gc3VwcG9ydCBTVkcuICBU aGlzIHByZWNvbXBpbGVkCisgICBkaXN0cmlidXRpb24gaGFzIG5vdCBiZWVuIGNvbXBpbGVk IHRoYXQgd2F5LCBzaW5jZSB0aGUgU1ZHIGxpYnJhcnkKKyAgIG9yIG9uZSBvciBtb3JlIG9m IGl0cyBleHRlbnNpdmUgZGVwZW5kZW5jaWVzIGFwcGVhciB0byBiZQorICAgdW5yZWxpYWJs ZSB1bmRlciBXaW5kb3dzLiAgU2VlIG50L0lOU1RBTEwgaW4gdGhlIHNyYyBkaXN0cmlidXRp b24gaWYKKyAgIHlvdSB3aXNoIHRvIGNvbXBpbGUgRW1hY3Mgd2l0aCBTVkcgc3VwcG9ydC4K KworKiBVbmluc3RhbGxpbmcgRW1hY3MKKworICBJZiB5b3Ugc2hvdWxkIG5lZWQgdG8gdW5p bnN0YWxsIEVtYWNzLCBzaW1wbHkgZGVsZXRlIGFsbCB0aGUgZmlsZXMKKyAgYW5kIHN1YmRp cmVjdG9yaWVzIGZyb20gdGhlIGRpcmVjdG9yeSB3aGVyZSBpdCB3YXMgdW5wYWNrZWQgKEVt YWNzCisgIGRvZXMgbm90IGluc3RhbGwgb3IgdXBkYXRlIGFueSBmaWxlcyBpbiBzeXN0ZW0g ZGlyZWN0b3JpZXMgb3IKKyAgYW55d2hlcmUgZWxzZSkuICBJZiB5b3UgcmFuIHRoZSBhZGRw bS5leGUgcHJvZ3JhbSB0byBjcmVhdGUgdGhlCisgIHJlZ2lzdHJ5IGVudHJpZXMgYW5kIHRo ZSBTdGFydCBtZW51IGljb24sIHRoZW4geW91IGNhbiByZW1vdmUgdGhlCisgIHJlZ2lzdHJ5 IGVudHJpZXMgdXNpbmcgcmVnZWRpdC4gIEFsbCBvZiB0aGUgc2V0dGluZ3MgYXJlIHdyaXR0 ZW4KKyAgdW5kZXIgdGhlIFNvZnR3YXJlXEdOVVxFbWFjcyBrZXkgaW4gSEtFWV9MT0NBTF9N QUNISU5FLCBvciBpZiB5b3UKKyAgZGlkbid0IGhhdmUgYWRtaW5pc3RyYXRvciBwcml2aWxl Z2VzIHdoZW4geW91IGluc3RhbGxlZCwgdGhlIHNhbWUKKyAga2V5IGluIEhLRVlfQ1VSUkVO VF9VU0VSLiAgSnVzdCBkZWxldGUgdGhlIHdob2xlIFNvZnR3YXJlXEdOVVxFbWFjcworICBr ZXkuCisKKyAgVGhlIFN0YXJ0IG1lbnUgZW50cnkgY2FuIGJlIHJlbW92ZWQgYnkgcmlnaHQt Y2xpY2tpbmcgb24gdGhlIFRhc2sgYmFyCisgIGFuZCBzZWxlY3RpbmcgUHJvcGVydGllcywg dGhlbiB1c2luZyB0aGUgUmVtb3ZlIG9wdGlvbiBvbiB0aGUgU3RhcnQKKyAgTWVudSBQcm9n cmFtcyBwYWdlLiAgKElmIHlvdSBpbnN0YWxsZWQgdW5kZXIgYW4gYWNjb3VudCB3aXRoCisg IGFkbWluaXN0cmF0b3IgcHJpdmlsZWdlcywgdGhlbiB5b3UgbmVlZCB0byBjbGljayB0aGUg QWR2YW5jZWQgYnV0dG9uCisgIGFuZCBsb29rIGZvciB0aGUgR251IEVtYWNzIG1lbnUgaXRl bSB1bmRlciBBbGwgVXNlcnMuKQorCisqIFRyb3VibGVzaG9vdGluZworCisgIFVucGFja2lu ZyB0aGUgZGlzdHJpYnV0aW9ucworCisgIElmIHlvdSBlbmNvdW50ZXIgdHJvdWJsZSB0cnlp bmcgdG8gcnVuIEVtYWNzLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YKKyAgcG9zc2libGUgY2F1 c2VzLiAgQ2hlY2sgdGhlIGZvbGxvd2luZyBmb3IgaW5kaWNhdGlvbnMgdGhhdCB0aGUKKyAg ZGlzdHJpYnV0aW9uIHdhcyBub3QgY29ycnVwdGVkIGJ5IHRoZSB0b29scyB1c2VkIHRvIHVu cGFjayBpdDoKKworICAgICogQmUgc3VyZSB0byBkaXNhYmxlIENSL0xGIHRyYW5zbGF0aW9u IG9yIHRoZSBleGVjdXRhYmxlcyB3aWxsCisgICAgICBiZSB1bnVzYWJsZS4gIE9sZGVyIHZl cnNpb25zIG9mIFdpblppcE5UIHdvdWxkIGVuYWJsZSB0aGlzCisgICAgICB0cmFuc2xhdGlv biBieSBkZWZhdWx0LiAgSWYgeW91IGFyZSB1c2luZyBXaW5aaXBOVCwgZGlzYWJsZSBpdC4K KyAgICAgIChJIGRvbid0IGhhdmUgV2luWmlwTlQgbXlzZWxmLCBhbmQgSSBkbyBub3Qga25v dyB0aGUgc3BlY2lmaWMKKyAgICAgIGNvbW1hbmRzIG5lY2Vzc2FyeSB0byBkaXNhYmxlIGl0 LikKKworICAgICogQ2hlY2sgdGhhdCBmaWxlbmFtZXMgd2VyZSBub3QgdHJ1bmNhdGVkIHRv IDguMy4gIEZvciBleGFtcGxlLAorICAgICAgdGhlcmUgc2hvdWxkIGJlIGEgZmlsZSBsaXNw XGFiYnJldmxpc3QuZWxjOyBpZiB0aGlzIGhhcyBiZWVuCisgICAgICB0cnVuY2F0ZWQgdG8g YWJicmV2bGkuZWxjLCB5b3VyIGRpc3RyaWJ1dGlvbiBoYXMgYmVlbiBjb3JydXB0ZWQKKyAg ICAgIHdoaWxlIHVucGFja2luZyBhbmQgRW1hY3Mgd2lsbCBub3Qgc3RhcnQuCisKKyAgSWYg eW91IGJlbGlldmUgeW91IGhhdmUgdW5wYWNrZWQgdGhlIGRpc3RyaWJ1dGlvbnMgY29ycmVj dGx5IGFuZCBhcmUKKyAgc3RpbGwgZW5jb3VudGVyaW5nIHByb2JsZW1zLCBzZWUgdGhlIHNl Y3Rpb24gb24gRnVydGhlciBJbmZvcm1hdGlvbgorICBiZWxvdy4KKworICBWaXJ1cyBzY2Fu bmVycworCisgIFNvbWUgdmlydXMgc2Nhbm5lcnMgaW50ZXJmZXJlIHdpdGggRW1hY3MnIHVz ZSBvZiBzdWJwcm9jZXNzZXMuICBJZiB5b3UKKyAgYXJlIHVuYWJsZSB0byB1c2Ugc3VicHJv Y2Vzc2VzIGFuZCB5b3UgdXNlIERyLiBTb2xvbW9uJ3MgV2luR3VhcmQgb3IKKyAgTWNBZmVl J3MgVnNoaWVsZCwgdHVybiBvZmYgIlNjYW4gYWxsIGZpbGVzIiAoV2luR3VhcmQpIG9yICJi b290IHNlY3RvcgorICBzY2FubmluZyIgKE1jQWZlZSBleGNsdXNpb24gcHJvcGVydGllcyku CisKKyogRnVydGhlciBpbmZvcm1hdGlvbgorCisgIElmIHlvdSBoYXZlIGFjY2VzcyB0byB0 aGUgV29ybGQgV2lkZSBXZWIsIEkgd291bGQgcmVjb21tZW5kIHBvaW50aW5nCisgIHlvdXIg ZmF2b3JpdGUgd2ViIGJyb3dzZXIgdG8gdGhlIGZvbGxvd2luZyBkb2N1bWVudCAoaWYgeW91 IGhhdmVuJ3QKKyAgYWxyZWFkeSk6CisKKwlodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv ZW1hY3Mvd2luZG93cy8KKworICBUaGlzIGRvY3VtZW50IHNlcnZlcyBhcyBhbiBGQVEgYW5k IGEgc291cmNlIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uCisgIGFib3V0IHRoZSBXaW5kb3dz IHBvcnQgYW5kIHJlbGF0ZWQgc29mdHdhcmUgcGFja2FnZXMuCisKKyAgSW4gYWRkaXRpb24g dG8gdGhlIEZBUSwgdGhlcmUgaXMgYSBtYWlsaW5nIGxpc3QgZm9yIGRpc2N1c3NpbmcgaXNz dWVzCisgIHJlbGF0ZWQgdG8gdGhlIFdpbmRvd3MgcG9ydCBvZiBFbWFjcy4gIEZvciBpbmZv cm1hdGlvbiBhYm91dCB0aGUKKyAgbGlzdCwgc2VlIHRoaXMgV2ViIHBhZ2U6CisKKwlodHRw Oi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2hlbHAtZW1hY3Mtd2luZG93cwor CisgIFRvIGFzayBxdWVzdGlvbnMgb24gdGhlIG1haWxpbmcgbGlzdCwgc2VuZCBlbWFpbCB0 bworICBoZWxwLWVtYWNzLXdpbmRvd3NAZ251Lm9yZy4gIChZb3UgZG9uJ3QgbmVlZCB0byBz dWJzY3JpYmUgZm9yIHRoYXQuKQorICBUbyBzdWJzY3JpYmUgdG8gdGhlIGxpc3Qgb3IgdW5z dWJzY3JpYmUgZnJvbSBpdCwgZmlsbCB0aGUgZm9ybSB5b3UKKyAgZmluZCBhdCBodHRwOi8v bGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2hlbHAtZW1hY3Mtd2luZG93cyBhcwor ICBleHBsYWluZWQgdGhlcmUuCisKKyAgQW5vdGhlciB2YWx1YWJsZSBzb3VyY2Ugb2YgaW5m b3JtYXRpb24gYW5kIGhlbHAgd2hpY2ggc2hvdWxkIG5vdCBiZQorICBvdmVybG9va2VkIGlz IHRoZSB2YXJpb3VzIFVzZW5ldCBuZXdzIGdyb3VwcyBkZWRpY2F0ZWQgdG8gRW1hY3MuCisg IFRoZXNlIGFyZSBwYXJ0aWN1bGFybHkgZ29vZCBmb3IgaGVscCB3aXRoIGdlbmVyYWwgaXNz dWVzIHdoaWNoIGFyZW4ndAorICBzcGVjaWZpYyB0byB0aGUgV2luZG93cyBwb3J0IG9mIEVt YWNzLiAgVGhlIG1haW4gbmV3cyBncm91cHMgdG8gdXNlCisgIGZvciBzZWVraW5nIGhlbHAg YXJlOgorCisJZ251LmVtYWNzLmhlbHAKKwljb21wLmVtYWNzCisKKyAgVGhlcmUgYXJlIGFs c28gZmFpcmx5IHJlZ3VsYXIgcG9zdGluZ3MgYW5kIGFubm91bmNlbWVudHMgb2YgbmV3IG9y CisgIHVwZGF0ZWQgRW1hY3MgcGFja2FnZXMgb24gdGhpcyBncm91cDoKKworCWdudS5lbWFj cy5zb3VyY2VzCisKKyogUmVwb3J0aW5nIGJ1Z3MKKworICBJZiB5b3UgZW5jb3VudGVyIGEg YnVnIGluIHRoaXMgcG9ydCBvZiBFbWFjcywgd2Ugd291bGQgbGlrZSB0byBoZWFyCisgIGFi b3V0IGl0LiAgRmlyc3QgY2hlY2sgdGhlIEZBUSBvbiB0aGUgd2ViIHBhZ2UgYWJvdmUgdG8g c2VlIGlmIHRoZSBidWcKKyAgaXMgYWxyZWFkeSBrbm93biBhbmQgaWYgdGhlcmUgYXJlIGFu eSB3b3JrYXJvdW5kcy4gIFRoZW4gY2hlY2sgd2hldGhlcgorICB0aGUgYnVnIGhhcyBzb21l dGhpbmcgdG8gZG8gd2l0aCBjb2RlIGluIHlvdXIgLmVtYWNzIGZpbGUsIGUuZy4gYnkKKyAg aW52b2tpbmcgRW1hY3Mgd2l0aCB0aGUgIi1RIiBvcHRpb24uCisKKyAgSWYgeW91IGRlY2lk ZSB0aGF0IGl0IGlzIGEgYnVnIGluIEVtYWNzLCB1c2UgdGhlIGJ1aWx0IGluIGJ1ZworICBy ZXBvcnRpbmcgZmFjaWxpdHkgdG8gcmVwb3J0IGl0IChmcm9tIHRoZSBtZW51OyBIZWxwIC0+ IFNlbmQgQnVnIFJlcG9ydCkuCisgIElmIHlvdSBoYXZlIG5vdCB5ZXQgY29uZmlndXJlZCBF bWFjcyBmb3IgbWFpbCwgdGhlbiB3aGVuIHlvdSBwcmVzcworICBDLWMgQy1jIHRvIHNlbmQg dGhlIHJlcG9ydCwgaXQgd2lsbCBhc2sgeW91IHRvIHBhc3RlIHRoZSB0ZXh0IG9mIHRoZQor ICByZXBvcnQgaW50byB5b3VyIG1haWwgY2xpZW50LiAgSWYgdGhlIGJ1ZyBpcyByZWxhdGVk IHRvIHN1YnByb2Nlc3NlcywKKyAgYWxzbyBzcGVjaWZ5IHdoaWNoIHNoZWxsIHlvdSBhcmUg dXNpbmcgKGUuZy4sIGluY2x1ZGUgdGhlIHZhbHVlcyBvZgorICBgc2hlbGwtZmlsZS1uYW1l JyBhbmQgYGV4cGxpY2l0LXNoZWxsLWZpbGUtbmFtZScgaW4geW91ciBtZXNzYWdlKS4KKwor ICBFbmpveSEKKworDAorVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgorCitHTlUg RW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQoraXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKK3RoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorCitHTlUgRW1hY3MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKK2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCitNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCitHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCitZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCgo9PT0gbW9kaWZpZWQgZmlsZSAnbnQvY29uZmlndXJlLmJhdCcK LS0tIG50L2NvbmZpZ3VyZS5iYXQJMjAxMC0wMS0xMyAwODozNToxMCArMDAwMAorKysgbnQv Y29uZmlndXJlLmJhdAkyMDEwLTA0LTA2IDAyOjE2OjQxICswMDAwCkBAIC04OSw2ICs4OSw4 IEBACiBzZXQgZG9sZGZsYWdzPQ0KIHNldCBzZXAxPQ0KIHNldCBzZXAyPQ0KK3NldCBzZXAz PQ0KK3NldCBkaXN0ZmlsZXM9DQogDQogcmVtIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiByZW0gICBI YW5kbGUgYXJndW1lbnRzLg0KQEAgLTExMCw2ICsxMTIsNyBAQAogaWYgIiUxIiA9PSAiLS13 aXRob3V0LXRpZmYiIGdvdG8gd2l0aG91dHRpZmYNCiBpZiAiJTEiID09ICItLXdpdGhvdXQt eHBtIiBnb3RvIHdpdGhvdXR4cG0NCiBpZiAiJTEiID09ICItLXdpdGgtc3ZnIiBnb3RvIHdp dGhzdmcNCitpZiAiJTEiID09ICItLWRpc3RmaWxlcyIgZ290byBkaXN0ZmlsZXMNCiBpZiAi JTEiID09ICIiIGdvdG8gY2hlY2t1dGlscw0KIDp1c2FnZQ0KIGVjaG8gVXNhZ2U6IGNvbmZp Z3VyZSBbb3B0aW9uc10NCkBAIC0xMjksNiArMTMyLDcgQEAKIGVjaG8uICAgLS13aXRob3V0 LXRpZmYgICAgICAgICAgZG8gbm90IHVzZSBUSUZGIGxpYnJhcnkgZXZlbiBpZiBpdCBpcyBp bnN0YWxsZWQNCiBlY2hvLiAgIC0td2l0aG91dC14cG0gICAgICAgICAgIGRvIG5vdCB1c2Ug WFBNIGxpYnJhcnkgZXZlbiBpZiBpdCBpcyBpbnN0YWxsZWQNCiBlY2hvLiAgIC0td2l0aC1z dmcgICAgICAgICAgICAgIHVzZSB0aGUgUlNWRyBsaWJyYXJ5IChleHBlcmltZW50YWwpDQor ZWNoby4gICAtLWRpc3RmaWxlcyAgICAgICAgICAgICBwYXRoIHRvIGZpbGVzIGZvciBtYWtl IGRpc3QsIGUuZy4gbGliWHBtLmRsbA0KIGdvdG8gZW5kDQogcmVtIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCiA6c2V0cHJlZml4DQpAQCAtMjI2LDYgKzIzMCwxNiBAQAogZ290byBhZ2Fpbg0KIA0K IHJlbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorOmRpc3RmaWxlcw0KK3NldCBIQVZFX0RJU1RG SUxFUz0xDQorc2hpZnQNCitzZXQgZGlzdGZpbGVzPSVkaXN0ZmlsZXMlJXNlcDMlJTENCitz ZXQgc2VwMz0gJW5vdGhpbmclDQorc2hpZnQNCitnb3RvIGFnYWluDQorDQorcmVtIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCiByZW0gICAgQ2hlY2sgdGhhdCBuZWNlc3NhcnkgdXRpbGl0aWVzIChj cCBhbmQgcm0pIGFyZSBwcmVzZW50Lg0KIDpjaGVja3V0aWxzDQogZWNobyBDaGVja2luZyBm b3IgJ2NwJy4uLg0KQEAgLTUxMyw2ICs1MjcsMzUgQEAKIDpzdmdEb25lDQogcm0gLWYganVu ay5jIGp1bmsub2JqIGp1bmsuZXJyIGp1bmsub3V0DQogDQorcmVtIEFueSBkaXN0ZmlsZXMg cHJvdmlkZWQgZm9yIGJ1aWxkaW5nIGRpc3RyaWJ1dGlvbj8gSWYgbm8sIHdlJ3JlIGRvbmUu DQoraWYgIiglSEFWRV9ESVNURklMRVMlKSI9PSIoKSIgZ290byA6ZGlzdEZpbGVzRG9uZQ0K Kw0KK3JlbSBBbnkgYXJndW1lbnRzIHRvIC0tZGlzdGZpbGVzIHNwZWNpZmllZD8gSWYgbm8s IHdlJ3JlIGRvbmUuDQoraWYgbm90ICIlZGlzdGZpbGVzJSI9PSIiIGdvdG8gOmNoZWNrRGlz dEZpbGVzDQorc2V0IGRpc3RGaWxlc09rPTANCitlY2hvIE5vIGFyZ3VtZW50cyBzcGVjaWZp ZWQgZm9yIG9wdGlvbiAtLWRpc3RmaWxlcyENCitnb3RvIGRpc3RmaWxlc0RvbmUNCisNCis6 Y2hlY2tEaXN0RmlsZXMNCitlY2hvIENoZWNraW5nIGZvciBkaXN0ZmlsZXMuLi4NCityZW0g Q2hlY2sgaWYgYWxsIHNwZWNpZmllZCBkaXN0ZmlsZXMgZXhpc3QNCitzZXQgZmlsZU5vdEZv dW5kPQ0KK2ZvciAlJWQgaW4gKCVkaXN0ZmlsZXMlKSBkbyBpZiBub3QgZXhpc3QgJSVkIHNl dCBmaWxlTm90Rm91bmQ9JSVkDQoraWYgbm90ICIlZmlsZU5vdEZvdW5kJSI9PSIiIGdvdG8g ZGlzdEZpbGVzTm90Rm91bmQNCisNCitzZXQgZGlzdEZpbGVzT0s9MQ0KK2VjaG8gLi4uYWxs IGRpc3RmaWxlcyBmb3VuZC4NCitnb3RvIDpkaXN0RmlsZXNEb25lDQorDQorOmRpc3RGaWxl c05vdEZvdW5kDQorc2V0IGRpc3RGaWxlc09rPTANCitlY2hvIC4uLiVmaWxlTm90Rm91bmQl IG5vdCBmb3VuZC4NCitzZXQgZGlzdGZpbGVzPQ0KK2dvdG8gOmRpc3RmaWxlc0RvbmUNCisN Cis6ZGlzdEZpbGVzRG9uZQ0KK3NldCBmaWxlTm90Rm91bmQ9DQorDQogcmVtIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCiA6Z2VubWFrZWZpbGVzDQogZWNobyBHZW5lcmF0aW5nIG1ha2VmaWxlcw0K QEAgLTUzMiw2ICs1NzUsNyBAQAogaWYgKCVwcm9maWxlJSkgPT0gKFkpIGVjaG8gUFJPRklM RT0xID4+Y29uZmlnLnNldHRpbmdzDQogaWYgKCVub2N5Z3dpbiUpID09IChZKSBlY2hvIE5P Q1lHV0lOPTEgPj5jb25maWcuc2V0dGluZ3MNCiBpZiBub3QgIiglcHJlZml4JSkiID09ICIo KSIgZWNobyBJTlNUQUxMX0RJUj0lcHJlZml4JT4+Y29uZmlnLnNldHRpbmdzDQoraWYgbm90 ICIoJWRpc3RmaWxlcyUpIiA9PSAiKCkiIGVjaG8gRElTVF9GSUxFUz0lZGlzdGZpbGVzJT4+ Y29uZmlnLnNldHRpbmdzDQogcmVtIFdlIGdvIHRocnUgZG9jZmxhZ3MgYmVjYXVzZSB1c2Vy Y2ZsYWdzIGNvdWxkIGJlICItREZPTz1iYXIiIC1zb21ldGhpbmcNCiByZW0gYW5kIHRoZSBp ZiBjb21tYW5kIGNhbm5vdCBjb3BlIHdpdGggdGhpcw0KIGZvciAlJXYgaW4gKCV1c2VyY2Zs YWdzJSkgZG8gaWYgbm90ICglJXYpPT0oKSBzZXQgZG9jZmxhZ3M9WQ0KQEAgLTYzMywxMiAr Njc3LDE5IEBACiAgZWNobyAgIEluc3RhbGwgbGlidGlmZiBkZXZlbG9wbWVudCBmaWxlcyBv ciB1c2UgLS13aXRob3V0LXRpZmYNCiANCiA6Y2hlY2tnaWYNCi1pZiBub3QgIiglSEFWRV9H SUYlKSIgPT0gIigpIiBnb3RvIGRvbmVsaWJjaGVja3MNCi1pZiAoJWdpZnN1cHBvcnQlKSA9 PSAoTikgZ290byBkb25lbGliY2hlY2tzDQoraWYgbm90ICIoJUhBVkVfR0lGJSkiID09ICIo KSIgZ290byBjaGVja2Rpc3RmaWxlcw0KK2lmICglZ2lmc3VwcG9ydCUpID09IChOKSBnb3Rv IGNoZWNrZGlzdGZpbGVzDQogIHNldCBsaWJzT0s9MA0KICBlY2hvIEdJRiBzdXBwb3J0IGlz IG1pc3NpbmcuDQogIGVjaG8gICBJbnN0YWxsIGdpZmxpYiBvciBsaWJ1bmdpZiBkZXZlbG9w bWVudCBmaWxlcyBvciB1c2UgLS13aXRob3V0LWdpZg0KIA0KKzpjaGVja2Rpc3RmaWxlcw0K K2lmICIoJUhBVkVfRElTVEZJTEVTJSkiID09ICIoKSIgZ290byBkb25lbGliY2hlY2tzDQor aWYgKCVkaXN0RmlsZXNPayUpID09ICgxKSBnb3RvIGRvbmVsaWJjaGVja3MNCitlY2hvLg0K K2VjaG8gRmlsZXMgc3BlY2lmaWVkIHdpdGggb3B0aW9uIC0tZGlzdGZpbGVzIGNvdWxkIG5v dCBiZSBmb3VuZC4NCitlY2hvICAgRml4IHRoZXNlIGlzc3VlcyBiZWZvcmUgcnVubmluZyBt YWtlIGRpc3QNCisNCiA6ZG9uZWxpYmNoZWNrcw0KIGlmICglbGlic09LJSkgPT0gKDEpIGdv dG8gc3VjY2Vzcw0KIGVjaG8uDQpAQCAtNjcwLDYgKzcyMSw5IEBACiBzZXQgZG9sZGZsYWdz PQ0KIHNldCBtaW5nd2ZsYWc9DQogc2V0IG1mPQ0KK3NldCBkaXN0ZmlsZXM9DQorc2V0IEhB VkVfRElTVEZJTEVTPQ0KK3NldCBkaXN0RmlsZXNPaz0NCiANCiBnb3RvIHNraXBBcmNoVGFn DQogICAgYXJjaC10YWc6IDMwMGQyMGE0LTE2NzUtNGU3NS1iNjE1LTdjZTFhOGM1Mzc2Yw0K Cj09PSBtb2RpZmllZCBmaWxlICdudC9tYWtlZmlsZS53MzItaW4nCi0tLSBudC9tYWtlZmls ZS53MzItaW4JMjAxMC0wMS0xMyAwODozNToxMCArMDAwMAorKysgbnQvbWFrZWZpbGUudzMy LWluCTIwMTAtMDQtMDcgMTc6MDI6MDcgKzAwMDAKQEAgLTIzLDYgKzIzLDggQEAKICMgRklY TUU6IFRoaXMgZmlsZSB1c2VzIERPUyBFT0xzLiAgQ29udmVydCB0byBVbml4IGFmdGVyIDIy LjEgaXMgb3V0DQogIyAgICAgICAgKGFuZCByZW1vdmUgb3IgcmVwbGFjZSB0aGlzIGNvbW1l bnQpLg0KIA0KK1ZFUlNJT04JCT0gMjQuMC41MA0KKw0KIFRSRVMJCT0gJChCTEQpL2VtYWNz LnJlcw0KIENMSUVOVFJFUwk9ICQoQkxEKS9lbWFjc2NsaWVudC5yZXMNCiANCkBAIC0xOTcs MTIgKzE5OSwxNSBAQAogIw0KICMgQnVpbGQgYW5kIGluc3RhbGwgZW1hY3MgaW4gSU5TVEFM TF9ESVINCiAjDQotaW5zdGFsbDogYWxsICQoSU5TVEFMTF9ESVIpL2JpbiBpbnN0YWxsLW90 aGVyLWRpcnMtJChNQUtFVFlQRSkNCisuUEhPTlk6IGluc3RhbGwtYmluIGluc3RhbGwtc2hv cnRjdXRzDQorDQoraW5zdGFsbDogaW5zdGFsbC1iaW4gaW5zdGFsbC1zaG9ydGN1dHMNCisN CitpbnN0YWxsLWJpbjogYWxsICQoSU5TVEFMTF9ESVIpL2JpbiBpbnN0YWxsLW90aGVyLWRp cnMtJChNQUtFVFlQRSkNCiAJLSAkKENQKSAkKEJMRCkvYWRkcG0uZXhlICQoSU5TVEFMTF9E SVIpL2Jpbg0KIAktICQoQ1ApICQoQkxEKS9kZGVjbGllbnQuZXhlICQoSU5TVEFMTF9ESVIp L2Jpbg0KIAktICQoQ1ApICQoQkxEKS9jbWRwcm94eS5leGUgJChJTlNUQUxMX0RJUikvYmlu DQogCS0gJChDUCkgJChCTEQpL3J1bmVtYWNzLmV4ZSAkKElOU1RBTExfRElSKS9iaW4NCi0J LSAiJChJTlNUQUxMX0RJUikvYmluL2FkZHBtIiAtcQ0KIAktICQoREVMKSAuLi9zYW1lLWRp ci50c3QNCiAJLSAkKERFTCkgJChJTlNUQUxMX0RJUikvc2FtZS1kaXIudHN0DQogCWVjaG8g U2FtZURpclRlc3QgPiAiJChJTlNUQUxMX0RJUikvc2FtZS1kaXIudHN0Ig0KQEAgLTIzOCw2 ICsyNDMsMTQgQEAKIAkkKE1BS0UpICQoTUZMQUdTKSAkKFhNRkxBR1MpIC1DIC4uL2xpc3Ag aW5zdGFsbA0KIAkkKE1BS0UpICQoTUZMQUdTKSAkKFhNRkxBR1MpIC1DIC4uL2xlaW0gaW5z dGFsbA0KIA0KK2luc3RhbGwtc2hvcnRjdXRzOg0KKwkiJChJTlNUQUxMX0RJUikvYmluL2Fk ZHBtIiAtcQ0KKw0KK2Rpc3Q6IGluc3RhbGwtYmluIA0KKwkkKENQKSAkKERJU1RfRklMRVMp ICQoSU5TVEFMTF9ESVIpL2Jpbg0KKwkkKENQKSBSRUFETUUuVzMyICQoSU5TVEFMTF9ESVIp DQorCSQoQ09NU1BFQykkKENvbVNwZWMpIC9jICQoQVJHUVVPVEUpemlwZGlzdC5iYXQgJChJ TlNUQUxMX0RJUikgJChWRVJTSU9OKSQoQVJHUVVPVEUpDQorDQogZm9yY2UtaW5mbzoNCiAj IE5vdGUgdGhhdCBkb2MvZW1hY3MvbWFrZWZpbGUga25vd3MgaG93IHRvDQogIyBwdXQgdGhl IGluZm8gZmlsZXMgaW4gJChpbmZvZGlyKSwNCgo9PT0gYWRkZWQgZmlsZSAnbnQvemlwZGlz dC5iYXQnCi0tLSBudC96aXBkaXN0LmJhdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisr KyBudC96aXBkaXN0LmJhdAkyMDEwLTA0LTAxIDAxOjQwOjU4ICswMDAwCkBAIC0wLDAgKzEs NjYgQEAKK0BlY2hvIG9mZg0KK3JlbSBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTANCityZW0gICBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCisNCityZW0gQXV0aG9yOiBDaHJpc3RvcGgg U2Nob2x0ZXMgY3NjaG9sMjExMiBhdCBnbWFpbC5jb20NCisNCityZW0gVGhpcyBmaWxlIGlz IHBhcnQgb2YgR05VIEVtYWNzLg0KKw0KK3JlbSBHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2Fy ZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KK3JlbSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQ0KK3JlbSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0KK3JlbSAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLg0KKw0KK3JlbSBHTlUgRW1hY3MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCityZW0gYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCityZW0gTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQ0KK3JlbSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz Lg0KKw0KK3JlbSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KK3JlbSBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElm IG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uDQorDQorU0VUTE9DQUwN CityZW0gYXJnIDE6IGZ1bGwgcGF0aCB0byBFbWFjcyByb290IGRpcmVjdG9yeQ0KK3NldCBB UkdfUEFUSD0iJX5mMSINCityZW0gUGF0aCBzZXBhcmF0b3IgY2Fubm90IGJlIHBhcnNlZCBj b3JyZWN0bHksIHN1YnN0aXR1dGUNCitzZXQgQVJHX1BBVEg9JUFSR19QQVRIOlw9OyUNCisN CityZW0gYXJnIDI6IEVtYWNzIHZlcnNpb24gbnVtYmVyDQorc2V0IEVNQUNTX1ZFUj0lMg0K Kw0KK3JlbSBQYXJzZSBvdXQgbGFzdCBkaXJlY3RvcnkgZnJvbSBwYXNzZWQgaW4gZnVsbCBw YXRoIChhcmcgMSkNCitmb3IgL2YgInRva2Vucz0qIGRlbGltcz07IiAlJUcgaW4gKCVBUkdf UEFUSCUpIGRvIGNhbGwgOlBBUlNFX1BBVEggJSVHDQorZ290byA6RVhJVA0KKw0KKzpQQVJT RV9QQVRIDQoraWYgIiUxIj09IiIgKA0KKyAgZ290byA6WklQX0NIRUNLDQorKQ0KK3NldCBS T09UX0RJUj0lMQ0KK1NISUZUDQorZ290byA6UEFSU0VfUEFUSA0KKw0KK3JlbSBDaGVjaywg aWYgN3ppcCBpcyBpbnN0YWxsZWQgYW5kIGF2YWlsYWJsZSBvbiBwYXRoDQorOlpJUF9DSEVD Sw0KKzd6DQoraWYgJUVSUk9STEVWRUwlIE5FUSAwIGdvdG8gOlpJUF9FUlJPUg0KK2dvdG8g WklQX0RJU1QNCisNCis6WklQX0VSUk9SDQorZWNoby4NCitlY2hvIEVSUk9SOiBNYWtlIHN1 cmUgN3ppcCBpcyBpbnN0YWxsZWQgYW5kIGF2YWlsYWJsZSBvbiB0aGUgV2luZG93cyBQYXRo IQ0KK2dvdG8gRVhJVA0KKw0KK3JlbSBCdWlsZCBkaXN0cmlidXRpb25zDQorOlpJUF9ESVNU DQorcHVzaGQgLi5cLi4NCityZW0gQnVpbGQgYW5kIHZlcmlmeSBmdWxsIGRpc3RyaWJ1dGlv bg0KKzd6IGEgLWJkIC10WklQIC1teD05IC14IS5ienJpZ25vcmUgLXghLmdpdGlnbm9yZSAt eHIhZW1hY3MubWRwIC14ciEqLnBkYiAteHIhKi5vcHQgLXhyISp+IC14ciFDVlMgLXhyIS5h cmNoLWludmVudG9yeSBlbWFjcy0lRU1BQ1NfVkVSJS1iaW4taTM4Ni56aXAgJVJPT1RfRElS JS9CVUdTICVST09UX0RJUiUvQ09QWUlORyAlUk9PVF9ESVIlL1JFQURNRSAlUk9PVF9ESVIl L1JFQURNRS5XMzIgJVJPT1RfRElSJS9JTlNUQUxMICVST09UX0RJUiUvYmluICVST09UX0RJ UiUvZXRjICVST09UX0RJUiUvaW5mbyAlUk9PVF9ESVIlL2xpc3AgJVJPT1RfRElSJS9sZWlt ICVST09UX0RJUiUvc2l0ZS1saXNwDQorN3ogdCBlbWFjcy0lRU1BQ1NfVkVSJS1iaW4taTM4 Ni56aXANCityZW0gQnVpbGQgYW5kIHZlcmlmeSBiaW5hcnkgb25seSBkaXN0cmlidXRpb24N Cis3eiBhIC1iZCAtdFpJUCAtbXg9OSBlbWFjcy0lRU1BQ1NfVkVSJS1iYXJlYmluLWkzODYu emlwICVST09UX0RJUiUvUkVBRE1FLlczMiAlUk9PVF9ESVIlL2JpbiAlUk9PVF9ESVIlL2V0 Yy9ET0MtWCAlUk9PVF9ESVIlL0NPUFlJTkcNCis3eiB0IGVtYWNzLSVFTUFDU19WRVIlLWJh cmViaW4taTM4Ni56aXANCitwb3BkDQorZ290byBFWElUDQorDQorOkVYSVQNCgojIEJlZ2lu IGJ1bmRsZQpJeUJDWVhwaFlYSWdjbVYyYVhOcGIyNGdZblZ1Wkd4bElIWTBDaU1LUWxwb09U RkJXU1pUV1JIMXQ1Y0FIajdmZ0ZnMmQvLy8vLy8vCi8vNy8vLy94WURSOCt4NWhkdyt6RnZ2 cDgrenRjY3B1NDI3cTYzUnJURER2cnR3K0h2TzZlckI3Nk10SzJkdWNnUWJZWDI5SHUzMCsK NzNjcUhiSHQ1ZllZYnNEclZyMXozc051OTQ1M2JsNldsNk82ZmZBK1hQdlBPdXJkdnQzYzk4 NzNrcFVURXpkM1IwTlJxMmhCcGdVcAp0cTNzZFJVMVo4Qjc2NCtONWVxNjhiUlZkMkwyQktF QkFSa0V4b2pSb0FScG9hbUptbEhrYW5wSHFHZWxEeWdZQktCRFFRSVFLbmxUCncweVVQSlBV OG9BTWdBQUFBQUJwa0VFSm9tZ1ZQMU5rbTAxUTlSNmg2ajBnZW9hRFFhTkJvQURRQkpwUkNa S1lDWVNaR21xUEdrbjYKcGlhYjFUUXhvak5DTkdSNm1SZ2hnUktDQ0FtRUdrTkdqUUl3akVt QUUwVFpUVDBhbVJvQUFTSkJOQUNBZ0NBQlUzcVI2bVQ5SUNNaApwNkk5UXpVQUE5VFl5Z0hV a0N6V1B2K3JCZ1NDeVpIUi9Wem5wRU5QUy85Nmt4OEh5RTdMZUxBUDJzL1IrNnpCME5CVTlZ ejZzZGpNCjVweVRWcjFudWZ0OXZ2K0U2T0NrdndBV1RZQXdCbHVqak1ZZzc0SDE2YUtyQTNu QTMwRitoK2tsaC9nV0RqL282WjlSU1dWWlpheDgKTnVaWVVSUjNrb0cyenlpcWdpYjNBL1Zw SHJCNDMwRGYvNHJMMitQTTZNZzN5V2xocDF5YmRKZFVmOTAvbmhJRXVxWkc1SE9CM1RvYwpo TlUzNVJjOVNwUkVONUVScmJqenh5ZU52b0pjdm16MDJXOXJVWG1Yd1puczdmTC9FRFhaWEJH RFZkYjZhNGNkcHgwRkFuVG40UHk1CnFrbnlEZU5TOEhOaTlabmJ5eVFSNlBPRWoxVWdKSkNs M3pxNXhwNlhQZSs2aGNlcWlrMTRZUkxBNDYyejhmdzZYWGQwQ0Y3QzBHanEKeVRHMDJsbkVH VEZzd2JSVnBUYUViV0phM1hVMExoSUt3eG9ZMjBNMHpmWDArNlRPNnF3TUFocFhxR0J6Tk5K NktONTJOeWpMeXBzSQppcm1yNEhMRkswcytUbEpvaVRFT1dmTnBNQjhMUU5KYW5HTWJ1S0tj bmg4M0JEVGxzR2pNSnF5VkE0d0taZDNJa0ZGVkZVSWlpcU5CCnB6Ly80dWJEY3VyeThEeDM0 YVMyT3Jtc3A0aWh5citLL3F0bXc3MlptbWNqUWVHZWgyS3lyNEt4NzYycFZTdG5RK1BLNHc2 bU10MkwKMS8wd3NHL0QwNVR0dllUQyt5bTJNZDZUUEhmakRUanNxayt6MVlZTm9wazloak5h VzlqSlRBWkRWcVpHVThmR1pGOWw5TitXZHVMTgpiY3NyWFBJYlVCRDVjY0toRFpPK1ZGRFNz RkNLQnl5TVNudjhOMHRKQm1vbFlzVXJWclVTMGxCVldXbEJVQkY2bXhFVlJWWVNZUUFXCkVp Z3M3eTBVVk1TRmRjNFhYTGptL3U5eEk0aUNNY3lwcjBVd3Fwdy96NFZjUHloMHZ2TG42ZE50 dWZFWjdxYmxWaUhKSWxwaEJtWDkKWTFiTlZWTHNUZkRiUzRWQk1RSlF4ZzRvdldtVlAybmdT Z1k3ejBQL09kR3Y5b1dDVE5GS0FZOXJ0U0luUUFKQllMQlNER0tRaXFLRQpGUkYvejRmK29C YjZ2cnFoVDZ1TnZydUp3MEhlTXdJK09KVWtaSHM5V21VMWo4a2ZremxWczJWc3JVcFNIV055 OHVrelVxWnVEUE5ICnZSQ2xxd2NENmdDR00ydm83czRvR1R6YzNpNU93L2E0WXhoZllaQ1Zi WnBYTVdyRlM0d1NLRG9wQXd5UlJGZDVaZ3lDbzlXSm9TbzQKMmJ5VjN5bUp6MlAyUG52UlVN TnNqS3pMWmk4SHp5SWtvRFU1TGg5MXdoTTRlK3hrQ3hhQ2QxaUVMVFQydElpS0x1aEwwKzhY N1kwTAovUjc3OTliY0x0cnN1SkZQWnZTUTNRRUt0aUdnL1B6SFlCNWpnSmNPY09jVmZscWR4 dlFaeTdzWFJSVEtpVFhIc2FGbFZQeDBKbHFxCloreGZqNTEvMWptK1gzL05XNi9UTTNtamQ4 RnY2NUJ3L2kxaGM4Zlo0MnJOcDc2NnlxamEzMloxRno0SzVMSDZCUEZrU2dLTXJ6dkwKeG1S UUpTNkhITVZQcy9ITXdPZE9YVm4rSnFnTldUS2NhSG1vUjVqMFBJQXZmbVk4Q2lZdG5BUXBO WmJrdzE2eEljSmpzaE5zSnRJeApBd3RXb3Z6MFVUY01KdUQwc1JtNnNDUlN1MFRvQ1oyaGY1 R29XWTVPL2h2cTQ4L3hvQ1laYnFsMXo4RlowOFB4aSt3azZDZklUSTB3CmJLdXVZaDhWRlpK b0x3STRaKzdJcS9nOWp4UHg1eDA2NW8zcU9WYytFLzIrUy91eDJlSFcwOTJFTnVIREFQYTdu Tm53RFFYSGZVSzQKTmY5R3l6KzAzckNsaFYrZ2ZhM2djOWVHODFNcWR0YVRwU1luOEorNk9I czdEWlUrMXpIeXJuWG5VZ1pIZ1pqQ3M5R2FodlJkeFIwNwpUcUNZSko2MGpRMWZUdjkxYkhj SEQ5bWVFNjZkSk8yMWVsQytYY1JyMWtmSHNzcjZZYnNKeE9Vbzk1d1B3clc3OTlVeHJkTEw0 VytZClpWS3ZyTjdyM0xsSXRaM2FYUjlIREhCSHgyT2FNakxaYnZ2NGVWUmFac2xseWZEZWdX YW5ZQnh0aHJkVUttaFNqZDBTbFhQNFp3M0UKTmZPTlN0Q1RreW1GYzZwSHRxdDF6ejJGSXRk L3R5aG4xbGJpVmZtV2lWTzVEcWM3VWV6RTNFT01qb3NPc1IxZFNEWVU3YnZVMi9GZQpSM0hz T1dqbXdMTUVSZmRYTlJrcmoyUng0UitUNCtuTEczUElIQ0JkVFR6TVBEbUFRbDBWYk5lZ25p R0NhYmZXZE9DT09tZEJjQldvCjJpYWxwN29NcEZTVXZoZmE2RkYrZHV3ajYraDVOZlNJMzBS bzN4dnhZMlpGSXZWWVB0czNRMlpDaUZMcXFxRmFPalBUWDAwYm5lV3IKU3ZMMVNNVm5tb011 b2hGYnFGZ2RSbDcwSFBwYWFEZmo3ZUlnYmo1cnZtQStPOXZFbUxRNDZtN2J3TlFld0gxYWlD ZUJ5OXJ3SXNGRwpxREgwaFZzQ3FITEpYWGhoUjdQMUJPcVVoZmJncjJNMHZkMjQyWEhDcVZD bEpxUjZHQ2F2S2JHWE4rdGNCRTNWaTR0VzVTK2VvaFNKCmxBdzBkTStKclhYcmxqRUJyUWpu bGJpNTI5RXZnMFZwNWROTmZwTDFJQzR1eU5NM3hqZzM1T09oaXdoclVRNThRZTgrYlFTTXht RDIKSitlN0thWUVzZ3BKemFrRlZDdzUrNFYybTJzV296ZDhNN3ZMUTMzTk9wV1YwTkcrV0ZT bVNOQzBOdXdOUGFYL1NPS05WclhyTHM4bgpxNm4zeHpydHlaeVBGbXVvS0RHUThLajd1dm1n RU9DMjlzNElUR0h6S0Vaby91djMrYXFWOGFuV1ZvRVIwcHQ4cWI1cm01UzU4ZFp1ClY5TEVS TFRXT0dHK0lZdkVHL2RFRWlMejcxVFhhdjFZcHVlUEdlWVpORnZtZXZjdXBiT3p4UXQzeGor RDJWalhCeGNyWTlwZnNBT20Kd2FId0VNNG11TTRLNUJSMVdjaTQ2TjhadFlYZTNRNWluNFdz UGZ3cGptUHRpcW5yQS82WnRTRTllOE9qZXdnRFpETmx5NFFDQzNpdwpVS0xIeWV6TVhxV0Yx NVZHSU5DdHdaYlRtVzFtc1hzK29TTHBWNjAwLzRsUytUeVdjWXJHTFl0T2ErWmZXNzF2a0tx WjIzZk8zRlZqCmZmczQxaUwwYTlXdnE0bDFaL085ZWxQTEdCbmQ4enh2V2tIZ1M0czRpdzN0 cm1YcUhhOEVkc1NxMnIxOHFhOC9LdG9wMzRYa1JaOUgKOWpieDhWN2NXalBTc25qSzF6Y2RU MlcxQ3RGeTlCeEUyMFByT3huT2JrZFJSRzBiMUd4ZWY1RTkwVUxEaHpkbnRPNkdOQndhUlFr egp5N25lYWs4SVFFZHRZVEZrQ2RpbEMwaFpIcU9aYjZYV1BJTU9PMGZHenh3N0wyeDE2elJ2 TVpEa0lzNUxCVUpxUG1zRmN5NXJyblpZCnFSVnJsbVVjRnRYcGZaazNtMEJ0Rk9qUmg2ZkRQ TzN0KzczZU4xU3NMOXZ2N2ZlK1IzQlByWXJReHNLelFJU2toV0k0K3pkcjJXTWoKTDZtVldW Vis1S0ZRUzhRb2QrV3Mxb0tPZFk1M0l2bzRGOGxPVFJwM1ZZYXpwaHQ1TDkzdUNHazJmb1o0 T1NFRDUvb1BIcjE2blhoZAo3UGYyWkxKTUZBZ3NBRldCenZVSTJrUGo5dG40dmw5djMvWjVl ZDlYaThzRFZrOS9UK3FWNytuN0RZTW1rc0R2NGtXdDlzalBrRHVKCnFFbFdUUDNpQXErYkNj R1hlYWVYSGRxT0o5V3pTNDdUNy8yeXdnWllra3NFUDFpSUQrcXdLc1loK2hDZnJUNnZqNDdw OWJ5K24zMjMKNXFveStCc0pwemZVd0lIZG1ORHl5emtIQnZvSytpODBmd3d1cTJhM1czaDE3 MmswQ0czd1ROcitLb2g1ekxYWnV1YjE4WlNlZzZ6MQpIbFBRZHh6SDJGdnBVcXMwOStNMlVy RDNLOXhNY3JlZnJoMVBxZHdzaE0rZkR4eGwweFljb3FjMTNmQVo1ODVZM1ZzeDdYc2I1VG5q CndKVkh4MXV5ZXc0d1JZb042QlVjaW9ldlljQ0hFUjNoVVRZalFvQWVzT2Q3aW9VUlRCZ0pa Z2cvMEVxOWgzUG9YQ28yQVBPamJZODIKMzBHUHlGemFsQ1dOblA1aE9XZ0hqZnRmU3ZSb0lM WlRvV24wZkVKZzVHb3gybERBVDB0V0lwc1YwMTRCbUhnRXp1M09Ddk9EYlR3VgpEVUVNVlpa MjdQelFlYm8xbEtKUHB3bHI2ZGRaajdzTUhXZWZ5dDhzWUJKTE9LUThZankrbDNOTTBQMHhR UEd4SVF2QWpwZFdRNUtpCkg4a3AxSHdkVHpzZmlQckJzY0VZSitUcXgyejQwM0ZoNk9iUEp0 TUQvWXFRNWVBQnladWMzYmpjcTd1Tll3WnorTHNkQ1BjYVVLazgKK1FNaUtvc1JpU25nOERF VmJuZU9qMGFhcFRoYW5pdkxlVzhucWRETmZmNnZVVmo3VEcyZkJPWGEwbEhMRkRMVVNIaWlq L3lxNDRzaQpJN0dacEJKQkR6Z3lIeEF1UUJ1RkxSYnViK3c1TS9YMERpaGhYYTkyZ2t1SkMy eTIyclMyeTFhV3Jla2U1NE4vZDNlNHorWGU5MmhlClpJY1g0c1ZGQno4SkNtWlVsS0ZFTTg3 eGVYaUJPZlVkTUhpS3F4OVEzZUJENnpNaWNKeVlFMlNvY2tXU0ppeVR6SktnSG54c1ppZG4K MkdsZmtzR1dXbXNYWkNnUXdoUkZoRVFmbW9aa0c1RUIyQ1hLWUVRUU5hRFFMcTBiWVFScXNr a1B5M1k0a3hCTUJ5QnhFYkxldGRxMgpMSmc0RUZLQ09aekdCMGx6SEJVSE9pTk52aDNsa1V2 bWRsY29USXV2eG12WEtGMWJYTU84cmJiWGJjc0RsSFRZcVR6enFYRmhRbFJKCmkzZTVZM2Ra M0hDOWJNSkZScEpGS2xaMmhCQTJTeUNGaTF6cUtuM2d2UWkwTnpzMFJ4eWNpMTJPUEREWVJv a2EyTElVRzU0Z3VTUzcKUmJueUVIWWZqK0F6bklTVjZhMDU2U213SUI2dnNwMmtpNnNTbEFU bENYaDZHejR5UXNMT0FiQXVpRXhsM0taa1RtL0hwcGpxdG9kZgpJMk0wT29HMnkyRXFFNUNZ Qldvb0JEbC9qVkI2S1F5RWNjTlp2TU16MWduWm43Qk9yUExnYzZLVnR1Z2l1ME5hS2JOaFdh U3NhbmxvCkkrb1JzSS9MNkN1bVo3c3RBelROeTArWWprVjcwNTBzNlgzZFU3ZkRQcGpOYU5y NnFkczV0QWhBZ2lKSmloMjRHeWh1MGFZSlZ2RG8KRmFhbUtLSVNKb2U2RTVLQy9URXdydFcr VzZ5RUZFbGh1aEJsT20wcVRlOXdpVFMxSTdSSFFST29kQ2IzM2NUc0NEcHVLbnZEdnJjNQo5 aEIvTjNCTlJMSXNhTzNGSmFwTFFUUzUxVzhZWEZ4WVpTOWVPNWZQWlYwakQyWlo0aTFRcGZl S1kwMUdEdmNjVk5JcmRBbExtWnVTCnVzdzEzTVRreDZpd3hmbkZUMDdsaWhXVFRlUEozSUtl LzEzMVBnc3h0dnVpcEFoOUtlQzl2R085Rmwzb0tKQ29mUFVHdFhVMjZ1emcKeVN3TjI5R0RV WUdOaTdodlpLUVBLRWg2dS9ISk1rZ0E2MVhscmxFY2tVendOOHNNMWxhYSs4b3JwRXdCMjQ0 YllxUVpTYmtOVkUyQwpLa0d0YzNIVTI1ZDNhWlhMUHV6U3ltYlFHYk15WThUSHVPZXVkbXlO dVVzNElSZ3g3d2xJT1JkS3poVlVQSlJ5bk9IU3ZXV3pCTE1FCnZQcWRMNGtFZTFYY1FjRUgr QUpoelhpOXJMMjdqb2lKRFltVjc2c2dnL1pobENhcFBDRkZyNFZTT05wTmpxUkxrUjRXQUZv QUNIZlkKNU83V24zcExVMU5LRkRvWW92eGlqT3ZEL1RSbGhGMWxkWVV6NHBndWlYdU84MlNX bHYzdHRWNXF6VzBPYkZEcVE4enE1RVZPRlZyWgpGK0NoK2lSSkxGTHdMekhPbGxYQVpUQlVC OCtaek5UYW9aT1ZoQ29aejY0WUVqVkxCd1VJRWp2a3VCcC80R2taeS9FZytlYVZrSkZkClNn allZS1pmV3Bwcm9JVXp0UEl4SmVZWUY3MjNmUUtYZzNQR3c4VndpNzRZVkJJRHlPa1NFakNw d2VoQmRjY21LV1BMY25iakQrV3gKeHZNRzIycHhzZkVPQ1NyYVltMi9oeGNJandpaDdHdU1G VXliSnhuYm9oek94c2NsdThEYkhMU2JzTFdmWmxUTWhCYUxpOGNSd2J5UwpYTG01dFErU1lD eUpPN2NLTGRaVi9BcjdzK0JtR2t1V3FXb1VGS01PTkZwTEk4NjdRcHRpMzBaWklJVU1pNnNx cmtSR3RkVkVRMUdSCmVreTlaQXVIUjFRc0NSV2hURkNSeDlBaDB6MjlxbHRtQm1ydGJid2NS Wk9maGE1eFoyYTVIeERWOTJ0U3FpOUd5Q0lOUlIyK2hNSFgKTlFjWGxhaUZ6blhmY1lLVHZK UXZSRVgwT2hvTGxyQkpvYnlQUTdVb1RCN0phaVo1MCs1QktjSGMwTmF5Skk1UE56ZTQ1QWh3 Q2lIQwpJSmNVdUdhR0RrVkl0MTA3bUltc0Zyb05URXh2SUxzeTJSZU5keVhnb3h2UGlOSEhu ZXR3enplMXBoNFhHQStXaVpVUFNFSU5ubVpZCkNHZ0JocmIzNmdLNGp1UlBJdDJQVkdKcWRj WE9VaEFPRXFlbHVTNTJQSTIxSzlyZFhQWW16QlFXTEJZTEZCWW5qMTlKMDNkNzUxQnYKMW10 NFZKOVJrMG1qZFRSZEV1MnVTSmRUWkpvSFIyODA4aTVlZ1g1TlZPMGVCRFIwVTdVTy9TWVky aUxGREIxMWlDMmp0OUtQM0FNaQpIQ0lteThFTU9tWTY1M2JzOXk5S2lpblVIeTkrVHZUblhR cE5KanR1WDUrQnRwbm9odU1sWm83a1UxbTNPenhYMklwekhEcG11b3pJCk9wQnpMV3FWWVNp aFlROFBZaUFRVkx1QzRjSHRvUWdFenkxRVN2eUV2YTAzNTVyaExlZFNlZnBhcWlsdUZmWkJN UllLVlJNWkNSZysKdlBEZWE3Sk9zcHFCSWl3TkU4aDJKRFRUZVdzNGVWeW15dzgrNmh2M1ZT Mlg0OXd2VHEvUmhLbXRIWWllTlpPT0tZeHNvZThRMkJFOApjR0ZPdVRIZzg4cEp2MVR0cHhq SkJYZ3B5NDRtdFRUamVYbXpJbHdtY2pzRm9rdHhlMFBCWEFyeTlaY05kK3JqZnE1QVJhOFRN UllGCjVaRVNwdnhIem9DRFk2bVpvOXQ3QXRaWEJhRkJqakNpN3pQYmppdUFKQjFuU1g1dGxx aGhqc0JXQkwrem5uQWRISEZ6ZlJ4dE40aTYKVUpCZVBTQ0ZtcHBGTmlrOFdYdVJYRW5jeWcy WkpvTWFzcjBKclIyeWdYSmlQYWxtUjNDTUVJS0ZpZmR2VFV4MkpzalUwNWNLRytwZgp1ZWdP TG1DUEU3dWFITWVDNWRCRU1wWlAxdlpVUFVuandvOVlkamg2WU1idjU3UUFSYXBKQXIyUEth MjZvVjJwblVsZUR3dHlhUmVoCkZFNjBYZ1NEYnhjSzQ5WUp3Wk0xdUlqcW1CbThVT2hyNE94 VkxlOEF6d3BpcWJLRnNoeEtDTFJQSy9IV1d3Y3Fhb2M3eE5UZjE5YkQKNUY1Tnl6b1g2Vm9U SWh2N0NFbmtWTnRwTW0xK1NEc2JHRjVOelJ6Z3lkZk9DSFAxYkdSblZaVWo2d1F3d2I3QVpz TUc1VFd0Ry92VQpLWHNzNGdXUUZqd21ZSnFJcm9CYWtKSGJHcFVxY2p1N3M3bmZhTUVKRVdw UVJOZ3M1WGp1dWVCdTN1SnBGWDl3bGFjMDBWUE9WT3hVCmM5U1RDaFVvM3JTeHdrSnNtRW5k ZUNOeXFJdkpSSTZXU2Vqb2c3SHQzMzBQdVE4c3NvOGE0Sk4rRVR0N2dRWHVPVTM3MEtZbURU dDYKSW52RHZ3ZGFQSFJjR1hFUkxYU0g0eXdtM1FEMFRjQ0dMSDBMNVc0SG0vZnVweVIrYXBx YVA3VDh4bVpBZmFkRmx6RVFKR0tSdzhqMwpkcEVQdGw1dTNoU3FmNmNuN3RUcUVtR0UxQ2F3 QjhUYzBNd01BbE5MQTFDWEV2U3dsbk1UV0paUnFKUkVJSlVUSUtYVWN4UVd3RU1SCnIzK25v ZTQxRWFvQnNSNGVmMmZUNHpuRWIyUTJmcWZjejBQZWZFUTlRRllESXg0cXdZZkhCWXFJckNF SktqQ294VWl4N2RVeW16WE0KS2JDdjQrNHQrSEFEbUIreEFoN1duMG43VDV4T0cvcThLZ1B2 WXFYRDVIWmk0dXNUOXg5NC9pczlOVlp5T1JnZXQvUS9BNEZqN2o4eApjaytpM25JaHk3UEVu SkVraXhpcElFaXo5VDhkSGc1OHhOcFNuL1JHRDI0bi94aFV1c01McG8rNHJhZjdXTGdJYnUw a2RSaStsa0FVCkpHQ1dKN3pnZVNWUEE1WWN2QSszcVZSMFN3cjNEUC9lZ1pWNTRVREI0SEV1 dE5IaUJjWGZHVmIyT1JWRkY5NVFPbnhpVEJLR0NEeDkKT0hqRG1tY2pVYkhJSmZNZ1locE5K aU5kbjV4cmdURjVmVjM3SHJWZ0wxSGdmdXdGQmdmTWRVRDJIU1pHbWRYRkpBWW1MblpuSGVL WQpaZ1BnTjNHNlF2WVVvRmlIN0FjU0VIckQ1R1I1R0FCWnBIWStKdDUrL2NkaGVQTTlBSGR5 Z3Frci9HeUNXU0RxZHZhNjVJMzVwZU50CjNOaTlaNm9tRTNyTFVneFRTWDVGcUdXZ2dnc1c5 NTcwUnFjQzFPdUtPcDBBTkprSGFNa2RobUFWT0Y0WjRGTUE1S1owVGJhN1BQeSsKOGw5aDU3 Vy9aNXh4R3REVVVKTG4ybnpmZVZDQ3RBWUNmSDY2VG03eURYQk05azd4WGUxSlZtSGNVSFlJ VFF5Q2ZWalB1MCtYVXNCZAppUHUwc2lldTV6SHhxd0RXOEUzVVVNb2o3NVdBWE5VTzJtUmVp RWxtTU9DQ3BvZG5adzJvRjVGNEJlRXZmbUpiTkpIQUhQUWw1NEdzClpJOE5STWNHa1ZWQ3lD RldiY21WREdsVXphaG9LTkFlWXpCRDVwR1o4UmpOaDBMczd2d214RFdIelRpc2ZxT2s2bkpp WG5OMytyam8KMjVFUk9wQVZubVVGSEEwSU1td0xkU2NkbzhCSUJRQWlDYS9xcUlIbk9lRVAx Z3RJaXFnZS80ZngrUTZhQ0E4L2tmZU9RQjNrOWNEMgp6bVRPK240bEJMNG54dU9RWWVxcC9T U1ZoVkovdkh4Y3VNZjJwc2ZVWE1ibG9ZMHhvcSsvankrNnMrUnFYWGhnOGVmSllUV0VZcUk5 CkRVbDVwR05UektjOVNuMWJmbVhqTVBleEVra2tmYVpsRHA2aklQNTJ2RWwrOTk3TkNycVND dm80ZWs2NHBMcmJmZFVoaUh1SkI5Z1QKY05lKzRtaEFIOENNS2ZKUytUMytFeUJqL0tnQndU NGZpYTN0ZlhER3gyYVV2dWhTTVJLeUVHbS91dGtmQzRHNDB1TGNSeUUvUXNaWQpqUU4vS0lS TFFyZkpJbDlLb1JBTUV4anVEdVZnblVsL0NDcUpnMkVPc1FMeDFQbDFsWHYwNDh6TEFZTVRH aGpZWUpXbGNBQnJCWk5HCjNEUnRRWno3OFQxNFhwREJ0cTE3WURHYzdCc2ZOdzc0UkVRdGRj eVBHYXltNWh5c0tnd3dNcGFkaFpJWE1oNlBIeDUxc0Y0TVJBeGoKZzdXRWdTT0ttNjhwakNS eHB2dFV0YklMbGFtL0JyM3kyMWRhbzY3MjA0ck9kU2phejNjT1RpT2VVRlBFVE9yYnh3bWRS WVVFeHFyTAppMnMySjNGMmFTeGVTcEZET2Z6L29UN1hKMXNXbmcyd053SW5KdDJQWHIzdEg1 Qm50RWx0enpWL1RQcVpMbFdsMHcxTWllcGZ5Njh6CjJvM1FYdE5vL1d4UkVMRTNNZDRKcm9O QjRsdm51Vk11Ung1SGI1SlI4enFtWnB1UVJJa2V5Y2h6aWFEN1RRd0JzRnpZR3FkQlBBSHMK eExKNE1Sd2ZpYitJU3dIU1YrRzJtSVhOYlZDMFQ0b1dmWFFvZ0VNQlB2MG9wVVR5YVREaDZj MVVlTmg4b3JMWkpZM2RCbkhHc054dAo0Tmh4bE9ZaHRJeUlUWjJBNGNrZUk1VDU5YUl0S3hu NER5VUN3VjdmRSt2QVNjb2lWS2tsRW1NeE9odHR4WTZ1UHROR25QajMvUERxCm53Z3Z0WmUz WEpCcnk1cHNPVTVGT1F5SlFjZXprVk9kdWg0aktGVG1YYTA4VzFESEJ0SFRQdGNSc1Q3cDIw SXpwZWtVTCtSYzE3ZEQKVExVNEdValk4YzFvOW1nMWtJam9YMW13cEk3enNkRHZVTGNsRmV0 VFUyMHdIRFQ4R2hXT0VpUVNnTVN4c3RzNWZHN3JoMko5ck0vcApnQUVROE9HMFR6ZnJleG9v NmlmekkvR25uU0pRc1FYdzdBb20xT1pCUzdITVMyUmtNVFdzS0JHZ3dvU2lRcFFwWWxJbEJs SWxvVXNTCndTMEtVYi9FUlZaRlloc1FyZWhHSGROQTFaZDRlMUthTk85L3BadjhTbmlZK3pw bUlqb2xGbExBWllDeHFXZERERGd0ZHJBck1OU28KeWw5YlFIRkRPQ2lNUkdBTk1UOTlvSlZa WEVJbWdmdzljamlhMStIRVJsbDhUZXA3Y2M1a1J0V2FLUW5RbklTdEluS1ZGM05JT2pBUQpr WWlqb3lsbGFVbVlFVFNEalRRNW9RY004YWFweHZpSXZJMU9YS2M2anc1RzE1eEJJZS96Vzhh TEpVOEFHRDZINGtzalF4WE0zdjZsCmptZFR6L1hRQy95L2lZb2lEaDBvZGV1M1BRNlZ6bGow emNTS1JUSm1UVlJzUEZwMWtPdnI3MXVqUExIa296ZVRzMDdjYUd5NGNtTEkKazdxSWY4UU5E RDFoNlpoZll4aWdoNzVqYVRDUHVWditLYXd4ODRockpMbXdvcXhUMzlaeGRBcDBBY1BBQ2ZT NWhzSUxpa2loK3pOSgpVNkxHUW1wNnI5dmxDeUthdzlLY3RNbytuNUtXbnJQMmR4WjI3dk9G anB2MEJvaEt4b2pRQmpndTJ5ZXlQaWdISWtGUkVvRHNCNDJaCkN5bDdScFlWOUNxdUpaSnVw QmVSRVVqVHZTOUlzWDA2YklsOE9WSlZpZGxRWVVFVlJRb05nekd6SnBkNENSUzIrQmFsOW1J VlNoRngKM05venFNQ1h1MDdhaTBhd29YTFoycFVKWEJDNzJHb3JMTldDRmg0akl4UjFTZHR2 MTkyS0pmZjV6bDEwQ216RXJsU0xMczYyWEU3UApsVm8wTEFjUVVScGJsVmg2NG50UnFHZmho RGF4RzUxR2UyMUhlRFpuaXdySERTSnVtdFU0b2dQekI2SlJKQWdST1BDM0ljNVBwZms1CnM4 NmIrano1dExWMkhTUXNLUm45ZUFoSk90U0poTW5rTXI1U3RydmlaRHg1Zkd1OXU4S2ViS3Bt MCtTdGJzczdSeW5YanlINzlVNzAKTzlZR1pPNmpHRjhUVk15aGM5cGthTzNvNDFoOVNCMXE5 S1IySmd4SG9KQmtraVVrSGtTNllrUU1oUTJHSEM0enR3S3AybjhqcVhIRAppWWNTeVhtNHg1 eFJUUFYrRkJjTmZldzdyd1c2UVJjdVRlbEJpV0FFK1RBVDJVM2phME4yaVdYbXlJZS9hRmYx S01GMm5Iam03MWNZCmpTZk1ST2xoU3FHbVg2SVkrWUZLVXJPK3pXTHg1a0lMdmFkR3FkT0Rx bldsb2hrNlVlZ2lHS0FTWTlMaFFHSEhHdFp2bkxyUzVVVE0KRDFpZ2lFOXdoeWNxNFN2c3hi TlBGbnFFS2hEbFNWK3FzeFBaS2w4RFdDUU5uTStNN29HSFlRT3hyVEg0MTUxNlJNUjVNcE5l eEx1RApGVHVrdG16VlNJYjVyWFZXNXpSZ0lNdGRQT08xeGgzQ0V3UmtHeDFqc1hjTWpxZElu M3IxOGtlZFkvdmJZdTcwMHZFSnpWaFdzN3V0CnBCMkpheWl1OEY4eU9EcU5WZnZVV3pjbkpv ZGpHRkppaWQwdllzQ3lKOVpCOHUyUHdSbGtQOVF2bXA1enkyU0xyN3p4emlHNEVtZGEKRlVD ajlHaFZ3YWhaRUwvYlVoSkpMWXVVNWx1SXVPWkJMQWMrK0FqWTY4VENJQ3hJcDdXd1dlcVZt UWg0Q1ZaL2lta2RxRENvSG0vSgpzdFhZeHhDVGExd203NlNZbGdFYUhpbmI1NzE0ODlrTHpJ VVBDNjUxVFNjcnR0azJjc3RjYzRBM0Irb0xZcTB0S29GMkI2NXREbVNQCld3TE5WN0JFRjZr cENoRVRvcUp6dU5yTkRZNXFRS1pWRTBIVFk0YVZ5WUJEVnppT1dCM3cza3M4cThidzhrdHJH T21nZ1U1SXdvdmgKa0JDVi8xN3lTRjhqUHFMRmgxeDhYc0ljL0VVOUxRdm5vWWhFVkorY3BF dGpDTmJHcXBGaWhNZzdxR1BKMi9wNVN3dzZqeEcybC9pZwpTWVpFU3JzR2tjU1NpbHRwTW52 T0Q4SUtuMzFGY3JxaE1HeGI3TmxZU1RaUzZDSVh5VzVLdWdsQlN4Z3NaSzRKVEg0dndGZ1g3 dnZsCk1GTWRjbUJpMmF3ZURVdm9Nd3ZhUXRzc010UHladHlRa2NmWEsvdU9tR0VjQ25JdU5O cWd1M2VPSTYxYkllUVU1L3RRSUhtbW1GQ2kKaDh5Qjloa0lmS0N5S0FLS0lNUVZVaU1JaDl5 RWR6Y0N3MVZBRGFDRTdTR1FLQUh2WWF3MWo2d1N2ZDkzVWpvYlpSTkFrTTBOQjR5QgoxdU5C S3dYaEdrakJiUkVpRnFVK09zQ05jQ3kwRDJ0dkU1ZVJ2U2FzQWlPbkVwa2NOdDVhVDNCREhQ SWF6WThNZHVzM0RYeVYvc0RvClJzR29OSDFJcTZBNG1kUUl2UGNPbGpKRWdTQjRIcFNCUjA3 azJ1dldtc0U5UWVVNzc1NFB2VVpSZnRORnJZZUZxR0VLRG9SQ3lDV0gKZ1QyZzl3ZUI5N2c0 NUNqU2diNUVvQVFId3ptQXZaRStsQ1JTQkVRSXA1b2E2L25PU2lrUkRZMEdId2FUNEJPUjlI RjdtS29TdEVVcQozSmo3WVF4Q2NUZUZ6aU1OUkVFRldJdGtrQXd5R2RUU2dva1NtdGRTbkFL OWs3cDZLbllIbVY4U2lHWW1wOTJwVDBoMzE2dXk4THdvCi93aXRBaHZpaFJBTk5CclMvYjdy bzlMQkpnejRJVjhGUkVsSEFQY3I5Qkg5d0pHcTc5OXpXb2pZcVBFWjJyUFNZdFF3WlZwdk1Z eEUKOGRUa2syMko5akE3SUttb0pZSUpMSUpHQVRXSktSM3M2RHRRRVorVUZBOHlHK3lEcGdx MFRtS0MveWlTQ2tpc2lraEVJWUd2Z2FJcwpnMnNHWTladmNBVFZRMk5QUlVac25jbUpoblVt SUQ0Sll3eVVzQXhKZmNFN3NZQ3g2WHloNFp3ZjUrTkt3NlRnbmFmT1NCZUljTEZnCkliYWpl dmI2N2c0alNkWDcrN09STitHN05KVW5PY1RPcEdoSW1RdGZFbnV1UlE1MTc0a3cyVmV6ek0y MlhWS09oNW5DOW1LS25SK2sKVVRoR0VVdE8ybEFwRHZkZmtFOUFtSWx6anJDUllSa1FRVWta QkZpc2hGSU1CR0I0ZUEvZkQrc1l4R3g4NFBTaWRvOE1lTnZKNGYxdgoxYlpKSVJKRWlRakFn Ull5U0hCY1U1ZGhncW1xZzZjbkIvYzJwSUVJRElIOVNLa0lBbERncDFsVUE4UVdLQ1hDNnNY N1dlOXpheTdjCkdTTlJCNnhpeXlzRkVYYWlPelRDSjZDSHloYnAyT0xWQW5TdTBIekhROHJC Q2VoWjVrZUdHNzhxVUtjNXlCSys1ZTE2bGRiNGpRNysKZmgzVmFSSkwveG9ER0NYK3RvNGNR Zm14TFd5cGNTMEJKUnRzZFFQc0ZDdG52UnNqY281ZlFHcFhlSFdJYWhnU0RJYTRocGFWNjVa cwp5VnkxQzIrYkdoaVNvWUdTWkk0a2trMXlCRFZSWE5GTGlWQVNYSDFHUjEwMTRCQnhNY3Ny a05NTndVaGpQYmtQUWNOelNyQU1XcUlvCmlDeEtxVVFnYmxoU1ErM3NGNFdSajdCS2ZYNk5w Z0psSkFySUE2N3ZkRStaNi9CM2h4OE5GTnRTd2h1VGRFVkk2REdLazJkeG1abGkKVnF3eFp5 Q2x5Nkdxa01jUUsrZFBvdW1tV0dnNHhtWXFPbWhjbVNvanBja1NFRENBOXdpQURtREp1b2hx cEx3eEswTDVkazl6YXpSQgpPUW1UY3NUUVgwSzNkTmhsMU1CTFZDYnhrN2l4eHlNVG53NmFh YVY5R3ZFZWJDVUdSVTRzMVRDdGJTRWxhMEdrYVpscjJGRnRLaWZhCjRxMGMzRmJpZEFUYS9u bkJoQVpGRWl3Q0M2RDhKWnFUQVZXbEhuSUQyaVQ1UnFzSGNla0N3NmxPOUJOY1E1ejZlam5M a2hCNnlLR2UKQndpYlk2VXZqVGFKdUVyQk9JSmJnTUpad1EwQ0hxeENzT0lJM2NodklTa284 b2NVTWFkSmFhYmJ1NC9kaE9ScnZ5eGhuSlcwS0tNagpGTTFqbkZGeFRIZUpaN2JKcHJrU3Qx d0VzVXlsaU9XR01CelM0U2d6T3R6RE1MWk1tRFZ3SXNjTnJFTFVCbzlES2t3eElEQ0ZsQ2tO CkNPeExBSW1JTmxDSUVWTFNrWU9hek14QkRkRUtNell4bDVtR1F4Z2lGd05ZR0dGWU9MV3NK Y1V3b2pJbEpBc3dnek5reHRTZ1RTNGsKd3F4TUtkSlJLZzJjVU5CejA0NERnS1pDYUlDQlJq d0hTR2hxazFDWjZRSy96bDNsUjRacTZHak5DV1dPb1BYUGhudUtnYW9nZUg3YQoxUFVhRTI2 MFU2Z1N2dlYycWFvRytCRWVZcUlGNjY0VnRRWmJzQUtxNnFVUU1TT0JkaElVaEVBa0VUaXpF L2dVUTNLR3BwWk5CbGZQCk5WbUZETi9IVVpvZWp1UGhTbEJna1NCQ0ordjMwVGJBb2dIc1pN T05jYTV3ekxEUktsUURSTStJNmduT0NuaDMrSnlLbEVvbTd4OTAKMEJBdjdWd2NnVTEvd0NE QzZlY05uak5YcW02bEFzb3JNNmJnejIzYkthQ3NGSUtNVWg5bmUrYll0UWgySUdvZVFhcHpZ Q01qbXlTdwpna0pDTzdtS29XZ08rWVFBYS9PdUpnZklKQ3dwb2JPakVMU1FHQjM3bWJ3blNU RTU1dnBXNVUwRndiS0x6cWtxeitOVUZGeUlMdW1VCmdoREJnM0tMcEI5Q1JDVmJXMGovdXRz K3dKZXhMcHNkK0laUmgxWkpBdVRvYnNsdEpzRUsxSERyOHA5dDFYY0hOdlFOWVRyam9CUjYK SHBoNmtCU2VUV29mRUE2ZVhXWThuWTJKQitpRS9TeENFSFliRTN4a09hVXk2RGZoS0VXTFRC SUdLbTk4TFIyTGJGUGFDRDVYSmNDVApQM09wZ1JwNXM3OEpLR3dsV1NSSlVDSVRYNFBzc0JW YVBPRGNrSURzNVl4R0F5WHZ3SmRTRGhDZWxzNVJDbDNJT2Jta1dCRzN2RW9nClJFSUQrOGxW d05lWjdCOG10UnVwYzdldldqeFcyZ3Z2bFFIcFhVME5BOHI3UDJhZFpnM1MxQ0VmNmRVWkZq OTc5d0ozeDFLNlRUUHUKdk9MMkRRU2l4cDZwcXc2NERnbUdUbEVEeUlZVU5YNVBFVE01czRG Q2lHQnFuc1Zxbm44VDRFVTJQUUQ5OG5idU1qODV2M0R6ZEdDTQo2R29Ob1ZGWWhXc3RwYlpN dFdNRmtNRFcwc0ZGS1Z4aFF3d1VXTXFVWlBJbXRrL3M2UW9Ub0NHdTJLU0J3b3VLYWRpbmFj eFBSVURCCnpzVHFOcUZIVEdGS0FYYW42U21CREZFV3VURXc0OHNaa0RKNXVGbGg5ajdub09w OW9mTGd0ZzBtN2tFaUJxbDltQjhZZW8yNmJMU0oKMGZyNEFXcm53SUFCUk12cG9sdEp0MXBM U0IyaVppVVVlUmpvY2xBWVpJZ29qaDByUTBvQWU2TVJ6RENzcEVPVXBodGZBODZsdTkyYQpp cHhWbU9PNnU3dVdncmM2cGtCdGowSFFnMENqR1h1Z3FJYVNYZGFlclVrVFNDZzh4RnRqREF5 ak9HUVJ4akNrUllyRUdJS1REMUJqCkFSd1dsL0FRNmdQTU1ZazZEa2JTZW5naHZ1SU01Rkph SkNxeENTaUdZR2RlbnV5ZXdFVEdpOFNGQXlmRnhEcERBSXlMcjJra012VlkKV2htYjN0UThR ZWVrSFVKZ2RhckthNWdzb1FrRk5SY0pCd1ZUamp0RENZZDJkM2wyOFRDSWtGd1dzOXdSSEdl RVJnWWx5Y0tXc29adwpRQ0N0VGgyRjU0YUJVeEl5SjBFMnFhUjBlS3FnY0lnaUxRSWlCd0Nl TVVCY3RQdWh4c1FqeTMweHRMNDFtQUlFY2VENU1pZ1dBUllTClZzZ1NrRlRzNGNKdE5VelJ3 YzRxZFU0ZEVPa3hqWlhqZDV4aDVHaEJPUmlxcGhDOXdNUm9sZFVvRnM3U0FKMVd2UE5JbENo ckFpSWkKTDZKYWlpRmNDbjN1NkdHSTBvL1ZCM3VOVE05b0tDYTZ3ZXJXQ3VYNTVLN0gyUldZ b3h4Y1BNOVNFVUdQUDZpQzQzdzcxR0tzRlZRVQpVRDJRRG5rMVA5dGI5UE1PekdZa09ubmt4 RGN5aStjQjRJV01JQ1B1MDYzb2dHNGIrZUI2VUZGaWdvb0tMRkhVcHg0eVQ1NUdidWdpCmZY QTRrMWpGZE1DQUdxUGowWEVtMkY2bDVlQmVGWWk2MEFvSk1VdzY2WFZHRU1jRHZWVTZSUXJ6 VlFUODJDWXB5Z2FZODdpVUgwVE8KWGs5d1B3Sy94WGRlL2RnK045TVJ2aTQ0Q2tvUG1iVndi OTFjUTloUHVrVmtFUElxNWU0aDlCb1FKbVl0YW5NSkdBR2ZjYTBLbHB2YgpNc1k0QTFvMVZi UWlteEJMdGQ3bHdCN2IzdGw2V0l1SHZBaDFKQkllSWxLNHJjNG8wYUZhekVXdWRZVGlKalA3 Q2dpb0F3emh4RGJWCjg0R3pmVDBXWnExMXRSWEJIRDBUb1FTa0JOUkNBV2lYb0xJRE1RR1FH OXVES0VyQWtNUHJJYUd4VlVkSURISUxLdXVoelJFV2FqbEcKUHJOQ0hOQVZTZ3F2YUdVeXd3 dkpiWkdOSU5IZ0tnaUZVZTRpYmNnUVFKZ3FPUllnNXhLUUlwSTNGVHlRVUQ5c1ZkdExocDNE bUhvYQpsNTFwTkMzeXFqRVJTSXZRdk1sbWVJSVRYcXp0dDJXeDdNSnNtQTVnK2NTaUtncnBp emJKZ3hoREJpMFJzWVhWdFpsOHhqT3U3RG9ECm5JSTRwV0NNaUNpQXNBTDcrWE16RDYrOGh5 M2xrZ2FsVU1sSU1FaEJPUnpPZEl2RFJrQ0dEUXJHbFFpeG90QjBYRExMY3ZLV2xkSkMKRFpx RWl5S0hjQmpaT2pyVVRZajNCVTI0WnJqMUxwY0dJeUlRaENLU01PUWo1V0tGQlR4QWszeFBh YkV4UGxIa1ZBNENjRHdxNnJlWgowajVLbEpRL3dlOGZ4Z2EvY2pTcVJrRzRHZ0hrL1Y0V0Vw SUR4UHEvVG1kQzFodE5iOFFPNW1Ja1Fsb1JKUXRGaXFINlVXNlJJUTdIClNoVXVRRW81Z2x2 bk5wZkFlZGdEWHNoSFNtMm5mOTA5eTBDaHFyWUdraUdmUm9TeG45ZDJ4N1Raa3VhdVE3RG5q K2I5S0tXVHl3eGoKU2hTbmwwaVZISUNCOEFCNElVaGJnN01CN2xDS1Jza1ZLU05ONTExZ0Vw bjFrTGcxRldVUStUdFE5a0NrRUo3UTNxakU2Vm9GRXdoNApFZFlVZlVSSDB5VEZpdmxnY0g0 TXpDb0Q3UGxLdjJQT2lseDZ3bGg0a0VPZHNpbkZOS2RXRzQxbVdmUmdKNGpFUU1BVDJCVDk0 a1B5CkxEUldIZEp4Mm1EZDdMMS9MaGNSVDVYcHRNbEtadVV3VERNSXdjRW1BcUVRS1FoeDNE MEJCUEYwMTFJZWJROFRXY2pJaE1zT3pJb3AKYWxQYmhhb2xDbTVYclYvRXMyYkJIc0x2YzF1 U1QzSjFaUEozY2RWMEI0Z1ZPV3ZpK1ZmR3JndDBkb2FYakJEeUJpZGVwL0dmMjNuaApJVjJy T0luRlh2bXhmVUgrbjRILzR1NUlwd29TQWo2Mjh1QT0K --------------070806050503030003040505--