From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 2EkgCe8Rjl9KSQAAWB0awg (envelope-from ) for ; Mon, 19 Oct 2020 18:23:43 -0400 Received: by simark.ca (Postfix, from userid 112) id 21FA81EFBD; Mon, 19 Oct 2020 18:23:43 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED, MAILING_LIST_MULTI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 2C1B01EFB9 for ; Mon, 19 Oct 2020 18:23:42 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A18EA3850408; Mon, 19 Oct 2020 22:23:41 +0000 (GMT) Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-eopbgr700071.outbound.protection.outlook.com [40.107.70.71]) by sourceware.org (Postfix) with ESMTPS id 711753850408 for ; Mon, 19 Oct 2020 22:23:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 711753850408 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=netapp.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Caleb.Battig@netapp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZsyXKRwKebgfDhjLvC+ET53cSoe/UN4Tu4V5kwGVBjqRuG1+Alxc650uH9lYHN0hlgbY1wYL72pJhVHAE5pyZVRWAqflhUdnkYNyuqqwOaTcQi1FjxguNbgffuYIm4bTG5TcsdM+NRp1/khVU0Ulj+ne53e2ygDbvlqqR+RoMIzAPa9xO4L5nCm2WT7m1vcDykiWxgPKGBbL17/u06UlPvOdxYxOEmd/eIt7/YbyBP1JPQ2g4wTGAtLBTzoY+U4/p8axdqK3CP9bH7z6JY/zZCB/856NyPT37tWDc21VgrbmA40qoCnXZjqtHIXUTtoVBgmmRo/LkhUPmWc9PDA1jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AIws3k36i5rv0dlAs7jciWQVFBDviyBzICGDgZp3j+c=; b=CUqnV0b0UDcTrXYWukEwTeATVPugP1XvvLB17vIzO07Ox5+DlKXN3XH2H/gIbZSka3SOtZUpuuDicby1NkzAIe470HPInwNTIyzMJViniWLdz3t0TZCcSIvtXdkslSHUa8T24zcyDKn4ht4FPEO80hw4s+DbE/RrCPLuqOW7+wRf7X5PIoiWtVxWoNZ+wozeSukgPLihHXFEkxOoREDh+a4M/DHiISl0d12TTkc5XKkrVxn5PpbeymnLz0DZ0bV/v15W9Vw5sCH8lCOXMExgqhELYhj0wJ5e+3z90LxS88agS6pBw7DzC/Dw4SwE2OJvFOCUHSiH/L2iTnmfx9PlHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=netapp.com; dmarc=pass action=none header.from=netapp.com; dkim=pass header.d=netapp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netapp.onmicrosoft.com; s=selector1-netapp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AIws3k36i5rv0dlAs7jciWQVFBDviyBzICGDgZp3j+c=; b=dzjrlVgozlvj1WHl29DMIVpV6TNymkih8DHuMtzbnh9gtNONZDLuFcU0XkblTTrLFwF9x5/jvGWQZy7A5H+0/gOWlLM2cJ9TVC+b3YsluYkFkUGlbESgTbL93/YmTGJrNvV0rAG75527FFzuktKv/PQT/BGc4DywCDWdJUDtNuM= Received: from BL0PR06MB4418.namprd06.prod.outlook.com (2603:10b6:208:27::11) by BL0PR06MB4226.namprd06.prod.outlook.com (2603:10b6:208:40::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.28; Mon, 19 Oct 2020 22:23:34 +0000 Received: from BL0PR06MB4418.namprd06.prod.outlook.com ([fe80::ac89:98f:e0eb:8936]) by BL0PR06MB4418.namprd06.prod.outlook.com ([fe80::ac89:98f:e0eb:8936%3]) with mapi id 15.20.3477.028; Mon, 19 Oct 2020 22:23:33 +0000 From: "Battig, Caleb" To: Simon Marchi , "gdb-patches@sourceware.org" Subject: Re: [PING][PING] Added x86_64 stub for debugging embedded systems running on Intel x86_64 processor architecture. Thread-Topic: [PING][PING] Added x86_64 stub for debugging embedded systems running on Intel x86_64 processor architecture. Thread-Index: AQHWmAybifTA+GUXJkar7BijWkKKJ6mUUFOmgArEsdqAAANQAIAAAmecgAAAR+GAABKOAIAAbowf Date: Mon, 19 Oct 2020 22:23:33 +0000 Message-ID: References: <84cb0009-cbd5-975a-cdaf-ac8cd77686aa@simark.ca> , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: simark.ca; dkim=none (message not signed) header.d=none;simark.ca; dmarc=none action=none header.from=netapp.com; x-originating-ip: [216.240.24.6] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c8dbf64f-a3b4-49aa-e9ba-08d8747d9dc3 x-ms-traffictypediagnostic: BL0PR06MB4226: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Vi0+Pg7CFtjRKvFK05Lxjg/CAnC0d3LtttFGwYh6yC9OroBHHp1y7PaU07MAU9D7tcnVh6lsLi7HCPJDz768e+e2tvqkP7UHEBuDp+G1u3pH1oIkGJqKsAs1J0FTHQQryB+3QGpz2MorjS0NRtzDn4/GI5VQbR5KcFrME4rcPvIcZzxgWLKr2HKJI5bBoNFiHxnESROSwjOqcQLLA4rmnQxm+K0qhW9tyEis9fvsR5s01cwdTqIvogXA54ZwsjW80caEz6ZGgaZJvc3O2q8cBFkpTqC5gU2cpCaxCmKNS1rDtMj9u6k0JMjnU9rMaHNLhWTuHYJGmC8oI4/mChSi3KKAEsUOWEorkbbiemtNnEfh39wqAp8M4YLP7nEeKgsPzExD/DMUct5g9lD66sd20w== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR06MB4418.namprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(39860400002)(346002)(396003)(376002)(136003)(54906003)(4326008)(316002)(110136005)(99936003)(19627405001)(55016002)(9686003)(107886003)(8936002)(4001150100001)(8676002)(2906002)(33656002)(186003)(5660300002)(478600001)(966005)(86362001)(71200400001)(83380400001)(52536014)(21615005)(166002)(53546011)(6506007)(76116006)(66946007)(66556008)(66446008)(64756008)(26005)(91956017)(7696005)(66576008)(66476007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: dsFUqww4OUXALFZZqvRNKQo0jnuBtm3r0M9HsFjzV6pTe3Gz59SEHufdnUFbtb2nd8IlwNIihs4AHxyHJsWphjblWlt9DuqxZhZO9tytmwqa3CS2vSPBs+BAs1dVx99GPp9bqPx0IOjNUDgmUVoUIVSpyPgS2YkNXxF53to7X6MHtUtmoYrmgOvNyedL9Pjlcyu+1DEZVa7fkuMHOYPsuZ32xum+2s8vHarLOHtyVtQvi4NZrkUrnYJyQ2FKmwHE+1a38LZJoVX50RHPAS1tV1A3uhfKPU26dWz+WYY1H0VXFq3DTDunLWbURGKZLiVLyB9XIBRLhH0q0otkj+kV+eUr2HscKue15q7t0w5GslXQJ4NcjcBkPjt9DgzRF1TSfts9RR/S8bwU11ni8mD2zVBboF8+2Cf8xbDhwMsh31MfdPnpdI7GezOL81JKhCf977cx3GnbH/Cn2mJQSGRT2HYGZ9t8x9HsXNm31E4JcDSMXEPqARm0JSvBxf7BfoIKxSyGdZ3h/xKrPzikhREWEcu7UeT+iKtefuFqzKXYzkHKIasO35fnWCEar5cxJa0nc4bwX5RSgsMUHNgdpvMR/48UHBUzGR2IGlAA7BLD/GeXTtoKqYY8gbQMIpYouF3vfE4pd4G4zy7dpuoTl6WNBw== Content-Type: multipart/mixed; boundary="_006_BL0PR06MB441875F02C5734A25BCD6F48E11E0BL0PR06MB4418namp_" MIME-Version: 1.0 X-OriginatorOrg: netapp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL0PR06MB4418.namprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c8dbf64f-a3b4-49aa-e9ba-08d8747d9dc3 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Oct 2020 22:23:33.8691 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4b0911a0-929b-4715-944b-c03745165b3a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: vZwKKp7hiKw2Xf0QFC1ShOBVFuVQuIx5oXvUhClztDR7rpdDMkje/M7cu1WHvNOiDOB0d9kfklCV3aKfPuqe+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR06MB4226 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Lovett, Stuart" , "Peikes, Wendy" Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" --_006_BL0PR06MB441875F02C5734A25BCD6F48E11E0BL0PR06MB4418namp_ Content-Type: multipart/related; boundary="_005_BL0PR06MB441875F02C5734A25BCD6F48E11E0BL0PR06MB4418namp_"; type="multipart/alternative" --_005_BL0PR06MB441875F02C5734A25BCD6F48E11E0BL0PR06MB4418namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Simon, Thanks so much for looking into this. This is a significant addition to GDB= that has the potential to help a lot of developers. I've made some formatting changes. See the attached patch. I'm not sure wha= t you meant by your comment on whitespace and indentation, but I made all t= he other changes. Thanks, Caleb Battig Platform Software Engineer NetApp 724.741.5226 Direct Phone Caleb.Battig@netapp.com netapp.com [cid:5a931cc2-66e3-499f-8b2b-29088799aaeb] ________________________________ From: Simon Marchi Sent: Monday, October 19, 2020 9:45 AM To: Battig, Caleb ; gdb-patches@sourceware.org Cc: Lovett, Stuart ; Peikes, Wendy Subject: Re: [PING][PING] Added x86_64 stub for debugging embedded systems = running on Intel x86_64 processor architecture. NetApp Security WARNING: This is an external email. Do not click links or o= pen attachments unless you recognize the sender and know the content is saf= e. On 2020-10-19 10:43 a.m., Battig, Caleb wrote: > Simon, > > Thanks for getting back to me! I resent the original message below. Pleas= e let me know if it still hasn't gone through. > > The use case of the new x86_64 stub is the same as the old x86 stub, exce= pt it works with newer 64-bit processors. See - > https://sourceware.org/gdb/onlinedocs/gdb/Remote-Stub.html (Notice that t= here is no 64-bit stub in the list of stubs provided by GDB.) > https://sourceware.org/gdb/onlinedocs/gdb/Debug-Session.html#Debug-Sessio= n > > Thanks and let me know if you have any further questions! Thanks. I've reached to other maintainers to know what our policy is today with these files, regarding licensing. The existing stubs have been contributed a loooong time ago, so it might have changed. I'll let you know. In the mean time, could you do your best to make the code adhere to our formatting conventions? What I spotted mostly: - Whitespaces: Indentation of 2 columns. Whole groups of 8 columns use a tab, and then spaces are used for the remainder. - "static" and the return type on their own line: static void foo (int bar) { ... } - Space before parenthesis in prototypes and calls. Basically, just look at other files, such as gdb/infrun.c, that will give you a good idea. Thanks, Simon --_005_BL0PR06MB441875F02C5734A25BCD6F48E11E0BL0PR06MB4418namp_ Content-Type: image/png; name="Outlook-waj1qwb0.png" Content-Description: Outlook-waj1qwb0.png Content-Disposition: inline; filename="Outlook-waj1qwb0.png"; size=56478; creation-date="Mon, 19 Oct 2020 22:23:33 GMT"; modification-date="Mon, 19 Oct 2020 22:23:33 GMT" Content-ID: <5a931cc2-66e3-499f-8b2b-29088799aaeb> Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAbgAAABYCAYAAACH+eKFAAAgAElEQVR4Aey9eYxl+XXf97n7fftS 79VeXV1VvXfPdPfsG4dDihxKpEiJEmWZkmXasqQgToIgCBAIsmP/IxgOBFtJICGWrMSSyUSyNo4o DjkckrNw9qWnZ3rv6qqufXn7/u5+b/C7r3s0kilCio2AhPsCVe++++7y+53f757zO+d8zznSH/zx n0SSJBGGIeJT/EVRNNoPI0KJO9sdCnwfUyAEVGR8iGQiWSIkQAnluM1iPgeRDJIHjI7JEfH8Doji c8R3Mc+jSMz/CCkKQFaRQolADlHCvzhfJrz1HIUoCpAjGUkO8JFQQwhlJX6+FI3aJR4QSbfuIc6L NGRJPFcmijwUtNGzcYjifkij54r3TlwXheKJoz6KfUm0JYrfUXEthEShjySrcRvEZaP++O/3V1wt 2hnJ4rogfqb4jGQFKQwIJUEXcT4oKPhSFPclkMSTZSLxzCgc9VVSCCMXWVIJkG7RXSWQQJUCQtSY XqHkxfuifWqkIL6L8QlkHxktbuOI/n9Bp1EbRmM0eqaMgkSAoPNojOIxlAMIlffpcLt94jfRfnFf RQoIotE5YjzjdkkBUUzAEOlWP8UVghZiG/G+EQ8UdBH0D5ERYx5/RqILgoZS3J54bsVt05BiWhHT RPRZbPE8u9VnSdKQQ4dAUmM6IvkxzcRYyuEtvhsKOvm3xurWPJB9FNH3+H4qoSRaEhJIMnIQgSLm qeDTo/F+f5zxUCIDxDiLWXKLj8vxWETI8fyUYxqO5v5oTo6O3z5/NOaiL7evD2TQg9GcFuMpNvHO iXdFYtQn0YbbtFMicUyP52lMj/ic0fe/LGtEA0fzO36npCgex/gBYl6K5kUyvhTEbY77KanxvIyv U6S4kYIPRJIWz2tJjlDFQwhCjhw6NBJq4vud7Q4FfkAoIF54KVTi1grmIwvGFAs5Od4XjFcwPfGC ihdMvO4qEdtba2xcfgPXFUxQIpJDDEXGdgJ0TcJ2LdzApGAquGFEy5JxAh8NC0UZPS+l6AxDj17f x/W9+LxMIslkJoEb8wuZ0A/i42Y2zyNPPE7WTMaCTZIEY5XwQ4+dvRru0GdmukxC11jb2KGxt889 D9yLohjU6/u8+PzLzC8cIJdNogQhkqrguIOY8QqBHvg+hiKNhBEqbuDjRjLlQpGZ2VlUQ48Zebfb x7ctTN0gNEIkT4uZhuDxqq6gSTKGkuBmdY93NtdIZkwcX8F3XCJCfC9AVVVSpmBoRsxwI1XG9yIm fInDGYtaok5NdnGCAMeTSTRmMKMspqaiKDKaAgk5IqVFGIIJRQFeJGN5EnOTMlcaKp6W4e4DGcJI oi9oaIWCl1NImfQ6HXYunMf3bNpymrpr0d3fI10sx4uJfrNJupDjvkc/jGZq7G9XuPz2aySzOVAN fMslowecPLSI4w7jxUIkxktstxb4iiyYv4QmRQxdh3q9jhcaKJocj2GjXSFjGCSTSVLlIqlUKj5f LHCCfgdZMpGxUTSDhC6Tnhhn9eYar3zrOVJZg7ygv6SRTyXjxYWYU27kYwZDEhp03QSapjGWNRmb XaDf76HLEr3ugEx5HLdTR5U1ihPTVKsVOs0GkT3E1zJMzyzF/Q4Dha7lkzZk0sU8YeQRDTv47evI qoFsplGzE4glR32jwnDYJ62YaIUxVF2jtrdLIpFA8oekSxMEtsvO3i5BIocdWpTHJ8WKjmazTj4h 4aGTSSbRVA0vDPDtQUzboduhYGgouhqPtRRZREjY/T5yKkGn71Gr19EMnWF/QE4zKRTyDDUJX81T 7w3jxcp4McdgOAAh0D0f17Nw/ZBedZt0BK6ioKti0SUxd+osSiihCuEmyzKnTp5E19VboyxWsyMt 7v0Dd3buUOD7kgKx2oQvtJiYSQmNY6R5xFpFKONHvpByyKGY00JgBdiNCmH3JoEqMZNLxStiyw4Z EKAGEEQOdhRRqwWsrq2jpw/RHjQZMyMcV0GJOqB0eWE5oOt6GKqEaSQwM0Xs8fFYkEae0CYV/DAg Vx5De/wR1HSGQd9hY3WZohlw5oTO1XNbpEqTzM1MYg36cRsPHrmHfGGSsL9Pau4Qn/xUiWZrj/J0 CVUxUWUZFAMCJ17FSopKEHhEQUg4Wu7HQmxycppCoYCiqoil6+72Hi9+59usrq9SG67hbndI+Sn2 3DytCYNCLstYzqQahWzYXcalcZp9F8PIYSYTBJGPF3hI7R5aFBGqQoM1Yn4xCCIerKn8nYUhjeK7 bIQtdjoBU9V/iBmpBK4Tn5fUZPKm0C4cMpJKQnEZBhGdQOLeCZN2skx38ihGyaCUMWOh3WhYOL5H eTzPoaDDxCvP4Fk2T3sD3q5UadaaLJ4ewxn0yWfHOPXQY5x65JFYAy4uDjl3Y5X9WhszJdHpDwib u5QmpxmfmiabyRP6Pq7rslepkMlmYoFVqzU4feYk7XqVt248izo1xVyuSLmQJ2k6pDo3sLV5lo4/ yM7eTVR5gOx7dK0BOcVlbKxAEHpsrq6QrNfYfu8cKy9+jaPTJd4LDFxhNfN88vksx48dwrX6rK1u oSc0zjz0EI98+CPI1gBtLE+jGnDujcuYUch4VmLu5AK97Q2Kk0Xq771O58J55u75EChJJk0Nw9nG zE9TU1WK4wVKxSyu5TJcXiZlNnBDl8iRGLZWEEsXz5+jcmOVI4dmyCRT+MMujdoOmblJDhxYwPX6 RJKEnEujpjU8EszPH8EnpFMu4rVqpBJp1ISCqSs4Q4swoaOqOt22Q9TbYzI/jmo1Scg+QX4RZwys fofNWoXVnS0iRWWwXyUzbnLw2I+CWebiq8/x9pvvYI7PcOInP09KTqJoQnODVCIZz8mXntnh2uvf JJcv0ncDGn2dnzl5mihShD1BJhQrwr+iuf3V79+XvO1Oo/6Lp4BlWVysOThyhKkEJHUDYQDJajqy MjI7haFHfWgjS3o8z+uuhzM9j/vD/5jW0KJ77huEtR1CRcfzPDRJXCjjRTBwoesEpBMuHctBDXQU WWW2VCYZOBD1UKWQlGEwXi4zUy4TkMALbFw5wHF9hq7FsBbx7vIOaluhurnG81/8N8h+lx++O2LP XuSeT30eoXnsVGq0G01+50tf5sBEAdWuUpg4RBAE3PPACSZzc5i6Tr/bg9AhkU7jRh6S52L5Dp4w JwozkOijFeAWS6jqyJQkJkthrMgjjz6KLwfsPPcM9xlpetmHeMFv0PTaBFs1on2VVNqkXE6h+g20 UGbx8MdQMxma/S5SYoz9i19D7l9D93MEujDRZZB8hed9h/mNCR5OHcfVLtGOuizkFEpRSFtJY4U6 hD5W6KFGSVxZRtYjxmS4vyg0AJWT/h7r712g7kfIhQyS5xH6FilVo+V41CyHoiqTKBqEmx7JfB7H 8WPNemxyhsc/9jEmpssEQwdNHWnbT37upzj3+tvsrdwgk8+h6WBoJo1Ki1KhyIm77mZvdx9D08kV 8rGws/s9DkyMk0+YjGdM7povMXRAU/p89N4ztLoT7PUDZM3k+tqA46dmSKgm6+eusPrmc/Q7Hfq9 Ftt1C8fuYqCxOJXGDn1OH7uLC1dvsFOt8uOf+AiXr1yj3h5wYHISM5Fi6uBh8rlxVm68QtoJSWeS PPboSVrNLmpqnE6nReHQafRsgZMPf4hjZx9CL42jyQqDjk13o0MurZP1G/i9CH+shIqNPnkEY+px tq6t09jZpVrbJ/IsZmcNCoUcUTZFqCbpWW0k2WOsOBFbRJKFLCkpQDMT1BwVU5VpVLfI5/ME9e1Y U/UHDSLfZOzALKZhsLm6TxjqjJXK7FeuM6g7yMkEhqmBGZAhT2JQpW0EJJQkshbg6CYH5g4ShApf /Q9f4vDiAfKFDGY+i1isiQWq51nxQsu2fc6/9y61Tov09GFm56Z59b1VXr465HOSMFP7qEJTE+r4 yMo7mgz/xXPNOwT4gaFAp9VFOBnyZjrW0rwgoJBIEkkRvjBRqCMfkpjigSzHprG8pLKXniCZKxIM ulx84etoromiagx9BV3WYz+cH4LrBYTpaTxh0kllsRUFWTJoRCodaZpUuYkaSiR1BSVdpINGv7GN 6wg3noquhRi6SVHv0nnva/iHP06nb9Hyba7XHZ592ub+Q30mqruMzxeRBzadlQ2EjF1Z22Z3a4Wj RyMqOxucuPcoCU2l3evztW9/m9l0ksee/CROr0+/O0AWHiBhYgvB91wGnTbJYofp6clYe4uISCQM pmfnOLS4SHSpxDH1Pn7XOIDvDMkLjdBykFThoXJQ5YibmTPsp4s8vx2B3oeeB+aAkjfHGW+ZSLcg 8PAiidBN0fUsvmxluLs1xclimw2WKeoSB6tNbMlhb+lsrNFKUYQeqoyZPtkwiM1KSxMq+aRCkHIp 2RJS2iAU+sVej1B3UH2bas2iOwjANOjXuthOElcJCaKAVDLD2YcfwpNhf79OcrIcj3/LcmhUG0zO zdHaq7C3s4tT3+Itp00yWURT4eyZ07i2xeTkOJbl4FjDmHkb+sjvNbSEsOowv3CYsHGD+l6dscV7 sJUdzr3zPO1uj8npxzD9IUeWDuJVj1Lb34/N4dlcic1aK/awTp+8ByPwKZZn+UhxkjCKmD5ymqxp oAcuQ12lul2PFynNyi5et0fTsumHAflMGinwaOw1sXIp1PQUb7/6FU4/+AjGVJ7aylVIFsiPFfGc Ah1XmOY1+vU9yvMLRKkcipES3mLyKZ8qDnMHF6hu3aTbrKEnJHw5yd5+nfZ+nQNzi4xPFRj0O1hD jd3KHpqepNV1sHr12Hw5XbqLgd/EkdLIWhJFlUilsnTbrdjPie/SaffYVwrIjTq6LZMcP05nr006 FcJQomUpYOZIC83Q8fHVApXdOpeWlykUy6RTY3S7Dr1Bn0wqTT5fZH19nffOv8uXvvQl8sUcupHC 0hP03ZCEqaJ5CoEieip8d7cM0HfMkj8wfP1OQ29RoOc4ZI0EpZSOJpisqtJz3diXJuAJzsCn54Kn yqx2HA6mJUopjaJqU/VDmrUu+cUzLJVL6KqCK0cjgEoU4Etq7NyOVGHeFJAKhSgMiYSCFwNQ4EEB XImE6BA+cIULF97l6d/8OqfHI5ZOT5HNyQRen2OLi7zy/Ntcff0NMjP30PFVXFXDyJq8vb2L8nv/ J+f+LEHe2ue1eoKhZnDvRJZH/s5PkCuOoSmPUirmYo2gP3AJ+3VQ8ji9NsNmEymS6NW2sQY90oUJ gsDF7g/xfZcgEhALYUocAciEBmoisRikqagHWQtaSEqIJqw4ehQzKckP8JUs2oEHCeUiOR+WwjZX DLBVlUaYgmKEWnsbP/Bi4Inr2hh2wCYhl+sTPJ4bYypIUxo2SUzPk25XSZkhFaNAKqZhQNLuxxqD F0TU5YjJKQ2pPkCeLMamUKFCS7H/BjpViS4quuFSE4I20mMfYLvd4eCJU5x++GGMVILB0CJpmLTD kFQQ0R5Y2IGHYSaZOX6UZn/A3nKTfELnoYdPMD4+zkvfeRnHcTh51yksx47NosJ14/sjkEeuOMHM 5AQT2QSX2gkuvPMKn56/F+HyHbRa1NfXeOW5b3PP4Rm8VovWlfPMHz+ObhgIK0PPDnG8gIOFEpLt sFfZYWpynLHSFMN+n6HrkyuXmT10jN2NP40XHOsbFayuRcJUiAwfM59he2UDQwA3cseoNju89ebr TC8dYi6dQ/Jlet0uoaaxuvweB5cW0ZNlKust5gdWTBtNLPSikFbDol5tEvk1Dp04wMa7VxjYPaYn J8mbMgNNIze7SDI1htsfoqcLNKV5+oHE2KRCvdqn2bHY3NiknE5T322gT0+zu7HOSsUShkG8gY3X 2qBXq9JXS+x26+QzA547v8Xrb19ETWgkjCTZtMHExBTl8aM89rH7KczMcf21l3j0iU9QmJtluF1l MplBlRX6/T7vvH0uFnbVeoVkJotpaBTHCsiqwt5ejSicQFLD+J143+kmVn53zJJ35MYPGgXEoqxu OQSmS0nV0aQQUwBGdIlBoIDnktUgmTbwA4me4zOR9Nmxghg80O273H3sOPcfX0IzUoSRL8TYCFko EJICpYjwX/mE4cgMJjB4MYIs9vWFEGjIio+4Uo1cfq0HZ07lmMjrzM7A9FiBbEbmuXBAc7tKb6/L icOn+PHH7uHKVoWt1oBcJknW3uLeAwHfqNqsr+3y2NzdfObTP0KpNE6vP0QK+hQnxtC7TfJWjfTU ONnxcULbYv3yOZxhh83VDaYWDqHlxxh2uzEaMga03HZBCMQ0IzBOwc9zWdfoBg0kgeoLAhKyF2tT odUnnD7FYirFZm2L0xev84f2RX5vdcg/X7obOz/NBfUAd4VvYvpOjJojCAh9j0g1WB8EfKKfoRTl 8Ic2+dkkydwsSXVA3kjSH7pkdRk9rcRmVWG6Gp8UwIxejFkU5mJp4CMlEkSRijKWR9EtwrDD6s4e PdtC9WRkDQ5NTnDswAxqdx+rZhPJcqxpdzt79OQQexjiDrsIm3VBUThzaIqFxKOMpQvMTE3HmsgL L7zA1NQMly5dwTAM2u12jCw/fuIQpqnzuR/5LF7oEdkWHWtApb/N9uXvoJoGZ0tQnMvgdde4+OZN Olu7FI0BalJCGmgkFZmhHzEc9NEGO5QK4MoKhtJj2PFRnTSblQZdV+eBg1lO3f/DGAmdbndIzS9x sJSllJZImHnmDiq4Vo8rLz9FeX6JuZkjuJZNr90jkcnGizy312OsUKJd2wPNjdvv9HrY/X0U4Sc2 c0wcPU1fUrn5zjmCVhM1naDvtGkMbiJ7OXRFxRoMY2BK2Guh5iYoLxyj1xqgJ2XW93dxfdhZ32P8 WDk2xa/XXao7FtdWrjJ5cI4cNnmnh2UFXN+6TFqLaPcMdjsWK1s7yIpCLpejVMiIqUOz2sCXFe6f mSWTypJI2dRrHQLPJ5VKkMllOX/uHW6srvCFn/v7/Oqv/irFQoaF+UW29zfZv7Ed+6GFuyIQ0FqB PY6hm7fCBMSBO1rcDxqLv9Ped5pdjusJ8nmFIIwwZZ1QEVjmiKdevcK4keBnnryPwnjAZs8lJQfc Na7TGXaReiFZxaCQH4tXgAIpKMUwZ0HXWBTEQm5E5Vuw6BFoewRquQU6jt8bJJLpPKga725bpAKV nZt9fuJzP0xfPsSPPLjHL/7CZ2gsX+Fff3mXx8/8BGeOHea5SxsYCZWV821eelOlZWT5wt89S7/l MTk+w/TcOPv7TYKBT8qUkV2TvC40mH4MFdcTCo0b53EjHS2dZtjao2iaZFJS7Ie8LYxv90sAsMVi 1nJ0tuQOvt5GlkI0AVOMVFx89LmHILXEWy99g0+sXeHIc1/lv6/vxX6/Xzt5P7+1cJLt8QVuKiZL phsjTzOKwsJ4xLbVpeVk8dommYSE40tsr2zFZtxk2kRSeiRdm3zWxFg6ylD4nLIh6aKOv2WjSgk8 LyK0VYKhjZrI4ftZlFIZY7CNu9+iploMe4MYnPHxB++NfWcCsRrKKaRIRRZhAr6AzkpEZoBamhRQ CiHaSR+a5mo2gR/AytY+Kysr3NxYZ8GJSDf7lMsTbG/vUioXGToCWevFzF74fIRvc3H2AY7MneH6 q1+JEaa2r5BMJClNTHDj4jVkM4SkRW2/gh0VSGh6rN0risTEZCL2b2p6hGP38O1+rG2HkU2xnOPY iRy9CZetlS2cyhWOzt5DYLcJoogglUYzDLxBn7MPnCAyJ5hekEinM6wvX2CikCb0RFt9EmmT2l6V eq/J0uw0oWQwaG4hwgTskkp9YwVFIEhx6ZJh6dQhSo1tnn/2OT539i7Wt1bRDh6MkceJbAF76OAl LLzAZ+fiZay9Br2Wi+c1qQ11Fk+dZm9bzLeAxZki+XKOQqCwdaWFgosUDFETCQa2RUo3MdMmcqSS NBR0Yf+QPDTdZGP1OqpuklJVCqUJVGsQ+5sF7Wx7yFtvvcUv/dIvcfnqFW6sXGf+4EGu3riOb4fk Mmm2vBZEg1vhIkHsPkD+AGLyjhZ3R2D8QFEg9NGDkAlDxOKI2KWIoTeC5r9YafPF56/xQxOLnF2s c+pYkbmkiuxJ5DQHdTBA7dl4SRVPEqB3cfkohieOtwqFWU9Q4y9AGuKbACLHm1Dk4u8iLih+NIJR jScUru/LZEOPSVXi13/r29wz/R3Ong058Mj9WNOPsPe7/5K3nv8qU5NjLL/yErutYdxuTVeJHIvO oIcbCMYoJKg68q1FQ3BC6K2Sy8nYrTXc5jX2r1yPTWmu46FlRFhBg831HZK5McZPfBgRDyT6Jdoo vBFCoxOxeC1LwtUsHNMhHQYU1zZwsynmTj7B3587zflnX+C9119kvrXHby5fYl9gQyXonn+T/Btv cujgET734U+iTmd42rnJ0nCLL0xN8SvNPFG7gb7lkR13qbe77HpBDKsvjidJF4pcvXmTM0cOccQf YAwswlaA39KRbA8RVeg5IYqWwB2qeH6I3x3SqFeotftMTE/R2w0pH5ykNDXPibvvIZsw34+Lu611 CzTtCFk7QtWOFu8KglkO7ZDt7R2M8UVcvcTs7P1E/pAxYUZdXeOoLmG2amw/9Uc03ZA1q8Oy26OC Q2oiy91HznLiyQ9jW21CdZyt89dxqn3sTJ7Wyj7psISkFxi2nTjEotnoIGFRswbUB12K2TTDQcTQ 7lPIuliRzmtXblDfucDGdo1rNzZRZAFcWubsqQVmx7MMwoh6Z8DOyhozs2mKpT6e5zAzfZDDx04x 3B3g9nukZJvGcJ1cOkF5epJiaRJDgb6UicEz9bU1Wjt7GMIn7ffpDR023rrAXYcmSGtJOkObvXqX CccisCzSE3O0dpqsXziPYneRBcijW+fG9Uv46SS9NZnGW9/h4maF1u4GUiLJg5OfZGA5TE6UmTt6 BOn119FUlXI+TbPR4vxlsRjMoPoO2UQWu++i2B3CQMJIbnJkYQ5JmMJbHbL5HFOzc/EiozxWwnYd Gq1mDAiLw15cB8uxhPuYoWOTSYxCYkQs3vsmytEbe+f/HQr8YFFAMK28iAcIQkwRBybrXO07nK82 BAaZmb5GISeADCGJSCEh+TRXq0QzKhMMyYYiqFkEgY+YYIzGuCXA3lfkvidJRteNjJki1lQmndDx 1QTfXK9wJBnxWL7ARjOi/rJOR3qNL77S5r0ODC+tML5+E12sYlMGj6oBpYLM7+/AU09f4N6zJ25p YCLC2EMxc7Fm4vX2yCVMBr0K1779x+zutWg2B7iRQWj5NGtVhgOP4XqDez/jxCZH0QXB+OMoIeGr jCQ6Xh/FteJYLzlUyA+2WXZdnPO7vHHjm7y8vkvNaPPKbEh/ZpqyNAJcvB4EpCWJ3cEOxdRbXE37 eK0KHxsYrHWmWYs8HlY91GobM2yyXY04ffQJat0a767s8vA9D3F1d59+oHKl1uXwZB4tCOM4L0ON KJpqjF7tWS6hOwK9dHo+1XqLoRPgOHWqjoexnkR9fJxEQkYsDET/RouRkCg2L//FwiP2kgo3TBzQ rvDQg/fytmnw7FurpCcKpHIZ9KHJBBLl3SZjUpIdu8dGAJsJna9V3qDprTFZSuE1B7Sd62y6jzNX PIUb1CnmI0x9CsMfI2jWcAebpFMmy+9eo5TL8MOf+DipVJkX332F1954h1xO4+GlMl6U4EYvQWm6 xExhyFOvvYsTSejJFL2hy8bNLRQTBp1x2lc3uClQrrLEW9dd0kbAgXIRe2mA1NhEocjVjQ2U0Gfu 8CKebDCzeA8b199lOFznnkefoLF5BWd9h0ImZLyQwbdNGvVlcorO5nKVjt1hr50nUz5OYPs0KpvI lUgY38nUdzFUj9zYJJMMuX6lw8tXNqhubrB84worlQZnjs3F8W6mJzOdVlm/vsOHPvEkvWsXUNNp DizOsXnxPD/9wCILd51lb7tChE7hxIeorb7Oyvoej3/4MYb712l4EYYOjZ0NLl69FqOaV1Zu8tSf fzUGRg4dk6Gdo9XqU8zpbG1tMejZpDNu/MaK4Po7Au57Mq87P36/UyAKFfaurGNoadypiANZjWG9 wXB1i8wQDuk6mVqH9sUdODxBGERkClkiu01zd5dL1ze468xdsZftfXXs/U7fZpjvH/iPdm5rRuJa YeZTI42BJOHYNfA7bDtJXt0NBKwxhuZfbVxFazc4djDDesNicTLDxS2btUqXqaxCpS/T9RRIGYTa bXOphCzr7F/5Nq3hdiy8+q5BpJWpdhx6vkLXk+kLMEU4xPXACiV6XgzljLslBPcta+roOzLqoE1C apAcC1CKOgenT3DX8jt8xezxy9GQ4IwK5vhIaJgRvThzhEJadtkSpNEU1js1ju77fLIy4AF5gle0 BOmkylTLQu73wHBoBwO+s7PGzeuXWTx4AF2NyJkKne0b9Ko5NqsFSpLK1IFZqntVtNAnoQnt2cR1 9ml3hkRyiqnxHAlFpd3qUOl2OVhciGN44ywaI5RP3MlYcxOdFUJOrA3ivo90bRGXONK/JTIZnU9+ +jE2ZY1/9moFnnmB6d0qpzJlpo4cw7JgIIesZCOWFj5C/h0fY8anq4boYUC1eZXhbo01I4t5s8Pm K9dwZY1SNsXGjkf32lvUmg16/S5TswuUiiZjxXGKk1lmMqBpIrNKH0XuM5seIxN4HJzIk0rqhHqS i5t7TKfSlDJjDIKQre0KlUYrDsK2PBfJlej1Ihr9kK8+XeHsnMGJeyYJ/STr63VQBxw4XkUatMiK JAeRj+WKgHKFoVKmr46hTWhMWl3GpIChFHDg2HHm5g5g+RH716/Q7VdwO1VS5Qk0u80QGWe4R7/e ILR6BI1drq+1aLZ7mGFIbX0bWdlmXY8IMwUsp0vl2nlmFw/GMXpRGGA1Wjx49ijTR2Y5urRIp+Pw +pVLaP0myTCIwV7q5BFyKuRyeW7UVjhy5gj/5g+e4uXX3uTEwXmMhImZPEZvaCBiJH/x5/9e7Dv9 r/+b/4HyxGDkE47F8n/0yt45cIcCPzgUCDgOchwAACAASURBVGWXlYu74EyyodXoVa/SD3yOzB3g vZVdEslZlqsO6bV9Nr/5LR6cWKS526HZuM4+Lu8I38vhIyiygJaMkJK3e3/bZ3X7+3f9jE2TIpeX AOmLpAlQrXYZDAYkk2kmjx4hO7eEpCeIHIdL29eRPIVW1UaRXCIlxW69z5TmU5dVrtZ9TAGfdm1w hF4p2hRimiZdZZG9VjhC+SkzSDnhMVSgEJKbdMiF0ShdlyLSS8kUxgpx7JBot5BHygdSKAnNN2e3 mDCm+Sef/WnKE2OYl65T+5VXyHg+6brKlYQKKZulYwmG5zokDpikF3NYkk9/O2Bz1eeAa3HEDlgK fOSkxOuVDu2wxnwzxZjwG0kS67tNKu9+g0NTY8hen699/cuxqWwyk6Y92EeN2nSjkIG7j+/22K+2 SKSycWaPbDZHq9lCoCw7bo7Ql3D9Pnbosl3fZiHyiZSR+VWkywoj0XOxbhdjctuELHo/OiSLVFsI QF2I76v89maTQHL4oZk+9Sce4WC3y7nf+l/5d1efIl1K8KBcoi27GNUtLm7WkM+rDMYUdro2ulyj s27zwKdPkmr6nD66xI31Fb7xzHMEvjuKy8uV6XfaPPX0n5NWvs5UPsXpIxMsjY9zbbXKw4+e4VFF prK7x261FweHC1CUkUrHGWeSKTE/qriBS6vdotXrY2gqkSST0BWGQcDeXoNAS/OtbZvX2zt86uGT bO3vsjQ/T6dapdH2uOveu/A6LZJSwPQTH43NnDs7PbrkmEtrhN09Zk8ci7OiXH7rHPd+5Ak6uRwr Lz+L4TmYzSql8gStepvK7nocPlNrDvGtHn13iKpJTCdyjCU1DFOnXqkxbRjstCy+9vwFzs7lSWRL VESc504NX0sSZmZJmgq7eztIskv5xIcYC318u83Bkw/SbDZjH2DpgTM4mBTTOvcdmmBirMD1Wg9d D9F1JUYKxyChmUlkWYkzsojhFi6LOxrcaOrf+f8DSgEl0Glu+1zvXMby3uP0yQkmigV2W+uEahuH HI9+9B7KS0OszE2+ubzNd559AzOhsFHZZ3+vxmcefwLB9kKRqeG2Ty32S4tV/1/2v31XMkmyyB6E IqmjkBuRNUU38MOITqOLnO7wE7MKr3gR7eQY4fY2e22PybLMO6tdPNdhumzyqYM5/vXqgMhuErZ6 MQhAAFbEJhjd8dMPMjV//P0cfSJPpfCZCwtt7FeL8wuO9gWDTyXNGKUmlJk4wvWWViP2xWrelIak q20GW02+dvM95JVdHtUjDIGGHKgoVsB+X0KdjCg/nGOYVhkMbKxqwM7FHpIFXU2hK0FV8nieNM90 xikOtpivuVh5h7bUYzo3zbHSIZq9tlAtWZpc4NLqMmN6hrsXptAMk5ymMJlSUEX6LncYpyATZtY4 L+jsZJzK62atFWurvlzA7a+zXa/QFj4nVXhPb+UIjfsoKCZ8qSO/qBAG4vBoKG/ti7yVcsQffPlZ cnc9yP9ydJMP995jr96k8NA83vI6S8fHaT/zKmd/8iNMqPext/IdAi1ie2WVdm8edUJh6ugOrY19 DhXv5cce/QyNQZPxwyd46/XXWb54MY7FMpMp+i2RicWhmJ3i0eP3URsGHDq1xNLiEYq6w5FDC3hD D6/fodNsEUkKiu9iayZJM2RnawPJGZJTfUxNIRCCWhF5KX2UZBo58rB9jytrQwaDKxQUBw2bVEZl Y6vK0t2LaIMWTquN0y5TTCiEpSzWjZvcHDZR1IgxTY/Rk2mNWECrZhKzPENz6yZ618KhydrqKq7v o8sKfm8Yp6HLo1Aq55ANjYIaUml1We4HzCQ1Vtb22N5rMBnOE8gVrm7XSUcdopTFvJ+gur5Ov9vk 1MmHuNEeCdq5bhdFEr5YkDJjqPVl/FSKINLJJVLUB0N29mvMJfooQS5OIffGG29QGh+LF4KqOsrf Kt7cOwIuZh93/v2gUkAAKHb3LjHsmKjaHo1+Bl+TuXDpAr/0D3+aC9sS+XISTXfo9wtsd66xr7XI +hIby1eo7lRwrF4MUBC5627LM+GtGa3/vzdlhA4lkBuygOGLxLqhjCoEXThEciz6bZEPV6IWNul0 bbqqjipLBN6Qel2cb6MZKu81fXrZgI+cLvD2ewF9ZRCntpL9URJpWYkolYqUx4ojpIhg6bFPKYpN cIJtC61stImclKP90XGBmryVxCHm9OLaEElxWaxuceHLL/HquEUymeLU0mO8u3WOVRXqioSlRKwt O6wtC7+WhHCESOhxHkqR0FgNJOpqRCjP8Zu1PrtpiU/4KbKdfcKyR/eWdtW2XRw7pJjXYvBBKALa 2wMKCStOnzUU2VdCA1Mg7kKbwHLxBwFDEccXBLEpsjf02Yki3ry2TG/QZlJkyFi/yJd+5zfQ02lq 1TZZQ6cvUKDIjOWSVFsW8yWZRtfHckSMX0DfIg4BaPUtxt58lt2dXX7l9xqYuy8Rlsv801/+x5z8 8tOcSo+zamZZ8feZe/IBjruT7B5TMecsoorKcOsIffMAa8oVnnxwgtz4OAtjhyhNHURE21f3Noj8 MPaZ6XoGNRzSt7q49hDZh4dOn+Dkmbvp1SoMqxUKCxOxOfP4kSFKeozm/i471f0YTFHUelxdtfB9 LQa9eI4Ik4jo2zbNgUdadUjKYCgetU5DpFpmc3efiXyWrKZh1dYYeh0ce4i7a5IsLNBt3WBKahAd GGdnc4326nVmp2T6kk/t+ttcvHCBtdV1VCXF3r5LQxtw4epunH7s2FSJm5U+zUEP1Y/oiPGVAwZD j8ALSWdTvHRjl64VErR2+K3mXix8dFVlPpOiMOHyxhvP49sOE5kkO5dfjUMFMrkSUWKOG8urzC0d iYPEV3sqF955ByWZpC1n47n7yMP3s7GvEroyRw4dxpDzbO5W4oWc73VGC7/oVqD3936F7/x6hwLf vxQIIpf92qts2D5Ts2P03u4hoOj7jQq/9wd/Tr44ywubT49iaTJJ6rtrmLrLueUV9MCk1RRoLJEj 8VYcqFDFBHIxlm8jLeB79T6WF3GG/duXiSTHAb6qkNZzZFToDvp88aYfJ60VWt5SUicznkGTPeoD n+1WL/YV9doqq3HFAQcpCBn6AhQiqg2MMn0I0SJkjEgIPDI5Cv+S0DrFN9H+UcC52JdvedpGx/9y hiJxtgCZtLWQU/qQ4s19Lh84yprbZX6lxv/T8djMRXhpPaZDZAunvciGHxCqo+z0kUh4G4XU3YAD 9YDPKgpv0edKt8+Hai1cqUU/pdFS5BilF9kixg76PZdqayfWvHpmgr1ODaNrUDAi8q6Oj00kYPmO TcsOGIhMMpGHrGisexEvbG/RadT4yQ8/Tjqb59mXvsX1L/0uk+MTsLNPQ4cTqRQ1O+SmbTFtRPyL /26GbzzdjBPxPnpfkn/6r/boSAEnFxf4+X/wKf78QpWDixpS+RD54jx/+I0qd41PcmntNd47IiEV Zf7dsw70z3Dtq2vIkcaBszvYy2tst47QrcDVYJlX/JdAN3nppRd58cWXaOw3yaZzJDKGcKlSTig8 8vCHmTp2koNGgrsffByXkFJuF2XvRTT/BFHm7tjnlU4mGFtYQhGm2c1XWFzMkZIkru72sQYWleYw RhOmRHorGcZyEk4YxcmsRRLmqkAIb1YZT6eZSsvY3QLDbpvA7TEzd5aVtRVqNzcoyjXuWmgw1vfY +vo15n48Qs+exBhElNM65yotJKlLKHyODZjMq3hhgqFv07Y8poo5LCui1u9iqkmOL4xxfK6ALkWM pZPs9112WkMSSsS7K+vcvTSLrOtc26vTWxsymU6RnC2zvV8TCe44/GM/S2H+BC88/RSBkeJAeZyu 5SL5Ng888AAnDkyyVDCY/fCP8+u//kfsbPeZPzjDRx59kpdff4Mv/vsvEYnKHLcqg9zR4L4X97rz 2/c9BUQyVyPh4wcOpmlQ79Sx9/qYhsza8gqqsR3b5BNaCsM1SbsWlc09kn7IbqNCvlAglcjGfhmh 9cSa2C3d7XZs9PcmgshkMhJu4rzx6Sn+x1/+FeqtJmlFx1QimkMbHxfFF34+D0OUOImE+WQUzuBY PpLqx/FzIoO8QEI6UcCxQ0dRDRG5pYxcSrFwG5niRibHESoy/jFWPYW+dsvfdFsVFY2K8RXiuByf KrJMCM/evhFxKuVRUiK+sNnlX/au8s/s69xMQNKWcDwfT3HjgNzMtEKmnKC33qPZHsYalWC+JiFN NeJf6dsc1fPM7ZzDa20ysZThetphX4Nquwc9lYTmkrJ96n0RdGzHJjGRHFpkDFETEq6jEQmfmtB8 hzZt26Pr+7F5Ugj18akZ8AKKxSJ3LSxgZAyeeTMTp3Z6wPT4n3/xQ/zz5y/yY1MHeW3VZe1Ig1/+ hcN0m6LSQshkWePBBxf44r86yb/9owtcbyT4+P0/yrj2IheWL7MR6hR6NSo+zDUk8tJ92MYeebnE jz8wRm11SClXpNM9QUEtU/5Mho3LG3TLEWuby6R+6KNcX77J88+9TGX3JrbtxkHkYc+JtXjTTPCR T/8UkwcXR9+zBRTfwunnCMYfEINCs7nFVEHk/Kyi7Te59NY7NAYdbtZ6XN5osNW2IU5SYGPdSpE2 lnaR46TiKuPCPN8baUW27XFlp4o8W8a/cJ1E2EHtDZmcqtGxctQcGafX4bBl46cHhDmLPgvsbvrk DJt0KkFhPM+g1WNXhA40hrEpue7ITORUJsdScWWFLn3OLp4kNTbOXCnDiaLKues3ODWVpnd1C9+N mJsv02w43H/XCVqNfRp9CyUIeOXaBl3boZxKITf2OWL3KPe6nJgtUjATcZLyu+86zuKRw1SrDd7Z WSEK0wjc89KBAr12n+2t67z0Upuf+fl/wCc+/iSaJhJ5izXfnTCB78277vz6fU+BYr7A//a//wbV ajU25YgGC4YpzFrCP3X7T5QjETUPbx8X5jzxJ5jlyZMnY5OSLIkabbeqaIwCxv5G/b8FW4jPPTg7 xy/+zN+NQSbv3+t73OV2+8Qpt9sk9kVJmnQ6TTadHbUpjocTv3xQq7ztH/zgOvX2sdFD4/c8VjNv HZcFbEVIOJ+G79BWfUqSx/6lSzyXu0ZrNkEyUDGGFlknxPYDtChgqqyTmQ+pdmWcio2sSSQMDVIq tZzBl0yJKd/jCxsXeVBL0i7YXFVlqpLDVsFiNrPE+Ngsqmwgi1g3ySNlZkDX4xCIri6zLQAKYYQT DLFFdn9H8HIvLucixLwxPsGiaaBIEiudJjsXV5meO0Qr0LEmCjwz0HG0Od5r7LE0b3HfEwUOnlVp bSTAGVAuz3P84SMc+1GV75xbZr/h8S8uDZlI3cs5u0k/PRbHGGa3ztEoTvP8gftIHZnhF+89xdXn X6CyfJXPfv5JXnu+hdv3WPnmFVpGQF9r0qjv8Myff4PNnW329jfxgjC2Gviuw3ipEEPnM8UJvEih 3arFlS1E5QgRBlG58B6R59Ko7OB0OqhL87Ev8OZOi0ubW3GguZi7hbES+ZwCtS49b8CKMFNGCicm k5hayHIzoDoQ1QwkUiLA3fd459IOF7f7JFQ3Lh/z0x+ZwZwqUrqwR7KcZ/aJzyMpDZpX/whbLDLM h3HVNjduvklpdp6f/fyP8uzXXmLt8i6Vbp2BrmP5YCYSVBoWk6WQ4/PzPHRkFslIxXk+L9Z7nF/d Z2W7zc16jfV+RNsN0JIpfv+ZF2h3O5xcnOPI1CQ3tit8870VDk4UKcoypcsbHDj1IRKTh/HUJPtb G3Qtj0vvvsPEzByTh09SLE0wqFUplkzKxT771R7p3AlOHjmFdHy0yHvtjVdjgNMH34zRG3Hn/x0K /ABRQKT6uf/+++M8grebfVuwiM/vtgmhcnsTgkTUvBJC8YPbB8/54PHvtv/Bc0V9MHG/v+7Z3+36 Dx77YNtvt+mD9//guX+T/RikMYKYxOZGISBFSdZcaZbs/Z/jYrPFnpvDiuDvsYgWmuxkIgwlImmH RP6IhiIPZ9CIkGYilOkwjkMSyWwHaVF7TkLphaRUmYM5h/2kyu5YgKUaLIYumY95nJ4+y4kDJ27V pRNxVVJch86URwjIuFCsyPMpYvVvuwslZQTzv1VYdhC4HBHm4NDnmT/+97y5tcLdH/o8ud0eN+wM fjeLefZ+EsU+i6V3CdpX2fzKTVLZozz5eJnj952mcbVJpF/jZ0/5PHJ8jj87e5w/qwTMnnU5Wd1H OzOL+0f/BzM5havTEzhmh29/5f9i2Je5WZTorb7NTgiVwT7RYhE9I0HuOM13rvI7v/tbaLpGMZnA LORoxmVWI5KGEQODXD+IgSD0bfa3d+IUWiKxdW7YJaf59Pt1BnbE8s1dVhsdKu0ec+VSnMVkulji /M0NVEPF6/VJ6mYccJ2IYLvncXCqRKkEpqKQz7p4A4u8GcXP870+HUdGFJV4+rUai3evcnc+y+qz z1LJPEn68Dy5A/ejhluozauY0jR27mEUv0d9q8pbVyrsNi0KqQzCaj1hmJyaGWM441GcPUzo+Hzz 3VXyWoAopLPd6PDijX0s147Hz9ANrg7aRKEWC2JR5mbQt3hrY498Jku769DoDshNlfA7e/zb3/iN OJ4ukcnzic/9FAlRSTgK+ZOnvs7T33yWj378U0yO5ylki+xV9hG5SHv9Dj3LQYRP5NOZmPKiIOwd Afc34RJ3zvm+pcBtTUdoO3+b7bYg+avX/KcIk9v3Evf4/3qfv65dt+/9t/78gDAX18YaHTK5Qpkn PvuPaIvaaEQIxeAXRBX0UBolWw5EJWYBuR9VKBcw0bhatvDBCYETCs+fNEpMLYl65qNK2o4icH0h BX9UFVysMUQGMJGBQuQS1ER5LmHVFRqO77K+343RpiJ2TQ1kIqFpC5+bqNwcmQhwjSqHcfqm02MZ ROiu8HG+/cJzdFoyW6v7eOSQ1DxqUqedSPGtRoo/vfYYY/sNPnGojpQesjBrYm3t8Nt/1uTG6k3+ 248E9OUQM5D4qcMS35q6h7e6Gl79PPNBkmKzyY/5KkHmKDeNS2yqOeyDM5w2RaHUDu8msux4Hdbl JEagkzKKsdkMP2LywCEmxkpx4LEAyew1O2STBolCjxtvPhVXEGi1WqQTGuO5IuP2gFoQ0o803ttZ J5KS2IETM+lKd8DGzh5fabxDpdYmEkmEZchmEgz7EQ3PQxXZ8zWNI1Nl5qcLLCxM0WkOuHjuDYYD jcWlaWRPpqR2mE/JGJWr6A/9I0qZcer9Ft52i5KkMffxT6MNX6HRNnA6WXZunKeys4Jne9giH6QK CUQGHJEyzuBjh+eo6SW++falOAXXuevrwlMb1yN0PZvjSwuxMPqTP/kTKtU9dMXDlVTc5pB+zyKd LzBdyCJrKrPjJSyrS7PRpml1kMZF4d9duo+LwrIeBw9MUswV6DVbfOUrX0FTpDh0RBRp9QOXm9dy 3Lj0NnPzC/hiPsbJ0e+YKP/W/OLOBd9/FPjrhII4LrbvJmy+27H/XD3769rzN7n/f+52CdOe0Fdv t+m27jozUYKoMAogEAdvg2tECIEQeQLgElcd90aft+P9YviKHCPZ5Bh1KgTeCEEqfHtx3J6It4vr VAsU28jkO1KQwzghtcBgCh/kpZUGH/6ffh87MtDSCVFfCFfUpkQnkEchEGlNjjPOnDyQ5//+J59F 0/R4VW4ksjS2N8iWaxhSEi9K8cLFNtN3K1i2R6fbZkp3eHkryURKorW+R9toMHBVqt00f3huwGtD m9M/Cht9n1OX19lspGDyAAU3zZcvX0E71WNoHCJyD5NyQsb3PILCNJebPa72lnEXHoxjG0UZl2Sr H6cAE9LcSCaIzBShaeCK5MRRgGNFFLN5ptNOjKpcKJrocsBkLoncUKmsr7Fas6gPXBoCJq8opFSf Szst9mutOAzAFxXSXTh56AAfffQB/vSr36IyHFAw8mxUW9QaLZz+PJNTJaZnyiTD0yS32+wMNaJ0 gpwSsNbr4m3VODToo07NMRHM4ey+g7H/Ou6YifnAf8XYjTWmb34dqXWNb6+16IVKHHLSsG1CVUML JFwv4spal41hjWs7DUzFjpN8P3DqBG+++kpcUV5Rdc6cvp/nvv0ijUaNlK7HSMilpaNsbKzGteja nTqRrJEcJkii8PU3LzI7O0my9Bj01rh27jUWD5+g39tjPJckX8hyeW0rnl9T+WxcjqrdGVBrbXDu pf/AhbcTLJZS6PMfj+fQHQ3ub8J17pzzfU2BvyoU3mfmf0V7+f+rE3+1Pd/rubfbKs754P73uuZv /Vt0O0wgxk+OooNiVU5oXSIAXEQ4vB8VPdLKbgdPo8canjApjuoE3X66EudwFiZPUVQhVOLwaVQh 3IR8i+MChW4orrwNfFFHJiMhTCWJWq9LWMij6VlyySztyGfc0GM/qbiB5UU0BgFN1yBli1IpTQr5 KQJJiOAgLtsjJ9OYvs4wgmKhTCDr2KGOWpjk0kXIaCqrA5WjeZmW5eHZQQzy+eolh3ZWYffXfpvO WgNz0Ef/uS8wX5pAnjpB8bM/h6yN09ys89jUaQxV4cL1GhcadaanFvh/2XsPKEnO8t77V1Wdc/d0 T847O5uTtKuwu8paJAGHIBRI5vuMBIILxsbG9vG1L3yXYF8bX2xjEYyNE0IiGQMiCaGcEFpt3tXu zE7O0zPTOXdXf+d5q3tX5hgJJOFz7j20jnZmqqvqzU9+/s88VQILx1jJJ/C4g5zOVJQWW62UKFSL uO0pjGoWp1bCY3eg6YYCs3Y7XeDy45Bo0XKeTLlKpqDxzGySY9Nx6oZEzdY5O7us/LgOo8obL9vO yExcJT4vrxXYvO0Cbv/AH/DkkbMIpH8k6OPWNx3g8YNnOD49xda5NlzuMOt27We58DjePj/BSAf1 USiFh3H1t1O0hzlx6AiVfJlQays79r0T+9BWas4gC2MTjBw7Qn4pTaGmU6jY6Y6FqRWKql7eut4e XMUkJ2aXOTwtSehV+tcN8JE//V/kVqeYf+4QxXKA46dHee8Hbqe9rYXNfTFcNjtzySLXXLqb4vZh vv2jhzg7PYnLVldrbve10ufvVhG2M/NTbL14D1OjJ+kd3kSmUKRrXT8btl5Ad/8mDJcDjz3JyMgC w5t2M9QfIV0r4a2aHMytcYmhoVV/DdXVPK2//vl/0Qz8MgzmhYb9yzIcuV8+v0z7z7+3+fsv2+4L jUFpbMqpZVVGsLiP9NH6+/meR7kmXKuJwSmMSTAdz0WWala8pnKRKR5l3W+lD6q7z49d8csGVJZK YWjqjhYzlb9qtQreaDt2rw+n4SZi19jk14l47FLmFEkBXMgXqBc1+v0ViqWqSpMwTEMhtkj9PYdN J1eu4/D48bW2sLY6gbE8ztr0GYq1JLaywY6YSX9Q46nRHKYjBJkcy+kSbS0aQxdcTv5VEbD78fT5 +O1eLycvfgP1XQPsmJzjrm/+GyMbMnz0v++n/6CTuSO9DLeF2DNV4+TxJzhVNwlfEmVZgmRqVVWD TJIqCqYNLejD4XHi0u3k1jLMLMRZmF4gGCxSspksLq/SEZRK7/M89NwUTrtOMp9WQRwr8TXKWpn3 v+ESbjxwKX/2xQeQyuapSpkHHnqME8+9ndXlOJJOIFXo+4Y2c8vbbuM7d/0TR554FJ/bx+GFFWpl 6HS42ONJcdLjYy5fYTmT567P3kkZBw63k7b0Ghdd+07cvjDHHnuYp8/OYUb28P3Dc0SdJj5HjfaI g0rSznBXG1svuID7/v0rPDs+jdft4/2vv4HXvf1W2i+4gPGfVmjrHuLU3E/oDHtI54v4NBsxAQTI F9ixdQe3vvoaFuemODs1w+z8DNVqBXelStRXYnOsgxMnTGor83jtO8WWTS29jD8SJdTVx6v2rTK4 cZjlSpl/+ezHVPUCp6bhMmts9DhUJPITI1m0TSZ1m4Vp80Ln49ff/XoG/o+agV+EObzYPS+FUckk NRnULzthP9ufl/qe/7RdwSDUGkgmlgNOaW1iulG54MJpGogfyrnTSAFUSpfYFVXNOysVQhjguYw6 VWbBiuhUTLJucj4KVamEqsbc+UoI59tRjBTwuz1s6G/H5/AQMdK0egxmagGWKwYtep6Qo0Y44GMt p+EzsiD1/aRjoh3qEtAgepyNTC4ODo3ZkfuJOlcIGSkMw2S0ZkM3C+TKWU7ETfL1APFEDq2SU1pD yAN//NZteLxunFWNTLFCxF5j6MYh/vozf8s3H3+Cmt1OdVzn7r8xMLMFMuUaUycyZCaXSGQSmHYD kqcJ1QroLSHS+SxOqnR6A6zVquTXUhQSWbQqPHsmQcC+wu4BG5GAHVfNz9xqWfms1nW1My7RkeUC 2WyaYr1MxOtjsK8bX9dmtuxK8eMffV+91ynFRFOLDPkdGA4HzkCYwcFB2to7+H/eexub+jp54v6H lRCwccMA+/dfiHvtERaOrzA1M8WhEY0+W4E3HlhHuX0jLW1BtOSCqp5ezabQUml6NDsdfje1aoGR +RVsbieGN4Tb4+PhnzzDD09McPn2Lbz+dTcy2NHKmcefomy4CXa0s/81b+DbDz+F23BStZu46hVM w4Y/0s41172a5fg89373+5w6/RzdrTFqmsFazU55apm5xQQeVxj8vSTWstQrRRyhFkJt65Xfrb8r hnBts5hjeTlPS/uFOAMSdXqG3ohDQeJduWGbKrha/TVU139KEn598f/gGXgh5tBkJC90jwz9xb5/ paen2V6zf6/o+4WyimHQ1KzSP/UKNgT+63npBucAiZtBKPK1lU5gmA2NThhhU7VrdNDil5YmmMmW WFnLUBOIDuVHc1LXa6pUT0Wro5XrAh9iBajoNhVCPzczz56wTnXxFI78hPJnhUOb6dmxF6Oq43XY yJXAYysjcXHyUXqgmE+rUjmozPLSGdLxBWxlJ856VhV/TbS5ifX7CPw0jkM3qVRtnFmrkcrV2BYL k8hr5NJlhU4/HPITCMfUixv8X/UxUOgikQAAIABJREFUHHaRqCQIBztoi7RRy9nJ5YtI2Zu1ZIJ4 dgUfBfyaQXpDH5dvvoKI4UEzDexeP22hNsrlPLlEirOnz7AyeYxCxUNL1EeiVKKeM+hr7+D0zALF chmH00Y6X8FmmDjtHjrdPsxqmSPPLTO4Lk8gGKFkSoX5ClRLql5eqwTV1ODKS/axcdNWCvkcidkF OgcGue7GEGOjIzxx8BhjY0f5/XdcQNfejZxMZtnX48W2IiV9vOihIdr7t2HWS1QKaQaH+5gbPctK PMmeLR0cOTVOzOWgnCsR8dk5O3aabz97hqFoBFfV5MEHfsijdfHDQsvELDkpsYONvRdfxOLMNKFI lFKlyOL8Am1RLw89+GN+tDzJU6fHuezCC9k83IU/GCIXX2JtdoZtF2zn7OQSIa3KytgIHn8LyfkF DGcYW0cn/lgnoxOLLBbSFIom2AcpOzdRjI8yObcExFnyZ7hoy2VK+3vZPrjmplDhWWoHVhsVkC07 vFxSeUKagBpZSavnD3Ij+VRt3Rf+5/wzr7CvotkFs678EOoAWZ22pNdGHa1zfoRzh7zxYIM4oOQl azolysyCRrLuUX9LlJlI0kqibmCa100FmtqUpJtzaUHmSvHJ5ol+4bn5lX7b6EOzT+e61CSKgn/Y ABoWMN/mGK2imufk/ZfexWaD0l4jYEH5jdQbm4tnvb55q/XXf/xO5lIYyfl7Gia7hqlNdqZ8ZC0U +rwKupC7n2/Es978S/+rGrUYTbPvckk+5/ab/P4SfIbqPUJdhIn8zN5UzWKztK5mHp1mYVs2mj/X iWY/mj9l3Gr1nscH/0Nnm30XxH7N5J7vP8qnvvYIDp+HrtYI3a0R5ZczNRurhSLxlSyVfAmHXsSW qSpUjUoxxQb/Mk6KZLNZ7DYXmuMYxdP3W3NTNxSoryDBdPcMoF32B2o9ZFxOpxt/awt1bRmHq4rT 4SDkdeDAhfvaCNXlIkGXD4MKut2NTSvRHahhs1UJuX0sZgvUVhPc/pG/xub0YCbjOH0hnC4fmUyc kVPHWTO6Sc6v8uHbd1GomaRXpDCrB0c6wPh0lG+eSOAKObFd087GjQMYpVbqppe8I4ndqNBhd7AY 78FYXiS04sWe0fDYrUjVM9Nx1g8MqHy3jqiPKJDMlKnX/IwuJAi47eTKVU6OzjPx2TvB7qGnqxt7 Nc/E1BSBsJdArIOQzaBeyvCZT32SZCZLyNCpJVZp7w6xa8tWVtZWODWxwKEzTlYqBhddsp2VXILn 5lY5FXcRXUkT7Mng9bZTFsi5aomLL9mIWU5x+LGcwrGUKP2W3n7iazlVNf66C3cxEAown1+jf6id LV1h3A438yV44gcnSZSKbNi9h75YSCHm5OsOaoWSCvdfmjhLSK9TrpZwO2uE6gWiDh+dl2wjv+hl 2z6p2nCa6Z8+TaTHxaWvfx3p1CqRzg6FgJKeOc1X7vkyo+NzxFcXiS/eiVk3oFrk0UpVwdft3LmN i15rnbCXzeAss71F5M4fjgZzU+YNOcQ6dVNTCEjKHKI1yeV/OGb/+R/qlFrvP3eDIgSW/f9nD925 e37RX5r0S7ciu8SWoIhdwwQjTSkG1JB4zxO/80nBKteoAbSrMAzPEaoG0RRS0TQTqeBqi9AKEWl4 LhoT1jAFicQtPpImSOwvOpZfwX1qvNLnemOrKN+KMA8ZqbCc5hhl9RuMW83ZK8DcZFZUe42kbWlL zFMyTrXZmovX3G9N4cpiXs39qLaQ/KGYWVNusPxD6j2KSFuTJ+2JOCpBF5o1+Jc/q+qdIrDUVZKy tKkpYOTnc4+X1owao+LK1rsUA21galpC2fPm6KU18YJPSXi/lCAanV9gJJ5iW1uU4XWdVDSYzpVI 5StgVsk7bHSHfDi1CgVbVuU9SaJzpjSPt8VPRzRMzRRtq0h+YZJ8vkypIgDCVZLxFLnEGoYhSCeW oHzVgWtp7e4kkyuoSM26YcNQB9VEdxrUh0wKO7OcOnKUxYxBzG9TwRJrnhg95UVeO9BJuqDzhX/7 EVJfSPyAUiy0mI0rHEh3Ty+tAzZ8zjYePLjAdUMurnv7fvTVGapzNkYLNuZWJhEVanvCRToxjqGt UCiEoeJiuljB5czgKTpI1ZOEvBF2bNlCrjRFKrXKxp0OnjzxAIG2VvZt34bd58eZf5SWthD/cN+T DLf5WN/VyfRKAo+zzuxaAZeCTnMRcGqs7+8ik6+xMB/n6Z8eJJHO4LX7GeztYcdwH456lcOjywxu 38+2i3SCDgezp45yeLlMd7iTdZd3spItEqyBma+SzxdVqoHkz5XSKxTm5sln09hNBz6zisfl5eLd /RRqBq2t7UyPnGHHhu3Euv3YXF6ryOjSKtm6Tlx8pUdOkq8VKRUryj/aGtDo7QgT9rk4PT7H8OA6 3C4fmt1NcrWITV9ia38PC7MzrBvqo5JcYuOlV+EPxQh7HDg9QYXb6jJqfOB1XbS07qVQlvVKYfME sDsiZJIzlEs1WrqGWWoAj79sBmcJjXKIhKgIXZbqw02Ccx4RT3JfFGFSErKOTd384oevSWPUQW4c tebvze9e8AS+yJeqG8qu3+xLM6zaIqpCwOuCBViXfCCFBqg0FqWxaTJ9wmgN6pqEU9stIqqIfoPI NjUC6YdoiZIj1SS0Dae+5ZOw5tAyHVnaR3OcLzKEX+nXVh+EeFoCxTmi2fhbrisMfqVhSVVtC7dK rY01uS+7fzL3FkNrlEARnDlV3MbSMoTkaSIMmNZ9kr9lNOUfmWvpgfTXKs9t/d28pgSXxs3qWoN1 N0q9vHw2bYEUC06ktbayRaS/TUb78qZHKW+NjWJNdw2rSqq8t7mnX14bL/S0KixaK1Cr1QXegnAs ynimyly2xFQur4B3W312tvS0MR9PsbaSpZopkcrlVU7V/mveRDgglculu1YUi6QdCD5oqVzFlMoG dYO+vh4qpSrFYlGlJbR1tOPzhzFrFVF9LaHE1BXKvmBmSlzNylqa+uIke7tHmVwu0LrvHbgOH0Jb PUna8JOuRlTxTrNapLS2iM2oEB3aTDVfprK2wo4+H/ZKmaenYCGZY/u+Je781jjfPJrCY+iUyyUW pxe5zhsjGpilmDdot61nLR0laGq01qIcKixSKOUJ5Uq0+P3UPD6OnBmVdDmFrPPqS26gzRXjzNRZ fH43bp+bi/taGezvoS0c5Mmjz9Ea9uIRLM6xCTSnpBeAVlsgX6iQSqzR19nC1bu3MrNcpjUUolyz kdbd9Lb2EPQGiHjt5FfHcNpsBJ15MoU842tlLt57FVFvhfRqnGq5oACS64UsRsXG3OQMkaCH11++ Gc22DT3cii/oQI8MUPHH8Go1Etll1hIy/WkSup2i5qCnu5vrtm6ip6OLzOoKLp+XTHaNYmEKr93N 6cllbCEfW4Y7KBedbNu1i/LaqkoAX1pdpOSw0x2osGfXIN6eDnC7WF1epK2rhs0eoB4OMxRdz0Rt PVIvoeKUfgepmCZ4tlowb/6QCkwSZeVlMzhLAxGmIBrN+TMle07lxIikL8mjckEzzzu8hdiIIV0x iZ9/hJoE1jq8QviFMFjtNc71z3/4F/2mYdqx2rCYcvPdFjMyVOiuYn3nCKfUZJK+WL4NAcUVDi8m OjmrMh+KGahxWm9uhmILQ7OCqi0NpWETazAKYYKNZ/8LCNQvNkVNZi3cQuZHJkHW02IeanQC9NuM wJMLTXXpF2vg596l+IJajIZPSOZW/q5LarHFuM6Z5hqh7rrAYeiN8HTVXyWGnBewZPbVS5prLSsm EBqyKpK5JW3UFbTRy14C5fuSjSLIHVbQvOqvoEE2N9nPHf2LfyHCl3AHdbzU7RL6b6IryLGXz55f rAdqytVAJAHZzqGFNQxPHsOuU8kVKdc1Jgpl2jxOZlZS+G124tkUeSlsaXjYd9leBgcGlPZmnRdD QXeNza7x6OFloqEAoYCLtqCPU8fX8OgpnC4Dt9dNpWxSUFiVkKuWydTqJEs6S9kKWSk1UyyQMC7C LG9kS/lhYslRjmXjOIxWjKydaq1IuZgmPT9GJb+Kr2cHGbuTQX+Cmy/vJjW7yndminhjUZ4rwpnj E1w6HOG1l6+nw+vkf98d5MSJEYWgX10u4zU70NyrDLfpmFkP9UqNWFXn1LJUW6+h2yGxlJZaRayt uQg5Swiap98TZ5v+MB3uAolCGzfd9CYF4eVw6ly3Yx5XKETYUWM20cmyEeLKAwcUc7Q5vayNnWJd zKWK3J6cyRHxGipZ2qlrhKWEjSdEORgimTbJe1y0GHXyZopAdYZcGuKZCC3uiNr1joEhqGrMnT1K 665LyCyMYuZr1HQfPq8f3W4nMztG284u1l98ETNT06SrFQqpOJVKjVw2zfBgG9FwCI8/yGo8jr1a omx4SFU9TC/FiacLXLq1X2l8Gb8Hff403mALrV0DjJ49gavVTSAQZuX4UYI9W5k4M8rS3DIlX5S2 jlaCwTBGushf/92/kk1B1ajTHvAS8No4uyg1Fqs4HE5uf+/t6LVXIk3gXImRqio0aNE2i1joTbOW LlKsmLkMy0zZcBjXpULwi50gRW2aN/2MRPofvmve88v9VLRSkTTxYQgdalYBFnQGYWJWVWXr8GkN P7uUJlFcTLGx46NruP0Ohtp9FnN7Xr/O+Q4buT8Wc7NyhyYWi2SLVbYNBiwKrKRYywRjFaf85cby K7u7biX2SiKv0m/UmmscH0/jc9kYaPdQ1y1fjDJZCnEVLLwmruPL6NjztXQh1+f8m42No9prMFoJ KZY6WrJIFkuWhk00U2p/NZhZYz3lG2uZmhKLACHL6CyNVAlRP7PdXtIwGlxMKgIIbmBTE5YQd7Wn XiYHFR1W+q02UF3nG4/PsanDw5YhSeL+r/hIEpwgtxhKwKmWTMpS7sbmVqgjXT4b9VpZMTyf045b 0wlHRCOJEiymCIfDdPf1KLwUeY9lGq4xs1QgXrUTSxYI2p3o9jLhSAi3VFLIpqmsxHFHgoTCLUgQ S9J0UUlU0KXwqrtOLW+Sq+rYIzFSqVZ83WNUWjfSff0u6tPj9Lb3U5uZYfHIYzj9IWyxDfS3+/Gw RjTiYWZNY8twL30USCWKvHmXh609HlXZwdNhY0WK4OluWmKt6LOLjGch1jWJVquQcZ8mYsSIz6zD rK7h1hOK0SQWl1lezFLIVOiNeBmZdZHO1/FftBF77VmefeYERksRzXQz2NeLL+ylo6uNatkkOTWK bTnB5EKJbRdu58SJkxRrRXbt2Yy7lGV+Yor+gS6VSnHhjotx+LzEl5eQAq9pPUXBtkwxeRwPNoYv 3Ep5tEAtv0K0I4zL4SK5uky7MLeFHLlcjYjHRklq7lZMAsEAtUKOujvC1JlJkhUnG3bvZ+sFe0nm Mswcf4rO/n6SKzkcWoW65lJA2IFoSCXvV+OzCrElk8hQd5hkVuNoHi++iA/D4VXlg3LJFUK966np OlNnRqBgY3XiLJ2DWxi8aD3hwUFWlpdIJeI88Ngpiuk1LuzrpKc9xEIiwRMHl9m0wcv0bILujl5F e+Q0v2wNTjakfsdjKpFRzFNCWASRQIjN1Z0eXrPNz7U7W9g2ED5HQETHsYifHM0XoSJNU04d7nt2 WZ3Y6y5stRSIF+WOv8gBt8xF7/v8KA+OZXnmY9uRg4gwZyGc54JMpCOWpPy1R+e59e4Jjv7hFrb1 h9j+qRHevzPC394xZDHshtagTHfymLKO1agpsCNLOxOG8Jf3TvHZI2vUP7fPUkuUee8/mtdeXAL4 Rcb4Mu5pmFglmk4tVYNRyxu3f/I4/21nhDvv2NTwJUpVa4FWqlE3bech9l9G82qJG31oatP/cN8U 7/rWAkuf2EFr2K32giLyQmTVXGvcf3CZ6/9hjNH/bxcD7S5FQK21tBixiGM/PbHG5Xee5pHf2sS+ LbI/RYOz9qPYCl4J/UcY9EqiyMPHM1y5zU8s7Di/5c8Fhbz0CVI+N7EIqPIgJrd8eZKvv62frUPB Fz9bL73Zc0+KIFDVairoI9LRQqi9hajfxbaIl+1tdrYEXCqPznR6WE5lleacTuZIp3KkV1MqOMQS XMQSYh120dWlOkRUKluX8rjKGoG8h1h/DI/ToLC6gk1JW0VsWgFbOIq9VFR4ot6KHYoO7Nk6bb4Q s6kcRbNEiQ1EW1poszkwWi7C4XJiX1ihYrfjDbZy44FhLhn0MHMmzkPjq7R22TkU9+DViozMrZKI ZXFl+1lz6XzvR2e5eHMbP374EcZHZ/G4NXr6U4T8TorJBGbQQ8Rb5OzIM3TGNFS4esgglXCxrjXC lq42/F4/0XY7Rlbq1JXx7ruCV7mdrB0fYX7+OyzNBThutIFUx56eJez3Ee5ow7c6xcTIYRLzE6ys LFPzBrnqNdfj692M5o+pyNAWv4szh5/Fbw9RLY2SWi6SdzpxDw0z5PTQs343/nA/mbl5It4S9nAH jkirSrYulJLo7iDV/CLlQpFasUg5nwObSwky7Tt2sLSSYf70IVzhdtzhGF1eFx5PhODwOjJzI6ym MtT1AB63g2K+wJ59F1NMzGM4DToKZeo5KWkVpBRfomRHRViWh7fQs34D1WwWSd5v2bVLMUqpaCEV EMqFMj6Hg2SqxJ9+8SmGu8IM7tqM19hEqG+KjUP9zC+vcfjwGGGbEk8V3NvLZnBqp2s23rszwFWb ItT1qhVQgp3plSyff2qN3/vREp+6tpMPvqlP3a4kZalErHL/z52Vn/OL5Y+SL+89GFf3CIOzPue/ a1x4aT9MjdfvifLZw3EeP77G9bvbFHMTP5uYUC0+avl/hMl97pEFrunysn0gpNr72lu6CXkcDdOp JUxLmLWiZA0tRvQC603NQAh4w4UtXLnZeoe8qK6rmWmY4MRUeZ7gvrSBvfynRINtShOKieii6Voz 8rW3DhJyK4yLxtjF5m2zdCChVc93EL3Urpxjbk1ByOTq7TH45hyPPrfKTXu7rSCghrCjibUAnSdP JdVCPHJ0nnXt/efXxppibGad+46sss6vs3dLWKlzKqG5sWyqxtorwIBES1tIlrn1nlGO9GwmGnQ1 wvUb/tiXOi+N56Sqt7xQFEXZLcr5JNGszSjIl/n+F3tchA7xJ7XX87zavkyb38224Rb62rz4vC4y FZO1TIF2X5R8Kk6tVKFcrZBNLKmiltXqpQ1rtiygJWxWJc1A03AUi7i9OjG/SSSgKexGwyzi6vDj 6eqiavNRK+Spug08dhclewVHpUayWqFuN0gVswSdUCyZFDJZFuLLuJpIzi4X8cQiPesGuOOtu3E5 7CyUTHZdsZPjCz+hzV4gDyzUTDLFNdqDm/j+dJl//ukab7mkQxXvHG6PMdzRgml3E7ZXcAW6iS/M sVTWGZtJMjY+y86+DdQ1KVHTxWBfK1GHQSAaoW7z8MbwWXLZMbTEOM5KFS09jT2oo+dmSRbcFDqH GD07Qa1q0rF+PU63i+j4goL/Gmzvp9UXIRaL4enYoCxkupbAzGY4df8TLE6MYfd1szg1Tb64xOXX vhp7/2Zc4Raqmh3DZ5ANjatqGgF/Dq8J8bEnaCmX0CLdnJ1cVQV3RRDPZVO4QyElQGQmRnC39GMr F3FoNbzhNhLjh6ill7A5A7g9TnoifgxfK85oUGlkhttJNjVH9+V7WUtrZM48i+FvZbWUoCUUxMys 4vX5cZQyuN0uvO095BdP4uvcgivYim5mMexOVVqoLHXu3H4IdPP4SIHlhW/zW7/3G7THAozf9zje gT7e+JtvV5XgJSHmZTM4y8wCV20O8abLOpSzV06bRW/aeM8NfXzv4BK33D2pzDMfvHGdCg8Qc6XR IEovdIgUL24QpYZ9s6FZNcyJL/TwL/Cder8OB4TZ9Dj5yx/Mcv2etoZGYtXtsgYjJi6dExNpHp4v ct9vDquDKbT+5su61diEoKsgEkWL5R+L+Eg3mqakJpuTa9deGFOxiM37LO2hwUiV8VOxlF9gFL+6 W2SJZEyK+KhmmpF/Jjfv71Baj1y2ltLyX6nQD3XBuvqyeicMVn0k2Mf6fbDDwzVdbr7xdJI37es+ pz1qIpCgkyuYfPTJBMN+nbufTnHbqxp9Vs/LuuikqzU+/tgyf3F9p2UqbGrdDcHkleq+tCWo5mpv iJal9kYjMOdlTUzj4Ua/1R4S7VP2IOUXs4u8Ei1b71DmYUGJX6BS/DG5TA8nliNMlQLK9CVxP5K3 lZcE7mSGYqZGfCnLzIiYzDLKl9TYPOp94seViuhSLdzVEcZXXgWtgukRPl7FZtRxdXWB14Nmkwrd LjS7TrlYxVmrkS+WCVLEZoeaT6OQrRH11IjpQewuL06Xm7Kp4XDYGBrs5J1vvohjk1nOJsps6wng dq9SDgd5+EyKe97fybG5Gv8W2snxChw8W+J//MZ2tm3vZubMrKqX5m6Jkszmya8s0T0YoZiKc2xy HJ/fz5VXXgnmGovJPG1tRQIBH9nVOWx6FncgwvLUJC3tYUpLBaZOZajnXegb3kh9cIjM8jwbh7fi 6RjDyC2ybutmZdrcf4kHp89Jz7qNLJ05htvuY2ViRBVa/cn3vkRybonRqVWquk5ndx5vOErvpk3k cgVcrOIOBCnlkqymxojHVwm7evAbdRWlmo5nCPicFLOwmq0S0hyQldp/JuXkGlW3jiPYSrKQY3lt iT6fnXppEO/AFkqFPC63g9pyiVKuSCjUTblWZ2XyORV8pyfWkEobQX8nWsBLWYCuY30US2sEOvoI trThaWvF7XWRSpfRnS3onoCyoug2H/VaCd3pwW432NzVzunxcVaNaYIeO/fc8021txYW5ti252KK ZRO/yxK8XzaDkwMsH8Uo5JeGz0FdBDxuGzdf1sHX0Lnly+Ns6vFx/Z6YUgrU7cD4YpZnR62qxmKe 2LW+hfUdzoYGBIVSlbPzWVazAuBj49hEUplkxNi3bSCAgglQh1vnJ8+lmJHoKVP8fXUu3xKlNeK0 ItfO9dXyq8nBOh/EAO+7vJubvzLO8fEs2wZ81lCaRLGR7/ONJ5cY9tnZuy18LqBkYjGrCNhgp18x PevAmjx5IsXsWk4xt91Dfno6BU7UCnWXe1YTFZaSObYMBhVpVpGl8r18t1bhmfEk6UJJsboLh1oY 7HCoOWmyPSHC8YSglRfYti5IvlTl0eMJcvkqpq5z9RY/0bCYFiRZ1/IpilaaLcBPTiRJFMVebqqc GzHR+cU0K+NtmGVX18rMp4ps75c51pmYz3NwLMEV21tp9duYWMwrn8S6Dr/FzFVPrZV/8kSC2WRe mXi7WxxcsiliBXaofMPzOVtnF/McHk2pdeiIeNi3JWj14dw8NYi2IqSW0CDjv/2aVt72r9N8fLHI UJu9se0s5vXUcdH0TT72+l5uvWua8aUsg+InbPjYZK8+eSypzOkHdraoDoupr1ys8djxZTIlqVat EZAKzFsjys9osWpLvZM5n0vl2dkbVBWnHzuxRjYnb9C5fGuIWERM3FZFgcnFHM8tZNV3p+cyYpxX eyUW9dIRlFpo6laKxSqPnlgjLXVrqLJ7XZiBTo81mUpLk3WxApvk4lRjLWQs4nMTk6QK/lH6s8AZ n3MyWu94yf82vJnPq2PTFGqtV+qUSxpX7vdx3R4fNTLUzbxKGBGBVOUe1iXvyWRPi6yl1OqD2tUa tXoQf8Cp5qMZ9CPko6aijQ3Cthpeu4HLzKBlitSyOlr3RurVBLXUCkZI6sME0EpljFIOo2bgLOdo Mcr4/QaBoknMppG3GbR1D3Dh5g24PHY0nBi2GkcOe/n4v3xdJZ2/4dIO3nxZGJtUY6/5+MHBHKdH UswXJYugzmsv6eKGK/oVFFS9klf12w6fnSaaLKoiox3DW6kZBou5Eju3bsYRjPLYoRMspeNc2NZO V8iD3UzTe83N9G/egl5Oks29HpfXS62k43aGmH/0+4T8EfL5PPPjU7T3DtLd3YlNi7Aws4DR2kbL wCZSC5MI5qW7vQu7P6gKkgaDHWzYfzPZVJqN1RT1SppouF0FXeiVCuPjkxSWV9gWilHV8zxz8Me4 PQG6r7kOf6iNYL1E9MIy2XQOT7HE9lg3px76PiWvF4mOKRNgZWyalZUV2jfsJhTtRaNMIT5KMBbD aYBRTlLRoZjPYvcFcDiTlKMR3JFuymsBSoYDmy+G2TpIWDRJxlg5OUExWya6xamEl5KYIv0eihkR 9E10lwub4aRUlDQJH0GxCqQX8dpEmMmyrm+ILX6D6lIaLSrldtZIz0/jC8SQGJBXgMG92MkR/4DO TZd1cPWDc/zLY0tcf2Fbw0wD13z8WR6cK6uND+VGVOUMf3xZlI+/bb0a5JnFLBd88rQqgSCy71f/ /FTj9NYxP79X+U3GF4pc/1cnGU2LFC/0REIaJZpukq++ZR03X94KZiOEWsUkW8RKbrVIE7x6TxT9 y5P86OgS2wZ9FsK6kCShm5rJaqLMRx9f4x/e0KmInqKYwKe+O6fu/ds7hhUjKBSrvPOzp/jKSM7q ixAd0+Dqbjt/f/sm+jtdivA/cHKNN989Tf2zF1nabEND+fpjS8qXIqgFAmNjfSZ4384wf/6b6/E6 LcIo1x86vsytX5lm7I93cMNfn2QkI7Vu5aMrRvzpN/dy7e5WDFlqE354KM6rvzihfFVySa9apHso oPH192xSjFICYUSbfPBUnFvvmqD+uf188t8n+IMfzat1OtrpozUY5C++O64iDf/2jo0qwVJ6upjI 8Xv/OMbdozmVMiCESwIs3r8ryp+9YxivW4J4hFuZfOqbE/z+fYuYUpZFkt51jfU+G5++tZ9rd0ct YUAxJStgxYoCsoKArtwcxdQneOzIIkPX91pDbgQ8PTKa5K3rg7xWTNl3TfPjY6u8q91npTCoUjYm Tz63qrTA7SIg1WvcfzDODf84Yu1DJfjYBe6XjV47X/1vW9g+6FdrK+znoRMpbr3rDOMfuYAbPnWC kVylYZavsz5o49M3DXLgopgv+RdCAAAgAElEQVQi3H/1rSk+fTip1vfNd09Ze0oz+Ppb+7lJNGDd 5MR4lps/d5IzwgcVFxZmNs0X3tjOO68bwFCRuJYgmStW+Mt/m+Kjjyyq0jKWZi0lX7z803u2WfPQ 3NPNFI5zV1/CL2rzS6cMFbJvVQyw9qSyQFPF7ariCt/I1NndqpilLINoYJL7KvvQYl7StkRaWsFc mqEr85o/FD33vRq6snqYUK1RlzQDl87y2Bix4UH0mg8zkaO8sog9N4MR7sXe3qcYgvh+zWwZp+qq AfkchWwFvVBgNZEh6m0j4PNiszcS3TWdZKlEyFHmva/t5zW7O3EZJqWKxjsvksRlB3ceWmP/QIDP /NYmHF1R6sUSWiGrCHvdLGE3DPp6WzlwzdXkCkVVAka0toWZaY6dOo2eWmXL+l5C4RAuv5dvH5nn 6q4yA3v8rC6M4TAL1N12dF+U4kqc2amzuJxDdHWvpz3kwwi3qGjKmfF5VlJl4hPH8aJTqQiQsEn7 ui7s7hCOtm7szhgdkbCKZiS7SnptjEoqT71QIZFN4HC6qFRrHHnySXp3DZPNOxXCSy6ncXbiKO0x H06pJl+xUZXoEon69Hp44NnD2O1+AqEl1nts5FJpNkc8BAIGLq2MXi9QL6QVuaW0Sks4jE0QXSoZ KKaw2wR1pogW7iCRTlKYW8DpDZEt1gms20hncYWzRw5Sqpk40ktUNBehYCuS1yiwYDXDiVkvg5QP qug4DKtoscvhYCDkZWN3K70tBsl0mIjNw5mFNM8en6B94x6l+PzKGZzlh7E0pXdf3c1b7h7ni6UK HpddaXHvubKTLwz5sLQAEObwvWcWuPmuSXb0+rj5shjr24Mc+dAG/uzbM2oi/+jGPpUoWxavVsNP MtDu5hOv6eKqbVFaIjYVObeSrvClh6e59e4xNnS72TEYVAREjp3KlbJO1LnwcenTX1zfyofuW+bt V/bSGpaCi5a8Kkf6wePi16nwuovbrbw3eVK0HaltZfEJxSyl/4cWihz9w41sGQhLhSSOjaf4wv1z xCLyTtHSqhgqFFPyeJomPp0v/nCG2781qwjggYujBJ12ioUq33l2lQ9/Z5rbP3Oaez643dKABXlA +lCDd//TGf7mlgGu3yMaiZhSM/zOl07z21+b4tCWIB5hirrGcLef796+gau2BHG7LI1ofL7GH3/l DLd+foRnP7oTj1uIu+TaaCr/76uPz/OPjy/xtbf2M9TlY6hDNAsJRbe0DwnYl/nJlqq8/W9P0+a1 c/T3N7N9nQQ6wJOnErzzn0eo/+spPn3HBtDsHB5PKOb21bcNKuFHGN5SssrdD04ScDsaIfoNf6Wa W/lHGoSaDm1hnbeui3LXM6v8v9f3W6ZxXSNXqPKJR+Oqrx63wf/YG+Oep9d494E+K+ilDpmiycee jPP3b+huMBRrXu5/5wb2bRG8PXmdgWhff/SVcW76u9NqXnyyZ8WGUC+j6TZu+/vT/PWt1pzLShwb T/C7Xx7n/d+Y5ND2EF6Xnd9+fT+XbU1z85fOcs9vDLC5PaBSEGJhuywTE/M5dnzyBH+0L8IHbuil rcVFrmTy/acXueXuGUIeFzddJlBSlgf3k98Y56OPr/D1dwxy0/5ONb9LyTJ3fneK275wvJGTaSrE nIY9VN3zUv8RWaRSriCwlDZdkO4FxauGRIFKTIgMQre76O3qJhIKKcQKze44F30s+0RogIXs0+yF dc0hOIpiNZCPbDiZXZUiI3YOKa1TJ7E8zeLsJGvRPmwnJ3HYp6hWTNwOD+b0JG1rFWo2nWKlrLTW uiNAZmmB+PHjBDbuIKfVKeZEu5N3W01Z6q3OhnV9fOpD76E16GKpVMFll1I3dlKZDPc9fi+Bcpxq tMyd9zxNJp2nlMsx1NdJrVRienaBrpYI1UyZowePMre0yPHjzzHQ1wu1IvGZcQZj7ThcElyTpjzj I18Lsbw0w+jZeX56aBx3vU7vkJsWb4lSNknRcFE2oeb14QiEkLC0aqmE3+dGcwVVaL2YVwWkOpUr 4s8UCfqrpJeXmZg7jM/p4dlDj+Nylrh671VkSxVW5+Iq8tjUTILhkCqg7jbs7Nmyh2pewxkKMBRr I5dYZXLyBJ1tPSzPLTM6v0QtV0ArJklkktgrDrQN6/C5uhg59RwXX7iBSr2GUStR84hw6lJ+bd0X xEOewtIE5bods1ogcfZ+nJ2bcIW7WB0bIafX8YSjZG1OnO4IscGNlBbHSaeTtA6sp5BcwxFuIxVf xfQ7iI89ht3mVgLwwvIYyZJJyAF9LWFcPjfPjM0RbG2l3R/gRz85jiscUkn/dfO/AmxZbA4N88bm LpfSHMYk1HVQTAUoP461My3kDpfLxk2X9fA/Jkr83UPzyrzpccL2dWFavHNKit7cH2yYpEQLszQx kRJvvqLTOkyyk3WIhGx88PXr+PwTqzx0JMGOQa86QPJl0zlvGWCaBwvecWUvH/rhEo+cXOaW/V3q REhOkTzzkXtn+MvrOoiFhZxbpkZpypD8PhUBpitJ/YHn0hxYJ0EoErxg+eG2D4b5zB1WMEPzgJni 75Fow8YYFlNl3vXNKb7+jiFu2t+uDr20bHfbuGVvKxu73Oz482O84fFZbhW/n6Q7yyTqOr93fQfX 74413gVbB/x89MYh9t05whMnMhzYE1GpDYPtPgbbfJY/qykcdNr4+FsGWP/R4zxyaokbLuhW82tp X1X+/sE43//QVgY6fI0+WfGGmvhKTFNpaJKM/YOnF3lgoczyn24jGnYoZi/p8Xs3B/nae9az85Mj 3DFeYNuAnbG5oiroeNPlHapfJiZtIQcfvHFYPad4Wd2w1lmgz6SvCvy3Ud5Fs/O6Szy8+a4EYiIe bHcppvTEyTUV/njNNgE/0tm7yc+fPrXExEKe/k6PmvonT6ypcVy7LaYYlrxbnh/oENOepSkJw5Xx /q9bhxj42GHE5HrdbuudQuQFiuyPXtPNATXnsk1MdgyE+Z9vGuCyvznNE+r+VgY6PIrpiil8c6fs Cff5cjXAX927wJUdNj7x9o0N6mvideoqD+sbdZ0/+c4sr93TgtsJRydSfPTxOF972wA37es8Z3Zv C9n42NvW8yd3jaBrggfZeNUr8EP8mjV1xDSqdY0jE6u0+t30RhvmU2mjXiedKeAwdHzRFssnKhtT Bt0w1Ta7YjE7i9NYvyvO1hDy1MQq87Ch16mlJ5k88VPclCjnstirJvF0jtaIl5pTYLnqlFIr2GwO 7E43erVALVuhsjpB0F/H5auSylRZyGaQauAq2V5MoI0I2b6OLvo6brRK4UkHVbdMmIsTP/kJTiXj TK8ElT/v2LNLeOxefutdw+CIcPT4EWLtIWxuG5W6TijaxuCGskpOD0X76bQHeOqJR8kfO0OtUmJ4 XTfvu/W1XHPN5QTauymu9ZEtF+loiWFze4h29hBwiquiRtUXwWF343AbOFp7WSk5MQoZWkJ9VGoa +WyCVAlWsjZIpTB1jWAgSjK+gMfhVggheqVEqL1baVPVheMEtl6GwxXi6EP34jhxhmSxwtar34Ir 0KIKGuk2F/XpMU4++yz4QiwtruAqFLmiy8vxsSn67X4cuTnWXXwljlg/Hr9AwBWoFisKA9MdsKN7 vNhiYcyMl+XjI3i9XhVMlF5L0BIpEW7tpMMpgUE5BZbs9hisFrJ4XFnaujqohq/GKUKBrKWuUymV SSVWKBbz4A9gs+msJjMqgd/VGuHIygrBXAlXwIc3kWGdCGCGxuLCsgJO1PVXIE2guXF/7k/xXakz UFdak0QXWsEC5309k+JPGF+1MCzrJhs6A2wf9PCxJxYU4RATllGXpRdNQbSKRmvKdCNnSN4lScgG xydTnJnNqTYlslF8LwfW+xiNi7mwGREpm9miAudSqtVZNImG7bz/ghB/98ASt+zrUgxEQmZ+cHCJ 05ky1+6InGNuzaRuZdBT4fPS3ToHNka46Z4pdt03xWsvbqMt5FLmMYmSVPxezDYyL4pvVhvmWfju 0/MMhe3ctK+9IfVaUZSKGesmW/sDvGVDkHufSXHLfmFC4lcz0WomV22JqYOrC0FRh9Xk0q3iz6qS KFXU/Ajah3yy5SpHzyaZX6uoZPzeFjfDneLIrZHLNfPBxHUnlM3Gu6+KKUIt3bX6byrNUdBCasoM ZiGIfOvgCn91XTvRkEjlokVIe5ZPcftghKs67Tx9JsnWwQAbu8S2X+Ejd51WkZBbxSSs9kkNQ8L9 1XvlghBKjZom1aMtCC1hLsJQX7u7B+6a46GjK0hUmfTtydMJ3jrkIRwW8gf7t0epMcpDR5f5zU5L 03v8dIq3bAjQ1/Bxie9KGFuhUOPIVJq5pbwym3W0OFnf4bUIeEEQNaTCtfwpm0Vn79YW1YZag8Y4 92+KKCEnXaic+07mQsyv4hdWwMeNYUkO5J2HlvnBu5vMTYiv1YbMxeU7Qpz+ygSHzxbYu9XBwZE0 GwJ2brqsy2JuDQFFtEdhyL/zmn4+8dQKWtWa86bgpCb2Jf9jw6yWmIuX0F0lvA47Z5dWmZpb5Jmz K2qeLuiPcmY5RXurm9ddsKHhj5e909gwz2u7aa48z+gazK6xBuqRuri6nKQLNZKZaTq6I4wn4qza 2/AaZQqZOr26C93nYTGVJ1lM0x7yEnFLYm+atdnThDqHCHk0stkiEQe4VCqF5f/81vceYHJymnK1 wMrsLOt2XsT6gUEK+Qxt7e389JnHKeoFwrE2+odjJJdn8TpdOB0aelH8VGniy/OkyxU27Rngwv1X KCzN9o5uNJudrdt2kctlOHzwWVaSC9RrOsVcBZ83hFEqYGaSxCQZOrGAa22Muq1OwXBTN/zUTAe6 FH7VNOwVTVUyL1KjVKvgctWIpM/iKCxTrfdg1qSSeZBAKIBft9MZbWXr1m3oYhYslagUSxQWH2Xs 2DPsDLbiWLeHWCxKLOrimUOjCvqqlhRfYBLD6cWuwZnTJ4h0DJDLJXCYFcIuDafDTbFQx1zOYCvn KadSLJQ0Ym3tODtb8Nl9VMyCOqOF1bhCnCnkkpi5JInlFfKZJMWxE9j8rThbu/C0tJGaOoPL30kw WoCUi1qxRnJqnICInF4PumGnUtWw2WxgeNVPTZPyPiHsms5qIk2h4qZQNjBTGVoiEZwaxONrdHX3 I4JZ3XT+6n1w5xKb0ZiYzaObBoMdIsVCrlTnD//1FJ85nOatQ14ikhRa1/jwvUucTudVbp0QSFWQ seGRkURfOc+K2Kp/hLlpCorn9s+f4cGFPO9TgQOWCe0zRxNKQnvfhdHnERyL0KtOKGQpkeks5iev fOtlbez99Aj3P7vMgd2t6rkfPLPCrRu8Skq3NFJBpbDy/eQ956IkdY0bL+vgC8WSMjVq31rgliEv N18U41UXBfE73RbDFwIuBEoxZqF4cHiiwIGBUEMAkD5ah1+YsSLBGrzxwjC33DPHXUrYlahF8RFq uNzNSbGkYLmunha+r5i3EFd44JlF3v+1OVWR+YZBPxXDJJla5Z6zeTCcqpikEMsmcZSA8yu3i/9S k1gVBYGl6/IuETjE82H1UgjW3SMF5rImY0slBW+mFNMGOohoyrPpGsdmLN+cJLf/8LZhPvDVST72 6DFe1eXiTZcEufHiblpChkK/kXEJ0xJmosxhjRQFRSQ18LrqfHhfK/c8neCd1/VSLJrKR/rDdw1Y zwFep5gpo3z5mQS/eX0/2YrJx59Y4htvlkOgVBO15358aIn3fWVC/X7dsI963c5KdpGvjkqwuMDy WH1RKKqqUyZeV2N9lN1OTa/SCGtqzA0CL3li8nzjmsyXfOTJqdmMMnX+88NzfPeZJRWAomuGQjyR +VRjrteZS0gfghyZynHtoM/qd2PviOlJ7SNNJxqxKfVEFF1rXZ63zxvtvpQfumGi2+tEgx78Uh6m XmFuKUk6k2ApXWBxZZW5RJHfef1Fz0vEtzqhLAzKRGmNXPax+k/N4fneyBjELiALJ8/UqyXEql5s GeK0rZWsLUK8WCJRq7IhZrBc99FStZEspRXyxXSyQDVfJHHkQUL+KAQ7WVhIkKpKRIsVCajMpJrG 9NIKzx4/w+FHf8Sll11CZ2uUWDjMbC7H9OnneOL+B4i5PNhsdnZ096APbKKw8BSrKwkefOwR3KEg my6/hkwiqSID2zo68WULRKOtiuGLn09SIUQAlrPXGvMRi0bIVQtMnD6EYdNYqNpxGXaitQQ9+hQ1 RzuFlkuVwCinSpKoaoaObpqUBHOxXMUnKB32EiV7GKPuo1KpUpyfRUu6oFrAdLio5hL4svOKIlV6 tzM/Mc7Z+SJtIycZ6N6AWSmi19yocPtKlsLqJFXNpiqG5xcmsOVW2br79XQkBrn/3m9xdipOr9+l /P6SopHNJLB5I5TSJm5/GSNgo+ZyUS1XMcp1xk8do1RKsHFAoLhy5PIl6v4ILo+TxWOPMXTZa/C4 bMwdfYCVmQFi/QOcHJ2mXqvSNnQRyeeO0h6NgctHze3HGQyhGS6ViiImZNk/6DV8AT9+l49wLKRI 6HS8wNFTz6jUs8n5SRWQJZg+v3ofnBxmpayZ3CdBFRvciC9D9vLnfzDB/SMlxj68g8EOlyXtK6ID zUALgR0SJ7scCpv4w+QAKKYgu8fSAuWsvOvzZ2kL2Mn8wSX43A24JeDTmLz/C6cVwbYIvoSbN1BK mpTmnGZnMYVLN4e5otPJtw+tcODCVhUt+NmjKe69fcA6kQotwxqYIGeo/hiV8ziM1LntVf28bX83 j55K8tSZJDfdNcrQd5zc97tbkTB3CbyxGImMp5kRKDW1VDbTOQYj8yQHXnom7ShpXSDOpHlFMxrM qPE+uSQE1kLNUOqGMs3Ik6uJEge+OMGnrmvjg28clFcrQiu/fFne/L4nVTsW2ZZNX1XCQSxkMVsR NOQB6a9Es8rHsOx1Vh/rJtvaXFy+SYiwVE8QRJMaek3CvjWu2BIiIMWslDm3huQznt4d5YlTSQ6e SfLJB1Z5978v84PbBlWqRnOZFRuSttVEWIyj2XcxQX708QXGlyqMTidVsIpEhDZNwzKWfZsifOLx MSYWMhw8m1J+qsuFaas5g+VUiQNfGOFT13XwwRuH1Lia8/5lEX3ueBLdEE1bEHosoUJZAJprKBxF VkyEJZkg0TRpRDIq0Ukch+a5xHfFWAVtRbdTN00uHgzSFbOAhJVm38Arlf1x+aYQQ11iDpScTGlf NGzZw8IARe+0tGeZKyX5qb8rltykBJVXgMnpdYIBy/qQq9XZ1NWCz+1WSCPXeHVsNlMhkgwGxfcm lgmrn2pzKZ4lm8baVYppWzOsaIC6bPG1c/mVMlVOW42N0Qo+36UYdgPDKPHNp8doD/mZS4CeW8MV KhOz18klC5yeKFMpjrDODcaGrSwXStRLKZLZGiGHC4+kEzSsScsToxx9+iEy2SS33XYbe/fsJFcp sXNzL6eOHeWHhVVs/jYWk/O4ymXa2jqJhH1Uy2XGFuP06nbu+N196PZOfvzdh5kYH2E5vspPnnwG n8/HJZfsplAoUJYgFqeT1+7dSfem9SwtLZDOJRXTyuPi4kuvhLobrbzMcs1gYXUJZ6VAqpzCrlJK HMrfa8smadVNzLob09tFyOnHk4kr+C9nOUUxXqGuy3cO0ssL5BNnCARC2PTtlE0XgYiXdA1KyRVK hg1TCoE6bRi1DLXVScqal2LNjt9tMjjQwbGH7iVeEHpToOz1k3dAuyG+2AKHRlfZ3b4Fn7OgINOM Sgq95CBgK1Gw2ZlZauG5I4/gKOVYTRawOx3MTI0QaWnHI2uVSZBYnGd2YZapU+Pc0PkOBrqjlCs6 LVt2UyimcYQ60O02ZZqslCW4RArJ6tQEi7RQVrinTodUmihi1MsMDKxjZulpFb/hcLQhlQLFHC3Q eL9yBqd8Gjr8+6ML/N2xJD9857Ayi8nh/NB9i/zTG7tU+LsiWIqYW0zGIt7iTpEDahFx6bCcCgu4 Vkw+FrrG8YkEDyzmeepN6/GeY26iMwg9tkyB1l/WOVPI+MoEJlJjg9k1pC05cHIU33dVF7d+aZSP 3FzkW08vss5vUwngio40GYNFzpTUZiqYIWFOIulbGqHLbeO63RH1/3tf08sVHz/Cvzwww/98+wal YVjvkigzyyx4xZYob7lrlD9J1GgLNQI9VD9l/AJirfHvB1f48F4rtL1BM6wOS6cbqQzPh4SShgSH VGb1kROrSmN89w1Wwv05DaYxFzLNspGahN/aHtZ6qLmU2mJ16YcYisXUbPkuZcLkrvdcEFKbSnD8 rLlvUrLGWjQYiqxnTaRGmce6zv7NEfZvDHPHDb387r+e5ne+Ps3pPTFVQFOR7Ua7whitGbaGLK3u 2xJhY8DOw0cWmV4q8N8va8frkhQTtVXUj+t2tzL41UkeOpbkwZMJ3jws6RONig71Oo8el1wrG7e/ evD8c405UXqvVqdiyphFe7Fu+ZkBKuFD9qVYIKwZkxAJq58yj5ohkFUif1pzKGu3TfxxWp2eqJ03 7e+yBJYGUzr/bEOOQ5hdlFvuPstfFCq43dIzucs6H2J+fuLkihU/KZB4jW6+Mj9EGHNhauIiMKmg 0dni4aZIr4XcqWmIsTuTLtIiAb6NyhzKdaDM4o3cTln/53/UHFuTJMKb7G+ZP5thUKwZHFkoUDY0 y+qhVymbdmZSaTAMOgNFEsUaM8kaEWeVSi7Oks2NM7KOSKFMuuQkm6+jVYtUiwkq5pAyucvMSFtu f4BcNsH06HE2ru/BaXcpRJbN27fxjtvewXe//V3CsQg/OblEx0KB/RfvQkTw7z/0JMlMAr8DvJEo W9cPk0tmuedL9yiCK2DQo2dOc/Mtb0KCaDQpXOq348in8MjcZSWFTyfiDdPpd+HPnMKjxylXwtj1 Cvl0mlw+rYJv6pWyCurxFrKEAk4Ko3MUXC7JZ8Hh9+KTyGOJLjS9VGXOsklKOZPlpSrhUoneCvhc JrpZoVYuUMikcLdswAy0su3aHXhYoLYqICVSoqOMbq/SGXLicTvp8g9QHOxldnaW8toiPT0+vnLP /bS163S2efBrQbyBMIbHBqV5FcQTjK6ns7cfey2My54m1DFAfnGCWmGJgC2kduvs8aPU8ym6evtY WjjK2FOP09/jwqZppBdn0RweFlbPYvi8yodXK6cUOkuxUFCMrrXFx6uv2MeTzx5W5XOSqQInz4yQ TRXxtu6ls/8S6sVFtY/kvL4CDM6SqBXBk83bELsteQ2yxQpi3rvl7mn+93WtDUe99cxGv01FSini 3TzRjWP7uUfmrUAQoboqL8v6qetiGlNya8ONZuITgqZqqz3Px6bOjU48UeTOQxk+sKsRQXmuDI0w NyE41hRYBFsGYB2AV18UZvjbNu783gwffWIZifZTY1JMWPpvERalUYmmIv838seOj2WsCEJ1uK1D LQEUF3RIDWLLdCNap9yvq0Nvje3ybUGVP/S5707zkbcPqgNvtSP9MvnhM6t8ZTTD0TduO088m1xO qQ9i2JC5seZXvpJRWrYusf5Io0KABaBXJP9mX0x+8P+z9yZwkmR1ve83I/c9s7asfevqrt6ne9ae fQaYGVZBAVGRe0XkIly9IldUXJ4flet76hPfE0VFwQ0UERxghoHZmWFkmH3p7uqt9j23yn2LzIi8 n/+JjOqaceRxGR7zPu9T8flURWTEiXNO/OPE+Z3/rqLEiP5HgKuDmR2ORHGoinOzMkWoV6X6rR5C 9UV6+JZLE9z6qQv8yONpbun4OkpaGDu+5z1PbnDrFQOKdssbZfrjPmXJqcSpmkMdXz4e4wERC9qT oSK6FTZN2rDHlRzLJrEw33ttL//HAylmizpf+5k9F8t0Cgu8vu+6HmVNef9mmbt/Wrg0MXKycrQp +LW5ZFWrGLWIHhDueVJAo0NHFSS7ozuVk4oQQkOxhJV3K0HFRZop71xgTmqWfUtFmhDlsQI7+zna Gn90az+/dsc6l01FO0Y8lv5M7q3UHTw7l+PaQxGVrkjGh6DgX3x9iQ+9ZUohn/0uSo0mHxc3DrX4 kK5d9DVUD/A9/pP6RUpRK2ypcSTKf3kiay+WjpZkwWxJrjUXpua3tIhqDNmA1tm/+OXtgGFbYil7 MTjq6U0wfeAIxVLFkpAAP3x1zAoyLPpYZ0dy0m6rdvv7+9X4lvNSQyKs0dfqpml0Ew2H6BsYw+lw YbRbXHH1ayg0vawvnmH93HNsTo/TPboXp9NB+vxzXHXdCYYHe3n62TM8cN9XSa6v88Ff/mXIZtg3 GOHU+XnSKZ16ZZYL52fIVnQmxgcZGBjguhtu5Iuf/xceeuB+tdByhMNceeWVKukn9S2yukat3WZv l5Nh9xJaKIfZ8NFVcjIxtd/KRK03rU/TkGDMHpJzJ1k6cz+J7mG8ZoRgNKxUPfnNedxiNh/eT6Es VoYGBAYIj0XZyhcIJDfxeMXM3qn8NdtON+HuXhr1As1yhUZ/H84eD+W183SPHsRsN3Fkk8R6uik4 hQuS+dSkuzvO7NoaGQfcOBwhHtZwGeIEnkJvxNCkjbrcl2dsyKTPcYS9Q0HmL2yx5KwxtaeLy664 ConEcuqxk5i+GMHEGOP7Pbg0jeRaGbdZpVU8iXt4Em93HKezqUTL3mCIgeG9FFZnadVbdLvdnLjy AA99+wk0l5Oa3qCvy48W8BM9fCWuy24k6BPbDZlbbY339zj4rW/cGrwPSmgkmeBfFKrrk9/Kcq5s 8Ok3D/Pu14lVog1Y8OFbErzn9hWiAY+ylpT6ljYK/J93bCgxj0hQVYw9NSG4uGI8yLu/tMXND28w MRwgna1zyxUJJfKTVfm7//YMn/vAES6ZEDtvjW/P5PnNL17gpmEXLZXZWFqwJh65rrjL7Y/O0gGo p3E4CXic/JdrB/nvd6+oSeXmg6KLk3ssYLJIZk12AgCGxK5si6l8kx/9y1lGAg7e96oh9g4HlKXh zGaVz83WuOuGQQtAJMg98Q8AACAASURBVF2G5D6UDMiyOaA/4uOun5nkjX81S6ZS553XDxJSK3W4 99k0//3eTT722mHL8VotDQRwBHEtEJN+OJUoyzK9lr7KpGuLMq892Md0ZIV3f+I8f/zTexiIeSk1 DL7+RIYvPG3F+VQAvA2QYiHZsjhMESOpjlo5IkRcrHQacr6TRUEsNf9oLcGtf3uBf9ZN9g+6leI5 lTX4ylNp7p8rcudImD39AT72lVXumS3yK7ckuGxPF7JwWcu0+IN7V/nZa4TW1oreIs53+O+AE3sj fPjrondwct1BK4xbW/EZbjWOJODs1VMxPvy1deU+ct0lPR1xsuU4ffOhbqaD67znz5/j4z+1n96o j7IuC7MUX3gipbhW680LDawFgOqRgL68OgEVU1qX9yDcuwR9VksLRbOJwaDiEMXN5SNv1hQ4tEyT 4xNR3vf6cR5fKHPbH5/h4z86QX+XACUsrJb5s4c26Qt6OTYVIeiCRNTHp940zHvuWCNfNnndpf0E AybJVIvfv3uBn7wqwefPFNWq35ZyfAfKfVeX5J37XE5ioaCybpQxJjSwNqdSG8jCyeFx4HELf2SN ErmuytrI9V211qnVoTE8PEwsFqOp1zsLPeuaXafF7VkO+QK2ssk1eRGqjLyYjjuQ9D8cCiipiZoX Hn+Ic2dPUsxnqfaukXq8gqNyK56DVxIemKTe0mj64owmovzkjcfI+PvJ54rom1klety39yBf+df7 uOW22/AHQ2j5TVwGbKXznHz+DHqjTsDrU0tNSQQa6R2j7YugJ0/hKOSUb5jkCysRxR0dYvX8SdbW lrh0fw235kJz1DCadWUs1NS3VFiwUP9RcsUUEUdZfW96S8fr8FGvbGH4aoTGpmnV5b4Gwk+HEg1M PQOxSa6+5TjuoJ9Y3zDlWkH5u1X1KqVsSY1b05Vgc/YUrcxpyVFOanWBvVfv4dTqnLJoFKvZSLCG 6/gw+fwWlfwWzoaOt26wsJKi2A6wtjJLv6fMJScuJdhoUp2No0nKoCNvwRmLUvXHaXgc9F07gm56 ST/1CKWCSU+0i0qphMOlYzRquANVQg4XwWgMgXdqJYx6hbapE4jHoN1D49w5JMalq2mS8HvxZCqM TXVT2rdFvHcVp08ioMgA+H7p4Not/vzZAn/xtBUdYmew5fdd28Orj8U5Oh63dBQXxfH86PWD5MtN 3vGPS/zYZ+cwHR6mww4++qZBbjoQ5gEV3kvEPqJIh7fd3M9nHsvy9s/Oq7XxvoiLc1ck1ED+Hz8+ xcfuWOT47z/XMVBo86oBP3/8n6b55L2rHXMImfCbauDZjI/1sVofiPo4BS86k+tP3tjPf797jT++ VVJAWBO8fc36fOwJTgSTsuJvK/3iV39xP3/3QJK3f3ZB2bTLnGc62vzzT4xbcS7VBCErbAF7eRHS suhYNF53aYKH/5ub37h9jms+ftbSu5gaB6IePv9jE7z9xn7V9As4AXsSERGPEqPtBAfR10gzGv1x jU//5z385hfXGPmVpxVgS9vvvyzMn73rAJ//9UfVKt1a/Vv+ehdz3MlKXuBSJnIrq4KkO1IZI7aT uWp86IcmGOn28ptfWeRCQZ5bAFzjvx4Pc9cHDyoXBRl7//t/mmLy68v84d1JzlZWLeKaJv/b9X28 57UjalKzrRttWr/03uSqQ11Mhj2885IeQl5L9Ch5CYVBaGkOZaR07cEupkMu3nZJF36PNfzl3cvz SKSbT//UXn7jXy/Q95Fn7BfNzx2P82c/dZgv/OpjKvSRVGjpS2WCtyZ5azrvBKJWI0ckAsLViF5V NjFGcfMvPz7G2z87x7+cPaUWNv/yzr0cm2grI5i/+q8H+euvL/Pav76gghkIOMry82O3DvG+1w7j 9V4UtPz068YJh7z82p3L/O6/pRW47g26+OibB3n79UO8+8uroKw1LwLsS9Ptuz8rACK6pZfcOkCi rlkPvF1MSQy2f730gQ1YL77q9bjUSv5FVb64mPr9UnW81DkZd6ZEVZF4hsJLmzAyGaF3QAIxPkXp fAPvwGWUGyUqlSa9w1M0IiGOHr2Gh++5nfvu+zavff1bObW4zsKWg+fPLTI7P8/GRpJE/xChiBiI aQQiMVKbaxSqZerNKstnTzNxyTW0tCBbqbMMD/RRrbYoptPEp8dweboIB5u4fQLCbTymTssdolUv 4fN6WJ1bplws4Al0Y0bilDDxhgJksilCw+MEY4NoXX34PTKiDcq1FqtzqzRLG3zrGw9y2XXXctXh W1TSUN/WIjhb1NxVXIaDSGIUf/8hsheeJZ+5wPrsDMlagPF2m+7uQWJjQRrZNbqDLa67wsMWEkC5 TDG9SV2PUHWFWFhepFmpYi6uEu3tZmp0H3qpRXj6AEQSNP091Jyy8NMgFMBo1PH0jOBYWGLD1UPf eC9B1inWalTSM5iNPpyuYYxiGz0ap5TewNQ9pMoFBWylXFWF2nvTRDc/dWScu89tklkokX76cyw0 PsMVV16L8cEPqPnU8bkvfFHF+H3Lm9+kMrq+5Aj6Tic7pts7dQuijLc4C5eyJFJchZ06R0asiHTk YTu6J4nOML9WJuTzMTEkVoaiULUCyCogVuIOe9Wo8fxCUa3M9wwHCXqsj1+iZYhwTsIobeaqJGJ+ +rpEXOFSwGpH51CPYjGRFmdjr8JlwhKxmPqiOjojS5i3LfKzr6uJ107tYdNGgFG4HcXJyUq+TbVm cn7TGkjCcQZ8osOxDEpsMaDdH9Wu7aOjlPQO5jd0FSEhFHQz3ieDX0SQlh9YZ/a0ybO9v3ggNVs0 szhPS1wm5yR9jITZEodnMe4JKQtM+9k7oN3hysQ0X0ScyguiM9vIzjrdeSdCNzGAEd2L3axm8uys WMIaDMR8CkSkb+q5ZVKUzOlKnwfPLpSVaFTK9UY8gqCKTgLWNnbbZP53+x0LEnVNtSHAZYlfLy5k Lt6pwEcqtt93Z5IWABe6VGpNJgYjhNyWhaqMbUtTK2KxjkFQZ9xIrR2yWJxD55f9nJYridDcQSov odnq+PwO9vSH1TOrPqiutqjWncyt5S3QGpC4iVYUEHlzAtvCXSufzI44/NmlnGIYJ4fDBL0uK5ND uwPwkmlbLWGEmP8vbupdXqz/JYHl4uUf6NHFvsg4tcaDsCzJjRSNRoNCocSph/6GfdN76feXKeW2 cHUfJTo0jb93iIW5TUXDqalhipsbfPWub9A1dTkz52aYP3+G3Nocixeep6evn8uvuYlqpUJIXBeS aeKxEA899BCL52e55YYTHJgaVZkRMqbGTSdOEKqssKenQnj/tZTbQ6yeeZah6ctoVKo0JK5ma4uA N6CCRrv7J0idfIjs4nME4mOM3/x2zFqV3NIzdI0eRLJwF/I1PB6NRrlJQ57r9PPMnH+S2cUlDhyc 4oZrr2HkwHGVEHTl/EkWz53k0jd9gO7xKWVwIsLI0uYCj93+WdbSKa57y48RCngwTQMzu8qgkcbn qrBS0sg4xKq6jjs2QGxoglgrh6e4QqOUZeapp4mMTdN3+FoiQ1dSMZuIm4MKEtBuK7q3DSfG4nnq c8+ykdQ5dPVxop4CyzmDnqjGaq5AZGCKRjWnuLFWvUIhm+T07AK5coUzJ2e445vPcu34GO88OMTf P32ejXKR9WJV5Rm89rpr+G8f/EXlZ3txafi9Dj3llCafuJhwdj72TngpAR0rxoWVV024CEsEaFlR 2it0WeEe2RNXgCPnZNM6FpLqh5qAxKBBeAdRzouVnqUrUydM4VisVbmkI1EpSWSO7PRH9ErW6ltO iMXFRY5JzkudAgKduUntrPptp+K2pWC3J7XOxGhPbApIlD5LkLjzMUnEO7/GJRMC2J1oDephRPfV Me2W31JnR4ennlvNjJYewYo96dt+EPlgFQVUGzYQWf22OVHxEVPcpGpLnk0me6tP9l7anBj0KH2f TIeKTuKsLksERUvrOdTbEiMVEfc53B2xnpS2Fx9WAGSFFUpUKsYETgl1ococm7JExTbIiMhAQaCi lUuJ0uRJLxkPqvOSFV06o3oi71q9d/Ug3/mfMk6wgUcWKvJUssgSaokzvRVuTd5XkxZuOxO7PUYE bEUX29aYkJBedruKY5W6OjHtlLWf00J3FVDcXhRZCyJbp6noqcwu3FZEEVkoacIpuujpkmBL1vtV k27nyUQXHPRihUqzgdfunxIzW/o9C/Gt93NsNG5VIaAu+gbpuIwlNZmLa0VH/P2dqfe/fPUicMjr ss1+rGq+G67tu2tQxpBslnTFGqSdczvo0yn0kju7LxvJdVyaH7fXhV5vUNDb1LdSlAtb+PvGqRSq ZMo5oiEfoZFpwj17aRZTPP3oQ+w5eEzpu0pGi57BceYX59lKpjGNFuVKjWK5htOR4u47v4zeqKkI Tal8kVpdp1Kq4/O2Wd1I4w+GCTod5Fs6taaGttWgJtbkeojlZJZSA1ypNYzkIg5nHGdQgju6CHWP Uss+R/nsV2jWTEJ9PQqQHC4/kZ4xZZFJW8fnSFNNrqG1XGi5LL76PNRyTA1HmR6O09Kr5JbP0yhX aRYKxMMBXF5NGZS0jDZOjxPRo+q1PJsby2zOPEmwK66c63sneikkdciuEj96G/NPXiBbSDMmC65o AM3nYv3JR3Akphg5eJytXJZKvU6gWcXptCDG6XLhMBpKX1qslmk3K/ii3fRm5mmlZlmLjbK5tkxf bIhm20cqk0QzW3iaOhXJDB4McezAfhyOBidPnaPZavDI8houp4OyQ4xs6jj8Ldq1mnL8lzlQ3v/L BjhbL6U4A/XddYBCFv7iL2V97TiUfNxa+osDsXzkymJP7pHhqcpZA9j6gDorTwUqcr4zWW3rzqwI IXKbcBgKpDrmyZaWSM51ZPOqchu/5Jyp8pUpWwD1aXRW/J1jpffr9EtiBarMB9JFxZnaHVaF1Qdo lZc6rD4rUZ5Ksik3dcCtA9jWil4AojM5CsbJxKQ+WqlDxFvSV/l3kX4WfS0RmdlZNqge2MBkd0eA vmORJqfU+1GgIXWK3syyaJPzNrQrcFcUlsdRLJDqj5QV0ao8g+KkrH+Kfoq2HZGlenXSf/s1dnya xLJP4XWnbxJX0yplga7YOImuzHpOeWJJrCqLCsv03RoYnZv/o530QQGYRSvljK0GQ2f8KHP8NuIA L5sCN/WIFxcGkrtOjQV1n5U0VR12KCQgqcBfTiqJhTyx/Fnv0fpljTbreQXw3BcXaR0RrkVzaxzJ M6seOcQBwETZlNoLn44xi83tS8GLdJS6Zex0+iwPJUNFRcURILW0qHLy+/B5/0dU3z5vg8j2iZdx sHPcCm3le7PHgBp6NtjZC83OAvY7N2lSa7SpFTP09cZ5aq3M//jCU7zmYDdvmvRSLRv4PDmMUgpn 3Il74REwKmi+Xg6NxXEFTExDZzOZpe7w8dwTX6MlpvbNBpValWNjvfT3J8hVJCJHQokfn5iZ565v PKbGhwSLKpdKKnJ/rtkitZXjrtqd3Hb8ELnEMc6eXlGGNPFwhPXzc/QP9tKT6MOtuWnVdGq1KvW1 U7Q9LkLuAO7SBaoz36I9eJhypU2sexTcZfw9k5jaU2rOKzSaRIfHuapnCKdDZyDRRWL6OG2Xj3Sh Rq7eZmNpjgMeJ822SatVpdl24dHq9PhT9EXdmG4XfiPHZqaAf7CHnp5xnGIh2bef8SMxTn3mU5x7 /Gl+6KfeQ+/kOKlam9TZWW569Q3UcuuEkhcwRy/D59Twtk1cbh+FhWfxNwv4e/eSNU28/hCuvh40 V5DREwcI9lTIFUroLjfLF54nqDlVmpy+vkFK+Ryr62t4nC1ypaJKdHtg/5QKpF3NZilUHMrKUtyR 5AuRodN2SsKcl7lZ87QAkDVdIkYm235lYg5ui1WsD1rkoRKFwh640ryaINWMItOftfK2zykuz548 1Swkg94CNDVBWLOLWuipj80U/yAbHK1+qQm0w8Wo9gQAOnnDrDqsaVchi8x7Spcli+HOalg+KAUa Uu8LOQJpXvpj8UHyWB2wlCrFX00ZG4gxiippf6KKXvZkqMBN0cHijFSfhEBKDig1C20tEYsy7Og8 i2CP1C/+aeIfqJqUqVhdkF+ddyJ1d6wExZ3B9kUSsBU/tm2gV/VJWUukJvcryshLlgnHxnZ7saKI afVZreTFTF76rfy4Ok+h6pQhZ/EtauQJCHcadRhuSySp6rYBUCqWzbJy7Px4yZ3KIy/vrEMr6a9y i1Adt+ijtFEdmqi3sA2K1ru0waHt6HCBtnhWgFCeSGhsj1O1mLKezepQh8Y7abJNd8uCVMrJHfKn yGHN1tvPYz+1es8CboZmDVnlSyhrjo7+Qt3XGQuduoQndWgiERG9nSx9LMmGGsM7FjrbjX0fDr6f oLazOy+u1xrrO0tcPN75Bi6efYmjtkY4ECYYiJDcXGHTjPJvKS/Dox7+82CCU5/+Y47u72dksJdc bg6v+TRNibXp8LFwdgkt21QO3E8+MUeuVqdUrhGJ9ZCp5CiVCripUTRTaG432UIZn9OpYlVKT2SB KPNGcqtIsz3HrZcd5sBEgnK5RCqVIjR3Fle0n56hSWV9W9dzuPxxKu0gA+OjKihxM5dkY6EX58Dr 6HIJZ3YSN01qhoHbH6CUXKaQyTAwNa7M5p3uIPl8gXqlgBYI0z91DFc9j9frpe4M0mw20IIxNHeI 0/d8jrHDx3HHIkTiCVzUCU8eIGLmyceO0ts4Q7uyweOPz3LittdT84XwtLwMHZrg2pvXeeBL/6is WjVvkLK/j32XHsMV9BGUhKpTN+FweaiVyxRyOoN7YjjrFTx6DtPjprB8AdPjoSvRh+kP0GyUkQDc RqtMINhHd2KSjXMzeD0N9GpNiW4lJKKogHxtF6PDI9x8841qXrr7ngfQo3VyhkmtKEY8XgyX+AJL ZJuXuSnGozP5qqrskae+Zis2o8qRJnNkx4Tagh9r0rMmablTdAYiVrG5FrlBbpGJXZaoVsXCJV3U B1lcnNRrrfY6OhslmpFHs2Y5aUNNqJ2+WR+SPflbIKyipeyYvJRoa5sDsRIxKmFMZyKxeFAhuN03 iyOQAW3PZGJmaz2DOF9bwlqbPGrV3QEORRcFAdJRq88qGHRH1Gfd0wFrqV5mSbG+tJFJfK+UmE6Y 2RdycNK+AJaEzVKTtfIlky52zimna5nEL8bjVDRXXEMHrBUdZeEiCwtZnHSAvgN66hnl/ZjiqG61 YxHBAlZ5Jrl8cZHQeQY5p9Y61rMpmnfemQKi7YWSIuNL/hPBuOqlPJeFHgrALR2hhQLbYKpKSjWW UYiSIGhi6q4p82yLA5faLGi3xZx2w0rPbLrUK1J9tQb/RdDqvHpVgdykdIzWOFcLI1uv3AEne+xb e4vWCuQkBlpHrKq+FTX2rVFg0VCifXTejUgIFMcn76ZjWCKrWJGgbHfEfoLv3367Hx0QtX/bLbz4 t33+f2X/vdTx7+5Rem2DM0tpZfE5FfLwmuEAl3Z78PninF9aQaOBqQXp8nVRLCwRad6NFt7P8fER zJEp7v/mOWbnF8jXK3gDMaKxGAuzJ8mm0kh8KH+zQSgWY30jR1NSeikxsfUFGIYEAC8zPdbFrdcf Jhjt4sLyBiFPNx6JnWk0cTscRHpGyFaS1PQabt1LObNFauYM/mAAX7iPlu7G4T1HD8sYkTgIYGke krNnaTs1ipvrOGt1inpOWZ7rDj9uT4ByqUE4MkS56VYh/fK5HKF4gp6xA+RnH2WwL0G72USLdoE7 RDsSx+gq4fJ6KGZ1qBWV9aVeruJoGrRqLvLCwgQChOIhJXuQ+I/Xi5/goasppasYmSeop1cJxodo ZLNo3jAts0FLIiW5gjjqDRKHDuMqruONe2FwHL3SwqwWcfuc6J34k0WtTsjworc8PHHqDGajyUqh zPn1FH2JIZotaLVa7J/ew/KaePivqjx/lWpBRVxqOxovH+C2J+ztgx2+aJ1zatdZUVsfrAzzzudn cwUK3DrDX52zl+BS1KpI/VeciP2ZXCyzvdpThV6E29tt/Pv7pB92n6xWdpTZvs9qx25/+x6ZKF94 k9L7qBpedF61YVcte3X9Yv8tamw32BF2XrwubdptCYio33Z9nWKdNYDiQO1LVlPWvRbfa1+xz6ml puqQ1WW7MmluZ/uWY7Z9t93+Cx5ThfCS+y6eVUedny9YodvnVIV2OzvbvtjSdz7qcJnqMS5Watco XemcfSHNpFJ14cURx6071SVbErDdAcsy06rv4vvYrn/7oHOD+m3DzMXyQjt1yS7fKbfdJRuAt9vd fprtd7v9buw2OnXZVdpc+nYV3+cD+12+eG83Y5+3f38v+++ljhffI2uettEEXVdZMpztOj807STh KXDqW/dwxU234TdabJkhCqUAlVAP8VgvntAgJ0+fZ+aBrxDu6aF/qIsj8T3U9SZb1RojI0PUGhXq G6voRpOltRS63kT3u3C6rSANMjJN06S/p5ubrr4Eh+ah1myi11qksisqVY7EkY1EErT0Er62Tru2 SaVdRi8nKWUzuHThJluMHLmGUORq9LU0zoAfd7iX1OmnKKbXFYA6hsbxNPLkt1YpVyqksnlcuQLd kkMtNILTF6KSTTGa6KaoxYkU8wxFJynnMvQP7cMT6CO3uUbYt5/9I2MkG3ma0X7CbqhVfIpbbdVd 6A1TuQqszJwit1XkwjNPcWT6AJozhN50IFNAJBBSUf71lQX8bZ1YPIyRz9FoO8lv5EhECyw/9gDD iS7yK6t4HCF8QV0ZtODwUCnMkVpawxCH9mAfmXSS9WSesT4vmc1NNja3yOXL3PaT7+bWW19LxOOh 3KxTaIiYOMjSc88oVYfW9rx8gPteBu7uPbsU2KXALgV+EBQQTjvR20dXTDKQWFawx/YPcv+Xv8jM g1/iwLEr+fK/Pcfi+dMqBNQHfv6X8MZ7qTQMHjxdZGF5Hd/iGvFomOnxIYrlErOLGZVdOjB4KUFx tayXWZ9dIZ3NkN0SK9i2kgi0zTb+YJBXvfZ6In6NzPIS8dEx4hEvq5kkeqCXalUnP3ee+uYS+ybj ZNYWKS6exRPrJxIZYuXMAwwduBRP0Et62UEruR9Sp2g6TpNJblKt16hVCyQbRcb3HSDeGmItfRav XqRSNrnvrnuI+O8nMjJBX18fh6anKSzN4ndqDCV6SdY3lLN0qWySnnmCQN8+BobH0e7+BP7p62n3 HCd19iT333UX5VqVoM+PP+CiuLyicsfFw10sXlgiEuulurxJv+SmCw+g1zScCXFId9FIbmJIah23 RiAYZvXf/onuUIly4ABGvJu1c2vs2+8ms76I6YmzvrjM/PIK8VA3ZlACK29ZC4V4N/tHKwxOjLN3 30FG907R9vpJN1sEPAHCXh+RoI9cJI7WqCtJ14tYnR/EkNttY5cCuxTYpcAPiAKmxeFL3rlt24A2 NJ1RkmaEC488QyjSw/jUNG63l1ytyck77+DYFVdTSK0y89jdxHvHWXc02DjnU/rdfFmiq/gwnHBs 3xCZZoVQwMBsBtGcXvLVPC6Hhu4wqdYr3HXnAxx8x23E+2PUiwUmE11MDlxKzfCznqkyMtLN8Egv vkCQUChItX8Ld9c4pWyBqStfRe/B47SSK6yffoR6OkV88jLMxhbp1TUCXhf+YAyP202wp498rUl/ JEyl6mc9lcblCXBy5iz3fu4h2m4HN193gquOXkow5CFobpA/PwveMfqmr6Z/7yW4/FFy5Soza2XW Tn6GZ5YLzCeLlEoVBuMBHL4gPm9AWZyOjPZT8kdYXJpnRHx9dZOqz4HZKFDJrOJrVihmVpnad4RT T32b1HoBkZeYzQLhsBt962mCppOucAS38zgLC8uEo02WN7KYTScTfXFGh4PkS2GKz9bUgLnkwCFe 967/glnP861MkadmVpjLV9mXCLJHOMWawexSlgODktqrtcvB/YA+s91mdimwS4FXgAIdlbYyTrBE +KK7drG6ledsRufM6dNcesXltI02rmCAbz36bboGRwklxsmsn0UCIdZLKwhLltNd5IoFYuEY3mCT t95yDTdef4J4yMeZCyeJxKbYu/c4b/ixt7O2tGbpq8X03jBVjNac6UAvlYkEvITjftrNAsMxB8F6 Eq8jiOnoxdMVw+EKUgcKpTohh+S3y3D2XJONJQ94xiluiDGUl97+SeJ9cXw0ifdGqZe2KK+fpO0M UisVcegG7nKORq1My+OiO+Dlwuw5qqUclx3eiy9XI+zuJub2oCfXqJcrFNZzLK4vcypT58nnVzif zjEYCDIQ9nJiYoD5ppOFtQybmS0iDtj0ncVz6BBlA/xBN5kzD1DLZNCcPoxoP46Wg1ZpC0eriZ5L 058ps+rxUnD6CHcncVQieEYjbGXTLK9n8RdanFvNUq9WuSLRi6s7JPbINNptTi9vUmmuML6yQS2f 43SyQSlcJ1c1iJtRyIlO0MlSOsN0vw9N2xVRvgKf3G6TuxTYpcAPigKW4ZKlbxUDHjvurY8Kyyfv A12j19ukKZmG6jmuvuEdrCWz5DNpvnL7F8gVauDQcWoan/30Z/mLT/wJtWqZ0d4Y1x6dJrN6nmbv IN2+PsaGh3CEJLCEk6YDfJqBLq4ppkmxWMThbON3u0gmk1RLdWWt6aNF1WzirBWI7AXP0FHaXUN4 KiVlPt9ymKyuJNkqetHdk7i8BiXJ9daQbOhtAm0Dw+Whni5S9uiEeycopAp4uocI+7dwFXLoC24O TSRYzdQY6g5xINzm83d9gx6/m7ddeRhW1wg1NJLLSWbrVc7MPMNsaouq5meky03YZVCizXymgisc QZfINm4/0e5h4tMjdI8O4Q6HyeZy9DVNvIZOJl3i6NETnH7uORWJJZ3KMzwRZM8BjdzzTrw9I1z+ xhtIl9okS248niqXX/9anj91hnJhBmcwjN6sUi9VlH1Ws+1griA+hRk2//APGR8ZJSO6u8QUjXKR bz+ToWXotAwD9m2rawAAIABJREFUj1vjDUffRVPilP6gBtpuO7sU2KXALgV+8BSwDHSUdWXHelXc XWLROMMTh+gfHKRrdJJ6qaQskEtbKdLJNM8Xl4gGfOiGRNp3oLVapDPruNxtvO0Wb7zucrr2HKdU buNc+TbPfWOefv8IF+YfUb6dDk3yAIq/CeRKVeZTea7r7ya1maTWblL2lBndM4XH0SJbyOFz99LT NUplc5HNtVm0ap3B/VcTHblCZUkq3H+Geq2I0YL9R6epFGsU0+dout1UGi1W5i6w/8SVtIwQAxPD mIeuZOn0PdSb87z5xgFiiWHOXKiyWnQzrC9yYjjKhVSZP/za4/Q9eYHxgJ/cZpYN06QqXpxuN0M9 ERVVRfwCQ6aTI2N9NHvihKcn2TfYx9TIFKFoBLcvRLlmUtYNQpkUrlYKlyZuFqdwOtoUiyk8XW6G ToSoGFXKJ0O4ehMwNc6QN076iefZWCySLOrMnd9koi/GnsEE/aN9xBPdtDcWKJXLhF1urrr8Cvp6 Yjx/+nmqgWH27O9X0bIyyQVqhSSa06lid0pyYdcPJKP3D35E77a4S4FdCuxSYAcFOu5EHR9VcaF4 w5t/hFvf8BYcEtjAFAWSuBi1uevrd/OZv/6/iPfEefihh6iUdbwBBy6vg/z6BonhvbzzZz/CDUe6 qOVmcWbL3PfAw0SNEer+CH2JbqKxHhrVFoZuUK4XKdWq3Pnw88ytJLlhOozfF6BYBs3rZn1LxI1h 5WN6+ptfQzg639AePMEe8LRV4lezWmNgvItDJwbZWkvRPzbIo3c/S1dilOGpQeZOnebC80+QTa9x 401vo+vgPgob62ilPC5fAL8vyFY2xUTYx4FuD45imCOTMZKpPA/NFXk2k+WpokTPc6o8fHsCARoN nT09YQYT/bi0NiN9XUyM9LHZdBCbnCSb7sI0nES8ccxyhVpmC7/WJNIj7g9h3E3JbhAgrtXI90ap up7n/FKVYs4kdvM6tcYzPHlvkWjsRh77xv2cOid+cT76Jbh8pc6hqIPI4CRur59a9TT1qoR6qVJv FMgWNE5cfjlpV5yqu03LqElwKtzuME2fC83vwtAkbOIuB7fjI9g93KXALgX+/0mBTooj8bvc9jqy sh/I87YlLYw4wmpturq7ifd00xOP0TCdeAI6AyMjNA0x728SrNUZnZymFI7zrfsfhvkVlgt9/NRV lxCLtCk769SLRTwBH13DMdZW2jhqVQrFHCfPtnjz/kMkunuYTReplips1docGk8QoMWpp75FpCfE 4eF9KlCzljmLUVwnv7FIzT1B79hxgnE/6/NLLC+t42uv4g+U6R0dUpnhc9ktkgsLxEMRcrkt+swW Y70Tious+1z4/H58Wg3qYoCSYvJglIExDzdk43zxVAm92WYk7FE+q6WWxsGpKab3T9EAvIE4gYE9 HHSVGBwZ5VRrg9m1Jh7NQcyxhsvMYgTiGLH96P4wzVyB8vqcimpS8zTJUafe1PH43PiqMTx+N7mU QbO4SMAdpen24HL5MKgS6+llLt9Ae/Lb6rn0aoHLpwdYrWqk0ltU5tfJZ/oIT1+BM+agkStSMySF k5d2rUyjZYmixVf0+yaitBwsO47KnYFkyb/FiddKJbMdCUNFA5GI9Ds9pqxP6985ana+uP/ovP1B /j9dt8t9L/udde88fnFd3+maXfa7KWOX3d3vUmCXAt8nCtj+gv+uOhMRJ1pOkW2VnkdAELeGR4ID Nz1obpNStkKrWmcrt87C419j/zvfy7s+8OsUNjaYWExyiTbP3PwZZislYj1hyuUWY0NjbG6mMAtl FeSgJZGNfAZTezz09gZJppYY9rvwuLopSoiqloYuVoBnnyQ6fIj+yCDJ1Xk25ubIaSFajnkmJqLk 8kWymSJG5iyt6iJvet8Hmb7kGHOnn8e9egFHMIivP06boGJOvSE/jrYHNwZGq43hMhnafwSjnaSa y8rD8ubXXq4cwbujLpqGl4YuQfRanFlexZ2co6a78B77UaYDC8TaJcajTkzHkMoKHnIUcXe5WCwX qRYM3MK5FrdoVCsk19ZoOIs0usuUy1VGx4/g1K7C13LR9JWpGXlckSbHD42QXK8wEtCZijVoS246 rYHRgMSQk/FYNx/6xyeptCRercbyyiLTvgQDYfHfy9JqVHD5PTR0k1atpPSm4qLwfQE4NWkr11XL q1ZFvFfhRsS51YquoC5boSas8BadcFv2eLMnfnHUtI/lmn384vP2fTvL7Dz3nY7tOl9c5j86v9N5 1D7eWdY+tq/trNe+Zp+zy7z4vH19d79LgV0KvHIUkIzckmmg1TIolUoqeoae8zDQ7Sfmm+bQ4Tfz 1Lef4Y77foxYr3B6PYR98MDGAuVWW+WLazbdRKNhZufnaNYamI4mbs1JraGTbLRILy2ytFZkPWtw fDRGNTxIA43hyy8nMbkPT6SbQCCG7jSJTxwjPnaQjS2ds8+sUi5mqJUaDI33UIldSrk4R6tZ4/CJ E2wtzxMej6J3NagvPophaoT8XRiONkbLwOHS2CoZPHZqjsG+Xo4c6iMYDzHR7SVf9lmxHF0eHE4H DqfORNSrYlpq/gbtUpVkPMKe/lHiwxMqElKm7cbdaOIspvF7ewiJiNAwqKQyyuUiUzPJ+wfpiu9B cxkMxL1UajrVSoFQKEwqp1Nrb6nFgEELwyjRTZoBl5PVskHUq2G6DboDbjYkzpVw2S246eZrmN67 l5ZYajrzJA724nT3EQwESGdynD21DG2PWrS8fIBrG2jvf1zF6JXsAVZgQSvMlgiWJeiGsIqaYXFr EoLK3sy/uMoKL9QJ95PP54nH4ypaw2233cZdd921HblB7vnyl7/MD//wD6vbH3zwQW666SZ1bIOG Xe+LweOZZ57hS1/6kqrrfe97n8q8a5eVvV3+wx/+MH/0R3+kLj322GMqE+/OcjuPpU37vp3HO8vI sd03u6y9t8+/uPzu710K7FLgB0mBi7E7JcLM3r17ef/734/H42FtbY1/e+Rh/N4A+VRKmb63Wi7K eo5GMUXFobO6sELTaOFwunFpEjbORTTaR7WQReYzt9eDoyLeBiam2cYoNom7DPwDefp7QhjhgzQ0 Lx5adCUGCHT14vb5lX6u0ahhtHUVsK4n7OCSA15OPXdSgcflx/azVQiwMudmcS7L2OQYRy89RLNa pa5XKeeLRKLdeN0uWs0KmstNQ6/QMg2KxSrdgSJx/yT1Yo6NYo12pJtyLYlfdFheyXbvphXfy5XX vYrq5tVqrkt+6yyFfJk9Ph9bm+tszvwb4wNjiDjT6axiBgLomyu03T2kC3XcwV7q5Rbnsk1i4QiF ZoAQLUqVJMVShlUxaqnqdMV7KNfKeHJZ5us6EV+EJGEy7TbVQpVR3BQkA4OIANtw2eUneN0bX8fa yjypjU1cJOhJ9BLr6uLkzHnyKxLD1lQSwpcPcMKaaW318pTwVhS2VuBB0NxWjEglm5RIiIImRif0 VieQ8Y6xbE/+sv/617/On/zJn/ALv/AL20Cyo6g6t/P3zuOd4CF1Pffcc/zO7/yOKiIAaae3t++R 8rJq+9u//Vt1Sn7/9V//9QsAbmff7PrtvX3Nrk/2Lz5nl7X3O8vuHu9SYJcCrxwFdn6TU1NTyJ98 v7JduHCBUjlPNr+pYos+/UQBX8DHG97yBsrFKnMbZYrVqkpb42oUVCoeMVwRTiad2lRO0TIdmoY4 nGvMJQvM8DpG9vdxoKeXLf9B7rv3y4r7+vHJw5itBvlUkkikS2WwEHGbIbFFdQc9IQcToQaayyTR 5aLS0EmMTFHOtDi1+k3GBnrIZwsqL52rv48aHhy+No5QlIbuQgt3kSou4PM68IZDfOupRfLZDAOH L2c80Y9wry23QxmlBGMRoiPTBIM9NGMGwXic5t3f4L7nnqVlNKkXU8R6R6g2TBqFGv2XH2E80svG 899mplliUXfSqjXZzGeZy27hdPlVzM2pRJw33Hg5zlAfibLBE48/wJNnTuN3wFjAQdYVYsMZ5or9 AyryTD2X54mFLU6uZMQlEY83iNlqki/maNRBbxqUTQOtUKBSbZDNFvDEw8rv0KmWGy93XCkWTTg2 QVdLJKkcF1SaAeHoZJOMbLYlk8z+dnnrNhlgNiDYA0vu+pVf+RVuvvlmjh49alWz479kGbbvkdNb W1vMzMwoE9FLLrlkO3mriBkymcz2naurq0SjUXp7ewkGg9t1CIeXzYo82gKnf/qnf1LcXDgcVuek j1JPuVzG6XQyMjKiyp8+fVrVtX+/5CqyIgFWKhXS6bS6T8BUyj/99NPq9/Hjx9XqUP3Y/bdLgV0K /H+KAvacIt+yruvkC2lWFxdweFwMDw7T35tgbeUspXxGrdXjQS+DcQ9NiTFZ1RgMxlUE8SfTKTW3 NPQapgRdd7kwW3VOrTYYLXYzOPWjuPtD+LObnD17mkyuxFI6y7HuAA7NT1M30Vt1NFND1zyWPqql 4Qh14/H6aLYMkrOzGC2NgMdLKDGMN+ZiKDZKrbSJWTdo1CvU214CkSG8LQNvVxBnNkk0EMEr0UPc XroCbqavvJ5E3EvDhJmTM4QTYRITx6i7gyzPL6s8es5ilbbeIr2Z5PavfI3+A8eJOQMqR2e83UP6 6XkCsTw9UR9Gts6h6cO0HXVG0jGmtiKksym6fF68WpFTM6dJDKdpt/04nU2O793LzIV5BkaG6R7e SzZXIuOO4G+32HTC/Yuz3PPIGRqtJv/w6f+bW15zm8owUB4zVNLmum5S0nUqzTaXDB1h/9XgbWUV M3VRXvg9DjMrN5VTpSsRi1unKAdV0g4BN4nCL+6VciyySgvwNEl8qiL8X2zUBoeLZ1Bc1U/8xE+o vZzfWcYeiDIIf/7nf55EIsH111/PFVdcwfDwMF/84hdVVZ/+9KcR0aN97xvf+EYmJye555571HX7 /Cc/+Un1+/Dhw2ovQPbP//zP6lj+SXu/9Eu/xMTEBFLmz/7szxgcHOTGG2/k4MGDXHXVVSwtLaly 9957ryonZaWc7E+cOKH+BBi/8pWvqHLble8e7FJglwKvGAXk27Y3ez6wf8dCDpr1ComBPvoHuoh6 y4Rcdc4+9zQL50/haGxhVIusLc+R3spAq0bIDx6XrqY8T7CfK/ZexTXT1+INjlEymmRXTvPk1z/F n//Jb/PgfXfgQKcr0FRgKgGJJYu2xJisVqs4XF6i0bjiBJqGTv+eaQamDuIMxtgqFNmYP4lpVgiG A3hcGh6vg76B/ei6SaPawOE0GT56kHopTWFulqDbYHzvHqJdCfyJHmK9w1TTa2xlCwSCcVxmC71R oZGvMPfsY5w/e5KluQs8+uC9pFMpDu07xvCeQ1Rd/bS0MJW2j+VqmOcWstz98BPMlpxki3UaWxs4 cmkGHGmuHXdy42SAw71NJkIGzadmcBdKDHV7uPnKYzi0Fl5nC7fXxG3qrJ47Tb1Sptqo49TcKu2N bfA/uWeaxNAkIxPjTE+NcHjfKAf3jnBkapxDeyfZMzrIwckEpsqwocwb7Vf5ve1VyhEl75RMVA6V s1nsUj1uL16XxdHUWhKnrKXC3VgGlHJeZQ77DxsNhUKKWxIO6UMf+pACip0D0T4WnZotWpScRwJ4 kmvpHe94Bw888MBL1i/37hzIc3Nz22V/8zd/kz//8z9X6eb/8i//kp/5mZ9RYCTl7TaFK/y5n/u5 F9T9xBNPcOuttypx6M4Lv/zLv6wChdrnpG9ve9vbEB2fcHO72y4FdinwylJApYpSWa9kXhLpkrXu NwyDrliMsf5uhkJebrvuUvKZFe6970nCYQfDQ3Fuf/Ab6LU2XrdDmcF7HY/jllQ2DRM3bkLBbqYH r2Qk6KdQdbCQfJSj4wH6ggYRT5iJXg/6/j0cHe/Ga7b5+uf/GVNvMDKyl4njJyhliqzPp3nu6SfQ 6zVEdGg06sRjLkqpCl0jewn09ODpGcMz0MXKo1/D6VijWsnjaLZwCQeY3SQU9qLXRT84iH8E6m0/ 7VaYluFA10KsJB2Ee0Psv/YW2s06Ho+PwdFJFWbL1HRcmptrXvN6K15nPqOyoWtmnWKjSl0zOXHF JbT0Gpm5s4z4alw4+agytImFPbjaURVFpVgsczARgaiLYDxCT2+MRllntDfEwuk6K5tNWsYMjtIm 6fy44kxbhqkivhjNqhokjZaVk6rtDqK5gwT8TQLtNmarpRy+0+kqXi3I2jlrjn/5Ojg7p5mYoCoR nSZ5F/m9t4zzoVf3qsHyW3cu8tE7NlSgUuWWLzo5ZVb5woG9E3Q+8IEPKCOTU6dO8YlPfILXv/71 LygsZZ9//vltcPvZn/1ZpbNbX1/nhhtuYHl5md/+7d/mc5/7nAqT81u/9Vvqfvk9PT2tuCq7wk99 6lPqsLu7m7e85S1K3PCNb3yDJ598UrVhi0h39u+6665DuENRRkvbojM8f/68ai8Wi9lVK6MZ4QQF zAQ4f+M3fkPV/7u/+7v867/+63a53YNdCuxS4JWjgLWAtcwH7F74fB5+6Efew8oVKzidDoJdYYb3 neDYMxt87Y47ObucI7+VQ6Jm4JNUSh4yJTFRrymTe83topBb4osn70FrmzibeYyWjqbXOTTRR2j4 kJJwpRoajy8m2dcdZP/+gyoqSCOfJLNwPy2Hm0h3HLO1zIUzK8TjQyr9jun0s2esh1hfhHY1TaLH TaNWpZraID4yTsjtxPA60MplzOUFoi2dZqNCLZWnmFtDc8YxPCG6xvYSmzqCiFJDvV0EB8fQchsK POpiT7F1nlJJpxELUK9U2Zx9Hme1QCIxStto0OPXKDaaVFafJeFv4feWqDs8RLbcpCoOhoaHCCUS lNaepVU3OJmHxK1vYKWYJXc+x3omxdqFNTxtFy2zicuhEx8Kkl2Y46TfxZmTGZaTW0ofGQ4HiUZ6 aVOltfgguYqbQt2j4lZW6i2MZFYFlBbrzrYnIFmgX76bgIrvJtmkTfF6Ex2ciamyTHf0byrxovhM WMNGBQ4QHZzmUUYnndPqos1Zyd7v9/OP//iPXH755Yore/e7381HP/pRe+yp/Ve/+tXt3z/+4z+O cHuyveENb1Bg8vDDDxOJRBgdHd0ut2/fPo4dO7bNjUnCPBvg3vWudynd3Vvf+lbFoYkV1F/91V/x 8Y9/XN2/s39/8zd/o5TRcuEf/uEflLhS5PD3338/cr+9CaC9+tWvVj9//dd/XYlGpV8CoLvbLgV2 KfDKUkCEk0oKJR5O6oel2zcdomhxcuKa67i608XP/92f8NBdn6eeWuayIwfpT3SrKB++YICN5Cb3 Pj5HyWgT8gfQq1XcmiSe1XEbK5gtUy1sG3qTv/zXb5IttDj2jquZGBlh37VH+KEJMapo43dp6Gab Bz/9+6ytfZMbX/sj1FoX2DftJ7flo1l1Eo4FFZOZymWpNuuE/fDsv3yCnn2XUcNLqNnE5wSzXMdT ybE2M6MSqJbqOtV8GcMZIRTOUNwq4PM/xr5jZ3ANDxLq6sUfeRpvOcP5czNks1vsOXwp+dV5lhZX iUf8ZJIpWnpVgWjJBLE3iPh8LGdyPNnQ0TGZ6okQCUQYGBpi+tLj+Lxh+heWwANFf5xyoagyCGit OpVSkUpLcuJBf1ed/u4DJI5MklmdoZhapdxqslWoKmv7fYeOM9xXob36VZqbadZmFtFdUVYWs0p8 KjYYrWAU0x3ilp94N4bDePkAJwClGS1MyXQnOrZOhmEVO2U74/FFGDPbnSzfht4ZUC8c4DaIyNkj R47wsY99TIGNGHj86q/+qhItShnZNjY2tm8WXZi92ZyWgNfm5qY6ba3QLoom7TJ33nmnEmlKIQGq 22+/XYGfWBTZ5/7gD/5AGa/Ydfh8vm1wkzLC+Yneb2FhQRme2P2TawKmO7dLL70UATgBz91tlwK7 FHhlKSCgZgWgELNysRPYzltvnZfrSvHiZHNphWe+/W1C0V7cbsjlCsoi3N9q0zswhFtbpOmKkhu+ FGeii9jM/bT1CrF4EIczQKVcpL2eYmVzi0dPXcDcO0MyWWDP5BiPPpkkHgkR8vkJxYOIKC4aiOJw 9uM1CjhYpLfXi1H0E3Q7CQYdtBpOHB4fplcAtsT6o0+hN2sgSVBTkvy0QLNpUCtWVTLWWlMnZDqI x9206yECIT8b6TVW736A3qFRAlodt9Gk7PQS6HLTrtW5UH+QzbUcc6sZXE4PW402VXFdWCiTqTUo NQ0Ms0kQDwv1JsVWk6moiyunJ3nDkUO4PSGaek3lxxOaNVxtMvUWV191Cc3SJoVSmVw2RyO/ycpG hZGIC73WoJov0qUFaOtQLNdp06LearP08O3UnTDyYx8ltPFJnnvoHiqBKP6BPhYXVvD7orz58BCG kix+Xxy9O5EAHAYOhxjCtjDaGoaA0EVcU6NYybpFTyfXxAryBdmWLw70nQAhokoxCBHDDAGFndfE GtLePvKRjyjuS6wrJYuuDWBSRu6x77NByr5uG5fIb7GitC0p7XoLhQJf+MIXEO7O3gT8BDjFQlLq FRcDG0iFY5S67HYWFxft21TZ+fl5dU041N1tlwK7FHjlKaAiLpkatUaD22fmWSq2mC1VSbjduDWD bLlOtdlkpjXG+uRb8URDhD1einob38YMB3LzVKpNjGKOadNAz54k5zlKtpgn1G4TGemhaQRp+01w pmg6TM6tFjjeqBIL+Il5NaYO7OP5M0tspbconWsyPDJGeTVJenmVeDRGq+KhNzREz/goDjy09Tq6 E6rVEqlSiafm1rgwu069UaXP6cLf1qiaJqKYkggqXW4ffUEfTq8DT7tGJl3D0ExauoGE4ihspslr DYo4SZkVjvv7KCzkCYZdmN4QJ8s5Kk2dQrNOb8hPrlAn4nVwKBbgkc0qBY/BpVMDTI6PMBCNQT1L PNaDyx+h5XIrkKfuYH6jxKErEsw++y0Gx/ZQr5WJxmM0S17y/gEeXVrFuHAO8iscvOQwxUqdhliT 4mB5cYE//WSZX/jg+xkoZDEGJ1muBTCqDcYocmJ0jHufX+JTW1nee/hVWBkAX+b4smwkhXuzeHxD ZJEOA7eoa7dXR4aSQZsdRBOCmuKj0bFOtMHmpboi10TXJXow0a/JZoOHcG222FKMUn7t135NXT9z 5gyPPPII733ve9Vvl+uiqlEMSsSSUeoQS8m7775blRELTNvow67/7/7u7xSoipjSBjj7mvjniZhS 6v7FX/xFFcFAKrrmmmu2AVXKSv9EJyiWm8Id3nHHHeq6WF3ubrsU2KXAK0sBmZJE3ifmA4VGlfOZ Ohldx2E2SVcaONsm6VIdh9Fk3/g4e8enWKpU6Y8EeSKr02jVcM6eI9QdUmJDt8/NoKdKb/JpZh0a 3oCXYrnN2GgUvRljcXEZh6nTHfMx2Bvm9Ow5jh4co6e7m+uvtlLOpDe38BfapLbStPIVinUfHm2A 7j4xqnApQw+Jz5hpuqikcpxfXWdq30He+sbX01g+z5mlNWZmV2mVG0wMD9Dl8NIqFilXqizlK7hK BulmQ2UwD2smvV4v5WYO/C7ytTZuZ5tT8zq1ik6fw0OwrTHg04jGwzg0N4MuF+cbBgMBL0PtMp4D fewZHyJmFtl3+WESx67jqfvvxBMMEggFKefKuNx+Jq84wcP/dAcb8zOMj+9RNPX4I2iFdcJ+L8+t rBD0OVlZWuay/RM81b6V8VffzIlohEYpzRMP345vMM5iMseZT36czc0MGYePXL3O+mKeu598lHyu zP7eqMohJ5z3xZn/exxnDloWeHXMMlXGVsXUWwpbsUcSsaTo5SwLpQ5b55BMScJpXfRUeDGXZXdJ RICf+cxneM1rXqO4Mykn4CG6LTH2EDATXZfo7ISDEotGsYASzkqsHcWc395s/ZhYWD700EPbFo5i yHLo0CG7mNpLHX/6p3/KN7/5TWVAIiftPn7+859XRjDCMapcTw4HPT09CghFBGmXFUAVoxZ5BskD JZv0XVwOdrddCuxS4JWlgHBvskhvO1q4224cEs3e6SFqaOQbJqahE42IxaGHABWmg26uTcTxODUO BtrUDS9LaxKx302hUmE926TL51LfuG448QW8SnNTLZUtK/K2oWwP5pdX+MaXbufEJQdZXZjDWd1U /rSZ5CbJ1RU8hXXyWxlCoQjlbBZ/uIvurh70fI7k+gZ6vUHLVScejvCqo3Hix65kcmKE4NFRXhWO U16c4/S938Ln8HPgttto5NNkH3+acjZNQPOznt7gQrrK5PRe5chuuNxQLCCsSWigF3fAx9aZ5+gd 3aty0E212njcIYx4DKdmEG05yRdKeKNDXJcI4w5HOX1uFd/qJgOXtfA4XdCqU1g6Qy6ziV6rMvPQ A9Q3lzF7DrHvquvw+sLkqjUq1QLlgpPx8UmSuRrubpjNezDTSY4fO0SYIisb55kc6GE9VeDu++7G aPsoNuuUCkVwepmZW1Nc9vTUHvb3hZSBiSS2fdkAZ3kaWKa1DrOF6WiplyupCtTgaVurI8XhaaKv 0zEdbiXrthzDLdCQSV/+ZLMBbOfQl7BcYnL/+7//+9vXpbxwRe985zuVGFOUjDYACYdkh/US7uzA gQMIZ2dvwnkJByab+KiJL5t9r90P4QAF4GQTlwF7E+dvqfvv//7v1SkpL47j4iwuocbseuSiGMcI ONvgJnmWfu/3fo/Xve51dnW7+10K7FLgFaOAqYxMJKMATvN/tnemsZJc133/1V69r6/77cu8NzOc 4Qw5MxzupCiTEmWJUqQwsU0ZjqLEcQQEFvIlH4J8ChIECRIgQPQhseHYMJLIkB1KTmSbckxqISlu Q3FmOAtnf9u8pV/ve1fXmtx6fMRIECURISVC6Prwqrvq9r23/6+qTp9zz/n/OZJQQuqpYaBTEWtB NtQ2VlBEMoVVp9Kuc3ImQTqWoeA6RA9N8FJ5jpdOnebRx34lLPIW60WDvkWl0eUTn/sNvvqVf0ev VmFu8QD1TjDXAAAcHUlEQVT//Mu/zdT8AWrtKqeeO8ehiR0K8lle+ePzjM+MMTRUVN+m2XVQY+mQ biqWLDJRmAjLB7bFMkq1zdTENM3+VVJGQHZsmnr7JtVqDvKTKFIUY84klnyTfqVNp+/gqyZyLkVa CTDjKXLFFLcni2jZNN21NVQU+s1amOWp5NLkFhawC1lqWw2agUx23EdyPNbbFvG5KZytFdIJjbGJ JM1ei/VmncjkJGsdKH/9Ge564DipMHvyGlazjmbA2VffpFxq8mu/+es4tswLz/0VEzNjdIYB9fgi hqSRVnuYcY2tjXWWn/03WKeLtOxhOLaRiJFJ68iJAm1JoTvsUW82+OgnP8vn/8EJaqVNTp05x1a/ v8uuxV713P/PxRXAt//ZISRfwZeFLIX4ReRysJB6J0vy7z2Q45H9KSRZnJOQAw9fUoQA0a7C7tuG TYQZhWclDMb8/PwPzUocE6n1gqNSvN5L3Rdekwgznjp1KkzrFx8S50SoUHhXYhOp/OK8WMsT3pY4 L5hHRAhSbCLLUvS5t+0ZWNFOeGMiWUV4hnvGTrQVnxWcdWfPnqVQKITzEswoYrvVwH3hC18IyxVE dqU4LrzOW7M698Yc7UcIjBD4BSAQqGGugOQH2K7Pn7y1yk5pC00CZzhkIhbhZP8mlYvnyOVi5Mby pI0MngbzszlePlfmz045lHuzfPz+T5HJxsOlmU6pynDtGkuzS/j9DoEW4fihg6SjeTTP5cFDM8S6 Dtv2efTNC+i9OuWWiq/CnYfv5M03zxOTe6Rz40hGlFKzGfJhhhmfRobVeg3VyBAJmkgxk0b9Gon4 ImosRiziYHs6lqnT1+DyG6+RiJkkhMvhBfSHQ2KJFL4iMTBMjKN3YKSTRGMakbiG0+/gKmN4900i LW8gXziNIP6qrG/St8pojk1PVgh0k5XlberWgMXbpinmc7SaNs7AYiydJDs3T1qJsfG9F2hlNB58 8j78VzcZDBXOn3qRP/jD/8zv/pN/yng+T87qocViuB1YXevQickUp+ewFIN8Nsfxw7dx+swPEAb+ 6PwRDqfyVKt1puZtrIHL5sZqqO03szDFoDvYTQySlPfBg5Pgkf1ZBNOkWAjc3fxdF/Ht94tZk8Xs 26HIMBX3x1/IwqsS1FzvtonzewTLt7YRhuOee+75Ie7IW8+L18J4Pvnkkz90+N36utXYCe9vb9sz fHvn99hJ9s7v7fcM6957seb3xS9+ce/taD9CYITAhwQBQQQvjIaQ7vLxiGgy8XSGlMhUNGUMTWal E8EOTAJNQc6k6JgG+C5yH65stnirWyCITvMn376E7Pr4ohDYcUmaFsof/AGxwgLRsUme/8ElvnOj hpIY57MHczxxcp5WW6ZR6jM5sUPF0OjbQ9KaxlgmTdfRqFcbOPY6VrdPNJHF6nVY2yqH5MUHUwqr l1dYW94Mf8SfOf9fSaZMIqkMi4fuZJDKUa71qSyf544DS0iJMbRUEWno0q8NcUur2M4ZjHyasbl5 HGnAYCqLFvGprlwmPrFArFHGqq0ipcZIzhTpbJdZyKT4weY6b6yWuP+2Ip9+8ASHjx3k6b85zXg2 haJo1NbOU8yZ7Nh9XilvYe0oNMeSPP5EBLmxzOW1bU4eO8DW6mlePLfD4w+eZCYXYa3n8PrVG8Qi UT75iY+EfJQoClq/jd2uks3mKBZnwjIykQAYOF7IvHLm7BshQfTEWB7PD8L/qfR+6cEJs/bDym4i Fvn2FRzavL03YcP3/dLeMzjvR8c/ra9bvbMfN544f2ubn9bfj+tjdGyEwAiBnxcConZ3twZO8WWy ukyskEFXAxRfomZ1yaSSZArHCDyXniozUBXmMhmQhijxOsRcMEyI6Ls0u6LO13MYVK7RiXlM3/U4 KysXKegqxblZynWLZ5/9NvUrOe47XiTuO+SyJh0X4pEikWyRSVvi1Iv/JzS8hcIsU9MFFNWkpVgc Ty+GzkTGqDH+wASqmmQgirDbfSbzEQauFGrXWUqevt6nMNWjWV3n/HILNbXAeDpLVNOZPZBmfjJO zxogtdok9t3GxWe+id9uosZ0epNr3Fzf5viDH0dXDcpd2Lcoc6Nyg248xhe/9BS3LWQYH8sRz6b5 XOEYvq+GTCudle9S39okcLp89NeewkzMU6lewYsEbNUzHD16hM9+aoLrZ17hOy9d5c++9xqPnjzK N547w/XVLY7uK1Je38C2Lcx4jAP7Fjh5/DC6ppCKG1RqdSJxoXfnsra9RTyaoNfvM/RcUslYqGAj KgXehzW4n9eF+IsbZ89zE5Rge7Rg7zYbYdAEG8qtRu7d2o6OjxAYIfCLRUD4bWHym6RiI3HT6rA+ BNfxmIwo9J2ALQIsZ8C0rpGIR+lqMjZNCnJAt90L2TNMXeFwzMbyZVqORyCkbkwHazhE7jb4rSce Y0Jq8/Tzb7E/kaAcj9PzfJrsY3LKJptOcP16j1OXVlnxDB7cN8XsbfejKQrjC/uYnpvl2qkXaNtd pEBiev4gO9stFopFstkMsqlT7PVJJk2qdY2uNEVBqmAmh0SyS5RvXKFPARSblfUbWI5EqrvKU4WH yAgbr8Ly5jpuXEI2knR8l9MXr4SYUN4kbw85XxkSn50lO75Aau0mcTNgaPm0WwMGHZtYKkK7VSOZ G6fhpag5MihLHLxrHlkItl6SuXq1TjIScCSfp99t4ZVaFBWbC4MWl66v0mo1QqaXfL6Aq5mhwaLX pnLzKkXTQIqk6VketXqbgdVkfnqKttVne6scyhZFIjHiyUSoIyDJ7wOTyS/28vxwjb5nCPf2Pzq7 dzv+o+1G70cIjBD4OSEganYF8xJ+WIxs9Sxky8IkYGgLVnoP2RVJI31WfLA9F69VoxIzKEoKWq/D 78wOiCganVYnzKWrSjJl36U+rCK3rvKFf/gxfvtLX+KNv/xrnv/eq5A7wP65AxT0gMRwlcmFjxKV YrTrL7BaarOBzrFihnxCwx2WaFR0ZK/DzeU3KWSTtBo1tjpdli8tE8QfoR0dZ/X7LzFz6G60aAGS OlKzQsTUcRMqrfIavm3hxdJElTppu8Fr9QiJSo2vPv00XqCSkDw66Jwvl7F8lVRUR/Xhsf0F6s11 XEMjFXeZyVpoqsSK5NJvN3F1mUEwZHNzhc1SlempCcbnumRmDyCP7ae6fIruxTUOn7wL0xswXL/O 9HQGv+FQ9mP8YLvJWrvDfYeOougBhYjCQDOwey2yMxmUZJ5Gq8O55RpHD87RKJWRSZGO6ZR3ulwb rpPLjTHMuiQiZqj44jtpBA2y7Qt1vtH2UxH4WcKMe8Zrby86/XGvbz32UwceNRghMELgA0dAGDeR 0T2dTvPNz/8dCBy+d3qVm41euCYXi2okdTVMkiuVtvgX//I/8o1yLawDu2ufyaP35zEVmZdP1bAd iVnJZdy2GM7Eeeo//Cceuv+h8Du8+trrrF+9hFkuYRenMeMWBz7zEAtLh+jfrHJtbZMxTeORgyaS SMdTbApjObr9MkqgsG9xkfbOMolEnPOX3kCyPVLj0yQyBTzbQ4u4NFyVzNR+jIhPv+rTdG2CXh9D h/ExC9ucA22ChN2mOFbi0FycjSBNIRvjI9Nj3NuoM7BcrG6TAweXqN/cRGu0MU0ZNRpBtypEIzon p6P09YBmdZWqbbF9cz2kX7x2o82g12RqboGhk+D5p/+Uxbs+wn33P4hbr3PjB69iXUvg3bHExSDB 9eoOlfaQK6ur6HqE5e16qCh+bXWDeCxJxOyzVd5m38FjXFhZpd1ucmJqP/GIytzCAo1Gg7X19dBr k1SFaCIZqjC4gvtz5MG9t3vnJxknYQRvPX/razHKj55/byOPWo8QGCHwgSCwRxYv9pKMFo3QbTkY hsRUPh7SYhmmHGZVCv7cYa8bchx2hg4ZXaVU7bJyxcFBpdcbYnkyURmc/gA5nmBqaoZLly7zV7/3 FS69+H3Gkya1doVKr8Kj//jvk7rvSZYrFexSnasNn+dWN+kd2c9+vcnhbBJnIBMMNKanoyRyWdb9 AS+dvUAhN0NHVlk88QCKoZN7s0huaprSdpmdF89zz9/+LeRkBenqKWIxg0AyuE3eQVU9OpE+C4Uy r1ZabJRdyr0Kn/7M77IwNxnWJV87/Qatdp2p/UuYKAzsDSRTIZlOhawnntulOJZk4vhtdBudsI7u 4XvvxmDAlevXeOXUedqlFSYO9ekOLHY2lnnt9e9w7sZ1nlmvIftlltstrpR69Bwt1L/r9AeUdqq7 XvTQZqPr8dDEEq1uj1M3LmEl+/R6GrnMIlo0GxKF5DMG5Z0mppFk/8IBdDkIFQgSiSiKFITroSMP 7j3cNT/Jk9szaHv7H9d279hem/cw9KjpCIERAh8AAn5I4ys6FqLMgrZKod3rk4sZGLEIbhCg6xrn Xn+dqakpJvJpFsbi2I0aetSlh865TYVKqxEWXxuahutDxFAZrG7x63/3i+ysr3HH7BiZuYNcWV7n ZqOPq8lc+KOvof7h/0R3PVzfDYkprIHFm+c2yD2SZ82JMmgFaK5Hce0CW7bPTqVJt1OlMDVHv65y 8flnMBUPQ/bDfrIxh1LlBi//r//O3IEjxBNpLN8icB0kQZkV9Sjk4shBmuLsAsn0JJ6vkJuaZ2Xl KpmJArVGiXgyiWVroQyQOV1Aj8bo1naIpZL0ml10VOzSTbqhllyDKXWWRqVJtNXk/kPTrK1eJeI1 +NJvPMrzp97gree+SqXa4+rNVTKayjl7wKYVIKkxChNR/HYdIxLH9mTUXj38YfHyK98nETW44+6H mV06iqkEKLJPTRQnynr4fzl+5wP4nkM+FuXOwwdIx2OohsxLVy6HV8vIwL2Hm+YnGaY94yX2P6md GG6v7XsYetR0hMAIgQ8Agd3s712iCjkQtbmCJlflzGuvYoe6aDq9YZ+ttW0uJq8TSSR57KMP88DJ EyQTGebmxkJB0n/7r/8VZ6/eYHZ2mmxujKMnTjC7b4FnvvkXSM6A4yeP8Pwbl0iOj7OUGQ915Z68 6yCuNUQVzP+eEP02Qnb+V65c42ynQ+FTD1IsTqA6GiIl/tKNLaL5McYm55kozOL0egzXT5MoFIlN TodC04YS58jxu+kKVpKda6iqSzyVZDAYopsGicIMvuZjyiq3n3iYvhwnakSRDBNFjWB7Doc/9vmQ blEhwkBPotgdlMBGz+bC9TxZlbC6HUrLN+j0O1xf3iEfNcnNH0JLtHC3SgwsPSxIn04mmU5maXRa dKIBC5N5nrh/EcuSeTAe5/XLq2zU2gROQCoeoWO3adsOhw/v574HHmD/4iJDNUYmniMVM5AVnWgs gipL6DqYRgR/6KFqcphlGsvkMAwFL5AYJZm8xxvmZzFMP824vcchR81HCIwQ+AAR2JPIEUO8TadL oPqUVi/QbVXDNHVLFrS9JpFhg8qGT1vQSw0tHvrIIzz+iSeIxyL8l9//PYZWPyT+evCB+/DdgEGn zX333sXw6BFk2efkQ5Ocev0MKzeuMzWZ5sjUBI4jVFUCeoMBnucTzcU4tVnh+TNXKOPx0Jf/EdmJ O/H1T/LQI0botYgsQre1zmS3RDqbYWLpEJ4aCxVdDCOCkhwjkq0y7Jyl13RD6Z6pmUks16HbbFA8 dDdSNIKNTCY9jif3CYZD8vO3ExhmqNspi9pA3yaayYZerdNvY0gQX3+T5vXX+e7Lb5LLx4lkpjnx uc+yU7doWBKqUaQzNkcxczeTWQ+vXiHhRZEjJi+uXSWbMLAkk2vVPmatjJ7JkQkixGUbPZUnGU8x Pz1Aj0boNTdZWfY4dOe93Hf8EBPZBIGsheTRtiWF/y9h2DRfYuA7KO4wlBwSat5iE1zTqtBn2/M6 wn/yj6hdhy1Hf35mBH4WI/gzdzZqOEJghMAHi8DbD0PBPyFYlgTrsim04CIRzp26xJED+8J1raik caHeD9mRMhHhOnjoEZ1cNh1WGQhNNNGHrklhGG19a4M3Xl9nYmaeVCLJ+OQEl65eodWt0Bv08QYR ugOhPi2z1WqwUeoR12X2z40TFcz/05OUy23+4vQGf+sTd2CYcVxPIfAUojGdQTdKLpNHlbzQuzPj Mlp+gZAbeDDAGl7H1svEC0dobK4iGbkwrb/ac6l0omSSM/jukGG/BpIBqhaKnmqSjOs4IEoY6k10 xcbUYziuG4q4xgydfsRkdn6K2w7u4/JyiWppGV9O4tRtokkTz9fp2h5Ud2jXGtQaVSqOzepmhVlD plmqYHVc3GiSu46cJBtNYPQ6YQ1dLqrx3IW3uNkqc+qtK+RyNbRkNgxJ3rG0j0ImTq9vkU+n0F/6 FrXFO3EiUZLRGK7dotbfJpNPoYQyRwGqIP+Xg+AdWqvRA/qDvZ9GvY8QGCHwYUJgV+BU1MO9Q/wu aRRmFlk6ci+pTIrbM25Iyi4Uo59/4Vw4eTNp0HvmNV49s07UMDm93EPL7menl+C//fmLqE6TQbfG eqkc8tQmlzfZvOnj+uNksmOhkWq0eqzuNEMla7EGOJ5OiVpxhJE5MTlJ4Ng8+5d/jt7r8MSnH0fP T2P7Bp4NnmHS6daImTGyRgZVT+J7Q9T2Fh4OjhvFDO5hGBFadNtsry8zc/ReivOLVDcrNJdfQ9Mj OMkxLC+GHk0SDSWDxGd9eo02petXKRRTqKpOLGng2w6oUczpg0w7KjEzQad5iWKsgBQ0cPJLvFXK sNNtM603aA/OEjdmaDX7vLldYrsxgGQMt2kzsGwK4+MMhg7dQYXlWpWO7XNkbpqlhWn6q0OqtRqJ ZJpLl8+TsdrUrA1uGDHWNreY0eGp0jVOra+y6vthTeFdxw4xnR9jo3UVVx4L2UzeWYMTobVReO3D dOON5jJCYITAB41AyBwoeGjF+psIMAYSsXicj/7Kxzl28t4wRKlKRiinc+mtc/z1t89TdnUCy+Dy 9jUk7xJIGrKuoxdvp2P3SNHFajZx3T5R1eR68xJj2f1EzIPMFMeRhn1MQemlWnRth25vQDaVxLZ9 hp5PoDn0Bw32T82imQrPfut/0+ps8aufeYrZ2QVcdxjOMZg7QdDbRjGiKJE4zeoOXncH1UgQSd1N YDVxAp/89CEsq0565iid5pDA6+O7FrGJJWKLd4dcuxIicUMLXysDl42tNTqVZfqNKLoWcPDYUfzK DbxkEVsbo9e7wJnSDrXtDRb2zXB4oshmcozLpR722ots5MaxvSRry6usbNZo9Aa4ssR2d0BU9Wj2 BhT9IY5nh1I6goFEKHufL1cxnaFIaA2dLpHck188gZJ3cM9dYG32CL5kMug1eDG3j4qZ5njE42qQ JAgS1IcSqpJCDZTQnoUGbs9r29t/0BfVqP8RAiMERgh8mBAQXLrS27pwgg5qanKcCb8QTlEINXuB iLhtMR1TKMjQwmTdjyDLelhUHJWlUA8tpfnEZI+tps1Kx8ZxKgxdj3xsh4jpMmyqyNEE7swB/sep F/C7JbqWgyuXiMdzzMd3ODyTZzwbZzqbIHlkjJsHCyxvr/PiN/+Y+aOPUsxkMJwK4/sWyRx4DCUR x1Nk4kaC9o5M+eppkDfB7lI4cITo7CIJ9XY8VcV26iiBFdaKpT0nTKQJXJHhouCHOnhCqzPAd2wc u0+738B1NKabbaSdZYLqJlLhGObSx4gpDk7ubrx0imZzg4EpcdS8xsExj2fWlnl5aw1/0GdgOwwH Q9qDHrVqKyR1Hk9k8QKFRqWMHs0wnsjR95osTU6F629bN2/wwsYr1FtN4lN9XvYinKmtEdv5Nj3P 4qqic3PpMHKrxhVfYXb2AF1LhJD1kLDaVXxUIZcjjJrv7WYRfZguuNFcRgiMEBgh8EEjsEvVJSS9 RGl1mEQZJiqIcRVFEOmKEKaHJolycAlTHTCu++SNAYGmUfaTpEyYlOskJIedrk+pD+eag1DxeWjv Kqb0By1K1QqDgY2WSvH4p7/AzvoV2htX6DoyiqbTsypMmRnSxJgwNDJBE9WOcN/+AscWc3zr9Yv8 +9//Ch8/NsMdSYXB9QStiQzxyUWi6XGixUN4FnSrFfxgiGok8Xs1ypUtVKePNj1DZ7OEpWbpKOPU A5OC00f2ZCzHDjkkJVll0O/i+33G9x9l59ppBr0yekyjYdkowx7RfTrVt57HczzG93+ceDLHjVIR e3OF4cpFquUud8YibGgSb6zuhKFNzxWJNN1QlkeTVSHxQr/bprxZpofPzFiRRCRC69JZNgSBsiyR iWo0WhL+sIfr2ZS7fTJSh4WpGTLpOJlIj2q7Q9eO8Nb161STKWJRGUHXVTx0O4EnBE89P3QFRXjy 1m0UrrwVjdHrEQIjBH4pEfBFNt6ugPKeFsquUQuz70I9FElIe4XlPR5ya5N0SiUhKzgDH7dmU1Ek /KjCZEILMw3lgcWXf+c3mTpyT7h+JQzkKy88x+rl0xw5dISFnElxbIO7Hp7EveMTIVWYb3VCGrCU rJDOTLDvzgPEC+PoyQxKu8TF73yH586uAEO+e3GVYHaG5fV1DpRvkG92OHj/Yzh6Hmt4CTWl4/ka XseBbh0zlsSI57FbVZLJFKXrmzhmlm4lTX5mP5KiIHkWmtB6VcXa3ibt8g2Of+RXyW6/wE63EXpG +r6HqVx5A9O3GFoitd/HDDZIKDZ/88rXSDkw3Kiw0bIwggrd1pCIpDOQAoaSRTaZIlBUktEIjcGQ pOUwnjfZablUmlUKIjTqqey0+siaSiyWIFs0UCMJbKvFendAPx5n2JehWaYQjVPp9VH8DrnxAmvb fXxFhJkDPnvgDgIUpD/9+jcCYeSWlpbCXzGjMOUv5W08+lIjBEYIvAsC4Y/7t7MpQ721t2tZhYSO FIji711PbvPmOudefBbXdRi6Ej1P6F86OIKp2PfRJYmIKrIxHe7+yGPMLB1BwQmFxLa3Nli9fh4n sYDq95iUW2Hb5UaANegylzNQAxfb8ehpefxgQDKiY9fqVOp1thoOiio8SIm28KQwyCQiZNJpchNj pNPj6LEYgduhWV5BN1Sstk0ulUaKRHCHwlMTjGQSnmwgyUK/UyGSyISyoI7dIxi0kdUIvu/i9oTy QI7OzUsIt1AtHiCZm6W6sQpuG9fr4Xng2yIBU4RwZap1h2gwpNzpMxi69ByHvusiSwGyYhAx1dD4 uJ4o2N7l9cSXsH0P33WJ6AqakQjDo7qqIusG/UiC+akCU9kE/YHDRqtBIZ5gLBlHMyKhgPZwOMSy h3ieh+M4DPoOuXwBX3aRvvb014MwTOmLLKJdVe09702IAIosy9E2QmCEwAiBX04EhJSX/04NnPiO onRq97knlm5U5MDfJWQOY5gufrhWJ7w6Fz9QUHAJJAXxvETabasKhUxfCkVFZW/3IRoqzoXnVbRA 9LPbt/AQPcGiIlLb5QDJ330Oe0KETFBOBV4YKhX9h7p1ioTqisnszl3MVTyzNcEuItkokro7F/HN xDkJNA9cWSaQXBRfw5ccZCH2is9u3ZgcGmIxf1EbKOrgxHHx7fxA6Cwo+JL4vI8S+O/MffeaEHp6 HkGgvIOdJ5hVxNKXLIU4SPLbMmJhv2LqEopY2Hz7u4t57H4fUakhEkScsGtFyO8oNkqg4YkgcliM H6BI3m4xd4i7F4qdijU9RawfCmpRYUH/Xx//F4gnKZ6lLOBnAAAAAElFTkSuQmCC --_005_BL0PR06MB441875F02C5734A25BCD6F48E11E0BL0PR06MB4418namp_-- --_006_BL0PR06MB441875F02C5734A25BCD6F48E11E0BL0PR06MB4418namp_ Content-Type: application/octet-stream; name="0001-Added-x86_64-stub-for-debugging-embedded-systems-run.patch" Content-Description: 0001-Added-x86_64-stub-for-debugging-embedded-systems-run.patch Content-Disposition: attachment; filename="0001-Added-x86_64-stub-for-debugging-embedded-systems-run.patch"; size=38126; creation-date="Mon, 19 Oct 2020 22:23:00 GMT"; modification-date="Mon, 19 Oct 2020 22:23:33 GMT" Content-Transfer-Encoding: base64 RnJvbSA1Y2RhYzEzMTgzZmI0MzU0NzIxMWZhYTY5MGQxYjllMjY1NTAxMmY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB0cmVrZXI3IDxiYXR0aWdjYTFAZ2NjLmVkdT4KRGF0ZTogTW9u LCAxOSBPY3QgMjAyMCAxNjoxODo0OSAtMDYwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZGVkLXg4Nl82 NCBzdHViIGZvciBkZWJ1Z2dpbmcgZW1iZWRkZWQgc3lzdGVtcyBydW5uaW5nCiBJbnRlbCB4ODZf NjQgYXJjaGl0ZWN0dXJlLgoKLS0tCiBnZGIvc3R1YnMveDg2XzY0LXN0dWIuYyB8IDEyNzIgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFu Z2VkLCAxMjcyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvc3R1YnMveDg2 XzY0LXN0dWIuYwoKZGlmZiAtLWdpdCBhL2dkYi9zdHVicy94ODZfNjQtc3R1Yi5jIGIvZ2RiL3N0 dWJzL3g4Nl82NC1zdHViLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u ZWFmNTIzYTIzNwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi9zdHVicy94ODZfNjQtc3R1Yi5jCkBA IC0wLDAgKzEsMTI3MiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisNCisJCVRISVMgU09GVFdB UkUgSVMgTk9UIENPUFlSSUdIVEVEDQorDQorICAgSFAgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZm9y IHVzZSBpbiB0aGUgcHVibGljIGRvbWFpbi4gIEhQIG1ha2VzIG5vDQorICAgd2FycmFudHkgd2l0 aCByZWdhcmQgdG8gdGhlIHNvZnR3YXJlIG9yIGl0J3MgcGVyZm9ybWFuY2UgYW5kIHRoZQ0KKyAg IHVzZXIgYWNjZXB0cyB0aGUgc29mdHdhcmUgIkFTIElTIiB3aXRoIGFsbCBmYXVsdHMuDQorDQor ICAgSFAgRElTQ0xBSU1TIEFOWSBXQVJSQU5USUVTLCBFWFBSRVNTIE9SIElNUExJRUQsIFdJVEgg UkVHQVJEDQorICAgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IFRIRSBXQVJSQU5USUVTDQorICAgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4NCisNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqDQorICogIEhlYWRlcjogcmVtY29tLmMsdiAxLjM0IDkxLzAzLzA5IDEy OjI5OjQ5IGdsZW5uZSBFeHAgJA0KKyAqDQorICogIE1vZHVsZSBuYW1lOiByZW1jb20uYyAkDQor ICogIFJldmlzaW9uOiAxLjM0ICQNCisgKiAgRGF0ZTogOTEvMDMvMDkgMTI6Mjk6NDkgJA0KKyAq ICBDb250cmlidXRvcjogICAgIExha2UgU3RldmVucyBJbnN0cnVtZW50IERpdmlzaW9uJA0KKyAq DQorICogIERlc2NyaXB0aW9uOiAgICAgbG93IGxldmVsIHN1cHBvcnQgZm9yIGdkYiBkZWJ1Z2dl ci4gJA0KKyAqDQorICogIENvbnNpZGVyYXRpb25zOiAgb25seSB3b3JrcyBvbiB0YXJnZXQgaGFy ZHdhcmUgJA0KKyAqDQorICogIFdyaXR0ZW4gYnk6ICAgICAgR2xlbm4gRW5nZWwgJA0KKyAqICBN b2R1bGVTdGF0ZTogICAgIEV4cGVyaW1lbnRhbCAkDQorICoNCisgKiAgTk9URVM6ICAgICAgICAg ICBTZWUgQmVsb3cgJA0KKyAqDQorICogIE1vZGlmaWVkIGZvciAzODYgYnkgSmltIEtpbmdkb24s IEN5Z251cyBTdXBwb3J0Lg0KKyAqDQorICogIFRvIGVuYWJsZSBkZWJ1Z2dlciBzdXBwb3J0LCB0 d28gdGhpbmdzIG5lZWQgdG8gaGFwcGVuLiAgT25lLCBhDQorICogIGNhbGwgdG8gc2V0X2RlYnVn X3RyYXBzKCkgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIGFsbG93IGFueSBicmVha3BvaW50cw0K KyAqICBvciBlcnJvciBjb25kaXRpb25zIHRvIGJlIHByb3Blcmx5IGludGVyY2VwdGVkIGFuZCBy ZXBvcnRlZCB0byBnZGIuDQorICogIFR3bywgYSBicmVha3BvaW50IG5lZWRzIHRvIGJlIGdlbmVy YXRlZCB0byBiZWdpbiBjb21tdW5pY2F0aW9uLiAgVGhpcw0KKyAqICBpcyBtb3N0IGVhc2lseSBh Y2NvbXBsaXNoZWQgYnkgYSBjYWxsIHRvIGJyZWFrcG9pbnQoKS4gIEJyZWFrcG9pbnQoKQ0KKyAq ICBzaW11bGF0ZXMgYSBicmVha3BvaW50IGJ5IGV4ZWN1dGluZyBhIHRyYXAgIzEuDQorICoNCisg KiAgVGhlIGZ1bmN0aW9uIGV4Y2VwdGlvbkhhbmRsZXIgKCkgaXMNCisgKiAgdXNlZCB0byBhdHRh Y2ggYSBzcGVjaWZpYyBoYW5kbGVyIHRvIGEgc3BlY2lmaWMgMzg2IHZlY3RvciBudW1iZXIuDQor ICogIEl0IHNob3VsZCB1c2UgdGhlIHNhbWUgcHJpdmlsZWdlIGxldmVsIGl0IHJ1bnMgYXQuICBJ dCBzaG91bGQNCisgKiAgaW5zdGFsbCBpdCBhcyBhbiBpbnRlcnJ1cHQgZ2F0ZSBzbyB0aGF0IGlu dGVycnVwdHMgYXJlIG1hc2tlZA0KKyAqICB3aGlsZSB0aGUgaGFuZGxlciBydW5zLg0KKyAqDQor ICogIEJlY2F1c2UgZ2RiIHdpbGwgc29tZXRpbWVzIHdyaXRlIHRvIHRoZSBzdGFjayBhcmVhIHRv IGV4ZWN1dGUgZnVuY3Rpb24NCisgKiAgY2FsbHMsIHRoaXMgcHJvZ3JhbSBjYW5ub3QgcmVseSBv biB1c2luZyB0aGUgc3VwZXJ2aXNvciBzdGFjayBzbyBpdA0KKyAqICB1c2VzIGl0J3Mgb3duIHN0 YWNrIGFyZWEgcmVzZXJ2ZWQgaW4gdGhlIGludCBhcnJheSByZW1jb21TdGFjay4NCisgKg0KKyAq KioqKioqKioqKioqDQorICoNCisgKiAgICBUaGUgZm9sbG93aW5nIGdkYiBjb21tYW5kcyBhcmUg c3VwcG9ydGVkOg0KKyAqDQorICogY29tbWFuZCAgICAgICAgICBmdW5jdGlvbiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gdmFsdWUNCisgKg0KKyAqICAgIGcgICAgICAgICAg ICAgcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgQ1BVIF9yZWdpc3RlcnMgIGhleCBkYXRhIG9yIEVO Tg0KKyAqICAgIEcgICAgICAgICAgICAgc2V0IHRoZSB2YWx1ZSBvZiB0aGUgQ1BVIF9yZWdpc3Rl cnMgICAgIE9LIG9yIEVOTg0KKyAqDQorICogICAgbUFBLi5BQSxMTExMICBSZWFkIExMTEwgYnl0 ZXMgYXQgYWRkcmVzcyBBQS4uQUEgICAgICBoZXggZGF0YSBvciBFTk4NCisgKiAgICBNQUEuLkFB LExMTEw6IFdyaXRlIExMTEwgYnl0ZXMgYXQgYWRkcmVzcyBBQS5BQSAgICAgIE9LIG9yIEVOTg0K KyAqDQorICogICAgYyAgICAgICAgICAgICBSZXN1bWUgYXQgY3VycmVudCBhZGRyZXNzICAgICAg ICAgICAgICBTTk4gICAoIHNpZ25hbCBOTikNCisgKiAgICBjQUEuLkFBICAgICAgIENvbnRpbnVl IGF0IGFkZHJlc3MgQUEuLkFBICAgICAgICAgICAgIFNOTg0KKyAqDQorICogICAgcyAgICAgICAg ICAgICBTdGVwIG9uZSBpbnN0cnVjdGlvbiAgICAgICAgICAgICAgICAgICBTTk4NCisgKiAgICBz QUEuLkFBICAgICAgIFN0ZXAgb25lIGluc3RydWN0aW9uIGZyb20gQUEuLkFBICAgICAgIFNOTg0K KyAqDQorICogICAgayAgICAgICAgICAgICBraWxsDQorICoNCisgKiAgICA/ICAgICAgICAgICAg IFdoYXQgd2FzIHRoZSBsYXN0IHNpZ3ZhbCA/ICAgICAgICAgICAgIFNOTiAgIChzaWduYWwgTk4p DQorICoNCisgKiBBbGwgY29tbWFuZHMgYW5kIHJlc3BvbnNlcyBhcmUgc2VudCB3aXRoIGEgcGFj a2V0IHdoaWNoIGluY2x1ZGVzIGENCisgKiBjaGVja3N1bS4gIEEgcGFja2V0IGNvbnNpc3RzIG9m DQorICoNCisgKiAkPHBhY2tldCBpbmZvPiM8Y2hlY2tzdW0+Lg0KKyAqDQorICogd2hlcmUNCisg KiA8cGFja2V0IGluZm8+IDo6IDxjaGFyYWN0ZXJzIHJlcHJlc2VudGluZyB0aGUgY29tbWFuZCBv ciByZXNwb25zZT4NCisgKiA8Y2hlY2tzdW0+ICAgIDo6IDwgdHdvIGhleCBkaWdpdHMgY29tcHV0 ZWQgYXMgbW9kdWxvIDI1NiBzdW0gb2YgPHBhY2tldGluZm8+Pg0KKyAqDQorICogV2hlbiBhIHBh Y2tldCBpcyByZWNlaXZlZCwgaXQgaXMgZmlyc3QgYWNrbm93bGVkZ2VkIHdpdGggZWl0aGVyICcr JyBvciAnLScuDQorICogJysnIGluZGljYXRlcyBhIHN1Y2Nlc3NmdWwgdHJhbnNmZXIuICAnLScg aW5kaWNhdGVzIGEgZmFpbGVkIHRyYW5zZmVyLg0KKyAqDQorICogRXhhbXBsZToNCisgKg0KKyAq IEhvc3Q6ICAgICAgICAgICAgICAgICAgUmVwbHk6DQorICogJG0wLDEwIzJhICAgICAgICAgICAg ICAgKyQwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNSM0Mg0KKyAqDQorICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKg0KKyAqIFVwZGF0ZSAy MDIwLzAzLzA1DQorICoNCisgKiBUaGlzIHN0dWIgaXMgYmFzZWQgb24gdGhlIG9sZCB4ODYgc3R1 YiAoaTM4Ni1zdHViLmMpIHByb3ZpZGVkIGJ5IGdkYi4NCisgKiBJdCBoYXMgYmVlbiB1cGRhdGVk IHRvIHN1cHBvcnQgaW50ZWwgeDg2XzY0IHByb2Nlc3NvciBhcmNoaXRlY3R1cmUuDQorICoNCisg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8NCisNCisvKg0KKyAqIFdlIGRvbid0IHdhbnQgR0NDIHRvIGNv bXBpbGUgdGhpcyBmaWxlIHdpdGggYW55IG9wdGltaXphdGlvbnMgc2luY2UNCisgKiBpdCBjb250 YWlucyBzbyBtdWNoIGVtYmVkZGVkIHg2NCBhc3NlbWJseSBjb2RlLg0KKyAqLw0KKyNwcmFnbWEg R0NDIG9wdGltaXplKCItTzAiKQ0KKw0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNpbmNsdWRlIDxz dHJpbmcuaD4NCisNCisvKiBzaW5nbGUgdGhyZWFkZWQgdGFyZ2V0ICovDQorI2RlZmluZSBUSFJF QURfVElEICIxIg0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKg0KKyAqIEV4dGVybmFsIGxvdy1s ZXZlbCBzdXBwb3J0IHJvdXRpbmVzLg0KKyAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBh biBPUyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBwcm92aWRlZC4NCisgKiBTZWUgLSBodHRwczov L3NvdXJjZXdhcmUub3JnL2dkYi9vbmxpbmVkb2NzL2dkYi9Cb290c3RyYXBwaW5nLmh0bWwjQm9v dHN0cmFwcGluZy4NCisgKg0KKyAqIEZvciBjb252ZW5pZW5jZSwgZGVmYXVsdCBpbXBsZW1lbnRh dGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSBwcm92aWRlZCBhdCB0aGUNCisgKiBlbmQgb2Yg dGhpcyBmaWxlLCBidXQgdGhleSBtYXkgbm90IGFwcGx5IHRvIHlvdXIgT1MuIFRvIGVuYWJsZSB0 aGUgZGVmYXVsdA0KKyAqIGltcGxlbWVudGF0aW9ucyB1bmNvbW1lbnQgdGhlIGJlbG93IGRlZmlu ZXM6DQorICoNCisgKiAjZGVmaW5lIEdEQl9VU0VfU0VSSUFMX1BPUlRfSU8gICAgICAgICAgICAg IC8vIGZvciB0aGUgZnVuY3Rpb25zIHB1dERlYnVnQ2hhcigpIGFuZCBnZXREZWJ1Z0NoYXIoKQ0K KyAqICNkZWZpbmUgR0RCX1VTRV9TVERfWDY0X0VYQ0VQVElPTl9IQU5ETEVSICAgLy8gZm9yIHRo ZSBmdW5jdGlvbiBleGNlcHRpb25IYW5kbGVyKCkNCisgKi8NCitleHRlcm4gdm9pZCBwdXREZWJ1 Z0NoYXIgKGNoYXIgYyk7IC8qIHdyaXRlIGEgc2luZ2xlIGNoYXJhY3RlciAgICAgICovDQorZXh0 ZXJuIGludCBnZXREZWJ1Z0NoYXIgKHZvaWQpOyAvKiByZWFkIGFuZCByZXR1cm4gYSBzaW5nbGUg Y2hhciAqLw0KK2V4dGVybiB2b2lkIGV4Y2VwdGlvbkhhbmRsZXIgKGludCBpbnRyX3ZlY3Rvciwg dm9pZCAqaW50cl9oYW5kbGVyKTsgLyogaW5zdGFsbCBpbnRyX2hhbmRsZXIgYXMgaGFuZGxlciBm b3IgZXhjZXB0aW9uIGludHJfdmVjdG9yICovDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqDQorICogSW50ZXJuYWwgc3VwcG9ydCByb3V0aW5lcw0KKyAqLw0KK3N0YXRp YyBjaGFyICpnZGJfc3RyY3B5IChjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMpOyAvKiBlc3Nl bnRpYWxseSBzdHJjcHkgKi8NCitzdGF0aWMgdm9pZCBnZGJfYmNvcHkgKHZvaWQgKmZyb20sIHZv aWQgKnRvLCBpbnQgbGVuZ3RoKTsNCitzdGF0aWMgaW50IGdkYl9zdHJfc3RhcnRzX3dpdGggKGNo YXIgKnN0ciwgY2hhciAqcHJlZml4KTsNCitzdGF0aWMgc2l6ZV90IGdkYl9ydW5fbGVuZ3RoX2Vu Y29kZSAoY2hhciAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoKTsNCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0K Kw0KKy8qIEJVRk1BWCBkZWZpbmVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGlu IGluYm91bmQvb3V0Ym91bmQgYnVmZmVycyovDQorLyogYXQgbGVhc3QgTlVNUkVHQllURVMqMiBh cmUgbmVlZGVkIGZvciByZWdpc3RlciBwYWNrZXRzICovDQorI2RlZmluZSBCVUZNQVggMTAyNA0K Kw0KK3N0YXRpYyBjaGFyIGluaXRpYWxpemVkID0gMDsgIC8qIGJvb2xlYW4gZmxhZy4gIT0gMCBt ZWFucyB3ZSd2ZSBiZWVuIGluaXRpYWxpemVkICovDQorc3RhdGljIGNvbnN0IGNoYXIgaGV4Y2hh cnNbXSA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsNCisNCisvKg0KKyAqIEdEQiBleHBlY3RzIHRoZSAx Ni1iaXQgc2VnbWVudCByZWdpc3RlcnMgKCVjcywgJXNzLCAlZHMsICVlcywgJWZzLCAlZ3MpDQor ICogYXMgd2VsbCBhcyB0aGUgNjQtYml0IHJmbGFncyByZWdpc3RlciB0byBiZSBzdG9yZWQgaW4g MzItYml0IGZpZWxkcy4NCisgKiBTbyB3ZSBuZWVkIHRvIHNlcGFyYXRlIHRoZSByZWdpc3RlcnMg aW50byB0d28gYXJyYXlzLg0KKyAqLw0KKw0KKy8qIE51bWJlciBvZiBub24tc2VnbWVudCByZWdp c3RlcnMuICovDQorI2RlZmluZSBOVU1SRUdTCTE3DQorLyogIE51bWJlciBvZiBzZWdtZW50IHJl Z2lzdGVycy4gKi8NCisjZGVmaW5lIE5VTVNFR1JFR1MgNw0KKw0KKy8qIE51bWJlciBvZiBieXRl cyBvZiA2NC1iaXQgcmVnaXN0ZXJzLiAqLw0KKyNkZWZpbmUgTlVNUkVHQllURVMgKE5VTVJFR1Mg KiA4KQ0KKy8qIE5lZWQgdG8gc3RvcmUgdGhlIHNlZ21lbnQgcmVnaXN0ZXJzIGluIDMyLWJpdCBm aWVsZHMuICovDQorI2RlZmluZSBOVU1TRUdSRUdCWVRFUyAoTlVNU0VHUkVHUyAqIDQpDQorDQor LyogTmFtZXMgb2YgNjQtYml0IHJlZ2lzdGVycyAqLw0KK2VudW0gcmVnbmFtZXMgeyBSQVgsIFJC WCwgUkNYLCBSRFgsIFJTSSwgUkRJLCBSQlAsIFJTUCwNCisgICAgICAgICAgICAgICAgUjgsICBS OSwgIFIxMCwgUjExLCBSMTIsIFIxMywgUjE0LCBSMTUsDQorCSAgICAgICAgICAgICAgUklQIH07 DQorLyoNCisgKiBOYW1lcyBvZiAxNi1iaXQgc2VnbWVudCByZWdpc3RlcnMuDQorICogcmZsYWdz IGlzIGluY2x1ZGVkIGhlcmUgYmVjYXVzZSBHREIgZXhwZWN0cyBpdCB0byBiZSBzdG9yZWQNCisg KiBpbiBhIDMyLWJpdCBmaWVsZA0KKyAqLw0KK2VudW0gc2VncmVnbmFtZXMgeyAgUFMgLyogYWxz byBrbm93biBhcyByZmxhZ3MgKi8sIENTLCBTUywgRFMsIEVTLCBGUywgR1MgfTsNCisNCisvKg0K KyAqIFRoZXNlIHNob3VsZCBub3QgYmUgc3RhdGljIGJlY2F1c2UgdGhleSBjYW4gYmUgdXNlZCBv dXRzaWRlIHRoaXMgbW9kdWxlDQorICovDQordWludDY0X3QgX3JlZ2lzdGVyc1tOVU1SRUdTXTsN Cit1aW50MzJfdCBfc2VncmVnaXN0ZXJzW05VTVNFR1JFR1NdOw0KKw0KKyNkZWZpbmUgU1RBQ0tT SVpFIDEwMDAwDQordWludDY0X3QgcmVtY29tU3RhY2tbU1RBQ0tTSVpFL3NpemVvZih1aW50NjRf dCldOw0KK3N0YXRpYyB1aW50NjRfdCogX3N0YWNrUHRyID0gJnJlbWNvbVN0YWNrW1NUQUNLU0la RS9zaXplb2YodWludDY0X3QpIC0gMV07DQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioq KioqKiAgQVNTRU1CTFkgQ09ERSBNQUNST1MgKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisN CitleHRlcm4gdm9pZA0KK19yZXR1cm5fdG9fcHJvZyAoKTsNCisNCisvKiBSZXN0b3JlIHRoZSBw cm9ncmFtJ3MgX3JlZ2lzdGVycyAoaW5jbHVkaW5nIHRoZSBzdGFjayBwb2ludGVyLCB3aGljaA0K KyAgIG1lYW5zIHdlIGdldCB0aGUgcmlnaHQgc3RhY2sgYW5kIGRvbid0IGhhdmUgdG8gd29ycnkg YWJvdXQgcG9wcGluZyBvdXINCisgICByZXR1cm4gYWRkcmVzcyBhbmQgYW55IHN0YWNrIGZyYW1l cyBhbmQgc28gb24pIGFuZCByZXR1cm4uICAqLw0KK2FzbSgiLnRleHQiKTsNCithc20oIi5nbG9i bCBfcmV0dXJuX3RvX3Byb2ciKTsNCithc20oIl9yZXR1cm5fdG9fcHJvZzoiKTsNCisgIGFzbSgi bW92dyBfc2VncmVnaXN0ZXJzKzgsICVzcyIpOw0KKyAgYXNtKCJtb3ZxIF9yZWdpc3RlcnMrNTYs ICVyc3AiKTsNCisgIGFzbSgibW92cSBfcmVnaXN0ZXJzKzgsICAlcmJ4Iik7DQorICBhc20oIm1v dnEgX3JlZ2lzdGVycysxNiwgJXJjeCIpOw0KKyAgYXNtKCJtb3ZxIF9yZWdpc3RlcnMrMjQsICVy ZHgiKTsNCisgIGFzbSgibW92cSBfcmVnaXN0ZXJzKzMyLCAlcnNpIik7DQorICBhc20oIm1vdnEg X3JlZ2lzdGVycys0MCwgJXJkaSIpOw0KKyAgYXNtKCJtb3ZxIF9yZWdpc3RlcnMrNDgsICVyYnAi KTsNCisgIGFzbSgibW92cSBfcmVnaXN0ZXJzKzY0LCAlcjgiKTsNCisgIGFzbSgibW92cSBfcmVn aXN0ZXJzKzcyLCAlcjkiKTsNCisgIGFzbSgibW92cSBfcmVnaXN0ZXJzKzgwLCAlcjEwIik7DQor ICBhc20oIm1vdnEgX3JlZ2lzdGVycys4OCwgJXIxMSIpOw0KKyAgYXNtKCJtb3ZxIF9yZWdpc3Rl cnMrOTYsICVyMTIiKTsNCisgIGFzbSgibW92cSBfcmVnaXN0ZXJzKzEwNCwgJXIxMyIpOw0KKyAg YXNtKCJtb3ZxIF9yZWdpc3RlcnMrMTEyLCAlcjE0Iik7DQorICBhc20oIm1vdnEgX3JlZ2lzdGVy cysxMjAsICVyMTUiKTsNCisgIGFzbSgibW92dyBfc2VncmVnaXN0ZXJzKzEyLCAlZHMiKTsNCisg IGFzbSgibW92dyBfc2VncmVnaXN0ZXJzKzE2LCAlZXMiKTsNCisgIGFzbSgibW92dyBfc2VncmVn aXN0ZXJzKzIwLCAlZnMiKTsNCisgIGFzbSgibW92dyBfc2VncmVnaXN0ZXJzKzI0LCAlZ3MiKTsN CisgIGFzbSgieG9ycSAlcmF4LCAlcmF4Iik7DQorICBhc20oIm1vdmwgX3NlZ3JlZ2lzdGVycywg JWVheCIpOw0KKyAgYXNtKCJwdXNocSAlcmF4Iik7ICAvKiBzYXZlZCByZmxhZ3MgKi8NCisgIGFz bSgibW92bCBfc2VncmVnaXN0ZXJzKzQsICVlYXgiKTsNCisgIGFzbSgicHVzaHEgJXJheCIpOyAg Lyogc2F2ZWQgY3MgKi8NCisgIGFzbSgibW92cSBfcmVnaXN0ZXJzKzEyOCwgJXJheCIpOw0KKyAg YXNtKCJwdXNocSAlcmF4Iik7ICAvKiBzYXZlZCByaXAgKi8NCisgIGFzbSgibW92cSBfcmVnaXN0 ZXJzLCAlcmF4Iik7DQorICAvKiB1c2UgaXJldHEgdG8gcmVzdG9yZSByaXAgYW5kIHJmbGFncyB0 b2dldGhlciBzbw0KKyAgICAgdGhhdCB0cmFjZSBmbGFnIHdvcmtzIHJpZ2h0LiAgKi8NCisgIGFz bSgiaXJldHEiKTsNCisNCisjZGVmaW5lIEJSRUFLUE9JTlQoKSBhc20oIiAgaW50ICQzIikNCisN CisvKiBQdXQgdGhlIGVycm9yIGNvZGUgaGVyZSBqdXN0IGluIGNhc2UgdGhlIHVzZXIgY2FyZXMu ICAqLw0KK3VpbnQ2NF90IF9nZGJfZXJyY29kZTsNCisvKiBMaWtld2lzZSwgdGhlIHZlY3RvciBu dW1iZXIgaGVyZSAoc2luY2UgR0RCIG9ubHkgZ2V0cyB0aGUgc2lnbmFsDQorICAgbnVtYmVyIHRo cm91Z2ggdGhlIHVzdWFsIG1lYW5zLCBhbmQgdGhhdCdzIG5vdCB2ZXJ5IHNwZWNpZmljKS4gICov DQordWludDY0X3QgZ2RiX3ZlY3RvciA9IC0xOw0KKw0KKy8qIEdEQiBzdG9yZXMgc2VnbWVudCBf cmVnaXN0ZXJzIGluIDMyLWJpdCB3b3JkcyAodGhhdCdzIGp1c3QgdGhlIHdheQ0KKyAgIG0taTM4 NnYuaCBpcyB3cml0dGVuKS4gIFNvIHplcm8gdGhlIGFwcHJvcHJpYXRlIGFyZWFzIGluIF9zZWdy ZWdpc3RlcnMuICAqLw0KKyNkZWZpbmUgU0FWRV9SRUdJU1RFUlMxKCkgICAgICAgICAgICAgICAg XA0KKyAgYXNtICgibW92cSAlcmF4LCBfcmVnaXN0ZXJzIik7ICAgICAgICAgXA0KKyAgYXNtICgi bW92cSAlcmJ4LCBfcmVnaXN0ZXJzKzgiKTsJICAgICBcDQorICBhc20gKCJtb3ZxICVyY3gsIF9y ZWdpc3RlcnMrMTYiKTsJICAgICBcDQorICBhc20gKCJtb3ZxICVyZHgsIF9yZWdpc3RlcnMrMjQi KTsJICAgICBcDQorICBhc20gKCJtb3ZxICVyc2ksIF9yZWdpc3RlcnMrMzIiKTsJICAgICBcDQor ICBhc20gKCJtb3ZxICVyZGksIF9yZWdpc3RlcnMrNDAiKTsJICAgICBcDQorICBhc20gKCJtb3Zx ICVyYnAsIF9yZWdpc3RlcnMrNDgiKTsJICAgICBcDQorICBhc20gKCJtb3ZxICVyOCwgIF9yZWdp c3RlcnMrNjQiKTsJICAgICBcDQorICBhc20gKCJtb3ZxICVyOSwgIF9yZWdpc3RlcnMrNzIiKTsJ ICAgICBcDQorICBhc20gKCJtb3ZxICVyMTAsIF9yZWdpc3RlcnMrODAiKTsJICAgICBcDQorICBh c20gKCJtb3ZxICVyMTEsIF9yZWdpc3RlcnMrODgiKTsJICAgICBcDQorICBhc20gKCJtb3ZxICVy MTIsIF9yZWdpc3RlcnMrOTYiKTsJICAgICBcDQorICBhc20gKCJtb3ZxICVyMTMsIF9yZWdpc3Rl cnMrMTA0Iik7ICAgICBcDQorICBhc20gKCJtb3ZxICVyMTQsIF9yZWdpc3RlcnMrMTEyIik7ICAg ICBcDQorICBhc20gKCJtb3ZxICVyMTUsIF9yZWdpc3RlcnMrMTIwIik7ICAgICBcDQorICBhc20g KCJtb3Z3ICQwLCAlYXgiKTsgICAgICAgICAgICAgICAgICBcDQorICBhc20gKCJtb3Z3ICVkcywg IF9zZWdyZWdpc3RlcnMrMTIiKTsgICBcDQorICBhc20gKCJtb3Z3ICVheCwgIF9zZWdyZWdpc3Rl cnMrMTQiKTsgICBcDQorICBhc20gKCJtb3Z3ICVlcywgIF9zZWdyZWdpc3RlcnMrMTYiKTsgICBc DQorICBhc20gKCJtb3Z3ICVheCwgIF9zZWdyZWdpc3RlcnMrMTgiKTsgICBcDQorICBhc20gKCJt b3Z3ICVmcywgIF9zZWdyZWdpc3RlcnMrMjAiKTsgICBcDQorICBhc20gKCJtb3Z3ICVheCwgIF9z ZWdyZWdpc3RlcnMrMjIiKTsgICBcDQorICBhc20gKCJtb3Z3ICVncywgIF9zZWdyZWdpc3RlcnMr MjQiKTsgICBcDQorICBhc20gKCJtb3Z3ICVheCwgIF9zZWdyZWdpc3RlcnMrMjYiKQ0KKyNkZWZp bmUgU0FWRV9FUlJDT0RFKCkgICAgICAgICAgICAgICAgICAgXA0KKyAgYXNtICgicG9wcSAlcmJ4 Iik7ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgYXNtICgibW92cSAlcmJ4LCBfZ2RiX2VycmNv ZGUiKQ0KKyNkZWZpbmUgU0FWRV9SRUdJU1RFUlMyKCkgICAgICAgICAgICAgICAgIFwNCisgIGFz bSAoInBvcHEgJXJieCIpOyAvKiBvbGQgcmlwICovICAgICAgICBcDQorICBhc20gKCJtb3ZxICVy YngsIF9yZWdpc3RlcnMrMTI4Iik7ICAgICAgXA0KKyAgYXNtICgicG9wcSAlcmJ4Iik7CSAvKiBv bGQgY3MgKi8JICAgICAgXA0KKyAgYXNtICgibW92bCAlZWJ4LCBfc2VncmVnaXN0ZXJzKzQiKTsg ICAgIFwNCisgIGFzbSAoInBvcHEgJXJieCIpOwkgLyogb2xkIHJmbGFncyAqLyAgIFwNCisgIGFz bSAoIm1vdmwgJWVieCwgX3NlZ3JlZ2lzdGVycyIpOwkgICAgICBcDQorICAvKiBOb3cgdGhhdCB3 ZSd2ZSBkb25lIHRoZSBwb3BzLCB3ZSBjYW4gc2F2ZSB0aGUgc3RhY2sgcG9pbnRlci4iICovICAg XA0KKyAgYXNtICgibW92dyAlc3MsICBfc2VncmVnaXN0ZXJzKzgiKTsJICAgIFwNCisgIGFzbSAo Im1vdncgJWF4LCAgX3NlZ3JlZ2lzdGVycysxMCIpOyAgICBcDQorICBhc20gKCJtb3ZxICVyc3As IF9yZWdpc3RlcnMrNTYiKQ0KKw0KKy8qIFNlZSBpZiBfbWVtX2ZhdWx0X3JvdXRpbmUgaXMgc2V0 LCBpZiBzbyBqdXN0IGlyZXRxIHRvIHRoYXQgYWRkcmVzcy4gICovDQorI2RlZmluZSBDSEVDS19G QVVMVCgpICAgICAgICAgICAgICAgICAgICAgXA0KKyAgYXNtICgiY21wcSAkMCwgX21lbV9mYXVs dF9yb3V0aW5lIik7ICAgIFwNCisgIGFzbSAoImpuZSBtZW1fZmF1bHQiKQ0KKw0KK2FzbSAoIi50 ZXh0Iik7DQorYXNtICgibWVtX2ZhdWx0OiIpOw0KKyAgLyogT0sgdG8gY2xvYmJlciB0ZW1wIF9y ZWdpc3RlcnM7IHdlJ3JlIGp1c3QgZ29pbmcgdG8gZW5kIHVwIGluIHNldF9tZW1fZXJyLiAgKi8N CisgIC8qIFBvcCBlcnJvciBjb2RlIGZyb20gdGhlIHN0YWNrIGFuZCBzYXZlIGl0LiAgKi8NCisg IGFzbSAoInBvcHEgJXJheCIpOw0KKyAgYXNtICgibW92cSAlcmF4LCBfZ2RiX2VycmNvZGUiKTsN CisNCisgIGFzbSAoInBvcHEgJXJheCIpOyAvKiByaXAgKi8NCisgIC8qIFdlIGRvbid0IHdhbnQg dG8gcmV0dXJuIHRoZXJlLCB3ZSB3YW50IHRvIHJldHVybiB0byB0aGUgZnVuY3Rpb24NCisgICAg IHBvaW50ZWQgdG8gYnkgX21lbV9mYXVsdF9yb3V0aW5lIGluc3RlYWQuICAqLw0KKyAgYXNtICgi bW92cSBfbWVtX2ZhdWx0X3JvdXRpbmUsICVyYXgiKTsNCisgIGFzbSAoInBvcHEgJXJjeCIpOyAv KiBjcyAobG93IDE2IGJpdHM7IGp1bmsgaW4gaGkgMTYgYml0cykuICAqLw0KKyAgYXNtICgicG9w cSAlcmR4Iik7IC8qIHJmbGFncyAqLw0KKw0KKyAgLyogUmVtb3ZlIHRoaXMgc3RhY2sgZnJhbWU7 IHdoZW4gd2UgZG8gdGhlIGlyZXRxLCB3ZSB3aWxsIGJlIGdvaW5nIHRvDQorICAgICB0aGUgc3Rh cnQgb2YgYSBmdW5jdGlvbiwgc28gd2Ugd2FudCB0aGUgc3RhY2sgdG8gbG9vayBqdXN0IGxpa2Ug aXQNCisgICAgIHdvdWxkIGFmdGVyIGEgImNhbGwiIGluc3RydWN0aW9uLiAgKi8NCisgIGFzbSAo ImxlYXZlIik7DQorDQorICAvKiBQdXNoIHRoZSBzdHVmZiB0aGF0IGlyZXRxIHdhbnRzLiAgKi8N CisgIGFzbSAoInB1c2hxICVyZHgiKTsgLyogcmZsYWdzICovDQorICBhc20gKCJwdXNocSAlcmN4 Iik7IC8qIGNzICovDQorICBhc20gKCJwdXNocSAlcmF4Iik7IC8qIHJpcCAqLw0KKw0KKyAgLyog WmVybyBfbWVtX2ZhdWx0X3JvdXRpbmUuICAqLw0KKyAgYXNtICgibW92cSAkMCwgJXJheCIpOw0K KyAgYXNtICgibW92cSAlcmF4LCBfbWVtX2ZhdWx0X3JvdXRpbmUiKTsNCisNCisgIGFzbSAoImly ZXRxIik7DQorDQorI2RlZmluZSBDQUxMX0hPT0soKSBhc20oImNhbGwgX3JlbWNvbUhhbmRsZXIi KQ0KKw0KKy8qIFRoZXNlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHdoZW4gYW4gZXhjZXB0aW9uIG9j Y3Vycy4gIEl0IHNhdmVzDQorICogYWxsIHRoZSBjcHUgcmVncyBpbiB0aGUgX3JlZ2lzdGVycyBh cnJheSwgbXVuZ2VzIHRoZSBzdGFjayBhIGJpdCwNCisgKiBhbmQgaW52b2tlcyBhbiBleGNlcHRp b24gaGFuZGxlciAocmVtY29tX2hhbmRsZXIpLg0KKyAqDQorICogc3RhY2sgb24gZW50cnk6ICAg ICAgICAgICAgICAgICAgICAgICBzdGFjayBvbiBleGl0Og0KKyAqICAgb2xkIHJmbGFncyAgICAg ICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIG51bWJlcg0KKyAqICAgb2xkIGNzICh6ZXJvLWZp bGxlZCB0byA2NCBiaXRzKQ0KKyAqICAgb2xkIHJpcA0KKyAqDQorICovDQorZXh0ZXJuIHZvaWQN CitfY2F0Y2hFeGNlcHRpb24zICh2b2lkKTsNCithc20oIi50ZXh0Iik7DQorYXNtKCIuZ2xvYmwg X2NhdGNoRXhjZXB0aW9uMyIpOw0KK2FzbSgiX2NhdGNoRXhjZXB0aW9uMzoiKTsNCisgIFNBVkVf UkVHSVNURVJTMSgpOw0KKyAgU0FWRV9SRUdJU1RFUlMyKCk7DQorICBhc20gKCJwdXNocSAkMyIp Ow0KKyAgQ0FMTF9IT09LKCk7DQorDQorLyogU2FtZSB0aGluZyBmb3IgZXhjZXB0aW9uIDEuICAq Lw0KK2V4dGVybiB2b2lkDQorX2NhdGNoRXhjZXB0aW9uMSAodm9pZCk7DQorYXNtKCIudGV4dCIp Ow0KK2FzbSgiLmdsb2JsIF9jYXRjaEV4Y2VwdGlvbjEiKTsNCithc20oIl9jYXRjaEV4Y2VwdGlv bjE6Iik7DQorICBTQVZFX1JFR0lTVEVSUzEoKTsNCisgIFNBVkVfUkVHSVNURVJTMigpOw0KKyAg YXNtICgicHVzaHEgJDEiKTsNCisgIENBTExfSE9PSygpOw0KKw0KKy8qIFNhbWUgdGhpbmcgZm9y IGV4Y2VwdGlvbiAwLiAgKi8NCitleHRlcm4gdm9pZA0KK19jYXRjaEV4Y2VwdGlvbjAgKHZvaWQp Ow0KK2FzbSgiLnRleHQiKTsNCithc20oIi5nbG9ibCBfY2F0Y2hFeGNlcHRpb24wIik7DQorYXNt KCJfY2F0Y2hFeGNlcHRpb24wOiIpOw0KKyAgU0FWRV9SRUdJU1RFUlMxKCk7DQorICBTQVZFX1JF R0lTVEVSUzIoKTsNCisgIGFzbSAoInB1c2hxICQwIik7DQorICBDQUxMX0hPT0soKTsNCisNCisv KiBTYW1lIHRoaW5nIGZvciBleGNlcHRpb24gNC4gICovDQorZXh0ZXJuIHZvaWQNCitfY2F0Y2hF eGNlcHRpb240ICh2b2lkKTsNCithc20oIi50ZXh0Iik7DQorYXNtKCIuZ2xvYmwgX2NhdGNoRXhj ZXB0aW9uNCIpOw0KK2FzbSgiX2NhdGNoRXhjZXB0aW9uNDoiKTsNCisgIFNBVkVfUkVHSVNURVJT MSgpOw0KKyAgU0FWRV9SRUdJU1RFUlMyKCk7DQorICBhc20gKCJwdXNocSAkNCIpOw0KKyAgQ0FM TF9IT09LKCk7DQorDQorLyogU2FtZSB0aGluZyBmb3IgZXhjZXB0aW9uIDUuICAqLw0KK2V4dGVy biB2b2lkDQorX2NhdGNoRXhjZXB0aW9uNSAodm9pZCk7DQorYXNtKCIudGV4dCIpOw0KK2FzbSgi Lmdsb2JsIF9jYXRjaEV4Y2VwdGlvbjUiKTsNCithc20oIl9jYXRjaEV4Y2VwdGlvbjU6Iik7DQor ICBTQVZFX1JFR0lTVEVSUzEoKTsNCisgIFNBVkVfUkVHSVNURVJTMigpOw0KKyAgYXNtICgicHVz aHEgJDUiKTsNCisgIENBTExfSE9PSygpOw0KKw0KKy8qIFNhbWUgdGhpbmcgZm9yIGV4Y2VwdGlv biA2LiAgKi8NCitleHRlcm4gdm9pZA0KK19jYXRjaEV4Y2VwdGlvbjYgKHZvaWQpOw0KK2FzbSgi LnRleHQiKTsNCithc20oIi5nbG9ibCBfY2F0Y2hFeGNlcHRpb242Iik7DQorYXNtKCJfY2F0Y2hF eGNlcHRpb242OiIpOw0KKyAgU0FWRV9SRUdJU1RFUlMxKCk7DQorICBTQVZFX1JFR0lTVEVSUzIo KTsNCisgIGFzbSAoInB1c2hxICQ2Iik7DQorICBDQUxMX0hPT0soKTsNCisNCisvKiBTYW1lIHRo aW5nIGZvciBleGNlcHRpb24gNy4gICovDQorZXh0ZXJuIHZvaWQNCitfY2F0Y2hFeGNlcHRpb243 ICh2b2lkKTsNCithc20oIi50ZXh0Iik7DQorYXNtKCIuZ2xvYmwgX2NhdGNoRXhjZXB0aW9uNyIp Ow0KK2FzbSgiX2NhdGNoRXhjZXB0aW9uNzoiKTsNCisgIFNBVkVfUkVHSVNURVJTMSgpOw0KKyAg U0FWRV9SRUdJU1RFUlMyKCk7DQorICBhc20gKCJwdXNocSAkNyIpOw0KKyAgQ0FMTF9IT09LKCk7 DQorDQorLyogU2FtZSB0aGluZyBmb3IgZXhjZXB0aW9uIDguICAqLw0KK2V4dGVybiB2b2lkDQor X2NhdGNoRXhjZXB0aW9uOCAodm9pZCk7DQorYXNtKCIudGV4dCIpOw0KK2FzbSgiLmdsb2JsIF9j YXRjaEV4Y2VwdGlvbjgiKTsNCithc20oIl9jYXRjaEV4Y2VwdGlvbjg6Iik7DQorICBTQVZFX1JF R0lTVEVSUzEoKTsNCisgIFNBVkVfRVJSQ09ERSgpOw0KKyAgU0FWRV9SRUdJU1RFUlMyKCk7DQor ICBhc20gKCJwdXNocSAkOCIpOw0KKyAgQ0FMTF9IT09LKCk7DQorDQorLyogU2FtZSB0aGluZyBm b3IgZXhjZXB0aW9uIDkuICAqLw0KK2V4dGVybiB2b2lkDQorX2NhdGNoRXhjZXB0aW9uOSAodm9p ZCk7DQorYXNtKCIudGV4dCIpOw0KK2FzbSgiLmdsb2JsIF9jYXRjaEV4Y2VwdGlvbjkiKTsNCith c20oIl9jYXRjaEV4Y2VwdGlvbjk6Iik7DQorICBTQVZFX1JFR0lTVEVSUzEoKTsNCisgIFNBVkVf UkVHSVNURVJTMigpOw0KKyAgYXNtICgicHVzaHEgJDkiKTsNCisgIENBTExfSE9PSygpOw0KKw0K Ky8qIFNhbWUgdGhpbmcgZm9yIGV4Y2VwdGlvbiAxMC4gICovDQorZXh0ZXJuIHZvaWQNCitfY2F0 Y2hFeGNlcHRpb24xMCAodm9pZCk7DQorYXNtKCIudGV4dCIpOw0KK2FzbSgiLmdsb2JsIF9jYXRj aEV4Y2VwdGlvbjEwIik7DQorYXNtKCJfY2F0Y2hFeGNlcHRpb24xMDoiKTsNCisgIFNBVkVfUkVH SVNURVJTMSgpOw0KKyAgU0FWRV9FUlJDT0RFKCk7DQorICBTQVZFX1JFR0lTVEVSUzIoKTsNCisg IGFzbSAoInB1c2hxICQxMCIpOw0KKyAgQ0FMTF9IT09LKCk7DQorDQorLyogU2FtZSB0aGluZyBm b3IgZXhjZXB0aW9uIDEyLiAgKi8NCitleHRlcm4gdm9pZA0KK19jYXRjaEV4Y2VwdGlvbjEyICh2 b2lkKTsNCithc20oIi50ZXh0Iik7DQorYXNtKCIuZ2xvYmwgX2NhdGNoRXhjZXB0aW9uMTIiKTsN Cithc20oIl9jYXRjaEV4Y2VwdGlvbjEyOiIpOw0KKyAgU0FWRV9SRUdJU1RFUlMxKCk7DQorICBT QVZFX0VSUkNPREUoKTsNCisgIFNBVkVfUkVHSVNURVJTMigpOw0KKyAgYXNtICgicHVzaHEgJDEy Iik7DQorICBDQUxMX0hPT0soKTsNCisNCisvKiBTYW1lIHRoaW5nIGZvciBleGNlcHRpb24gMTYu ICAqLw0KK2V4dGVybiB2b2lkDQorX2NhdGNoRXhjZXB0aW9uMTYgKHZvaWQpOw0KK2FzbSgiLnRl eHQiKTsNCithc20oIi5nbG9ibCBfY2F0Y2hFeGNlcHRpb24xNiIpOw0KK2FzbSgiX2NhdGNoRXhj ZXB0aW9uMTY6Iik7DQorICBTQVZFX1JFR0lTVEVSUzEoKTsNCisgIFNBVkVfUkVHSVNURVJTMigp Ow0KKyAgYXNtICgicHVzaHEgJDE2Iik7DQorICBDQUxMX0hPT0soKTsNCisNCisvKiBGb3IgMTMs IDExLCBhbmQgMTQgd2UgaGF2ZSB0byBkZWFsIHdpdGggdGhlIENIRUNLX0ZBVUxUIHN0dWZmLiAg Ki8NCisNCisvKiBTYW1lIHRoaW5nIGZvciBleGNlcHRpb24gMTMuICAqLw0KK2V4dGVybiB2b2lk DQorX2NhdGNoRXhjZXB0aW9uMTMgKHZvaWQpOw0KK2FzbSAoIi50ZXh0Iik7DQorYXNtICgiLmds b2JsIF9jYXRjaEV4Y2VwdGlvbjEzIik7DQorYXNtICgiX2NhdGNoRXhjZXB0aW9uMTM6Iik7DQor ICBDSEVDS19GQVVMVCgpOw0KKyAgU0FWRV9SRUdJU1RFUlMxKCk7DQorICBTQVZFX0VSUkNPREUo KTsNCisgIFNBVkVfUkVHSVNURVJTMigpOw0KKyAgYXNtICgicHVzaHEgJDEzIik7DQorICBDQUxM X0hPT0soKTsNCisNCisvKiBTYW1lIHRoaW5nIGZvciBleGNlcHRpb24gMTEuICAqLw0KK2V4dGVy biB2b2lkDQorX2NhdGNoRXhjZXB0aW9uMTEgKHZvaWQpOw0KK2FzbSAoIi50ZXh0Iik7DQorYXNt ICgiLmdsb2JsIF9jYXRjaEV4Y2VwdGlvbjExIik7DQorYXNtICgiX2NhdGNoRXhjZXB0aW9uMTE6 Iik7DQorICBDSEVDS19GQVVMVCgpOw0KKyAgU0FWRV9SRUdJU1RFUlMxKCk7DQorICBTQVZFX0VS UkNPREUoKTsNCisgIFNBVkVfUkVHSVNURVJTMigpOw0KKyAgYXNtICgicHVzaHEgJDExIik7DQor ICBDQUxMX0hPT0soKTsNCisNCisvKiBTYW1lIHRoaW5nIGZvciBleGNlcHRpb24gMTQuICAqLw0K K2V4dGVybiB2b2lkDQorX2NhdGNoRXhjZXB0aW9uMTQgKHZvaWQpOw0KK2FzbSAoIi50ZXh0Iik7 DQorYXNtICgiLmdsb2JsIF9jYXRjaEV4Y2VwdGlvbjE0Iik7DQorYXNtICgiX2NhdGNoRXhjZXB0 aW9uMTQ6Iik7DQorICBDSEVDS19GQVVMVCgpOw0KKyAgU0FWRV9SRUdJU1RFUlMxKCk7DQorICBT QVZFX0VSUkNPREUoKTsNCisgIFNBVkVfUkVHSVNURVJTMigpOw0KKyAgYXNtICgicHVzaHEgJDE0 Iik7DQorICBDQUxMX0hPT0soKTsNCisNCisvKg0KKyAqIHJlbWNvbUhhbmRsZXIgaXMgYSBmcm9u dCBlbmQgZm9yIF9oYW5kbGVfZXhjZXB0aW9uLiAgSXQgbW92ZXMgdGhlDQorICogc3RhY2sgcG9p bnRlciBpbnRvIGFuIGFyZWEgcmVzZXJ2ZWQgZm9yIGRlYnVnZ2VyIHVzZS4NCisgKi8NCithc20o Il9yZW1jb21IYW5kbGVyOiIpOw0KKyAgYXNtKCJwb3BxICVyYXgiKTsgICAgICAgIC8qIHBvcCBv ZmYgcmV0dXJuIGFkZHJlc3MgICAgICovDQorICBhc20oInBvcHEgJXJkaSIpOyAgICAgIC8qIGdl dCB0aGUgZXhjZXB0aW9uIG51bWJlciBpbiAlcmRpIHRvIHBhc3MgaXQgYXMgdGhlIGZpcnN0IGFy Z3VtZW50IHRvICBfaGFuZGxlX2V4Y2VwdGlvbiAgKi8NCisgIGFzbSgibW92cSBfc3RhY2tQdHIs ICVyc3AiKTsgLyogbW92ZSB0byByZW1jb20gc3RhY2sgYXJlYSAgKi8NCisgIGFzbSgiY2FsbCAg X2hhbmRsZV9leGNlcHRpb24iKTsgICAgLyogdGhpcyBuZXZlciByZXR1cm5zICovDQorDQordm9p ZA0KK19yZXR1cm5Gcm9tRXhjZXB0aW9uICgpDQorew0KKyAgX3JldHVybl90b19wcm9nICgpOw0K K30NCisNCit2b2lkDQorZGVidWdfZXJyb3IgKGZvcm1hdCwgcGFybSkNCisgICAgIGNoYXIgKmZv cm1hdDsNCisgICAgIGNoYXIgKnBhcm07DQorew0KKyAgcHJpbnRmIChmb3JtYXQsIHBhcm0pOw0K K30NCisNCitpbnQNCitoZXggKGNoKQ0KKyAgICAgY2hhciBjaDsNCit7DQorICBpZiAoKGNoID49 ICdhJykgJiYgKGNoIDw9ICdmJykpDQorICAgIHJldHVybiAoY2ggLSAnYScgKyAxMCk7DQorICBp ZiAoKGNoID49ICcwJykgJiYgKGNoIDw9ICc5JykpDQorICAgIHJldHVybiAoY2ggLSAnMCcpOw0K KyAgaWYgKChjaCA+PSAnQScpICYmIChjaCA8PSAnRicpKQ0KKyAgICByZXR1cm4gKGNoIC0gJ0En ICsgMTApOw0KKyAgcmV0dXJuICgtMSk7DQorfQ0KKw0KK3N0YXRpYyBjaGFyIHJlbWNvbUluQnVm ZmVyW0JVRk1BWF07DQorc3RhdGljIGNoYXIgcmVtY29tT3V0QnVmZmVyW0JVRk1BWF07DQorDQor Lyogc2NhbiBmb3IgdGhlIHNlcXVlbmNlICQ8ZGF0YT4jPGNoZWNrc3VtPiAgICAgKi8NCisNCitj aGFyICoNCitnZXRwYWNrZXQgKHZvaWQpDQorew0KKyAgY2hhciAqYnVmZmVyID0gJnJlbWNvbUlu QnVmZmVyWzBdOw0KKyAgdW5zaWduZWQgY2hhciBjaGVja3N1bTsNCisgIHVuc2lnbmVkIGNoYXIg eG1pdGNzdW07DQorICBpbnQgY291bnQ7DQorICBjaGFyIGNoOw0KKw0KKyAgd2hpbGUgKDEpDQor ICAgIHsNCisgICAgICAvKiB3YWl0IGFyb3VuZCBmb3IgdGhlIHN0YXJ0IGNoYXJhY3RlciwgaWdu b3JlIGFsbCBvdGhlciBjaGFyYWN0ZXJzICovDQorICAgICAgd2hpbGUgKChjaCA9IGdldERlYnVn Q2hhciAoKSkgIT0gJyQnKQ0KKwk7DQorDQorICAgIHJldHJ5Og0KKyAgICAgIGNoZWNrc3VtID0g MDsNCisgICAgICB4bWl0Y3N1bSA9IC0xOw0KKyAgICAgIGNvdW50ID0gMDsNCisNCisgICAgICAv KiBub3csIHJlYWQgdW50aWwgYSAjIG9yIGVuZCBvZiBidWZmZXIgaXMgZm91bmQgKi8NCisgICAg ICB3aGlsZSAoY291bnQgPCBCVUZNQVgpDQorCXsNCisJICBjaCA9IGdldERlYnVnQ2hhciAoKTsN CisJICBpZiAoY2ggPT0gJyQnKQ0KKwkgICAgZ290byByZXRyeTsNCisJICBpZiAoY2ggPT0gJyMn KQ0KKwkgICAgYnJlYWs7DQorCSAgY2hlY2tzdW0gPSBjaGVja3N1bSArIGNoOw0KKwkgIGJ1ZmZl cltjb3VudF0gPSBjaDsNCisJICBjb3VudCA9IGNvdW50ICsgMTsNCisJfQ0KKyAgICAgIGJ1ZmZl cltjb3VudF0gPSAwOw0KKw0KKyAgICAgIGlmIChjaCA9PSAnIycpDQorCXsNCisJICBjaCA9IGdl dERlYnVnQ2hhciAoKTsNCisJICB4bWl0Y3N1bSA9IGhleCAoY2gpIDw8IDQ7DQorCSAgY2ggPSBn ZXREZWJ1Z0NoYXIgKCk7DQorCSAgeG1pdGNzdW0gKz0gaGV4IChjaCk7DQorDQorCSAgaWYgKGNo ZWNrc3VtICE9IHhtaXRjc3VtKQ0KKyAgICB7DQorICAgICAgZGVidWdfZXJyb3IgKCJmYWlsZWQg Y2hlY2tzdW0iKTsNCisgICAgICBwdXREZWJ1Z0NoYXIgKCctJyk7CS8qIGZhaWxlZCBjaGVja3N1 bSAqLw0KKyAgICB9DQorCSAgZWxzZQ0KKwkgICAgew0KKwkgICAgICBwdXREZWJ1Z0NoYXIgKCcr Jyk7CS8qIHN1Y2Nlc3NmdWwgdHJhbnNmZXIgKi8NCisNCisJICAgICAgLyogaWYgYSBzZXF1ZW5j ZSBjaGFyIGlzIHByZXNlbnQsIHJlcGx5IHRoZSBzZXF1ZW5jZSBJRCAqLw0KKwkgICAgICBpZiAo YnVmZmVyWzJdID09ICc6JykNCisJCXsNCisJCSAgcHV0RGVidWdDaGFyIChidWZmZXJbMF0pOw0K KwkJICBwdXREZWJ1Z0NoYXIgKGJ1ZmZlclsxXSk7DQorDQorCQkgIHJldHVybiAmYnVmZmVyWzNd Ow0KKwkJfQ0KKw0KKwkgICAgICByZXR1cm4gJmJ1ZmZlclswXTsNCisJICAgIH0NCisJfQ0KKyAg ICB9DQorfQ0KKw0KKy8qIHNlbmQgdGhlIHBhY2tldCBpbiBidWZmZXIuICAqLw0KKw0KK3ZvaWQN CitwdXRwYWNrZXQgKGNoYXIgKmJ1ZmZlcikNCit7DQorICB1bnNpZ25lZCBjaGFyIGNoZWNrc3Vt Ow0KKyAgaW50IGNvdW50Ow0KKyAgY2hhciBjaDsNCisNCisgIC8qICAkPHBhY2tldCBpbmZvPiM8 Y2hlY2tzdW0+LiAqLw0KKyAgZG8NCisgICAgew0KKyAgICAgIHB1dERlYnVnQ2hhciAoJyQnKTsN CisgICAgICBjaGVja3N1bSA9IDA7DQorICAgICAgY291bnQgPSBzdHJsZW4gKGJ1ZmZlcik7DQor DQorICAgICAgY291bnQgPSBnZGJfcnVuX2xlbmd0aF9lbmNvZGUgKGJ1ZmZlciwgY291bnQpOw0K KyAgICAgIGJ1ZmZlcltjb3VudF0gPSAnXDAnOw0KKyAgICAgIGNvdW50ID0gMDsNCisNCisgICAg ICB3aGlsZSAoKGNoID0gYnVmZmVyW2NvdW50XSkpDQorCXsNCisJICBwdXREZWJ1Z0NoYXIgKGNo KTsNCisJICBjaGVja3N1bSArPSBjaDsNCisJICBjb3VudCArPSAxOw0KKwl9DQorDQorICAgICAg cHV0RGVidWdDaGFyICgnIycpOw0KKyAgICAgIHB1dERlYnVnQ2hhciAoaGV4Y2hhcnNbY2hlY2tz dW0gPj4gNF0pOw0KKyAgICAgIHB1dERlYnVnQ2hhciAoaGV4Y2hhcnNbY2hlY2tzdW0gJiAweDBm XSk7DQorDQorICAgIH0NCisgIHdoaWxlIChnZXREZWJ1Z0NoYXIgKCkgIT0gJysnKTsNCit9DQor DQorLyogQWRkcmVzcyBvZiBhIHJvdXRpbmUgdG8gUlRFIHRvIGlmIHdlIGdldCBhIG1lbW9yeSBm YXVsdC4gICovDQorc3RhdGljIHZvaWQgKCp2b2xhdGlsZSBfbWVtX2ZhdWx0X3JvdXRpbmUpICgp ID0gTlVMTDsNCisNCisvKiBJbmRpY2F0ZSB0byBjYWxsZXIgb2YgbWVtMmhleCBvciBoZXgybWVt IHRoYXQgdGhlcmUgaGFzIGJlZW4gYW4NCisgICBlcnJvci4gICovDQorc3RhdGljIHZvbGF0aWxl IGludCBtZW1fZXJyID0gMDsNCisNCit2b2lkDQorc2V0X21lbV9lcnIgKHZvaWQpDQorew0KKyAg bWVtX2VyciA9IDE7DQorfQ0KKw0KKy8qIFRoZXNlIGFyZSBzZXBhcmF0ZSBmdW5jdGlvbnMgc28g dGhhdCB0aGV5IGFyZSBzbyBzaG9ydCBhbmQgc3dlZXQNCisgICB0aGF0IHRoZSBjb21waWxlciB3 b24ndCBzYXZlIGFueSBfcmVnaXN0ZXJzIChpZiB0aGVyZSBpcyBhIGZhdWx0DQorICAgdG8gbWVt X2ZhdWx0LCB0aGV5IHdvbid0IGdldCByZXN0b3JlZCwgc28gdGhlcmUgYmV0dGVyIG5vdCBiZSBh bnkNCisgICBzYXZlZCkuICAqLw0KK2ludA0KK2dldF9jaGFyIChjaGFyICphZGRyKQ0KK3sNCisg IHJldHVybiAqYWRkcjsNCit9DQorDQordm9pZA0KK3NldF9jaGFyIChjaGFyICphZGRyLCBpbnQg dmFsKQ0KK3sNCisgICphZGRyID0gdmFsOw0KK30NCisNCisvKiBjb252ZXJ0IHRoZSBtZW1vcnkg cG9pbnRlZCB0byBieSBtZW0gaW50byBoZXgsIHBsYWNpbmcgcmVzdWx0IGluIGJ1ZiAqLw0KKy8q IHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGxhc3QgY2hhciBwdXQgaW4gYnVmIChudWxsKSAqLw0K Ky8qIElmIE1BWV9GQVVMVCBpcyBub24temVybywgdGhlbiB3ZSBzaG91bGQgc2V0IG1lbV9lcnIg aW4gcmVzcG9uc2UgdG8NCisgICBhIGZhdWx0OyBpZiB6ZXJvIHRyZWF0IGEgZmF1bHQgbGlrZSBh bnkgb3RoZXIgZmF1bHQgaW4gdGhlIHN0dWIuICAqLw0KK2NoYXIgKg0KK21lbTJoZXggKGNoYXIg Km1lbSwgY2hhciAqIGJ1ZiwgdWludDMyX3QgY291bnQsIHVpbnQzMl90IG1heV9mYXVsdCkNCit7 DQorICBpbnQgaTsNCisgIHVuc2lnbmVkIGNoYXIgY2g7DQorDQorICBpZiAobWF5X2ZhdWx0KSB7 DQorICAgIF9tZW1fZmF1bHRfcm91dGluZSA9IHNldF9tZW1fZXJyOw0KKyAgfQ0KKw0KKyAgZm9y IChpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICB7DQorICAgIGNoID0gZ2V0X2NoYXIgKG1lbSsr KTsNCisgICAgaWYgKG1heV9mYXVsdCAmJiBtZW1fZXJyKSB7DQorICAgICAgcmV0dXJuIChidWYp Ow0KKyAgICB9DQorICAgICpidWYrKyA9IGhleGNoYXJzW2NoID4+IDRdOw0KKyAgICAqYnVmKysg PSBoZXhjaGFyc1tjaCAmIDB4MGZdOw0KKyAgfQ0KKyAgKmJ1ZiA9IDA7DQorDQorICBpZiAobWF5 X2ZhdWx0KSB7DQorICAgIF9tZW1fZmF1bHRfcm91dGluZSA9IE5VTEw7DQorICB9DQorDQorICBy ZXR1cm4gKGJ1Zik7DQorfQ0KKw0KKy8qIGNvbnZlcnQgdGhlIGhleCBhcnJheSBwb2ludGVkIHRv IGJ5IGJ1ZiBpbnRvIGJpbmFyeSB0byBiZSBwbGFjZWQgaW4gbWVtICovDQorLyogcmV0dXJuIGEg cG9pbnRlciB0byB0aGUgY2hhcmFjdGVyIEFGVEVSIHRoZSBsYXN0IGJ5dGUgd3JpdHRlbiAqLw0K K2NoYXIgKg0KK2hleDJtZW0gKGNoYXIgKmJ1ZiwgY2hhciAqbWVtLCB1aW50MzJfdCBjb3VudCwg dWludDMyX3QgbWF5X2ZhdWx0KQ0KK3sNCisgIGludCBpOw0KKyAgdW5zaWduZWQgY2hhciBjaDsN CisNCisgIGlmIChtYXlfZmF1bHQpDQorICAgIF9tZW1fZmF1bHRfcm91dGluZSA9IHNldF9tZW1f ZXJyOw0KKyAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBjaCA9 IGhleCAoKmJ1ZisrKSA8PCA0Ow0KKyAgICAgIGNoID0gY2ggKyBoZXggKCpidWYrKyk7DQorICAg ICAgc2V0X2NoYXIgKG1lbSsrLCBjaCk7DQorICAgICAgaWYgKG1heV9mYXVsdCAmJiBtZW1fZXJy KQ0KKwlyZXR1cm4gKG1lbSk7DQorICAgIH0NCisgIGlmIChtYXlfZmF1bHQpDQorICAgIF9tZW1f ZmF1bHRfcm91dGluZSA9IE5VTEw7DQorICByZXR1cm4gKG1lbSk7DQorfQ0KKw0KKy8qIHRoaXMg ZnVuY3Rpb24gdGFrZXMgdGhlIHg2NCBleGNlcHRpb24gdmVjdG9yIGFuZCBhdHRlbXB0cyB0bw0K KyAgIHRyYW5zbGF0ZSB0aGlzIG51bWJlciBpbnRvIGEgdW5peCBjb21wYXRpYmxlIHNpZ25hbCB2 YWx1ZSAqLw0KK3VpbnQzMl90DQorY29tcHV0ZVNpZ25hbCAodWludDY0X3QgZXhjZXB0aW9uVmVj dG9yKQ0KK3sNCisgIHVpbnQzMl90IHNpZ3ZhbDsNCisgIHN3aXRjaCAoZXhjZXB0aW9uVmVjdG9y KQ0KKyAgICB7DQorICAgIGNhc2UgMDoNCisgICAgICBzaWd2YWwgPSA4Ow0KKyAgICAgIGJyZWFr OwkJCS8qIGRpdmlkZSBieSB6ZXJvICovDQorICAgIGNhc2UgMToNCisgICAgICBzaWd2YWwgPSA1 Ow0KKyAgICAgIGJyZWFrOwkJCS8qIGRlYnVnIGV4Y2VwdGlvbiAqLw0KKyAgICBjYXNlIDM6DQor ICAgICAgc2lndmFsID0gNTsNCisgICAgICBicmVhazsJCQkvKiBicmVha3BvaW50ICovDQorICAg IGNhc2UgNDoNCisgICAgICBzaWd2YWwgPSAxNjsNCisgICAgICBicmVhazsJCQkvKiBpbnRvIGlu c3RydWN0aW9uIChvdmVyZmxvdykgKi8NCisgICAgY2FzZSA1Og0KKyAgICAgIHNpZ3ZhbCA9IDE2 Ow0KKyAgICAgIGJyZWFrOwkJCS8qIGJvdW5kIGluc3RydWN0aW9uICovDQorICAgIGNhc2UgNjoN CisgICAgICBzaWd2YWwgPSA0Ow0KKyAgICAgIGJyZWFrOwkJCS8qIEludmFsaWQgb3Bjb2RlICov DQorICAgIGNhc2UgNzoNCisgICAgICBzaWd2YWwgPSA4Ow0KKyAgICAgIGJyZWFrOwkJCS8qIGNv cHJvY2Vzc29yIG5vdCBhdmFpbGFibGUgKi8NCisgICAgY2FzZSA4Og0KKyAgICAgIHNpZ3ZhbCA9 IDc7DQorICAgICAgYnJlYWs7CQkJLyogZG91YmxlIGZhdWx0ICovDQorICAgIGNhc2UgOToNCisg ICAgICBzaWd2YWwgPSAxMTsNCisgICAgICBicmVhazsJCQkvKiBjb3Byb2Nlc3NvciBzZWdtZW50 IG92ZXJydW4gKi8NCisgICAgY2FzZSAxMDoNCisgICAgICBzaWd2YWwgPSAxMTsNCisgICAgICBi cmVhazsJCQkvKiBJbnZhbGlkIFRTUyAqLw0KKyAgICBjYXNlIDExOg0KKyAgICAgIHNpZ3ZhbCA9 IDExOw0KKyAgICAgIGJyZWFrOwkJCS8qIFNlZ21lbnQgbm90IHByZXNlbnQgKi8NCisgICAgY2Fz ZSAxMjoNCisgICAgICBzaWd2YWwgPSAxMTsNCisgICAgICBicmVhazsJCQkvKiBzdGFjayBleGNl cHRpb24gKi8NCisgICAgY2FzZSAxMzoNCisgICAgICBzaWd2YWwgPSAxMTsNCisgICAgICBicmVh azsJCQkvKiBnZW5lcmFsIHByb3RlY3Rpb24gKi8NCisgICAgY2FzZSAxNDoNCisgICAgICBzaWd2 YWwgPSAxMTsNCisgICAgICBicmVhazsJCQkvKiBwYWdlIGZhdWx0ICovDQorICAgIGNhc2UgMTY6 DQorICAgICAgc2lndmFsID0gNzsNCisgICAgICBicmVhazsJCQkvKiBjb3Byb2Nlc3NvciBlcnJv ciAqLw0KKyAgICBkZWZhdWx0Og0KKyAgICAgIHNpZ3ZhbCA9IDc7CQkvKiAic29mdHdhcmUgZ2Vu ZXJhdGVkIiAqLw0KKyAgICB9DQorICByZXR1cm4gKHNpZ3ZhbCk7DQorfQ0KKw0KKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8qIFdISUxFIFdFIEZJ TkQgTklDRSBIRVggQ0hBUlMsIEJVSUxEIEFOIElOVCAqLw0KKy8qIFJFVFVSTiBOVU1CRVIgT0Yg Q0hBUlMgUFJPQ0VTU0VEICAgICAgICAgICAqLw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLw0KK3VpbnQzMl90DQoraGV4VG9JbnQgKGNoYXIgKipwdHIs IGludDY0X3QgKmludFZhbHVlKQ0KK3sNCisgIHVpbnQzMl90IG51bUNoYXJzID0gMDsNCisgIGlu dCBoZXhWYWx1ZTsNCisNCisgICppbnRWYWx1ZSA9IDA7DQorDQorICB3aGlsZSAoKipwdHIpDQor ICAgIHsNCisgICAgICBoZXhWYWx1ZSA9IGhleCAoKipwdHIpOw0KKyAgICAgIGlmIChoZXhWYWx1 ZSA+PSAwKQ0KKwl7DQorCSAgKmludFZhbHVlID0gKCppbnRWYWx1ZSA8PCA0KSB8IGhleFZhbHVl Ow0KKwkgIG51bUNoYXJzKys7DQorCX0NCisgICAgICBlbHNlDQorCWJyZWFrOw0KKw0KKyAgICAg ICgqcHRyKSsrOw0KKyAgICB9DQorDQorICByZXR1cm4gKG51bUNoYXJzKTsNCit9DQorDQorLyoN CisgKiBUaGlzIGZ1bmN0aW9uIGRvZXMgYWxsIGNvbW1hbmQgcHJvY2VzaW5nIGZvciBpbnRlcmZh Y2luZyB0byBnZGIuDQorICovDQordm9pZA0KK19oYW5kbGVfZXhjZXB0aW9uICh1aW50NjRfdCBl eGNlcHRpb25WZWN0b3IpDQorew0KKyAgdWludDMyX3Qgc2lndmFsLCBzdGVwcGluZzsNCisgIGlu dDY0X3QgYWRkciwgbGVuZ3RoOw0KKyAgY2hhciAqcHRyOw0KKw0KKyAgZ2RiX3ZlY3RvciA9IGV4 Y2VwdGlvblZlY3RvcjsNCisNCisgIC8qIHJlcGx5IHRvIGhvc3QgdGhhdCBhbiBleGNlcHRpb24g aGFzIG9jY3VycmVkICovDQorICBzaWd2YWwgPSBjb21wdXRlU2lnbmFsIChleGNlcHRpb25WZWN0 b3IpOw0KKw0KKyAgcHRyID0gcmVtY29tT3V0QnVmZmVyOw0KKw0KKyAgKnB0cisrID0gJ1QnOwkJ CS8qIG5vdGlmeSBnZGIgd2l0aCBzaWdubywgUklQLCBhbmQgdGhyZWFkIGlkICovDQorICAqcHRy KysgPSBoZXhjaGFyc1tzaWd2YWwgPj4gNF07DQorICAqcHRyKysgPSBoZXhjaGFyc1tzaWd2YWwg JiAweDBmXTsNCisNCisgICpwdHIrKyA9IGhleGNoYXJzW1JJUCA+PiA0XTsNCisgICpwdHIrKyA9 IGhleGNoYXJzW1JJUCAmIDB4MGZdOw0KKyAgKnB0cisrID0gJzonOw0KKyAgcHRyID0gbWVtMmhl eCAoKGNoYXIgKikmX3JlZ2lzdGVyc1tSSVBdLCBwdHIsIDgsIDApOyAvKiBSSVAgKi8NCisgICpw dHIrKyA9ICc7JzsNCisNCisgIGdkYl9zdHJjcHkgKHB0ciwgInRocmVhZDoiVEhSRUFEX1RJRCI7 Iik7DQorDQorICBwdXRwYWNrZXQgKHJlbWNvbU91dEJ1ZmZlcik7DQorDQorICBzdGVwcGluZyA9 IDA7DQorDQorICB3aGlsZSAoMSA9PSAxKQ0KKyAgICB7DQorICAgICAgcmVtY29tT3V0QnVmZmVy WzBdID0gMDsNCisgICAgICBwdHIgPSBnZXRwYWNrZXQgKCk7DQorDQorICAgICAgc3dpdGNoICgq cHRyKyspDQorCXsNCisJY2FzZSAnPyc6DQorCSAgcmVtY29tT3V0QnVmZmVyWzBdID0gJ1MnOw0K KwkgIHJlbWNvbU91dEJ1ZmZlclsxXSA9IGhleGNoYXJzW3NpZ3ZhbCA+PiA0XTsNCisJICByZW1j b21PdXRCdWZmZXJbMl0gPSBoZXhjaGFyc1tzaWd2YWwgJiAweDBmXTsNCisJICByZW1jb21PdXRC dWZmZXJbM10gPSAwOw0KKwkgIGJyZWFrOw0KKyAgY2FzZSAnRCc6IC8qIGRldGFjaCAqLw0KKyAg ICBnZGJfc3RyY3B5IChyZW1jb21PdXRCdWZmZXIsICJPSyIpOw0KKyAgICBicmVhazsNCisJY2Fz ZSAnZyc6CQkvKiByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBDUFUgX3JlZ2lzdGVycyAqLw0KKwkg IHB0ciA9IG1lbTJoZXggKChjaGFyICopIF9yZWdpc3RlcnMsIHJlbWNvbU91dEJ1ZmZlciwgTlVN UkVHQllURVMsIDApOw0KKwkgIG1lbTJoZXggKChjaGFyICopIF9zZWdyZWdpc3RlcnMsIHB0ciwg TlVNU0VHUkVHQllURVMsIDApOw0KKyAgICBicmVhazsNCisJY2FzZSAnRyc6CQkvKiBzZXQgdGhl IHZhbHVlIG9mIHRoZSBDUFUgX3JlZ2lzdGVycyAtIHJldHVybiBPSyAqLw0KKwkgIGhleDJtZW0g KHB0ciwgKGNoYXIgKikgX3JlZ2lzdGVycywgTlVNUkVHQllURVMsIDApOw0KKyAgICBwdHIgKz0g KE5VTVJFR0JZVEVTICogMik7DQorICAgIGhleDJtZW0gKHB0ciwgKGNoYXIgKikgX3NlZ3JlZ2lz dGVycywgTlVNU0VHUkVHQllURVMsIDApOw0KKwkgIGdkYl9zdHJjcHkgKHJlbWNvbU91dEJ1ZmZl ciwgIk9LIik7DQorCSAgYnJlYWs7DQorICBjYXNlICdwJzogIC8qIHJldHVybiB0aGUgdmFsdWUg b2YgYSBzaW5nbGUgQ1BVIHJlZ2lzdGVyICovDQorICB7DQorICAgIGludDY0X3QgcmVnbm87DQor DQorICAgIGlmIChoZXhUb0ludCAoJnB0ciwgJnJlZ25vKSkgew0KKyAgICAgIGlmIChyZWdubyA+ PSAwKSB7DQorICAgICAgICBpZiAocmVnbm8gPCBOVU1SRUdTKSB7DQorICAgICAgICAgIG1lbTJo ZXggKChjaGFyICopICZfcmVnaXN0ZXJzW3JlZ25vXSwgcmVtY29tT3V0QnVmZmVyLCA4LCAwKTsN CisgICAgICAgICAgYnJlYWs7DQorICAgICAgICB9IGVsc2UgaWYgKHJlZ25vIDwgKE5VTVJFR1Mg KyBOVU1TRUdSRUdTKSkgew0KKyAgICAgICAgICBtZW0yaGV4ICgoY2hhciAqKSAmX3NlZ3JlZ2lz dGVyc1tyZWdubyAtIE5VTVJFR1NdLCByZW1jb21PdXRCdWZmZXIsIDQsIDApOw0KKyAgICAgICAg ICBicmVhazsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgIH0NCisNCisgICAgZ2RiX3N0cmNw eSAocmVtY29tT3V0QnVmZmVyLCAiRTAxIik7DQorICAgIGJyZWFrOw0KKyAgfQ0KKwljYXNlICdQ JzoJCS8qIHNldCB0aGUgdmFsdWUgb2YgYSBzaW5nbGUgQ1BVIHJlZ2lzdGVyIC0gcmV0dXJuIE9L ICovDQorICB7DQorCSAgICBpbnQ2NF90IHJlZ25vOw0KKw0KKwkgICAgaWYgKGhleFRvSW50ICgm cHRyLCAmcmVnbm8pICYmICpwdHIrKyA9PSAnPScpIHsNCisJICAgICAgaWYgKHJlZ25vID49IDAp IHsNCisgICAgICAgICAgaWYgKHJlZ25vIDwgTlVNUkVHUykgew0KKyAgICAgICAgICAgIGhleDJt ZW0gKHB0ciwgKGNoYXIgKikgJl9yZWdpc3RlcnNbcmVnbm9dLCA4LCAwKTsNCisgICAgICAgICAg ICBnZGJfc3RyY3B5IChyZW1jb21PdXRCdWZmZXIsICJPSyIpOw0KKwkJICAgICAgICBicmVhazsN CisgICAgICAgICAgfSBlbHNlIGlmIChyZWdubyA8IChOVU1SRUdTICsgTlVNU0VHUkVHUykpIHsN CisgICAgICAgICAgICBoZXgybWVtIChwdHIsIChjaGFyICopICZfc2VncmVnaXN0ZXJzW3JlZ25v XSwgNCwgMCk7DQorICAgICAgICAgICAgZ2RiX3N0cmNweSAocmVtY29tT3V0QnVmZmVyLCAiT0si KTsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAg ICAvKg0KKyAgICAgICAgICAgICAqIEhhY2sgdG8gZGVhbCB3aXRoIGdkYiBjbGllbnQgYXNraW5n IHRvIHNldCB3ZWlyZCByZWdpc3RlcnMNCisgICAgICAgICAgICAgKiBzdWNoIGFzICJvcmlnX3Jh eCIgLSBsaWUgYW5kIHNheSB3ZSBzZXQgdGhlIG5vbi1leGlzdGVudCByZWdpc3Rlci4NCisgICAg ICAgICAgICAgKi8NCisgICAgICAgICAgICBnZGJfc3RyY3B5IChyZW1jb21PdXRCdWZmZXIsICJP SyIpOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAg ICAgfQ0KKyAgICAgIGdkYl9zdHJjcHkgKHJlbWNvbU91dEJ1ZmZlciwgIkUwMSIpOw0KKyAgICAg IGJyZWFrOw0KKyAgfQ0KKyAgLyogbUFBLi5BQSxMTExMICBSZWFkIExMTEwgYnl0ZXMgYXQgYWRk cmVzcyBBQS4uQUEgKi8NCisJY2FzZSAnbSc6DQorCSAgLyogVFJZIFRPIFJFQUQgJXgsJXguICBJ RiBTVUNDRUVELCBTRVQgUFRSID0gMCAqLw0KKwkgIGlmIChoZXhUb0ludCAoJnB0ciwgJmFkZHIp KQ0KKwkgICAgaWYgKCoocHRyKyspID09ICcsJykNCisJICAgICAgaWYgKGhleFRvSW50ICgmcHRy LCAmbGVuZ3RoKSkNCisJCXsNCisJCSAgcHRyID0gMDsNCisJCSAgbWVtX2VyciA9IDA7DQorCQkg IG1lbTJoZXggKChjaGFyICopIGFkZHIsIHJlbWNvbU91dEJ1ZmZlciwgbGVuZ3RoLCAxKTsNCisJ CSAgaWYgKG1lbV9lcnIpDQorCQkgICAgew0KKwkJICAgICAgZ2RiX3N0cmNweSAocmVtY29tT3V0 QnVmZmVyLCAiRTAzIik7DQorCQkgICAgICBkZWJ1Z19lcnJvciAoIm1lbW9yeSBmYXVsdCIpOw0K KwkJICAgIH0NCisJCX0NCisNCisJICBpZiAocHRyKQ0KKwkgICAgew0KKwkgICAgICBnZGJfc3Ry Y3B5IChyZW1jb21PdXRCdWZmZXIsICJFMDEiKTsNCisJICAgIH0NCisJICBicmVhazsNCisNCisJ ICAvKiBNQUEuLkFBLExMTEw6IFdyaXRlIExMTEwgYnl0ZXMgYXQgYWRkcmVzcyBBQS5BQSByZXR1 cm4gT0sgKi8NCisJY2FzZSAnTSc6DQorCSAgLyogVFJZIFRPIFJFQUQgJyV4LCV4OicuICBJRiBT VUNDRUVELCBTRVQgUFRSID0gMCAqLw0KKwkgIGlmIChoZXhUb0ludCAoJnB0ciwgJmFkZHIpKQ0K KwkgICAgaWYgKCoocHRyKyspID09ICcsJykNCisJICAgICAgaWYgKGhleFRvSW50ICgmcHRyLCAm bGVuZ3RoKSkNCisJCWlmICgqKHB0cisrKSA9PSAnOicpDQorCQkgIHsNCisJCSAgICBtZW1fZXJy ID0gMDsNCisJCSAgICBoZXgybWVtIChwdHIsIChjaGFyICopIGFkZHIsIGxlbmd0aCwgMSk7DQor DQorCQkgICAgaWYgKG1lbV9lcnIpDQorCQkgICAgICB7DQorCQkJZ2RiX3N0cmNweSAocmVtY29t T3V0QnVmZmVyLCAiRTAzIik7DQorCQkJZGVidWdfZXJyb3IgKCJtZW1vcnkgZmF1bHQiKTsNCisJ CSAgICAgIH0NCisJCSAgICBlbHNlDQorCQkgICAgICB7DQorCQkJZ2RiX3N0cmNweSAocmVtY29t T3V0QnVmZmVyLCAiT0siKTsNCisJCSAgICAgIH0NCisNCisJCSAgICBwdHIgPSAwOw0KKwkJICB9 DQorCSAgaWYgKHB0cikNCisJICAgIHsNCisJICAgICAgZ2RiX3N0cmNweSAocmVtY29tT3V0QnVm ZmVyLCAiRTAyIik7DQorCSAgICB9DQorCSAgYnJlYWs7DQorDQorCSAgLyogY0FBLi5BQSAgICBD b250aW51ZSBhdCBhZGRyZXNzIEFBLi5BQShvcHRpb25hbCkgKi8NCisJICAvKiBzQUEuLkFBICAg U3RlcCBvbmUgaW5zdHJ1Y3Rpb24gZnJvbSBBQS4uQUEob3B0aW9uYWwpICovDQorCWNhc2UgJ3Mn Og0KKwkgIHN0ZXBwaW5nID0gMTsNCisgIC8qIEZBTExUSFJPVUdIICovDQorCWNhc2UgJ2MnOg0K KwkgIC8qIHRyeSB0byByZWFkIG9wdGlvbmFsIHBhcmFtZXRlcixSSVAgdW5jaGFuZ2VkIGlmIG5v IHBhcm0gKi8NCisJICBpZiAoaGV4VG9JbnQgKCZwdHIsICZhZGRyKSkgew0KKwkgICAgX3JlZ2lz dGVyc1tSSVBdID0gYWRkcjsNCisgICAgfQ0KKw0KKwkgIC8qIGNsZWFyIHRoZSB0cmFjZSBiaXQg Ki8NCisJICBfc2VncmVnaXN0ZXJzW1BTXSAmPSAweGZmZmZmZWZmOw0KKw0KKwkgIC8qIHNldCB0 aGUgdHJhY2UgYml0IGlmIHdlJ3JlIHN0ZXBwaW5nICovDQorCSAgaWYgKHN0ZXBwaW5nKSB7DQor CSAgICBfc2VncmVnaXN0ZXJzW1BTXSB8PSAweDAwMDAwMTAwOw0KKyAgICB9DQorDQorCSAgX3Jl dHVybkZyb21FeGNlcHRpb24gKCk7CS8qIHRoaXMgaXMgYSBqdW1wICovDQorCSAgYnJlYWs7DQor DQorCSAgLyoga2lsbCB0aGUgcHJvZ3JhbSAqLw0KKwljYXNlICdrJzoNCisgICAgLyoNCisgICAg ICogV2UgZG9uJ3QgYWN0dWFsbHkgd2FudCB0byByZWJvb3QgdGhlIGxvYWRlciAtIGRvIG5vdGhp bmcuDQorICAgICAqLw0KKwkgIGJyZWFrOw0KKw0KKyAgLyogU2V0IHRocmVhZCBmb3Igc3Vic2Vx dWVudCBvcGVyYXRpb25zOyBpZ25vcmUgdGhpcyBzaW5jZSB3ZSBhcmUgYSBzaW5nbGUgdGhyZWFk ZWQgdGFyZ2V0ICovDQorICBjYXNlICdIJzoNCisgICAgZ2RiX3N0cmNweSAocmVtY29tT3V0QnVm ZmVyLCAiT0siKTsNCisgICAgYnJlYWs7DQorDQorICAvKg0KKyAgICogR2VuZXJhbCBRdWVyeSBQ YWNrZXRzDQorICAgKg0KKyAgICogU2VlIC0gaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvY3Vy cmVudC9vbmxpbmVkb2NzL2dkYi9HZW5lcmFsLVF1ZXJ5LVBhY2tldHMuaHRtbA0KKyAgICovDQor ICBjYXNlICdxJzoNCisgICAgLyogcVN1cHBvcnRlZCBwYWNrZXQgKi8NCisgICAgaWYgKGdkYl9z dHJfc3RhcnRzX3dpdGgocHRyLCAiU3VwcG9ydGVkIikpIHsNCisgICAgICBnZGJfc3RyY3B5IChy ZW1jb21PdXRCdWZmZXIsICJtdWx0aXByb2Nlc3MtO3ZDb250U3VwcG9ydGVkLTtRVGhyZWFkRXZl bnRzLSIpOw0KKyAgICB9DQorICAgIC8qIHFDIHBhY2tldCAqLw0KKyAgICBlbHNlIGlmIChzdHJj bXAocHRyLCAiQyIpID09IDApIHsNCisgICAgICAvLyBzaW5nbGUgdGhyZWFkZWQgdGFyZ2V0IC0g cmVwbHkgd2l0aCB0aHJlYWQgaWQNCisgICAgICBnZGJfc3RyY3B5IChyZW1jb21PdXRCdWZmZXIs ICJRQyJUSFJFQURfVElEKTsNCisgICAgfQ0KKyAgICAvKiBxVFN0YXR1cyBwYWNrZXQgKi8NCisg ICAgZWxzZSBpZiAoc3RyY21wIChwdHIsICJUU3RhdHVzIikgPT0gMCkgew0KKyAgICAgIC8vIG5v IHRyYWNlIGlzIHJ1bm5pbmcNCisgICAgICBnZGJfc3RyY3B5IChyZW1jb21PdXRCdWZmZXIsICJU MCIpOw0KKyAgICB9DQorICAgIGJyZWFrOw0KKwl9CQkJLyogc3dpdGNoICovDQorDQorICAgICAg LyogcmVwbHkgdG8gdGhlIHJlcXVlc3QgKi8NCisgICAgICBwdXRwYWNrZXQgKHJlbWNvbU91dEJ1 ZmZlcik7DQorICAgIH0NCit9DQorDQorLyogdGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHNldCB1 cCBleGNlcHRpb24gaGFuZGxlcnMgZm9yIHRyYWNpbmcgYW5kDQorICAgYnJlYWtwb2ludHMgKi8N Cit2b2lkDQorc2V0X2RlYnVnX3RyYXBzICh2b2lkKQ0KK3sNCisgIF9zdGFja1B0ciA9ICZyZW1j b21TdGFja1tTVEFDS1NJWkUgLyBzaXplb2YgKHVpbnQ2NF90KSAtIDFdOw0KKw0KKyAgcHJpbnRm KCJTZXR0aW5nIERlYnVnIFRyYXBzIGZvciBHREIuXG5cbiIpOw0KKw0KKyAgZXhjZXB0aW9uSGFu ZGxlciAoMCwgX2NhdGNoRXhjZXB0aW9uMCk7DQorICBleGNlcHRpb25IYW5kbGVyICgxLCBfY2F0 Y2hFeGNlcHRpb24xKTsNCisgIGV4Y2VwdGlvbkhhbmRsZXIgKDMsIF9jYXRjaEV4Y2VwdGlvbjMp Ow0KKyAgZXhjZXB0aW9uSGFuZGxlciAoNCwgX2NhdGNoRXhjZXB0aW9uNCk7DQorICBleGNlcHRp b25IYW5kbGVyICg1LCBfY2F0Y2hFeGNlcHRpb241KTsNCisgIGV4Y2VwdGlvbkhhbmRsZXIgKDYs IF9jYXRjaEV4Y2VwdGlvbjYpOw0KKyAgZXhjZXB0aW9uSGFuZGxlciAoNywgX2NhdGNoRXhjZXB0 aW9uNyk7DQorICBleGNlcHRpb25IYW5kbGVyICg4LCBfY2F0Y2hFeGNlcHRpb244KTsNCisgIGV4 Y2VwdGlvbkhhbmRsZXIgKDksIF9jYXRjaEV4Y2VwdGlvbjkpOw0KKyAgZXhjZXB0aW9uSGFuZGxl ciAoMTAsIF9jYXRjaEV4Y2VwdGlvbjEwKTsNCisgIGV4Y2VwdGlvbkhhbmRsZXIgKDExLCBfY2F0 Y2hFeGNlcHRpb24xMSk7DQorICBleGNlcHRpb25IYW5kbGVyICgxMiwgX2NhdGNoRXhjZXB0aW9u MTIpOw0KKyAgLyoNCisgICAqIERvbid0IGluc3RhbGwgR1AgZXhjZXB0aW9uIGhhbmRsZXINCisg ICAqLw0KKyAgLy8gZXhjZXB0aW9uSGFuZGxlciAoMTMsIF9jYXRjaEV4Y2VwdGlvbjEzKTsNCisg IGV4Y2VwdGlvbkhhbmRsZXIgKDE0LCBfY2F0Y2hFeGNlcHRpb24xNCk7DQorICBleGNlcHRpb25I YW5kbGVyICgxNiwgX2NhdGNoRXhjZXB0aW9uMTYpOw0KK30NCisNCisNCit2b2lkDQorZ2RiX2lu aXQgKHZvaWQpDQorew0KKwlpZiAoIWluaXRpYWxpemVkKSB7DQorCQlzZXRfZGVidWdfdHJhcHMg KCk7DQorCX0NCisgICAgaW5pdGlhbGl6ZWQgPSAxOw0KK30NCisNCisvKiBUaGlzIGZ1bmN0aW9u IHdpbGwgZ2VuZXJhdGUgYSBicmVha3BvaW50IGV4Y2VwdGlvbi4gIEl0IGlzIHVzZWQgYXQgdGhl DQorICAgYmVnaW5uaW5nIG9mIGEgcHJvZ3JhbSB0byBzeW5jIHVwIHdpdGggYSBkZWJ1Z2dlciBh bmQgY2FuIGJlIHVzZWQNCisgICBvdGhlcndpc2UgYXMgYSBxdWljayBtZWFucyB0byBzdG9wIHBy b2dyYW0gZXhlY3V0aW9uIGFuZCAiYnJlYWsiIGludG8NCisgICB0aGUgZGVidWdnZXIuICovDQor DQordm9pZA0KK2JyZWFrcG9pbnQgKHZvaWQpDQorew0KKwlpZiAoIWluaXRpYWxpemVkKSB7DQor CQlnZGJfaW5pdCAoKTsNCisJfQ0KKw0KKwlCUkVBS1BPSU5UICgpOw0KK30NCisNCitzdGF0aWMg dm9pZA0KK2dkYl9iY29weSAodm9pZCAqZnJvbSwgdm9pZCAqdG8sIGludCBsZW5ndGgpDQorew0K KyAgICBjaGFyICpmcCA9IGZyb207DQorICAgIGNoYXIgKnRwID0gdG87DQorDQorICAgIHdoaWxl IChsZW5ndGgtLSkgKnRwKysgPSAqZnArKzsNCit9DQorDQorI2RlZmluZSBHREJfUkxFX0xFTl9F TkNPREVfT0ZGU0VUIDI5DQorI2RlZmluZSBHREJfUkxFX01JTl9FTkNPREVfTEVOIDQNCisjZGVm aW5lIEdEQl9STEVfTUFYX0VOQ09ERV9MRU4gKDEyNiAtIEdEQl9STEVfTEVOX0VOQ09ERV9PRkZT RVQpDQorDQorc3RhdGljIHNpemVfdA0KK2dkYl9ydW5fbGVuZ3RoX2VuY29kZSAoY2hhciAqYnVm ZmVyLCBzaXplX3QgbGVuZ3RoKQ0KK3sNCisgICAgaWYgKGxlbmd0aCA8IEdEQl9STEVfTUlOX0VO Q09ERV9MRU4pDQorICAgICAgICByZXR1cm4gbGVuZ3RoOw0KKw0KKyAgICBzaXplX3QgbmV3TGVu ID0gbGVuZ3RoOw0KKyAgICBjaGFyICpybGVTdGFydCA9ICZidWZmZXJbMF07DQorICAgIGludCBp Ow0KKw0KKyAgICBmb3IgKGkgPSAxOyBpIDwgbmV3TGVuOyArK2kpIHsNCisgICAgICAgIC8vIHJs ZUJsb2NrTGVuIGlzIHRoZSBjb3VudCBvZiBpZGVudGljYWwgY2hhcmFjdGVycyBpbiB0aGUgYmxv Y2suDQorICAgICAgICAvLyBUaGUgZW5jb2RpbmcgaXMgPGNoYXI+KjxyZXBlYXQ+IHdoZXJlIHJl cGVhdCBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdA0KKyAgICAgICAgLy8gPGNoYXI+ LCB0aGVyZWZvcmUgPHJlcGVhdD4gaXMgKHJsZUJsb2NrTGVuIC0gMSkNCisgICAgICAgIGNoYXIg cmxlQmxvY2tMZW4gPSAoJmJ1ZmZlcltpXSAtIHJsZVN0YXJ0KSArIDE7DQorDQorICAgICAgICBp ZiAoKGkgPT0gKG5ld0xlbiAtIDEpKSB8fCAoYnVmZmVyW2ldICE9ICpybGVTdGFydCkgfHwgKChy bGVCbG9ja0xlbiAtIDEpID09IEdEQl9STEVfTUFYX0VOQ09ERV9MRU4pKSB7DQorICAgICAgICAg ICAgLy8gcmVhY2hlZCBhbiBlbmQgY29uZGl0aW9uDQorICAgICAgICAgICAgaWYgKGJ1ZmZlcltp XSAhPSAqcmxlU3RhcnQpIHsNCisgICAgICAgICAgICAgICAgLy8gaW4gdGhpcyBjYXNlIGJ1ZmZl cltpXSBpcyBwb2ludGluZyBhdCB0aGUgZmlyc3Qgbm9uIGVuY29kYWJsZSBieXRlIGFmdGVyIHRo ZSBibG9jaw0KKyAgICAgICAgICAgICAgICAvLyBzbyBhZGp1c3QgcmxlQmxvY2tMZW4NCisgICAg ICAgICAgICAgICAgcmxlQmxvY2tMZW4gLT0gMTsNCisgICAgICAgICAgICB9DQorDQorICAgICAg ICAgICAgaWYgKHJsZUJsb2NrTGVuIDwgR0RCX1JMRV9NSU5fRU5DT0RFX0xFTikgew0KKyAgICAg ICAgICAgICAgICBybGVTdGFydCA9ICZidWZmZXJbaV07DQorICAgICAgICAgICAgICAgIGNvbnRp bnVlOw0KKyAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICBjaGFyIGVuY29kZWRMZW5ndGgg PSBHREJfUkxFX0xFTl9FTkNPREVfT0ZGU0VUICsgKHJsZUJsb2NrTGVuIC0gMSk7DQorICAgICAg ICAgICAgaWYgKChlbmNvZGVkTGVuZ3RoID09ICcrJykgfHwgKGVuY29kZWRMZW5ndGggPT0gJy0n KSB8fA0KKyAgICAgICAgICAgICAgICAoZW5jb2RlZExlbmd0aCA9PSAnJCcpIHx8IChlbmNvZGVk TGVuZ3RoID09ICcjJykpIHsNCisgICAgICAgICAgICAgICAgLy8gZG9uJ3QgcmxlIGlmIGVuY29k ZWQgbGVuZ3RoIGlzIGEgcmVzZXJ2ZWQgY2hhcmFjdGVyDQorICAgICAgICAgICAgICAgIC8vIFRC RDogY291bGQgc3RpbGwgZW5jb2RlIGJ5IGVuY29kaW5nIGEgc2hvcnRlciBibG9jaywgYnV0IGZv ciBub3cganVzdCBsZWF2ZSBpdCB1bmVuY29kZWQNCisgICAgICAgICAgICAgICAgcmxlU3RhcnQg PSAmYnVmZmVyW2ldOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9 DQorDQorICAgICAgICAgICAgLy8gb25seSBlbmNvZGUgaWYgdGhlIGVuY29kZWQgbGVuZ3RoIGlz IG5vdCBhIHJlc2VydmVkIGNoYXJhY3Rlcg0KKyAgICAgICAgICAgIHJsZVN0YXJ0WzFdID0gJyon Ow0KKyAgICAgICAgICAgIHJsZVN0YXJ0WzJdID0gZW5jb2RlZExlbmd0aDsNCisgICAgICAgICAg ICBpZiAoJnJsZVN0YXJ0WzNdIDwgJmJ1ZmZlcltuZXdMZW5dKSB7DQorICAgICAgICAgICAgICAg IC8vIGlmIHRoZXJlIGlzIG1vcmUgZGF0YSBpbiB0aGUgYnVmZmVyLCBzaGlmdCBpdCBsZWZ0IHVw IHRvIHRoZSBlbmQgb2YgdGhlIG5ld2x5DQorICAgICAgICAgICAgICAgIC8vIGVuY29kZWQgZGF0 YQ0KKyAgICAgICAgICAgICAgICBzaXplX3QgbnVtQnl0ZXNUb1JlbW92ZSA9IHJsZUJsb2NrTGVu IC0gMzsNCisgICAgICAgICAgICAgICAgY2hhciAqZmlyc3RCeXRlVG9SZW1vdmUgPSAmcmxlU3Rh cnRbM107DQorICAgICAgICAgICAgICAgIGNoYXIgKmZpcnN0Qnl0ZVRvTW92ZSA9IGZpcnN0Qnl0 ZVRvUmVtb3ZlICsgbnVtQnl0ZXNUb1JlbW92ZTsNCisgICAgICAgICAgICAgICAgaW50IG51bUJ5 dGVzVG9Nb3ZlID0gbmV3TGVuIC0gKGZpcnN0Qnl0ZVRvUmVtb3ZlIC0gYnVmZmVyKSAtIG51bUJ5 dGVzVG9SZW1vdmU7DQorICAgICAgICAgICAgICAgIGlmIChudW1CeXRlc1RvTW92ZSA+IDApIHsN CisgICAgICAgICAgICAgICAgICAgIGdkYl9iY29weShmaXJzdEJ5dGVUb01vdmUsIGZpcnN0Qnl0 ZVRvUmVtb3ZlLCBudW1CeXRlc1RvTW92ZSk7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAg ICAgICAgICAgbmV3TGVuIC09IG51bUJ5dGVzVG9SZW1vdmU7DQorICAgICAgICAgICAgICAgIC8v IGFkanVzdCBpIHNvIHRoYXQgcHJvY2Vzc2luZyB3aWxsIGNvbnRpbnVlIG9uIHRoZSBtb3ZlZCBk YXRhDQorICAgICAgICAgICAgICAgIGkgPSAoJnJsZVN0YXJ0WzNdIC0gYnVmZmVyKTsNCisgICAg ICAgICAgICB9DQorICAgICAgICAgICAgcmxlU3RhcnQgPSAmYnVmZmVyW2ldOw0KKyAgICAgICAg fQ0KKyAgICB9DQorDQorICAgIHJldHVybiBuZXdMZW47DQorfQ0KKw0KK3N0YXRpYyBjaGFyICoN CitnZGJfc3RyY3B5IChjaGFyICpkZXN0LGNvbnN0IGNoYXIgKnNyYykNCit7DQorICBjaGFyICpw dHIgPSBkZXN0Ow0KKw0KKyAgd2hpbGUgKCpzcmMpICpwdHIrKyA9ICpzcmMrKzsNCisgICpwdHIg PSAnXDAnOw0KKw0KKyAgcmV0dXJuIGRlc3Q7DQorfQ0KKw0KKy8qIHJldHVybiAxIGlmIHN0ciBz dGFydHMgd2l0aCBwcmVmaXggYW5kIDAgb3RoZXJ3aXNlICovDQorc3RhdGljIGludA0KK2dkYl9z dHJfc3RhcnRzX3dpdGggKGNoYXIgKnN0ciwgY2hhciAqcHJlZml4KQ0KK3sNCisgIHJldHVybiAo c3RybmNtcCAoc3RyLCBwcmVmaXgsIHN0cmxlbiAocHJlZml4KSkgPT0gMCk7DQorfQ0KKw0KKw0K Ky8vIERlZmF1bHQgSW1wbGVtZW50YXRpb25zIG9mIE9TIFNwZWNpZmljIEZ1bmN0aW9ucw0KKw0K KyNpZmRlZiBHREJfVVNFX1NFUklBTF9QT1JUX0lPDQorDQorLy8gSW1wbGVtZW50YXRpb25zIG9m IEkvTyBmdW5jdGlvbnMgLSBwdXREZWJ1Z0NoYXIoKSBhbmQgZ2V0RGVidWdDaGFyKCkNCisNCisj ZGVmaW5lIERFQlVHX0NPTV9QT1JUICgodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQpMHgzZjgpDQor I2RlZmluZSBDT01fUkVHX1RIQiAgIChERUJVR19DT01fUE9SVCArIDApDQorI2RlZmluZSBDT01f UkVHX1JCICAgIChERUJVR19DT01fUE9SVCArIDApDQorDQorI2RlZmluZSBDT01fUkVHX0xTUiAg IChERUJVR19DT01fUE9SVCArIDUpDQorI2RlZmluZSBMU1JfVEhCX0VNUFRZICgxPDw1KQ0KKyNk ZWZpbmUgTFNSX1JCX1JFQURZICAoMTw8MCkNCisNCitleHRlcm4gdm9pZCBwaHlzX3dyaXRlOCAo dWludDY0X3QgcG9ydCwgdWludDhfdCBkYXRhKTsNCitleHRlcm4gdWludDhfdCBwaHlzX3JlYWQ4 ICh1aW50NjRfdCBwb3J0KTsNCisNCit2b2lkDQorcHV0RGVidWdDaGFyIChjaGFyIGMpDQorew0K KyAgd2hpbGUoISAocGh5c19yZWFkOChDT01fUkVHX0xTUikgJiBMU1JfVEhCX0VNUFRZKSApIHsN CisgICAgICAvLyB3YWl0IGZvciBjdXJyZW50IGJ5dGUgdG8gYmUgd3JpdHRlbg0KKyAgfQ0KKyAg cGh5c193cml0ZTggKENPTV9SRUdfVEhCLCBjKTsNCit9DQorDQoraW50DQorZ2V0RGVidWdDaGFy ICh2b2lkKQ0KK3sNCisgIGNoYXIgYzsNCisgIHdoaWxlICghIChwaHlzX3JlYWQ4IChDT01fUkVH X0xTUikgJiBMU1JfUkJfUkVBRFkpICkgew0KKyAgICAgIC8vIHdhaXQgZm9yIGEgY2hhcmFjdGVy DQorICB9DQorICBjID0gcGh5c19yZWFkOCAoQ09NX1JFR19SQik7DQorICByZXR1cm4gYzsNCit9 DQorDQorI2VuZGlmIC8qIEdEQl9VU0VfU0VSSUFMX1BPUlRfSU8gKi8NCisNCisjaWZkZWYgR0RC X1VTRV9TVERfWDY0X0VYQ0VQVElPTl9IQU5ETEVSDQorDQorLy8gSW1wbGVtZW50YXRpb24gb2Yg SW50ZXJydXB0IERlc2NyaXB0b3IgVGFibGUgKElEVCkgZnVuY3Rpb24gLSBleGNlcHRpb25IYW5k bGVyKCkNCisNCit0eXBlZGVmIHN0cnVjdCBpZHRyX3RhYmxlX2VudHJ5IHsNCisJdWludDE2X3Qg aGFuZGxlcl9hZGRyX29mZnNldDE7DQorCXVpbnQxNl90IHNlZ21lbnRfc2VsZWN0b3I7DQorCXVp bnQxNl90IGZsYWdzOw0KKwl1aW50MTZfdCBoYW5kbGVyX2FkZHJfb2Zmc2V0MjsNCisJdWludDMy X3QgaGFuZGxlcl9hZGRyX29mZnNldDM7DQorCXVpbnQzMl90IHJlc2VydmVkOw0KK30gX19hdHRy aWJ1dGVfXygocGFja2VkKSkgaWR0cl90YWJsZV9lbnRyeV90Ow0KKw0KK3R5cGVkZWYgc3RydWN0 IGlkdHJfdGFibGVfYWRkciB7DQorCXVpbnQxNl90IGxpbWl0OyAvLyB0aGUgb2Zmc2V0IChpbiBi eXRlcykgb2YgdGhlIGxhc3QgdmFsaWQgYnl0ZSBpbiB0aGUgaWR0cg0KKwlpZHRyX3RhYmxlX2Vu dHJ5X3QgKmFkZHI7IC8vIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIGlkdHIgaW4gbWVtb3J5DQor fSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBpZHRyX3RhYmxlX2FkZHJfdDsNCisNCisvKiBzdG9y ZSB0aGUgYWRkcmVzcyBvZiB0aGUgaW50ZXJydXB0IGRlc2NydGlwdG9yIHRhYmxlIGluIG1lbW9y eSAqLw0KK3ZvaWQgc3RvcmVfaWR0ciAoaWR0cl90YWJsZV9hZGRyX3QgKmlkdHJfdGFibGVfYWRk cik7DQorDQorYXNtKCIudGV4dCIpOw0KK2FzbSgic3RvcmVfaWR0cjoiKTsNCisgIC8vICVyZGkg aXMgdGhlIHBhcmFtZXRlciB0byB0aGlzIGZ1bmN0aW9uDQorICAvLyBhIHBvaW50ZXIgdG8gYSAx MC1ieXRlIG1lbW9yeSBsb2NhdGlvbg0KKyAgYXNtKCJzaWR0ICglcmRpKSIpOw0KKyAgYXNtKCJy ZXRxIik7DQorDQorLyogcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgMTYtYml0ICVjcyAoY29kZSBz ZWdtZW50KSByZWdpc3RlciAqLw0KK3VpbnQxNl90IGdldF9jc19yZWcgKHZvaWQpOw0KKw0KK2Fz bSgiLnRleHQiKTsNCithc20oImdldF9jc19yZWc6Iik7DQorICBhc20oInhvciAlcmF4LCAlcmF4 Iik7DQorICBhc20oIm1vdiAlY3MsICVyYXgiKTsNCisgIGFzbSgicmV0cSIpOw0KKw0KK3ZvaWQN CitleGNlcHRpb25IYW5kbGVyIChpbnQgaW50cl92ZWN0b3IsIHZvaWQgKmludHJfaGFuZGxlcikN Cit7DQorICBpZHRyX3RhYmxlX2FkZHJfdCBpZHRyX3RhYmxlX2FkZHI7DQorICBzdG9yZV9pZHRy ICgmaWR0cl90YWJsZV9hZGRyKTsNCisNCisgIGlkdHJfdGFibGVfZW50cnlfdCAqaWR0cl9lbnRy eSA9ICZpZHRyX3RhYmxlX2FkZHIuYWRkcltpbnRyX3ZlY3Rvcl07DQorICBpZHRyX2VudHJ5LT5z ZWdtZW50X3NlbGVjdG9yID0gZ2V0X2NzX3JlZyAoKTsNCisNCisgIHVpbnQ2NF90IGludHJfaGFu ZGxlcl9hZGRyID0gKHVpbnQ2NF90KWludHJfaGFuZGxlcjsNCisgIGlkdHJfZW50cnktPmhhbmRs ZXJfYWRkcl9vZmZzZXQxID0gKHVpbnQxNl90KWludHJfaGFuZGxlcl9hZGRyOw0KKyAgaWR0cl9l bnRyeS0+aGFuZGxlcl9hZGRyX29mZnNldDIgPSAodWludDE2X3QpKGludHJfaGFuZGxlcl9hZGRy ID4+IDE2KTsNCisgIGlkdHJfZW50cnktPmhhbmRsZXJfYWRkcl9vZmZzZXQzID0gKHVpbnQzMl90 KShpbnRyX2hhbmRsZXJfYWRkciA+PiAzMik7DQorfQ0KKw0KKyNlbmRpZiAvKiBHREJfVVNFX1NU RF9YNjRfRVhDRVBUSU9OX0hBTkRMRVIgKi8NCi0tIAoyLjE0LjEud2luZG93cy4xCgo= --_006_BL0PR06MB441875F02C5734A25BCD6F48E11E0BL0PR06MB4418namp_--